Struct wasmtime_runtime::Mmap
source · pub struct Mmap { /* private fields */ }
Expand description
A simple struct consisting of a page-aligned pointer to page-aligned and initially-zeroed memory and a length.
Implementations§
source§impl Mmap
impl Mmap
sourcepub fn with_at_least(size: usize) -> Result<Self>
pub fn with_at_least(size: usize) -> Result<Self>
Create a new Mmap
pointing to at least size
bytes of page-aligned accessible memory.
sourcepub fn from_file(path: &Path) -> Result<Self>
pub fn from_file(path: &Path) -> Result<Self>
Creates a new Mmap
by opening the file located at path
and mapping
it into memory.
The memory is mapped in read-only mode for the entire file. If portions
of the file need to be modified then the region
crate can be use to
alter permissions of each page.
The memory mapping and the length of the file within the mapping are returned.
sourcepub fn accessible_reserved(
accessible_size: usize,
mapping_size: usize
) -> Result<Self>
pub fn accessible_reserved( accessible_size: usize, mapping_size: usize ) -> Result<Self>
Create a new Mmap
pointing to accessible_size
bytes of page-aligned accessible memory,
within a reserved mapping of mapping_size
bytes. accessible_size
and mapping_size
must be native page-size multiples.
sourcepub fn make_accessible(&mut self, start: usize, len: usize) -> Result<()>
pub fn make_accessible(&mut self, start: usize, len: usize) -> Result<()>
Make the memory starting at start
and extending for len
bytes accessible.
start
and len
must be native page-size multiples and describe a range within
self
’s reserved memory.
sourcepub fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
pub fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
Return the allocated memory as a mutable slice of u8.
sourcepub fn as_mut_ptr(&self) -> *mut u8
pub fn as_mut_ptr(&self) -> *mut u8
Return the allocated memory as a mutable pointer to u8.
sourcepub fn is_readonly(&self) -> bool
pub fn is_readonly(&self) -> bool
Returns whether the underlying mapping is readonly, meaning that attempts to write will fault.
sourcepub unsafe fn make_writable(&self, range: Range<usize>) -> Result<()>
pub unsafe fn make_writable(&self, range: Range<usize>) -> Result<()>
Makes the specified range
within this Mmap
to be read/write.
sourcepub unsafe fn make_executable(
&self,
range: Range<usize>,
enable_branch_protection: bool
) -> Result<()>
pub unsafe fn make_executable( &self, range: Range<usize>, enable_branch_protection: bool ) -> Result<()>
Makes the specified range
within this Mmap
to be read/execute.
sourcepub fn original_file(&self) -> Option<&Arc<File>>
pub fn original_file(&self) -> Option<&Arc<File>>
Returns the underlying file that this mmap is mapping, if present.