Expand description
Control block state helpers for GPU-compatible kernel state.
This module provides utilities for storing kernel state either:
- Embedded in ControlBlock’s 24-byte
_reservedfield (zero-copy) - External in separate GPU memory with a pointer in the descriptor
§Example
ⓘ
use ringkernel_core::prelude::*;
#[derive(Default, Clone, Copy)]
#[repr(C, align(8))]
struct OrderBookState {
best_bid: u64,
best_ask: u64,
order_count: u32,
_pad: u32,
} // 24 bytes - fits in ControlBlock._reserved
impl EmbeddedState for OrderBookState {}
// Write state to control block
let mut block = ControlBlock::new();
let state = OrderBookState { best_bid: 100, best_ask: 101, order_count: 42, _pad: 0 };
ControlBlockStateHelper::write_embedded(&mut block, &state)?;
// Read state from control block
let restored: OrderBookState = ControlBlockStateHelper::read_embedded(&block)?;Structs§
- Control
Block State Helper - Helper for reading/writing state to/from ControlBlock.
- State
Descriptor - Descriptor stored in
_reservedwhen using external state. - State
Snapshot - Snapshot of kernel state for checkpointing.
Constants§
- CONTROL_
BLOCK_ STATE_ SIZE - Size of the reserved field in ControlBlock available for state storage.
- STATE_
DESCRIPTOR_ MAGIC - Magic number for state descriptor (“STAT” in little-endian).
Traits§
- Embedded
State - Trait for state types that can be embedded directly in ControlBlock.
- Embedded
State Size - Marker trait to verify state fits in 24 bytes at compile time.
- GpuState
- Trait for GPU-compatible state types that may be stored externally.