PhysMapperExt

Trait PhysMapperExt 

Source
pub trait PhysMapperExt: PhysMapper {
    // Provided methods
    fn pml4_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageMapLevel4 { ... }
    fn set_pml4(&self, page: PhysicalPage<Size4K>, pml4: PageMapLevel4) { ... }
    fn zero_pml4(&self, page: PhysicalPage<Size4K>) { ... }
    fn pdpt_mut(
        &self,
        page: PhysicalPage<Size4K>,
    ) -> &mut PageDirectoryPointerTable { ... }
    fn set_pdpt(
        &self,
        page: PhysicalPage<Size4K>,
        pml4: PageDirectoryPointerTable,
    ) { ... }
    fn zero_pdpt(&self, page: PhysicalPage<Size4K>) { ... }
    fn pd_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageDirectory { ... }
    fn set_pd(&self, page: PhysicalPage<Size4K>, pml4: PageDirectory) { ... }
    fn zero_pd(&self, page: PhysicalPage<Size4K>) { ... }
    fn pt_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageTable { ... }
    fn set_pt(&self, page: PhysicalPage<Size4K>, pml4: PageTable) { ... }
    fn zero_pt(&self, page: PhysicalPage<Size4K>) { ... }
}
Expand description

Mapper capable of temporarily viewing physical frames as typed tables.

Provided Methods§

Source

fn pml4_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageMapLevel4

Borrow the PageMapLevel4 (PML4) located in the given 4 KiB physical frame.

§Arguments
  • page - The page parameter identifies the physical frame whose contents are interpreted as a PML4 table. The frame must contain either a valid or zero-initialized PML4.
Source

fn set_pml4(&self, page: PhysicalPage<Size4K>, pml4: PageMapLevel4)

Sets the provided PageMapLevel4 at the specified page.

Source

fn zero_pml4(&self, page: PhysicalPage<Size4K>)

Sets the provided PageMapLevel4 at the specified page.

Source

fn pdpt_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageDirectoryPointerTable

Borrow a PageDirectoryPointerTable (PDPT) located in the given 4 KiB physical frame.

§Arguments
  • page - The page parameter identifies the physical frame whose contents are interpreted as a PDP table. The frame must contain either a valid or zero-initialized PDPT.
Source

fn set_pdpt(&self, page: PhysicalPage<Size4K>, pml4: PageDirectoryPointerTable)

Sets the provided PageDirectoryPointerTable at the specified page.

Source

fn zero_pdpt(&self, page: PhysicalPage<Size4K>)

Sets the provided PageDirectoryPointerTable at the specified page.

Source

fn pd_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageDirectory

Borrow a PageDirectory (PD) located in the given 4 KiB physical frame.

§Arguments
  • page - The page parameter identifies the physical frame whose contents are interpreted as a PD table. The frame must contain either a valid or zero-initialized PD.
Source

fn set_pd(&self, page: PhysicalPage<Size4K>, pml4: PageDirectory)

Sets the provided PageDirectory at the specified page.

Source

fn zero_pd(&self, page: PhysicalPage<Size4K>)

Sets the provided PageDirectory at the specified page.

Source

fn pt_mut(&self, page: PhysicalPage<Size4K>) -> &mut PageTable

Borrow a PageTable (PT) located in the given 4 KiB physical frame.

§Arguments
  • page - The page parameter identifies the physical frame whose contents are interpreted as a PT. The frame must contain either a valid or zero-initialized PT.
Source

fn set_pt(&self, page: PhysicalPage<Size4K>, pml4: PageTable)

Sets the provided PageTable at the specified page.

Source

fn zero_pt(&self, page: PhysicalPage<Size4K>)

Sets the provided PageTable at the specified page.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T> PhysMapperExt for T
where T: PhysMapper,