X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/445590fd865f35e74be34955931c97b8956f6d7f..1632f396f414f85f50611cad05e13c47ad06387e:/src/surf/workstation.c diff --git a/src/surf/workstation.c b/src/surf/workstation.c index f090b9d56a..c92801b35d 100644 --- a/src/surf/workstation.c +++ b/src/surf/workstation.c @@ -239,7 +239,7 @@ static surf_action_t ws_execute_parallel_task(int workstation_nb, void **workstation_list, double *computation_amount, double *communication_amount, - double amount, double rate) + double rate) { THROW_UNIMPLEMENTED; /* This model does not implement parallel tasks */ return NULL; @@ -249,7 +249,7 @@ static surf_action_t ws_execute_parallel_task(int workstation_nb, /* returns an array of network_link_CM02_t */ static xbt_dynar_t ws_get_route(void *workstation_src, void *workstation_dst) { - XBT_INFO("ws_get_route"); + XBT_DEBUG("ws_get_route"); workstation_CLM03_t src = (workstation_CLM03_t) workstation_src; workstation_CLM03_t dst = (workstation_CLM03_t) workstation_dst; return surf_network_model->extension. @@ -303,44 +303,52 @@ static storage_t find_storage_on_mount_list(void *workstation,const char* storag return st; } -static surf_action_t ws_action_open(void *workstation, const char* storage, const char* path, const char* mode) +static surf_action_t ws_action_open(void *workstation, const char* mount, const char* path, const char* mode) { - storage_t st = find_storage_on_mount_list(workstation, storage); + storage_t st = find_storage_on_mount_list(workstation, mount); XBT_DEBUG("OPEN on disk '%s'",st->generic_resource.name); surf_model_t model = st->generic_resource.model; - return model->extension.storage.open(st, path, mode); + return model->extension.storage.open(st, mount, path, mode); } -static surf_action_t ws_action_close(void *workstation, const char* storage, surf_file_t fp) +static surf_action_t ws_action_close(void *workstation, surf_file_t fp) { - storage_t st = find_storage_on_mount_list(workstation, storage); + storage_t st = find_storage_on_mount_list(workstation, fp->storage); XBT_DEBUG("CLOSE on disk '%s'",st->generic_resource.name); surf_model_t model = st->generic_resource.model; return model->extension.storage.close(st, fp); } -static surf_action_t ws_action_read(void *workstation, const char* storage, void* ptr, size_t size, size_t nmemb, surf_file_t stream) +static surf_action_t ws_action_read(void *workstation, void* ptr, size_t size, size_t nmemb, surf_file_t stream) { - storage_t st = find_storage_on_mount_list(workstation, storage); + storage_t st = find_storage_on_mount_list(workstation, stream->storage); XBT_DEBUG("READ on disk '%s'",st->generic_resource.name); surf_model_t model = st->generic_resource.model; - return model->extension.storage.read(st, ptr, size, nmemb, stream); + return model->extension.storage.read(st, ptr, (double)size, nmemb, stream); } -static surf_action_t ws_action_write(void *workstation, const char* storage, const void* ptr, size_t size, size_t nmemb, surf_file_t stream) +static surf_action_t ws_action_write(void *workstation, const void* ptr, size_t size, size_t nmemb, surf_file_t stream) { - storage_t st = find_storage_on_mount_list(workstation, storage); + storage_t st = find_storage_on_mount_list(workstation, stream->storage); XBT_DEBUG("WRITE on disk '%s'",st->generic_resource.name); surf_model_t model = st->generic_resource.model; return model->extension.storage.write(st, ptr, size, nmemb, stream); } -static surf_action_t ws_action_stat(void *workstation, const char* storage, int fd, void* buf) +static surf_action_t ws_action_stat(void *workstation, surf_file_t stream) { - storage_t st = find_storage_on_mount_list(workstation, storage); + storage_t st = find_storage_on_mount_list(workstation, stream->storage); XBT_DEBUG("STAT on disk '%s'",st->generic_resource.name); surf_model_t model = st->generic_resource.model; - return model->extension.storage.stat(st, fd, buf); + return model->extension.storage.stat(st, stream); +} + +static surf_action_t ws_action_unlink(void *workstation, surf_file_t stream) +{ + storage_t st = find_storage_on_mount_list(workstation, stream->storage); + XBT_DEBUG("UNLINK on disk '%s'",st->generic_resource.name); + surf_model_t model = st->generic_resource.model; + return model->extension.storage.unlink(st, stream); } static void surf_workstation_model_init_internal(void) @@ -400,6 +408,7 @@ static void surf_workstation_model_init_internal(void) surf_workstation_model->extension.workstation.read = ws_action_read; surf_workstation_model->extension.workstation.write = ws_action_write; surf_workstation_model->extension.workstation.stat = ws_action_stat; + surf_workstation_model->extension.workstation.unlink = ws_action_unlink; } void surf_workstation_model_init_current_default(void)