Linux 内核完成 urb: 完成回调处理者
生活随笔
收集整理的這篇文章主要介紹了
Linux 内核完成 urb: 完成回调处理者
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果對 usb_submit_urb 的調用成功, 傳遞對 urb 的控制給 USB 核心, 這個函數返回 0; 否則, 一個負錯誤值被返回. 如果函數成功, urb 的完成處理者(如同被完成函數指針指 定的)被確切地調用一次, 當 urb 被完成. 當這個函數被調用, USB 核心完成這個 urb, 并且對它的控制現在返回給設備驅動.
?
只有 3 個方法, 一個 urb 可被結束并且使完成函數被調用:
?
- urb 被成功發送給設備, 并且設備返回正確的確認. 對于一個 OUT urb, 數據被成 功發送, 對于一個 IN urb, 請求的數據被成功收到. 如果發生這個, urb 中的狀 態變量被設置為 0.
- 一些錯誤連續發生, 當發送或者接受數據從設備中. 被 urb 結構中的 status 變 量中的錯誤值所記錄.
- 這個 urb 被從 USB 核心去鏈. 這發生在要么當驅動告知 USB 核心取消一個已提 交的 urb 通過調用 usb_unlink_urb 或者 usb_kill_urb, 要么當設備從系統中去
除, 以及一個 urb 已經被提交給它.
?
一個如何測試在一個 urb 完成調用中不同返回值的例子在本章稍后展示.
轉載于:https://www.cnblogs.com/fanweisheng/p/11147351.html
總結
以上是生活随笔為你收集整理的Linux 内核完成 urb: 完成回调处理者的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用于构建集成式桌面应用程序的新指南和新工
- 下一篇: 助教总结