USBIP C library 0.7.0
Virtual USB devices & host drivers over USB/IP
Loading...
Searching...
No Matches
usb_setup Struct Reference

The 8-byte SETUP packet that begins every control transfer (host byte order in the API). More...

#include <usbip.h>

Data Fields

uint8_t bmRequestType
 Direction | type | recipient bitmask (see above)
 
uint8_t bRequest
 Request code (e.g.
 
uint16_t wValue
 Request-specific parameter (often a type/index)

 
uint16_t wIndex
 Request-specific parameter (often iface/endpoint)
 
uint16_t wLength
 Number of data bytes in the (optional) data stage

 

Detailed Description

The 8-byte SETUP packet that begins every control transfer (host byte order in the API).

bmRequestType is a bitmask: bit 7 = direction (0 OUT, 1 IN), bits 6-5 = type (0 standard, 1 class, 2 vendor), bits 4-0 = recipient (0 device, 1 interface, 2 endpoint) - e.g. 0x80 = IN/standard/device, 0x21 = OUT/class/interface. The core answers standard requests; a class/vendor handler (usbip_function_on_control()) sees the rest.

Field Documentation

◆ bmRequestType

uint8_t usb_setup::bmRequestType

Direction | type | recipient bitmask (see above)

◆ bRequest

uint8_t usb_setup::bRequest

Request code (e.g.

GET_DESCRIPTOR = 0x06)

◆ wValue

uint16_t usb_setup::wValue

Request-specific parameter (often a type/index)

◆ wIndex

uint16_t usb_setup::wIndex

Request-specific parameter (often iface/endpoint)

◆ wLength

uint16_t usb_setup::wLength

Number of data bytes in the (optional) data stage


The documentation for this struct was generated from the following file: