本文共 1492 字,大约阅读时间需要 4 分钟。
这些宏定义在<linux/module.h>下
MODULE_AUTHOR(name)
定义驱动的编程者,name为string
MODULE_LICENSE(license)
定义驱动的license,一般为GPL,或相关公司的license
MODULE_DESCRIPTION(desc)
对驱动程序的描述,string
MODULE_SUPPORTED_DEVICE(name)
驱动程序所支持的设备,string
MODULE_PARM(var,type)
提供在运行时通过控制台将参数传递给模块
在那和模块编程时,我们往往给这些全局变量以默认值,如果我们才insmod时没有传入参数时,模块会使用这些默认值,而如果我们传入参数时,这些默认值便被覆盖掉.
MODULE_PARM_DESC(var,desc)
对变量的描述
GPL_HEADER()
THIS_MODULE
指向全局变量
系统对每个模块维护一个usage counter,以便决定何时可以安全的卸载模块
下面的宏用来对该usage counter操作,usage counter可以通过/proc/modules
文件查看
MOD_INC_USE_COUNT
MOD_DEC_USE_COUNT
MOD_IN_USE
MODULE_DEVICE_TABLE
EXPORT_SYMTAB
预处理宏,当在程序中用EXPORT_SYMBOL等宏时需要定义该宏。例如,可以在Makefile中定义:-DEXPORT_SYMTAB
__EXPORT_SYMBOL(sym,str)
EXPORT_SYMBOL(var)
EXPORT_SYMBOL_NOVERS(var)
导出一个符合到内核符号表,导出后,该符合可以供其他模块使用。这个宏有助于编写驱动程序时清楚的划分出层次。可以通过/proc/ksyms文件或ksyms命令查看内核符号表。EXPORT_SYMBOL_NOVERS(var),导出是不带版本信息。在使用该宏时,需定义
EXPORT_SYMBOL_GPL(var)
EXPORT_NO_SYMBOLS
显示指出,该模块不向内核符合表导出符号
SET_MODULE_OWNER转载地址:http://zlsci.baihongyu.com/