|
我试图在2.6.31版本的内核里面添加一个系统调用
步骤如下:
[HTML]
1.cd /usr/src/linux/include/asm-generic/
2. vim unistd.h,添加#define __NR_mysyscall 337
3.cd /usr/src/linux/arch/x86/kernel/
4. vim syscall_table_32.S 添加.long sys_mysyscall
5.cd /usr/src/linux/kernel
6.vim sys.c 添加函数
asmlinkage int sys_mysyscall(void)
{
printk( "hello, world" );
return 10;
}
7.编译,并且启用新内核
8.编写代码
#include <linux/unistd.h>
#include <sys/syscall.h>
#define __NR_mysyscall 337
int main(int argc, char** argv)
{
syscall(__NR_mysyscall );
return 0;
}
[/HTML]
但是什么结果也没有,是哪里出了问题呢?感觉好像没有找到我添加的系统调用啊
那个系统调用号是系统唯一的,没有和其他的冲突。
谢谢
补充下:
我的机器cpu是Pentium (R) Dual-Core CPU T4200 @2.00G HZ |
|