linux驱动模块参数module_param

为了增加驱动程序的灵活性,内核允许对驱动程序指定参数,而这些参数可在加载驱动程序模块时改变。
这些参数的值可由insmod或者modprobe在加载时指定;后者也可以从它的配置文件(/etc/modprobe.conf)读取参数的值。这两个命令可在命令行里接受几种参数类型的赋值。
我们可以用“module_param(参数名,参数类型,参数读/写权限)”为模块定义参数。为了演示这种功能,我们对本章开始的“hello world”模块(命名为hello_ext)做了如代码清单1.5所示的改进。 我们增加2个参数:一个整型值,称为howmany,一个字符串称为whom。 在装载这个增强的模块时,将向whom问候howmany次。这样我们可以用下面的命令来装载该模块:

insmod hello_ext.ko howmany=5 whom=“Students”
                 代码清单1.4 hello_ext
#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE(“Dual BSD/GPL”); static char *whom =“world”;static int howmany = 1;  static int hello_init(void){        int i;        for(i=0;i<howmany;i++)        {       printk(KERN_ALERT“Hello %s/n”,whom);         }       return 0;}static void hello_exit(void){       printk(KERN_ALERT“Hello world exit/n”);}module_init(hello_init);module_exit(hello_exit);module_param(howmany, int, S_IRUGO);module_param(whom, charp, S_IRUGO);EXPORT_SYMBOL(howmany);EXPORT_SYMBOL(whom); 内核支持的模块参数类型包括byte、short、ushort、int、uint、long、ulong、charp(字符指针)、bool或invbool(布尔的反),以‘u’开头的为无符号值。
除此之外,模块也可以拥有参数数组,形式为“module_param_array(数组名,数组类型,数组长,参数读/写权限)”。运行insmod或modprobe命令时,应使用逗号分隔输入的数组元素。
 
原文地址:http://www.embedstudy.com/?action-category-catid-25
嵌入式学习网原创(www.embedstudy.com),转载请说明!

转自嵌入式学习网!
原文地址:http://www.embedstudy.com/viewnews-8458

转自嵌入式学习网!
原文地址:http://www.embedstudy.com/viewnews-8458

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值