LLVM OpenMP 22.0.0git
kmp_os.h File Reference
#include "kmp_config.h"
#include <atomic>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include "kmp_safe_c_api.h"

Go to the source code of this file.

Macros

#define KMP_FTN_PLAIN   1
#define KMP_FTN_APPEND   2
#define KMP_FTN_UPPER   3
#define KMP_PTR_SKIP   (sizeof(void *))
#define KMP_OFF   0
#define KMP_ON   1
#define KMP_MEM_CONS_VOLATILE   0
#define KMP_MEM_CONS_FENCE   1
#define KMP_MEM_CONS_MODEL   KMP_MEM_CONS_VOLATILE
#define __has_cpp_attribute(x)
#define __has_attribute(x)
#define KMP_COMPILER_ICC   0
#define KMP_COMPILER_GCC   0
#define KMP_COMPILER_CLANG   0
#define KMP_COMPILER_MSVC   0
#define KMP_COMPILER_ICX   0
#define KMP_AFFINITY_SUPPORTED   0
#define KMP_GROUP_AFFINITY   0
#define KMP_HAVE_SCHED_GETCPU   0
#define KMP_HAVE_QUAD   0
#define KMP_USE_X87CONTROL   0
#define KMP_SIZE_T_MAX   (0xFFFFFFFFFFFFFFFF)
#define KMP_INTPTR   1
#define KMP_INTPTR_SPEC   "ld"
#define KMP_UINTPTR_SPEC   "lu"
#define KMP_INT_MAX   ((kmp_int32)0x7FFFFFFF)
#define KMP_INT_MIN   ((kmp_int32)0x80000000)
#define kmp_va_deref(ap)
#define kmp_va_addr_of(ap)
#define CCAST(type, var)
#define RCAST(type, var)
#define KMP_EXPORT   extern /* export declaration in guide libraries */
#define KMP_HAVE_MWAIT
#define KMP_HAVE_UMWAIT
#define KMP_GET_PAGE_SIZE()
#define PAGE_ALIGNED(_addr)
#define ALIGN_TO_PAGE(x)
#define INTERNODE_CACHE_LINE   4096 /* for multi-node systems */
#define CACHE_LINE   128 /* cache line size in bytes */
#define KMP_CACHE_PREFETCH(ADDR)
#define KMP_FALLTHROUGH()
#define KMP_ATTRIBUTE_TARGET_WAITPKG   /* Nothing */
#define KMP_ATTRIBUTE_TARGET_RTM   /* Nothing */
#define KMP_NORETURN   __attribute__((noreturn))
#define KMP_ALIGN(bytes)
#define KMP_THREAD_LOCAL   __thread
#define KMP_ALIAS(alias_of)
#define KMP_WEAK_ATTRIBUTE_EXTERNAL   /* Nothing */
#define KMP_WEAK_ATTRIBUTE_INTERNAL   /* Nothing */
#define KMP_STR(x)
#define _KMP_STR(x)
#define KMP_EXPAND_NAME(api_name)
#define KMP_VERSION_SYMBOL(api_name, ver_num, ver_str)
#define KMP_VERSION_OMPC_SYMBOL(apic_name, api_name, ver_num, ver_str)
#define KMP_DO_ALIGN(bytes)
#define KMP_ALIGN_CACHE   KMP_ALIGN(CACHE_LINE)
#define KMP_ALIGN_CACHE_INTERNODE   KMP_ALIGN(INTERNODE_CACHE_LINE)
#define KMP_TEST_THEN_INC32(p)
#define KMP_TEST_THEN_INC_ACQ32(p)
#define KMP_TEST_THEN_INC64(p)
#define KMP_TEST_THEN_INC_ACQ64(p)
#define KMP_TEST_THEN_ADD4_32(p)
#define KMP_TEST_THEN_ADD4_ACQ32(p)
#define KMP_TEST_THEN_ADD4_64(p)
#define KMP_TEST_THEN_ADD4_ACQ64(p)
#define KMP_TEST_THEN_DEC64(p)
#define KMP_TEST_THEN_DEC_ACQ64(p)
#define KMP_TEST_THEN_DEC32(p)
#define KMP_TEST_THEN_DEC_ACQ32(p)
#define KMP_TEST_THEN_ADD8(p, v)
#define KMP_TEST_THEN_ADD32(p, v)
#define KMP_TEST_THEN_ADD64(p, v)
#define KMP_TEST_THEN_OR8(p, v)
#define KMP_TEST_THEN_AND8(p, v)
#define KMP_TEST_THEN_OR32(p, v)
#define KMP_TEST_THEN_AND32(p, v)
#define KMP_TEST_THEN_OR64(p, v)
#define KMP_TEST_THEN_AND64(p, v)
#define KMP_COMPARE_AND_STORE_ACQ8(p, cv, sv)
#define KMP_COMPARE_AND_STORE_REL8(p, cv, sv)
#define KMP_COMPARE_AND_STORE_ACQ16(p, cv, sv)
#define KMP_COMPARE_AND_STORE_REL16(p, cv, sv)
#define KMP_COMPARE_AND_STORE_ACQ32(p, cv, sv)
#define KMP_COMPARE_AND_STORE_REL32(p, cv, sv)
#define KMP_COMPARE_AND_STORE_PTR(p, cv, sv)
#define KMP_COMPARE_AND_STORE_RET8(p, cv, sv)
#define KMP_COMPARE_AND_STORE_RET16(p, cv, sv)
#define KMP_COMPARE_AND_STORE_RET32(p, cv, sv)
#define KMP_COMPARE_AND_STORE_ACQ64(p, cv, sv)
#define KMP_COMPARE_AND_STORE_REL64(p, cv, sv)
#define KMP_COMPARE_AND_STORE_RET64(p, cv, sv)
#define KMP_XCHG_FIXED8(p, v)
#define KMP_XCHG_FIXED16(p, v)
#define KMP_XCHG_FIXED32(p, v)
#define KMP_XCHG_FIXED64(p, v)
#define KMP_MB()
#define KMP_MFENCE()
#define KMP_SFENCE()
#define KMP_IMB()
#define KMP_ST_REL32(A, D)
#define KMP_ST_REL64(A, D)
#define KMP_LD_ACQ32(A)
#define KMP_LD_ACQ64(A)
#define TCR_1(a)
#define TCW_1(a, b)
#define TCR_4(a)
#define TCW_4(a, b)
#define TCI_4(a)
#define TCD_4(a)
#define TCR_8(a)
#define TCW_8(a, b)
#define TCI_8(a)
#define TCD_8(a)
#define TCR_SYNC_4(a)
#define TCW_SYNC_4(a, b)
#define TCX_SYNC_4(a, b, c)
#define TCR_SYNC_8(a)
#define TCW_SYNC_8(a, b)
#define TCX_SYNC_8(a, b, c)
#define TCR_PTR(a)
#define TCW_PTR(a, b)
#define TCR_SYNC_PTR(a)
#define TCW_SYNC_PTR(a, b)
#define TCX_SYNC_PTR(a, b, c)
#define FTN_TRUE   TRUE
#define FTN_FALSE   FALSE
#define VOLATILE_CAST(x)
#define KMP_WAIT   __kmp_wait_4
#define KMP_WAIT_PTR   __kmp_wait_4_ptr
#define KMP_EQ   __kmp_eq_4
#define KMP_NEQ   __kmp_neq_4
#define KMP_LT   __kmp_lt_4
#define KMP_GE   __kmp_ge_4
#define KMP_LE   __kmp_le_4
#define STATIC_EFI2_WORKAROUND   static
#define KMP_USE_BGET   1
#define USE_CMPXCHG_FIX   1
#define KMP_USE_DYNAMIC_LOCK   1
#define KMP_ATOMIC_LD(p, order)
#define KMP_ATOMIC_OP(op, p, v, order)
#define KMP_ATOMIC_LD_ACQ(p)
#define KMP_ATOMIC_LD_RLX(p)
#define KMP_ATOMIC_ST_REL(p, v)
#define KMP_ATOMIC_ST_RLX(p, v)
#define KMP_ATOMIC_ADD(p, v)
#define KMP_ATOMIC_SUB(p, v)
#define KMP_ATOMIC_AND(p, v)
#define KMP_ATOMIC_OR(p, v)
#define KMP_ATOMIC_INC(p)
#define KMP_ATOMIC_DEC(p)
#define KMP_ATOMIC_ADD_RLX(p, v)
#define KMP_ATOMIC_INC_RLX(p)
#define KMP_DLSYM(name)
#define KMP_DLSYM_NEXT(name)
#define __has_builtin(x)
#define KMP_BUILTIN_UNREACHABLE

