一、模块程序结构:
1、模块许可声明
MODULE_LICENSE("GPL")
如果没有模块许可声明,加载内核时,会发出抱怨。另外,很多内核函数只有遵循了GPL许可协议才能被调用。另外还有Dual BSD
许可等。
2、加载函数
缺省使用 int init_module(void)
加载函数用于为这个模块申请资源,在加载模块时自动执行。
返回值为1时标明加载成功,失败就返回负的错误码
3、卸载函数
缺省使用 void cleanup_module(void)
模块卸载时自动执行
注:内核模块程序没有参数时,需显示指定void
二、指定加载函数和卸载函数
1、指定加载函数
static int xxx_init(void)
{
········
}