+ XBT_LOG_CONNECT(xbt_parmap,xbt);
+ XBT_LOG_CONNECT(xbt_parmap_unit,xbt_parmap);
+ XBT_LOG_CONNECT(xbt_ddt, xbt);
+ XBT_LOG_CONNECT(xbt_ddt_cbps, xbt_ddt);
+ XBT_LOG_CONNECT(xbt_ddt_convert, xbt_ddt);
+ XBT_LOG_CONNECT(xbt_ddt_create, xbt_ddt);
+ XBT_LOG_CONNECT(xbt_ddt_exchange, xbt_ddt);
+ XBT_LOG_CONNECT(xbt_ddt_lexer, xbt_ddt_parse);
+ XBT_LOG_CONNECT(xbt_ddt_parse, xbt_ddt);
+ XBT_LOG_CONNECT(xbt_trp, xbt);
+ XBT_LOG_CONNECT(xbt_trp_meas, xbt_trp);
+
+ xbt_backtrace_preinit();
+ xbt_os_thread_mod_preinit();
+ xbt_fifo_preinit();
+ xbt_dict_preinit();
+ xbt_datadesc_preinit();
+ xbt_trp_preinit();
+}
+
+static void xbt_postexit(void)
+{
+ xbt_trp_postexit();
+ xbt_datadesc_postexit();
+
+ xbt_backtrace_postexit();
+
+ xbt_fifo_postexit();
+ xbt_dict_postexit();
+
+ xbt_log_postexit();
+ xbt_os_thread_mod_postexit();
+
+ free(xbt_binary_name);
+#ifdef MMALLOC_WANT_OVERIDE_LEGACY
+ mmalloc_postexit();
+#endif
+}
+
+/** @brief Initialize the xbt mechanisms. */
+void xbt_init(int *argc, char **argv)
+{
+ // FIXME it would be nice to assert that this function is called only once. But each gras process do call it...
+ xbt_initialized++;
+
+ if (xbt_initialized > 1)
+ return;
+