Linux内核模块编程入门-4(Licensing和Module Documentation)

若运行在2.4内核或后面的版本,当加载所有权模块时,或注意到有如下的内容:


在内核2.4或后面的版本,使用的机制是在GPL许可证下识别代码,以警告相关人员该代码是非开源的。这是通过MODULE_LICENSE()宏来完成的,通过设置许可证为GPL,这样可以防止打印警告信息,定义在linux/module.h。


相似的,MODULE_DESCRIPTION()用于描述模块是干什么的,

MODULE_AUTHOR()声明模块的作者

MODULE_SUPPORTED_DEVICE()声明了模块支持的设备类型。


这些宏所有定义在linux/module.h中,且内核自身不能使用。


下例展示了各个宏的用法:

/*
 * hello-4.c - Demonstrates module documentation.
 */
#include <linux/module.h>	// Needed by all modules
#include <linux/kernel.h>	// Needed for KERN_INFO
#include <linux/init.h>		// Needed for the macros

#define DRIVER_AUTHOR "Fantasy<@gmail.com>"
#define DRIVER_DESC	"A simple driver"

static int hello_4_data __initdata = 4;

static int __init hello_4_init(void)
{
	printk(KERN_INFO "Hello, World %d\n", hello_4_data);
	return 0;
}

static void __exit hello_4_exit(void)
{
	printk(KERN_INFO "Goodbye, world 4\n");
}

module_init(hello_4_init);
module_exit(hello_4_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_SUPPORTED_DEVICE("testdevice");


你可能感兴趣的:(Linux内核模块编程入门-4(Licensing和Module Documentation))