/* automatically generated by rust-bindgen 0.57.0 */

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 __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_559_COMPLEX__: u32 = 1;
pub const __STDC_ISO_10646__: u32 = 201706;
pub const __GNU_LIBRARY__: u32 = 6;
pub const __GLIBC__: u32 = 2;
pub const __GLIBC_MINOR__: u32 = 32;
pub const _SYS_CDEFS_H: u32 = 1;
pub const __glibc_c99_flexarr_available: u32 = 1;
pub const __WORDSIZE: u32 = 64;
pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
pub const __SYSCALL_WORDSIZE: u32 = 64;
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_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 __TIMESIZE: u32 = 64;
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 true_: u32 = 1;
pub const false_: u32 = 0;
pub const __bool_true_false_are_defined: u32 = 1;
pub const LIBEVDI_VERSION_MAJOR: u32 = 1;
pub const LIBEVDI_VERSION_MINOR: u32 = 9;
pub const LIBEVDI_VERSION_PATCH: 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;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_lib_version {
    pub version_major: ::std::os::raw::c_int,
    pub version_minor: ::std::os::raw::c_int,
    pub version_patchlevel: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_evdi_lib_version() {
    assert_eq!(
        ::std::mem::size_of::<evdi_lib_version>(),
        12usize,
        concat!("Size of: ", stringify!(evdi_lib_version))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_lib_version>(),
        4usize,
        concat!("Alignment of ", stringify!(evdi_lib_version))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_lib_version>())).version_major as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_lib_version),
            "::",
            stringify!(version_major)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_lib_version>())).version_minor as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_lib_version),
            "::",
            stringify!(version_minor)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_lib_version>())).version_patchlevel as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_lib_version),
            "::",
            stringify!(version_patchlevel)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_device_context {
    _unused: [u8; 0],
}
pub type evdi_handle = *mut evdi_device_context;
pub type evdi_selectable = ::std::os::raw::c_int;
pub const evdi_device_status_AVAILABLE: evdi_device_status = 0;
pub const evdi_device_status_UNRECOGNIZED: evdi_device_status = 1;
pub const evdi_device_status_NOT_PRESENT: evdi_device_status = 2;
pub type evdi_device_status = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_rect {
    pub x1: ::std::os::raw::c_int,
    pub y1: ::std::os::raw::c_int,
    pub x2: ::std::os::raw::c_int,
    pub y2: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_evdi_rect() {
    assert_eq!(
        ::std::mem::size_of::<evdi_rect>(),
        16usize,
        concat!("Size of: ", stringify!(evdi_rect))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_rect>(),
        4usize,
        concat!("Alignment of ", stringify!(evdi_rect))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_rect>())).x1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_rect),
            "::",
            stringify!(x1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_rect>())).y1 as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_rect),
            "::",
            stringify!(y1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_rect>())).x2 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_rect),
            "::",
            stringify!(x2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_rect>())).y2 as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_rect),
            "::",
            stringify!(y2)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_mode {
    pub width: ::std::os::raw::c_int,
    pub height: ::std::os::raw::c_int,
    pub refresh_rate: ::std::os::raw::c_int,
    pub bits_per_pixel: ::std::os::raw::c_int,
    pub pixel_format: ::std::os::raw::c_uint,
}
#[test]
fn bindgen_test_layout_evdi_mode() {
    assert_eq!(
        ::std::mem::size_of::<evdi_mode>(),
        20usize,
        concat!("Size of: ", stringify!(evdi_mode))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_mode>(),
        4usize,
        concat!("Alignment of ", stringify!(evdi_mode))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_mode>())).width as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_mode),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_mode>())).height as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_mode),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_mode>())).refresh_rate as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_mode),
            "::",
            stringify!(refresh_rate)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_mode>())).bits_per_pixel as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_mode),
            "::",
            stringify!(bits_per_pixel)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_mode>())).pixel_format as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_mode),
            "::",
            stringify!(pixel_format)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_buffer {
    pub id: ::std::os::raw::c_int,
    pub buffer: *mut ::std::os::raw::c_void,
    pub width: ::std::os::raw::c_int,
    pub height: ::std::os::raw::c_int,
    pub stride: ::std::os::raw::c_int,
    pub rects: *mut evdi_rect,
    pub rect_count: ::std::os::raw::c_int,
}
#[test]
fn bindgen_test_layout_evdi_buffer() {
    assert_eq!(
        ::std::mem::size_of::<evdi_buffer>(),
        48usize,
        concat!("Size of: ", stringify!(evdi_buffer))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_buffer>(),
        8usize,
        concat!("Alignment of ", stringify!(evdi_buffer))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).id as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(id)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).buffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).width as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).height as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).stride as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(stride)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).rects as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(rects)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_buffer>())).rect_count as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_buffer),
            "::",
            stringify!(rect_count)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_cursor_set {
    pub hot_x: i32,
    pub hot_y: i32,
    pub width: u32,
    pub height: u32,
    pub enabled: u8,
    pub buffer_length: u32,
    pub buffer: *mut u32,
    pub pixel_format: u32,
    pub stride: u32,
}
#[test]
fn bindgen_test_layout_evdi_cursor_set() {
    assert_eq!(
        ::std::mem::size_of::<evdi_cursor_set>(),
        40usize,
        concat!("Size of: ", stringify!(evdi_cursor_set))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_cursor_set>(),
        8usize,
        concat!("Alignment of ", stringify!(evdi_cursor_set))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).hot_x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(hot_x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).hot_y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(hot_y)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).width as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(width)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).height as *const _ as usize },
        12usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(height)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).enabled as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(enabled)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).buffer_length as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(buffer_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).buffer as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(buffer)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).pixel_format as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(pixel_format)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_set>())).stride as *const _ as usize },
        36usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_set),
            "::",
            stringify!(stride)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_cursor_move {
    pub x: i32,
    pub y: i32,
}
#[test]
fn bindgen_test_layout_evdi_cursor_move() {
    assert_eq!(
        ::std::mem::size_of::<evdi_cursor_move>(),
        8usize,
        concat!("Size of: ", stringify!(evdi_cursor_move))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_cursor_move>(),
        4usize,
        concat!("Alignment of ", stringify!(evdi_cursor_move))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_move>())).x as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_move),
            "::",
            stringify!(x)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_cursor_move>())).y as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_cursor_move),
            "::",
            stringify!(y)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_ddcci_data {
    pub address: u16,
    pub flags: u16,
    pub buffer_length: u32,
    pub buffer: *mut u8,
}
#[test]
fn bindgen_test_layout_evdi_ddcci_data() {
    assert_eq!(
        ::std::mem::size_of::<evdi_ddcci_data>(),
        16usize,
        concat!("Size of: ", stringify!(evdi_ddcci_data))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_ddcci_data>(),
        8usize,
        concat!("Alignment of ", stringify!(evdi_ddcci_data))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_ddcci_data>())).address as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_ddcci_data),
            "::",
            stringify!(address)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_ddcci_data>())).flags as *const _ as usize },
        2usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_ddcci_data),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_ddcci_data>())).buffer_length as *const _ as usize },
        4usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_ddcci_data),
            "::",
            stringify!(buffer_length)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_ddcci_data>())).buffer as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_ddcci_data),
            "::",
            stringify!(buffer)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_event_context {
    pub dpms_handler: ::std::option::Option<
        unsafe extern "C" fn(
            dpms_mode: ::std::os::raw::c_int,
            user_data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub mode_changed_handler: ::std::option::Option<
        unsafe extern "C" fn(mode: evdi_mode, user_data: *mut ::std::os::raw::c_void),
    >,
    pub update_ready_handler: ::std::option::Option<
        unsafe extern "C" fn(
            buffer_to_be_updated: ::std::os::raw::c_int,
            user_data: *mut ::std::os::raw::c_void,
        ),
    >,
    pub crtc_state_handler: ::std::option::Option<
        unsafe extern "C" fn(state: ::std::os::raw::c_int, user_data: *mut ::std::os::raw::c_void),
    >,
    pub cursor_set_handler: ::std::option::Option<
        unsafe extern "C" fn(cursor_set: evdi_cursor_set, user_data: *mut ::std::os::raw::c_void),
    >,
    pub cursor_move_handler: ::std::option::Option<
        unsafe extern "C" fn(cursor_move: evdi_cursor_move, user_data: *mut ::std::os::raw::c_void),
    >,
    pub ddcci_data_handler: ::std::option::Option<
        unsafe extern "C" fn(ddcci_data: evdi_ddcci_data, user_data: *mut ::std::os::raw::c_void),
    >,
    pub user_data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_evdi_event_context() {
    assert_eq!(
        ::std::mem::size_of::<evdi_event_context>(),
        64usize,
        concat!("Size of: ", stringify!(evdi_event_context))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_event_context>(),
        8usize,
        concat!("Alignment of ", stringify!(evdi_event_context))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_event_context>())).dpms_handler as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(dpms_handler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_event_context>())).mode_changed_handler as *const _ as usize
        },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(mode_changed_handler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_event_context>())).update_ready_handler as *const _ as usize
        },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(update_ready_handler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_event_context>())).crtc_state_handler as *const _ as usize
        },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(crtc_state_handler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_event_context>())).cursor_set_handler as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(cursor_set_handler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_event_context>())).cursor_move_handler as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(cursor_move_handler)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<evdi_event_context>())).ddcci_data_handler as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(ddcci_data_handler)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_event_context>())).user_data as *const _ as usize },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_event_context),
            "::",
            stringify!(user_data)
        )
    );
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct evdi_logging {
    pub function: ::std::option::Option<
        unsafe extern "C" fn(
            user_data: *mut ::std::os::raw::c_void,
            fmt: *const ::std::os::raw::c_char,
            ...
        ),
    >,
    pub user_data: *mut ::std::os::raw::c_void,
}
#[test]
fn bindgen_test_layout_evdi_logging() {
    assert_eq!(
        ::std::mem::size_of::<evdi_logging>(),
        16usize,
        concat!("Size of: ", stringify!(evdi_logging))
    );
    assert_eq!(
        ::std::mem::align_of::<evdi_logging>(),
        8usize,
        concat!("Alignment of ", stringify!(evdi_logging))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_logging>())).function as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_logging),
            "::",
            stringify!(function)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<evdi_logging>())).user_data as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(evdi_logging),
            "::",
            stringify!(user_data)
        )
    );
}
extern "C" {
    pub fn evdi_check_device(device: ::std::os::raw::c_int) -> evdi_device_status;
}
extern "C" {
    pub fn evdi_open(device: ::std::os::raw::c_int) -> evdi_handle;
}
extern "C" {
    pub fn evdi_add_device() -> ::std::os::raw::c_int;
}
extern "C" {
    pub fn evdi_open_attached_to(sysfs_parent_device: *const ::std::os::raw::c_char)
        -> evdi_handle;
}
extern "C" {
    pub fn evdi_close(handle: evdi_handle);
}
extern "C" {
    pub fn evdi_connect(
        handle: evdi_handle,
        edid: *const ::std::os::raw::c_uchar,
        edid_length: ::std::os::raw::c_uint,
        sku_area_limit: u32,
    );
}
extern "C" {
    pub fn evdi_disconnect(handle: evdi_handle);
}
extern "C" {
    pub fn evdi_enable_cursor_events(handle: evdi_handle, enable: bool);
}
extern "C" {
    pub fn evdi_grab_pixels(
        handle: evdi_handle,
        rects: *mut evdi_rect,
        num_rects: *mut ::std::os::raw::c_int,
    );
}
extern "C" {
    pub fn evdi_register_buffer(handle: evdi_handle, buffer: evdi_buffer);
}
extern "C" {
    pub fn evdi_unregister_buffer(handle: evdi_handle, bufferId: ::std::os::raw::c_int);
}
extern "C" {
    pub fn evdi_request_update(handle: evdi_handle, bufferId: ::std::os::raw::c_int) -> bool;
}
extern "C" {
    pub fn evdi_ddcci_response(
        handle: evdi_handle,
        buffer: *const ::std::os::raw::c_uchar,
        buffer_length: u32,
        result: bool,
    );
}
extern "C" {
    pub fn evdi_handle_events(handle: evdi_handle, evtctx: *mut evdi_event_context);
}
extern "C" {
    pub fn evdi_get_event_ready(handle: evdi_handle) -> evdi_selectable;
}
extern "C" {
    pub fn evdi_get_lib_version(version: *mut evdi_lib_version);
}
extern "C" {
    pub fn evdi_set_logging(evdi_logging: evdi_logging);
}
