讀Linux那些事兒之我是U盤筆記(八)

2021-09-21 08:40:24 字數 776 閱讀 5186

37、錯誤處理

device_reset 在這裡對應的就是登出,bus_reset 對應的就是重起;

功能:給裝置傳送乙個 reset 的 request,然後clear掉halt feature,保證裝置的端點沒有停止.就這些,這就夠了.

bus_reset:usb_lock_device_for_reset/usb_reset_device/usb_unlock_device.usb core都為您準備好了,您要從匯流排上來reset裝置,首先呼叫的是usb_lock_device_for_reset,這是usb核心層的函式,來自drivers/usb/core/usb.c中,成功執行就返回1或者0,失敗了就返回乙個負的錯誤**.295行的usb_reset_device(),同樣來自usb核心層,drivers/usb/core/hub.c中,是usb核心層提供給咱們的用來重新初始化乙個裝置的函式.成功返回0,否則就返回負的錯誤**.出錯了就得呼叫usb_unlock_device來釋放鎖.

38、無盤工作站:如果多個人同時讀寫伺服器上的同乙個檔案,那豈不是亂套了

使用技術:引用計數用點關係,(copy-on-write)技術,這個技術還運用於子程序繼承父程序的資料,當子程序有自己的私有資料的時候,會用到寫時複製技術

到這裡《linux那些事兒之我是u盤》已經全部讀完了,感覺學到了不少東西,特別是linux下的那些超大結構體,以前看了都是望而生畏;在讀這本書的時候,學到了linux核心的基礎知識,定時器,訊號量等,還有u盤資料傳輸的方法,特別是訊號量在u盤驅動裡面來同步程式的執行,感覺真的很棒!接下來是我是hub,期待中...

讀Linux那些事兒之我是U盤筆記(一)

我是u盤 1 模組 insmod 裝置插入,module init 被稱為驅動程式的初始化入口 rmmod 裝置拔出,module exit 2 usb core 什麼是usb core?她負責實現一些核心的功能,為別的裝置驅動程式提供服務,比如申請記憶體,比如實現一些所有的裝置都會需要的公共的函式...

Linux那些事兒之我是U盤 24 心鎖

如果大家沒意見的話,我們繼續usb stor acquire resources函式.761至764行,這沒啥好說的吧.就是剛才urb申請了之後判斷是否申請成功了,如果指標為null那麼就是失敗了.直接返回 enomem.別往下了.767行,哦,又乙個傢伙閃亮登場了,dev semaphore,這是...

Linux那些事兒之我是U盤 5 外面的世界很精彩

看 之前,我曾經認真的思考過這麼乙個問題,我需要關注的僅僅是drivers usb storage 目錄下面那相關的3000多行 嗎?就是這樣幾個檔案就能讓乙個個不同的u盤在linux下面工作起來嗎?像一開始那樣把這個目錄比作乙個小城的話,也許,城裡的月光很漂亮,她能夠把人的夢照亮,能夠溫暖人的心房...