summaryrefslogtreecommitdiff
path: root/src/mem/ruby/system
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2015-07-07 09:51:04 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2015-07-07 09:51:04 +0100
commite9c3d59aae58f8fcf77ce5cf4b985dc9e2a90de2 (patch)
tree799c50d9a0b99f1623a16d9c1d49f4cb0d1fcbaf /src/mem/ruby/system
parent1dc5e63b889647a153f01351f560a3beaa41f293 (diff)
downloadgem5-e9c3d59aae58f8fcf77ce5cf4b985dc9e2a90de2.tar.xz
sim: Make the drain state a global typed enum
The drain state enum is currently a part of the Drainable interface. The same state machine will be used by the DrainManager to identify the global state of the simulator. Make the drain state a global typed enum to better cater for this usage scenario.
Diffstat (limited to 'src/mem/ruby/system')
-rw-r--r--src/mem/ruby/system/DMASequencer.cc4
-rw-r--r--src/mem/ruby/system/RubyPort.cc4
-rw-r--r--src/mem/ruby/system/Sequencer.cc4
3 files changed, 6 insertions, 6 deletions
diff --git a/src/mem/ruby/system/DMASequencer.cc b/src/mem/ruby/system/DMASequencer.cc
index 43ef37f08..b10538024 100644
--- a/src/mem/ruby/system/DMASequencer.cc
+++ b/src/mem/ruby/system/DMASequencer.cc
@@ -192,12 +192,12 @@ DMASequencer::drain(DrainManager *dm)
drainManager = dm;
DPRINTF(Drain, "DMASequencer not drained\n");
- setDrainState(Drainable::Draining);
+ setDrainState(DrainState::Draining);
return child_drain_count + 1;
}
drainManager = NULL;
- setDrainState(Drainable::Drained);
+ setDrainState(DrainState::Drained);
return child_drain_count;
}
diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc
index ec1780c7a..b6aa871b3 100644
--- a/src/mem/ruby/system/RubyPort.cc
+++ b/src/mem/ruby/system/RubyPort.cc
@@ -449,12 +449,12 @@ RubyPort::drain(DrainManager *dm)
drainManager = dm;
DPRINTF(Drain, "RubyPort not drained\n");
- setDrainState(Drainable::Draining);
+ setDrainState(DrainState::Draining);
return child_drain_count + 1;
}
drainManager = NULL;
- setDrainState(Drainable::Drained);
+ setDrainState(DrainState::Drained);
return child_drain_count;
}
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc
index b1d22b549..c33f5f819 100644
--- a/src/mem/ruby/system/Sequencer.cc
+++ b/src/mem/ruby/system/Sequencer.cc
@@ -77,7 +77,7 @@ Sequencer::~Sequencer()
void
Sequencer::wakeup()
{
- assert(getDrainState() != Drainable::Draining);
+ assert(getDrainState() != DrainState::Draining);
// Check for deadlock of any of the requests
Cycles current_time = curCycle();
@@ -215,7 +215,7 @@ Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type)
// See if we should schedule a deadlock check
if (!deadlockCheckEvent.scheduled() &&
- getDrainState() != Drainable::Draining) {
+ getDrainState() != DrainState::Draining) {
schedule(deadlockCheckEvent, clockEdge(m_deadlock_threshold));
}