Как мы можем реализовать системный вызов с помощью sysenter/syscall непосредственно в x86 Linux? Кто-нибудь может помочь? Было бы еще лучше, если бы вы также могли показать код для платформы amd64.
Я знаю, что в x86 мы можем использовать
__asm__(
" movl $1, %eax \n"
" movl $0, %ebx \n"
" call *%gs:0x10 \n"
);
для непрямого маршрутизации к sysenter.
Но как мы можем напрямую использовать sysenter/syscall для выполнения системного вызова?
Я нашел некоторые материалы http://damocles.blogbus.com/tag/sysenter/. Но все равно трудно разобраться.