#[repr(C)]pub struct StateKernelCtxFields {
pub arena_resolution_cb: extern "C" fn(handle: SimHandle, net: SlotId),
pub vc_side_channel: *mut c_void,
}Expand description
ST-131: this struct names only the fields STATE owns. The full
KernelCtx a compiled kernel actually receives (current sim time, the
rest of the suspend/resume contract) is jointly defined by ENGINE/CODEGEN
and is out of this crate’s scope — it is not redefined here. This is
a documented sub-shape other tracks’ real KernelCtx embeds (by value or
by reference), never a claim that STATE owns or defines the whole thing.
arena_resolution_cb: the resolution-callback vtable slot ARCHITECTURE §6.2 / state.md §3 name as jointly owned — the entry point a compiled kernel calls to resolve a net read through STATE’s own multi-driver resolution (driver::resolve_net_step), rather than reading a slot directly. Its exact wiring to a real elaborated net is out of this wave’s scope (see the plan’s Deferred section,NetKindgap); this field only names the calling-convention slot, not a live implementation of it.vc_side_channel: an opaque pointer to this crate’s speculative-buffer append point (Task 8’s [VcState]) — the mechanism a compiled kernel’s write path reaches to append aVcRecord, without STATE handing the kernel anything more specific than an opaque handle it round-trips back through STATE’s own accessor ABI.
#[repr(C)]: this struct’s fields are the exact bytes a compiled-kernel
calling convention embeds, so its layout must be FFI-stable — no field
reordering/padding a Rust-only #[repr(Rust)] struct would otherwise be
free to apply.
Fields§
§arena_resolution_cb: extern "C" fn(handle: SimHandle, net: SlotId)§vc_side_channel: *mut c_voidAuto Trait Implementations§
impl !Send for StateKernelCtxFields
impl !Sync for StateKernelCtxFields
impl Freeze for StateKernelCtxFields
impl RefUnwindSafe for StateKernelCtxFields
impl Unpin for StateKernelCtxFields
impl UnsafeUnpin for StateKernelCtxFields
impl UnwindSafe for StateKernelCtxFields
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more