This commit is contained in:
2026-08-18 09:20:44 +02:00
commit b826cd721a
522 changed files with 93730 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
# 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.