volume-manager: content signature + the filesystems.csv map (S2)

partition.Volume gains a FilesystemKind signature (today .fat for every probed
volume; S4 adds a real VBR recognizer for exFAT) — the seam filesystems.csv keys
on to choose a service binary. New filesystem-map.zig parses
`/system/configuration/filesystems.csv` (signature, binary) into rules and
match()es a signature to its binary, mirroring the device registry: a signature
no row matches goes unserved, never guessed; slices point into the source
buffer. Three host tests (fat->binary, the binary is data-driven not hardcoded,
malformed rows counted); the test rule buffer is a named fixture size so the
bounds gate stays quiet. The VM's build gains the csv dependency and wires the
filesystem-map test into its package test step. Not yet consumed by the binary —
that lands when the VM loads the tables (step 4).
This commit is contained in:
Daniel Samson
2026-08-09 23:50:15 +01:00
parent ea8ccf65d0
commit 3fb8a9b96f
4 changed files with 159 additions and 7 deletions
@@ -11,6 +11,8 @@
.kernel = .{ .path = "../../../library/kernel" },
.device = .{ .path = "../../../library/device" },
.protocol = .{ .path = "../../../library/protocol" },
// csv parses filesystems.csv / volumes.csv, the mount-map configuration.
.csv = .{ .path = "../../../library/csv" },
},
.paths = .{""},
}