/* automatically generated by rust-bindgen 0.59.2 */

pub const ITT_OS_WIN: u32 = 1;
pub const ITT_OS_LINUX: u32 = 2;
pub const ITT_OS_MAC: u32 = 3;
pub const ITT_OS_FREEBSD: u32 = 4;
pub const ITT_OS_OPENBSD: u32 = 5;
pub const ITT_OS: u32 = 4;
pub const ITT_PLATFORM_WIN: u32 = 1;
pub const ITT_PLATFORM_POSIX: u32 = 2;
pub const ITT_PLATFORM_MAC: u32 = 3;
pub const ITT_PLATFORM_FREEBSD: u32 = 4;
pub const ITT_PLATFORM_OPENBSD: u32 = 5;
pub const ITT_PLATFORM: u32 = 4;
pub const ITT_MAJOR: u32 = 3;
pub const ITT_MINOR: u32 = 0;
pub const __itt_suppress_all_errors: u32 = 2147483647;
pub const __itt_suppress_threading_errors: u32 = 255;
pub const __itt_suppress_memory_errors: u32 = 65280;
pub const __itt_attr_barrier: u32 = 1;
pub const __itt_attr_mutex: u32 = 2;
pub const __itt_heap_leaks: u32 = 1;
pub const __itt_heap_growth: u32 = 2;
pub const __itt_section_exec: u32 = 536870912;
pub const __itt_section_read: u32 = 1073741824;
pub const __itt_section_write: u32 = 2147483648;
pub type __uint64_t = ::std::os::raw::c_ulong;
pub type __size_t = __uint64_t;
pub type size_t = __size_t;
pub const __itt_collection_scope___itt_collection_scope_host: __itt_collection_scope = 1;
pub const __itt_collection_scope___itt_collection_scope_offload: __itt_collection_scope = 2;
pub const __itt_collection_scope___itt_collection_scope_all: __itt_collection_scope = 2147483647;
#[doc = " @enum __itt_collection_scope"]
#[doc = " @brief Enumerator for collection scopes"]
pub type __itt_collection_scope = ::std::os::raw::c_uint;
pub type __itt_pause_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_pause_ptr__3_0: __itt_pause_ptr__3_0_t;
}
pub type __itt_pause_scoped_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(arg1: __itt_collection_scope)>;
extern "C" {
    pub static mut __itt_pause_scoped_ptr__3_0: __itt_pause_scoped_ptr__3_0_t;
}
pub type __itt_resume_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_resume_ptr__3_0: __itt_resume_ptr__3_0_t;
}
pub type __itt_resume_scoped_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(arg1: __itt_collection_scope)>;
extern "C" {
    pub static mut __itt_resume_scoped_ptr__3_0: __itt_resume_scoped_ptr__3_0_t;
}
pub type __itt_detach_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_detach_ptr__3_0: __itt_detach_ptr__3_0_t;
}
#[doc = " @defgroup Intel Processor Trace control"]
#[doc = " API from this group provides control over collection and analysis of Intel Processor Trace (Intel PT) data"]
#[doc = " Information about Intel Processor Trace technology can be found here (Volume 3 chapter 35):"]
#[doc = " https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf"]
#[doc = " Use this API to mark particular code regions for loading detailed performance statistics."]
#[doc = " This mode makes your analysis faster and more accurate."]
#[doc = " @{"]
pub type __itt_pt_region = ::std::os::raw::c_uchar;
pub type __itt_pt_region_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> __itt_pt_region,
>;
extern "C" {
    pub static mut __itt_pt_region_create_ptr__3_0: __itt_pt_region_create_ptr__3_0_t;
}
pub type __itt_thread_set_name_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(name: *const ::std::os::raw::c_char)>;
extern "C" {
    pub static mut __itt_thread_set_name_ptr__3_0: __itt_thread_set_name_ptr__3_0_t;
}
pub type __itt_thread_ignore_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_thread_ignore_ptr__3_0: __itt_thread_ignore_ptr__3_0_t;
}
pub type __itt_suppress_push_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(mask: ::std::os::raw::c_uint)>;
extern "C" {
    pub static mut __itt_suppress_push_ptr__3_0: __itt_suppress_push_ptr__3_0_t;
}
pub type __itt_suppress_pop_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_suppress_pop_ptr__3_0: __itt_suppress_pop_ptr__3_0_t;
}
pub const __itt_suppress_mode___itt_unsuppress_range: __itt_suppress_mode = 0;
pub const __itt_suppress_mode___itt_suppress_range: __itt_suppress_mode = 1;
#[doc = " @enum __itt_suppress_mode"]
#[doc = " @brief Enumerator for the suppressing modes"]
pub type __itt_suppress_mode = ::std::os::raw::c_uint;
#[doc = " @enum __itt_suppress_mode"]
#[doc = " @brief Enumerator for the suppressing modes"]
pub use self::__itt_suppress_mode as __itt_suppress_mode_t;
pub type __itt_suppress_mark_range_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        mode: __itt_suppress_mode_t,
        mask: ::std::os::raw::c_uint,
        address: *mut ::std::os::raw::c_void,
        size: size_t,
    ),
>;
extern "C" {
    pub static mut __itt_suppress_mark_range_ptr__3_0: __itt_suppress_mark_range_ptr__3_0_t;
}
pub type __itt_suppress_clear_range_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        mode: __itt_suppress_mode_t,
        mask: ::std::os::raw::c_uint,
        address: *mut ::std::os::raw::c_void,
        size: size_t,
    ),
>;
extern "C" {
    pub static mut __itt_suppress_clear_range_ptr__3_0: __itt_suppress_clear_range_ptr__3_0_t;
}
pub type __itt_sync_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        addr: *mut ::std::os::raw::c_void,
        objtype: *const ::std::os::raw::c_char,
        objname: *const ::std::os::raw::c_char,
        attribute: ::std::os::raw::c_int,
    ),
