pub enum GuestRegionHybrid<B = ()> {
Mmap(GuestRegionMmap<B>),
Raw(GuestRegionRaw<B>),
}Expand description
An adapter for different concrete implementations of GuestMemoryRegion.
Variants§
Mmap(GuestRegionMmap<B>)
Region of type GuestRegionMmap.
Raw(GuestRegionRaw<B>)
Region of type GuestRegionRaw.
Implementations§
Source§impl<B: Bitmap> GuestRegionHybrid<B>
impl<B: Bitmap> GuestRegionHybrid<B>
Sourcepub fn from_mmap_region(region: GuestRegionMmap<B>) -> Self
pub fn from_mmap_region(region: GuestRegionMmap<B>) -> Self
Create a GuestRegionHybrid object from GuestRegionMmap object.
Sourcepub fn from_raw_region(region: GuestRegionRaw<B>) -> Self
pub fn from_raw_region(region: GuestRegionRaw<B>) -> Self
Create a GuestRegionHybrid object from GuestRegionRaw object.
Trait Implementations§
Source§impl<B: Bitmap> Bytes<MemoryRegionAddress> for GuestRegionHybrid<B>
impl<B: Bitmap> Bytes<MemoryRegionAddress> for GuestRegionHybrid<B>
Source§fn write(&self, buf: &[u8], addr: MemoryRegionAddress) -> Result<usize>
fn write(&self, buf: &[u8], addr: MemoryRegionAddress) -> Result<usize>
Writes a slice into the container at
addr. Read moreSource§fn read(&self, buf: &mut [u8], addr: MemoryRegionAddress) -> Result<usize>
fn read(&self, buf: &mut [u8], addr: MemoryRegionAddress) -> Result<usize>
Reads data from the container at
addr into a slice. Read moreSource§fn write_slice(&self, buf: &[u8], addr: MemoryRegionAddress) -> Result<()>
fn write_slice(&self, buf: &[u8], addr: MemoryRegionAddress) -> Result<()>
Writes the entire content of a slice into the container at
addr. Read moreSource§fn read_slice(&self, buf: &mut [u8], addr: MemoryRegionAddress) -> Result<()>
fn read_slice(&self, buf: &mut [u8], addr: MemoryRegionAddress) -> Result<()>
Reads data from the container at
addr to fill an entire slice. Read moreSource§fn read_from<F>(
&self,
addr: MemoryRegionAddress,
src: &mut F,
count: usize,
) -> Result<usize>where
F: Read,
fn read_from<F>(
&self,
addr: MemoryRegionAddress,
src: &mut F,
count: usize,
) -> Result<usize>where
F: Read,
Source§fn read_exact_from<F>(
&self,
addr: MemoryRegionAddress,
src: &mut F,
count: usize,
) -> Result<()>where
F: Read,
fn read_exact_from<F>(
&self,
addr: MemoryRegionAddress,
src: &mut F,
count: usize,
) -> Result<()>where
F: Read,
Source§fn write_to<F>(
&self,
addr: MemoryRegionAddress,
dst: &mut F,
count: usize,
) -> Result<usize>where
F: Write,
fn write_to<F>(
&self,
addr: MemoryRegionAddress,
dst: &mut F,
count: usize,
) -> Result<usize>where
F: Write,
Source§fn write_all_to<F>(
&self,
addr: MemoryRegionAddress,
dst: &mut F,
count: usize,
) -> Result<()>where
F: Write,
fn write_all_to<F>(
&self,
addr: MemoryRegionAddress,
dst: &mut F,
count: usize,
) -> Result<()>where
F: Write,
Source§fn store<T: AtomicAccess>(
&self,
val: T,
addr: MemoryRegionAddress,
order: Ordering,
) -> Result<()>
fn store<T: AtomicAccess>( &self, val: T, addr: MemoryRegionAddress, order: Ordering, ) -> Result<()>
Atomically store a value at the specified address.
Source§fn load<T: AtomicAccess>(
&self,
addr: MemoryRegionAddress,
order: Ordering,
) -> Result<T>
fn load<T: AtomicAccess>( &self, addr: MemoryRegionAddress, order: Ordering, ) -> Result<T>
Atomically load a value from the specified address.
Source§impl<B: Debug> Debug for GuestRegionHybrid<B>
impl<B: Debug> Debug for GuestRegionHybrid<B>
Source§impl<'a, B: 'a> GuestMemoryIterator<'a, GuestRegionHybrid<B>> for GuestMemoryHybrid<B>
impl<'a, B: 'a> GuestMemoryIterator<'a, GuestRegionHybrid<B>> for GuestMemoryHybrid<B>
Source§impl<B: Bitmap> GuestMemoryRegion for GuestRegionHybrid<B>
impl<B: Bitmap> GuestMemoryRegion for GuestRegionHybrid<B>
Source§fn len(&self) -> GuestUsize
fn len(&self) -> GuestUsize
Returns the size of the region.
Source§fn start_addr(&self) -> GuestAddress
fn start_addr(&self) -> GuestAddress
Returns the minimum (inclusive) address managed by the region.
Source§fn get_host_address(&self, addr: MemoryRegionAddress) -> Result<*mut u8>
fn get_host_address(&self, addr: MemoryRegionAddress) -> Result<*mut u8>
Returns the host virtual address corresponding to the region address. Read more
Source§fn file_offset(&self) -> Option<&FileOffset>
fn file_offset(&self) -> Option<&FileOffset>
Returns information regarding the file and offset backing this memory region.
Source§unsafe fn as_slice(&self) -> Option<&[u8]>
unsafe fn as_slice(&self) -> Option<&[u8]>
Returns a slice corresponding to the data in the region. Read more
Source§unsafe fn as_mut_slice(&self) -> Option<&mut [u8]>
unsafe fn as_mut_slice(&self) -> Option<&mut [u8]>
Returns a mutable slice corresponding to the data in the region. Read more
Source§fn get_slice(
&self,
offset: MemoryRegionAddress,
count: usize,
) -> Result<VolatileSlice<'_, BS<'_, B>>>
fn get_slice( &self, offset: MemoryRegionAddress, count: usize, ) -> Result<VolatileSlice<'_, BS<'_, B>>>
Source§fn is_hugetlbfs(&self) -> Option<bool>
fn is_hugetlbfs(&self) -> Option<bool>
Show if the region is based on the
HugeTLBFS.
Returns Some(true) if the region is backed by hugetlbfs.
None represents that no information is available. Read moreSource§fn last_addr(&self) -> GuestAddress
fn last_addr(&self) -> GuestAddress
Returns the maximum (inclusive) address managed by the region.
Source§fn check_address(
&self,
addr: MemoryRegionAddress,
) -> Option<MemoryRegionAddress>
fn check_address( &self, addr: MemoryRegionAddress, ) -> Option<MemoryRegionAddress>
Returns the given address if it is within this region.
Source§fn address_in_range(&self, addr: MemoryRegionAddress) -> bool
fn address_in_range(&self, addr: MemoryRegionAddress) -> bool
Returns
true if the given address is within this region.Source§fn checked_offset(
&self,
base: MemoryRegionAddress,
offset: usize,
) -> Option<MemoryRegionAddress>
fn checked_offset( &self, base: MemoryRegionAddress, offset: usize, ) -> Option<MemoryRegionAddress>
Returns the address plus the offset if it is in this region.
Source§fn to_region_addr(&self, addr: GuestAddress) -> Option<MemoryRegionAddress>
fn to_region_addr(&self, addr: GuestAddress) -> Option<MemoryRegionAddress>
Tries to convert an absolute address to a relative address within this region. Read more
Source§fn as_volatile_slice(
&self,
) -> Result<VolatileSlice<'_, <Self::B as WithBitmapSlice<'_>>::S>, Error>
fn as_volatile_slice( &self, ) -> Result<VolatileSlice<'_, <Self::B as WithBitmapSlice<'_>>::S>, Error>
Gets a slice of memory for the entire region that supports volatile access. Read more
Auto Trait Implementations§
impl<B> Freeze for GuestRegionHybrid<B>where
B: Freeze,
impl<B> RefUnwindSafe for GuestRegionHybrid<B>where
B: RefUnwindSafe,
impl<B = ()> !Send for GuestRegionHybrid<B>
impl<B = ()> !Sync for GuestRegionHybrid<B>
impl<B> Unpin for GuestRegionHybrid<B>where
B: Unpin,
impl<B> UnwindSafe for GuestRegionHybrid<B>where
B: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more