code wiki / (root) / nx_enginelab_analysis_gate.nx

nx_enginelab_analysis_gate.nx

buildroot/runtime/nx_enginelab_analysis_gate.nx

12673 B209 linesdepth 5pulls 8 transitivereach 0 importersview sourcekind gate/prooftopic enginelab
docsdependenciesstructsconstsfunctions

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

nx_syscalls.nx nx_gate_verdict.nx nx_enginelab_lib.nx nx_enginelab_analysis.nx nx_enginelab_analysis_gate.nx

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

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ ag_capture el_new sys_mmap ↻ el_draw el_push el_set ag_buf sys_mmap ↻ gv_subjects gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap gv_need gv_puts ↻ el_draw_count el_get el_replay el_draw_count ↻

structs

none

consts

13const AG_CAP: i64 = 96
14const AG_BUF: i64 = 4096
15const AG_SMALL_BUF: i64 = 8 // deliberately too small for even one folded line
20const AG_CORRUPT_ZONE_US: i64 = 1000 // the zone's own duration
21const AG_IMPOSSIBLE_CHILD_US: i64 = 1500 // children recorded as costing MORE than the zone contains
22const AG_CORRUPT_SELF_US: i64 = AG_CORRUPT_ZONE_US - AG_IMPOSSIBLE_CHILD_US

functions

24func ag_buf() -> *i64 { return sys_mmap(32 * EL_I64) as *i64 }
called by 1: main calls 1: sys_mmap
25func ag_eq(a: i64, b: i64) -> i64 { if a == b { return 1 } return 0 }
called by 1: main
26func ag_pos(a: i64) -> i64 { if a > 0 { return 1 } return 0 }
called by 1: main
27func ag_zero(a: i64) -> i64 { if a == 0 { return 1 } return 0 }
called by 1: main
28func 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
29func ag_eq3(a: i64, b: i64, c: i64, d: i64, e: i64, f: i64) -> i64
called by 1: main
34func ag_capture(last_verts: i64) -> *i64
called by 1: main calls 2: el_newel_draw
46func ag_tree() -> *i64
called by 1: main calls 3: el_newel_zone_beginel_zone_end
57func main() -> i64