urb status

urb statusintstatus   Whentheurbisfinished,orbeingprocessedbytheUSBcore,thisvariableisset   tothecurrentstatusoftheurb.TheonlytimeaUSBdrivercansafelyaccessthis   variabl

大家好,欢迎来到IT知识分享网。urb status

int status
    When the urb is finished, or being processed by the USB core, this variable is set
    to the current status of the urb. The only time a USB driver can safely access this
    variable is in the urb completion handler function (described in the section
    “Completing Urbs: The Completion Callback Handler”). This restriction is to
    prevent race conditions that occur while the urb is being processed by the USB
    core. For isochronous urbs, a successful value (0) in this variable merely indi-
    cates whether the urb has been unlinked. To obtain a detailed status on isochro-
    nous urbs, the iso_frame_desc variables should be checked.

    Valid values for this variable include:
0
    The urb transfer was successful.
-ENOENT
    The urb was stopped by a call to usb_kill_urb.
-ECONNRESET
    The urb was unlinked by a call to usb_unlink_urb, and the transfer_flags
    variable of the urb was set to URB_ASYNC_UNLINK.
-EINPROGRESS
    The urb is still being processed by the USB host controllers. If your driver
    ever sees this value, it is a bug in your driver.
-EPROTO
    One of the following errors occurred with this urb:
        ? A bitstuff error happened during the transfer.
        ? No response packet was received in time by the hardware.
-EILSEQ
    There was a CRC mismatch in the urb transfer.
-EPIPE
    The endpoint is now stalled. If the endpoint involved is not a control end-
    point, this error can be cleared through a call to the function usb_clear_halt.
-ECOMM
    Data was received faster during the transfer than it could be written to sys-
    tem memory. This error value happens only for an IN urb.
-ENOSR
    Data could not be retrieved from the system memory during the transfer fast
    enough to keep up with the requested USB data rate. This error value hap-
    pens only for an OUT urb.
-EOVERFLOW
    A “babble” error happened to the urb. A “babble” error occurs when the
    endpoint receives more data than the endpoint’s specified maximum packet
    size.
-EREMOTEIO
    Occurs only if the URB_SHORT_NOT_OK flag is set in the urb’s transfer_flags
    variable and means that the full amount of data requested by the urb was
    not received.
-ENODEV
    The USB device is now gone from the system.
-EXDEV
    Occurs only for a isochronous urb and means that the transfer was only par-
    tially completed. In order to determine what was transferred, the driver
    must look at the individual frame status.
-EINVAL
    Something very bad happened with the urb. The USB kernel documentation
    describes what this value means:
         ISO madness, if this happens: Log off and go home
    It also can happen if a parameter is incorrectly set in the urb stucture or if an
    incorrect function parameter in the usb_submit_urb call submitted the urb to
    the USB core.
-ESHUTDOWN
    There was a severe error with the USB host controller driver; it has now
    been disabled, or the device was disconnected from the system, and the urb
    was submitted after the device was removed. It can also occur if the configu-
    ration was changed for the device, while the urb was submitted to the
    device.

    Generally, the error values -EPROTO, -EILSEQ, and -EOVERFLOW indicate hardware
problems with the device, the device firmware, or the cable connecting the
device to the computer.

 源地址:http://hi.baidu.com/zengzhaonong/item/9fda4f191e4a79623f87ce57

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/15865.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信