pajeDefineVariableType ("power", "HOST", "power");
pajeDefineVariableType ("bandwidth", "LINK", "bandwidth");
pajeDefineVariableType ("latency", "LINK", "latency");
+ pajeDefineEventType ("source", "LINK", "source");
+ pajeDefineEventType ("destination", "LINK", "destination");
}
if (IS_TRACING_PROCESSES || IS_TRACING_VOLUME){
void TRACE_surf_link_set_latency (double date, void *link, double latency);
void TRACE_surf_link_missing (void);
void TRACE_msg_clean (void);
+void TRACE_surf_save_onelink (void);
//for tracing gtnets
void TRACE_surf_gtnets_communicate (void *action, int src, int dst);
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "instr/private.h"
+#include "surf/surf_private.h"
#ifdef HAVE_TRACING
pajeSetVariable (0, "vivaldi_h", host, valuestr);
}
+extern routing_global_t global_routing;
+void TRACE_surf_save_onelink (void)
+{
+ if (!IS_TRACING) return;
+
+ //get the onelinks from the parsed platform
+ xbt_dynar_t onelink_routes = global_routing->get_onelink_routes();
+ if (!onelink_routes) return;
+
+ //save them in trace file
+ onelink_t onelink;
+ unsigned int iter;
+ xbt_dynar_foreach(onelink_routes, iter, onelink) {
+ char *src = onelink->src;
+ char *dst = onelink->dst;
+ void *link = onelink->link_ptr;
+
+ char resource[100];
+ snprintf (resource, 100, "%p", link);
+
+ pajeNewEvent (0.1, "source", resource, src);
+ pajeNewEvent (0.1, "destination", resource, dst);
+ }
+}
+
#endif
end = xbt_os_time();
DEBUG1("PARSE TIME: %lg", (end - start));
+#ifdef HAVE_TRACING
+ TRACE_surf_save_onelink ();
+#endif
+
xbt_dict_foreach(surf_model_resource_set(surf_workstation_model), cursor,
name, workstation) {
__SIMIX_host_create(name, workstation, NULL);