窥探 kernel --- 动手添加系统调用(ARM)

由于本人能力有限,如有错误或不妥,请大家指出,谢谢。

我是在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、测试效果

窥探 kernel --- 动手添加系统调用(ARM)_第1张图片












你可能感兴趣的:(linux,测试)