1. 程式人生 > >linux核心標頭檔案

linux核心標頭檔案

感謝 https://blog.csdn.net/kokodudu 博主的分享,因為找不到聯絡方式,所以沒有得到轉載授權,所以只要聯絡我,我立刻更改本文章,本文章主要用來提醒核心標頭檔案,只供學習

/*

    核心還是2.6的,會嘗試可行性之後再發更高本版的可用標頭檔案

*/

1、/linux-2.6.30.4/arch/arm/include/asm/
    1.1、<asm/io.h>--->對應__raw__write()和__raw__read()等的使用
    1.2、<asm/uaccess.h> ----> /* copy_to_user, copy_from_user */
    1.3、<asm/system.h>:系統標頭檔案,定義了設定或修改描述符/中斷門等的嵌入式彙編巨集。
    
2、/linux-2.6.30.4/inlude/linux/-->在這個資料夾裡面有很多我們平常使用的標頭檔案:
    2.1、<linux/module.h>-->對應於模組的使用,寫驅動的時候,這個一定要加上
    2.2、<linux/types.h>--->對應於各種符號型別的使用,如ssize_t,size_t等
    2.3、<linux/errno.h>---->對應於各種錯誤資訊的使用,如EINTR、EFAULT等
    2.4、<linux/fs.h>------->對應於/* file_operation */的使用
    2.5、<linux.kernl.h>--->對應於printk等的使用
    2.6、<linux/init.h> /* __init __exit */
    2.7、<linux/mm.h>-->執行對記憶體區域的操作de 標頭檔案
    2.8、<linux/interrupt.h>------>//request_irq
    2.9、<linux/cdev.h>---> cdev_init()、cdev_add()等註冊函式的使用
    2.10 <linux/sched.h>------->排程程式標頭檔案,定義了任務結構task_struct,說白了就是程序
3、標頭檔案主目錄include
    標頭檔案目錄中總共有32個.h標頭檔案。其中主目錄下有13個,asm子目錄中有4個,linux子目錄中有10個,sys子目錄中有5個。
    <a.out.h>:a.out標頭檔案,定義了a.out執行檔案格式和一些巨集。
    <const.h>:常數符號標頭檔案,目前僅定義了i節點中i_mode欄位的各標誌位。
    <ctype.h>:字元型別標頭檔案,定義了一些有關字元型別判斷和轉換的巨集。
    <errno.h>:錯誤號標頭檔案,包含系統中各種出錯號。(Linus從minix中引進的)。
    <fcntl.h>:檔案控制標頭檔案,用於檔案及其描述符的操作控制常數符號的定義。
    <signal.h>:訊號標頭檔案,定義訊號符號常量,訊號結構以及訊號操作函式原型。
    <stdarg.h>:標準引數標頭檔案,以巨集的形式定義變數引數列表。主要說明了一個型別(va_list)和3個巨集(va_start, va_arg和va_end),用於vsprintf、vprintf、vfprintf函式。
    <stddef.h>:標準定義標頭檔案,定義了NULL, offsetof(TYPE, MEMBER)。
    <string.h>:字串標頭檔案,主要定義了一些有關字串操作的嵌入函式。
    <termios.h>:終端輸入輸出函式標頭檔案,主要定義控制非同步通訊口的終端介面。
    <time.h>:時間型別標頭檔案,主要定義了tm結構和一些有關時間的函式原形。
    <unistd.h>:Linux標準標頭檔案,定義了各種符號常數和型別,並聲明瞭各種函式。如,定義了__LIBRARY__,則還包括系統呼叫號和內嵌彙編_syscall0()等。
    <utime.h>:使用者時間標頭檔案,定義了訪問和修改時間結構以及utime()原型。

3.1體系結構相關標頭檔案子目錄include/asm
    這些標頭檔案主要定義了一些與CPU體系結構密切相關的資料結構、巨集函式和變數。共4個檔案。
    <asm/io.h>:I/O標頭檔案,以巨集的嵌入彙編程式形式定義對I/O埠操作的函式。
    <asm/memory.h>:記憶體拷貝標頭檔案,含有memcpy()嵌入式彙編巨集函式。
    <asm/segment.h>:段操作標頭檔案,定義了有關段暫存器操作的嵌入式彙編函式。
    <asm/system.h>:系統標頭檔案,定義了設定或修改描述符/中斷門等的嵌入式彙編巨集。
3.2、Linux核心專用標頭檔案子目錄include/linux
    <linux/config.h>:核心配置標頭檔案,定義鍵盤語言和硬碟型別(HD_TYPE)可選項。
    <linux/fdreg.h>:軟碟機標頭檔案,含有軟盤控制器引數的一些定義。
    <linux/fs.h>:檔案系統標頭檔案,定義檔案表結構(file,buffer_head,m_inode等)。
    <linux/hdreg.h>:硬碟引數標頭檔案,定義訪問硬碟暫存器埠、狀態碼和分割槽表等資訊。
    <linux/head.h>:head標頭檔案,定義了段描述符的簡單結構,和幾個選擇符常量。
    <linux/kernel.h>:核心標頭檔案,含有一些核心常用函式的原形定義。
    <linux/mm.h>:記憶體管理標頭檔案,含有頁面大小定義和一些頁面釋放函式原型。
    <linux/sched.h>: 排程程式標頭檔案,定義了任務結構task_struct、初始任務0的資料, 以及一些有關描述符引數設定和獲取的嵌入式彙編函式巨集語句。
    <linux/sys.h>:系統呼叫標頭檔案,含有72個系統呼叫C函式處理程式,以"sys_"開頭。
    <linux/tty.h>:tty標頭檔案,定義了有關tty_io,序列通訊方面的引數、常數。
3.3、系統專用資料結構子目錄include/sys
    <sys/stat.h>: 檔案狀態標頭檔案,含有檔案或檔案系統狀態結構stat{}和常量。
    <sys/times.h>:定義了程序中執行時間結構tms以及times()函式原型。
    <sys/types.h>:型別標頭檔案,定義了基本的系統資料型別。
    <sys/utsname.h>:系統名稱結構標頭檔案。
    <sys/wait.h>:等待呼叫標頭檔案,定義系統呼叫wait()和waitpid()及相關常數符號。