111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __LINUX_USB_CH9_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __LINUX_USB_CH9_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DIR_OUT 0 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DIR_IN 0x80 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_TYPE_MASK (0x03 << 5) 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_TYPE_STANDARD (0x00 << 5) 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_TYPE_CLASS (0x01 << 5) 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_TYPE_VENDOR (0x02 << 5) 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_TYPE_RESERVED (0x03 << 5) 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_MASK 0x1f 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_DEVICE 0x00 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_INTERFACE 0x01 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_ENDPOINT 0x02 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_OTHER 0x03 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_PORT 0x04 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_RECIP_RPIPE 0x05 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_STATUS 0x00 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_CLEAR_FEATURE 0x01 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_FEATURE 0x03 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_ADDRESS 0x05 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_DESCRIPTOR 0x06 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_DESCRIPTOR 0x07 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_CONFIGURATION 0x08 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_CONFIGURATION 0x09 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_INTERFACE 0x0A 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_INTERFACE 0x0B 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SYNCH_FRAME 0x0C 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_ENCRYPTION 0x0D 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_ENCRYPTION 0x0E 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_RPIPE_ABORT 0x0E 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_HANDSHAKE 0x0F 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_RPIPE_RESET 0x0F 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_HANDSHAKE 0x10 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_CONNECTION 0x11 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_SECURITY_DATA 0x12 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_GET_SECURITY_DATA 0x13 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_WUSB_DATA 0x14 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_LOOPBACK_DATA_WRITE 0x15 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_LOOPBACK_DATA_READ 0x16 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_REQ_SET_INTERFACE_DS 0x17 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_SELF_POWERED 0 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_REMOTE_WAKEUP 1 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_TEST_MODE 2 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_BATTERY 2 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_B_HNP_ENABLE 3 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_WUSB_DEVICE 3 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_A_HNP_SUPPORT 4 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DEVICE_DEBUG_MODE 6 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_HALT 0 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_ctrlrequest { 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bRequestType; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bRequest; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wValue; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wIndex; 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wLength; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_DEVICE 0x01 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CONFIG 0x02 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_STRING 0x03 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_INTERFACE 0x04 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_ENDPOINT 0x05 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_DEVICE_QUALIFIER 0x06 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_OTHER_SPEED_CONFIG 0x07 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_INTERFACE_POWER 0x08 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_OTG 0x09 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_DEBUG 0x0a 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_INTERFACE_ASSOCIATION 0x0b 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_SECURITY 0x0c 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_KEY 0x0d 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_ENCRYPTION_TYPE 0x0e 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_BOS 0x0f 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_DEVICE_CAPABILITY 0x10 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_WIRE_ADAPTER 0x21 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_RPIPE 0x22 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CS_DEVICE 0x21 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CS_CONFIG 0x22 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CS_STRING 0x23 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CS_INTERFACE 0x24 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CS_ENDPOINT 0x25 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_descriptor_header { 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_device_descriptor { 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 bcdUSB; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDeviceClass; 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDeviceSubClass; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDeviceProtocol; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMaxPacketSize0; 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 idVendor; 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 idProduct; 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 bcdDevice; 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iManufacturer; 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iProduct; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iSerialNumber; 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumConfigurations; 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_DEVICE_SIZE 18 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_PER_INTERFACE 0 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_AUDIO 1 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_COMM 2 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_HID 3 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_PHYSICAL 5 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_STILL_IMAGE 6 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_PRINTER 7 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_MASS_STORAGE 8 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_HUB 9 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_CDC_DATA 0x0a 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_CSCID 0x0b 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_CONTENT_SEC 0x0d 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_VIDEO 0x0e 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_WIRELESS_CONTROLLER 0xe0 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_APP_SPEC 0xfe 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CLASS_VENDOR_SPEC 0xff 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_config_descriptor { 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wTotalLength; 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumInterfaces; 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bConfigurationValue; 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iConfiguration; 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmAttributes; 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMaxPower; 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_CONFIG_SIZE 9 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CONFIG_ATT_ONE (1 << 7) 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CONFIG_ATT_SELFPOWER (1 << 6) 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CONFIG_ATT_WAKEUP (1 << 5) 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CONFIG_ATT_BATTERY (1 << 4) 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_string_descriptor { 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wData[1]; 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_interface_descriptor { 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInterfaceNumber; 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAlternateSetting; 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumEndpoints; 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInterfaceClass; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInterfaceSubClass; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInterfaceProtocol; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iInterface; 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_INTERFACE_SIZE 9 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_endpoint_descriptor { 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bEndpointAddress; 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmAttributes; 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wMaxPacketSize; 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInterval; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bRefresh; 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bSynchAddress; 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_ENDPOINT_SIZE 7 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_DT_ENDPOINT_AUDIO_SIZE 9 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_NUMBER_MASK 0x0f 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_DIR_MASK 0x80 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_XFERTYPE_MASK 0x03 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_XFER_CONTROL 0 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_XFER_ISOC 1 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_XFER_BULK 2 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_XFER_INT 3 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_MAX_ADJUSTABLE 0x80 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_qualifier_descriptor { 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 bcdUSB; 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDeviceClass; 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDeviceSubClass; 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDeviceProtocol; 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMaxPacketSize0; 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumConfigurations; 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bRESERVED; 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_otg_descriptor { 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmAttributes; 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_OTG_SRP (1 << 0) 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_OTG_HNP (1 << 1) 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_debug_descriptor { 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDebugInEndpoint; 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDebugOutEndpoint; 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_interface_assoc_descriptor { 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFirstInterface; 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bInterfaceCount; 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFunctionClass; 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFunctionSubClass; 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bFunctionProtocol; 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 iFunction; 25911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} __attribute__ ((packed)); 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_security_descriptor { 26211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wTotalLength; 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumEncryptionTypes; 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 26811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_key_descriptor { 27011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 tTKID[3]; 27411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bReserved; 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bKeyData[0]; 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 27711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_encryption_descriptor { 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 28011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bEncryptionType; 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENC_TYPE_UNSECURE 0 28411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENC_TYPE_WIRED 1 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENC_TYPE_CCM_1 2 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENC_TYPE_RSA_1 3 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bEncryptionValue; 28811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bAuthKeyIndex; 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 29011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_bos_descriptor { 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 29411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wTotalLength; 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bNumDeviceCaps; 29711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_dev_cap_header { 30011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 30111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDevCapabilityType; 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 30411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_CAP_TYPE_WIRELESS_USB 1 30611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_wireless_cap_descriptor { 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 31011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDevCapabilityType; 31111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmAttributes; 31311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_P2P_DRD (1 << 1) 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_BEACON_MASK (3 << 2) 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_BEACON_SELF (1 << 2) 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_BEACON_DIRECTED (2 << 2) 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_BEACON_NONE (3 << 2) 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wPHYRates; 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_53 (1 << 0) 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_80 (1 << 1) 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_107 (1 << 2) 32211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_160 (1 << 3) 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_200 (1 << 4) 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_320 (1 << 5) 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_400 (1 << 6) 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_WIRELESS_PHY_480 (1 << 7) 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmTFITXPowerInfo; 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmFFITXPowerInfo; 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 bmBandGroup; 33011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bReserved; 33111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 33211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_wireless_ep_comp_descriptor { 33411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bLength; 33511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bDescriptorType; 33611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 33711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMaxBurst; 33811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMaxSequence; 33911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wMaxStreamDelay; 34011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __le16 wOverTheAirPacketSize; 34111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bOverTheAirInterval; 34211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bmCompAttributes; 34311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_SWITCH_MASK 0x03 34411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_SWITCH_NO 0 34511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_SWITCH_SWITCH 1 34611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USB_ENDPOINT_SWITCH_SCALE 2 34711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 34811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 34911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_handshake { 35011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bMessageNumber; 35111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bStatus; 35211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 tTKID[3]; 35311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bReserved; 35411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 CDID[16]; 35511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 nonce[16]; 35611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 MIC[8]; 35711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 35811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 35911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usb_connection_context { 36011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 CHID[16]; 36111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 CDID[16]; 36211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 CK[16]; 36311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 36411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 36511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum usb_device_speed { 36611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_SPEED_UNKNOWN = 0, 36711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_SPEED_LOW, USB_SPEED_FULL, 36811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_SPEED_HIGH, 36911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_SPEED_VARIABLE, 37011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 37111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum usb_device_state { 37311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_NOTATTACHED = 0, 37511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 37611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_ATTACHED, 37711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_POWERED, 37811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_UNAUTHENTICATED, 37911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_RECONNECTING, 38011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_DEFAULT, 38111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_ADDRESS, 38211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_CONFIGURED, 38311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert USB_STATE_SUSPENDED 38511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 38711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 38811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 389