Struct dbs_address_space::AddressSpace
source · pub struct AddressSpace { /* private fields */ }Expand description
An address space implementation with region hotplug capability.
The AddressSpace is a wrapper over AddressSpaceBase to support hotplug of
address space regions.
Implementations
sourceimpl AddressSpace
impl AddressSpace
sourcepub fn convert_into_vm_as(
gm: GuestMemoryMmap
) -> GuestMemoryAtomic<GuestMemoryMmap>
pub fn convert_into_vm_as(
gm: GuestMemoryMmap
) -> GuestMemoryAtomic<GuestMemoryMmap>
Convert a GuestMemoryMmap object into GuestMemoryAtomic<GuestMemoryMmap>.
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 AddressSpace 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 AddressSpace
impl Clone for AddressSpace
sourcefn clone(&self) -> AddressSpace
fn clone(&self) -> AddressSpace
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more