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

source

pub fn new() -> Self

Construct a new empty instance of Mmap.

source

pub fn with_at_least(size: usize) -> Result<Self>

Create a new Mmap pointing to at least size bytes of page-aligned accessible memory.

source

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.

source

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.

source

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.

source

pub fn as_slice(&self) -> &[u8]

Return the allocated memory as a slice of u8.

source

pub fn as_mut_slice(&mut self) -> &mut [u8]

Return the allocated memory as a mutable slice of u8.

source

pub fn as_ptr(&self) -> *const u8

Return the allocated memory as a pointer to u8.

source

pub fn as_mut_ptr(&self) -> *mut u8

Return the allocated memory as a mutable pointer to u8.

source

pub fn len(&self) -> usize

Return the length of the allocated memory.

source

pub fn is_empty(&self) -> bool

Return whether any memory has been allocated.

source

pub fn is_readonly(&self) -> bool

Returns whether the underlying mapping is readonly, meaning that attempts to write will fault.

source

pub unsafe fn make_writable(&self, range: Range<usize>) -> Result<()>

Makes the specified range within this Mmap to be read/write.

source

pub unsafe fn make_executable(&self, range: Range<usize>) -> Result<()>

Makes the specified range within this Mmap to be read/execute.

source

pub fn original_file(&self) -> Option<&Arc<File>>

Returns the underlying file that this mmap is mapping, if present.

Trait Implementations§

source§

impl Debug for Mmap

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for Mmap

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl RefUnwindSafe for Mmap

§

impl Send for Mmap

§

impl Sync for Mmap

§

impl Unpin for Mmap

§

impl UnwindSafe for Mmap

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V