From c5c5ba6513b69f48cc897a9e01f04128b90ed048 Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Tue, 29 Oct 2024 00:55:19 +0100 Subject: [PATCH 1/7] add support of formatted metadata Signed-off-by: Alexey Kireev Signed-off-by: Kireev, Alexey --- include/ittnotify.h | 52 +++++++++++++++++++++++++++++++- src/ittnotify/ittnotify_static.h | 6 ++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/include/ittnotify.h b/include/ittnotify.h index 898f8bb6..821b8a3e 100644 --- a/include/ittnotify.h +++ b/include/ittnotify.h @@ -2454,9 +2454,59 @@ typedef enum { __itt_metadata_u16, /**< Unsigned 16-bit integer */ __itt_metadata_s16, /**< Signed 16-bit integer */ __itt_metadata_float, /**< Signed 32-bit floating-point */ - __itt_metadata_double /**< SIgned 64-bit floating-point */ + __itt_metadata_double, /**< Signed 64-bit floating-point */ + __itt_metadata_string /**< String*/ } __itt_metadata_type; +/** + * @ingroup parameters + * @brief Add metadata to an instance of a named entity. + * @param[in] domain The domain controlling the call + * @param[in] format The format of the metadata + * @param[in] ... The metadata itself as multiple arguments + */ +void ITTAPI __itt_formatted_metadata_add(const __itt_domain *domain, __itt_string_handle *format, ...); + +/** @cond exclude_from_documentation */ +#ifndef INTEL_NO_MACRO_BODY +#ifndef INTEL_NO_ITTNOTIFY_API +ITT_STUBV(ITTAPI, void, formatted_metadata_add, (const __itt_domain *domain, __itt_string_handle *format, ...)) +#define __itt_formatted_metadata_add ITTNOTIFY_VOID(formatted_metadata_add) +#define __itt_formatted_metadata_add_ptr ITTNOTIFY_NAME(formatted_metadata_add) +#else /* INTEL_NO_ITTNOTIFY_API */ +#define __itt_formatted_metadata_add(domain, format, metadata) +#define __itt_formatted_metadata_add_ptr 0 +#endif /* INTEL_NO_ITTNOTIFY_API */ +#else /* INTEL_NO_MACRO_BODY */ +#define __itt_formatted_metadata_add_ptr 0 +#endif /* INTEL_NO_MACRO_BODY */ +/** @endcond */ + +/** + * @ingroup parameters + * @brief Add metadata to an instance of a named entity. + * @param[in] domain The domain controlling the call + * @param[in] taskid The identifier for this task instance, *cannot* be __itt_null. + * @param[in] format The format of the metadata + * @param[in] ... The metadata itself as multiple arguments + */ +void ITTAPI __itt_formatted_metadata_add_overlapped(const __itt_domain *domain, __itt_id taskid, __itt_string_handle *format, ...); + +/** @cond exclude_from_documentation */ +#ifndef INTEL_NO_MACRO_BODY +#ifndef INTEL_NO_ITTNOTIFY_API +ITT_STUBV(ITTAPI, void, formatted_metadata_add_overlapped, (const __itt_domain *domain, __itt_id taskid, __itt_string_handle *format, ...)) +#define __itt_formatted_metadata_add_overlapped ITTNOTIFY_VOID(formatted_metadata_add_overlapped) +#define __itt_formatted_metadata_add_ptr_overlapped ITTNOTIFY_NAME(formatted_metadata_add_overlapped) +#else /* INTEL_NO_ITTNOTIFY_API */ +#define __itt_formatted_metadata_add_overlapped(domain, taskid, format, metadata) +#define __itt_formatted_metadata_add_ptr_overlapped 0 +#endif /* INTEL_NO_ITTNOTIFY_API */ +#else /* INTEL_NO_MACRO_BODY */ +#define __itt_formatted_metadata_add_ptr_overlapped 0 +#endif /* INTEL_NO_MACRO_BODY */ +/** @endcond */ + /** * @ingroup parameters * @brief Add metadata to an instance of a named entity. diff --git a/src/ittnotify/ittnotify_static.h b/src/ittnotify/ittnotify_static.h index 60726872..27081cb5 100644 --- a/src/ittnotify/ittnotify_static.h +++ b/src/ittnotify/ittnotify_static.h @@ -207,6 +207,12 @@ ITT_STUBV(ITTAPI, void, counter_dec_delta_v3, (const __itt_domain *domain, __itt ITT_STUBV(ITTAPI, void, marker, (const __itt_domain *domain, __itt_id id, __itt_string_handle *name, __itt_scope scope), (ITT_FORMAT domain, id, name, scope), marker, __itt_group_structure, "%p, %lu, %p, %d") +ITT_STUBV(ITTAPI, void, formatted_metadata_add, (const __itt_domain *domain, __itt_string_handle *format, ...), \ + (ITT_FORMAT domain, format), formatted_metadata_add, __itt_group_structure, "%p, %p") + +ITT_STUBV(ITTAPI, void, formatted_metadata_add_overlapped, (const __itt_domain *domain, __itt_id id, __itt_string_handle *format, ...), \ + (ITT_FORMAT domain, id, format), formatted_metadata_add_overlapped, __itt_group_structure, "%p, %lu, %p") + ITT_STUBV(ITTAPI, void, metadata_add, (const __itt_domain *domain, __itt_id id, __itt_string_handle *key, __itt_metadata_type type, size_t count, void *data), (ITT_FORMAT domain, id, key, type, count, data), metadata_add, __itt_group_structure, "%p, %lu, %p, %d, %lu, %p") #if ITT_PLATFORM==ITT_PLATFORM_WIN ITT_STUBV(ITTAPI, void, metadata_str_addA, (const __itt_domain *domain, __itt_id id, __itt_string_handle *key, const char* data, size_t length), (ITT_FORMAT domain, id, key, data, length), metadata_str_addA, __itt_group_structure, "%p, %lu, %p, %p, %lu") From 7a976ff8117649719f4d22b33de07b29e9ef49f4 Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Fri, 25 Apr 2025 23:26:42 +0200 Subject: [PATCH 2/7] add Rust bindings Signed-off-by: Kireev, Alexey --- .../src/linux/ittnotify_bindings.rs | 24 +++++++++++++++++-- .../src/linux/jitprofiling_bindings.rs | 2 +- .../src/macos/ittnotify_bindings.rs | 24 +++++++++++++++++-- .../src/macos/jitprofiling_bindings.rs | 2 +- .../src/windows/ittnotify_bindings.rs | 24 +++++++++++++++++-- .../src/windows/jitprofiling_bindings.rs | 2 +- 6 files changed, 69 insertions(+), 9 deletions(-) diff --git a/rust/ittapi-sys/src/linux/ittnotify_bindings.rs b/rust/ittapi-sys/src/linux/ittnotify_bindings.rs index cd069fd5..f3d5b14c 100644 --- a/rust/ittapi-sys/src/linux/ittnotify_bindings.rs +++ b/rust/ittapi-sys/src/linux/ittnotify_bindings.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.69.4 */ +/* automatically generated by rust-bindgen 0.69.5 */ pub const ITT_OS_WIN: u32 = 1; pub const ITT_OS_LINUX: u32 = 2; @@ -796,10 +796,30 @@ pub const __itt_metadata_type___itt_metadata_u16: __itt_metadata_type = 5; 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"] +#[doc = "< Signed 64-bit floating-point"] pub const __itt_metadata_type___itt_metadata_double: __itt_metadata_type = 8; +#[doc = "< String"] +pub const __itt_metadata_type___itt_metadata_string: __itt_metadata_type = 9; #[doc = " @ingroup parameters\n @brief describes the type of metadata"] pub type __itt_metadata_type = ::std::os::raw::c_uint; +pub type __itt_formatted_metadata_add_ptr__3_0_t = ::std::option::Option< + unsafe extern "C" fn(domain: *const __itt_domain, format: *mut __itt_string_handle, ...), +>; +extern "C" { + pub static mut __itt_formatted_metadata_add_ptr__3_0: __itt_formatted_metadata_add_ptr__3_0_t; +} +pub type __itt_formatted_metadata_add_overlapped_ptr__3_0_t = ::std::option::Option< + unsafe extern "C" fn( + domain: *const __itt_domain, + taskid: __itt_id, + format: *mut __itt_string_handle, + ... + ), +>; +extern "C" { + pub static mut __itt_formatted_metadata_add_overlapped_ptr__3_0: + __itt_formatted_metadata_add_overlapped_ptr__3_0_t; +} pub type __itt_metadata_add_ptr__3_0_t = ::std::option::Option< unsafe extern "C" fn( domain: *const __itt_domain, diff --git a/rust/ittapi-sys/src/linux/jitprofiling_bindings.rs b/rust/ittapi-sys/src/linux/jitprofiling_bindings.rs index 1e9d9764..646dd74e 100644 --- a/rust/ittapi-sys/src/linux/jitprofiling_bindings.rs +++ b/rust/ittapi-sys/src/linux/jitprofiling_bindings.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.69.4 */ +/* automatically generated by rust-bindgen 0.69.5 */ #[doc = "<\\brief Send this to shutdown the agent.\n Use NULL for event data."] pub const iJIT_jvm_event_iJVM_EVENT_TYPE_SHUTDOWN: iJIT_jvm_event = 2; diff --git a/rust/ittapi-sys/src/macos/ittnotify_bindings.rs b/rust/ittapi-sys/src/macos/ittnotify_bindings.rs index 9c1e40cf..321b5c4c 100644 --- a/rust/ittapi-sys/src/macos/ittnotify_bindings.rs +++ b/rust/ittapi-sys/src/macos/ittnotify_bindings.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.69.4 */ +/* automatically generated by rust-bindgen 0.69.5 */ pub const ITT_OS_WIN: u32 = 1; pub const ITT_OS_LINUX: u32 = 2; @@ -796,10 +796,30 @@ pub const __itt_metadata_type___itt_metadata_u16: __itt_metadata_type = 5; 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"] +#[doc = "< Signed 64-bit floating-point"] pub const __itt_metadata_type___itt_metadata_double: __itt_metadata_type = 8; +#[doc = "< String"] +pub const __itt_metadata_type___itt_metadata_string: __itt_metadata_type = 9; #[doc = " @ingroup parameters\n @brief describes the type of metadata"] pub type __itt_metadata_type = ::std::os::raw::c_uint; +pub type __itt_formatted_metadata_add_ptr__3_0_t = ::std::option::Option< + unsafe extern "C" fn(domain: *const __itt_domain, format: *mut __itt_string_handle, ...), +>; +extern "C" { + pub static mut __itt_formatted_metadata_add_ptr__3_0: __itt_formatted_metadata_add_ptr__3_0_t; +} +pub type __itt_formatted_metadata_add_overlapped_ptr__3_0_t = ::std::option::Option< + unsafe extern "C" fn( + domain: *const __itt_domain, + taskid: __itt_id, + format: *mut __itt_string_handle, + ... + ), +>; +extern "C" { + pub static mut __itt_formatted_metadata_add_overlapped_ptr__3_0: + __itt_formatted_metadata_add_overlapped_ptr__3_0_t; +} pub type __itt_metadata_add_ptr__3_0_t = ::std::option::Option< unsafe extern "C" fn( domain: *const __itt_domain, diff --git a/rust/ittapi-sys/src/macos/jitprofiling_bindings.rs b/rust/ittapi-sys/src/macos/jitprofiling_bindings.rs index 1e9d9764..646dd74e 100644 --- a/rust/ittapi-sys/src/macos/jitprofiling_bindings.rs +++ b/rust/ittapi-sys/src/macos/jitprofiling_bindings.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.69.4 */ +/* automatically generated by rust-bindgen 0.69.5 */ #[doc = "<\\brief Send this to shutdown the agent.\n Use NULL for event data."] pub const iJIT_jvm_event_iJVM_EVENT_TYPE_SHUTDOWN: iJIT_jvm_event = 2; diff --git a/rust/ittapi-sys/src/windows/ittnotify_bindings.rs b/rust/ittapi-sys/src/windows/ittnotify_bindings.rs index 39458a7e..733ed0f1 100644 --- a/rust/ittapi-sys/src/windows/ittnotify_bindings.rs +++ b/rust/ittapi-sys/src/windows/ittnotify_bindings.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.69.4 */ +/* automatically generated by rust-bindgen 0.69.5 */ pub const ITT_OS_WIN: u32 = 1; pub const ITT_OS_LINUX: u32 = 2; @@ -855,10 +855,30 @@ pub const __itt_metadata_type___itt_metadata_u16: __itt_metadata_type = 5; 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"] +#[doc = "< Signed 64-bit floating-point"] pub const __itt_metadata_type___itt_metadata_double: __itt_metadata_type = 8; +#[doc = "< String"] +pub const __itt_metadata_type___itt_metadata_string: __itt_metadata_type = 9; #[doc = " @ingroup parameters\n @brief describes the type of metadata"] pub type __itt_metadata_type = ::std::os::raw::c_int; +pub type __itt_formatted_metadata_add_ptr__3_0_t = ::std::option::Option< + unsafe extern "C" fn(domain: *const __itt_domain, format: *mut __itt_string_handle, ...), +>; +extern "C" { + pub static mut __itt_formatted_metadata_add_ptr__3_0: __itt_formatted_metadata_add_ptr__3_0_t; +} +pub type __itt_formatted_metadata_add_overlapped_ptr__3_0_t = ::std::option::Option< + unsafe extern "C" fn( + domain: *const __itt_domain, + taskid: __itt_id, + format: *mut __itt_string_handle, + ... + ), +>; +extern "C" { + pub static mut __itt_formatted_metadata_add_overlapped_ptr__3_0: + __itt_formatted_metadata_add_overlapped_ptr__3_0_t; +} pub type __itt_metadata_add_ptr__3_0_t = ::std::option::Option< unsafe extern "C" fn( domain: *const __itt_domain, diff --git a/rust/ittapi-sys/src/windows/jitprofiling_bindings.rs b/rust/ittapi-sys/src/windows/jitprofiling_bindings.rs index ad674537..427e07ca 100644 --- a/rust/ittapi-sys/src/windows/jitprofiling_bindings.rs +++ b/rust/ittapi-sys/src/windows/jitprofiling_bindings.rs @@ -1,4 +1,4 @@ -/* automatically generated by rust-bindgen 0.69.4 */ +/* automatically generated by rust-bindgen 0.69.5 */ #[doc = "<\\brief Send this to shutdown the agent.\n Use NULL for event data."] pub const iJIT_jvm_event_iJVM_EVENT_TYPE_SHUTDOWN: iJIT_jvm_event = 2; From 6f144d2b6ea49a4d4509bc1c2c2d851c135da1fd Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Tue, 29 Apr 2025 00:44:42 +0200 Subject: [PATCH 3/7] change versions and add wchar_t string support --- include/ittnotify.h | 3 ++- src/ittnotify/ittnotify_config.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/ittnotify.h b/include/ittnotify.h index 821b8a3e..c5cac208 100644 --- a/include/ittnotify.h +++ b/include/ittnotify.h @@ -2455,7 +2455,8 @@ typedef enum { __itt_metadata_s16, /**< Signed 16-bit integer */ __itt_metadata_float, /**< Signed 32-bit floating-point */ __itt_metadata_double, /**< Signed 64-bit floating-point */ - __itt_metadata_string /**< String*/ + __itt_metadata_string, /**< String */ + __itt_metadata_wstring /**< Wide string */ } __itt_metadata_type; /** diff --git a/src/ittnotify/ittnotify_config.h b/src/ittnotify/ittnotify_config.h index 49649524..7b0d855c 100644 --- a/src/ittnotify/ittnotify_config.h +++ b/src/ittnotify/ittnotify_config.h @@ -208,10 +208,10 @@ #define ITT_MAGIC { 0xED, 0xAB, 0xAB, 0xEC, 0x0D, 0xEE, 0xDA, 0x30 } /* Replace with snapshot date YYYYMMDD for promotion build. */ -#define API_VERSION_BUILD 20230630 +#define API_VERSION_BUILD 20250429 #ifndef API_VERSION_NUM -#define API_VERSION_NUM 3.24.6 +#define API_VERSION_NUM 3.26.0 #endif /* API_VERSION_NUM */ #define API_VERSION "ITT-API-Version " ITT_TO_STR(API_VERSION_NUM) \ From 77b8eb276e315117ac07ed1504604bd80a17e865 Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Tue, 29 Apr 2025 00:51:00 +0200 Subject: [PATCH 4/7] add comment that the format string for formatted metadata is in printf-style --- include/ittnotify.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/ittnotify.h b/include/ittnotify.h index c5cac208..cf19d7ee 100644 --- a/include/ittnotify.h +++ b/include/ittnotify.h @@ -2463,7 +2463,7 @@ typedef enum { * @ingroup parameters * @brief Add metadata to an instance of a named entity. * @param[in] domain The domain controlling the call - * @param[in] format The format of the metadata + * @param[in] format The printf-style format of the metadata * @param[in] ... The metadata itself as multiple arguments */ void ITTAPI __itt_formatted_metadata_add(const __itt_domain *domain, __itt_string_handle *format, ...); @@ -2488,7 +2488,7 @@ ITT_STUBV(ITTAPI, void, formatted_metadata_add, (const __itt_domain *domain, __i * @brief Add metadata to an instance of a named entity. * @param[in] domain The domain controlling the call * @param[in] taskid The identifier for this task instance, *cannot* be __itt_null. - * @param[in] format The format of the metadata + * @param[in] format The printf-style format of the metadata * @param[in] ... The metadata itself as multiple arguments */ void ITTAPI __itt_formatted_metadata_add_overlapped(const __itt_domain *domain, __itt_id taskid, __itt_string_handle *format, ...); From 62e9f404611886c0bbc82ec615bc0d30b94738ed Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Tue, 29 Apr 2025 02:05:01 +0200 Subject: [PATCH 5/7] add new formatted metadata call into reference collector --- src/ittnotify_refcol/itt_refcol_impl.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ittnotify_refcol/itt_refcol_impl.c b/src/ittnotify_refcol/itt_refcol_impl.c index 92503585..aecf8fbb 100644 --- a/src/ittnotify_refcol/itt_refcol_impl.c +++ b/src/ittnotify_refcol/itt_refcol_impl.c @@ -333,6 +333,26 @@ ITT_EXTERN_C void __itt_metadata_add(const __itt_domain *domain, __itt_id id, } } +ITT_EXTERN_C void __itt_formatted_metadata_add(const __itt_domain *domain, __itt_string_handle *format, ...) +{ + if (domain == NULL || format == NULL) + { + LOG_FUNC_CALL_WARN("Incorrect function call"); + return; + } + + va_list args; + va_start(args, format); + + char formatted_metadata[LOG_BUFFER_MAX_SIZE]; + vsnprintf(formatted_metadata, LOG_BUFFER_MAX_SIZE, format->strA, args); + + LOG_FUNC_CALL_INFO("functions args: domain=%s formatted_metadata=%s", + domain->nameA, formatted_metadata); + + va_end(args); +} + ITT_EXTERN_C void __itt_histogram_submit(__itt_histogram* hist, size_t length, void* x_data, void* y_data) { if (hist == NULL) From e7ade82b43296b01c582e2a22d60b9f59bd82d7c Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Thu, 1 May 2025 00:55:49 +0200 Subject: [PATCH 6/7] address review comments for formatted metadata changes --- include/ittnotify.h | 4 +--- rust/ittapi-sys/src/linux/ittnotify_bindings.rs | 2 -- rust/ittapi-sys/src/macos/ittnotify_bindings.rs | 2 -- rust/ittapi-sys/src/windows/ittnotify_bindings.rs | 2 -- 4 files changed, 1 insertion(+), 9 deletions(-) diff --git a/include/ittnotify.h b/include/ittnotify.h index cf19d7ee..0744901c 100644 --- a/include/ittnotify.h +++ b/include/ittnotify.h @@ -2454,9 +2454,7 @@ typedef enum { __itt_metadata_u16, /**< Unsigned 16-bit integer */ __itt_metadata_s16, /**< Signed 16-bit integer */ __itt_metadata_float, /**< Signed 32-bit floating-point */ - __itt_metadata_double, /**< Signed 64-bit floating-point */ - __itt_metadata_string, /**< String */ - __itt_metadata_wstring /**< Wide string */ + __itt_metadata_double /**< Signed 64-bit floating-point */ } __itt_metadata_type; /** diff --git a/rust/ittapi-sys/src/linux/ittnotify_bindings.rs b/rust/ittapi-sys/src/linux/ittnotify_bindings.rs index f3d5b14c..8de7b41b 100644 --- a/rust/ittapi-sys/src/linux/ittnotify_bindings.rs +++ b/rust/ittapi-sys/src/linux/ittnotify_bindings.rs @@ -798,8 +798,6 @@ pub const __itt_metadata_type___itt_metadata_s16: __itt_metadata_type = 6; 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 = "< String"] -pub const __itt_metadata_type___itt_metadata_string: __itt_metadata_type = 9; #[doc = " @ingroup parameters\n @brief describes the type of metadata"] pub type __itt_metadata_type = ::std::os::raw::c_uint; pub type __itt_formatted_metadata_add_ptr__3_0_t = ::std::option::Option< diff --git a/rust/ittapi-sys/src/macos/ittnotify_bindings.rs b/rust/ittapi-sys/src/macos/ittnotify_bindings.rs index 321b5c4c..87ceb933 100644 --- a/rust/ittapi-sys/src/macos/ittnotify_bindings.rs +++ b/rust/ittapi-sys/src/macos/ittnotify_bindings.rs @@ -798,8 +798,6 @@ pub const __itt_metadata_type___itt_metadata_s16: __itt_metadata_type = 6; 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 = "< String"] -pub const __itt_metadata_type___itt_metadata_string: __itt_metadata_type = 9; #[doc = " @ingroup parameters\n @brief describes the type of metadata"] pub type __itt_metadata_type = ::std::os::raw::c_uint; pub type __itt_formatted_metadata_add_ptr__3_0_t = ::std::option::Option< diff --git a/rust/ittapi-sys/src/windows/ittnotify_bindings.rs b/rust/ittapi-sys/src/windows/ittnotify_bindings.rs index 733ed0f1..8cd76603 100644 --- a/rust/ittapi-sys/src/windows/ittnotify_bindings.rs +++ b/rust/ittapi-sys/src/windows/ittnotify_bindings.rs @@ -857,8 +857,6 @@ pub const __itt_metadata_type___itt_metadata_s16: __itt_metadata_type = 6; 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 = "< String"] -pub const __itt_metadata_type___itt_metadata_string: __itt_metadata_type = 9; #[doc = " @ingroup parameters\n @brief describes the type of metadata"] pub type __itt_metadata_type = ::std::os::raw::c_int; pub type __itt_formatted_metadata_add_ptr__3_0_t = ::std::option::Option< From 609d7c6550411bff8c68589d63f53cd5d64ca3d9 Mon Sep 17 00:00:00 2001 From: "Kireev, Alexey" Date: Mon, 5 May 2025 16:26:46 +0200 Subject: [PATCH 7/7] address review questions and prevent potential performance issues --- include/ittnotify.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/include/ittnotify.h b/include/ittnotify.h index 0744901c..b4d75be1 100644 --- a/include/ittnotify.h +++ b/include/ittnotify.h @@ -262,6 +262,8 @@ The same ID may not be reused for different instances, unless a previous #define ITTNOTIFY_VOID_D4(n,d,x,y,z,a) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a) #define ITTNOTIFY_VOID_D5(n,d,x,y,z,a,b) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b) #define ITTNOTIFY_VOID_D6(n,d,x,y,z,a,b,c) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,z,a,b,c) +#define ITTNOTIFY_VOID_D2_VA(n,d,x,...) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,__VA_ARGS__) +#define ITTNOTIFY_VOID_D3_VA(n,d,x,y,...) (d == NULL) ? (void)0 : (!(d)->flags) ? (void)0 : (!ITTNOTIFY_NAME(n)) ? (void)0 : ITTNOTIFY_NAME(n)(d,x,y,__VA_ARGS__) #define ITTNOTIFY_DATA_D0(n,d) (d == NULL) ? 0 : (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d) #define ITTNOTIFY_DATA_D1(n,d,x) (d == NULL) ? 0 : (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x) #define ITTNOTIFY_DATA_D2(n,d,x,y) (d == NULL) ? 0 : (!(d)->flags) ? 0 : (!ITTNOTIFY_NAME(n)) ? 0 : ITTNOTIFY_NAME(n)(d,x,y) @@ -2470,7 +2472,7 @@ void ITTAPI __itt_formatted_metadata_add(const __itt_domain *domain, __itt_strin #ifndef INTEL_NO_MACRO_BODY #ifndef INTEL_NO_ITTNOTIFY_API ITT_STUBV(ITTAPI, void, formatted_metadata_add, (const __itt_domain *domain, __itt_string_handle *format, ...)) -#define __itt_formatted_metadata_add ITTNOTIFY_VOID(formatted_metadata_add) +#define __itt_formatted_metadata_add(d,x, ...) ITTNOTIFY_VOID_D2_VA(formatted_metadata_add,d,x,__VA_ARGS__) #define __itt_formatted_metadata_add_ptr ITTNOTIFY_NAME(formatted_metadata_add) #else /* INTEL_NO_ITTNOTIFY_API */ #define __itt_formatted_metadata_add(domain, format, metadata) @@ -2495,14 +2497,14 @@ void ITTAPI __itt_formatted_metadata_add_overlapped(const __itt_domain *domain, #ifndef INTEL_NO_MACRO_BODY #ifndef INTEL_NO_ITTNOTIFY_API ITT_STUBV(ITTAPI, void, formatted_metadata_add_overlapped, (const __itt_domain *domain, __itt_id taskid, __itt_string_handle *format, ...)) -#define __itt_formatted_metadata_add_overlapped ITTNOTIFY_VOID(formatted_metadata_add_overlapped) -#define __itt_formatted_metadata_add_ptr_overlapped ITTNOTIFY_NAME(formatted_metadata_add_overlapped) +#define __itt_formatted_metadata_add_overlapped(d,x,y, ...) ITTNOTIFY_VOID_D3_VA(formatted_metadata_add_overlapped,d,x,y,__VA_ARGS__) +#define __itt_formatted_metadata_add_overlapped_ptr ITTNOTIFY_NAME(formatted_metadata_add_overlapped) #else /* INTEL_NO_ITTNOTIFY_API */ #define __itt_formatted_metadata_add_overlapped(domain, taskid, format, metadata) -#define __itt_formatted_metadata_add_ptr_overlapped 0 +#define __itt_formatted_metadata_add_overlapped_ptr 0 #endif /* INTEL_NO_ITTNOTIFY_API */ #else /* INTEL_NO_MACRO_BODY */ -#define __itt_formatted_metadata_add_ptr_overlapped 0 +#define __itt_formatted_metadata_add_overlapped_ptr 0 #endif /* INTEL_NO_MACRO_BODY */ /** @endcond */