10#include "kmp_config.h"
13#if ITT_PLATFORM == ITT_PLATFORM_WIN
27#define INTEL_NO_MACRO_BODY
28#define INTEL_ITTNOTIFY_API_PRIVATE
34static const char api_version[] =
API_VERSION "\0\n@(#) $Revision$\n";
36#define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX, n)
39#if defined(__cplusplus) && defined(__has_cpp_attribute)
40#define HAS_CPP_ATTR(X) __has_cpp_attribute(X)
42#define HAS_CPP_ATTR(X) 0
47#if defined(__STDC__) && defined(__has_c_attribute)
48#define HAS_C_ATTR(X) __has_c_attribute(X)
50#define HAS_C_ATTR(X) 0
55#if defined(__has_attribute)
56#define HAS_GNU_ATTR(X) __has_attribute(X)
58#define HAS_GNU_ATTR(X) 0
62#ifndef ITT_ATTRIBUTE_FALLTHROUGH
63#if (HAS_CPP_ATTR(fallthrough) || HAS_C_ATTR(fallthrough)) && \
64 (__cplusplus >= 201703L || _MSVC_LANG >= 201703L)
65#define ITT_ATTRIBUTE_FALLTHROUGH [[fallthrough]]
66#elif HAS_CPP_ATTR(gnu::fallthrough)
67#define ITT_ATTRIBUTE_FALLTHROUGH [[gnu::fallthrough]]
68#elif HAS_CPP_ATTR(clang::fallthrough)
69#define ITT_ATTRIBUTE_FALLTHROUGH [[clang::fallthrough]]
70#elif HAS_GNU_ATTR(fallthrough) && !__INTEL_COMPILER
71#define ITT_ATTRIBUTE_FALLTHROUGH __attribute__((fallthrough))
73#define ITT_ATTRIBUTE_FALLTHROUGH
77#if ITT_OS == ITT_OS_WIN
78static const char *ittnotify_lib_name =
"libittnotify.dll";
79#elif ITT_OS == ITT_OS_LINUX || ITT_OS == ITT_OS_FREEBSD
80static const char *ittnotify_lib_name =
"libittnotify.so";
81#elif ITT_OS == ITT_OS_MAC
82static const char *ittnotify_lib_name =
"libittnotify.dylib";
84#error Unsupported or unknown OS.
88#include <android/log.h>
94#include <linux/limits.h>
97#define ITT_ANDROID_LOG_TAG "INTEL_VTUNE_USERAPI"
98#define ITT_ANDROID_LOGI(...) \
99 ((void)__android_log_print(ANDROID_LOG_INFO, ITT_ANDROID_LOG_TAG, \
101#define ITT_ANDROID_LOGW(...) \
102 ((void)__android_log_print(ANDROID_LOG_WARN, ITT_ANDROID_LOG_TAG, \
104#define ITT_ANDROID_LOGE(...) \
105 ((void)__android_log_print(ANDROID_LOG_ERROR, ITT_ANDROID_LOG_TAG, \
107#define ITT_ANDROID_LOGD(...) \
108 ((void)__android_log_print(ANDROID_LOG_DEBUG, ITT_ANDROID_LOG_TAG, \
111#define ITT_ANDROID_LOGI(...)
112#define ITT_ANDROID_LOGW(...)
113#define ITT_ANDROID_LOGE(...)
114#define ITT_ANDROID_LOGD(...)
118#define ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(x) \
119 "/data/data/com.intel.vtune/perfrun/lib" #x "/runtime/libittnotify.so"
121#if ITT_ARCH == ITT_ARCH_IA32 || ITT_ARCH == ITT_ARCH_ARM
122#define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(32)
124#define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(64)
130#if ITT_ARCH == ITT_ARCH_IA32 || ITT_ARCH == ITT_ARCH_ARM
131#define LIB_VAR_NAME INTEL_LIBITTNOTIFY32
133#define LIB_VAR_NAME INTEL_LIBITTNOTIFY64
137#define ITT_MUTEX_INIT_AND_LOCK(p) \
139 if (PTHREAD_SYMBOLS) { \
140 if (!p.mutex_initialized) { \
141 if (__itt_interlocked_increment(&p.atomic_counter) == 1) { \
142 __itt_mutex_init(&p.mutex); \
143 p.mutex_initialized = 1; \
145 while (!p.mutex_initialized) \
146 __itt_thread_yield(); \
148 __itt_mutex_lock(&p.mutex); \
152#define ITT_MODULE_OBJECT_VERSION 1
157#ifndef __itt_init_ittlib_name
159static __itt_init_ittlib_t *__itt_init_ittlib_ptr = _N_(init_ittlib);
160#define __itt_init_ittlib_name __itt_init_ittlib_ptr
163typedef void(__itt_fini_ittlib_t)(
void);
166#ifndef __itt_fini_ittlib_name
168static __itt_fini_ittlib_t *__itt_fini_ittlib_ptr = _N_(fini_ittlib);
169#define __itt_fini_ittlib_name __itt_fini_ittlib_ptr
177#define ITT_STUB(api, type, name, args, params, ptr, group, format) \
178 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)) args; \
179 typedef type api ITT_JOIN(_N_(name), _t) args; \
180 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name), _t) * ITTNOTIFY_NAME(name) = \
181 ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)); \
183 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)) args { \
184 if (!_N_(_ittapi_global).api_initialized && \
185 _N_(_ittapi_global).thread_list == NULL) \
186 __itt_init_ittlib_name(NULL, __itt_group_all); \
187 if (ITTNOTIFY_NAME(name) && \
188 ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init))) \
189 return ITTNOTIFY_NAME(name) params; \
194#define ITT_STUBV(api, type, name, args, params, ptr, group, format) \
195 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)) args; \
196 typedef type api ITT_JOIN(_N_(name), _t) args; \
197 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name), _t) * ITTNOTIFY_NAME(name) = \
198 ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)); \
200 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)) args { \
201 if (!_N_(_ittapi_global).api_initialized && \
202 _N_(_ittapi_global).thread_list == NULL) \
203 __itt_init_ittlib_name(NULL, __itt_group_all); \
204 if (ITTNOTIFY_NAME(name) && \
205 ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init))) \
206 ITTNOTIFY_NAME(name) params; \
211#undef __ITT_INTERNAL_INIT
216#define ITT_STUB(api, type, name, args, params, ptr, group, format) \
217 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)) args; \
218 typedef type api ITT_JOIN(_N_(name), _t) args; \
219 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name), _t) * ITTNOTIFY_NAME(name) = \
220 ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)); \
223#define ITT_STUBV(api, type, name, args, params, ptr, group, format) \
224 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)) args; \
225 typedef type api ITT_JOIN(_N_(name), _t) args; \
226 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name), _t) * ITTNOTIFY_NAME(name) = \
227 ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)); \
230#define __ITT_INTERNAL_INIT
232#undef __ITT_INTERNAL_INIT
238typedef struct ___itt_group_alias {
243static __itt_group_alias group_alias[] = {
258#if ITT_PLATFORM == ITT_PLATFORM_WIN
261#pragma warning(disable : 4054)
270#define ITT_STUB(api, type, name, args, params, nameindll, group, format) \
271 {ITT_TO_STR(ITT_JOIN(__itt_, nameindll)), \
272 (void **)(void *)&ITTNOTIFY_NAME(name), \
273 (void *)(size_t)&ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)), \
274 (void *)(size_t)&ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)), \
275 (__itt_group_id)(group)},
276#define ITT_STUBV ITT_STUB
277#define __ITT_INTERNAL_INIT
279#undef __ITT_INTERNAL_INIT
283#define ITT_STUB(api, type, name, args, params, nameindll, group, format) \
284 {ITT_TO_STR(ITT_JOIN(__itt_, nameindll)), \
285 (void **)(void *)&ITTNOTIFY_NAME(name), \
286 (void *)(size_t)&ITT_VERSIONIZE(ITT_JOIN(_N_(name), _init)), NULL, \
287 (__itt_group_id)(group)},
288#define ITT_STUBV ITT_STUB
292#if ITT_PLATFORM == ITT_PLATFORM_WIN
325static __itt_domain dummy_domain;
328#ifdef ITT_NOTIFY_EXT_REPORT
332#if ITT_PLATFORM == ITT_PLATFORM_WIN
341static void __itt_report_error(
int code, ...) {
343 va_start(
args, code);
344 if (_N_(_ittapi_global).error_handler != NULL) {
345 __itt_error_handler_t *handler =
346 (__itt_error_handler_t *)(
size_t)_N_(_ittapi_global).error_handler;
347 handler((__itt_error_code)code,
args);
349#ifdef ITT_NOTIFY_EXT_REPORT
350 _N_(error_handler)((__itt_error_code)code,
args);
355#if ITT_PLATFORM == ITT_PLATFORM_WIN
361#if ITT_PLATFORM == ITT_PLATFORM_WIN
362static __itt_domain *ITTAPI
363ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW), _init))(
const wchar_t *
name) {
364 __itt_domain *h_tail = NULL, *
h = NULL;
370 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
371 if (_N_(_ittapi_global).api_initialized) {
372 if (ITTNOTIFY_NAME(domain_createW) &&
373 ITTNOTIFY_NAME(domain_createW) !=
374 ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW), _init))) {
376 return ITTNOTIFY_NAME(domain_createW)(
name);
379 return &dummy_domain;
382 for (h_tail = NULL,
h = _N_(_ittapi_global).domain_list;
h != NULL;
383 h_tail =
h,
h =
h->next) {
384 if (
h->nameW != NULL && !wcscmp(
h->nameW,
name))
395static __itt_domain *ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createA),
396 _init))(
const char *
name)
398static __itt_domain *ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),
399 _init))(
const char *
name)
402 __itt_domain *h_tail = NULL, *
h = NULL;
408 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
409 if (_N_(_ittapi_global).api_initialized) {
410#if ITT_PLATFORM == ITT_PLATFORM_WIN
411 if (ITTNOTIFY_NAME(domain_createA) &&
412 ITTNOTIFY_NAME(domain_createA) !=
413 ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createA), _init))) {
415 return ITTNOTIFY_NAME(domain_createA)(
name);
418 if (ITTNOTIFY_NAME(domain_create) &&
419 ITTNOTIFY_NAME(domain_create) !=
420 ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create), _init))) {
423 return ITTNOTIFY_NAME(domain_create)(
name);
427#if ITT_PLATFORM == ITT_PLATFORM_WIN
433 return &dummy_domain;
436 for (h_tail = NULL,
h = _N_(_ittapi_global).domain_list;
h != NULL;
437 h_tail =
h,
h =
h->next) {
449static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(
450 _N_(module_load_with_sections), _init))(__itt_module_object *module_obj) {
451 if (!_N_(_ittapi_global).api_initialized &&
452 _N_(_ittapi_global).thread_list == NULL) {
455 if (ITTNOTIFY_NAME(module_load_with_sections) &&
456 ITTNOTIFY_NAME(module_load_with_sections) !=
457 ITT_VERSIONIZE(ITT_JOIN(_N_(module_load_with_sections), _init))) {
458 if (module_obj != NULL) {
459 module_obj->version = ITT_MODULE_OBJECT_VERSION;
460 ITTNOTIFY_NAME(module_load_with_sections)(module_obj);
465static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(
466 _N_(module_unload_with_sections), _init))(__itt_module_object *module_obj) {
467 if (!_N_(_ittapi_global).api_initialized &&
468 _N_(_ittapi_global).thread_list == NULL) {
471 if (ITTNOTIFY_NAME(module_unload_with_sections) &&
472 ITTNOTIFY_NAME(module_unload_with_sections) !=
473 ITT_VERSIONIZE(ITT_JOIN(_N_(module_unload_with_sections), _init))) {
474 if (module_obj != NULL) {
475 module_obj->version = ITT_MODULE_OBJECT_VERSION;
476 ITTNOTIFY_NAME(module_unload_with_sections)(module_obj);
481#if ITT_PLATFORM == ITT_PLATFORM_WIN
482static __itt_string_handle *ITTAPI ITT_VERSIONIZE(
483 ITT_JOIN(_N_(string_handle_createW), _init))(
const wchar_t *
name) {
484 __itt_string_handle *h_tail = NULL, *
h = NULL;
490 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
491 if (_N_(_ittapi_global).api_initialized) {
492 if (ITTNOTIFY_NAME(string_handle_createW) &&
493 ITTNOTIFY_NAME(string_handle_createW) !=
494 ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createW), _init))) {
496 return ITTNOTIFY_NAME(string_handle_createW)(
name);
502 for (h_tail = NULL,
h = _N_(_ittapi_global).string_list;
h != NULL;
503 h_tail =
h,
h =
h->next) {
504 if (
h->strW != NULL && !wcscmp(
h->strW,
name))
514static __itt_string_handle *ITTAPI
515ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createA), _init))(
const char *
name)
517static __itt_string_handle *ITTAPI
518ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_create), _init))(
const char *
name)
521 __itt_string_handle *h_tail = NULL, *
h = NULL;
527 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
528 if (_N_(_ittapi_global).api_initialized) {
529#if ITT_PLATFORM == ITT_PLATFORM_WIN
530 if (ITTNOTIFY_NAME(string_handle_createA) &&
531 ITTNOTIFY_NAME(string_handle_createA) !=
532 ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createA), _init))) {
534 return ITTNOTIFY_NAME(string_handle_createA)(
name);
537 if (ITTNOTIFY_NAME(string_handle_create) &&
538 ITTNOTIFY_NAME(string_handle_create) !=
539 ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_create), _init))) {
542 return ITTNOTIFY_NAME(string_handle_create)(
name);
546#if ITT_PLATFORM == ITT_PLATFORM_WIN
555 for (h_tail = NULL,
h = _N_(_ittapi_global).string_list;
h != NULL;
556 h_tail =
h,
h =
h->next) {
568#if ITT_PLATFORM == ITT_PLATFORM_WIN
570 _N_(counter_createW), _init))(
const wchar_t *
name,
const wchar_t *
domain) {
578 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
579 if (_N_(_ittapi_global).api_initialized) {
580 if (ITTNOTIFY_NAME(counter_createW) &&
581 ITTNOTIFY_NAME(counter_createW) !=
582 ITT_VERSIONIZE(ITT_JOIN(_N_(counter_createW), _init))) {
584 return ITTNOTIFY_NAME(counter_createW)(
name,
domain);
590 for (h_tail = NULL,
h = _N_(_ittapi_global).counter_list;
h != NULL;
591 h_tail =
h,
h =
h->next) {
592 if (
h->nameW != NULL &&
h->type == (
int)
type && !wcscmp(
h->nameW,
name) &&
593 ((
h->domainW == NULL &&
domain == NULL) ||
594 (
h->domainW != NULL &&
domain != NULL && !wcscmp(
h->domainW,
domain))))
604static __itt_counter ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(counter_createA),
605 _init))(
const char *
name,
608static __itt_counter ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(counter_create),
609 _init))(
const char *
name,
620 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
621 if (_N_(_ittapi_global).api_initialized) {
622#if ITT_PLATFORM == ITT_PLATFORM_WIN
623 if (ITTNOTIFY_NAME(counter_createA) &&
624 ITTNOTIFY_NAME(counter_createA) !=
625 ITT_VERSIONIZE(ITT_JOIN(_N_(counter_createA), _init))) {
627 return ITTNOTIFY_NAME(counter_createA)(
name,
domain);
630 if (ITTNOTIFY_NAME(counter_create) &&
631 ITTNOTIFY_NAME(counter_create) !=
632 ITT_VERSIONIZE(ITT_JOIN(_N_(counter_create), _init))) {
635 return ITTNOTIFY_NAME(counter_create)(
name,
domain);
639#if ITT_PLATFORM == ITT_PLATFORM_WIN
648 for (h_tail = NULL,
h = _N_(_ittapi_global).counter_list;
h != NULL;
649 h_tail =
h,
h =
h->next) {
650 if (
h->nameA != NULL &&
h->type == (
int)
type &&
652 ((
h->domainA == NULL &&
domain == NULL) ||
653 (
h->domainA != NULL &&
domain != NULL &&
665#if ITT_PLATFORM == ITT_PLATFORM_WIN
675 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
676 if (_N_(_ittapi_global).api_initialized) {
687 for (h_tail = NULL,
h = _N_(_ittapi_global).counter_list;
h != NULL;
688 h_tail =
h,
h =
h->next) {
689 if (
h->nameW != NULL &&
h->type == (
int)
type && !wcscmp(
h->nameW,
name) &&
690 ((
h->domainW == NULL &&
domain == NULL) ||
691 (
h->domainW != NULL &&
domain != NULL && !wcscmp(
h->domainW,
domain))))
702 _N_(counter_create_typedA), _init))(
const char *
name,
const char *
domain,
706 _N_(counter_create_typed), _init))(
const char *
name,
const char *
domain,
716 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
717 if (_N_(_ittapi_global).api_initialized) {
718#if ITT_PLATFORM == ITT_PLATFORM_WIN
719 if (ITTNOTIFY_NAME(counter_create_typedA) &&
720 ITTNOTIFY_NAME(counter_create_typedA) !=
721 ITT_VERSIONIZE(ITT_JOIN(_N_(counter_create_typedA), _init))) {
726 if (ITTNOTIFY_NAME(counter_create_typed) &&
727 ITTNOTIFY_NAME(counter_create_typed) !=
728 ITT_VERSIONIZE(ITT_JOIN(_N_(counter_create_typed), _init))) {
735#if ITT_PLATFORM == ITT_PLATFORM_WIN
744 for (h_tail = NULL,
h = _N_(_ittapi_global).counter_list;
h != NULL;
745 h_tail =
h,
h =
h->next) {
746 if (
h->nameA != NULL &&
h->type == (
int)
type &&
748 ((
h->domainA == NULL &&
domain == NULL) ||
749 (
h->domainA != NULL &&
domain != NULL &&
761#if ITT_PLATFORM == ITT_PLATFORM_WIN
762static __itt_histogram *ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(histogram_createW),
766 __itt_histogram *h_tail = NULL, *
h = NULL;
772 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
773 if (_N_(_ittapi_global).api_initialized) {
774 if (ITTNOTIFY_NAME(histogram_createW) &&
775 ITTNOTIFY_NAME(histogram_createW) !=
776 ITT_VERSIONIZE(ITT_JOIN(_N_(histogram_createW), _init))) {
778 return ITTNOTIFY_NAME(histogram_createW)(
domain,
name, x_type, y_type);
784 for (h_tail = NULL,
h = _N_(_ittapi_global).histogram_list;
h != NULL;
785 h_tail =
h,
h =
h->next) {
786 if (
h->domain == NULL)
788 else if (
h->domain !=
domain &&
h->nameW != NULL && !wcscmp(
h->nameW,
name))
796 return (__itt_histogram *)
h;
799static __itt_histogram *ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(histogram_createA),
804static __itt_histogram *ITTAPI ITT_VERSIONIZE(ITT_JOIN(
805 _N_(histogram_create), _init))(
const __itt_domain *
domain,
const char *
name,
810 __itt_histogram *h_tail = NULL, *
h = NULL;
816 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
817 if (_N_(_ittapi_global).api_initialized) {
818#if ITT_PLATFORM == ITT_PLATFORM_WIN
819 if (ITTNOTIFY_NAME(histogram_createA) &&
820 ITTNOTIFY_NAME(histogram_createA) !=
821 ITT_VERSIONIZE(ITT_JOIN(_N_(histogram_createA), _init))) {
823 return ITTNOTIFY_NAME(histogram_createA)(
domain,
name, x_type, y_type);
826 if (ITTNOTIFY_NAME(histogram_create) &&
827 ITTNOTIFY_NAME(histogram_create) !=
828 ITT_VERSIONIZE(ITT_JOIN(_N_(histogram_create), _init))) {
831 return ITTNOTIFY_NAME(histogram_create)(
domain,
name, x_type, y_type);
835#if ITT_PLATFORM == ITT_PLATFORM_WIN
844 for (h_tail = NULL,
h = _N_(_ittapi_global).histogram_list;
h != NULL;
845 h_tail =
h,
h =
h->next) {
846 if (
h->domain == NULL)
848 else if (
h->domain !=
domain &&
h->nameA != NULL &&
858 return (__itt_histogram *)
h;
863static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(pause), _init))(
void) {
864 if (!_N_(_ittapi_global).api_initialized &&
865 _N_(_ittapi_global).thread_list == NULL) {
868 if (ITTNOTIFY_NAME(pause) &&
869 ITTNOTIFY_NAME(pause) != ITT_VERSIONIZE(ITT_JOIN(_N_(pause), _init))) {
870 ITTNOTIFY_NAME(pause)();
876static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(resume), _init))(
void) {
877 if (!_N_(_ittapi_global).api_initialized &&
878 _N_(_ittapi_global).thread_list == NULL) {
881 if (ITTNOTIFY_NAME(resume) &&
882 ITTNOTIFY_NAME(resume) != ITT_VERSIONIZE(ITT_JOIN(_N_(resume), _init))) {
883 ITTNOTIFY_NAME(resume)();
889#if ITT_PLATFORM == ITT_PLATFORM_WIN
890static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),
891 _init))(
const wchar_t *
name) {
892 if (!_N_(_ittapi_global).api_initialized &&
893 _N_(_ittapi_global).thread_list == NULL) {
896 if (ITTNOTIFY_NAME(thread_set_nameW) &&
897 ITTNOTIFY_NAME(thread_set_nameW) !=
898 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW), _init))) {
899 ITTNOTIFY_NAME(thread_set_nameW)(
name);
903static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_setW),
904 _init))(
const wchar_t *
name,
907 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW), _init))(
name);
911static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA),
912 _init))(
const char *
name)
914static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),
915 _init))(
const char *
name)
918 if (!_N_(_ittapi_global).api_initialized &&
919 _N_(_ittapi_global).thread_list == NULL) {
922#if ITT_PLATFORM == ITT_PLATFORM_WIN
923 if (ITTNOTIFY_NAME(thread_set_nameA) &&
924 ITTNOTIFY_NAME(thread_set_nameA) !=
925 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA), _init))) {
926 ITTNOTIFY_NAME(thread_set_nameA)(
name);
929 if (ITTNOTIFY_NAME(thread_set_name) &&
930 ITTNOTIFY_NAME(thread_set_name) !=
931 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name), _init))) {
932 ITTNOTIFY_NAME(thread_set_name)(
name);
937#if ITT_PLATFORM == ITT_PLATFORM_WIN
938static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_setA),
939 _init))(
const char *
name,
942 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameA), _init))(
name);
946static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_set),
947 _init))(
const char *
name,
950 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name), _init))(
name);
955static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore), _init))(
void) {
956 if (!_N_(_ittapi_global).api_initialized &&
957 _N_(_ittapi_global).thread_list == NULL) {
960 if (ITTNOTIFY_NAME(thread_ignore) &&
961 ITTNOTIFY_NAME(thread_ignore) !=
962 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore), _init))) {
963 ITTNOTIFY_NAME(thread_ignore)();
967static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_ignore), _init))(
void) {
968 ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore), _init))();
971static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(enable_attach), _init))(
void) {
977 setenv(
ITT_TO_STR(LIB_VAR_NAME), ANDROID_ITTNOTIFY_DEFAULT_PATH, 0);
983static const char *__itt_fsplit(
const char *
s,
const char *sep,
984 const char **out,
int *len) {
988 if (!
s || !sep || !out || !len)
991 for (
i = 0;
s[
i];
i++) {
993 for (
j = 0; sep[
j];
j++)
994 if (
s[
i] == sep[
j]) {
1008 for (;
s[
i];
i++, (*len)++) {
1010 for (
j = 0; sep[
j];
j++)
1011 if (
s[
i] == sep[
j]) {
1021 for (
j = 0; sep[
j];
j++)
1022 if (
s[
i] == sep[
j]) {
1038static const char *__itt_get_env_var(
const char *
name) {
1039#define MAX_ENV_VALUE_SIZE 4086
1040 static char env_buff[MAX_ENV_VALUE_SIZE];
1041 static char *env_value = (
char *)env_buff;
1044#if ITT_PLATFORM == ITT_PLATFORM_WIN
1045 size_t max_len = MAX_ENV_VALUE_SIZE - (size_t)(env_value - env_buff);
1046 DWORD rc = GetEnvironmentVariableA(
name, env_value, (DWORD)max_len);
1048 __itt_report_error(__itt_error_env_too_long,
name, (
size_t)rc - 1,
1049 (
size_t)(max_len - 1));
1051 const char *
ret = (
const char *)env_value;
1052 env_value += rc + 1;
1058 DWORD
err = GetLastError();
1059 if (
err == ERROR_SUCCESS)
1062 if (
err != ERROR_ENVVAR_NOT_FOUND)
1063 __itt_report_error(__itt_error_cant_read_env,
name, (
int)
err);
1066 char *env = getenv(
name);
1069 size_t max_len = MAX_ENV_VALUE_SIZE - (size_t)(env_value - env_buff);
1070 if (len < max_len) {
1071 const char *
ret = (
const char *)env_value;
1073 env_value += len + 1;
1076 __itt_report_error(__itt_error_env_too_long,
name, (
size_t)len,
1077 (
size_t)(max_len - 1));
1084static const char *__itt_get_lib_name(
void) {
1085 const char *lib_name = __itt_get_env_var(
ITT_TO_STR(LIB_VAR_NAME));
1088 if (lib_name == NULL) {
1090#if ITT_ARCH == ITT_ARCH_IA32 || ITT_ARCH == ITT_ARCH_ARM
1091 const char *
const marker_filename =
"com.intel.itt.collector_lib_32";
1093 const char *
const marker_filename =
"com.intel.itt.collector_lib_64";
1096 char system_wide_marker_filename[
PATH_MAX] = {0};
1097 int itt_marker_file_fd = -1;
1100 res = snprintf(system_wide_marker_filename,
PATH_MAX - 1,
"%s%s",
1101 "/data/local/tmp/", marker_filename);
1103 ITT_ANDROID_LOGE(
"Unable to concatenate marker file string.");
1106 itt_marker_file_fd = open(system_wide_marker_filename, O_RDONLY);
1108 if (itt_marker_file_fd == -1) {
1109 const pid_t my_pid = getpid();
1112 char app_sandbox_file[
PATH_MAX] = {0};
1115 ITT_ANDROID_LOGI(
"Unable to open system-wide marker file.");
1116 res = snprintf(cmdline_path,
PATH_MAX - 1,
"/proc/%d/cmdline", my_pid);
1118 ITT_ANDROID_LOGE(
"Unable to get cmdline path string.");
1122 ITT_ANDROID_LOGI(
"CMD file: %s\n", cmdline_path);
1123 cmdline_fd = open(cmdline_path, O_RDONLY);
1124 if (cmdline_fd == -1) {
1125 ITT_ANDROID_LOGE(
"Unable to open %s file!", cmdline_path);
1128 res = read(cmdline_fd, package_name,
PATH_MAX - 1);
1130 ITT_ANDROID_LOGE(
"Unable to read %s file!", cmdline_path);
1131 res = close(cmdline_fd);
1133 ITT_ANDROID_LOGE(
"Unable to close %s file!", cmdline_path);
1137 res = close(cmdline_fd);
1139 ITT_ANDROID_LOGE(
"Unable to close %s file!", cmdline_path);
1142 ITT_ANDROID_LOGI(
"Package name: %s\n", package_name);
1143 res = snprintf(app_sandbox_file,
PATH_MAX - 1,
"/data/data/%s/%s",
1144 package_name, marker_filename);
1146 ITT_ANDROID_LOGE(
"Unable to concatenate marker file string.");
1150 ITT_ANDROID_LOGI(
"Lib marker file name: %s\n", app_sandbox_file);
1151 itt_marker_file_fd = open(app_sandbox_file, O_RDONLY);
1152 if (itt_marker_file_fd == -1) {
1153 ITT_ANDROID_LOGE(
"Unable to open app marker file!");
1161 res = read(itt_marker_file_fd, itt_lib_name,
PATH_MAX - 1);
1163 ITT_ANDROID_LOGE(
"Unable to read %s file!", itt_marker_file_fd);
1164 res = close(itt_marker_file_fd);
1166 ITT_ANDROID_LOGE(
"Unable to close %s file!", itt_marker_file_fd);
1170 ITT_ANDROID_LOGI(
"ITT Lib path: %s", itt_lib_name);
1171 res = close(itt_marker_file_fd);
1173 ITT_ANDROID_LOGE(
"Unable to close %s file!", itt_marker_file_fd);
1176 ITT_ANDROID_LOGI(
"Set env %s to %s",
ITT_TO_STR(LIB_VAR_NAME),
1180 ITT_ANDROID_LOGE(
"Unable to set env var!");
1183 lib_name = __itt_get_env_var(
ITT_TO_STR(LIB_VAR_NAME));
1184 ITT_ANDROID_LOGI(
"ITT Lib path from env: %s", lib_name);
1193#define __itt_min(a, b) ((a) < (b) ? (a) : (b))
1198 const char *var_name =
"INTEL_ITTNOTIFY_GROUPS";
1199 const char *group_str = __itt_get_env_var(var_name);
1201 if (group_str != NULL) {
1205 while ((group_str = __itt_fsplit(group_str,
",; ", &chunk, &len)) != NULL) {
1206 int min_len = __itt_min(len, (
int)(
sizeof(gr) - 1));
1210 for (
i = 0; group_list[
i].name != NULL;
i++) {
1227 for (
i = 0; group_alias[
i].env_var != NULL;
i++)
1228 if (__itt_get_env_var(group_alias[
i].env_var) != NULL)
1229 return group_alias[
i].groups;
1237static int __itt_lib_version(
lib_t lib) {
1258static void __itt_nullify_all_pointers(
void) {
1262 for (
i = 0; _N_(_ittapi_global).api_list_ptr[
i].name != NULL;
i++)
1263 *_N_(_ittapi_global).api_list_ptr[
i].func_ptr =
1264 _N_(_ittapi_global).api_list_ptr[
i].null_func;
1267#if ITT_PLATFORM == ITT_PLATFORM_WIN
1269#pragma warning(push)
1270#pragma warning(disable : 4054)
1279 __itt_api_fini_t *__itt_api_fini_ptr = NULL;
1280 static volatile TIDT current_thread = 0;
1282 if (_N_(_ittapi_global).api_initialized) {
1283 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
1284 if (_N_(_ittapi_global).api_initialized) {
1285 if (current_thread == 0) {
1288 if (_N_(_ittapi_global).lib != NULL) {
1290 _N_(_ittapi_global).lib,
"__itt_api_fini");
1292 if (__itt_api_fini_ptr) {
1293 __itt_api_fini_ptr(&_N_(_ittapi_global));
1296 __itt_nullify_all_pointers();
1303 _N_(_ittapi_global).api_initialized = 0;
1313static void __itt_free_allocated_resources(
void) {
1314 __itt_string_handle *current_string = _N_(_ittapi_global).string_list;
1315 while (current_string != NULL) {
1316 __itt_string_handle *tmp = current_string->next;
1317 free((
char *)current_string->strA);
1318#if ITT_PLATFORM == ITT_PLATFORM_WIN
1319 free((
wchar_t *)current_string->strW);
1321 free(current_string);
1322 current_string = tmp;
1324 _N_(_ittapi_global).string_list = NULL;
1326 __itt_domain *current_domain = _N_(_ittapi_global).domain_list;
1327 while (current_domain != NULL) {
1328 __itt_domain *tmp = current_domain->next;
1329 free((
char *)current_domain->nameA);
1330#if ITT_PLATFORM == ITT_PLATFORM_WIN
1331 free((
wchar_t *)current_domain->nameW);
1333 free(current_domain);
1334 current_domain = tmp;
1336 _N_(_ittapi_global).domain_list = NULL;
1339 while (current_couter != NULL) {
1341 free((
char *)current_couter->
nameA);
1342 free((
char *)current_couter->
domainA);
1343#if ITT_PLATFORM == ITT_PLATFORM_WIN
1344 free((
wchar_t *)current_couter->
nameW);
1345 free((
wchar_t *)current_couter->
domainW);
1347 free(current_couter);
1348 current_couter = tmp;
1350 _N_(_ittapi_global).counter_list = NULL;
1352 __itt_histogram *current_histogram = _N_(_ittapi_global).histogram_list;
1353 while (current_histogram != NULL) {
1354 __itt_histogram *tmp = current_histogram->
next;
1355 free((
char *)current_histogram->nameA);
1356#if ITT_PLATFORM == ITT_PLATFORM_WIN
1357 free((
wchar_t *)current_histogram->nameW);
1359 free(current_histogram);
1360 current_histogram = tmp;
1362 _N_(_ittapi_global).histogram_list = NULL;
1369#ifdef ITT_COMPLETE_GROUP
1372 static volatile TIDT current_thread = 0;
1374 if (!_N_(_ittapi_global).api_initialized) {
1375#ifndef ITT_SIMPLE_INIT
1376 ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
1379 if (!_N_(_ittapi_global).api_initialized) {
1380 if (current_thread == 0) {
1383 if (lib_name == NULL) {
1384 lib_name = __itt_get_lib_name();
1386 groups = __itt_get_groups();
1389 (lib_name == NULL) ? ittnotify_lib_name : lib_name);
1391 if (_N_(_ittapi_global).lib != NULL) {
1392 __itt_api_init_t *__itt_api_init_ptr;
1393 int lib_version = __itt_lib_version(_N_(_ittapi_global).lib);
1395 switch (lib_version) {
1398 ITT_ATTRIBUTE_FALLTHROUGH;
1401 for (
i = 0; _N_(_ittapi_global).api_list_ptr[
i].name != NULL;
1403 if (_N_(_ittapi_global).api_list_ptr[
i].group & groups &
1405 *_N_(_ittapi_global).api_list_ptr[
i].func_ptr =
1407 _N_(_ittapi_global).lib,
1408 _N_(_ittapi_global).api_list_ptr[
i].name);
1409 if (*_N_(_ittapi_global).api_list_ptr[
i].func_ptr == NULL) {
1412 *_N_(_ittapi_global).api_list_ptr[
i].func_ptr =
1413 _N_(_ittapi_global).api_list_ptr[
i].null_func;
1415 __itt_error_no_symbol, lib_name,
1416 _N_(_ittapi_global).api_list_ptr[
i].
name);
1417#ifdef ITT_COMPLETE_GROUP
1425 *_N_(_ittapi_global).api_list_ptr[
i].func_ptr =
1426 _N_(_ittapi_global).api_list_ptr[
i].null_func;
1431 ITTNOTIFY_NAME(thread_ignore) = ITTNOTIFY_NAME(thr_ignore);
1432#if ITT_PLATFORM == ITT_PLATFORM_WIN
1433 ITTNOTIFY_NAME(
sync_createA) = ITTNOTIFY_NAME(sync_set_nameA);
1436 ITTNOTIFY_NAME(sync_create) = ITTNOTIFY_NAME(sync_set_name);
1438 ITTNOTIFY_NAME(sync_prepare) =
1439 ITTNOTIFY_NAME(notify_sync_prepare);
1442 ITTNOTIFY_NAME(sync_acquired) =
1443 ITTNOTIFY_NAME(notify_sync_acquired);
1448#ifdef ITT_COMPLETE_GROUP
1449 for (
i = 0; _N_(_ittapi_global).api_list_ptr[
i].name != NULL;
i++)
1450 if (_N_(_ittapi_global).api_list_ptr[
i].group & zero_group)
1451 *_N_(_ittapi_global).api_list_ptr[
i].func_ptr =
1452 _N_(_ittapi_global).api_list_ptr[
i].null_func;
1457 _N_(_ittapi_global).lib,
"__itt_api_init");
1458 if (__itt_api_init_ptr)
1459 __itt_api_init_ptr(&_N_(_ittapi_global), init_groups);
1463 __itt_free_allocated_resources();
1464 __itt_nullify_all_pointers();
1466 __itt_report_error(__itt_error_no_module, lib_name,
1467#
if ITT_PLATFORM == ITT_PLATFORM_WIN
1475 __itt_free_allocated_resources();
1476 __itt_nullify_all_pointers();
1478 _N_(_ittapi_global).api_initialized = 1;
1481 if (__itt_fini_ittlib_ptr == _N_(fini_ittlib))
1486#ifndef ITT_SIMPLE_INIT
1493 for (
i = 0; _N_(_ittapi_global).api_list_ptr[
i].name != NULL;
i++) {
1494 if (*_N_(_ittapi_global).api_list_ptr[
i].func_ptr !=
1495 _N_(_ittapi_global).api_list_ptr[
i].null_func &&
1496 _N_(_ittapi_global).api_list_ptr[
i].group & init_groups) {
1504_N_(set_error_handler)(__itt_error_handler_t *handler) {
1505 __itt_error_handler_t *prev =
1506 (__itt_error_handler_t *)(
size_t)_N_(_ittapi_global).error_handler;
1507 _N_(_ittapi_global).error_handler = (
void *)(
size_t)handler;
1511#if ITT_PLATFORM == ITT_PLATFORM_WIN
1521#if defined(ITT_API_IPT_SUPPORT) && \
1522 (ITT_PLATFORM == ITT_PLATFORM_WIN || \
1523 ITT_PLATFORM == ITT_PLATFORM_POSIX) && \
1524 !defined(__ANDROID__)
1530#if defined(ITT_API_IPT_SUPPORT) && \
1531 (ITT_PLATFORM == ITT_PLATFORM_WIN || \
1532 ITT_PLATFORM == ITT_PLATFORM_POSIX) && \
1533 !defined(__ANDROID__)
1534 if (_N_(_ittapi_global).ipt_collect_events == 1) {
1535 __itt_pt_mark_event(2 * region);
1537 __itt_pt_mark(2 * region);
1545#if defined(ITT_API_IPT_SUPPORT) && \
1546 (ITT_PLATFORM == ITT_PLATFORM_WIN || \
1547 ITT_PLATFORM == ITT_PLATFORM_POSIX) && \
1548 !defined(__ANDROID__)
1549 if (_N_(_ittapi_global).ipt_collect_events == 1) {
1550 __itt_pt_mark_event(2 * region + 1);
1552 __itt_pt_mark(2 * region + 1);
unsigned char __itt_pt_region
__itt_string_handle * name
const __itt_domain * domain
#define __itt_fstrcmp(s1, s2)
#define MUTEX_INITIALIZER
#define NEW_DOMAIN_W(gptr, h, h_tail, name)
@ __itt_collection_paused
@ __itt_collection_normal
#define __itt_mutex_unlock(mutex)
#define API_VERSION_BUILD
#define __itt_thread_id()
#define __itt_get_proc(lib, name)
#define NEW_HISTOGRAM_A(gptr, h, h_tail, domain, name, x_type, y_type)
#define __itt_fstrnlen(s, l)
#define __itt_system_error()
#define NEW_COUNTER_A(gptr, h, h_tail, name, domain, type)
#define NEW_STRING_HANDLE_A(gptr, h, h_tail, name)
#define NEW_DOMAIN_A(gptr, h, h_tail, name)
#define NEW_HISTOGRAM_W(gptr, h, h_tail, domain, name, x_type, y_type)
#define NEW_COUNTER_W(gptr, h, h_tail, name, domain, type)
#define __itt_load_lib(name)
#define NEW_STRING_HANDLE_W(gptr, h, h_tail, name)
#define __itt_fstrcpyn(s1, b, s2, l)
void const char const char int ITT_FORMAT __itt_group_sync s
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event ITT_FORMAT __itt_group_mark d sync_set_nameW
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p sync_cancel
void const char const char int ITT_FORMAT __itt_group_sync __itt_group_fsync
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event ITT_FORMAT __itt_group_mark d void const wchar_t const wchar_t int ITT_FORMAT __itt_group_sync __itt_group_fsync x void const wchar_t int const wchar_t int int ITT_FORMAT __itt_group_sync __itt_group_fsync x notify_sync_cancel
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p __itt_group_suppress
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int namelen
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT __itt_group_sync
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark __itt_group_legacy
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event ITT_FORMAT __itt_group_mark d void const wchar_t const wchar_t int ITT_FORMAT __itt_group_sync __itt_group_fsync x void const wchar_t int const wchar_t int int ITT_FORMAT __itt_group_sync __itt_group_fsync x void ITT_FORMAT __itt_group_sync __itt_group_fsync p void ITT_FORMAT __itt_group_sync __itt_group_fsync p void size_t ITT_FORMAT lu no args __itt_obj_prop_t __itt_obj_state_t ITT_FORMAT d const char ITT_FORMAT s const char ITT_FORMAT s __itt_frame ITT_FORMAT p __itt_counter ITT_FORMAT p __itt_counter unsigned long long ITT_FORMAT lu __itt_counter unsigned long long ITT_FORMAT lu __itt_counter __itt_clock_domain unsigned long long void ITT_FORMAT p const wchar_t ITT_FORMAT __itt_group_mark
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event ITT_FORMAT __itt_group_mark d void const wchar_t const wchar_t int ITT_FORMAT __itt_group_sync __itt_group_fsync x void const wchar_t int const wchar_t int int ITT_FORMAT __itt_group_sync __itt_group_fsync x void ITT_FORMAT __itt_group_sync __itt_group_fsync p notify_sync_releasing
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p sync_releasing
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d int
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function h
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type type
@ __itt_group_splitter_max
@ __itt_group_splitter_min
#define ITT_GROUP_LIST(varname)
enum ___itt_group_id __itt_group_id
Legacy User API functions and types.
const char * nameA
Copy of original name in ASCII.
struct __itt_counter_info * next
const char * domainA
Copy of original name in ASCII.