Typedefs

typedef size_t kmp_size_t
typedef long kmp_intptr_t
typedef unsigned long kmp_uintptr_t
typedef kmp_int32 kmp_int
typedef kmp_uint32 kmp_uint
typedef va_list kmp_va_list
typedef void(* microtask_t) (int *gtid, int *npr,...)
typedef float kmp_real32
typedef double kmp_real64

Enumerations

enum  kmp_mem_fence_type { kmp_no_fence , kmp_acquire_fence , kmp_release_fence , kmp_full_fence }
enum  kmp_warnings_level { kmp_warnings_off = 0 , kmp_warnings_low , kmp_warnings_explicit = 6 , kmp_warnings_verbose }

Functions

kmp_real32 KMP_XCHG_REAL32 (volatile kmp_real32 *p, kmp_real32 v)
kmp_real64 KMP_XCHG_REAL64 (volatile kmp_real64 *p, kmp_real64 v)
template<typename T>
bool __kmp_atomic_compare_store (std::atomic< T > *p, T expected, T desired)
template<typename T>
bool __kmp_atomic_compare_store_acq (std::atomic< T > *p, T expected, T desired)
template<typename T>
bool __kmp_atomic_compare_store_rel (std::atomic< T > *p, T expected, T desired)

Macro Definition Documentation

◆ __has_attribute

#define __has_attribute ( x)
Value:
0

Definition at line 49 of file kmp_os.h.

◆ __has_builtin

#define __has_builtin ( x)
Value:
0

Definition at line 1308 of file kmp_os.h.

◆ __has_cpp_attribute

#define __has_cpp_attribute ( x)
Value:
0

Definition at line 45 of file kmp_os.h.

◆ _KMP_STR

#define _KMP_STR ( x)
Value:
#x

Definition at line 413 of file kmp_os.h.

◆ ALIGN_TO_PAGE

#define ALIGN_TO_PAGE ( x)
Value:
(void *)(((size_t)(x)) & ~((size_t)(KMP_GET_PAGE_SIZE() - 1)))
#define KMP_GET_PAGE_SIZE()
Definition kmp_os.h:322

Definition at line 327 of file kmp_os.h.

◆ CACHE_LINE

#define CACHE_LINE   128 /* cache line size in bytes */

◆ CCAST

#define CCAST ( type,
var )
Value:
(type)(var)
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_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type type

Definition at line 291 of file kmp_os.h.

Referenced by ___kmpc_free(), __kmp_allocate_task_team(), __kmp_allocate_team(), __kmp_allocate_thread(), __kmp_cleanup(), __kmp_dispatch_dxo(), __kmp_dispatch_init(), __kmp_enable_tasking(), __kmp_env_blk_free(), __kmp_env_blk_sort(), __kmp_env_free(), __kmp_execute_tasks_template(), __kmp_free_team(), __kmp_free_thread(), __kmp_internal_end(), __kmp_null_resume_wrapper(), __kmp_resize_dist_barrier(), __kmp_resume_template(), __kmp_stg_init(), __kmp_stg_parse_barrier_branch_bit(), __kmp_stg_parse_barrier_pattern(), __kmp_stg_parse_hw_subset(), __kmp_str_loc_numbers(), __kmp_wait(), __kmp_wait_4(), __kmp_wait_template(), __kmp_wait_to_unref_task_teams(), __kmpc_doacross_fini(), __kmpc_sections_init(), and kmp_flag_native< PtrType, FlagType, Sleepable >::get_void_p().

◆ FTN_FALSE

#define FTN_FALSE   FALSE

Definition at line 1182 of file kmp_os.h.

Referenced by __kmpc_test_lock(), and FTN_IN_PARALLEL().

◆ FTN_TRUE

#define FTN_TRUE   TRUE

Definition at line 1178 of file kmp_os.h.

Referenced by __kmpc_test_lock(), and FTN_IN_PARALLEL().

◆ INTERNODE_CACHE_LINE

#define INTERNODE_CACHE_LINE   4096 /* for multi-node systems */

Definition at line 336 of file kmp_os.h.

◆ KMP_AFFINITY_SUPPORTED

#define KMP_AFFINITY_SUPPORTED   0

Definition at line 88 of file kmp_os.h.

Referenced by __kmp_fork_barrier(), and __kmp_print_version_1().

◆ KMP_ALIAS

#define KMP_ALIAS ( alias_of)
Value:
__attribute__((alias(alias_of)))
__attribute__((noinline))

Definition at line 395 of file kmp_os.h.

◆ KMP_ALIGN

#define KMP_ALIGN ( bytes)
Value:
__attribute__((aligned(bytes)))

Definition at line 393 of file kmp_os.h.

