讀RTL8139驅動自己的總結(PCI相關)

2021-04-01 01:01:44 字數 709 閱讀 6504

啟動的時候,pci匯流排驅動會掃瞄匯流排上所有的pci裝置,為每乙個裝置建立乙個struct pci_dev結構,相當於裝置的配置空間的資訊結構,所以系統在啟動後,沒有載入驅動前,列出所有pci裝置的資訊。當系統檢測到某個pci裝置時,將為該裝置分配中斷號、儲存空間基址等,這些資訊都被填入pci裝置的配置空間中,即填入struct pci_dev *pdev中,驅動程式只要訪問這個資料結構,就可以讀出pci裝置的資訊。

模組初始化的時候,呼叫pci_module_init()根據id_table的資訊(在pci_driver中),將device,device對應的pci_dev,device對應的driver三者聯絡起來。以sis900的driver為例,它先註冊乙個pci_driver,找出真正的pci_device,然後在init程式中把pci_device與***_device關聯起來.

1. 初始化函式:rtl8139_init_one,rtl8139_init_board

2. 開啟函式:rtl8139_open,初始化dma空間,呼叫rtl8139_hw_start開啟裝置,呼叫***if_start_queue通知上層可以發資料下來了。

3. 總的中斷函式:rtl8139_interrupt

4. 接收新資料中斷函式:rtl8139_rx_interrupt

5. 傳送完畢中斷函式:rtl8139_tx_interrupt

6. 傳送函式:rtl8139_start_xmit

讀 最好的自己

最好的自己 宋健,寫的序不知道什麼東西,看不懂。估計高調唱慣了。今天看到文章說,中國人衷情於細水長流,初次見面不會顯山露水。也許在現在的這種社會,不再合適事 宜,現在流行的是快餐文化,一切都要以效率來衡量。面試,給你10分鐘不切實際的胡扯,無論是你是應 試還是考官,可以說這個面試就是失敗的。現在的社...

讀自己的書,走自己的路

無論是jsp,asp.net還是php都有session和cookie。如果你會使用了,那你就掌握了這種技術。而書上一般也都講到,session和cookie是因為http是無狀態協議。為了能夠獲得一些狀態連線的功能,就引入了session和cookie。cookie和session雖然不是同乙個東...

讀自己的書,走自己的路

無論是jsp,asp.net還是php都有session和cookie。如果你會使用了,那你就掌握了這種技術。而書上一般也都講到,session和cookie是因為http是無狀態協議。為了能夠獲得一些狀態連線的功能,就引入了session和cookie。cookie和session雖然不是同乙個東...