VirtualMemoryBackend

Trait VirtualMemoryBackend 

Source
pub trait VirtualMemoryBackend: Send + Sync {
    // Required methods
    fn read_virtual_bytes(
        &self,
        cr3: u64,
        vaddr: u64,
        buffer: &mut [u8],
    ) -> Result<usize, MemoryError>;
    fn write_virtual_bytes(
        &self,
        cr3: u64,
        vaddr: u64,
        buffer: &[u8],
    ) -> Result<usize, MemoryError>;
    fn read_virtual_u64(&self, cr3: u64, vaddr: u64) -> Result<u64, MemoryError>;
    fn write_virtual_u64(
        &self,
        cr3: u64,
        vaddr: u64,
        val: u64,
    ) -> Result<(), MemoryError>;
    fn read_phys_u64(&self, paddr: u64) -> Result<u64, MemoryError>;
    fn write_phys_u64(&self, paddr: u64, val: u64) -> Result<(), MemoryError>;
    fn resolve_vaddr(
        &self,
        cr3: u64,
        vaddr: u64,
    ) -> Result<GuestAddress, MemoryError>;
}

Required Methods§

Source

fn read_virtual_bytes( &self, cr3: u64, vaddr: u64, buffer: &mut [u8], ) -> Result<usize, MemoryError>

Source

fn write_virtual_bytes( &self, cr3: u64, vaddr: u64, buffer: &[u8], ) -> Result<usize, MemoryError>

Source

fn read_virtual_u64(&self, cr3: u64, vaddr: u64) -> Result<u64, MemoryError>

Source

fn write_virtual_u64( &self, cr3: u64, vaddr: u64, val: u64, ) -> Result<(), MemoryError>

Source

fn read_phys_u64(&self, paddr: u64) -> Result<u64, MemoryError>

Source

fn write_phys_u64(&self, paddr: u64, val: u64) -> Result<(), MemoryError>

Source

fn resolve_vaddr( &self, cr3: u64, vaddr: u64, ) -> Result<GuestAddress, MemoryError>

Implementors§