# 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.