strat9_kernel/async_io/mod.rs
1//! Asynchronous I/O subsystem.
2//!
3//! Provides shared ring buffers (SQ/CQ) for zero-copy I/O submission
4//! and completion between userspace and kernel.
5//!
6//! # Status
7//!
8//! - IMPLEMENTED : ring buffer, dispatch (Nop/VFS/IPC/Storage),
9//! AHCI IRQ => CQE bridge. See GitLab issue for details.
10//!
11//! # TODO
12//!
13//! - `Read`/`Write` VFS: switch from synchronous (blocking scheme::read) to
14//! truly async via the `AsyncScheme` trait
15//! - `Open`/`Close`/`Stat`: implement dispatch handlers
16//! - `IpcCall`: implement combined send+recv
17//! - `PollAdd`/`PollRemove`: epoll-like support
18//! - `Timeout`/`TimeoutRemove`: async timer
19//! - `Accept`/`Connect`: async networking
20//! - `Cancel`: implement actual cancellation of in-flight ops
21//! - Efficient blocking: use `ring.wq.wait_until()` instead of
22//! `yield_task()` in `SYS_ASYNC_ENTER`
23//! - Multi-slot AHCI (queue depth > 1 per port)
24//! - Userspace runtime (`libasync`) + Rust async/await compatibility
25//! - Safety audit (IRQ-safety of SpinLocks, stack overflow)
26//!
27//! Tracking : <https://git.strat9-os.org/strat9-os/strat9-os/-/issues/53>
28
29pub mod complete;
30pub mod dispatch;
31pub mod ops;
32pub mod ring;
33pub mod syscall;