热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

十三、linux内核驱动模块传参数

在加载模块的时候,可以向它传参数。单个参数:内核模块可以通过module_param来传单个参数–module_param(name,type,per

        在加载模块的时候,可以向它传参数。

单个参数:

        内核模块可以通过module_param来传单个参数

                – module_param(name,type,perm)
                – name:模块参数的名称
                – type: 模块参数的数据类型(支持int long short uint ulong ushort类型)
                – perm: 模块参数的访问权限(S_IRUSR参数表示所有文件所有者可读)

                – 头文件在“include/linux/moduleparam.h” 

多个参数:

        传递多个参数module_param_array(name, type, nump, perm)
                – name:模块参数的名称
                – type: 模块参数的数据类型(支持int long short uint ulong ushort类型)
                – nump:保存参数个数的地址
                – perm: 模块参数的访问权限(S_IRUSR参数表示所有文件所有者可读)

• 参数perm表示此参数在sysfs文件系统中所对应的文件节点的属性,其权限在include/linux/stat.h中有定义。
• 变量perm
        – #defineS_IRUSR 00400文件所有者可读
        – #defineS_IWUSR00200文件所有者可写
        – #defineS_IXUSR 00100文件所有者可执行
        – #defineS_IRGRP00040与文件所有者同组的用户可读
        – #defineS_IWGRP00020
        – #defineS_IXGRP 00010
        – #defineS_IROTH 00004与文件所有者不同组的用户可读
        – #defineS_IWOTH00002
        – #defineS_IXOTH 00001
• 将数字最后三位转化为二进制:xxx xxx xxx,高位往低位依次看,第一位为1表示文件所有者可读,第二位为1表示文件所有者可写,第三位为1表示文件所有者可执行;接下来三位表示文件所有者同组成员的权限;再下来三位为不同组用户权限。

#include
/*包含初始化宏定义的头文件,代码中的module_init和module_exit在此文件中*/
#include
/*包含初始化加载模块的头文件,代码中的MODULE_LICENSE在此头文件中*//*定义module_param module_param_array的头文件*/
#include
/*定义module_param module_param_array中perm的头文件*/
#include MODULE_LICENSE("Dual BSD/GPL");
/*声明是开源的,没有内核版本限制*/
MODULE_AUTHOR("iTOPEET_dz");
/*声明作者*/static int module_arg1,module_arg2;
static int int_array[50];
static int int_num;module_param(module_arg1,int,S_IRUSR);module_param(module_arg2,int,S_IRUSR);module_param_array(int_array,int,&int_num,S_IRUSR);static int hello_init(void)
{int i;printk(KERN_EMERG "module_arg1 is %d!\n",module_arg1);printk(KERN_EMERG "module_arg2 is %d!\n",module_arg2);for(i=0;i}static void hello_exit(void)
{printk(KERN_EMERG "Hello world exit!\n");
}module_init(hello_init);
/*初始化函数*/
module_exit(hello_exit);
/*卸载函数*/

 

 


推荐阅读
author-avatar
手机用户2502896851
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有