code wiki / _hdl_build / nx_seat.nx

nx_seat.nx

buildroot/runtime/_hdl_build/nx_seat.nx

237181 B4246 linesdepth 5pulls 15 transitivereach 0 importersview sourcekind tooltopic seat
docsdependenciesstructsconstsfunctions

about

nx_seat.nx -- THE AGENT-SEAT token-engine organ (seat-system S0+S3, 2026-07-20). MISSION (operator): move Claude's token lift INTO the ecosystem. Measured 12-session baseline: cache_read 920.8M tok vs output 6.1M -- fat tool results re-read every turn dominate cost. So: boot = ONE call, HARD-CAPPED <=4096B digest (vs ~40K-token memory-file boot); the substrate is digested SERVER-SIDE and only the decision surface reaches a seat's context window. nx_seat boot <ws> [journal] [debtprefix] [frontierprefix] [meterlog] -> capped JSON digest nx_seat meter <seat> <sessions> <out_tok> <cread_tok> <ccreate_tok> <note> [logpath] -> ONE O_APPEND TSV row to knowledge/status/token_efficiency.log (conflict-free, S3) nx_seat meterlog [n] [logpath] -> last n metering rows (tail-window, declared) nx_seat shift [days] [meterlog] [ws.jrnl] -> ENGINE-SHIFT SCOREBOARD (F831): claude-vs-local seat-class aggregates + DONE-closures in window -> tokens-per-closed-rung, capped JSON nx_seat reap [actor] [note] [claims.jrnl] [ws.jrnl] -> F214 ORPHAN REAP: forks the nx_claims organ's reap verb (releases ONLY provably-EXPIRED claims, age>ttl by the claim's OWN ttl -- the wrapper NEVER decides expiry itself) then appends one ORPHAN-REAPED audit frame per reaped ws to the ws journal (who/when/why); idempotent, additive-only nx_seat resume_map <transcripts_dir> <temp_root|-> <win_start_epoch|latest> [win_end] [frames.jrnl|-] -> DM2 CRASH-RESUME MAP (/compare/devmgmt): per-seat lane/last-action/IN-FLIGHT/resume-point evidence from transcript JSONL tails + scratchpads + task-child outputs; full population, partition printed AND summed; in-flight wrong only toward flagging. The last arg is the DM1 frames journal -- the convention DIR (knowledge/status/chbeat) or one chbeat_<YYYYMMDD>.jrnl -- which joins ESTATE-side frames to each seat by session id (actlog col1) and reports SKIP / PARTIAL (covered window stated) / COVERS. SSOT: buildroot copy of this file. nx_seat selftest [tmpbase] -> gv-lib gate T1..T6 incl SCALE tooth (300-frame journal -> output still <=4096B; fixture gates prove correctness NEVER scale -- ark v1 lesson) SCALE-LAW: every read is tail-windowed with the true size DECLARED in output (journal_bytes vs window_bytes); output budget declared as budget_bytes. AUTHORITY: nx_ws_cycle next remains the scoped debt gate; boot is the recon DIGEST and says so in its output (no drift, no dup gate). license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 10 imports · 0 importers

nx_sovjson_lib.nx nx_store_seed_lib.nx nx_seg_store.nx nx_gate_verdict.nx nx_tool_run.nx nx_syscalls.nx nx_claims.nx nx_costest_lib.nx nx_rungclose_lib.nx nx_gauge_lib.nx nx_seat.nx

imports: nx_sovjson_lib.nxnx_store_seed_lib.nxnx_seg_store.nxnx_gate_verdict.nxnx_tool_run.nxnx_syscalls.nxnx_claims.nxnx_costest_lib.nxnx_rungclose_lib.nxnx_gauge_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main st_werr sj_werr sys_write sys_exit st_lit_eq sj_lit_eq st_vlen sj_vlen 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 ↻ st_boot st_boot_cj sys_mmap ↻ st_read sys_openat_rd sys_lseek sys_read sys_close sys_now_realtime_sec sys_mmap ↻ sys_clock_gettime_real st_cat sj_cat st_catn sj_catn sys_mmap ↻

