- if(!resource_list) resource_list = xbt_dynar_new(sizeof(surf_resource_t), NULL);
- if(!history) history = tmgr_history_new();
- if(!maxmin_system) maxmin_system = lmm_system_new();
+ action->data=data;
+}
+
+/* HACKHACK: msg_global must be set to a sensible value (like NULL) to use the logging mecanisme
+ * since log_default_appender use xbt_procname which, in SG, is defined in src/msg/m_process.c
+ * (in RL, xbt_procname is defined in src/gras/Virtu/rl_process.c)
+ */
+extern void *msg_global;
+
+void surf_init(int *argc, char **argv)
+{
+ int i,j;
+ char *opt;
+
+ xbt_init(argc, argv);
+ msg_global=NULL; /* see HACKHACK note above */
+ if (!surf_path) {
+ const char *initial_path = "./";
+ surf_path = xbt_dynar_new(sizeof(char*), NULL);
+ xbt_dynar_push(surf_path,&initial_path);
+
+ for (i=1; i<*argc; i++) {
+ if (!strncmp(argv[i],"--surf-path=",strlen("--surf-path="))) {
+ opt=strchr(argv[i],'=');
+ opt++;
+ xbt_dynar_push(surf_path,&opt);
+ /*remove this from argv*/
+ for (j=i+1; j<*argc; j++) {
+ argv[j-1] = argv[j];
+ }
+ argv[j-1] = NULL;
+ (*argc)--;
+ i--; /* compensate effect of next loop incrementation */
+ }
+ }
+ }
+ if (!resource_list)
+ resource_list = xbt_dynar_new(sizeof(surf_resource_private_t), NULL);
+ if (!history)
+ history = tmgr_history_new();
+ if (!maxmin_system)
+ maxmin_system = lmm_system_new();