23 #if ITT_PLATFORM==ITT_PLATFORM_WIN 35 #define INTEL_NO_MACRO_BODY 36 #define INTEL_ITTNOTIFY_API_PRIVATE 44 #define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n) 46 #if ITT_OS==ITT_OS_WIN 48 #elif ITT_OS==ITT_OS_LINUX || ITT_OS==ITT_OS_FREEBSD 50 #elif ITT_OS==ITT_OS_MAC 53 #error Unsupported or unknown OS. 57 #include <android/log.h> 60 #include <sys/types.h> 63 #include <linux/limits.h> 65 #ifdef ITT_ANDROID_LOG 66 #define ITT_ANDROID_LOG_TAG "INTEL_VTUNE_USERAPI" 67 #define ITT_ANDROID_LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 68 #define ITT_ANDROID_LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 69 #define ITT_ANDROID_LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR,ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 70 #define ITT_ANDROID_LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG,ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 72 #define ITT_ANDROID_LOGI(...) 73 #define ITT_ANDROID_LOGW(...) 74 #define ITT_ANDROID_LOGE(...) 75 #define ITT_ANDROID_LOGD(...) 79 #define ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(x) "/data/data/com.intel.vtune/perfrun/lib" \ 80 #x "/runtime/libittnotify.so" 82 #if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM 83 #define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(32) 85 #define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(64) 92 #if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM 93 #define LIB_VAR_NAME INTEL_LIBITTNOTIFY32 95 #define LIB_VAR_NAME INTEL_LIBITTNOTIFY64 99 #define ITT_MUTEX_INIT_AND_LOCK(p) { \ 100 if (!p.mutex_initialized) \ 102 if (__itt_interlocked_increment(&p.atomic_counter) == 1) \ 104 __itt_mutex_init(&p.mutex); \ 105 p.mutex_initialized = 1; \ 108 while (!p.mutex_initialized) \ 109 __itt_thread_yield(); \ 111 __itt_mutex_lock(&p.mutex); \ 114 const int _N_(err) = 0;
119 #ifndef __itt_init_ittlib_name 122 #define __itt_init_ittlib_name __itt_init_ittlib_ptr 128 #ifndef __itt_fini_ittlib_name 131 #define __itt_fini_ittlib_name __itt_fini_ittlib_ptr 137 #define ITT_STUB(api,type,name,args,params,ptr,group,format) \ 138 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 139 typedef type api ITT_JOIN(_N_(name),_t) args; \ 140 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END \ 141 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ 143 __itt_init_ittlib_name(NULL, __itt_group_all); \ 144 if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \ 145 return ITTNOTIFY_NAME(name) params; \ 150 #define ITT_STUBV(api,type,name,args,params,ptr,group,format) \ 151 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 152 typedef type api ITT_JOIN(_N_(name),_t) args; \ 153 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END \ 154 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ 156 __itt_init_ittlib_name(NULL, __itt_group_all); \ 157 if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \ 158 ITTNOTIFY_NAME(name) params; \ 163 #undef __ITT_INTERNAL_INIT 168 #define ITT_STUB(api,type,name,args,params,ptr,group,format) \ 169 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 170 typedef type api ITT_JOIN(_N_(name),_t) args; \ 171 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END 173 #define ITT_STUBV(api,type,name,args,params,ptr,group,format) \ 174 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 175 typedef type api ITT_JOIN(_N_(name),_t) args; \ 176 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END 178 #define __ITT_INTERNAL_INIT 180 #undef __ITT_INTERNAL_INIT 184 #pragma pack(push, 8) 201 #if ITT_PLATFORM==ITT_PLATFORM_WIN 202 #pragma warning(push) 203 #pragma warning(disable: 4054) 210 #define ITT_STUB(api,type,name,args,params,nameindll,group,format) { ITT_TO_STR(ITT_JOIN(__itt_,nameindll)), (void**)(void*)&ITTNOTIFY_NAME(name), (void*)(size_t)&ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)), (void*)(size_t)&ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)), (__itt_group_id)(group)}, 211 #define ITT_STUBV ITT_STUB 212 #define __ITT_INTERNAL_INIT 214 #undef __ITT_INTERNAL_INIT 218 #define ITT_STUB(api,type,name,args,params,nameindll,group,format) {ITT_TO_STR(ITT_JOIN(__itt_,nameindll)), (void**)(void*)&ITTNOTIFY_NAME(name), (void*)(size_t)&ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)), NULL, (__itt_group_id)(group)}, 219 #define ITT_STUBV ITT_STUB 224 #if ITT_PLATFORM==ITT_PLATFORM_WIN 254 #ifdef ITT_NOTIFY_EXT_REPORT 258 #if ITT_PLATFORM==ITT_PLATFORM_WIN 259 #pragma warning(push) 260 #pragma warning(disable: 4055) 265 va_start(args, code);
266 if (
_N_(_ittapi_global).error_handler != NULL)
268 __itt_error_handler_t* handler = (__itt_error_handler_t*)(
size_t)
_N_(_ittapi_global).error_handler;
269 handler((__itt_error_code)code, args);
271 #ifdef ITT_NOTIFY_EXT_REPORT 272 _N_(error_handler)(code, args);
278 #define __itt_report_error(code, ...) \ 279 __itt_report_error_impl((int)code,__VA_ARGS__) 282 #if ITT_PLATFORM==ITT_PLATFORM_WIN 286 #if ITT_PLATFORM==ITT_PLATFORM_WIN 289 __itt_domain *h_tail = NULL, *
h = NULL;
297 if (
_N_(_ittapi_global).api_initialized)
299 if (ITTNOTIFY_NAME(domain_createW) && ITTNOTIFY_NAME(domain_createW) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(domain_createW),_init)))
302 return ITTNOTIFY_NAME(domain_createW)(
name);
305 for (h_tail = NULL,
h =
_N_(_ittapi_global).domain_list;
h != NULL; h_tail =
h,
h =
h->next)
307 if (
h->nameW != NULL && !wcscmp(
h->nameW,
name))
break;
322 __itt_domain *h_tail = NULL, *
h = NULL;
330 if (
_N_(_ittapi_global).api_initialized)
332 #if ITT_PLATFORM==ITT_PLATFORM_WIN 333 if (ITTNOTIFY_NAME(domain_createA) && ITTNOTIFY_NAME(domain_createA) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(domain_createA),_init)))
336 return ITTNOTIFY_NAME(domain_createA)(
name);
339 if (ITTNOTIFY_NAME(domain_create) && ITTNOTIFY_NAME(domain_create) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(domain_create),_init)))
342 return ITTNOTIFY_NAME(domain_create)(
name);
346 for (h_tail = NULL,
h =
_N_(_ittapi_global).domain_list;
h != NULL; h_tail =
h,
h =
h->next)
358 #if ITT_PLATFORM==ITT_PLATFORM_WIN 361 __itt_string_handle *h_tail = NULL, *
h = NULL;
369 if (
_N_(_ittapi_global).api_initialized)
371 if (ITTNOTIFY_NAME(string_handle_createW) && ITTNOTIFY_NAME(string_handle_createW) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_createW),_init)))
374 return ITTNOTIFY_NAME(string_handle_createW)(
name);
377 for (h_tail = NULL,
h =
_N_(_ittapi_global).string_list;
h != NULL; h_tail =
h,
h =
h->next)
379 if (
h->strW != NULL && !wcscmp(
h->strW,
name))
break;
391 static __itt_string_handle* ITTAPI
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_create),_init))(
const char*
name)
394 __itt_string_handle *h_tail = NULL, *
h = NULL;
402 if (
_N_(_ittapi_global).api_initialized)
404 #if ITT_PLATFORM==ITT_PLATFORM_WIN 405 if (ITTNOTIFY_NAME(string_handle_createA) && ITTNOTIFY_NAME(string_handle_createA) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_createA),_init)))
408 return ITTNOTIFY_NAME(string_handle_createA)(
name);
411 if (ITTNOTIFY_NAME(string_handle_create) && ITTNOTIFY_NAME(string_handle_create) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_create),_init)))
414 return ITTNOTIFY_NAME(string_handle_create)(
name);
418 for (h_tail = NULL,
h =
_N_(_ittapi_global).string_list;
h != NULL; h_tail =
h,
h =
h->next)
434 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
440 ITTNOTIFY_NAME(
pause)();
450 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
454 if (ITTNOTIFY_NAME(resume) && ITTNOTIFY_NAME(resume) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(resume),_init)))
456 ITTNOTIFY_NAME(resume)();
464 #if ITT_PLATFORM==ITT_PLATFORM_WIN 467 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
471 if (ITTNOTIFY_NAME(thread_set_nameW) && ITTNOTIFY_NAME(thread_set_nameW) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_set_nameW),_init)))
473 ITTNOTIFY_NAME(thread_set_nameW)(
name);
489 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
493 #if ITT_PLATFORM==ITT_PLATFORM_WIN 494 if (ITTNOTIFY_NAME(thread_set_nameA) && ITTNOTIFY_NAME(thread_set_nameA) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_set_nameA),_init)))
496 ITTNOTIFY_NAME(thread_set_nameA)(
name);
499 if (ITTNOTIFY_NAME(thread_set_name) && ITTNOTIFY_NAME(thread_set_name) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_set_name),_init)))
501 ITTNOTIFY_NAME(thread_set_name)(
name);
506 #if ITT_PLATFORM==ITT_PLATFORM_WIN 524 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
528 if (ITTNOTIFY_NAME(thread_ignore) && ITTNOTIFY_NAME(thread_ignore) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_ignore),_init)))
530 ITTNOTIFY_NAME(thread_ignore)();
552 static const char*
__itt_fsplit(
const char*
s,
const char* sep,
const char** out,
int* len)
557 if (!
s || !sep || !out || !len)
560 for (i = 0;
s[i]; i++)
563 for (j = 0; sep[j]; j++)
579 for (;
s[i]; i++, (*len)++)
582 for (j = 0; sep[j]; j++)
595 for (j = 0; sep[j]; j++)
615 #define MAX_ENV_VALUE_SIZE 4086 617 static char* env_value = (
char*)env_buff;
621 #if ITT_PLATFORM==ITT_PLATFORM_WIN 623 DWORD rc = GetEnvironmentVariableA(
name, env_value, (DWORD)max_len);
628 const char* ret = (
const char*)env_value;
637 DWORD err = GetLastError();
638 if (err == ERROR_SUCCESS)
641 if (err != ERROR_ENVVAR_NOT_FOUND)
645 char* env = getenv(
name);
652 const char* ret = (
const char*)env_value;
654 env_value += len + 1;
669 if (lib_name == NULL)
672 #if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM 673 const char*
const marker_filename =
"com.intel.itt.collector_lib_32";
675 const char*
const marker_filename =
"com.intel.itt.collector_lib_64";
678 char system_wide_marker_filename[
PATH_MAX] = {0};
679 int itt_marker_file_fd = -1;
682 res = snprintf(system_wide_marker_filename,
PATH_MAX - 1,
"%s%s",
"/data/local/tmp/", marker_filename);
685 ITT_ANDROID_LOGE(
"Unable to concatenate marker file string.");
688 itt_marker_file_fd = open(system_wide_marker_filename, O_RDONLY);
690 if (itt_marker_file_fd == -1)
692 const pid_t my_pid = getpid();
695 char app_sandbox_file[
PATH_MAX] = {0};
698 ITT_ANDROID_LOGI(
"Unable to open system-wide marker file.");
699 res = snprintf(cmdline_path,
PATH_MAX - 1,
"/proc/%d/cmdline", my_pid);
702 ITT_ANDROID_LOGE(
"Unable to get cmdline path string.");
706 ITT_ANDROID_LOGI(
"CMD file: %s\n", cmdline_path);
707 cmdline_fd = open(cmdline_path, O_RDONLY);
708 if (cmdline_fd == -1)
710 ITT_ANDROID_LOGE(
"Unable to open %s file!", cmdline_path);
713 res = read(cmdline_fd, package_name,
PATH_MAX - 1);
716 ITT_ANDROID_LOGE(
"Unable to read %s file!", cmdline_path);
717 res = close(cmdline_fd);
720 ITT_ANDROID_LOGE(
"Unable to close %s file!", cmdline_path);
724 res = close(cmdline_fd);
727 ITT_ANDROID_LOGE(
"Unable to close %s file!", cmdline_path);
730 ITT_ANDROID_LOGI(
"Package name: %s\n", package_name);
731 res = snprintf(app_sandbox_file,
PATH_MAX - 1,
"/data/data/%s/%s", package_name, marker_filename);
734 ITT_ANDROID_LOGE(
"Unable to concatenate marker file string.");
738 ITT_ANDROID_LOGI(
"Lib marker file name: %s\n", app_sandbox_file);
739 itt_marker_file_fd = open(app_sandbox_file, O_RDONLY);
740 if (itt_marker_file_fd == -1)
742 ITT_ANDROID_LOGE(
"Unable to open app marker file!");
750 res = read(itt_marker_file_fd, itt_lib_name,
PATH_MAX - 1);
753 ITT_ANDROID_LOGE(
"Unable to read %s file!", itt_marker_file_fd);
754 res = close(itt_marker_file_fd);
757 ITT_ANDROID_LOGE(
"Unable to close %s file!", itt_marker_file_fd);
761 ITT_ANDROID_LOGI(
"ITT Lib path: %s", itt_lib_name);
762 res = close(itt_marker_file_fd);
765 ITT_ANDROID_LOGE(
"Unable to close %s file!", itt_marker_file_fd);
772 ITT_ANDROID_LOGE(
"Unable to set env var!");
776 ITT_ANDROID_LOGI(
"ITT Lib path from env: %s", lib_name);
785 #define __itt_min(a,b) ((a) < (b) ? (a) : (b)) 791 const char* var_name =
"INTEL_ITTNOTIFY_GROUPS";
794 if (group_str != NULL)
799 while ((group_str =
__itt_fsplit(group_str,
",; ", &chunk, &len)) != NULL)
802 gr[
__itt_min(len, (
int)(
sizeof(gr) - 1))] = 0;
804 for (i = 0; group_list[i].name != NULL; i++)
859 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
860 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
863 #if ITT_PLATFORM==ITT_PLATFORM_WIN 864 #pragma warning(push) 865 #pragma warning(disable: 4054) 866 #pragma warning(disable: 4055) 872 static volatile TIDT current_thread = 0;
874 if (
_N_(_ittapi_global).api_initialized)
877 if (
_N_(_ittapi_global).api_initialized)
879 if (current_thread == 0)
882 if (
_N_(_ittapi_global).lib != NULL)
886 if (__itt_api_fini_ptr)
888 __itt_api_fini_ptr(&
_N_(_ittapi_global));
898 _N_(_ittapi_global).api_initialized = 0;
910 #ifdef ITT_COMPLETE_GROUP 913 static volatile TIDT current_thread = 0;
915 if (!
_N_(_ittapi_global).api_initialized)
917 #ifndef ITT_SIMPLE_INIT 921 if (!
_N_(_ittapi_global).api_initialized)
923 if (current_thread == 0)
926 if (lib_name == NULL)
935 if (
_N_(_ittapi_global).lib != NULL)
940 switch (lib_version) {
946 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
948 if (
_N_(_ittapi_global).api_list_ptr[i].group & groups & init_groups)
950 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr = (
void*)
__itt_get_proc(
_N_(_ittapi_global).lib,
_N_(_ittapi_global).api_list_ptr[i].name);
951 if (*
_N_(_ittapi_global).api_list_ptr[i].func_ptr == NULL)
954 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
956 #ifdef ITT_COMPLETE_GROUP 957 zero_group = (
__itt_group_id)(zero_group |
_N_(_ittapi_global).api_list_ptr[i].group);
962 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
968 ITTNOTIFY_NAME(thread_ignore) = ITTNOTIFY_NAME(thr_ignore);
969 #if ITT_PLATFORM==ITT_PLATFORM_WIN 970 ITTNOTIFY_NAME(
sync_createA) = ITTNOTIFY_NAME(sync_set_nameA);
973 ITTNOTIFY_NAME(sync_create) = ITTNOTIFY_NAME(sync_set_name);
975 ITTNOTIFY_NAME(sync_prepare) = ITTNOTIFY_NAME(notify_sync_prepare);
977 ITTNOTIFY_NAME(sync_acquired) = ITTNOTIFY_NAME(notify_sync_acquired);
981 #ifdef ITT_COMPLETE_GROUP 982 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
983 if (
_N_(_ittapi_global).api_list_ptr[i].group & zero_group)
984 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
989 if (__itt_api_init_ptr)
990 __itt_api_init_ptr(&
_N_(_ittapi_global), init_groups);
997 #if ITT_PLATFORM==ITT_PLATFORM_WIN 1000 const char* error = dlerror();
1009 _N_(_ittapi_global).api_initialized = 1;
1016 #ifndef ITT_SIMPLE_INIT 1022 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
1024 if (*
_N_(_ittapi_global).api_list_ptr[i].func_ptr !=
_N_(_ittapi_global).api_list_ptr[i].null_func &&
1025 _N_(_ittapi_global).api_list_ptr[i].group & init_groups)
1035 __itt_error_handler_t* prev = (__itt_error_handler_t*)(
size_t)
_N_(_ittapi_global).error_handler;
1036 _N_(_ittapi_global).error_handler = (
void*)(
size_t)handler;
1040 #if ITT_PLATFORM==ITT_PLATFORM_WIN 1041 #pragma warning(pop) #define __itt_load_lib(name)
static __itt_group_id __itt_get_groups(void)
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
static const char api_version[]
#define __itt_report_error(code,...)
ITT_EXTERN_C int _N_() init_ittlib(const char *, __itt_group_id)
static void __itt_report_error_impl(int code,...)
#define MAX_ENV_VALUE_SIZE
#define __itt_fstrnlen(s, l)
#define __itt_system_error()
int() __itt_init_ittlib_t(const char *, __itt_group_id)
static const char dll_path[PATH_MAX]
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
static const char * __itt_get_lib_name(void)
#define API_VERSION_BUILD
static __itt_fini_ittlib_t * __itt_fini_ittlib_ptr
struct ___itt_group_alias __itt_group_alias
static const char * ittnotify_lib_name
#define MUTEX_INITIALIZER
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_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
static void __itt_nullify_all_pointers(void)
#define __itt_get_proc(lib, name)
#define __itt_fstrcpyn(s1, b, s2, l)
static const char * __itt_get_env_var(const char *name)
void() __itt_api_fini_t(__itt_global *)
Legacy User API functions and types.
#define NEW_STRING_HANDLE_A(gptr, h, h_tail, name)
#define NEW_DOMAIN_A(gptr, h, h_tail, name)
void() __itt_fini_ittlib_t(void)
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_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 sync_cancel
static __itt_api_info api_list[]
ITT_EXTERN_C __itt_error_handler_t *_N_() set_error_handler(__itt_error_handler_t *handler)
static const char * __itt_fsplit(const char *s, const char *sep, const char **out, int *len)
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
#define __itt_fstrcmp(s1, s2)
#define __itt_mutex_lock(mutex)
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
static __itt_init_ittlib_t * __itt_init_ittlib_ptr
namespace msvc_inline_asm static inline void pause(uintptr_t delay)
#define __itt_mutex_unlock(mutex)
static __itt_domain *ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW), _init)) const
#define NEW_DOMAIN_W(gptr, h, h_tail, name)
void() __itt_api_init_t(__itt_global *, __itt_group_id)
void const char const char int ITT_FORMAT __itt_group_sync s
#define ITT_MUTEX_INIT_AND_LOCK(p)
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_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 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_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
static int __itt_lib_version(lib_t lib)
ITT_EXTERN_C void _N_() fini_ittlib(void)
static __itt_group_alias group_alias[]
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_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 __itt_group_fsync
#define __itt_init_ittlib_name
#define ITT_GROUP_LIST(varname)
enum ___itt_group_id __itt_group_id
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
Public User API functions and types.
#define NEW_STRING_HANDLE_W(gptr, h, h_tail, name)
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_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 __itt_frame ITT_FORMAT p const char const char ITT_FORMAT s __itt_counter ITT_FORMAT p __itt_counter unsigned long long ITT_FORMAT lu 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_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
#define __itt_thread_id()