Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Sanitize static functions' names; kill unused ones
[simgrid.git] / src / simix / private.h
index 3e45a08..4ff9c74 100644 (file)
@@ -129,21 +129,36 @@ typedef struct s_smx_rvpoint {
 } 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_comm_type_t type;   /* Type of the communication (comm_send,comm_recv) */
+  smx_rdv_t rdv;          /* Rendez-vous where the comm is queued */
+  smx_cond_t cond;        /* Condition associated to the surf simulation */
+  int refcount;           /* Number of processes involved in the cond */
+
+  /* Surf action data */
+  smx_process_t src_proc;
+  smx_process_t dst_proc;
   smx_action_t act;
+  double rate;
+  double task_size;
+
+  /* Data to be transfered */
   void *src_buff;
   size_t src_buff_size;
   void *dst_buff;
   size_t *dst_buff_size;
-  double rate;
-  double task_size;
-  int refcount;
+  void *data;             /* User data associated to communication */
 } s_smx_comm_t;
 
+void SIMIX_network_copy_data(smx_comm_t comm);
+smx_comm_t SIMIX_communication_new(smx_comm_type_t type);
+void SIMIX_communication_destroy(smx_comm_t comm);
+static inline void SIMIX_communication_use(smx_comm_t comm);
+static inline void SIMIX_communication_wait_for_completion(smx_comm_t comm, double timeout);
+static inline void SIMIX_rdv_push(smx_rdv_t rdv, smx_comm_t comm);
+static inline void SIMIX_rdv_remove(smx_rdv_t rdv, smx_comm_t comm);
+
 /********************************* Action *************************************/
 
 typedef enum {ready, ongoing, done, failed} smx_action_state_t;