USB_CTRL_REQUEST(9S) | Data Structures for Drivers | USB_CTRL_REQUEST(9S) |
#include <sys/usb/usba.h>
uint8_t ctrl_bmRequestType; /* characteristics of request */ uint8_t ctrl_bRequest; /* specific request */ uint16_t ctrl_wValue; /* varies according to request */ uint16_t ctrl_wIndex; /* index or offset */ uint16_t ctrl_wLength; /* number of bytes to xfer */ mblk_t *ctrl_data; /* data for the data phase */ /* IN or OUT: allocated by client */ uint_t ctrl_timeout; /* time until USBA framework */ /* retires req, in seconds */ /* If set to zero, defaults to 5 sec */ usb_opaque_t ctrl_client_private; /* client private info */ usb_req_attrs_t ctrl_attributes; /* attrib. for this req */ /* Normal callback function, called upon completion. */ void (*ctrl_cb)( usb_pipe_handle_t ph, struct usb_ctrl_req *req); /* Exception callback function, for error handling. */ void (*ctrl_exc_cb)( usb_pipe_handle_t ph, struct usb_ctrl_req *req); usb_cr_t ctrl_completion_reason; /* overall success status */ /* See usb_completion_reason(9S) */ usb_cb_flags_t ctrl_cb_flags; /* recovery done by callback hndlr */ /* See usb_callback_flags(9S) */
Request attributes define special handling for transfers. The following attributes are valid for control requests:
USB_ATTRS_SHORT_XFER_OK
USB_ATTRS_AUTOCLEARING
USB_ATTRS_PIPE_RESET
Please see usb_request_attributes(9S) for more information.
The following definitions directly pertain to fields in the USB control request structure. (See Section 9.3 of the USB 2.0 specification.)
Direction bitmasks of a control request's ctrl_bmRequestType field (USB 2.0 spec, section 9.3.1) USB_DEV_REQ_HOST_TO_DEV | Host to device direction USB_DEV_REQ_DEV_TO_HOST | Device to host direction USB_DEV_REQ_DIR_MASK | Bitmask of direction bits Request type bitmasks of a control request's ctrl_bmRequestType field (USB 2.0 spec, section 9.3.1) USB_DEV_REQ_TYPE_STANDARD | USB 2.0 defined command | for all USB devices USB_DEV_REQ_TYPE_CLASS | USB 2.0 defined | class-specific command USB_DEV_REQ_TYPE_VENDOR | Vendor-specific command USB_DEV_REQ_TYPE_MASK | Bitmask of request type bits Recipient bitmasks of a control request's ctrl_bmRequestType field (USB 2.0 spec, section 9.3.1) USB_DEV_REQ_RCPT_DEV | Request is for device USB_DEV_REQ_RCPT_IF | Request is for interface USB_DEV_REQ_RCPT_EP | Request is for endpoint USB_DEV_REQ_RCPT_OTHER | Req is for other than above USB_DEV_REQ_RCPT_MASK | Bitmask of request recipient bits Standard requests (USB 2.0 spec, section 9.4) USB_REQ_GET_STATUS | Get status of device, endpoint |or interface (9.4.5) USB_REQ_CLEAR_FEATURE | Clear feature specified by |wValue field (9.4.1) USB_REQ_SET_FEATURE | Set feature specified by | wValue field (9.4.9) USB_REQ_SET_ADDRESS | Set address specified by | wValue field (9.4.6) USB_REQ_GET_DESCR | Get descr for item/idx in | wValue field (9.4.3) USB_REQ_SET_DESCR | Set descr for item/idx in | wValue field (9.4.8) USB_REQ_GET_CFG | Get current device | configuration (9.4.2) USB_REQ_SET_CFG | Set current device | configuration (9.4.7) USB_REQ_GET_IF | Get alternate interface | setting (9.4.4) USB_REQ_SET_IF | Set alternate interface | setting (9.4.10) USB_REQ_SYNC_FRAME | Set and report an endpoint's | sync frame (9.4.11) Unicode language ID, used as wIndex for USB_REQ_SET/GET_DESCRIPTOR USB_LANG_ID | Unicode English Lang ID for | parsing str descr
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | PCI-based systems |
Interface stability | Committed |
January 5, 2004 | OmniOS |