Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224/* * usb100.h * * USB 1.0 support * * This file is part of the ReactOS PSDK package. * * Contributors: * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */
#pragma once
#ifdef __cplusplusextern "C" {#endif
#include <pshpack1.h>
#define BMREQUEST_HOST_TO_DEVICE 0#define BMREQUEST_DEVICE_TO_HOST 1
#define BMREQUEST_STANDARD 0#define BMREQUEST_CLASS 1#define BMREQUEST_VENDOR 2
#define BMREQUEST_TO_DEVICE 0#define BMREQUEST_TO_INTERFACE 1#define BMREQUEST_TO_ENDPOINT 2#define BMREQUEST_TO_OTHER 3
#define MAXIMUM_USB_STRING_LENGTH 255
#define USB_GETSTATUS_SELF_POWERED 0x01#define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02
/* USB_COMMON_DESCRIPTOR.bDescriptorType constants */#define USB_DEVICE_DESCRIPTOR_TYPE 0x01#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02#define USB_STRING_DESCRIPTOR_TYPE 0x03#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05#define USB_RESERVED_DESCRIPTOR_TYPE 0x06#define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08
#define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d << 8 | i))
/* USB_ENDPOINT_DESCRIPTOR.bmAttributes constants */#define USB_ENDPOINT_TYPE_MASK 0x03#define USB_ENDPOINT_TYPE_CONTROL 0x00#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01#define USB_ENDPOINT_TYPE_BULK 0x02#define USB_ENDPOINT_TYPE_INTERRUPT 0x03
/* USB_CONFIGURATION_DESCRIPTOR.bmAttributes constants */#define USB_CONFIG_POWERED_MASK 0xc0#define USB_CONFIG_BUS_POWERED 0x80#define USB_CONFIG_SELF_POWERED 0x40#define USB_CONFIG_REMOTE_WAKEUP 0x20
#define USB_ENDPOINT_DIRECTION_MASK 0x80
#define USB_ENDPOINT_DIRECTION_OUT(x) (!((x) & USB_ENDPOINT_DIRECTION_MASK))#define USB_ENDPOINT_DIRECTION_IN(x) ((x) & USB_ENDPOINT_DIRECTION_MASK)
#define USB_REQUEST_GET_STATUS 0x00#define USB_REQUEST_CLEAR_FEATURE 0x01#define USB_REQUEST_SET_FEATURE 0x03#define USB_REQUEST_SET_ADDRESS 0x05#define USB_REQUEST_GET_DESCRIPTOR 0x06#define USB_REQUEST_SET_DESCRIPTOR 0x07#define USB_REQUEST_GET_CONFIGURATION 0x08#define USB_REQUEST_SET_CONFIGURATION 0x09#define USB_REQUEST_GET_INTERFACE 0x0A#define USB_REQUEST_SET_INTERFACE 0x0B#define USB_REQUEST_SYNC_FRAME 0x0C
#define USB_DEVICE_CLASS_RESERVED 0x00#define USB_DEVICE_CLASS_AUDIO 0x01#define USB_DEVICE_CLASS_COMMUNICATIONS 0x02#define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03#define USB_DEVICE_CLASS_MONITOR 0x04#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05#define USB_DEVICE_CLASS_POWER 0x06#define USB_DEVICE_CLASS_PRINTER 0x07#define USB_DEVICE_CLASS_STORAGE 0x08#define USB_DEVICE_CLASS_HUB 0x09#define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
#define USB_FEATURE_ENDPOINT_STALL 0x0000#define USB_FEATURE_REMOTE_WAKEUP 0x0001
#define USB_FEATURE_INTERFACE_POWER_D0 0x0002#define USB_FEATURE_INTERFACE_POWER_D1 0x0003#define USB_FEATURE_INTERFACE_POWER_D2 0x0004#define USB_FEATURE_INTERFACE_POWER_D3 0x0005
typedef struct _USB_DEVICE_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; USHORT bcdUSB; UCHAR bDeviceClass; UCHAR bDeviceSubClass; UCHAR bDeviceProtocol; UCHAR bMaxPacketSize0; USHORT idVendor; USHORT idProduct; USHORT bcdDevice; UCHAR iManufacturer; UCHAR iProduct; UCHAR iSerialNumber; UCHAR bNumConfigurations;} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
typedef struct _USB_ENDPOINT_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; UCHAR bEndpointAddress; UCHAR bmAttributes; USHORT wMaxPacketSize; UCHAR bInterval;} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
typedef struct _USB_CONFIGURATION_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; USHORT wTotalLength; UCHAR bNumInterfaces; UCHAR bConfigurationValue; UCHAR iConfiguration; UCHAR bmAttributes; UCHAR MaxPower;} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;
typedef struct _USB_INTERFACE_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; UCHAR bInterfaceNumber; UCHAR bAlternateSetting; UCHAR bNumEndpoints; UCHAR bInterfaceClass; UCHAR bInterfaceSubClass; UCHAR bInterfaceProtocol; UCHAR iInterface;} USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;
typedef struct _USB_STRING_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; WCHAR bString[1];} USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR;
typedef struct _USB_COMMON_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType;} USB_COMMON_DESCRIPTOR, *PUSB_COMMON_DESCRIPTOR;
typedef struct _USB_HUB_DESCRIPTOR { UCHAR bDescriptorLength; UCHAR bDescriptorType; UCHAR bNumberOfPorts; USHORT wHubCharacteristics; UCHAR bPowerOnToPowerGood; UCHAR bHubControlCurrent; UCHAR bRemoveAndPowerMask[64];} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;
#define USB_SUPPORT_D0_COMMAND 0x01#define USB_SUPPORT_D1_COMMAND 0x02#define USB_SUPPORT_D2_COMMAND 0x04#define USB_SUPPORT_D3_COMMAND 0x08
#define USB_SUPPORT_D1_WAKEUP 0x10#define USB_SUPPORT_D2_WAKEUP 0x20
typedef struct _USB_CONFIGURATION_POWER_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; UCHAR SelfPowerConsumedD0[3]; UCHAR bPowerSummaryId; UCHAR bBusPowerSavingD1; UCHAR bSelfPowerSavingD1; UCHAR bBusPowerSavingD2; UCHAR bSelfPowerSavingD2; UCHAR bBusPowerSavingD3; UCHAR bSelfPowerSavingD3; USHORT TransitionTimeFromD1; USHORT TransitionTimeFromD2; USHORT TransitionTimeFromD3;} USB_CONFIGURATION_POWER_DESCRIPTOR, *PUSB_CONFIGURATION_POWER_DESCRIPTOR;
typedef struct _USB_INTERFACE_POWER_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; UCHAR bmCapabilitiesFlags; UCHAR bBusPowerSavingD1; UCHAR bSelfPowerSavingD1; UCHAR bBusPowerSavingD2; UCHAR bSelfPowerSavingD2; UCHAR bBusPowerSavingD3; UCHAR bSelfPowerSavingD3; USHORT TransitionTimeFromD1; USHORT TransitionTimeFromD2; USHORT TransitionTimeFromD3;} USB_INTERFACE_POWER_DESCRIPTOR, *PUSB_INTERFACE_POWER_DESCRIPTOR;
#include <poppack.h>
#ifdef __cplusplus}#endif