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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值