actr_framework/guest/vtable.rs
1//! Host callback function table for dynclib guests.
2//!
3//! Dynclib guests use a single business entry point plus a buffer free callback.
4
5/// Host callback function pointer table.
6///
7/// # Safety
8///
9/// - All function pointers remain valid from `actr_init` until process exit.
10/// - The host guarantees serialized entry per guest instance.
11/// - All buffers returned by `invoke` must be released with `free_host_buf`.
12#[repr(C)]
13pub struct HostVTable {
14 /// Invoke a host operation encoded as `AbiFrame`.
15 pub invoke: unsafe extern "C" fn(*const u8, usize, *mut *mut u8, *mut usize) -> i32,
16
17 /// Free a host-allocated buffer returned by `invoke`.
18 pub free_host_buf: unsafe extern "C" fn(*mut u8, usize),
19}