Skip to main content

Vm

Trait Vm 

Source
pub trait Vm {
Show 20 methods // Required methods fn get_register(&self, reg: usize) -> u64; fn set_register(&mut self, reg: usize, value: u64); fn get_pc(&self) -> usize; fn set_pc(&mut self, pc: usize); fn read_u8(&self, addr: u64) -> ExecutionResult<u8>; fn read_u16(&self, addr: u64) -> ExecutionResult<u16>; fn read_u32(&self, addr: u64) -> ExecutionResult<u32>; fn read_u64(&self, addr: u64) -> ExecutionResult<u64>; fn write_u8(&mut self, addr: u64, value: u8) -> ExecutionResult<()>; fn write_u16(&mut self, addr: u64, value: u16) -> ExecutionResult<()>; fn write_u32(&mut self, addr: u64, value: u32) -> ExecutionResult<()>; fn write_u64(&mut self, addr: u64, value: u64) -> ExecutionResult<()>; fn get_call_depth(&self) -> usize; fn max_call_depth(&self) -> usize; fn push_frame( &mut self, return_pc: usize, saved_registers: [u64; 4], saved_frame_pointer: u64, ) -> ExecutionResult<()>; fn pop_frame(&mut self) -> Option<(usize, [u64; 4], u64)>; fn halt(&mut self, exit_code: u64); fn get_stack_frame_size(&self) -> u64; fn handle_syscall(&mut self, name: &str) -> ExecutionResult<u64>; // Provided method fn advance_pc(&mut self) { ... }
}

Required Methods§

Source

fn get_register(&self, reg: usize) -> u64

Source

fn set_register(&mut self, reg: usize, value: u64)

Source

fn get_pc(&self) -> usize

Source

fn set_pc(&mut self, pc: usize)

Source

fn read_u8(&self, addr: u64) -> ExecutionResult<u8>

Source

fn read_u16(&self, addr: u64) -> ExecutionResult<u16>

Source

fn read_u32(&self, addr: u64) -> ExecutionResult<u32>

Source

fn read_u64(&self, addr: u64) -> ExecutionResult<u64>

Source

fn write_u8(&mut self, addr: u64, value: u8) -> ExecutionResult<()>

Source

fn write_u16(&mut self, addr: u64, value: u16) -> ExecutionResult<()>

Source

fn write_u32(&mut self, addr: u64, value: u32) -> ExecutionResult<()>

Source

fn write_u64(&mut self, addr: u64, value: u64) -> ExecutionResult<()>

Source

fn get_call_depth(&self) -> usize

Source

fn max_call_depth(&self) -> usize

Source

fn push_frame( &mut self, return_pc: usize, saved_registers: [u64; 4], saved_frame_pointer: u64, ) -> ExecutionResult<()>

Source

fn pop_frame(&mut self) -> Option<(usize, [u64; 4], u64)>

Source

fn halt(&mut self, exit_code: u64)

Source

fn get_stack_frame_size(&self) -> u64

Source

fn handle_syscall(&mut self, name: &str) -> ExecutionResult<u64>

Provided Methods§

Source

fn advance_pc(&mut self)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§