19#define GISMO_HAS_OPENMP_52 1
21#define GISMO_HAS_OPENMP_52 0
25#define GISMO_HAS_OPENMP_51 1
27#define GISMO_HAS_OPENMP_51 0
31#define GISMO_HAS_OPENMP_50 1
33#define GISMO_HAS_OPENMP_50 0
37#define GISMO_HAS_OPENMP_45 1
39#define GISMO_HAS_OPENMP_45 0
43#define GISMO_HAS_OPENMP_40 1
45#define GISMO_HAS_OPENMP_40 0
49#define GISMO_HAS_OPENMP_31 1
51#define GISMO_HAS_OPENMP_31 0
55#define GISMO_HAS_OPENMP_30 1
57#define GISMO_HAS_OPENMP_30 0
61#define GISMO_HAS_OPENMP_25 1
63#define GISMO_HAS_OPENMP_25 0
70#define GISMO_HAS_OPENMP_52 0
71#define GISMO_HAS_OPENMP_51 0
72#define GISMO_HAS_OPENMP_50 0
73#define GISMO_HAS_OPENMP_45 0
74#define GISMO_HAS_OPENMP_40 0
75#define GISMO_HAS_OPENMP_31 0
76#define GISMO_HAS_OPENMP_30 0
77#define GISMO_HAS_OPENMP_25 0
81void GISMO_EXPORT omp_set_num_threads(
int num_threads);
83int GISMO_EXPORT omp_get_num_threads(
void);
85int GISMO_EXPORT omp_get_max_threads(
void);
87int GISMO_EXPORT omp_get_thread_num(
void);
89int GISMO_EXPORT omp_get_num_procs(
void);
91int GISMO_EXPORT omp_in_parallel(
void);
93void GISMO_EXPORT omp_set_dynamic(
int dynamic_threads);
95int GISMO_EXPORT omp_get_dynamic(
void);
97int GISMO_EXPORT omp_get_cancellation(
void);
99void GISMO_EXPORT omp_set_nested(
int nested);
101int GISMO_EXPORT omp_get_nested(
void);
103typedef enum omp_sched_t {
104 omp_sched_static = 1,
105 omp_sched_dynamic = 2,
106 omp_sched_guided = 3,
108 omp_sched_monotonic = 0x80000000
111void GISMO_EXPORT omp_set_schedule(omp_sched_t kind,
int chunk_size);
113void GISMO_EXPORT omp_get_schedule(omp_sched_t *kind,
int *chunk_size);
115int GISMO_EXPORT omp_get_thread_limit(
void);
117void GISMO_EXPORT omp_set_max_active_levels(
int max_active_levels);
119int GISMO_EXPORT omp_get_max_active_levels(
void);
121int GISMO_EXPORT omp_get_level(
void);
123int GISMO_EXPORT omp_get_ancestor_thread_num(
int level);
125int GISMO_EXPORT omp_get_team_size(
int level);
127int GISMO_EXPORT omp_get_active_level(
void);
129int GISMO_EXPORT omp_in_final(
void);
131typedef enum omp_proc_bind_t {
132 omp_proc_bind_false = 0,
133 omp_proc_bind_true = 1,
134 omp_proc_bind_master = 2,
135 omp_proc_bind_close = 3,
136 omp_proc_bind_spread = 4
139omp_proc_bind_t omp_get_proc_bind(
void);
141int GISMO_EXPORT omp_get_num_places(
void);
143int GISMO_EXPORT omp_get_place_num_procs(
int place_num);
145void GISMO_EXPORT omp_get_place_proc_ids(
int place_num,
int *ids);
147int GISMO_EXPORT omp_get_place_num(
void);
149int GISMO_EXPORT omp_get_partition_num_places(
void);
151void GISMO_EXPORT omp_get_partition_place_nums(
int *place_nums);
153void GISMO_EXPORT omp_set_default_device(
int device_num);
155int GISMO_EXPORT omp_get_default_device(
void);
157int GISMO_EXPORT omp_get_num_devices(
void);
159int GISMO_EXPORT omp_get_num_teams(
void);
161int GISMO_EXPORT omp_get_team_num(
void);
163int GISMO_EXPORT omp_is_initial_device(
void);
165int GISMO_EXPORT omp_get_initial_device(
void);
167int GISMO_EXPORT omp_get_max_task_priority(
void);
169typedef struct omp_lock_t {
173enum { OMP_UNLOCKED = -1, OMP_INIT, OMP_LOCKED };
175void GISMO_EXPORT omp_init_lock(omp_lock_t *arg);
177typedef enum omp_sync_hint_t {
178 omp_sync_hint_none = 0,
179 omp_lock_hint_none = omp_sync_hint_none,
180 omp_sync_hint_uncontended = 1,
181 omp_lock_hint_uncontended = omp_sync_hint_uncontended,
182 omp_sync_hint_contended = (1<<1),
183 omp_lock_hint_contended = omp_sync_hint_contended,
184 omp_sync_hint_nonspeculative = (1<<2),
185 omp_lock_hint_nonspeculative = omp_sync_hint_nonspeculative,
186 omp_sync_hint_speculative = (1<<3),
187 omp_lock_hint_speculative = omp_sync_hint_speculative,
188 kmp_lock_hint_hle = (1<<16),
189 kmp_lock_hint_rtm = (1<<17),
190 kmp_lock_hint_adaptive = (1<<18)
193typedef omp_sync_hint_t omp_lock_hint_t;
195void GISMO_EXPORT omp_init_lock_with_hint(omp_lock_t *arg, omp_lock_hint_t hint);
197void GISMO_EXPORT omp_destroy_lock(omp_lock_t *arg);
199void GISMO_EXPORT omp_set_lock(omp_lock_t *arg);
201void GISMO_EXPORT omp_unset_lock(omp_lock_t *arg);
203int GISMO_EXPORT omp_test_lock(omp_lock_t *arg);
205typedef struct omp_nest_lock_t {
210enum { OMP_NOOWNER = -1, OMP_MASTER = 0 };
212void GISMO_EXPORT omp_init_nest_lock(omp_nest_lock_t *arg);
214void GISMO_EXPORT omp_init_nest_lock_with_hint(omp_nest_lock_t *arg,
215 omp_lock_hint_t hint);
217void GISMO_EXPORT omp_destroy_nest_lock(omp_nest_lock_t *arg);
219void GISMO_EXPORT omp_set_nest_lock(omp_nest_lock_t *arg);
221void GISMO_EXPORT omp_unset_nest_lock(omp_nest_lock_t *arg);
223int GISMO_EXPORT omp_test_nest_lock(omp_nest_lock_t *arg);
225double omp_get_wtime(
void);
227double omp_get_wtick(
void);
229void * omp_target_alloc(
size_t size,
int device_num);
231void GISMO_EXPORT omp_target_free(
void *device_ptr,
int device_num);
233int GISMO_EXPORT omp_target_is_present(
void *ptr,
int device_num);
235int GISMO_EXPORT omp_target_memcpy(
void *dst,
void *src,
size_t length,
236 size_t dst_offset,
size_t src_offset,
237 int dst_device,
int src_device);
239int GISMO_EXPORT omp_target_memcpy_rect(
void *dst,
void *src,
242 const size_t *volume,
243 const size_t *dst_offsets,
244 const size_t *src_offsets,
245 const size_t *dst_dimensions,
246 const size_t *src_dimensions,
247 int dst_device_num,
int src_device_num);
249int GISMO_EXPORT omp_target_associate_ptr(
void *host_ptr,
void *device_ptr,
250 size_t size,
size_t device_offset,
253int GISMO_EXPORT omp_target_disassociate_ptr(
void *ptr,
int device_num);
Provides forward declarations of types and structs.