> I tried to implement a new system call. I used the instructions of > http://user-mode-linux.sourceforge.net/lksct/index.html > > in the linux kernel 2.6.11.8 > > I compiled and I made a program example: > > #include <stdio.h> > #include <errno.h> > #include <asm/arch/unistd.h> > #include <linux/linkage.h> > > _syscall0(int,cloak) > > int main(){ > > printf("Chamando cloak com pid 1\n"); > cloak(); > return 0; > } > > The coak() is supposed to print a message, we could see it using > dmesg. But, it doesnt happen. > > I also added the system call in the entry.S file. > > What can I do to solve this problem? The sample program runs, but the > system call has no effect. > 1) Add you system call at the bottom of file asm/unistd.h list of sys calls. Don't forget to update NR_syscalls to the new number of systems calls. You should check if /usr/include/asm/unistd.h is linked to /usr/src/your_path_to_kernel_sources/include/asm/unistd.h. If it is not linked you should update both files. 2)Add your system call and change the total number of system calls in arch/i386/kernel/entry.S. 3)Add your code in kerrnel/sys.c or or whereever you want. Recompile the kernel. 4)See man 2 intro for further information on how to call your sys call. Hope this help ... Omar -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/