code wiki / _hdl_build / nx_mgmt_deploy_candidate_t185.nx

nx_mgmt_deploy_candidate_t185.nx

buildroot/runtime/_hdl_build/nx_mgmt_deploy_candidate_t185.nx

262144 B4046 linesdepth 17pulls 80 transitivereach 2 importersview sourcekind librarytopic mgmt
docsdependenciesstructsconstsfunctions

about

nx_mgmt_api.nx -- THE IO / TRANSPORT ring of the sovereign ecosystem control-plane API (the primary adapter). THIN by design (clean three-tier / hexagonal -- see knowledge/library/arch_*): it owns ONLY transport -- the socket loop, HTTP request parse, routing, JSON serialization, and auth gating. ALL business rules live in the LOGIC core (nx_mgmt_core, mc_*); ALL outside-world access lives in the DATA adapters (nx_mgmt_data, md_*). Dependency direction: api -> {core, data}, data -> core-free, core -> nothing (dependency inversion). The router is a PURE FUNCTION ma_handle(ctx, req, req_n, snapfile, out) -> out_n (bytes in, bytes out, NO socket); the gate drives it IN-PROCESS (no curl/shell). Reuses nx_status_daemon's HTTP-parse + Modern-Auth helpers. TRUE MONITORING (no false +/-): /api/health + /api/services read a live SNAPSHOT (md_read_file) and surface dueling-supervisors / duplicate-instances / crash-loops via the core rules; missing snapshot -> UNKNOWN, never OK. Health/services + all write actions are AUTH-gated; write actions are confirm-gated + fail-closed. Routes (auth = X-Nishi-Session Ed25519 session header, canonical Modern Auth, NO cookies): GET /api -> 200 route index (public) POST /api/login -> 200 {"token":...} | 401 GET /api/health -> (auth) 200 {overall,degraded,reasons[...]} | 401 GET /api/services -> (auth) 200 {services:[...]} | 401 POST /api/upload?target=&seq=&final=[&sha256=] -> (auth) chunked artifact publish; append raw body chunk -> <target>.upload, on final rename -> <target>.new (staged for /api/deploy; NEVER promotes) | 400 | 401 POST /api/deploy -> (auth) allowlist+validate->promote->http-health->auto-rollback | 400 | 401 POST /api/rollback -> (auth, confirm=yes) | 400 | 401 POST /api/reconcile -> (auth, confirm=yes) single-supervisor | 400 | 401 POST /api/restart -> (auth, confirm=yes, service=) surgical kick | 400 | 401 POST /api/migrate|update -> (auth) 501 reserved (R3b: URL->.site ingest) | 401 (any other) -> 404 Snapshot line format (the monitor writes; md_* reads): "SUP <n>" / "SVC <name> <port> <state> <procs> <rwin> <rtot>" argv: [1]=port [2]=keysfile [3]=storefile [4]=realm [5]=snapfile [6]=budget. license_tier: ORIGINAL

dependencies 16 imports · 2 importers

nx_resource_arbiter.nx nx_status_daemon.nx nx_mgmt_deploy_data_candidate_t185 nx_builddeploy_lib.nx nx_organkind.nx nx_mgmt_core.nx nx_access_lib.nx nx_os_introspect.nx nx_shard_view.nx nx_srcfresh.nx nx_mgmt_deploy_candidate_t185. nx_registered_rollback_gate_t185.n nx_stage_alias_gate_t185.nx

diagram shows first 10 each side; +6 more imports, +0 more importers in the complete lists below.

imports: nx_resource_arbiter.nxnx_status_daemon.nxnx_mgmt_deploy_data_candidate_t185.nxnx_builddeploy_lib.nxnx_organkind.nxnx_mgmt_core.nxnx_access_lib.nxnx_os_introspect.nxnx_shard_view.nxnx_srcfresh.nxnx_fio.nxnx_sha256.nxnx_buildecho.nxnx_routeguard_lib.nxnx_mgmt_upload.nxnx_tool_exec_allow.nx

imported by: nx_registered_rollback_gate_t185.nxnx_stage_alias_gate_t185.nx

structs

2542struct NxInstallRequest
2660struct NxInstallReceiptWriter

consts

