sim: Remove SimObject dependency from Drainable

Remove this circular dependency by casting to Named
instead of SimObject.

Change-Id: Ia064f7ab1a693586b6bd0045f431512ca3c78801
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/43004
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
This commit is contained in:
Daniel R. Carvalho
2021-02-12 17:33:55 -03:00
committed by Daniel Carvalho
parent a906e04cb7
commit a1a71a128d

View File

@@ -40,10 +40,10 @@
#include <algorithm>
#include "base/logging.hh"
#include "base/named.hh"
#include "base/trace.hh"
#include "debug/Drain.hh"
#include "sim/sim_exit.hh"
#include "sim/sim_object.hh"
DrainManager DrainManager::_instance;
@@ -71,7 +71,7 @@ DrainManager::tryDrain()
for (auto *obj : _allDrainable) {
DrainState status = obj->dmDrain();
if (Debug::Drain && status != DrainState::Drained) {
SimObject *temp = dynamic_cast<SimObject*>(obj);
Named *temp = dynamic_cast<Named*>(obj);
if (temp)
DPRINTF(Drain, "Failed to drain %s\n", temp->name());
}