00001 #ifndef GOMP_H_
00002 #define GOMP_H_
00003
00004 #include <stdbool.h>
00005
00006 extern void GOMP_barrier (void);
00007
00008 extern void GOMP_critical_start (void);
00009 extern void GOMP_critical_end (void);
00010
00011 extern void GOMP_atomic_start (void);
00012 extern void GOMP_atomic_end (void);
00013
00014 extern void GOMP_parallel_start (void (*fn) (void *), unsigned char *data,
00015 unsigned int num_threads);
00016 extern void GOMP_parallel_end(void);
00017
00018 extern void GOMP_task (void (*fn) (void *), unsigned char *data,
00019 void (*cpyfn)(unsigned char *, unsigned char *),
00020 int arg_size, int arg_align, int if_clause, int flags);
00021 extern void GOMP_taskwait(void);
00022
00023 extern unsigned char GOMP_single_start(void);
00024 extern void GOMP_single_copy_start(void);
00025 extern void GOMP_single_copy_end(void *data);
00026
00027 extern bool GOMP_loop_static_start (long start, long end, long incr,
00028 long chunk_size, long *istart, long *iend);
00029 extern bool GOMP_loop_dynamic_start(long start, long end, long incr,
00030 long chunk_size, long *istart, long *iend);
00031 extern bool GOMP_loop_guided_start (long start, long end, long incr,
00032 long chunk_size, long *istart, long *iend);
00033 extern bool GOMP_loop_runtime_start (long start, long end, long incr,
00034 long *istart, long *iend);
00035
00036 extern bool GOMP_loop_static_next (long *istart, long *iend);
00037 extern bool GOMP_loop_dynamic_next (long *istart, long *iend);
00038 extern bool GOMP_loop_guided_next (long *istart, long *iend);
00039 extern bool GOMP_loop_runtime_next (long *istart, long *iend);
00040
00041 extern void GOMP_parallel_loop_static_start (void (*fn) (void *), void *data,
00042 unsigned num_threads, long start, long end,
00043 long incr, long chunk_size);
00044 extern void GOMP_parallel_loop_dynamic_start (void (*fn) (void *), void *data,
00045 unsigned num_threads, long start, long end,
00046 long incr, long chunk_size);
00047 extern void GOMP_parallel_loop_guided_start (void (*fn) (void *), void *data,
00048 unsigned num_threads, long start, long end,
00049 long incr, long chunk_size);
00050 extern void GOMP_parallel_loop_runtime_start (void (*fn) (void *), void *data,
00051 unsigned num_threads, long start, long end,
00052 long incr);
00053
00054 extern void GOMP_loop_end (void);
00055 extern void GOMP_loop_end_nowait (void);
00056
00057
00058 extern unsigned GOMP_sections_start (unsigned count);
00059 extern unsigned GOMP_sections_next (void);
00060 extern void GOMP_sections_end (void);
00061 extern void GOMP_sections_end_nowait (void);
00062 extern void GOMP_parallel_sections_start (void (*fn) (void *), void *data,
00063 unsigned num_threads, unsigned count);
00064
00065 extern void GOMP_ordered_start (void);
00066 extern void GOMP_ordered_end (void);
00067 extern bool GOMP_loop_ordered_static_start (long start, long end, long incr,
00068 long chunk_size, long *istart, long *iend);
00069 extern bool GOMP_loop_ordered_dynamic_start(long start, long end, long incr,
00070 long chunk_size, long *istart, long *iend);
00071 extern bool GOMP_loop_ordered_guided_start (long start, long end, long incr,
00072 long chunk_size, long *istart, long *iend);
00073 extern bool GOMP_loop_ordered_runtime_start (long start, long end, long incr,
00074 long *istart, long *iend);
00075
00076 extern bool GOMP_loop_ordered_static_next (long *istart, long *iend);
00077 extern bool GOMP_loop_ordered_dynamic_next (long *istart, long *iend);
00078 extern bool GOMP_loop_ordered_guided_next (long *istart, long *iend);
00079 extern bool GOMP_loop_ordered_runtime_next (long *istart, long *iend);
00080
00081 extern void __gomp_flush0 (void);
00082
00083 #endif