X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9bd0a4d2543b15d61e0256b03a6c7c4c20b66cfe..28b41e5afc60722c75727c405eb4b3d29caf093b:/src/surf/surf.c diff --git a/src/surf/surf.c b/src/surf/surf.c index 82cf6dbd99..7c2d466592 100644 --- a/src/surf/surf.c +++ b/src/surf/surf.c @@ -8,6 +8,10 @@ #include "surf_private.h" #include "xbt/module.h" +typedef struct surf_resource_object { + surf_resource_t resource; +} s_surf_resource_object_t, *surf_resource_object_t; + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_global, surf, "Logging specific to the SURF global module"); @@ -89,7 +93,7 @@ e_surf_action_state_t surf_action_get_state(surf_action_t action) void surf_action_free(surf_action_t * action) { (*action)->resource_type->common_public->action_cancel(*action); - xbt_free(*action); + free(*action); *action = NULL; } @@ -122,12 +126,19 @@ void surf_action_set_data(surf_action_t action, 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); @@ -162,18 +173,31 @@ FILE *surf_fopen(const char *name, const char *mode) int i; char* path = NULL; FILE *file = NULL; + int path_name_len = 0; /* don't count '\0' */ + + xbt_assert0(name, "Need a non-NULL file name"); xbt_assert0(surf_path,"surf_init has to be called before using surf_fopen"); - if(!path_name) path_name=xbt_new0(char,strlen(name)+1); - - xbt_dynar_foreach(surf_path,i,path) { - if(strlen(path_name)