2、 输入命令cd linux‐2.6.28
3、 输入命令vi kernel/sys.c 在文件最后加入我们要添加的系统调用的函数
asmlinkage int sys_mycall(int number)
{
printk("This is my kernel\n");
If(number>0) return 7;
else
return 13081007;
}
4、 输入命令vi arch/x86/kernel/syscall_table_32.S,在文件的最后加入一行.long sys_mycall 保存并退出 这是系统调用表项,当需要系统调用的时候,操作系统会来查看这个文件看看是否有系统调用的定义
5、 输入命令vi arch/x86/include/asm/unistd_32.h, 在#define __NR_XXX 332下面加入一行#define __NR_mycall 333 保存并退出 这个是系统调用的入口,接下来测试系统调用需要用到系统调用入口。
6、编译内核加入启动项 参见:http://blog.csdn.net/liuli91/article/details/13521159
7、进入系统后编写测试程序
#include<linux/unistd.h>
#include<stdio.h>
Int main()
{
printf(“%d\n”,syscall(333,1));
return 0;
}
编译执行,看输出结果
输入指令dmesg 看最后一行输出结果。