-void simcall_comm_send(smx_rdv_t rdv, double task_size, double rate,
+void simcall_comm_send(smx_process_t src, smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
int (*match_fun)(void *, void *, smx_action_t),
void (*copy_data_fun)(smx_action_t, void*, size_t), void *data,
void *src_buff, size_t src_buff_size,
int (*match_fun)(void *, void *, smx_action_t),
void (*copy_data_fun)(smx_action_t, void*, size_t), void *data,
if (MC_is_active()) {
/* the model-checker wants two separate simcalls */
smx_action_t comm = NULL; /* MC needs the comm to be set to NULL during the simcall */
if (MC_is_active()) {
/* the model-checker wants two separate simcalls */
smx_action_t comm = NULL; /* MC needs the comm to be set to NULL during the simcall */
- comm = simcall_comm_isend(rdv, task_size, rate,
+ comm = simcall_comm_isend(src, rdv, task_size, rate,
src_buff, src_buff_size, match_fun, NULL, copy_data_fun, data, 0);
simcall_comm_wait(comm, timeout);
comm = NULL;
}
else {
src_buff, src_buff_size, match_fun, NULL, copy_data_fun, data, 0);
simcall_comm_wait(comm, timeout);
comm = NULL;
}
else {
- simcall_BODY_comm_send(rdv, task_size, rate, src_buff, src_buff_size,
+ simcall_BODY_comm_send(src, rdv, task_size, rate, src_buff, src_buff_size,
match_fun, copy_data_fun, data, timeout);
}
}
match_fun, copy_data_fun, data, timeout);
}
}
-smx_action_t simcall_comm_isend(smx_rdv_t rdv, double task_size, double rate,
+smx_action_t simcall_comm_isend(smx_process_t src, smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
int (*match_fun)(void *, void *, smx_action_t),
void (*clean_fun)(void *),
void *src_buff, size_t src_buff_size,
int (*match_fun)(void *, void *, smx_action_t),
void (*clean_fun)(void *),
- return simcall_BODY_comm_isend(rdv, task_size, rate, src_buff,
+ return simcall_BODY_comm_isend(src, rdv, task_size, rate, src_buff,
src_buff_size, match_fun,
clean_fun, copy_data_fun, data, detached);
}
src_buff_size, match_fun,
clean_fun, copy_data_fun, data, detached);
}
-smx_action_t simcall_comm_iprobe(smx_rdv_t rdv, int src, int tag,
+smx_action_t simcall_comm_iprobe(smx_rdv_t rdv, int type, int src, int tag,
int (*match_fun)(void *, void *, smx_action_t), void *data)
{
xbt_assert(rdv, "No rendez-vous point defined for iprobe");
int (*match_fun)(void *, void *, smx_action_t), void *data)
{
xbt_assert(rdv, "No rendez-vous point defined for iprobe");
- return simcall_BODY_comm_iprobe(rdv, src, tag, match_fun, data);
+ return simcall_BODY_comm_iprobe(rdv, type, src, tag, match_fun, data);