summaryrefslogtreecommitdiff
path: root/src/pardes.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/pardes.zig')
-rw-r--r--src/pardes.zig17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/pardes.zig b/src/pardes.zig
index 111e2853..4fdb6c71 100644
--- a/src/pardes.zig
+++ b/src/pardes.zig
@@ -5638,6 +5638,23 @@ pub const Options = struct {
/// browser) has no filesystem at all — but the option rides here because
/// argv already reaches the shells this way, like `nested`.
fs: ?[]const u8 = null,
+ /// SERVE THAT SAME TREE OVER 9P2000 on a unix socket (`--fs9`), and under
+ /// what name. `null` is off; `""` means "derive the socket name" (the
+ /// session name in a daemon, this pid anywhere else); anything else is the
+ /// name `--fs9=<name>` gave, which scripts need because they have to
+ /// predict `$XDG_RUNTIME_DIR/pardes-9p-<name>.sock`.
+ ///
+ /// INDEPENDENT of `fs` above: either, both or neither. They are two
+ /// transports onto one tree (`src/acmefs.zig`) and neither is the other's
+ /// prerequisite — on Linux the FUSE mount needs `fusermount3` and a
+ /// kernel with FUSE, and this needs neither, which is the whole reason
+ /// docs/9p.typ §12.4 calls them complementary rather than competing.
+ ///
+ /// Read by `detached/server.zig` and nowhere else so far: a daemon polls
+ /// its own listener in the one `poll(2)` it already runs, which costs it
+ /// no thread. The tty and GUI shells would each need their own wake for
+ /// it, exactly as they need one for `/dev/fuse`, and they take `fs` only.
+ fs9: ?[]const u8 = null,
/// Native launcher's resolved per-user `pardes` directory. Relative
/// ThemeFile operands and DumpThemes are rooted here. Null for web and
/// direct core callers which did not opt into per-user configuration.