#define SIMIX_DATATYPE_H
#include "xbt/misc.h"
#include "xbt/swag.h"
+#include "xbt/fifo.h"
SG_BEGIN_DECL()
/* ******************************** Host ************************************ */
-/** @defgroup m_datatypes_management_details Details on SIMIX datatypes
- @ingroup m_datatypes_management*/
-
-typedef struct s_simdata_host *simdata_host_t;
-/** @brief Host datatype
- @ingroup m_datatypes_management_details */
-typedef struct s_smx_host {
- char *name; /**< @brief host name if any */
- simdata_host_t simdata; /**< @brief simulator data */
- void *data; /**< @brief user data */
-} s_smx_host_t;
+/** @defgroup m_datatypes_management_details Details on SIMIX datatypes */
/** @brief Host datatype
@ingroup m_datatypes_management
\see m_host_management
@{ */
-typedef struct s_smx_host *smx_host_t;
+ typedef struct s_smx_host *smx_host_t;
/** @} */
/* ******************************** Syncro ************************************ */
-
-typedef struct s_smx_mutex *smx_mutex_t;
-typedef struct s_smx_cond *smx_cond_t;
-
+ typedef struct s_smx_mutex *smx_mutex_t;
+ typedef struct s_smx_cond *smx_cond_t;
+ typedef struct s_smx_sem *smx_sem_t;
/********************************** Action *************************************/
-typedef struct s_simdata_action *simdata_action_t;
-/** @brief Action datatype
- @ingroup m_datatypes_management_details */
-typedef struct s_smx_action {
- char *name; /**< @brief action name if any */
- simdata_action_t simdata; /**< @brief simulator data */
- void *data; /**< @brief user data */
-} s_smx_action_t;
-
-typedef struct s_smx_action *smx_action_t;
-
+ typedef struct s_smx_action *smx_action_t;
/* ****************************** Process *********************************** */
-typedef struct s_simdata_process *simdata_process_t;
-/** @brief Process datatype
- @ingroup m_datatypes_management_details @{ */
-typedef struct s_smx_process {
- char *name; /**< @brief process name if any */
- simdata_process_t simdata; /**< @brief simulator data */
- s_xbt_swag_hookup_t process_hookup;
- s_xbt_swag_hookup_t synchro_hookup;
- s_xbt_swag_hookup_t host_proc_hookup;
- void *data; /**< @brief user data */
-} s_smx_process_t;
-/** @} */
/** @brief Agent datatype
@ingroup m_datatypes_management
data</em>, executing in a <em>location</em>.
\see m_process_management
@{ */
-typedef struct s_smx_process *smx_process_t;
+ typedef struct s_smx_process *smx_process_t;
/** @} */
-/** @brief Agent code
- @ingroup m_datatypes_management
- The code of an agent is a m_process_code_t, i.e. a function with no arguments
- returning no value.
- \see m_process_management
- @{ */
-typedef int(*smx_process_code_t)(int argc,char *argv[]) ;
-/** @} */
+ typedef struct s_smx_context *smx_context_t;
+
+/******************************* Networking ***********************************/
+ typedef struct s_smx_rvpoint *smx_rdv_t;
+ typedef struct s_smx_comm *smx_comm_t;
+ typedef enum {comm_send,
+ comm_recv
+ } smx_comm_type_t;
+
+
SG_END_DECL()
#endif