Struct dbs_address_space::AddressSpaceBase
source · pub struct AddressSpaceBase { /* private fields */ }Expand description
Base implementation to manage guest physical address space, without support of region hotplug.
Implementations
sourceimpl AddressSpaceBase
impl AddressSpaceBase
sourcepub fn from_regions(
regions: Vec<Arc<AddressSpaceRegion>>,
layout: AddressSpaceLayout
) -> Self
pub fn from_regions(
regions: Vec<Arc<AddressSpaceRegion>>,
layout: AddressSpaceLayout
) -> Self
Create an instance of AddressSpaceBase from an AddressSpaceRegion array.
To achieve better performance by using binary search algorithm, the regions vector
will gotten sorted by guest physical address.
Note, panicking if some regions intersects with each other.
Arguments
regions- prepared regions to managed by the address space instance.layout- prepared address space layout configuration.
sourcepub fn insert_region(
&mut self,
region: Arc<AddressSpaceRegion>
) -> Result<(), AddressSpaceError>
pub fn insert_region(
&mut self,
region: Arc<AddressSpaceRegion>
) -> Result<(), AddressSpaceError>
Insert a new address space region into the address space.
Arguments
region- the new region to be inserted.
sourcepub fn walk_regions<F>(&self, cb: F) -> Result<(), AddressSpaceError>where
F: FnMut(&Arc<AddressSpaceRegion>) -> Result<(), AddressSpaceError>,
pub fn walk_regions<F>(&self, cb: F) -> Result<(), AddressSpaceError>where
F: FnMut(&Arc<AddressSpaceRegion>) -> Result<(), AddressSpaceError>,
Enumerate all regions in the address space.
Arguments
cb- the callback function to apply to each region.
sourcepub fn layout(&self) -> AddressSpaceLayout
pub fn layout(&self) -> AddressSpaceLayout
Get address space layout associated with the address space.
sourcepub fn last_addr(&self) -> GuestAddress
pub fn last_addr(&self) -> GuestAddress
Get maximum of guest physical address in the address space.
sourcepub fn is_dax_region(&self, guest_addr: GuestAddress) -> bool
pub fn is_dax_region(&self, guest_addr: GuestAddress) -> bool
Check whether the guest physical address guest_addr belongs to a DAX memory region.
Arguments
guest_addr- the guest physical address to inquire
Trait Implementations
sourceimpl Clone for AddressSpaceBase
impl Clone for AddressSpaceBase
sourcefn clone(&self) -> AddressSpaceBase
fn clone(&self) -> AddressSpaceBase
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations
impl RefUnwindSafe for AddressSpaceBase
impl Send for AddressSpaceBase
impl Sync for AddressSpaceBase
impl Unpin for AddressSpaceBase
impl UnwindSafe for AddressSpaceBase
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more