void* unw_underlying_context;
};
-// TODO, remove this
-#define MC_PROCESS_FOREACH(xs, cursor, p) \
- if (! xs.empty()) \
- for (auto __it = (cursor = 0, p = &*xs.begin(), xs.begin()); \
- __it != xs.end(); ++__it, ++cursor, p = &*__it)
-
/** Open a FD to a remote process memory (`/dev/$pid/mem`)
*/
XBT_PRIVATE int open_vm(pid_t pid, int flags);
return;
}
- unsigned i;
- mc_smx_process_info_t pi = nullptr;
-
- MC_PROCESS_FOREACH(mc_model_checker->process().smx_process_infos, i, pi) {
- if (req == &pi->copy.simcall) {
+ for (auto& pi : mc_model_checker->process().smx_process_infos)
+ if (req == &pi.copy.simcall) {
mc_model_checker->simcall_handle(
- mc_model_checker->process(), pi->copy.pid, value);
+ mc_model_checker->process(), pi.copy.pid, value);
return;
}
- }
xbt_die("Could not find the request");
#endif
// This is the address of the smx_process in the MCed process:
void* address = req->issuer;
- unsigned i;
- mc_smx_process_info_t p;
-
// Lookup by address:
- MC_PROCESS_FOREACH(mc_model_checker->process().smx_process_infos, i, p)
- if (p->address == address)
- return &p->copy;
- MC_PROCESS_FOREACH(mc_model_checker->process().smx_old_process_infos, i, p)
- if (p->address == address)
- return &p->copy;
+ for (auto& p : mc_model_checker->process().smx_process_infos)
+ if (p.address == address)
+ return &p.copy;
+ for (auto& p : mc_model_checker->process().smx_old_process_infos)
+ if (p.address == address)
+ return &p.copy;
xbt_die("Issuer not found");
}
{
if (mc_mode == MC_MODE_CLIENT)
xbt_die("No process_info for local process is not enabled.");
-
- unsigned index;
- mc_smx_process_info_t process_info;
- MC_PROCESS_FOREACH(mc_model_checker->process().smx_process_infos, index, process_info)
- if (process_info->address == process_remote_address)
- return process_info;
- MC_PROCESS_FOREACH(mc_model_checker->process().smx_old_process_infos, index, process_info)
- if (process_info->address == process_remote_address)
- return process_info;
+ for (auto& process_info : mc_model_checker->process().smx_process_infos)
+ if (process_info.address == process_remote_address)
+ return &process_info;
+ for (auto& process_info : mc_model_checker->process().smx_old_process_infos)
+ if (process_info.address == process_remote_address)
+ return &process_info;
xbt_die("Process info not found");
}