1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
ENUM!{enum USB_DEVICE_SPEED {
UsbLowSpeed = 0,
UsbFullSpeed,
UsbHighSpeed,
UsbSuperSpeed,
}}
ENUM!{enum USB_DEVICE_TYPE {
Usb11Device = 0,
Usb20Device,
}}
STRUCT!{struct BM_REQUEST_TYPE {
_BM: ::UCHAR,
B: ::UCHAR,
}}
BITFIELD!{BM_REQUEST_TYPE _BM: ::UINT8 [
Recipient set_Recipient[0..2],
Reserved set_Reserved[2..5],
Type set_Type[5..7],
Dir set_Dir[7..8],
]}
pub type PBM_REQUEST_TYPE = *mut BM_REQUEST_TYPE;
STRUCT!{#[repr(packed)] struct USB_CONFIGURATION_DESCRIPTOR {
bLength: ::UCHAR,
bDescriptorType: ::UCHAR,
wTotalLength: ::USHORT,
bNumInterfaces: ::UCHAR,
bConfigurationValue: ::UCHAR,
iConfiguration: ::UCHAR,
bmAttributes: ::UCHAR,
MaxPower: ::UCHAR,
}}
pub type PUSB_CONFIGURATION_DESCRIPTOR = *mut USB_CONFIGURATION_DESCRIPTOR;
#[test]
fn test_USB_CONFIGURATION_DESCRIPTOR_size() {
use std::mem::size_of;
assert_eq!(size_of::<USB_CONFIGURATION_DESCRIPTOR>(), 9)
}