.\" $NetBSD: usbd_status.9,v 1.2 2012/05/13 11:57:05 wiz Exp $
.\"
.\" Copyright (c) 2012 Matthew R. Green
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.Dd May 12, 2012
.Dt USBD_STATUS 9
.Os
.Sh NAME
.Nm usbd_status
.Nd USB device drivers interface return status values
.Sh SYNOPSIS
.In dev/usb/usbdi.h
.Sh DESCRIPTION
This documents the full list of return values used by the generic USB code.
Interface-specific definitions will be given with interface.
.Sh RETURN VALUES
Return values are split into two main groups: expected values
and error values.
.Pp
There are only two expected values:
.Bl -tag -width indent
.It Dv USBD_NORMAL_COMPLETION
The operation completed successfully.
.It Dv USBD_IN_PROGRESS
The operation was successfully submitted, usually part of
an asynchronous operation.
.El
.Pp
These are the error values:
.Bl -tag -width indent
.It Dv USBD_PENDING_REQUESTS
The requested operation could not be completed due to pending
requests, usually from a pipe close operation.
.It Dv USBD_NOT_STARTED
The initial status of a USB transfer.
See
.Xr usbdi 9
for more details about USB transfers.
.It Dv USBD_INVAL
Invalid arguments were supplied for the requested operation.
.It Dv USBD_NOMEM
No memory could be allocated.
.It Dv USBD_CANCELLED
The USB transfer has been cancelled, and not completed.
.It Dv USBD_BAD_ADDRESS
The requested USB pipe could not be found.
See
.Xr usbdi 9
for more details about USB pipes.
.It Dv USBD_IN_USE
The requested operation could not be performed due to the device
having active connections, such as USB audio device currently playing.
.It Dv USBD_NO_ADDR
USB bus has reached its maximum limit of devices.
.It Dv USBD_SET_ADDR_FAILED
Call to
.Fn usbd_set_address
failed during new USB device discovery.
.It Dv USBD_NO_POWER
New device has requested more power than is available.
.It Dv USBD_TOO_DEEP
.\" XXXMRG why do we do this? it's only 5 right now.
New USB Hub too deep from the root.
.It Dv USBD_IOERROR
Non-specific error happened during IO.
.It Dv USBD_NOT_CONFIGURED
USB device is not configured; it has no configuration descriptor.
.It Dv USBD_TIMEOUT
Operation timed out.
.It Dv USBD_SHORT_XFER
USB transfer succeeded but not all requested data was returned.
.It Dv USBD_STALLED
USB controller has stalled (controller specific.)
.It Dv USBD_INTERRUPTED
Process was interrupted by external means (such as a signal) while
waiting for a transfer to complete.
.El
.Sh SEE ALSO
.Xr usb 4 ,
.Xr usbdi 9
.Sh HISTORY
This
.Nm
interface first appeared in
.Nx 1.4 .