linux驱动模块的参数传递和模块导出

接着上一篇,这一篇我们讲讲linux驱动模块的参数传递和模块导出。先上代码


 相比上一篇,这里我们多了两个参数value和name,我们可以在insmod内核的时候使用module_param这个宏来实现内核模块参数的传递,这点就类似于应用层我们写main函数一样,main函数也有两个参数argc和argv,只不过内核换了种方式传递参数而已,首先看module_param宏定义,module_param(name,type,perm),name:模块参数的名称,type:模块参数的数据类型,注意字符指针类型是charp,参数perm表示此参数在sysfs文件系统中所对应的文件节点的属性,其权限在include/linux/stat.h中有定义。它的值可以用宏定义也可以用数字表示(一般用0644)。

当我们不传参时,加载进内核打印如下值:


传参时,则如下:


好了,内核传参到此结束,下面说说内核模块的导出。

内核模块导出也是类似于应用层的函数间的调用,只不过内核的函数之间的调用需要用宏export_symbol来声明。先看代码


编写math.c


修改makefile


加载进内核,注意要先加载math.ko




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值