]>
Commit | Line | Data |
---|---|---|
5624e564 | 1 | /* Copyright (C) 2005-2015 Free Software Foundation, Inc. |
953ff289 DN |
2 | Contributed by Richard Henderson <rth@redhat.com>. |
3 | ||
f1f3453e TS |
4 | This file is part of the GNU Offloading and Multi Processing Library |
5 | (libgomp). | |
953ff289 DN |
6 | |
7 | Libgomp is free software; you can redistribute it and/or modify it | |
748086b7 JJ |
8 | under the terms of the GNU General Public License as published by |
9 | the Free Software Foundation; either version 3, or (at your option) | |
10 | any later version. | |
953ff289 DN |
11 | |
12 | Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY | |
13 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | |
748086b7 | 14 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
953ff289 DN |
15 | more details. |
16 | ||
748086b7 JJ |
17 | Under Section 7 of GPL version 3, you are granted additional |
18 | permissions described in the GCC Runtime Library Exception, version | |
19 | 3.1, as published by the Free Software Foundation. | |
20 | ||
21 | You should have received a copy of the GNU General Public License and | |
22 | a copy of the GCC Runtime Library Exception along with this program; | |
23 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
24 | <http://www.gnu.org/licenses/>. */ | |
953ff289 DN |
25 | |
26 | /* This file contains prototypes of functions in the external ABI. | |
27 | This file is included by files in the testsuite. */ | |
28 | ||
29 | #ifndef LIBGOMP_G_H | |
30 | #define LIBGOMP_G_H 1 | |
31 | ||
32 | #include <stdbool.h> | |
70f05c43 | 33 | #include <stddef.h> |
953ff289 DN |
34 | |
35 | /* barrier.c */ | |
36 | ||
37 | extern void GOMP_barrier (void); | |
acf0174b | 38 | extern bool GOMP_barrier_cancel (void); |
953ff289 DN |
39 | |
40 | /* critical.c */ | |
41 | ||
42 | extern void GOMP_critical_start (void); | |
43 | extern void GOMP_critical_end (void); | |
44 | extern void GOMP_critical_name_start (void **); | |
45 | extern void GOMP_critical_name_end (void **); | |
46 | extern void GOMP_atomic_start (void); | |
47 | extern void GOMP_atomic_end (void); | |
48 | ||
49 | /* loop.c */ | |
50 | ||
51 | extern bool GOMP_loop_static_start (long, long, long, long, long *, long *); | |
52 | extern bool GOMP_loop_dynamic_start (long, long, long, long, long *, long *); | |
53 | extern bool GOMP_loop_guided_start (long, long, long, long, long *, long *); | |
54 | extern bool GOMP_loop_runtime_start (long, long, long, long *, long *); | |
55 | ||
56 | extern bool GOMP_loop_ordered_static_start (long, long, long, long, | |
57 | long *, long *); | |
58 | extern bool GOMP_loop_ordered_dynamic_start (long, long, long, long, | |
59 | long *, long *); | |
60 | extern bool GOMP_loop_ordered_guided_start (long, long, long, long, | |
61 | long *, long *); | |
62 | extern bool GOMP_loop_ordered_runtime_start (long, long, long, long *, long *); | |
63 | ||
64 | extern bool GOMP_loop_static_next (long *, long *); | |
65 | extern bool GOMP_loop_dynamic_next (long *, long *); | |
66 | extern bool GOMP_loop_guided_next (long *, long *); | |
67 | extern bool GOMP_loop_runtime_next (long *, long *); | |
68 | ||
69 | extern bool GOMP_loop_ordered_static_next (long *, long *); | |
70 | extern bool GOMP_loop_ordered_dynamic_next (long *, long *); | |
71 | extern bool GOMP_loop_ordered_guided_next (long *, long *); | |
72 | extern bool GOMP_loop_ordered_runtime_next (long *, long *); | |
73 | ||
74 | extern void GOMP_parallel_loop_static_start (void (*)(void *), void *, | |
75 | unsigned, long, long, long, long); | |
76 | extern void GOMP_parallel_loop_dynamic_start (void (*)(void *), void *, | |
77 | unsigned, long, long, long, long); | |
78 | extern void GOMP_parallel_loop_guided_start (void (*)(void *), void *, | |
79 | unsigned, long, long, long, long); | |
80 | extern void GOMP_parallel_loop_runtime_start (void (*)(void *), void *, | |
81 | unsigned, long, long, long); | |
acf0174b JJ |
82 | extern void GOMP_parallel_loop_static (void (*)(void *), void *, |
83 | unsigned, long, long, long, long, | |
84 | unsigned); | |
85 | extern void GOMP_parallel_loop_dynamic (void (*)(void *), void *, | |
86 | unsigned, long, long, long, long, | |
87 | unsigned); | |
88 | extern void GOMP_parallel_loop_guided (void (*)(void *), void *, | |
89 | unsigned, long, long, long, long, | |
90 | unsigned); | |
91 | extern void GOMP_parallel_loop_runtime (void (*)(void *), void *, | |
92 | unsigned, long, long, long, | |
93 | unsigned); | |
953ff289 DN |
94 | |
95 | extern void GOMP_loop_end (void); | |
96 | extern void GOMP_loop_end_nowait (void); | |
acf0174b | 97 | extern bool GOMP_loop_end_cancel (void); |
953ff289 | 98 | |
a68ab351 JJ |
99 | /* loop_ull.c */ |
100 | ||
101 | extern bool GOMP_loop_ull_static_start (bool, unsigned long long, | |
102 | unsigned long long, | |
103 | unsigned long long, | |
104 | unsigned long long, | |
105 | unsigned long long *, | |
106 | unsigned long long *); | |
107 | extern bool GOMP_loop_ull_dynamic_start (bool, unsigned long long, | |
108 | unsigned long long, | |
109 | unsigned long long, | |
110 | unsigned long long, | |
111 | unsigned long long *, | |
112 | unsigned long long *); | |
113 | extern bool GOMP_loop_ull_guided_start (bool, unsigned long long, | |
114 | unsigned long long, | |
115 | unsigned long long, | |
116 | unsigned long long, | |
117 | unsigned long long *, | |
118 | unsigned long long *); | |
119 | extern bool GOMP_loop_ull_runtime_start (bool, unsigned long long, | |
120 | unsigned long long, | |
121 | unsigned long long, | |
122 | unsigned long long *, | |
123 | unsigned long long *); | |
124 | ||
125 | extern bool GOMP_loop_ull_ordered_static_start (bool, unsigned long long, | |
126 | unsigned long long, | |
127 | unsigned long long, | |
128 | unsigned long long, | |
129 | unsigned long long *, | |
130 | unsigned long long *); | |
131 | extern bool GOMP_loop_ull_ordered_dynamic_start (bool, unsigned long long, | |
132 | unsigned long long, | |
133 | unsigned long long, | |
134 | unsigned long long, | |
135 | unsigned long long *, | |
136 | unsigned long long *); | |
137 | extern bool GOMP_loop_ull_ordered_guided_start (bool, unsigned long long, | |
138 | unsigned long long, | |
139 | unsigned long long, | |
140 | unsigned long long, | |
141 | unsigned long long *, | |
142 | unsigned long long *); | |
143 | extern bool GOMP_loop_ull_ordered_runtime_start (bool, unsigned long long, | |
144 | unsigned long long, | |
145 | unsigned long long, | |
146 | unsigned long long *, | |
147 | unsigned long long *); | |
148 | ||
149 | extern bool GOMP_loop_ull_static_next (unsigned long long *, | |
150 | unsigned long long *); | |
151 | extern bool GOMP_loop_ull_dynamic_next (unsigned long long *, | |
152 | unsigned long long *); | |
153 | extern bool GOMP_loop_ull_guided_next (unsigned long long *, | |
154 | unsigned long long *); | |
155 | extern bool GOMP_loop_ull_runtime_next (unsigned long long *, | |
156 | unsigned long long *); | |
157 | ||
158 | extern bool GOMP_loop_ull_ordered_static_next (unsigned long long *, | |
159 | unsigned long long *); | |
160 | extern bool GOMP_loop_ull_ordered_dynamic_next (unsigned long long *, | |
161 | unsigned long long *); | |
162 | extern bool GOMP_loop_ull_ordered_guided_next (unsigned long long *, | |
163 | unsigned long long *); | |
164 | extern bool GOMP_loop_ull_ordered_runtime_next (unsigned long long *, | |
165 | unsigned long long *); | |
166 | ||
953ff289 DN |
167 | /* ordered.c */ |
168 | ||
169 | extern void GOMP_ordered_start (void); | |
170 | extern void GOMP_ordered_end (void); | |
171 | ||
172 | /* parallel.c */ | |
173 | ||
174 | extern void GOMP_parallel_start (void (*) (void *), void *, unsigned); | |
175 | extern void GOMP_parallel_end (void); | |
acf0174b JJ |
176 | extern void GOMP_parallel (void (*) (void *), void *, unsigned, unsigned); |
177 | extern bool GOMP_cancel (int, bool); | |
178 | extern bool GOMP_cancellation_point (int); | |
953ff289 | 179 | |
20906c66 | 180 | /* task.c */ |
a68ab351 JJ |
181 | |
182 | extern void GOMP_task (void (*) (void *), void *, void (*) (void *, void *), | |
acf0174b | 183 | long, long, bool, unsigned, void **); |
a68ab351 | 184 | extern void GOMP_taskwait (void); |
20906c66 | 185 | extern void GOMP_taskyield (void); |
acf0174b JJ |
186 | extern void GOMP_taskgroup_start (void); |
187 | extern void GOMP_taskgroup_end (void); | |
a68ab351 | 188 | |
953ff289 DN |
189 | /* sections.c */ |
190 | ||
191 | extern unsigned GOMP_sections_start (unsigned); | |
192 | extern unsigned GOMP_sections_next (void); | |
193 | extern void GOMP_parallel_sections_start (void (*) (void *), void *, | |
194 | unsigned, unsigned); | |
acf0174b JJ |
195 | extern void GOMP_parallel_sections (void (*) (void *), void *, |
196 | unsigned, unsigned, unsigned); | |
953ff289 DN |
197 | extern void GOMP_sections_end (void); |
198 | extern void GOMP_sections_end_nowait (void); | |
acf0174b | 199 | extern bool GOMP_sections_end_cancel (void); |
953ff289 DN |
200 | |
201 | /* single.c */ | |
202 | ||
203 | extern bool GOMP_single_start (void); | |
204 | extern void *GOMP_single_copy_start (void); | |
205 | extern void GOMP_single_copy_end (void *); | |
206 | ||
acf0174b JJ |
207 | /* target.c */ |
208 | ||
209 | extern void GOMP_target (int, void (*) (void *), const void *, | |
210 | size_t, void **, size_t *, unsigned char *); | |
211 | extern void GOMP_target_data (int, const void *, | |
212 | size_t, void **, size_t *, unsigned char *); | |
213 | extern void GOMP_target_end_data (void); | |
214 | extern void GOMP_target_update (int, const void *, | |
215 | size_t, void **, size_t *, unsigned char *); | |
216 | extern void GOMP_teams (unsigned int, unsigned int); | |
217 | ||
953ff289 | 218 | #endif /* LIBGOMP_G_H */ |