summaryrefslogtreecommitdiff
path: root/src/arch/arm/faults.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm/faults.hh')
-rw-r--r--src/arch/arm/faults.hh14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/arch/arm/faults.hh b/src/arch/arm/faults.hh
index 90a730507..64940dd26 100644
--- a/src/arch/arm/faults.hh
+++ b/src/arch/arm/faults.hh
@@ -125,7 +125,19 @@ class UndefinedInstruction : public ArmFault<UndefinedInstruction>
#endif
};
-class SupervisorCall : public ArmFault<SupervisorCall> {};
+class SupervisorCall : public ArmFault<SupervisorCall>
+{
+#if !FULL_SYSTEM
+ protected:
+ ExtMachInst machInst;
+
+ public:
+ SupervisorCall(ExtMachInst _machInst) : machInst(_machInst)
+ {}
+
+ void invoke(ThreadContext *tc);
+#endif
+};
class PrefetchAbort : public ArmFault<PrefetchAbort> {};
class DataAbort : public ArmFault<DataAbort> {};
class Interrupt : public ArmFault<Interrupt> {};