日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Driver的prob的调用顺序

發布時間:2023/12/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Driver的prob的调用顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/aaronychen/article/details/2109966

Driver的注冊

?

Driver的prob的調用順序

可以從bus_attach_device()看起,

1 bus_attach_device()調用device_attach(dev)

2 device_attach(): 調用bus_for_each_drv()遍歷bus上的每個driver,當找到一個driver則用__device_attach()來判斷是否匹配

3 __device_attach(): 直接調用driver_probe_device(drv, dev)

4 driver_probe_device(): 首先如果driver所在總線有match函數則先調用這個match來匹配,如不匹配則直接返回錯誤,否則接著調用really_probe(dev,drv)

5 really_probe(): 先判斷dev所在總線是否有probe函數,有則調用它來匹配,失敗則返回,正確則成功,如果總線沒有probe則判斷drv是否有probe函數,有則調用并匹配它.

6 drv->prob(): ?一般它是一類設備的probe,在它里面它會調用具體某個drv的probe函數,這個函數是在我們的驅動程序里面注冊的.??

?? 下面以usb acm驅動為例:

<!--[if !supportLists]-->1??? <!--[endif]-->注冊: usb_register()注冊我們的usb_driver對象;里面含有一個probe函數.并含有一個device_driver對象(其實這個對象才是真正注冊到系統理的驅動對象)

<!--[if !supportLists]-->2??? <!--[endif]-->Usb_register(): 調用usb_register_driver()

<!--[if !supportLists]-->3??? <!--[endif]-->usb_register_driver(): 填充device_driver對象(包括一個usb_probe_interface函數,即USB設備類通用的probe函數), 最后通過driver_register注冊這個device_driver.

Probe過程.
<!--[if !vml]--><!--[endif]-->

新的usb設備連上機器后, hub_port_connect_change會被調用

?

總結

以上是生活随笔為你收集整理的Driver的prob的调用顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。