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: 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.
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.
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>
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)