diff options
-rw-r--r-- | src/arch/arm/system.cc | 8 | ||||
-rw-r--r-- | src/arch/arm/system.hh | 7 |
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. */ |