>;
extern "C" {
    pub static mut __itt_sync_create_ptr__3_0: __itt_sync_create_ptr__3_0_t;
}
pub type __itt_sync_rename_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void, name: *const ::std::os::raw::c_char),
>;
extern "C" {
    pub static mut __itt_sync_rename_ptr__3_0: __itt_sync_rename_ptr__3_0_t;
}
pub type __itt_sync_destroy_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_sync_destroy_ptr__3_0: __itt_sync_destroy_ptr__3_0_t;
}
pub type __itt_sync_prepare_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_sync_prepare_ptr__3_0: __itt_sync_prepare_ptr__3_0_t;
}
pub type __itt_sync_cancel_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_sync_cancel_ptr__3_0: __itt_sync_cancel_ptr__3_0_t;
}
pub type __itt_sync_acquired_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_sync_acquired_ptr__3_0: __itt_sync_acquired_ptr__3_0_t;
}
pub type __itt_sync_releasing_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_sync_releasing_ptr__3_0: __itt_sync_releasing_ptr__3_0_t;
}
pub type __itt_fsync_prepare_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_fsync_prepare_ptr__3_0: __itt_fsync_prepare_ptr__3_0_t;
}
pub type __itt_fsync_cancel_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_fsync_cancel_ptr__3_0: __itt_fsync_cancel_ptr__3_0_t;
}
pub type __itt_fsync_acquired_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_fsync_acquired_ptr__3_0: __itt_fsync_acquired_ptr__3_0_t;
}
pub type __itt_fsync_releasing_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_fsync_releasing_ptr__3_0: __itt_fsync_releasing_ptr__3_0_t;
}
pub type __itt_model_site = *mut ::std::os::raw::c_void;
pub type __itt_model_site_instance = *mut ::std::os::raw::c_void;
pub type __itt_model_task = *mut ::std::os::raw::c_void;
pub type __itt_model_task_instance = *mut ::std::os::raw::c_void;
pub const __itt_model_disable___itt_model_disable_observation: __itt_model_disable = 0;
pub const __itt_model_disable___itt_model_disable_collection: __itt_model_disable = 1;
#[doc = " @enum __itt_model_disable"]
#[doc = " @brief Enumerator for the disable methods"]
pub type __itt_model_disable = ::std::os::raw::c_uint;
pub type __itt_model_site_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        site: *mut __itt_model_site,
        instance: *mut __itt_model_site_instance,
        name: *const ::std::os::raw::c_char,
    ),
>;
extern "C" {
    pub static mut __itt_model_site_begin_ptr__3_0: __itt_model_site_begin_ptr__3_0_t;
}
pub type __itt_model_site_beginA_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(name: *const ::std::os::raw::c_char)>;
extern "C" {
    pub static mut __itt_model_site_beginA_ptr__3_0: __itt_model_site_beginA_ptr__3_0_t;
}
pub type __itt_model_site_beginAL_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char, siteNameLen: size_t),
>;
extern "C" {
    pub static mut __itt_model_site_beginAL_ptr__3_0: __itt_model_site_beginAL_ptr__3_0_t;
}
pub type __itt_model_site_end_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(site: *mut __itt_model_site, instance: *mut __itt_model_site_instance),
>;
extern "C" {
    pub static mut __itt_model_site_end_ptr__3_0: __itt_model_site_end_ptr__3_0_t;
}
pub type __itt_model_site_end_2_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_model_site_end_2_ptr__3_0: __itt_model_site_end_2_ptr__3_0_t;
}
pub type __itt_model_task_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        task: *mut __itt_model_task,
        instance: *mut __itt_model_task_instance,
        name: *const ::std::os::raw::c_char,
    ),
>;
extern "C" {
    pub static mut __itt_model_task_begin_ptr__3_0: __itt_model_task_begin_ptr__3_0_t;
}
pub type __itt_model_task_beginA_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(name: *const ::std::os::raw::c_char)>;
extern "C" {
    pub static mut __itt_model_task_beginA_ptr__3_0: __itt_model_task_beginA_ptr__3_0_t;
}
pub type __itt_model_task_beginAL_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char, taskNameLen: size_t),
>;
extern "C" {
    pub static mut __itt_model_task_beginAL_ptr__3_0: __itt_model_task_beginAL_ptr__3_0_t;
}
pub type __itt_model_iteration_taskA_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(name: *const ::std::os::raw::c_char)>;
extern "C" {
    pub static mut __itt_model_iteration_taskA_ptr__3_0: __itt_model_iteration_taskA_ptr__3_0_t;
}
pub type __itt_model_iteration_taskAL_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char, taskNameLen: size_t),
>;
extern "C" {
    pub static mut __itt_model_iteration_taskAL_ptr__3_0: __itt_model_iteration_taskAL_ptr__3_0_t;
}
pub type __itt_model_task_end_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(task: *mut __itt_model_task, instance: *mut __itt_model_task_instance),
>;
extern "C" {
    pub static mut __itt_model_task_end_ptr__3_0: __itt_model_task_end_ptr__3_0_t;
}
pub type __itt_model_task_end_2_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_model_task_end_2_ptr__3_0: __itt_model_task_end_2_ptr__3_0_t;
}
pub type __itt_model_lock_acquire_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(lock: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_model_lock_acquire_ptr__3_0: __itt_model_lock_acquire_ptr__3_0_t;
}
pub type __itt_model_lock_acquire_2_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(lock: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_model_lock_acquire_2_ptr__3_0: __itt_model_lock_acquire_2_ptr__3_0_t;
}
pub type __itt_model_lock_release_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(lock: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_model_lock_release_ptr__3_0: __itt_model_lock_release_ptr__3_0_t;
}
pub type __itt_model_lock_release_2_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(lock: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_model_lock_release_2_ptr__3_0: __itt_model_lock_release_2_ptr__3_0_t;
}
pub type __itt_model_record_allocation_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void, size: size_t)>;
extern "C" {
    pub static mut __itt_model_record_allocation_ptr__3_0: __itt_model_record_allocation_ptr__3_0_t;
}
pub type __itt_model_record_deallocation_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_model_record_deallocation_ptr__3_0:
        __itt_model_record_deallocation_ptr__3_0_t;
}
pub type __itt_model_induction_uses_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void, size: size_t)>;
extern "C" {
    pub static mut __itt_model_induction_uses_ptr__3_0: __itt_model_induction_uses_ptr__3_0_t;
}
pub type __itt_model_reduction_uses_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void, size: size_t)>;
extern "C" {
    pub static mut __itt_model_reduction_uses_ptr__3_0: __itt_model_reduction_uses_ptr__3_0_t;
}
pub type __itt_model_observe_uses_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void, size: size_t)>;
extern "C" {
    pub static mut __itt_model_observe_uses_ptr__3_0: __itt_model_observe_uses_ptr__3_0_t;
}
pub type __itt_model_clear_uses_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_model_clear_uses_ptr__3_0: __itt_model_clear_uses_ptr__3_0_t;
}
pub type __itt_model_disable_push_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(x: __itt_model_disable)>;
extern "C" {
    pub static mut __itt_model_disable_push_ptr__3_0: __itt_model_disable_push_ptr__3_0_t;
}
pub type __itt_model_disable_pop_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_model_disable_pop_ptr__3_0: __itt_model_disable_pop_ptr__3_0_t;
}
pub type __itt_model_aggregate_task_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(x: size_t)>;
extern "C" {
    pub static mut __itt_model_aggregate_task_ptr__3_0: __itt_model_aggregate_task_ptr__3_0_t;
}
#[doc = " @defgroup heap Heap"]
#[doc = " @ingroup public"]
#[doc = " Heap group"]
#[doc = " @{"]
pub type __itt_heap_function = *mut ::std::os::raw::c_void;
pub type __itt_heap_function_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        name: *const ::std::os::raw::c_char,
        domain: *const ::std::os::raw::c_char,
    ) -> __itt_heap_function,
