我已經下載了內核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