pub struct CodeMemory { /* private fields */ }Expand description
Management of executable memory within a MmapVec
This type consumes ownership of a region of memory and will manage the executable permissions of the contained JIT code as necessary.
Implementations§
Source§impl CodeMemory
impl CodeMemory
Sourcepub fn new(engine: &Engine, mmap: MmapVec) -> Result<Self>
Available on crate feature runtime only.
pub fn new(engine: &Engine, mmap: MmapVec) -> Result<Self>
runtime only.Creates a new CodeMemory by taking ownership of the provided
MmapVec.
The returned CodeMemory manages the internal MmapVec and the
publish method is used to actually make the memory executable.
Sourcepub fn mmap(&self) -> &MmapVec
Available on crate feature runtime only.
pub fn mmap(&self) -> &MmapVec
runtime only.Returns a reference to the underlying MmapVec this memory owns.
Sourcepub fn text(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn text(&self) -> &[u8] ⓘ
runtime only.Returns the contents of the text section of the ELF executable this represents.
Sourcepub fn wasm_dwarf(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn wasm_dwarf(&self) -> &[u8] ⓘ
runtime only.Returns the contents of the ELF_WASMTIME_DWARF section.
Sourcepub fn func_name_data(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn func_name_data(&self) -> &[u8] ⓘ
runtime only.Returns the data in the ELF_NAME_DATA section.
Sourcepub fn wasm_data(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn wasm_data(&self) -> &[u8] ⓘ
runtime only.Returns the concatenated list of all data associated with this wasm module.
This is used for initialization of memories and all data ranges stored
in a Module are relative to the slice returned here.
Sourcepub fn address_map_data(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn address_map_data(&self) -> &[u8] ⓘ
runtime only.Returns the encoded address map section used to pass to
wasmtime_environ::lookup_file_pos.
Sourcepub fn stack_map_data(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn stack_map_data(&self) -> &[u8] ⓘ
runtime only.Returns the encoded stack map section used to pass to
wasmtime_environ::StackMap::lookup.
Sourcepub fn exception_tables(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn exception_tables(&self) -> &[u8] ⓘ
runtime only.Returns the encoded exception-tables section to pass to
wasmtime_unwinder::ExceptionTable::parse.
Sourcepub fn frame_tables(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn frame_tables(&self) -> &[u8] ⓘ
runtime only.Returns the encoded frame-tables section to pass to
wasmtime_environ::FrameTable::parse.
Sourcepub fn wasmtime_info(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn wasmtime_info(&self) -> &[u8] ⓘ
runtime only.Returns the contents of the ELF_WASMTIME_INFO section, or an empty
slice if it wasn’t found.
Sourcepub fn trap_data(&self) -> &[u8] ⓘ
Available on crate feature runtime only.
pub fn trap_data(&self) -> &[u8] ⓘ
runtime only.Returns the contents of the ELF_WASMTIME_TRAPS section, or an empty
slice if it wasn’t found.
Sourcepub fn publish(&mut self) -> Result<()>
Available on crate feature runtime only.
pub fn publish(&mut self) -> Result<()>
runtime only.Publishes the internal ELF image to be ready for execution.
This method can only be called once and will panic if called twice. This
will parse the ELF image from the original MmapVec and do everything
necessary to get it ready for execution, including:
- Change page protections from read/write to read/execute.
- Register unwinding information with the OS
- Register this image with the debugger if native DWARF is present
After this function executes all JIT code should be ready to execute.
Sourcepub fn lookup_trap_code(&self, text_offset: usize) -> Option<Trap>
Available on crate feature runtime only.
pub fn lookup_trap_code(&self, text_offset: usize) -> Option<Trap>
runtime only.Looks up the given offset within this module’s text section and returns the trap code associated with that instruction, if there is one.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CodeMemory
impl !RefUnwindSafe for CodeMemory
impl Send for CodeMemory
impl Sync for CodeMemory
impl Unpin for CodeMemory
impl !UnwindSafe for CodeMemory
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more