3 * - By John Hodge (thePowersGang)
6 * - USB Core Protocol Definitions
22 struct sDescriptor_Device
26 Uint16 USBVersion; // BCD, 0x210 = 2.10
34 Uint16 DeviceID; // BCD
36 Uint8 ManufacturerStr;
38 Uint8 SerialNumberStr;
40 Uint8 NumConfigurations;
43 struct sDescriptor_Configuration
50 Uint8 ConfigurationValue;
51 Uint8 ConfigurationStr;
53 Uint8 MaxPower; // in units of 2 mA
56 struct sDescriptor_String
61 Uint16 Data[128-1]; // (256 bytes - 2 bytes) / Uint16
64 struct sDescriptor_Interface
70 Uint8 AlternateSetting;
71 Uint8 NumEndpoints; // Excludes endpoint 0
73 Uint8 InterfaceClass; //
74 Uint8 InterfaceSubClass;
75 Uint8 InterfaceProtocol;
80 struct sDescriptor_Endpoint
84 Uint8 Address; // 3:0 Endpoint Num, 7: Direction (1=IN)
91 * 3:2 - Synchronisation type (Isonchronous only)
92 * - 00 = No Synchronisation
96 * 5:4 - Usage type (Isonchronous only)
97 * - 00 = Data endpoint
98 * - 01 = Feedback endpoint
102 Uint16 MaxPacketSize;
107 Uint8 PollingInterval;