[97] | 1 | /*************************************************************************/ |
---|
| 2 | /* OPARI Version 1.1 */ |
---|
| 3 | /* Copyright (c) 2001-2005 */ |
---|
| 4 | /* Forschungszentrum Juelich, Zentralinstitut fuer Angewandte Mathematik */ |
---|
| 5 | /*************************************************************************/ |
---|
| 6 | |
---|
| 7 | #ifndef POMP_LIB_H |
---|
| 8 | #define POMP_LIB_H |
---|
| 9 | |
---|
| 10 | #include "opari_omp.h" |
---|
| 11 | |
---|
| 12 | #ifdef __cplusplus |
---|
| 13 | extern "C" { |
---|
| 14 | #endif |
---|
| 15 | |
---|
| 16 | struct ompregdescr { |
---|
| 17 | char* name; /* name of construct */ |
---|
| 18 | char* sub_name; /* optional: region name */ |
---|
| 19 | int num_sections; /* sections only: number of sections */ |
---|
| 20 | char* file_name; /* source code location */ |
---|
| 21 | int begin_first_line; /* line number first line opening pragma */ |
---|
| 22 | int begin_last_line; /* line number last line opening pragma */ |
---|
| 23 | int end_first_line; /* line number first line closing pragma */ |
---|
| 24 | int end_last_line; /* line number last line closing pragma */ |
---|
| 25 | void* data; /* space for performance data */ |
---|
| 26 | struct ompregdescr* next; /* for linking */ |
---|
| 27 | }; |
---|
| 28 | |
---|
| 29 | extern int POMP_MAX_ID; |
---|
| 30 | |
---|
| 31 | extern struct ompregdescr* pomp_rd_table[]; |
---|
| 32 | |
---|
| 33 | extern void POMP_Finalize(void); |
---|
| 34 | extern void POMP_Init(void); |
---|
| 35 | extern void POMP_Off(void); |
---|
| 36 | extern void POMP_On(void); |
---|
| 37 | extern void POMP_Begin(struct ompregdescr* r); |
---|
| 38 | extern void POMP_End(struct ompregdescr* r); |
---|
| 39 | |
---|
| 40 | #ifdef _OPENMP |
---|
| 41 | extern void POMP_Atomic_enter(struct ompregdescr* r); |
---|
| 42 | extern void POMP_Atomic_exit(struct ompregdescr* r); |
---|
| 43 | extern void POMP_Barrier_enter(struct ompregdescr* r); |
---|
| 44 | extern void POMP_Barrier_exit(struct ompregdescr* r); |
---|
| 45 | extern void POMP_Flush_enter(struct ompregdescr* r); |
---|
| 46 | extern void POMP_Flush_exit(struct ompregdescr* r); |
---|
| 47 | extern void POMP_Critical_begin(struct ompregdescr* r); |
---|
| 48 | extern void POMP_Critical_end(struct ompregdescr* r); |
---|
| 49 | extern void POMP_Critical_enter(struct ompregdescr* r); |
---|
| 50 | extern void POMP_Critical_exit(struct ompregdescr* r); |
---|
| 51 | extern void POMP_For_enter(struct ompregdescr* r); |
---|
| 52 | extern void POMP_For_exit(struct ompregdescr* r); |
---|
| 53 | extern void POMP_Master_begin(struct ompregdescr* r); |
---|
| 54 | extern void POMP_Master_end(struct ompregdescr* r); |
---|
| 55 | extern void POMP_Parallel_begin(struct ompregdescr* r); |
---|
| 56 | extern void POMP_Parallel_end(struct ompregdescr* r); |
---|
| 57 | extern void POMP_Parallel_fork(struct ompregdescr* r); |
---|
| 58 | extern void POMP_Parallel_join(struct ompregdescr* r); |
---|
| 59 | extern void POMP_Section_begin(struct ompregdescr* r); |
---|
| 60 | extern void POMP_Section_end(struct ompregdescr* r); |
---|
| 61 | extern void POMP_Sections_enter(struct ompregdescr* r); |
---|
| 62 | extern void POMP_Sections_exit(struct ompregdescr* r); |
---|
| 63 | extern void POMP_Single_begin(struct ompregdescr* r); |
---|
| 64 | extern void POMP_Single_end(struct ompregdescr* r); |
---|
| 65 | extern void POMP_Single_enter(struct ompregdescr* r); |
---|
| 66 | extern void POMP_Single_exit(struct ompregdescr* r); |
---|
| 67 | extern void POMP_Workshare_enter(struct ompregdescr* r); |
---|
| 68 | extern void POMP_Workshare_exit(struct ompregdescr* r); |
---|
| 69 | |
---|
| 70 | extern void POMP_Init_lock(omp_lock_t *s); |
---|
| 71 | extern void POMP_Destroy_lock(omp_lock_t *s); |
---|
| 72 | extern void POMP_Set_lock(omp_lock_t *s); |
---|
| 73 | extern void POMP_Unset_lock(omp_lock_t *s); |
---|
| 74 | extern int POMP_Test_lock(omp_lock_t *s); |
---|
| 75 | extern void POMP_Init_nest_lock(omp_nest_lock_t *s); |
---|
| 76 | extern void POMP_Destroy_nest_lock(omp_nest_lock_t *s); |
---|
| 77 | extern void POMP_Set_nest_lock(omp_nest_lock_t *s); |
---|
| 78 | extern void POMP_Unset_nest_lock(omp_nest_lock_t *s); |
---|
| 79 | extern int POMP_Test_nest_lock(omp_nest_lock_t *s); |
---|
| 80 | #endif |
---|
| 81 | |
---|
| 82 | extern int pomp_initialized; |
---|
| 83 | extern int pomp_tracing; |
---|
| 84 | |
---|
| 85 | #ifdef __cplusplus |
---|
| 86 | } |
---|
| 87 | #endif |
---|
| 88 | |
---|
| 89 | #endif |
---|