pub trait PageTable: Send + 'static {
// Required methods
fn addr(&self) -> PhysAddr;
fn map(
&mut self,
virt_start: VirtAddr,
phys_start: PhysAddr,
size: usize,
settings: MemConfig,
flush: bool,
) -> Result<(), PagingError>;
fn unmap(
&mut self,
virt_start: VirtAddr,
size: usize,
) -> Result<(), PagingError>;
// Provided method
fn ioremap(
&mut self,
phys_start: PhysAddr,
size: usize,
flush: bool,
) -> Result<IoMemAddr, PagingError> { ... }
}