Something went wrong. Try again.
Nothing to see here, move along meow
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495use core::panic::PanicInfo;
#[cfg(not(lancer_test))]#[panic_handler]fn panic(info: &PanicInfo) -> ! { x86_64::instructions::interrupts::disable(); { use core::fmt::Write; let mut w = crate::arch::serial::SerialWriter; let formatted = (|| -> Result<(), core::fmt::Error> { w.write_str("\n")?; lancer_log::format::write_gutter( &mut w, "kern", lancer_log::Severity::Error, format_args!("panic"), crate::log::KLOG_GUTTER, )?; w.write_str("\n")?; match info.location() { Some(loc) => { lancer_log::format::write_continuation(&mut w, crate::log::KLOG_GUTTER)?; writeln!( w, "{}{}:{}{}", lancer_log::color::Fg(lancer_log::palette::PURE_WHITE), loc.file(), loc.line(), lancer_log::color::Reset, )?; } None => {} } lancer_log::format::write_continuation(&mut w, crate::log::KLOG_GUTTER)?; writeln!( w, "{}{}{}", lancer_log::color::Fg(lancer_log::palette::ICE_WHITE), info.message(), lancer_log::color::Reset, )?; Ok(()) })(); match formatted { Ok(()) => {} Err(_) => { let _ = writeln!(w, "KERNEL PANIC: {}", info); } } } loop { x86_64::instructions::hlt(); }}
#[cfg(lancer_test)]#[panic_handler]fn panic(info: &PanicInfo) -> ! { use core::fmt::Write; let mut w = crate::arch::serial::SerialWriter; let (num, name) = crate::test_harness::current(); let _ = writeln!(w, "\nnot ok {} - {}", num, name); let _ = lancer_log::format::write_gutter( &mut w, "test", lancer_log::Severity::Error, format_args!("{}", name), crate::log::KLOG_GUTTER, ); let _ = w.write_str("\n"); match info.location() { Some(loc) => { let _ = lancer_log::format::write_continuation(&mut w, crate::log::KLOG_GUTTER); let _ = writeln!( w, "{}{}:{}{}", lancer_log::color::Fg(lancer_log::palette::PURE_WHITE), loc.file(), loc.line(), lancer_log::color::Reset, ); } None => {} } let _ = lancer_log::format::write_continuation(&mut w, crate::log::KLOG_GUTTER); let _ = writeln!( w, "{}{}{}", lancer_log::color::Fg(lancer_log::palette::ICE_WHITE), info.message(), lancer_log::color::Reset, ); crate::qemu::exit(crate::qemu::ExitCode::Failure);}