#include
#include
//#define PRINTK printk
#define PRINTK(x...)
//__init: 它是编译器语法,并不是C语言语法,init修饰的函数最终会被编译到一个特定的代码段
//(init.txt),同时在(.initcall.txt)会保留一份指向该模块入口函数的指针,所有的__init修饰的函数
//在(.initcall.txt)中会形成一个函数指针列表,内核启动的时候会遍历该函数指针列表,最终实现
//模块加载函数的调用
static int __init test_module_init(void)
{
//printk(KERN_INFO"----------%s------------n",__FUNCTION__);
PRINTK("----------%s------------n",__FUNCTION__);
return 0;
}
static void __exit test_module_exit(void)
{
//printk(KERN_INFO"----------%s------------n",__FUNCTION__);
PRINTK("----------%s------------n",__FUNCTION__);
}
//驱动程序被加载的时候会被调用
module_init(test_module_init);
//驱动程序被卸载的时候会被调用
module_exit(test_module_exit);
//遵循GPL协议
MODULE_LICENSE("GPL");
//--------非必须---------
MODULE_ALIAS("test1");//别名
MODULE_AUTHOR("DaoGe");//作者
MODULE_DEscriptION("test for module");//描述
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)