1 /* Copyright (c) 2010, 2012-2017. The SimGrid Team.
2 * All rights reserved. */
4 /* This program is free software; you can redistribute it and/or modify it
5 * under the terms of the license (GNU LGPL) which comes with this package. */
7 #include "simgrid/sg_config.h"
8 #include "src/instr/instr_private.hpp"
10 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_header, instr, "Paje tracing event system (header)");
12 extern FILE *tracing_file;
14 static void TRACE_header_PajeDefineContainerType(bool basic)
16 fprintf(tracing_file, "%%EventDef PajeDefineContainerType %d\n", simgrid::instr::PAJE_DefineContainerType);
17 fprintf(tracing_file, "%% Alias string\n");
19 fprintf(tracing_file, "%% ContainerType string\n");
21 fprintf(tracing_file, "%% Type string\n");
23 fprintf(tracing_file, "%% Name string\n");
24 fprintf(tracing_file, "%%EndEventDef\n");
27 static void TRACE_header_PajeDefineVariableType(bool basic)
29 fprintf(tracing_file, "%%EventDef PajeDefineVariableType %d\n", simgrid::instr::PAJE_DefineVariableType);
30 fprintf(tracing_file, "%% Alias string\n");
32 fprintf(tracing_file, "%% ContainerType string\n");
34 fprintf(tracing_file, "%% Type string\n");
36 fprintf(tracing_file, "%% Name string\n");
37 fprintf(tracing_file, "%% Color color\n");
38 fprintf(tracing_file, "%%EndEventDef\n");
41 static void TRACE_header_PajeDefineStateType(bool basic)
43 fprintf(tracing_file, "%%EventDef PajeDefineStateType %d\n", simgrid::instr::PAJE_DefineStateType);
44 fprintf(tracing_file, "%% Alias string\n");
46 fprintf(tracing_file, "%% ContainerType string\n");
48 fprintf(tracing_file, "%% Type string\n");
50 fprintf(tracing_file, "%% Name string\n");
51 fprintf(tracing_file, "%%EndEventDef\n");
54 static void TRACE_header_PajeDefineEventType(bool basic)
56 fprintf(tracing_file, "%%EventDef PajeDefineEventType %d\n", simgrid::instr::PAJE_DefineEventType);
57 fprintf(tracing_file, "%% Alias string\n");
59 fprintf(tracing_file, "%% ContainerType string\n");
61 fprintf(tracing_file, "%% Type string\n");
63 fprintf(tracing_file, "%% Name string\n");
64 fprintf(tracing_file, "%%EndEventDef\n");
67 static void TRACE_header_PajeDefineLinkType(bool basic)
69 fprintf(tracing_file, "%%EventDef PajeDefineLinkType %d\n", simgrid::instr::PAJE_DefineLinkType);
70 fprintf(tracing_file, "%% Alias string\n");
72 fprintf(tracing_file, "%% ContainerType string\n");
73 fprintf(tracing_file, "%% SourceContainerType string\n");
74 fprintf(tracing_file, "%% DestContainerType string\n");
76 fprintf(tracing_file, "%% Type string\n");
77 fprintf(tracing_file, "%% StartContainerType string\n");
78 fprintf(tracing_file, "%% EndContainerType string\n");
80 fprintf(tracing_file, "%% Name string\n");
81 fprintf(tracing_file, "%%EndEventDef\n");
84 static void TRACE_header_PajeDefineEntityValue(bool basic)
86 fprintf(tracing_file, "%%EventDef PajeDefineEntityValue %d\n", simgrid::instr::PAJE_DefineEntityValue);
87 fprintf(tracing_file, "%% Alias string\n");
89 fprintf(tracing_file, "%% EntityType string\n");
91 fprintf(tracing_file, "%% Type string\n");
93 fprintf(tracing_file, "%% Name string\n");
94 fprintf(tracing_file, "%% Color color\n");
95 fprintf(tracing_file, "%%EndEventDef\n");
98 static void TRACE_header_PajeCreateContainer()
100 fprintf(tracing_file, "%%EventDef PajeCreateContainer %d\n", simgrid::instr::PAJE_CreateContainer);
101 fprintf(tracing_file, "%% Time date\n");
102 fprintf(tracing_file, "%% Alias string\n");
103 fprintf(tracing_file, "%% Type string\n");
104 fprintf(tracing_file, "%% Container string\n");
105 fprintf(tracing_file, "%% Name string\n");
106 fprintf(tracing_file, "%%EndEventDef\n");
109 static void TRACE_header_PajeDestroyContainer()
111 fprintf(tracing_file, "%%EventDef PajeDestroyContainer %d\n", simgrid::instr::PAJE_DestroyContainer);
112 fprintf(tracing_file, "%% Time date\n");
113 fprintf(tracing_file, "%% Type string\n");
114 fprintf(tracing_file, "%% Name string\n");
115 fprintf(tracing_file, "%%EndEventDef\n");
118 static void TRACE_header_PajeSetVariable()
120 fprintf(tracing_file, "%%EventDef PajeSetVariable %d\n", simgrid::instr::PAJE_SetVariable);
121 fprintf(tracing_file, "%% Time date\n");
122 fprintf(tracing_file, "%% Type string\n");
123 fprintf(tracing_file, "%% Container string\n");
124 fprintf(tracing_file, "%% Value double\n");
125 fprintf(tracing_file, "%%EndEventDef\n");
128 static void TRACE_header_PajeAddVariable()
130 fprintf(tracing_file, "%%EventDef PajeAddVariable %d\n", simgrid::instr::PAJE_AddVariable);
131 fprintf(tracing_file, "%% Time date\n");
132 fprintf(tracing_file, "%% Type string\n");
133 fprintf(tracing_file, "%% Container string\n");
134 fprintf(tracing_file, "%% Value double\n");
135 fprintf(tracing_file, "%%EndEventDef\n");
138 static void TRACE_header_PajeSubVariable()
140 fprintf(tracing_file, "%%EventDef PajeSubVariable %d\n", simgrid::instr::PAJE_SubVariable);
141 fprintf(tracing_file, "%% Time date\n");
142 fprintf(tracing_file, "%% Type string\n");
143 fprintf(tracing_file, "%% Container string\n");
144 fprintf(tracing_file, "%% Value double\n");
145 fprintf(tracing_file, "%%EndEventDef\n");
148 static void TRACE_header_PajeSetState()
150 fprintf(tracing_file, "%%EventDef PajeSetState %d\n", simgrid::instr::PAJE_SetState);
151 fprintf(tracing_file, "%% Time date\n");
152 fprintf(tracing_file, "%% Type string\n");
153 fprintf(tracing_file, "%% Container string\n");
154 fprintf(tracing_file, "%% Value string\n");
155 fprintf(tracing_file, "%%EndEventDef\n");
158 static void TRACE_header_PajePushState(int size)
160 fprintf(tracing_file, "%%EventDef PajePushState %d\n", simgrid::instr::PAJE_PushState);
161 fprintf(tracing_file, "%% Time date\n");
162 fprintf(tracing_file, "%% Type string\n");
163 fprintf(tracing_file, "%% Container string\n");
164 fprintf(tracing_file, "%% Value string\n");
165 if (size) fprintf(tracing_file, "%% Size int\n");
167 if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
169 * paje currently (May 2016) uses "Filename" and "Linenumber" as
170 * reserved words. We cannot use them...
172 fprintf(tracing_file, "%% Fname string\n");
173 fprintf(tracing_file, "%% Lnumber int\n");
176 fprintf(tracing_file, "%%EndEventDef\n");
179 static void TRACE_header_PajePopState()
181 fprintf(tracing_file, "%%EventDef PajePopState %d\n", simgrid::instr::PAJE_PopState);
182 fprintf(tracing_file, "%% Time date\n");
183 fprintf(tracing_file, "%% Type string\n");
184 fprintf(tracing_file, "%% Container string\n");
185 fprintf(tracing_file, "%%EndEventDef\n");
188 static void TRACE_header_PajeResetState(bool basic)
193 fprintf(tracing_file, "%%EventDef PajeResetState %d\n", simgrid::instr::PAJE_ResetState);
194 fprintf(tracing_file, "%% Time date\n");
195 fprintf(tracing_file, "%% Type string\n");
196 fprintf(tracing_file, "%% Container string\n");
197 fprintf(tracing_file, "%%EndEventDef\n");
200 static void TRACE_header_PajeStartLink(bool basic, int size)
202 fprintf(tracing_file, "%%EventDef PajeStartLink %d\n", simgrid::instr::PAJE_StartLink);
203 fprintf(tracing_file, "%% Time date\n");
204 fprintf(tracing_file, "%% Type string\n");
205 fprintf(tracing_file, "%% Container string\n");
206 fprintf(tracing_file, "%% Value string\n");
208 fprintf(tracing_file, "%% SourceContainer string\n");
210 fprintf(tracing_file, "%% StartContainer string\n");
212 fprintf(tracing_file, "%% Key string\n");
213 if (size) fprintf(tracing_file, "%% Size int\n");
214 fprintf(tracing_file, "%%EndEventDef\n");
217 static void TRACE_header_PajeEndLink(bool basic)
219 fprintf(tracing_file, "%%EventDef PajeEndLink %d\n", simgrid::instr::PAJE_EndLink);
220 fprintf(tracing_file, "%% Time date\n");
221 fprintf(tracing_file, "%% Type string\n");
222 fprintf(tracing_file, "%% Container string\n");
223 fprintf(tracing_file, "%% Value string\n");
225 fprintf(tracing_file, "%% DestContainer string\n");
227 fprintf(tracing_file, "%% EndContainer string\n");
229 fprintf(tracing_file, "%% Key string\n");
230 fprintf(tracing_file, "%%EndEventDef\n");
233 static void TRACE_header_PajeNewEvent()
235 fprintf(tracing_file, "%%EventDef PajeNewEvent %d\n", simgrid::instr::PAJE_NewEvent);
236 fprintf(tracing_file, "%% Time date\n");
237 fprintf(tracing_file, "%% Type string\n");
238 fprintf(tracing_file, "%% Container string\n");
239 fprintf(tracing_file, "%% Value string\n");
240 fprintf(tracing_file, "%%EndEventDef\n");
243 void TRACE_header(bool basic, int size)
245 XBT_DEBUG ("Define paje header");
246 TRACE_header_PajeDefineContainerType(basic);
247 TRACE_header_PajeDefineVariableType(basic);
248 TRACE_header_PajeDefineStateType(basic);
249 TRACE_header_PajeDefineEventType(basic);
250 TRACE_header_PajeDefineLinkType(basic);
251 TRACE_header_PajeDefineEntityValue(basic);
252 TRACE_header_PajeCreateContainer();
253 TRACE_header_PajeDestroyContainer();
254 TRACE_header_PajeSetVariable();
255 TRACE_header_PajeAddVariable();
256 TRACE_header_PajeSubVariable();
257 TRACE_header_PajeSetState();
258 TRACE_header_PajePushState(size);
259 TRACE_header_PajePopState();
260 TRACE_header_PajeResetState(basic);
261 TRACE_header_PajeStartLink (basic, size);
262 TRACE_header_PajeEndLink(basic);
263 TRACE_header_PajeNewEvent();