#######################
[root@localhost para]# cat para.c
#include < linux/kernel.h >
#include < linux/module.h >
#include < linux/init.h >
static int myint=10;
static int myarr[2]={2.45};
static char mybyte='a';
static unsigned short myshort=1;
static long mylong=9999;
static char *mystring="karta";
MODULE_PARM(myint,"i");
MODULE_PARM(myarr,"1-2i");
MODULE_PARM(mybyte,"b");
MODULE_PARM(myshort,"h");
MODULE_PARM(mylong,"l");
MODULE_PARM(mystring,"s");
/*
MODULE_PARM(var,type);
type可用很多表示 上面已列出差不多了
*/
MODULE_PARM_DESC(myint,"this is int");
MODULE_PARM_DESC(myaaa,"this is aaa");
//MODULE_PARM_DESC 這個訊息在用modinfo可以看到
/*
[root@localhost para]# modinfo para.ko
filename: para.ko
parm: myint:this is int
parm: myaaa:this is aaa
vermagic: 2.6.9 686 REGPARM gcc-3.4
depends:
[root@localhost para]#
*/
static int __init hello_init(void){
printk("<1>myint is=%i\n",myint);
//用%i 和 %d是一樣的
printk("<1>myarr is=%i %i\n",myarr[0],myarr[1]);
printk("<1>mybyte is=%i\n",mybyte);
printk("<1>myshort is=%hi\n",myshort);
printk("<1>mylong is=%li\n",mylong);
printk("<1>mystring is=%s\n",mystring);
return 0;
}
static void __exit hello_exit(void){
printk("<1>Bye!Bye!!\n");
}
module_init(hello_init);
module_exit(hello_exit);
[root@localhost para]#
#######################
[root@localhost para]# cat Makefile
obj-m += para.o
all:
make -C /lib/modules/2.6.9/build M=/mnt/driver/para modules
clean:
make -C /lib/modules/2.6.9/build M=/mnt/driver/para clean
[root@localhost para]#
#######################
Feb 4 19:46:53 localhost kernel: myint is=10
Feb 4 19:46:53 localhost kernel: myarr is=2 0
Feb 4 19:46:53 localhost kernel: mybyte is=97
Feb 4 19:46:53 localhost kernel: myshort is=1
Feb 4 19:46:53 localhost kernel: mylong is=9999
Feb 4 19:46:53 localhost kernel: mystring is=karta
Feb 4 19:53:23 localhost kernel: Bye!Bye!!
[root@localhost para]#
沒有留言:
張貼留言