diff --git a/kernel/src/qemu.rs b/kernel/src/qemu.rs new file mode 100644 index 0000000..5f9f6b0 --- /dev/null +++ b/kernel/src/qemu.rs @@ -0,0 +1,15 @@ +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[repr(u32)] +pub enum QemuExitCode { + Success = 0x10, + 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); + } +}