linux 内核学习11-内核模块参数
内核模块作为一个可拓展的动态模块,为Linux内核提供灵活性,所以需要依据不同的场景来传递不同的参数,实现不同的功能
1. 准备工作
#define module_param(name,type,perm)
module_param_named(name,name,type,perm)
#define MODULE_PARM_DESC(_parm,desc) \
__MODULE_INFO(parm,_parm,#_parm ":" desc)
module_params() 宏一共有三个参数
参数 | 含义 |
---|---|
name | 参数名 |
type | 参类型数 |
perm | 参数的读写等权限 |
MODULE_PARM_DESC()宏为这个参数的简单说明,参数类型可以为byte,ushort,int,uint,long,ulong,char和bool等类型。perm指定sysfs中相应文件的访问权限,如设置为0表示不会出现在sysfs文件系统中;如果设置为S_IRUGO(0444)可以被所有人读取,但是不能修改,如果设置为S_IRUGO|S_IWUSR(0644),说明可以让root权限修改这个参数。
举个例子
<driver/misc/altera-stapl/altera.c>
static int debug=1
module_param(debug,int,<