我已经下载了内核2.6.38-5并且想要添加系统调用。 我做了以下内容:添加系统调用时的错误地址
我已经加入我的系统调用系统调用表;
<src folder>/arc/x86/kernel/syscall_table_32.S .long sys_mycall
我已经添加了系统呼叫号码;
<src folder>/include/asm-generic/unistd.h #define __NR_mycall 244 __SYSCALL(__NR_mycall, sys_mycall)
我已经加入了原型
syscalls.h
;<src follder>/include/linux/syscalls.h asmlinkage long sys_mycall(long input);
而且,这里是我的系统调用;
asmlinkage long sys_mycall(long input) { return (input * 2); }
我也编辑了Makefiles。
现在编译之后,当我通过syscall()
使用它,它给了我BAD ADDRESS
并将errno设置为14
我应该怎么办?
+1,祝贺您对问题有一个令人满意的完整描述和最低限度的知识。你不会想象这些新来的人会问很多关于非常低层次问题的问题。 – zneak 2011-05-14 16:32:34