X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a6b41eb21f97a92944773d9eeedc50e96dc3ec53..4494760f89bc6fefad4d92e2ffe81ec5d6a1c946:/src/surf/surf.c diff --git a/src/surf/surf.c b/src/surf/surf.c index f1206eb9ab..c5012a408c 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"); @@ -20,14 +24,22 @@ lmm_system_t maxmin_system = NULL; xbt_dynar_t surf_path = NULL; double generic_maxmin_share_resources(xbt_swag_t running_actions, - size_t offset) + size_t offset) +{ + return generic_maxmin_share_resources2(running_actions, offset, + maxmin_system); +} + +double generic_maxmin_share_resources2(xbt_swag_t running_actions, + size_t offset, + lmm_system_t sys) { surf_action_t action = NULL; double min = -1; double value = -1; #define VARIABLE(action) (*((lmm_variable_t*)(((char *) (action)) + (offset)))) - lmm_solve(maxmin_system); + lmm_solve(sys); xbt_swag_foreach(action, running_actions) { value = lmm_variable_getvalue(VARIABLE(action)); @@ -81,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; } @@ -154,18 +166,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)