Skip to main content

MmuOps

Trait MmuOps 

Source
pub trait MmuOps {
    // Required methods
    fn map_page(
        &mut self,
        guest: GuestPhysAddr,
        host: PhysAddr,
    ) -> RvmResult<()>;
    fn unmap_page(&mut self, guest: GuestPhysAddr) -> RvmResult<()>;
    fn translate(&self, guest: GuestPhysAddr) -> RvmResult<PhysAddr>;
    fn flush_tlb(
        &mut self,
        guest: GuestPhysAddr,
        page_count: usize,
    ) -> RvmResult<()>;
}
Expand description

Stage-2 MMU operations for guest physical to host physical translation.

Required Methods§

Source

fn map_page(&mut self, guest: GuestPhysAddr, host: PhysAddr) -> RvmResult<()>

Map a guest physical page to a host physical page.

§Errors

Returns an error if the mapping cannot be established.

Source

fn unmap_page(&mut self, guest: GuestPhysAddr) -> RvmResult<()>

Unmap a guest physical page.

§Errors

Returns an error if the page is not currently mapped.

Source

fn translate(&self, guest: GuestPhysAddr) -> RvmResult<PhysAddr>

Translate a guest physical address to a host physical address.

§Errors

Returns an error if the address is not mapped.

Source

fn flush_tlb( &mut self, guest: GuestPhysAddr, page_count: usize, ) -> RvmResult<()>

Flush TLB entries for the given guest address range.

§Errors

Returns an error if the flush operation fails.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§