Files
erofs-freebsd-out-tree/docs/pre12-batch-01.md
T
2026-08-18 09:20:44 +02:00

1.5 KiB

Pre12 Batch 01

This batch aligns the planned in-memory NID, block-number, and byte-offset declarations with the existing erofs_nid_t, erofs_blk_t, and erofs_off_t aliases.

The source whitelist was limited to eight fields in internal.h, the erofs_iloc, erofs_nid_is_valid, erofs_read_inode, and erofs_vfs_hash declarations and definitions, and the byte-offset parameters of erofs_bread, erofs_read_physical, and erofs_read_metadata.

All three aliases are direct uint64_t typedefs. Static assertions confirmed that each is an unsigned, 8-byte type with the same alignment and exact C type compatibility as uint64_t. Consequently every replaced field has identical size and alignment, so both structure sizes, alignments, field order, and all target offsetof values are unchanged. Function parameter and return ABI representations are also unchanged, and the vnode hash still consumes the same complete 8-byte NID object.

The source diff is limited to the planned fields, function declarations and definitions, and necessary local declaration splits. No expressions, field order, on-disk types, control flow, error handling, or formatting outside those declarations changed.

Validation used exact declaration inventory checks, token-diff inspection, declaration/definition signature comparison, arithmetic and hash review, compile-time type assertions, and git diff --check. No planned point was skipped and no out-of-scope candidate was changed. No build, QEMU, smoke, feature, or other dynamic test was run.