- #include<linux/module.h> :写内核是要添加这个头文件,可以将模块动态的加载到内核中去,也可以将模块动态的卸载;
常用的宏定义MODULE_LICENSENCE(),MODULE_AUTHOR等也在头文件中;
- #include<linux/types>: 常用的基本数据类型都包含在此头文件中,如size_t,time_t,dev_t等;
- #include<linux/fs.h>: 相关的struct定义,例如struct file_operations,struct inode;MINOR和MAJOR等已在此头文件中;
- #linclude<linux/errno.h>: 用户程序可以用perror输出错误信息;
- #include<linux/init.h>: 初始化头文件;
- #include<linux/cdev.h>: 字符设备结构体cdev等函数操作定义;
- #include<linux/slab.h>: kcalloc,kzalloc内存分配函数定义;
- #iinclude<linux/device.h>: device,class等又节点创建有关的结构体;
- #include<asm/io.h> 硬件IO口;
- #include<asm/uacess.h>: 内核空间和用户空间移动数据函copy_to_user,copy_from_user;