summaryrefslogtreecommitdiff
path: root/src/panic.c
blob: 3b39aeb43d5d4c994fc20371625b2551ff0bfa7f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "aplos.h"

void
panic(void)
{
	struct cpu_regs r;
	dump_regs(&r);

	print(u8"--- PANIC ---\n");
	print(u8"rax: %p rbx: %p rcx: %p rdx: %p\n", r.rax, r.rbx, r.rcx, r.rdx);
	print(u8"rsi: %p rdi: %p rsp: %p rbp: %p\n", r.rsi, r.rdi, r.rsp, r.rbp);
	print(u8"r8:  %p r9:  %p r10: %p r11: %p\n", r.r9, r.r9, r.r10, r.r11);
	print(u8"r12: %p r13: %p r14: %p r15: %p\n", r.r12, r.r13, r.r14, r.r15);
	print(u8"rip: %p cr0: %p cr2: %p cr3: %p\n", r.rip, r.cr0, r.cr2, r.cr3);
	print(u8"cr4: %p cr8: %p cs:  %p ds:  %p\n", r.cr4, r.cr8, r.cs, r.ds);
	print(u8"ss:  %p es:  %p fs:  %p gs:  %p\n", r.ss, r.es, r.fs, r.gs);
	print(u8"rflags: %p\n", r.rflags);
	halt();
}