+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;
+
+ if (TRACE_surf_link_is_traced (link)){
+ char resource[100];
+ snprintf (resource, 100, "%p", link);
+
+ pajeNewEvent (0.1, "source", resource, src);
+ pajeNewEvent (0.1, "destination", resource, dst);
+ }
+ }
+}
+
+int TRACE_surf_link_is_traced (void *link)
+{
+ char alias[100];
+ snprintf (alias, 100, "%p", link);
+ if (xbt_dict_get_or_null (created_links, alias)){
+ return 1;
+ }else{
+ return 0;
+ }
+}
+
+void TRACE_surf_action (surf_action_t surf_action, const char *category)
+{
+ if (!IS_TRACING_PLATFORM) return;
+ if (!category){
+ xbt_die ("invalid tracing category");
+ }
+ surf_action->category = xbt_new (char, strlen (category)+1);
+ strncpy (surf_action->category, category, strlen(category)+1);
+}