#![no_std]
#![feature(const_trait_impl)]
#[macro_use]
extern crate log;
extern crate alloc;
mod addr;
mod address_space;
pub mod device;
mod frame;
mod hal;
mod memory_accessor;
mod npt;
pub use addr::*;
pub use address_space::*;
use ax_errno::AxError;
use ax_memory_set::MappingError;
pub use frame::PhysFrame;
pub use hal::AxMmHal;
pub use memory_accessor::GuestMemoryAccessor;
#[derive(Debug)]
pub struct NestedPageFaultInfo {
pub access_flags: MappingFlags,
pub fault_guest_paddr: GuestPhysAddr,
}
fn mapping_err_to_ax_err(err: MappingError) -> AxError {
warn!("Mapping error: {err:?}");
match err {
MappingError::InvalidParam => AxError::InvalidInput,
MappingError::AlreadyExists => AxError::AlreadyExists,
MappingError::BadState => AxError::BadState,
}
}