Kernel Functions for Drivers usb_get_status(9F)
NAME
usb_get_status - Get status of a USB
device/endpoint/interfaceSYNOPSIS
#include
int usb_get_status(dev_info_t *dip, usb_pipe_handle_t pipe_handle,
uint_t request_type, uint_t which, uint16_t *status,
usb_flags_t flags);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI)PARAMETERS
dip Pointer to device's dev_info structure.
pipe_handle Default control pipe handle on which request
is made.request_type bmRequestType. Either:
USB_DEV_REQ_RCPT_DEV - Get device status.
USB_DEV_REQ_RCPT_IF - Get interface status.
USB_DEV_REQ_RCPT_EP - Get endpoint status.
which Device, interface or endpoint from which to get status. Either number of interface or endpoint, or 0 if device status requested. status Address into which the status is written. flags None are recognized.DESCRIPTION
The usb_get_status() function returns the status of a dev-
ice, interface or endpoint. All status requests use the default control pipe. Length of data returned isUSB_GET_STATUS_LEN bytes. Always block and wait for
resources if not available, regardless of the flags argu-
ment.SunOS 5.11 Last change: 5 Jan 2004 1
Kernel Functions for Drivers usb_get_status(9F)
When the request_type recipient is USB_DEV_REQ_RCPT_DEV,
device status is requested. Status returned includes bitsfor USB_DEV_SLF_PWRD_STATUS (device is currently self-
powered) and USB_DEV_RWAKEUP_STATUS (device has remote
wakeup enabled). A set bit indicates the corresponding status.When the request_type is USB_DEV_REQ_RCPT_EP, endpoint
status is requested. Status returned includes bits forUSB_EP_HALT_STATUS (endpoint is halted). A set bit indicates
the corresponding status.When the request_type is USB_DEV_REQ_RCPT_IF, interface
status is requested and USB_IF_STATUS (zero) is returned.
RETURN VALUES
USB_SUCCESS Status returned successfully in the
status argument.USB_INVALID_ARGS Status pointer and/or dip argument is
NULL.USB_INVALID_PIPE Pipe handle is NULL.
USB_FAILURE Status not returned successfully.
CONTEXT
May be called from user or kernel context.EXAMPLES
uint16_t status;
if (usb_get_status(
dip, pipe_handle, USB_DEV_REQ_RCPT_DEV, 0 &status, 0) ==
USB_SUCCESS) {
if (status & USB_DEV_SLF_PWRD_STATUS) {
cmn_err (CE_WARN,
"%s%d: USB device is running on its own power.",
ddi_driver_name(dip), ddi_get_instance(dip));
} }ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 5 Jan 2004 2
Kernel Functions for Drivers usb_get_status(9F)
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | PCI-based systems |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| Availability | driver/usb ||_____________________________|_____________________________|
SEE ALSO
attributes(5), usb_clr_feature(9F), usb_get_alt_if(9F),
usb_pipe_get_state(9F), usb_get_cfg(9F),
SunOS 5.11 Last change: 5 Jan 2004 3