From a949055bce90c99676e484fb262d97834817f20a Mon Sep 17 00:00:00 2001 From: Drew Galbraith Date: Mon, 29 May 2023 22:01:06 -0700 Subject: [PATCH] Flesh out the GP Fault hanlder slightly. --- zion/interrupt/interrupt.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/zion/interrupt/interrupt.cpp b/zion/interrupt/interrupt.cpp index 87b83ab..76da596 100644 --- a/zion/interrupt/interrupt.cpp +++ b/zion/interrupt/interrupt.cpp @@ -67,7 +67,21 @@ extern "C" void isr_divide_by_zero(); extern "C" void interrupt_divide_by_zero(void* frame) { panic("DIV0"); } extern "C" void isr_protection_fault(); -extern "C" void interrupt_protection_fault(void* frame) { panic("GP"); } +extern "C" void interrupt_protection_fault(InterruptFrame* frame) { + dbgln("General Protection Fault"); + uint64_t err = frame->error_code; + if (err & 0x1) { + dbgln("External Source"); + } + if (err & 0x2) { + dbgln("IDT"); + } else { + dbgln("GDT"); + } + dbgln("Index: %u", err >> 3); + + panic("GP"); +} extern "C" void isr_page_fault(); extern "C" void interrupt_page_fault(InterruptFrame* frame) {