summaryrefslogtreecommitdiff
path: root/sim/sim_object.cc
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2006-05-11 17:24:15 -0400
committerRon Dreslinski <rdreslin@umich.edu>2006-05-11 17:24:15 -0400
commit5cfff7d5bb26a4eee405713b7d17814cdc40ab48 (patch)
tree2f716e13aac19a0cd2a74593aedaf17bc6fb8caa /sim/sim_object.cc
parent80dee53b0430f829e8f9aff1a68c62e113f3ce24 (diff)
downloadgem5-5cfff7d5bb26a4eee405713b7d17814cdc40ab48.tar.xz
First pass at a serializer object, may need to work on naming of object and functions:
Intended Use: A SimObject will call the serializer when it needs the state to be serializable (i.e. switchCPUs, checkpoint, switch memory access model). It will call the requestSeialization() function. The Serializer will signal all the objects in its list to drain their state via the SimObject method drain(). Drain() has a default implementation to just signal done. When each object is drained it will signal the Serializer that it has drained via the signalDrained() function. The Serializer will collect these signals, when all have drained it will signal the initial requestor via serializationComplete() method in the SimObject. Once that object is done, it will signal the Serializer to resumeExecution(). The Serializer will signal all the objects in its list to resume via the resume() method on the SimObject. SConscript: Add serializer object to build list sim/sim_object.cc: Add default behavior for drain (just signal finished, must be overided if you really must drain something) sim/sim_object.hh: Add functions for serializer --HG-- extra : convert_revision : 15aa2d1b42010c2d703bef9114c11d079c216170
Diffstat (limited to 'sim/sim_object.cc')
-rw-r--r--sim/sim_object.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/sim/sim_object.cc b/sim/sim_object.cc
index 151ba68a7..17d58ba4f 100644
--- a/sim/sim_object.cc
+++ b/sim/sim_object.cc
@@ -34,6 +34,7 @@
#include "base/misc.hh"
#include "base/trace.hh"
#include "base/stats/events.hh"
+#include "base/serializer.hh"
#include "sim/configfile.hh"
#include "sim/host.hh"
#include "sim/sim_object.hh"
@@ -248,4 +249,10 @@ SimObject::recordEvent(const std::string &stat)
Stats::recordEvent(stat);
}
+void
+SimObject::drain(Serializer *serializer)
+{
+ serializer->signalDrained();
+}
+
DEFINE_SIM_OBJECT_CLASS_NAME("SimObject", SimObject)