system call number 的定义文件
编译的时候发现 有个 system call number 没有定义。
但是又不知道 system call number 具体在哪里定义的。
所以用 man page 查了一下:
man syscalls
> NOTES
> Roughly speaking, the code belonging to the system call with number __NR_xxx defined in /usr/include/asm/unistd.h can be
> ^^^^^^^^^^^^^^^^^^^^^^^^^
> found in the Linux kernel source in the routine sys_xxx(). (The dispatch table for i386 can be found in
> /usr/src/linux/arch/i386/kernel/entry.S.) There are many exceptions, however, mostly because older system calls were
> superseded by newer ones, and this has been treated somewhat unsystematically. On platforms with proprietary operating-
> system emulation, such as parisc, sparc, sparc64 and alpha, there are many additional system calls; mips64 also contains
> a full set of 32-bit system calls.
看来, 原来 system call number 的 定义在 /usr/include/asm/unistd.h
中:
/usr/include/asm/unistd.h
的内容:
看来 i386 和 x86_64 的 system call number 是不同的。
#ifndef _ASM_X86_UNISTD_H
#define _ASM_X86_UNISTD_H
/* x32 syscall flag bit */
#define __X32_SYSCALL_BIT 0x40000000
#