>;
extern "C" {
    pub static mut __itt_heap_function_create_ptr__3_0: __itt_heap_function_create_ptr__3_0_t;
}
pub type __itt_heap_allocate_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(h: __itt_heap_function, size: size_t, initialized: ::std::os::raw::c_int),
>;
extern "C" {
    pub static mut __itt_heap_allocate_begin_ptr__3_0: __itt_heap_allocate_begin_ptr__3_0_t;
}
pub type __itt_heap_allocate_end_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        h: __itt_heap_function,
        addr: *mut *mut ::std::os::raw::c_void,
        size: size_t,
        initialized: ::std::os::raw::c_int,
    ),
>;
extern "C" {
    pub static mut __itt_heap_allocate_end_ptr__3_0: __itt_heap_allocate_end_ptr__3_0_t;
}
pub type __itt_heap_free_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(h: __itt_heap_function, addr: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut __itt_heap_free_begin_ptr__3_0: __itt_heap_free_begin_ptr__3_0_t;
}
pub type __itt_heap_free_end_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(h: __itt_heap_function, addr: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut __itt_heap_free_end_ptr__3_0: __itt_heap_free_end_ptr__3_0_t;
}
pub type __itt_heap_reallocate_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        h: __itt_heap_function,
        addr: *mut ::std::os::raw::c_void,
        new_size: size_t,
        initialized: ::std::os::raw::c_int,
    ),
>;
extern "C" {
    pub static mut __itt_heap_reallocate_begin_ptr__3_0: __itt_heap_reallocate_begin_ptr__3_0_t;
}
pub type __itt_heap_reallocate_end_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        h: __itt_heap_function,
        addr: *mut ::std::os::raw::c_void,
        new_addr: *mut *mut ::std::os::raw::c_void,
        new_size: size_t,
        initialized: ::std::os::raw::c_int,
    ),
>;
extern "C" {
    pub static mut __itt_heap_reallocate_end_ptr__3_0: __itt_heap_reallocate_end_ptr__3_0_t;
}
pub type __itt_heap_internal_access_begin_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_heap_internal_access_begin_ptr__3_0:
        __itt_heap_internal_access_begin_ptr__3_0_t;
}
pub type __itt_heap_internal_access_end_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_heap_internal_access_end_ptr__3_0:
        __itt_heap_internal_access_end_ptr__3_0_t;
}
pub type __itt_heap_record_memory_growth_begin_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_heap_record_memory_growth_begin_ptr__3_0:
        __itt_heap_record_memory_growth_begin_ptr__3_0_t;
}
pub type __itt_heap_record_memory_growth_end_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_heap_record_memory_growth_end_ptr__3_0:
        __itt_heap_record_memory_growth_end_ptr__3_0_t;
}
pub type __itt_heap_reset_detection_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(reset_mask: ::std::os::raw::c_uint)>;
extern "C" {
    pub static mut __itt_heap_reset_detection_ptr__3_0: __itt_heap_reset_detection_ptr__3_0_t;
}
pub type __itt_heap_record_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(record_mask: ::std::os::raw::c_uint)>;
extern "C" {
    pub static mut __itt_heap_record_ptr__3_0: __itt_heap_record_ptr__3_0_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_domain {
    #[doc = "< Zero if disabled, non-zero if enabled. The meaning of different non-zero values is reserved to the runtime"]
    pub flags: ::std::os::raw::c_int,
    #[doc = "< Copy of original name in ASCII."]
    pub nameA: *const ::std::os::raw::c_char,
    pub nameW: *mut ::std::os::raw::c_void,
    #[doc = "< Reserved to the runtime"]
    pub extra1: ::std::os::raw::c_int,
    #[doc = "< Reserved to the runtime"]
    pub extra2: *mut ::std::os::raw::c_void,
    pub next: *mut ___itt_domain,
}
#[test]
fn bindgen_test_layout____itt_domain() {
    assert_eq!(
        ::std::mem::size_of::<___itt_domain>(),
        48usize,
        concat!("Size of: ", stringify!(___itt_domain))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_domain>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_domain))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_domain>())).flags as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_domain),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_domain>())).nameA as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_domain),
            "::",
            stringify!(nameA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_domain>())).nameW as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_domain),
            "::",
            stringify!(nameW)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_domain>())).extra1 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_domain),
            "::",
            stringify!(extra1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_domain>())).extra2 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_domain),
            "::",
            stringify!(extra2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_domain>())).next as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_domain),
            "::",
            stringify!(next)
        )
    );
}
pub type __itt_domain = ___itt_domain;
pub type __itt_domain_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut __itt_domain,
>;
extern "C" {
    pub static mut __itt_domain_create_ptr__3_0: __itt_domain_create_ptr__3_0_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_id {
    pub d1: ::std::os::raw::c_ulonglong,
    pub d2: ::std::os::raw::c_ulonglong,
    pub d3: ::std::os::raw::c_ulonglong,
}
#[test]
fn bindgen_test_layout____itt_id() {
    assert_eq!(
        ::std::mem::size_of::<___itt_id>(),
        24usize,
        concat!("Size of: ", stringify!(___itt_id))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_id>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_id))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_id>())).d1 as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_id),
            "::",
            stringify!(d1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_id>())).d2 as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_id),
            "::",
            stringify!(d2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_id>())).d3 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_id),
            "::",
            stringify!(d3)
        )
    );
}
pub type __itt_id = ___itt_id;
extern "C" {
    #[doc = " @endcond"]
    pub static __itt_null: __itt_id;
}
pub type __itt_id_create_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain, id: __itt_id)>;
extern "C" {
    pub static mut __itt_id_create_ptr__3_0: __itt_id_create_ptr__3_0_t;
}
pub type __itt_id_destroy_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain, id: __itt_id)>;
extern "C" {
    pub static mut __itt_id_destroy_ptr__3_0: __itt_id_destroy_ptr__3_0_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_string_handle {
    #[doc = "< Copy of original string in ASCII."]
    pub strA: *const ::std::os::raw::c_char,
    pub strW: *mut ::std::os::raw::c_void,
    #[doc = "< Reserved. Must be zero"]
    pub extra1: ::std::os::raw::c_int,
    #[doc = "< Reserved. Must be zero"]
    pub extra2: *mut ::std::os::raw::c_void,
    pub next: *mut ___itt_string_handle,
}
#[test]
fn bindgen_test_layout____itt_string_handle() {
    assert_eq!(
        ::std::mem::size_of::<___itt_string_handle>(),
        40usize,
        concat!("Size of: ", stringify!(___itt_string_handle))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_string_handle>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_string_handle))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_string_handle>())).strA as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_string_handle),
            "::",
            stringify!(strA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_string_handle>())).strW as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_string_handle),
            "::",
            stringify!(strW)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_string_handle>())).extra1 as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_string_handle),
            "::",
            stringify!(extra1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_string_handle>())).extra2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_string_handle),
            "::",
            stringify!(extra2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_string_handle>())).next as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_string_handle),
            "::",
            stringify!(next)
        )
    );
}
pub type __itt_string_handle = ___itt_string_handle;
pub type __itt_string_handle_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(name: *const ::std::os::raw::c_char) -> *mut __itt_string_handle,
>;
extern "C" {
    pub static mut __itt_string_handle_create_ptr__3_0: __itt_string_handle_create_ptr__3_0_t;
}
#[doc = " @cond exclude_from_documentation"]
pub type __itt_timestamp = ::std::os::raw::c_ulonglong;
pub type __itt_get_timestamp_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn() -> __itt_timestamp>;
extern "C" {
    pub static mut __itt_get_timestamp_ptr__3_0: __itt_get_timestamp_ptr__3_0_t;
}
pub type __itt_region_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        parentid: __itt_id,
        name: *mut __itt_string_handle,
    ),
