XBT_PUBLIC(xbt_fifo_t) SIMIX_cond_get_actions(smx_cond_t cond);
XBT_PUBLIC(void) SIMIX_cond_display_info(smx_cond_t cond);
+/*****Semaphores*******/
+
+
+XBT_PUBLIC(smx_sem_t) SIMIX_sem_init(int capacity);
+XBT_PUBLIC(void) SIMIX_sem_destroy(smx_sem_t sem);
+XBT_PUBLIC(void) SIMIX_sem_release(smx_sem_t sem);
+XBT_PUBLIC(void) SIMIX_sem_release_forever(smx_sem_t sem);
+XBT_PUBLIC(int) SIMIX_sem_would_block(smx_sem_t sem);
+XBT_PUBLIC(void) SIMIX_sem_acquire(smx_sem_t sem);
+XBT_PUBLIC(void) SIMIX_sem_acquire_timeout(smx_sem_t sem, double max_duration);
+
+
/************************** Action handling ************************************/
XBT_PUBLIC(smx_action_t) SIMIX_action_communicate(smx_host_t sender,
smx_host_t receiver,
XBT_PUBLIC(int) SIMIX_action_destroy(smx_action_t action);
XBT_PUBLIC(void) SIMIX_action_use(smx_action_t action);
XBT_PUBLIC(void) SIMIX_action_release(smx_action_t action);
+
XBT_PUBLIC(void) SIMIX_register_action_to_condition(smx_action_t action,
smx_cond_t cond);
XBT_PUBLIC(void) SIMIX_unregister_action_to_condition(smx_action_t action,
smx_cond_t cond);
+XBT_PUBLIC(void) SIMIX_register_action_to_semaphore(smx_action_t action, smx_sem_t sem);
+XBT_PUBLIC(void) SIMIX_unregister_action_to_semaphore(smx_action_t action, smx_sem_t sem);
+
+
XBT_PUBLIC(double) SIMIX_action_get_remains(smx_action_t action);
XBT_PUBLIC(e_surf_action_state_t) SIMIX_action_get_state(smx_action_t action);
double rate);
XBT_PUBLIC(char *) SIMIX_action_get_name(smx_action_t action);
+XBT_PUBLIC(void) SIMIX_action_set_name(smx_action_t action,char *name);
XBT_PUBLIC(void) SIMIX_action_signal_all(smx_action_t action);
XBT_PUBLIC(void) SIMIX_display_process_status(void);
/************************** Comunication Handling *****************************/
XBT_PUBLIC(int) SIMIX_rdv_get_count_waiting_comm(smx_rdv_t rdv, smx_host_t host);
XBT_PUBLIC(smx_comm_t) SIMIX_rdv_get_head(smx_rdv_t rdv);
XBT_PUBLIC(smx_comm_t) SIMIX_rdv_get_request(smx_rdv_t rdv, smx_comm_type_t type);
+XBT_PUBLIC(void) SIMIX_rdv_set_data(smx_rdv_t rdv,void *data);
+XBT_PUBLIC(void*) SIMIX_rdv_get_data(smx_rdv_t rdv);
/*****Communication Requests*****/
XBT_PUBLIC(void) SIMIX_communication_cancel(smx_comm_t comm);
size_t src_buff_size, smx_comm_t *comm, void *data);
XBT_PUBLIC(void) SIMIX_network_recv(smx_rdv_t rdv, double timeout, void *dst_buff,
size_t *dst_buff_size, smx_comm_t *comm);
-XBT_PUBLIC(void) SIMIX_network_wait(smx_action_t comm);
-XBT_PUBLIC(int) SIMIX_network_test(smx_action_t comm);
+XBT_PUBLIC(smx_comm_t) SIMIX_network_isend(smx_rdv_t rdv, double task_size, double rate,
+ void *src_buff, size_t src_buff_size, void *data);
+XBT_PUBLIC(smx_comm_t) SIMIX_network_irecv(smx_rdv_t rdv, void *dst_buff, size_t *dst_buff_size);
+
+XBT_PUBLIC(void) SIMIX_network_wait(smx_comm_t comm, double timeout);
+XBT_PUBLIC(int) SIMIX_network_test(smx_comm_t comm);
SG_END_DECL()
#endif /* _SIMIX_SIMIX_H */