code wiki / _hdl_build / nx_hr_sov_gate.nx
nx_hr_sov_gate.nx
buildroot/runtime/_hdl_build/nx_hr_sov_gate.nx
about
nx_hr_sov_gate.nx -- referee for the SOVEREIGN-STORED HR directory (nx_hr_sov on nx_seg_store + canon, NO tsv).
Proves the SAME access-SSOT semantics nx_hr's TAB-log gate proves, now on the sovereign store: enroll owner(3)/
member(1) -> resolve 3/1; unknown -> 0 (deny-by-default); invite -> invited (no access) + is_invited; suspend ->
0 (latest-wins in the additive store); set_role -> live role change; cred_id stable; realm isolation. GREEN iff
every row matches. -> knowledge/status/hr_sov_gate.log. This is the HR team's adoptable, de-risked migration core.
dependencies 2 imports · 0 importers
imports: nx_hr_sov.nxnx_syscalls.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 9 | func g_w(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 10 | func g_n(v: i64) -> i64 { var m: i64=v; if m<0{g_w("-" as *u8);m=0-m} let t:*u8=sys_mmap(24); var k:i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i:i64=0; let o:*u8=sys_mmap(24); while i<k{o[i]=t[k-1-i];i=i+1} sys_write(1,o,k); return 0 } |
| 11 | func gw(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 } |
| 12 | func g_cat(dst: *u8, off: i64, s: *u8) -> i64 { var o: i64=off; var i: i64=0; while s[i]!=(0 as u8){dst[o]=s[i];o=o+1;i=i+1} return o } called by 1: main |
| 13 | func g_streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while 1==1 { let ca: i64=a[i] as i64; let cb: i64=b[i] as i64; if ca!=cb {return 0} if ca==0 {return 1} i=i+1 } return 1 } called by 1: main |
| 14 | func chk(got: i64, want: i64, label: *u8) -> i64 { g_w(" "); g_w(label); g_w(" got="); g_n(got); g_w(" want="); g_n(want); if got==want { g_w(" PASS\n"); return 1 } g_w(" FAIL\n"); return 0 } |
| 16 | func main() -> i64 |