pub struct VmAreaStruct {
pub loader: Arc<dyn MmLoader>,
}Expand description
Represents a memory-mapped region within a process’s virtual address space,
corresponding to the Linux kernel’s struct vm_area_struct.
Each VmAreaStruct corresponds to a contiguous region with a specific
mapping behavior—e.g., anonymous memory or file-backed memory.
This abstraction allows the pager to defer the actual page population
until the memory is accessed, using demand paging.
The key component is the MmLoader, which defines how to load
the contents of a page when it is accessed (e.g., reading from a file
or zero-filling the page).
Fields§
§loader: Arc<dyn MmLoader>A handle to the memory loader for this region.
The MmLoader defines how to populate pages in this VMA during
lazy loading. The loader must be thread-safe and cloneable.
Trait Implementations§
Source§impl Clone for VmAreaStruct
impl Clone for VmAreaStruct
Source§fn clone(&self) -> VmAreaStruct
fn clone(&self) -> VmAreaStruct
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for VmAreaStruct
impl !RefUnwindSafe for VmAreaStruct
impl Send for VmAreaStruct
impl Sync for VmAreaStruct
impl Unpin for VmAreaStruct
impl !UnwindSafe for VmAreaStruct
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)