#[repr(C, align(64))]pub struct SharedFanoutLayout<const N: usize> {
pub header: LayoutHeader,
pub initialized: IndexbusAtomicU32,
pub pad0: u32,
pub pad_to_64: [u8; 40],
pub slot_pool: SlotPoolLayout,
pub producer_queue: IndexQueue,
pub producer_queue_mpsc: MpscQueue,
pub router_rr: IndexbusAtomicU32,
pub pad_router_rr: u32,
pub consumer_queues: [IndexQueue; N],
}Expand description
Fanout events region base layout (generic over consumer count).
Note: C header generation typically uses a concrete N (see SharedFanoutLayout4).
Fields§
§header: LayoutHeaderCommon region header (magic/version/capabilities/layout size).
initialized: IndexbusAtomicU320 = uninitialized, 1 = initializing, 2 = initialized
pad0: u32Padding (reserved).
pad_to_64: [u8; 40]Pad to 64 so SlotPoolLayout (align 64) starts at offset 64.
slot_pool: SlotPoolLayoutSlot pool backing all queues.
producer_queue: IndexQueueSPSC producer queue of slot indices.
producer_queue_mpsc: MpscQueueMPSC producer queue of slot indices.
router_rr: IndexbusAtomicU32Router round-robin cursor used by work-queue routing.
pad_router_rr: u32Padding (reserved).
consumer_queues: [IndexQueue; N]Per-consumer SPSC queues.
Implementations§
Sourcepub const REQUIRED_CAPS: u32
pub const REQUIRED_CAPS: u32
Capabilities required for this region to be considered compatible.
Auto Trait Implementations§
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