summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/arm/system.cc8
-rw-r--r--src/arch/arm/system.hh7
2 files changed, 15 insertions, 0 deletions
diff --git a/src/arch/arm/system.cc b/src/arch/arm/system.cc
index bf2881026..6add9c065 100644
--- a/src/arch/arm/system.cc
+++ b/src/arch/arm/system.cc
@@ -174,6 +174,14 @@ ArmSystem::initState()
}
}
+ArmSystem *
+ArmSystem::getArmSystem(System *sys)
+{
+ ArmSystem *a_sys = dynamic_cast<ArmSystem *>(sys);
+ assert(a_sys);
+ return a_sys;
+}
+
ArmSystem*
ArmSystem::getArmSystem(ThreadContext *tc)
{
diff --git a/src/arch/arm/system.hh b/src/arch/arm/system.hh
index 46c58e8a1..a9048051e 100644
--- a/src/arch/arm/system.hh
+++ b/src/arch/arm/system.hh
@@ -285,6 +285,13 @@ class ArmSystem : public System
bool haveSemihosting() const { return semihosting != nullptr; }
/**
+ * Casts the provided System object into a valid ArmSystem, it fails
+ * otherwise.
+ * @param sys System object to cast
+ */
+ static ArmSystem *getArmSystem(System *sys);
+
+ /**
* Returns a valid ArmSystem pointer if using ARM ISA, it fails
* otherwise.
*/