smx_action_t comm = SIMIX_comm_isend(simcall->issuer, rdv, task_size, rate,
src_buff, src_buff_size, match_fun, NULL,
data, 0);
- simcall->mc_value = 0;
+ SIMCALL_SET_MC_VALUE(simcall, 0);
SIMIX_pre_comm_wait(simcall, comm, timeout);
}
smx_action_t SIMIX_pre_comm_isend(smx_simcall_t simcall, smx_rdv_t rdv,
{
smx_action_t comm = SIMIX_comm_irecv(simcall->issuer, rdv, dst_buff,
dst_buff_size, match_fun, data, rate);
- simcall->mc_value = 0;
+ SIMCALL_SET_MC_VALUE(simcall, 0);
SIMIX_pre_comm_wait(simcall, comm, timeout);
}
simcall->issuer->waiting_action = action;
if (MC_is_active()) {
- int idx = simcall->mc_value;
+ int idx = SIMCALL_GET_MC_VALUE(simcall);
if (idx == 0) {
action->state = SIMIX_DONE;
} else {
simcall_comm_testany__set__result(simcall, -1);
if (MC_is_active()){
- int idx = simcall->mc_value;
+ int idx = SIMCALL_GET_MC_VALUE(simcall);
if(idx == -1){
SIMIX_simcall_answer(simcall);
}else{
unsigned int cursor = 0;
if (MC_is_active()){
- int idx = simcall->mc_value;
+ int idx = SIMCALL_GET_MC_VALUE(simcall);
action = xbt_dynar_get_as(actions, idx, smx_action_t);
xbt_fifo_push(action->simcalls, simcall);
simcall_comm_waitany__set__result(simcall, idx);
void SIMIX_simcall_pre(smx_simcall_t simcall, int value)
{
XBT_DEBUG("Handling simcall %p: %s", simcall, SIMIX_simcall_name(simcall->call));
- simcall->mc_value = value;
+ SIMCALL_SET_MC_VALUE(simcall, value);
if (simcall->issuer->context->iwannadie && simcall->call != SIMCALL_PROCESS_CLEANUP)
return;
switch (simcall->call) {
typedef struct s_smx_simcall {
e_smx_simcall_t call;
smx_process_t issuer;
+#ifdef HAVE_MC
int mc_value;
+#endif
union u_smx_scalar args[10];
union u_smx_scalar result;
//FIXME: union u_smx_scalar retval;
};
} s_smx_simcall_t, *smx_simcall_t;
+#if HAVE_MC
+#define SIMCALL_SET_MC_VALUE(simcall, value) ((simcall)->mc_value = (value))
+#define SIMCALL_GET_MC_VALUE(simcall) ((simcall)->mc_value)
+#else
+#define SIMCALL_SET_MC_VALUE(simcall, value) ((void)0)
+#define SIMCALL_GET_MC_VALUE(simcall) 0
+#endif
+
#include "simcalls_generated_res_getter_setter.h"
#include "simcalls_generated_args_getter_setter.h"