sbpf-runtime 0.1.9

Lightweight runtime for sBPF programs
Documentation
use sbpf_vm::{
    errors::{SbpfVmError, SbpfVmResult},
    memory::Memory,
};

pub fn abort() -> SbpfVmResult<u64> {
    Err(SbpfVmError::Abort)
}

pub fn sol_panic(registers: [u64; 5], memory: &mut Memory) -> SbpfVmResult<u64> {
    let file_ptr = registers[0];
    let file_len = registers[1];
    let line = registers[2];
    let column = registers[3];
    let file_bytes = memory.read_bytes(file_ptr, file_len as usize)?;
    let file = String::from_utf8_lossy(file_bytes);
    eprintln!("Program panicked at {}:{}:{}", file, line, column);
    Err(SbpfVmError::Abort)
}