linux syscall define
现在的 syscall 跳转表实现貌似不再采用指针式数组的实现,主要使用了 switch 来实现,本质还是一个跳转表。
include/linux/syscall.hh
:定义了一堆系统调用使用到的宏。syscalls_64.h
:实现了系统调用号和系统调用函数的定义。syscalls_64.c
:实现了用于跳转的 switch 语句,switch 会跳转到一个处理函数上,将系统调用参数从寄存器中取出来,然后交给具体的系统调用。具体的系统调用名字可能是do_sys_...
之类的。SYSCALL_DEFINE
:分布在内核各个源文件中的宏,就是这个宏里面定义的就是系统调用的实现代码。