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