// Copyright © 2016, bitbegin | |
// Licensed under the MIT License <LICENSE.md> | |
//! USB Spec Definitions. | |
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) | |
} |