- // simix_global_p = REMOTE(simix_global);
- smx_global_t simix_global_p;
- this->read_variable("simix_global", &simix_global_p, sizeof(simix_global_p));
-
- // simix_global = REMOTE(*simix_global)
- s_smx_global_t simix_global;
- this->read_bytes(&simix_global, sizeof(simix_global),
- remote(simix_global_p));
-
- MC_process_refresh_simix_process_list(
- this, this->smx_process_infos, simix_global.process_list);
- MC_process_refresh_simix_process_list(
- this, this->smx_old_process_infos, simix_global.process_to_destroy);
-
- this->cache_flags_ |= Process::cache_simix_processes;
-}
-
-}
-}
-
-/** Get the issuer of a simcall (`req->issuer`)
- *
- * In split-process mode, it does the black magic necessary to get an address
- * of a (shallow) copy of the data structure the issuer SIMIX process in the local
- * address space.
- *
- * @param process the MCed process
- * @param req the simcall (copied in the local process)
- */
-smx_process_t MC_smx_simcall_get_issuer(smx_simcall_t req)
-{
- if (mc_mode == MC_MODE_CLIENT)
- return req->issuer;
-
- // This is the address of the smx_process in the MCed process:
- void* address = req->issuer;
+ static_assert(std::is_same<
+ std::unique_ptr<simgrid::simix::Global>,
+ decltype(simix_global)
+ >::value, "Unexpected type for simix_global");
+ static_assert(sizeof(simix_global) == sizeof(simgrid::simix::Global*),
+ "Bad size for simix_global");