44const MA_MAGIC_4096: i64 = 4096 // 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.
45const MA_MAGIC_16384: i64 = 16384 // 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.
46const MA_MAGIC_8192: i64 = 8192 // 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.
47const MA_MAGIC_262144: i64 = 262144 // 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.
48const MA_MAGIC_1024: i64 = 1024 // 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.
49const MA_MAGIC_2048: i64 = 2048 // 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.
50const MA_MAGIC_2046: i64 = 2046 // 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.
51const MA_MAGIC_8190: i64 = 8190 // 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.
52const MA_MAGIC_65536: i64 = 65536 // 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.
53const MA_MAGIC_16380: i64 = 16380 // 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 MA_MAGIC_262140: i64 = 262140 // 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.
55const MA_MAGIC_60000: i64 = 60000 // 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.
56const MA_MAGIC_32768: i64 = 32768 // 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.
57const MA_MAGIC_1400: i64 = 1400 // 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.
58const MA_MAGIC_2040: i64 = 2040 // 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.
59const MA_MAGIC_65500: i64 = 65500 // 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 MA_MAGIC_8000: i64 = 8000 // 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.
61const MA_MAGIC_16000: i64 = 16000 // 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.
62const MA_MAGIC_12000: i64 = 12000 // 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.
63const MA_MAGIC_300000: i64 = 300000 // 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.
64const MA_MAGIC_4000: i64 = 4000 // 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.
65const MA_MAGIC_8180: i64 = 8180 // 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.
66const MA_MAGIC_10000: i64 = 10000 // 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.
67const MA_MAGIC_2000000: i64 = 2000000 // 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.
68const MA_MAGIC_1600: i64 = 1600 // 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.
69const MA_MAGIC_20480: i64 = 20480 // 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.
70const MA_MAGIC_86400: i64 = 86400 // 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.
71const MA_MAGIC_19456: i64 = 19456 // 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.
81const MA_PROMOTE_LEASE_TTL_S: i64 = 300
88const MA_BUILD_LEASE_TTL_S: i64 = 600
89const MA_DEPLOY_LEASE_TTL_S: i64 = 600
90const MA_RESTART_LEASE_TTL_S: i64 = 300
105const TS_NONRETRY_TTL_S: i64 = 300
106const TS_JITTER_DIV: i64 = 4
108const MA_BODYCAP: i64 = 131072
117const MA_UPLOAD_REQCAP: i64 = 2097152 // 2 MiB -- the scoped upload-request buffer (headers + one big chunk body)
118const MA_UPLOAD_TOOBIG: i64 = 0 - 1 // sentinel: declared Content-Length would overflow MA_UPLOAD_REQCAP -> 413 refuse
119const MA_SHARDS_CONF: *u8 = "/volume1/homes/elderwesto/nishihost/shards.conf" as *u8 // the shard-registry SSOT the control plane reads
122const MA_ROLES: *u8 = "/volume1/ai/hub/roles.tsv" as *u8
123const MA_IDX: *u8 = "/volume1/homes/elderwesto/nishihost/nishi_uid_handle.tsv" as *u8
124const MA_LVL_READ: i64 = 2 // member+ may READ /api/health + /api/services
125const MA_LVL_ACT: i64 = 3 // OPERATOR required for the write actions (deploy/rollback/reconcile/restart)
128const CM_DAYS_DEFAULT: i64 = 30 // default cap lifetime when `days` is omitted
129const CM_DAYS_MAX: i64 = 730 // 2 years -- upper bound so a mint can't grant a near-eternal cap
130const CM_SECS_PER_DAY: i64 = 86400 // exp = now + days * this
131const CM_ALLOW_MAX: i64 = 480 // max bytes of the allow= csv (bounds the mint scratch buffers)
132const CM_NAME_MAX: i64 = 120 // max bytes of one tool name inside the csv
171const MA_ROUTES: *u8 = "/api/login /api/health /api/release_identity /api/services /api/upload /api/deploy /api/deploy_status /api/unpack /api/build /api/gate_run /api/proc_kill /api/promote /api/promote_toolchain /api/tools/register /api/cap/mint /api/hostctl /api/promote_content /api/rollback /api/reconcile /api/restart /api/openapi.json /api/migrate /api/update /api/compare/registry /api/compare/upsert /api/compare/regen /api/compare/publish"
172const MA_RT_SP: i64 = 32 // ' ' -- the separator in MA_ROUTES
173const MA_RT_QUOTE: i64 = 34 // '"' -- JSON string delimiter
174const MA_RT_COMMA: i64 = 44 // ',' -- JSON element separator
175const MA_RT_BUF: i64 = 4096 // one index body; MA_ROUTES is ~420 B and the JSON wrapper ~250 B
775const MA_MEM_AVAIL_MIN_PERMIL: i64 = 150
776const MA_SWAP_USED_MAX_PERMIL: i64 = 950
1300const MA_DEPLOY_STATUS: *u8 = "/tmp/nx_ma_deploy_status" as *u8
1611const MA_PROMOTE_REFUSE_BACKWARDS: i64 = 0 - 2
1612const MA_PROMOTE_REFUSE_CAPLOSS: i64 = 0 - 3
2387const MA_ORGAN_ALLOWLIST: *u8 = "tool_allowlist.conf" as *u8
2388const MA_ORGAN_CONFCAP: i64 = 262144
2389const MA_ORGAN_MAXARGS: i64 = 12
2452const MA_OA_INVALID: i64 = 0 - 1
2453const MA_OA_CAPACITY: i64 = 0 - 2
2454const MA_OA_ENCODING: i64 = 0 - 3
2951const MA_GR_ROOT: *u8 = "/volume1/homes/elderwesto/nishihost/" as *u8
2952const MA_GR_JOBS: *u8 = "_jobs" as *u8
2953const MA_GR_CLAIM_PROBES: i64 = 100 // the tools-API job lane's anti-collision walk: epoch-second ids, +1 per O_EXCL collision
2954const MA_GR_O_EXCL_CREATE: i64 = 193 // O_CREAT(0x40)|O_EXCL(0x80)|O_WRONLY(0x1): the reservation IS the open
2955const MA_GR_CAPTURE_CAP: i64 = MA_MAGIC_16384 // FAST-path transcript cap (rb is MA_MAGIC_65536 and ma_gate_esc can double a byte); ANNOUNCED in the payload, no longer silent
2956const MA_GR_DEADLINE_MIN_MS: i64 = 1000
2957const MA_GR_DEADLINE_MAX_MS: i64 = MA_MAGIC_300000
2958const MA_GR_SRC_CALLER: i64 = 2 // deadline_src: 0 = compiled default, 1 = conf row (TEA_SRC_*), 2 = caller's deadline_ms
3788const MA_D001_BUF: i64 = 262144