Referenced by KMP_BUILD_ASSERT().

◆ KMP_ALIGN_CACHE

#define KMP_ALIGN_CACHE   KMP_ALIGN(CACHE_LINE)

Definition at line 454 of file kmp_os.h.

Referenced by KMP_BUILD_ASSERT().

◆ KMP_ALIGN_CACHE_INTERNODE

#define KMP_ALIGN_CACHE_INTERNODE   KMP_ALIGN(INTERNODE_CACHE_LINE)

Definition at line 455 of file kmp_os.h.

◆ KMP_ATOMIC_ADD

#define KMP_ATOMIC_ADD ( p,
v )
Value:
KMP_ATOMIC_OP(fetch_add, p, v, acq_rel)
void const char const char int ITT_FORMAT __itt_group_sync p
#define KMP_ATOMIC_OP(op, p, v, order)
Definition kmp_os.h:1256

Definition at line 1265 of file kmp_os.h.

Referenced by __kmp_node_ref(), and kmp_flag_atomic< PtrType, FlagType, Sleepable >::internal_release().

◆ KMP_ATOMIC_ADD_RLX

#define KMP_ATOMIC_ADD_RLX ( p,
v )
Value:
KMP_ATOMIC_OP(fetch_add, p, v, relaxed)

Definition at line 1271 of file kmp_os.h.

◆ KMP_ATOMIC_AND

#define KMP_ATOMIC_AND ( p,
v )
Value:
KMP_ATOMIC_OP(fetch_and, p, v, acq_rel)

Definition at line 1267 of file kmp_os.h.

Referenced by __kmp_second_top_half_finish_proxy(), and kmp_flag_atomic< PtrType, FlagType, Sleepable >::unset_sleeping().

◆ KMP_ATOMIC_DEC

◆ KMP_ATOMIC_INC

◆ KMP_ATOMIC_INC_RLX

#define KMP_ATOMIC_INC_RLX ( p)
Value:
KMP_ATOMIC_OP(fetch_add, p, 1, relaxed)

Definition at line 1272 of file kmp_os.h.

◆ KMP_ATOMIC_LD

#define KMP_ATOMIC_LD ( p,
order )
Value:
(p)->load(std::memory_order_##order)

Definition at line 1255 of file kmp_os.h.

◆ KMP_ATOMIC_LD_ACQ

◆ KMP_ATOMIC_LD_RLX

◆ KMP_ATOMIC_OP

#define KMP_ATOMIC_OP ( op,
p,
v,
order )
Value:
(p)->op(v, std::memory_order_##order)

Definition at line 1256 of file kmp_os.h.

◆ KMP_ATOMIC_OR

#define KMP_ATOMIC_OR ( p,
v )
Value:
KMP_ATOMIC_OP(fetch_or, p, v, acq_rel)

Definition at line 1268 of file kmp_os.h.

Referenced by __kmp_first_top_half_finish_proxy(), and kmp_flag_atomic< PtrType, FlagType, Sleepable >::set_sleeping().

◆ KMP_ATOMIC_ST_REL

◆ KMP_ATOMIC_ST_RLX

#define KMP_ATOMIC_ST_RLX ( p,
v )

◆ KMP_ATOMIC_SUB

#define KMP_ATOMIC_SUB ( p,
v )
Value:
KMP_ATOMIC_OP(fetch_sub, p, v, acq_rel)

Definition at line 1266 of file kmp_os.h.

Referenced by __kmp_node_deref().

◆ KMP_ATTRIBUTE_TARGET_RTM

#define KMP_ATTRIBUTE_TARGET_RTM   /* Nothing */

Definition at line 376 of file kmp_os.h.

◆ KMP_ATTRIBUTE_TARGET_WAITPKG

#define KMP_ATTRIBUTE_TARGET_WAITPKG   /* Nothing */

Definition at line 370 of file kmp_os.h.

◆ KMP_BUILTIN_UNREACHABLE

◆ KMP_CACHE_PREFETCH

◆ KMP_COMPARE_AND_STORE_ACQ16

#define KMP_COMPARE_AND_STORE_ACQ16 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint16 *)(p), (kmp_uint16)(cv), \
(kmp_uint16)(sv))

Definition at line 808 of file kmp_os.h.

Referenced by __kmpc_atomic_2().

◆ KMP_COMPARE_AND_STORE_ACQ32

#define KMP_COMPARE_AND_STORE_ACQ32 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint32 *)(p), (kmp_uint32)(cv), \
(kmp_uint32)(sv))
KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86<<, 2i, 1, KMP_ARCH_X86) ATOMIC_CMPXCHG(fixed2, shr, kmp_int16, 16, > KMP_ARCH_X86 KMP_ARCH_X86 kmp_uint32

Definition at line 814 of file kmp_os.h.

Referenced by __kmp_acquire_queuing_lock_timed_template(), __kmp_add_threads_to_team(), __kmp_dispatch_init_hierarchy(), __kmp_dist_barrier_release(), __kmp_enter_critical_section_reduce_block(), __kmp_finish_implicit_task(), __kmp_free_task_and_ancestors(), __kmp_free_team(), __kmp_reap_thread(), __kmp_test_queuing_lock(), and __kmpc_atomic_4().

◆ KMP_COMPARE_AND_STORE_ACQ64

#define KMP_COMPARE_AND_STORE_ACQ64 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv), \
(kmp_uint64)(sv))
unsigned long long kmp_uint64

Definition at line 857 of file kmp_os.h.

Referenced by __kmp_acquire_queuing_lock_timed_template(), and __kmpc_atomic_8().

◆ KMP_COMPARE_AND_STORE_ACQ8

#define KMP_COMPARE_AND_STORE_ACQ8 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint8 *)(p), (kmp_uint8)(cv), \
(kmp_uint8)(sv))
uint8_t kmp_uint8

Definition at line 802 of file kmp_os.h.

Referenced by __kmp_for_static_init(), __kmpc_atomic_1(), hierarchy_info::init(), and hierarchy_info::resize().

◆ KMP_COMPARE_AND_STORE_PTR

#define KMP_COMPARE_AND_STORE_PTR ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((void *volatile *)(p), (void *)(cv), \
(void *)(sv))

Definition at line 820 of file kmp_os.h.

Referenced by __kmp_get_critical_section_ptr(), and __kmp_threadprivate_resize_cache().

◆ KMP_COMPARE_AND_STORE_REL16

#define KMP_COMPARE_AND_STORE_REL16 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint16 *)(p), (kmp_uint16)(cv), \
(kmp_uint16)(sv))

Definition at line 811 of file kmp_os.h.

◆ KMP_COMPARE_AND_STORE_REL32

