Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
authorPierre Veyre <pierre.veyre@cc.in2p3.fr>
Mon, 7 Oct 2013 08:52:18 +0000 (10:52 +0200)
committerPierre Veyre <pierre.veyre@cc.in2p3.fr>
Mon, 7 Oct 2013 08:52:18 +0000 (10:52 +0200)
Conflicts:
src/surf/storage.c

include/msg/msg.h
include/simgrid/simix.h
src/include/surf/surf.h
src/msg/msg_io.c
src/simix/smx_io.c
src/surf/storage.c

index 2e68208..fa2fc66 100644 (file)
@@ -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);
index 1cce813..ecdd1d6 100644 (file)
@@ -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 ***************************/
index 1e34b2c..0f0694a 100644 (file)
@@ -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
index 31aa420..cafcd12 100644 (file)
@@ -331,5 +331,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);
 }
index aee5550..519ce6d 100644 (file)
@@ -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;
index e492a9c..6d3e23e 100644 (file)
@@ -203,7 +203,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;
@@ -214,6 +214,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;
@@ -522,11 +527,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)