#[repr(C, align(64))]pub struct MessageHeader {Show 19 fields
pub magic: u64,
pub version: u32,
pub flags: u32,
pub message_id: MessageId,
pub correlation_id: CorrelationId,
pub source_kernel: u64,
pub dest_kernel: u64,
pub message_type: u64,
pub priority: u8,
pub _reserved1: [u8; 7],
pub payload_size: u64,
pub checksum: u32,
pub _reserved2: u32,
pub timestamp: HlcTimestamp,
pub deadline: HlcTimestamp,
pub _reserved3a: [u8; 32],
pub _reserved3b: [u8; 32],
pub _reserved3c: [u8; 32],
pub _reserved3d: [u8; 8],
}Expand description
Fixed-size message header (256 bytes, cache-line aligned).
This header precedes the variable-length payload and provides all metadata needed for routing and processing.
Fields§
§magic: u64Magic number for validation (0xRINGKERN).
version: u32Header version for compatibility.
flags: u32Message flags.
message_id: MessageIdUnique message identifier.
correlation_id: CorrelationIdCorrelation ID for request-response.
source_kernel: u64Source kernel ID (0 for host).
dest_kernel: u64Destination kernel ID (0 for host).
message_type: u64Message type discriminator.
priority: u8Priority level.
_reserved1: [u8; 7]Reserved for alignment.
payload_size: u64Payload size in bytes.
checksum: u32Checksum of payload (CRC32).
_reserved2: u32Reserved for alignment.
timestamp: HlcTimestampHLC timestamp when message was created.
deadline: HlcTimestampDeadline timestamp (0 = no deadline).
_reserved3a: [u8; 32]Reserved for future use (split for derive compatibility).
_reserved3b: [u8; 32]Reserved for future use.
_reserved3c: [u8; 32]Reserved for future use.
_reserved3d: [u8; 8]Reserved for future use.
Implementations§
Source§impl MessageHeader
impl MessageHeader
Sourcepub const MAX_PAYLOAD_SIZE: usize = 65_536usize
pub const MAX_PAYLOAD_SIZE: usize = 65_536usize
Maximum payload size (64KB).
Sourcepub fn new(
message_type: u64,
source_kernel: u64,
dest_kernel: u64,
payload_size: usize,
timestamp: HlcTimestamp,
) -> Self
pub fn new( message_type: u64, source_kernel: u64, dest_kernel: u64, payload_size: usize, timestamp: HlcTimestamp, ) -> Self
Create a new message header.
Sourcepub fn with_correlation(self, correlation_id: CorrelationId) -> Self
pub fn with_correlation(self, correlation_id: CorrelationId) -> Self
Set correlation ID.
Sourcepub fn with_priority(self, priority: Priority) -> Self
pub fn with_priority(self, priority: Priority) -> Self
Set priority.
Sourcepub fn with_deadline(self, deadline: HlcTimestamp) -> Self
pub fn with_deadline(self, deadline: HlcTimestamp) -> Self
Set deadline.
Trait Implementations§
Source§impl Clone for MessageHeader
impl Clone for MessageHeader
Source§fn clone(&self) -> MessageHeader
fn clone(&self) -> MessageHeader
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more