X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fb5a144e806900edc6d26992740acf2c117538fa..d740fcc38174fbe1e9c5ec70ac3a15999fd62ac2:/src/simix/smx_io.c diff --git a/src/simix/smx_io.c b/src/simix/smx_io.c index a657e1b4fc..d8477ae96b 100644 --- a/src/simix/smx_io.c +++ b/src/simix/smx_io.c @@ -55,16 +55,14 @@ void SIMIX_file_set_data(smx_file_t fd, void *data){ } //SIMIX FILE READ -void SIMIX_pre_file_read(smx_simcall_t simcall, sg_storage_size_t size, - smx_file_t fd) +void SIMIX_pre_file_read(smx_simcall_t simcall, smx_file_t fd, sg_storage_size_t size) { - smx_action_t action = SIMIX_file_read(simcall->issuer, size, fd); + smx_action_t action = SIMIX_file_read(simcall->issuer, fd, size); xbt_fifo_push(action->simcalls, simcall); simcall->issuer->waiting_action = action; } -smx_action_t SIMIX_file_read(smx_process_t process, sg_storage_size_t size, - smx_file_t fd) +smx_action_t SIMIX_file_read(smx_process_t process, smx_file_t fd, sg_storage_size_t size) { smx_action_t action; smx_host_t host = process->smx_host; @@ -85,8 +83,7 @@ smx_action_t SIMIX_file_read(smx_process_t process, sg_storage_size_t size, action->io.host = host; action->io.surf_io = - surf_workstation_model->extension.workstation.read(host, size, - fd->surf_file); + surf_workstation_model->extension.workstation.read(host, fd->surf_file, size); surf_workstation_model->action_data_set(action->io.surf_io, action); XBT_DEBUG("Create io action %p", action); @@ -95,16 +92,14 @@ smx_action_t SIMIX_file_read(smx_process_t process, sg_storage_size_t size, } //SIMIX FILE WRITE -void SIMIX_pre_file_write(smx_simcall_t simcall, sg_storage_size_t size, - smx_file_t fd) +void SIMIX_pre_file_write(smx_simcall_t simcall, smx_file_t fd, sg_storage_size_t size) { - smx_action_t action = SIMIX_file_write(simcall->issuer, size, fd); + smx_action_t action = SIMIX_file_write(simcall->issuer, fd, size); xbt_fifo_push(action->simcalls, simcall); simcall->issuer->waiting_action = action; } -smx_action_t SIMIX_file_write(smx_process_t process, - sg_storage_size_t size, smx_file_t fd) +smx_action_t SIMIX_file_write(smx_process_t process, smx_file_t fd, sg_storage_size_t size) { smx_action_t action; smx_host_t host = process->smx_host; @@ -125,8 +120,7 @@ smx_action_t SIMIX_file_write(smx_process_t process, action->io.host = host; action->io.surf_io = - surf_workstation_model->extension.workstation.write(host, size, - fd->surf_file); + surf_workstation_model->extension.workstation.write(host, fd->surf_file, size); surf_workstation_model->action_data_set(action->io.surf_io, action); XBT_DEBUG("Create io action %p", action); @@ -227,7 +221,7 @@ int SIMIX_file_unlink(smx_process_t process, smx_file_t fd) } if (surf_workstation_model->extension.workstation.unlink(host, fd->surf_file)){ - fd->surf_file = NULL; + xbt_free(fd); return 1; } else return 0; @@ -358,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;