1 // Copyright © 2016, bitbegin
2 // Licensed under the MIT License <LICENSE.md>
3 //! FFI bindings to winusb.
4 pub type WINUSB_INTERFACE_HANDLE = ::PVOID;
5 pub type PWINUSB_INTERFACE_HANDLE = *mut ::PVOID;
6 pub type WINUSB_ISOCH_BUFFER_HANDLE = ::PVOID;
7 pub type PWINUSB_ISOCH_BUFFER_HANDLE = *mut ::PVOID;
8 STRUCT!{#[repr(packed)] struct WINUSB_SETUP_PACKET {
9 	RequestType: ::UCHAR,
10 	Request: ::UCHAR,
11 	Value: ::USHORT,
12 	Index: ::USHORT,
13 	Length: ::USHORT,
14 }}
15 pub type PWINUSB_SETUP_PACKET = *mut WINUSB_SETUP_PACKET;
16 
17 STRUCT!{struct USB_INTERFACE_DESCRIPTOR {
18 	bLength: ::UCHAR,
19 	bDescriptorType: ::UCHAR,
20 	bInterfaceNumber: ::UCHAR,
21 	bAlternateSetting: ::UCHAR,
22 	bNumEndpoints: ::UCHAR,
23 	bInterfaceClass: ::UCHAR,
24 	bInterfaceSubClass: ::UCHAR,
25 	bInterfaceProtocol: ::UCHAR,
26 	iInterface: ::UCHAR,
27 }}
28 pub type PUSB_INTERFACE_DESCRIPTOR = *mut USB_INTERFACE_DESCRIPTOR;
29 #[test]
test_USB_INTERFACE_DESCRIPTOR_size()30 fn test_USB_INTERFACE_DESCRIPTOR_size() {
31     use std::mem::size_of;
32     assert_eq!(size_of::<USB_INTERFACE_DESCRIPTOR>(), 9)
33 }
34