Enum veriwasm::HeapStrategy [−][src]
pub enum HeapStrategy {
HeapPtrFirstArgWithGuards,
VMCtxFirstArgWithGuards {
vmctx_heap_base_ptr_offset: usize,
},
}Expand description
How the Wasm heap is accessed in machine code. This will allow the check to be parameterized to work with different VMs – first Lucet, eventually Wasmtime, perhaps others – that have slightly different VM-context data structure layouts.
Variants
The first argument to functions is a hidden argument that is the heap base. Accesses to the heap are computed relative to this base. The virtual-memory layout has sufficient guard regions that no bounds-checks are necessary as long as only an unsigned 32-bit offset is added to the base.
This corresponds to Lucet’s design.
The first argument to functions is a hidden VM-context struct pointer, and another pointer within this struct points to the Wasm heap. The guard region is assumed to be present as above. The offset to the heap-base pointer within vmctx is configurable.
This corresponds to Wasmtime’s design.
Show fields
Fields of VMCtxFirstArgWithGuards
vmctx_heap_base_ptr_offset: usizeTrait Implementations
This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
Auto Trait Implementations
impl RefUnwindSafe for HeapStrategyimpl Send for HeapStrategyimpl Sync for HeapStrategyimpl Unpin for HeapStrategyimpl UnwindSafe for HeapStrategyBlanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more