内核模块参数

本文详细介绍了Linux内核模块参数的概念,通过module_param()宏定义进行参数声明,并探讨了参数类型、权限和描述。同时,文章提供了一个内核模块参数的使用实例,包括编译、加载、查看和修改参数值的步骤,强调了参数描述信息的获取和修改方法。
摘要由CSDN通过智能技术生成


前言

`本文主要介绍linux kernel 中的内核模块参数,包括内核模块参数相关的宏定义,参数,以及使用方法等


一、什么是内核模块参数

前面的文章已经介绍了内核模块,内核模块参数就是内核模块使用的参数,像用户程序一样, 内核模块也可以接受命令行参数,这样就可以根据给定的参数动态的改变内核模块的行为。

二、内核模块参数函数 module_param()

内核模块参数是通过module_param() 来使用的

1. module_param() 宏定义

如下图所示是,内核模块参数 module_param() 在内核源码 include/linux/moduleparam.h 中的宏定义
在这里插入图片描述

2. module_param() 的参数介绍

由上图所知, module_param()主要有3个参数,分别是 name, type, perm

  • name: 用作内核模块参数的变量名称
  • type: 内核模块参数的变量类型(主要有,byte, hexint, short, ushort, int, uint, long, ulong, charp, bool, invbool, 其中charp 代表字符指针)
  • perm:代表内核模块参数的变量操作权限(包括,S_IWUSR, S_IRUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IRUGO等,其中S_I 只是一个前缀, R代表读权限,W代表写权限,X代表可执行权限,USR代表用户,GRP代表组,UGO代表用户,组和其他)

perm 相关的操作权限定义,如下图所示
内核源码中 include/uapi/linux/stat.h 的定义
在这里插入图片描述
内核源码中 include/linux/stat.h 的定义
在这里插入图片描述

3. MODULE_PARM_DESC()

对内核模块参数的描述是通过MODULE_PARM_DESC()来进行的,如下图所示,是内核模块参数描述 MODULE_PARM_DESC() 在内核源码 include/linux/moduleparam.h 中的宏定义
在这里插入图片描述

三、内核模块参数使用实例

1.测试代码

测试代码如下

#include <linux/init.h>
#include <linux/module.h>
#include <linux/moduleparam.h>

#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值