当前位置: 首页 > news >正文

2021-03-03 Linux module_param定义一个内核参数

              Linux module_param定义一个内核参数

 

一、定义一个内核参数可以用module_param、module_param_named、module_param_cb。

       kernel\include\linux\moduleparam.h

 

二、module_param_cb 简单介绍。

      1、name是你要定义的变量的名字

      2、ops中指定你要用于set和get这个变量value的方法

      3、arg是你在你的code中默认初始化的这个变量名

      4、perm是系统读写等权限的设置

/*** module_param_cb - general callback for a module/cmdline parameter* @name: a valid C identifier which is the parameter name.* @ops: the set & get operations for this parameter.* @perm: visibility in sysfs.** The ops can have NULL set or get functions.*/
#define module_param_cb(name, ops, arg, perm)				      \__module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)

三、看内核一个实例kernel\drivers\usb\phy\otg-wakelock.c。

      运行后会在sys/module/otg_wakelock/parameters/目录下创建一个名字叫enable的文件,你可以通过这个文件set和get变量enable的数据
      read value:cat enable
      write value:echo 1 > enable
      当你read value的时候,上面ops中定义的方法param_get_bool会被调用,这是内核已经实现的方法,直接get bool,这里我们希望enable是一个bool类型,如果是int类型那么就是get int方法了。

 

四、在红外驱动中的应用,方便与调试。

        1、kernel\drivers\input\remotectl\rockchip_pwm_remotectl.c

        2、调试过程中通过修改rk_remote_print_code的值决定是否打印相应的log。

 

http://www.xdnf.cn/news/834751.html

相关文章:

  • UDK控制台命令概览
  • DateTime日期类型格式化显示
  • 6种查看Linux进程占用端口号的方法
  • 我的世界新手开荒攻略2024 萌新入坑指南
  • ExpandableListView说明及其用法
  • 网址收藏
  • 关闭浏览器弹出框onbeforeunload,onunload和onunloadcancel
  • 浅谈“游戏行业第三方支付平台“
  • 学习QT之容器类
  • 电脑无法打开Excel文件怎么办?
  • 如何获得CSDN下载积分和C币规则
  • Java网络编程:概述--快速入门
  • Linux 大文件如何切割与合并?
  • `simple-reactjs-app` 开源项目使用指南
  • python怎么存储数据_【Python】存储数据
  • 【zip密码破解】AZPR==>ARCHPR4.5
  • 机器人学笔记(2)正运动学
  • 打造专业级网页排版:全方位解析专业字体家族font-family实践与全球知名字体库导览
  • 如何使用PartitionMagic 8.0汉化版(图文说明)(转载)
  • debian12.5国内镜像源配置清单
  • 【WinForm】WinForm中的TableLayoutPanel控件、PropertyGrid控件、PictureBox控件、ListView控件、DataGridView控件的使用
  • 嵌入式系统电源管理软件比较
  • 技术干货 | GreatDB新一代读写分离架构,如何炼就近乎0损耗的性能?
  • C# Invoke和BeginInvoke的区别
  • python中shutil.copyfile的用法_python处理文件和文件的方法(shutil,filecmp ,MD5,tarfile,zip)...
  • FTP地址大全
  • GoLang之interface
  • PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解
  • 骡友们推荐的各个学习英文网站的汇总
  • 【Unity插件】最多的插件合集