summaryrefslogtreecommitdiff
path: root/sim/sim_object.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2003-12-11 00:16:46 -0800
committerSteve Reinhardt <stever@eecs.umich.edu>2003-12-11 00:16:46 -0800
commit777c1ebfab0318d4b98834b0f2ef48a2de16b8dd (patch)
tree448b7f195d862ca9398e296d1b18e1cae33f49d5 /sim/sim_object.cc
parent7e6dcd812c18060a76d5a73a97e4aa05bcb0d516 (diff)
downloadgem5-777c1ebfab0318d4b98834b0f2ef48a2de16b8dd.tar.xz
Stats & serialization tweaks & cleanup. Unserializing from
a checkpoint now gives identical results to running from scratch and doing at switchover at the same cycle! - CPUs start at cycle 0 again, not cycle 1. - curTick is now serialized & unserialized. - Stats get reset in main (before event loop). Since this is done after curTick is unserialized, simTicks gets set correctly for running from a checkpoint. - Simplify serialization to happen in a single pass. - s/Serializeable/Serializable/ arch/alpha/isa_traits.hh: dev/etherlink.hh: sim/eventq.cc: sim/eventq.hh: s/Serializeable/Serializable/ kern/tru64/tru64_system.cc: sim/process.cc: Make initial CPU activation on cycle 0 again (not 1). sim/main.cc: Reset stats before getting started. Make error message on falling out of event loop more meaningful. sim/serialize.cc: sim/serialize.hh: Get rid of now-useless initial pass; serialization is done in a single pass now. Serialize & unserialize curTick. Wrap curTick and mainEventQueue in a "globals" Serializable object. s/Serializeable/Serializable/ sim/sim_object.cc: Add static function to serialize all SimObjects. sim/sim_object.hh: Add static function to serialize all SimObjects. s/Serializeable/Serializable/ --HG-- extra : convert_revision : 9dcc411d0009b54b8eb61c3a509680b81b9f6f68
Diffstat (limited to 'sim/sim_object.cc')
-rw-r--r--sim/sim_object.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/sim/sim_object.cc b/sim/sim_object.cc
index 90ad78648..364dbe035 100644
--- a/sim/sim_object.cc
+++ b/sim/sim_object.cc
@@ -155,3 +155,19 @@ SimObject::printAllExtraOutput(ostream &os)
obj->printExtraOutput(os);
}
}
+
+//
+// static function: serialize all SimObjects.
+//
+void
+SimObject::serializeAll(ostream &os)
+{
+ SimObjectList::iterator i = simObjectList.begin();
+ SimObjectList::iterator end = simObjectList.end();
+
+ for (; i != end; ++i) {
+ SimObject *obj = *i;
+ obj->nameOut(os);
+ obj->serialize(os);
+ }
+}