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?