kwseeker

学编程:找代码,读代码,改代码,写代码;少看书。但少看不是不看,看一本书要限制在一天内。任务是通读书中主要的概念,明白大致是干什么用的,形成一个大概的框架;然后一周内干掉书中全部代码,代码不理解再浏览书中相关章节,注意是浏览。或者刷博客。代码实在刷不懂,可以先刷后面,待日后重新刷;因为书中代码有些部分可能出自后面的章节。代码总是在多次刷过之后,拨开乌云见日月的。。。

导航

编写模块时的声明(含MODULE_LICENSE等)(转)

编写模块必须先声明下面两句:

#include <linux/module.h>               //这个头文件包含了许多符号与函数的定义,这些符号与函数多与加载模块有关

#include <linux/init.h>                      //这个头文件包含了你的模块初始化与清除的函数

 

另外,如果你的模块需要用到参数传递,那么你可能就要声明moduleparam.h这个头文件了。

 

再者,模块里常包含一些描述性声明,如:

MODULE_LICENSE("GPL");              //其实就是授权声明,为了维护版权

                    // "GPL" 是指明了 这是GNU General Public License的任意版本

                                                            // “GPL v2” 是指明 这仅声明为GPL的第二版本

                                                            // "GPL and addtional"

                                                            // "Dual BSD/GPL"

                                                            // "Dual MPL/GPL"

                                                            // "Proprietary"  私有的

                                                            // 除非你的模块显式地声明一个开源版本,否则内核会默认你这是一个私有的模块(Proprietary)。

MODULE_AUTHOR                          // 声明作者

MODULE_DESCRIPTION                // 对这个模块作一个简单的描述,这个描述是"human-readable"的

MODULE_VERSION                         // 这个模块的版本

MODULE_ALIAS                                // 这个模块的别名

MODULE_DEVICE_TABLE              // 告诉用户空间这个模块支持什么样的设备

 

MODULE_声明可以写在模块的任何地方(但必须在函数外面),但是惯例是写在模块最后。

posted on 2015-03-17 00:20  kwseeker  阅读(2050)  评论(0编辑  收藏  举报