volume-manager: load the mount map; pick binary by signature, compose the id-path (S2)

The volume manager reads its policy from configuration at boot (loadTables,
mirroring the device-manager registry load): filesystems.csv (content signature
-> service binary) and volumes.csv (optional id -> mount-prefix override), each
held in a static source buffer with declared bounds. On probe it picks the
binary from the volume's signature (unserved + logged if no row matches, like an
unbound device) and composes the mount path — a volumes.csv override, else the
default /volumes/<id> from volume-map.idString — then spawns that binary with
argv {volume-id, mount-prefix}. Behavior-preserving: fat still ignores argv[2..]
and uses its hardcoded mounts, the binary resolves to /system/services/fat, so
the FULL suite stays green (127/127); the flip to argv-driven mounts and the
/volumes/usb -> id-path migration land in step 5.
This commit is contained in:
Daniel Samson
2026-08-10 00:12:33 +01:00
parent 5bfdb75e12
commit 167e9c7a9e
5 changed files with 123 additions and 10 deletions
+7
View File
@@ -0,0 +1,7 @@
# The filesystem map: a probed volume's content signature -> the service binary
# that serves it (docs/file-system-development/storage-architecture.md). The
# volume manager reads this (the policy); a signature no row matches goes
# unserved, never guessed. Adding a filesystem adds a row.
#
# signature, binary
fat, /system/services/fat
1 # The filesystem map: a probed volume's content signature -> the service binary
2 # that serves it (docs/file-system-development/storage-architecture.md). The
3 # volume manager reads this (the policy); a signature no row matches goes
4 # unserved, never guessed. Adding a filesystem adds a row.
5 #
6 # signature, binary
7 fat, /system/services/fat