31#define offset_and_size_of(structure, field) \
32 { offsetof(structure, field), sizeof(((structure *)NULL)->field) }
34#define offset_and_size_not_available \
37#define addr_and_size_of(var) \
38 { (kmp_uint64)(&var), sizeof(var) }
40#define nthr_buffer_size 1024
41static kmp_int32 kmp_omp_nthr_info_buffer[nthr_buffer_size] = {
45static char func_microtask[] =
"__kmp_invoke_microtask";
46static char func_fork[] =
"__kmpc_fork_call";
47static char func_fork_teams[] =
"__kmpc_fork_teams";
58 sizeof(kmp_omp_struct_info_t),
75#if !KMP_USE_DYNAMIC_LOCK
78 addr_and_size_of(func_microtask),
79 addr_and_size_of(func_fork),
80 addr_and_size_of(func_fork_teams),
83 addr_and_size_of(kmp_omp_nthr_info_buffer),
144 offset_and_size_not_available,
148 offset_and_size_of(
ident_t, psource),
149 offset_and_size_of(
ident_t, flags),
163#if !KMP_USE_DYNAMIC_LOCK
221#undef offset_and_size_of
222#undef addr_and_size_of
229#if KMP_COMPILER_ICC || KMP_COMPILER_ICX
231#pragma warning(disable : 810)
233#pragma warning(disable : 1195)
236#if KMP_COMPILER_ICC || KMP_COMPILER_ICX
241static int kmp_location_match(
kmp_str_loc_t *
loc, kmp_omp_nthr_item_t *item) {
247 char *file = (
char *)__kmp_convert_to_ptr(item->file);
248 char *
func = (
char *)__kmp_convert_to_ptr(item->func);
252 || strcmp(
func,
"*") == 0 ||
253 (
loc->func != NULL && strcmp(
loc->func,
func) == 0);
255 item->begin <=
loc->line &&
257 loc->line <= item->end);
259 return (file_match && func_match && line_match);
267 kmp_omp_nthr_info_t *info = (kmp_omp_nthr_info_t *)__kmp_convert_to_ptr(
269 if (info->num > 0 && info->array != 0) {
270 kmp_omp_nthr_item_t *items =
271 (kmp_omp_nthr_item_t *)__kmp_convert_to_ptr(info->array);
274 for (
i = 0;
i < info->num; ++
i) {
275 if (kmp_location_match(&
loc, &items[
i])) {
276 num_threads = items[
i].num_threads;
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 initialized
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 count
struct kmp_base_root kmp_base_root_t
#define INITIAL_TASK_DEQUE_SIZE
struct KMP_ALIGN_CACHE kmp_base_info kmp_base_info_t
std::atomic< kmp_int32 > __kmp_task_counter
union KMP_ALIGN_CACHE kmp_thread_data kmp_thread_data_t
kmp_info_t ** __kmp_threads
struct kmp_desc_base kmp_desc_base_t
struct KMP_ALIGN_CACHE kmp_base_team kmp_base_team_t
int __kmp_threads_capacity
struct kmp_base_task_team kmp_base_task_team_t
struct kmp_taskdata kmp_taskdata_t
struct KMP_ALIGN_CACHE kmp_bstate kmp_bstate_t
std::atomic< kmp_int32 > __kmp_team_counter
unsigned long long kmp_uint64
kmp_lock_table_t __kmp_user_lock_table
struct kmp_base_queuing_lock kmp_base_queuing_lock_t
struct kmp_lock_table kmp_lock_table_t
int __kmp_omp_debug_struct_info
kmp_str_loc_t __kmp_str_loc_init(char const *psource, bool init_fname)
int __kmp_str_fname_match(kmp_str_fname_t const *fname, char const *pattern)
void __kmp_str_loc_free(kmp_str_loc_t *loc)
int const __kmp_version_build
char const __kmp_copyright[]
int const __kmp_version_minor
int const __kmp_version_major
int const __kmp_openmp_version
#define KMP_VERSION_MAGIC_LEN
The ident structure that describes a source location.
char const * psource
String describing the source location.