gem5: restore works now

The function restore(PATH) can now be used to restore a checkpoint.

Change-Id: I25faf9f6335261d2b3ade4185eae93983ece9f97
This commit is contained in:
Richard Hellwig
2013-11-13 17:15:19 +01:00
parent 87264af79a
commit 45e0b41022
8 changed files with 127 additions and 50 deletions

View File

@ -512,6 +512,13 @@ Serializable::unserializeGlobals(Checkpoint *cp)
globals.unserialize(cp, globals.name());
}
//DanceOS
void
Serializable::loadStateAll(Checkpoint *cp)
{
SimObject::loadStateAll(cp);
}
void
debug_serialize(const string &cpt_dir)
{

View File

@ -170,6 +170,7 @@ class Serializable
static int ckptPrevCount;
static void serializeAll(const std::string &cpt_dir);
static void unserializeGlobals(Checkpoint *cp);
static void loadStateAll(Checkpoint *cp); //DanceOS
};
//

View File

@ -130,6 +130,21 @@ SimObject::serializeAll(ostream &os)
}
}
//DanceOS
// static function: loadState all SimObjects.
//
void
SimObject::loadStateAll(Checkpoint *cp)
{
SimObjectList::iterator ri = simObjectList.begin();
SimObjectList::iterator rend = simObjectList.end();
for (; ri != rend; ++ri) {
SimObject *obj = *ri;
obj->loadState(cp);
}
}
#ifdef DEBUG
//

View File

@ -139,6 +139,7 @@ class SimObject : public EventManager, public Serializable
// static: call nameOut() & serialize() on all SimObjects
static void serializeAll(std::ostream &);
static void loadStateAll(Checkpoint *cp); //DanceOS
// Methods to drain objects in order to take checkpoints
// Or switch from timing -> atomic memory model