code wiki / _hdl_build / nx_genesis_live_gate.nx

nx_genesis_live_gate.nx source

↩ module page · 101 lines · 4483 B

1// nx_genesis_live_gate.nx -- proves the per-host live driver-sovereignty ingest. 2// 3// T1 real-host-consistent : on the real hwmap.tsv, present>=1 AND the tally sums to present 4// N1 uncovered-seen : a device whose PCI class is unmapped -> uncovered >= 1 (a real gap) 5// N2 gpu-locked-seen : a class-0x03 device -> third_party >= 1 (the GPU lock) 6// N3 storage-sovereign-seen: a class-0x01 device -> sovereign >= 1 (virtio-blk driver) 7// 8// GREEN only if all four hold. Evidence -> knowledge/status/genesis_live_gate.log. 9// Sovereign: imports nx_genesis_live + nx_framed_append + nx_syscalls (no gcc). license_tier: ORIGINAL 10import "nx_genesis_live.nx" 11import "nx_framed_append.nx" 12import "nx_syscalls.nx" 13 14const GLG_LOG: *u8 = "knowledge/status/genesis_live_gate.log" 15 16func gv_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 } 17func gv_catn(dst: *u8, off: i64, v: i64) -> i64 { 18 var m: i64 = v; var o: i64 = off 19 if m < 0 { m = 0 - m } 20 let t: *u8 = sys_mmap(28); var k: i64 = 0 21 if m == 0 { t[0] = 48 as u8; k = 1 } 22 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 23 var i: i64 = 0 24 while i < k { dst[o + i] = t[k - 1 - i]; i = i + 1 } 25 return o + k 26} 27func gv_write_file(path: *u8, content: *u8) -> i64 { 28 let fd: i64 = sys_openat_wr(path, 0x1a4) 29 if fd < 0 { return 0 - 1 } 30 var n: i64 = 0; while content[n] != 0 as u8 { n = n + 1 } 31 sys_write(fd, content, n); sys_close(fd); return 0 32} 33func gv_tmppath(out: *u8, stem: *u8, epoch: i64, pid: i64) -> i64 { 34 var o: i64 = gv_cat(out, 0, stem); o = gv_catn(out, o, epoch); o = gv_cat(out, o, "." as *u8); o = gv_catn(out, o, pid); o = gv_cat(out, o, ".tsv\x00" as *u8) 35 out[o] = 0 as u8; return o 36} 37func gv_row(name: *u8, pass: i64) -> i64 { 38 let buf: *u8 = sys_mmap(528) 39 var o: i64 = 0 40 o = gv_cat(buf, o, "GLIVE row=\x00" as *u8) 41 o = gv_cat(buf, o, name) 42 if pass == 1 { o = gv_cat(buf, o, " verdict=PASS\x00" as *u8) } else { o = gv_cat(buf, o, " verdict=FAIL\x00" as *u8) } 43 buf[o] = 0 as u8 44 fa_appendz(GLG_LOG, buf, 512) 45 gl_puts(" "); gl_puts(name) 46 if pass == 1 { gl_puts(" PASS\n") } else { gl_puts(" FAIL\n") } 47 return 0 48} 49 50func main() -> i64 { 51 gl_puts("genesis-live gate (per-host driver-sovereignty ingest)\n") 52 let epoch: i64 = sys_now_realtime_sec() 53 let pid: i64 = __syscall(39, 0, 0, 0, 0, 0, 0) 54 let outs: *i64 = sys_mmap(128) as *i64 55 56 // T1 real host 57 var t1: i64 = 0 58 if gl_analyze(GL_HWMAP, outs) == 0 { 59 let acc: i64 = outs[1] + outs[2] + outs[3] + outs[4] + outs[5] 60 if outs[0] >= 1 { if acc == outs[0] { t1 = 1 } } 61 } 62 63 let p1: *u8 = sys_mmap(256); gv_tmppath(p1, "/tmp/glive_unc." as *u8, epoch, pid) 64 let p2: *u8 = sys_mmap(256); gv_tmppath(p2, "/tmp/glive_gpu." as *u8, epoch, pid) 65 let p3: *u8 = sys_mmap(256); gv_tmppath(p3, "/tmp/glive_stg." as *u8, epoch, pid) 66 gv_write_file(p1, "00:00.0\t0x1234\t0x5678\t0x110000\n" as *u8) // class 0x11 -> unmapped -> uncovered 67 gv_write_file(p2, "00:00.0\t0x10de\t0x2204\t0x030000\n" as *u8) // class 0x03 -> gpu -> third-party 68 gv_write_file(p3, "00:00.0\t0x1af4\t0x1001\t0x010000\n" as *u8) // class 0x01 -> storage -> sovereign 69 70 var n1: i64 = 0 71 if gl_analyze(p1, outs) == 0 { if outs[4] >= 1 { n1 = 1 } } 72 var n2: i64 = 0 73 if gl_analyze(p2, outs) == 0 { if outs[2] >= 1 { n2 = 1 } } 74 var n3: i64 = 0 75 if gl_analyze(p3, outs) == 0 { if outs[1] >= 1 { n3 = 1 } } 76 77 var passes: i64 = 0 78 if t1 == 1 { passes = passes + 1 } 79 if n1 == 1 { passes = passes + 1 } 80 if n2 == 1 { passes = passes + 1 } 81 if n3 == 1 { passes = passes + 1 } 82 var green: i64 = 0 83 if passes == 4 { green = 1 } 84 85 gv_row("T1-real-host-consistent \x00" as *u8, t1) 86 gv_row("N1-uncovered-class-seen \x00" as *u8, n1) 87 gv_row("N2-gpu-locked-seen \x00" as *u8, n2) 88 gv_row("N3-storage-sovereign-seen\x00" as *u8, n3) 89 90 let vb: *u8 = sys_mmap(528) 91 var o: i64 = 0 92 o = gv_cat(vb, o, "GENESIS-LIVE verdict=\x00" as *u8) 93 if green == 1 { o = gv_cat(vb, o, "GREEN\x00" as *u8) } else { o = gv_cat(vb, o, "RED\x00" as *u8) } 94 o = gv_cat(vb, o, " passes=\x00" as *u8); o = gv_catn(vb, o, passes); o = gv_cat(vb, o, "/4 END\x00" as *u8) 95 vb[o] = 0 as u8 96 fa_appendz(GLG_LOG, vb, 512) 97 gl_puts(vb); gl_puts("\n") 98 99 if green == 1 { return 0 } 100 return 1 101}