在linux设备驱动编写过程中所需要的头文件老是记不住,每次查书的话又感觉特麻烦,所以就在这里总结一下,方便以后写代码。
#include <linux/module.h> // 最基本的模块支持动态添加和卸载模块
#include <linux/kernel.h> // 驱动要写入内核,与内核相关的头文件
#include <linux/init.h> // 初始化头文件
#include <moduleparam.h> // 模块传参的头文件
#include <linux/errno.h> // 包含了对返回值的定义,可以输出相关错误信息
#include <linux/types.h> // 对一些特殊类型的定义,如dev_t,off_t
#include <linux/cdev.h> // 对字符设备cdev结构体和一些操作函数的定义
#include <linux/fs.h> // 包含了文件操作相关的struct的定义,如操作集合file_operations
#include <linux/wait.h> // 等待队列的相关头文件,包含了自旋锁
#include <linux/slab.h> // 包含了对kcalloc和kzalloc的定义
#include <linux/uaccess.h> // 包含了对copy_to_user copy_from_user等的定义
#include <linux/device.h> // 包含了对device,class的定义
#include <linux/io.h> // 包含了对ioremap和iowrite的定义
#include <linux/interrupt.h> // 使用中断必须的头文件
#include <mach/irq.h> // 同上
#include <linux/semaphore.h> 信号量的头文件
#include <linux/spinlock.h> 自旋锁的头文件
#include <linux/timer.h> 内核定时器的头文件
#include <asm/irq.h> 处理器相关的中断头文件
#include <linux/interrupt.h> 操作系统中断
#include <linux/poll.h> 轮询文件的头文件
差不多常用的头文件也就这些了,以后发现新的话及时补充。