#define KMP_COMPARE_AND_STORE_REL32 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint32 *)(p), (kmp_uint32)(cv), \
(kmp_uint32)(sv))

Definition at line 817 of file kmp_os.h.

Referenced by __kmp_release_queuing_lock(), and compare_and_swap< kmp_int32 >().

◆ KMP_COMPARE_AND_STORE_REL64

#define KMP_COMPARE_AND_STORE_REL64 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv), \
(kmp_uint64)(sv))

Definition at line 860 of file kmp_os.h.

Referenced by __kmp_dispatch_next_algorithm(), __kmp_release_queuing_lock(), and compare_and_swap< kmp_int64 >().

◆ KMP_COMPARE_AND_STORE_REL8

#define KMP_COMPARE_AND_STORE_REL8 ( p,
cv,
sv )
Value:
__sync_bool_compare_and_swap((volatile kmp_uint8 *)(p), (kmp_uint8)(cv), \
(kmp_uint8)(sv))

Definition at line 805 of file kmp_os.h.

◆ KMP_COMPARE_AND_STORE_RET16

#define KMP_COMPARE_AND_STORE_RET16 ( p,
cv,
sv )
Value:
__sync_val_compare_and_swap((volatile kmp_uint16 *)(p), (kmp_uint16)(cv), \
(kmp_uint16)(sv))

Definition at line 827 of file kmp_os.h.

◆ KMP_COMPARE_AND_STORE_RET32

#define KMP_COMPARE_AND_STORE_RET32 ( p,
cv,
sv )
Value:
__sync_val_compare_and_swap((volatile kmp_uint32 *)(p), (kmp_uint32)(cv), \
(kmp_uint32)(sv))

Definition at line 830 of file kmp_os.h.

Referenced by __kmpc_doacross_init().

◆ KMP_COMPARE_AND_STORE_RET64

#define KMP_COMPARE_AND_STORE_RET64 ( p,
cv,
sv )
Value:
__sync_val_compare_and_swap((volatile kmp_uint64 *)(p), (kmp_uint64)(cv), \
(kmp_uint64)(sv))

Definition at line 863 of file kmp_os.h.

Referenced by __kmpc_doacross_init().

◆ KMP_COMPARE_AND_STORE_RET8

#define KMP_COMPARE_AND_STORE_RET8 ( p,
cv,
sv )
Value:
__sync_val_compare_and_swap((volatile kmp_uint8 *)(p), (kmp_uint8)(cv), \
(kmp_uint8)(sv))

Definition at line 824 of file kmp_os.h.

◆ KMP_COMPILER_CLANG

#define KMP_COMPILER_CLANG   0

Definition at line 55 of file kmp_os.h.

◆ KMP_COMPILER_GCC

#define KMP_COMPILER_GCC   0

Definition at line 54 of file kmp_os.h.

◆ KMP_COMPILER_ICC

#define KMP_COMPILER_ICC   0

Definition at line 53 of file kmp_os.h.

◆ KMP_COMPILER_ICX

#define KMP_COMPILER_ICX   0

Definition at line 57 of file kmp_os.h.

◆ KMP_COMPILER_MSVC

#define KMP_COMPILER_MSVC   0

Definition at line 56 of file kmp_os.h.

◆ KMP_DLSYM

#define KMP_DLSYM ( name)
Value:
dlsym(RTLD_DEFAULT, name)
__itt_string_handle * name
Definition ittnotify.h:3305

Definition at line 1302 of file kmp_os.h.

Referenced by __kmp_init_target_mem(), FTN_GET_NUM_DEVICES(), FTN_PAUSE_RESOURCE(), FTN_PAUSE_RESOURCE_ALL(), and kmp_tgt_allocator_t::init().

◆ KMP_DLSYM_NEXT

◆ KMP_DO_ALIGN

#define KMP_DO_ALIGN ( bytes)
Value:
KMP_ALIGN(bytes)
#define KMP_ALIGN(bytes)
Definition kmp_os.h:393

Definition at line 453 of file kmp_os.h.

◆ KMP_EQ

#define KMP_EQ   __kmp_eq_4

Definition at line 1195 of file kmp_os.h.

Referenced by __kmp_acquire_queuing_lock_timed_template(), and __kmp_parallel_deo().

◆ KMP_EXPAND_NAME

◆ KMP_EXPORT

◆ KMP_FALLTHROUGH

#define KMP_FALLTHROUGH ( )
Value:
((void)0)
void
Definition ittnotify.h:3324

Definition at line 364 of file kmp_os.h.

Referenced by __kmp_register_library_startup(), and __kmp_taskloop().

◆ KMP_FTN_APPEND

#define KMP_FTN_APPEND   2

Definition at line 23 of file kmp_os.h.

◆ KMP_FTN_PLAIN

#define KMP_FTN_PLAIN   1

Definition at line 22 of file kmp_os.h.

◆ KMP_FTN_UPPER

#define KMP_FTN_UPPER   3

Definition at line 24 of file kmp_os.h.

◆ KMP_GE

#define KMP_GE   __kmp_ge_4

Definition at line 1198 of file kmp_os.h.

◆ KMP_GET_PAGE_SIZE

#define KMP_GET_PAGE_SIZE ( )
Value:
getpagesize()

Definition at line 322 of file kmp_os.h.

Referenced by __kmp_print_storage_map_gtid().

◆ KMP_GROUP_AFFINITY

#define KMP_GROUP_AFFINITY   0

Definition at line 89 of file kmp_os.h.

◆ KMP_HAVE_MWAIT

#define KMP_HAVE_MWAIT
Value:
#define KMP_OS_LINUX
#define KMP_OS_WINDOWS
#define KMP_ARCH_X86_64
#define KMP_ARCH_X86
#define KMP_MIC2

Definition at line 304 of file kmp_os.h.

◆ KMP_HAVE_QUAD

#define KMP_HAVE_QUAD   0

Definition at line 99 of file kmp_os.h.

◆ KMP_HAVE_SCHED_GETCPU

#define KMP_HAVE_SCHED_GETCPU   0

Definition at line 95 of file kmp_os.h.

◆ KMP_HAVE_UMWAIT

#define KMP_HAVE_UMWAIT
Value:

Definition at line 307 of file kmp_os.h.

◆ KMP_IMB

#define KMP_IMB ( )
Value:
/* nothing to do */

Definition at line 1104 of file kmp_os.h.

◆ KMP_INT_MAX

#define KMP_INT_MAX   ((kmp_int32)0x7FFFFFFF)

Definition at line 217 of file kmp_os.h.

Referenced by __kmp_stg_parse_lock_block().

◆ KMP_INT_MIN

#define KMP_INT_MIN   ((kmp_int32)0x80000000)

