zoukankan      html  css  js  c++  java
  • 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 完成调用中不同返回值的例子在本章稍后展示.

  • 相关阅读:
    软件测试面试题(一)
    测试面试题
    测试
    测试理论
    软件测试的认识
    理论知识
    H5页面的测试方式
    mysql数据库,linux,面试理论等
    登录设计点
    ATM境外取款测试点
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11147351.html
Copyright © 2011-2022 走看看