From: suter Date: Tue, 18 Jun 2013 11:17:12 +0000 (+0200) Subject: yet another simplification of the storage API: we don't manage X-Git-Tag: v3_9_90~255 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/4bac5d6867ff353bb05c89397a641001f43ba711 yet another simplification of the storage API: we don't manage file contents, no need for a buffer as parameter ... --- diff --git a/examples/msg/io/file.c b/examples/msg/io/file.c index 84bded3c8b..4e0ee91b81 100644 --- a/examples/msg/io/file.c +++ b/examples/msg/io/file.c @@ -33,7 +33,6 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(io_file, int host(int argc, char *argv[]) { msg_file_t file = NULL; - void *ptr = NULL; char* mount = xbt_strdup("/home"); size_t read,write; @@ -49,13 +48,13 @@ int host(int argc, char *argv[]) XBT_INFO("\tOpen file '%s'",file->name); - read = MSG_file_read(ptr,10000000,file); // Read for 10MB + read = MSG_file_read(10000000,file); // Read for 10MB XBT_INFO("\tHave read %zu on %s",read,file->name); - write = MSG_file_write(ptr,100000,file); // Write for 100KB + write = MSG_file_write(100000,file); // Write for 100KB XBT_INFO("\tHave written %zu on %s",write,file->name); - read = MSG_file_read(ptr,110000,file); // Read for 110KB + read = MSG_file_read(110000,file); // Read for 110KB XBT_INFO("\tHave read %zu on %s (of size %zu)",read,file->name, MSG_file_get_size(file)); diff --git a/examples/msg/io/file_unlink.c b/examples/msg/io/file_unlink.c index 30c7c17469..911b499d6d 100644 --- a/examples/msg/io/file_unlink.c +++ b/examples/msg/io/file_unlink.c @@ -30,7 +30,6 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(io_file, int host(int argc, char *argv[]) { msg_file_t file = NULL; - void *ptr = NULL; char* mount = xbt_strdup("/home"); size_t write; @@ -47,7 +46,7 @@ int host(int argc, char *argv[]) file = MSG_file_open(mount,FILENAME1); // Write into the new file - write = MSG_file_write(ptr,100000,file); // Write for 100Ko + write = MSG_file_write(100000,file); // Write for 100Ko XBT_INFO("\tHave written %zu on %s",write,file->name); // Close the file diff --git a/include/msg/msg.h b/include/msg/msg.h index 877d3e40a0..059122a625 100644 --- a/include/msg/msg.h +++ b/include/msg/msg.h @@ -78,8 +78,8 @@ XBT_PUBLIC(const char *) MSG_environment_as_get_model(msg_as_t as); XBT_PUBLIC(xbt_dynar_t) MSG_environment_as_get_hosts(msg_as_t as); /************************** File handling ***********************************/ -XBT_PUBLIC(size_t) MSG_file_read(void* ptr, size_t size, msg_file_t fd); -XBT_PUBLIC(size_t) MSG_file_write(const void* ptr, size_t size, msg_file_t fd); +XBT_PUBLIC(size_t) MSG_file_read(size_t size, msg_file_t fd); +XBT_PUBLIC(size_t) MSG_file_write(size_t size, msg_file_t fd); XBT_PUBLIC(msg_file_t) MSG_file_open(const char* mount, const char* path); XBT_PUBLIC(int) MSG_file_close(msg_file_t fd); XBT_PUBLIC(size_t) MSG_file_get_size(msg_file_t fd); diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 510bade279..26983b7000 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -461,9 +461,8 @@ XBT_PUBLIC(void) simcall_sem_acquire_timeout(smx_sem_t sem, double max_duration); XBT_PUBLIC(int) simcall_sem_get_capacity(smx_sem_t sem); -XBT_PUBLIC(size_t) simcall_file_read(void* ptr, size_t size, smx_file_t fd); -XBT_PUBLIC(size_t) simcall_file_write(const void* ptr, size_t size, - smx_file_t fd); +XBT_PUBLIC(size_t) simcall_file_read(size_t size, smx_file_t fd); +XBT_PUBLIC(size_t) simcall_file_write(size_t size, smx_file_t fd); XBT_PUBLIC(smx_file_t) simcall_file_open(const char* storage, const char* path); XBT_PUBLIC(int) simcall_file_close(smx_file_t fd); XBT_PUBLIC(int) simcall_file_unlink(smx_file_t fd); diff --git a/src/bindings/java/jmsg_file.c b/src/bindings/java/jmsg_file.c index d1e57c2e84..7e77c72e5c 100644 --- a/src/bindings/java/jmsg_file.c +++ b/src/bindings/java/jmsg_file.c @@ -39,7 +39,7 @@ JNIEXPORT jlong JNICALL Java_org_simgrid_msg_File_read(JNIEnv *env, jobject jfile, jlong jsize) { msg_file_t file = jfile_get_native(env, jfile); size_t n; - n = MSG_file_read(NULL,(size_t)jsize, file); + n = MSG_file_read((size_t)jsize, file); return (jlong)n; } @@ -47,7 +47,7 @@ JNIEXPORT jlong JNICALL Java_org_simgrid_msg_File_write(JNIEnv *env, jobject jfile, jlong jsize) { msg_file_t file = jfile_get_native(env, jfile); size_t n; - n = MSG_file_write(NULL, (size_t)jsize, file); + n = MSG_file_write((size_t)jsize, file); return (jlong)n; } JNIEXPORT void JNICALL diff --git a/src/include/surf/surf.h b/src/include/surf/surf.h index 3b684fed50..2872f56fee 100644 --- a/src/include/surf/surf.h +++ b/src/include/surf/surf.h @@ -228,10 +228,8 @@ typedef struct surf_network_model_extension_public { typedef struct surf_storage_model_extension_public { surf_action_t(*open) (void *storage, const char* mount, const char* path); surf_action_t(*close) (void *storage, surf_file_t fd); - surf_action_t(*read) (void *storage, void* ptr, size_t size, - surf_file_t fd); - surf_action_t(*write) (void *storage, const void* ptr, size_t size, - surf_file_t fd); + surf_action_t(*read) (void *storage, size_t size, surf_file_t fd); + surf_action_t(*write) (void *storage, size_t size, surf_file_t fd); surf_action_t(*stat) (void *storage, surf_file_t fd); surf_action_t(*ls) (void *storage, const char *path); } s_surf_model_extension_storage_t; @@ -265,10 +263,8 @@ typedef struct surf_workstation_model_extension_public { surf_action_t(*open) (void *workstation, const char* storage, const char* path); surf_action_t(*close) (void *workstation, surf_file_t fd); - surf_action_t(*read) (void *workstation, void* ptr, size_t size, - surf_file_t fd); - surf_action_t(*write) (void *workstation, const void* ptr, size_t size, - surf_file_t fd); + surf_action_t(*read) (void *workstation, size_t size, surf_file_t fd); + surf_action_t(*write) (void *workstation, size_t size, surf_file_t fd); surf_action_t(*stat) (void *workstation, surf_file_t fd); int(*unlink) (void *workstation, surf_file_t fd); surf_action_t(*ls) (void *workstation, const char* mount, const char *path); diff --git a/src/msg/msg_io.c b/src/msg/msg_io.c index 798e7e2174..575347be12 100644 --- a/src/msg/msg_io.c +++ b/src/msg/msg_io.c @@ -20,29 +20,27 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_io, msg, /********************************* File **************************************/ /** \ingroup msg_file_management - * \brief Read elements of a file + * \brief Read a file * - * \param ptr buffer to where the data is copied * \param size of the file to read * \param fd is a the file descriptor - * \return the number of items successfully read + * \return the number of bytes successfully read */ -size_t MSG_file_read(void* ptr, size_t size, msg_file_t fd) +size_t MSG_file_read(size_t size, msg_file_t fd) { - return simcall_file_read(ptr, size, fd->simdata->smx_file); + return simcall_file_read(size, fd->simdata->smx_file); } /** \ingroup msg_file_management - * \brief Write elements into a file + * \brief Write into a file * - * \param ptr buffer from where the data is copied * \param size of the file to write * \param fd is a the file descriptor - * \return the number of items successfully write + * \return the number of bytes successfully write */ -size_t MSG_file_write(const void* ptr, size_t size, msg_file_t fd) +size_t MSG_file_write(size_t size, msg_file_t fd) { - return simcall_file_write(ptr, size, fd->simdata->smx_file); + return simcall_file_write(size, fd->simdata->smx_file); } /** \ingroup msg_file_management diff --git a/src/simix/smx_io.c b/src/simix/smx_io.c index 9f4f6dc876..fa32593884 100644 --- a/src/simix/smx_io.c +++ b/src/simix/smx_io.c @@ -16,15 +16,15 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_io, simix, //SIMIX FILE READ -void SIMIX_pre_file_read(smx_simcall_t simcall, void *ptr, size_t size, +void SIMIX_pre_file_read(smx_simcall_t simcall, size_t size, smx_file_t fd) { - smx_action_t action = SIMIX_file_read(simcall->issuer, ptr, size, fd); + smx_action_t action = SIMIX_file_read(simcall->issuer, size, fd); xbt_fifo_push(action->simcalls, simcall); simcall->issuer->waiting_action = action; } -smx_action_t SIMIX_file_read(smx_process_t process, void* ptr, size_t size, +smx_action_t SIMIX_file_read(smx_process_t process, size_t size, smx_file_t fd) { smx_action_t action; @@ -46,7 +46,7 @@ smx_action_t SIMIX_file_read(smx_process_t process, void* ptr, size_t size, action->io.host = host; action->io.surf_io = - surf_workstation_model->extension.workstation.read(host, ptr, size, + surf_workstation_model->extension.workstation.read(host, size, fd->surf_file); surf_workstation_model->action_data_set(action->io.surf_io, action); @@ -56,15 +56,15 @@ smx_action_t SIMIX_file_read(smx_process_t process, void* ptr, size_t size, } //SIMIX FILE WRITE -void SIMIX_pre_file_write(smx_simcall_t simcall, const void *ptr, size_t size, +void SIMIX_pre_file_write(smx_simcall_t simcall, size_t size, smx_file_t fd) { - smx_action_t action = SIMIX_file_write(simcall->issuer, ptr, size, fd); + smx_action_t action = SIMIX_file_write(simcall->issuer, size, fd); xbt_fifo_push(action->simcalls, simcall); simcall->issuer->waiting_action = action; } -smx_action_t SIMIX_file_write(smx_process_t process, const void* ptr, +smx_action_t SIMIX_file_write(smx_process_t process, size_t size, smx_file_t fd) { smx_action_t action; @@ -86,7 +86,7 @@ smx_action_t SIMIX_file_write(smx_process_t process, const void* ptr, action->io.host = host; action->io.surf_io = - surf_workstation_model->extension.workstation.write(host, ptr, size, + surf_workstation_model->extension.workstation.write(host, size, fd->surf_file); surf_workstation_model->action_data_set(action->io.surf_io, action); diff --git a/src/simix/smx_io_private.h b/src/simix/smx_io_private.h index c4f1d6528e..fbd377ae74 100644 --- a/src/simix/smx_io_private.h +++ b/src/simix/smx_io_private.h @@ -10,10 +10,8 @@ #include "simgrid/simix.h" #include "smx_smurf_private.h" -void SIMIX_pre_file_read(smx_simcall_t simcall, void *ptr, size_t size, - smx_file_t fd); -void SIMIX_pre_file_write(smx_simcall_t simcall, const void *ptr, size_t size, - smx_file_t fd); +void SIMIX_pre_file_read(smx_simcall_t simcall, size_t size, smx_file_t fd); +void SIMIX_pre_file_write(smx_simcall_t simcall, size_t size, smx_file_t fd); void SIMIX_pre_file_open(smx_simcall_t simcall, const char* mount, const char* path); void SIMIX_pre_file_close(smx_simcall_t simcall, smx_file_t fd); @@ -22,10 +20,10 @@ void SIMIX_pre_file_ls(smx_simcall_t simcall, const char* mount, const char* path); size_t SIMIX_pre_file_get_size(smx_simcall_t simcall, smx_file_t fd); -smx_action_t SIMIX_file_read(smx_process_t process, void* ptr, size_t size, +smx_action_t SIMIX_file_read(smx_process_t process, size_t size, smx_file_t fd); -smx_action_t SIMIX_file_write(smx_process_t process, const void* ptr, - size_t size, smx_file_t fd); +smx_action_t SIMIX_file_write(smx_process_t process, size_t size, + smx_file_t fd); smx_action_t SIMIX_file_open(smx_process_t process, const char* storage, const char* path); smx_action_t SIMIX_file_close(smx_process_t process, smx_file_t fd); diff --git a/src/simix/smx_smurf_private.h b/src/simix/smx_smurf_private.h index 1f5f540af2..49063b90b3 100644 --- a/src/simix/smx_smurf_private.h +++ b/src/simix/smx_smurf_private.h @@ -340,8 +340,8 @@ ACTION(SIMCALL_SEM_WOULD_BLOCK, sem_would_block, WITH_ANSWER, TINT(result), TSPE ACTION(SIMCALL_SEM_ACQUIRE, sem_acquire, WITHOUT_ANSWER, TVOID(result), TSPEC(sem, smx_sem_t)) sep \ ACTION(SIMCALL_SEM_ACQUIRE_TIMEOUT, sem_acquire_timeout, WITHOUT_ANSWER, TVOID(result), TSPEC(sem, smx_sem_t), TDOUBLE(timeout)) sep \ ACTION(SIMCALL_SEM_GET_CAPACITY, sem_get_capacity, WITH_ANSWER, TINT(result), TSPEC(sem, smx_sem_t)) sep \ -ACTION(SIMCALL_FILE_READ, file_read, WITHOUT_ANSWER, TSIZE(result), TPTR(ptr), TSIZE(size), TSPEC(fd, smx_file_t)) sep \ -ACTION(SIMCALL_FILE_WRITE, file_write, WITHOUT_ANSWER, TSIZE(result), TCPTR(ptr), TSIZE(size), TSPEC(fd, smx_file_t)) sep \ +ACTION(SIMCALL_FILE_READ, file_read, WITHOUT_ANSWER, TSIZE(result), TSIZE(size), TSPEC(fd, smx_file_t)) sep \ +ACTION(SIMCALL_FILE_WRITE, file_write, WITHOUT_ANSWER, TSIZE(result), TSIZE(size), TSPEC(fd, smx_file_t)) sep \ ACTION(SIMCALL_FILE_OPEN, file_open, WITHOUT_ANSWER, TSPEC(result, smx_file_t), TSTRING(mount), TSTRING(path)) sep \ ACTION(SIMCALL_FILE_CLOSE, file_close, WITHOUT_ANSWER, TINT(result), TSPEC(fd, smx_file_t)) sep \ ACTION(SIMCALL_FILE_UNLINK, file_unlink, WITH_ANSWER, TINT(result), TSPEC(fd, smx_file_t)) sep \ diff --git a/src/simix/smx_user.c b/src/simix/smx_user.c index d42275c9f9..611617fee1 100644 --- a/src/simix/smx_user.c +++ b/src/simix/smx_user.c @@ -1105,19 +1105,18 @@ int simcall_sem_get_capacity(smx_sem_t sem) * \ingroup simix_file_management * */ -size_t simcall_file_read(void* ptr, size_t size, smx_file_t fd) +size_t simcall_file_read(size_t size, smx_file_t fd) { - return simcall_BODY_file_read(ptr, size, fd); + return simcall_BODY_file_read(size, fd); } /** * \ingroup simix_file_management * */ -size_t simcall_file_write(const void* ptr, size_t size, - smx_file_t fd) +size_t simcall_file_write(size_t size, smx_file_t fd) { - return simcall_BODY_file_write(ptr, size, fd); + return simcall_BODY_file_write(size, fd); } /** diff --git a/src/surf/storage.c b/src/surf/storage.c index df2d0d44cd..7d3fed64fd 100644 --- a/src/surf/storage.c +++ b/src/surf/storage.c @@ -123,8 +123,8 @@ static surf_action_t storage_action_close(void *storage, surf_file_t fd) return action; } -static surf_action_t storage_action_read(void *storage, void* ptr, - size_t size, surf_file_t fd) +static surf_action_t storage_action_read(void *storage, size_t size, + surf_file_t fd) { if(size > fd->size) size = fd->size; @@ -132,8 +132,8 @@ static surf_action_t storage_action_read(void *storage, void* ptr, return action; } -static surf_action_t storage_action_write(void *storage, const void* ptr, - size_t size, surf_file_t fd) +static surf_action_t storage_action_write(void *storage, size_t size, + surf_file_t fd) { char *filename = fd->name; XBT_DEBUG("\tWrite file '%s' size '%zu/%zu'",filename,size,fd->size); diff --git a/src/surf/workstation.c b/src/surf/workstation.c index aec832a014..ff6564d3a3 100644 --- a/src/surf/workstation.c +++ b/src/surf/workstation.c @@ -351,22 +351,22 @@ static surf_action_t ws_action_close(void *workstation, surf_file_t fd) return model->extension.storage.close(st, fd); } -static surf_action_t ws_action_read(void *workstation, void* ptr, size_t size, +static surf_action_t ws_action_read(void *workstation, size_t size, surf_file_t fd) { storage_t st = find_storage_on_mount_list(workstation, fd->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, fd); + return model->extension.storage.read(st, size, fd); } -static surf_action_t ws_action_write(void *workstation, const void* ptr, - size_t size, surf_file_t fd) +static surf_action_t ws_action_write(void *workstation, size_t size, + surf_file_t fd) { storage_t st = find_storage_on_mount_list(workstation, fd->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, fd); + return model->extension.storage.write(st, size, fd); } static int ws_file_unlink(void *workstation, surf_file_t fd)