>;
extern "C" {
    pub static mut __itt_region_begin_ptr__3_0: __itt_region_begin_ptr__3_0_t;
}
pub type __itt_region_end_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain, id: __itt_id)>;
extern "C" {
    pub static mut __itt_region_end_ptr__3_0: __itt_region_end_ptr__3_0_t;
}
pub type __itt_frame_begin_v3_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain, id: *mut __itt_id)>;
extern "C" {
    pub static mut __itt_frame_begin_v3_ptr__3_0: __itt_frame_begin_v3_ptr__3_0_t;
}
pub type __itt_frame_end_v3_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain, id: *mut __itt_id)>;
extern "C" {
    pub static mut __itt_frame_end_v3_ptr__3_0: __itt_frame_end_v3_ptr__3_0_t;
}
pub type __itt_frame_submit_v3_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: *mut __itt_id,
        begin: __itt_timestamp,
        end: __itt_timestamp,
    ),
>;
extern "C" {
    pub static mut __itt_frame_submit_v3_ptr__3_0: __itt_frame_submit_v3_ptr__3_0_t;
}
pub type __itt_task_group_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        parentid: __itt_id,
        name: *mut __itt_string_handle,
    ),
>;
extern "C" {
    pub static mut __itt_task_group_ptr__3_0: __itt_task_group_ptr__3_0_t;
}
pub type __itt_task_begin_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        parentid: __itt_id,
        name: *mut __itt_string_handle,
    ),
>;
extern "C" {
    pub static mut __itt_task_begin_ptr__3_0: __itt_task_begin_ptr__3_0_t;
}
pub type __itt_task_begin_fn_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        parentid: __itt_id,
        fn_: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut __itt_task_begin_fn_ptr__3_0: __itt_task_begin_fn_ptr__3_0_t;
}
pub type __itt_task_end_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain)>;
extern "C" {
    pub static mut __itt_task_end_ptr__3_0: __itt_task_end_ptr__3_0_t;
}
pub type __itt_task_begin_overlapped_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        taskid: __itt_id,
        parentid: __itt_id,
        name: *mut __itt_string_handle,
    ),
>;
extern "C" {
    pub static mut __itt_task_begin_overlapped_ptr__3_0: __itt_task_begin_overlapped_ptr__3_0_t;
}
pub type __itt_task_end_overlapped_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(domain: *const __itt_domain, taskid: __itt_id)>;
extern "C" {
    pub static mut __itt_task_end_overlapped_ptr__3_0: __itt_task_end_overlapped_ptr__3_0_t;
}
pub const __itt_scope___itt_scope_unknown: __itt_scope = 0;
pub const __itt_scope___itt_scope_global: __itt_scope = 1;
pub const __itt_scope___itt_scope_track_group: __itt_scope = 2;
pub const __itt_scope___itt_scope_track: __itt_scope = 3;
pub const __itt_scope___itt_scope_task: __itt_scope = 4;
pub const __itt_scope___itt_scope_marker: __itt_scope = 5;
#[doc = " @brief Describes the scope of an event object in the trace."]
pub type __itt_scope = ::std::os::raw::c_uint;
pub type __itt_marker_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        name: *mut __itt_string_handle,
        scope: __itt_scope,
    ),
>;
extern "C" {
    pub static mut __itt_marker_ptr__3_0: __itt_marker_ptr__3_0_t;
}
pub const __itt_metadata_type___itt_metadata_unknown: __itt_metadata_type = 0;
#[doc = "< Unsigned 64-bit integer"]
pub const __itt_metadata_type___itt_metadata_u64: __itt_metadata_type = 1;
#[doc = "< Signed 64-bit integer"]
pub const __itt_metadata_type___itt_metadata_s64: __itt_metadata_type = 2;
#[doc = "< Unsigned 32-bit integer"]
pub const __itt_metadata_type___itt_metadata_u32: __itt_metadata_type = 3;
#[doc = "< Signed 32-bit integer"]
pub const __itt_metadata_type___itt_metadata_s32: __itt_metadata_type = 4;
#[doc = "< Unsigned 16-bit integer"]
pub const __itt_metadata_type___itt_metadata_u16: __itt_metadata_type = 5;
#[doc = "< Signed 16-bit integer"]
pub const __itt_metadata_type___itt_metadata_s16: __itt_metadata_type = 6;
#[doc = "< Signed 32-bit floating-point"]
pub const __itt_metadata_type___itt_metadata_float: __itt_metadata_type = 7;
#[doc = "< SIgned 64-bit floating-point"]
pub const __itt_metadata_type___itt_metadata_double: __itt_metadata_type = 8;
#[doc = " @ingroup parameters"]
#[doc = " @brief describes the type of metadata"]
pub type __itt_metadata_type = ::std::os::raw::c_uint;
pub type __itt_metadata_add_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        key: *mut __itt_string_handle,
        type_: __itt_metadata_type,
        count: size_t,
        data: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut __itt_metadata_add_ptr__3_0: __itt_metadata_add_ptr__3_0_t;
}
pub type __itt_metadata_str_add_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        id: __itt_id,
        key: *mut __itt_string_handle,
        data: *const ::std::os::raw::c_char,
        length: size_t,
    ),
