Я пытался реализовать системный вызов, который принимает int и 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», что и должно быть.
Я сделал strace, а в syscall_0x14f он передает правильные значения.
Где этопрограмма идет не так?