usbd_status —
USB device drivers interface return status values
This documents the full list of return values used by the generic USB code.
  Interface-specific definitions will be given with interface.
Return values are split into two main groups: expected values and error values.
There are only two expected values:
  - USBD_NORMAL_COMPLETION
- The operation completed successfully.
- USBD_IN_PROGRESS
- The operation was successfully submitted, usually part of an asynchronous
      operation.
These are the error values:
  - USBD_PENDING_REQUESTS
- The requested operation could not be completed due to pending requests,
      usually from a pipe close operation.
- USBD_NOT_STARTED
- The initial status of a USB transfer. See
      usbdi(9) for more details
      about USB transfers.
- USBD_INVAL
- Invalid arguments were supplied for the requested operation.
- USBD_NOMEM
- No memory could be allocated.
- USBD_CANCELLED
- The USB transfer has been cancelled, and not completed.
- USBD_BAD_ADDRESS
- The requested USB pipe could not be found. See
      usbdi(9) for more details
      about USB pipes.
- USBD_IN_USE
- The requested operation could not be performed due to the device having
      active connections, such as USB audio device currently playing.
- USBD_NO_ADDR
- USB bus has reached its maximum limit of devices.
- USBD_SET_ADDR_FAILED
- Call to usbd_set_address() failed during new USB
      device discovery.
- USBD_NO_POWER
- New device has requested more power than is available.
- USBD_TOO_DEEP
- New USB Hub too deep from the root.
- USBD_IOERROR
- Non-specific error happened during IO.
- USBD_NOT_CONFIGURED
- USB device is not configured; it has no configuration descriptor.
- USBD_TIMEOUT
- Operation timed out.
- USBD_SHORT_XFER
- USB transfer succeeded but not all requested data was returned.
- USBD_STALLED
- USB controller has stalled (controller specific.)
- USBD_INTERRUPTED
- Process was interrupted by external means (such as a signal) while waiting
      for a transfer to complete.
Thisusbd_status interface first appeared in
  NetBSD 1.4.