Skip to main content

islet_rmm/mm/
page.rs

1use super::page_table::{attr, entry::PTDesc};
2use crate::config::PAGE_SIZE;
3
4use armv9a::bits_in_reg;
5use vmsa::page::PageSize;
6
7/// A 4 KiB page mapped in the L3Table.
8#[derive(Clone, Copy)]
9pub enum BasePageSize {}
10impl PageSize for BasePageSize {
11    const SIZE: usize = PAGE_SIZE;
12    const MAP_TABLE_LEVEL: usize = 3;
13    const MAP_EXTRA_FLAG: u64 = bits_in_reg(PTDesc::TYPE, attr::page_type::TABLE_OR_PAGE)
14        | bits_in_reg(PTDesc::SH, attr::shareable::INNER)
15        | bits_in_reg(PTDesc::VALID, 1)
16        | bits_in_reg(PTDesc::AF, 1);
17}