where am i wrong in my new system call implementation?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,
      
Follwing is procedure i follow to add new system call
to 2.4.24 kernel and want to call from it another
exported function from kernel module.

under /usr/src/linux-2.4/kernel/myservice.c
#include <linux/myservice.h>
#include <linux/errno.h>

asmlinkage int sys_myservice (char* arg1) {
return call_fun ? call_fun(arg1) : -ENOSYS;
}


where my myservice.h is
ifndef __LINUX_MYSERVICE_H
#define __LINUX_MYSERVICE_H

#include <linux/linkage.h>

#endif

extern int call_fun(char *);

call_fun(char *) is written in kernel module that i
want to include any time to kernel and get it executed
from user program

I already add syscall entry in asm/unistd.h as
#define __NR_myservice          259
Also same in user space in /usr/include/asm/unistd.h
then add entry in syscall table in
arch/i386/kernel/entry.S

also added exported function call_fun as extern in
/usr/include/sys/myservice-user.h

My new system call myservice has successfully
implemented from
http://fossil.wpi.edu/docs/howto_add_systemcall.html
now i change myservice.c given above to call exported
function which i can see from /proc/ksyms as 
call_fun_R__ver_call_fun

After this when i compile kernel i got undefined
reference to call_fun.
What i forgotten to add?
I got error at /usr/src/linux-2.4/kernel/myservice.c

Thanks in advance.
regards,
linux_lover.




		
__________________________________ 
Do you Yahoo!? 
Make Yahoo! your home page 
http://www.yahoo.com/r/hs

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux