code wiki / _hdl_build / nx_notice.nx

nx_notice.nx

buildroot/runtime/_hdl_build/nx_notice.nx

17733 B421 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_notice.nx -- W-TD-2: THE NOTICE LEDGER. The state half of the safe-harbour posture. nx_takedown decides WHAT SHOULD HAPPEN to a notice; it is pure and holds nothing. That made it a document rather than a control (debt 1785893553): the operator's posture -- "like google or bing or ai companies i use what is available till its requested to be removed, and i inherit that different set of requirements" -- only exists if the REQUEST can be received, TIMED, and ANSWERED with evidence. ★★★★★AN INSTRUMENT THAT NOTHING IS REQUIRED TO CONSULT IS A REPORT, NOT A CONTROL (the estate's own publishing-house law, applied here). WHAT COMPLIANCE ACTUALLY REQUIRES OF THE RECORD, and why each is mechanical here: * EXPEDITIOUS RESPONSE is a claim about TIME, so the clock must start at receipt and be queryable -- `overdue` answers "what am I late on" without anyone remembering to look. * The record must be ANSWERABLE LATER, so it is APPEND-ONLY (rule 13, history is sacred). Acting on a notice APPENDS an action row referencing the id; it never edits the original. ⇒ a ledger you can rewrite is not evidence of anything, and rewriting it to look compliant is the failure mode that turns a paperwork problem into a credibility problem. * 512(i) repeat-infringer policy needs a COUNT, which needs persistence. * QUARANTINE (nx_realperson's RP_QUARANTINE, for a SUSPECTED-minor call that may have misread a lawful adult) must WITHHOLD WITHOUT DESTROYING -- so it renames into a quarantine prefix and records the move. Never unlink: the misread performer's evidence has to survive. ⚠NOT LEGAL ADVICE. This is bookkeeping built to the shape of the regime, so a human can answer quickly and prove what they did. verbs: file <class> <locator> <complainant> <w><l><c><g><s> -- record a notice; prints its id act <id> <action> [note] -- append what was done (never edits) list [n] -- recent rows overdue <now_epoch> -- notices past their statutory clock strikes <target> -- 512(i) count for a target license_tier: ORIGINAL expect_exit: 0 module: nishi-core.hosting.notice

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_estate_path.nx nx_takedown.nx nx_notice.nx

imports: nx_syscalls.nxnx_estate_path.nxnx_takedown.nx

imported by: nobody (leaf or entry point)

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

main ep_anchor sys_openat_rd sys_close sys_chdir sys_mmap nw sys_write nl_atoi nl_file_notice sys_now_realtime_sec sys_mmap ↻ sys_clock_gettime_real nl_next_id sys_mmap ↻ nl_slurp ep_open_rd sys_openat_rd ↻ sys_mmap ↻ ep_join sys_read sys_close ↻ nl_fieldnum nl_field sys_mmap ↻ nl_catn sys_mmap ↻ nl_cat td_action nl_append sys_openat_append sys_write ↻ sys_close ↻ nn sys_mmap ↻ nw ↻ sys_write ↻ td_action ↻ td_deadline_hours nl_notice_exists

structs

none

consts

36const NL_MAGIC_4096: i64 = 4096
38const NL_CAP: i64 = 1048576
39const NL_SECS_PER_HOUR: i64 = 3600

functions

41func nw(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
called by 3: nnnl_overduemain calls 1: sys_write
42func nn(v: i64) -> i64
called by 2: nl_overduemain calls 3: sys_mmapnwsys_write
52func nl_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 1: nl_strikes
53func nl_cat(d: *u8, o: i64, s: *u8) -> i64 { var i: i64 = 0; var a: i64 = o; while s[i] != (0 as u8) { d[a] = s[i]; a = a + 1; i = i + 1 } return a }
54func nl_catn(d: *u8, o: i64, v: i64) -> i64
63func nl_atoi(s: *u8) -> i64
called by 1: main
75func nl_append(line: *u8, n: i64) -> i64
88func nl_slurp(buf: *u8) -> i64
105func nl_field(buf: *u8, s: i64, e: i64, idx: i64, box: *i64) -> i64
129func nl_fieldnum(buf: *u8, s: i64, e: i64, idx: i64, box: *i64) -> i64
153func nl_next_id(now: i64) -> i64
179func nl_file_notice(class: i64, locator: *u8, complainant: *u8, valid: i64) -> i64
202func nl_notice_exists(id: i64) -> i64
229func nl_record_action(id: i64, action: i64, note: *u8) -> i64
241func nl_answered(buf: *u8, n: i64, id: i64) -> i64
266func nl_overdue(now: i64) -> i64
323func nl_strikes(target: *u8) -> i64
called by 1: main calls 4: sys_mmapnl_slurpnl_lennl_field
359func main(argc: i64, argv: *i64) -> i64