Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenusb100.h
Go to the documentation of this file.
00001 /* 00002 * usb100.h 00003 * 00004 * USB 1.0 support 00005 * 00006 * This file is part of the ReactOS PSDK package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #pragma once 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 #include <pshpack1.h> 00030 00031 #define BMREQUEST_HOST_TO_DEVICE 0 00032 #define BMREQUEST_DEVICE_TO_HOST 1 00033 00034 #define BMREQUEST_STANDARD 0 00035 #define BMREQUEST_CLASS 1 00036 #define BMREQUEST_VENDOR 2 00037 00038 #define BMREQUEST_TO_DEVICE 0 00039 #define BMREQUEST_TO_INTERFACE 1 00040 #define BMREQUEST_TO_ENDPOINT 2 00041 #define BMREQUEST_TO_OTHER 3 00042 00043 #define MAXIMUM_USB_STRING_LENGTH 255 00044 00045 #define USB_GETSTATUS_SELF_POWERED 0x01 00046 #define USB_GETSTATUS_REMOTE_WAKEUP_ENABLED 0x02 00047 00048 /* USB_COMMON_DESCRIPTOR.bDescriptorType constants */ 00049 #define USB_DEVICE_DESCRIPTOR_TYPE 0x01 00050 #define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 00051 #define USB_STRING_DESCRIPTOR_TYPE 0x03 00052 #define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 00053 #define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 00054 #define USB_RESERVED_DESCRIPTOR_TYPE 0x06 00055 #define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07 00056 #define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08 00057 00058 #define USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i) ((USHORT)((USHORT)d << 8 | i)) 00059 00060 /* USB_ENDPOINT_DESCRIPTOR.bmAttributes constants */ 00061 #define USB_ENDPOINT_TYPE_MASK 0x03 00062 #define USB_ENDPOINT_TYPE_CONTROL 0x00 00063 #define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01 00064 #define USB_ENDPOINT_TYPE_BULK 0x02 00065 #define USB_ENDPOINT_TYPE_INTERRUPT 0x03 00066 00067 /* USB_CONFIGURATION_DESCRIPTOR.bmAttributes constants */ 00068 #define USB_CONFIG_POWERED_MASK 0xc0 00069 #define USB_CONFIG_BUS_POWERED 0x80 00070 #define USB_CONFIG_SELF_POWERED 0x40 00071 #define USB_CONFIG_REMOTE_WAKEUP 0x20 00072 00073 #define USB_ENDPOINT_DIRECTION_MASK 0x80 00074 00075 #define USB_ENDPOINT_DIRECTION_OUT(x) (!((x) & USB_ENDPOINT_DIRECTION_MASK)) 00076 #define USB_ENDPOINT_DIRECTION_IN(x) ((x) & USB_ENDPOINT_DIRECTION_MASK) 00077 00078 #define USB_REQUEST_GET_STATUS 0x00 00079 #define USB_REQUEST_CLEAR_FEATURE 0x01 00080 #define USB_REQUEST_SET_FEATURE 0x03 00081 #define USB_REQUEST_SET_ADDRESS 0x05 00082 #define USB_REQUEST_GET_DESCRIPTOR 0x06 00083 #define USB_REQUEST_SET_DESCRIPTOR 0x07 00084 #define USB_REQUEST_GET_CONFIGURATION 0x08 00085 #define USB_REQUEST_SET_CONFIGURATION 0x09 00086 #define USB_REQUEST_GET_INTERFACE 0x0A 00087 #define USB_REQUEST_SET_INTERFACE 0x0B 00088 #define USB_REQUEST_SYNC_FRAME 0x0C 00089 00090 #define USB_DEVICE_CLASS_RESERVED 0x00 00091 #define USB_DEVICE_CLASS_AUDIO 0x01 00092 #define USB_DEVICE_CLASS_COMMUNICATIONS 0x02 00093 #define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03 00094 #define USB_DEVICE_CLASS_MONITOR 0x04 00095 #define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05 00096 #define USB_DEVICE_CLASS_POWER 0x06 00097 #define USB_DEVICE_CLASS_PRINTER 0x07 00098 #define USB_DEVICE_CLASS_STORAGE 0x08 00099 #define USB_DEVICE_CLASS_HUB 0x09 00100 #define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF 00101 00102 #define USB_FEATURE_ENDPOINT_STALL 0x0000 00103 #define USB_FEATURE_REMOTE_WAKEUP 0x0001 00104 00105 #define USB_FEATURE_INTERFACE_POWER_D0 0x0002 00106 #define USB_FEATURE_INTERFACE_POWER_D1 0x0003 00107 #define USB_FEATURE_INTERFACE_POWER_D2 0x0004 00108 #define USB_FEATURE_INTERFACE_POWER_D3 0x0005 00109 00110 typedef struct _USB_DEVICE_DESCRIPTOR { 00111 UCHAR bLength; 00112 UCHAR bDescriptorType; 00113 USHORT bcdUSB; 00114 UCHAR bDeviceClass; 00115 UCHAR bDeviceSubClass; 00116 UCHAR bDeviceProtocol; 00117 UCHAR bMaxPacketSize0; 00118 USHORT idVendor; 00119 USHORT idProduct; 00120 USHORT bcdDevice; 00121 UCHAR iManufacturer; 00122 UCHAR iProduct; 00123 UCHAR iSerialNumber; 00124 UCHAR bNumConfigurations; 00125 } USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR; 00126 00127 typedef struct _USB_ENDPOINT_DESCRIPTOR { 00128 UCHAR bLength; 00129 UCHAR bDescriptorType; 00130 UCHAR bEndpointAddress; 00131 UCHAR bmAttributes; 00132 USHORT wMaxPacketSize; 00133 UCHAR bInterval; 00134 } USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR; 00135 00136 typedef struct _USB_CONFIGURATION_DESCRIPTOR { 00137 UCHAR bLength; 00138 UCHAR bDescriptorType; 00139 USHORT wTotalLength; 00140 UCHAR bNumInterfaces; 00141 UCHAR bConfigurationValue; 00142 UCHAR iConfiguration; 00143 UCHAR bmAttributes; 00144 UCHAR MaxPower; 00145 } USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR; 00146 00147 typedef struct _USB_INTERFACE_DESCRIPTOR { 00148 UCHAR bLength; 00149 UCHAR bDescriptorType; 00150 UCHAR bInterfaceNumber; 00151 UCHAR bAlternateSetting; 00152 UCHAR bNumEndpoints; 00153 UCHAR bInterfaceClass; 00154 UCHAR bInterfaceSubClass; 00155 UCHAR bInterfaceProtocol; 00156 UCHAR iInterface; 00157 } USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR; 00158 00159 typedef struct _USB_STRING_DESCRIPTOR { 00160 UCHAR bLength; 00161 UCHAR bDescriptorType; 00162 WCHAR bString[1]; 00163 } USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR; 00164 00165 typedef struct _USB_COMMON_DESCRIPTOR { 00166 UCHAR bLength; 00167 UCHAR bDescriptorType; 00168 } USB_COMMON_DESCRIPTOR, *PUSB_COMMON_DESCRIPTOR; 00169 00170 typedef struct _USB_HUB_DESCRIPTOR { 00171 UCHAR bDescriptorLength; 00172 UCHAR bDescriptorType; 00173 UCHAR bNumberOfPorts; 00174 USHORT wHubCharacteristics; 00175 UCHAR bPowerOnToPowerGood; 00176 UCHAR bHubControlCurrent; 00177 UCHAR bRemoveAndPowerMask[64]; 00178 } USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR; 00179 00180 #define USB_SUPPORT_D0_COMMAND 0x01 00181 #define USB_SUPPORT_D1_COMMAND 0x02 00182 #define USB_SUPPORT_D2_COMMAND 0x04 00183 #define USB_SUPPORT_D3_COMMAND 0x08 00184 00185 #define USB_SUPPORT_D1_WAKEUP 0x10 00186 #define USB_SUPPORT_D2_WAKEUP 0x20 00187 00188 typedef struct _USB_CONFIGURATION_POWER_DESCRIPTOR { 00189 UCHAR bLength; 00190 UCHAR bDescriptorType; 00191 UCHAR SelfPowerConsumedD0[3]; 00192 UCHAR bPowerSummaryId; 00193 UCHAR bBusPowerSavingD1; 00194 UCHAR bSelfPowerSavingD1; 00195 UCHAR bBusPowerSavingD2; 00196 UCHAR bSelfPowerSavingD2; 00197 UCHAR bBusPowerSavingD3; 00198 UCHAR bSelfPowerSavingD3; 00199 USHORT TransitionTimeFromD1; 00200 USHORT TransitionTimeFromD2; 00201 USHORT TransitionTimeFromD3; 00202 } USB_CONFIGURATION_POWER_DESCRIPTOR, *PUSB_CONFIGURATION_POWER_DESCRIPTOR; 00203 00204 typedef struct _USB_INTERFACE_POWER_DESCRIPTOR { 00205 UCHAR bLength; 00206 UCHAR bDescriptorType; 00207 UCHAR bmCapabilitiesFlags; 00208 UCHAR bBusPowerSavingD1; 00209 UCHAR bSelfPowerSavingD1; 00210 UCHAR bBusPowerSavingD2; 00211 UCHAR bSelfPowerSavingD2; 00212 UCHAR bBusPowerSavingD3; 00213 UCHAR bSelfPowerSavingD3; 00214 USHORT TransitionTimeFromD1; 00215 USHORT TransitionTimeFromD2; 00216 USHORT TransitionTimeFromD3; 00217 } USB_INTERFACE_POWER_DESCRIPTOR, *PUSB_INTERFACE_POWER_DESCRIPTOR; 00218 00219 #include <poppack.h> 00220 00221 #ifdef __cplusplus 00222 } 00223 #endif Generated on Fri May 25 2012 04:31:00 for ReactOS by
1.7.6.1
|