我是在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/