#![no_std]
#![no_main]
#![feature(used_with_arg)]
#![cfg(target_os = "none")]
#[macro_use]
extern crate log;
#[macro_use]
extern crate alloc;
extern crate ax_std as std;
#[cfg(target_arch = "x86_64")]
extern crate axplat_x86_qemu_q35;
mod hal;
mod logo;
mod shell;
mod task;
mod vmm;
#[unsafe(no_mangle)]
fn main() {
logo::print_logo();
info!("Starting virtualization...");
info!("Hardware support: {:?}", axvm::has_hardware_support());
hal::enable_virtualization();
vmm::init();
vmm::start();
info!("[OK] Default guest initialized");
shell::console_init();
}