>;
extern "C" {
    pub static mut __itt_metadata_str_add_ptr__3_0: __itt_metadata_str_add_ptr__3_0_t;
}
pub type __itt_metadata_add_with_scope_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        scope: __itt_scope,
        key: *mut __itt_string_handle,
        type_: __itt_metadata_type,
        count: size_t,
        data: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut __itt_metadata_add_with_scope_ptr__3_0: __itt_metadata_add_with_scope_ptr__3_0_t;
}
pub type __itt_metadata_str_add_with_scope_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        scope: __itt_scope,
        key: *mut __itt_string_handle,
        data: *const ::std::os::raw::c_char,
        length: size_t,
    ),
>;
extern "C" {
    pub static mut __itt_metadata_str_add_with_scope_ptr__3_0:
        __itt_metadata_str_add_with_scope_ptr__3_0_t;
}
pub const __itt_relation___itt_relation_is_unknown: __itt_relation = 0;
#[doc = "< \"A is dependent on B\" means that A cannot start until B completes"]
pub const __itt_relation___itt_relation_is_dependent_on: __itt_relation = 1;
#[doc = "< \"A is sibling of B\" means that A and B were created as a group"]
pub const __itt_relation___itt_relation_is_sibling_of: __itt_relation = 2;
#[doc = "< \"A is parent of B\" means that A created B"]
pub const __itt_relation___itt_relation_is_parent_of: __itt_relation = 3;
#[doc = "< \"A is continuation of B\" means that A assumes the dependencies of B"]
pub const __itt_relation___itt_relation_is_continuation_of: __itt_relation = 4;
#[doc = "< \"A is child of B\" means that A was created by B (inverse of is_parent_of)"]
pub const __itt_relation___itt_relation_is_child_of: __itt_relation = 5;
#[doc = "< \"A is continued by B\" means that B assumes the dependencies of A (inverse of is_continuation_of)"]
pub const __itt_relation___itt_relation_is_continued_by: __itt_relation = 6;
#[doc = "< \"A is predecessor to B\" means that B cannot start until A completes (inverse of is_dependent_on)"]
pub const __itt_relation___itt_relation_is_predecessor_to: __itt_relation = 7;
#[doc = " @ingroup relations"]
#[doc = " @brief The kind of relation between two instances is specified by the enumerated type __itt_relation."]
#[doc = " Relations between instances can be added with an API call. The relation"]
#[doc = " API uses instance IDs. Relations can be added before or after the actual"]
#[doc = " instances are created and persist independently of the instances. This"]
#[doc = " is the motivation for having different lifetimes for instance IDs and"]
#[doc = " the actual instances."]
pub type __itt_relation = ::std::os::raw::c_uint;
pub type __itt_relation_add_to_current_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(domain: *const __itt_domain, relation: __itt_relation, tail: __itt_id),
>;
extern "C" {
    pub static mut __itt_relation_add_to_current_ptr__3_0: __itt_relation_add_to_current_ptr__3_0_t;
}
pub type __itt_relation_add_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        head: __itt_id,
        relation: __itt_relation,
        tail: __itt_id,
    ),
>;
extern "C" {
    pub static mut __itt_relation_add_ptr__3_0: __itt_relation_add_ptr__3_0_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_clock_info {
    #[doc = "< Clock domain frequency"]
    pub clock_freq: ::std::os::raw::c_ulonglong,
    #[doc = "< Clock domain base timestamp"]
    pub clock_base: ::std::os::raw::c_ulonglong,
}
#[test]
fn bindgen_test_layout____itt_clock_info() {
    assert_eq!(
        ::std::mem::size_of::<___itt_clock_info>(),
        16usize,
        concat!("Size of: ", stringify!(___itt_clock_info))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_clock_info>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_clock_info))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_info>())).clock_freq as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_info),
            "::",
            stringify!(clock_freq)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_info>())).clock_base as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_info),
            "::",
            stringify!(clock_base)
        )
    );
}
pub type __itt_clock_info = ___itt_clock_info;
#[doc = " @cond exclude_from_documentation"]
pub type __itt_get_clock_info_fn = ::std::option::Option<
    unsafe extern "C" fn(clock_info: *mut __itt_clock_info, data: *mut ::std::os::raw::c_void),
>;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_clock_domain {
    #[doc = "< Most recent clock domain info"]
    pub info: __itt_clock_info,
    #[doc = "< Callback function pointer"]
    pub fn_: __itt_get_clock_info_fn,
    #[doc = "< Input argument for the callback function"]
    pub fn_data: *mut ::std::os::raw::c_void,
    #[doc = "< Reserved. Must be zero"]
    pub extra1: ::std::os::raw::c_int,
    #[doc = "< Reserved. Must be zero"]
    pub extra2: *mut ::std::os::raw::c_void,
    pub next: *mut ___itt_clock_domain,
}
#[test]
fn bindgen_test_layout____itt_clock_domain() {
    assert_eq!(
        ::std::mem::size_of::<___itt_clock_domain>(),
        56usize,
        concat!("Size of: ", stringify!(___itt_clock_domain))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_clock_domain>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_clock_domain))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_domain>())).info as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_domain),
            "::",
            stringify!(info)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_domain>())).fn_ as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_domain),
            "::",
            stringify!(fn_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_domain>())).fn_data as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_domain),
            "::",
            stringify!(fn_data)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_domain>())).extra1 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_domain),
            "::",
            stringify!(extra1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_domain>())).extra2 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_domain),
            "::",
            stringify!(extra2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_clock_domain>())).next as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_clock_domain),
            "::",
            stringify!(next)
        )
    );
}
pub type __itt_clock_domain = ___itt_clock_domain;
pub type __itt_clock_domain_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        fn_: __itt_get_clock_info_fn,
        fn_data: *mut ::std::os::raw::c_void,
    ) -> *mut __itt_clock_domain,
>;
extern "C" {
    pub static mut __itt_clock_domain_create_ptr__3_0: __itt_clock_domain_create_ptr__3_0_t;
}
pub type __itt_clock_domain_reset_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_clock_domain_reset_ptr__3_0: __itt_clock_domain_reset_ptr__3_0_t;
}
pub type __itt_id_create_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        id: __itt_id,
    ),
