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§
source§impl 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
sourcepub fn prot_flags(
&self,
guest_addr: GuestAddress
) -> Result<i32, AddressSpaceError>
pub fn prot_flags( &self, guest_addr: GuestAddress ) -> Result<i32, AddressSpaceError>
Get protection flags of memory region that guest physical address guest_addr
belongs to.
Arguments
guest_addr
- the guest physical address to inquire
Trait Implementations§
source§impl Clone for AddressSpace
impl Clone for AddressSpace
source§fn clone(&self) -> AddressSpace
fn clone(&self) -> AddressSpace
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more