From d0ecdbef0073a5516c9b7ec56d346cf9f1febd14 Mon Sep 17 00:00:00 2001 From: natrixaeria Date: Sat, 9 Nov 2019 01:00:09 +0100 Subject: Create panic screen module with text buffer --- kernel/src/lib.rs | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) (limited to 'kernel/src/lib.rs') diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index 15f027b..623f2bc 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -57,32 +57,8 @@ pub extern "C" fn _start() -> ! { #[panic_handler] #[no_mangle] pub extern "C" fn panic_handler(info: &core::panic::PanicInfo) -> ! { - let mut stderr = OStream::new(); - stderr.set_state(vga_text::CharState::from_colors( - vga_text::Color::LightRed, - vga_text::Color::Red, - )); - stderr.clear(); - stderr.print(b"uff-os"); - stderr.set_row(10); - stderr.set_state(vga_text::CharState::from_colors( - vga_text::Color::White, - vga_text::Color::Red, - )); - stderr.print_centered(b""); - stderr.set_row(14); - stderr.set_state(vga_text::CharState::from_colors( - vga_text::Color::Cyan, - vga_text::Color::Red, - )); - stderr.set_centered(true); - write!( - &mut stderr, - "{:?}", - info.message() - .unwrap_or(&format_args!("no panic information obtainable")) - ); - stderr.set_centered(false); + io::panic_screen::show(info.message()); + if cfg!(test) { write!(serial::SerialStream::new(), "Testing failed\n").unwrap(); qemu::exit_qemu(qemu::QemuExitCode::Failed); -- cgit v1.2.3-54-g00ecf