>;
extern "C" {
    pub static mut __itt_id_create_ex_ptr__3_0: __itt_id_create_ex_ptr__3_0_t;
}
pub type __itt_id_destroy_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        id: __itt_id,
    ),
>;
extern "C" {
    pub static mut __itt_id_destroy_ex_ptr__3_0: __itt_id_destroy_ex_ptr__3_0_t;
}
pub type __itt_task_begin_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        id: __itt_id,
        parentid: __itt_id,
        name: *mut __itt_string_handle,
    ),
>;
extern "C" {
    pub static mut __itt_task_begin_ex_ptr__3_0: __itt_task_begin_ex_ptr__3_0_t;
}
pub type __itt_task_begin_fn_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        id: __itt_id,
        parentid: __itt_id,
        fn_: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut __itt_task_begin_fn_ex_ptr__3_0: __itt_task_begin_fn_ex_ptr__3_0_t;
}
pub type __itt_task_end_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
    ),
>;
extern "C" {
    pub static mut __itt_task_end_ex_ptr__3_0: __itt_task_end_ex_ptr__3_0_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_counter {
    _unused: [u8; 0],
}
#[doc = " @brief opaque structure for counter identification"]
pub type __itt_counter = *mut ___itt_counter;
pub type __itt_counter_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        name: *const ::std::os::raw::c_char,
        domain: *const ::std::os::raw::c_char,
    ) -> __itt_counter,
>;
extern "C" {
    pub static mut __itt_counter_create_ptr__3_0: __itt_counter_create_ptr__3_0_t;
}
pub type __itt_counter_inc_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(id: __itt_counter)>;
extern "C" {
    pub static mut __itt_counter_inc_ptr__3_0: __itt_counter_inc_ptr__3_0_t;
}
pub type __itt_counter_inc_delta_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(id: __itt_counter, value: ::std::os::raw::c_ulonglong),
>;
extern "C" {
    pub static mut __itt_counter_inc_delta_ptr__3_0: __itt_counter_inc_delta_ptr__3_0_t;
}
pub type __itt_counter_dec_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(id: __itt_counter)>;
extern "C" {
    pub static mut __itt_counter_dec_ptr__3_0: __itt_counter_dec_ptr__3_0_t;
}
pub type __itt_counter_dec_delta_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(id: __itt_counter, value: ::std::os::raw::c_ulonglong),
>;
extern "C" {
    pub static mut __itt_counter_dec_delta_ptr__3_0: __itt_counter_dec_delta_ptr__3_0_t;
}
pub type __itt_counter_inc_v3_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(domain: *const __itt_domain, name: *mut __itt_string_handle),
>;
extern "C" {
    pub static mut __itt_counter_inc_v3_ptr__3_0: __itt_counter_inc_v3_ptr__3_0_t;
}
pub type __itt_counter_inc_delta_v3_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        name: *mut __itt_string_handle,
        delta: ::std::os::raw::c_ulonglong,
    ),
>;
extern "C" {
    pub static mut __itt_counter_inc_delta_v3_ptr__3_0: __itt_counter_inc_delta_v3_ptr__3_0_t;
}
pub type __itt_counter_dec_v3_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(domain: *const __itt_domain, name: *mut __itt_string_handle),
>;
extern "C" {
    pub static mut __itt_counter_dec_v3_ptr__3_0: __itt_counter_dec_v3_ptr__3_0_t;
}
pub type __itt_counter_dec_delta_v3_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        name: *mut __itt_string_handle,
        delta: ::std::os::raw::c_ulonglong,
    ),
>;
extern "C" {
    pub static mut __itt_counter_dec_delta_v3_ptr__3_0: __itt_counter_dec_delta_v3_ptr__3_0_t;
}
pub type __itt_counter_set_value_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(id: __itt_counter, value_ptr: *mut ::std::os::raw::c_void),
>;
extern "C" {
    pub static mut __itt_counter_set_value_ptr__3_0: __itt_counter_set_value_ptr__3_0_t;
}
pub type __itt_counter_set_value_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        id: __itt_counter,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        value_ptr: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut __itt_counter_set_value_ex_ptr__3_0: __itt_counter_set_value_ex_ptr__3_0_t;
}
pub type __itt_counter_create_typed_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        name: *const ::std::os::raw::c_char,
        domain: *const ::std::os::raw::c_char,
        type_: __itt_metadata_type,
    ) -> __itt_counter,
>;
extern "C" {
    pub static mut __itt_counter_create_typed_ptr__3_0: __itt_counter_create_typed_ptr__3_0_t;
}
pub type __itt_counter_destroy_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(id: __itt_counter)>;
extern "C" {
    pub static mut __itt_counter_destroy_ptr__3_0: __itt_counter_destroy_ptr__3_0_t;
}
pub type __itt_marker_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        id: __itt_id,
        name: *mut __itt_string_handle,
        scope: __itt_scope,
    ),
>;
extern "C" {
    pub static mut __itt_marker_ex_ptr__3_0: __itt_marker_ex_ptr__3_0_t;
}
pub type __itt_relation_add_to_current_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        relation: __itt_relation,
        tail: __itt_id,
    ),
>;
extern "C" {
    pub static mut __itt_relation_add_to_current_ex_ptr__3_0:
        __itt_relation_add_to_current_ex_ptr__3_0_t;
}
pub type __itt_relation_add_ex_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        clock_domain: *mut __itt_clock_domain,
        timestamp: ::std::os::raw::c_ulonglong,
        head: __itt_id,
        relation: __itt_relation,
        tail: __itt_id,
    ),
