pub struct VMOffsets {
pub pointer_size: u8,
pub num_signature_ids: u32,
pub num_imported_functions: u32,
pub num_imported_tables: u32,
pub num_imported_memories: u32,
pub num_imported_globals: u32,
pub num_local_tables: u32,
pub num_local_memories: u32,
pub num_local_globals: u32,
pub has_trap_handlers: bool,
}
Expand description
This class computes offsets to fields within VMContext
and other
related structs that JIT code accesses directly.
Fields§
§pointer_size: u8
The size in bytes of a pointer on the target.
num_signature_ids: u32
The number of signature declarations in the module.
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_local_tables: u32
The number of defined tables in the module.
num_local_memories: u32
The number of defined memories in the module.
num_local_globals: u32
The number of defined globals in the module.
has_trap_handlers: bool
If the module has trap handler.
Implementations§
Source§impl VMOffsets
impl VMOffsets
Sourcepub fn new(pointer_size: u8) -> Self
pub fn new(pointer_size: u8) -> Self
Return a new VMOffsets
instance, for a given pointer size.
The returned VMOffsets
has no entities. Add entities with other builder methods for this
type.
Sourcepub fn for_host() -> Self
pub fn for_host() -> Self
Return a new VMOffsets
instance, for a host’s pointer size.
The returned VMOffsets
has no entities. Add entities with other builder methods for this
type.
Sourcepub fn with_module_info(self, module: &ModuleInfo) -> Self
pub fn with_module_info(self, module: &ModuleInfo) -> Self
Add imports and locals from the provided ModuleInfo.
Sourcepub fn with_archived_module_info(self, module: &Archived<ModuleInfo>) -> Self
pub fn with_archived_module_info(self, module: &Archived<ModuleInfo>) -> Self
Add imports and locals from the provided ModuleInfo.
Source§impl VMOffsets
Offsets for VMFunctionImport
.
impl VMOffsets
Offsets for VMFunctionImport
.
Sourcepub const fn vmfunction_import_body(&self) -> u8
pub const fn vmfunction_import_body(&self) -> u8
The offset of the body
field.
Sourcepub const fn vmfunction_import_vmctx(&self) -> u8
pub const fn vmfunction_import_vmctx(&self) -> u8
The offset of the vmctx
field.
Sourcepub const fn size_of_vmfunction_import(&self) -> u8
pub const fn size_of_vmfunction_import(&self) -> u8
Return the size of VMFunctionImport
.
Source§impl VMOffsets
Offsets for VMDynamicFunctionContext
.
impl VMOffsets
Offsets for VMDynamicFunctionContext
.
Sourcepub const fn vmdynamicfunction_import_context_address(&self) -> u8
pub const fn vmdynamicfunction_import_context_address(&self) -> u8
The offset of the address
field.
Sourcepub const fn vmdynamicfunction_import_context_ctx(&self) -> u8
pub const fn vmdynamicfunction_import_context_ctx(&self) -> u8
The offset of the ctx
field.
Sourcepub const fn size_of_vmdynamicfunction_import_context(&self) -> u8
pub const fn size_of_vmdynamicfunction_import_context(&self) -> u8
Return the size of VMDynamicFunctionContext
.
Source§impl VMOffsets
Offsets for *const VMFunctionBody
.
impl VMOffsets
Offsets for *const VMFunctionBody
.
Sourcepub const fn size_of_vmfunction_body_ptr(&self) -> u8
pub const fn size_of_vmfunction_body_ptr(&self) -> u8
The size of the current_elements
field.
Source§impl VMOffsets
Offsets for VMTableImport
.
impl VMOffsets
Offsets for VMTableImport
.
Sourcepub const fn vmtable_import_definition(&self) -> u8
pub const fn vmtable_import_definition(&self) -> u8
The offset of the definition
field.
Sourcepub const fn vmtable_import_from(&self) -> u8
pub const fn vmtable_import_from(&self) -> u8
The offset of the from
field.
Sourcepub const fn size_of_vmtable_import(&self) -> u8
pub const fn size_of_vmtable_import(&self) -> u8
Return the size of VMTableImport
.
Source§impl VMOffsets
Offsets for VMTableDefinition
.
impl VMOffsets
Offsets for VMTableDefinition
.
Sourcepub const fn vmtable_definition_base(&self) -> u8
pub const fn vmtable_definition_base(&self) -> u8
The offset of the base
field.
Sourcepub const fn vmtable_definition_current_elements(&self) -> u8
pub const fn vmtable_definition_current_elements(&self) -> u8
The offset of the current_elements
field.
Sourcepub const fn size_of_vmtable_definition_current_elements(&self) -> u8
pub const fn size_of_vmtable_definition_current_elements(&self) -> u8
The size of the current_elements
field.
Sourcepub const fn size_of_vmtable_definition(&self) -> u8
pub const fn size_of_vmtable_definition(&self) -> u8
Return the size of VMTableDefinition
.
Source§impl VMOffsets
Offsets for VMMemoryImport
.
impl VMOffsets
Offsets for VMMemoryImport
.
Sourcepub const fn vmmemory_import_definition(&self) -> u8
pub const fn vmmemory_import_definition(&self) -> u8
The offset of the from
field.
Sourcepub const fn vmmemory_import_from(&self) -> u8
pub const fn vmmemory_import_from(&self) -> u8
The offset of the from
field.
Sourcepub const fn size_of_vmmemory_import(&self) -> u8
pub const fn size_of_vmmemory_import(&self) -> u8
Return the size of VMMemoryImport
.
Source§impl VMOffsets
Offsets for VMMemoryDefinition
.
impl VMOffsets
Offsets for VMMemoryDefinition
.
Sourcepub const fn vmmemory_definition_base(&self) -> u8
pub const fn vmmemory_definition_base(&self) -> u8
The offset of the base
field.
Sourcepub const fn vmmemory_definition_current_length(&self) -> u8
pub const fn vmmemory_definition_current_length(&self) -> u8
The offset of the current_length
field.
Sourcepub const fn size_of_vmmemory_definition_current_length(&self) -> u8
pub const fn size_of_vmmemory_definition_current_length(&self) -> u8
The size of the current_length
field.
Sourcepub const fn size_of_vmmemory_definition(&self) -> u8
pub const fn size_of_vmmemory_definition(&self) -> u8
Return the size of VMMemoryDefinition
.
Source§impl VMOffsets
Offsets for VMGlobalImport
.
impl VMOffsets
Offsets for VMGlobalImport
.
Sourcepub const fn vmglobal_import_definition(&self) -> u8
pub const fn vmglobal_import_definition(&self) -> u8
The offset of the definition
field.
Sourcepub const fn vmglobal_import_from(&self) -> u8
pub const fn vmglobal_import_from(&self) -> u8
The offset of the from
field.
Sourcepub const fn size_of_vmglobal_import(&self) -> u8
pub const fn size_of_vmglobal_import(&self) -> u8
Return the size of VMGlobalImport
.
Source§impl VMOffsets
Offsets for a non-null pointer to a VMGlobalDefinition
used as a local global.
impl VMOffsets
Offsets for a non-null pointer to a VMGlobalDefinition
used as a local global.
Sourcepub const fn size_of_vmglobal_local(&self) -> u8
pub const fn size_of_vmglobal_local(&self) -> u8
Return the size of a pointer to a VMGlobalDefinition
;
The underlying global itself is the size of the largest value type (i.e. a V128), however the size of this type is just the size of a pointer.
Source§impl VMOffsets
Offsets for VMSharedSignatureIndex
.
impl VMOffsets
Offsets for VMSharedSignatureIndex
.
Return the size of VMSharedSignatureIndex
.
Source§impl VMOffsets
Offsets for VMCallerCheckedAnyfunc
.
impl VMOffsets
Offsets for VMCallerCheckedAnyfunc
.
Sourcepub const fn vmcaller_checked_anyfunc_func_ptr(&self) -> u8
pub const fn vmcaller_checked_anyfunc_func_ptr(&self) -> u8
The offset of the func_ptr
field.
Sourcepub const fn vmcaller_checked_anyfunc_type_index(&self) -> u8
pub const fn vmcaller_checked_anyfunc_type_index(&self) -> u8
The offset of the type_index
field.
Sourcepub const fn vmcaller_checked_anyfunc_vmctx(&self) -> u8
pub const fn vmcaller_checked_anyfunc_vmctx(&self) -> u8
The offset of the vmctx
field.
Sourcepub const fn size_of_vmcaller_checked_anyfunc(&self) -> u8
pub const fn size_of_vmcaller_checked_anyfunc(&self) -> u8
Return the size of VMCallerCheckedAnyfunc
.
Source§impl VMOffsets
Offsets for VMFuncRef
.
impl VMOffsets
Offsets for VMFuncRef
.
Sourcepub const fn vm_funcref_anyfunc_ptr(&self) -> u8
pub const fn vm_funcref_anyfunc_ptr(&self) -> u8
The offset to the pointer to the anyfunc inside the ref.
Sourcepub const fn size_of_vm_funcref(&self) -> u8
pub const fn size_of_vm_funcref(&self) -> u8
Return the size of VMFuncRef
.
Source§impl VMOffsets
Offsets for VMContext
.
impl VMOffsets
Offsets for VMContext
.
Sourcepub fn vmctx_signature_ids_begin(&self) -> u32
pub fn vmctx_signature_ids_begin(&self) -> u32
The offset of the signature_ids
array.
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_globals_begin(&self) -> u32
pub fn vmctx_globals_begin(&self) -> u32
The offset of the globals
array.
Sourcepub fn vmctx_builtin_functions_begin(&self) -> u32
pub fn vmctx_builtin_functions_begin(&self) -> u32
The offset of the builtin functions array.
Sourcepub fn vmctx_trap_handler_begin(&self) -> u32
pub fn vmctx_trap_handler_begin(&self) -> u32
The offset of the trap handler.
Sourcepub fn vmctx_gas_limiter_pointer(&self) -> u32
pub fn vmctx_gas_limiter_pointer(&self) -> u32
The offset of the gas limiter pointer.
Sourcepub fn vmctx_stack_limit_begin(&self) -> u32
pub fn vmctx_stack_limit_begin(&self) -> u32
The offset of the current stack limit.
Sourcepub fn vmctx_stack_limit_initial_begin(&self) -> u32
pub fn vmctx_stack_limit_initial_begin(&self) -> u32
The offset of the initial stack limit.
Sourcepub fn size_of_vmctx(&self) -> u32
pub fn size_of_vmctx(&self) -> u32
Return the size of the VMContext
allocation.
Return the offset to VMSharedSignatureIndex
index index
.
Sourcepub fn vmctx_vmfunction_import(&self, index: FunctionIndex) -> u32
pub fn vmctx_vmfunction_import(&self, index: FunctionIndex) -> 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: LocalTableIndex) -> u32
pub fn vmctx_vmtable_definition(&self, index: LocalTableIndex) -> u32
Return the offset to VMTableDefinition
index index
.
Sourcepub fn vmctx_vmmemory_definition(&self, index: LocalMemoryIndex) -> u32
pub fn vmctx_vmmemory_definition(&self, index: LocalMemoryIndex) -> u32
Return the offset to VMMemoryDefinition
index index
.
Sourcepub fn vmctx_vmglobal_definition(&self, index: LocalGlobalIndex) -> u32
pub fn vmctx_vmglobal_definition(&self, index: LocalGlobalIndex) -> u32
Return the offset to the VMGlobalDefinition
index index
.
Sourcepub fn vmctx_vmfunction_import_body(&self, index: FunctionIndex) -> u32
pub fn vmctx_vmfunction_import_body(&self, index: FunctionIndex) -> u32
Return the offset to the body
field in *const VMFunctionBody
index index
.
Sourcepub fn vmctx_vmfunction_import_vmctx(&self, index: FunctionIndex) -> u32
pub fn vmctx_vmfunction_import_vmctx(&self, index: FunctionIndex) -> u32
Return the offset to the vmctx
field in *const VMFunctionBody
index index
.
Sourcepub fn vmctx_vmtable_import_definition(&self, index: TableIndex) -> u32
pub fn vmctx_vmtable_import_definition(&self, index: TableIndex) -> u32
Return the offset to the definition
field in VMTableImport
index index
.
Sourcepub fn vmctx_vmtable_definition_base(&self, index: LocalTableIndex) -> u32
pub fn vmctx_vmtable_definition_base(&self, index: LocalTableIndex) -> u32
Return the offset to the base
field in VMTableDefinition
index index
.
Sourcepub fn vmctx_vmtable_definition_current_elements(
&self,
index: LocalTableIndex,
) -> u32
pub fn vmctx_vmtable_definition_current_elements( &self, index: LocalTableIndex, ) -> u32
Return the offset to the current_elements
field in VMTableDefinition
index index
.
Sourcepub fn vmctx_vmmemory_import_definition(&self, index: MemoryIndex) -> u32
pub fn vmctx_vmmemory_import_definition(&self, index: MemoryIndex) -> u32
Return the offset to the from
field in VMMemoryImport
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 vmctx
field in VMMemoryImport
index index
.
Sourcepub fn vmctx_vmmemory_definition_base(&self, index: LocalMemoryIndex) -> u32
pub fn vmctx_vmmemory_definition_base(&self, index: LocalMemoryIndex) -> u32
Return the offset to the base
field in VMMemoryDefinition
index index
.
Sourcepub fn vmctx_vmmemory_definition_current_length(
&self,
index: LocalMemoryIndex,
) -> u32
pub fn vmctx_vmmemory_definition_current_length( &self, index: LocalMemoryIndex, ) -> u32
Return the offset to the current_length
field in VMMemoryDefinition
index index
.
Sourcepub fn vmctx_vmglobal_import_definition(&self, index: GlobalIndex) -> u32
pub fn vmctx_vmglobal_import_definition(&self, index: GlobalIndex) -> u32
Return the offset to the from
field in VMGlobalImport
index index
.
Sourcepub fn vmctx_builtin_function(&self, index: VMBuiltinFunctionIndex) -> u32
pub fn vmctx_builtin_function(&self, index: VMBuiltinFunctionIndex) -> u32
Return the offset to builtin function in VMBuiltinFunctionsArray
index index
.
Sourcepub fn vmctx_trap_handler(&self) -> u32
pub fn vmctx_trap_handler(&self) -> u32
Return the offset to the trap handler.