diff options
Diffstat (limited to 'openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c')
| -rw-r--r-- | openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c | 278 |
1 files changed, 113 insertions, 165 deletions
diff --git a/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c b/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c index 5257d0d0299..4b5f464feb8 100644 --- a/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c +++ b/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.c @@ -29,7 +29,7 @@ #include "disable_warnings.h" -static const char api_version[] = API_VERSION "\0\n@(#) 201495 2011-12-01 14:14:56Z\n"; +static const char api_version[] = API_VERSION "\0\n@(#) $Revision: 42754 $\n"; #define _N_(n) ITT_JOIN(INTEL_ITTNOTIFY_PREFIX,n) @@ -43,6 +43,12 @@ static const char* ittnotify_lib_name = "libittnotify.dylib"; #error Unsupported or unknown OS. #endif +#ifdef __ANDROID__ +/* default location of userapi collector on Android */ +#define ANDROID_ITTNOTIFY_DEFAULT_PATH "/data/data/com.intel.vtune/intel/libittnotify.so" +#endif + + #ifndef LIB_VAR_NAME #if ITT_ARCH==ITT_ARCH_IA32 #define LIB_VAR_NAME INTEL_LIBITTNOTIFY32 @@ -146,7 +152,7 @@ typedef struct ___itt_group_alias static __itt_group_alias group_alias[] = { { "KMP_FOR_TPROFILE", (__itt_group_id)(__itt_group_control | __itt_group_thread | __itt_group_sync | __itt_group_mark) }, - { "KMP_FOR_TCHECK", (__itt_group_id)(__itt_group_control | __itt_group_thread | __itt_group_sync | __itt_group_fsync | __itt_group_mark) }, + { "KMP_FOR_TCHECK", (__itt_group_id)(__itt_group_control | __itt_group_thread | __itt_group_sync | __itt_group_fsync | __itt_group_mark | __itt_group_suppress) }, { NULL, (__itt_group_none) }, { api_version, (__itt_group_none) } /* !!! Just to avoid unused code elimination !!! */ }; @@ -162,7 +168,7 @@ static __itt_api_info api_list[] = { /* Define functions with static implementation */ #undef ITT_STUB #undef ITT_STUBV -#define ITT_STUB(api,type,name,args,params,nameindll,group,format) {ITT_TO_STR(ITT_JOIN(__itt_,nameindll)), (void**)(void*)&ITTNOTIFY_NAME(name), (void*)&ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)), (void*)&ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)), (__itt_group_id)(group)}, +#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)}, #define ITT_STUBV ITT_STUB #define __ITT_INTERNAL_INIT #include "ittnotify_static.h" @@ -170,7 +176,7 @@ static __itt_api_info api_list[] = { /* Define functions without static implementation */ #undef ITT_STUB #undef ITT_STUBV -#define ITT_STUB(api,type,name,args,params,nameindll,group,format) {ITT_TO_STR(ITT_JOIN(__itt_,nameindll)), (void**)(void*)&ITTNOTIFY_NAME(name), (void*)&ITT_VERSIONIZE(ITT_JOIN(_N_(name),_init)), NULL, (__itt_group_id)(group)}, +#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)}, #define ITT_STUBV ITT_STUB #include "ittnotify_static.h" {NULL, NULL, NULL, NULL, __itt_group_none} @@ -225,7 +231,7 @@ static __itt_string_handle null_string_handle = { static const char dll_path[PATH_MAX] = { 0 }; /* static part descriptor which handles. all notification api attributes. */ -static __itt_global __itt_ittapi_global = { +__itt_global _N_(_ittapi_global) = { ITT_MAGIC, /* identification info */ ITT_MAJOR, ITT_MINOR, API_VERSION_BUILD, /* version info */ 0, /* api_initialized */ @@ -261,9 +267,9 @@ static void __itt_report_error(__itt_error_code code, ...) { va_list args; va_start(args, code); - if (__itt_ittapi_global.error_handler != NULL) + if (_N_(_ittapi_global).error_handler != NULL) { - __itt_error_handler_t* handler = (__itt_error_handler_t*)__itt_ittapi_global.error_handler; + __itt_error_handler_t* handler = (__itt_error_handler_t*)(size_t)_N_(_ittapi_global).error_handler; handler(code, args); } #ifdef ITT_NOTIFY_EXT_REPORT @@ -281,7 +287,7 @@ static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW),_init))( { __itt_domain *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); if (ITTNOTIFY_NAME(domain_createW) && ITTNOTIFY_NAME(domain_createW) != ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW),_init))) @@ -289,16 +295,16 @@ static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_createW),_init))( } if (name == NULL) - return __itt_ittapi_global.domain_list; + return _N_(_ittapi_global).domain_list; - ITT_MUTEX_INIT_AND_LOCK(__itt_ittapi_global); - for (h_tail = NULL, h = __itt_ittapi_global.domain_list; h != NULL; h_tail = h, h = h->next) + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + for (h_tail = NULL, h = _N_(_ittapi_global).domain_list; h != NULL; h_tail = h, h = h->next) if (h->nameW != NULL && !wcscmp(h->nameW, name)) break; if (h == NULL) { - NEW_DOMAIN_W(&__itt_ittapi_global,h,h_tail,name); + NEW_DOMAIN_W(&_N_(_ittapi_global),h,h_tail,name); } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return h; } @@ -309,7 +315,7 @@ static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init))(c { __itt_domain *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); #if ITT_PLATFORM==ITT_PLATFORM_WIN @@ -322,16 +328,16 @@ static __itt_domain* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(domain_create),_init))(c } if (name == NULL) - return __itt_ittapi_global.domain_list; + return _N_(_ittapi_global).domain_list; - ITT_MUTEX_INIT_AND_LOCK(__itt_ittapi_global); - for (h_tail = NULL, h = __itt_ittapi_global.domain_list; h != NULL; h_tail = h, h = h->next) + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + for (h_tail = NULL, h = _N_(_ittapi_global).domain_list; h != NULL; h_tail = h, h = h->next) if (h->nameA != NULL && !__itt_fstrcmp(h->nameA, name)) break; if (h == NULL) { - NEW_DOMAIN_A(&__itt_ittapi_global,h,h_tail,name); + NEW_DOMAIN_A(&_N_(_ittapi_global),h,h_tail,name); } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return h; } @@ -340,7 +346,7 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre { __itt_string_handle *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); if (ITTNOTIFY_NAME(string_handle_createW) && ITTNOTIFY_NAME(string_handle_createW) != ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_createW),_init))) @@ -348,16 +354,16 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre } if (name == NULL) - return __itt_ittapi_global.string_list; + return _N_(_ittapi_global).string_list; - ITT_MUTEX_INIT_AND_LOCK(__itt_ittapi_global); - for (h_tail = NULL, h = __itt_ittapi_global.string_list; h != NULL; h_tail = h, h = h->next) + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + for (h_tail = NULL, h = _N_(_ittapi_global).string_list; h != NULL; h_tail = h, h = h->next) if (h->strW != NULL && !wcscmp(h->strW, name)) break; if (h == NULL) { - NEW_STRING_HANDLE_W(&__itt_ittapi_global,h,h_tail,name); + NEW_STRING_HANDLE_W(&_N_(_ittapi_global),h,h_tail,name); } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return h; } @@ -368,7 +374,7 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre { __itt_string_handle *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); #if ITT_PLATFORM==ITT_PLATFORM_WIN @@ -381,16 +387,16 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre } if (name == NULL) - return __itt_ittapi_global.string_list; + return _N_(_ittapi_global).string_list; - ITT_MUTEX_INIT_AND_LOCK(__itt_ittapi_global); - for (h_tail = NULL, h = __itt_ittapi_global.string_list; h != NULL; h_tail = h, h = h->next) + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); + for (h_tail = NULL, h = _N_(_ittapi_global).string_list; h != NULL; h_tail = h, h = h->next) if (h->strA != NULL && !__itt_fstrcmp(h->strA, name)) break; if (h == NULL) { - NEW_STRING_HANDLE_A(&__itt_ittapi_global,h,h_tail,name); + NEW_STRING_HANDLE_A(&_N_(_ittapi_global),h,h_tail,name); } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); return h; } @@ -398,7 +404,7 @@ static __itt_string_handle* ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(string_handle_cre static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(pause),_init))(void) { - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); if (ITTNOTIFY_NAME(pause) && ITTNOTIFY_NAME(pause) != ITT_VERSIONIZE(ITT_JOIN(_N_(pause),_init))) @@ -407,12 +413,12 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(pause),_init))(void) return; } } - __itt_ittapi_global.state = __itt_collection_paused; + _N_(_ittapi_global).state = __itt_collection_paused; } static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(resume),_init))(void) { - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); if (ITTNOTIFY_NAME(resume) && ITTNOTIFY_NAME(resume) != ITT_VERSIONIZE(ITT_JOIN(_N_(resume),_init))) @@ -421,7 +427,7 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(resume),_init))(void) return; } } - __itt_ittapi_global.state = __itt_collection_normal; + _N_(_ittapi_global).state = __itt_collection_normal; } #if ITT_PLATFORM==ITT_PLATFORM_WIN @@ -430,7 +436,7 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))(const w TIDT tid = __itt_thread_id(); __itt_thread_info *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); if (ITTNOTIFY_NAME(thread_set_nameW) && ITTNOTIFY_NAME(thread_set_nameW) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))) @@ -440,18 +446,18 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_nameW),_init))(const w } } - __itt_mutex_lock(&__itt_ittapi_global.mutex); - for (h_tail = NULL, h = __itt_ittapi_global.thread_list; h != NULL; h_tail = h, h = h->next) + __itt_mutex_lock(&_N_(_ittapi_global).mutex); + for (h_tail = NULL, h = _N_(_ittapi_global).thread_list; h != NULL; h_tail = h, h = h->next) if (h->tid == tid) break; if (h == NULL) { - NEW_THREAD_INFO_W(&__itt_ittapi_global, h, h_tail, tid, __itt_thread_normal, name); + NEW_THREAD_INFO_W(&_N_(_ittapi_global), h, h_tail, tid, __itt_thread_normal, name); } else { h->nameW = name ? _wcsdup(name) : NULL; } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); } static int ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_name_setW),_init))(const wchar_t* name, int namelen) @@ -469,7 +475,7 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),_init))(const ch TIDT tid = __itt_thread_id(); __itt_thread_info *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); #if ITT_PLATFORM==ITT_PLATFORM_WIN @@ -487,18 +493,18 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_set_name),_init))(const ch #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ } - __itt_mutex_lock(&__itt_ittapi_global.mutex); - for (h_tail = NULL, h = __itt_ittapi_global.thread_list; h != NULL; h_tail = h, h = h->next) + __itt_mutex_lock(&_N_(_ittapi_global).mutex); + for (h_tail = NULL, h = _N_(_ittapi_global).thread_list; h != NULL; h_tail = h, h = h->next) if (h->tid == tid) break; if (h == NULL) { - NEW_THREAD_INFO_A(&__itt_ittapi_global, h, h_tail, tid, __itt_thread_normal, name); + NEW_THREAD_INFO_A(&_N_(_ittapi_global), h, h_tail, tid, __itt_thread_normal, name); } else { h->nameA = name ? __itt_fstrdup(name) : NULL; } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); } #if ITT_PLATFORM==ITT_PLATFORM_WIN @@ -522,7 +528,7 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))(void) TIDT tid = __itt_thread_id(); __itt_thread_info *h_tail, *h; - if (!__itt_ittapi_global.api_initialized && __itt_ittapi_global.thread_list->tid == 0) + if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list->tid == 0) { __itt_init_ittlib_name(NULL, __itt_group_all); if (ITTNOTIFY_NAME(thread_ignore) && ITTNOTIFY_NAME(thread_ignore) != ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))) @@ -532,19 +538,19 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))(void) } } - __itt_mutex_lock(&__itt_ittapi_global.mutex); - for (h_tail = NULL, h = __itt_ittapi_global.thread_list; h != NULL; h_tail = h, h = h->next) + __itt_mutex_lock(&_N_(_ittapi_global).mutex); + for (h_tail = NULL, h = _N_(_ittapi_global).thread_list; h != NULL; h_tail = h, h = h->next) if (h->tid == tid) break; if (h == NULL) { static const char* name = "unknown"; - NEW_THREAD_INFO_A(&__itt_ittapi_global, h, h_tail, tid, __itt_thread_ignored, name); + NEW_THREAD_INFO_A(&_N_(_ittapi_global), h, h_tail, tid, __itt_thread_ignored, name); } else { h->state = __itt_thread_ignored; } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); } static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_ignore),_init))(void) @@ -552,6 +558,17 @@ static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(thr_ignore),_init))(void) ITT_VERSIONIZE(ITT_JOIN(_N_(thread_ignore),_init))(); } +static void ITTAPI ITT_VERSIONIZE(ITT_JOIN(_N_(enable_attach),_init))(void) +{ +#ifdef __ANDROID__ + /* + * if LIB_VAR_NAME env variable were set before then stay previous value + * else set default path + */ + setenv(ITT_TO_STR(LIB_VAR_NAME), ANDROID_ITTNOTIFY_DEFAULT_PATH, 0); +#endif +} + /* -------------------------------------------------------------------------- */ static const char* __itt_fsplit(const char* s, const char* sep, const char** out, int* len) @@ -666,80 +683,10 @@ static const char* __itt_get_env_var(const char* name) return NULL; } -#if ITT_PLATFORM==ITT_PLATFORM_WIN - -#include <Winreg.h> - -typedef LONG (APIENTRY* RegCloseKeyProcType)(HKEY); -typedef LONG (APIENTRY* RegOpenKeyExAProcType)(HKEY, LPCTSTR, DWORD, REGSAM, PHKEY); -typedef LONG (APIENTRY* RegGetValueAProcType)(HKEY, LPCTSTR, LPCTSTR, DWORD, LPDWORD, PVOID, LPDWORD); - -/* This function return value of registry key that placed into static buffer. - * This was done to aviod dynamic memory allocation. - */ -static const char* __itt_get_lib_name_registry(void) -{ -#define MAX_REG_VALUE_SIZE 4086 - static char reg_buff[MAX_REG_VALUE_SIZE]; - DWORD size; - LONG res; - HKEY hKey; - RegCloseKeyProcType pRegCloseKey; - RegOpenKeyExAProcType pRegOpenKeyExA; - RegGetValueAProcType pRegGetValueA; - HMODULE h_advapi32 = LoadLibraryA("advapi32.dll"); - DWORD autodetect = 0; - - if (h_advapi32 == NULL) - { - return NULL; - } - - pRegCloseKey = (RegCloseKeyProcType)GetProcAddress(h_advapi32, "RegCloseKey"); - pRegOpenKeyExA = (RegOpenKeyExAProcType)GetProcAddress(h_advapi32, "RegOpenKeyExA"); - pRegGetValueA = (RegGetValueAProcType)GetProcAddress(h_advapi32, "RegGetValueA"); - - if (pRegCloseKey == NULL || - pRegOpenKeyExA == NULL || - pRegGetValueA == NULL) - { - FreeLibrary(h_advapi32); - return NULL; - } - - res = pRegOpenKeyExA(HKEY_CURRENT_USER, (LPCTSTR)"Software\\Intel Corporation\\ITT Environment\\Collector", 0, KEY_READ, &hKey); - if (res != ERROR_SUCCESS || hKey == 0) - { - FreeLibrary(h_advapi32); - return NULL; - } - - size = sizeof(DWORD); - res = pRegGetValueA(hKey, (LPCTSTR)"AutoDetect", NULL, RRF_RT_REG_DWORD, NULL, (BYTE*)&autodetect, &size); - if (res != ERROR_SUCCESS || size == 0 || autodetect == 0) - { - pRegCloseKey(hKey); - FreeLibrary(h_advapi32); - return NULL; - } - - size = MAX_REG_VALUE_SIZE-1; - res = pRegGetValueA(hKey, (LPCTSTR)ITT_TO_STR(LIB_VAR_NAME), NULL, REG_SZ, NULL, (BYTE*)®_buff, &size); - pRegCloseKey(hKey); - FreeLibrary(h_advapi32); - - return (res == ERROR_SUCCESS && size > 0) ? reg_buff : NULL; -} - -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ - static const char* __itt_get_lib_name(void) { const char* lib_name = __itt_get_env_var(ITT_TO_STR(LIB_VAR_NAME)); -#if ITT_PLATFORM==ITT_PLATFORM_WIN - if (lib_name == NULL) - lib_name = __itt_get_lib_name_registry(); -#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ + return lib_name; } @@ -761,9 +708,8 @@ static __itt_group_id __itt_get_groups(void) const char* chunk; while ((group_str = __itt_fsplit(group_str, ",; ", &chunk, &len)) != NULL) { - __itt_fstrcpyn(gr, chunk, sizeof(gr)); - - gr[min((unsigned int)len, sizeof(gr) - 1)] = 0; + __itt_fstrcpyn(gr, chunk, sizeof(gr) - 1); + gr[min(len, (int)(sizeof(gr) - 1))] = 0; for (i = 0; group_list[i].name != NULL; i++) { @@ -810,8 +756,8 @@ static void __itt_reinit_all_pointers(void) { register int i; // Fill all pointers with initial stubs - for (i = 0; __itt_ittapi_global.api_list_ptr[i].name != NULL; i++) - *__itt_ittapi_global.api_list_ptr[i].func_ptr = __itt_ittapi_global.api_list_ptr[i].init_func; + for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) + *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].init_func; } */ @@ -819,8 +765,8 @@ static void __itt_nullify_all_pointers(void) { register int i; /* Nulify all pointers except domain_create and string_handle_create */ - for (i = 0; __itt_ittapi_global.api_list_ptr[i].name != NULL; i++) - *__itt_ittapi_global.api_list_ptr[i].func_ptr = __itt_ittapi_global.api_list_ptr[i].null_func; + for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) + *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func; } #if ITT_PLATFORM==ITT_PLATFORM_WIN @@ -834,30 +780,30 @@ ITT_EXTERN_C void _N_(fini_ittlib)(void) __itt_api_fini_t* __itt_api_fini_ptr; static volatile TIDT current_thread = 0; - if (__itt_ittapi_global.api_initialized) + if (_N_(_ittapi_global).api_initialized) { - __itt_mutex_lock(&__itt_ittapi_global.mutex); - if (__itt_ittapi_global.api_initialized) + __itt_mutex_lock(&_N_(_ittapi_global).mutex); + if (_N_(_ittapi_global).api_initialized) { if (current_thread == 0) { current_thread = __itt_thread_id(); - __itt_api_fini_ptr = (__itt_api_fini_t*)__itt_get_proc(__itt_ittapi_global.lib, "__itt_api_fini"); + __itt_api_fini_ptr = (__itt_api_fini_t*)(size_t)__itt_get_proc(_N_(_ittapi_global).lib, "__itt_api_fini"); if (__itt_api_fini_ptr) - __itt_api_fini_ptr(&__itt_ittapi_global); + __itt_api_fini_ptr(&_N_(_ittapi_global)); __itt_nullify_all_pointers(); /* TODO: !!! not safe !!! don't support unload so far. - * if (__itt_ittapi_global.lib != NULL) - * __itt_unload_lib(__itt_ittapi_global.lib); - * __itt_ittapi_global.lib = NULL; + * if (_N_(_ittapi_global).lib != NULL) + * __itt_unload_lib(_N_(_ittapi_global).lib); + * _N_(_ittapi_global).lib = NULL; */ - __itt_ittapi_global.api_initialized = 0; + _N_(_ittapi_global).api_initialized = 0; current_thread = 0; } } - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); } } @@ -870,51 +816,52 @@ ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_grou #endif /* ITT_COMPLETE_GROUP */ static volatile TIDT current_thread = 0; - if (!__itt_ittapi_global.api_initialized) + if (!_N_(_ittapi_global).api_initialized) { #ifndef ITT_SIMPLE_INIT - ITT_MUTEX_INIT_AND_LOCK(__itt_ittapi_global); + ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global)); #endif /* ITT_SIMPLE_INIT */ - if (!__itt_ittapi_global.api_initialized) + if (!_N_(_ittapi_global).api_initialized) { if (current_thread == 0) { current_thread = __itt_thread_id(); - __itt_ittapi_global.thread_list->tid = current_thread; + _N_(_ittapi_global).thread_list->tid = current_thread; if (lib_name == NULL) lib_name = __itt_get_lib_name(); groups = __itt_get_groups(); if (groups != __itt_group_none || lib_name != NULL) { - __itt_ittapi_global.lib = __itt_load_lib((lib_name == NULL) ? ittnotify_lib_name : lib_name); - if (__itt_ittapi_global.lib != NULL) + _N_(_ittapi_global).lib = __itt_load_lib((lib_name == NULL) ? ittnotify_lib_name : lib_name); + + if (_N_(_ittapi_global).lib != NULL) { __itt_api_init_t* __itt_api_init_ptr; - int lib_version = __itt_lib_version(__itt_ittapi_global.lib); + int lib_version = __itt_lib_version(_N_(_ittapi_global).lib); switch (lib_version) { case 0: groups = __itt_group_legacy; case 1: /* Fill all pointers from dynamic library */ - for (i = 0; __itt_ittapi_global.api_list_ptr[i].name != NULL; i++) + for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) { - if (__itt_ittapi_global.api_list_ptr[i].group & groups & init_groups) + if (_N_(_ittapi_global).api_list_ptr[i].group & groups & init_groups) { - *__itt_ittapi_global.api_list_ptr[i].func_ptr = (void*)__itt_get_proc(__itt_ittapi_global.lib, __itt_ittapi_global.api_list_ptr[i].name); - if (*__itt_ittapi_global.api_list_ptr[i].func_ptr == NULL) + *_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); + if (*_N_(_ittapi_global).api_list_ptr[i].func_ptr == NULL) { /* Restore pointers for function with static implementation */ - *__itt_ittapi_global.api_list_ptr[i].func_ptr = __itt_ittapi_global.api_list_ptr[i].null_func; - __itt_report_error(__itt_error_no_symbol, lib_name, __itt_ittapi_global.api_list_ptr[i].name); + *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func; + __itt_report_error(__itt_error_no_symbol, lib_name, _N_(_ittapi_global).api_list_ptr[i].name); #ifdef ITT_COMPLETE_GROUP - zero_group = (__itt_group_id)(zero_group | __itt_ittapi_global.api_list_ptr[i].group); + zero_group = (__itt_group_id)(zero_group | _N_(_ittapi_global).api_list_ptr[i].group); #endif /* ITT_COMPLETE_GROUP */ } } else - *__itt_ittapi_global.api_list_ptr[i].func_ptr = __itt_ittapi_global.api_list_ptr[i].null_func; + *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func; } if (groups == __itt_group_legacy) @@ -934,15 +881,15 @@ ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_grou } #ifdef ITT_COMPLETE_GROUP - for (i = 0; __itt_ittapi_global.api_list_ptr[i].name != NULL; i++) - if (__itt_ittapi_global.api_list_ptr[i].group & zero_group) - *__itt_ittapi_global.api_list_ptr[i].func_ptr = __itt_ittapi_global.api_list_ptr[i].null_func; + for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) + if (_N_(_ittapi_global).api_list_ptr[i].group & zero_group) + *_N_(_ittapi_global).api_list_ptr[i].func_ptr = _N_(_ittapi_global).api_list_ptr[i].null_func; #endif /* ITT_COMPLETE_GROUP */ break; case 2: - __itt_api_init_ptr = (__itt_api_init_t*)__itt_get_proc(__itt_ittapi_global.lib, "__itt_api_init"); + __itt_api_init_ptr = (__itt_api_init_t*)(size_t)__itt_get_proc(_N_(_ittapi_global).lib, "__itt_api_init"); if (__itt_api_init_ptr) - __itt_api_init_ptr(&__itt_ittapi_global, init_groups); + __itt_api_init_ptr(&_N_(_ittapi_global), init_groups); break; } } @@ -963,7 +910,7 @@ ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_grou { __itt_nullify_all_pointers(); } - __itt_ittapi_global.api_initialized = 1; + _N_(_ittapi_global).api_initialized = 1; current_thread = 0; /* !!! Just to avoid unused code elimination !!! */ if (__itt_fini_ittlib_ptr == _N_(fini_ittlib)) current_thread = 0; @@ -971,25 +918,26 @@ ITT_EXTERN_C int _N_(init_ittlib)(const char* lib_name, __itt_group_id init_grou } #ifndef ITT_SIMPLE_INIT - __itt_mutex_unlock(&__itt_ittapi_global.mutex); + __itt_mutex_unlock(&_N_(_ittapi_global).mutex); #endif /* ITT_SIMPLE_INIT */ } /* Evaluating if any function ptr is non empty and it's in init_groups */ - for (i = 0; __itt_ittapi_global.api_list_ptr[i].name != NULL; i++) - if (*__itt_ittapi_global.api_list_ptr[i].func_ptr != __itt_ittapi_global.api_list_ptr[i].null_func && - __itt_ittapi_global.api_list_ptr[i].group & init_groups) + for (i = 0; _N_(_ittapi_global).api_list_ptr[i].name != NULL; i++) + if (*_N_(_ittapi_global).api_list_ptr[i].func_ptr != _N_(_ittapi_global).api_list_ptr[i].null_func && + _N_(_ittapi_global).api_list_ptr[i].group & init_groups) return 1; return 0; } ITT_EXTERN_C __itt_error_handler_t* _N_(set_error_handler)(__itt_error_handler_t* handler) { - __itt_error_handler_t* prev = (__itt_error_handler_t*)__itt_ittapi_global.error_handler; - __itt_ittapi_global.error_handler = (void*)handler; + __itt_error_handler_t* prev = (__itt_error_handler_t*)(size_t)_N_(_ittapi_global).error_handler; + _N_(_ittapi_global).error_handler = (void*)(size_t)handler; return prev; } #if ITT_PLATFORM==ITT_PLATFORM_WIN #pragma warning(pop) #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ + |

