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.