LDD3_NO.6:Module Parameters
来源:互联网 发布:台湾bgo有假货吗 知乎 编辑:程序博客网 时间:2024/04/27 19:03
8. Module Parameters
模块参数
有些参数因系统而异,从设备号到设备操作各个方面。比如,SCSI适配器通常有控制标记命令队列的使用。参数值可以在insmod或modprobe加载模块时指定,modprobe也可以从配置文件/etc/modprobe.conf中读取参数的值。这些命令接受不同类型的值。在hello,world模块中,我们增加两个参数:一个整型howmany,一个字符串whom。模块增加了一些功能,在加载的时刻,欢迎whom不止一次,而是howmany次。这个模块可以这样加载:
根据这样加载,hello会说“Hello,Mom”10次。
不过在insmod修改模块参数之前,模块要使这些参数可用。参数使用module_param宏声明,这个宏定义在linux/moduleparam.h中。module_param有三个参数:变量名、类型和权限掩码(用做sysfs入口的辅助)。宏应该在任何函数之前申明。
模块参数支持很多类型:
bool
invboo
布尔型的值是true或false(对应为int类型),而invbool类型刚好相反。
charp
字符指针,内存为用户的字符串分配的。
int
long
short
uint
ulong
ushort
数组参数,使用逗号间隔列表,申明数组参数如下:
module_param_array(name,type,num,perm);
name是数组也是参数的名字,type是指数组元素的类型,num是一个整型变量,perm是通常的权限值。如果数组参数在加载时设置,num被设置成元素的个数。
若需要上面没有提及的类型,在模块代码中可以使用钩子来定义。
所有的模块参数应该有一个缺省值,insmod只在用户明确告知它的时候来回改变。module_param的最后一个参数是一个权限值,只能使用<linux/stat.h>中定义的值。
在hello.c中更改部分代码:
make
在hello.c中,arrayNum貌似没有作用,如果修改:
static int intArray[]={1,2,3,4,5,6};
static int arrayNum = 4;
执行:
insmod hello.ko intArray=5,6,7,7,9,10
成功,虽然arrayNum=4.
- LDD3_NO.6:Module Parameters
- Module parameters in sysfs
- insmod: ERROR: could not insert module module.ko: Invalid parameters
- Notes [ Linux Device Drivers, 3rd Edition ( Ch02 ) - Module Parameters ]
- Parameters
- Parameters
- Parameters
- parameters
- The kernel module programming primer(4)-Writing interrupt module with parameters
- 编译模块出错:insmod: ERROR: could not insert module module.ko: Invalid parameters
- LDD3_NO.3:Compiling and Loading
- LDD3_NO.5:Initialization and Shutdown
- linux 加载驱动 insmod: ERROR: could not insert module *: Invalid parameters
- insmod module.ko 出现Invalid parameters, dmesg显示信息:disagrees about version of symbol..
- LDD3_NO.2:Kernel Modules Versus Applications
- LDD3_NO.4:The Kernel Symbol Table
- module学习(6)
- MODULE
- 关于和discuz!nt论坛的整合
- 《蜗居》经典台词100句
- 领先的 Web 技术教程
- Installing xmpppy in Windows
- 教你在WORD中如何制作三线表
- LDD3_NO.6:Module Parameters
- CSS之----------容器属性
- 条款47:需要类型转换时请为模板定义非成员函数
- Ant“蚂蚁"的一些使用小结
- vs2005 命令行编译
- ubuntu9.10中PulseAudio内存泄漏问题
- awk文本处理总结
- Adsense的相关知识
- vb常用文件读写操作