Trait VeraPortal

pub trait VeraPortal {
Show 16 methods // Required methods fn exit(exit_reason: ExitReason) -> !; fn map_memory( location: MemoryLocation, protections: MemoryProtections, bytes: usize, ) -> Result<*mut u8, MapMemoryError>; fn get_pid() -> usize; fn signal_wait() -> WaitSignal; fn yield_now(); fn recv(handle: u64, buf: &mut [u8]) -> Result<usize, RecvHandleError>; fn send(handle: u64, buf: &[u8]) -> Result<usize, SendHandleError>; fn serve(endpoint: &str) -> Result<u64, ServeHandleError>; fn connect(endpoint: &str) -> Result<u64, ConnectHandleError>; fn close(handle: u64); fn unmap_memory(ptr: *mut u8); fn fixme_cpuio_read_u8(address: u16) -> u8; fn fixme_cpuio_write_u8(address: u16, data: u8); fn fixme_cpuio_read_u16(address: u16) -> u16; fn fixme_cpuio_write_u16(address: u16, data: u16); fn debug_msg(msg: &str) -> Result<(), DebugMsgError>;
}

Required Methods§

fn exit(exit_reason: ExitReason) -> !

fn map_memory( location: MemoryLocation, protections: MemoryProtections, bytes: usize, ) -> Result<*mut u8, MapMemoryError>

Map a memory region into this process’s memory map

This function acts like mmap on common unix systems.

fn get_pid() -> usize

fn signal_wait() -> WaitSignal

fn yield_now()

fn recv(handle: u64, buf: &mut [u8]) -> Result<usize, RecvHandleError>

Receive data from a handle

fn send(handle: u64, buf: &[u8]) -> Result<usize, SendHandleError>

Send data to a handle

fn serve(endpoint: &str) -> Result<u64, ServeHandleError>

fn connect(endpoint: &str) -> Result<u64, ConnectHandleError>

fn close(handle: u64)

Disconnect the handle if one exists

fn unmap_memory(ptr: *mut u8)

Unmap a memory region allocated with [map_memory]

fn fixme_cpuio_read_u8(address: u16) -> u8

fn fixme_cpuio_write_u8(address: u16, data: u8)

fn fixme_cpuio_read_u16(address: u16) -> u16

fn fixme_cpuio_write_u16(address: u16, data: u16)

fn debug_msg(msg: &str) -> Result<(), DebugMsgError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§