Linux 下個頭檔案作用

2021-06-28 14:49:44 字數 3617 閱讀 4776

2.6.30.4的標頭檔案的位置和2.6.25.8的不一樣,除去核心原始碼下的include目錄外,

在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目錄下都有include目錄的。

#include 

//printk()

#include 

//kmalloc() 

#include 

// file_operation,inode_operations,super_operations

#include 

// error codes */

#include 

// size_t等各種系統typedef的資料型別 */

#include 

// o_accmode */

#include 

// copy_to_user */

#include 

//#define module_init(x) 

__initcall(x);  

//#define module_exit(x) 

__exitcall(x); 

#include 

// extern int misc_register();  

//註冊miscdevice結構體成員變數裝置

//extern int misc_deregister();  

//登出miscdevice結構體成員變數裝置 

#include 

// 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 

// 和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);

//  ints3c2410_gpio_irq2pin(pin);

#include 

// 和gpio口相關的一些巨集定義

//(在arch/arm/mach-s3c2410/mach)

#include 

#include 

// 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 

// wake_up_interruptible

喚醒 q 指定的註冊在等待佇列

//上的進

/程。該函式不能直接的立即喚醒程序,而是由調

//度程式轉換上下

文,調整為可執行狀態。

// declare_wait_queue_head(button_waitq);宣告隊列為

//全域性變數 

//wait_event_interruptible該函式修改task的狀態

//為task_interruptible,意味著改程序將不會繼續運

// 行直到被喚醒,

然後被新增到等待佇列wq中

#include 

// poll_wait 

#include 

// copy_to_user和copy_from_user

#include 

// __raw_readl 

__raw_writel

#include 

// struct clk *clk_get

//(struct device *dev, const char *id);

//unsigned long clk_get_rate(struct clk *clk);

#include 

// struct clk;結構體的定義(在arch/arm/plat-

// s3c/plat/include/clock.arch中,對應的原始檔在

// /arm/plat-s3c/clock.c)

#include 

//包含了device、class 、device_driver等結構的定義

#include 

// 和bank相關的暫存器的巨集定義 

#include 

// linux核心中64位除法函式do_div

#include 

// struct fb_info 結構體的定義 

#include 

// struct s3c2410fb_display

//(在arch/arm/mach-s3c2410/include/mach/fb.h)

#include 

//module_license("gpl");核心認識的特定許可有, 

           "gpl"( 適用 gnu 通用公共許可的任何版本 ), 

"gpl v2"( 只適用 gpl 版本 2 ), 

"gpl and additional rights", 

"dual bsd/gpl", 

"dual mpl/gpl", 

"proprietary".

除非你的模組明確標識是在核心認識的乙個自由許可 下,

否則就假定它是私有的,核心在模組載入時被"弄汙

濁"了. 象我們在第 1 章"許可條款"中提到的, 核心開

發者不會熱心幫助在載入了私有模組後遇到問題的使用者.

module_author ( 宣告誰編寫了模組 ),

module_descripion( 乙個人可讀的關於模組做什麼的宣告 ),

module_version(乙個**修訂版本

號;看 

的注釋以便知道建立版本字串使用的慣例),

module_alias ( 模組為人所知的另乙個名子 ),

module_device_table(來告知使用者空間, 模組支援那些裝置 )

Linux核心樹下各個標頭檔案的作用

linux 下各個標頭檔案的作用 2.6.30.4的標頭檔案的位置和2.6.25.8的不一樣,除去核心原始碼下的include目錄外,在arch arm mach s3c2410 和arch arm plat s3c24xx 目錄下都有include目錄的。include printk includ...

c 乙個標頭檔案引用另乙個標頭檔案的類

c 乙個標頭檔案引用另乙個標頭檔案的類 c 標頭檔案相互引用,乙個 include,另乙個class c c 標頭檔案相互 include時最好是 1 在 ca.h 中 include cb.h 2 在 cb.h 中用類的前向宣告 class ca 3 最好加上標頭檔案衛士 ifndef defin...

c 乙個標頭檔案引用另乙個標頭檔案的類

c 乙個標頭檔案引用另乙個標頭檔案的類 c 標頭檔案相互引用,乙個 include,另乙個class c c 標頭檔案相互 include時最好是 1 在 ca.h 中 include cb.h 2 在 cb.h 中用類的前向宣告 class ca 3 最好加上標頭檔案衛士 ifndef defin...