mango-core 0.2.1

Core Libraries for the mango operationg system.
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
/// Exit code for Qemu
pub enum QemuExitCode
{
  /// Indicate success
  Success,
  /// Indicate failure
  Failed,
}

#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
/// Exit qemu with success or failure.
pub fn exit_qemu(exit_code: QemuExitCode) -> !
{
  use qemu_exit::QEMUExit;
  let qeh = qemu_exit::X86::new(0xf4, 33);

  match exit_code
  {
    QemuExitCode::Success => qeh.exit_success(),
    QemuExitCode::Failed => qeh.exit_failure(),
  }
}

#[cfg(target_arch = "aarch64")]
/// Exit qemu with success or failure.
pub fn exit_qemu(exit_code: QemuExitCode) -> !
{
  use qemu_exit::QEMUExit;
  let qeh = qemu_exit::AArch64::new();

  match exit_code
  {
    QemuExitCode::Success => qeh.exit_success(),
    QemuExitCode::Failed => qeh.exit_failure(),
  }
}