On 30.11.2013 00:27:23, Samuel Thibault wrote: > Marin Ramesa, le Sat 30 Nov 2013 00:22:53 +0100, a écrit : > > On 29.11.2013 23:52:00, Ivan Shmakov wrote: > > > Correct me if I’m wrong, but doesn’t it replace a pointer > > > to an global (external) syscall () function with a pointer to a > > > local variable? I don’t seem to understand how the logic is > > > preserved in this change. > > > > The function syscall() doesn't have a definition. so the extern > > declaration is only a reserved address. It might as well be a local > > variable. But I don't understand that code: why does the function > > fill_ldt_gate() take a random address as an argument? > > It's not a random address: > > ./i386/i386/locore.S:ENTRY(syscall)
I seem to have missed that while I searched.