pub const _STDINT_H: u32 = 1;
pub const _FEATURES_H: u32 = 1;
pub const _DEFAULT_SOURCE: u32 = 1;
pub const __GLIBC_USE_ISOC2X: u32 = 0;
pub const __USE_ISOC11: u32 = 1;
pub const __USE_ISOC99: u32 = 1;
pub const __USE_ISOC95: u32 = 1;
pub const __USE_POSIX_IMPLICITLY: u32 = 1;
pub const _POSIX_SOURCE: u32 = 1;
pub const _POSIX_C_SOURCE: u32 = 200809;
pub const __USE_POSIX: u32 = 1;
pub const __USE_POSIX2: u32 = 1;
pub const __USE_POSIX199309: u32 = 1;
pub const __USE_POSIX199506: u32 = 1;
pub const __USE_XOPEN2K: u32 = 1;
pub const __USE_XOPEN2K8: u32 = 1;
pub const _ATFILE_SOURCE: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
pub const __TIMESIZE: u32 = 64;
pub const __USE_MISC: u32 = 1;
pub const __USE_ATFILE: u32 = 1;
pub const __USE_FORTIFY_LEVEL: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_GETS: u32 = 0;
pub const __GLIBC_USE_DEPRECATED_SCANF: u32 = 0;
pub const _STDC_PREDEF_H: u32 = 1;
pub const __STDC_IEC_559__: u32 = 1;
pub const __STDC_IEC_60559_BFP__: u32 = 201404;
pub const __STDC_IEC_559_COMPLEX__: u32 = 1;
pub const __STDC_IEC_60559_COMPLEX__: u32 = 201404;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 35;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI: u32 = 0;
pub const __HAVE_GENERIC_SELECTION: u32 = 1;
pub const __GLIBC_USE_LIB_EXT2: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT: u32 = 0;
pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X: u32 = 0;
pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
pub const _BITS_TYPES_H: u32 = 1;
pub const _BITS_TYPESIZES_H: u32 = 1;
pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
pub const __INO_T_MATCHES_INO64_T: u32 = 1;
pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
pub const __STATFS_MATCHES_STATFS64: u32 = 1;
pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64: u32 = 1;
pub const __FD_SETSIZE: u32 = 1024;
pub const _BITS_TIME64_H: u32 = 1;
pub const _BITS_WCHAR_H: u32 = 1;
pub const _BITS_STDINT_INTN_H: u32 = 1;
pub const _BITS_STDINT_UINTN_H: u32 = 1;
pub const INT8_MIN: i32 = -128;
pub const INT16_MIN: i32 = -32768;
pub const INT32_MIN: i32 = -2147483648;
pub const INT8_MAX: u32 = 127;
pub const INT16_MAX: u32 = 32767;
pub const INT32_MAX: u32 = 2147483647;
pub const UINT8_MAX: u32 = 255;
pub const UINT16_MAX: u32 = 65535;
pub const UINT32_MAX: u32 = 4294967295;
pub const INT_LEAST8_MIN: i32 = -128;
pub const INT_LEAST16_MIN: i32 = -32768;
pub const INT_LEAST32_MIN: i32 = -2147483648;
pub const INT_LEAST8_MAX: u32 = 127;
pub const INT_LEAST16_MAX: u32 = 32767;
pub const INT_LEAST32_MAX: u32 = 2147483647;
pub const UINT_LEAST8_MAX: u32 = 255;
pub const UINT_LEAST16_MAX: u32 = 65535;
pub const UINT_LEAST32_MAX: u32 = 4294967295;
pub const INT_FAST8_MIN: i32 = -128;
pub const INT_FAST16_MIN: i64 = -9223372036854775808;
pub const INT_FAST32_MIN: i64 = -9223372036854775808;
pub const INT_FAST8_MAX: u32 = 127;
pub const INT_FAST16_MAX: u64 = 9223372036854775807;
pub const INT_FAST32_MAX: u64 = 9223372036854775807;
pub const UINT_FAST8_MAX: u32 = 255;
pub const UINT_FAST16_MAX: i32 = -1;
pub const UINT_FAST32_MAX: i32 = -1;
pub const INTPTR_MIN: i64 = -9223372036854775808;
pub const INTPTR_MAX: u64 = 9223372036854775807;
pub const UINTPTR_MAX: i32 = -1;
pub const PTRDIFF_MIN: i64 = -9223372036854775808;
pub const PTRDIFF_MAX: u64 = 9223372036854775807;
pub const SIG_ATOMIC_MIN: i32 = -2147483648;
pub const SIG_ATOMIC_MAX: u32 = 2147483647;
pub const SIZE_MAX: i32 = -1;
pub const WINT_MIN: u32 = 0;
pub const WINT_MAX: u32 = 4294967295;
pub const _STDIO_H: u32 = 1;
pub const __GNUC_VA_LIST: u32 = 1;
pub const _____fpos_t_defined: u32 = 1;
pub const ____mbstate_t_defined: u32 = 1;
pub const _____fpos64_t_defined: u32 = 1;
pub const ____FILE_defined: u32 = 1;
pub const __FILE_defined: u32 = 1;
pub const __struct_FILE_defined: u32 = 1;
pub const _IO_EOF_SEEN: u32 = 16;
pub const _IO_ERR_SEEN: u32 = 32;
pub const _IO_USER_LOCK: u32 = 32768;
pub const _IOFBF: u32 = 0;
pub const _IOLBF: u32 = 1;
pub const _IONBF: u32 = 2;
pub const BUFSIZ: u32 = 8192;
pub const EOF: i32 = -1;
pub const SEEK_SET: u32 = 0;
pub const SEEK_CUR: u32 = 1;
pub const SEEK_END: u32 = 2;
pub const P_tmpdir: &'static [u8; 5usize] = b"/tmp\0";
pub const _BITS_STDIO_LIM_H: u32 = 1;
pub const L_tmpnam: u32 = 20;
pub const TMP_MAX: u32 = 238328;
pub const FILENAME_MAX: u32 = 4096;
pub const L_ctermid: u32 = 9;
pub const FOPEN_MAX: u32 = 16;
pub const __HAVE_FLOAT128: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128: u32 = 0;
pub const __HAVE_FLOAT64X: u32 = 1;
pub const __HAVE_FLOAT64X_LONG_DOUBLE: u32 = 1;
pub const __HAVE_FLOAT16: u32 = 0;
pub const __HAVE_FLOAT32: u32 = 1;
pub const __HAVE_FLOAT64: u32 = 1;
pub const __HAVE_FLOAT32X: u32 = 1;
pub const __HAVE_FLOAT128X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT16: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT32X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT64X: u32 = 0;
pub const __HAVE_DISTINCT_FLOAT128X: u32 = 0;
pub const __HAVE_FLOATN_NOT_TYPEDEF: u32 = 0;
pub const true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub type __u_char = ::std::os::raw::c_uchar;
pub type __u_short = ::std::os::raw::c_ushort;
pub type __u_int = ::std::os::raw::c_uint;
pub type __u_long = ::std::os::raw::c_ulong;
pub type __int8_t = ::std::os::raw::c_schar;
pub type __uint8_t = ::std::os::raw::c_uchar;
pub type __int16_t = ::std::os::raw::c_short;
pub type __uint16_t = ::std::os::raw::c_ushort;
pub type __int32_t = ::std::os::raw::c_int;
pub type __uint32_t = ::std::os::raw::c_uint;
pub type __int64_t = ::std::os::raw::c_long;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __int_least8_t = __int8_t;
pub type __uint_least8_t = __uint8_t;
pub type __int_least16_t = __int16_t;
pub type __uint_least16_t = __uint16_t;
pub type __int_least32_t = __int32_t;
pub type __uint_least32_t = __uint32_t;
pub type __int_least64_t = __int64_t;
pub type __uint_least64_t = __uint64_t;
pub type __quad_t = ::std::os::raw::c_long;
pub type __u_quad_t = ::std::os::raw::c_ulong;
pub type __intmax_t = ::std::os::raw::c_long;
pub type __uintmax_t = ::std::os::raw::c_ulong;
pub type __dev_t = ::std::os::raw::c_ulong;
pub type __uid_t = ::std::os::raw::c_uint;
pub type __gid_t = ::std::os::raw::c_uint;
pub type __ino_t = ::std::os::raw::c_ulong;
pub type __ino64_t = ::std::os::raw::c_ulong;
pub type __mode_t = ::std::os::raw::c_uint;
pub type __nlink_t = ::std::os::raw::c_ulong;
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type __pid_t = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __fsid_t {
pub __val: [::std::os::raw::c_int; 2usize],
}
#[test]
fn bindgen_test_layout___fsid_t() {
assert_eq!(
::std::mem::size_of::<__fsid_t>(),
8usize,
concat!("Size of: ", stringify!(__fsid_t))
);
assert_eq!(
::std::mem::align_of::<__fsid_t>(),
4usize,
concat!("Alignment of ", stringify!(__fsid_t))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__fsid_t>())).__val as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(__fsid_t),
"::",
stringify!(__val)
)
);
}
pub type __clock_t = ::std::os::raw::c_long;
pub type __rlim_t = ::std::os::raw::c_ulong;
pub type __rlim64_t = ::std::os::raw::c_ulong;
pub type __id_t = ::std::os::raw::c_uint;
pub type __time_t = ::std::os::raw::c_long;
pub type __useconds_t = ::std::os::raw::c_uint;
pub type __suseconds_t = ::std::os::raw::c_long;
pub type __suseconds64_t = ::std::os::raw::c_long;
pub type __daddr_t = ::std::os::raw::c_int;
pub type __key_t = ::std::os::raw::c_int;
pub type __clockid_t = ::std::os::raw::c_int;
pub type __timer_t = *mut ::std::os::raw::c_void;
pub type __blksize_t = ::std::os::raw::c_long;
pub type __blkcnt_t = ::std::os::raw::c_long;
pub type __blkcnt64_t = ::std::os::raw::c_long;
pub type __fsblkcnt_t = ::std::os::raw::c_ulong;
pub type __fsblkcnt64_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt_t = ::std::os::raw::c_ulong;
pub type __fsfilcnt64_t = ::std::os::raw::c_ulong;
pub type __fsword_t = ::std::os::raw::c_long;
pub type __ssize_t = ::std::os::raw::c_long;
pub type __syscall_slong_t = ::std::os::raw::c_long;
pub type __syscall_ulong_t = ::std::os::raw::c_ulong;
pub type __loff_t = __off64_t;
pub type __caddr_t = *mut ::std::os::raw::c_char;
pub type __intptr_t = ::std::os::raw::c_long;
pub type __socklen_t = ::std::os::raw::c_uint;
pub type __sig_atomic_t = ::std::os::raw::c_int;
pub type int_least8_t = __int_least8_t;
pub type int_least16_t = __int_least16_t;
pub type int_least32_t = __int_least32_t;
pub type int_least64_t = __int_least64_t;
pub type uint_least8_t = __uint_least8_t;
pub type uint_least16_t = __uint_least16_t;
pub type uint_least32_t = __uint_least32_t;
pub type uint_least64_t = __uint_least64_t;
pub type int_fast8_t = ::std::os::raw::c_schar;
pub type int_fast16_t = ::std::os::raw::c_long;
pub type int_fast32_t = ::std::os::raw::c_long;
pub type int_fast64_t = ::std::os::raw::c_long;
pub type uint_fast8_t = ::std::os::raw::c_uchar;
pub type uint_fast16_t = ::std::os::raw::c_ulong;
pub type uint_fast32_t = ::std::os::raw::c_ulong;
pub type uint_fast64_t = ::std::os::raw::c_ulong;
pub type intmax_t = __intmax_t;
pub type uintmax_t = __uintmax_t;
pub type size_t = ::std::os::raw::c_ulong;
pub type va_list = __builtin_va_list;
pub type __gnuc_va_list = __builtin_va_list;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct __mbstate_t {
pub __count: ::std::os::raw::c_int,
pub __value: __mbstate_t__bindgen_ty_1,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union __mbstate_t__bindgen_ty_1 {
pub __wch: ::std::os::raw::c_uint,
pub __wchb: [::std::os::raw::c_char; 4usize],
_bindgen_union_align: u32,
}
#[test]
fn bindgen_test_layout___mbstate_t__bindgen_ty_1() {
assert_eq!(
::std::mem::size_of::<__mbstate_t__bindgen_ty_1>(),
4usize,
concat!("Size of: ", stringify!(__mbstate_t__bindgen_ty_1))
);
assert_eq!(
::std::mem::align_of::<__mbstate_t__bindgen_ty_1>(),
4usize,
concat!("Alignment of ", stringify!(__mbstate_t__bindgen_ty_1))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wch as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(__mbstate_t__bindgen_ty_1),
"::",
stringify!(__wch)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<__mbstate_t__bindgen_ty_1>())).__wchb as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(__mbstate_t__bindgen_ty_1),
"::",
stringify!(__wchb)
)
);
}
#[test]
fn bindgen_test_layout___mbstate_t() {
assert_eq!(
::std::mem::size_of::<__mbstate_t>(),
8usize,
concat!("Size of: ", stringify!(__mbstate_t))
);
assert_eq!(
::std::mem::align_of::<__mbstate_t>(),
4usize,
concat!("Alignment of ", stringify!(__mbstate_t))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__count as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(__mbstate_t),
"::",
stringify!(__count)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__mbstate_t>())).__value as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(__mbstate_t),
"::",
stringify!(__value)
)
);
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos_t {
pub __pos: __off_t,
pub __state: __mbstate_t,
}
#[test]
fn bindgen_test_layout__G_fpos_t() {
assert_eq!(
::std::mem::size_of::<_G_fpos_t>(),
16usize,
concat!("Size of: ", stringify!(_G_fpos_t))
);
assert_eq!(
::std::mem::align_of::<_G_fpos_t>(),
8usize,
concat!("Alignment of ", stringify!(_G_fpos_t))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__pos as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(_G_fpos_t),
"::",
stringify!(__pos)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_G_fpos_t>())).__state as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(_G_fpos_t),
"::",
stringify!(__state)
)
);
}
pub type __fpos_t = _G_fpos_t;
#[repr(C)]
#[derive(Copy, Clone)]
pub struct _G_fpos64_t {
pub __pos: __off64_t,
pub __state: __mbstate_t,
}
#[test]
fn bindgen_test_layout__G_fpos64_t() {
assert_eq!(
::std::mem::size_of::<_G_fpos64_t>(),
16usize,
concat!("Size of: ", stringify!(_G_fpos64_t))
);
assert_eq!(
::std::mem::align_of::<_G_fpos64_t>(),
8usize,
concat!("Alignment of ", stringify!(_G_fpos64_t))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__pos as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(_G_fpos64_t),
"::",
stringify!(__pos)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_G_fpos64_t>())).__state as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(_G_fpos64_t),
"::",
stringify!(__state)
)
);
}
pub type __fpos64_t = _G_fpos64_t;
pub type __FILE = _IO_FILE;
pub type FILE = _IO_FILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_codecvt {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_wide_data {
_unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
pub _flags: ::std::os::raw::c_int,
pub _IO_read_ptr: *mut ::std::os::raw::c_char,
pub _IO_read_end: *mut ::std::os::raw::c_char,
pub _IO_read_base: *mut ::std::os::raw::c_char,
pub _IO_write_base: *mut ::std::os::raw::c_char,
pub _IO_write_ptr: *mut ::std::os::raw::c_char,
pub _IO_write_end: *mut ::std::os::raw::c_char,
pub _IO_buf_base: *mut ::std::os::raw::c_char,
pub _IO_buf_end: *mut ::std::os::raw::c_char,
pub _IO_save_base: *mut ::std::os::raw::c_char,
pub _IO_backup_base: *mut ::std::os::raw::c_char,
pub _IO_save_end: *mut ::std::os::raw::c_char,
pub _markers: *mut _IO_marker,
pub _chain: *mut _IO_FILE,
pub _fileno: ::std::os::raw::c_int,
pub _flags2: ::std::os::raw::c_int,
pub _old_offset: __off_t,
pub _cur_column: ::std::os::raw::c_ushort,
pub _vtable_offset: ::std::os::raw::c_schar,
pub _shortbuf: [::std::os::raw::c_char; 1usize],
pub _lock: *mut _IO_lock_t,
pub _offset: __off64_t,
pub _codecvt: *mut _IO_codecvt,
pub _wide_data: *mut _IO_wide_data,
pub _freeres_list: *mut _IO_FILE,
pub _freeres_buf: *mut ::std::os::raw::c_void,
pub __pad5: size_t,
pub _mode: ::std::os::raw::c_int,
pub _unused2: [::std::os::raw::c_char; 20usize],
}
#[test]
fn bindgen_test_layout__IO_FILE() {
assert_eq!(
::std::mem::size_of::<_IO_FILE>(),
216usize,
concat!("Size of: ", stringify!(_IO_FILE))
);
assert_eq!(
::std::mem::align_of::<_IO_FILE>(),
8usize,
concat!("Alignment of ", stringify!(_IO_FILE))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_flags)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_read_ptr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_read_end)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_read_base)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
32usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_write_base)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_write_ptr)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
48usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_write_end)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
56usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_buf_base)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
64usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_buf_end)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
72usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_save_base)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
80usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_backup_base)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
88usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_IO_save_end)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
96usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_markers)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
104usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_chain)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
112usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_fileno)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
116usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_flags2)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
120usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_old_offset)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
128usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_cur_column)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
130usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_vtable_offset)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
131usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_shortbuf)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
136usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_lock)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
144usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_offset)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._codecvt as *const _ as usize },
152usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_codecvt)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._wide_data as *const _ as usize },
160usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_wide_data)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._freeres_list as *const _ as usize },
168usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_freeres_list)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._freeres_buf as *const _ as usize },
176usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_freeres_buf)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
184usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(__pad5)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
192usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_mode)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
196usize,
concat!(
"Offset of field: ",
stringify!(_IO_FILE),
"::",
stringify!(_unused2)
)
);
}
pub type off_t = __off_t;
pub type ssize_t = __ssize_t;
pub type fpos_t = __fpos_t;
extern "C" {
pub static mut stdin: *mut FILE;
}
extern "C" {
pub static mut stdout: *mut FILE;
}
extern "C" {
pub static mut stderr: *mut FILE;
}
extern "C" {
pub fn remove(__filename: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn rename(
__old: *const ::std::os::raw::c_char,
__new: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn renameat(
__oldfd: ::std::os::raw::c_int,
__old: *const ::std::os::raw::c_char,
__newfd: ::std::os::raw::c_int,
__new: *const ::std::os::raw::c_char,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn tmpfile() -> *mut FILE;
}
extern "C" {
pub fn tmpnam(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn tmpnam_r(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn tempnam(
__dir: *const ::std::os::raw::c_char,
__pfx: *const ::std::os::raw::c_char,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn fflush(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fflush_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fopen(
__filename: *const ::std::os::raw::c_char,
__modes: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn freopen(
__filename: *const ::std::os::raw::c_char,
__modes: *const ::std::os::raw::c_char,
__stream: *mut FILE,
) -> *mut FILE;
}
extern "C" {
pub fn fdopen(__fd: ::std::os::raw::c_int, __modes: *const ::std::os::raw::c_char)
-> *mut FILE;
}
extern "C" {
pub fn fmemopen(
__s: *mut ::std::os::raw::c_void,
__len: size_t,
__modes: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn open_memstream(
__bufloc: *mut *mut ::std::os::raw::c_char,
__sizeloc: *mut size_t,
) -> *mut FILE;
}
extern "C" {
pub fn setbuf(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char);
}
extern "C" {
pub fn setvbuf(
__stream: *mut FILE,
__buf: *mut ::std::os::raw::c_char,
__modes: ::std::os::raw::c_int,
__n: size_t,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn setbuffer(__stream: *mut FILE, __buf: *mut ::std::os::raw::c_char, __size: size_t);
}
extern "C" {
pub fn setlinebuf(__stream: *mut FILE);
}
extern "C" {
pub fn fprintf(
__stream: *mut FILE,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn printf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn sprintf(
__s: *mut ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vfprintf(
__s: *mut FILE,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vprintf(
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vsprintf(
__s: *mut ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn snprintf(
__s: *mut ::std::os::raw::c_char,
__maxlen: ::std::os::raw::c_ulong,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vsnprintf(
__s: *mut ::std::os::raw::c_char,
__maxlen: ::std::os::raw::c_ulong,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vdprintf(
__fd: ::std::os::raw::c_int,
__fmt: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn dprintf(
__fd: ::std::os::raw::c_int,
__fmt: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fscanf(
__stream: *mut FILE,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn scanf(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn sscanf(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
pub type _Float32 = f32;
pub type _Float64 = f64;
pub type _Float32x = f64;
pub type _Float64x = u128;
extern "C" {
#[link_name = "\u{1}__isoc99_fscanf"]
pub fn fscanf1(
__stream: *mut FILE,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_scanf"]
pub fn scanf1(__format: *const ::std::os::raw::c_char, ...) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_sscanf"]
pub fn sscanf1(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
...
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vfscanf(
__s: *mut FILE,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vscanf(
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vsscanf(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_vfscanf"]
pub fn vfscanf1(
__s: *mut FILE,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_vscanf"]
pub fn vscanf1(
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
#[link_name = "\u{1}__isoc99_vsscanf"]
pub fn vsscanf1(
__s: *const ::std::os::raw::c_char,
__format: *const ::std::os::raw::c_char,
__arg: *mut __va_list_tag,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fgetc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getc(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getchar() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getchar_unlocked() -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fgetc_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fputc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putchar(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fputc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE)
-> ::std::os::raw::c_int;
}
extern "C" {
pub fn putc_unlocked(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putchar_unlocked(__c: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn getw(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn putw(__w: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fgets(
__s: *mut ::std::os::raw::c_char,
__n: ::std::os::raw::c_int,
__stream: *mut FILE,
) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn __getdelim(
__lineptr: *mut *mut ::std::os::raw::c_char,
__n: *mut size_t,
__delimiter: ::std::os::raw::c_int,
__stream: *mut FILE,
) -> __ssize_t;
}
extern "C" {
pub fn getdelim(
__lineptr: *mut *mut ::std::os::raw::c_char,
__n: *mut size_t,
__delimiter: ::std::os::raw::c_int,
__stream: *mut FILE,
) -> __ssize_t;
}
extern "C" {
pub fn getline(
__lineptr: *mut *mut ::std::os::raw::c_char,
__n: *mut size_t,
__stream: *mut FILE,
) -> __ssize_t;
}
extern "C" {
pub fn fputs(__s: *const ::std::os::raw::c_char, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn puts(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ungetc(__c: ::std::os::raw::c_int, __stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fread(
__ptr: *mut ::std::os::raw::c_void,
__size: ::std::os::raw::c_ulong,
__n: ::std::os::raw::c_ulong,
__stream: *mut FILE,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn fwrite(
__ptr: *const ::std::os::raw::c_void,
__size: ::std::os::raw::c_ulong,
__n: ::std::os::raw::c_ulong,
__s: *mut FILE,
) -> ::std::os::raw::c_ulong;
}
extern "C" {
pub fn fread_unlocked(
__ptr: *mut ::std::os::raw::c_void,
__size: size_t,
__n: size_t,
__stream: *mut FILE,
) -> size_t;
}
extern "C" {
pub fn fwrite_unlocked(
__ptr: *const ::std::os::raw::c_void,
__size: size_t,
__n: size_t,
__stream: *mut FILE,
) -> size_t;
}
extern "C" {
pub fn fseek(
__stream: *mut FILE,
__off: ::std::os::raw::c_long,
__whence: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ftell(__stream: *mut FILE) -> ::std::os::raw::c_long;
}
extern "C" {
pub fn rewind(__stream: *mut FILE);
}
extern "C" {
pub fn fseeko(
__stream: *mut FILE,
__off: __off_t,
__whence: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ftello(__stream: *mut FILE) -> __off_t;
}
extern "C" {
pub fn fgetpos(__stream: *mut FILE, __pos: *mut fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fsetpos(__stream: *mut FILE, __pos: *const fpos_t) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn clearerr(__stream: *mut FILE);
}
extern "C" {
pub fn feof(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ferror(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn clearerr_unlocked(__stream: *mut FILE);
}
extern "C" {
pub fn feof_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn ferror_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn perror(__s: *const ::std::os::raw::c_char);
}
extern "C" {
pub fn fileno(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn fileno_unlocked(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn pclose(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn popen(
__command: *const ::std::os::raw::c_char,
__modes: *const ::std::os::raw::c_char,
) -> *mut FILE;
}
extern "C" {
pub fn ctermid(__s: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
}
extern "C" {
pub fn flockfile(__stream: *mut FILE);
}
extern "C" {
pub fn ftrylockfile(__stream: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn funlockfile(__stream: *mut FILE);
}
extern "C" {
pub fn __uflow(arg1: *mut FILE) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn __overflow(arg1: *mut FILE, arg2: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RGBLedMatrix {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct LedCanvas {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct LedFont {
_unused: [u8; 0],
}
#[doc = " Parameters to create a new matrix."]
#[doc = ""]
#[doc = " To get the defaults, non-set values have to be initialized to zero, so you"]
#[doc = " should zero out this struct before setting anything."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RGBLedMatrixOptions {
pub hardware_mapping: *const ::std::os::raw::c_char,
pub rows: ::std::os::raw::c_int,
pub cols: ::std::os::raw::c_int,
pub chain_length: ::std::os::raw::c_int,
pub parallel: ::std::os::raw::c_int,
pub pwm_bits: ::std::os::raw::c_int,
pub pwm_lsb_nanoseconds: ::std::os::raw::c_int,
pub pwm_dither_bits: ::std::os::raw::c_int,
pub brightness: ::std::os::raw::c_int,
pub scan_mode: ::std::os::raw::c_int,
pub row_address_type: ::std::os::raw::c_int,
pub multiplexing: ::std::os::raw::c_int,
#[doc = " The following boolean flags are off by default"]
pub disable_hardware_pulsing: bool,
pub show_refresh_rate: bool,
pub inverse_colors: bool,
pub led_rgb_sequence: *const ::std::os::raw::c_char,
pub pixel_mapper_config: *const ::std::os::raw::c_char,
pub panel_type: *const ::std::os::raw::c_char,
pub limit_refresh_rate_hz: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_RGBLedMatrixOptions() {
assert_eq!(
::std::mem::size_of::<RGBLedMatrixOptions>(),
88usize,
concat!("Size of: ", stringify!(RGBLedMatrixOptions))
);
assert_eq!(
::std::mem::align_of::<RGBLedMatrixOptions>(),
8usize,
concat!("Alignment of ", stringify!(RGBLedMatrixOptions))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).hardware_mapping as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(hardware_mapping)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).rows as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(rows)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).cols as *const _ as usize },
12usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(cols)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).chain_length as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(chain_length)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).parallel as *const _ as usize },
20usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(parallel)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).pwm_bits as *const _ as usize },
24usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(pwm_bits)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).pwm_lsb_nanoseconds as *const _ as usize
},
28usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(pwm_lsb_nanoseconds)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).pwm_dither_bits as *const _ as usize
},
32usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(pwm_dither_bits)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).brightness as *const _ as usize },
36usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(brightness)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).scan_mode as *const _ as usize },
40usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(scan_mode)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).row_address_type as *const _ as usize
},
44usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(row_address_type)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).multiplexing as *const _ as usize
},
48usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(multiplexing)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).disable_hardware_pulsing as *const _
as usize
},
52usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(disable_hardware_pulsing)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).show_refresh_rate as *const _ as usize
},
53usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(show_refresh_rate)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).inverse_colors as *const _ as usize
},
54usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(inverse_colors)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).led_rgb_sequence as *const _ as usize
},
56usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(led_rgb_sequence)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).pixel_mapper_config as *const _ as usize
},
64usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(pixel_mapper_config)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedMatrixOptions>())).panel_type as *const _ as usize },
72usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(panel_type)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedMatrixOptions>())).limit_refresh_rate_hz as *const _
as usize
},
80usize,
concat!(
"Offset of field: ",
stringify!(RGBLedMatrixOptions),
"::",
stringify!(limit_refresh_rate_hz)
)
);
}
#[doc = " Runtime options to simplify doing common things for many programs such as"]
#[doc = " dropping privileges and becoming a daemon."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct RGBLedRuntimeOptions {
pub gpio_slowdown: ::std::os::raw::c_int,
pub daemon: ::std::os::raw::c_int,
pub drop_privileges: ::std::os::raw::c_int,
pub do_gpio_init: bool,
pub drop_priv_user: *const ::std::os::raw::c_char,
pub drop_priv_group: *const ::std::os::raw::c_char,
}
#[test]
fn bindgen_test_layout_RGBLedRuntimeOptions() {
assert_eq!(
::std::mem::size_of::<RGBLedRuntimeOptions>(),
32usize,
concat!("Size of: ", stringify!(RGBLedRuntimeOptions))
);
assert_eq!(
::std::mem::align_of::<RGBLedRuntimeOptions>(),
8usize,
concat!("Alignment of ", stringify!(RGBLedRuntimeOptions))
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedRuntimeOptions>())).gpio_slowdown as *const _ as usize
},
0usize,
concat!(
"Offset of field: ",
stringify!(RGBLedRuntimeOptions),
"::",
stringify!(gpio_slowdown)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<RGBLedRuntimeOptions>())).daemon as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(RGBLedRuntimeOptions),
"::",
stringify!(daemon)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedRuntimeOptions>())).drop_privileges as *const _ as usize
},
8usize,
concat!(
"Offset of field: ",
stringify!(RGBLedRuntimeOptions),
"::",
stringify!(drop_privileges)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedRuntimeOptions>())).do_gpio_init as *const _ as usize
},
12usize,
concat!(
"Offset of field: ",
stringify!(RGBLedRuntimeOptions),
"::",
stringify!(do_gpio_init)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedRuntimeOptions>())).drop_priv_user as *const _ as usize
},
16usize,
concat!(
"Offset of field: ",
stringify!(RGBLedRuntimeOptions),
"::",
stringify!(drop_priv_user)
)
);
assert_eq!(
unsafe {
&(*(::std::ptr::null::<RGBLedRuntimeOptions>())).drop_priv_group as *const _ as usize
},
24usize,
concat!(
"Offset of field: ",
stringify!(RGBLedRuntimeOptions),
"::",
stringify!(drop_priv_group)
)
);
}
#[doc = " 24-bit RGB color."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Color {
pub r: u8,
pub g: u8,
pub b: u8,
}
#[test]
fn bindgen_test_layout_Color() {
assert_eq!(
::std::mem::size_of::<Color>(),
3usize,
concat!("Size of: ", stringify!(Color))
);
assert_eq!(
::std::mem::align_of::<Color>(),
1usize,
concat!("Alignment of ", stringify!(Color))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<Color>())).r as *const _ as usize },
0usize,
concat!("Offset of field: ", stringify!(Color), "::", stringify!(r))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<Color>())).g as *const _ as usize },
1usize,
concat!("Offset of field: ", stringify!(Color), "::", stringify!(g))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<Color>())).b as *const _ as usize },
2usize,
concat!("Offset of field: ", stringify!(Color), "::", stringify!(b))
);
}
extern "C" {
#[doc = " Universal way to create and initialize a matrix."]
#[doc = " The \"options\" struct (if not NULL) contains all default configuration values"]
#[doc = " chosen by the programmer to create the matrix."]
#[doc = ""]
#[doc = " If \"argc\" and \"argv\" are provided, this function also reads command line"]
#[doc = " flags provided, that then can override any of the defaults given."]
#[doc = " The arguments that have been used from the command line are removed from"]
#[doc = " the argv list (and argc is adjusted) - that way these don't mess with your"]
#[doc = " own command line handling."]
#[doc = ""]
#[doc = " The actual options used are filled back into the \"options\" struct if not"]
#[doc = " NULL."]
#[doc = ""]
#[doc = " Usage:"]
#[doc = " ----------------"]
#[doc = " int main(int argc, char **argv) {"]
#[doc = " struct RGBLedMatrixOptions options;"]
#[doc = " memset(&options, 0, sizeof(options));"]
#[doc = " options.rows = 32; // You can set defaults if you want."]
#[doc = " options.chain_length = 1;"]
#[doc = " struct RGBLedMatrix *matrix = led_matrix_create_from_options(&options,"]
#[doc = " &argc, &argv);"]
#[doc = " if (matrix == NULL) {"]
#[doc = " led_matrix_print_flags(stderr);"]
#[doc = " return 1;"]
#[doc = " }"]
#[doc = " // do additional commandline handling; then use matrix..."]
#[doc = " }"]
#[doc = " ----------------"]
pub fn led_matrix_create_from_options(
options: *mut RGBLedMatrixOptions,
argc: *mut ::std::os::raw::c_int,
argv: *mut *mut *mut ::std::os::raw::c_char,
) -> *mut RGBLedMatrix;
}
extern "C" {
pub fn led_matrix_create_from_options_const_argv(
options: *mut RGBLedMatrixOptions,
argc: ::std::os::raw::c_int,
argv: *mut *mut ::std::os::raw::c_char,
) -> *mut RGBLedMatrix;
}
extern "C" {
#[doc = " The way to completely initialize your matrix without using command line"]
#[doc = " flags to initialize some things."]
#[doc = ""]
#[doc = " The actual options used are filled back into the \"options\" and \"rt_options\""]
#[doc = " struct if not NULL. If they are null, the default value is used."]
#[doc = ""]
#[doc = " Usage:"]
#[doc = " ----------------"]
#[doc = " int main(int argc, char **argv) {"]
#[doc = " struct RGBLedMatrixOptions options;"]
#[doc = " struct RGBLedRuntimeOptions rt_options;"]
#[doc = " memset(&options, 0, sizeof(options));"]
#[doc = " memset(&rt_options, 0, sizeof(rt_options));"]
#[doc = " options.rows = 32; // You can set defaults if you want."]
#[doc = " options.chain_length = 1;"]
#[doc = " rt_options.gpio_slowdown = 4;"]
#[doc = " struct RGBLedMatrix *matrix = led_matrix_create_from_options_and_rt_options(&options, &rt_options);"]
#[doc = " if (matrix == NULL) {"]
#[doc = " return 1;"]
#[doc = " }"]
#[doc = " // do additional commandline handling; then use matrix..."]
#[doc = " }"]
#[doc = " ----------------"]
pub fn led_matrix_create_from_options_and_rt_options(
opts: *mut RGBLedMatrixOptions,
rt_opts: *mut RGBLedRuntimeOptions,
) -> *mut RGBLedMatrix;
}
extern "C" {
#[doc = " Print available LED matrix options."]
pub fn led_matrix_print_flags(out: *mut FILE);
}
extern "C" {
#[doc = " Simple form of led_matrix_create_from_options() with just the few"]
#[doc = " main options. Returns NULL if that was not possible."]
#[doc = " The \"rows\" are the number of rows supported by the display, so 32, 16 or 8."]
#[doc = ""]
#[doc = " Number of \"chained_display\"s tells many of these are daisy-chained together"]
#[doc = " (output of one connected to input of next)."]
#[doc = ""]
#[doc = " The \"parallel_display\" number determines if there is one or two displays"]
#[doc = " connected in parallel to the GPIO port - this only works with newer"]
#[doc = " Raspberry Pi that have 40 interface pins."]
#[doc = ""]
#[doc = " This creates a realtime thread and requires root access to access the GPIO"]
#[doc = " pins."]
#[doc = " So if you run this in a daemon, this should be called after becoming a"]
#[doc = " daemon (as fork/exec stops threads) and before dropping privileges."]
pub fn led_matrix_create(
rows: ::std::os::raw::c_int,
chained: ::std::os::raw::c_int,
parallel: ::std::os::raw::c_int,
) -> *mut RGBLedMatrix;
}
extern "C" {
#[doc = " Stop matrix and free memory."]
#[doc = " Always call before the end of the program to properly reset the hardware"]
pub fn led_matrix_delete(matrix: *mut RGBLedMatrix);
}
extern "C" {
#[doc = " Get active canvas from LED matrix for you to draw on."]
#[doc = " Ownership of returned pointer stays with the matrix, don't free()."]
pub fn led_matrix_get_canvas(matrix: *mut RGBLedMatrix) -> *mut LedCanvas;
}
extern "C" {
#[doc = " Return size of canvas."]
pub fn led_canvas_get_size(
canvas: *const LedCanvas,
width: *mut ::std::os::raw::c_int,
height: *mut ::std::os::raw::c_int,
);
}
extern "C" {
#[doc = " Set pixel at (x, y) with color (r,g,b)."]
pub fn led_canvas_set_pixel(
canvas: *mut LedCanvas,
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
r: u8,
g: u8,
b: u8,
);
}
extern "C" {
#[doc = " Copies pixels to rectangle at (x, y) with size (width, height)."]
pub fn led_canvas_set_pixels(
canvas: *mut LedCanvas,
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
width: ::std::os::raw::c_int,
height: ::std::os::raw::c_int,
colors: *mut Color,
);
}
extern "C" {
#[doc = " Clear screen (black)."]
pub fn led_canvas_clear(canvas: *mut LedCanvas);
}
extern "C" {
#[doc = " Fill matrix with given color."]
pub fn led_canvas_fill(canvas: *mut LedCanvas, r: u8, g: u8, b: u8);
}
extern "C" {
#[doc = " Create a new canvas to be used with led_matrix_swap_on_vsync()"]
#[doc = " Ownership of returned pointer stays with the matrix, don't free()."]
pub fn led_matrix_create_offscreen_canvas(matrix: *mut RGBLedMatrix) -> *mut LedCanvas;
}
extern "C" {
#[doc = " Swap the given canvas (created with create_offscreen_canvas) with the"]
#[doc = " currently active canvas on vsync (blocks until vsync is reached)."]
#[doc = " Returns the previously active canvas. So with that, you can create double"]
#[doc = " buffering:"]
#[doc = ""]
#[doc = " struct LedCanvas *offscreen = led_matrix_create_offscreen_canvas(...);"]
#[doc = " led_canvas_set_pixel(offscreen, ...); // not shown until swap-on-vsync"]
#[doc = " offscreen = led_matrix_swap_on_vsync(matrix, offscreen);"]
#[doc = " // The returned buffer, assigned to offscreen, is now the inactive buffer"]
#[doc = " // fill, then swap again."]
pub fn led_matrix_swap_on_vsync(
matrix: *mut RGBLedMatrix,
canvas: *mut LedCanvas,
) -> *mut LedCanvas;
}
extern "C" {
pub fn led_matrix_get_brightness(matrix: *mut RGBLedMatrix) -> u8;
}
extern "C" {
pub fn led_matrix_set_brightness(matrix: *mut RGBLedMatrix, brightness: u8);
}
extern "C" {
pub fn set_image(
c: *mut LedCanvas,
canvas_offset_x: ::std::os::raw::c_int,
canvas_offset_y: ::std::os::raw::c_int,
image_buffer: *const u8,
buffer_size_bytes: size_t,
image_width: ::std::os::raw::c_int,
image_height: ::std::os::raw::c_int,
is_bgr: ::std::os::raw::c_char,
);
}
extern "C" {
pub fn load_font(bdf_font_file: *const ::std::os::raw::c_char) -> *mut LedFont;
}
extern "C" {
pub fn baseline_font(font: *mut LedFont) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn height_font(font: *mut LedFont) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn create_outline_font(font: *mut LedFont) -> *mut LedFont;
}
extern "C" {
pub fn delete_font(font: *mut LedFont);
}
extern "C" {
pub fn draw_text(
c: *mut LedCanvas,
font: *mut LedFont,
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
r: u8,
g: u8,
b: u8,
utf8_text: *const ::std::os::raw::c_char,
kerning_offset: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn vertical_draw_text(
c: *mut LedCanvas,
font: *mut LedFont,
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
r: u8,
g: u8,
b: u8,
utf8_text: *const ::std::os::raw::c_char,
kerning_offset: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn draw_circle(
c: *mut LedCanvas,
x: ::std::os::raw::c_int,
y: ::std::os::raw::c_int,
radius: ::std::os::raw::c_int,
r: u8,
g: u8,
b: u8,
);
}
extern "C" {
pub fn draw_line(
c: *mut LedCanvas,
x0: ::std::os::raw::c_int,
y0: ::std::os::raw::c_int,
x1: ::std::os::raw::c_int,
y1: ::std::os::raw::c_int,
r: u8,
g: u8,
b: u8,
);
}
pub type __builtin_va_list = [__va_list_tag; 1usize];
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct __va_list_tag {
pub gp_offset: ::std::os::raw::c_uint,
pub fp_offset: ::std::os::raw::c_uint,
pub overflow_arg_area: *mut ::std::os::raw::c_void,
pub reg_save_area: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout___va_list_tag() {
assert_eq!(
::std::mem::size_of::<__va_list_tag>(),
24usize,
concat!("Size of: ", stringify!(__va_list_tag))
);
assert_eq!(
::std::mem::align_of::<__va_list_tag>(),
8usize,
concat!("Alignment of ", stringify!(__va_list_tag))
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
0usize,
concat!(
"Offset of field: ",
stringify!(__va_list_tag),
"::",
stringify!(gp_offset)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
4usize,
concat!(
"Offset of field: ",
stringify!(__va_list_tag),
"::",
stringify!(fp_offset)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
8usize,
concat!(
"Offset of field: ",
stringify!(__va_list_tag),
"::",
stringify!(overflow_arg_area)
)
);
assert_eq!(
unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
16usize,
concat!(
"Offset of field: ",
stringify!(__va_list_tag),
"::",
stringify!(reg_save_area)
)
);
}