Sample module coding: Linux Device Drivers
I am trying to build a simple module at home from the info i am gathering reading LDD2. I am currently trying to add a simple identification line from page 21 just to get some process related information (PID and process name). The code is as follows:
#define MODULE
#include <linux/module.h>
#include <linux/version.h>
#include <linux/kernel.h>
#include <linux/sched.h>
MODULE_LICENSE("GPL");
int init_module (void)
{
printk("<1>This is test module\n");
printk("Process is %s (ID is %i)\n",current->comm, current->pid);
return 0;
}
void cleanup_module(void)
{
printk("<1> Goodbye World\n");
}
I get an error on the header file linux/sched.h
[prog@ademonozu cap1]$ gcc -I/lib/modules/2.4.22-1.2115.nptl/build/include -c p15.c
In file included from /lib/modules/2.4.22-1.2115.nptl/build/include/linux/sched.h:15,
from p15.c:6:
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/timex.h:173: error: field `time' has incomplete type
In file included from /lib/modules/2.4.22-1.2115.nptl/build/include/linux/sched.h:23,
from p15.c:6:
/lib/modules/2.4.22-1.2115.nptl/build/include/asm/mmu.h:13: error: field `sem' has incomplete type
/lib/modules/2.4.22-1.2115.nptl/build/include/asm/mmu.h:15: error: field `user_cs' has incomplete type
In file included from /lib/modules/2.4.22-1.2115.nptl/build/include/linux/sched.h:31,
from p15.c:6:
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:18: error: field `task_list' has incomplete type
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:19: error: field `hash_chain' has incomplete type
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:24: error: field `pid_chain' has incomplete type
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:36: error: syntax error before '(' token
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:38: error: syntax error before '(' token
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:43: error: syntax error before '(' token
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:49: error: syntax error before '(' token
/lib/modules/2.4.22-1.2115.nptl/build/include/linux/pid.h:52: error: syntax error before '(' token
p15.c: In function `init_module':
p15.c:13: error: `current' undeclared (first use in this function)
p15.c:13: error: (Each undeclared identifier is reported only once
p15.c:13: error: for each function it appears in.)
Can anyone help?
|