#[repr(C, align(64))]pub struct EventsChainLayout<const Q: usize> {
pub header: LayoutHeader,
pub initialized: IndexbusAtomicU32,
pub _pad0: u32,
pub _pad_to_64: [u8; 40],
pub slot_pool: SlotPoolLayout,
pub queues: [IndexQueue; Q],
pub mpsc_queues: [MpscQueue; Q],
}Expand description
Shared-memory layout that enables slot passing across a chain of queues.
Conceptually:
- one slot pool (payload bytes)
Qindependent SPSC queues that carry slot indicesQindependent MPSC queues that carry slot indices
When adjacent stages are connected by queues within the same chain mapping, the executor can forward slot indices without copying payload bytes.
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 the first 64-byte-aligned section starts at offset 64.
slot_pool: SlotPoolLayoutShared slot pool for payload bytes.
queues: [IndexQueue; Q]Per-edge SPSC queues of slot indices.
mpsc_queues: [MpscQueue; Q]Per-edge MPSC queues of slot indices.
Implementations§
Source§impl<const Q: usize> EventsChainLayout<Q>
impl<const Q: usize> EventsChainLayout<Q>
Sourcepub const REQUIRED_CAPS: u32
pub const REQUIRED_CAPS: u32
Capabilities required for this region to be considered compatible.
Sourcepub const REGION_KIND: u16 = flags::BYTEOR_REGION_KIND_EVENTS_CHAIN
pub const REGION_KIND: u16 = flags::BYTEOR_REGION_KIND_EVENTS_CHAIN
Region kind discriminator stored in LayoutHeader.flags.
Sourcepub const REGION_KIND_MASK: u16 = ib_flags::INDEXBUS_FLAGS_REGION_KIND_MASK
pub const REGION_KIND_MASK: u16 = ib_flags::INDEXBUS_FLAGS_REGION_KIND_MASK
Mask for the low 8 bits containing the region kind discriminator.
Auto Trait Implementations§
impl<const Q: usize> !Freeze for EventsChainLayout<Q>
impl<const Q: usize> !RefUnwindSafe for EventsChainLayout<Q>
impl<const Q: usize> Send for EventsChainLayout<Q>
impl<const Q: usize> Sync for EventsChainLayout<Q>
impl<const Q: usize> Unpin for EventsChainLayout<Q>
impl<const Q: usize> UnwindSafe for EventsChainLayout<Q>
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