Как вызвать системный вызов через sysenter во встроенной сборке?

Как мы можем реализовать системный вызов с помощью 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/. Но все равно трудно разобраться.

19
задан Ciro Santilli 新疆改造中心法轮功六四事件 25 February 2019 в 11:45
поделиться