LINUX.ORG.RU

>5 arguments syscall


0

0
Как происходит вызов с 7, например, аргументами (mmap), ведь все их в регистры не запихнешь, да и макроса соответствующего нет?
anonymous
Да нет там ничего сложного:
linux/arch/i386/kernel/sys_i386.c
/*
* Perform the select(nd, in, out, ex, tv) and mmap() system
* calls. Linux/i386 didn't use to be able to handle more than
* 4 system call parameters, so these system calls used a memory
* block for parameter passing..
*/
vodz ★★★★★
()
Я как-то интересовался этой проблемой и выяснил, что
передача параметров <= 4 идет через BX,CX,DX,SI (AX-syscall nr)
a >= 5 через пользовательский stack. Указатель на
параметры передается в BX.
ovsov
()
Я как-то интересовался этой проблемой и выяснил, что
передача параметров "<= 4" идет через BX,CX,DX,SI (AX-syscall nr)
a ">= 5" через пользовательский stack. Указатель на
параметры передается в BX.
ovsov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.