- MC_process_read_simple(&mc_model_checker->process, &privatisation_regions,
- remote_smpi_privatisation_regions, sizeof(privatisation_regions));
-
- for (size_t i = 0; i < process_count; i++) {
- region->privatized.regions[i] =
- MC_region_new(region_type, start_addr,
- privatisation_regions[i].address, size);
- }
-
- return region;
+ mc_model_checker->process().read_bytes(
+ &privatisation_regions, sizeof(privatisation_regions),
+ remote(remote_smpi_privatisation_regions));
+
+ std::vector<simgrid::mc::RegionSnapshot> data;
+ data.reserve(process_count);
+ for (size_t i = 0; i < process_count; i++)
+ data.push_back(
+ MC_region(region_type, start_addr,
+ privatisation_regions[i].address, size)
+ );
+
+ simgrid::mc::RegionSnapshot region = simgrid::mc::RegionSnapshot(
+ region_type, start_addr, permanent_addr, size);
+ region.privatized_data(std::move(data));
+ return std::move(region);