ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
libgomp_g.h
Go to the documentation of this file.
1 /* The libgomp's interface to the compiler
2  *
3  * Basically this is a copy of gcc_release/libgomp/libgomp_g.h
4  *
5  * */
6 #ifndef LIBGOMP_G_H
7 #define LIBGOMP_G_H
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #include <stdbool.h>
14 extern void GOMP_barrier (void);
15 
16 extern void GOMP_critical_start (void);
17 extern void GOMP_critical_end (void);
18 extern void GOMP_critical_name_start (void **);
19 extern void GOMP_critical_name_end (void **);
20 extern void GOMP_atomic_start (void);
21 extern void GOMP_atomic_end (void);
22 
23 extern bool GOMP_loop_static_start (long, long, long, long, long *, long *);
24 extern bool GOMP_loop_dynamic_start (long, long, long, long, long *, long *);
25 extern bool GOMP_loop_guided_start (long, long, long, long, long *, long *);
26 extern bool GOMP_loop_runtime_start (long, long, long, long *, long *);
27 
28 extern bool GOMP_loop_ordered_static_start (long, long, long, long, long *, long *);
29 extern bool GOMP_loop_ordered_dynamic_start (long, long, long, long, long *, long *);
30 extern bool GOMP_loop_ordered_guided_start (long, long, long, long, long *, long *);
31 extern bool GOMP_loop_ordered_runtime_start (long, long, long, long *, long *);
32 
33 extern bool GOMP_loop_static_next (long *, long *);
34 extern bool GOMP_loop_dynamic_next (long *, long *);
35 extern bool GOMP_loop_guided_next (long *, long *);
36 extern bool GOMP_loop_runtime_next (long *, long *);
37 
38 extern bool GOMP_loop_ordered_static_next (long *, long *);
39 extern bool GOMP_loop_ordered_dynamic_next (long *, long *);
40 extern bool GOMP_loop_ordered_guided_next (long *, long *);
41 extern bool GOMP_loop_ordered_runtime_next (long *, long *);
42 
43 extern void GOMP_parallel_loop_static_start (void (*)(void *), void *,
44  unsigned, long, long, long, long);
45 extern void GOMP_parallel_loop_dynamic_start (void (*)(void *), void *,
46  unsigned, long, long, long, long);
47 extern void GOMP_parallel_loop_guided_start (void (*)(void *), void *,
48  unsigned, long, long, long, long);
49 extern void GOMP_parallel_loop_runtime_start (void (*)(void *), void *,
50  unsigned, long, long, long);
51 extern void GOMP_loop_end (void);
52 extern void GOMP_loop_end_nowait (void);
53 
54 extern bool GOMP_loop_ull_static_start (bool, unsigned long long,
55  unsigned long long,
56  unsigned long long,
57  unsigned long long,
58  unsigned long long *,
59  unsigned long long *);
60 extern bool GOMP_loop_ull_dynamic_start (bool, unsigned long long,
61  unsigned long long,
62  unsigned long long,
63  unsigned long long,
64  unsigned long long *,
65  unsigned long long *);
66 extern bool GOMP_loop_ull_guided_start (bool, unsigned long long,
67  unsigned long long,
68  unsigned long long,
69  unsigned long long,
70  unsigned long long *,
71  unsigned long long *);
72 extern bool GOMP_loop_ull_runtime_start (bool, unsigned long long,
73  unsigned long long,
74  unsigned long long,
75  unsigned long long *,
76  unsigned long long *);
77 
78 extern bool GOMP_loop_ull_ordered_static_start (bool, unsigned long long,
79  unsigned long long,
80  unsigned long long,
81  unsigned long long,
82  unsigned long long *,
83  unsigned long long *);
84 extern bool GOMP_loop_ull_ordered_dynamic_start (bool, unsigned long long,
85  unsigned long long,
86  unsigned long long,
87  unsigned long long,
88  unsigned long long *,
89  unsigned long long *);
90 extern bool GOMP_loop_ull_ordered_guided_start (bool, unsigned long long,
91  unsigned long long,
92  unsigned long long,
93  unsigned long long,
94  unsigned long long *,
95  unsigned long long *);
96 extern bool GOMP_loop_ull_ordered_runtime_start (bool, unsigned long long,
97  unsigned long long,
98  unsigned long long,
99  unsigned long long *,
100  unsigned long long *);
101 
102 extern bool GOMP_loop_ull_static_next (unsigned long long *,
103  unsigned long long *);
104 extern bool GOMP_loop_ull_dynamic_next (unsigned long long *,
105  unsigned long long *);
106 extern bool GOMP_loop_ull_guided_next (unsigned long long *,
107  unsigned long long *);
108 extern bool GOMP_loop_ull_runtime_next (unsigned long long *,
109  unsigned long long *);
110 
111 extern bool GOMP_loop_ull_ordered_static_next (unsigned long long *,
112  unsigned long long *);
113 extern bool GOMP_loop_ull_ordered_dynamic_next (unsigned long long *,
114  unsigned long long *);
115 
116 extern void GOMP_ordered_start (void);
117 extern void GOMP_ordered_end (void);
118 /* void GOMP_parallel_start (void (*func) (void *), void *data, unsigned num_threads_specified);
119  * func: pointer to the function to be run in parallel
120  * data: a pointer to a structure used to communicate data in and out of the subfunction
121  * num_threads_specified: is a combination of the NUM_THREADS clause and the IF clause
122  * is 1 if an IF clause is present and false, or the value of the NUM_THREADS clause, if present, or 0 by default
123  * GOMP has an internal function (gomp_resolve_num_threads()) to determine the actual number of threads to be used.
124  * */
125 extern void GOMP_parallel_start (void (*) (void *), void *, unsigned);
126 extern void GOMP_parallel_end (void);
127 
128 extern void GOMP_task (void (*) (void *), void *, void (*) (void *, void *),
129  long, long, bool, unsigned);
130 extern void GOMP_taskwait (void);
131 
132 extern unsigned GOMP_sections_start (unsigned);
133 extern unsigned GOMP_sections_next (void);
134 extern void GOMP_parallel_sections_start (void (*) (void *), void *,
135  unsigned, unsigned);
136 extern void GOMP_sections_end (void);
137 extern void GOMP_sections_end_nowait (void);
138 
139 extern bool GOMP_single_start (void);
140 extern void *GOMP_single_copy_start (void);
141 extern void GOMP_single_copy_end (void *);
142 
143 
144 #ifdef __cplusplus
145  }
146 #endif
147 
148 #endif /* LIBGOMP_G_H */
149 
150 
151 
152