summaryrefslogtreecommitdiff
path: root/src/arch/arm/system.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm/system.cc')
-rw-r--r--src/arch/arm/system.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/arm/system.cc b/src/arch/arm/system.cc
index 1fe706079..097a87b2b 100644
--- a/src/arch/arm/system.cc
+++ b/src/arch/arm/system.cc
@@ -225,6 +225,23 @@ ArmSystem::highestEL(ThreadContext *tc)
return FullSystem? getArmSystem(tc)->highestEL() : EL1;
}
+bool
+ArmSystem::haveEL(ThreadContext *tc, ExceptionLevel el)
+{
+ switch (el) {
+ case EL0:
+ case EL1:
+ return true;
+ case EL2:
+ return haveVirtualization(tc);
+ case EL3:
+ return haveSecurity(tc);
+ default:
+ warn("Unimplemented Exception Level\n");
+ return false;
+ }
+}
+
Addr
ArmSystem::resetAddr64(ThreadContext *tc)
{