OpenMPI  0.1.1
pomp_lib.h
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 #define OPARI_VT
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 struct ompregdescr {
19  const char* name; /* name of construct */
20  const char* sub_name; /* optional: region name */
21  int num_sections; /* sections only: number of sections */
22  const char* file_name; /* source code location */
23  int begin_first_line; /* line number first line opening pragma */
24  int begin_last_line; /* line number last line opening pragma */
25  int end_first_line; /* line number first line closing pragma */
26  int end_last_line; /* line number last line closing pragma */
27  void* data; /* space for performance data */
28  struct ompregdescr* next; /* for linking */
29 };
30 
31 extern int POMP_MAX_ID;
32 
33 extern struct ompregdescr* pomp_rd_table[];
34 
35 extern void POMP_Finalize(void);
36 extern void POMP_Init(void);
37 extern void POMP_Off(void);
38 extern void POMP_On(void);
39 extern void POMP_Begin(struct ompregdescr* r);
40 extern void POMP_End(struct ompregdescr* r);
41 
42 #ifdef _OPENMP
43 extern void POMP_Atomic_enter(struct ompregdescr* r);
44 extern void POMP_Atomic_exit(struct ompregdescr* r);
45 extern void POMP_Barrier_enter(struct ompregdescr* r);
46 extern void POMP_Barrier_exit(struct ompregdescr* r);
47 extern void POMP_Flush_enter(struct ompregdescr* r);
48 extern void POMP_Flush_exit(struct ompregdescr* r);
49 extern void POMP_Critical_begin(struct ompregdescr* r);
50 extern void POMP_Critical_end(struct ompregdescr* r);
51 extern void POMP_Critical_enter(struct ompregdescr* r);
52 extern void POMP_Critical_exit(struct ompregdescr* r);
53 extern void POMP_For_enter(struct ompregdescr* r);
54 extern void POMP_For_exit(struct ompregdescr* r);
55 extern void POMP_Master_begin(struct ompregdescr* r);
56 extern void POMP_Master_end(struct ompregdescr* r);
57 extern void POMP_Parallel_begin(struct ompregdescr* r);
58 extern void POMP_Parallel_end(struct ompregdescr* r);
59 extern void POMP_Parallel_fork(struct ompregdescr* r);
60 extern void POMP_Parallel_join(struct ompregdescr* r);
61 extern void POMP_Section_begin(struct ompregdescr* r);
62 extern void POMP_Section_end(struct ompregdescr* r);
63 extern void POMP_Sections_enter(struct ompregdescr* r);
64 extern void POMP_Sections_exit(struct ompregdescr* r);
65 extern void POMP_Single_begin(struct ompregdescr* r);
66 extern void POMP_Single_end(struct ompregdescr* r);
67 extern void POMP_Single_enter(struct ompregdescr* r);
68 extern void POMP_Single_exit(struct ompregdescr* r);
69 extern void POMP_Workshare_enter(struct ompregdescr* r);
70 extern void POMP_Workshare_exit(struct ompregdescr* r);
71 #ifdef OPARI_VT
72 extern void POMP_Parallel_begin2(struct ompregdescr* r, int* p);
73 extern void POMP_Parallel_fork2(struct ompregdescr* r, int* p);
74 #endif
75 
76 extern void POMP_Init_lock(omp_lock_t *s);
77 extern void POMP_Destroy_lock(omp_lock_t *s);
78 extern void POMP_Set_lock(omp_lock_t *s);
79 extern void POMP_Unset_lock(omp_lock_t *s);
80 extern int POMP_Test_lock(omp_lock_t *s);
81 extern void POMP_Init_nest_lock(omp_nest_lock_t *s);
82 extern void POMP_Destroy_nest_lock(omp_nest_lock_t *s);
83 extern void POMP_Set_nest_lock(omp_nest_lock_t *s);
84 extern void POMP_Unset_nest_lock(omp_nest_lock_t *s);
85 extern int POMP_Test_nest_lock(omp_nest_lock_t *s);
86 #endif
87 
88 extern int pomp_initialized;
89 extern int pomp_tracing;
90 
91 #ifdef __cplusplus
92 }
93 #endif
94 
95 #endif
Definition: pomp_lib.h:18