code wiki / _hdl_build / nx_hr_sov_gate.nx

nx_hr_sov_gate.nx

buildroot/runtime/_hdl_build/nx_hr_sov_gate.nx

5427 B64 linesdepth 11pulls 21 transitivereach 0 importersview sourcekind gate/prooftopic hr
docsdependenciesstructsconstsfunctions

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

nx_hr_sov.nx nx_syscalls.nx nx_hr_sov_gate.nx

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

main g_w sys_write sys_now_ms sys_mmap sys_clock_gettime_mono sys_mmap ↻ g_cat hrs_enroll hrs_cred_id sys_mmap ↻ nx_ncs_derive_user_id_hash sys_mmap ↻ hrs_hexenc hrs_put_indexed hrs_seg_committed sys_mmap ↻ ss_manifest ss_manifest_file sys_mmap ↻ ss_cat ss_readall hrs_itoa sys_mmap ↻ hrs_streq hrs_status_code sys_mmap ↻ hrs_get ss_open ss_open2 sys_mmap ↻ ss_hget sys_mmap ↻ ss_idx_find canon_decode ud_r32 sys_mmap ↻ hrs_field hrs_streq ↻ hrs_streq ↻

structs

none

consts

none

functions

9func 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 }
called by 3: g_nchkmain calls 1: sys_write
10func 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 }
called by 2: chkmain calls 3: g_wsys_mmapsys_write
11func 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 }
called by 1: main calls 1: sys_write
12func 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
13func 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
14func 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 }
called by 1: main calls 2: g_wg_n
16func main() -> i64