2.6.30.4的標頭檔案的位置和2.6.25.8的不一樣,除去核心原始碼下的include目錄外
,在arch/arm/mach-s3c2410/和arch/arm/plat-s3c24xx/目錄下都有include目錄的。
#include /* printk() */
#include /* kmalloc() */
#include /* file_operations、inode_operations、super_operations結構體*/
#include /* error codes */
#include /* size_t等各種系統typedef的資料型別 */
#include /* o_accmode */
#include /* copy_to_user */
#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 ( 來告知使用者空間, 模組支援那些裝置 ). */
#include /* #define module_init(x) __initcall(x); driver initialization entry point
#define module_exit(x) __exitcall(x); driver exit entry point */
#include /* extern int misc_register(struct miscdevice * misc); 註冊miscdevice結構體成員變數裝置
extern int misc_deregister(struct miscdevice *misc); 登出miscdevice結構體成員變數裝置*/
#include /* void cdev_init(struct cdev *, const struct file_operations *);
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口操作相關的函式定義的標頭檔案
對應的原始檔在/linux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.c
void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function);
unsigned int s3c2410_gpio_getcfg(unsigned int pin);
void s3c2410_gpio_pullup(unsigned int pin, unsigned int to);
int s3c2410_gpio_getpull(unsigned int pin);
void s3c2410_gpio_setpin(unsigned int pin, unsigned int to);
unsigned int s3c2410_gpio_getpin(unsigned int pin);
unsigned int s3c2410_modify_misccr(unsigned int clear, unsigned int change);
int s3c2410_gpio_getirq(unsigned int pin);
int s3c2410_gpio_irq2pin(unsigned int irq);*/
#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 指定的註冊在等待佇列上的程序。該函式不能直接的立即喚醒程序,
而是由排程程式轉換上下文,調整為可執行狀態。
static 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) */
Linux下的標頭檔案
1 linux中一些標頭檔案的作用 ansi c。提供斷言,assert 表示式 gcc。gtk,gnome的基礎庫,提供很多有用的函式,如有資料結構操作函式。使用glib只需要包含 gcc。資料夾操作函式。struct dirent,struct dir,opendir closedir read...
stm32 各標頭檔案或C檔案功能
stm32f10x con.h 配置檔案 載入哪個外設 使能assert 對引數進行檢查,如果使能了assert 需要在main檔案中新增 assert faild 函式。使能assert會增大編譯出執行檔案的大小,除錯完後可以將assert 遮蔽。stm32f10x.h標頭檔案中包含了stm32f...
Opencv2 4 9各標頭檔案功能說明
opencv open source computer vision library 乙個遵循bsd協議的計算機視覺技術開源庫,包含了幾百個計算機視覺演算法。目前最新版本應該是opencv3.0,alpha版和beta版都有了,我目前是用的2.4.9,3.0版本貌似有不少3d還有gpu相關的更新,很...