OpenMPI  0.1.1
handler.h
1 /*
2  This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2012.
3  Authors: Michael Heyde
4 */
5 
6 #ifndef HANDLER_H
7 #define HANDLER_H
8 
9 #include "hash.h"
10 
11 #include "OTF_inttypes.h"
12 
13 typedef struct counterS
14 {
15  char *name;
16  uint32_t id;
17  uint32_t properties;
18  mapInfoProcessT *processMap;
19  } counterT;
20 
21 typedef struct definitionInfoS
22 {
23  char *filePrefix;
24  char *creatorName;
25  char **definitionComments;
26  char **sourceFileNames;
27  char **processNames;
28  char **processGroupNames;
29  char **functionNames;
30  char **functionGroupNames;
31  char **collectiveOperationNames;
32  counterT *counters;
33  char **counterGroupNames;
34  char **markerNames;
35  char *otfVersionString;
36  int infoLevel;
37  uint8_t otfVersionMajor;
38  uint8_t otfVersionMinor;
39  uint8_t otfVersionSub;
40  uint64_t traceFileSize;
41  uint64_t counterCollectiveOperation;
42  uint64_t counterDefinitionComment;
43  uint64_t counterSourceFileName;
44  uint64_t counterFunctionGroupDefinition;
45  uint64_t counterFunctionDefinition;
46  uint64_t counterProcessGroupDefinition;
47  uint64_t counterProcessDefinition;
48  uint64_t counterCounterDefinition;
49  uint64_t counterCounterGroupDefinition;
50  uint64_t counterLeave;
51  uint64_t counterEnter;
52  uint64_t counterSend;
53  uint64_t counterReceive;
54  uint64_t counterDefinitionMarker;
55  uint64_t timerResolution;
56  uint64_t counterRMAPut;
57  uint64_t counterRMAPutRemoteEnd;
58  uint64_t counterRMAGet;
59  uint64_t counterRMAEnd;
60  uint64_t counterFileOperation;
61  uint64_t counterSnapshot;
63 
64 /* Level 1/4 handles */
65 
66 int handleUnknownRecord( void *userData, uint64_t time, uint32_t process,
67  const char *record );
68 
69 int handleDefCreator( void *userData, uint32_t stream, const char *creator );
70 
71 int handleDefVersion( void *userData, uint32_t stream, uint8_t major,
72  uint8_t minor, uint8_t sub, const char *string );
73 
74 int handleDefProcess( void *userData, uint32_t stream, uint32_t process,
75  const char *name, uint32_t parent );
76 
77 int handleDefTimerResolution( void *userData, uint32_t stream,
78  uint64_t ticksPerSecond );
79 
80 int handleDefinitionComment( void *userData, uint32_t stream,
81  const char *comment );
82 
83 /* Level 2 handles */
84 
85 int handleDefFunction( void *userData, uint32_t stream, uint32_t func,
86  const char *name, uint32_t funcGroup, uint32_t source );
87 
88 int handleDefCounter( void *userData, uint32_t stream, uint32_t counter,
89  const char *name, uint32_t properties,
90  uint32_t counterGroup, const char *unit );
91 
92 int handleDefMarker( void *userData, uint32_t stream, uint32_t token,
93  const char *name, uint32_t type );
94 
95 int handleDefProcessGroup( void *userData, uint32_t stream, uint32_t procGroup,
96  const char *name, uint32_t numberOfProcs,
97  const uint32_t *procs );
98 
99 int handleDefFunctionGroup( void *userData, uint32_t stream,
100  uint32_t funcGroup, const char *name );
101 
102 int handleDefCounterGroup( void *userData, uint32_t stream,
103  uint32_t counterGroup, const char *name );
104 
105 int handleDefSclFile( void *userData, uint32_t stream, uint32_t sourceFile,
106  const char *name );
107 
108 /* Level 3 handles */
109 
110 int handleEnter( void *userData, uint64_t time, uint32_t function,
111  uint32_t process, uint32_t source );
112 
113 int handleLeave( void *userData, uint64_t time, uint32_t function,
114  uint32_t process, uint32_t source );
115 
116 int handleSendMsg( void *userData, uint64_t time, uint32_t sender,
117  uint32_t receiver, uint32_t group, uint32_t type,
118  uint32_t length, uint32_t source );
119 
120 int handleRecvMsg( void *userData, uint64_t time, uint32_t recvProc,
121  uint32_t sendProc, uint32_t group, uint32_t type,
122  uint32_t length, uint32_t source );
123 
124 int handleRMAPut( void *userData, uint64_t time, uint32_t process,
125  uint32_t origin, uint32_t target, uint32_t communicator,
126  uint32_t tag, uint64_t bytes, uint32_t source );
127 
128 int handleRMAPutRemoteEnd( void *userData, uint64_t time, uint32_t process,
129  uint32_t origin, uint32_t target,
130  uint32_t communicator, uint32_t tag, uint64_t bytes,
131  uint32_t source );
132 
133 int handleRMAGet( void *userData, uint64_t time, uint32_t process,
134  uint32_t origin, uint32_t target, uint32_t communicator,
135  uint32_t tag, uint64_t bytes, uint32_t source );
136 
137 int handleRMAEnd( void *userData, uint64_t time, uint32_t process,
138  uint32_t remote, uint32_t communicator, uint32_t tag,
139  uint32_t source );
140 
141 int handleDefCollectiveOperation( void *userData, uint32_t stream,
142  uint32_t collOp, const char *name,
143  uint32_t type );
144 
145 int handleFileOperation( void *userData, uint64_t time, uint32_t fileid,
146  uint32_t process, uint64_t handleid,
147  uint32_t operation, uint64_t bytes, uint64_t duration,
148  uint32_t source );
149 
150 int handleEndFileOperation( void *userData, uint64_t time, uint32_t process,
151  uint32_t fileid, uint64_t handleid,
152  uint32_t operation, uint64_t bytes,
153  uint32_t source );
154 
155 int handleEnterSnapshot( void *userData, uint64_t time, uint64_t originaltime,
156  uint32_t function, uint32_t process,
157  uint32_t source );
158 
159 int handleCounter( void* userData, uint64_t time, uint32_t process,
160  uint32_t counter, uint64_t value );
161 
162 
163 uint64_t process_get_sum_time( mapInfoProcessT *set );
164 
165 uint64_t process_get_sum_value( mapInfoProcessT *set );
166 
167 double process_get_highest_rate(mapInfoProcessT *set );
168 
169 #endif /* HANDLER_H */
Definition: handler.h:13
Definition: hash.h:24
Deals with all data type related issues.
Definition: handler.h:21