# Pre12 Batch 04: Private compression header ## Change - Added `src/compress.h` for the decompressor request, descriptor, and backend private declarations previously located in `src/internal.h`. - Added the header only to `decompressor.c` and the LZ4, LZMA, Deflate, and ZSTD backend translation units. - Kept the runtime compression enum, `z_erofs_parse_cfgs`, and the public `z_erofs_decompress` declaration in `src/internal.h`. - Preserved every migrated declaration signature and storage duration. No function body, callback, conditional compilation block, errno path, or buffer ownership changed. ## Static validation - The `compress.h` consumer set is exactly the five planned decompressor translation units; `super.c`, `zdata.c`, and all other public callers still include only `internal.h`. - The include graph is acyclic: `compress.h` includes `internal.h`, while `internal.h` does not include `compress.h`. - Exact searches found one definition of each migrated structure and one declaration of each migrated backend function. The old declarations are absent from `internal.h`. - The new header contains no Linux page, folio, bio, workqueue, XArray, shrinker, compatibility, or related runtime declarations. - Source diff inspection and declaration normalization confirmed that this is a declaration-only move plus the five include additions. - `git diff --check` and `git diff --cached --check` completed without errors. ## Tests not run Per the execution constraints, no build, QEMU run, smoke test, feature test, or other dynamic test was run. The planned `WITH_ZSTDIO=0` and `WITH_ZSTDIO=1` KLD builds remain required during final validation.