summaryrefslogtreecommitdiff
path: root/deps/v8/third_party/ittapi/ittapi-rs
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/third_party/ittapi/ittapi-rs')
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/.gitignore3
l---------deps/v8/third_party/ittapi/ittapi-rs/CMakeLists.txt1
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/Cargo.toml22
l---------deps/v8/third_party/ittapi/ittapi-rs/LICENSES1
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/README.md14
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/build.rs37
l---------deps/v8/third_party/ittapi/ittapi-rs/include1
l---------deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify1
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify_bindings.rs2987
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/src/jitprofiling_bindings.rs1002
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/src/lib.rs4
-rw-r--r--deps/v8/third_party/ittapi/ittapi-rs/tests/bindgen-up-to-date.rs68
12 files changed, 4141 insertions, 0 deletions
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/.gitignore b/deps/v8/third_party/ittapi/ittapi-rs/.gitignore
new file mode 100644
index 0000000000..693699042b
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/.gitignore
@@ -0,0 +1,3 @@
+/target
+**/*.rs.bk
+Cargo.lock
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/CMakeLists.txt b/deps/v8/third_party/ittapi/ittapi-rs/CMakeLists.txt
new file mode 120000
index 0000000000..de0cf22713
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/CMakeLists.txt
@@ -0,0 +1 @@
+../CMakeLists.txt \ No newline at end of file
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/Cargo.toml b/deps/v8/third_party/ittapi/ittapi-rs/Cargo.toml
new file mode 100644
index 0000000000..b85ab97b22
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+name = "ittapi-rs"
+version = "0.1.5"
+authors = ["Johnnie Birch <45402135+jlb6740@users.noreply.github.com>"]
+edition = "2018"
+description = "Rust bindings for ittapi"
+license-file = "LICENSES/"
+documentation = "https://docs.rs/ittapi-rs"
+homepage = "https://github.com/intel/ittapi/ittapi-rs"
+repository = "https://github.com/intel/ittapi"
+
+[dependencies]
+
+[features]
+force_32 = []
+
+[build-dependencies]
+cmake = "0.1.42"
+
+[dev-dependencies]
+bindgen = "0.52.0"
+diff = "0.1"
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/LICENSES b/deps/v8/third_party/ittapi/ittapi-rs/LICENSES
new file mode 120000
index 0000000000..a274e11069
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/LICENSES
@@ -0,0 +1 @@
+../LICENSES/ \ No newline at end of file
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/README.md b/deps/v8/third_party/ittapi/ittapi-rs/README.md
new file mode 100644
index 0000000000..6934062078
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/README.md
@@ -0,0 +1,14 @@
+# ittapi-rs
+This package creates Rust bindings for ittapi. Ittapi is used for instrumentation and tracking and just-in-time profiling.
+
+Note the building of this package is currently only supported (tested) on a couple of Linux platforms (recent Ubuntu and Fedora builds) but support for other platforms is intended and contributions are welcomed.
+
+# Build the package
+cargo build
+
+** Note This package uses bindgen which in turn requires recent versions of cmake and llvm to be installed. For Fedora, "yum install llvm-devel" was needed to bring in llvm-config.
+
+** Also note building this package requires rust nightly.
+
+# Publish the package to crates.io
+cargo publish \ No newline at end of file
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/build.rs b/deps/v8/third_party/ittapi/ittapi-rs/build.rs
new file mode 100644
index 0000000000..549afe2ec1
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/build.rs
@@ -0,0 +1,37 @@
+#![allow(unused)]
+use cmake::Config;
+use std::env;
+use std::path::PathBuf;
+
+#[cfg(target_os = "windows")]
+fn main() {}
+
+#[cfg(not(target_os = "windows"))]
+fn main() {
+ let out_dir = env::var("OUT_DIR").unwrap();
+ let out_path = PathBuf::from(out_dir);
+
+ #[cfg(not(feature = "force_32"))]
+ {
+ let _ittnotify_64 = Config::new("./")
+ .generator("Unix Makefiles")
+ .no_build_target(true)
+ .build();
+
+ println!("cargo:rustc-link-search={}/build/bin/", out_path.display());
+ println!("cargo:rustc-link-lib=static=ittnotify");
+ }
+
+ #[cfg(feature = "force_32")]
+ #[cfg(not(any(target_os = "ios", target_os = "macos")))]
+ {
+ let _ittnotify_32 = Config::new("./")
+ .generator("Unix Makefiles")
+ .define("FORCE_32", "ON")
+ .no_build_target(true)
+ .build();
+
+ println!("cargo:rustc-link-search={}/build/bin/", out_path.display());
+ println!("cargo:rustc-link-lib=static=ittnotify32");
+ }
+}
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/include b/deps/v8/third_party/ittapi/ittapi-rs/include
new file mode 120000
index 0000000000..3a1af68fd1
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/include
@@ -0,0 +1 @@
+../include/ \ No newline at end of file
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify b/deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify
new file mode 120000
index 0000000000..4859c0fe81
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify
@@ -0,0 +1 @@
+../../src/ittnotify \ No newline at end of file
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify_bindings.rs b/deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify_bindings.rs
new file mode 100644
index 0000000000..a5b45f4b30
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/src/ittnotify_bindings.rs
@@ -0,0 +1,2987 @@
+/* automatically generated by rust-bindgen */
+
+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: u32 = 2;
+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: u32 = 2;
+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 __GLIBC_USE_DEPRECATED_GETS: 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 __STDC_NO_THREADS__: u32 = 1;
+pub const __GNU_LIBRARY__: u32 = 6;
+pub const __GLIBC__: u32 = 2;
+pub const __GLIBC_MINOR__: u32 = 27;
+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 __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_FUNCS_EXT: u32 = 0;
+pub const __GLIBC_USE_IEC_60559_TYPES_EXT: u32 = 0;
+pub const _BITS_TYPES_H: u32 = 1;
+pub const _BITS_TYPESIZES_H: u32 = 1;
+pub const __OFF_T_MATCHES_OFF64_T: u32 = 1;
+pub const __INO_T_MATCHES_INO64_T: u32 = 1;
+pub const __RLIM_T_MATCHES_RLIM64_T: u32 = 1;
+pub const __FD_SETSIZE: u32 = 1024;
+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 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 wchar_t = ::std::os::raw::c_int;
+#[repr(C)]
+#[repr(align(16))]
+#[derive(Debug, Copy, Clone)]
+pub struct max_align_t {
+ pub __clang_max_align_nonce1: ::std::os::raw::c_longlong,
+ pub __bindgen_padding_0: u64,
+ pub __clang_max_align_nonce2: u128,
+}
+#[test]
+fn bindgen_test_layout_max_align_t() {
+ assert_eq!(
+ ::std::mem::size_of::<max_align_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(max_align_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<max_align_t>(),
+ 16usize,
+ concat!("Alignment of ", stringify!(max_align_t))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce1 as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(max_align_t),
+ "::",
+ stringify!(__clang_max_align_nonce1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<max_align_t>())).__clang_max_align_nonce2 as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(max_align_t),
+ "::",
+ stringify!(__clang_max_align_nonce2)
+ )
+ );
+}
+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 __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 __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 = ::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 = __intmax_t;
+pub type uintmax_t = __uintmax_t;
+extern "C" {
+ #[doc = " @defgroup control Collection Control"]
+ #[doc = " @ingroup public"]
+ #[doc = " General behavior: application continues to run, but no profiling information is being collected"]
+ #[doc = ""]
+ #[doc = " Pausing occurs not only for the current thread but for all process as well as spawned processes"]
+ #[doc = " - Intel(R) Parallel Inspector and Intel(R) Inspector XE:"]
+ #[doc = " - Does not analyze or report errors that involve memory access."]
+ #[doc = " - Other errors are reported as usual. Pausing data collection in"]
+ #[doc = " Intel(R) Parallel Inspector and Intel(R) Inspector XE"]
+ #[doc = " only pauses tracing and analyzing memory access."]
+ #[doc = " It does not pause tracing or analyzing threading APIs."]
+ #[doc = " ."]
+ #[doc = " - Intel(R) Parallel Amplifier and Intel(R) VTune(TM) Amplifier XE:"]
+ #[doc = " - Does continue to record when new threads are started."]
+ #[doc = " ."]
+ #[doc = " - Other effects:"]
+ #[doc = " - Possible reduction of runtime overhead."]
+ #[doc = " ."]
+ #[doc = " @{"]
+ pub fn __itt_pause();
+}
+extern "C" {
+ #[doc = " @brief Resume collection"]
+ pub fn __itt_resume();
+}
+extern "C" {
+ #[doc = " @brief Detach collection"]
+ pub fn __itt_detach();
+}
+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_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_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;
+extern "C" {
+ pub fn __itt_pt_region_create(name: *const ::std::os::raw::c_char) -> __itt_pt_region;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief function contains a special code pattern identified on the post-processing stage and"]
+ #[doc = " marks the beginning of a code region targeted for Intel PT analysis"]
+ #[doc = " @param[in] region - region id, 0 <= region < 8"]
+ pub fn __itt_mark_pt_region_begin(region: __itt_pt_region);
+}
+extern "C" {
+ #[doc = " @brief function contains a special code pattern identified on the post-processing stage and"]
+ #[doc = " marks the end of a code region targeted for Intel PT analysis"]
+ #[doc = " @param[in] region - region id, 0 <= region < 8"]
+ pub fn __itt_mark_pt_region_end(region: __itt_pt_region);
+}
+extern "C" {
+ pub fn __itt_thread_set_name(name: *const ::std::os::raw::c_char);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Mark current thread as ignored from this point on, for the duration of its existence."]
+ pub fn __itt_thread_ignore();
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Start suppressing errors identified in mask on this thread"]
+ pub fn __itt_suppress_push(mask: ::std::os::raw::c_uint);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Undo the effects of the matching call to __itt_suppress_push"]
+ pub fn __itt_suppress_pop();
+}
+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_model_disable"]
+#[doc = " @brief Enumerator for the disable methods"]
+pub type __itt_suppress_mode = u32;
+pub use self::__itt_suppress_mode as __itt_suppress_mode_t;
+extern "C" {
+ #[doc = " @brief Mark a range of memory for error suppression or unsuppression for error types included in mask"]
+ pub fn __itt_suppress_mark_range(
+ mode: __itt_suppress_mode_t,
+ mask: ::std::os::raw::c_uint,
+ address: *mut ::std::os::raw::c_void,
+ size: usize,
+ );
+}
+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: usize,
+ ),
+>;
+extern "C" {
+ pub static mut __itt_suppress_mark_range_ptr__3_0: __itt_suppress_mark_range_ptr__3_0_t;
+}
+extern "C" {
+ #[doc = " @brief Undo the effect of a matching call to __itt_suppress_mark_range. If not matching"]
+ #[doc = " call is found, nothing is changed."]
+ pub fn __itt_suppress_clear_range(
+ mode: __itt_suppress_mode_t,
+ mask: ::std::os::raw::c_uint,
+ address: *mut ::std::os::raw::c_void,
+ size: usize,
+ );
+}
+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: usize,
+ ),
+>;
+extern "C" {
+ pub static mut __itt_suppress_clear_range_ptr__3_0: __itt_suppress_clear_range_ptr__3_0_t;
+}
+extern "C" {
+ pub fn __itt_sync_create(
+ 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,
+ );
+}
+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;
+}
+extern "C" {
+ pub fn __itt_sync_rename(
+ addr: *mut ::std::os::raw::c_void,
+ name: *const ::std::os::raw::c_char,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = "@brief Destroy a synchronization object."]
+ #[doc = "@param addr Handle for the synchronization object."]
+ pub fn __itt_sync_destroy(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @name group of functions is used for performance measurement tools"]
+ #[doc = " @brief Enter spin loop on user-defined sync object"]
+ pub fn __itt_sync_prepare(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Quit spin loop without acquiring spin object"]
+ pub fn __itt_sync_cancel(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Successful spin loop completion (sync object acquired)"]
+ pub fn __itt_sync_acquired(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Start sync object releasing code. Is called before the lock release call."]
+ pub fn __itt_sync_releasing(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @name group of functions is used for correctness checking tools"]
+ #[doc = " @ingroup legacy"]
+ #[doc = " @deprecated Legacy API"]
+ #[doc = " @brief Fast synchronization which does no require spinning."]
+ #[doc = " - This special function is to be used by TBB and OpenMP libraries only when they know"]
+ #[doc = " there is no spin but they need to suppress TC warnings about shared variable modifications."]
+ #[doc = " - It only has corresponding pointers in static library and does not have corresponding function"]
+ #[doc = " in dynamic library."]
+ #[doc = " @see void __itt_sync_prepare(void* addr);"]
+ pub fn __itt_fsync_prepare(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup legacy"]
+ #[doc = " @deprecated Legacy API"]
+ #[doc = " @brief Fast synchronization which does no require spinning."]
+ #[doc = " - This special function is to be used by TBB and OpenMP libraries only when they know"]
+ #[doc = " there is no spin but they need to suppress TC warnings about shared variable modifications."]
+ #[doc = " - It only has corresponding pointers in static library and does not have corresponding function"]
+ #[doc = " in dynamic library."]
+ #[doc = " @see void __itt_sync_cancel(void *addr);"]
+ pub fn __itt_fsync_cancel(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup legacy"]
+ #[doc = " @deprecated Legacy API"]
+ #[doc = " @brief Fast synchronization which does no require spinning."]
+ #[doc = " - This special function is to be used by TBB and OpenMP libraries only when they know"]
+ #[doc = " there is no spin but they need to suppress TC warnings about shared variable modifications."]
+ #[doc = " - It only has corresponding pointers in static library and does not have corresponding function"]
+ #[doc = " in dynamic library."]
+ #[doc = " @see void __itt_sync_acquired(void *addr);"]
+ pub fn __itt_fsync_acquired(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup legacy"]
+ #[doc = " @deprecated Legacy API"]
+ #[doc = " @brief Fast synchronization which does no require spinning."]
+ #[doc = " - This special function is to be used by TBB and OpenMP libraries only when they know"]
+ #[doc = " there is no spin but they need to suppress TC warnings about shared variable modifications."]
+ #[doc = " - It only has corresponding pointers in static library and does not have corresponding function"]
+ #[doc = " in dynamic library."]
+ #[doc = " @see void __itt_sync_releasing(void* addr);"]
+ pub fn __itt_fsync_releasing(addr: *mut ::std::os::raw::c_void);
+}
+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 = u32;
+extern "C" {
+ #[doc = " @brief ANNOTATE_SITE_BEGIN/ANNOTATE_SITE_END support."]
+ #[doc = ""]
+ #[doc = " site_begin/end model a potential concurrency site."]
+ #[doc = " site instances may be recursively nested with themselves."]
+ #[doc = " site_end exits the most recently started but unended site for the current"]
+ #[doc = " thread. The handle passed to end may be used to validate structure."]
+ #[doc = " Instances of a site encountered on different threads concurrently"]
+ #[doc = " are considered completely distinct. If the site name for two different"]
+ #[doc = " lexical sites match, it is unspecified whether they are treated as the"]
+ #[doc = " same or different for data presentation."]
+ pub fn __itt_model_site_begin(
+ site: *mut __itt_model_site,
+ instance: *mut __itt_model_site_instance,
+ name: *const ::std::os::raw::c_char,
+ );
+}
+extern "C" {
+ pub fn __itt_model_site_beginA(name: *const ::std::os::raw::c_char);
+}
+extern "C" {
+ pub fn __itt_model_site_beginAL(name: *const ::std::os::raw::c_char, siteNameLen: usize);
+}
+extern "C" {
+ pub fn __itt_model_site_end(
+ site: *mut __itt_model_site,
+ instance: *mut __itt_model_site_instance,
+ );
+}
+extern "C" {
+ pub fn __itt_model_site_end_2();
+}
+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: usize),
+>;
+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;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_TASK_BEGIN/ANNOTATE_TASK_END support"]
+ #[doc = ""]
+ #[doc = " task_begin/end model a potential task, which is contained within the most"]
+ #[doc = " closely enclosing dynamic site. task_end exits the most recently started"]
+ #[doc = " but unended task. The handle passed to end may be used to validate"]
+ #[doc = " structure. It is unspecified if bad dynamic nesting is detected. If it"]
+ #[doc = " is, it should be encoded in the resulting data collection. The collector"]
+ #[doc = " should not fail due to construct nesting issues, nor attempt to directly"]
+ #[doc = " indicate the problem."]
+ pub fn __itt_model_task_begin(
+ task: *mut __itt_model_task,
+ instance: *mut __itt_model_task_instance,
+ name: *const ::std::os::raw::c_char,
+ );
+}
+extern "C" {
+ pub fn __itt_model_task_beginA(name: *const ::std::os::raw::c_char);
+}
+extern "C" {
+ pub fn __itt_model_task_beginAL(name: *const ::std::os::raw::c_char, taskNameLen: usize);
+}
+extern "C" {
+ pub fn __itt_model_iteration_taskA(name: *const ::std::os::raw::c_char);
+}
+extern "C" {
+ pub fn __itt_model_iteration_taskAL(name: *const ::std::os::raw::c_char, taskNameLen: usize);
+}
+extern "C" {
+ pub fn __itt_model_task_end(
+ task: *mut __itt_model_task,
+ instance: *mut __itt_model_task_instance,
+ );
+}
+extern "C" {
+ pub fn __itt_model_task_end_2();
+}
+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: usize),
+>;
+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: usize),
+>;
+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;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_LOCK_ACQUIRE/ANNOTATE_LOCK_RELEASE support"]
+ #[doc = ""]
+ #[doc = " lock_acquire/release model a potential lock for both lockset and"]
+ #[doc = " performance modeling. Each unique address is modeled as a separate"]
+ #[doc = " lock, with invalid addresses being valid lock IDs. Specifically:"]
+ #[doc = " no storage is accessed by the API at the specified address - it is only"]
+ #[doc = " used for lock identification. Lock acquires may be self-nested and are"]
+ #[doc = " unlocked by a corresponding number of releases."]
+ #[doc = " (These closely correspond to __itt_sync_acquired/__itt_sync_releasing,"]
+ #[doc = " but may not have identical semantics.)"]
+ pub fn __itt_model_lock_acquire(lock: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+ pub fn __itt_model_lock_acquire_2(lock: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+ pub fn __itt_model_lock_release(lock: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+ pub fn __itt_model_lock_release_2(lock: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_RECORD_ALLOCATION/ANNOTATE_RECORD_DEALLOCATION support"]
+ #[doc = ""]
+ #[doc = " record_allocation/deallocation describe user-defined memory allocator"]
+ #[doc = " behavior, which may be required for correctness modeling to understand"]
+ #[doc = " when storage is not expected to be actually reused across threads."]
+ pub fn __itt_model_record_allocation(addr: *mut ::std::os::raw::c_void, size: usize);
+}
+extern "C" {
+ pub fn __itt_model_record_deallocation(addr: *mut ::std::os::raw::c_void);
+}
+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: usize)>;
+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;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_INDUCTION_USES support"]
+ #[doc = ""]
+ #[doc = " Note particular storage is inductive through the end of the current site"]
+ pub fn __itt_model_induction_uses(addr: *mut ::std::os::raw::c_void, size: usize);
+}
+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: usize)>;
+extern "C" {
+ pub static mut __itt_model_induction_uses_ptr__3_0: __itt_model_induction_uses_ptr__3_0_t;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_REDUCTION_USES support"]
+ #[doc = ""]
+ #[doc = " Note particular storage is used for reduction through the end"]
+ #[doc = " of the current site"]
+ pub fn __itt_model_reduction_uses(addr: *mut ::std::os::raw::c_void, size: usize);
+}
+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: usize)>;
+extern "C" {
+ pub static mut __itt_model_reduction_uses_ptr__3_0: __itt_model_reduction_uses_ptr__3_0_t;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_OBSERVE_USES support"]
+ #[doc = ""]
+ #[doc = " Have correctness modeling record observations about uses of storage"]
+ #[doc = " through the end of the current site"]
+ pub fn __itt_model_observe_uses(addr: *mut ::std::os::raw::c_void, size: usize);
+}
+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: usize)>;
+extern "C" {
+ pub static mut __itt_model_observe_uses_ptr__3_0: __itt_model_observe_uses_ptr__3_0_t;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_CLEAR_USES support"]
+ #[doc = ""]
+ #[doc = " Clear the special handling of a piece of storage related to induction,"]
+ #[doc = " reduction or observe_uses"]
+ pub fn __itt_model_clear_uses(addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief ANNOTATE_DISABLE_*_PUSH/ANNOTATE_DISABLE_*_POP support"]
+ #[doc = ""]
+ #[doc = " disable_push/disable_pop push and pop disabling based on a parameter."]
+ #[doc = " Disabling observations stops processing of memory references during"]
+ #[doc = " correctness modeling, and all annotations that occur in the disabled"]
+ #[doc = " region. This allows description of code that is expected to be handled"]
+ #[doc = " specially during conversion to parallelism or that is not recognized"]
+ #[doc = " by tools (e.g. some kinds of synchronization operations.)"]
+ #[doc = " This mechanism causes all annotations in the disabled region, other"]
+ #[doc = " than disable_push and disable_pop, to be ignored. (For example, this"]
+ #[doc = " might validly be used to disable an entire parallel site and the contained"]
+ #[doc = " tasks and locking in it for data collection purposes.)"]
+ #[doc = " The disable for collection is a more expensive operation, but reduces"]
+ #[doc = " collector overhead significantly. This applies to BOTH correctness data"]
+ #[doc = " collection and performance data collection. For example, a site"]
+ #[doc = " containing a task might only enable data collection for the first 10"]
+ #[doc = " iterations. Both performance and correctness data should reflect this,"]
+ #[doc = " and the program should run as close to full speed as possible when"]
+ #[doc = " collection is disabled."]
+ pub fn __itt_model_disable_push(x: __itt_model_disable);
+}
+extern "C" {
+ pub fn __itt_model_disable_pop();
+}
+extern "C" {
+ pub fn __itt_model_aggregate_task(x: usize);
+}
+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: usize)>;
+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;
+extern "C" {
+ pub fn __itt_heap_function_create(
+ name: *const ::std::os::raw::c_char,
+ domain: *const ::std::os::raw::c_char,
+ ) -> __itt_heap_function;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Record an allocation begin occurrence."]
+ pub fn __itt_heap_allocate_begin(
+ h: __itt_heap_function,
+ size: usize,
+ initialized: ::std::os::raw::c_int,
+ );
+}
+pub type __itt_heap_allocate_begin_ptr__3_0_t = ::std::option::Option<
+ unsafe extern "C" fn(h: __itt_heap_function, size: usize, 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;
+}
+extern "C" {
+ #[doc = " @brief Record an allocation end occurrence."]
+ pub fn __itt_heap_allocate_end(
+ h: __itt_heap_function,
+ addr: *mut *mut ::std::os::raw::c_void,
+ size: usize,
+ initialized: ::std::os::raw::c_int,
+ );
+}
+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: usize,
+ 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;
+}
+extern "C" {
+ #[doc = " @brief Record an free begin occurrence."]
+ pub fn __itt_heap_free_begin(h: __itt_heap_function, addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Record an free end occurrence."]
+ pub fn __itt_heap_free_end(h: __itt_heap_function, addr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Record an reallocation begin occurrence."]
+ pub fn __itt_heap_reallocate_begin(
+ h: __itt_heap_function,
+ addr: *mut ::std::os::raw::c_void,
+ new_size: usize,
+ initialized: ::std::os::raw::c_int,
+ );
+}
+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: usize,
+ 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;
+}
+extern "C" {
+ #[doc = " @brief Record an reallocation end occurrence."]
+ pub fn __itt_heap_reallocate_end(
+ h: __itt_heap_function,
+ addr: *mut ::std::os::raw::c_void,
+ new_addr: *mut *mut ::std::os::raw::c_void,
+ new_size: usize,
+ initialized: ::std::os::raw::c_int,
+ );
+}
+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: usize,
+ 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;
+}
+extern "C" {
+ #[doc = " @brief internal access begin"]
+ pub fn __itt_heap_internal_access_begin();
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief internal access end"]
+ pub fn __itt_heap_internal_access_end();
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief record memory growth begin"]
+ pub fn __itt_heap_record_memory_growth_begin();
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief record memory growth end"]
+ pub fn __itt_heap_record_memory_growth_end();
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief heap reset detection"]
+ pub fn __itt_heap_reset_detection(reset_mask: ::std::os::raw::c_uint);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief report"]
+ pub fn __itt_heap_record(record_mask: ::std::os::raw::c_uint);
+}
+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;
+extern "C" {
+ pub fn __itt_domain_create(name: *const ::std::os::raw::c_char) -> *mut __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" {
+ pub static __itt_null: __itt_id;
+}
+extern "C" {
+ #[doc = " @ingroup ids"]
+ #[doc = " @brief Create an instance of identifier."]
+ #[doc = " This establishes the beginning of the lifetime of an instance of"]
+ #[doc = " the given ID in the trace. Once this lifetime starts, the ID"]
+ #[doc = " can be used to tag named entity instances in calls such as"]
+ #[doc = " __itt_task_begin, and to specify relationships among"]
+ #[doc = " identified named entity instances, using the \\ref relations APIs."]
+ #[doc = " Instance IDs are not domain specific!"]
+ #[doc = " @param[in] domain The domain controlling the execution of this call."]
+ #[doc = " @param[in] id The ID to create."]
+ pub fn __itt_id_create(domain: *const __itt_domain, id: __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;
+}
+extern "C" {
+ #[doc = " @ingroup ids"]
+ #[doc = " @brief Destroy an instance of identifier."]
+ #[doc = " This ends the lifetime of the current instance of the given ID value in the trace."]
+ #[doc = " Any relationships that are established after this lifetime ends are invalid."]
+ #[doc = " This call must be performed before the given ID value can be reused for a different"]
+ #[doc = " named entity instance."]
+ #[doc = " @param[in] domain The domain controlling the execution of this call."]
+ #[doc = " @param[in] id The ID to destroy."]
+ pub fn __itt_id_destroy(domain: *const __itt_domain, id: __itt_id);
+}
+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;
+extern "C" {
+ pub fn __itt_string_handle_create(
+ name: *const ::std::os::raw::c_char,
+ ) -> *mut __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;
+extern "C" {
+ #[doc = " @ingroup timestamps"]
+ #[doc = " @brief Return timestamp corresponding to the current moment."]
+ #[doc = " This returns the timestamp in the format that is the most relevant for the current"]
+ #[doc = " host or platform (RDTSC, QPC, and others). You can use the \"<\" operator to"]
+ #[doc = " compare __itt_timestamp values."]
+ pub fn __itt_get_timestamp() -> __itt_timestamp;
+}
+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;
+}
+extern "C" {
+ #[doc = " @defgroup regions Regions"]
+ #[doc = " @ingroup public"]
+ #[doc = " Regions group"]
+ #[doc = " @{"]
+ #[doc = " @ingroup regions"]
+ #[doc = " @brief Begin of region instance."]
+ #[doc = " Successive calls to __itt_region_begin with the same ID are ignored"]
+ #[doc = " until a call to __itt_region_end with the same ID"]
+ #[doc = " @param[in] domain The domain for this region instance"]
+ #[doc = " @param[in] id The instance ID for this region instance. Must not be __itt_null"]
+ #[doc = " @param[in] parentid The instance ID for the parent of this region instance, or __itt_null"]
+ #[doc = " @param[in] name The name of this region"]
+ pub fn __itt_region_begin(
+ domain: *const __itt_domain,
+ id: __itt_id,
+ parentid: __itt_id,
+ name: *mut __itt_string_handle,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup regions"]
+ #[doc = " @brief End of region instance."]
+ #[doc = " The first call to __itt_region_end with a given ID ends the"]
+ #[doc = " region. Successive calls with the same ID are ignored, as are"]
+ #[doc = " calls that do not have a matching __itt_region_begin call."]
+ #[doc = " @param[in] domain The domain for this region instance"]
+ #[doc = " @param[in] id The instance ID for this region instance"]
+ pub fn __itt_region_end(domain: *const __itt_domain, id: __itt_id);
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup frames"]
+ #[doc = " @brief Begin a frame instance."]
+ #[doc = " Successive calls to __itt_frame_begin with the"]
+ #[doc = " same ID are ignored until a call to __itt_frame_end with the same ID."]
+ #[doc = " @param[in] domain The domain for this frame instance"]
+ #[doc = " @param[in] id The instance ID for this frame instance or NULL"]
+ pub fn __itt_frame_begin_v3(domain: *const __itt_domain, id: *mut __itt_id);
+}
+extern "C" {
+ #[doc = " @ingroup frames"]
+ #[doc = " @brief End a frame instance."]
+ #[doc = " The first call to __itt_frame_end with a given ID"]
+ #[doc = " ends the frame. Successive calls with the same ID are ignored, as are"]
+ #[doc = " calls that do not have a matching __itt_frame_begin call."]
+ #[doc = " @param[in] domain The domain for this frame instance"]
+ #[doc = " @param[in] id The instance ID for this frame instance or NULL for current"]
+ pub fn __itt_frame_end_v3(domain: *const __itt_domain, id: *mut __itt_id);
+}
+extern "C" {
+ #[doc = " @ingroup frames"]
+ #[doc = " @brief Submits a frame instance."]
+ #[doc = " Successive calls to __itt_frame_begin or __itt_frame_submit with the"]
+ #[doc = " same ID are ignored until a call to __itt_frame_end or __itt_frame_submit"]
+ #[doc = " with the same ID."]
+ #[doc = " Passing special __itt_timestamp_none value as \"end\" argument means"]
+ #[doc = " take the current timestamp as the end timestamp."]
+ #[doc = " @param[in] domain The domain for this frame instance"]
+ #[doc = " @param[in] id The instance ID for this frame instance or NULL"]
+ #[doc = " @param[in] begin Timestamp of the beginning of the frame"]
+ #[doc = " @param[in] end Timestamp of the end of the frame"]
+ pub fn __itt_frame_submit_v3(
+ domain: *const __itt_domain,
+ id: *mut __itt_id,
+ begin: __itt_timestamp,
+ end: __itt_timestamp,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @defgroup taskgroup Task Group"]
+ #[doc = " @ingroup public"]
+ #[doc = " Task Group"]
+ #[doc = " @{"]
+ #[doc = " @ingroup task_groups"]
+ #[doc = " @brief Denotes a task_group instance."]
+ #[doc = " Successive calls to __itt_task_group with the same ID are ignored."]
+ #[doc = " @param[in] domain The domain for this task_group instance"]
+ #[doc = " @param[in] id The instance ID for this task_group instance. Must not be __itt_null."]
+ #[doc = " @param[in] parentid The instance ID for the parent of this task_group instance, or __itt_null."]
+ #[doc = " @param[in] name The name of this task_group"]
+ pub fn __itt_task_group(
+ domain: *const __itt_domain,
+ id: __itt_id,
+ parentid: __itt_id,
+ name: *mut __itt_string_handle,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup tasks"]
+ #[doc = " @brief Begin a task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ #[doc = " @param[in] taskid The instance ID for this task instance, or __itt_null"]
+ #[doc = " @param[in] parentid The parent instance to which this task instance belongs, or __itt_null"]
+ #[doc = " @param[in] name The name of this task"]
+ pub fn __itt_task_begin(
+ domain: *const __itt_domain,
+ taskid: __itt_id,
+ parentid: __itt_id,
+ name: *mut __itt_string_handle,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup tasks"]
+ #[doc = " @brief Begin a task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ #[doc = " @param[in] taskid The identifier for this task instance (may be 0)"]
+ #[doc = " @param[in] parentid The parent of this task (may be 0)"]
+ #[doc = " @param[in] fn The pointer to the function you are tracing"]
+ pub fn __itt_task_begin_fn(
+ domain: *const __itt_domain,
+ taskid: __itt_id,
+ parentid: __itt_id,
+ fn_: *mut ::std::os::raw::c_void,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup tasks"]
+ #[doc = " @brief End the current task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ pub fn __itt_task_end(domain: *const __itt_domain);
+}
+extern "C" {
+ #[doc = " @ingroup tasks"]
+ #[doc = " @brief Begin an overlapped task instance."]
+ #[doc = " @param[in] domain The domain for this task."]
+ #[doc = " @param[in] taskid The identifier for this task instance, *cannot* be __itt_null."]
+ #[doc = " @param[in] parentid The parent of this task, or __itt_null."]
+ #[doc = " @param[in] name The name of this task."]
+ pub fn __itt_task_begin_overlapped(
+ domain: *const __itt_domain,
+ taskid: __itt_id,
+ parentid: __itt_id,
+ name: *mut __itt_string_handle,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup tasks"]
+ #[doc = " @brief End an overlapped task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ #[doc = " @param[in] taskid Explicit ID of finished task"]
+ pub fn __itt_task_end_overlapped(domain: *const __itt_domain, taskid: __itt_id);
+}
+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 = u32;
+extern "C" {
+ #[doc = " @ingroup markers"]
+ #[doc = " @brief Create a marker instance"]
+ #[doc = " @param[in] domain The domain for this marker"]
+ #[doc = " @param[in] id The instance ID for this marker or __itt_null"]
+ #[doc = " @param[in] name The name for this marker"]
+ #[doc = " @param[in] scope The scope for this marker"]
+ pub fn __itt_marker(
+ domain: *const __itt_domain,
+ id: __itt_id,
+ name: *mut __itt_string_handle,
+ scope: __itt_scope,
+ );
+}
+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 = u32;
+extern "C" {
+ #[doc = " @ingroup parameters"]
+ #[doc = " @brief Add metadata to an instance of a named entity."]
+ #[doc = " @param[in] domain The domain controlling the call"]
+ #[doc = " @param[in] id The identifier of the instance to which the metadata is to be added, or __itt_null to add to the current task"]
+ #[doc = " @param[in] key The name of the metadata"]
+ #[doc = " @param[in] type The type of the metadata"]
+ #[doc = " @param[in] count The number of elements of the given type. If count == 0, no metadata will be added."]
+ #[doc = " @param[in] data The metadata itself"]
+ pub fn __itt_metadata_add(
+ domain: *const __itt_domain,
+ id: __itt_id,
+ key: *mut __itt_string_handle,
+ type_: __itt_metadata_type,
+ count: usize,
+ data: *mut ::std::os::raw::c_void,
+ );
+}
+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: usize,
+ 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;
+}
+extern "C" {
+ pub fn __itt_metadata_str_add(
+ domain: *const __itt_domain,
+ id: __itt_id,
+ key: *mut __itt_string_handle,
+ data: *const ::std::os::raw::c_char,
+ length: usize,
+ );
+}
+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: usize,
+ ),
+>;
+extern "C" {
+ pub static mut __itt_metadata_str_add_ptr__3_0: __itt_metadata_str_add_ptr__3_0_t;
+}
+extern "C" {
+ #[doc = " @ingroup parameters"]
+ #[doc = " @brief Add metadata to an instance of a named entity."]
+ #[doc = " @param[in] domain The domain controlling the call"]
+ #[doc = " @param[in] scope The scope of the instance to which the metadata is to be added"]
+ #[doc = ""]
+ #[doc = " @param[in] id The identifier of the instance to which the metadata is to be added, or __itt_null to add to the current task"]
+ #[doc = ""]
+ #[doc = " @param[in] key The name of the metadata"]
+ #[doc = " @param[in] type The type of the metadata"]
+ #[doc = " @param[in] count The number of elements of the given type. If count == 0, no metadata will be added."]
+ #[doc = " @param[in] data The metadata itself"]
+ pub fn __itt_metadata_add_with_scope(
+ domain: *const __itt_domain,
+ scope: __itt_scope,
+ key: *mut __itt_string_handle,
+ type_: __itt_metadata_type,
+ count: usize,
+ data: *mut ::std::os::raw::c_void,
+ );
+}
+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: usize,
+ 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;
+}
+extern "C" {
+ pub fn __itt_metadata_str_add_with_scope(
+ domain: *const __itt_domain,
+ scope: __itt_scope,
+ key: *mut __itt_string_handle,
+ data: *const ::std::os::raw::c_char,
+ length: usize,
+ );
+}
+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: usize,
+ ),
+>;
+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 = u32;
+extern "C" {
+ #[doc = " @ingroup relations"]
+ #[doc = " @brief Add a relation to the current task instance."]
+ #[doc = " The current task instance is the head of the relation."]
+ #[doc = " @param[in] domain The domain controlling this call"]
+ #[doc = " @param[in] relation The kind of relation"]
+ #[doc = " @param[in] tail The ID for the tail of the relation"]
+ pub fn __itt_relation_add_to_current(
+ domain: *const __itt_domain,
+ relation: __itt_relation,
+ tail: __itt_id,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup relations"]
+ #[doc = " @brief Add a relation between two instance identifiers."]
+ #[doc = " @param[in] domain The domain controlling this call"]
+ #[doc = " @param[in] head The ID for the head of the relation"]
+ #[doc = " @param[in] relation The kind of relation"]
+ #[doc = " @param[in] tail The ID for the tail of the relation"]
+ pub fn __itt_relation_add(
+ domain: *const __itt_domain,
+ head: __itt_id,
+ relation: __itt_relation,
+ tail: __itt_id,
+ );
+}
+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;
+extern "C" {
+ #[doc = " @ingroup clockdomains"]
+ #[doc = " @brief Create a clock domain."]
+ #[doc = " Certain applications require the capability to trace their application using"]
+ #[doc = " a clock domain different than the CPU, for instance the instrumentation of events"]
+ #[doc = " that occur on a GPU."]
+ #[doc = " Because the set of domains is expected to be static over the application's execution time,"]
+ #[doc = " there is no mechanism to destroy a domain."]
+ #[doc = " Any domain can be accessed by any thread in the process, regardless of which thread created"]
+ #[doc = " the domain. This call is thread-safe."]
+ #[doc = " @param[in] fn A pointer to a callback function which retrieves alternative CPU timestamps"]
+ #[doc = " @param[in] fn_data Argument for a callback function; may be NULL"]
+ pub fn __itt_clock_domain_create(
+ fn_: __itt_get_clock_info_fn,
+ fn_data: *mut ::std::os::raw::c_void,
+ ) -> *mut __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;
+}
+extern "C" {
+ #[doc = " @ingroup clockdomains"]
+ #[doc = " @brief Recalculate clock domains frequencies and clock base timestamps."]
+ pub fn __itt_clock_domain_reset();
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief Create an instance of identifier. This establishes the beginning of the lifetime of"]
+ #[doc = " an instance of the given ID in the trace. Once this lifetime starts, the ID can be used to"]
+ #[doc = " tag named entity instances in calls such as __itt_task_begin, and to specify relationships among"]
+ #[doc = " identified named entity instances, using the \\ref relations APIs."]
+ #[doc = " @param[in] domain The domain controlling the execution of this call."]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] id The ID to create."]
+ pub fn __itt_id_create_ex(
+ domain: *const __itt_domain,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ id: __itt_id,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief Destroy an instance of identifier. This ends the lifetime of the current instance of the"]
+ #[doc = " given ID value in the trace. Any relationships that are established after this lifetime ends are"]
+ #[doc = " invalid. This call must be performed before the given ID value can be reused for a different"]
+ #[doc = " named entity instance."]
+ #[doc = " @param[in] domain The domain controlling the execution of this call."]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] id The ID to destroy."]
+ pub fn __itt_id_destroy_ex(
+ domain: *const __itt_domain,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ id: __itt_id,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief Begin a task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] taskid The instance ID for this task instance, or __itt_null"]
+ #[doc = " @param[in] parentid The parent instance to which this task instance belongs, or __itt_null"]
+ #[doc = " @param[in] name The name of this task"]
+ pub fn __itt_task_begin_ex(
+ domain: *const __itt_domain,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ taskid: __itt_id,
+ parentid: __itt_id,
+ name: *mut __itt_string_handle,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief Begin a task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] taskid The identifier for this task instance, or __itt_null"]
+ #[doc = " @param[in] parentid The parent of this task, or __itt_null"]
+ #[doc = " @param[in] fn The pointer to the function you are tracing"]
+ pub fn __itt_task_begin_fn_ex(
+ domain: *const __itt_domain,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ taskid: __itt_id,
+ parentid: __itt_id,
+ fn_: *mut ::std::os::raw::c_void,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief End the current task instance."]
+ #[doc = " @param[in] domain The domain for this task"]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ pub fn __itt_task_end_ex(
+ domain: *const __itt_domain,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ );
+}
+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;
+extern "C" {
+ pub fn __itt_counter_create(
+ name: *const ::std::os::raw::c_char,
+ domain: *const ::std::os::raw::c_char,
+ ) -> __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;
+}
+extern "C" {
+ #[doc = " @brief Increment the unsigned 64 bits integer counter value"]
+ #[doc = ""]
+ #[doc = " Calling this function to non-unsigned 64 bits integer counters has no effect"]
+ pub fn __itt_counter_inc(id: __itt_counter);
+}
+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;
+}
+extern "C" {
+ #[doc = " @endcond */"]
+ #[doc = " @brief Increment the unsigned 64 bits integer counter value with x"]
+ #[doc = ""]
+ #[doc = " Calling this function to non-unsigned 64 bits integer counters has no effect"]
+ pub fn __itt_counter_inc_delta(id: __itt_counter, value: ::std::os::raw::c_ulonglong);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Decrement the unsigned 64 bits integer counter value"]
+ #[doc = ""]
+ #[doc = " Calling this function to non-unsigned 64 bits integer counters has no effect"]
+ pub fn __itt_counter_dec(id: __itt_counter);
+}
+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;
+}
+extern "C" {
+ #[doc = " @endcond */"]
+ #[doc = " @brief Decrement the unsigned 64 bits integer counter value with x"]
+ #[doc = ""]
+ #[doc = " Calling this function to non-unsigned 64 bits integer counters has no effect"]
+ pub fn __itt_counter_dec_delta(id: __itt_counter, value: ::std::os::raw::c_ulonglong);
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup counters"]
+ #[doc = " @brief Increment a counter by one."]
+ #[doc = " The first call with a given name creates a counter by that name and sets its"]
+ #[doc = " value to zero. Successive calls increment the counter value."]
+ #[doc = " @param[in] domain The domain controlling the call. Counter names are not domain specific."]
+ #[doc = " The domain argument is used only to enable or disable the API calls."]
+ #[doc = " @param[in] name The name of the counter"]
+ pub fn __itt_counter_inc_v3(domain: *const __itt_domain, name: *mut __itt_string_handle);
+}
+extern "C" {
+ #[doc = " @ingroup counters"]
+ #[doc = " @brief Increment a counter by the value specified in delta."]
+ #[doc = " @param[in] domain The domain controlling the call. Counter names are not domain specific."]
+ #[doc = " The domain argument is used only to enable or disable the API calls."]
+ #[doc = " @param[in] name The name of the counter"]
+ #[doc = " @param[in] delta The amount by which to increment the counter"]
+ pub fn __itt_counter_inc_delta_v3(
+ domain: *const __itt_domain,
+ name: *mut __itt_string_handle,
+ delta: ::std::os::raw::c_ulonglong,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup counters"]
+ #[doc = " @brief Decrement a counter by one."]
+ #[doc = " The first call with a given name creates a counter by that name and sets its"]
+ #[doc = " value to zero. Successive calls decrement the counter value."]
+ #[doc = " @param[in] domain The domain controlling the call. Counter names are not domain specific."]
+ #[doc = " The domain argument is used only to enable or disable the API calls."]
+ #[doc = " @param[in] name The name of the counter"]
+ pub fn __itt_counter_dec_v3(domain: *const __itt_domain, name: *mut __itt_string_handle);
+}
+extern "C" {
+ #[doc = " @ingroup counters"]
+ #[doc = " @brief Decrement a counter by the value specified in delta."]
+ #[doc = " @param[in] domain The domain controlling the call. Counter names are not domain specific."]
+ #[doc = " The domain argument is used only to enable or disable the API calls."]
+ #[doc = " @param[in] name The name of the counter"]
+ #[doc = " @param[in] delta The amount by which to decrement the counter"]
+ pub fn __itt_counter_dec_delta_v3(
+ domain: *const __itt_domain,
+ name: *mut __itt_string_handle,
+ delta: ::std::os::raw::c_ulonglong,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Set the counter value"]
+ pub fn __itt_counter_set_value(id: __itt_counter, value_ptr: *mut ::std::os::raw::c_void);
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Set the counter value"]
+ pub fn __itt_counter_set_value_ex(
+ id: __itt_counter,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ value_ptr: *mut ::std::os::raw::c_void,
+ );
+}
+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;
+}
+extern "C" {
+ pub fn __itt_counter_create_typed(
+ name: *const ::std::os::raw::c_char,
+ domain: *const ::std::os::raw::c_char,
+ type_: __itt_metadata_type,
+ ) -> __itt_counter;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Destroy the counter identified by the pointer previously returned by __itt_counter_create() or"]
+ #[doc = " __itt_counter_create_typed()"]
+ pub fn __itt_counter_destroy(id: __itt_counter);
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup markers"]
+ #[doc = " @brief Create a marker instance."]
+ #[doc = " @param[in] domain The domain for this marker"]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] id The instance ID for this marker, or __itt_null"]
+ #[doc = " @param[in] name The name for this marker"]
+ #[doc = " @param[in] scope The scope for this marker"]
+ pub fn __itt_marker_ex(
+ 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,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief Add a relation to the current task instance."]
+ #[doc = " The current task instance is the head of the relation."]
+ #[doc = " @param[in] domain The domain controlling this call"]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] relation The kind of relation"]
+ #[doc = " @param[in] tail The ID for the tail of the relation"]
+ pub fn __itt_relation_add_to_current_ex(
+ domain: *const __itt_domain,
+ clock_domain: *mut __itt_clock_domain,
+ timestamp: ::std::os::raw::c_ulonglong,
+ relation: __itt_relation,
+ tail: __itt_id,
+ );
+}
+extern "C" {
+ #[doc = " @ingroup clockdomain"]
+ #[doc = " @brief Add a relation between two instance identifiers."]
+ #[doc = " @param[in] domain The domain controlling this call"]
+ #[doc = " @param[in] clock_domain The clock domain controlling the execution of this call."]
+ #[doc = " @param[in] timestamp The user defined timestamp."]
+ #[doc = " @param[in] head The ID for the head of the relation"]
+ #[doc = " @param[in] relation The kind of relation"]
+ #[doc = " @param[in] tail The ID for the tail of the relation"]
+ pub fn __itt_relation_add_ex(
+ 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,
+ );
+}
+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 = u32;
+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 = u32;
+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;
+extern "C" {
+ #[doc = " @brief Create logical track group."]
+ pub fn __itt_track_group_create(
+ name: *mut __itt_string_handle,
+ track_group_type: __itt_track_group_type,
+ ) -> *mut __itt_track_group;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Create logical track."]
+ pub fn __itt_track_create(
+ track_group: *mut __itt_track_group,
+ name: *mut __itt_string_handle,
+ track_type: __itt_track_type,
+ ) -> *mut __itt_track;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Set the logical track."]
+ pub fn __itt_set_track(track: *mut __itt_track);
+}
+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;
+extern "C" {
+ pub fn __itt_event_create(
+ name: *const ::std::os::raw::c_char,
+ namelen: ::std::os::raw::c_int,
+ ) -> __itt_event;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Record an event occurrence."]
+ #[doc = " @return __itt_err upon failure (invalid event id/user event feature not enabled)"]
+ pub fn __itt_event_start(event: __itt_event) -> ::std::os::raw::c_int;
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Record an event end occurrence."]
+ #[doc = " @note It is optional if events do not have durations."]
+ #[doc = " @return __itt_err upon failure (invalid event id/user event feature not enabled)"]
+ pub fn __itt_event_end(event: __itt_event) -> ::std::os::raw::c_int;
+}
+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 const __itt_av_data_type___itt_e_first: __itt_av_data_type = 0;
+pub const __itt_av_data_type___itt_e_char: __itt_av_data_type = 0;
+pub const __itt_av_data_type___itt_e_uchar: __itt_av_data_type = 1;
+pub const __itt_av_data_type___itt_e_int16: __itt_av_data_type = 2;
+pub const __itt_av_data_type___itt_e_uint16: __itt_av_data_type = 3;
+pub const __itt_av_data_type___itt_e_int32: __itt_av_data_type = 4;
+pub const __itt_av_data_type___itt_e_uint32: __itt_av_data_type = 5;
+pub const __itt_av_data_type___itt_e_int64: __itt_av_data_type = 6;
+pub const __itt_av_data_type___itt_e_uint64: __itt_av_data_type = 7;
+pub const __itt_av_data_type___itt_e_float: __itt_av_data_type = 8;
+pub const __itt_av_data_type___itt_e_double: __itt_av_data_type = 9;
+pub const __itt_av_data_type___itt_e_last: __itt_av_data_type = 9;
+#[doc = " @enum __itt_av_data_type"]
+#[doc = " @brief Defines types of arrays data (for C/C++ intrinsic types)"]
+pub type __itt_av_data_type = u32;
+extern "C" {
+ pub fn __itt_av_save(
+ 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;
+}
+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;
+}
+extern "C" {
+ #[doc = " @endcond"]
+ pub fn __itt_enable_attach();
+}
+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;
+}
+extern "C" {
+ pub fn __itt_module_load(
+ start_addr: *mut ::std::os::raw::c_void,
+ end_addr: *mut ::std::os::raw::c_void,
+ path: *const ::std::os::raw::c_char,
+ );
+}
+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;
+}
+extern "C" {
+ #[doc = " @brief Report module unload"]
+ #[doc = " This API is used to report necessary information in case of bypassing default system loader."]
+ #[doc = " Notification should be done just before the module is unloaded from process memory."]
+ #[doc = " @param[in] addr - base address of loaded module"]
+ pub fn __itt_module_unload(addr: *mut ::std::os::raw::c_void);
+}
+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 = u32;
+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 = u32;
+#[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: usize,
+ #[doc = "< Section load(relocated) start address"]
+ pub start_addr: *mut ::std::os::raw::c_void,
+ #[doc = "< Section file offset"]
+ pub size: usize,
+ #[doc = "< Section size"]
+ pub file_offset: usize,
+}
+#[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: usize,
+ #[doc = "< Reference to section information"]
+ pub section_array: *mut __itt_section_info,
+ pub section_number: usize,
+}
+#[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;
+extern "C" {
+ #[doc = " @brief Load module content and its loaded(relocated) sections."]
+ #[doc = " This API is useful to save a module, or specify its location on the system and report information about loaded sections."]
+ #[doc = " The target module is saved on the system if module buffer content and size are available."]
+ #[doc = " If module buffer content and size are unavailable, the module name contains the path to the existing binary module."]
+ #[doc = " @param[in] module_obj - provides module and section information, along with unique module identifiers (name,module ID)"]
+ #[doc = " which bind the binary module to particular sections."]
+ pub fn __itt_module_load_with_sections(module_obj: *mut __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;
+}
+extern "C" {
+ #[doc = " @brief Unload a module and its loaded(relocated) sections."]
+ #[doc = " This API notifies that the module and its sections were unloaded."]
+ #[doc = " @param[in] module_obj - provides module and sections information, along with unique module identifiers (name,module ID)"]
+ #[doc = " which bind the binary module to particular sections."]
+ pub fn __itt_module_unload_with_sections(module_obj: *mut __itt_module_object);
+}
+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;
+}
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/src/jitprofiling_bindings.rs b/deps/v8/third_party/ittapi/ittapi-rs/src/jitprofiling_bindings.rs
new file mode 100644
index 0000000000..3b3bc23f64
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/src/jitprofiling_bindings.rs
@@ -0,0 +1,1002 @@
+/* automatically generated by rust-bindgen */
+
+#[doc = "<\\brief Send this to shutdown the agent."]
+#[doc = " Use NULL for event data."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_SHUTDOWN: iJIT_jvm_event = 2;
+#[doc = "<\\brief Send when dynamic code is"]
+#[doc = " JIT compiled and loaded into"]
+#[doc = " memory by the JIT engine, but"]
+#[doc = " before the code is executed."]
+#[doc = " Use iJIT_Method_Load as event"]
+#[doc = " data."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED: iJIT_jvm_event = 13;
+#[doc = "<\\brief Send when compiled dynamic"]
+#[doc = " code is being unloaded from memory."]
+#[doc = " Use iJIT_Method_Load as event data."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_UNLOAD_START: iJIT_jvm_event = 14;
+#[doc = "<\\brief Send to provide new content for"]
+#[doc = " a previously reported dynamic code."]
+#[doc = " The previous content will be invalidated"]
+#[doc = " starting from the time of the notification."]
+#[doc = " Use iJIT_Method_Load as event data but"]
+#[doc = " required fields are following:"]
+#[doc = " - method_id identify the code to update."]
+#[doc = " - method_load_address specify start address"]
+#[doc = " within identified code range"]
+#[doc = " where update should be started."]
+#[doc = " - method_size specify length of updated code"]
+#[doc = " range."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_UPDATE: iJIT_jvm_event = 15;
+#[doc = "<\\brief Send when an inline dynamic"]
+#[doc = " code is JIT compiled and loaded"]
+#[doc = " into memory by the JIT engine,"]
+#[doc = " but before the parent code region"]
+#[doc = " starts executing."]
+#[doc = " Use iJIT_Method_Inline_Load as event data."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_INLINE_LOAD_FINISHED: iJIT_jvm_event = 16;
+#[doc = " @cond exclude_from_documentation"]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_UPDATE_V2: iJIT_jvm_event = 17;
+#[doc = "<\\brief Send when a dynamic code is"]
+#[doc = " JIT compiled and loaded into"]
+#[doc = " memory by the JIT engine, but"]
+#[doc = " before the code is executed."]
+#[doc = " Use iJIT_Method_Load_V2 as event data."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED_V2: iJIT_jvm_event = 21;
+#[doc = "<\\brief Send when a dynamic code is"]
+#[doc = " JIT compiled and loaded into"]
+#[doc = " memory by the JIT engine, but"]
+#[doc = " before the code is executed."]
+#[doc = " Use iJIT_Method_Load_V3 as event data."]
+pub const iJIT_jvm_event_iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED_V3: iJIT_jvm_event = 22;
+#[doc = " @brief Enumerator for the types of notifications"]
+pub type iJIT_jvm_event = u32;
+pub use self::iJIT_jvm_event as iJIT_JVM_EVENT;
+#[doc = "<\\brief The agent is not running;"]
+#[doc = " iJIT_NotifyEvent calls will"]
+#[doc = " not be processed."]
+pub const _iJIT_IsProfilingActiveFlags_iJIT_NOTHING_RUNNING: _iJIT_IsProfilingActiveFlags = 0;
+#[doc = "<\\brief The agent is running and"]
+#[doc = " ready to process notifications."]
+pub const _iJIT_IsProfilingActiveFlags_iJIT_SAMPLING_ON: _iJIT_IsProfilingActiveFlags = 1;
+#[doc = " @brief Enumerator for the agent's mode"]
+pub type _iJIT_IsProfilingActiveFlags = u32;
+pub use self::_iJIT_IsProfilingActiveFlags as iJIT_IsProfilingActiveFlags;
+#[doc = " @brief Description of a single entry in the line number information of a code region."]
+#[doc = " @details A table of line number entries gives information about how the reported code region"]
+#[doc = " is mapped to source file."]
+#[doc = " Intel(R) VTune(TM) Amplifier uses line number information to attribute"]
+#[doc = " the samples (virtual address) to a line number. \\n"]
+#[doc = " It is acceptable to report different code addresses for the same source line:"]
+#[doc = " @code"]
+#[doc = " Offset LineNumber"]
+#[doc = " 1 2"]
+#[doc = " 12 4"]
+#[doc = " 15 2"]
+#[doc = " 18 1"]
+#[doc = " 21 30"]
+#[doc = ""]
+#[doc = " VTune Amplifier constructs the following table using the client data"]
+#[doc = ""]
+#[doc = " Code subrange Line number"]
+#[doc = " 0-1 2"]
+#[doc = " 1-12 4"]
+#[doc = " 12-15 2"]
+#[doc = " 15-18 1"]
+#[doc = " 18-21 30"]
+#[doc = " @endcode"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _LineNumberInfo {
+ #[doc = "<\\brief Offset from the begining of the code region."]
+ pub Offset: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Matching source line number offset (from beginning of source file)."]
+ pub LineNumber: ::std::os::raw::c_uint,
+}
+#[test]
+fn bindgen_test_layout__LineNumberInfo() {
+ assert_eq!(
+ ::std::mem::size_of::<_LineNumberInfo>(),
+ 8usize,
+ concat!("Size of: ", stringify!(_LineNumberInfo))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_LineNumberInfo>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(_LineNumberInfo))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_LineNumberInfo>())).Offset as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_LineNumberInfo),
+ "::",
+ stringify!(Offset)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_LineNumberInfo>())).LineNumber as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_LineNumberInfo),
+ "::",
+ stringify!(LineNumber)
+ )
+ );
+}
+pub type pLineNumberInfo = *mut _LineNumberInfo;
+pub type LineNumberInfo = _LineNumberInfo;
+#[doc = "<\\brief Native to the process architecture that is calling it."]
+pub const _iJIT_CodeArchitecture_iJIT_CA_NATIVE: _iJIT_CodeArchitecture = 0;
+#[doc = "<\\brief 32-bit machine code."]
+pub const _iJIT_CodeArchitecture_iJIT_CA_32: _iJIT_CodeArchitecture = 1;
+#[doc = "<\\brief 64-bit machine code."]
+pub const _iJIT_CodeArchitecture_iJIT_CA_64: _iJIT_CodeArchitecture = 2;
+#[doc = " @brief Enumerator for the code architecture."]
+pub type _iJIT_CodeArchitecture = u32;
+pub use self::_iJIT_CodeArchitecture as iJIT_CodeArchitecture;
+#[doc = " @brief Description of a JIT-compiled method"]
+#[doc = " @details When you use the iJIT_Method_Load structure to describe"]
+#[doc = " the JIT compiled method, use iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED"]
+#[doc = " as an event type to report it."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _iJIT_Method_Load {
+ #[doc = "<\\brief Unique method ID. Cannot be 0."]
+ #[doc = " You must either use the API function"]
+ #[doc = " iJIT_GetNewMethodID to get a valid and unique"]
+ #[doc = " method ID, or else manage ID uniqueness"]
+ #[doc = " and correct range by yourself.\\n"]
+ #[doc = " You must use the same method ID for all code"]
+ #[doc = " regions of the same method, otherwise different"]
+ #[doc = " method IDs specify different methods."]
+ pub method_id: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The name of the method. It can be optionally"]
+ #[doc = " prefixed with its class name and appended with"]
+ #[doc = " its complete signature. Can't be NULL."]
+ pub method_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief The start virtual address of the method code"]
+ #[doc = " region. If NULL, data provided with"]
+ #[doc = " event are not accepted."]
+ pub method_load_address: *mut ::std::os::raw::c_void,
+ #[doc = "<\\brief The code size of the method in memory."]
+ #[doc = " If 0, then data provided with the event are not"]
+ #[doc = " accepted."]
+ pub method_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The number of entries in the line number"]
+ #[doc = " table.0 if none."]
+ pub line_number_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Pointer to the line numbers info"]
+ #[doc = " array. Can be NULL if"]
+ #[doc = " line_number_size is 0. See"]
+ #[doc = " LineNumberInfo Structure for a"]
+ #[doc = " description of a single entry in"]
+ #[doc = " the line number info array"]
+ pub line_number_table: pLineNumberInfo,
+ #[doc = "<\\brief This field is obsolete."]
+ pub class_id: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Class name. Can be NULL."]
+ pub class_file_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Source file name. Can be NULL."]
+ pub source_file_name: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__iJIT_Method_Load() {
+ assert_eq!(
+ ::std::mem::size_of::<_iJIT_Method_Load>(),
+ 64usize,
+ concat!("Size of: ", stringify!(_iJIT_Method_Load))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_iJIT_Method_Load>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_iJIT_Method_Load))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Load>())).method_id as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(method_id)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Load>())).method_name as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(method_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load>())).method_load_address as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(method_load_address)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Load>())).method_size as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(method_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load>())).line_number_size as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(line_number_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load>())).line_number_table as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(line_number_table)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Load>())).class_id as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(class_id)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load>())).class_file_name as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(class_file_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load>())).source_file_name as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load),
+ "::",
+ stringify!(source_file_name)
+ )
+ );
+}
+pub type piJIT_Method_Load = *mut _iJIT_Method_Load;
+pub type iJIT_Method_Load = _iJIT_Method_Load;
+#[doc = " @brief Description of a JIT-compiled method"]
+#[doc = " @details When you use the iJIT_Method_Load_V2 structure to describe"]
+#[doc = " the JIT compiled method, use iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED_V2"]
+#[doc = " as an event type to report it."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _iJIT_Method_Load_V2 {
+ #[doc = "<\\brief Unique method ID. Cannot be 0."]
+ #[doc = " You must either use the API function"]
+ #[doc = " iJIT_GetNewMethodID to get a valid and unique"]
+ #[doc = " method ID, or else manage ID uniqueness"]
+ #[doc = " and correct range by yourself.\\n"]
+ #[doc = " You must use the same method ID for all code"]
+ #[doc = " regions of the same method, otherwise different"]
+ #[doc = " method IDs specify different methods."]
+ pub method_id: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The name of the method. It can be optionally"]
+ #[doc = " prefixed with its class name and appended with"]
+ #[doc = " its complete signature. Can't be NULL."]
+ pub method_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief The start virtual address of the method code"]
+ #[doc = " region. If NULL, then data provided with the"]
+ #[doc = " event are not accepted."]
+ pub method_load_address: *mut ::std::os::raw::c_void,
+ #[doc = "<\\brief The code size of the method in memory."]
+ #[doc = " If 0, then data provided with the event are not"]
+ #[doc = " accepted."]
+ pub method_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The number of entries in the line number"]
+ #[doc = " table. 0 if none."]
+ pub line_number_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Pointer to the line numbers info"]
+ #[doc = " array. Can be NULL if"]
+ #[doc = " line_number_size is 0. See"]
+ #[doc = " LineNumberInfo Structure for a"]
+ #[doc = " description of a single entry in"]
+ #[doc = " the line number info array."]
+ pub line_number_table: pLineNumberInfo,
+ #[doc = "<\\brief Class name. Can be NULL."]
+ pub class_file_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Source file name. Can be NULL."]
+ pub source_file_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Module name. Can be NULL."]
+ #[doc = "The module name can be useful for distinguishing among"]
+ #[doc = "different JIT engines. VTune Amplifier will display"]
+ #[doc = "reported methods grouped by specific module."]
+ pub module_name: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__iJIT_Method_Load_V2() {
+ assert_eq!(
+ ::std::mem::size_of::<_iJIT_Method_Load_V2>(),
+ 64usize,
+ concat!("Size of: ", stringify!(_iJIT_Method_Load_V2))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_iJIT_Method_Load_V2>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_iJIT_Method_Load_V2))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).method_id as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(method_id)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).method_name as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(method_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).method_load_address as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(method_load_address)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).method_size as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(method_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).line_number_size as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(line_number_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).line_number_table as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(line_number_table)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).class_file_name as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(class_file_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).source_file_name as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(source_file_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V2>())).module_name as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V2),
+ "::",
+ stringify!(module_name)
+ )
+ );
+}
+pub type piJIT_Method_Load_V2 = *mut _iJIT_Method_Load_V2;
+pub type iJIT_Method_Load_V2 = _iJIT_Method_Load_V2;
+#[doc = " @brief Description of a JIT-compiled method"]
+#[doc = " @details The iJIT_Method_Load_V3 structure is the same as iJIT_Method_Load_V2"]
+#[doc = " with a newly introduced 'arch' field that specifies architecture of the code region."]
+#[doc = " When you use the iJIT_Method_Load_V3 structure to describe"]
+#[doc = " the JIT compiled method, use iJVM_EVENT_TYPE_METHOD_LOAD_FINISHED_V3"]
+#[doc = " as an event type to report it."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _iJIT_Method_Load_V3 {
+ #[doc = "<\\brief Unique method ID. Cannot be 0."]
+ #[doc = " You must either use the API function"]
+ #[doc = " iJIT_GetNewMethodID to get a valid and unique"]
+ #[doc = " method ID, or manage ID uniqueness"]
+ #[doc = " and correct range by yourself.\\n"]
+ #[doc = " You must use the same method ID for all code"]
+ #[doc = " regions of the same method, otherwise they are"]
+ #[doc = " treated as regions of different methods."]
+ pub method_id: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The name of the method. It can be optionally"]
+ #[doc = " prefixed with its class name and appended with"]
+ #[doc = " its complete signature. Cannot be NULL."]
+ pub method_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief The start virtual address of the method code"]
+ #[doc = " region. If NULL, then data provided with the"]
+ #[doc = " event are not accepted."]
+ pub method_load_address: *mut ::std::os::raw::c_void,
+ #[doc = "<\\brief The code size of the method in memory."]
+ #[doc = " If 0, then data provided with the event are not"]
+ #[doc = " accepted."]
+ pub method_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The number of entries in the line number"]
+ #[doc = " table. 0 if none."]
+ pub line_number_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Pointer to the line numbers info"]
+ #[doc = " array. Can be NULL if"]
+ #[doc = " line_number_size is 0. See"]
+ #[doc = " LineNumberInfo Structure for a"]
+ #[doc = " description of a single entry in"]
+ #[doc = " the line number info array."]
+ pub line_number_table: pLineNumberInfo,
+ #[doc = "<\\brief Class name. Can be NULL."]
+ pub class_file_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Source file name. Can be NULL."]
+ pub source_file_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Module name. Can be NULL."]
+ #[doc = " The module name can be useful for distinguishing among"]
+ #[doc = " different JIT engines. VTune Amplifier will display"]
+ #[doc = " reported methods grouped by specific module."]
+ pub module_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Architecture of the method's code region."]
+ #[doc = " By default, it is the same as the process"]
+ #[doc = " architecture that is calling it."]
+ #[doc = " For example, you can use it if your 32-bit JIT"]
+ #[doc = " engine generates 64-bit code."]
+ #[doc = ""]
+ #[doc = " If JIT engine reports both 32-bit and 64-bit types"]
+ #[doc = " of methods then VTune Amplifier splits the methods"]
+ #[doc = " with the same module name but with different"]
+ #[doc = " architectures in two different modules. VTune Amplifier"]
+ #[doc = " modifies the original name provided with a 64-bit method"]
+ #[doc = " version by ending it with '(64)'"]
+ pub module_arch: iJIT_CodeArchitecture,
+}
+#[test]
+fn bindgen_test_layout__iJIT_Method_Load_V3() {
+ assert_eq!(
+ ::std::mem::size_of::<_iJIT_Method_Load_V3>(),
+ 72usize,
+ concat!("Size of: ", stringify!(_iJIT_Method_Load_V3))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_iJIT_Method_Load_V3>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_iJIT_Method_Load_V3))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).method_id as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(method_id)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).method_name as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(method_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).method_load_address as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(method_load_address)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).method_size as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(method_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).line_number_size as *const _ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(line_number_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).line_number_table as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(line_number_table)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).class_file_name as *const _ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(class_file_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).source_file_name as *const _ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(source_file_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).module_name as *const _ as usize
+ },
+ 56usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(module_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Load_V3>())).module_arch as *const _ as usize
+ },
+ 64usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Load_V3),
+ "::",
+ stringify!(module_arch)
+ )
+ );
+}
+pub type piJIT_Method_Load_V3 = *mut _iJIT_Method_Load_V3;
+pub type iJIT_Method_Load_V3 = _iJIT_Method_Load_V3;
+#[doc = " @brief Description of an inline JIT-compiled method"]
+#[doc = " @details When you use the_iJIT_Method_Inline_Load structure to describe"]
+#[doc = " the JIT compiled method, use iJVM_EVENT_TYPE_METHOD_INLINE_LOAD_FINISHED"]
+#[doc = " as an event type to report it."]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _iJIT_Method_Inline_Load {
+ #[doc = "<\\brief Unique method ID. Cannot be 0."]
+ #[doc = " You must either use the API function"]
+ #[doc = " iJIT_GetNewMethodID to get a valid and unique"]
+ #[doc = " method ID, or else manage ID uniqueness"]
+ #[doc = " and correct range by yourself."]
+ pub method_id: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Unique immediate parent's method ID."]
+ #[doc = " Cannot be 0."]
+ #[doc = " You must either use the API function"]
+ #[doc = " iJIT_GetNewMethodID to get a valid and unique"]
+ #[doc = " method ID, or else manage ID uniqueness"]
+ #[doc = " and correct range by yourself."]
+ pub parent_method_id: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The name of the method. It can be optionally"]
+ #[doc = " prefixed with its class name and appended with"]
+ #[doc = " its complete signature. Can't be NULL."]
+ pub method_name: *mut ::std::os::raw::c_char,
+ pub method_load_address: *mut ::std::os::raw::c_void,
+ #[doc = "<\\brief The code size of the method in memory."]
+ #[doc = " If 0, then data provided with the event are not"]
+ #[doc = " accepted."]
+ pub method_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief The number of entries in the line number"]
+ #[doc = " table. 0 if none."]
+ pub line_number_size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Pointer to the line numbers info"]
+ #[doc = " array. Can be NULL if"]
+ #[doc = " line_number_size is 0. See"]
+ #[doc = " LineNumberInfo Structure for a"]
+ #[doc = " description of a single entry in"]
+ #[doc = " the line number info array"]
+ pub line_number_table: pLineNumberInfo,
+ #[doc = "<\\brief Class name. Can be NULL."]
+ pub class_file_name: *mut ::std::os::raw::c_char,
+ #[doc = "<\\brief Source file name. Can be NULL."]
+ pub source_file_name: *mut ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__iJIT_Method_Inline_Load() {
+ assert_eq!(
+ ::std::mem::size_of::<_iJIT_Method_Inline_Load>(),
+ 56usize,
+ concat!("Size of: ", stringify!(_iJIT_Method_Inline_Load))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_iJIT_Method_Inline_Load>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_iJIT_Method_Inline_Load))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).method_id as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(method_id)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).parent_method_id as *const _
+ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(parent_method_id)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).method_name as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(method_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).method_load_address as *const _
+ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(method_load_address)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).method_size as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(method_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).line_number_size as *const _
+ as usize
+ },
+ 28usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(line_number_size)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).line_number_table as *const _
+ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(line_number_table)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).class_file_name as *const _
+ as usize
+ },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(class_file_name)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Inline_Load>())).source_file_name as *const _
+ as usize
+ },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Inline_Load),
+ "::",
+ stringify!(source_file_name)
+ )
+ );
+}
+pub type piJIT_Method_Inline_Load = *mut _iJIT_Method_Inline_Load;
+pub type iJIT_Method_Inline_Load = _iJIT_Method_Inline_Load;
+pub const _iJIT_SegmentType_iJIT_CT_UNKNOWN: _iJIT_SegmentType = 0;
+#[doc = "<\\brief Executable code."]
+pub const _iJIT_SegmentType_iJIT_CT_CODE: _iJIT_SegmentType = 1;
+#[doc = "<\\brief Data (not executable code)."]
+#[doc = " VTune Amplifier uses the format string"]
+#[doc = " (see iJIT_Method_Update) to represent"]
+#[doc = " this data in the VTune Amplifier GUI"]
+pub const _iJIT_SegmentType_iJIT_CT_DATA: _iJIT_SegmentType = 2;
+#[doc = "<\\brief Use the previous markup for the trace."]
+#[doc = " Can be used for the following"]
+#[doc = " iJVM_EVENT_TYPE_METHOD_UPDATE_V2 events,"]
+#[doc = " if the type of the previously reported segment"]
+#[doc = " type is the same."]
+pub const _iJIT_SegmentType_iJIT_CT_KEEP: _iJIT_SegmentType = 3;
+pub const _iJIT_SegmentType_iJIT_CT_EOF: _iJIT_SegmentType = 4;
+#[doc = " @cond exclude_from_documentation */"]
+#[doc = " @brief Description of a segment type"]
+#[doc = " @details Use the segment type to specify a type of data supplied"]
+#[doc = " with the iJVM_EVENT_TYPE_METHOD_UPDATE_V2 event to be applied to"]
+#[doc = " a certain code trace."]
+pub type _iJIT_SegmentType = u32;
+pub use self::_iJIT_SegmentType as iJIT_SegmentType;
+#[doc = " @brief Description of a dynamic update of the content within JIT-compiled method"]
+#[doc = " @details The JIT engine may generate the methods that are updated at runtime"]
+#[doc = " partially by mixed (data + executable code) content. When you use the iJIT_Method_Update"]
+#[doc = " structure to describe the update of the content within a JIT-compiled method,"]
+#[doc = " use iJVM_EVENT_TYPE_METHOD_UPDATE_V2 as an event type to report it."]
+#[doc = ""]
+#[doc = " On the first Update event, VTune Amplifier copies the original code range reported by"]
+#[doc = " the iJVM_EVENT_TYPE_METHOD_LOAD event, then modifies it with the supplied bytes and"]
+#[doc = " adds the modified range to the original method. For next update events, VTune Amplifier"]
+#[doc = " does the same but it uses the latest modified version of a code region for update."]
+#[doc = " Eventually, VTune Amplifier GUI displays multiple code ranges for the method reported by"]
+#[doc = " the iJVM_EVENT_TYPE_METHOD_LOAD event."]
+#[doc = " Notes:"]
+#[doc = " - Multiple update events with different types for the same trace are allowed"]
+#[doc = " but they must be reported for the same code ranges."]
+#[doc = " Example,"]
+#[doc = " @code"]
+#[doc = " [-- data---] Allowed"]
+#[doc = " [-- code --] Allowed"]
+#[doc = " [code] Ignored"]
+#[doc = " [-- data---] Allowed"]
+#[doc = " [-- code --] Allowed"]
+#[doc = " [------------ trace ---------]"]
+#[doc = " @endcode"]
+#[doc = " - The types of previously reported events can be changed but they must be reported"]
+#[doc = " for the same code ranges."]
+#[doc = " Example,"]
+#[doc = " @code"]
+#[doc = " [-- data---] Allowed"]
+#[doc = " [-- code --] Allowed"]
+#[doc = " [-- data---] Allowed"]
+#[doc = " [-- code --] Allowed"]
+#[doc = " [------------ trace ---------]"]
+#[doc = " @endcode"]
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct _iJIT_Method_Update {
+ #[doc = "<\\brief Start address of the update within a method"]
+ pub load_address: *mut ::std::os::raw::c_void,
+ #[doc = "<\\brief The update size"]
+ pub size: ::std::os::raw::c_uint,
+ #[doc = "<\\brief Type of the update"]
+ pub type_: iJIT_SegmentType,
+ #[doc = "<\\brief C string that contains a format string"]
+ #[doc = " that follows the same specifications as format in printf."]
+ #[doc = " The format string is used for iJIT_CT_CODE only"]
+ #[doc = " and cannot be NULL."]
+ #[doc = " Format can be changed on the fly."]
+ pub data_format: *const ::std::os::raw::c_char,
+}
+#[test]
+fn bindgen_test_layout__iJIT_Method_Update() {
+ assert_eq!(
+ ::std::mem::size_of::<_iJIT_Method_Update>(),
+ 24usize,
+ concat!("Size of: ", stringify!(_iJIT_Method_Update))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<_iJIT_Method_Update>(),
+ 8usize,
+ concat!("Alignment of ", stringify!(_iJIT_Method_Update))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<_iJIT_Method_Update>())).load_address as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Update),
+ "::",
+ stringify!(load_address)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Update>())).size as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Update),
+ "::",
+ stringify!(size)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Update>())).type_ as *const _ as usize },
+ 12usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Update),
+ "::",
+ stringify!(type_)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<_iJIT_Method_Update>())).data_format as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(_iJIT_Method_Update),
+ "::",
+ stringify!(data_format)
+ )
+ );
+}
+pub type piJIT_Method_Update = *mut _iJIT_Method_Update;
+pub type iJIT_Method_Update = _iJIT_Method_Update;
+extern "C" {
+ #[doc = " @brief Generates a new unique method ID."]
+ #[doc = ""]
+ #[doc = " You must use this API to obtain unique and valid method IDs for methods or"]
+ #[doc = " traces reported to the agent if you don't have your own mechanism to generate"]
+ #[doc = " unique method IDs."]
+ #[doc = ""]
+ #[doc = " @return a new unique method ID. When out of unique method IDs, this API"]
+ #[doc = " returns 0, which is not an accepted value."]
+ pub fn iJIT_GetNewMethodID() -> ::std::os::raw::c_uint;
+}
+extern "C" {
+ #[doc = " @brief Returns the current mode of the agent."]
+ #[doc = ""]
+ #[doc = " @return iJIT_SAMPLING_ON, indicating that agent is running, or"]
+ #[doc = " iJIT_NOTHING_RUNNING if no agent is running."]
+ pub fn iJIT_IsProfilingActive() -> iJIT_IsProfilingActiveFlags;
+}
+extern "C" {
+ #[doc = " @brief Reports infomation about JIT-compiled code to the agent."]
+ #[doc = ""]
+ #[doc = " The reported information is used to attribute samples obtained from any"]
+ #[doc = " Intel(R) VTune(TM) Amplifier collector. This API needs to be called"]
+ #[doc = " after JIT compilation and before the first entry into the JIT-compiled"]
+ #[doc = " code."]
+ #[doc = ""]
+ #[doc = " @param[in] event_type - type of the data sent to the agent"]
+ #[doc = " @param[in] EventSpecificData - pointer to event-specific data"]
+ #[doc = ""]
+ #[doc = " @returns 1 on success, otherwise 0."]
+ pub fn iJIT_NotifyEvent(
+ event_type: iJIT_JVM_EVENT,
+ EventSpecificData: *mut ::std::os::raw::c_void,
+ ) -> ::std::os::raw::c_int;
+}
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/src/lib.rs b/deps/v8/third_party/ittapi/ittapi-rs/src/lib.rs
new file mode 100644
index 0000000000..0ce85516a5
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/src/lib.rs
@@ -0,0 +1,4 @@
+#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
+#![allow(unused)]
+include!("ittnotify_bindings.rs");
+include!("jitprofiling_bindings.rs");
diff --git a/deps/v8/third_party/ittapi/ittapi-rs/tests/bindgen-up-to-date.rs b/deps/v8/third_party/ittapi/ittapi-rs/tests/bindgen-up-to-date.rs
new file mode 100644
index 0000000000..d3eb75da71
--- /dev/null
+++ b/deps/v8/third_party/ittapi/ittapi-rs/tests/bindgen-up-to-date.rs
@@ -0,0 +1,68 @@
+// This is a smoke test for pre-generated `src/ittapi-bindings.rs` and
+// `src/jitprofiling-bindings.rs` files to see that they don't need to be
+// updated. We check in a generated version so downstream consumers don't
+// have to get `bindgen` working themselves.
+//
+// If bindgen or ittapi.h or jitprofiling.h change you can run tests with
+// `BLESS=1` (inpired by a similiar pach for binaryen) to regenerate the
+// source files, otherwise this can test on CI that the file doesn't need
+// to be regenerated.
+
+#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
+#![allow(unused)]
+
+#[test]
+fn test_ittnotify_bindings_up_to_date() {
+ let expected = bindgen::Builder::default()
+ .rustfmt_bindings(true)
+ .header("./include/ittnotify.h")
+ .generate()
+ .expect("Unable to generate ittnotify bindings.")
+ .to_string();
+
+ if std::env::var("BLESS").is_ok() {
+ std::fs::write("src/ittnotify_bindings.rs", expected).unwrap();
+ } else {
+ let actual = include_str!("../src/ittnotify_bindings.rs");
+ if expected == actual {
+ return;
+ }
+
+ for diff in diff::lines(&expected, &actual) {
+ match diff {
+ diff::Result::Both(_, s) => println!(" {}", s),
+ diff::Result::Left(s) => println!("-{}", s),
+ diff::Result::Right(s) => println!("+{}", s),
+ }
+ }
+ panic!("differences found, need to regenerate ittnotify bindings");
+ }
+}
+
+#[test]
+fn test_jitprofiling_bindings_up_to_date() {
+ let expected = bindgen::Builder::default()
+ .rustfmt_bindings(true)
+ .header("./include/jitprofiling.h")
+ .generate()
+ .expect("Unable to generate jitprofiling bindings")
+ .to_string();
+
+ if std::env::var("BLESS").is_ok() {
+ std::fs::write("src/jitprofiling_bindings.rs", expected).unwrap();
+ } else {
+ let actual = include_str!("../src/jitprofiling_bindings.rs");
+ if expected == actual {
+ return;
+ }
+
+ for diff in diff::lines(&expected, &actual) {
+ match diff {
+ diff::Result::Both(_, s) => println!(" {}", s),
+ diff::Result::Left(s) => println!("-{}", s),
+ diff::Result::Right(s) => println!("+{}", s),
+ }
+ }
+ panic!("differences found, need to regenerate jitprofiling bindings");
+ }
+}