nx_native_config.nx
buildroot/runtime/nx_native_config.nx
about
nx_native_config.nx -- ordered CONFIG/POLICY storage on the NATIVE substrate, replacing borrowed TSV.
Operator directive (2026-06-20): "stop using tsv, migrate, get everything to nishi ecosystem only."
A config is an ORDERED list of (key,value) field-records. Instead of a flat .tsv parsed by ad-hoc
tab-splitting, it lives in ONE content-addressed seg_store (the SAME substrate the asset catalog
uses): each row is a canon-encoded record under key "<tag>:NNNN", plus "<tag>:count". Rows read
back IN ORDER (so first-match-wins policy semantics are preserved). No TSV, no SQL -- nishi
ecosystem only (#feedback-pure-nishi-infomgmt-no-sql). Authored BY AN ORGAN (the seeder), data
lives in the store (data-driven, #11/#17). No hardware writes (Rule 26). license_tier: ORIGINAL
dependencies 4 imports · 22 importers
diagram shows first 10 each side; +0 more imports, +12 more importers in the complete lists below.
imports: nx_syscalls.nxnx_canon_cid.nxnx_uxf_decode.nxnx_seg_store.nx
imported by: _driver_exceed_gate.nxnx_arcade_serve.nxnx_asset_exceed_gate.nxnx_asset_visibility.nxnx_codec_license_gate.nxnx_emu_exceed_gate.nxnx_games_manifest_native.nxnx_games_portal.nxnx_games_reg_seed.nxnx_genesis_live.nxnx_hub_cards_seed.nxnx_hub_legacy_migrate.nxnx_hub_render.nxnx_hub_roles_seed.nxnx_ims_page.nxnx_ims_typemap_seed.nxnx_library_exceed.nxnx_night_grade.nxnx_teacher_mastery.nxnx_teacher_synthesize.nxnx_wiki_links_seed.nxnx_wiki_shell.nx
structs
| none |
consts
| 14 | const K_MAGIC_8192: i64 = 8192 |
functions
| 16 | func ncfg_streq(a: *u8, b: *u8) -> i64 called by 1: ncfg_field |
| 23 | func ncfg_key(tag: *u8, idx: i64, out: *u8) -> i64 |
| 44 | func ncfg_count_key(tag: *u8, out: *u8) -> i64 |
| 53 | func ncfg_itoa(v: i64, out: *u8) -> i64 |
| 65 | func ncfg_atoi(s: *u8, n: i64) -> i64 called by 1: ncfg_count |
| 73 | func ncfg_begin() -> *i64 { return ss_begin() } |
| 75 | func ncfg_add_row(w: *i64, tag: *u8, idx: i64, keys: *i64, vals: *i64, n: i64) -> i64 called by 20: g_panel_rowcensus_rowvis_seed_rulecl_rowemu_rowgr_row+14 calls 4: sys_mmapcanon_encodencfg_keyss_add |
| 82 | func ncfg_set_count(w: *i64, tag: *u8, count: i64) -> i64 called by 22: g_seed_realg_seed_tampercensus_seedvis_seedcl_seedemu_panel_seed+16 calls 4: sys_mmapncfg_count_keyncfg_itoass_add |
| 87 | func ncfg_commit(prefix: *u8, w: *i64) -> i64 { return ss_commit(prefix, w, sys_now_ms()) } called by 22: g_seed_realg_seed_tampercensus_seedvis_seedcl_seedemu_panel_seed+16 calls 2: ss_commitsys_now_ms |
| 99 | func ncfg_open(prefix: *u8) -> *i64 { return ss_open_cached(prefix) } |
| 100 | func ncfg_count(h: *i64, tag: *u8) -> i64 |
| 112 | func ncfg_row(h: *i64, tag: *u8, idx: i64, out_keys: *i64, out_vals: *i64, maxf: i64) -> i64 |
| 124 | func ncfg_field(keys: *i64, vals: *i64, nf: i64, name: *u8) -> *u8 called by 29: g_field_of_axisg_any_winas_games_catalogax_census_nativeax_status_nativevis_of_p+23 calls 1: ncfg_streq |