3 unstable releases
Uses new Rust 2024
| 0.2.0 | May 7, 2026 |
|---|---|
| 0.1.1 | Apr 24, 2026 |
| 0.1.0 | Apr 24, 2026 |
#3 in #calling-convention
39KB
1K
SLoC
a9n-abi
ABI definitions for the A9N Microkernel, including kernel call numbers, capability operation types, message register layouts, and low-level calling conventions.
LICENSE
lib.rs:
ABI definitions for the A9N Microkernel user/kernel interface.
This crate defines the low-level calling conventions used to communicate with the A9N Microkernel from user space.
It contains ABI-level constants, operation numbers, message register
layouts, kernel call identifiers, debug call identifiers, and capability
operation definitions. These items describe how values from a9n-types are
encoded into kernel calls and capability calls.
Architecture-specific trap invocation and register manipulation may be implemented in this crate or in architecture-specific modules owned by this crate. Higher-level, Rust-friendly wrappers should be implemented in a separate crate so that this crate remains a precise description of the ABI boundary.
In general:
- shared object/value definitions belong to
a9n-types - operation numbers and call layouts belong to
a9n-abi - safe wrappers and ergonomic APIs belong to higher-level crates
The definitions in this crate are part of the stable contract between user-level components and the kernel. Any change to numeric values, register assignments, bit layouts, or message formats should be treated as an ABI change.
Dependencies
~15KB