Definition at line 218 of file kmp_os.h.

◆ KMP_INTPTR

#define KMP_INTPTR   1

Definition at line 203 of file kmp_os.h.

◆ KMP_INTPTR_SPEC

#define KMP_INTPTR_SPEC   "ld"

Definition at line 206 of file kmp_os.h.

◆ KMP_LD_ACQ32

#define KMP_LD_ACQ32 ( A)
Value:
(*(A))

Definition at line 1116 of file kmp_os.h.

◆ KMP_LD_ACQ64

#define KMP_LD_ACQ64 ( A)
Value:
(*(A))

Definition at line 1120 of file kmp_os.h.

◆ KMP_LE

#define KMP_LE   __kmp_le_4

Definition at line 1199 of file kmp_os.h.

◆ KMP_LT

#define KMP_LT   __kmp_lt_4

Definition at line 1197 of file kmp_os.h.

◆ KMP_MB

#define KMP_MB ( )
Value:
/* nothing to do */

Definition at line 1066 of file kmp_os.h.

Referenced by ___kmp_allocate_align(), ___kmp_free(), __kmp_acquire_drdpa_lock_timed_template(), __kmp_acquire_nested_drdpa_lock(), __kmp_acquire_nested_queuing_lock(), __kmp_acquire_queuing_lock_timed_template(), __kmp_acquire_tas_lock_timed_template(), __kmp_alloc(), __kmp_allocate_team(), __kmp_allocate_thread(), __kmp_barrier_template(), __kmp_check_deps(), __kmp_create_worker(), __kmp_dispatch_deo(), __kmp_dispatch_dxo(), __kmp_dispatch_finish(), __kmp_dispatch_next(), __kmp_do_serial_initialize(), __kmp_env_initialize(), __kmp_fork_barrier(), __kmp_fork_call(), __kmp_fork_in_teams(), __kmp_fork_team_threads(), __kmp_free_team(), __kmp_free_thread(), __kmp_hierarchical_barrier_release(), __kmp_hyper_barrier_gather(), __kmp_hyper_barrier_release(), __kmp_initialize_info(), __kmp_initialize_team(), __kmp_internal_end(), __kmp_internal_end_library(), __kmp_internal_end_thread(), __kmp_internal_fork(), __kmp_internal_join(), __kmp_join_barrier(), __kmp_join_call(), __kmp_launch_thread(), __kmp_launch_worker(), __kmp_launch_worker(), __kmp_linear_barrier_release_template(), __kmp_lock_block_allocate(), __kmp_parallel_deo(), __kmp_parallel_dxo(), __kmp_parallel_initialize(), __kmp_realloc_task_threads_data(), __kmp_reap_common(), __kmp_reap_team(), __kmp_reap_thread(), __kmp_reap_worker(), __kmp_register_root(), __kmp_release_deps(), __kmp_release_drdpa_lock_with_checks(), __kmp_release_nested_drdpa_lock(), __kmp_release_nested_drdpa_lock_with_checks(), __kmp_release_nested_queuing_lock(), __kmp_release_nested_queuing_lock_with_checks(), __kmp_release_nested_tas_lock(), __kmp_release_nested_tas_lock_with_checks(), __kmp_release_queuing_lock(), __kmp_release_queuing_lock_with_checks(), __kmp_release_tas_lock(), __kmp_release_tas_lock_with_checks(), __kmp_run_before_invoked_task(), __kmp_serial_fork_call(), __kmp_serialized_parallel(), __kmp_task_team_wait(), __kmp_test_nested_drdpa_lock(), __kmp_test_nested_queuing_lock(), __kmp_test_nested_tas_lock(), __kmp_tree_barrier_release(), __kmp_unregister_root_current_thread(), __kmp_wait_template(), __kmpc_copyprivate(), __kmpc_copyprivate_light(), __kmpc_doacross_init(), __kmpc_doacross_post(), __kmpc_doacross_wait(), __kmpc_end_serialized_parallel(), __kmpc_next_section(), __kmpc_sections_init(), __kmpc_threadprivate_cached(), __kmpc_unset_lock(), and __kmpc_unset_nest_lock().

◆ KMP_MEM_CONS_FENCE

#define KMP_MEM_CONS_FENCE   1

Definition at line 38 of file kmp_os.h.

◆ KMP_MEM_CONS_MODEL

#define KMP_MEM_CONS_MODEL   KMP_MEM_CONS_VOLATILE

Definition at line 41 of file kmp_os.h.

◆ KMP_MEM_CONS_VOLATILE

#define KMP_MEM_CONS_VOLATILE   0

Definition at line 37 of file kmp_os.h.

◆ KMP_MFENCE

#define KMP_MFENCE ( )
Value:
#define KMP_MB()
Definition kmp_os.h:1066

Definition at line 1099 of file kmp_os.h.

Referenced by __kmp_dist_barrier_gather(), __kmp_dist_barrier_release(), __kmp_resize_dist_barrier(), and __kmpc_flush().

◆ KMP_NEQ

#define KMP_NEQ   __kmp_neq_4

Definition at line 1196 of file kmp_os.h.

Referenced by __kmp_release_queuing_lock().

◆ KMP_NORETURN

#define KMP_NORETURN   __attribute__((noreturn))

Definition at line 385 of file kmp_os.h.

Referenced by __kmp_abort().

◆ KMP_OFF

#define KMP_OFF   0

Definition at line 34 of file kmp_os.h.

◆ KMP_ON

#define KMP_ON   1

Definition at line 35 of file kmp_os.h.

◆ KMP_PTR_SKIP

#define KMP_PTR_SKIP   (sizeof(void *))

Definition at line 30 of file kmp_os.h.

◆ KMP_SFENCE

#define KMP_SFENCE ( )
Value:

Definition at line 1100 of file kmp_os.h.

◆ KMP_SIZE_T_MAX

#define KMP_SIZE_T_MAX   (0xFFFFFFFFFFFFFFFF)

◆ KMP_ST_REL32

#define KMP_ST_REL32 ( A,
D )
Value:
(*(A) = (D))

Definition at line 1108 of file kmp_os.h.

◆ KMP_ST_REL64

#define KMP_ST_REL64 ( A,
D )
Value:
(*(A) = (D))

Definition at line 1112 of file kmp_os.h.

◆ KMP_STR

#define KMP_STR ( x)
Value:
#define _KMP_STR(x)
Definition kmp_os.h:413

Definition at line 412 of file kmp_os.h.

◆ KMP_TEST_THEN_ADD32

#define KMP_TEST_THEN_ADD32 ( p,
v )
Value:
__sync_fetch_and_add((volatile kmp_int32 *)(p), (kmp_int32)(v))
int32_t kmp_int32