>;
extern "C" {
    pub static mut __itt_relation_add_ex_ptr__3_0: __itt_relation_add_ex_ptr__3_0_t;
}
pub const ___itt_track_group_type___itt_track_group_type_normal: ___itt_track_group_type = 0;
#[doc = " @cond exclude_from_documentation"]
pub type ___itt_track_group_type = ::std::os::raw::c_uint;
#[doc = " @cond exclude_from_documentation"]
pub use self::___itt_track_group_type as __itt_track_group_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_track_group {
    #[doc = "< Name of the track group"]
    pub name: *mut __itt_string_handle,
    #[doc = "< List of child tracks"]
    pub track: *mut ___itt_track,
    #[doc = "< Type of the track group"]
    pub tgtype: __itt_track_group_type,
    #[doc = "< Reserved. Must be zero"]
    pub extra1: ::std::os::raw::c_int,
    #[doc = "< Reserved. Must be zero"]
    pub extra2: *mut ::std::os::raw::c_void,
    pub next: *mut ___itt_track_group,
}
#[test]
fn bindgen_test_layout____itt_track_group() {
    assert_eq!(
        ::std::mem::size_of::<___itt_track_group>(),
        40usize,
        concat!("Size of: ", stringify!(___itt_track_group))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_track_group>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_track_group))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track_group>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track_group),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track_group>())).track as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track_group),
            "::",
            stringify!(track)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track_group>())).tgtype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track_group),
            "::",
            stringify!(tgtype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track_group>())).extra1 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track_group),
            "::",
            stringify!(extra1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track_group>())).extra2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track_group),
            "::",
            stringify!(extra2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track_group>())).next as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track_group),
            "::",
            stringify!(next)
        )
    );
}
pub type __itt_track_group = ___itt_track_group;
pub const ___itt_track_type___itt_track_type_normal: ___itt_track_type = 0;
#[doc = " @brief Placeholder for custom track types. Currently, \"normal\" custom track"]
#[doc = " is the only available track type."]
pub type ___itt_track_type = ::std::os::raw::c_uint;
#[doc = " @brief Placeholder for custom track types. Currently, \"normal\" custom track"]
#[doc = " is the only available track type."]
pub use self::___itt_track_type as __itt_track_type;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_track {
    #[doc = "< Name of the track group"]
    pub name: *mut __itt_string_handle,
    #[doc = "< Parent group to a track"]
    pub group: *mut __itt_track_group,
    #[doc = "< Type of the track"]
    pub ttype: __itt_track_type,
    #[doc = "< Reserved. Must be zero"]
    pub extra1: ::std::os::raw::c_int,
    #[doc = "< Reserved. Must be zero"]
    pub extra2: *mut ::std::os::raw::c_void,
    pub next: *mut ___itt_track,
}
#[test]
fn bindgen_test_layout____itt_track() {
    assert_eq!(
        ::std::mem::size_of::<___itt_track>(),
        40usize,
        concat!("Size of: ", stringify!(___itt_track))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_track>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_track))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track>())).group as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track),
            "::",
            stringify!(group)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track>())).ttype as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track),
            "::",
            stringify!(ttype)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track>())).extra1 as *const _ as usize },
        20usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track),
            "::",
            stringify!(extra1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track>())).extra2 as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track),
            "::",
            stringify!(extra2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_track>())).next as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_track),
            "::",
            stringify!(next)
        )
    );
}
pub type __itt_track = ___itt_track;
pub type __itt_track_group_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        name: *mut __itt_string_handle,
        track_group_type: __itt_track_group_type,
    ) -> *mut __itt_track_group,
>;
extern "C" {
    pub static mut __itt_track_group_create_ptr__3_0: __itt_track_group_create_ptr__3_0_t;
}
pub type __itt_track_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        track_group: *mut __itt_track_group,
        name: *mut __itt_string_handle,
        track_type: __itt_track_type,
    ) -> *mut __itt_track,
>;
extern "C" {
    pub static mut __itt_track_create_ptr__3_0: __itt_track_create_ptr__3_0_t;
}
pub type __itt_set_track_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(track: *mut __itt_track)>;
extern "C" {
    pub static mut __itt_set_track_ptr__3_0: __itt_set_track_ptr__3_0_t;
}
#[doc = " @cond exclude_from_gpa_documentation */"]
#[doc = " @defgroup events Events"]
#[doc = " @ingroup public"]
#[doc = " Events group"]
#[doc = " @{"]
pub type __itt_event = ::std::os::raw::c_int;
pub type __itt_event_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        name: *const ::std::os::raw::c_char,
        namelen: ::std::os::raw::c_int,
    ) -> __itt_event,
>;
extern "C" {
    pub static mut __itt_event_create_ptr__3_0: __itt_event_create_ptr__3_0_t;
}
pub type __itt_event_start_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(event: __itt_event) -> ::std::os::raw::c_int>;
extern "C" {
    pub static mut __itt_event_start_ptr__3_0: __itt_event_start_ptr__3_0_t;
}
pub type __itt_event_end_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(event: __itt_event) -> ::std::os::raw::c_int>;
extern "C" {
    pub static mut __itt_event_end_ptr__3_0: __itt_event_end_ptr__3_0_t;
}
pub type __itt_av_save_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        data: *mut ::std::os::raw::c_void,
        rank: ::std::os::raw::c_int,
        dimensions: *const ::std::os::raw::c_int,
        type_: ::std::os::raw::c_int,
        filePath: *const ::std::os::raw::c_char,
        columnOrder: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int,
>;
extern "C" {
    pub static mut __itt_av_save_ptr__3_0: __itt_av_save_ptr__3_0_t;
}
pub type __itt_enable_attach_ptr__3_0_t = ::std::option::Option<unsafe extern "C" fn()>;
extern "C" {
    pub static mut __itt_enable_attach_ptr__3_0: __itt_enable_attach_ptr__3_0_t;
}
pub type __itt_module_load_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        start_addr: *mut ::std::os::raw::c_void,
        end_addr: *mut ::std::os::raw::c_void,
        path: *const ::std::os::raw::c_char,
    ),
