- 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_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 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