Register dump on panic
This commit is contained in:
parent
0e8fb17f3a
commit
b04ee13185
|
@ -1,17 +1,19 @@
|
|||
use embedded_graphics::pixelcolor::Rgb888;
|
||||
|
||||
use crate::{arch::x86_64::graphics::DISPLAY, bootmodules::BootModule};
|
||||
|
||||
use {
|
||||
crate::{arch::x86_64::graphics::DISPLAY, bootmodules::BootModule},
|
||||
core::arch::asm,
|
||||
};
|
||||
pub mod memory;
|
||||
|
||||
mod cpuid;
|
||||
mod device_info_collector;
|
||||
mod gdt;
|
||||
pub mod graphics;
|
||||
pub(crate) mod interrupts;
|
||||
pub mod logging;
|
||||
pub mod pci;
|
||||
pub mod virtio;
|
||||
mod device_info_collector;
|
||||
|
||||
pub use {logging::log, memory::PAGE_SIZE};
|
||||
|
||||
|
@ -192,3 +194,71 @@ pub fn hardware_random_u64() -> u64 {
|
|||
}
|
||||
|
||||
pub fn get_edid() {}
|
||||
|
||||
pub fn register_dump() {
|
||||
let rax: u64;
|
||||
let rbx: u64 = 0;
|
||||
let rcx: u64;
|
||||
let rdx: u64;
|
||||
let si: u64;
|
||||
let di: u64;
|
||||
|
||||
let r8: u64; // TODO: r8-r15
|
||||
let r9: u64;
|
||||
let r10: u64;
|
||||
let r11: u64;
|
||||
let r12: u64;
|
||||
let r13: u64;
|
||||
let r14: u64;
|
||||
let r15: u64;
|
||||
|
||||
unsafe {
|
||||
asm!("",
|
||||
out("rax") rax,
|
||||
out("rcx") rcx,
|
||||
out("rdx") rdx,
|
||||
out("si") si,
|
||||
out("di") di,
|
||||
out("r8") r8,
|
||||
out("r9") r9,
|
||||
out("r10") r10,
|
||||
out("r11") r11,
|
||||
out("r12") r12,
|
||||
out("r13") r13,
|
||||
out("r14") r14,
|
||||
out("r15") r15,
|
||||
)
|
||||
};
|
||||
|
||||
log::error!(
|
||||
"Kernel Panic!\r
|
||||
Register Dump\r
|
||||
rax: {:#x}\r
|
||||
rbx: {:#x}\r
|
||||
rcx: {:#x}\r
|
||||
rdx: {:#x}\r
|
||||
si : {:#x}\r
|
||||
di : {:#x}\r
|
||||
r8 : {:#x}\r
|
||||
r9 : {:#x}\r
|
||||
r11: {:#x}\r
|
||||
r12: {:#x}\r
|
||||
r13: {:#x}\r
|
||||
r14: {:#x}\r
|
||||
r15: {:#x}\r
|
||||
",
|
||||
rax,
|
||||
rbx,
|
||||
rcx,
|
||||
rdx,
|
||||
si,
|
||||
di,
|
||||
r8,
|
||||
r9,
|
||||
r11,
|
||||
r12,
|
||||
r13,
|
||||
r14,
|
||||
r15,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue