#[allow(
    non_camel_case_types,
    dead_code,
    non_upper_case_globals,
    non_snake_case,
    improper_ctypes
)]
#[allow(clippy::unreadable_literal)]
pub mod kernel_astc {
    /* automatically generated by rust-bindgen */

    pub const _STDINT_H: u32 = 1;
    pub const _FEATURES_H: u32 = 1;
    pub const _DEFAULT_SOURCE: u32 = 1;
    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 _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 = 201605;
    pub const __STDC_NO_THREADS__: u32 = 1;
    pub const __GNU_LIBRARY__: u32 = 6;
    pub const __GLIBC__: u32 = 2;
    pub const __GLIBC_MINOR__: u32 = 24;
    pub const _SYS_CDEFS_H: u32 = 1;
    pub const __WORDSIZE: u32 = 64;
    pub const __WORDSIZE_TIME64_COMPAT32: u32 = 1;
    pub const __SYSCALL_WORDSIZE: u32 = 64;
    pub const _BITS_WCHAR_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 type int_least8_t = ::std::os::raw::c_schar;
    pub type int_least16_t = ::std::os::raw::c_short;
    pub type int_least32_t = ::std::os::raw::c_int;
    pub type int_least64_t = ::std::os::raw::c_long;
    pub type uint_least8_t = ::std::os::raw::c_uchar;
    pub type uint_least16_t = ::std::os::raw::c_ushort;
    pub type uint_least32_t = ::std::os::raw::c_uint;
    pub type uint_least64_t = ::std::os::raw::c_ulong;
    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 = ::std::os::raw::c_long;
    pub type uintmax_t = ::std::os::raw::c_ulong;
    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct rgba_surface {
        pub ptr: *mut u8,
        pub width: i32,
        pub height: i32,
        pub stride: i32,
    }
    #[test]
    fn bindgen_test_layout_rgba_surface() {
        assert_eq!(
            ::std::mem::size_of::<rgba_surface>(),
            24usize,
            concat!("Size of: ", stringify!(rgba_surface))
        );
        assert_eq!(
            ::std::mem::align_of::<rgba_surface>(),
            8usize,
            concat!("Alignment of ", stringify!(rgba_surface))
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<rgba_surface>())).ptr as *const _ as usize },
            0usize,
            concat!(
                "Offset of field: ",
                stringify!(rgba_surface),
                "::",
                stringify!(ptr)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<rgba_surface>())).width as *const _ as usize },
            8usize,
            concat!(
                "Offset of field: ",
                stringify!(rgba_surface),
                "::",
                stringify!(width)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<rgba_surface>())).height as *const _ as usize },
            12usize,
            concat!(
                "Offset of field: ",
                stringify!(rgba_surface),
                "::",
                stringify!(height)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<rgba_surface>())).stride as *const _ as usize },
            16usize,
            concat!(
                "Offset of field: ",
                stringify!(rgba_surface),
                "::",
                stringify!(stride)
            )
        );
    }
    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct astc_enc_context {
        pub width: i32,
        pub height: i32,
        pub channels: i32,
        pub dual_plane: bool,
        pub partitions: i32,
        pub color_endpoint_pairs: i32,
    }
    #[test]
    fn bindgen_test_layout_astc_enc_context() {
        assert_eq!(
            ::std::mem::size_of::<astc_enc_context>(),
            24usize,
            concat!("Size of: ", stringify!(astc_enc_context))
        );
        assert_eq!(
            ::std::mem::align_of::<astc_enc_context>(),
            4usize,
            concat!("Alignment of ", stringify!(astc_enc_context))
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_enc_context>())).width as *const _ as usize },
            0usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_context),
                "::",
                stringify!(width)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_enc_context>())).height as *const _ as usize },
            4usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_context),
                "::",
                stringify!(height)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_enc_context>())).channels as *const _ as usize },
            8usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_context),
                "::",
                stringify!(channels)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_enc_context>())).dual_plane as *const _ as usize },
            12usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_context),
                "::",
                stringify!(dual_plane)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_enc_context>())).partitions as *const _ as usize },
            16usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_context),
                "::",
                stringify!(partitions)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_enc_context>())).color_endpoint_pairs as *const _
                    as usize
            },
            20usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_context),
                "::",
                stringify!(color_endpoint_pairs)
            )
        );
    }
    #[repr(C)]
    #[derive(Debug, Copy, Clone)]
    pub struct astc_enc_settings {
        pub block_width: i32,
        pub block_height: i32,
        pub channels: i32,
        pub fastSkipTreshold: i32,
        pub refineIterations: i32,
    }
    #[test]
    fn bindgen_test_layout_astc_enc_settings() {
        assert_eq!(
            ::std::mem::size_of::<astc_enc_settings>(),
            20usize,
            concat!("Size of: ", stringify!(astc_enc_settings))
        );
        assert_eq!(
            ::std::mem::align_of::<astc_enc_settings>(),
            4usize,
            concat!("Alignment of ", stringify!(astc_enc_settings))
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_enc_settings>())).block_width as *const _ as usize
            },
            0usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_settings),
                "::",
                stringify!(block_width)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_enc_settings>())).block_height as *const _ as usize
            },
            4usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_settings),
                "::",
                stringify!(block_height)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_enc_settings>())).channels as *const _ as usize },
            8usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_settings),
                "::",
                stringify!(channels)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_enc_settings>())).fastSkipTreshold as *const _ as usize
            },
            12usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_settings),
                "::",
                stringify!(fastSkipTreshold)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_enc_settings>())).refineIterations as *const _ as usize
            },
            16usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_enc_settings),
                "::",
                stringify!(refineIterations)
            )
        );
    }
    #[repr(C)]
    #[derive(Copy, Clone)]
    pub struct astc_block {
        pub width: i32,
        pub height: i32,
        pub dual_plane: bool,
        pub weight_range: i32,
        pub weights: [u8; 64usize],
        pub color_component_selector: i32,
        pub partitions: i32,
        pub partition_id: i32,
        pub color_endpoint_pairs: i32,
        pub channels: i32,
        pub color_endpoint_modes: [i32; 4usize],
        pub endpoint_range: i32,
        pub endpoints: [u8; 18usize],
    }
    #[test]
    fn bindgen_test_layout_astc_block() {
        assert_eq!(
            ::std::mem::size_of::<astc_block>(),
            140usize,
            concat!("Size of: ", stringify!(astc_block))
        );
        assert_eq!(
            ::std::mem::align_of::<astc_block>(),
            4usize,
            concat!("Alignment of ", stringify!(astc_block))
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).width as *const _ as usize },
            0usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(width)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).height as *const _ as usize },
            4usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(height)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).dual_plane as *const _ as usize },
            8usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(dual_plane)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).weight_range as *const _ as usize },
            12usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(weight_range)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).weights as *const _ as usize },
            16usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(weights)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_block>())).color_component_selector as *const _ as usize
            },
            80usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(color_component_selector)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).partitions as *const _ as usize },
            84usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(partitions)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).partition_id as *const _ as usize },
            88usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(partition_id)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_block>())).color_endpoint_pairs as *const _ as usize
            },
            92usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(color_endpoint_pairs)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).channels as *const _ as usize },
            96usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(channels)
            )
        );
        assert_eq!(
            unsafe {
                &(*(::std::ptr::null::<astc_block>())).color_endpoint_modes as *const _ as usize
            },
            100usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(color_endpoint_modes)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).endpoint_range as *const _ as usize },
            116usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(endpoint_range)
            )
        );
        assert_eq!(
            unsafe { &(*(::std::ptr::null::<astc_block>())).endpoints as *const _ as usize },
            120usize,
            concat!(
                "Offset of field: ",
                stringify!(astc_block),
                "::",
                stringify!(endpoints)
            )
        );
    }
    extern "C" {
        pub fn astc_encode_ispc(
            src: *mut rgba_surface,
            block_scores: *mut f32,
            dst: *mut u8,
            list: *mut u64,
            list_context: *mut astc_enc_context,
            settings: *mut astc_enc_settings,
        );
    }
    extern "C" {
        pub fn astc_rank_ispc(
            src: *mut rgba_surface,
            xx: i32,
            yy: i32,
            mode_buffer: *mut u32,
            settings: *mut astc_enc_settings,
        );
    }
    extern "C" {
        pub fn get_programCount() -> i32;
    }
}
