summaryrefslogtreecommitdiffstats
path: root/src/kernel/exception.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/exception.C')
-rw-r--r--src/kernel/exception.C13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/kernel/exception.C b/src/kernel/exception.C
index 863743f06..6ce01bc96 100644
--- a/src/kernel/exception.C
+++ b/src/kernel/exception.C
@@ -28,6 +28,7 @@
#include <arch/ppc.H>
#include <kernel/vmmmgr.H>
#include <kernel/cpuid.H>
+#include <kernel/intmsghandler.H>
namespace ExceptionHandles
{
@@ -221,6 +222,16 @@ void kernel_execute_machine_check()
"\tSRR0 = %lx, SRR1 = %lx\n"
"\tDSISR = %lx, DAR = %lx\n",
t->tid, getPIR(),
- getSRR0(), getSRR0(), getDSISR(), getDAR());
+ getSRR0(), getSRR1(), getDSISR(), getDAR());
kassert(false);
}
+
+extern "C"
+void kernel_execute_external()
+{
+ // SRR0 set to the effective addr the thread
+ // would have attempted to execute next
+ // SRR1 [33:36,42:47] set to zero
+ // all others copied from MSR
+ InterruptMsgHdlr::handleInterrupt();
+}
OpenPOWER on IntegriCloud