return xbt_lib_get_or_null(storage_lib, name, SIMIX_STORAGE_LEVEL);
}
+/**
+ * \brief Internal function to destroy a SIMIX storage.
+ *
+ * \param s the host to destroy (a smx_storage_t)
+ */
+void SIMIX_storage_destroy(void *s)
+{
+ smx_storage_priv_t storage = (smx_storage_priv_t) s;
+
+ xbt_assert((storage != NULL), "Invalid parameters");
+ if (storage->data)
+ free(storage->data);
+
+ /* Clean storage structure */
+ free(storage);
+}
void* SIMIX_pre_file_get_data(smx_simcall_t simcall,smx_file_t fd){
return SIMIX_file_get_data(fd);
}
if (surf_workstation_model->extension.workstation.unlink(host, fd->surf_file)){
- fd->surf_file = NULL;
+ xbt_free(fd);
return 1;
} else
return 0;
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;