如何在linux系统中添加新的系统调用

如何在linux系统中添加新的系统调用,第1张

若要在 kernel 里面新增加一个自己的 sys call,大致需要这么几个步骤: a,新增自己 sys call 的代码,并修改相应 makefile; b,修改相应头文件,分配自己的系统调用号; c,系统调用通过中断加查表的方式实现,

进入arch/x86/kernel目录下,然后vim syscall_table_32.S,在此文件的最后一行添加自己的系统调用表项:

1 .long sys_rt_tgsigqueueinfo/* 335 */

2 .long sys_perf_event_open

3 .long sys_mycall //这是我们自己添加的表项

好了,下面开始添加系统调用号。

2.2 添加自己的系统调用号

现在进入目录 arch/x86/include/asm,该目录下有三个文件unistd_32.h, unistd_64.h, unistd.h。由于我们编译的是32位内核,所以需要在unistd_32.h中添加系统调用号。

vim unistd_32.h,在最后添加代码:

1 #define __NR_perf_event_open336

2 #define __NR_mycall 337 //添加的

3 #ifdef __KERNEL__

4


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7107908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存