Procedury wywołań systemowych poziomu aplikacji
Procedury wywołań systemowych poziomu aplikacji mają za zadanie umieszczenie argumentów wywołania na stosie programowym aplikacji, ustawienie numeru wywołania systemowego w rejestrze EAX procesora, wywołanie bramki zadania w celu przełączenia wykonywania w tryb systemowy i ewentualnie pobranie zwróconej wartość ze stosu aplikacji.
Przykład wywołania systemowego poziomu aplikacji z pobraniem argumentu ze stosu:
pid_t getpid(void) {
pid_t pid;
__asm__("mov %0, %%eax" : : "r" (__NR_getpid));
__asm__("int $0x22");
__asm__("pop %eax");
__asm__("mov %%eax, %0": "=m" (pid));
return pid;
}