+/** \ingroup TRACE_API
+ * \brief Creates a file with the topology of the platform file used for the simulator.
+ *
+ * The graph topology will have the following properties: all hosts, links and routers
+ * of the platform file are mapped to graph nodes; routes are mapped to edges.
+ * The platform's AS are not represented in the output.
+ *
+ * \param filename The name of the file that will hold the graph.
+ *
+ * \return 1 of successful, 0 otherwise.
+ */
+int TRACE_platform_graph_export_graphviz (const char *filename)
+{
+ /* returns 1 if successful, 0 otherwise */
+ if (!TRACE_is_enabled()) return 0;
+ xbt_graph_t g = instr_routing_platform_graph();
+ if (g == NULL) return 0;
+ instr_routing_platform_graph_export_graphviz (g, filename);
+ xbt_graph_free_graph (g, xbt_free, xbt_free, NULL);
+ return 1;
+}
+
+/*
+ * Derived functions that use instr_user_variable and TRACE_user_srcdst_variable.
+ * They were previously defined as pre-processors directives, but were transformed
+ * into functions so the user can track them using gdb.
+ */
+
+/* for host variables */
+/** \ingroup TRACE_user_variables
+ * \brief Declare a new user variable associated to hosts.
+ *
+ * Declare a user variable that will be associated to hosts.
+ * A user host variable can be used to trace user variables
+ * such as the number of tasks in a server, the number of
+ * clients in an application (for hosts), and so on. The color
+ * associated to this new variable will be random.
+ *
+ * \param variable The name of the new variable to be declared.
+ *
+ * \see TRACE_host_variable_declare_with_color
+ */
+void TRACE_host_variable_declare (const char *variable)
+{
+ instr_user_variable(0, NULL, variable, "HOST", 0, INSTR_US_DECLARE, NULL);
+}