一个简单的内核模块的举例
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
static int __init test_init(void)
{
printk("%s %d %s\n", __FUNCTION__, __LINE__, __FILE);
return 0;
}
static void __exit test_exit(void)
{
printk("%s %d %s\n", __FUNCTION__, __LINE__, __FILE__);
}
module_init(test_init);
module_exit(test_exit);
MODULE_LICENSE("GPL");
内核模块的一些知识点总结:
- 模块加载函数:insmod 或 modprobe
- 模块卸载函数:rmmod
- 模块许可证: LICENSE
- 模块参数: module_param(参数名, 参数类型, 参数的权限(r/w)
- 参数数组:module_param(数组名, 数组类型, 数组长, 参数权限)
- 模块的声明与描述:
MODULE_LICENSE(“GPL”);
MODULE_AUTHOR(“author”);
MODULE_DESCRIPTION(“description”);
MODULE_VERSION(“version”);