1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Substrate for adaptive primitives.
//!
//! The four core abstractions actually consumed by the IPC stack:
//!
//! - [`HandshakeHeader`] - per-instance generation counter and in-flight tracker.
//! - [`ObservationRing`] - TLS-local ring buffer for op observations.
//! - [`migration`] - dual-stack migration protocol primitives.
//! - [`Marshal`] - type-system contract for "this value can cross an
//! address-space boundary byte-identically." Stricter than `Send`;
//! required by every cross-process primitive in `subetha-cxc` that
//! stores typed values (e.g. `SharedDeque<T>`).
//!
//! Plus the architecture catalog ([`Axis`] / [`AxisMask`]) for direction
//! signatures and the [`cpuid`] helpers for CPU-feature detection.
//!
//! Every adaptive primitive in `subetha-pointers` and `subetha-cxc`
//! carries a `HandshakeHeader` at a known offset.
// subetha-core was historically `no_std`, but the per-thread sequential id
// machinery in [`observation::thread_id`] requires `thread_local!`,
// which is std-only. Every dependent already pulls in std, so the
// no_std attribute was removed to keep the substrate consistent.
pub use ;
pub use ;
pub use HandshakeHeader;
pub use ;
pub use ;
pub use ;