00001 #ifndef ROSE_XOMP_H
00002 #define ROSE_XOMP_H
00003
00004 #include <qthread/qloop.h>
00005
00006
00007 void XOMP_init(
00008 int argc,
00009 char **argv);
00010
00011 void XOMP_terminate(
00012 int exitcode);
00013 void XOMP_parallel_start(
00014 void (*func) (void *),
00015 void *data,
00016 unsigned numThread);
00017 void XOMP_parallel_end(
00018 void);
00019 qqloop_handle_t *qt_loop_rose_queue_create(
00020 int64_t start,
00021 int64_t stop,
00022 int64_t incr);
00023 void XOMP_loop_guided_init(
00024 int lower,
00025 int upper,
00026 int stride,
00027 int chunk_size);
00028 unsigned char XOMP_loop_guided_start(
00029 long startLower,
00030 long startUpper,
00031 long stride,
00032 long chunk_size,
00033 long *returnLower,
00034 long *returnUpper);
00035 unsigned char XOMP_loop_guided_next(
00036 long *returnLower,
00037 long *returnUpper);
00038 void XOMP_loop_end(
00039 void);
00040 void XOMP_loop_end_nowait(
00041 void);
00042 void XOMP_barrier(
00043 void);
00044 void XOMP_atomic_start(
00045 void);
00046 void XOMP_atomic_end(
00047 void);
00048
00049 void XOMP_loop_ordered_guided_init(
00050 int lower,
00051 int upper,
00052 int stride,
00053 int chunk_size);
00054 unsigned char XOMP_loop_ordered_guided_start(
00055 long a,
00056 long b,
00057 long c,
00058 long d,
00059 long *e,
00060 long *f);
00061 unsigned char XOMP_loop_ordered_guided_next(
00062 long *a,
00063 long *b);
00064 void XOMP_task(
00065 void (*a) (void *),
00066 void *b,
00067 void (*c) (void *,
00068 void *),
00069 long d,
00070 long e,
00071 unsigned char f,
00072 unsigned g);
00073 void XOMP_taskwait(
00074 void);
00075 void XOMP_loop_static_init(
00076 int lower,
00077 int upper,
00078 int stride,
00079 int chunk_size);
00080 void XOMP_loop_dynamic_init(
00081 int lower,
00082 int upper,
00083 int stride,
00084 int chunk_size);
00085 void XOMP_loop_runtime_init(
00086 int lower,
00087 int upper,
00088 int stride);
00089
00090 void XOMP_loop_ordered_static_init(
00091 int lower,
00092 int upper,
00093 int stride,
00094 int chunk_size);
00095 void XOMP_loop_ordered_dynamic_init(
00096 int lower,
00097 int upper,
00098 int stride,
00099 int chunk_size);
00100 void XOMP_loop_ordered_runtime_init(
00101 int lower,
00102 int upper,
00103 int stride);
00104
00105
00106 void XOMP_ordered_start(
00107 void);
00108 void XOMP_ordered_end(
00109 void);
00110 unsigned char XOMP_loop_static_start(
00111 long a,
00112 long b,
00113 long c,
00114 long d,
00115 long *e,
00116 long *f);
00117 unsigned char XOMP_loop_dynamic_start(
00118 long a,
00119 long b,
00120 long c,
00121 long d,
00122 long *e,
00123 long *f);
00124 unsigned char XOMP_loop_runtime_start(
00125 long a,
00126 long b,
00127 long c,
00128 long *d,
00129 long *e);
00130 unsigned char XOMP_loop_ordered_static_start(
00131 long a,
00132 long b,
00133 long c,
00134 long d,
00135 long *e,
00136 long *f);
00137 unsigned char XOMP_loop_ordered_dynamic_start(
00138 long a,
00139 long b,
00140 long c,
00141 long d,
00142 long *e,
00143 long *f);
00144 unsigned char XOMP_loop_ordered_runtime_start(
00145 long a,
00146 long b,
00147 long c,
00148 long *d,
00149 long *e);
00150
00151 unsigned char XOMP_loop_static_next(
00152 long *a,
00153 long *b);
00154 unsigned char XOMP_loop_dynamic_next(
00155 long *a,
00156 long *b);
00157 unsigned char XOMP_loop_runtime_next(
00158 long *a,
00159 long *b);
00160 unsigned char XOMP_loop_ordered_static_next(
00161 long *a,
00162 long *b);
00163 unsigned char XOMP_loop_ordered_dynamic_next(
00164 long *a,
00165 long *b);
00166 unsigned char XOMP_loop_ordered_runtime_next(
00167 long *a,
00168 long *b);
00169 void XOMP_critical_start(
00170 void **data);
00171 void XOMP_critical_end(
00172 void **data);
00173 unsigned char XOMP_single(
00174 void);
00175 unsigned char XOMP_master(
00176 void);
00177
00178 void XOMP_flush_all(
00179 void);
00180
00181 void XOMP_flush_one(
00182 char *startAddress,
00183 int nbyte);
00184 #endif