我下载了内核2.6.38-5,并希望添加一个系统调用。我做了以下工作:
syscalls.h中;
/include/linux/syscalls.h作为链接长sys_mycall(长输入);现在,在编译之后,当我通过syscall()使用它时,它给了我BAD ADDRESS,并将errno设置为14。
我该怎么办?
发布于 2011-05-14 19:04:19
在x86上,系统调用号244已经被面积()接受,它以指向struct user_desc的指针作为第一个参数
int get_thread_area(struct user_desc *u_info);您正在传递一个数字而不是指针,内核试图将它解释为指针,它确定它指向进程之外,并返回-EFAULT。
发布于 2011-05-14 17:46:21
Syscalls查询正在运行的内核。函数被映射到内核中的地址空间。如果您不安装此内核并重新启动计算机,则该地址将无效。
https://stackoverflow.com/questions/6003144
复制相似问题