#[derive(Debug, Clone, Copy, PartialEq, Eq)] #[repr(u32)] pub enum QemuExitCode { Success = 0x10, // The actual exit code is (value << 1) | 1. Failed = 0x11, } pub fn exit_qemu(exit_code: QemuExitCode) { use x86_64::instructions::port::Port; unsafe { let mut port = Port::new(0xf4); port.write(exit_code as u32); } } #[test_case] fn trivial_assertion() { use crate::vga_text::OStream; let mut stdout = OStream::new(); stdout.clear(); stdout.print(b"trivial assertion... "); assert_eq!(0, 1); stdout.print(b"[ok]"); }