nx_enginelab_analysis_gate.nx
buildroot/runtime/nx_enginelab_analysis_gate.nx
about
nx_enginelab_analysis_gate.nx -- proves EL2 replay, EL4 shader binding, EL5 sampling, EL6 call tree.
A SEPARATE GATE ON PURPOSE. nx_enginelab_gate belongs to the sibling lane that owns EL1/EL3/EL7 and
is the single writer of nx_enginelab_lib. Adding my teeth there would mean two lanes editing one
file, which is the collision we already paid for once today -- caught by the LINKER rather than by
either lane looking first, and only because we happened to pick identical names. One lane, one gate,
one file: the boundary is cheaper than the coordination.
dependencies 4 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_enginelab_lib.nxnx_enginelab_analysis.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
| 13 | const AG_CAP: i64 = 96 |
| 14 | const AG_BUF: i64 = 4096 |
| 15 | const AG_SMALL_BUF: i64 = 8 // deliberately too small for even one folded line |
| 20 | const AG_CORRUPT_ZONE_US: i64 = 1000 // the zone's own duration |
| 21 | const AG_IMPOSSIBLE_CHILD_US: i64 = 1500 // children recorded as costing MORE than the zone contains |
| 22 | const AG_CORRUPT_SELF_US: i64 = AG_CORRUPT_ZONE_US - AG_IMPOSSIBLE_CHILD_US |
functions
| 24 | func ag_buf() -> *i64 { return sys_mmap(32 * EL_I64) as *i64 } |
| 25 | func ag_eq(a: i64, b: i64) -> i64 { if a == b { return 1 } return 0 } called by 1: main |
| 26 | func ag_pos(a: i64) -> i64 { if a > 0 { return 1 } return 0 } called by 1: main |
| 27 | func ag_zero(a: i64) -> i64 { if a == 0 { return 1 } return 0 } called by 1: main |
| 28 | func ag_eq2(a: i64, b: i64, c: i64, d: i64) -> i64 { if a == b { if c == d { return 1 } } return 0 } called by 1: main |
| 29 | func ag_eq3(a: i64, b: i64, c: i64, d: i64, e: i64, f: i64) -> i64 called by 1: main |
| 34 | func ag_capture(last_verts: i64) -> *i64 |
| 46 | func ag_tree() -> *i64 |
| 57 | func main() -> i64 |