code wiki / _hdl_build / nx_intent_gate.nx

nx_intent_gate.nx

buildroot/runtime/_hdl_build/nx_intent_gate.nx

13455 B310 linesdepth 2pulls 2 transitivereach 0 importersview sourcekind gate/prooftopic intent
docsdependenciesstructsconstsfunctions

about

nx_intent_gate.nx -- the ENGINEER's gate for CR4 (intent WAL: work interrupted by a crash stops being silently lost). Proves, re-runnably: 1 paired START+DONE -> nothing filed (a finished step is not an orphan) 2 pre-boot START with no DONE -> exactly ONE pm_plan row filed + INTENT-FILED mark 3 idempotent: same WAL again -> nothing refiled (the FILED mark holds) 4 in-flight protection: START from THIS boot (epoch >= boot_epoch) -> never filed 5 live writer: a REAL nx_team_pulse run appends START and matching DONE to the real WAL Fixtures in /tmp (fixture conf has no E/D rows so revive runs them in milliseconds); the real WAL/pm_plan are only touched by row 5's genuine pulse. Durable verdict -> knowledge/status/intent_gate.log. Exit 0 iff 5/5. Sovereign (syscalls only, no .sh). Run from nxc2 root. license_tier: ORIGINAL

dependencies 1 imports · 0 importers

nx_syscalls.nx nx_intent_gate.nx

imports: nx_syscalls.nx

imported by: nobody (leaf or entry point)

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

main _p sys_write sys_openat_rd sys_mmap ig_run sys_fork sys_mmap ↻ sys_openat_wr sys_dup3 sys_execve sys_exit sys_now_ms sys_mmap ↻ sys_clock_gettime_mono sys_wait4 nx_kill sys_sleep_ms sys_mmap ↻ sys_munmap sys_openat_append sys_exit ↻ _fp sys_write ↻ _fn sys_mmap ↻ sys_write ↻ sys_now_realtime_sec sys_mmap ↻ sys_clock_gettime_real ig_unlink ig_write_file ig_unlink ↻ sys_openat_wr ↻ sys_write ↻ ig_len sys_close ig_revive sys_mmap ↻ ig_run ↻

structs

none

consts

14const IG_RUN_MS: i64 = 60000 // bound on one fixture revive (no organs -> instant)
15const IG_PULSE_MS: i64 = 600000 // bound on the real pulse run (row 5)
16const IG_SIGKILL: i64 = 9

functions

18func _p(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 2: ig_rowmain calls 1: sys_write
19func _pn(v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48;k=1}; while m>0{t[k]=48+(m%10);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(1,bb,k); return 0 }
called by 2: ig_rowmain calls 2: sys_mmapsys_write
20func _fp(fd: i64, s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(fd,s,n); return 0 }
called by 2: ig_rowmain calls 1: sys_write
21func _fn(fd: i64, v: i64) -> i64 { let bb: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(fd,"-" as *u8,1)}; let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48;k=1}; while m>0{t[k]=48+(m%10);m=m/10;k=k+1}; var i: i64=0; while i<k{bb[i]=t[k-1-i];i=i+1}; sys_write(fd,bb,k); return 0 }
called by 2: ig_rowmain calls 2: sys_mmapsys_write
22func ig_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
23func ig_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64 = 0; while s[i] != (0 as u8) { dst[off+i] = s[i]; i = i + 1 } return off + i }
called by 2: ig_region_pairmain
24func ig_numcat(dst: *u8, off: i64, v: i64) -> i64
called by 2: ig_region_pairmain calls 1: sys_mmap
34func ig_read_all(path: *u8, buf: *u8, cap: i64) -> i64
called by 1: main calls 3: sys_openat_rdsys_readsys_close
43func ig_contains(hay: *u8, n: i64, pat: *u8) -> i64
called by 2: ig_region_pairmain calls 1: ig_len
56func ig_count_pat(hay: *u8, n: i64, pat: *u8) -> i64
called by 1: main calls 1: ig_len
70func ig_last_num_after(hay: *u8, n: i64, pat: *u8) -> i64
called by 1: main calls 1: ig_len
92func ig_find_in(buf: *u8, from: i64, to: i64, pat: *u8) -> i64
called by 1: ig_region_pair calls 1: ig_len
104func ig_digits_at(buf: *u8, pos: i64, to: i64) -> i64
called by 1: ig_region_pair
119func ig_region_pair(w: *u8, wn: i64) -> i64
144func ig_write_file(path: *u8, content: *u8) -> i64
153func ig_run(elf: *u8, argv: *i64, ms: i64, mute: i64) -> i64
182func ig_revive(conf: *u8, lg: *u8, jr: *u8, wal: *u8, pm: *u8) -> i64
called by 1: main calls 2: sys_mmapig_run
194func ig_row(lfd: i64, idx: i64, name: *u8, ok: i64, acc: *i64) -> i64
called by 1: main calls 4: _p_pn_fp_fn
204func main() -> i64