1*bed243d3SAndroid Build Coastguard Worker /* 2*bed243d3SAndroid Build Coastguard Worker * include/omp.h.var 3*bed243d3SAndroid Build Coastguard Worker */ 4*bed243d3SAndroid Build Coastguard Worker 5*bed243d3SAndroid Build Coastguard Worker 6*bed243d3SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 7*bed243d3SAndroid Build Coastguard Worker // 8*bed243d3SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 9*bed243d3SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information. 10*bed243d3SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 11*bed243d3SAndroid Build Coastguard Worker // 12*bed243d3SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 13*bed243d3SAndroid Build Coastguard Worker 14*bed243d3SAndroid Build Coastguard Worker 15*bed243d3SAndroid Build Coastguard Worker #ifndef __OMP_H 16*bed243d3SAndroid Build Coastguard Worker # define __OMP_H 17*bed243d3SAndroid Build Coastguard Worker 18*bed243d3SAndroid Build Coastguard Worker # include <stddef.h> 19*bed243d3SAndroid Build Coastguard Worker # include <stdlib.h> 20*bed243d3SAndroid Build Coastguard Worker # include <stdint.h> 21*bed243d3SAndroid Build Coastguard Worker 22*bed243d3SAndroid Build Coastguard Worker # define KMP_VERSION_MAJOR 5 23*bed243d3SAndroid Build Coastguard Worker # define KMP_VERSION_MINOR 0 24*bed243d3SAndroid Build Coastguard Worker # define KMP_VERSION_BUILD 20140926 25*bed243d3SAndroid Build Coastguard Worker # define KMP_BUILD_DATE "No_Timestamp" 26*bed243d3SAndroid Build Coastguard Worker 27*bed243d3SAndroid Build Coastguard Worker # ifdef __cplusplus 28*bed243d3SAndroid Build Coastguard Worker extern "C" { 29*bed243d3SAndroid Build Coastguard Worker # endif 30*bed243d3SAndroid Build Coastguard Worker 31*bed243d3SAndroid Build Coastguard Worker # define omp_set_affinity_format ompc_set_affinity_format 32*bed243d3SAndroid Build Coastguard Worker # define omp_get_affinity_format ompc_get_affinity_format 33*bed243d3SAndroid Build Coastguard Worker # define omp_display_affinity ompc_display_affinity 34*bed243d3SAndroid Build Coastguard Worker # define omp_capture_affinity ompc_capture_affinity 35*bed243d3SAndroid Build Coastguard Worker 36*bed243d3SAndroid Build Coastguard Worker # if defined(_WIN32) 37*bed243d3SAndroid Build Coastguard Worker # define __KAI_KMPC_CONVENTION __cdecl 38*bed243d3SAndroid Build Coastguard Worker # ifndef __KMP_IMP 39*bed243d3SAndroid Build Coastguard Worker # define __KMP_IMP __declspec(dllimport) 40*bed243d3SAndroid Build Coastguard Worker # endif 41*bed243d3SAndroid Build Coastguard Worker # else 42*bed243d3SAndroid Build Coastguard Worker # define __KAI_KMPC_CONVENTION 43*bed243d3SAndroid Build Coastguard Worker # ifndef __KMP_IMP 44*bed243d3SAndroid Build Coastguard Worker # define __KMP_IMP 45*bed243d3SAndroid Build Coastguard Worker # endif 46*bed243d3SAndroid Build Coastguard Worker # endif 47*bed243d3SAndroid Build Coastguard Worker 48*bed243d3SAndroid Build Coastguard Worker /* schedule kind constants */ 49*bed243d3SAndroid Build Coastguard Worker typedef enum omp_sched_t { 50*bed243d3SAndroid Build Coastguard Worker omp_sched_static = 1, 51*bed243d3SAndroid Build Coastguard Worker omp_sched_dynamic = 2, 52*bed243d3SAndroid Build Coastguard Worker omp_sched_guided = 3, 53*bed243d3SAndroid Build Coastguard Worker omp_sched_auto = 4, 54*bed243d3SAndroid Build Coastguard Worker omp_sched_monotonic = 0x80000000 55*bed243d3SAndroid Build Coastguard Worker } omp_sched_t; 56*bed243d3SAndroid Build Coastguard Worker 57*bed243d3SAndroid Build Coastguard Worker /* set API functions */ 58*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_num_threads (int); 59*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_dynamic (int); 60*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_nested (int); 61*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_max_active_levels (int); 62*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_schedule (omp_sched_t, int); 63*bed243d3SAndroid Build Coastguard Worker 64*bed243d3SAndroid Build Coastguard Worker /* query API functions */ 65*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_num_threads (void); 66*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_dynamic (void); 67*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_nested (void); 68*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_max_threads (void); 69*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_thread_num (void); 70*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_num_procs (void); 71*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_in_parallel (void); 72*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_in_final (void); 73*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_active_level (void); 74*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_level (void); 75*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_ancestor_thread_num (int); 76*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_team_size (int); 77*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_thread_limit (void); 78*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_max_active_levels (void); 79*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_get_schedule (omp_sched_t *, int *); 80*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_max_task_priority (void); 81*bed243d3SAndroid Build Coastguard Worker 82*bed243d3SAndroid Build Coastguard Worker /* lock API functions */ 83*bed243d3SAndroid Build Coastguard Worker typedef struct omp_lock_t { 84*bed243d3SAndroid Build Coastguard Worker void * _lk; 85*bed243d3SAndroid Build Coastguard Worker } omp_lock_t; 86*bed243d3SAndroid Build Coastguard Worker 87*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_init_lock (omp_lock_t *); 88*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_lock (omp_lock_t *); 89*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_unset_lock (omp_lock_t *); 90*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_destroy_lock (omp_lock_t *); 91*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_test_lock (omp_lock_t *); 92*bed243d3SAndroid Build Coastguard Worker 93*bed243d3SAndroid Build Coastguard Worker /* nested lock API functions */ 94*bed243d3SAndroid Build Coastguard Worker typedef struct omp_nest_lock_t { 95*bed243d3SAndroid Build Coastguard Worker void * _lk; 96*bed243d3SAndroid Build Coastguard Worker } omp_nest_lock_t; 97*bed243d3SAndroid Build Coastguard Worker 98*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_init_nest_lock (omp_nest_lock_t *); 99*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_nest_lock (omp_nest_lock_t *); 100*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_unset_nest_lock (omp_nest_lock_t *); 101*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_destroy_nest_lock (omp_nest_lock_t *); 102*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_test_nest_lock (omp_nest_lock_t *); 103*bed243d3SAndroid Build Coastguard Worker 104*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 Synchronization hints*/ 105*bed243d3SAndroid Build Coastguard Worker typedef enum omp_sync_hint_t { 106*bed243d3SAndroid Build Coastguard Worker omp_sync_hint_none = 0, 107*bed243d3SAndroid Build Coastguard Worker omp_lock_hint_none = omp_sync_hint_none, 108*bed243d3SAndroid Build Coastguard Worker omp_sync_hint_uncontended = 1, 109*bed243d3SAndroid Build Coastguard Worker omp_lock_hint_uncontended = omp_sync_hint_uncontended, 110*bed243d3SAndroid Build Coastguard Worker omp_sync_hint_contended = (1<<1), 111*bed243d3SAndroid Build Coastguard Worker omp_lock_hint_contended = omp_sync_hint_contended, 112*bed243d3SAndroid Build Coastguard Worker omp_sync_hint_nonspeculative = (1<<2), 113*bed243d3SAndroid Build Coastguard Worker omp_lock_hint_nonspeculative = omp_sync_hint_nonspeculative, 114*bed243d3SAndroid Build Coastguard Worker omp_sync_hint_speculative = (1<<3), 115*bed243d3SAndroid Build Coastguard Worker omp_lock_hint_speculative = omp_sync_hint_speculative, 116*bed243d3SAndroid Build Coastguard Worker kmp_lock_hint_hle = (1<<16), 117*bed243d3SAndroid Build Coastguard Worker kmp_lock_hint_rtm = (1<<17), 118*bed243d3SAndroid Build Coastguard Worker kmp_lock_hint_adaptive = (1<<18) 119*bed243d3SAndroid Build Coastguard Worker } omp_sync_hint_t; 120*bed243d3SAndroid Build Coastguard Worker 121*bed243d3SAndroid Build Coastguard Worker /* lock hint type for dynamic user lock */ 122*bed243d3SAndroid Build Coastguard Worker typedef omp_sync_hint_t omp_lock_hint_t; 123*bed243d3SAndroid Build Coastguard Worker 124*bed243d3SAndroid Build Coastguard Worker /* hinted lock initializers */ 125*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_init_lock_with_hint(omp_lock_t *, omp_lock_hint_t); 126*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_init_nest_lock_with_hint(omp_nest_lock_t *, omp_lock_hint_t); 127*bed243d3SAndroid Build Coastguard Worker 128*bed243d3SAndroid Build Coastguard Worker /* time API functions */ 129*bed243d3SAndroid Build Coastguard Worker extern double __KAI_KMPC_CONVENTION omp_get_wtime (void); 130*bed243d3SAndroid Build Coastguard Worker extern double __KAI_KMPC_CONVENTION omp_get_wtick (void); 131*bed243d3SAndroid Build Coastguard Worker 132*bed243d3SAndroid Build Coastguard Worker /* OpenMP 4.0 */ 133*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_default_device (void); 134*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_default_device (int); 135*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_is_initial_device (void); 136*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_num_devices (void); 137*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_num_teams (void); 138*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_team_num (void); 139*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void); 140*bed243d3SAndroid Build Coastguard Worker 141*bed243d3SAndroid Build Coastguard Worker /* OpenMP 4.5 */ 142*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_initial_device (void); 143*bed243d3SAndroid Build Coastguard Worker extern void* __KAI_KMPC_CONVENTION omp_target_alloc(size_t, int); 144*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_target_free(void *, int); 145*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_is_present(const void *, int); 146*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_memcpy(void *, const void *, size_t, size_t, size_t, int, int); 147*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_memcpy_rect(void *, const void *, size_t, int, const size_t *, 148*bed243d3SAndroid Build Coastguard Worker const size_t *, const size_t *, const size_t *, const size_t *, int, int); 149*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_associate_ptr(const void *, const void *, size_t, size_t, int); 150*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_disassociate_ptr(const void *, int); 151*bed243d3SAndroid Build Coastguard Worker 152*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 */ 153*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_device_num (void); 154*bed243d3SAndroid Build Coastguard Worker typedef void * omp_depend_t; 155*bed243d3SAndroid Build Coastguard Worker 156*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.1 interop */ 157*bed243d3SAndroid Build Coastguard Worker typedef intptr_t omp_intptr_t; 158*bed243d3SAndroid Build Coastguard Worker 159*bed243d3SAndroid Build Coastguard Worker /* 0..omp_get_num_interop_properties()-1 are reserved for implementation-defined properties */ 160*bed243d3SAndroid Build Coastguard Worker typedef enum omp_interop_property { 161*bed243d3SAndroid Build Coastguard Worker omp_ipr_fr_id = -1, 162*bed243d3SAndroid Build Coastguard Worker omp_ipr_fr_name = -2, 163*bed243d3SAndroid Build Coastguard Worker omp_ipr_vendor = -3, 164*bed243d3SAndroid Build Coastguard Worker omp_ipr_vendor_name = -4, 165*bed243d3SAndroid Build Coastguard Worker omp_ipr_device_num = -5, 166*bed243d3SAndroid Build Coastguard Worker omp_ipr_platform = -6, 167*bed243d3SAndroid Build Coastguard Worker omp_ipr_device = -7, 168*bed243d3SAndroid Build Coastguard Worker omp_ipr_device_context = -8, 169*bed243d3SAndroid Build Coastguard Worker omp_ipr_targetsync = -9, 170*bed243d3SAndroid Build Coastguard Worker omp_ipr_first = -9 171*bed243d3SAndroid Build Coastguard Worker } omp_interop_property_t; 172*bed243d3SAndroid Build Coastguard Worker 173*bed243d3SAndroid Build Coastguard Worker #define omp_interop_none 0 174*bed243d3SAndroid Build Coastguard Worker 175*bed243d3SAndroid Build Coastguard Worker typedef enum omp_interop_rc { 176*bed243d3SAndroid Build Coastguard Worker omp_irc_no_value = 1, 177*bed243d3SAndroid Build Coastguard Worker omp_irc_success = 0, 178*bed243d3SAndroid Build Coastguard Worker omp_irc_empty = -1, 179*bed243d3SAndroid Build Coastguard Worker omp_irc_out_of_range = -2, 180*bed243d3SAndroid Build Coastguard Worker omp_irc_type_int = -3, 181*bed243d3SAndroid Build Coastguard Worker omp_irc_type_ptr = -4, 182*bed243d3SAndroid Build Coastguard Worker omp_irc_type_str = -5, 183*bed243d3SAndroid Build Coastguard Worker omp_irc_other = -6 184*bed243d3SAndroid Build Coastguard Worker } omp_interop_rc_t; 185*bed243d3SAndroid Build Coastguard Worker 186*bed243d3SAndroid Build Coastguard Worker typedef enum omp_interop_fr { 187*bed243d3SAndroid Build Coastguard Worker omp_ifr_cuda = 1, 188*bed243d3SAndroid Build Coastguard Worker omp_ifr_cuda_driver = 2, 189*bed243d3SAndroid Build Coastguard Worker omp_ifr_opencl = 3, 190*bed243d3SAndroid Build Coastguard Worker omp_ifr_sycl = 4, 191*bed243d3SAndroid Build Coastguard Worker omp_ifr_hip = 5, 192*bed243d3SAndroid Build Coastguard Worker omp_ifr_level_zero = 6, 193*bed243d3SAndroid Build Coastguard Worker omp_ifr_last = 7 194*bed243d3SAndroid Build Coastguard Worker } omp_interop_fr_t; 195*bed243d3SAndroid Build Coastguard Worker 196*bed243d3SAndroid Build Coastguard Worker typedef void * omp_interop_t; 197*bed243d3SAndroid Build Coastguard Worker 198*bed243d3SAndroid Build Coastguard Worker /*! 199*bed243d3SAndroid Build Coastguard Worker * The `omp_get_num_interop_properties` routine retrieves the number of implementation-defined properties available for an `omp_interop_t` object. 200*bed243d3SAndroid Build Coastguard Worker */ 201*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_num_interop_properties(const omp_interop_t); 202*bed243d3SAndroid Build Coastguard Worker /*! 203*bed243d3SAndroid Build Coastguard Worker * The `omp_get_interop_int` routine retrieves an integer property from an `omp_interop_t` object. 204*bed243d3SAndroid Build Coastguard Worker */ 205*bed243d3SAndroid Build Coastguard Worker extern omp_intptr_t __KAI_KMPC_CONVENTION omp_get_interop_int(const omp_interop_t, omp_interop_property_t, int *); 206*bed243d3SAndroid Build Coastguard Worker /*! 207*bed243d3SAndroid Build Coastguard Worker * The `omp_get_interop_ptr` routine retrieves a pointer property from an `omp_interop_t` object. 208*bed243d3SAndroid Build Coastguard Worker */ 209*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION omp_get_interop_ptr(const omp_interop_t, omp_interop_property_t, int *); 210*bed243d3SAndroid Build Coastguard Worker /*! 211*bed243d3SAndroid Build Coastguard Worker * The `omp_get_interop_str` routine retrieves a string property from an `omp_interop_t` object. 212*bed243d3SAndroid Build Coastguard Worker */ 213*bed243d3SAndroid Build Coastguard Worker extern const char * __KAI_KMPC_CONVENTION omp_get_interop_str(const omp_interop_t, omp_interop_property_t, int *); 214*bed243d3SAndroid Build Coastguard Worker /*! 215*bed243d3SAndroid Build Coastguard Worker * The `omp_get_interop_name` routine retrieves a property name from an `omp_interop_t` object. 216*bed243d3SAndroid Build Coastguard Worker */ 217*bed243d3SAndroid Build Coastguard Worker extern const char * __KAI_KMPC_CONVENTION omp_get_interop_name(const omp_interop_t, omp_interop_property_t); 218*bed243d3SAndroid Build Coastguard Worker /*! 219*bed243d3SAndroid Build Coastguard Worker * The `omp_get_interop_type_desc` routine retrieves a description of the type of a property associated with an `omp_interop_t` object. 220*bed243d3SAndroid Build Coastguard Worker */ 221*bed243d3SAndroid Build Coastguard Worker extern const char * __KAI_KMPC_CONVENTION omp_get_interop_type_desc(const omp_interop_t, omp_interop_property_t); 222*bed243d3SAndroid Build Coastguard Worker /*! 223*bed243d3SAndroid Build Coastguard Worker * The `omp_get_interop_rc_desc` routine retrieves a description of the return code associated with an `omp_interop_t` object. 224*bed243d3SAndroid Build Coastguard Worker */ 225*bed243d3SAndroid Build Coastguard Worker extern const char * __KAI_KMPC_CONVENTION omp_get_interop_rc_desc(const omp_interop_t, omp_interop_rc_t); 226*bed243d3SAndroid Build Coastguard Worker 227*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.1 device memory routines */ 228*bed243d3SAndroid Build Coastguard Worker 229*bed243d3SAndroid Build Coastguard Worker /*! 230*bed243d3SAndroid Build Coastguard Worker * The `omp_target_memcpy_async` routine asynchronously performs a copy between any combination of host and device pointers. 231*bed243d3SAndroid Build Coastguard Worker */ 232*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_memcpy_async(void *, const void *, size_t, size_t, size_t, int, 233*bed243d3SAndroid Build Coastguard Worker int, int, omp_depend_t *); 234*bed243d3SAndroid Build Coastguard Worker /*! 235*bed243d3SAndroid Build Coastguard Worker * The `omp_target_memcpy_rect_async` routine asynchronously performs a copy between any combination of host and device pointers. 236*bed243d3SAndroid Build Coastguard Worker */ 237*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_memcpy_rect_async(void *, const void *, size_t, int, const size_t *, 238*bed243d3SAndroid Build Coastguard Worker const size_t *, const size_t *, const size_t *, const size_t *, int, int, 239*bed243d3SAndroid Build Coastguard Worker int, omp_depend_t *); 240*bed243d3SAndroid Build Coastguard Worker 241*bed243d3SAndroid Build Coastguard Worker /* OpenMP 6.0 device memory routines */ 242*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION omp_target_memset(void *, int, size_t, int); 243*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION omp_target_memset_async(void *, int, size_t, int, int, omp_depend_t *); 244*bed243d3SAndroid Build Coastguard Worker 245*bed243d3SAndroid Build Coastguard Worker /*! 246*bed243d3SAndroid Build Coastguard Worker * The `omp_get_mapped_ptr` routine returns the device pointer that is associated with a host pointer for a given device. 247*bed243d3SAndroid Build Coastguard Worker */ 248*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION omp_get_mapped_ptr(const void *, int); 249*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_target_is_accessible(const void *, size_t, int); 250*bed243d3SAndroid Build Coastguard Worker 251*bed243d3SAndroid Build Coastguard Worker /* kmp API functions */ 252*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void); 253*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_stacksize (int); 254*bed243d3SAndroid Build Coastguard Worker extern size_t __KAI_KMPC_CONVENTION kmp_get_stacksize_s (void); 255*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_stacksize_s (size_t); 256*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_get_blocktime (void); 257*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_get_library (void); 258*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_blocktime (int); 259*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_library (int); 260*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_library_serial (void); 261*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_library_turnaround (void); 262*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_library_throughput (void); 263*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_defaults (char const *); 264*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_disp_num_buffers (int); 265*bed243d3SAndroid Build Coastguard Worker 266*bed243d3SAndroid Build Coastguard Worker /* Intel affinity API */ 267*bed243d3SAndroid Build Coastguard Worker typedef void * kmp_affinity_mask_t; 268*bed243d3SAndroid Build Coastguard Worker 269*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_set_affinity (kmp_affinity_mask_t *); 270*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_get_affinity (kmp_affinity_mask_t *); 271*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_get_affinity_max_proc (void); 272*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_create_affinity_mask (kmp_affinity_mask_t *); 273*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_destroy_affinity_mask (kmp_affinity_mask_t *); 274*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_set_affinity_mask_proc (int, kmp_affinity_mask_t *); 275*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *); 276*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION kmp_get_affinity_mask_proc (int, kmp_affinity_mask_t *); 277*bed243d3SAndroid Build Coastguard Worker 278*bed243d3SAndroid Build Coastguard Worker /* OpenMP 4.0 affinity API */ 279*bed243d3SAndroid Build Coastguard Worker typedef enum omp_proc_bind_t { 280*bed243d3SAndroid Build Coastguard Worker omp_proc_bind_false = 0, 281*bed243d3SAndroid Build Coastguard Worker omp_proc_bind_true = 1, 282*bed243d3SAndroid Build Coastguard Worker omp_proc_bind_master = 2, 283*bed243d3SAndroid Build Coastguard Worker omp_proc_bind_close = 3, 284*bed243d3SAndroid Build Coastguard Worker omp_proc_bind_spread = 4 285*bed243d3SAndroid Build Coastguard Worker } omp_proc_bind_t; 286*bed243d3SAndroid Build Coastguard Worker 287*bed243d3SAndroid Build Coastguard Worker extern omp_proc_bind_t __KAI_KMPC_CONVENTION omp_get_proc_bind (void); 288*bed243d3SAndroid Build Coastguard Worker 289*bed243d3SAndroid Build Coastguard Worker /* OpenMP 4.5 affinity API */ 290*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_num_places (void); 291*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_place_num_procs (int); 292*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_get_place_proc_ids (int, int *); 293*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_place_num (void); 294*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_partition_num_places (void); 295*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_get_partition_place_nums (int *); 296*bed243d3SAndroid Build Coastguard Worker 297*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION kmp_malloc (size_t); 298*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION kmp_aligned_malloc (size_t, size_t); 299*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION kmp_calloc (size_t, size_t); 300*bed243d3SAndroid Build Coastguard Worker extern void * __KAI_KMPC_CONVENTION kmp_realloc (void *, size_t); 301*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_free (void *); 302*bed243d3SAndroid Build Coastguard Worker 303*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void); 304*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void); 305*bed243d3SAndroid Build Coastguard Worker 306*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 Tool Control */ 307*bed243d3SAndroid Build Coastguard Worker typedef enum omp_control_tool_result_t { 308*bed243d3SAndroid Build Coastguard Worker omp_control_tool_notool = -2, 309*bed243d3SAndroid Build Coastguard Worker omp_control_tool_nocallback = -1, 310*bed243d3SAndroid Build Coastguard Worker omp_control_tool_success = 0, 311*bed243d3SAndroid Build Coastguard Worker omp_control_tool_ignored = 1 312*bed243d3SAndroid Build Coastguard Worker } omp_control_tool_result_t; 313*bed243d3SAndroid Build Coastguard Worker 314*bed243d3SAndroid Build Coastguard Worker typedef enum omp_control_tool_t { 315*bed243d3SAndroid Build Coastguard Worker omp_control_tool_start = 1, 316*bed243d3SAndroid Build Coastguard Worker omp_control_tool_pause = 2, 317*bed243d3SAndroid Build Coastguard Worker omp_control_tool_flush = 3, 318*bed243d3SAndroid Build Coastguard Worker omp_control_tool_end = 4 319*bed243d3SAndroid Build Coastguard Worker } omp_control_tool_t; 320*bed243d3SAndroid Build Coastguard Worker 321*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_control_tool(int, int, void*); 322*bed243d3SAndroid Build Coastguard Worker 323*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 Memory Management */ 324*bed243d3SAndroid Build Coastguard Worker typedef uintptr_t omp_uintptr_t; 325*bed243d3SAndroid Build Coastguard Worker 326*bed243d3SAndroid Build Coastguard Worker typedef enum { 327*bed243d3SAndroid Build Coastguard Worker omp_atk_sync_hint = 1, 328*bed243d3SAndroid Build Coastguard Worker omp_atk_alignment = 2, 329*bed243d3SAndroid Build Coastguard Worker omp_atk_access = 3, 330*bed243d3SAndroid Build Coastguard Worker omp_atk_pool_size = 4, 331*bed243d3SAndroid Build Coastguard Worker omp_atk_fallback = 5, 332*bed243d3SAndroid Build Coastguard Worker omp_atk_fb_data = 6, 333*bed243d3SAndroid Build Coastguard Worker omp_atk_pinned = 7, 334*bed243d3SAndroid Build Coastguard Worker omp_atk_partition = 8 335*bed243d3SAndroid Build Coastguard Worker } omp_alloctrait_key_t; 336*bed243d3SAndroid Build Coastguard Worker 337*bed243d3SAndroid Build Coastguard Worker typedef enum { 338*bed243d3SAndroid Build Coastguard Worker omp_atv_false = 0, 339*bed243d3SAndroid Build Coastguard Worker omp_atv_true = 1, 340*bed243d3SAndroid Build Coastguard Worker omp_atv_contended = 3, 341*bed243d3SAndroid Build Coastguard Worker omp_atv_uncontended = 4, 342*bed243d3SAndroid Build Coastguard Worker omp_atv_serialized = 5, 343*bed243d3SAndroid Build Coastguard Worker omp_atv_sequential = omp_atv_serialized, // (deprecated) 344*bed243d3SAndroid Build Coastguard Worker omp_atv_private = 6, 345*bed243d3SAndroid Build Coastguard Worker omp_atv_all = 7, 346*bed243d3SAndroid Build Coastguard Worker omp_atv_thread = 8, 347*bed243d3SAndroid Build Coastguard Worker omp_atv_pteam = 9, 348*bed243d3SAndroid Build Coastguard Worker omp_atv_cgroup = 10, 349*bed243d3SAndroid Build Coastguard Worker omp_atv_default_mem_fb = 11, 350*bed243d3SAndroid Build Coastguard Worker omp_atv_null_fb = 12, 351*bed243d3SAndroid Build Coastguard Worker omp_atv_abort_fb = 13, 352*bed243d3SAndroid Build Coastguard Worker omp_atv_allocator_fb = 14, 353*bed243d3SAndroid Build Coastguard Worker omp_atv_environment = 15, 354*bed243d3SAndroid Build Coastguard Worker omp_atv_nearest = 16, 355*bed243d3SAndroid Build Coastguard Worker omp_atv_blocked = 17, 356*bed243d3SAndroid Build Coastguard Worker omp_atv_interleaved = 18 357*bed243d3SAndroid Build Coastguard Worker } omp_alloctrait_value_t; 358*bed243d3SAndroid Build Coastguard Worker #define omp_atv_default ((omp_uintptr_t)-1) 359*bed243d3SAndroid Build Coastguard Worker 360*bed243d3SAndroid Build Coastguard Worker typedef struct { 361*bed243d3SAndroid Build Coastguard Worker omp_alloctrait_key_t key; 362*bed243d3SAndroid Build Coastguard Worker omp_uintptr_t value; 363*bed243d3SAndroid Build Coastguard Worker } omp_alloctrait_t; 364*bed243d3SAndroid Build Coastguard Worker 365*bed243d3SAndroid Build Coastguard Worker # if defined(_WIN32) 366*bed243d3SAndroid Build Coastguard Worker // On Windows cl and icl do not support 64-bit enum, let's use integer then. 367*bed243d3SAndroid Build Coastguard Worker typedef omp_uintptr_t omp_allocator_handle_t; 368*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_null_allocator; 369*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_default_mem_alloc; 370*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_large_cap_mem_alloc; 371*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_const_mem_alloc; 372*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_high_bw_mem_alloc; 373*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_low_lat_mem_alloc; 374*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_cgroup_mem_alloc; 375*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_pteam_mem_alloc; 376*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const omp_thread_mem_alloc; 377*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_host_mem_alloc; 378*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_shared_mem_alloc; 379*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_allocator_handle_t const llvm_omp_target_device_mem_alloc; 380*bed243d3SAndroid Build Coastguard Worker 381*bed243d3SAndroid Build Coastguard Worker typedef omp_uintptr_t omp_memspace_handle_t; 382*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const omp_default_mem_space; 383*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const omp_large_cap_mem_space; 384*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const omp_const_mem_space; 385*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const omp_high_bw_mem_space; 386*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const omp_low_lat_mem_space; 387*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const llvm_omp_target_host_mem_space; 388*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const llvm_omp_target_shared_mem_space; 389*bed243d3SAndroid Build Coastguard Worker extern __KMP_IMP omp_memspace_handle_t const llvm_omp_target_device_mem_space; 390*bed243d3SAndroid Build Coastguard Worker # else 391*bed243d3SAndroid Build Coastguard Worker # if __cplusplus >= 201103 392*bed243d3SAndroid Build Coastguard Worker typedef enum omp_allocator_handle_t : omp_uintptr_t 393*bed243d3SAndroid Build Coastguard Worker # else 394*bed243d3SAndroid Build Coastguard Worker typedef enum omp_allocator_handle_t 395*bed243d3SAndroid Build Coastguard Worker # endif 396*bed243d3SAndroid Build Coastguard Worker { 397*bed243d3SAndroid Build Coastguard Worker omp_null_allocator = 0, 398*bed243d3SAndroid Build Coastguard Worker omp_default_mem_alloc = 1, 399*bed243d3SAndroid Build Coastguard Worker omp_large_cap_mem_alloc = 2, 400*bed243d3SAndroid Build Coastguard Worker omp_const_mem_alloc = 3, 401*bed243d3SAndroid Build Coastguard Worker omp_high_bw_mem_alloc = 4, 402*bed243d3SAndroid Build Coastguard Worker omp_low_lat_mem_alloc = 5, 403*bed243d3SAndroid Build Coastguard Worker omp_cgroup_mem_alloc = 6, 404*bed243d3SAndroid Build Coastguard Worker omp_pteam_mem_alloc = 7, 405*bed243d3SAndroid Build Coastguard Worker omp_thread_mem_alloc = 8, 406*bed243d3SAndroid Build Coastguard Worker llvm_omp_target_host_mem_alloc = 100, 407*bed243d3SAndroid Build Coastguard Worker llvm_omp_target_shared_mem_alloc = 101, 408*bed243d3SAndroid Build Coastguard Worker llvm_omp_target_device_mem_alloc = 102, 409*bed243d3SAndroid Build Coastguard Worker KMP_ALLOCATOR_MAX_HANDLE = UINTPTR_MAX 410*bed243d3SAndroid Build Coastguard Worker } omp_allocator_handle_t; 411*bed243d3SAndroid Build Coastguard Worker # if __cplusplus >= 201103 412*bed243d3SAndroid Build Coastguard Worker typedef enum omp_memspace_handle_t : omp_uintptr_t 413*bed243d3SAndroid Build Coastguard Worker # else 414*bed243d3SAndroid Build Coastguard Worker typedef enum omp_memspace_handle_t 415*bed243d3SAndroid Build Coastguard Worker # endif 416*bed243d3SAndroid Build Coastguard Worker { 417*bed243d3SAndroid Build Coastguard Worker omp_default_mem_space = 0, 418*bed243d3SAndroid Build Coastguard Worker omp_large_cap_mem_space = 1, 419*bed243d3SAndroid Build Coastguard Worker omp_const_mem_space = 2, 420*bed243d3SAndroid Build Coastguard Worker omp_high_bw_mem_space = 3, 421*bed243d3SAndroid Build Coastguard Worker omp_low_lat_mem_space = 4, 422*bed243d3SAndroid Build Coastguard Worker llvm_omp_target_host_mem_space = 100, 423*bed243d3SAndroid Build Coastguard Worker llvm_omp_target_shared_mem_space = 101, 424*bed243d3SAndroid Build Coastguard Worker llvm_omp_target_device_mem_space = 102, 425*bed243d3SAndroid Build Coastguard Worker KMP_MEMSPACE_MAX_HANDLE = UINTPTR_MAX 426*bed243d3SAndroid Build Coastguard Worker } omp_memspace_handle_t; 427*bed243d3SAndroid Build Coastguard Worker # endif 428*bed243d3SAndroid Build Coastguard Worker extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_init_allocator(omp_memspace_handle_t m, 429*bed243d3SAndroid Build Coastguard Worker int ntraits, omp_alloctrait_t traits[]); 430*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_destroy_allocator(omp_allocator_handle_t allocator); 431*bed243d3SAndroid Build Coastguard Worker 432*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_default_allocator(omp_allocator_handle_t a); 433*bed243d3SAndroid Build Coastguard Worker extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_get_default_allocator(void); 434*bed243d3SAndroid Build Coastguard Worker # ifdef __cplusplus 435*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a = omp_null_allocator); 436*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_aligned_alloc(size_t align, size_t size, 437*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t a = omp_null_allocator); 438*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size, 439*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t a = omp_null_allocator); 440*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_aligned_calloc(size_t align, size_t nmemb, size_t size, 441*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t a = omp_null_allocator); 442*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_realloc(void *ptr, size_t size, 443*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t allocator = omp_null_allocator, 444*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t free_allocator = omp_null_allocator); 445*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_free(void * ptr, omp_allocator_handle_t a = omp_null_allocator); 446*bed243d3SAndroid Build Coastguard Worker # else 447*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a); 448*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_aligned_alloc(size_t align, size_t size, 449*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t a); 450*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_calloc(size_t nmemb, size_t size, omp_allocator_handle_t a); 451*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_aligned_calloc(size_t align, size_t nmemb, size_t size, 452*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t a); 453*bed243d3SAndroid Build Coastguard Worker extern void *__KAI_KMPC_CONVENTION omp_realloc(void *ptr, size_t size, omp_allocator_handle_t allocator, 454*bed243d3SAndroid Build Coastguard Worker omp_allocator_handle_t free_allocator); 455*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_free(void *ptr, omp_allocator_handle_t a); 456*bed243d3SAndroid Build Coastguard Worker # endif 457*bed243d3SAndroid Build Coastguard Worker 458*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 Affinity Format */ 459*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_affinity_format(char const *); 460*bed243d3SAndroid Build Coastguard Worker extern size_t __KAI_KMPC_CONVENTION omp_get_affinity_format(char *, size_t); 461*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_display_affinity(char const *); 462*bed243d3SAndroid Build Coastguard Worker extern size_t __KAI_KMPC_CONVENTION omp_capture_affinity(char *, size_t, char const *); 463*bed243d3SAndroid Build Coastguard Worker 464*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 events */ 465*bed243d3SAndroid Build Coastguard Worker # if defined(_WIN32) 466*bed243d3SAndroid Build Coastguard Worker // On Windows cl and icl do not support 64-bit enum, let's use integer then. 467*bed243d3SAndroid Build Coastguard Worker typedef omp_uintptr_t omp_event_handle_t; 468*bed243d3SAndroid Build Coastguard Worker # else 469*bed243d3SAndroid Build Coastguard Worker typedef enum omp_event_handle_t { KMP_EVENT_MAX_HANDLE = UINTPTR_MAX } omp_event_handle_t; 470*bed243d3SAndroid Build Coastguard Worker # endif 471*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_fulfill_event ( omp_event_handle_t event ); 472*bed243d3SAndroid Build Coastguard Worker 473*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.0 Pause Resources */ 474*bed243d3SAndroid Build Coastguard Worker typedef enum omp_pause_resource_t { 475*bed243d3SAndroid Build Coastguard Worker omp_pause_resume = 0, 476*bed243d3SAndroid Build Coastguard Worker omp_pause_soft = 1, 477*bed243d3SAndroid Build Coastguard Worker omp_pause_hard = 2 478*bed243d3SAndroid Build Coastguard Worker } omp_pause_resource_t; 479*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_pause_resource(omp_pause_resource_t, int); 480*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_pause_resource_all(omp_pause_resource_t); 481*bed243d3SAndroid Build Coastguard Worker 482*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_supported_active_levels(void); 483*bed243d3SAndroid Build Coastguard Worker 484*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.1 */ 485*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_num_teams(int num_teams); 486*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_max_teams(void); 487*bed243d3SAndroid Build Coastguard Worker extern void __KAI_KMPC_CONVENTION omp_set_teams_thread_limit(int limit); 488*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_get_teams_thread_limit(void); 489*bed243d3SAndroid Build Coastguard Worker 490*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.1 Display Environment */ 491*bed243d3SAndroid Build Coastguard Worker extern void omp_display_env(int verbose); 492*bed243d3SAndroid Build Coastguard Worker 493*bed243d3SAndroid Build Coastguard Worker # if defined(_OPENMP) && _OPENMP >= 201811 494*bed243d3SAndroid Build Coastguard Worker #pragma omp begin declare variant match(device={kind(host)}) omp_is_initial_device(void)495*bed243d3SAndroid Build Coastguard Worker static inline int omp_is_initial_device(void) { return 1; } 496*bed243d3SAndroid Build Coastguard Worker #pragma omp end declare variant 497*bed243d3SAndroid Build Coastguard Worker #pragma omp begin declare variant match(device={kind(nohost)}) omp_is_initial_device(void)498*bed243d3SAndroid Build Coastguard Worker static inline int omp_is_initial_device(void) { return 0; } 499*bed243d3SAndroid Build Coastguard Worker #pragma omp end declare variant 500*bed243d3SAndroid Build Coastguard Worker # endif 501*bed243d3SAndroid Build Coastguard Worker 502*bed243d3SAndroid Build Coastguard Worker /* OpenMP 5.2 */ 503*bed243d3SAndroid Build Coastguard Worker extern int __KAI_KMPC_CONVENTION omp_in_explicit_task(void); 504*bed243d3SAndroid Build Coastguard Worker 505*bed243d3SAndroid Build Coastguard Worker /* LLVM Extensions */ 506*bed243d3SAndroid Build Coastguard Worker extern void *llvm_omp_target_dynamic_shared_alloc(void); 507*bed243d3SAndroid Build Coastguard Worker 508*bed243d3SAndroid Build Coastguard Worker # undef __KAI_KMPC_CONVENTION 509*bed243d3SAndroid Build Coastguard Worker # undef __KMP_IMP 510*bed243d3SAndroid Build Coastguard Worker 511*bed243d3SAndroid Build Coastguard Worker /* Warning: 512*bed243d3SAndroid Build Coastguard Worker The following typedefs are not standard, deprecated and will be removed in a future release. 513*bed243d3SAndroid Build Coastguard Worker */ 514*bed243d3SAndroid Build Coastguard Worker typedef int omp_int_t; 515*bed243d3SAndroid Build Coastguard Worker typedef double omp_wtime_t; 516*bed243d3SAndroid Build Coastguard Worker 517*bed243d3SAndroid Build Coastguard Worker # ifdef __cplusplus 518*bed243d3SAndroid Build Coastguard Worker } 519*bed243d3SAndroid Build Coastguard Worker # endif 520*bed243d3SAndroid Build Coastguard Worker 521*bed243d3SAndroid Build Coastguard Worker #endif /* __OMP_H */ 522