Files
Snapintosh/probes
Acelogic f47befb905 probes: split xnuboot.c into ordered parts
Phase 1 of decomposing the 15,770-line monitor unit: move contiguous
top-level ranges verbatim into probes/xnuboot/*.c, and have
probes/xnuboot.c #include them in their original order. The compiler
still sees one translation unit. Every #include of a header stays in
probes/xnuboot.c, because quoted includes resolve beside the including
file and the monitor build has no -Icompat.

Cuts fall only between top-level declarations; no function, struct,
initializer or conditional is split, and every part has balanced
#if/#endif. Two exceptions are recorded for phase 2:
- monitor_call_impl is 1,318 lines on its own, so
  probes/xnuboot/sptm_dispatch.c is 1,370 lines.
- The 1,894-line #if SNAP_FINE_LOCKS region is split into three
  consecutive identical #if SNAP_FINE_LOCKS blocks (fine_locks_*.c).
  SNAP_FINE_LOCKS is not defined or undefined inside the region, and
  nothing inside it includes a header.
The parts that carry the m1n1-derived SPTM endpoint numbers and return
codes (report_layout.c, sptm_dispatch.c) keep the file's notice.

Tools that read xnuboot.c as text now read the whole unit through
tools/source_text.py read_source(); tools that hash or pin monitor
sources add every part through source_files() (generic over each .c
in their lists, so later splits are covered the same way).

Verification (base 84dd208 vs this commit, clang 23.1.3):
- clang -c, qualification flags (b12v20 qualification.json, no -flto)
  plus -I shadow -I q1n1/platform/uefi: probes/xnuboot.c objects
  byte-identical (cmp). PASS
- clang -c, probes/run.py FLAGS plus the same -I: byte-identical. PASS
- Qualification flags with -flto: llvm-dis output equal; the full IR
  differs only in 468 inline-asm !srcloc source-location cookies. PASS
- probes/run.py build('xnuboot'), every unit linked: xnuboot.bin and
  xnuboot.elf byte-identical with the qualification flags (LTO,
  bin sha256 0d8b9ec3...) and with run.py FLAGS (2b5d5f6b...). PASS
- Reconstruction: expanding the includes and dropping the part headers
  and the duplicated #if/#endif lines reproduces xnuboot.c exactly.
- Host battery (63 commands: the two gcc SPTM suites, test-idregs,
  test-audit-sptm-refs and every tools/test-*.py that reads these
  sources, plus the edited tools), 300 s limit, base vs split:
  no new failure. 76 of 78 outcomes equal; test-audit-sparse and
  test-monitor-perf timed out (NOT RUN) on split under host load and
  on rerun match base (PASS; FAIL with the same record). Per-class
  reruns of the long suites (21 commands) equal on both trees.
  Pre-existing failures (missing private inputs or stale checks) are
  unchanged.
- wc -l: xnuboot.c 918, every part under 1,000 except sptm_dispatch.c
  (1,370).
2026-10-23 04:04:44 -04:00
..
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00