33e2d79f47
but amd64, it just returns 0, doing nothing. For amd64, it implements vsyscalls through cheating: if the faulting address is in the vsyscall area (which is statically known on Linux/amd64), and the intruction pointer is too, it must have been a vsyscall. In that case, retrieve the return address from the user stack, fix up %rip and %rsp, and just execute the normal system call. It will return as if the vsyscall has been executed. |
||
---|---|---|
.. | ||
arch | ||
common | ||
files.linux | ||
linux_syscall.h | ||
linux_syscallargs.h | ||
linux_syscalls.c | ||
Makefile.inc |