diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-20 01:47:28 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-09-20 01:47:29 -0300 |
| commit | 66f2e492c348677ab3050f5e378b9eb4c04c98ce (patch) | |
| tree | cf06b32309eace8eb573925e9cf14e3dfc27bd66 /9proc/README.md | |
| parent | 65209217b5b68f56bc0bd5bc6c4dce33911ded59 (diff) | |
| download | cloud9-66f2e492c348677ab3050f5e378b9eb4c04c98ce.tar.gz cloud9-66f2e492c348677ab3050f5e378b9eb4c04c98ce.zip | |
9proc core becomes a backend of cloud9.fs; engine gains optional features
9proc's own fid table, walk loop and dir-read engine are replaced by
cloud9.fs.Server; the tree (static, vars, providers) is served through the
engine's Req/Reply contract with node ids that keep the old qid scheme.
Providers may answer later by returning error.Again (parked in the engine,
retried each step, Tflush -> EINTR); no new files are exposed.
Engine (backward compatible, all opt-in via Backend.features / Options):
create, remove, wstat, reference accounting for backends that count
handles, a salted fid index, name_capacity 0 (names from getattr),
Reply.ename for backend-chosen error text, Attr.path/version/atime.
Engine-level error strings and the 217-byte msize floor now apply to 9proc;
tests updated accordingly.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to '9proc/README.md')
| -rw-r--r-- | 9proc/README.md | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/9proc/README.md b/9proc/README.md index 0fd3ddb..15177d7 100644 --- a/9proc/README.md +++ b/9proc/README.md @@ -9,7 +9,12 @@ panics. The core (`core`, `vars`) is freestanding: no allocator, no OS, no threads, caller-owned static `Storage`, fixed-capacity tables sized at comptime. It -compiles for `riscv32-freestanding-none`. `scratch` (an in-memory read/write +compiles for `riscv32-freestanding-none`. The tree is a backend of +`cloud9.fs.Server`, the file-server engine every 9P server built on cloud9 +shares: the engine owns fids, walks, permissions and directory cursors; +the core answers its requests from static nodes, exposed variables and +providers, and a provider may answer a read later (`error.Again` parks it +until a later step). `scratch` (an in-memory read/write tree) takes an allocator; `linux` is the platform layer (listeners, a poll loop on one background thread, threads/stacks/registers, memory, breakpoints and panics via `std.debug`). [docs/LIBRARY.md](docs/LIBRARY.md) has the full @@ -19,7 +24,7 @@ contract. 9proc/ build.zig fragment imported by cloud9's root build.zig (steps below) src/root.zig pub const core, vars, scratch, linux; Config, Server(cfg), Provider - src/core.zig Tree/Server engine on cloud9.Server: fids, walks, dir reads, providers + src/core.zig the tree (static nodes, vars, providers) as a backend of cloud9.fs.Server src/vars.zig comptime value renderers (@typeInfo) for /vars src/scratch.zig in-memory read/write tree provider (takes an Allocator) src/freestanding_check.zig root for the riscv32-freestanding-none compile check |
