16. _syscallN 宏

  1. _syscall0(int,mycall) 表示:

  2. 系统调用的名称为 mycall。

  3. 它接受零个参数。

  4. 它返回一个 int 类型的值。

  1. _syscall1(int,mycall,int,number) 表示:

  2. 系统调用的名称为 mycall。

  3. 它接受一个参数。

  4. 该参数是一个名为 number 的 int 类型。

  5. 它返回一个 int 类型的值。

当你展开 _syscall1(long,mycall,int,i) 时,你会得到以下代码:

long mycall(int i)

{

return syscall(__NR_mycall, i);

}

但是,_syscallN 宏的定义在内核中是不同的。 您可以在 /usr/src/linux/include/asm-i386/unistd.h 中查看定义。