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