USB_PIPE_GET_STATE(9F) Kernel Functions for Drivers USB_PIPE_GET_STATE(9F)

NAME


usb_pipe_get_state - Return USB pipe state

SYNOPSIS


#include <sys/usb/usba.h>


int usb_pipe_get_state(usb_pipe_handle_t pipe_handle,
usb_pipe_state_t *pipe_state, usb_flags_t usb_flags);


INTERFACE LEVEL


illumos DDI specific (illumos DDI)

PARAMETERS


pipe_handle
Handle of the pipe to retrieve the state.


pipe_state
Pointer to where pipe state is returned.


usb_flags
No flags are recognized. Reserved for future expansion.


DESCRIPTION


The usb_pipe_get_state() function retrieves the state of the pipe
referred to by pipe_handle into the location pointed to by pipe_state.


Possible pipe states are:

USB_PIPE_STATE_CLOSED
Pipe is closed.


USB_PIPE_STATE_ACTIVE
Pipe is active and can send/receive data.
Polling is active for isochronous and interrupt
pipes.


USB_PIPE_STATE_IDLE
Polling is stopped for isochronous and
interrupt-IN pipes.


USB_PIPE_STATE_ERROR
An error occurred. Client must call
usb_pipe_reset(). Note that this status is not
seen by a client driver if
USB_ATTRS_AUTOCLEARING is set in the request
attributes.


USB_PIPE_STATE_CLOSING
Pipe is being closed. Requests are being
drained from the pipe and other cleanup is in
progress.


RETURN VALUES


USB_SUCCESS
Pipe state returned in second argument.


USB_INVALID_ARGS
Pipe_state argument is NULL.


USB_INVALID_PIPE
Pipe_handle argument is NULL.


CONTEXT


May be called from user, kernel or interrupt context.

EXAMPLES


usb_pipe_handle_t pipe;
usb_pipe_state_t state;

/* Recover if the pipe is in an error state. */
if ((usb_pipe_get_state(pipe, &state, 0) == USB_SUCCESS) &&
(state == USB_PIPE_STATE_ERROR)) {
cmn_err (CE_WARN, "%s%d: USB Pipe error.",
ddi_driver_name(dip), ddi_get_instance(dip));
do_recovery();
}


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Architecture | PCI-based systems |
+--------------------+-------------------+
|Interface stability | Committed |
+--------------------+-------------------+

SEE ALSO


attributes(7), usb_clr_feature(9F), usb_get_cfg(9F), usb_get_status(9F),
usb_pipe_close(9F), usb_pipe_ctrl_xfer(9F), usb_pipe_reset(9F),
usb_pipe_xopen(9F)

illumos September 16, 2016 USB_PIPE_GET_STATE(9F)