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

2021-06-11 06:56:38 字數 3694 閱讀 9098

linux 下各個標頭檔案的作用

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 下個頭檔案作用

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

linux核心標頭檔案

include 是在linux 2.6.29 include linux下面尋找原始檔。include 是在linux 2.6.29 arch arm include asm下面尋找原始檔。include 是在linux 2.6.29 arch arm mach s3c2410 include ma...

Linux 核心標頭檔案

linux 核心的編譯時間太長,可以通過下面方法跳過編譯直接獲得標頭檔案 make headers install arch x86 64 install hdr path pwd linux header chk include generated uapi linux version.h upd...