我正在尝试向Android内核添加一个函数。目前我可以使用syscall
来调用该函数,但在调试printk
之后我发现系统调用号本身作为第一个参数传递给我的内核函数,使所有其他参数错误以及......有关可能原因的任何想法吗?
非常感谢!
修改
在定义和声明(在asmlinkage
中)一致地添加syscalls.h
解决了问题。但是我仍然没有看到sys_getpid
(在DEFINE_SYSCALL0
中使用timer.c
宏定义)这样的系统函数执行此操作 - 它们只在syscall.h
中的声明之前添加该宏。如果我遵循这一点,由于声明和定义中的函数签名不一致,编译将失败。解释...?