]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/openmp/runtime/src/include/30/omp_lib.f90.var
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / openmp / runtime / src / include / 30 / omp_lib.f90.var
1 ! include/30/omp_lib.f90.var
2
3 !
4 !//===----------------------------------------------------------------------===//
5 !//
6 !//                     The LLVM Compiler Infrastructure
7 !//
8 !// This file is dual licensed under the MIT and the University of Illinois Open
9 !// Source Licenses. See LICENSE.txt for details.
10 !//
11 !//===----------------------------------------------------------------------===//
12 !
13
14       module omp_lib_kinds
15
16         use, intrinsic :: iso_c_binding
17
18         integer, parameter :: omp_integer_kind       = c_int
19         integer, parameter :: omp_logical_kind       = 4
20         integer, parameter :: omp_real_kind          = c_float
21         integer, parameter :: kmp_double_kind        = c_double
22         integer, parameter :: omp_lock_kind          = c_intptr_t
23         integer, parameter :: omp_nest_lock_kind     = c_intptr_t
24         integer, parameter :: omp_sched_kind         = omp_integer_kind
25         integer, parameter :: kmp_pointer_kind       = c_intptr_t
26         integer, parameter :: kmp_size_t_kind        = c_size_t
27         integer, parameter :: kmp_affinity_mask_kind = c_intptr_t
28
29       end module omp_lib_kinds
30
31       module omp_lib
32
33         use omp_lib_kinds
34
35         integer (kind=omp_integer_kind), parameter :: openmp_version    = @LIBOMP_OMP_YEAR_MONTH@
36         integer (kind=omp_integer_kind), parameter :: kmp_version_major = @LIBOMP_VERSION_MAJOR@
37         integer (kind=omp_integer_kind), parameter :: kmp_version_minor = @LIBOMP_VERSION_MINOR@
38         integer (kind=omp_integer_kind), parameter :: kmp_version_build = @LIBOMP_VERSION_BUILD@
39         character(*)               kmp_build_date
40         parameter( kmp_build_date = '@LIBOMP_BUILD_DATE@' )
41
42         integer(kind=omp_sched_kind), parameter :: omp_sched_static  = 1
43         integer(kind=omp_sched_kind), parameter :: omp_sched_dynamic = 2
44         integer(kind=omp_sched_kind), parameter :: omp_sched_guided  = 3
45         integer(kind=omp_sched_kind), parameter :: omp_sched_auto    = 4
46
47         interface
48
49 !         ***
50 !         *** omp_* entry points
51 !         ***
52
53           subroutine omp_set_num_threads(nthreads) bind(c)
54             use omp_lib_kinds
55             integer (kind=omp_integer_kind), value :: nthreads
56           end subroutine omp_set_num_threads
57
58           subroutine omp_set_dynamic(enable) bind(c)
59             use omp_lib_kinds
60             logical (kind=omp_logical_kind), value :: enable
61           end subroutine omp_set_dynamic
62
63           subroutine omp_set_nested(enable) bind(c)
64             use omp_lib_kinds
65             logical (kind=omp_logical_kind), value :: enable
66           end subroutine omp_set_nested
67
68           function omp_get_num_threads() bind(c)
69             use omp_lib_kinds
70             integer (kind=omp_integer_kind) omp_get_num_threads
71           end function omp_get_num_threads
72
73           function omp_get_max_threads() bind(c)
74             use omp_lib_kinds
75             integer (kind=omp_integer_kind) omp_get_max_threads
76           end function omp_get_max_threads
77
78           function omp_get_thread_num() bind(c)
79             use omp_lib_kinds
80             integer (kind=omp_integer_kind) omp_get_thread_num
81           end function omp_get_thread_num
82
83           function omp_get_num_procs() bind(c)
84             use omp_lib_kinds
85             integer (kind=omp_integer_kind) omp_get_num_procs
86           end function omp_get_num_procs
87
88           function omp_in_parallel() bind(c)
89             use omp_lib_kinds
90             logical (kind=omp_logical_kind) omp_in_parallel
91           end function omp_in_parallel
92
93           function omp_in_final() bind(c)
94             use omp_lib_kinds
95             logical (kind=omp_logical_kind) omp_in_final
96           end function omp_in_final
97
98           function omp_get_dynamic() bind(c)
99             use omp_lib_kinds
100             logical (kind=omp_logical_kind) omp_get_dynamic
101           end function omp_get_dynamic
102
103           function omp_get_nested() bind(c)
104             use omp_lib_kinds
105             logical (kind=omp_logical_kind) omp_get_nested
106           end function omp_get_nested
107
108           function omp_get_thread_limit() bind(c)
109             use omp_lib_kinds
110             integer (kind=omp_integer_kind) omp_get_thread_limit
111           end function omp_get_thread_limit
112
113           subroutine omp_set_max_active_levels(max_levels) bind(c)
114             use omp_lib_kinds
115             integer (kind=omp_integer_kind), value :: max_levels
116           end subroutine omp_set_max_active_levels
117
118           function omp_get_max_active_levels() bind(c)
119             use omp_lib_kinds
120             integer (kind=omp_integer_kind) omp_get_max_active_levels
121           end function omp_get_max_active_levels
122
123           function omp_get_level() bind(c)
124             use omp_lib_kinds
125             integer (kind=omp_integer_kind) :: omp_get_level
126           end function omp_get_level
127
128           function omp_get_active_level() bind(c)
129             use omp_lib_kinds
130             integer (kind=omp_integer_kind) :: omp_get_active_level
131           end function omp_get_active_level
132
133           function omp_get_ancestor_thread_num(level) bind(c)
134             use omp_lib_kinds
135             integer (kind=omp_integer_kind) omp_get_ancestor_thread_num
136             integer (kind=omp_integer_kind), value :: level
137           end function omp_get_ancestor_thread_num
138
139           function omp_get_team_size(level) bind(c)
140             use omp_lib_kinds
141             integer (kind=omp_integer_kind) omp_get_team_size
142             integer (kind=omp_integer_kind), value :: level
143           end function omp_get_team_size
144
145           subroutine omp_set_schedule(kind, modifier) bind(c)
146             use omp_lib_kinds
147             integer (kind=omp_sched_kind), value :: kind
148             integer (kind=omp_integer_kind), value :: modifier
149           end subroutine omp_set_schedule
150
151           subroutine omp_get_schedule(kind, modifier) bind(c)
152             use omp_lib_kinds
153             integer (kind=omp_sched_kind)   :: kind
154             integer (kind=omp_integer_kind) :: modifier
155           end subroutine omp_get_schedule
156
157           function omp_get_wtime() bind(c)
158             use omp_lib_kinds
159             real (kind=kmp_double_kind) omp_get_wtime
160           end function omp_get_wtime
161
162           function omp_get_wtick() bind(c)
163             use omp_lib_kinds
164             real (kind=kmp_double_kind) omp_get_wtick
165           end function omp_get_wtick
166
167           subroutine omp_init_lock(lockvar) bind(c)
168             use omp_lib_kinds
169             integer (kind=omp_lock_kind) lockvar
170           end subroutine omp_init_lock
171
172           subroutine omp_destroy_lock(lockvar) bind(c)
173             use omp_lib_kinds
174             integer (kind=omp_lock_kind) lockvar
175           end subroutine omp_destroy_lock
176
177           subroutine omp_set_lock(lockvar) bind(c)
178             use omp_lib_kinds
179             integer (kind=omp_lock_kind) lockvar
180           end subroutine omp_set_lock
181
182           subroutine omp_unset_lock(lockvar) bind(c)
183             use omp_lib_kinds
184             integer (kind=omp_lock_kind) lockvar
185           end subroutine omp_unset_lock
186
187           function omp_test_lock(lockvar) bind(c)
188             use omp_lib_kinds
189             logical (kind=omp_logical_kind) omp_test_lock
190             integer (kind=omp_lock_kind) lockvar
191           end function omp_test_lock
192
193           subroutine omp_init_nest_lock(lockvar) bind(c)
194             use omp_lib_kinds
195             integer (kind=omp_nest_lock_kind) lockvar
196           end subroutine omp_init_nest_lock
197
198           subroutine omp_destroy_nest_lock(lockvar) bind(c)
199             use omp_lib_kinds
200             integer (kind=omp_nest_lock_kind) lockvar
201           end subroutine omp_destroy_nest_lock
202
203           subroutine omp_set_nest_lock(lockvar) bind(c)
204             use omp_lib_kinds
205             integer (kind=omp_nest_lock_kind) lockvar
206           end subroutine omp_set_nest_lock
207
208           subroutine omp_unset_nest_lock(lockvar) bind(c)
209             use omp_lib_kinds
210             integer (kind=omp_nest_lock_kind) lockvar
211           end subroutine omp_unset_nest_lock
212
213           function omp_test_nest_lock(lockvar) bind(c)
214             use omp_lib_kinds
215             integer (kind=omp_integer_kind) omp_test_nest_lock
216             integer (kind=omp_nest_lock_kind) lockvar
217           end function omp_test_nest_lock
218
219 !         ***
220 !         *** kmp_* entry points
221 !         ***
222
223           subroutine kmp_set_stacksize(size) bind(c)
224             use omp_lib_kinds
225             integer (kind=omp_integer_kind), value :: size
226           end subroutine kmp_set_stacksize
227
228           subroutine kmp_set_stacksize_s(size) bind(c)
229             use omp_lib_kinds
230             integer (kind=kmp_size_t_kind), value :: size
231           end subroutine kmp_set_stacksize_s
232
233           subroutine kmp_set_blocktime(msec) bind(c)
234             use omp_lib_kinds
235             integer (kind=omp_integer_kind), value :: msec
236           end subroutine kmp_set_blocktime
237
238           subroutine kmp_set_library_serial() bind(c)
239           end subroutine kmp_set_library_serial
240
241           subroutine kmp_set_library_turnaround() bind(c)
242           end subroutine kmp_set_library_turnaround
243
244           subroutine kmp_set_library_throughput() bind(c)
245           end subroutine kmp_set_library_throughput
246
247           subroutine kmp_set_library(libnum) bind(c)
248             use omp_lib_kinds
249             integer (kind=omp_integer_kind), value :: libnum
250           end subroutine kmp_set_library
251
252           subroutine kmp_set_defaults(string) bind(c)
253             use, intrinsic :: iso_c_binding
254             character (kind=c_char) :: string(*)
255           end subroutine kmp_set_defaults
256
257           function kmp_get_stacksize() bind(c)
258             use omp_lib_kinds
259             integer (kind=omp_integer_kind) kmp_get_stacksize
260           end function kmp_get_stacksize
261
262           function kmp_get_stacksize_s() bind(c)
263             use omp_lib_kinds
264             integer (kind=kmp_size_t_kind) kmp_get_stacksize_s
265           end function kmp_get_stacksize_s
266
267           function kmp_get_blocktime() bind(c)
268             use omp_lib_kinds
269             integer (kind=omp_integer_kind) kmp_get_blocktime
270           end function kmp_get_blocktime
271
272           function kmp_get_library() bind(c)
273             use omp_lib_kinds
274             integer (kind=omp_integer_kind) kmp_get_library
275           end function kmp_get_library
276
277           function kmp_set_affinity(mask) bind(c)
278             use omp_lib_kinds
279             integer (kind=omp_integer_kind) kmp_set_affinity
280             integer (kind=kmp_affinity_mask_kind) mask
281           end function kmp_set_affinity
282
283           function kmp_get_affinity(mask) bind(c)
284             use omp_lib_kinds
285             integer (kind=omp_integer_kind) kmp_get_affinity
286             integer (kind=kmp_affinity_mask_kind) mask
287           end function kmp_get_affinity
288
289           function kmp_get_affinity_max_proc() bind(c)
290             use omp_lib_kinds
291             integer (kind=omp_integer_kind) kmp_get_affinity_max_proc
292           end function kmp_get_affinity_max_proc
293
294           subroutine kmp_create_affinity_mask(mask) bind(c)
295             use omp_lib_kinds
296             integer (kind=kmp_affinity_mask_kind) mask
297           end subroutine kmp_create_affinity_mask
298
299           subroutine kmp_destroy_affinity_mask(mask) bind(c)
300             use omp_lib_kinds
301             integer (kind=kmp_affinity_mask_kind) mask
302           end subroutine kmp_destroy_affinity_mask
303
304           function kmp_set_affinity_mask_proc(proc, mask) bind(c)
305             use omp_lib_kinds
306             integer (kind=omp_integer_kind) kmp_set_affinity_mask_proc
307             integer (kind=omp_integer_kind), value :: proc
308             integer (kind=kmp_affinity_mask_kind) mask
309           end function kmp_set_affinity_mask_proc
310
311           function kmp_unset_affinity_mask_proc(proc, mask) bind(c)
312             use omp_lib_kinds
313             integer (kind=omp_integer_kind) kmp_unset_affinity_mask_proc
314             integer (kind=omp_integer_kind), value :: proc
315             integer (kind=kmp_affinity_mask_kind) mask
316           end function kmp_unset_affinity_mask_proc
317
318           function kmp_get_affinity_mask_proc(proc, mask) bind(c)
319             use omp_lib_kinds
320             integer (kind=omp_integer_kind) kmp_get_affinity_mask_proc
321             integer (kind=omp_integer_kind), value :: proc
322             integer (kind=kmp_affinity_mask_kind) mask
323           end function kmp_get_affinity_mask_proc
324
325           function kmp_malloc(size) bind(c)
326             use omp_lib_kinds
327             integer (kind=kmp_pointer_kind) kmp_malloc
328             integer (kind=kmp_size_t_kind), value :: size
329           end function kmp_malloc
330
331           function kmp_aligned_malloc(size, alignment) bind(c)
332             use omp_lib_kinds
333             integer (kind=kmp_pointer_kind) kmp_aligned_malloc
334             integer (kind=kmp_size_t_kind), value :: size
335             integer (kind=kmp_size_t_kind), value :: alignment
336           end function kmp_aligned_malloc
337
338           function kmp_calloc(nelem, elsize) bind(c)
339             use omp_lib_kinds
340             integer (kind=kmp_pointer_kind) kmp_calloc
341             integer (kind=kmp_size_t_kind), value :: nelem
342             integer (kind=kmp_size_t_kind), value :: elsize
343           end function kmp_calloc
344
345           function kmp_realloc(ptr, size) bind(c)
346             use omp_lib_kinds
347             integer (kind=kmp_pointer_kind) kmp_realloc
348             integer (kind=kmp_pointer_kind), value :: ptr
349             integer (kind=kmp_size_t_kind), value :: size
350           end function kmp_realloc
351
352           subroutine kmp_free(ptr) bind(c)
353             use omp_lib_kinds
354             integer (kind=kmp_pointer_kind), value :: ptr
355           end subroutine kmp_free
356
357           subroutine kmp_set_warnings_on() bind(c)
358           end subroutine kmp_set_warnings_on
359
360           subroutine kmp_set_warnings_off() bind(c)
361           end subroutine kmp_set_warnings_off
362
363         end interface
364
365       end module omp_lib