Linux設備驅動程序的函數跳轉表
發布時間:2009/2/18 0:00:00 訪問次數:2189
直接面向設各硬件的程序叫做設各驅動程序。設各驅動程序的作用就是在設各硬件寄存器的基礎上來實現系統上層的各項操作命令。這些函數雖然是直接面向設備的硬件編程,有一部分代碼是用匯編語言來編寫的,但通常都會提供一個高級語言的接口,因此,它們的外觀看起來與一般的c函數沒有區別,例如read()、write()、open()、close()等。
在linux中,常用一個結構作為調用上述設各驅動程序中各個函數的跳轉表,即把指向上述設備驅動程序函數的指針集中在一個結構中。這個結構就是我們已經熟悉的file_opera_tions。為了清楚起見。把在文件系統中介紹的結構file opcrattons的部分內容列舉如下:
其實,計算機的信息最終還是要落實到某個實際物理設備或裝置上的。當然,文件作為一個具有邏輯關系的數據集合是存儲到磁盤這個物理設各中的。如果把磁盤中的數據塊看成是一個沒備·那么上面這個結構中的各函數指針落實到具體文件i節點中的文件操作函數集,實質上就是磁盤這個設備的驅動程序,所以前面也曾經把i節點叫做設備文件。
原則上,作為不是以存儲數據為目的的諸如鼠標、鍵盤、顯示器、打印機等其他設備,file_operations結構中函數指針的名稱可以由程序設計人員任意命名.例如,write()實質上就是處理器向設備輸出數據,把它改為output()也未嘗不可。但由于將來要用文件系統來管理設備,也就是要把設各也要看做一種文件.所以這里還是應該遵循文件系統的命名方法。
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
直接面向設各硬件的程序叫做設各驅動程序。設各驅動程序的作用就是在設各硬件寄存器的基礎上來實現系統上層的各項操作命令。這些函數雖然是直接面向設備的硬件編程,有一部分代碼是用匯編語言來編寫的,但通常都會提供一個高級語言的接口,因此,它們的外觀看起來與一般的c函數沒有區別,例如read()、write()、open()、close()等。
在linux中,常用一個結構作為調用上述設各驅動程序中各個函數的跳轉表,即把指向上述設備驅動程序函數的指針集中在一個結構中。這個結構就是我們已經熟悉的file_opera_tions。為了清楚起見。把在文件系統中介紹的結構file opcrattons的部分內容列舉如下:
其實,計算機的信息最終還是要落實到某個實際物理設備或裝置上的。當然,文件作為一個具有邏輯關系的數據集合是存儲到磁盤這個物理設各中的。如果把磁盤中的數據塊看成是一個沒備·那么上面這個結構中的各函數指針落實到具體文件i節點中的文件操作函數集,實質上就是磁盤這個設備的驅動程序,所以前面也曾經把i節點叫做設備文件。
原則上,作為不是以存儲數據為目的的諸如鼠標、鍵盤、顯示器、打印機等其他設備,file_operations結構中函數指針的名稱可以由程序設計人員任意命名.例如,write()實質上就是處理器向設備輸出數據,把它改為output()也未嘗不可。但由于將來要用文件系統來管理設備,也就是要把設各也要看做一種文件.所以這里還是應該遵循文件系統的命名方法。
歡迎轉載,信息來自維庫電子市場網(www.dzsc.com)
熱門點擊
- Linux設備驅動程序的函數跳轉表
- Linux系統調用例程system_call
- PIE中斷向量的映射方式
- 什么是Linux內核模塊
- PIE模塊級中斷
- Linux系統調用接口、系統調用例程和內核服
- ARM復位原理
- Linux系統調用接口、系統調用例程和內核服
- Linux字符設備驅動程序的注冊
- Linux外部設備的基本概念
推薦技術資料
- DFRobot—玩的就是
- 如果說新車間的特點是“靈動”,FQPF12N60C那么... [詳細]