2.6.30.4的頭文件的位置和2.6.25.8的不同,除去內核源碼下的include目錄外, node
在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目錄下都有include目錄的。 linux
#include <linux/kernel.h> // printk() 函數
#include <linux/slab.h> // kmalloc() spa
#include <linux/fs.h> // file_operation,inode_operations,super_operations code
#include <linux/errno.h> // error codes */ orm
#include <linux/types.h> // size_t等各類系統typedef的數據類型 */ 隊列
#include <linux/fcntl.h> // O_ACCMODE */ 進程
#include <linux/init.h> // #define module_init(x) __initcall(x);
// #define module_exit(x) __exitcall(x); get
#include <linux/miscdevice.h> // extern int misc_register(); 源碼
// 註冊miscdevice結構體成員變量設備
// extern int misc_deregister();
// 註銷miscdevice結構體成員變量設備
#include <linux/cdev.h> // void cdev_init()
// struct cdev *cdev_alloc(void);
// void cdev_put(struct cdev *p);
// int cdev_add(struct cdev *, dev_t, unsigned);
// void cdev_del(struct cdev *);
// void cd_forget(struct inode *);
#include <mach/hardware.h> // 和GPIO口操做相關的函數定義的頭文件對應的源文件在
// /arch/arm/plat-s3c24xx/gpio.c
// void s3c2410_gpio_cfgpin(pin,function);
// unsigned int s3c2410_gpio_getcfg(pin);
// void s3c2410_gpio_pullup(pin,to);
// int s3c2410_gpio_getpull(pin);
// void s3c2410_gpio_setpin(lin,to);
// unsigned int s3c2410_gpio_getpin(pin);
// unsigned int s3c2410_modify_misccr(clear,chang)
// int s3c2410_gpio_getirq(pin);
// int s3c2410_gpio_irq2pin(pin);
#include <mach/regs-gpio.h> // 和GPIO口相關的一些宏定義
//(在arch/arm/mach-s3c2410/mach)
#include <linux/platform_device.h>
#include <linux/interrupt.h> // typedef irqreturn_t (*irq_handler_t)
// (int, void *);
// extern void free_irq(unsigned int, void *);
// extern void disable_irq(unsigned int irq);
// extern void enable_irq(unsigned int irq);
// 等和中斷相關函數的聲明
#include <linux/wait.h> // wake_up_interruptible喚醒 q 指定的註冊在等待隊列
//上的進/程。該函數不能直接的當即喚醒進程,而是由調
// 度程序轉換上下文,調整爲可運行狀態。
// DECLARE_WAIT_QUEUE_HEAD(button_waitq);聲明隊列爲
// 全局變量
// wait_event_interruptible該函數修改task的狀態
// 爲 TASK_INTERRUPTIBLE,意味着改進程將不會繼續運
// 行直到被喚醒,而後被添加到等待隊列wq中
#include <linux/poll.h> // poll_wait
#include <asm/uaccess.h> // copy_to_user和copy_from_user
#include <asm/io.h> // __raw_readl __raw_writel
#include <linux/clk.h> // struct clk *clk_get
// (struct device *dev, const char *id);
// unsigned long clk_get_rate(struct clk *clk);
#include <plat/clock.h> // struct clk;結構體的定義(在arch/arm/plat-
// s3c/plat/include/clock.arch中,對應的源文件在
// /arm/plat-s3c/clock.c)
#include <linux/device.h> //包含了device、class 、device_driver等結構的定義
#include <mach/regs-mem.h> // 和bank相關的寄存器的宏定義
#include <asm/div64.h> // Linux內核中64位除法函數do_div
#include <linux/fb.h> // struct fb_info 結構體的定義
#include <mach/fb.h> // struct s3c2410fb_display
//(在arch/arm/mach-s3c2410/include/mach/fb.h)