ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

usb100.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.