blob: 4ddebbd3154000ee9014be654ee2239eeacb1c88 [file] [log] [blame]
Jim Cownie5e8470a2013-09-27 10:38:44 +00001/*
2 * kmp_ftn_os.h -- KPTS Fortran defines header file.
Jim Cownie5e8470a2013-09-27 10:38:44 +00003 */
4
5
6//===----------------------------------------------------------------------===//
7//
8// The LLVM Compiler Infrastructure
9//
10// This file is dual licensed under the MIT and the University of Illinois Open
11// Source Licenses. See LICENSE.txt for details.
12//
13//===----------------------------------------------------------------------===//
14
15
16#ifndef KMP_FTN_OS_H
17#define KMP_FTN_OS_H
18
19// KMP_FNT_ENTRIES may be one of: KMP_FTN_PLAIN, KMP_FTN_UPPER, KMP_FTN_APPEND, KMP_FTN_UAPPEND.
20
21
22/* -------------------------- External definitions ------------------------ */
23
24#if KMP_FTN_ENTRIES == KMP_FTN_PLAIN
25
26 #define FTN_SET_STACKSIZE kmp_set_stacksize
27 #define FTN_SET_STACKSIZE_S kmp_set_stacksize_s
28 #define FTN_GET_STACKSIZE kmp_get_stacksize
29 #define FTN_GET_STACKSIZE_S kmp_get_stacksize_s
30 #define FTN_SET_BLOCKTIME kmp_set_blocktime
31 #define FTN_GET_BLOCKTIME kmp_get_blocktime
32 #define FTN_SET_LIBRARY_SERIAL kmp_set_library_serial
33 #define FTN_SET_LIBRARY_TURNAROUND kmp_set_library_turnaround
34 #define FTN_SET_LIBRARY_THROUGHPUT kmp_set_library_throughput
35 #define FTN_SET_LIBRARY kmp_set_library
36 #define FTN_GET_LIBRARY kmp_get_library
37 #define FTN_SET_DEFAULTS kmp_set_defaults
38 #define FTN_SET_AFFINITY kmp_set_affinity
39 #define FTN_GET_AFFINITY kmp_get_affinity
40 #define FTN_GET_AFFINITY_MAX_PROC kmp_get_affinity_max_proc
41 #define FTN_CREATE_AFFINITY_MASK kmp_create_affinity_mask
42 #define FTN_DESTROY_AFFINITY_MASK kmp_destroy_affinity_mask
43 #define FTN_SET_AFFINITY_MASK_PROC kmp_set_affinity_mask_proc
44 #define FTN_UNSET_AFFINITY_MASK_PROC kmp_unset_affinity_mask_proc
45 #define FTN_GET_AFFINITY_MASK_PROC kmp_get_affinity_mask_proc
46
47 #define FTN_MALLOC kmp_malloc
48 #define FTN_CALLOC kmp_calloc
49 #define FTN_REALLOC kmp_realloc
50 #define FTN_FREE kmp_free
51
52 #define FTN_GET_NUM_KNOWN_THREADS kmp_get_num_known_threads
53
54 #define FTN_SET_NUM_THREADS omp_set_num_threads
55 #define FTN_GET_NUM_THREADS omp_get_num_threads
56 #define FTN_GET_MAX_THREADS omp_get_max_threads
57 #define FTN_GET_THREAD_NUM omp_get_thread_num
58 #define FTN_GET_NUM_PROCS omp_get_num_procs
59 #define FTN_SET_DYNAMIC omp_set_dynamic
60 #define FTN_GET_DYNAMIC omp_get_dynamic
61 #define FTN_SET_NESTED omp_set_nested
62 #define FTN_GET_NESTED omp_get_nested
63 #define FTN_IN_PARALLEL omp_in_parallel
64 #define FTN_GET_THREAD_LIMIT omp_get_thread_limit
65 #define FTN_SET_SCHEDULE omp_set_schedule
66 #define FTN_GET_SCHEDULE omp_get_schedule
67 #define FTN_SET_MAX_ACTIVE_LEVELS omp_set_max_active_levels
68 #define FTN_GET_MAX_ACTIVE_LEVELS omp_get_max_active_levels
69 #define FTN_GET_ACTIVE_LEVEL omp_get_active_level
70 #define FTN_GET_LEVEL omp_get_level
71 #define FTN_GET_ANCESTOR_THREAD_NUM omp_get_ancestor_thread_num
72 #define FTN_GET_TEAM_SIZE omp_get_team_size
73 #define FTN_IN_FINAL omp_in_final
74// #define FTN_SET_PROC_BIND omp_set_proc_bind
75 #define FTN_GET_PROC_BIND omp_get_proc_bind
76// #define FTN_CURR_PROC_BIND omp_curr_proc_bind
77#if OMP_40_ENABLED
78 #define FTN_GET_NUM_TEAMS omp_get_num_teams
79 #define FTN_GET_TEAM_NUM omp_get_team_num
80#endif
81 #define FTN_INIT_LOCK omp_init_lock
82 #define FTN_DESTROY_LOCK omp_destroy_lock
83 #define FTN_SET_LOCK omp_set_lock
84 #define FTN_UNSET_LOCK omp_unset_lock
85 #define FTN_TEST_LOCK omp_test_lock
86 #define FTN_INIT_NEST_LOCK omp_init_nest_lock
87 #define FTN_DESTROY_NEST_LOCK omp_destroy_nest_lock
88 #define FTN_SET_NEST_LOCK omp_set_nest_lock
89 #define FTN_UNSET_NEST_LOCK omp_unset_nest_lock
90 #define FTN_TEST_NEST_LOCK omp_test_nest_lock
91
92 #define FTN_SET_WARNINGS_ON kmp_set_warnings_on
93 #define FTN_SET_WARNINGS_OFF kmp_set_warnings_off
94
95 #define FTN_GET_WTIME omp_get_wtime
96 #define FTN_GET_WTICK omp_get_wtick
97
98#if OMP_40_ENABLED
99#if KMP_MIC || KMP_OS_DARWIN
100 #define FTN_GET_DEFAULT_DEVICE omp_get_default_device
101 #define FTN_SET_DEFAULT_DEVICE omp_set_default_device
102 #define FTN_GET_NUM_DEVICES omp_get_num_devices
103#endif
Andrey Churbanov851563f2015-02-10 19:47:09 +0000104 #define FTN_IS_INITIAL_DEVICE omp_is_initial_device
Jim Cownie5e8470a2013-09-27 10:38:44 +0000105#endif
106
Jim Cownie181b4bb2013-12-23 17:28:57 +0000107#if OMP_40_ENABLED
108 #define FTN_GET_CANCELLATION omp_get_cancellation
109 #define FTN_GET_CANCELLATION_STATUS kmp_get_cancellation_status
110#endif
111
Jim Cownie5e8470a2013-09-27 10:38:44 +0000112#endif /* KMP_FTN_PLAIN */
113
114/* ------------------------------------------------------------------------ */
115
116#if KMP_FTN_ENTRIES == KMP_FTN_APPEND
117
118 #define FTN_SET_STACKSIZE kmp_set_stacksize_
119 #define FTN_SET_STACKSIZE_S kmp_set_stacksize_s_
120 #define FTN_GET_STACKSIZE kmp_get_stacksize_
121 #define FTN_GET_STACKSIZE_S kmp_get_stacksize_s_
122 #define FTN_SET_BLOCKTIME kmp_set_blocktime_
123 #define FTN_GET_BLOCKTIME kmp_get_blocktime_
124 #define FTN_SET_LIBRARY_SERIAL kmp_set_library_serial_
125 #define FTN_SET_LIBRARY_TURNAROUND kmp_set_library_turnaround_
126 #define FTN_SET_LIBRARY_THROUGHPUT kmp_set_library_throughput_
127 #define FTN_SET_LIBRARY kmp_set_library_
128 #define FTN_GET_LIBRARY kmp_get_library_
129 #define FTN_SET_DEFAULTS kmp_set_defaults_
130 #define FTN_SET_AFFINITY kmp_set_affinity_
131 #define FTN_GET_AFFINITY kmp_get_affinity_
132 #define FTN_GET_AFFINITY_MAX_PROC kmp_get_affinity_max_proc_
133 #define FTN_CREATE_AFFINITY_MASK kmp_create_affinity_mask_
134 #define FTN_DESTROY_AFFINITY_MASK kmp_destroy_affinity_mask_
135 #define FTN_SET_AFFINITY_MASK_PROC kmp_set_affinity_mask_proc_
136 #define FTN_UNSET_AFFINITY_MASK_PROC kmp_unset_affinity_mask_proc_
137 #define FTN_GET_AFFINITY_MASK_PROC kmp_get_affinity_mask_proc_
138
139 #define FTN_MALLOC kmp_malloc_
140 #define FTN_CALLOC kmp_calloc_
141 #define FTN_REALLOC kmp_realloc_
142 #define FTN_FREE kmp_free_
143
144 #define FTN_GET_NUM_KNOWN_THREADS kmp_get_num_known_threads_
145
146 #define FTN_SET_NUM_THREADS omp_set_num_threads_
147 #define FTN_GET_NUM_THREADS omp_get_num_threads_
148 #define FTN_GET_MAX_THREADS omp_get_max_threads_
149 #define FTN_GET_THREAD_NUM omp_get_thread_num_
150 #define FTN_GET_NUM_PROCS omp_get_num_procs_
151 #define FTN_SET_DYNAMIC omp_set_dynamic_
152 #define FTN_GET_DYNAMIC omp_get_dynamic_
153 #define FTN_SET_NESTED omp_set_nested_
154 #define FTN_GET_NESTED omp_get_nested_
155 #define FTN_IN_PARALLEL omp_in_parallel_
156 #define FTN_GET_THREAD_LIMIT omp_get_thread_limit_
157 #define FTN_SET_SCHEDULE omp_set_schedule_
158 #define FTN_GET_SCHEDULE omp_get_schedule_
159 #define FTN_SET_MAX_ACTIVE_LEVELS omp_set_max_active_levels_
160 #define FTN_GET_MAX_ACTIVE_LEVELS omp_get_max_active_levels_
161 #define FTN_GET_ACTIVE_LEVEL omp_get_active_level_
162 #define FTN_GET_LEVEL omp_get_level_
163 #define FTN_GET_ANCESTOR_THREAD_NUM omp_get_ancestor_thread_num_
164 #define FTN_GET_TEAM_SIZE omp_get_team_size_
165 #define FTN_IN_FINAL omp_in_final_
166// #define FTN_SET_PROC_BIND omp_set_proc_bind_
167 #define FTN_GET_PROC_BIND omp_get_proc_bind_
168// #define FTN_CURR_PROC_BIND omp_curr_proc_bind_
169#if OMP_40_ENABLED
170 #define FTN_GET_NUM_TEAMS omp_get_num_teams_
171 #define FTN_GET_TEAM_NUM omp_get_team_num_
172#endif
173 #define FTN_INIT_LOCK omp_init_lock_
174 #define FTN_DESTROY_LOCK omp_destroy_lock_
175 #define FTN_SET_LOCK omp_set_lock_
176 #define FTN_UNSET_LOCK omp_unset_lock_
177 #define FTN_TEST_LOCK omp_test_lock_
178 #define FTN_INIT_NEST_LOCK omp_init_nest_lock_
179 #define FTN_DESTROY_NEST_LOCK omp_destroy_nest_lock_
180 #define FTN_SET_NEST_LOCK omp_set_nest_lock_
181 #define FTN_UNSET_NEST_LOCK omp_unset_nest_lock_
182 #define FTN_TEST_NEST_LOCK omp_test_nest_lock_
183
184 #define FTN_SET_WARNINGS_ON kmp_set_warnings_on_
185 #define FTN_SET_WARNINGS_OFF kmp_set_warnings_off_
186
187 #define FTN_GET_WTIME omp_get_wtime_
188 #define FTN_GET_WTICK omp_get_wtick_
189
190#if OMP_40_ENABLED
191#if KMP_MIC || KMP_OS_DARWIN
192 #define FTN_GET_DEFAULT_DEVICE omp_get_default_device_
193 #define FTN_SET_DEFAULT_DEVICE omp_set_default_device_
194 #define FTN_GET_NUM_DEVICES omp_get_num_devices_
195#endif
Andrey Churbanov851563f2015-02-10 19:47:09 +0000196 #define FTN_IS_INITIAL_DEVICE omp_is_initial_device_
Jim Cownie5e8470a2013-09-27 10:38:44 +0000197#endif
198
199
Jim Cownie181b4bb2013-12-23 17:28:57 +0000200#if OMP_40_ENABLED
201 #define FTN_GET_CANCELLATION omp_get_cancellation_
202 #define FTN_GET_CANCELLATION_STATUS kmp_get_cancellation_status_
203#endif
204
Jim Cownie5e8470a2013-09-27 10:38:44 +0000205#endif /* KMP_FTN_APPEND */
206
207/* ------------------------------------------------------------------------ */
208
209#if KMP_FTN_ENTRIES == KMP_FTN_UPPER
210
211 #define FTN_SET_STACKSIZE KMP_SET_STACKSIZE
212 #define FTN_SET_STACKSIZE_S KMP_SET_STACKSIZE_S
213 #define FTN_GET_STACKSIZE KMP_GET_STACKSIZE
214 #define FTN_GET_STACKSIZE_S KMP_GET_STACKSIZE_S
215 #define FTN_SET_BLOCKTIME KMP_SET_BLOCKTIME
216 #define FTN_GET_BLOCKTIME KMP_GET_BLOCKTIME
217 #define FTN_SET_LIBRARY_SERIAL KMP_SET_LIBRARY_SERIAL
218 #define FTN_SET_LIBRARY_TURNAROUND KMP_SET_LIBRARY_TURNAROUND
219 #define FTN_SET_LIBRARY_THROUGHPUT KMP_SET_LIBRARY_THROUGHPUT
220 #define FTN_SET_LIBRARY KMP_SET_LIBRARY
221 #define FTN_GET_LIBRARY KMP_GET_LIBRARY
222 #define FTN_SET_DEFAULTS KMP_SET_DEFAULTS
223 #define FTN_SET_AFFINITY KMP_SET_AFFINITY
224 #define FTN_GET_AFFINITY KMP_GET_AFFINITY
225 #define FTN_GET_AFFINITY_MAX_PROC KMP_GET_AFFINITY_MAX_PROC
226 #define FTN_CREATE_AFFINITY_MASK KMP_CREATE_AFFINITY_MASK
227 #define FTN_DESTROY_AFFINITY_MASK KMP_DESTROY_AFFINITY_MASK
228 #define FTN_SET_AFFINITY_MASK_PROC KMP_SET_AFFINITY_MASK_PROC
229 #define FTN_UNSET_AFFINITY_MASK_PROC KMP_UNSET_AFFINITY_MASK_PROC
230 #define FTN_GET_AFFINITY_MASK_PROC KMP_GET_AFFINITY_MASK_PROC
231
232 #define FTN_MALLOC KMP_MALLOC
233 #define FTN_CALLOC KMP_CALLOC
234 #define FTN_REALLOC KMP_REALLOC
235 #define FTN_FREE KMP_FREE
236
237 #define FTN_GET_NUM_KNOWN_THREADS KMP_GET_NUM_KNOWN_THREADS
238
239 #define FTN_SET_NUM_THREADS OMP_SET_NUM_THREADS
240 #define FTN_GET_NUM_THREADS OMP_GET_NUM_THREADS
241 #define FTN_GET_MAX_THREADS OMP_GET_MAX_THREADS
242 #define FTN_GET_THREAD_NUM OMP_GET_THREAD_NUM
243 #define FTN_GET_NUM_PROCS OMP_GET_NUM_PROCS
244 #define FTN_SET_DYNAMIC OMP_SET_DYNAMIC
245 #define FTN_GET_DYNAMIC OMP_GET_DYNAMIC
246 #define FTN_SET_NESTED OMP_SET_NESTED
247 #define FTN_GET_NESTED OMP_GET_NESTED
248 #define FTN_IN_PARALLEL OMP_IN_PARALLEL
249 #define FTN_GET_THREAD_LIMIT OMP_GET_THREAD_LIMIT
250 #define FTN_SET_SCHEDULE OMP_SET_SCHEDULE
251 #define FTN_GET_SCHEDULE OMP_GET_SCHEDULE
252 #define FTN_SET_MAX_ACTIVE_LEVELS OMP_SET_MAX_ACTIVE_LEVELS
253 #define FTN_GET_MAX_ACTIVE_LEVELS OMP_GET_MAX_ACTIVE_LEVELS
254 #define FTN_GET_ACTIVE_LEVEL OMP_GET_ACTIVE_LEVEL
255 #define FTN_GET_LEVEL OMP_GET_LEVEL
256 #define FTN_GET_ANCESTOR_THREAD_NUM OMP_GET_ANCESTOR_THREAD_NUM
257 #define FTN_GET_TEAM_SIZE OMP_GET_TEAM_SIZE
258 #define FTN_IN_FINAL OMP_IN_FINAL
259// #define FTN_SET_PROC_BIND OMP_SET_PROC_BIND
260 #define FTN_GET_PROC_BIND OMP_GET_PROC_BIND
261// #define FTN_CURR_PROC_BIND OMP_CURR_PROC_BIND
262#if OMP_40_ENABLED
263 #define FTN_GET_NUM_TEAMS OMP_GET_NUM_TEAMS
264 #define FTN_GET_TEAM_NUM OMP_GET_TEAM_NUM
265#endif
266 #define FTN_INIT_LOCK OMP_INIT_LOCK
267 #define FTN_DESTROY_LOCK OMP_DESTROY_LOCK
268 #define FTN_SET_LOCK OMP_SET_LOCK
269 #define FTN_UNSET_LOCK OMP_UNSET_LOCK
270 #define FTN_TEST_LOCK OMP_TEST_LOCK
271 #define FTN_INIT_NEST_LOCK OMP_INIT_NEST_LOCK
272 #define FTN_DESTROY_NEST_LOCK OMP_DESTROY_NEST_LOCK
273 #define FTN_SET_NEST_LOCK OMP_SET_NEST_LOCK
274 #define FTN_UNSET_NEST_LOCK OMP_UNSET_NEST_LOCK
275 #define FTN_TEST_NEST_LOCK OMP_TEST_NEST_LOCK
276
277 #define FTN_SET_WARNINGS_ON KMP_SET_WARNINGS_ON
278 #define FTN_SET_WARNINGS_OFF KMP_SET_WARNINGS_OFF
279
280 #define FTN_GET_WTIME OMP_GET_WTIME
281 #define FTN_GET_WTICK OMP_GET_WTICK
282
283#if OMP_40_ENABLED
284#if KMP_MIC || KMP_OS_DARWIN
285 #define FTN_GET_DEFAULT_DEVICE OMP_GET_DEFAULT_DEVICE
286 #define FTN_SET_DEFAULT_DEVICE OMP_SET_DEFAULT_DEVICE
287 #define FTN_GET_NUM_DEVICES OMP_GET_NUM_DEVICES
288#endif
Andrey Churbanov851563f2015-02-10 19:47:09 +0000289 #define FTN_IS_INITIAL_DEVICE OMP_IS_INITIAL_DEVICE
Jim Cownie5e8470a2013-09-27 10:38:44 +0000290#endif
291
292
Jim Cownie181b4bb2013-12-23 17:28:57 +0000293#if OMP_40_ENABLED
294 #define FTN_GET_CANCELLATION OMP_GET_CANCELLATION
295 #define FTN_GET_CANCELLATION_STATUS KMP_GET_CANCELLATION_STATUS
296#endif
297
Jim Cownie5e8470a2013-09-27 10:38:44 +0000298#endif /* KMP_FTN_UPPER */
299
300/* ------------------------------------------------------------------------ */
301
302#if KMP_FTN_ENTRIES == KMP_FTN_UAPPEND
303
304 #define FTN_SET_STACKSIZE KMP_SET_STACKSIZE_
305 #define FTN_SET_STACKSIZE_S KMP_SET_STACKSIZE_S_
306 #define FTN_GET_STACKSIZE KMP_GET_STACKSIZE_
307 #define FTN_GET_STACKSIZE_S KMP_GET_STACKSIZE_S_
308 #define FTN_SET_BLOCKTIME KMP_SET_BLOCKTIME_
309 #define FTN_GET_BLOCKTIME KMP_GET_BLOCKTIME_
310 #define FTN_SET_LIBRARY_SERIAL KMP_SET_LIBRARY_SERIAL_
311 #define FTN_SET_LIBRARY_TURNAROUND KMP_SET_LIBRARY_TURNAROUND_
312 #define FTN_SET_LIBRARY_THROUGHPUT KMP_SET_LIBRARY_THROUGHPUT_
313 #define FTN_SET_LIBRARY KMP_SET_LIBRARY_
314 #define FTN_GET_LIBRARY KMP_GET_LIBRARY_
315 #define FTN_SET_DEFAULTS KMP_SET_DEFAULTS_
316 #define FTN_SET_AFFINITY KMP_SET_AFFINITY_
317 #define FTN_GET_AFFINITY KMP_GET_AFFINITY_
318 #define FTN_GET_AFFINITY_MAX_PROC KMP_GET_AFFINITY_MAX_PROC_
319 #define FTN_CREATE_AFFINITY_MASK KMP_CREATE_AFFINITY_MASK_
320 #define FTN_DESTROY_AFFINITY_MASK KMP_DESTROY_AFFINITY_MASK_
321 #define FTN_SET_AFFINITY_MASK_PROC KMP_SET_AFFINITY_MASK_PROC_
322 #define FTN_UNSET_AFFINITY_MASK_PROC KMP_UNSET_AFFINITY_MASK_PROC_
323 #define FTN_GET_AFFINITY_MASK_PROC KMP_GET_AFFINITY_MASK_PROC_
324
325 #define FTN_MALLOC KMP_MALLOC_
326 #define FTN_CALLOC KMP_CALLOC_
327 #define FTN_REALLOC KMP_REALLOC_
328 #define FTN_FREE KMP_FREE_
329
330 #define FTN_GET_NUM_KNOWN_THREADS KMP_GET_NUM_KNOWN_THREADS_
331
332 #define FTN_SET_NUM_THREADS OMP_SET_NUM_THREADS_
333 #define FTN_GET_NUM_THREADS OMP_GET_NUM_THREADS_
334 #define FTN_GET_MAX_THREADS OMP_GET_MAX_THREADS_
335 #define FTN_GET_THREAD_NUM OMP_GET_THREAD_NUM_
336 #define FTN_GET_NUM_PROCS OMP_GET_NUM_PROCS_
337 #define FTN_SET_DYNAMIC OMP_SET_DYNAMIC_
338 #define FTN_GET_DYNAMIC OMP_GET_DYNAMIC_
339 #define FTN_SET_NESTED OMP_SET_NESTED_
340 #define FTN_GET_NESTED OMP_GET_NESTED_
341 #define FTN_IN_PARALLEL OMP_IN_PARALLEL_
342 #define FTN_GET_THREAD_LIMIT OMP_GET_THREAD_LIMIT_
343 #define FTN_SET_SCHEDULE OMP_SET_SCHEDULE_
344 #define FTN_GET_SCHEDULE OMP_GET_SCHEDULE_
345 #define FTN_SET_MAX_ACTIVE_LEVELS OMP_SET_MAX_ACTIVE_LEVELS_
346 #define FTN_GET_MAX_ACTIVE_LEVELS OMP_GET_MAX_ACTIVE_LEVELS_
347 #define FTN_GET_ACTIVE_LEVEL OMP_GET_ACTIVE_LEVEL_
348 #define FTN_GET_LEVEL OMP_GET_LEVEL_
349 #define FTN_GET_ANCESTOR_THREAD_NUM OMP_GET_ANCESTOR_THREAD_NUM_
350 #define FTN_GET_TEAM_SIZE OMP_GET_TEAM_SIZE_
351 #define FTN_IN_FINAL OMP_IN_FINAL_
352// #define FTN_SET_PROC_BIND OMP_SET_PROC_BIND_
353 #define FTN_GET_PROC_BIND OMP_GET_PROC_BIND_
354// #define FTN_CURR_PROC_BIND OMP_CURR_PROC_BIND_
355#if OMP_40_ENABLED
356 #define FTN_GET_NUM_TEAMS OMP_GET_NUM_TEAMS_
357 #define FTN_GET_TEAM_NUM OMP_GET_TEAM_NUM_
358#endif
359 #define FTN_INIT_LOCK OMP_INIT_LOCK_
360 #define FTN_DESTROY_LOCK OMP_DESTROY_LOCK_
361 #define FTN_SET_LOCK OMP_SET_LOCK_
362 #define FTN_UNSET_LOCK OMP_UNSET_LOCK_
363 #define FTN_TEST_LOCK OMP_TEST_LOCK_
364 #define FTN_INIT_NEST_LOCK OMP_INIT_NEST_LOCK_
365 #define FTN_DESTROY_NEST_LOCK OMP_DESTROY_NEST_LOCK_
366 #define FTN_SET_NEST_LOCK OMP_SET_NEST_LOCK_
367 #define FTN_UNSET_NEST_LOCK OMP_UNSET_NEST_LOCK_
368 #define FTN_TEST_NEST_LOCK OMP_TEST_NEST_LOCK_
369
370 #define FTN_SET_WARNINGS_ON KMP_SET_WARNINGS_ON_
371 #define FTN_SET_WARNINGS_OFF KMP_SET_WARNINGS_OFF_
372
373 #define FTN_GET_WTIME OMP_GET_WTIME_
374 #define FTN_GET_WTICK OMP_GET_WTICK_
375
376#if OMP_40_ENABLED
377#if KMP_MIC || KMP_OS_DARWIN
378 #define FTN_GET_DEFAULT_DEVICE OMP_GET_DEFAULT_DEVICE_
379 #define FTN_SET_DEFAULT_DEVICE OMP_SET_DEFAULT_DEVICE_
380 #define FTN_GET_NUM_DEVICES OMP_GET_NUM_DEVICES_
381#endif
Andrey Churbanov851563f2015-02-10 19:47:09 +0000382 #define FTN_IS_INITIAL_DEVICE OMP_IS_INITIAL_DEVICE_
Jim Cownie5e8470a2013-09-27 10:38:44 +0000383#endif
384
385
Jim Cownie181b4bb2013-12-23 17:28:57 +0000386#if OMP_40_ENABLED
387 #define FTN_GET_CANCELLATION OMP_GET_CANCELLATION_
388 #define FTN_GET_CANCELLATION_STATUS KMP_GET_CANCELLATION_STATUS_
389#endif
390
Jim Cownie5e8470a2013-09-27 10:38:44 +0000391#endif /* KMP_FTN_UAPPEND */
392
Jim Cownie181b4bb2013-12-23 17:28:57 +0000393/* ------------------------------------------------------------------ */
394/* -------------------------- GOMP API NAMES ------------------------ */
395// All GOMP_1.0 symbols
396#define KMP_API_NAME_GOMP_ATOMIC_END GOMP_atomic_end
397#define KMP_API_NAME_GOMP_ATOMIC_START GOMP_atomic_start
398#define KMP_API_NAME_GOMP_BARRIER GOMP_barrier
399#define KMP_API_NAME_GOMP_CRITICAL_END GOMP_critical_end
400#define KMP_API_NAME_GOMP_CRITICAL_NAME_END GOMP_critical_name_end
401#define KMP_API_NAME_GOMP_CRITICAL_NAME_START GOMP_critical_name_start
402#define KMP_API_NAME_GOMP_CRITICAL_START GOMP_critical_start
403#define KMP_API_NAME_GOMP_LOOP_DYNAMIC_NEXT GOMP_loop_dynamic_next
404#define KMP_API_NAME_GOMP_LOOP_DYNAMIC_START GOMP_loop_dynamic_start
405#define KMP_API_NAME_GOMP_LOOP_END GOMP_loop_end
406#define KMP_API_NAME_GOMP_LOOP_END_NOWAIT GOMP_loop_end_nowait
407#define KMP_API_NAME_GOMP_LOOP_GUIDED_NEXT GOMP_loop_guided_next
408#define KMP_API_NAME_GOMP_LOOP_GUIDED_START GOMP_loop_guided_start
409#define KMP_API_NAME_GOMP_LOOP_ORDERED_DYNAMIC_NEXT GOMP_loop_ordered_dynamic_next
410#define KMP_API_NAME_GOMP_LOOP_ORDERED_DYNAMIC_START GOMP_loop_ordered_dynamic_start
411#define KMP_API_NAME_GOMP_LOOP_ORDERED_GUIDED_NEXT GOMP_loop_ordered_guided_next
412#define KMP_API_NAME_GOMP_LOOP_ORDERED_GUIDED_START GOMP_loop_ordered_guided_start
413#define KMP_API_NAME_GOMP_LOOP_ORDERED_RUNTIME_NEXT GOMP_loop_ordered_runtime_next
414#define KMP_API_NAME_GOMP_LOOP_ORDERED_RUNTIME_START GOMP_loop_ordered_runtime_start
415#define KMP_API_NAME_GOMP_LOOP_ORDERED_STATIC_NEXT GOMP_loop_ordered_static_next
416#define KMP_API_NAME_GOMP_LOOP_ORDERED_STATIC_START GOMP_loop_ordered_static_start
417#define KMP_API_NAME_GOMP_LOOP_RUNTIME_NEXT GOMP_loop_runtime_next
418#define KMP_API_NAME_GOMP_LOOP_RUNTIME_START GOMP_loop_runtime_start
419#define KMP_API_NAME_GOMP_LOOP_STATIC_NEXT GOMP_loop_static_next
420#define KMP_API_NAME_GOMP_LOOP_STATIC_START GOMP_loop_static_start
421#define KMP_API_NAME_GOMP_ORDERED_END GOMP_ordered_end
422#define KMP_API_NAME_GOMP_ORDERED_START GOMP_ordered_start
423#define KMP_API_NAME_GOMP_PARALLEL_END GOMP_parallel_end
424#define KMP_API_NAME_GOMP_PARALLEL_LOOP_DYNAMIC_START GOMP_parallel_loop_dynamic_start
425#define KMP_API_NAME_GOMP_PARALLEL_LOOP_GUIDED_START GOMP_parallel_loop_guided_start
426#define KMP_API_NAME_GOMP_PARALLEL_LOOP_RUNTIME_START GOMP_parallel_loop_runtime_start
427#define KMP_API_NAME_GOMP_PARALLEL_LOOP_STATIC_START GOMP_parallel_loop_static_start
428#define KMP_API_NAME_GOMP_PARALLEL_SECTIONS_START GOMP_parallel_sections_start
429#define KMP_API_NAME_GOMP_PARALLEL_START GOMP_parallel_start
430#define KMP_API_NAME_GOMP_SECTIONS_END GOMP_sections_end
431#define KMP_API_NAME_GOMP_SECTIONS_END_NOWAIT GOMP_sections_end_nowait
432#define KMP_API_NAME_GOMP_SECTIONS_NEXT GOMP_sections_next
433#define KMP_API_NAME_GOMP_SECTIONS_START GOMP_sections_start
434#define KMP_API_NAME_GOMP_SINGLE_COPY_END GOMP_single_copy_end
435#define KMP_API_NAME_GOMP_SINGLE_COPY_START GOMP_single_copy_start
436#define KMP_API_NAME_GOMP_SINGLE_START GOMP_single_start
437
438// All GOMP_2.0 symbols
439#define KMP_API_NAME_GOMP_TASK GOMP_task
440#define KMP_API_NAME_GOMP_TASKWAIT GOMP_taskwait
441#define KMP_API_NAME_GOMP_LOOP_ULL_DYNAMIC_NEXT GOMP_loop_ull_dynamic_next
442#define KMP_API_NAME_GOMP_LOOP_ULL_DYNAMIC_START GOMP_loop_ull_dynamic_start
443#define KMP_API_NAME_GOMP_LOOP_ULL_GUIDED_NEXT GOMP_loop_ull_guided_next
444#define KMP_API_NAME_GOMP_LOOP_ULL_GUIDED_START GOMP_loop_ull_guided_start
445#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT GOMP_loop_ull_ordered_dynamic_next
446#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START GOMP_loop_ull_ordered_dynamic_start
447#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT GOMP_loop_ull_ordered_guided_next
448#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_GUIDED_START GOMP_loop_ull_ordered_guided_start
449#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT GOMP_loop_ull_ordered_runtime_next
450#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_RUNTIME_START GOMP_loop_ull_ordered_runtime_start
451#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT GOMP_loop_ull_ordered_static_next
452#define KMP_API_NAME_GOMP_LOOP_ULL_ORDERED_STATIC_START GOMP_loop_ull_ordered_static_start
453#define KMP_API_NAME_GOMP_LOOP_ULL_RUNTIME_NEXT GOMP_loop_ull_runtime_next
454#define KMP_API_NAME_GOMP_LOOP_ULL_RUNTIME_START GOMP_loop_ull_runtime_start
455#define KMP_API_NAME_GOMP_LOOP_ULL_STATIC_NEXT GOMP_loop_ull_static_next
456#define KMP_API_NAME_GOMP_LOOP_ULL_STATIC_START GOMP_loop_ull_static_start
457
458// All GOMP_3.0 symbols
459#define KMP_API_NAME_GOMP_TASKYIELD GOMP_taskyield
460
461// All GOMP_4.0 symbols
462// TODO: As of 2013-10-14, none of the GOMP_4.0 functions are implemented in libiomp5
463#define KMP_API_NAME_GOMP_BARRIER_CANCEL GOMP_barrier_cancel
464#define KMP_API_NAME_GOMP_CANCEL GOMP_cancel
465#define KMP_API_NAME_GOMP_CANCELLATION_POINT GOMP_cancellation_point
466#define KMP_API_NAME_GOMP_LOOP_END_CANCEL GOMP_loop_end_cancel
467#define KMP_API_NAME_GOMP_PARALLEL_LOOP_DYNAMIC GOMP_parallel_loop_dynamic
468#define KMP_API_NAME_GOMP_PARALLEL_LOOP_GUIDED GOMP_parallel_loop_guided
469#define KMP_API_NAME_GOMP_PARALLEL_LOOP_RUNTIME GOMP_parallel_loop_runtime
470#define KMP_API_NAME_GOMP_PARALLEL_LOOP_STATIC GOMP_parallel_loop_static
471#define KMP_API_NAME_GOMP_PARALLEL_SECTIONS GOMP_parallel_sections
472#define KMP_API_NAME_GOMP_PARALLEL GOMP_parallel
473#define KMP_API_NAME_GOMP_SECTIONS_END_CANCEL GOMP_sections_end_cancel
474#define KMP_API_NAME_GOMP_TASKGROUP_START GOMP_taskgroup_start
475#define KMP_API_NAME_GOMP_TASKGROUP_END GOMP_taskgroup_end
476/* Target functions should be taken care of by liboffload */
Jim Cownie4cc4bb42014-10-07 16:25:50 +0000477#define KMP_API_NAME_GOMP_TARGET GOMP_target
478#define KMP_API_NAME_GOMP_TARGET_DATA GOMP_target_data
479#define KMP_API_NAME_GOMP_TARGET_END_DATA GOMP_target_end_data
480#define KMP_API_NAME_GOMP_TARGET_UPDATE GOMP_target_update
Jim Cownie181b4bb2013-12-23 17:28:57 +0000481#define KMP_API_NAME_GOMP_TEAMS GOMP_teams
482
Jim Cownie4cc4bb42014-10-07 16:25:50 +0000483#ifdef KMP_USE_VERSION_SYMBOLS
484 #define xstr(x) str(x)
Jim Cownie181b4bb2013-12-23 17:28:57 +0000485 #define str(x) #x
486
487 // If Linux, xexpand prepends __kmp_api_ to the real API name
488 #define xexpand(api_name) expand(api_name)
489 #define expand(api_name) __kmp_api_##api_name
490
491 #define xaliasify(api_name,ver) aliasify(api_name,ver)
492 #define aliasify(api_name,ver) __typeof__(__kmp_api_##api_name) __kmp_api_##api_name##_##ver##_alias __attribute__((alias(xstr(__kmp_api_##api_name))))
493
494 #define xversionify(api_name, version_num, version_str) versionify(api_name, version_num, version_str, "VERSION")
495 #define versionify(api_name, version_num, version_str, default_ver) \
496 __asm__(".symver " xstr(__kmp_api_##api_name##_##version_num##_alias) "," xstr(api_name) "@" version_str "\n\t"); \
497 __asm__(".symver " xstr(__kmp_api_##api_name) "," xstr(api_name) "@@" default_ver "\n\t")
498
Jim Cownie4cc4bb42014-10-07 16:25:50 +0000499#else // KMP_USE_VERSION_SYMBOLS
Jim Cownie181b4bb2013-12-23 17:28:57 +0000500 #define xstr(x) /* Nothing */
501 #define str(x) /* Nothing */
502
503 // if Windows or Mac, xexpand does no name transformation
504 #define xexpand(api_name) expand(api_name)
505 #define expand(api_name) api_name
506
507 #define xaliasify(api_name,ver) /* Nothing */
508 #define aliasify(api_name,ver) /* Nothing */
509
510 #define xversionify(api_name, version_num, version_str) /* Nothing */
511 #define versionify(api_name, version_num, version_str, default_ver) /* Nothing */
512
Jim Cownie4cc4bb42014-10-07 16:25:50 +0000513#endif // KMP_USE_VERSION_SYMBOLS
Jim Cownie181b4bb2013-12-23 17:28:57 +0000514
Jim Cownie5e8470a2013-09-27 10:38:44 +0000515#endif /* KMP_FTN_OS_H */
516