Definition at line 769 of file kmp_os.h.

Referenced by test_then_add< kmp_int32 >().

◆ KMP_TEST_THEN_ADD4_32

#define KMP_TEST_THEN_ADD4_32 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int32 *)(p), 4)

Definition at line 740 of file kmp_os.h.

Referenced by flag_traits< flag32 >::test_then_add4().

◆ KMP_TEST_THEN_ADD4_64

#define KMP_TEST_THEN_ADD4_64 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int64 *)(p), 4LL)
int64_t kmp_int64
Definition common.h:10

Definition at line 754 of file kmp_os.h.

Referenced by flag_traits< atomic_flag64 >::test_then_add4(), flag_traits< flag64 >::test_then_add4(), and flag_traits< flag_oncore >::test_then_add4().

◆ KMP_TEST_THEN_ADD4_ACQ32

#define KMP_TEST_THEN_ADD4_ACQ32 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int32 *)(p), 4)

Definition at line 742 of file kmp_os.h.

◆ KMP_TEST_THEN_ADD4_ACQ64

#define KMP_TEST_THEN_ADD4_ACQ64 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int64 *)(p), 4LL)

Definition at line 756 of file kmp_os.h.

◆ KMP_TEST_THEN_ADD64

#define KMP_TEST_THEN_ADD64 ( p,
v )
Value:
__sync_fetch_and_add((volatile kmp_int64 *)(p), (kmp_int64)(v))

Definition at line 776 of file kmp_os.h.

Referenced by ___kmpc_free(), __kmp_alloc(), and test_then_add< kmp_int64 >().

◆ KMP_TEST_THEN_ADD8

#define KMP_TEST_THEN_ADD8 ( p,
v )
Value:
__sync_fetch_and_add((volatile kmp_int8 *)(p), (kmp_int8)(v))
KMP_ARCH_X86 KMP_ARCH_X86 KMP_ARCH_X86 kmp_int8

Definition at line 767 of file kmp_os.h.

◆ KMP_TEST_THEN_AND32

#define KMP_TEST_THEN_AND32 ( p,
v )
Value:
__sync_fetch_and_and((volatile kmp_uint32 *)(p), (kmp_uint32)(v))

Definition at line 786 of file kmp_os.h.

Referenced by flag_traits< flag32 >::test_then_and().

◆ KMP_TEST_THEN_AND64

#define KMP_TEST_THEN_AND64 ( p,
v )

◆ KMP_TEST_THEN_AND8

#define KMP_TEST_THEN_AND8 ( p,
v )
Value:
__sync_fetch_and_and((volatile kmp_int8 *)(p), (kmp_int8)(v))

Definition at line 782 of file kmp_os.h.

◆ KMP_TEST_THEN_DEC32

#define KMP_TEST_THEN_DEC32 ( p)
Value:
__sync_fetch_and_sub((volatile kmp_int32 *)(p), 1)

Definition at line 763 of file kmp_os.h.

◆ KMP_TEST_THEN_DEC64

#define KMP_TEST_THEN_DEC64 ( p)
Value:
__sync_fetch_and_sub((volatile kmp_int64 *)(p), 1LL)

Definition at line 758 of file kmp_os.h.

◆ KMP_TEST_THEN_DEC_ACQ32

#define KMP_TEST_THEN_DEC_ACQ32 ( p)
Value:
__sync_fetch_and_sub((volatile kmp_int32 *)(p), 1)

Definition at line 765 of file kmp_os.h.

◆ KMP_TEST_THEN_DEC_ACQ64

#define KMP_TEST_THEN_DEC_ACQ64 ( p)
Value:
__sync_fetch_and_sub((volatile kmp_int64 *)(p), 1LL)

Definition at line 760 of file kmp_os.h.

◆ KMP_TEST_THEN_INC32

#define KMP_TEST_THEN_INC32 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int32 *)(p), 1)

Definition at line 725 of file kmp_os.h.

Referenced by __kmp_dispatch_init_hierarchy(), __kmpc_doacross_fini(), and test_then_inc< kmp_int32 >().

◆ KMP_TEST_THEN_INC64

#define KMP_TEST_THEN_INC64 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int64 *)(p), 1LL)

Definition at line 735 of file kmp_os.h.

Referenced by __ompt_get_unique_id_internal(), counter_barrier_impl< T >::barrier(), and test_then_inc< kmp_int64 >().

◆ KMP_TEST_THEN_INC_ACQ32

#define KMP_TEST_THEN_INC_ACQ32 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int32 *)(p), 1)

Definition at line 727 of file kmp_os.h.

Referenced by test_then_inc_acq< kmp_int32 >().

◆ KMP_TEST_THEN_INC_ACQ64

#define KMP_TEST_THEN_INC_ACQ64 ( p)
Value:
__sync_fetch_and_add((volatile kmp_int64 *)(p), 1LL)

Definition at line 737 of file kmp_os.h.

Referenced by test_then_inc_acq< kmp_int64 >().

◆ KMP_TEST_THEN_OR32

#define KMP_TEST_THEN_OR32 ( p,
v )
Value:
__sync_fetch_and_or((volatile kmp_uint32 *)(p), (kmp_uint32)(v))

Definition at line 784 of file kmp_os.h.

Referenced by __kmpc_doacross_post(), and flag_traits< flag32 >::test_then_or().

◆ KMP_TEST_THEN_OR64

#define KMP_TEST_THEN_OR64 ( p,
v )

◆ KMP_TEST_THEN_OR8

#define KMP_TEST_THEN_OR8 ( p,
v )
Value:
__sync_fetch_and_or((volatile kmp_int8 *)(p), (kmp_int8)(v))

Definition at line 780 of file kmp_os.h.

◆ KMP_THREAD_LOCAL

#define KMP_THREAD_LOCAL   __thread

Definition at line 394 of file kmp_os.h.

◆ KMP_UINTPTR_SPEC

#define KMP_UINTPTR_SPEC   "lu"

◆ KMP_USE_BGET

#define KMP_USE_BGET   1

Definition at line 1211 of file kmp_os.h.

◆ KMP_USE_DYNAMIC_LOCK

#define KMP_USE_DYNAMIC_LOCK   1

Definition at line 1220 of file kmp_os.h.

◆ KMP_USE_X87CONTROL

#define KMP_USE_X87CONTROL   0

Definition at line 128 of file kmp_os.h.

◆ kmp_va_addr_of

#define kmp_va_addr_of ( ap)
Value:
(ap)

Definition at line 230 of file kmp_os.h.

Referenced by __kmp_GOMP_fork_call(), __kmpc_fork_call(), and __kmpc_fork_teams().

◆ kmp_va_deref

