Chinaunix首页 | 论坛 | 博客
  • 博客访问: 373784
  • 博文数量: 48
  • 博客积分: 743
  • 博客等级: 上士
  • 技术积分: 956
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-22 13:51
文章分类

全部博文(48)

文章存档

2015年(3)

2014年(17)

2012年(23)

2011年(5)

分类: 嵌入式

2014-03-19 14:27:51

在驱动程序中经常看到module_initmodule_exitmodule_paramMODULE_LICENSE等与模块相关的关键字,下面对这些关键字做一些记录:

头文件:

#include  
#include  

module_init(init_function); -- (*)模块加载函数入口
module_exit(exit_function); -- (*)模块卸载函数入口
module_param(参数名,类型,读/写权限); -- 模块参数.类型可以是byte、short、ushort、int、uint、long、ulong、charp、boolinvbool.
MODULE_LICENSE("Dual BSD/GPL"); -- (*)模块许可 "GPL"、"GPL v2"、"GPL and additional rights"、"Dual BSD/GPL"、"Dual MPL/GPL"、"Proprietary"
MODULE_AUTHOR(""); -- 模块作者
MODULE_DESCRIPTION(""); -- 模块描述
MODULE_VERSION("V1.0"); -- 模块版本
MODULE_DEVICE_TABLE(); -- 模块设备表
MODULE_ALIAS(""); -- 模块别名

注:星号(*)表示的是模块中的必选项

EXPORT_SYMBOL(符号名); -- 导出符号 (/proc/kallsyms 文件对应内核符号表)使EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开
注:EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动导入到kernel 空间的
EXPORT_SYMBOL_GPL(符号名); -- 导出符号给GPL许可的模块使用

阅读(1280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~