blob: e2fbaa21faf6e53a2e3d2fe76da3cea2f62ef05a [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Generated by src/lib/usb_bulk/bindgen.sh using bindgen 0.60.1
// Allow non-conventional naming for imports from C/C++.
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
// This attribute ensures proper linkage. Applying it to an empty block to satisfy
// linking requirements for later blocks is explicitly suggested by
// https://doc.rust-lang.org/reference/items/external-blocks.html#the-link-attribute.
#[link(name = "usb_bulk", kind = "static")]
extern "C" {}
// Configure linkage for MacOS.
#[cfg(target_os = "macos")]
#[link(name = "IOKit", kind = "framework")]
#[link(name = "CoreFoundation", kind = "framework")]
extern "C" {}
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __ssize_t = ::std::os::raw::c_long;
pub type ssize_t = __ssize_t;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct usb_ifc_info {
pub dev_vendor: ::std::os::raw::c_ushort,
pub dev_product: ::std::os::raw::c_ushort,
pub dev_class: ::std::os::raw::c_uchar,
pub dev_subclass: ::std::os::raw::c_uchar,
pub dev_protocol: ::std::os::raw::c_uchar,
pub ifc_class: ::std::os::raw::c_uchar,
pub ifc_subclass: ::std::os::raw::c_uchar,
pub ifc_protocol: ::std::os::raw::c_uchar,
pub has_bulk_in: ::std::os::raw::c_uchar,
pub has_bulk_out: ::std::os::raw::c_uchar,
pub writable: ::std::os::raw::c_uchar,
pub serial_number: [u8; 256usize],
pub device_path: [u8; 256usize],
}
#[test]
fn bindgen_test_layout_usb_ifc_info() {
assert_eq!(
::std::mem::size_of::<usb_ifc_info>(),
526usize,
concat!("Size of: ", stringify!(usb_ifc_info))
);
assert_eq!(
::std::mem::align_of::<usb_ifc_info>(),
2usize,
concat!("Alignment of ", stringify!(usb_ifc_info))
);
fn test_field_dev_vendor() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).dev_vendor) as usize - ptr as usize
},
0usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(dev_vendor))
);
}
test_field_dev_vendor();
fn test_field_dev_product() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).dev_product) as usize - ptr as usize
},
2usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(dev_product))
);
}
test_field_dev_product();
fn test_field_dev_class() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).dev_class) as usize - ptr as usize
},
4usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(dev_class))
);
}
test_field_dev_class();
fn test_field_dev_subclass() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).dev_subclass) as usize - ptr as usize
},
5usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(dev_subclass))
);
}
test_field_dev_subclass();
fn test_field_dev_protocol() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).dev_protocol) as usize - ptr as usize
},
6usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(dev_protocol))
);
}
test_field_dev_protocol();
fn test_field_ifc_class() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).ifc_class) as usize - ptr as usize
},
7usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(ifc_class))
);
}
test_field_ifc_class();
fn test_field_ifc_subclass() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).ifc_subclass) as usize - ptr as usize
},
8usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(ifc_subclass))
);
}
test_field_ifc_subclass();
fn test_field_ifc_protocol() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).ifc_protocol) as usize - ptr as usize
},
9usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(ifc_protocol))
);
}
test_field_ifc_protocol();
fn test_field_has_bulk_in() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).has_bulk_in) as usize - ptr as usize
},
10usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(has_bulk_in))
);
}
test_field_has_bulk_in();
fn test_field_has_bulk_out() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).has_bulk_out) as usize - ptr as usize
},
11usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(has_bulk_out))
);
}
test_field_has_bulk_out();
fn test_field_writable() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).writable) as usize - ptr as usize
},
12usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(writable))
);
}
test_field_writable();
fn test_field_serial_number() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).serial_number) as usize - ptr as usize
},
13usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(serial_number))
);
}
test_field_serial_number();
fn test_field_device_path() {
assert_eq!(
unsafe {
let uninit = ::std::mem::MaybeUninit::<usb_ifc_info>::uninit();
let ptr = uninit.as_ptr();
::std::ptr::addr_of!((*ptr).device_path) as usize - ptr as usize
},
269usize,
concat!("Offset of field: ", stringify!(usb_ifc_info), "::", stringify!(device_path))
);
}
test_field_device_path();
}
impl Default for usb_ifc_info {
fn default() -> Self {
let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
unsafe {
::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
s.assume_init()
}
}
}
pub type ifc_match_func = ::std::option::Option<
unsafe extern "C" fn(ifc: *mut usb_ifc_info, data: *mut ::std::os::raw::c_void) -> bool,
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct UsbInterface {
_unused: [u8; 0],
}
extern "C" {
pub fn interface_open(
callback: ifc_match_func,
callback_data: *mut ::std::os::raw::c_void,
timeout_ms: u32,
) -> *mut UsbInterface;
}
extern "C" {
pub fn interface_read(
interface: *mut UsbInterface,
data: *mut ::std::os::raw::c_void,
len: ssize_t,
) -> ssize_t;
}
extern "C" {
pub fn interface_write(
interface: *mut UsbInterface,
data: *const ::std::os::raw::c_void,
len: ssize_t,
) -> ssize_t;
}
extern "C" {
pub fn interface_close(interface: *mut UsbInterface);
}