functions

136func ma_emit_json(out: *u8, prefix: *u8, body: *u8, body_n: i64) -> i64
149func ma_wants_text(req: *u8, req_n: i64) -> i64
177func ma_routes_json(b: *u8, off: i64) -> i64
called by 1: ma_index
201func ma_index_text(out: *u8) -> i64
213func ma_docs(out: *u8) -> i64
219func ma_events(out: *u8) -> i64
calls 2: sd_catsd_catn
228func ma_emit_binary(out: *u8, body: *u8, body_n: i64) -> i64
called by 1: ma_rpc calls 2: sd_catsd_catn
238func ma_rpc(req: *u8, req_n: i64, out: *u8) -> i64
257func ma_rpc_contract(out: *u8) -> i64
calls 1: ma_emit_200
274func ma_inventory(out: *u8) -> i64
329func ma_index(out: *u8) -> i64
343func op_path(out: *u8, o: i64, path: *u8, method: *u8, summary: *u8, authed: i64) -> i64
called by 1: ma_openapi calls 1: sd_cat
354func ma_openapi(out: *u8) -> i64
387func ma_emit_404(out: *u8) -> i64
392func ma_emit_403(out: *u8) -> i64
397func ma_emit_501(out: *u8) -> i64
411func ma_compiled_name(buf: *u8, n: i64, out: *u8) -> i64
437func ma_emit_400(out: *u8, body: *u8) -> i64
446func ma_emit_200(out: *u8, body: *u8) -> i64
455func ma_emit_503(out: *u8, body: *u8) -> i64
466func ma_emit_413(out: *u8) -> i64
471func ma_comma(body: *u8, b: i64, first: *i64) -> i64
478func ma_emit_services(snap: *u8, snap_n: i64, out: *u8) -> i64
530func ma_emit_shards(out: *u8) -> i64
536func ma_emit_services_file(snapfile: *u8, out: *u8) -> i64
550func mnp_readproc(path: *u8, buf: *u8, cap: i64) -> i64
571func mnp_skip_sp(buf: *u8, n: i64, p: i64) -> i64
579func mnp_pdec(buf: *u8, n: i64, p: i64, pend: *i64) -> i64
592func mnp_count_sub(buf: *u8, n: i64, needle: *u8, nl: i64) -> i64
603func mnp_find_after(buf: *u8, n: i64, key: *u8, klen: i64) -> i64
615func mnp_loadavg_milli(buf: *u8) -> i64
640func mnp_ncpu(buf: *u8, cap: i64) -> i64
647func mnp_meminfo_kb(buf: *u8, n: i64, key: *u8, klen: i64) -> i64
654func ma_emit_nodes(out: *u8) -> i64
692func ma_health_count(snap: *u8, snap_n: i64, supb: *i64, nsvcb: *i64, ndownb: *i64) -> i64
725func ma_health_reasons(snap: *u8, snap_n: i64, sup: i64, body: *u8, b0: i64) -> i64
782func ma_key_int(buf: *u8, n: i64, key: *u8) -> i64
815func ma_read_small(path: *u8, buf: *u8, cap: i64) -> i64
822func ma_mem_conf(key: *u8, defv: i64) -> i64
831func ma_mem_pressure() -> i64
850func ma_emit_health(snap: *u8, snap_n: i64, out: *u8) -> i64
903func ma_emit_health_file(snapfile: *u8, out: *u8) -> i64
915func ma_authed(ctx: *NxAuthContext, req: *u8, req_n: i64) -> i64
927func ma_auth_index()->*u8 { if (ma_auth_index_path as i64)!=0 { return ma_auth_index_path };return MA_IDX }
called by 1: ma_level_of
928func ma_auth_roles()->*u8 { if (ma_auth_roles_path as i64)!=0 { return ma_auth_roles_path };return MA_ROLES }
929func ma_level_of(ctx: *NxAuthContext, req: *u8, req_n: i64) -> i64
936func ma_confirmed(req: *u8, req_n: i64) -> i64
948func ma_login(ctx: *NxAuthContext, req: *u8, req_n: i64, out: *u8) -> i64
1001func mau_query_off(path: *u8, pn: i64) -> i64
1011func mau_qparam(path: *u8, pn: i64, qoff: i64, name: *u8, name_n: i64, voff: *i64, vlen: *i64) -> i64
1038func mau_qint(path: *u8, off: i64, len: i64) -> i64
1054func mau_build_path(path: *u8, toff: i64, tlen: i64, suffix: *u8, buf: *u8) -> i64
1066func mau_read_seq(sidecar: *u8) -> i64
1076func mau_write_seq(sidecar: *u8, val: i64) -> i64
1093func mau_hex32(dig: *u8, out: *u8) -> i64
1108func mau_hex_eq(path: *u8, hoff: i64, hlen: i64, want: *u8) -> i64
1124func mau_mkdirs(path: *u8) -> i64
1142func ma_do_upload(req: *u8, req_n: i64, out: *u8) -> i64
1301func ma_write_status(s: *u8) -> i64
1321func ma_do_adnet_creative(req: *u8, req_n: i64, out: *u8) -> i64
1351func ma_do_adnet_invoice(out: *u8) -> i64
1360func ma_do_deploy_status(out: *u8) -> i64
1372func ma_sanitize_name(src: *u8, off: i64, len: i64, buf: *u8, cap: i64) -> i64
1393func ma_json_esc_tail(src: *u8, n: i64, maxsrc: i64, dst: *u8, cap: i64) -> i64
1416func ma_read_tail(path: *u8, buf: *u8, cap: i64) -> i64
1430func ma_find(src: *u8, n: i64, pat: *u8) -> i64
1447func ma_path_exists(path: *u8) -> i64
1464func ma_bank_staged(nm: *u8) -> i64
1485func ma_restore_staged(nm: *u8) -> i64
1506func ma_hexstr_eq(a: *u8, b: *u8) -> i64
1520func ma_release_identity(out: *u8) -> i64
1536func ma_file_sha_hex(path: *u8, hexout: *u8) -> i64
1548func ma_build_dup_shadow(nm: *u8) -> i64
1576func ma_build_refusal_body(bao: *u8, ban: i64, batr: i64, nm: *u8, qrc: i64, qout: *u8) -> *u8
1613func ma_promote_refusal_body(mprc: i64, nm: *u8, livehex: *u8) -> *u8
1640func ma_build_enqueue(nm: *u8, qout: *u8) -> i64
1662func ma_runner_refused(pbuf: *u8, pn: i64) -> i64
1667func ma_do_build(req: *u8, req_n: i64, out: *u8) -> i64
2273func ma_do_unpack(req: *u8, req_n: i64, out: *u8) -> i64
2351func ma_gate_esc(d: *u8, o: i64, s: *u8, n: i64) -> i64
2393func ma_organ_resolve(nm: *u8, outp: *u8) -> i64
2455func ma_organ_arg_hex(c: i64) -> i64
2461func ma_organ_arg_legacy(c: i64) -> i64
2471func ma_organ_args_parse(raw: *u8, n: i64, encoded: i64, dst: *u8, cap: i64, av: *i64, maxargs: i64) -> i64
2521func ma_organ_args_form(body: *u8, n: i64, dst: *u8, cap: i64, av: *i64, maxargs: i64) -> i64
2551func ma_install_request_init(r: *NxInstallRequest) -> i64
2556func ma_install_request_close(r: *NxInstallRequest) -> i64
2564func ma_install_component(p: *u8,n: i64) -> i64
2582func ma_install_request_decode(body: *u8,n: i64,r: *NxInstallRequest) -> i64
2639func ma_install_dispatch(req: *u8,n: i64,level: i64,registry: *u8,snapshot_allowance: i64,intent_allowance: i64,scratch: *u8,scratch_bytes: i64,parsed: *NxInstallRequest,result: *NxRegisteredInstallResult) -> i64
2666func ma_ir_byte(w: *NxInstallReceiptWriter,ch: u8) -> i64
2675func ma_ir_text(w: *NxInstallReceiptWriter,s: *u8) -> i64
2680func ma_ir_string(w: *NxInstallReceiptWriter,s: *u8) -> i64
2700func ma_ir_number(w: *NxInstallReceiptWriter,value: i64) -> i64
2712func ma_ir_named_string(w: *NxInstallReceiptWriter,key: *u8,value: *u8) -> i64
2715func ma_ir_named_number(w: *NxInstallReceiptWriter,key: *u8,value: i64) -> i64
2718func ma_install_receipt_fields(w: *NxInstallReceiptWriter,status: i64,when: i64,request: *NxInstallRequest,result: *NxRegisteredInstallResult) -> i64
2772func ma_install_receipt_emit(w: *NxInstallReceiptWriter,status: i64,when: i64,request: *NxInstallRequest,result: *NxRegisteredInstallResult,destination: *u8,capacity: i64) -> i64
2782func ma_do_organ_run(req: *u8, req_n: i64, out: *u8) -> i64
2905func ma_gate_src(nm: *u8, sp: *u8) -> i64
2968func ma_gr_set_fixture(root: *u8, jobs: *u8, conf: *u8) -> i64 { ma_gr_root_ov = root; ma_gr_jobs_ov = jobs; ma_gr_conf_ov = conf; return 0 }
called by 1: ma_do_gate_run
2969func ma_gr_root() -> *u8 { if (ma_gr_root_ov as i64) != 0 { return ma_gr_root_ov } return MA_GR_ROOT }
2970func ma_gr_jobs() -> *u8 { if (ma_gr_jobs_ov as i64) != 0 { return ma_gr_jobs_ov } return MA_GR_JOBS }
called by 1: ma_do_gate_run
2971func ma_gr_conf() -> *u8 { if (ma_gr_conf_ov as i64) != 0 { return ma_gr_conf_ov } return TEA_WINDOW_CONF }
2973func ma_gr_verdict(rc: i64) -> *u8
2985func ma_gr_src_txt(src: i64) -> *u8
2991func ma_gr_jobpath(dst: *u8, jid: i64, sfx: *u8) -> i64
3002func ma_gr_claim(nm: *u8, pathbuf: *u8) -> i64
3031func ma_gate_run_finish() -> i64
3087func ma_gr_emit_freshness(rb: *u8, b0: i64, nm: *u8, ep: *u8) -> i64
3110func ma_do_gate_run(req: *u8, req_n: i64, out: *u8) -> i64
3243func ma_do_proc_kill(req: *u8, req_n: i64, out: *u8) -> i64
3275func ma_do_put_source(req: *u8, req_n: i64, out: *u8) -> i64
3322func ma_do_deploy(req: *u8, req_n: i64, out: *u8) -> i64
3636func ma_do_hostctl(req: *u8, req_n: i64, out: *u8) -> i64
3662func ma_do_promote_content(req: *u8, req_n: i64, out: *u8) -> i64
3730func mau_is_elf(path: *u8) -> i64
3745func ma_hexlc(c: i64) -> i64
3751func ma_hex_eq(hex: *u8, buf: *u8, off: i64, n: i64) -> i64
3790func ma_name_is_oracle(nm: *u8, n: i64) -> i64
3809func ma_d001_scan(path: *u8, buf: *u8) -> i64
3836func ma_inherits_verdict(nm: *u8, nmlen: i64) -> i64
3873func ma_lease_ttl_txt(secs: i64) -> *u8
3884func ts_retry_after_derived(b: *u8, o: i64, ttl_s: i64) -> i64
3901func ma_promote_lease_release(please: *u8) -> i64
3913func ma_promote_refuse(out: *u8, nm: *u8, kind: i64, sfx_kind: i64) -> i64
3935func ma_do_promote(req: *u8, req_n: i64, out: *u8) -> i64