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)                             September 16, 2016       USB_PIPE_GET_STATE(9F)