diff --git a/src/arch/arm/system.cc b/src/arch/arm/system.cc index bf2881026f..6add9c065c 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(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 46c58e8a16..a9048051ea 100644 --- a/src/arch/arm/system.hh +++ b/src/arch/arm/system.hh @@ -284,6 +284,13 @@ class ArmSystem : public System /** Is Arm Semihosting support enabled? */ 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.