man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2014
 
 

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

Solaris DDI specific (Solaris 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(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Architecture
PCI-based systems
Interface Stability
Committed
Availability
system/io/usb

See Also

attributes(5), usb_clr_feature(9F), usb_get_cfg(9F). usb_get_status(9F), usb_pipe_close(9F), usb_pipe_ctrl_xfer(9F), usb_pipe_open(9F). usb_pipe_reset(9F)