code wiki / (root) / nx_svcreg.nx

nx_svcreg.nx

buildroot/runtime/nx_svcreg.nx

3363 B53 linesdepth 6pulls 9 transitivereach 5 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_svcreg.nx -- DECLARATIVE SERVICE REGISTRY (systemd-unit / s6-service-dir model, sovereign): each service is declared as DATA -- name / elf / port / health-path -- on the canonical nx_registry (seg_store: additive, history kept, auditable). nx_runsv supervises a service BY NAME from this registry instead of hardcoded args (R5 of the supervisor roadmap). Record (tab-separated): name <TAB> elf <TAB> port <TAB> health. Composes nx_registry + nx_tabrec -- no new storage. license_tier: ORIGINAL

dependencies 3 imports · 2 importers

nx_registry.nx nx_tabrec.nx nx_gate.nx nx_svcreg.nx nx_runsv.nx nx_svcreg_gate.nx

imports: nx_registry.nxnx_tabrec.nxnx_gate.nx

imported by: nx_runsv.nxnx_svcreg_gate.nx

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

main gw sys_write svc_streq svc_register svc_register_pfx tr_cat tr_tab reg_put reg_put_x sts_lock sts_mm ss_cat sys_openat_append sts_werr sys_flock reg_key reg_cat ss_get sys_mmap ss_scan reg_strlen reg_id_present sts_unlock sys_flock ↻ sys_close ss_next_segid sys_mmap ↻ ss_cat ↻ ss_readall ss_segid_ok ss_begin_cap sys_mmap ↻ ss_add ss_add2 ss_len ss_commit ss_segid_ok ↻ sys_mmap ↻ ss_cat ↻

structs

none

consts

9const SVC_MAGIC_2048: i64 = 2048
10const SVC_MAGIC_65536: i64 = 65536
12const SVC_KP: *u8 = "svc:" as *u8
13const SVC_IDX: *u8 = "__svcidx__" as *u8
14const SVC_PREFIX: *u8 = "knowledge/svcreg-" as *u8

functions

16func svc_streq(a: *u8, b: *u8) -> i64 { var i: i64=0; while a[i]!=(0 as u8) { if a[i]!=b[i] { return 0 } i=i+1 } if b[i]!=(0 as u8) { return 0 } return 1 }
called by 1: main
18func svc_register_pfx(prefix: *u8, name: *u8, elf: *u8, port: *u8, health: *u8) -> i64
23func svc_get_pfx(prefix: *u8, name: *u8, ptrout: *i64, lenout: *i64) -> i64 { return reg_get(prefix, SVC_KP, name, ptrout, lenout) }
called by 2: svc_getmain calls 1: reg_get
24func svc_list_pfx(prefix: *u8, idxbuf: *u8, cap: i64) -> i64 { return reg_index(prefix, SVC_IDX, idxbuf, cap) }
called by 2: svc_listmain calls 1: reg_index
25func svc_register(name: *u8, elf: *u8, port: *u8, health: *u8) -> i64 { return svc_register_pfx(SVC_PREFIX,name,elf,port,health) }
called by 1: main calls 1: svc_register_pfx
26func svc_get(name: *u8, ptrout: *i64, lenout: *i64) -> i64 { return svc_get_pfx(SVC_PREFIX,name,ptrout,lenout) }
called by 3: mainrsa_planmain calls 1: svc_get_pfx
27func svc_list(idxbuf: *u8, cap: i64) -> i64 { return svc_list_pfx(SVC_PREFIX,idxbuf,cap) }
called by 2: rsa_planmain calls 1: svc_list_pfx
29func main(argc: i64, argv: *i64) -> i64