vyre_runtime/uring/mod.rs
1//! Linux io_uring scaffolding for NVMe → GPU-visible memory streaming.
2//! All items here are gated on `cfg(target_os = "linux")` and compiled out
3//! on every other platform.
4//!
5//! Public surface:
6//! - `IoUringState` - raw syscall + mmap wrapper for the SQ/CQ rings.
7//! - `GpuMappedBuffer` - typed wrapper around a GPU-visible memory region:
8//! either a registered host-visible mapping or a BAR1 peer-memory allocation.
9//! - `AsyncUringStream` - the submission glue: pushes reads into the SQ and
10//! advances an atomic tail pointer the megakernel observes.
11//! - `NvmeGpuIngestDriver` - publishes completed slots into the megakernel
12//! `io_queue`; `new_gpudirect` requires the native NVMe → BAR1 path.
13
14pub mod driver;
15pub mod gpudirect;
16pub mod io_loop;
17pub mod pump;
18pub mod ring;
19pub mod stream;
20
21pub use driver::{CompletedIngest, NativeReadPath, NvmeGpuIngestDriver, NvmeGpuIngestTelemetry};
22pub use gpudirect::{encode_nvme_read_sqe, GpuDirectCapability, NVME_CMD_READ};
23pub use io_loop::{MegakernelIoLoop, RegisteredIoDestination};
24pub use pump::UringMegakernelPump;
25pub use ring::IoUringState;
26pub use stream::{AsyncUringStream, GpuMappedBuffer, Iovec};