summaryrefslogtreecommitdiff
path: root/9proc/README.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-20 01:47:28 -0300
committerGabriel Schneider <[email protected]>2026-09-20 01:47:29 -0300
commit66f2e492c348677ab3050f5e378b9eb4c04c98ce (patch)
treecf06b32309eace8eb573925e9cf14e3dfc27bd66 /9proc/README.md
parent65209217b5b68f56bc0bd5bc6c4dce33911ded59 (diff)
downloadcloud9-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.md9
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