30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# 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.
|