He descargado kernel 2.6.38-5 y deseo agregar una llamada al sistema. hice lo siguiente:Dirección incorrecta al agregar una llamada al sistema
he añadido a mi llamada al sistema de tabla de llamadas al sistema;
<src folder>/arc/x86/kernel/syscall_table_32.S .long sys_mycall
he añadido el número de llamadas al sistema;
<src folder>/include/asm-generic/unistd.h #define __NR_mycall 244 __SYSCALL(__NR_mycall, sys_mycall)
he añadido el prototipo de
syscalls.h
;<src follder>/include/linux/syscalls.h asmlinkage long sys_mycall(long input);
Y esta es mi llamada al sistema;
asmlinkage long sys_mycall(long input) { return (input * 2); }
He editado los Makefiles también.
Ahora después de la compilación, cuando lo uso a través de syscall()
me da BAD ADDRESS
con errno fijado a 14.
¿Qué debo hacer?
+1, felicidades por tener una descripción satisfactoriamente completa y un conocimiento mínimo de su problema. No imaginarías a la gente nueva que viene aquí haciendo preguntas muy amplias sobre cosas de muy bajo nivel. – zneak