我一直在尝试实现一个将int和long值作为参数并返回long值的系统调用。 在我的用户空间中,我使用
进行调用int x = 3; long y = 4;
syscall(335, x, y);
335是我正在实施的新系统调用
此外,在我的系统调用中,我还具有以下内容:
asmlinkage long sys_first(int x, long y)
{
printk("%d %ld\n", x, y);
....
}
dmesg中的打印值显示的是垃圾值,而不是应显示的“ 3 4”。
我做了一个跟踪,并在syscall_0x14f中传递了正确的值。
程序哪里出错了?