#define kmp_va_deref ( ap)
Value:
(ap)

Definition at line 229 of file kmp_os.h.

Referenced by __kmp_fork_call(), __kmp_fork_in_teams(), and __kmp_serial_fork_call().

◆ KMP_VERSION_OMPC_SYMBOL

#define KMP_VERSION_OMPC_SYMBOL ( apic_name,
api_name,
ver_num,
ver_str )
Value:
/* Nothing */

Definition at line 447 of file kmp_os.h.

◆ KMP_VERSION_SYMBOL

#define KMP_VERSION_SYMBOL ( api_name,
ver_num,
ver_str )
Value:
/* Nothing */

Definition at line 446 of file kmp_os.h.

◆ KMP_WAIT

#define KMP_WAIT   __kmp_wait_4

◆ KMP_WAIT_PTR

#define KMP_WAIT_PTR   __kmp_wait_4_ptr

Definition at line 1194 of file kmp_os.h.

Referenced by __kmp_acquire_ticket_lock_timed_template().

◆ KMP_WEAK_ATTRIBUTE_EXTERNAL

#define KMP_WEAK_ATTRIBUTE_EXTERNAL   /* Nothing */

Definition at line 401 of file kmp_os.h.

◆ KMP_WEAK_ATTRIBUTE_INTERNAL

#define KMP_WEAK_ATTRIBUTE_INTERNAL   /* Nothing */

Definition at line 407 of file kmp_os.h.

◆ KMP_XCHG_FIXED16

#define KMP_XCHG_FIXED16 ( p,
v )
Value:
__sync_lock_test_and_set((volatile kmp_uint16 *)(p), (kmp_uint16)(v))

Definition at line 876 of file kmp_os.h.

◆ KMP_XCHG_FIXED32

#define KMP_XCHG_FIXED32 ( p,
v )
Value:
__sync_lock_test_and_set((volatile kmp_uint32 *)(p), (kmp_uint32)(v))

Definition at line 878 of file kmp_os.h.

Referenced by __kmp_accumulate_stats_at_exit().

◆ KMP_XCHG_FIXED64

#define KMP_XCHG_FIXED64 ( p,
v )
Value:
__sync_lock_test_and_set((volatile kmp_uint64 *)(p), (kmp_uint64)(v))

Definition at line 880 of file kmp_os.h.

Referenced by __kmp_dispatch_next_algorithm().

◆ KMP_XCHG_FIXED8

#define KMP_XCHG_FIXED8 ( p,
v )
Value:
__sync_lock_test_and_set((volatile kmp_uint8 *)(p), (kmp_uint8)(v))

Definition at line 873 of file kmp_os.h.

◆ PAGE_ALIGNED

#define PAGE_ALIGNED ( _addr)
Value:
(!((size_t)_addr & (size_t)(KMP_GET_PAGE_SIZE() - 1)))

Definition at line 325 of file kmp_os.h.

◆ RCAST

◆ STATIC_EFI2_WORKAROUND

#define STATIC_EFI2_WORKAROUND   static

Definition at line 1206 of file kmp_os.h.

◆ TCD_4

#define TCD_4 ( a)
Value:
(--(a))
int a

Definition at line 1140 of file kmp_os.h.

◆ TCD_8

#define TCD_8 ( a)
Value:
(--(a))

Definition at line 1144 of file kmp_os.h.

◆ TCI_4

#define TCI_4 ( a)
Value:
(++(a))

Definition at line 1139 of file kmp_os.h.

◆ TCI_8

#define TCI_8 ( a)
Value:
(++(a))

Definition at line 1143 of file kmp_os.h.

◆ TCR_1

#define TCR_1 ( a)
Value:
(a)

Definition at line 1135 of file kmp_os.h.

Referenced by __kmp_get_hierarchy(), and hierarchy_info::init().

◆ TCR_4

#define TCR_4 ( a)
Value:
(a)

Definition at line 1137 of file kmp_os.h.

Referenced by __kmp_acquire_drdpa_lock_timed_template(), __kmp_alloc_task_deque(), __kmp_allocate_thread(), __kmp_aux_set_stacksize(), __kmp_cleanup(), __kmp_common_destroy(), __kmp_common_destroy_gtid(), __kmp_common_initialize(), __kmp_create_worker(), __kmp_dispatch_init(), __kmp_dispatch_init_hierarchy(), __kmp_dist_barrier_gather(), __kmp_dist_barrier_release(), __kmp_dist_barrier_wakeup(), __kmp_do_serial_initialize(), __kmp_enter_single(), __kmp_env_initialize(), __kmp_execute_tasks_template(), __kmp_fork_barrier(), __kmp_fork_call(), __kmp_get_global_thread_id(), __kmp_get_global_thread_id_reg(), __kmp_get_queuing_lock_owner(), __kmp_give_task(), __kmp_hidden_helper_initialize(), __kmp_hierarchical_barrier_release(), __kmp_hyper_barrier_release(), __kmp_internal_end(), __kmp_internal_end_library(), __kmp_internal_end_thread(), __kmp_launch_thread(), __kmp_launch_worker(), __kmp_linear_barrier_release_template(), __kmp_parallel_initialize(), __kmp_push_priority_task(), __kmp_push_task(), __kmp_push_thread_limit(), __kmp_realloc_task_deque(), __kmp_realloc_task_threads_data(), __kmp_reap_common(), __kmp_register_root(), __kmp_reinitialize_team(), __kmp_release_template(), __kmp_remove_my_task(), __kmp_reserve_threads(), __kmp_resume_template(), __kmp_resume_template(), __kmp_serialized_parallel(), __kmp_setup_icv_copy(), __kmp_steal_task(), __kmp_stg_parse_consistency_check(), __kmp_stg_parse_disp_buffers(), __kmp_stg_parse_hot_teams_level(), __kmp_stg_parse_hot_teams_mode(), __kmp_stg_parse_kmp_dynamic_mode(), __kmp_stg_parse_omp_cancellation(), __kmp_suspend_template(), __kmp_suspend_template(), __kmp_task_alloc(), __kmp_tasking_barrier(), __kmp_tree_barrier_release(), __kmp_unregister_root_current_thread(), __kmp_wait_4(), __kmp_wait_template(), __kmpc_barrier(), __kmpc_barrier_master(), __kmpc_barrier_master_nowait(), __kmpc_end_serialized_parallel(), __kmpc_global_num_threads(), __kmpc_masked(), __kmpc_master(), __kmpc_ordered(), __kmpc_reduce(), __kmpc_reduce_nowait(), __kmpc_sections_init(), FTN_CAPTURE_AFFINITY(), FTN_CONTROL_TOOL(), FTN_CREATE_AFFINITY_MASK(), FTN_DESTROY_AFFINITY_MASK(), FTN_DISPLAY_AFFINITY(), FTN_GET_AFFINITY(), FTN_GET_AFFINITY_MASK_PROC(), FTN_GET_AFFINITY_MAX_PROC(), FTN_GET_MAX_ACTIVE_LEVELS(), FTN_GET_MAX_THREADS(), FTN_GET_NUM_KNOWN_THREADS(), FTN_GET_NUM_PLACES(), FTN_GET_NUM_PROCS(), FTN_GET_PARTITION_NUM_PLACES(), FTN_GET_PARTITION_PLACE_NUMS(), FTN_GET_PLACE_NUM(), FTN_GET_PLACE_NUM_PROCS(), FTN_GET_PLACE_PROC_IDS(), FTN_IN_FINAL(), FTN_SET_AFFINITY(), FTN_SET_AFFINITY_MASK_PROC(), FTN_UNSET_AFFINITY_MASK_PROC(), KMP_API_NAME_GOMP_SINGLE_COPY_START(), KMP_API_NAME_GOMP_SINGLE_START(), kmpc_get_affinity_mask_proc(), kmpc_set_affinity_mask_proc(), kmpc_unset_affinity_mask_proc(), ompc_capture_affinity(), ompc_display_affinity(), and flag_traits< flag32 >::tcr().

