#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void)
{
printk("%s-- hello world,are you ok!\n",__func__);
return0;
}
static void __exit hello_exit(void)
{
printk("%s-- hello world,are you ok!\n",__func__);
}
module_init(hello_init);
module_exit(hello_exit);
linux/init.h 这个头文件中包含了module_init 和module_exit宏,同时包含了__exit和__init。
hello_init在模块装载后会被立即执行,可以理解为这个.ko文件的入口函数。
Hell_exit则是在这个模块被卸载时会执行,可以理解为时出口函数。
__init 标志表示这个函数会在初始化时调用,只能被调用一次,后会被释放。
__exit 标志表示这个函数会在退出时调用。
MODULE_LICENSE("Dual BSD/GPL"):让改模块带上自由许可证。