From 81c54647d2ea344cd51818cf0e1712ca30553e86 Mon Sep 17 00:00:00 2001 From: 0x35c Date: Fri, 18 Apr 2025 17:19:56 +0200 Subject: [PATCH] feature: clear registers when kpanic is called --- src/clear_register.s | 14 ++++++++++++++ src/kpanic.c | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 src/clear_register.s diff --git a/src/clear_register.s b/src/clear_register.s new file mode 100644 index 0000000..6e400f8 --- /dev/null +++ b/src/clear_register.s @@ -0,0 +1,14 @@ +.intel_syntax noprefix + +.section .text + .global clear_registers + +clear_registers: + xor eax, eax + xor ebx, ebx + xor ecx, ecx + xor edx, edx + xor esp, esp + xor ebp, ebp + xor esi, esi + xor edi, edi diff --git a/src/kpanic.c b/src/kpanic.c index 930d6a7..05b457a 100644 --- a/src/kpanic.c +++ b/src/kpanic.c @@ -9,6 +9,7 @@ extern uint32_t page_table1[1024]; extern const char *faults[]; +void clear_registers(void); __attribute__((noreturn)) void kpanic(const char *format, ...) { @@ -30,6 +31,7 @@ __attribute__((noreturn)) void kpanic(const char *format, ...) /* print_stack(); */ /* kprintf("\n\n"); */ /* kprintf("PRESS SPACE TO REBOOT"); */ + clear_registers(); while (terminal_getkey().scan_code != KEY_SPACE) ; reboot();