个人觉得的有用的文档,贴出来和大家分享

关于MODULE_PARM()宏

上一篇 / 下一篇  2008-03-27 09:39:35 / 个人分类:linux


关于MODULE_PARM()宏


MODULE_PARM()宏定义在linux/module.h中,用于模块参数传递。
如果我们想用这个宏来传递命令行参数,那么在我们的模块中定义一个全局变量。在insmod模块时,便可以用参数的形式,将具体的实参传递给模块中的那个全局变量。
MODULE_PARM(name,type)有两个参数,一个是这个全局变量的名称,另一个是这个全局变量的类型。
而他的类型有一下几种:
b:比特型
h:短整型
i:整型
l:长整型
s:字符串型
在传递字符串型的参数时,这个全局变量需要在模块中用Char *来声明!insmod会自动为其分配内存空间。
例如:
int a = 3;
char *st;
MODULE_PARM(a,"i");
MODULE_PARM(st,"s");
在insmod是我们加这样的参数:
insmode a.o "a = 3", "st = hello world"

MODULE_PARM()也支持数组类型。用短线’-'把两个数字分开,分别表示数组参数中的最小位数和最大位数。

例如:
int array[8];
MODULE_PARM(array,"1-8i");
在命令行我们使用加这样的参数:
insmod a.o "array = 38745,123,4000″

在那和模块编程时,我们往往给这些全局变量以默认值,如果insmod时没有传入参数,模块会使用这些默认值,而如果我们传入参数,则这些默认值将被替换。


TAG: MODULE PARM

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar