#[repr(C)]
#[derive(Default)]
pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
impl<T> __IncompleteArrayField<T> {
#[inline]
pub const fn new() -> Self {
__IncompleteArrayField(::std::marker::PhantomData, [])
}
#[inline]
pub fn as_ptr(&self) -> *const T {
self as *const _ as *const T
}
#[inline]
pub fn as_mut_ptr(&mut self) -> *mut T {
self as *mut _ as *mut T
}
#[inline]
pub unsafe fn as_slice(&self, len: usize) -> &[T] {
::std::slice::from_raw_parts(self.as_ptr(), len)
}
#[inline]
pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
}
}
impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
fmt.write_str("__IncompleteArrayField")
}
}
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __uint64_t = ::std::os::raw::c_ulong;
extern "C" {
pub fn free(__ptr: *mut ::std::os::raw::c_void);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_handle {
_unused: [u8; 0],
}
pub type nspire_handle_t = nspire_handle;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct libusb_device_handle {
_unused: [u8; 0],
}
extern "C" {
pub fn nspire_init(
ptr: *mut *mut nspire_handle_t,
dev: *mut libusb_device_handle,
is_cx2: bool,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_free(ptr: *mut nspire_handle_t);
}
pub const nspire_battery_NSPIRE_BATT_POWERED: nspire_battery = 0;
pub const nspire_battery_NSPIRE_BATT_LOW: nspire_battery = 241;
pub const nspire_battery_NSPIRE_BATT_OK: nspire_battery = 127;
pub const nspire_battery_NSPIRE_BATT_UNKNOWN: nspire_battery = 255;
pub type nspire_battery = ::std::os::raw::c_uint;
pub const nspire_version_index_NSPIRE_VER_OS: nspire_version_index = 0;
pub const nspire_version_index_NSPIRE_VER_BOOT1: nspire_version_index = 1;
pub const nspire_version_index_NSPIRE_VER_BOOT2: nspire_version_index = 2;
pub const nspire_version_index_NSPIRE_VER_MAXNUM: nspire_version_index = 3;
pub type nspire_version_index = ::std::os::raw::c_uint;
pub const nspire_type_NSPIRE_CAS: nspire_type = 14;
pub const nspire_type_NSPIRE_NONCAS: nspire_type = 30;
pub const nspire_type_NSPIRE_CASCX: nspire_type = 15;
pub const nspire_type_NSPIRE_NONCASCX: nspire_type = 31;
pub type nspire_type = ::std::os::raw::c_uint;
pub const nspire_runlevel_NSPIRE_RUNLEVEL_RECOVERY: nspire_runlevel = 1;
pub const nspire_runlevel_NSPIRE_RUNLEVEL_OS: nspire_runlevel = 2;
pub type nspire_runlevel = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo {
pub storage: nspire_devinfo__bindgen_ty_1,
pub ram: nspire_devinfo__bindgen_ty_2,
pub versions: [nspire_devinfo__bindgen_ty_3; 3usize],
pub hw_type: nspire_type,
pub batt: nspire_devinfo__bindgen_ty_4,
pub clock_speed: u8,
pub lcd: nspire_devinfo__bindgen_ty_5,
pub extensions: nspire_devinfo__bindgen_ty_6,
pub device_name: [::std::os::raw::c_char; 20usize],
pub electronic_id: [::std::os::raw::c_char; 28usize],
pub runlevel: nspire_runlevel,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_1 {
pub free: u64,
pub total: u64,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo__bindgen_ty_1>(),
16usize,
concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_1))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo__bindgen_ty_1>(),
8usize,
concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_1))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_1>())).free as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_1),
"::",
stringify!(free)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_1>())).total as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_1),
"::",
stringify!(total)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_2 {
pub free: u64,
pub total: u64,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_2() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo__bindgen_ty_2>(),
16usize,
concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_2))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo__bindgen_ty_2>(),
8usize,
concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_2))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_2>())).free as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_2),
"::",
stringify!(free)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_2>())).total as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_2),
"::",
stringify!(total)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_3 {
pub major: u8,
pub minor: u8,
pub build: u16,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_3() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo__bindgen_ty_3>(),
4usize,
concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_3))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo__bindgen_ty_3>(),
2usize,
concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_3))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_3>())).major as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_3),
"::",
stringify!(major)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_3>())).minor as *const _ as usize
},
1usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_3),
"::",
stringify!(minor)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_3>())).build as *const _ as usize
},
2usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_3),
"::",
stringify!(build)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_4 {
pub status: nspire_battery,
pub is_charging: u8,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_4() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo__bindgen_ty_4>(),
8usize,
concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_4))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo__bindgen_ty_4>(),
4usize,
concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_4))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_4>())).status as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_4),
"::",
stringify!(status)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_4>())).is_charging as *const _
as usize
},
4usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_4),
"::",
stringify!(is_charging)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_5 {
pub width: u16,
pub height: u16,
pub bbp: u8,
pub sample_mode: u8,
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_5() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo__bindgen_ty_5>(),
6usize,
concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_5))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo__bindgen_ty_5>(),
2usize,
concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_5))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).width as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_5),
"::",
stringify!(width)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).height as *const _ as usize
},
2usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_5),
"::",
stringify!(height)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).bbp as *const _ as usize
},
4usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_5),
"::",
stringify!(bbp)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_5>())).sample_mode as *const _
as usize
},
5usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_5),
"::",
stringify!(sample_mode)
)
);
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct nspire_devinfo__bindgen_ty_6 {
pub file: [::std::os::raw::c_char; 8usize],
pub os: [::std::os::raw::c_char; 8usize],
}
#[test]
fn bindgen_test_layout_nspire_devinfo__bindgen_ty_6() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo__bindgen_ty_6>(),
16usize,
concat!("Size of: ", stringify!(nspire_devinfo__bindgen_ty_6))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo__bindgen_ty_6>(),
1usize,
concat!("Alignment of ", stringify!(nspire_devinfo__bindgen_ty_6))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_6>())).file as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_6),
"::",
stringify!(file)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo__bindgen_ty_6>())).os as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo__bindgen_ty_6),
"::",
stringify!(os)
)
);
}
#[test]
fn bindgen_test_layout_nspire_devinfo() {
assert_eq!(
::std::mem::size_of::<nspire_devinfo>(),
136usize,
concat!("Size of: ", stringify!(nspire_devinfo))
);
assert_eq!(
::std::mem::align_of::<nspire_devinfo>(),
8usize,
concat!("Alignment of ", stringify!(nspire_devinfo))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).storage as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(storage)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).ram as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(ram)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).versions as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(versions)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).hw_type as *const _ as usize },
44usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(hw_type)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).batt as *const _ as usize },
48usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(batt)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).clock_speed as *const _ as usize },
56usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(clock_speed)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).lcd as *const _ as usize },
58usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(lcd)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).extensions as *const _ as usize },
64usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(extensions)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).device_name as *const _ as usize },
80usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(device_name)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).electronic_id as *const _ as usize },
100usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(electronic_id)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_devinfo>())).runlevel as *const _ as usize },
128usize,
concat!(
"Offset of field: ",
stringify!(nspire_devinfo),
"::",
stringify!(runlevel)
)
);
}
extern "C" {
pub fn nspire_device_info(
handle: *mut nspire_handle_t,
i: *mut nspire_devinfo,
) -> ::std::os::raw::c_int;
}
pub type nspire_callback =
::std::option::Option<unsafe extern "C" fn(arg1: usize, arg2: *mut ::std::os::raw::c_void)>;
extern "C" {
pub fn nspire_file_write(
arg1: *mut nspire_handle_t,
arg2: *const ::std::os::raw::c_char,
arg3: *mut ::std::os::raw::c_void,
arg4: usize,
cb: nspire_callback,
cb_data: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_file_read(
handle: *mut nspire_handle_t,
path: *const ::std::os::raw::c_char,
data: *mut ::std::os::raw::c_void,
size: usize,
read_bytes: *mut usize,
cb: nspire_callback,
cb_data: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_file_move(
handle: *mut nspire_handle_t,
src: *const ::std::os::raw::c_char,
dst: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_file_copy(
handle: *mut nspire_handle_t,
src: *const ::std::os::raw::c_char,
dst: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_file_delete(
handle: *mut nspire_handle_t,
path: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
pub const nspire_dir_type_NSPIRE_FILE: nspire_dir_type = 0;
pub const nspire_dir_type_NSPIRE_DIR: nspire_dir_type = 1;
pub type nspire_dir_type = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct nspire_dir_item {
pub name: [::std::os::raw::c_char; 240usize],
pub size: u64,
pub date: u64,
pub type_: nspire_dir_type,
}
#[test]
fn bindgen_test_layout_nspire_dir_item() {
assert_eq!(
::std::mem::size_of::<nspire_dir_item>(),
264usize,
concat!("Size of: ", stringify!(nspire_dir_item))
);
assert_eq!(
::std::mem::align_of::<nspire_dir_item>(),
8usize,
concat!("Alignment of ", stringify!(nspire_dir_item))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).name as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_dir_item),
"::",
stringify!(name)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).size as *const _ as usize },
240usize,
concat!(
"Offset of field: ",
stringify!(nspire_dir_item),
"::",
stringify!(size)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).date as *const _ as usize },
248usize,
concat!(
"Offset of field: ",
stringify!(nspire_dir_item),
"::",
stringify!(date)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_dir_item>())).type_ as *const _ as usize },
256usize,
concat!(
"Offset of field: ",
stringify!(nspire_dir_item),
"::",
stringify!(type_)
)
);
}
#[repr(C)]
pub struct nspire_dir_info {
pub num: u64,
pub items: __IncompleteArrayField<nspire_dir_item>,
}
#[test]
fn bindgen_test_layout_nspire_dir_info() {
assert_eq!(
::std::mem::size_of::<nspire_dir_info>(),
8usize,
concat!("Size of: ", stringify!(nspire_dir_info))
);
assert_eq!(
::std::mem::align_of::<nspire_dir_info>(),
8usize,
concat!("Alignment of ", stringify!(nspire_dir_info))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_dir_info>())).num as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_dir_info),
"::",
stringify!(num)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_dir_info>())).items as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(nspire_dir_info),
"::",
stringify!(items)
)
);
}
extern "C" {
pub fn nspire_dirlist(
arg1: *mut nspire_handle_t,
arg2: *const ::std::os::raw::c_char,
arg3: *mut *mut nspire_dir_info,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_dirlist_free(d: *mut nspire_dir_info);
}
extern "C" {
pub fn nspire_dir_create(
handle: *mut nspire_handle_t,
path: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_dir_delete(
handle: *mut nspire_handle_t,
path: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn nspire_attr(
arg1: *mut nspire_handle_t,
arg2: *const ::std::os::raw::c_char,
arg3: *mut nspire_dir_item,
) -> ::std::os::raw::c_int;
}
pub const NSPIRE_ERR_SUCCESS: ::std::os::raw::c_uint = 0;
pub const NSPIRE_ERR_TIMEOUT: ::std::os::raw::c_uint = 1;
pub const NSPIRE_ERR_NOMEM: ::std::os::raw::c_uint = 2;
pub const NSPIRE_ERR_INVALID: ::std::os::raw::c_uint = 3;
pub const NSPIRE_ERR_LIBUSB: ::std::os::raw::c_uint = 4;
pub const NSPIRE_ERR_NODEVICE: ::std::os::raw::c_uint = 5;
pub const NSPIRE_ERR_INVALPKT: ::std::os::raw::c_uint = 6;
pub const NSPIRE_ERR_NACK: ::std::os::raw::c_uint = 7;
pub const NSPIRE_ERR_BUSY: ::std::os::raw::c_uint = 8;
pub const NSPIRE_ERR_EXISTS: ::std::os::raw::c_uint = 9;
pub const NSPIRE_ERR_NONEXIST: ::std::os::raw::c_uint = 10;
pub const NSPIRE_ERR_OSFAILED: ::std::os::raw::c_uint = 11;
pub const NSPIRE_ERR_MAX: ::std::os::raw::c_uint = 12;
pub type _bindgen_ty_5 = ::std::os::raw::c_uint;
extern "C" {
pub fn nspire_strerror(error: ::std::os::raw::c_int) -> *const ::std::os::raw::c_char;
}
extern "C" {
pub fn nspire_os_send(
handle: *mut nspire_handle_t,
data: *mut ::std::os::raw::c_void,
size: usize,
cb: nspire_callback,
cb_data: *mut ::std::os::raw::c_void,
) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug)]
pub struct nspire_image {
pub width: u16,
pub height: u16,
pub bbp: u8,
pub data: __IncompleteArrayField<::std::os::raw::c_uchar>,
}
#[test]
fn bindgen_test_layout_nspire_image() {
assert_eq!(
::std::mem::size_of::<nspire_image>(),
6usize,
concat!("Size of: ", stringify!(nspire_image))
);
assert_eq!(
::std::mem::align_of::<nspire_image>(),
2usize,
concat!("Alignment of ", stringify!(nspire_image))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_image>())).width as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(nspire_image),
"::",
stringify!(width)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_image>())).height as *const _ as usize },
2usize,
concat!(
"Offset of field: ",
stringify!(nspire_image),
"::",
stringify!(height)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_image>())).bbp as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(nspire_image),
"::",
stringify!(bbp)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<nspire_image>())).data as *const _ as usize },
5usize,
concat!(
"Offset of field: ",
stringify!(nspire_image),
"::",
stringify!(data)
)
);
}
extern "C" {
pub fn nspire_screenshot(
handle: *mut nspire_handle_t,
ptr: *mut *mut nspire_image,
) -> ::std::os::raw::c_int;
}