pub struct AddressSpaceBase { /* private fields */ }
Expand description
Base implementation to manage guest physical address space, without support of region hotplug.
Implementations§
Source§impl 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>
pub fn walk_regions<F>(&self, cb: F) -> 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 AddressSpaceBase
impl Clone for AddressSpaceBase
Source§fn clone(&self) -> AddressSpaceBase
fn clone(&self) -> AddressSpaceBase
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for AddressSpaceBase
impl RefUnwindSafe for AddressSpaceBase
impl Send for AddressSpaceBase
impl Sync for AddressSpaceBase
impl Unpin for AddressSpaceBase
impl UnwindSafe for AddressSpaceBase
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