我是在linux2.6.38中添加的系統調用,在mini6410開發板上測試的。
添加系統調用:
向內核中添加系統調用,需要執行三個步驟:
1、添加新的內核函數
2、更新unistd.h
3、更新系統調用表
1、 在kernel/sys.c中添加函數
asmlinkageint sys_add(int a,int b) { return a+b; }
2、 在arch/arm/include/asm/unistd.h
添加:
#define_NR_add (_NR_SYSCALL+BASE + 370)
3、在arch/arm/kernel/calls.S中添加CALL(sys_add)以指向新的系統調用
4、編寫應用程序測試
#include <linux/unistd.h> #include <stdio.h> int main() { int re = syscall(370,1,4) ; printf("%d\n",re); return 0; }
5、測試效果
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/