Intel(R) Threading Building Blocks Doxygen Documentation version 4.2.3
Loading...
Searching...
No Matches
ittnotify_config.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2005-2020 Intel Corporation
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15*/
16
17#ifndef _ITTNOTIFY_CONFIG_H_
18#define _ITTNOTIFY_CONFIG_H_
19
21#ifndef ITT_OS_WIN
22# define ITT_OS_WIN 1
23#endif /* ITT_OS_WIN */
24
25#ifndef ITT_OS_LINUX
26# define ITT_OS_LINUX 2
27#endif /* ITT_OS_LINUX */
28
29#ifndef ITT_OS_MAC
30# define ITT_OS_MAC 3
31#endif /* ITT_OS_MAC */
32
33#ifndef ITT_OS_FREEBSD
34# define ITT_OS_FREEBSD 4
35#endif /* ITT_OS_FREEBSD */
36
37#ifndef ITT_OS
38# if defined WIN32 || defined _WIN32
39# define ITT_OS ITT_OS_WIN
40# elif defined( __APPLE__ ) && defined( __MACH__ )
41# define ITT_OS ITT_OS_MAC
42# elif defined( __FreeBSD__ )
43# define ITT_OS ITT_OS_FREEBSD
44# else
45# define ITT_OS ITT_OS_LINUX
46# endif
47#endif /* ITT_OS */
48
49#ifndef ITT_PLATFORM_WIN
50# define ITT_PLATFORM_WIN 1
51#endif /* ITT_PLATFORM_WIN */
52
53#ifndef ITT_PLATFORM_POSIX
54# define ITT_PLATFORM_POSIX 2
55#endif /* ITT_PLATFORM_POSIX */
56
57#ifndef ITT_PLATFORM_MAC
58# define ITT_PLATFORM_MAC 3
59#endif /* ITT_PLATFORM_MAC */
60
61#ifndef ITT_PLATFORM_FREEBSD
62# define ITT_PLATFORM_FREEBSD 4
63#endif /* ITT_PLATFORM_FREEBSD */
64
65#ifndef ITT_PLATFORM
66# if ITT_OS==ITT_OS_WIN
67# define ITT_PLATFORM ITT_PLATFORM_WIN
68# elif ITT_OS==ITT_OS_MAC
69# define ITT_PLATFORM ITT_PLATFORM_MAC
70# elif ITT_OS==ITT_OS_FREEBSD
71# define ITT_PLATFORM ITT_PLATFORM_FREEBSD
72# else
73# define ITT_PLATFORM ITT_PLATFORM_POSIX
74# endif
75#endif /* ITT_PLATFORM */
76
77#if defined(_UNICODE) && !defined(UNICODE)
78#define UNICODE
79#endif
80
81#include <stddef.h>
82#if ITT_PLATFORM==ITT_PLATFORM_WIN
83#include <tchar.h>
84#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
85#include <stdint.h>
86#if defined(UNICODE) || defined(_UNICODE)
87#include <wchar.h>
88#endif /* UNICODE || _UNICODE */
89#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
90
91#ifndef ITTAPI_CDECL
92# if ITT_PLATFORM==ITT_PLATFORM_WIN
93# define ITTAPI_CDECL __cdecl
94# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
95# if defined _M_IX86 || defined __i386__
96# define ITTAPI_CDECL __attribute__ ((cdecl))
97# else /* _M_IX86 || __i386__ */
98# define ITTAPI_CDECL /* actual only on x86 platform */
99# endif /* _M_IX86 || __i386__ */
100# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
101#endif /* ITTAPI_CDECL */
102
103#ifndef STDCALL
104# if ITT_PLATFORM==ITT_PLATFORM_WIN
105# define STDCALL __stdcall
106# else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
107# if defined _M_IX86 || defined __i386__
108# define STDCALL __attribute__ ((stdcall))
109# else /* _M_IX86 || __i386__ */
110# define STDCALL /* supported only on x86 platform */
111# endif /* _M_IX86 || __i386__ */
112# endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
113#endif /* STDCALL */
114
115#define ITTAPI ITTAPI_CDECL
116#define LIBITTAPI ITTAPI_CDECL
117
118/* TODO: Temporary for compatibility! */
119#define ITTAPI_CALL ITTAPI_CDECL
120#define LIBITTAPI_CALL ITTAPI_CDECL
121
122#if ITT_PLATFORM==ITT_PLATFORM_WIN
123/* use __forceinline (VC++ specific) */
124#define ITT_INLINE __forceinline
125#define ITT_INLINE_ATTRIBUTE /* nothing */
126#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
127/*
128 * Generally, functions are not inlined unless optimization is specified.
129 * For functions declared inline, this attribute inlines the function even
130 * if no optimization level was specified.
131 */
132#ifdef __STRICT_ANSI__
133#define ITT_INLINE static
134#define ITT_INLINE_ATTRIBUTE __attribute__((unused))
135#else /* __STRICT_ANSI__ */
136#define ITT_INLINE static inline
137#define ITT_INLINE_ATTRIBUTE __attribute__((always_inline, unused))
138#endif /* __STRICT_ANSI__ */
139#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
142#ifndef ITT_ARCH_IA32
143# define ITT_ARCH_IA32 1
144#endif /* ITT_ARCH_IA32 */
145
146#ifndef ITT_ARCH_IA32E
147# define ITT_ARCH_IA32E 2
148#endif /* ITT_ARCH_IA32E */
149
150#ifndef ITT_ARCH_ARM
151# define ITT_ARCH_ARM 4
152#endif /* ITT_ARCH_ARM */
153
154#ifndef ITT_ARCH_PPC64
155# define ITT_ARCH_PPC64 5
156#endif /* ITT_ARCH_PPC64 */
157
158#ifndef ITT_ARCH
159# if defined _M_IX86 || defined __i386__
160# define ITT_ARCH ITT_ARCH_IA32
161# elif defined _M_X64 || defined _M_AMD64 || defined __x86_64__
162# define ITT_ARCH ITT_ARCH_IA32E
163# elif defined _M_IA64 || defined __ia64__
164# define ITT_ARCH ITT_ARCH_IA64
165# elif defined _M_ARM || defined __arm__
166# define ITT_ARCH ITT_ARCH_ARM
167# elif defined __powerpc64__
168# define ITT_ARCH ITT_ARCH_PPC64
169# endif
170#endif
171
172#ifdef __cplusplus
173# define ITT_EXTERN_C extern "C"
174# define ITT_EXTERN_C_BEGIN extern "C" {
175# define ITT_EXTERN_C_END }
176#else
177# define ITT_EXTERN_C /* nothing */
178# define ITT_EXTERN_C_BEGIN /* nothing */
179# define ITT_EXTERN_C_END /* nothing */
180#endif /* __cplusplus */
181
182#define ITT_TO_STR_AUX(x) #x
183#define ITT_TO_STR(x) ITT_TO_STR_AUX(x)
184
185#define __ITT_BUILD_ASSERT(expr, suffix) do { \
186 static char __itt_build_check_##suffix[(expr) ? 1 : -1]; \
187 __itt_build_check_##suffix[0] = 0; \
188} while(0)
189#define _ITT_BUILD_ASSERT(expr, suffix) __ITT_BUILD_ASSERT((expr), suffix)
190#define ITT_BUILD_ASSERT(expr) _ITT_BUILD_ASSERT((expr), __LINE__)
191
192#define ITT_MAGIC { 0xED, 0xAB, 0xAB, 0xEC, 0x0D, 0xEE, 0xDA, 0x30 }
193
194/* Replace with snapshot date YYYYMMDD for promotion build. */
195#define API_VERSION_BUILD 20180723
196
197#ifndef API_VERSION_NUM
198#define API_VERSION_NUM 0.0.0
199#endif /* API_VERSION_NUM */
200
201#define API_VERSION "ITT-API-Version " ITT_TO_STR(API_VERSION_NUM) \
202 " (" ITT_TO_STR(API_VERSION_BUILD) ")"
203
204/* OS communication functions */
205#if ITT_PLATFORM==ITT_PLATFORM_WIN
206#include <windows.h>
207typedef HMODULE lib_t;
208typedef DWORD TIDT;
209typedef CRITICAL_SECTION mutex_t;
210#define MUTEX_INITIALIZER { 0 }
211#define strong_alias(name, aliasname) /* empty for Windows */
212#else /* ITT_PLATFORM==ITT_PLATFORM_WIN */
213#include <dlfcn.h>
214#if defined(UNICODE) || defined(_UNICODE)
215#include <wchar.h>
216#endif /* UNICODE */
217#ifndef _GNU_SOURCE
218#define _GNU_SOURCE 1 /* need for PTHREAD_MUTEX_RECURSIVE */
219#endif /* _GNU_SOURCE */
220#ifndef __USE_UNIX98
221#define __USE_UNIX98 1 /* need for PTHREAD_MUTEX_RECURSIVE, on SLES11.1 with gcc 4.3.4 wherein pthread.h missing dependency on __USE_XOPEN2K8 */
222#endif /*__USE_UNIX98*/
223#include <pthread.h>
224typedef void* lib_t;
225typedef pthread_t TIDT;
226typedef pthread_mutex_t mutex_t;
227#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
228#define _strong_alias(name, aliasname) \
229 extern __typeof (name) aliasname __attribute__ ((alias (#name)));
230#define strong_alias(name, aliasname) _strong_alias(name, aliasname)
231#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
232
233#if ITT_PLATFORM==ITT_PLATFORM_WIN
234#define __itt_get_proc(lib, name) GetProcAddress(lib, name)
235#define __itt_mutex_init(mutex) InitializeCriticalSection(mutex)
236#define __itt_mutex_lock(mutex) EnterCriticalSection(mutex)
237#define __itt_mutex_unlock(mutex) LeaveCriticalSection(mutex)
238#define __itt_load_lib(name) LoadLibraryA(name)
239#define __itt_unload_lib(handle) FreeLibrary(handle)
240#define __itt_system_error() (int)GetLastError()
241#define __itt_fstrcmp(s1, s2) lstrcmpA(s1, s2)
242#define __itt_fstrnlen(s, l) strnlen_s(s, l)
243#define __itt_fstrcpyn(s1, b, s2, l) strncpy_s(s1, b, s2, l)
244#define __itt_fstrdup(s) _strdup(s)
245#define __itt_thread_id() GetCurrentThreadId()
246#define __itt_thread_yield() SwitchToThread()
247#ifndef ITT_SIMPLE_INIT
248ITT_INLINE long
249__itt_interlocked_increment(volatile long* ptr) ITT_INLINE_ATTRIBUTE;
250ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
251{
252 return InterlockedIncrement(ptr);
253}
254#endif /* ITT_SIMPLE_INIT */
255
256#define DL_SYMBOLS (1)
257#define PTHREAD_SYMBOLS (1)
258
259#else /* ITT_PLATFORM!=ITT_PLATFORM_WIN */
260#define __itt_get_proc(lib, name) dlsym(lib, name)
261#define __itt_mutex_init(mutex) {\
262 pthread_mutexattr_t mutex_attr; \
263 int error_code = pthread_mutexattr_init(&mutex_attr); \
264 if (error_code) \
265 __itt_report_error(__itt_error_system, "pthread_mutexattr_init", \
266 error_code); \
267 error_code = pthread_mutexattr_settype(&mutex_attr, \
268 PTHREAD_MUTEX_RECURSIVE); \
269 if (error_code) \
270 __itt_report_error(__itt_error_system, "pthread_mutexattr_settype", \
271 error_code); \
272 error_code = pthread_mutex_init(mutex, &mutex_attr); \
273 if (error_code) \
274 __itt_report_error(__itt_error_system, "pthread_mutex_init", \
275 error_code); \
276 error_code = pthread_mutexattr_destroy(&mutex_attr); \
277 if (error_code) \
278 __itt_report_error(__itt_error_system, "pthread_mutexattr_destroy", \
279 error_code); \
280}
281#define __itt_mutex_lock(mutex) pthread_mutex_lock(mutex)
282#define __itt_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
283#define __itt_load_lib(name) dlopen(name, RTLD_LAZY)
284#define __itt_unload_lib(handle) dlclose(handle)
285#define __itt_system_error() errno
286#define __itt_fstrcmp(s1, s2) strcmp(s1, s2)
287
288/* makes customer code define safe APIs for SDL_STRNLEN_S and SDL_STRNCPY_S */
289#ifdef SDL_STRNLEN_S
290#define __itt_fstrnlen(s, l) SDL_STRNLEN_S(s, l)
291#else
292#define __itt_fstrnlen(s, l) strlen(s)
293#endif /* SDL_STRNLEN_S */
294#ifdef SDL_STRNCPY_S
295#define __itt_fstrcpyn(s1, b, s2, l) SDL_STRNCPY_S(s1, b, s2, l)
296#else
297#define __itt_fstrcpyn(s1, b, s2, l) { \
298 if (b > 0) { \
299 /* 'volatile' is used to suppress the warning that a destination */ \
300 /* bound depends on the length of the source. */ \
301 volatile size_t num_to_copy = (size_t)(b - 1) < (size_t)(l) ? \
302 (size_t)(b - 1) : (size_t)(l); \
303 strncpy(s1, s2, num_to_copy); \
304 s1[num_to_copy] = 0; \
305 } \
306}
307#endif /* SDL_STRNCPY_S */
308
309#define __itt_fstrdup(s) strdup(s)
310#define __itt_thread_id() pthread_self()
311#define __itt_thread_yield() sched_yield()
312#if ITT_ARCH==ITT_ARCH_IA64
313#ifdef __INTEL_COMPILER
314#define __TBB_machine_fetchadd4(addr, val) __fetchadd4_acq((void *)addr, val)
315#else /* __INTEL_COMPILER */
316/* TODO: Add Support for not Intel compilers for IA-64 architecture */
317#endif /* __INTEL_COMPILER */
318#elif ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_IA32E /* ITT_ARCH!=ITT_ARCH_IA64 */
319ITT_INLINE long
320__TBB_machine_fetchadd4(volatile void* ptr, long addend) ITT_INLINE_ATTRIBUTE;
321ITT_INLINE long __TBB_machine_fetchadd4(volatile void* ptr, long addend)
322{
323 long result;
324 __asm__ __volatile__("lock\nxadd %0,%1"
325 : "=r"(result),"=m"(*(int*)ptr)
326 : "0"(addend), "m"(*(int*)ptr)
327 : "memory");
328 return result;
329}
330#elif ITT_ARCH==ITT_ARCH_ARM || ITT_ARCH==ITT_ARCH_PPC64
331#define __TBB_machine_fetchadd4(addr, val) __sync_fetch_and_add(addr, val)
332#endif /* ITT_ARCH==ITT_ARCH_IA64 */
333#ifndef ITT_SIMPLE_INIT
334ITT_INLINE long
335__itt_interlocked_increment(volatile long* ptr) ITT_INLINE_ATTRIBUTE;
336ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
337{
338 return __TBB_machine_fetchadd4(ptr, 1) + 1L;
339}
340#endif /* ITT_SIMPLE_INIT */
341
342void* dlopen(const char*, int) __attribute__((weak));
343void* dlsym(void*, const char*) __attribute__((weak));
344int dlclose(void*) __attribute__((weak));
345#define DL_SYMBOLS (dlopen && dlsym && dlclose)
346
347int pthread_mutex_init(pthread_mutex_t*, const pthread_mutexattr_t*) __attribute__((weak));
348int pthread_mutex_lock(pthread_mutex_t*) __attribute__((weak));
349int pthread_mutex_unlock(pthread_mutex_t*) __attribute__((weak));
350int pthread_mutex_destroy(pthread_mutex_t*) __attribute__((weak));
351int pthread_mutexattr_init(pthread_mutexattr_t*) __attribute__((weak));
352int pthread_mutexattr_settype(pthread_mutexattr_t*, int) __attribute__((weak));
353int pthread_mutexattr_destroy(pthread_mutexattr_t*) __attribute__((weak));
354pthread_t pthread_self(void) __attribute__((weak));
355#define PTHREAD_SYMBOLS (pthread_mutex_init && pthread_mutex_lock && pthread_mutex_unlock && pthread_mutex_destroy && pthread_mutexattr_init && pthread_mutexattr_settype && pthread_mutexattr_destroy && pthread_self)
356
357#endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */
358
359typedef enum {
363
364typedef enum {
368
369#pragma pack(push, 8)
370
371typedef struct ___itt_thread_info
372{
373 const char* nameA;
374#if defined(UNICODE) || defined(_UNICODE)
375 const wchar_t* nameW;
376#else /* UNICODE || _UNICODE */
377 void* nameW;
378#endif /* UNICODE || _UNICODE */
381 int extra1;
382 void* extra2;
385
386#include "ittnotify_types.h" /* For __itt_group_id definition */
387
389{
390 const char* name;
391 void** func_ptr;
395
396typedef struct ___itt_api_info
397{
398 const char* name;
399 void** func_ptr;
404
405typedef struct __itt_counter_info
406{
407 const char* nameA;
408#if defined(UNICODE) || defined(_UNICODE)
409 const wchar_t* nameW;
410#else /* UNICODE || _UNICODE */
411 void* nameW;
412#endif /* UNICODE || _UNICODE */
413 const char* domainA;
414#if defined(UNICODE) || defined(_UNICODE)
415 const wchar_t* domainW;
416#else /* UNICODE || _UNICODE */
417 void* domainW;
418#endif /* UNICODE || _UNICODE */
419 int type;
420 long index;
421 int extra1;
422 void* extra2;
425
426struct ___itt_domain;
427struct ___itt_string_handle;
428
429typedef struct ___itt_global
430{
431 unsigned char magic[8];
432 unsigned long version_major;
433 unsigned long version_minor;
434 unsigned long version_build;
435 volatile long api_initialized;
436 volatile long mutex_initialized;
437 volatile long atomic_counter;
441 const char** dll_path_ptr;
444 /* Joinable structures below */
446 struct ___itt_domain* domain_list;
447 struct ___itt_string_handle* string_list;
450 unsigned int ipt_collect_events;
452
453#pragma pack(pop)
454
455#define NEW_THREAD_INFO_W(gptr,h,h_tail,t,s,n) { \
456 h = (__itt_thread_info*)malloc(sizeof(__itt_thread_info)); \
457 if (h != NULL) { \
458 h->tid = t; \
459 h->nameA = NULL; \
460 h->nameW = n ? _wcsdup(n) : NULL; \
461 h->state = s; \
462 h->extra1 = 0; /* reserved */ \
463 h->extra2 = NULL; /* reserved */ \
464 h->next = NULL; \
465 if (h_tail == NULL) \
466 (gptr)->thread_list = h; \
467 else \
468 h_tail->next = h; \
469 } \
470}
471
472#define NEW_THREAD_INFO_A(gptr,h,h_tail,t,s,n) { \
473 h = (__itt_thread_info*)malloc(sizeof(__itt_thread_info)); \
474 if (h != NULL) { \
475 h->tid = t; \
476 h->nameA = n ? __itt_fstrdup(n) : NULL; \
477 h->nameW = NULL; \
478 h->state = s; \
479 h->extra1 = 0; /* reserved */ \
480 h->extra2 = NULL; /* reserved */ \
481 h->next = NULL; \
482 if (h_tail == NULL) \
483 (gptr)->thread_list = h; \
484 else \
485 h_tail->next = h; \
486 } \
487}
488
489#define NEW_DOMAIN_W(gptr,h,h_tail,name) { \
490 h = (__itt_domain*)malloc(sizeof(__itt_domain)); \
491 if (h != NULL) { \
492 h->flags = 1; /* domain is enabled by default */ \
493 h->nameA = NULL; \
494 h->nameW = name ? _wcsdup(name) : NULL; \
495 h->extra1 = 0; /* reserved */ \
496 h->extra2 = NULL; /* reserved */ \
497 h->next = NULL; \
498 if (h_tail == NULL) \
499 (gptr)->domain_list = h; \
500 else \
501 h_tail->next = h; \
502 } \
503}
504
505#define NEW_DOMAIN_A(gptr,h,h_tail,name) { \
506 h = (__itt_domain*)malloc(sizeof(__itt_domain)); \
507 if (h != NULL) { \
508 h->flags = 1; /* domain is enabled by default */ \
509 h->nameA = name ? __itt_fstrdup(name) : NULL; \
510 h->nameW = NULL; \
511 h->extra1 = 0; /* reserved */ \
512 h->extra2 = NULL; /* reserved */ \
513 h->next = NULL; \
514 if (h_tail == NULL) \
515 (gptr)->domain_list = h; \
516 else \
517 h_tail->next = h; \
518 } \
519}
520
521#define NEW_STRING_HANDLE_W(gptr,h,h_tail,name) { \
522 h = (__itt_string_handle*)malloc(sizeof(__itt_string_handle)); \
523 if (h != NULL) { \
524 h->strA = NULL; \
525 h->strW = name ? _wcsdup(name) : NULL; \
526 h->extra1 = 0; /* reserved */ \
527 h->extra2 = NULL; /* reserved */ \
528 h->next = NULL; \
529 if (h_tail == NULL) \
530 (gptr)->string_list = h; \
531 else \
532 h_tail->next = h; \
533 } \
534}
535
536#define NEW_STRING_HANDLE_A(gptr,h,h_tail,name) { \
537 h = (__itt_string_handle*)malloc(sizeof(__itt_string_handle)); \
538 if (h != NULL) { \
539 h->strA = name ? __itt_fstrdup(name) : NULL; \
540 h->strW = NULL; \
541 h->extra1 = 0; /* reserved */ \
542 h->extra2 = NULL; /* reserved */ \
543 h->next = NULL; \
544 if (h_tail == NULL) \
545 (gptr)->string_list = h; \
546 else \
547 h_tail->next = h; \
548 } \
549}
550
551#define NEW_COUNTER_W(gptr,h,h_tail,name,domain,type) { \
552 h = (__itt_counter_info_t*)malloc(sizeof(__itt_counter_info_t)); \
553 if (h != NULL) { \
554 h->nameA = NULL; \
555 h->nameW = name ? _wcsdup(name) : NULL; \
556 h->domainA = NULL; \
557 h->domainW = name ? _wcsdup(domain) : NULL; \
558 h->type = type; \
559 h->index = 0; \
560 h->next = NULL; \
561 if (h_tail == NULL) \
562 (gptr)->counter_list = h; \
563 else \
564 h_tail->next = h; \
565 } \
566}
567
568#define NEW_COUNTER_A(gptr,h,h_tail,name,domain,type) { \
569 h = (__itt_counter_info_t*)malloc(sizeof(__itt_counter_info_t)); \
570 if (h != NULL) { \
571 h->nameA = name ? __itt_fstrdup(name) : NULL; \
572 h->nameW = NULL; \
573 h->domainA = domain ? __itt_fstrdup(domain) : NULL; \
574 h->domainW = NULL; \
575 h->type = type; \
576 h->index = 0; \
577 h->next = NULL; \
578 if (h_tail == NULL) \
579 (gptr)->counter_list = h; \
580 else \
581 h_tail->next = h; \
582 } \
583}
584
585#endif /* _ITTNOTIFY_CONFIG_H_ */
static int32_t __TBB_machine_fetchadd4(volatile void *ptr, int32_t addend)
Definition: macos_common.h:107
__itt_thread_state
@ __itt_thread_normal
@ __itt_thread_ignored
struct __itt_counter_info __itt_counter_info_t
__itt_collection_state
@ __itt_collection_paused
@ __itt_collection_normal
DWORD TIDT
ITT_INLINE long __itt_interlocked_increment(volatile long *ptr) ITT_INLINE_ATTRIBUTE
struct ___itt_global __itt_global
HMODULE lib_t
struct ___itt_api_info_20101001 __itt_api_info_20101001
struct ___itt_api_info __itt_api_info
CRITICAL_SECTION mutex_t
struct ___itt_thread_info __itt_thread_info
enum ___itt_group_id __itt_group_id
struct ___itt_thread_info * next
__itt_thread_state state
__itt_group_id group
const char * name
struct __itt_counter_info * next
struct ___itt_domain * domain_list
volatile long atomic_counter
unsigned long version_minor
unsigned long version_build
unsigned int ipt_collect_events
volatile long mutex_initialized
const char ** dll_path_ptr
__itt_counter_info_t * counter_list
__itt_thread_info * thread_list
unsigned long version_major
__itt_api_info * api_list_ptr
unsigned char magic[8]
struct ___itt_string_handle * string_list
struct ___itt_global * next
volatile long api_initialized
__itt_collection_state state

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.