Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add MSG functions for file.
authornavarro <navarro@caraja.(none)>
Tue, 31 Jan 2012 14:37:21 +0000 (15:37 +0100)
committernavarro <navarro@caraja.(none)>
Tue, 31 Jan 2012 14:37:21 +0000 (15:37 +0100)
Add file msg_io.c

buildtools/Cmake/DefinePackages.cmake
include/msg/datatypes.h
include/msg/msg.h
include/simix/simix.h
src/msg/msg_io.c [new file with mode: 0644]

index 06c14be..8d67de9 100644 (file)
@@ -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
index 6a008c9..0206050 100644 (file)
@@ -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
index ea1e2a8..c002bfb 100644 (file)
@@ -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);
index 6022a19..8c94fcb 100644 (file)
@@ -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 (file)
index 0000000..3c4a69e
--- /dev/null
@@ -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);
+}