>;
extern "C" {
    pub static mut __itt_module_load_ptr__3_0: __itt_module_load_ptr__3_0_t;
}
pub type __itt_module_unload_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(addr: *mut ::std::os::raw::c_void)>;
extern "C" {
    pub static mut __itt_module_unload_ptr__3_0: __itt_module_unload_ptr__3_0_t;
}
pub const __itt_module_type___itt_module_type_unknown: __itt_module_type = 0;
pub const __itt_module_type___itt_module_type_elf: __itt_module_type = 1;
pub const __itt_module_type___itt_module_type_coff: __itt_module_type = 2;
#[doc = " @cond exclude_from_documentation"]
pub type __itt_module_type = ::std::os::raw::c_uint;
pub const __itt_section_type_itt_section_type_unknown: __itt_section_type = 0;
pub const __itt_section_type_itt_section_type_bss: __itt_section_type = 1;
pub const __itt_section_type_itt_section_type_data: __itt_section_type = 2;
pub const __itt_section_type_itt_section_type_text: __itt_section_type = 3;
#[doc = " @cond exclude_from_documentation"]
pub type __itt_section_type = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_section_info {
    #[doc = "< Section name in UTF8"]
    pub name: *const ::std::os::raw::c_char,
    #[doc = "< Section content and semantics description"]
    pub type_: __itt_section_type,
    #[doc = "< Section bit flags that describe attributes using bit mask"]
    #[doc = " Zero if disabled, non-zero if enabled"]
    pub flags: size_t,
    #[doc = "< Section load(relocated) start address"]
    pub start_addr: *mut ::std::os::raw::c_void,
    #[doc = "< Section file offset"]
    pub size: size_t,
    #[doc = "< Section size"]
    pub file_offset: size_t,
}
#[test]
fn bindgen_test_layout____itt_section_info() {
    assert_eq!(
        ::std::mem::size_of::<___itt_section_info>(),
        48usize,
        concat!("Size of: ", stringify!(___itt_section_info))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_section_info>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_section_info))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_section_info>())).name as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_section_info),
            "::",
            stringify!(name)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_section_info>())).type_ as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_section_info),
            "::",
            stringify!(type_)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_section_info>())).flags as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_section_info),
            "::",
            stringify!(flags)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_section_info>())).start_addr as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_section_info),
            "::",
            stringify!(start_addr)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_section_info>())).size as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_section_info),
            "::",
            stringify!(size)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_section_info>())).file_offset as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_section_info),
            "::",
            stringify!(file_offset)
        )
    );
}
pub type __itt_section_info = ___itt_section_info;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_module_object {
    #[doc = "< API version"]
    pub version: ::std::os::raw::c_uint,
    #[doc = "< Unique identifier. This is unchanged for sections that belong to the same module"]
    pub module_id: __itt_id,
    #[doc = "< Binary module format"]
    pub module_type: __itt_module_type,
    #[doc = "< Unique module name or path to module in UTF8"]
    #[doc = " Contains module name when module_bufer and module_size exist"]
    #[doc = " Contains module path when module_bufer and module_size absent"]
    #[doc = " module_name remains the same for the certain module_id"]
    pub module_name: *const ::std::os::raw::c_char,
    #[doc = "< Module buffer content"]
    pub module_buffer: *mut ::std::os::raw::c_void,
    #[doc = "< Module buffer size */"]
    #[doc = " If module_buffer and module_size do not exist,"]
    #[doc = " the binary module exists on the system already."]
    #[doc = " The module_name parameter contains the path to the module."]
    pub module_size: size_t,
    #[doc = "< Reference to section information"]
    pub section_array: *mut __itt_section_info,
    pub section_number: size_t,
}
#[test]
fn bindgen_test_layout____itt_module_object() {
    assert_eq!(
        ::std::mem::size_of::<___itt_module_object>(),
        80usize,
        concat!("Size of: ", stringify!(___itt_module_object))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_module_object>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_module_object))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_module_object>())).version as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(version)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_module_object>())).module_id as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(module_id)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<___itt_module_object>())).module_type as *const _ as usize
        },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(module_type)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<___itt_module_object>())).module_name as *const _ as usize
        },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(module_name)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<___itt_module_object>())).module_buffer as *const _ as usize
        },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(module_buffer)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<___itt_module_object>())).module_size as *const _ as usize
        },
        56usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(module_size)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<___itt_module_object>())).section_array as *const _ as usize
        },
        64usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(section_array)
        )
    );
    assert_eq!(
        unsafe {
            &(*(::std::ptr::null::<___itt_module_object>())).section_number as *const _ as usize
        },
        72usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_module_object),
            "::",
            stringify!(section_number)
        )
    );
}
pub type __itt_module_object = ___itt_module_object;
pub type __itt_module_load_with_sections_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(module_obj: *mut __itt_module_object)>;
extern "C" {
    pub static mut __itt_module_load_with_sections_ptr__3_0:
        __itt_module_load_with_sections_ptr__3_0_t;
}
pub type __itt_module_unload_with_sections_ptr__3_0_t =
    ::std::option::Option<unsafe extern "C" fn(module_obj: *mut __itt_module_object)>;
extern "C" {
    pub static mut __itt_module_unload_with_sections_ptr__3_0:
        __itt_module_unload_with_sections_ptr__3_0_t;
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ___itt_histogram {
    #[doc = "< Domain of the histogram"]
    pub domain: *const __itt_domain,
    #[doc = "< Name of the histogram"]
    pub nameA: *const ::std::os::raw::c_char,
    pub nameW: *mut ::std::os::raw::c_void,
    #[doc = "< Type of the histogram X axis"]
    pub x_type: __itt_metadata_type,
    #[doc = "< Type of the histogram Y axis"]
    pub y_type: __itt_metadata_type,
    #[doc = "< Reserved to the runtime"]
    pub extra1: ::std::os::raw::c_int,
    #[doc = "< Reserved to the runtime"]
    pub extra2: *mut ::std::os::raw::c_void,
    pub next: *mut ___itt_histogram,
}
#[test]
fn bindgen_test_layout____itt_histogram() {
    assert_eq!(
        ::std::mem::size_of::<___itt_histogram>(),
        56usize,
        concat!("Size of: ", stringify!(___itt_histogram))
    );
    assert_eq!(
        ::std::mem::align_of::<___itt_histogram>(),
        8usize,
        concat!("Alignment of ", stringify!(___itt_histogram))
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).domain as *const _ as usize },
        0usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(domain)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).nameA as *const _ as usize },
        8usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(nameA)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).nameW as *const _ as usize },
        16usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(nameW)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).x_type as *const _ as usize },
        24usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(x_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).y_type as *const _ as usize },
        28usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(y_type)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).extra1 as *const _ as usize },
        32usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(extra1)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).extra2 as *const _ as usize },
        40usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(extra2)
        )
    );
    assert_eq!(
        unsafe { &(*(::std::ptr::null::<___itt_histogram>())).next as *const _ as usize },
        48usize,
        concat!(
            "Offset of field: ",
            stringify!(___itt_histogram),
            "::",
            stringify!(next)
        )
    );
}
pub type __itt_histogram = ___itt_histogram;
pub type __itt_histogram_create_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        domain: *const __itt_domain,
        name: *const ::std::os::raw::c_char,
        x_type: __itt_metadata_type,
        y_type: __itt_metadata_type,
    ) -> *mut __itt_histogram,
>;
extern "C" {
    pub static mut __itt_histogram_create_ptr__3_0: __itt_histogram_create_ptr__3_0_t;
}
pub type __itt_histogram_submit_ptr__3_0_t = ::std::option::Option<
    unsafe extern "C" fn(
        hist: *mut __itt_histogram,
        length: size_t,
        x_data: *mut ::std::os::raw::c_void,
        y_data: *mut ::std::os::raw::c_void,
    ),
>;
extern "C" {
    pub static mut __itt_histogram_submit_ptr__3_0: __itt_histogram_submit_ptr__3_0_t;
}
