Trait unc_vm_vm::Tunables

source ·
pub trait Tunables: Sync {
    // Required methods
    fn memory_style(&self, memory: &MemoryType) -> MemoryStyle;
    fn table_style(&self, table: &TableType) -> TableStyle;
    fn create_host_memory(
        &self,
        ty: &MemoryType,
        style: &MemoryStyle
    ) -> Result<Arc<dyn Memory>, MemoryError>;
    unsafe fn create_vm_memory(
        &self,
        ty: &MemoryType,
        style: &MemoryStyle,
        vm_definition_location: NonNull<VMMemoryDefinition>
    ) -> Result<Arc<dyn Memory>, MemoryError>;
    fn create_host_table(
        &self,
        ty: &TableType,
        style: &TableStyle
    ) -> Result<Arc<dyn Table>, String>;
    unsafe fn create_vm_table(
        &self,
        ty: &TableType,
        style: &TableStyle,
        vm_definition_location: NonNull<VMTableDefinition>
    ) -> Result<Arc<dyn Table>, String>;
    fn stack_limiter_cfg(&self) -> Box<dyn SizeConfig>;
    fn gas_cfg(&self) -> Box<dyn VisitOperator<'_, Output = u64>>;
    fn stack_init_gas_cost(&self, frame_size: u64) -> u64;
}
Expand description

An engine delegates the creation of memories, tables, and globals to a foreign implementor of this trait.

Required Methods§

source

fn memory_style(&self, memory: &MemoryType) -> MemoryStyle

Construct a MemoryStyle for the provided MemoryType

source

fn table_style(&self, table: &TableType) -> TableStyle

Construct a TableStyle for the provided TableType

source

fn create_host_memory( &self, ty: &MemoryType, style: &MemoryStyle ) -> Result<Arc<dyn Memory>, MemoryError>

Create a memory owned by the host given a MemoryType and a MemoryStyle.

source

unsafe fn create_vm_memory( &self, ty: &MemoryType, style: &MemoryStyle, vm_definition_location: NonNull<VMMemoryDefinition> ) -> Result<Arc<dyn Memory>, MemoryError>

Create a memory owned by the VM given a MemoryType and a MemoryStyle.

§Safety
  • vm_definition_location must point to a valid location in VM memory.
source

fn create_host_table( &self, ty: &TableType, style: &TableStyle ) -> Result<Arc<dyn Table>, String>

Create a table owned by the host given a TableType and a TableStyle.

source

unsafe fn create_vm_table( &self, ty: &TableType, style: &TableStyle, vm_definition_location: NonNull<VMTableDefinition> ) -> Result<Arc<dyn Table>, String>

Create a table owned by the VM given a TableType and a TableStyle.

§Safety
  • vm_definition_location must point to a valid location in VM memory.
source

fn stack_limiter_cfg(&self) -> Box<dyn SizeConfig>

Instrumentation configuration: stack limiter config

source

fn gas_cfg(&self) -> Box<dyn VisitOperator<'_, Output = u64>>

Instrumentation configuration: gas accounting config

source

fn stack_init_gas_cost(&self, frame_size: u64) -> u64

Cost for initializing a stack frame

Implementors§