linux内核系统调用

linux内核系统调用_第1张图片

通过SYSCALL_DEFINEx

来注册系统调用函数

linux内核系统调用_第2张图片

通过以上宏来实现

将SYSCALL_DEFINEx(1,_##name,__VA_ARGS__)

比如参数是 type, arg0 type, arg1

变成

类似

asmlinkage long sys_name(type arg0, type arg1)


具体通过SYSC_name(type arg0. type arg1)

来调用


所以 开发者们 只用通过宏

SYSCALL_DEFINEx(name,type,arg0,type,arg1,...)

{

.....

}

以kill系统调用为例

linux内核系统调用_第3张图片

就能定义一个系统调用,并且在里面写上具体实现过程

记得在unistd.h中声明系统调用号和在syscalls.h中声明函数




你可能感兴趣的:(linux内核系统调用)