#define __NR_mysyscall номер моего системного вызова
_syscalln(long,mysyscall,type1,arg1,type2,arg2,.....,typen,argn);
Далее я подключаю этот файл в своей пользовательской программе, и всё равно выдаёт что функция mysyscall не доступна. Ещё пишут что макрос _syscalln находится в файле /usr/src/linux/include/asm-i386/unistd.h. Мой системный вызов не имеет параметров и должен вывести одну строку.
Код: Выделить всё
asmlinkage long sys_mysyscall(void)
{
printk(KERN_INFO"mysyscall\n");
return 5;
};
При компиляции выводит
In file included from p1.c:3:
/usr/include/mysyscall.h:2: error: expected declaration specifiers or ‘...’ before numeric constant
p1.c: In function ‘_syscall0’:
p1.c:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
p1.c:11: error: expected declaration specifiers before ‘;’ token
/usr/include/mysyscall.h:2: error: parameter name omitted
p1.c:11: error: expected ‘{’ at end of input
Что у меня не так?