◆ TCR_8

◆ TCR_PTR

◆ TCR_SYNC_4

#define TCR_SYNC_4 ( a)
Value:
(a)

Definition at line 1145 of file kmp_os.h.

Referenced by __kmp_dist_barrier_gather(), and __kmp_wait_template().

◆ TCR_SYNC_8

#define TCR_SYNC_8 ( a)
Value:
(a)

Definition at line 1150 of file kmp_os.h.

◆ TCR_SYNC_PTR

#define TCR_SYNC_PTR ( a)
Value:
((void *)TCR_SYNC_8(a))
#define TCR_SYNC_8(a)
Definition kmp_os.h:1150

Definition at line 1168 of file kmp_os.h.

Referenced by __kmp_check_stack_overlap(), __kmp_get_global_thread_id(), __kmp_invoke_task_func(), and __kmp_launch_thread().

◆ TCW_1

#define TCW_1 ( a,
b )
Value:
(a) = (b)

Definition at line 1136 of file kmp_os.h.

◆ TCW_4

◆ TCW_8

#define TCW_8 ( a,
b )
Value:
(a) = (b)

Definition at line 1142 of file kmp_os.h.

Referenced by __kmp_hierarchical_barrier_release().

◆ TCW_PTR

◆ TCW_SYNC_4

◆ TCW_SYNC_8

#define TCW_SYNC_8 ( a,
b )
Value:
(a) = (b)

Definition at line 1151 of file kmp_os.h.

◆ TCW_SYNC_PTR

#define TCW_SYNC_PTR ( a,
b )

◆ TCX_SYNC_4

#define TCX_SYNC_4 ( a,
b,
c )
Value:
KMP_COMPARE_AND_STORE_REL32((volatile kmp_int32 *)(volatile void *)&(a), \
(kmp_int32)(b), (kmp_int32)(c))
#define KMP_COMPARE_AND_STORE_REL32(p, cv, sv)
Definition kmp_os.h:817

Definition at line 1147 of file kmp_os.h.

◆ TCX_SYNC_8

#define TCX_SYNC_8 ( a,
b,
c )
Value:
KMP_COMPARE_AND_STORE_REL64((volatile kmp_int64 *)(volatile void *)&(a), \
(kmp_int64)(b), (kmp_int64)(c))
#define KMP_COMPARE_AND_STORE_REL64(p, cv, sv)
Definition kmp_os.h:860

Definition at line 1152 of file kmp_os.h.

◆ TCX_SYNC_PTR

#define TCX_SYNC_PTR ( a,
b,
c )
Value:
((void *)TCX_SYNC_8((a), (b), (c)))
#define TCX_SYNC_8(a, b, c)
Definition kmp_os.h:1152

Definition at line 1170 of file kmp_os.h.

◆ USE_CMPXCHG_FIX

#define USE_CMPXCHG_FIX   1

Definition at line 1216 of file kmp_os.h.

◆ VOLATILE_CAST

#define VOLATILE_CAST ( x)

Typedef Documentation

◆ kmp_int

typedef kmp_int32 kmp_int

Definition at line 214 of file kmp_os.h.

◆ kmp_intptr_t

typedef long kmp_intptr_t

Definition at line 204 of file kmp_os.h.

◆ kmp_real32

◆ kmp_real64

◆ kmp_size_t

typedef size_t kmp_size_t

Definition at line 198 of file kmp_os.h.

◆ kmp_uint

Definition at line 215 of file kmp_os.h.

◆ kmp_uintptr_t

typedef unsigned long kmp_uintptr_t

Definition at line 205 of file kmp_os.h.

◆ kmp_va_list

typedef va_list kmp_va_list

Definition at line 228 of file kmp_os.h.

◆ microtask_t

typedef void(* microtask_t) (int *gtid, int *npr,...)

Definition at line 1185 of file kmp_os.h.

Enumeration Type Documentation

◆ kmp_mem_fence_type

Enumerator
kmp_no_fence 
kmp_acquire_fence 
kmp_release_fence 
kmp_full_fence 

Definition at line 458 of file kmp_os.h.

◆ kmp_warnings_level

Enumerator
kmp_warnings_off 
kmp_warnings_low 
kmp_warnings_explicit 
kmp_warnings_verbose 

Definition at line 1240 of file kmp_os.h.

Function Documentation

◆ __kmp_atomic_compare_store()

template<typename T>
bool __kmp_atomic_compare_store ( std::atomic< T > * p,
T expected,
T desired )

◆ __kmp_atomic_compare_store_acq()

template<typename T>
bool __kmp_atomic_compare_store_acq ( std::atomic< T > * p,
T expected,
T desired )

◆ __kmp_atomic_compare_store_rel()

template<typename T>
bool __kmp_atomic_compare_store_rel ( std::atomic< T > * p,
T expected,
T desired )

Definition at line 1288 of file kmp_os.h.

References p.

◆ KMP_XCHG_REAL32()

kmp_real32 KMP_XCHG_REAL32 ( volatile kmp_real32 * p,
kmp_real32 v )
inline

Definition at line 883 of file kmp_os.h.

References kmp_uint32, and p.

◆ KMP_XCHG_REAL64()

kmp_real64 KMP_XCHG_REAL64 ( volatile kmp_real64 * p,
kmp_real64 v )
inline

Definition at line 894 of file kmp_os.h.

References p.