exfat: the on-disk layout (S4 step 1)
The pure, host-testable byte layer of the second engine: the Main Boot Sector (VBR) and the six 32-byte directory-entry types — Allocation Bitmap, Up-case Table, Volume Label, File, Stream Extension, File Name — as align(1) extern structs, plus the three exFAT checksums (boot region, up-case table, directory-entry set), the name hash, and the packed timestamp <-> Unix-epoch conversion. geometryOf accepts only "EXFAT " + 0xAA55 + an all-zero MustBeZero region; that last guard is the mutual exclusion with FAT — a FAT prober reads a zero bytes-per-sector there and rejects the volume, and this one rejects a FAT boot sector for want of the exFAT name. Wire-format widths are named consts (spec facts, no bare literals) so the bounds gate stays green; the layout is pinned by @offsetOf/@sizeOf tests. Wired into the host-test aggregate directly for now; it moves into the exfat package's own test step when that lands (step 4). 7/7 host tests, bounds green.
This commit is contained in:
@@ -422,6 +422,9 @@ pub fn build(b: *std.Build) void {
|
||||
"system/boot-handoff.zig",
|
||||
"system/abi.zig",
|
||||
"system/initial-ramdisk.zig", // v2 path-named entries: find/basename/magic
|
||||
// The exFAT engine's pure on-disk layer (S4), std-only, before its package
|
||||
// exists — moves into the `exfat` package's own test step once that lands.
|
||||
"system/services/exfat/on-disk.zig",
|
||||
}) |root| {
|
||||
const mod_tests = b.addTest(.{
|
||||
.root_module = b.createModule(.{
|
||||
|
||||
Reference in New Issue
Block a user