structs

none

consts

42const ST_GAUGE_STAMP: *u8 = "knowledge/status/seat_gauge.stamp" // CE9: the heartbeat the codeeffectiveness.gauge row reads
43const ST_LEDGER: *u8 = "knowledge/status/costcal.ledger" // EC56: the boards' land and retract events, written by the costcal beat
44const ST_FRAME_SLACK: i64 = 64 // EC62: a frame's fixed parts -- the timestamp digits, four tabs, the newline and the terminator
45const ST_WIPSTATUS: *u8 = "knowledge/status/wip.status" // EC57: the costcal beat's ONE canonical started-not-landed line
46const ST_WORKLIST: *u8 = "knowledge/status/rungclose.worklist" // EC57 c: the fleet census's close-first worklist (nx_rungclose census all)
47const ST_CLOSESTATUS: *u8 = "knowledge/status/rungclose.status" // EC57: the fleet census's ONE canonical state line
48const ST_CF_DAY_S: i64 = 86400 // EC57 c: a close-first row's idle time is quoted in whole days
49const ST_CF_FIX_ROWS: i64 = 4 // T23: the planted worklist holds three rows; one spare
50const ST_CF_FIX_NAME_B: i64 = 16 // T23: more than the longest planted domain plus rung name (fxdom and S1)
51const ST_STAMP_SUFFIX: *u8 = ".gauge.stamp" // EC56: a run over non-default evidence stamps BESIDE its own meter log, never the production heartbeat
52const ST_GAUGE_AXES: i64 = 2 // CE9: the meter log and the ws journal; a window that read only one is BLIND, never zero
53const ST_MAGIC_172800: i64 = 172800 // NX-UNNAMED: mechanical, collision-free placeholder -- this name RESTATES the value and so carries no meaning. Replace it with a domain term that says WHY, or move the number to a config row.
54const ST_MAGIC_7200000: i64 = 7200000 // NX-UNNAMED: mechanical, collision-free placeholder -- this name RESTATES the value and so carries no meaning. Replace it with a domain term that says WHY, or move the number to a config row.
60const ST_FORK_TIMEOUT_MS: i64 = 30000
61const ST_MAGIC_4096: i64 = 4096
62const ST_MAGIC_86400: i64 = 86400
63const ST_MAGIC_4092: i64 = 4092
64const ST_MAGIC_8192: i64 = 8192
65const ST_MAGIC_8188: i64 = 8188
66const ST_MAGIC_3600: i64 = 3600
67const ST_MAGIC_1024: i64 = 1024
68const ST_MAGIC_9000: i64 = 9000
69const ST_MAGIC_90000: i64 = 90000
70const ST_MAGIC_100000: i64 = 100000 // selftest: a row this far back falls in the PREVIOUS 1-day shift window
71const ST_FIX_CUR_CREAD: i64 = 2000 // selftest ratchet fixture: the current window's cache-read tokens (not a ratchet input)
72const ST_FIX_PREV_OUT_HIGH: i64 = 4000 // selftest ratchet fixture: previous-window out tokens high enough that the current window reads GREEN
73const ST_MAGIC_65536: i64 = 65536
76const ST_JRNL_BUF: i64 = 8388608
78const ST_CAP: i64 = 1048576
81const ST_DRIFTLOG: *u8 = "knowledge/status/artifactdrift.log"
82const ST_DRIFTCAP: i64 = 4096
83const ST_OUTCAP: i64 = 4096
84const ST_OUTBUF: i64 = 8192
85const ST_SEEK_SET: i64 = 0
86const ST_SEEK_END: i64 = 2
87const ST_TAB: i64 = 9
88const ST_NL: i64 = 10
89const ST_STDERR: i64 = 2
90const ST_SPAN: i64 = 16
91const ST_EXIT_USAGE: i64 = 2
92const ST_ACTIVE_MAX: i64 = 8
93const ST_FRONT_MAX: i64 = 5
94const ST_ROW_ESC: i64 = 240
95const ST_NOTE_ESC: i64 = 160
96const ST_WS_ESC: i64 = 40
97const ST_TITLE_ESC: i64 = 60
98const ST_STALE_SEC: i64 = 7200
99const ST_MODE_RW: i64 = 0x1a4
100const ST_ST_FRAMES: i64 = 300
103const ST_CLAIMS_JRNL: *u8 = "knowledge/status/claims.jrnl" // the canonical plane checkin/checkout/reap ALREADY write; named once here so the four sites cannot drift
104const ST_CLAIMRES_PFX: *u8 = "debt-" // claim resource = this + the row's OWN id column, so selector and claimer derive the same name with no shared literal to drift
105const ST_CLAIMRES_B: i64 = 64 // len("debt-")=5 + widest i64 decimal=20 + NUL=1 = 26; 64 is the next power of two above that (also covers the frontier prefix below)
106const ST_CLAIMRES_FPFX: *u8 = "frontier-" // ready's rows are frontier F-ids, so they claim under their OWN namespace and can never collide with a debt-<id>
109const ST_RM_DIRBUF: i64 = 1048576 // getdents64 batch buffer -- LOOPED to completion, so this is throughput not coverage (census-organ figure)
110const ST_RM_PATHCAP: i64 = 4096 // PATH_MAX, the kernel's own bound
111const ST_RM_NAMECAP: i64 = 256 // NAME_MAX+1, the kernel's own bound
112const ST_RM_STATBUF: i64 = 256 // struct stat is 144B on x86_64; ccz_mtime precedent allocates 256
113const ST_RM_STAT_MTIME_IDX: i64 = 11 // st_mtim.tv_sec at byte 88 = i64[11] (x86_64 ABI, ccz_mtime precedent)
114const ST_RM_STAT_SIZE_IDX: i64 = 6 // st_size at byte 48 = i64[6] (x86_64 ABI)
115const ST_RM_DENT_TYPE_OFF: i64 = 18 // linux_dirent64 d_type (kernel ABI)
116const ST_RM_DT_DIR: i64 = 4 // DT_DIR (kernel ABI)
117const ST_RM_TYPEMAX: i64 = 64 // per-file distinct entry-type census slots; overflow ANNOUNCES types_floor=1 (counts become a FLOOR, never silent)
118const ST_RM_TYPENAME: i64 = 32 // stored type-name cap; longest observed harness type is 21B (file-history-snapshot)
119const ST_RM_SLOT: i64 = 512 // one condensed-evidence string slot: ST_ROW_ESC=240 max + NUL + margin
120const ST_RM_TSCAP: i64 = 40 // ISO-8601 timestamp verbatim copy; observed wire form is 24B
121const ST_RM_DANGROW: i64 = 192 // one formatted in-flight row: "id="+ST_RM_IDCAP+" tool="+ST_RM_TOOLCAP+NUL < 192
122const ST_RM_IDCAP: i64 = 48 // tool_use id copy cap; observed toolu_ ids are 30B
123const ST_RM_TOOLCAP: i64 = 64 // tool-name copy cap; longest registered tool name observed ~40B
124const ST_RM_LINE: i64 = 65536 // report line build buffer; content bounded by the cond caps above
125const ST_RM_HASHMUL: i64 = 131 // polynomial rolling-hash base for tool-id pairing (prime > byte alphabet)
126const ST_RM_I64B: i64 = 8 // sizeof(i64)
127const ST_RM_QUOTE: i64 = 34
128const ST_RM_BSLASH: i64 = 92
129const ST_RM_LBRACE: i64 = 123
130const ST_RM_RBRACE: i64 = 125
131const ST_RM_LBRACK: i64 = 91
132const ST_RM_RBRACK: i64 = 93
133const ST_RM_COLON: i64 = 58
134const ST_RM_SPACE: i64 = 32
135const ST_RM_DOT: i64 = 46
136const ST_RM_SLASH: i64 = 47
138const ST_RM_R_OK: i64 = 0
139const ST_RM_R_BYTES: i64 = 1
140const ST_RM_R_LINES: i64 = 2
141const ST_RM_R_MALFORMED: i64 = 3
142const ST_RM_R_TAILMAL: i64 = 4
143const ST_RM_R_TAILUNTERM: i64 = 5
144const ST_RM_R_USES: i64 = 6
145const ST_RM_R_RESULTS: i64 = 7
146const ST_RM_R_DANGLING: i64 = 8
147const ST_RM_R_LASTKIND: i64 = 9
148const ST_RM_R_TYPES: i64 = 10
149const ST_RM_R_TYPEFLOOR: i64 = 11
150const ST_RM_R_NULFINAL: i64 = 12
151const ST_RM_R_SIDECHAIN: i64 = 13
152const ST_RM_R_ORPHANRES: i64 = 14
153const ST_RM_R_HASTEXT: i64 = 15
154const ST_RM_R_DANGBUF: i64 = 16
155const ST_RM_R_TAILMALLEN: i64 = 17
156const ST_RM_R_SLOTS: i64 = 24
158const ST_RM_S_TITLE: i64 = 0
159const ST_RM_S_PROMPT: i64 = 1
160const ST_RM_S_TEXT: i64 = 2
161const ST_RM_S_TOOL: i64 = 3
162const ST_RM_S_INPUT: i64 = 4
163const ST_RM_S_TS: i64 = 5
164const ST_RM_S_LPROMPT: i64 = 6
165const ST_RM_S_N: i64 = 7
167const ST_RM_K_UNKNOWN: i64 = 0
168const ST_RM_K_ASSIST: i64 = 1
169const ST_RM_K_AWAIT: i64 = 2
170const ST_RM_K_META: i64 = 3
171const ST_RM_K_QUEUE: i64 = 4
177const ST_RM_J_SKIP: i64 = 0 // no journal declared / unreadable / empty -> abstain, never acquit
178const ST_RM_J_PARTIAL: i64 = 1 // frames exist but do NOT span the requested window (backfill mid-drain)
179const ST_RM_J_COVERS: i64 = 2 // derived coverage spans the whole requested window
180const ST_RM_JCOL_TS: i64 = 0
181const ST_RM_JCOL_WS: i64 = 1
182const ST_RM_JCOL_TOOL: i64 = 2
184const ST_RM_JG_FRAMES: i64 = 0
185const ST_RM_JG_MINTS: i64 = 1
186const ST_RM_JG_MAXTS: i64 = 2
187const ST_RM_JG_INWIN: i64 = 3
188const ST_RM_JG_TSZERO: i64 = 4
189const ST_RM_JG_FILES: i64 = 5
190const ST_RM_JG_BYTES: i64 = 6
191const ST_RM_JG_MALFORMED: i64 = 7
192const ST_RM_JG_SLOTS: i64 = 12
194const ST_RM_JSEATMAX: i64 = 256 // distinct in-window session ids collectable in estate-only mode; overflow ANNOUNCES seats_floor=1
195const ST_RM_SIDLEN: i64 = 36 // canonical session-uuid length (8-4-4-4-12 + 4 dashes), the id's own format
196const ST_RM_A_UNCOVERED: i64 = 0
197const ST_RM_A_AGREE: i64 = 1
198const ST_RM_A_DIFFER: i64 = 2
200const ST_RM_ST_CRASHED: i64 = 0
201const ST_RM_ST_COMPLETED: i64 = 1
202const ST_RM_ST_IDLE: i64 = 2
203const ST_RM_ST_UNKNOWN: i64 = 3

