Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Incomplete port of MSG on top of SIMIX_network [Cristian]
[simgrid.git] / src / simix / private.h
index 210e01d..8d40e0e 100644 (file)
@@ -72,6 +72,7 @@ extern SIMIX_Global_t simix_global;
        int iwannadie : 1;
        smx_mutex_t mutex;       /* mutex on which the process is blocked  */
        smx_cond_t cond;         /* cond on which the process is blocked  */
+       smx_action_t waiting_action;
        xbt_dict_t properties;
        void *data;              /* kept for compatibility, it should be replaced with moddata */
 
@@ -96,7 +97,6 @@ void SIMIX_process_yield(void);
 ex_ctx_t *SIMIX_process_get_exception(void);
 void SIMIX_process_exception_terminate(xbt_ex_t * e);
 
-
 /*************************** Mutex and Conditional ****************************/
 
 typedef struct s_smx_mutex {
@@ -118,8 +118,36 @@ typedef struct s_smx_cond {
 
 } s_smx_cond_t;
 
+/******************************* Networking ***********************************/
+
+/** @brief Rendez-vous point datatype */
+typedef struct s_smx_rvpoint {
+  char *name;
+  smx_mutex_t read;
+  smx_mutex_t write;
+  xbt_fifo_t comm_fifo;  
+} s_smx_rvpoint_t;
+
+typedef struct s_smx_comm {
+  smx_comm_type_t type;
+  smx_host_t src_host;
+  smx_host_t dst_host;
+  smx_rdv_t rdv;
+  smx_cond_t cond;
+  smx_action_t act;
+  void *data;
+  size_t data_size;
+  void *dest_buff;
+  size_t *dest_buff_size;
+  double rate;
+  double task_size;
+  int refcount;
+} s_smx_comm_t;
+
 /********************************* Action *************************************/
 
+typedef enum {ready, ongoing, done, failed} smx_action_state_t;
+
 /** @brief Action datatype
     @ingroup m_datatypes_management_details */
 typedef struct s_smx_action {