19 #if ITT_PLATFORM==ITT_PLATFORM_WIN 31 #define INTEL_NO_MACRO_BODY 32 #define INTEL_ITTNOTIFY_API_PRIVATE 40 #define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n) 42 #if ITT_OS==ITT_OS_WIN 44 #elif ITT_OS==ITT_OS_LINUX || ITT_OS==ITT_OS_FREEBSD 46 #elif ITT_OS==ITT_OS_MAC 49 #error Unsupported or unknown OS. 53 #include <android/log.h> 56 #include <sys/types.h> 59 #include <linux/limits.h> 61 #ifdef ITT_ANDROID_LOG 62 #define ITT_ANDROID_LOG_TAG "INTEL_VTUNE_USERAPI" 63 #define ITT_ANDROID_LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 64 #define ITT_ANDROID_LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 65 #define ITT_ANDROID_LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR,ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 66 #define ITT_ANDROID_LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG,ITT_ANDROID_LOG_TAG, __VA_ARGS__)) 68 #define ITT_ANDROID_LOGI(...) 69 #define ITT_ANDROID_LOGW(...) 70 #define ITT_ANDROID_LOGE(...) 71 #define ITT_ANDROID_LOGD(...) 75 #define ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(x) "/data/data/com.intel.vtune/perfrun/lib" \ 76 #x "/runtime/libittnotify.so" 78 #if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM 79 #define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(32) 81 #define ANDROID_ITTNOTIFY_DEFAULT_PATH ANDROID_ITTNOTIFY_DEFAULT_PATH_MASK(64) 88 #if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM 89 #define LIB_VAR_NAME INTEL_LIBITTNOTIFY32 91 #define LIB_VAR_NAME INTEL_LIBITTNOTIFY64 95 #define ITT_MUTEX_INIT_AND_LOCK(p) { \ 96 if (!p.mutex_initialized) \ 98 if (__itt_interlocked_increment(&p.atomic_counter) == 1) \ 100 __itt_mutex_init(&p.mutex); \ 101 p.mutex_initialized = 1; \ 104 while (!p.mutex_initialized) \ 105 __itt_thread_yield(); \ 107 __itt_mutex_lock(&p.mutex); \ 110 const int _N_(err) = 0;
115 #ifndef __itt_init_ittlib_name 118 #define __itt_init_ittlib_name __itt_init_ittlib_ptr 124 #ifndef __itt_fini_ittlib_name 127 #define __itt_fini_ittlib_name __itt_fini_ittlib_ptr 133 #define ITT_STUB(api,type,name,args,params,ptr,group,format) \ 134 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 135 typedef type api ITT_JOIN(_N_(name),_t) args; \ 136 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END \ 137 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ 139 __itt_init_ittlib_name(NULL, __itt_group_all); \ 140 if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \ 141 return ITTNOTIFY_NAME(name) params; \ 146 #define ITT_STUBV(api,type,name,args,params,ptr,group,format) \ 147 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 148 typedef type api ITT_JOIN(_N_(name),_t) args; \ 149 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END \ 150 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args \ 152 __itt_init_ittlib_name(NULL, __itt_group_all); \ 153 if (ITTNOTIFY_NAME(name) && ITTNOTIFY_NAME(name) != ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init))) \ 154 ITTNOTIFY_NAME(name) params; \ 159 #undef __ITT_INTERNAL_INIT 164 #define ITT_STUB(api,type,name,args,params,ptr,group,format) \ 165 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 166 typedef type api ITT_JOIN(_N_(name),_t) args; \ 167 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END 169 #define ITT_STUBV(api,type,name,args,params,ptr,group,format) \ 170 static type api ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)) args;\ 171 typedef type api ITT_JOIN(_N_(name),_t) args; \ 172 ITT_EXTERN_C_BEGIN ITT_JOIN(_N_(name),_t)* ITTNOTIFY_NAME(name) = ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)); ITT_EXTERN_C_END 174 #define __ITT_INTERNAL_INIT 176 #undef __ITT_INTERNAL_INIT 180 #pragma pack(push, 8) 197 #if ITT_PLATFORM==ITT_PLATFORM_WIN 198 #pragma warning(push) 199 #pragma warning(disable: 4054) 206 #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)}, 207 #define ITT_STUBV ITT_STUB 208 #define __ITT_INTERNAL_INIT 210 #undef __ITT_INTERNAL_INIT 214 #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)}, 215 #define ITT_STUBV ITT_STUB 220 #if ITT_PLATFORM==ITT_PLATFORM_WIN 250 #ifdef ITT_NOTIFY_EXT_REPORT 254 #if ITT_PLATFORM==ITT_PLATFORM_WIN 255 #pragma warning(push) 256 #pragma warning(disable: 4055) 261 va_start(args, code);
262 if (
_N_(_ittapi_global).error_handler != NULL)
264 __itt_error_handler_t* handler = (__itt_error_handler_t*)(
size_t)
_N_(_ittapi_global).error_handler;
265 handler((__itt_error_code)code, args);
267 #ifdef ITT_NOTIFY_EXT_REPORT 268 _N_(error_handler)(code, args);
274 #define __itt_report_error(code, ...) \ 275 __itt_report_error_impl((int)code,__VA_ARGS__) 278 #if ITT_PLATFORM==ITT_PLATFORM_WIN 282 #if ITT_PLATFORM==ITT_PLATFORM_WIN 285 __itt_domain *h_tail = NULL, *
h = NULL;
293 if (
_N_(_ittapi_global).api_initialized)
295 if (ITTNOTIFY_NAME(domain_createW) && ITTNOTIFY_NAME(domain_createW) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(domain_createW),_init)))
298 return ITTNOTIFY_NAME(domain_createW)(
name);
301 for (h_tail = NULL,
h =
_N_(_ittapi_global).domain_list;
h != NULL; h_tail =
h,
h =
h->next)
303 if (
h->nameW != NULL && !wcscmp(
h->nameW,
name))
break;
318 __itt_domain *h_tail = NULL, *
h = NULL;
326 if (
_N_(_ittapi_global).api_initialized)
328 #if ITT_PLATFORM==ITT_PLATFORM_WIN 329 if (ITTNOTIFY_NAME(domain_createA) && ITTNOTIFY_NAME(domain_createA) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(domain_createA),_init)))
332 return ITTNOTIFY_NAME(domain_createA)(
name);
335 if (ITTNOTIFY_NAME(domain_create) && ITTNOTIFY_NAME(domain_create) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(domain_create),_init)))
338 return ITTNOTIFY_NAME(domain_create)(
name);
342 for (h_tail = NULL,
h =
_N_(_ittapi_global).domain_list;
h != NULL; h_tail =
h,
h =
h->next)
354 #if ITT_PLATFORM==ITT_PLATFORM_WIN 357 __itt_string_handle *h_tail = NULL, *
h = NULL;
365 if (
_N_(_ittapi_global).api_initialized)
367 if (ITTNOTIFY_NAME(string_handle_createW) && ITTNOTIFY_NAME(string_handle_createW) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_createW),_init)))
370 return ITTNOTIFY_NAME(string_handle_createW)(
name);
373 for (h_tail = NULL,
h =
_N_(_ittapi_global).string_list;
h != NULL; h_tail =
h,
h =
h->next)
375 if (
h->strW != NULL && !wcscmp(
h->strW,
name))
break;
387 static __itt_string_handle* ITTAPI
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_create),_init))(
const char*
name)
390 __itt_string_handle *h_tail = NULL, *
h = NULL;
398 if (
_N_(_ittapi_global).api_initialized)
400 #if ITT_PLATFORM==ITT_PLATFORM_WIN 401 if (ITTNOTIFY_NAME(string_handle_createA) && ITTNOTIFY_NAME(string_handle_createA) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_createA),_init)))
404 return ITTNOTIFY_NAME(string_handle_createA)(
name);
407 if (ITTNOTIFY_NAME(string_handle_create) && ITTNOTIFY_NAME(string_handle_create) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(string_handle_create),_init)))
410 return ITTNOTIFY_NAME(string_handle_create)(
name);
414 for (h_tail = NULL,
h =
_N_(_ittapi_global).string_list;
h != NULL; h_tail =
h,
h =
h->next)
430 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
436 ITTNOTIFY_NAME(
pause)();
446 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
450 if (ITTNOTIFY_NAME(resume) && ITTNOTIFY_NAME(resume) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(resume),_init)))
452 ITTNOTIFY_NAME(resume)();
460 #if ITT_PLATFORM==ITT_PLATFORM_WIN 463 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
467 if (ITTNOTIFY_NAME(thread_set_nameW) && ITTNOTIFY_NAME(thread_set_nameW) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_set_nameW),_init)))
469 ITTNOTIFY_NAME(thread_set_nameW)(
name);
485 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
489 #if ITT_PLATFORM==ITT_PLATFORM_WIN 490 if (ITTNOTIFY_NAME(thread_set_nameA) && ITTNOTIFY_NAME(thread_set_nameA) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_set_nameA),_init)))
492 ITTNOTIFY_NAME(thread_set_nameA)(
name);
495 if (ITTNOTIFY_NAME(thread_set_name) && ITTNOTIFY_NAME(thread_set_name) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_set_name),_init)))
497 ITTNOTIFY_NAME(thread_set_name)(
name);
502 #if ITT_PLATFORM==ITT_PLATFORM_WIN 520 if (!
_N_(_ittapi_global).api_initialized &&
_N_(_ittapi_global).thread_list == NULL)
524 if (ITTNOTIFY_NAME(thread_ignore) && ITTNOTIFY_NAME(thread_ignore) !=
ITT_VERSIONIZE(ITT_JOIN(
_N_(thread_ignore),_init)))
526 ITTNOTIFY_NAME(thread_ignore)();
548 static const char*
__itt_fsplit(
const char*
s,
const char* sep,
const char** out,
int* len)
553 if (!
s || !sep || !out || !len)
556 for (i = 0;
s[i]; i++)
559 for (j = 0; sep[j]; j++)
575 for (;
s[i]; i++, (*len)++)
578 for (j = 0; sep[j]; j++)
591 for (j = 0; sep[j]; j++)
611 #define MAX_ENV_VALUE_SIZE 4086 613 static char* env_value = (
char*)env_buff;
617 #if ITT_PLATFORM==ITT_PLATFORM_WIN 619 DWORD rc = GetEnvironmentVariableA(
name, env_value, (DWORD)max_len);
624 const char* ret = (
const char*)env_value;
633 DWORD err = GetLastError();
634 if (err == ERROR_SUCCESS)
637 if (err != ERROR_ENVVAR_NOT_FOUND)
641 char* env = getenv(
name);
648 const char* ret = (
const char*)env_value;
650 env_value += len + 1;
665 if (lib_name == NULL)
668 #if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM 669 const char*
const marker_filename =
"com.intel.itt.collector_lib_32";
671 const char*
const marker_filename =
"com.intel.itt.collector_lib_64";
674 char system_wide_marker_filename[
PATH_MAX] = {0};
675 int itt_marker_file_fd = -1;
678 res = snprintf(system_wide_marker_filename,
PATH_MAX - 1,
"%s%s",
"/data/local/tmp/", marker_filename);
681 ITT_ANDROID_LOGE(
"Unable to concatenate marker file string.");
684 itt_marker_file_fd = open(system_wide_marker_filename, O_RDONLY);
686 if (itt_marker_file_fd == -1)
688 const pid_t my_pid = getpid();
691 char app_sandbox_file[
PATH_MAX] = {0};
694 ITT_ANDROID_LOGI(
"Unable to open system-wide marker file.");
695 res = snprintf(cmdline_path,
PATH_MAX - 1,
"/proc/%d/cmdline", my_pid);
698 ITT_ANDROID_LOGE(
"Unable to get cmdline path string.");
702 ITT_ANDROID_LOGI(
"CMD file: %s\n", cmdline_path);
703 cmdline_fd = open(cmdline_path, O_RDONLY);
704 if (cmdline_fd == -1)
706 ITT_ANDROID_LOGE(
"Unable to open %s file!", cmdline_path);
709 res = read(cmdline_fd, package_name,
PATH_MAX - 1);
712 ITT_ANDROID_LOGE(
"Unable to read %s file!", cmdline_path);
713 res = close(cmdline_fd);
716 ITT_ANDROID_LOGE(
"Unable to close %s file!", cmdline_path);
720 res = close(cmdline_fd);
723 ITT_ANDROID_LOGE(
"Unable to close %s file!", cmdline_path);
726 ITT_ANDROID_LOGI(
"Package name: %s\n", package_name);
727 res = snprintf(app_sandbox_file,
PATH_MAX - 1,
"/data/data/%s/%s", package_name, marker_filename);
730 ITT_ANDROID_LOGE(
"Unable to concatenate marker file string.");
734 ITT_ANDROID_LOGI(
"Lib marker file name: %s\n", app_sandbox_file);
735 itt_marker_file_fd = open(app_sandbox_file, O_RDONLY);
736 if (itt_marker_file_fd == -1)
738 ITT_ANDROID_LOGE(
"Unable to open app marker file!");
746 res = read(itt_marker_file_fd, itt_lib_name,
PATH_MAX - 1);
749 ITT_ANDROID_LOGE(
"Unable to read %s file!", itt_marker_file_fd);
750 res = close(itt_marker_file_fd);
753 ITT_ANDROID_LOGE(
"Unable to close %s file!", itt_marker_file_fd);
757 ITT_ANDROID_LOGI(
"ITT Lib path: %s", itt_lib_name);
758 res = close(itt_marker_file_fd);
761 ITT_ANDROID_LOGE(
"Unable to close %s file!", itt_marker_file_fd);
768 ITT_ANDROID_LOGE(
"Unable to set env var!");
772 ITT_ANDROID_LOGI(
"ITT Lib path from env: %s", lib_name);
781 #define __itt_min(a,b) ((a) < (b) ? (a) : (b)) 787 const char* var_name =
"INTEL_ITTNOTIFY_GROUPS";
790 if (group_str != NULL)
795 while ((group_str =
__itt_fsplit(group_str,
",; ", &chunk, &len)) != NULL)
798 gr[
__itt_min(len, (
int)(
sizeof(gr) - 1))] = 0;
800 for (i = 0; group_list[i].name != NULL; i++)
855 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
856 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
859 #if ITT_PLATFORM==ITT_PLATFORM_WIN 860 #pragma warning(push) 861 #pragma warning(disable: 4054) 862 #pragma warning(disable: 4055) 868 static volatile TIDT current_thread = 0;
870 if (
_N_(_ittapi_global).api_initialized)
873 if (
_N_(_ittapi_global).api_initialized)
875 if (current_thread == 0)
878 if (
_N_(_ittapi_global).lib != NULL)
882 if (__itt_api_fini_ptr)
884 __itt_api_fini_ptr(&
_N_(_ittapi_global));
894 _N_(_ittapi_global).api_initialized = 0;
906 #ifdef ITT_COMPLETE_GROUP 909 static volatile TIDT current_thread = 0;
911 if (!
_N_(_ittapi_global).api_initialized)
913 #ifndef ITT_SIMPLE_INIT 917 if (!
_N_(_ittapi_global).api_initialized)
919 if (current_thread == 0)
922 if (lib_name == NULL)
931 if (
_N_(_ittapi_global).lib != NULL)
936 switch (lib_version) {
942 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
944 if (
_N_(_ittapi_global).api_list_ptr[i].group & groups & init_groups)
946 *
_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);
947 if (*
_N_(_ittapi_global).api_list_ptr[i].func_ptr == NULL)
950 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
952 #ifdef ITT_COMPLETE_GROUP 953 zero_group = (
__itt_group_id)(zero_group |
_N_(_ittapi_global).api_list_ptr[i].group);
958 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
964 ITTNOTIFY_NAME(thread_ignore) = ITTNOTIFY_NAME(thr_ignore);
965 #if ITT_PLATFORM==ITT_PLATFORM_WIN 966 ITTNOTIFY_NAME(
sync_createA) = ITTNOTIFY_NAME(sync_set_nameA);
969 ITTNOTIFY_NAME(sync_create) = ITTNOTIFY_NAME(sync_set_name);
971 ITTNOTIFY_NAME(sync_prepare) = ITTNOTIFY_NAME(notify_sync_prepare);
973 ITTNOTIFY_NAME(sync_acquired) = ITTNOTIFY_NAME(notify_sync_acquired);
977 #ifdef ITT_COMPLETE_GROUP 978 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
979 if (
_N_(_ittapi_global).api_list_ptr[i].group & zero_group)
980 *
_N_(_ittapi_global).api_list_ptr[i].func_ptr =
_N_(_ittapi_global).api_list_ptr[i].null_func;
985 if (__itt_api_init_ptr)
986 __itt_api_init_ptr(&
_N_(_ittapi_global), init_groups);
993 #if ITT_PLATFORM==ITT_PLATFORM_WIN 996 const char* error = dlerror();
1005 _N_(_ittapi_global).api_initialized = 1;
1012 #ifndef ITT_SIMPLE_INIT 1018 for (i = 0;
_N_(_ittapi_global).api_list_ptr[i].name != NULL; i++)
1020 if (*
_N_(_ittapi_global).api_list_ptr[i].func_ptr !=
_N_(_ittapi_global).api_list_ptr[i].null_func &&
1021 _N_(_ittapi_global).api_list_ptr[i].group & init_groups)
1031 __itt_error_handler_t* prev = (__itt_error_handler_t*)(
size_t)
_N_(_ittapi_global).error_handler;
1032 _N_(_ittapi_global).error_handler = (
void*)(
size_t)handler;
1036 #if ITT_PLATFORM==ITT_PLATFORM_WIN 1037 #pragma warning(pop)
#define __itt_thread_id()
#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 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 __itt_group_sync
ITT_EXTERN_C __itt_error_handler_t *_N_() set_error_handler(__itt_error_handler_t *handler)
ITT_EXTERN_C int _N_() init_ittlib(const char *, __itt_group_id)
static const char * __itt_get_lib_name(void)
static void __itt_report_error_impl(int code,...)
enum ___itt_group_id __itt_group_id
#define MAX_ENV_VALUE_SIZE
void const char const char int ITT_FORMAT __itt_group_sync s
#define MUTEX_INITIALIZER
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 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
#define __itt_system_error()
void const char const char int ITT_FORMAT __itt_group_sync x void const char * 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 __itt_group_suppress
#define __itt_fstrcmp(s1, s2)
Public User API functions and types.
ITT_EXTERN_C void _N_() fini_ittlib(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 namelen
void() __itt_fini_ittlib_t(void)
Legacy User API functions and types.
#define NEW_DOMAIN_W(gptr, h, h_tail, name)
static const char * ittnotify_lib_name
#define NEW_DOMAIN_A(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 __itt_group_legacy
#define __itt_report_error(code,...)
#define API_VERSION_BUILD
#define __itt_load_lib(name)
static __itt_group_id __itt_get_groups(void)
#define __itt_fstrcpyn(s1, b, s2, l)
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_init_ittlib_name
void() __itt_api_fini_t(__itt_global *)
#define ITT_GROUP_LIST(varname)
void() __itt_api_init_t(__itt_global *, __itt_group_id)
static __itt_domain *ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW), _init)) const
static void __itt_nullify_all_pointers(void)
void const char const char int ITT_FORMAT __itt_group_sync __itt_group_fsync
static const char * __itt_fsplit(const char *s, const char *sep, const char **out, int *len)
#define __itt_get_proc(lib, name)
#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 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
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
struct ___itt_group_alias __itt_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 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
int() __itt_init_ittlib_t(const char *, __itt_group_id)
static __itt_api_info api_list[]
#define NEW_STRING_HANDLE_A(gptr, h, h_tail, name)
static int __itt_lib_version(lib_t lib)
static const char dll_path[PATH_MAX]
static const char api_version[]
#define __itt_mutex_unlock(mutex)
#define __itt_fstrnlen(s, l)
static __itt_fini_ittlib_t * __itt_fini_ittlib_ptr
#define NEW_STRING_HANDLE_W(gptr, h, h_tail, name)
static const char * __itt_get_env_var(const char *name)
static __itt_init_ittlib_t * __itt_init_ittlib_ptr
namespace msvc_inline_asm static inline void pause(uintptr_t delay)
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