它被称为debug调试驱动必备之良器;
在用户态下编程可以通过main()来传递命令行参数,而编写一个内核模块则通过module_param()来传递参数调试驱动;
module_param宏是Linux 2.6内核中新增的,该宏被定义在include/linux/moduleparam.h文件中,具体定义如下
#define module_param(name, type, perm)
module_param_named(name, name, type, perm)
其中使用了 3 个参数:要传递的参数变量名, 变量的数据类型(int,char等), 以及访问参数的权限(读:4; 写:2; 执行:1)。
<<<
perm参数的作用是什么?
最后的 module_param 字段是一个权限值,表示此参数在sysfs文件系统中所对应的文件节点的属性。你应当使用中定义的值. 这个值控制谁可以存取这些模块参数在 sysfs 中的表示.当perm为0时,
表示此参数不存在 sysfs文件系统下对应的文件节点。 否则, 模块被加载后,在/sys/module/ 目录下将出现以此模块名命名的目录, 带有给定的权限。
权限在include/linux/stat.h中有定义,一般也可以直接赋值,比如0664等。
举例说明:(待补充)