From: Pierre Veyre Date: Tue, 8 Oct 2013 19:44:45 +0000 (+0200) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid X-Git-Tag: v3_9_90~38 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/d740fcc38174fbe1e9c5ec70ac3a15999fd62ac2?hp=a379a593cbd8d3d1efea967b7a49a89fe1058d36 Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid --- diff --git a/include/msg/msg.h b/include/msg/msg.h index 2e6820842f..fa2fc66e6b 100644 --- a/include/msg/msg.h +++ b/include/msg/msg.h @@ -106,6 +106,7 @@ XBT_PUBLIC(xbt_dynar_t) MSG_storages_as_dynar(void); XBT_PUBLIC(msg_error_t) MSG_storage_set_data(msg_storage_t host, void *data); XBT_PUBLIC(void *) MSG_storage_get_data(msg_storage_t storage); XBT_PUBLIC(xbt_dict_t) MSG_storage_get_content(msg_storage_t storage); +XBT_PUBLIC(sg_storage_size_t) MSG_storage_get_size(msg_storage_t storage); /************************** AS Router handling ************************************/ XBT_PUBLIC(const char *) MSG_as_router_get_property_value(const char* asr, const char *name); XBT_PUBLIC(xbt_dict_t) MSG_as_router_get_properties(const char* asr); diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 1cce813a1d..ecdd1d62ed 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -499,6 +499,7 @@ XBT_PUBLIC(void) SIMIX_storage_set_data(smx_storage_t storage, void *data); XBT_PUBLIC(xbt_dict_t) SIMIX_storage_get_content(smx_storage_t storage); XBT_PUBLIC(xbt_dict_t) simcall_storage_get_content(smx_storage_t storage); XBT_PUBLIC(const char*) SIMIX_storage_get_name(smx_host_t host); +XBT_PUBLIC(sg_storage_size_t) SIMIX_storage_get_size(smx_storage_t storage); /************************** AS router **********************************/ XBT_PUBLIC(xbt_dict_t) SIMIX_asr_get_properties(const char *name); /************************** AS router simcalls ***************************/ diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 1e34b2c766..0f0694a186 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -239,6 +239,7 @@ typedef struct surf_storage_model_extension_public { surf_action_t(*ls) (void *storage, const char *path); xbt_dict_t(*get_properties) (const void *storage); xbt_dict_t(*get_content) (void *storage); + sg_storage_size_t(*get_size) (void *storage); } s_surf_model_extension_storage_t; /** \ingroup SURF_models diff --git a/src/msg/msg_io.c b/src/msg/msg_io.c index 08601f3f74..dc6cae3231 100644 --- a/src/msg/msg_io.c +++ b/src/msg/msg_io.c @@ -334,5 +334,9 @@ void *MSG_storage_get_data(msg_storage_t storage) xbt_dict_t MSG_storage_get_content(msg_storage_t storage) { return SIMIX_storage_get_content(storage); - //return (simcall_storage_get_properties(storage)); +} + +sg_storage_size_t MSG_storage_get_size(msg_storage_t storage) +{ + return SIMIX_storage_get_size(storage); } diff --git a/src/simix/smx_io.c b/src/simix/smx_io.c index 438d87dca7..d8477ae96b 100644 --- a/src/simix/smx_io.c +++ b/src/simix/smx_io.c @@ -352,6 +352,11 @@ xbt_dict_t SIMIX_storage_get_content(smx_storage_t storage){ return surf_storage_model->extension.storage.get_content(storage); } +sg_storage_size_t SIMIX_storage_get_size(smx_storage_t storage){ + xbt_assert((storage != NULL), "Invalid parameters (simix storage is NULL)"); + return surf_storage_model->extension.storage.get_size(storage); +} + void SIMIX_post_io(smx_action_t action) { xbt_fifo_item_t i; diff --git a/src/surf/storage.c b/src/surf/storage.c index 8e549ad0e8..0f28e4f11c 100644 --- a/src/surf/storage.c +++ b/src/surf/storage.c @@ -209,7 +209,7 @@ static xbt_dict_t storage_get_content(void *storage) /* For the moment this action has no cost, but in the future we could take in account access latency of the disk */ /*surf_action_t action = storage_action_execute(storage,0, LS);*/ - void *st = surf_storage_resource_priv(storage); + void *storage_resource = surf_storage_resource_priv(storage); xbt_dict_t content_dict = xbt_dict_new_homogeneous(NULL); xbt_dict_cursor_t cursor = NULL; char *file; @@ -221,6 +221,11 @@ static xbt_dict_t storage_get_content(void *storage) return content_dict; } +static sg_storage_size_t storage_get_size(void *storage){ + void *storage_resource = surf_storage_resource_priv(storage); + return ((storage_t)storage_resource)->size; +} + static void* storage_create_resource(const char* id, const char* model, const char* type_id, const char* content_name, const char* content_type, xbt_dict_t properties){ storage_t storage = NULL; @@ -532,11 +537,10 @@ static void surf_storage_model_init_internal(void) surf_storage_model->extension.storage.ls = storage_action_ls; surf_storage_model->extension.storage.get_properties = storage_get_properties; surf_storage_model->extension.storage.get_content = storage_get_content; - + surf_storage_model->extension.storage.get_size = storage_get_size; if (!storage_maxmin_system) { storage_maxmin_system = lmm_system_new(storage_selective_update); } - } void surf_storage_model_init_default(void)