indexbus_abi/layouts/
wake.rs1use crate::{IndexbusAtomicU32, LayoutHeader};
2
3#[repr(C, align(64))]
7pub struct WakeCell {
8 pub seq: IndexbusAtomicU32,
10 pub pad0: u32,
12 pub pad_to_64: [u8; 56],
14}
15
16#[allow(dead_code)]
17const _WAKE_CELL_SIZE_CHECK: [u8; 64] = [0u8; core::mem::size_of::<WakeCell>()];
18
19#[repr(C, align(64))]
21pub struct SharedWakeSection {
22 pub spsc_wake: WakeCell,
24 pub mpsc_wake: WakeCell,
26}
27
28#[allow(dead_code)]
29const _SHARED_WAKE_SECTION_SIZE_CHECK: [u8; 128] = [0u8; core::mem::size_of::<SharedWakeSection>()];
30
31#[repr(C, align(64))]
33pub struct StateWakeSection {
34 pub state_wake: WakeCell,
36}
37
38#[allow(dead_code)]
39const _STATE_WAKE_SECTION_SIZE_CHECK: [u8; 64] = [0u8; core::mem::size_of::<StateWakeSection>()];
40
41#[repr(C, align(64))]
43pub struct FanoutWakeSection<const N: usize> {
44 pub producer_wake: WakeCell,
46 pub consumer_wake: [WakeCell; N],
48}
49
50#[repr(C, align(64))]
52pub struct FanoutWakeSection4 {
53 pub producer_wake: WakeCell,
55 pub consumer_wake: [WakeCell; 4],
57}
58
59#[repr(C, align(64))]
61pub struct SequencerWakeSection<const N: usize> {
62 pub producer_wake: WakeCell,
64 pub consumer_wake: [WakeCell; N],
66}
67
68#[repr(C, align(64))]
70pub struct SequencerWakeSection4 {
71 pub producer_wake: WakeCell,
73 pub consumer_wake: [WakeCell; 4],
75}
76
77#[repr(C, align(64))]
81pub struct JournalWakeSection4 {
82 pub publisher_wake: WakeCell,
84 pub subscriber_wake: [WakeCell; 4],
86}
87
88#[allow(unused_imports)]
90use LayoutHeader as _;