模块编译的可选项


1、模块的声明

主要是通过一些宏,来增加模块的附加功能或者可读性

1.1MODULE_LICENSE(“遵守的协议”)

申明该模块遵守的许可证协议,如:”GPL”、”GPL V2”等

1.2MODULE_AUTHOR(“作者”)

申明模块的作者

1.3MODULE_VERSION(“V1.0”)

申明模块的版本

 

2、模块的参数

在应用程序中

Int main(int argc,char **argv)

argc 表示命令行输入的参数的个数,argv中保存输入的参数

 

内核模块中也可以通过命令行输入参数。

参数怎么传入,传入后保存在哪里?

通过宏module_param指定保存模块参数的变量。模块参数用于在加载模块时传递参数给模块。

module_param(name,type,perm)

name:变量的名称

type:变量类型,bool:布尔型 int:整型 charp:字符串型

perm是访问权限。S_IRUGO:读权限 S_IWUSR:写权限

例:

int a=3;

char *st;

module_param(a,int,S_IRUGO);

module_param(a,int,S_IRUGO);

 

 

a赋初值为3,而传入值为10,结果a输出为10.

 

3、符号导出

什么是符号导出,为什么要符号导出呢?

当我们在一个模块add.ko中创建了一个函数:比如add(int a,int b)

然后,我在另一个模块alph.ko中想要调用add()这个函数。

这时我们就需要在add模块中使用符号导出。

EXPROT_SYMBOL(add);

而且在alph模块中要声明

extern add(int a,int b);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值