From e9c3d59aae58f8fcf77ce5cf4b985dc9e2a90de2 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Tue, 7 Jul 2015 09:51:04 +0100 Subject: 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. --- src/mem/ruby/system/DMASequencer.cc | 4 ++-- src/mem/ruby/system/RubyPort.cc | 4 ++-- src/mem/ruby/system/Sequencer.cc | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/mem/ruby/system') 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)); } -- cgit v1.2.3