Trait Backend

Source
pub trait Backend: Memory + HasVcpus {
    // Provided methods
    fn read_virtual_memory(
        &self,
        mmu_addr: PhysicalAddress,
        addr: VirtualAddress,
        buf: &mut [u8],
    ) -> TranslationResult<()> { ... }
    fn read_value_virtual<T: Pod>(
        &self,
        mmu_addr: PhysicalAddress,
        addr: VirtualAddress,
    ) -> TranslationResult<T>
       where Self: Sized { ... }
    fn virtual_to_physical(
        &self,
        mmu_addr: PhysicalAddress,
        addr: VirtualAddress,
    ) -> TranslationResult<PhysicalAddress> { ... }
    fn find_kernel_pgd(
        &self,
        use_per_cpu: bool,
        additional: &[VirtualAddress],
    ) -> VmResult<PhysicalAddress> { ... }
    fn find_in_kernel_memory(
        &self,
        mmu_addr: PhysicalAddress,
        needle: &[u8],
    ) -> MemoryAccessResult<Option<VirtualAddress>> { ... }
    fn iter_in_kernel_memory<'a, 'b>(
        &'a self,
        mmu_addr: PhysicalAddress,
        needle: &'b [u8],
    ) -> KernelSearchIterator<'a, 'b, Self> 
       where Self: Sized { ... }
}

Provided Methods§

Source

fn read_virtual_memory( &self, mmu_addr: PhysicalAddress, addr: VirtualAddress, buf: &mut [u8], ) -> TranslationResult<()>

Source

fn read_value_virtual<T: Pod>( &self, mmu_addr: PhysicalAddress, addr: VirtualAddress, ) -> TranslationResult<T>
where Self: Sized,

Source

fn virtual_to_physical( &self, mmu_addr: PhysicalAddress, addr: VirtualAddress, ) -> TranslationResult<PhysicalAddress>

Source

fn find_kernel_pgd( &self, use_per_cpu: bool, additional: &[VirtualAddress], ) -> VmResult<PhysicalAddress>

Source

fn find_in_kernel_memory( &self, mmu_addr: PhysicalAddress, needle: &[u8], ) -> MemoryAccessResult<Option<VirtualAddress>>

Source

fn iter_in_kernel_memory<'a, 'b>( &'a self, mmu_addr: PhysicalAddress, needle: &'b [u8], ) -> KernelSearchIterator<'a, 'b, Self>
where Self: Sized,

Implementations on Foreign Types§

Source§

impl<B: Backend + ?Sized> Backend for Arc<B>

Implementors§