pub trait PagingMetaData: Sync + Send + Sized {
    const LEVELS: usize;
    const PA_MAX_BITS: usize;
    const VA_MAX_BITS: usize;
    const PA_MAX_ADDR: usize = _;

    // Provided methods
    fn paddr_is_valid(paddr: usize) -> bool { ... }
    fn vaddr_is_valid(vaddr: usize) -> bool { ... }
}
Expand description

The architecture-dependent metadata that must be provided for PageTable64.

Required Associated Constants§

source

const LEVELS: usize

The number of levels of the hardware page table.

source

const PA_MAX_BITS: usize

The maximum number of bits of physical address.

source

const VA_MAX_BITS: usize

The maximum number of bits of virtual address.

Provided Associated Constants§

source

const PA_MAX_ADDR: usize = _

The maximum physical address.

Provided Methods§

source

fn paddr_is_valid(paddr: usize) -> bool

Whether a given physical address is valid.

source

fn vaddr_is_valid(vaddr: usize) -> bool

Whether a given virtual address is valid.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl PagingMetaData for A64PagingMetaData

Available on AArch64 only.
source§

const LEVELS: usize = 4usize

source§

const PA_MAX_BITS: usize = 48usize

source§

const VA_MAX_BITS: usize = 48usize

source§

impl PagingMetaData for Sv39MetaData

Available on RISC-V RV32 or RISC-V RV64 only.
source§

const LEVELS: usize = 3usize

source§

const PA_MAX_BITS: usize = 56usize

source§

const VA_MAX_BITS: usize = 39usize

source§

impl PagingMetaData for Sv48MetaData

Available on RISC-V RV32 or RISC-V RV64 only.
source§

const LEVELS: usize = 4usize

source§

const PA_MAX_BITS: usize = 56usize

source§

const VA_MAX_BITS: usize = 48usize

source§

impl PagingMetaData for X64PagingMetaData

Available on x86-64 only.
source§

const LEVELS: usize = 4usize

source§

const PA_MAX_BITS: usize = 52usize

source§

const VA_MAX_BITS: usize = 48usize