- typedef enum {
- MSG_OK = 0,
- /**< @brief Everything is right. Keep on going this way ! */
- MSG_WARNING,
- /**< @brief Mmmh! Something must be not perfectly clean. But I
- may be a paranoid freak... ! */
- MSG_TIMEOUT_FAILURE, /**< @brief nothing good happened before the timer you provided elapsed */
- MSG_TRANSFER_FAILURE,
- /**< @brief There has been a problem during you task
- transfer. Either the network is down or the remote host has been
- shutdown. */
- MSG_HOST_FAILURE,
- /**< @brief System shutdown. The host on which you are
- running has just been rebooted. Free your datastructures and
- return now !*/
- MSG_TASK_CANCELLED,
- /**< @brief Cancelled task. This task has been cancelled
- by somebody!*/
- MSG_FATAL
- /**< @brief You've done something wrong. You'd better look at it... */
- } MSG_error_t;
-/** @} */
+typedef xbt_dictelm_t msg_file_t;
+typedef s_xbt_dictelm_t s_msg_file_t;
+
+extern int MSG_FILE_LEVEL;
+typedef struct simdata_file *simdata_file_t;
+
+typedef struct msg_file_priv {
+ char *fullpath;
+ sg_size_t size;
+ char* mount_point;
+ char* storageId;
+ char* storage_type;
+ char* content_type;
+ void *data;
+ simdata_file_t simdata;
+} s_msg_file_priv_t, *msg_file_priv_t;
+
+static inline msg_file_priv_t MSG_file_priv(msg_file_t file){
+ return (msg_file_priv_t )xbt_lib_get_level(file, MSG_FILE_LEVEL);
+}
+
+/* ******************************** Storage ************************************ */
+/* TODO: PV: to comment */
+
+extern int MSG_STORAGE_LEVEL;
+
+/** @brief Storage datatype.
+ * @ingroup msg_storage_management
+ *
+ * You should consider this as an opaque object.
+ */
+typedef xbt_dictelm_t msg_storage_t;
+typedef s_xbt_dictelm_t s_msg_storage_t;
+
+typedef struct msg_storage_priv {
+ const char *host;
+ void *data;
+} s_msg_storage_priv_t, *msg_storage_priv_t;
+
+static inline msg_storage_priv_t MSG_storage_priv(msg_storage_t storage){
+ return (msg_storage_priv_t )xbt_lib_get_level(storage, MSG_STORAGE_LEVEL);
+}
+
+/*************** Begin GPU ***************/
+typedef struct simdata_gpu_task *simdata_gpu_task_t;
+
+typedef struct msg_gpu_task {
+ char *name; /**< @brief task name if any */
+ simdata_gpu_task_t simdata; /**< @brief simulator data */
+#ifdef HAVE_TRACING
+ long long int counter; /* task unique identifier for instrumentation */
+ char *category; /* task category for instrumentation */
+#endif
+} s_msg_gpu_task_t;
+
+/** @brief GPU task datatype.
+ @ingroup m_task_management
+
+ A <em>task</em> may then be defined by a <em>computing
+ amount</em>, a <em>dispatch latency</em> and a <em>collect latency</em>.
+ \see m_task_management
+*/
+typedef struct msg_gpu_task *msg_gpu_task_t;
+/*************** End GPU ***************/
+
+/**
+ * \brief @brief Communication action.
+ * \ingroup msg_task_usage
+ *
+ * Object representing an ongoing communication between processes. Such beast is usually obtained by using #MSG_task_isend, #MSG_task_irecv or friends.
+ */
+typedef struct msg_comm *msg_comm_t;
+
+/** \brief Default value for an uninitialized #msg_task_t.
+ \ingroup m_task_management
+*/
+#define MSG_TASK_UNINITIALIZED NULL
+
+/* ****************************** Process *********************************** */
+
+/** @brief Process datatype.
+ @ingroup m_process_management
+
+ A process may be defined as a <em>code</em>, with some
+ <em>private data</em>, executing in a <em>location</em>.
+
+ You should not access directly to the fields of the pointed
+ structure, but always use the provided API to interact with
+ processes.
+ */
+typedef struct s_smx_process *msg_process_t;
+
+#ifdef MSG_USE_DEPRECATED
+
+/* Compatibility typedefs */
+typedef int m_channel_t;
+typedef msg_gpu_task_t m_gpu_task_t;
+typedef msg_host_t m_host_t;
+typedef msg_process_t m_process_t;
+typedef msg_task_t m_task_t;
+typedef s_msg_gpu_task_t s_m_gpu_task_t;
+typedef s_msg_host_t s_m_host_t;
+typedef s_msg_task_t s_m_task_t;
+#endif