summaryrefslogtreecommitdiff
path: root/src/dev/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/alpha')
-rw-r--r--src/dev/alpha/tsunami_io.cc11
-rw-r--r--src/dev/alpha/tsunami_io.hh6
2 files changed, 17 insertions, 0 deletions
diff --git a/src/dev/alpha/tsunami_io.cc b/src/dev/alpha/tsunami_io.cc
index c90f06b5a..1a76c2c32 100644
--- a/src/dev/alpha/tsunami_io.cc
+++ b/src/dev/alpha/tsunami_io.cc
@@ -249,6 +249,17 @@ TsunamiIO::clearPIC(uint8_t bitvector)
}
}
+unsigned int
+TsunamiIO::drain(Event *de)
+{
+ unsigned int count = 0;
+ count += pitimer.drain(de);
+ count += rtc.drain(de);
+ assert(count == 0);
+ changeState(SimObject::Drained);
+ return count;
+}
+
void
TsunamiIO::serialize(ostream &os)
{
diff --git a/src/dev/alpha/tsunami_io.hh b/src/dev/alpha/tsunami_io.hh
index b6d63322b..f649247e2 100644
--- a/src/dev/alpha/tsunami_io.hh
+++ b/src/dev/alpha/tsunami_io.hh
@@ -141,6 +141,12 @@ class TsunamiIO : public BasicPioDevice
void clearPIC(uint8_t bitvector);
/**
+ * Drain the io state including all associated events.
+ * @param drainEvent
+ */
+ unsigned int drain(Event *de);
+
+ /**
* Serialize this object to the given output stream.
* @param os The stream to serialize to.
*/