Content-type: text/html Man page of usb_get_status

usb_get_status

Section: Kernel Functions for Drivers (9F)
Updated: 5 Jan 2004
Index Return to Main Contents
 

NAME

usb_get_status - Get status of a USB device/endpoint/interface  

SYNOPSIS

#include <sys/usb/usba.h>

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 device, interface or endpoint. All status requests use the default control pipe. Length of data returned is USB_GET_STATUS_LEN bytes. Always block and wait for resources if not available, regardless of the flags argument.

When the request_type recipient is USB_DEV_REQ_RCPT_DEV, device status is requested. Status returned includes bits for 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 for USB_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 attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
ArchitecturePCI-based systems
Interface stabilityEvolving
AvailabilitySUNWusb

 

SEE ALSO

attributes(5), usb_clr_feature(9F), usb_get_alt_if(9F), usb_pipe_get_state(9F), usb_get_cfg(9F),


 

Index

NAME
SYNOPSIS
INTERFACE LEVEL
PARAMETERS
DESCRIPTION
RETURN VALUES
CONTEXT
EXAMPLES
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:39:47 GMT, October 02, 2010