头文件:
#include <Linux/module.h> //这个头文件包含了许多符号与函数的定义,这些符号与函数多与加载模块有关
#include <linux/init.h> //这个头文件包含了你的模块初始化与清除的函数
另外,如果你的驱动需要用到参数传递,那么你可能就要声明moduleparam.h这个头文件
头文件:
驱动描述性声明:
MODULE_LICENSE("GPL"); // "GPL" 是指明了 这是GNU General Public License的任意版本
// “GPL v2” 是指明 这仅声明为GPL的第二版本
// "GPL and addtional"
// "Dual BSD/GPL"
// "Dual MPL/GPL"
// "Proprietary" 私有的
// 除非你的模块显式地声明一个开源版本,否则内核会默认你这是一个私有的模块(Proprietary)。
MODULE_AUTHOR // 声明作者
MODULE_DESCRIPTION // 对这个模块作一个简单的描述,这个描述是"human-readable"的
MODULE_VERSION // 这个模块的版本
MODULE_ALIAS // 这个模块的别名
MODULE_DEVICE_TABLE // 告诉用户空间这个模块支持什么样的设备
MODULE_声明 可以写在模块里的任何地方(但必须在函数外面),但是惯例是写在模块最后。
一般用这三个
module_param(norm_mode, int, S_IRUGO);
//MODULE_INFO(build, UTS_VERSION);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("hisilicon");