pub struct VMOffsets<P> {
pub ptr: P,
pub num_imported_functions: u32,
pub num_imported_tables: u32,
pub num_imported_memories: u32,
pub num_imported_globals: u32,
pub num_defined_tables: u32,
pub num_defined_memories: u32,
pub num_owned_memories: u32,
pub num_defined_globals: u32,
pub num_escaped_funcs: u32,
/* private fields */
}
Expand description
This class computes offsets to fields within VMContext
and other
related structs that JIT code accesses directly.
Fields§
§ptr: P
The size in bytes of a pointer on the target.
num_imported_functions: u32
The number of imported functions in the module.
num_imported_tables: u32
The number of imported tables in the module.
num_imported_memories: u32
The number of imported memories in the module.
num_imported_globals: u32
The number of imported globals in the module.
num_defined_tables: u32
The number of defined tables in the module.
num_defined_memories: u32
The number of defined memories in the module.
num_owned_memories: u32
The number of memories owned by the module instance.
num_defined_globals: u32
The number of defined globals in the module.
num_escaped_funcs: u32
The number of escaped functions in the module, the size of the func_refs array.
Implementations§
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
sourcepub fn new(ptr: P, module: &Module) -> Self
pub fn new(ptr: P, module: &Module) -> Self
Return a new VMOffsets
instance, for a given pointer size.
sourcepub fn pointer_size(&self) -> u8
pub fn pointer_size(&self) -> u8
Returns the size, in bytes, of the target
sourcepub fn region_sizes(&self) -> impl Iterator<Item = (&str, u32)>
pub fn region_sizes(&self) -> impl Iterator<Item = (&str, u32)>
Returns an iterator which provides a human readable description and a
byte size. The iterator returned will iterate over the bytes allocated
to the entire VMOffsets
structure to explain where each byte size is
coming from.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
sourcepub fn vmfunction_import_wasm_call(&self) -> u8
pub fn vmfunction_import_wasm_call(&self) -> u8
The offset of the wasm_call
field.
sourcepub fn vmfunction_import_array_call(&self) -> u8
pub fn vmfunction_import_array_call(&self) -> u8
The offset of the array_call
field.
sourcepub fn vmfunction_import_vmctx(&self) -> u8
pub fn vmfunction_import_vmctx(&self) -> u8
The offset of the vmctx
field.
sourcepub fn size_of_vmfunction_import(&self) -> u8
pub fn size_of_vmfunction_import(&self) -> u8
Return the size of VMFunctionImport
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for *const VMFunctionBody
.
sourcepub fn size_of_vmfunction_body_ptr(&self) -> u8
pub fn size_of_vmfunction_body_ptr(&self) -> u8
The size of the current_elements
field.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMTableImport
.
sourcepub fn vmtable_import_from(&self) -> u8
pub fn vmtable_import_from(&self) -> u8
The offset of the from
field.
sourcepub fn vmtable_import_vmctx(&self) -> u8
pub fn vmtable_import_vmctx(&self) -> u8
The offset of the vmctx
field.
sourcepub fn size_of_vmtable_import(&self) -> u8
pub fn size_of_vmtable_import(&self) -> u8
Return the size of VMTableImport
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMTableDefinition
.
sourcepub fn vmtable_definition_base(&self) -> u8
pub fn vmtable_definition_base(&self) -> u8
The offset of the base
field.
sourcepub fn vmtable_definition_current_elements(&self) -> u8
pub fn vmtable_definition_current_elements(&self) -> u8
The offset of the current_elements
field.
sourcepub fn size_of_vmtable_definition_current_elements(&self) -> u8
pub fn size_of_vmtable_definition_current_elements(&self) -> u8
The size of the current_elements
field.
sourcepub fn size_of_vmtable_definition(&self) -> u8
pub fn size_of_vmtable_definition(&self) -> u8
Return the size of VMTableDefinition
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMMemoryImport
.
sourcepub fn vmmemory_import_from(&self) -> u8
pub fn vmmemory_import_from(&self) -> u8
The offset of the from
field.
sourcepub fn vmmemory_import_vmctx(&self) -> u8
pub fn vmmemory_import_vmctx(&self) -> u8
The offset of the vmctx
field.
sourcepub fn size_of_vmmemory_import(&self) -> u8
pub fn size_of_vmmemory_import(&self) -> u8
Return the size of VMMemoryImport
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMGlobalImport
.
sourcepub fn vmglobal_import_from(&self) -> u8
pub fn vmglobal_import_from(&self) -> u8
The offset of the from
field.
sourcepub fn size_of_vmglobal_import(&self) -> u8
pub fn size_of_vmglobal_import(&self) -> u8
Return the size of VMGlobalImport
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMSharedTypeIndex
.
Return the size of VMSharedTypeIndex
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMContext
.
sourcepub fn vmctx_imported_functions_begin(&self) -> u32
pub fn vmctx_imported_functions_begin(&self) -> u32
The offset of the tables
array.
sourcepub fn vmctx_imported_tables_begin(&self) -> u32
pub fn vmctx_imported_tables_begin(&self) -> u32
The offset of the tables
array.
sourcepub fn vmctx_imported_memories_begin(&self) -> u32
pub fn vmctx_imported_memories_begin(&self) -> u32
The offset of the memories
array.
sourcepub fn vmctx_imported_globals_begin(&self) -> u32
pub fn vmctx_imported_globals_begin(&self) -> u32
The offset of the globals
array.
sourcepub fn vmctx_tables_begin(&self) -> u32
pub fn vmctx_tables_begin(&self) -> u32
The offset of the tables
array.
sourcepub fn vmctx_memories_begin(&self) -> u32
pub fn vmctx_memories_begin(&self) -> u32
The offset of the memories
array.
sourcepub fn vmctx_owned_memories_begin(&self) -> u32
pub fn vmctx_owned_memories_begin(&self) -> u32
The offset of the owned_memories
array.
sourcepub fn vmctx_globals_begin(&self) -> u32
pub fn vmctx_globals_begin(&self) -> u32
The offset of the globals
array.
sourcepub fn vmctx_func_refs_begin(&self) -> u32
pub fn vmctx_func_refs_begin(&self) -> u32
The offset of the func_refs
array.
sourcepub fn size_of_vmctx(&self) -> u32
pub fn size_of_vmctx(&self) -> u32
Return the size of the VMContext
allocation.
sourcepub fn vmctx_vmfunction_import(&self, index: FuncIndex) -> u32
pub fn vmctx_vmfunction_import(&self, index: FuncIndex) -> u32
Return the offset to VMFunctionImport
index index
.
sourcepub fn vmctx_vmtable_import(&self, index: TableIndex) -> u32
pub fn vmctx_vmtable_import(&self, index: TableIndex) -> u32
Return the offset to VMTableImport
index index
.
sourcepub fn vmctx_vmmemory_import(&self, index: MemoryIndex) -> u32
pub fn vmctx_vmmemory_import(&self, index: MemoryIndex) -> u32
Return the offset to VMMemoryImport
index index
.
sourcepub fn vmctx_vmglobal_import(&self, index: GlobalIndex) -> u32
pub fn vmctx_vmglobal_import(&self, index: GlobalIndex) -> u32
Return the offset to VMGlobalImport
index index
.
sourcepub fn vmctx_vmtable_definition(&self, index: DefinedTableIndex) -> u32
pub fn vmctx_vmtable_definition(&self, index: DefinedTableIndex) -> u32
Return the offset to VMTableDefinition
index index
.
sourcepub fn vmctx_vmmemory_pointer(&self, index: DefinedMemoryIndex) -> u32
pub fn vmctx_vmmemory_pointer(&self, index: DefinedMemoryIndex) -> u32
Return the offset to the *mut VMMemoryDefinition
at index index
.
sourcepub fn vmctx_vmmemory_definition(&self, index: OwnedMemoryIndex) -> u32
pub fn vmctx_vmmemory_definition(&self, index: OwnedMemoryIndex) -> u32
Return the offset to the owned VMMemoryDefinition
at index index
.
sourcepub fn vmctx_vmglobal_definition(&self, index: DefinedGlobalIndex) -> u32
pub fn vmctx_vmglobal_definition(&self, index: DefinedGlobalIndex) -> u32
Return the offset to the VMGlobalDefinition
index index
.
sourcepub fn vmctx_func_ref(&self, index: FuncRefIndex) -> u32
pub fn vmctx_func_ref(&self, index: FuncRefIndex) -> u32
Return the offset to the VMFuncRef
for the given function
index (either imported or defined).
sourcepub fn vmctx_vmfunction_import_wasm_call(&self, index: FuncIndex) -> u32
pub fn vmctx_vmfunction_import_wasm_call(&self, index: FuncIndex) -> u32
Return the offset to the wasm_call
field in *const VMFunctionBody
index index
.
sourcepub fn vmctx_vmfunction_import_array_call(&self, index: FuncIndex) -> u32
pub fn vmctx_vmfunction_import_array_call(&self, index: FuncIndex) -> u32
Return the offset to the array_call
field in *const VMFunctionBody
index index
.
sourcepub fn vmctx_vmfunction_import_vmctx(&self, index: FuncIndex) -> u32
pub fn vmctx_vmfunction_import_vmctx(&self, index: FuncIndex) -> u32
Return the offset to the vmctx
field in *const VMFunctionBody
index index
.
sourcepub fn vmctx_vmtable_import_from(&self, index: TableIndex) -> u32
pub fn vmctx_vmtable_import_from(&self, index: TableIndex) -> u32
Return the offset to the from
field in VMTableImport
index index
.
sourcepub fn vmctx_vmtable_definition_base(&self, index: DefinedTableIndex) -> u32
pub fn vmctx_vmtable_definition_base(&self, index: DefinedTableIndex) -> u32
Return the offset to the base
field in VMTableDefinition
index index
.
sourcepub fn vmctx_vmtable_definition_current_elements(
&self,
index: DefinedTableIndex,
) -> u32
pub fn vmctx_vmtable_definition_current_elements( &self, index: DefinedTableIndex, ) -> u32
Return the offset to the current_elements
field in VMTableDefinition
index index
.
sourcepub fn vmctx_vmmemory_import_from(&self, index: MemoryIndex) -> u32
pub fn vmctx_vmmemory_import_from(&self, index: MemoryIndex) -> u32
Return the offset to the from
field in VMMemoryImport
index index
.
sourcepub fn vmctx_vmmemory_import_vmctx(&self, index: MemoryIndex) -> u32
pub fn vmctx_vmmemory_import_vmctx(&self, index: MemoryIndex) -> u32
Return the offset to the vmctx
field in VMMemoryImport
index index
.
sourcepub fn vmctx_vmmemory_definition_base(&self, index: OwnedMemoryIndex) -> u32
pub fn vmctx_vmmemory_definition_base(&self, index: OwnedMemoryIndex) -> u32
Return the offset to the base
field in VMMemoryDefinition
index index
.
sourcepub fn vmctx_vmmemory_definition_current_length(
&self,
index: OwnedMemoryIndex,
) -> u32
pub fn vmctx_vmmemory_definition_current_length( &self, index: OwnedMemoryIndex, ) -> u32
Return the offset to the current_length
field in VMMemoryDefinition
index index
.
sourcepub fn vmctx_vmglobal_import_from(&self, index: GlobalIndex) -> u32
pub fn vmctx_vmglobal_import_from(&self, index: GlobalIndex) -> u32
Return the offset to the from
field in VMGlobalImport
index index
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMDrcHeader
.
Should only be used when the DRC collector is enabled.
sourcepub fn vm_drc_header_ref_count(&self) -> u32
pub fn vm_drc_header_ref_count(&self) -> u32
Return the offset for VMDrcHeader::ref_count
.
source§impl<P: PtrSize> VMOffsets<P>
impl<P: PtrSize> VMOffsets<P>
Offsets for VMGcRefActivationsTable
.
These should only be used when the DRC collector is enabled.
sourcepub fn vm_gc_ref_activation_table_next(&self) -> u32
pub fn vm_gc_ref_activation_table_next(&self) -> u32
Return the offset for VMGcRefActivationsTable::next
.
sourcepub fn vm_gc_ref_activation_table_end(&self) -> u32
pub fn vm_gc_ref_activation_table_end(&self) -> u32
Return the offset for VMGcRefActivationsTable::end
.
Trait Implementations§
source§impl<P: PtrSize> From<VMOffsetsFields<P>> for VMOffsets<P>
impl<P: PtrSize> From<VMOffsetsFields<P>> for VMOffsets<P>
source§fn from(fields: VMOffsetsFields<P>) -> VMOffsets<P>
fn from(fields: VMOffsetsFields<P>) -> VMOffsets<P>
impl<P: Copy> Copy for VMOffsets<P>
Auto Trait Implementations§
impl<P> Freeze for VMOffsets<P>where
P: Freeze,
impl<P> RefUnwindSafe for VMOffsets<P>where
P: RefUnwindSafe,
impl<P> Send for VMOffsets<P>where
P: Send,
impl<P> Sync for VMOffsets<P>where
P: Sync,
impl<P> Unpin for VMOffsets<P>where
P: Unpin,
impl<P> UnwindSafe for VMOffsets<P>where
P: UnwindSafe,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)