A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git]
/
src
/
mc
/
mc_snapshot.cpp
diff --git
a/src/mc/mc_snapshot.cpp
b/src/mc/mc_snapshot.cpp
index
6698e92
..
fdcae06
100644
(file)
--- a/
src/mc/mc_snapshot.cpp
+++ b/
src/mc/mc_snapshot.cpp
@@
-171,12
+171,12
@@
Snapshot::~Snapshot()
const void* Snapshot::read_bytes(void* buffer, std::size_t size,
remote_ptr<void> address, int process_index,
const void* Snapshot::read_bytes(void* buffer, std::size_t size,
remote_ptr<void> address, int process_index,
-
AddressSpace::ReadMode mode
) const
+
ReadOptions options
) const
{
mc_mem_region_t region = mc_get_snapshot_region((void*)address.address(), this, process_index);
if (region) {
const void* res = MC_region_read(region, buffer, (void*)address.address(), size);
{
mc_mem_region_t region = mc_get_snapshot_region((void*)address.address(), this, process_index);
if (region) {
const void* res = MC_region_read(region, buffer, (void*)address.address(), size);
- if (buffer == res ||
mode == AddressSpace::Lazy
)
+ if (buffer == res ||
options & ReadOptions::lazy()
)
return res;
else {
memcpy(buffer, res, size);
return res;
else {
memcpy(buffer, res, size);
@@
-185,12
+185,14
@@
const void* Snapshot::read_bytes(void* buffer, std::size_t size,
}
else
return this->process()->read_bytes(
}
else
return this->process()->read_bytes(
- buffer, size, address, process_index,
mode
);
+ buffer, size, address, process_index,
options
);
}
}
}
}
}
}
+}
+
#ifdef SIMGRID_TEST
#include <string.h>
#ifdef SIMGRID_TEST
#include <string.h>
@@
-198,11
+200,9
@@
const void* Snapshot::read_bytes(void* buffer, std::size_t size,
#include <sys/mman.h>
#include <sys/mman.h>
-#include "mc/mc_private.h"
-#include "mc/mc_snapshot.h"
-#include "mc/mc_mmu.h"
-
-extern "C" {
+#include "src/mc/mc_private.h"
+#include "src/mc/mc_snapshot.h"
+#include "src/mc/mc_mmu.h"
XBT_TEST_SUITE("mc_snapshot", "Snapshots");
XBT_TEST_SUITE("mc_snapshot", "Snapshots");
@@
-232,7
+232,10
@@
static void test_snapshot(bool sparse_checkpoint) {
_sg_mc_sparse_checkpoint = sparse_checkpoint;
xbt_assert(xbt_pagesize == getpagesize());
xbt_assert(1 << xbt_pagebits == xbt_pagesize);
_sg_mc_sparse_checkpoint = sparse_checkpoint;
xbt_assert(xbt_pagesize == getpagesize());
xbt_assert(1 << xbt_pagebits == xbt_pagesize);
- mc_model_checker = new ::simgrid::mc::ModelChecker(getpid(), -1);
+
+ std::unique_ptr<simgrid::mc::Process> process(new simgrid::mc::Process(getpid(), -1));
+ process->init();
+ mc_model_checker = new ::simgrid::mc::ModelChecker(std::move(process));
for(int n=1; n!=256; ++n) {
for(int n=1; n!=256; ++n) {
@@
-297,8
+300,5
@@
static void test_snapshot(bool sparse_checkpoint) {
mc_model_checker = NULL;
}
mc_model_checker = NULL;
}
-}
-
#endif /* SIMGRID_TEST */
#endif /* SIMGRID_TEST */
-}