From 76583d80b116f084836e915c1905fb3022699168 Mon Sep 17 00:00:00 2001 From: navarro Date: Tue, 31 Jan 2012 15:37:21 +0100 Subject: [PATCH] Add MSG functions for file. Add file msg_io.c --- buildtools/Cmake/DefinePackages.cmake | 1 + include/msg/datatypes.h | 22 +++++++++-------- include/msg/msg.h | 8 +++++++ include/simix/simix.h | 1 - src/msg/msg_io.c | 34 +++++++++++++++++++++++++++ 5 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 src/msg/msg_io.c diff --git a/buildtools/Cmake/DefinePackages.cmake b/buildtools/Cmake/DefinePackages.cmake index 06c14befc8..8d67de990b 100644 --- a/buildtools/Cmake/DefinePackages.cmake +++ b/buildtools/Cmake/DefinePackages.cmake @@ -257,6 +257,7 @@ set(MSG_SRC src/msg/msg_config.c src/msg/msg_task.c src/msg/msg_host.c + src/msg/msg_io.c src/msg/msg_process.c src/msg/msg_gos.c src/msg/msg_global.c diff --git a/include/msg/datatypes.h b/include/msg/datatypes.h index 6a008c9be9..020605076b 100644 --- a/include/msg/datatypes.h +++ b/include/msg/datatypes.h @@ -40,6 +40,18 @@ typedef struct m_host { typedef struct m_host *m_host_t; /** @} */ + +/* ******************************** File ************************************ */ +/** @brief File datatype + @ingroup m_datatypes_management_details */ +typedef struct m_file { + char *name; /**< @brief file name */ + void *data; /**< @brief user data */ +} s_m_file_t; + +typedef struct m_file *m_file_t; + + /* ******************************** Task ************************************ */ typedef struct simdata_task *simdata_task_t; @@ -135,16 +147,6 @@ typedef enum { } MSG_error_t; /** @} */ -/* ******************************** File ************************************ */ - -/** @brief File datatype - @ingroup m_datatypes_management_details */ -typedef struct m_file { - char *name; /**< @brief host name if any */ - void *data; /**< @brief user data */ -} s_m_file_t; -/** @} */ - SG_END_DECL() #endif diff --git a/include/msg/msg.h b/include/msg/msg.h index ea1e2a881d..c002bfb766 100644 --- a/include/msg/msg.h +++ b/include/msg/msg.h @@ -39,6 +39,14 @@ XBT_PUBLIC(double) MSG_get_clock(void); XBT_PUBLIC(unsigned long int) MSG_get_sent_msg(void); +/************************** File handling ***********************************/ +XBT_PUBLIC(size_t) MSG_file_read(void* ptr, size_t size, size_t nmemb, m_file_t* stream); +XBT_PUBLIC(size_t) MSG_file_write(const void* ptr, size_t size, size_t nmemb, m_file_t* stream); +XBT_PUBLIC(m_file_t*) MSG_file_open(const char* path, const char* mode); +XBT_PUBLIC(int) MSG_file_close(m_file_t* fp); +XBT_PUBLIC(int) MSG_file_stat(int fd, void* buf); + + /************************** Host handling ***********************************/ XBT_PUBLIC(MSG_error_t) MSG_host_set_data(m_host_t host, void *data); XBT_PUBLIC(void *) MSG_host_get_data(m_host_t host); diff --git a/include/simix/simix.h b/include/simix/simix.h index 6022a19e18..8c94fcb42d 100644 --- a/include/simix/simix.h +++ b/include/simix/simix.h @@ -247,7 +247,6 @@ XBT_PUBLIC(int) simcall_sem_get_capacity(smx_sem_t sem); XBT_PUBLIC(size_t) simcall_file_read(void* ptr, size_t size, size_t nmemb, smx_file_t* stream); XBT_PUBLIC(size_t) simcall_file_write(const void* ptr, size_t size, size_t nmemb, smx_file_t* stream); XBT_PUBLIC(smx_file_t*) simcall_file_open(const char* path, const char* mode); -XBT_PUBLIC(size_t) simcall_file_write(const void* ptr, size_t size, size_t nmemb, smx_file_t* stream); XBT_PUBLIC(int) simcall_file_close(smx_file_t* fp); XBT_PUBLIC(int) simcall_file_stat(int fd, void* buf); diff --git a/src/msg/msg_io.c b/src/msg/msg_io.c new file mode 100644 index 0000000000..3c4a69ef62 --- /dev/null +++ b/src/msg/msg_io.c @@ -0,0 +1,34 @@ +/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. The SimGrid Team. + * All rights reserved. */ + +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ + +#include "msg_private.h" + +// FILE + +size_t MSG_file_read(void* ptr, size_t size, size_t nmemb, m_file_t* stream) +{ + return simcall_file_read(ptr, size, nmemb, (smx_file_t*)stream); +} + +size_t MSG_file_write(const void* ptr, size_t size, size_t nmemb, m_file_t* stream) +{ + return simcall_file_write(ptr, size, nmemb, (smx_file_t*)stream); +} + +m_file_t* MSG_file_open(const char* path, const char* mode) +{ + return (m_file_t*) simcall_file_open(path, mode); +} + +int MSG_file_close(m_file_t* fp) +{ + return simcall_file_close((smx_file_t*)fp); +} + +int MSG_file_stat(int fd, void* buf) +{ + return simcall_file_stat(fd, buf); +} -- 2.20.1