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

HeapPtrFirstArgWithGuards

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.

VMCtxFirstArgWithGuards

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: usize

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Compare self to key and return true if they are equal.

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.