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_imported_tags: u32,
pub num_defined_tables: u32,
pub num_defined_memories: u32,
pub num_owned_memories: u32,
pub num_defined_globals: u32,
pub num_defined_tags: 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: PThe size in bytes of a pointer on the target.
num_imported_functions: u32The number of imported functions in the module.
num_imported_tables: u32The number of imported tables in the module.
num_imported_memories: u32The number of imported memories in the module.
num_imported_globals: u32The number of imported globals in the module.
The number of imported tags in the module.
num_defined_tables: u32The number of defined tables in the module.
num_defined_memories: u32The number of defined memories in the module.
num_owned_memories: u32The number of memories owned by the module instance.
num_defined_globals: u32The number of defined globals in the module.
The number of defined tags in the module.
num_escaped_funcs: u32The 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>
Offsets for *const VMFunctionBody.
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>
Offsets for VMTableImport.
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 vmtable_import_index(&self) -> u8
pub fn vmtable_import_index(&self) -> u8
The offset of the index 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>
Offsets for VMTableDefinition.
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>
Offsets for VMMemoryImport.
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 vmmemory_import_index(&self) -> u8
pub fn vmmemory_import_index(&self) -> u8
The offset of the index 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>
Offsets for VMGlobalImport.
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>
Offsets for VMSharedTypeIndex.
impl<P: PtrSize> VMOffsets<P>
Offsets for VMSharedTypeIndex.
Return the size of VMSharedTypeIndex.
Source§impl<P: PtrSize> VMOffsets<P>
Offsets for VMTagImport.
impl<P: PtrSize> VMOffsets<P>
Offsets for VMTagImport.
Sourcepub fn vmtag_import_from(&self) -> u8
pub fn vmtag_import_from(&self) -> u8
The offset of the from field.
Sourcepub fn vmtag_import_vmctx(&self) -> u8
pub fn vmtag_import_vmctx(&self) -> u8
The offset of the vmctx field.
Sourcepub fn vmtag_import_index(&self) -> u8
pub fn vmtag_import_index(&self) -> u8
The offset of the index field.
Sourcepub fn size_of_vmtag_import(&self) -> u8
pub fn size_of_vmtag_import(&self) -> u8
Return the size of VMTagImport.
Source§impl<P: PtrSize> VMOffsets<P>
Offsets for VMContext.
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.
The offset of the tags 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.
The offset of the tags 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 VMTable 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_vmtag_import(&self, index: TagIndex) -> u32
pub fn vmctx_vmtag_import(&self, index: TagIndex) -> u32
Return the offset to VMTagImport 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_vmtag_definition(&self, index: DefinedTagIndex) -> u32
pub fn vmctx_vmtag_definition(&self, index: DefinedTagIndex) -> u32
Return the offset to the VMTagDefinition 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_from(&self, index: TableIndex) -> u32
pub fn vmctx_vmtable_from(&self, index: TableIndex) -> u32
Return the offset to the from field in the imported VMTable at 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_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.
Sourcepub fn vmctx_vmtag_import_from(&self, index: TagIndex) -> u32
pub fn vmctx_vmtag_import_from(&self, index: TagIndex) -> u32
Return the offset to the from field in VMTagImport index index.
Sourcepub fn vmctx_vmtag_import_vmctx(&self, index: TagIndex) -> u32
pub fn vmctx_vmtag_import_vmctx(&self, index: TagIndex) -> u32
Return the offset to the vmctx field in VMTagImport index index.
Sourcepub fn vmctx_vmtag_import_index(&self, index: TagIndex) -> u32
pub fn vmctx_vmtag_import_index(&self, index: TagIndex) -> u32
Return the offset to the index field in VMTagImport index index.
Source§impl<P: PtrSize> VMOffsets<P>
Offsets for VMGcHeader.
impl<P: PtrSize> VMOffsets<P>
Offsets for VMGcHeader.
Sourcepub fn vm_gc_header_kind(&self) -> u32
pub fn vm_gc_header_kind(&self) -> u32
Return the offset for the VMGcHeader::kind field.
Sourcepub fn vm_gc_header_reserved_bits(&self) -> u32
pub fn vm_gc_header_reserved_bits(&self) -> u32
Return the offset for the VMGcHeader’s reserved bits.
Sourcepub fn vm_gc_header_ty(&self) -> u32
pub fn vm_gc_header_ty(&self) -> u32
Return the offset for the VMGcHeader::ty field.
Source§impl<P: PtrSize> VMOffsets<P>
Offsets for VMDrcHeader.
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.
Sourcepub fn vm_drc_header_next_over_approximated_stack_root(&self) -> u32
pub fn vm_drc_header_next_over_approximated_stack_root(&self) -> u32
Return the offset for VMDrcHeader::next_over_approximated_stack_root.