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