functions

206func st_puts(s: *u8) -> i64 { return sj_puts(s) }
called by 1: main calls 1: sj_puts
207func st_werr(s: *u8) -> i64 { return sj_werr(s) }
called by 1: main calls 1: sj_werr
208func st_vlen(s: *u8) -> i64 { return sj_vlen(s) }
209func st_cat(d: *u8, o: i64, s: *u8) -> i64 { return sj_cat(d, o, s) }
210func st_catn(d: *u8, o: i64, v: i64) -> i64 { return sj_catn(d, o, v) }
211func st_cat_esc(d: *u8, o: i64, q: *u8, s: i64, e: i64, maxn: i64) -> i64 { return sj_cat_esc(d, o, q, s, e, maxn) }
212func st_atoi_z(s: *u8) -> i64 { var v: i64 = 0; var i: i64 = 0; while s[i] != (0 as u8) { let c: i64 = s[i] as i64; if c >= 48 { if c <= 57 { v = v * 10 + (c - 48) } } i = i + 1 } return v }
called by 1: main
213func st_atoi_span(q: *u8, s: i64, e: i64) -> i64 { return sj_atoi_span(q, s, e) }
214func st_le(q: *u8, i: i64, n: i64) -> i64 { return sj_le(q, i, n) }
215func st_col(q: *u8, ls: i64, le: i64, c: i64, out: *i64) -> i64 { return sj_col(q, ls, le, c, out) }
228func st_cap_of(buf: *u8, off: i64, len: i64, cs: *i64) -> i64
called by 1: st_boot_cj
253func st_lit_eq(q: *u8, s: i64, e: i64, lit: *u8) -> i64 { return sj_lit_eq(q, s, e, lit) }
254func st_span_eq(q: *u8, s1: i64, e1: i64, s2: i64, e2: i64) -> i64
260func st_contains(q: *u8, n: i64, lit: *u8) -> i64 { return sj_span_has(q, 0, n, lit) }
called by 1: st_selftest calls 1: sj_span_has
262func st_read(path: *u8, buf: *u8, cap: i64, sizep: *i64) -> i64
290func st_meter_append(logpath: *u8, seat: *u8, sess: i64, outk: i64, cread: i64, ccre: i64, note: *u8) -> i64
294func st_meter_append_at(logpath: *u8, ts: i64, seat: *u8, sess: i64, outk: i64, cread: i64, ccre: i64, note: *u8) -> i64
327func st_has(q: *u8, n: i64, verb: *u8, ws: *u8) -> i64
340func st_first_kick(q: *u8, upto: i64, ws_s: i64, ws_e: i64) -> i64
353func st_last_ts_lit(q: *u8, n: i64, ws: *u8) -> i64
367func st_last_ts_span(q: *u8, n: i64, ws_s: i64, ws_e: i64) -> i64
383func st_last_brief(q: *u8, n: i64, ws: *u8, fs: *i64) -> i64
432func st_topdebt_unclaimed(dp: *u8, bufp: *i64, fs: *i64, cjrn: *u8, actor: *u8, now: i64, cb: *i64) -> i64
537func st_frontier_status(fbuf: *u8, fn: i64, ids: i64, ide: i64) -> i64
556func st_deps_block_count(fbuf: *u8, fn: i64, ds: i64, de: i64) -> i64
called by 1: st_ready_wl calls 1: st_frontier_status
586func st_close_first(out: *u8, o0: i64, lane: *u8, maxn: i64, wl: *u8, now: i64) -> i64
653func st_ready_wl(lane: *u8, maxn: i64, fp: *u8, cj: *u8, wl: *u8, out: *u8) -> i64
788func st_ready_cj(lane: *u8, maxn: i64, fp: *u8, cj: *u8, out: *u8) -> i64
called by 2: st_readyst_selftest calls 1: st_ready_wl
791func st_ready(lane: *u8, maxn: i64, fp: *u8, out: *u8) -> i64
called by 1: st_selftest calls 1: st_ready_cj
794func st_has_span_done(q: *u8, n: i64, ws_s: i64, ws_e: i64) -> i64
811func st_starts(q: *u8, s: i64, e: i64, lit: *u8) -> i64
823func st_done_stands(q: *u8, n: i64, from: i64, ws_s: i64, ws_e: i64, r1: *i64, r2: *i64) -> i64
837func st_shift_acc(mb: *u8, mn: i64, q: *u8, n: i64, lo: i64, hi: i64, acc: *i64) -> i64
894func st_stamp_int(b: *u8, n: i64, key: *u8) -> i64
called by 1: st_shift calls 2: st_vlenst_atoi_span
919func st_ratchet(tpd: i64, ptpd: i64, why: *i64) -> *u8
called by 1: st_shift
929func st_ratchet_landed(tpl: i64, ptpl: i64, why: *i64) -> *u8
called by 1: st_shift
938func st_stamp_beside(ml: *u8) -> *u8
called by 2: st_selftestmain calls 2: sys_mmapst_cat
945func st_shift(days: i64, ml: *u8, jr: *u8, lg: *u8, stamp: *u8, out: *u8) -> i64
1163func st_passthrough(out: *u8, o0: i64, key: *u8, path: *u8, absent: *u8) -> i64
1199func st_closecensus(out: *u8, o0: i64) -> i64
called by 1: st_boot_cj calls 1: st_passthrough
1202func st_drift(out: *u8, o0: i64) -> i64
called by 1: st_boot_cj calls 1: st_passthrough
1207func st_wip(out: *u8, o0: i64) -> i64
called by 1: st_boot_cj calls 1: st_passthrough
1210func st_boot_cj(ws: *u8, jr: *u8, dp: *u8, fp: *u8, ml: *u8, cj: *u8, out: *u8) -> i64
1469func st_boot(ws: *u8, jr: *u8, dp: *u8, fp: *u8, ml: *u8, out: *u8) -> i64
called by 2: st_selftestmain calls 1: st_boot_cj
1473func st_frame(jr: *u8, ts: i64, verb: *u8, ws: *u8, actor: *u8, note: *u8) -> i64
1500func st_cframe(cjr: *u8, ts: i64, verb: *u8, res: *u8, actor: *u8, ttl: i64, note: *u8) -> i64
1532func st_lastbrief_into(ws: *u8, jr: *u8, out: *u8, cap: i64) -> i64
1567func st_do_brief(ws: *u8, actor: *u8, note: *u8, wj: *u8, out: *u8) -> i64
1590func st_claims_run(verb: *u8, cj: *u8, ws: *u8, actor: *u8, ttl: i64, note: *u8, cout: *u8, ccap: i64, colen: *i64) -> i64
1612func st_clamp_ttl(ttl: i64, ceil: i64) -> i64
1630func st_do_checkin(ws: *u8, actor: *u8, ttl: i64, note: *u8, cj: *u8, wj: *u8, out: *u8) -> i64
1674func st_jpathish(s: *u8) -> i64
called by 1: st_co_argshift
1689func st_co_argshift(a4: *u8, a5: *u8, nout: *i64) -> i64
1701func st_claims_state(cj: *u8, ws: *u8, cout: *u8, ccap: i64, colen: *i64) -> i64
1720func st_do_checkout(ws: *u8, actor: *u8, note: *u8, cj: *u8, wj: *u8, out: *u8) -> i64
1783func st_tagval(q: *u8, ls: i64, le: i64, tag: *u8, out: *i64) -> i64
called by 2: st_do_checkoutst_do_reap calls 1: st_vlen
1803func st_reap_run(cj: *u8, actor: *u8, note: *u8, cout: *u8, ccap: i64, colen: *i64) -> i64
1821func st_reap_ttl(cfg: *u8) -> i64
1860func st_last_ts_verb_span(q: *u8, n: i64, verb: *u8, ws_s: i64, ws_e: i64) -> i64
1880func st_reaped_span(q: *u8, n: i64, ws_s: i64, ws_e: i64) -> i64
called by 1: st_ws_closed calls 1: st_last_ts_verb_span
1893func st_ws_closed(q: *u8, n: i64, ws_s: i64, ws_e: i64) -> i64
1902func st_ws_sweep(wj: *u8, actor: *u8, note: *u8, ttl: i64, now: i64, cov: *i64) -> i64
1954func st_do_reap(actor: *u8, note: *u8, cj: *u8, wj: *u8, out: *u8) -> i64
2030func st_rm_slot(strs: *u8, k: i64) -> *u8 { return ((strs as i64) + k * ST_RM_SLOT) as *u8 }
2032func st_rm_emit(lb: *u8, o: i64) -> i64
2039func st_rm_find(q: *u8, s: i64, e: i64, lit: *u8) -> i64
called by 2: st_rm_pairst_rm_scan calls 1: st_vlen
2054func st_rm_str_end(q: *u8, s: i64, le: i64) -> i64
2073func st_rm_top(q: *u8, ls: i64, le: i64, key: *u8, sp: *i64) -> i64
called by 1: st_rm_scan calls 2: st_rm_str_endst_lit_eq
2116func st_rm_cond(dst: *u8, q: *u8, s: i64, e: i64) -> i64
called by 1: st_rm_scan calls 1: st_cat_esc
2122func st_rm_hash(q: *u8, s: i64, e: i64) -> i64
called by 1: st_rm_pair
2131func st_rm_census(tn: *u8, tc: *i64, ntypes: *i64, q: *u8, s: i64, e: i64, res: *i64) -> i64
called by 1: st_rm_scan calls 1: st_lit_eq
2151func st_rm_kind(q: *u8, s: i64, e: i64) -> i64
called by 1: st_rm_scan calls 1: st_lit_eq
2167func st_rm_ends(name: *u8, ext: *u8) -> i64
2176func st_rm_join(dst: *u8, dir: *u8, name: *u8) -> i64
2185func st_rm_statml(path: *u8, mtp: *i64, szp: *i64) -> i64
called by 1: st_rm_enum calls 2: sys_mmapsys_fstatat
2200func st_rm_enum(dir: *u8, ext: *u8, names: *u8, mt: *i64, szs: *i64, cap: i64, nonj: *i64, statfail: *i64, grew: *i64) -> i64
2253func st_rm_pair(q: *u8, n: i64, res: *i64) -> i64
2365func st_rm_scan(path: *u8, res: *i64, strs: *u8, tn: *u8, tc: *i64) -> i64
2468func st_rm_state_code(res: *i64) -> i64
2480func st_rm_code_lit(c: i64) -> *u8
2490func st_rm_children(troot: *u8, sid: *u8, lb: *u8, res2: *i64, strs2: *u8, tn2: *u8, tc2: *i64) -> i64
2640func st_rm_sid(dst: *u8, name: *u8) -> i64
2655func st_rm_jscan(path: *u8, ids: *u8, nseats: i64, jfr: *i64, jlt: *i64, jtool: *u8, jg: *i64, ws: i64, we: i64, tszero: i64) -> i64
2718func st_rm_jrnl(jrn: *u8, ids: *u8, nseats: i64, jfr: *i64, jlt: *i64, jtool: *u8, jg: *i64, ws: i64, we: i64) -> i64
2763func st_rm_jseats_file(path: *u8, ids: *u8, nids: *i64, ws: i64, we: i64, floor: *i64) -> i64
2806func st_rm_jseats(jrn: *u8, ids: *u8, nids: *i64, ws: i64, we: i64, floor: *i64) -> i64
2839func st_rm_is_sid(id: *u8) -> i64
2850func st_rm_jseat_block(sid: *u8, lb: *u8, frames: i64, lastts: i64, tool: *u8) -> i64
2878func st_rm_jstate_lit(s: i64) -> *u8
called by 1: st_resume_map
2886func st_rm_seat(dir: *u8, name: *u8, smt: i64, ssz: i64, troot: *u8, lb: *u8, res: *i64, strs: *u8, tn: *u8, tc: *i64, res2: *i64, strs2: *u8, tn2: *u8, tc2: *i64, jstate: i64, jfr_i: i64, jlt_i: i64, jtool_i: *u8) -> i64
3022func st_resume_map(dir: *u8, troot: *u8, latest: i64, wsin: i64, wein: i64, jrn: *u8) -> i64
3264func st_selftest(base0: *u8) -> i64
4042func main(argc: i64, argv: *i64) -> i64