code wiki / (root) / nx_uefi_fence_gate.nx

nx_uefi_fence_gate.nx

buildroot/runtime/nx_uefi_fence_gate.nx

13094 B331 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_uefi_fence_gate.nx -- F948 "never-brick FENCE gate for UEFI-on-metal" (os lane; deps F103c=D; 2026-07-21). THE CLAIM (rule 26, proven MECHANICALLY not asserted): the autonomous UEFI lane is FILE+EMULATOR-only. Every lane source in knowledge/uefi_lane_manifest.conf is scanned against the data-driven deny list knowledge/uefi_fence_deny.conf: build-class organs (F949 EFI app / F950 ESP builder / F951 boot-proof) may carry ZERO firmware/NVRAM/raw-device write primitives; metal-class organs (F952) must additionally declare NX-OPERATOR-CONFIRM + NX-REMOVABLE-ONLY and still carry ZERO firmware-write primitives -- the only device class they may name is the operator-confirmed removable target. Scanner completeness is proven against a poison fixture that trips EVERY all-class pattern (C09), marker falsifiability against the same (C10), fail-closed on missing files (C03/C11), deterministic (C12), non-vacuous (C13). D001: emits the nx_gate_verdict contract. REFUTATION: argv[1]=negctl injects the poison fixture into the BUILD-class scan set -> the fence tooth (C04) MUST go RED alone; registered sibling nx_uefi_fence_negtest pins that arg. license_tier: ORIGINAL expect_exit: 0 No hw writes (Rule 26): this gate only READS files.

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_uefi_fence_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gv_ctr sys_mmap gv_head gv_puts sys_write gv_puts ↻ sys_mmap ↻ uf_read_all sys_openat_rd sys_read sys_close uf_parse gv_check gv_puts ↻ uf_runset sys_mmap ↻ uf_read_all ↻ uf_fold uf_find uf_slen sys_munmap uf_find ↻ uf_slen ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap ↻ gv_verdict gv_puts ↻ gv_num ↻ gv_journal sys_openat_append sys_mmap ↻ gv_catn sys_mmap ↻ sys_munmap ↻ sys_now_realtime_sec sys_mmap ↻ sys_clock_gettime_real

structs

none

consts

17const UF_BUF: i64 = 65536
18const UF_TBL: i64 = 512
19const UF_ARENA: i64 = 8192
20const UF_MAXE: i64 = 64
21const UF_FOLD0: i64 = 7

functions

23func uf_slen(s: *u8) -> i64
called by 2: uf_runsetmain
30func uf_read_all(path: *u8, buf: *u8, cap: i64) -> i64
46func uf_find(hay: *u8, hn: i64, pat: *u8, pn: i64) -> i64
called by 2: uf_runsetmain
63func uf_fold(ck: i64, buf: *u8, n: i64) -> i64
called by 1: uf_runset
73func uf_parse(cbuf: *u8, cn: i64, cls: *i64, sp: *i64, sl: *i64, arena: *u8, abox: *i64, maxe: i64) -> i64
called by 1: main
135func uf_runset(manC: *i64, manP: *i64, manN: i64, dC: *i64, dP: *i64, dL: *i64, dN: i64, neg: i64, res: *i64) -> i64
194func main(argc: i64, argv: *i64) -> i64