On Mon, Aug 23, 2010 at 9:59 PM, Tapas Mishra <mightydre...@gmail.com>wrote:

> No It did not worked I tried what you said.
> Here is the new program.
> If possible just copy paste the program and try to run.
>
> #include <linux/kernel.h>
> #include <asm/syscalls.h>
> #include <linux/module.h>
> #include <linux/unistd.h>
> extern void *sys_table[];
> asmlinkage int(*main_sys_exit)(int);
> asmlinkage int alt_exit_function(int err_code)
> {
>        printk("Sys_exit called with err_code=%d\n",err_code);
>        return main_sys_exit(err_code);
> }
>
> int init_module()
> {
>        main_sys_exit=sys_table[__NR_exit];
>        sys_table[__NR_exit]=alt_exit_function;
> }
> void cleanup_module()
> {
>        sys_table[__NR_exit]=main_sys_exit;
> }
>
>
> Following way I tried to do it.
>
> gcc -I /usr/src/linux-headers-`uname -r`/include -I
> /usr/src/linux-headers-`uname -r`/linux -Wall -DMODULE -D__KERNEL__
> -DLINUX -c sample2.c
>
> and following errors I got
>
> http://pastebin.com/ZGRD8cC3
> any more guess?
>

I'm having the same code as yours, no change in that, below is the makefile
I used to compile the module

obj-m += module1.o

all:
 make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

with this, I'm able to get the module1.ko, though it has the undefined
reference to the sys_table.
Inserting the module will fail.

Regards,
~Sharad.

Reply via email to