use crate::{PageTable64, PagingMetaData};
use page_table_entry::riscv::Rv64PTE;
#[derive(Clone, Copy)]
pub struct Sv39MetaData;
#[derive(Clone, Copy)]
pub struct Sv48MetaData;
impl const PagingMetaData for Sv39MetaData {
const LEVELS: usize = 3;
const PA_MAX_BITS: usize = 56;
const VA_MAX_BITS: usize = 39;
}
impl const PagingMetaData for Sv48MetaData {
const LEVELS: usize = 4;
const PA_MAX_BITS: usize = 56;
const VA_MAX_BITS: usize = 48;
}
pub type Sv39PageTable<I> = PageTable64<Sv39MetaData, Rv64PTE, I>;
pub type Sv48PageTable<I> = PageTable64<Sv48MetaData, Rv64PTE, I>;