Skip to content

Agent API_p17

grisun0 edited this page Oct 23, 2026 · 12 revisions

API (page 17 of 21)

Previous: API_p16.md

progs/minicraft/minicraft.c

Depends on: kernel/string.c, progs/minios_abi.h

progs/minios_abi.h

Imported by: headers/kernel.h, headers/vga_fb.h, progs/doomedit/doomedit.c, progs/doomgeneric/doomgeneric_minios.c, progs/doomgeneric/i_minios_sound.c, progs/file/file.c, progs/freedomui/freedomui_minios.c, progs/freedomui/platform_minios.c, progs/lisp/lisp.c, progs/lua/minios.c, progs/micropython/variants/minios/minios_module.c, progs/minicraft/minicraft.c, progs/nuklear/node_editor.c, progs/nuklear/nuklear_minios.h, progs/paint/paint.c, progs/piano/piano.c, progs/pokemon/platform_minios.c, progs/quake2generic/q2generic_minios.c, progs/quake2generic/snddma_minios.c, progs/src/audio.c, progs/src/fptest.c, progs/src/freedom_wl.c, progs/src/lxproc.c, progs/src/mthreads.h, progs/src/opl3.c, progs/src/pip.c, progs/src/sbtone.c, progs/src/thdemo.c, progs/wl/wlcomp.c, tests/test_abi.c, tests/test_wl.c, tools/abi_stamp.c

  • DOOM_BACKBUF_ADDR (function) progs/minios_abi.h:133 * * All three sit in the reserved tail above DOOM_BACKBUF_ADDR (the brk cap), * so a growing heap or mmap region can...
  • range (function) progs/minios_abi.h:334 * number inside the MiniOS window and outside the pcm2 range (246-248). */ #define MINIOS_SYS_LZ4_DECOMPRESS 255...

progs/minios_png.h

Imported by: progs/file/file.c, progs/pokemon/platform_minios.c, tests/test_minios_png.c

  • mpng_332_idx (function) progs/minios_png.h:58 static int mpng_332_idx(unsigned r, unsigned g, unsigned b) -- static const char *mpng_left_candidates[MPNG_LEFT_N] = { "/icons/doom.png", "/icons/doomedit.png"...
  • mpng_nearest (function) progs/minios_png.h:63 static int mpng_nearest(const unsigned char *pal, long pal_n, unsigned r, ... -- "/icons/nuklear.png", "/icons/vedit.png", "/icons/file.png", "/icons/shell.png", "/icons/paint.png"...
  • mpng_center (function) progs/minios_png.h:84 static int mpng_center(int outer, int inner) -- for (k = 0; k < pal_n; k++) { long dr = (long)pal[k * 3] - (long)r; long dg = (long)pal[k * 3 + 1] - (long)g; long...
  • mpng_fit_scale (function) progs/minios_png.h:93 static int mpng_fit_scale(int sw, int sh, int boxw, int boxh) -- } return (int)best; } /** Docstring: centered offset of inner inside outer, negative when unfit. static int...
  • mpng_rgb_to_idx_scaled (function) progs/minios_png.h:108 static int mpng_rgb_to_idx_scaled(const unsigned char *rgb, int sw, int sh, ... -- int s = 1; int best = 1; if (sw <= 0 || sh <= 0 || boxw <= 0 || boxh <= 0) return -1; for (s = 1; s <= boxw && s <=...
  • bound (function) progs/minios_png.h:140 `* its 512 source bound (pinned by the host suite), so icon and policy
  • art never grow through t...`
  • mpng_rgb_to_332_scaled (function) progs/minios_png.h:172 static int mpng_rgb_to_332_scaled(const unsigned char *rgb, int sw, int sh, ... -- int sy = y * sh / dh; for (x = 0; x < dw; x++) { int sx = x * sw / dw; const unsigned char *p = rgb + (sy * sw + sx)...
  • mpng_blit_idx (function) progs/minios_png.h:196 static int mpng_blit_idx(unsigned char *fb, int fw, int fh, const unsign... -- if (dw > MPNG_MAX_DIM || dh > MPNG_MAX_DIM) return MPNG_ERR_BOUND; for (y = 0; y < dh; y++) { int sy = y * sh / dh...
  • mpng_load_file (function) progs/minios_png.h:222 static int mpng_load_file(const char *path, unsigned char **out, long *out_n, ... -- int dy = oy + y; if (dy < 0 || dy >= fh) continue; for (x = 0; x < tw; x++) { int dx = ox + x; if (dx < 0 || dx >=...

progs/nk_palette.h

Imported by: progs/freedomui/freedomui_minios.c, progs/nuklear/nuklear_minios.c, progs/src/freedom_wl.c, progs/wl/wlcomp.c, tests/test_wl.c

  • nk_palette_build (function) progs/nk_palette.h:22 static int nk_palette_build(unsigned char *pal, long cap)

progs/nuklear/cvm_emit.c

Depends on: kernel/string.c, progs/nuklear/cvm_emit.h

  • module (function) progs/nuklear/cvm_emit.c:3 * * Emits a cvm2 module (format v2) from a dataflow graph. Nodes are * topologically sorted (a true DAG order, so...
  • code (function) progs/nuklear/cvm_emit.c:8 `* exit code (OP_HALT leaves the operand-stack top as the exit status, which
  • the shell reports ...`
  • cb_push (function) progs/nuklear/cvm_emit.c:79 static int cb_push(struct codebuf *cb, unsigned char c)
  • cb_u32 (function) progs/nuklear/cvm_emit.c:91 static int cb_u32(struct codebuf *cb, unsigned long v)
  • cb_i64 (function) progs/nuklear/cvm_emit.c:97 static int cb_i64(struct codebuf *cb, long long v)
  • cb_patch_u32 (function) progs/nuklear/cvm_emit.c:103 static void cb_patch_u32(struct codebuf *cb, size_t pos, unsigned long v)
  • cb_imm (function) progs/nuklear/cvm_emit.c:111 static int cb_imm(struct codebuf *cb, long long v) -- static int cb_i64(struct codebuf *cb, long long v) { for (int i = 0; i < 8; i++) if (cb_push(cb, (unsigned char)(v...
  • req_inputs (function) progs/nuklear/cvm_emit.c:126 static int req_inputs(enum cvm_node_type t) -- if (v >= -128 && v <= 127) { if (cb_push(cb, OP_PUSH_IMM8) < 0) return -1; if (cb_push(cb, (unsigned char)(v &...
  • is_sink (function) progs/nuklear/cvm_emit.c:145 static int is_sink(enum cvm_node_type t)
  • topo_sort (function) progs/nuklear/cvm_emit.c:150 static int topo_sort(const struct cvm_node *nodes, int n, int *order, char *... -- case NODE_EXIT: return 1; case NODE_IF: return 3; default: return 2; } } static int is_sink(enum cvm_node_type t) {...
  • emit_operand (function) progs/nuklear/cvm_emit.c:213 static int emit_operand(struct codebuf *code, const struct cvm_node *nodes, ... -- Emit one operand: the wired local slot or the fallback literal.
  • emit_jz (function) progs/nuklear/cvm_emit.c:224 static int emit_jz(struct codebuf *code, size_t *rel_pos)
  • emit_jmp (function) progs/nuklear/cvm_emit.c:230 static int emit_jmp(struct codebuf *code, size_t *rel_pos)
  • cvm_compile (function) progs/nuklear/cvm_emit.c:236 int cvm_compile(const struct cvm_node *nodes, int n, unsigned char **out, size_t ...
  • w32 (function) progs/nuklear/cvm_emit.c:491 void w32(void *p, unsigned v) -- size_t ft = (size_t)nf * CVM_FUNC_ENTRY_SIZE; size_t gt = (size_t)ng * CVM_GLOBAL_ENTRY_SIZE; size_t nt = (size_t)nn...

progs/nuklear/cvm_emit.h

Imported by: progs/nuklear/cvm_emit.c, progs/nuklear/node_editor.c

  • graph (function) progs/nuklear/cvm_emit.h:6 * * A node graph (constants, arithmetic, bitwise, comparisons, a conditional * select, and string constants feeding...
  • err (function) progs/nuklear/cvm_emit.h:67 * err (err_cap bytes). The module is heap-allocated and owned by the caller * (free it). */ int cvm_compile(const...

progs/nuklear/node_editor.c

Depends on: kernel/string.c, progs/minios_abi.h, progs/nuklear/cvm_emit.h, progs/nuklear/nuklear_minios.h, progs/nuklear/nuklear_theme.h

progs/nuklear/nuklear_minios.c

Depends on: kernel/string.c, progs/nk_palette.h, progs/nuklear/nuklear_minios.h, progs/wl/wl_client.h, progs/wl/wl_mbox.h

progs/nuklear/nuklear_minios.h

Depends on: progs/minios_abi.h Imported by: progs/doomedit/doomedit.c, progs/file/file.c, progs/nuklear/font8x8.c, progs/nuklear/node_editor.c, progs/nuklear/nuklear_minios.c, progs/paint/paint.c, progs/piano/piano.c, progs/vedit/vedit.c

progs/nuklear/nuklear_theme.c

Depends on: kernel/string.c, progs/nuklear/nuklear_theme.h

progs/nuklear/nuklear_theme.h

Imported by: progs/doomedit/doomedit.c, progs/file/file.c, progs/nuklear/node_editor.c, progs/nuklear/nuklear_theme.c, progs/paint/paint.c, progs/piano/piano.c, progs/vedit/vedit.c, tests/test_theme.c

  • nk_theme_active (function) progs/nuklear/nuklear_theme.h:62 int nk_theme_active(char *dst, int cap); -- X(scrollbar_cursor, 24) \ X(scrollbar_cursor_hover, 25) \ X(scrollbar_cursor_active, 26) \ X(tab_header, 27) ...
  • nk_theme_probe (function) progs/nuklear/nuklear_theme.h:65 int nk_theme_probe(const char *name, unsigned char rgb[NK_THEME_KEY_COUNT][3]); -- X(tab_header, 27) \ X(knob, 28) \ X(knob_cursor, 29) \ X(knob_cursor_hover, 30) \ X(knob_cursor_active, 31) #define...
  • nk_theme_apply (function) progs/nuklear/nuklear_theme.h:68 int nk_theme_apply(struct nk_context *ctx, const char *name); -- X(knob_cursor_hover, 30) \ X(knob_cursor_active, 31) #define NK_THEME_KEY_COUNT 32 struct nk_context; /** Resolve...

progs/paint/paint.c

Depends on: kernel/string.c, progs/minios_abi.h, progs/nuklear/nuklear_minios.h, progs/nuklear/nuklear_theme.h

  • paint_clamp (function) progs/paint/paint.c:92 static int paint_clamp(int v, int lo, int hi) -- static int paint_size = 0; static int paint_down = 0; static int paint_lastx; static int paint_lasty; static int...
  • paint_plot (function) progs/paint/paint.c:99 static int paint_plot(unsigned char *buf, int w, int h, int x, int y, unsig... -- static float paint_recty; static char paint_path[PAINT_PATH_MAX] = PAINT_DEFAULT_PATH; static char...
  • paint_dab (function) progs/paint/paint.c:108 static void paint_dab(unsigned char *buf, int w, int h, int x, int y, unsig... -- if (v > hi) return hi; return v; } /** Bound-checked pixel plot, fail closed outside the canvas. static int...
  • paint_line (function) progs/paint/paint.c:119 static int paint_line(unsigned char *buf, int w, int h, int x0, int y0, int... -- } /** Filled square dab of side s centered on (x, y). static void paint_dab(unsigned char *buf, int w, int h, int x...
  • paint_rect_fill (function) progs/paint/paint.c:144 static int paint_rect_fill(unsigned char *buf, int w, int h, int x0, int y0, ... -- paint_dab(buf, w, h, x0, y0, c, s); n++; } if (x0 == x1 && y0 == y1) break; { int e2 = 2 * err; if (e2 > -dy) { err...
  • paint_circle_fill (function) progs/paint/paint.c:161 static int paint_circle_fill(unsigned char *buf, int w, int h, int cx, ... -- int xb = x0 < x1 ? x1 : x0; int ya = y0 < y1 ? y0 : y1; int yb = y0 < y1 ? y1 : y0; int x; int y; int n = 0; if...
  • paint_flood (function) progs/paint/paint.c:179 static int paint_flood(unsigned char *buf, int w, int h, int x, int y, uns... -- Bounded flood fill with mark-on-push: every cell is marked once, so * the explicit stack never exceeds the canvas size.
  • paint_nearest (function) progs/paint/paint.c:223 static int paint_nearest(const unsigned char *pal, unsigned r, unsigned g, ... -- } if (cy + 1 < h && buf[(cy + 1) * w + cx] == oc) { buf[(cy + 1) * w + cx] = nc; sx[top] = cx; sy[top] = cy + 1...
  • paint_pal (function) progs/paint/paint.c:240 static const unsigned char *paint_pal(void) -- unsigned long bd = 0xFFFFFFFFUL; unsigned k; if (!pal) return -1; for (k = 0; k < 256; k++) { long dr = (long)pal[k...
  • paint_path_ok (function) progs/paint/paint.c:251 static int paint_path_ok(const char *p) -- } /** Cached hybrid palette: built once, shared by picker, save and load. static const unsigned char...
  • paint_crc_init (function) progs/paint/paint.c:272 static void paint_crc_init(void)
  • paint_crc_update (function) progs/paint/paint.c:285 static unsigned long paint_crc_update(unsigned long c, cons...
  • paint_adler (function) progs/paint/paint.c:296 static unsigned long paint_adler(const unsigned char *p, unsigned long n) -- paint_crc_ready = 1; } static unsigned long paint_crc_update(unsigned long c, const unsigned char *p, unsigned long...
  • paint_put_u32 (function) progs/paint/paint.c:308 static int paint_put_u32(unsigned char *dst, unsigned long cap, unsigned... -- /** Adler-32 over one buffer (the zlib trailer of a single IDAT). static unsigned long paint_adler(const unsigned...
  • paint_put_bytes (function) progs/paint/paint.c:320 static int paint_put_bytes(unsigned char *dst, unsigned long cap, unsi... -- /** Bound-checked big-endian u32 store for the PNG writer. static int paint_put_u32(unsigned char *dst, unsigned...
  • paint_png_encode (function) progs/paint/paint.c:333 static long paint_png_encode(unsigned char *dst, unsigned long cap, ... -- Encode indexed pixels as 8-bit truecolor PNG (stored deflate blocks). * Returns the byte count or a negative code on...
  • paint_load_file (function) progs/paint/paint.c:461 static int paint_load_file(const char *path) -- Decode a PNG file into the canvas (top-left, clamped, nearest-mapped). * Reports through the status line, never a...
  • paint_save_file (function) progs/paint/paint.c:514 static int paint_save_file(const char *path) -- for (x = 0; x < cw; x++) { int v = paint_nearest(pal768, px[(y * w + x) * 3], px[(y * w + x) * 3 + 1], px[(y * w +...
  • paint_blit (function) progs/paint/paint.c:549 static void paint_blit(int ox, int oy) -- Blit the canvas into the NK back-buffer after rasterize (and its RGB * twin when the kernel maps it, so the canvas...
  • paint_ink (function) progs/paint/paint.c:570 static unsigned char paint_ink(void) -- int dx = ox + x; int dy = oy + y; unsigned char r, g, b; volatile uint8_t *d; if (dx < 0 || dx >= NK_W || dy < 0 ||...
  • paint_handle_input (function) progs/paint/paint.c:577 static void paint_handle_input(struct nk_context *ctx) -- nk_idx_to_rgb(paint_px[y * PAINT_W + x], &r, &g, &b); d = NK_RGB_BUF + ((dy * NK_W) + dx) * 3; d[0] = r; d[1] = g...
  • paint_ui_build (function) progs/paint/paint.c:636 static void paint_ui_build(struct nk_context *ctx) -- Build the file row, the exact-size canvas beside the tool panel, and the status row.
  • paint_pattern_present (function) progs/paint/paint.c:720 static int paint_pattern_present(int fw, int fh, int fp, int *ox, int *oy) -- Scan the whole framebuffer for the canvas marker run (first four swatches consecutive).
  • paint_selftest (function) progs/paint/paint.c:755 static int paint_selftest(void) -- break; } } if (hit) { ox = x; oy = y; return 1; } } } return 0; } /** Headless selftest for BDD: core vectors, PNG...
  • paint_gui_run (function) progs/paint/paint.c:942 static void paint_gui_run(void) -- printf("paint: composite did not land (canvas %d,%d origin %d,%d)\n", (int)paint_rectx, (int)paint_recty, origin[0]...
  • main (function) progs/paint/paint.c:992 int main(int argc, char **argv)

progs/piano/piano.c

Depends on: kernel/string.c, progs/minios_abi.h, progs/nuklear/nuklear_minios.h, progs/nuklear/nuklear_theme.h, progs/src/opl3.c

  • sys_pcm_open (function) progs/piano/piano.c:93 static long sys_pcm_open(long flags)
  • sys_pcm_write (function) progs/piano/piano.c:98 static long sys_pcm_write(const void *buf, long len) -- Returns bytes taken (NONBLOCK short count on backpressure, never a * stall), or negative on a dead path.
  • sys_pcm_close (function) progs/piano/piano.c:101 static void sys_pcm_close(void)
  • sys_yield (function) progs/piano/piano.c:104 static void sys_yield(void)
  • sys_present_idx (function) progs/piano/piano.c:112 static long sys_present_idx(int *origin) -- Indexed present (buffer id 1): the 288 KB indexed copy instead of the 864 KB RGB twin.
  • o3_op (function) progs/piano/piano.c:127 static int o3_op(int ch, int is_car)
  • o3_opreg (function) progs/piano/piano.c:131 static void o3_opreg(int ch, int is_car, int regbase, int val)
  • o3_chreg (function) progs/piano/piano.c:135 static void o3_chreg(int ch, int regbase, int val)
  • o3_note (function) progs/piano/piano.c:173 static void o3_note(int ch, int midi, int on)
  • midi_to_key (function) progs/piano/piano.c:211 static int midi_to_key(int midi)
  • clamp_midi (function) progs/piano/piano.c:234 static int clamp_midi(int m)
  • pedal_set (function) progs/piano/piano.c:241 static void pedal_set(int on) -- pressed scancode owns its channel until release.
  • voice_alloc (function) progs/piano/piano.c:255 static int voice_alloc(void)
  • note_off_key (function) progs/piano/piano.c:268 static void note_off_key(int key)
  • note_on_key (function) progs/piano/piano.c:281 static void note_on_key(int key, int midi, int vel)
  • kbd_semitone (function) progs/piano/piano.c:298 static int kbd_semitone(int code) -- ── PC-keyboard MIDI map (Fruity Loops style) ───────────────────────── PS/2 set-1 scancodes (7-bit code, E0 clear)...
  • kbd_all_off (function) progs/piano/piano.c:333 static void kbd_all_off(void)
  • note_on_sc (function) progs/piano/piano.c:339 static void note_on_sc(int code, int vel)
  • note_off_sc (function) progs/piano/piano.c:353 static void note_off_sc(int code)
  • piano_scancode (function) progs/piano/piano.c:369 static void piano_scancode(int code, int make, int e0, void *ud) -- Raw scancode hook (registered with nk_set_scancode_hook): note on/off * plus comma/period octave shift.
  • fx_configure (function) progs/piano/piano.c:421 static void fx_configure(int delay_ms, int tremolo_pct, int clip, int vol) -- #define FX_DELAY_CAP (RATE) /* 1 s of delay at 22050 Hz #define FX_DELAY_MAX_MS 800 #define FX_FEEDBACK...
  • fx_process (function) progs/piano/piano.c:440 static float fx_process(float x)
  • sb_flush (function) progs/piano/piano.c:469 static void sb_flush(void) -- Flush held bytes to the low-latency ring.
  • render_audio (function) progs/piano/piano.c:484 static void render_audio(long ms)
  • key_rect (function) progs/piano/piano.c:511 static void key_rect(int key, int *x, int *y, int *w, int *h)
  • hit_key (function) progs/piano/piano.c:518 static int hit_key(int mx, int my)
  • hit_velocity (function) progs/piano/piano.c:535 static int hit_velocity(int key, int my) -- Velocity 1..100 from the click's vertical position inside a key: the very * top is soft, the bottom is loud.
  • ctrl_hit (function) progs/piano/piano.c:563 static int ctrl_hit(int id, int mx, int my)
  • ctrl_active (function) progs/piano/piano.c:567 static int ctrl_active(int id)
  • ctrl_press (function) progs/piano/piano.c:577 static void ctrl_press(int id)
  • ui_run (function) progs/piano/piano.c:594 static void ui_run(int bench_ms) -- case 1: if (octave < 2) octave++; break; case 2: if (volume > 0) volume -= 5; break; case 3: if (volume < 100)...
  • rate (function) progs/piano/piano.c:818 * wait below caps the frame rate (bench mode skips it so the * benchmark still measures ...
  • run_selftest (function) progs/piano/piano.c:836 static int run_selftest(void) -- sys_yield(); } else { sys_yield(); } } nk_set_scancode_hook(0, 0); nk_free(&ctx); nk_sys_kbd_raw(0)...
  • run_pcm2_probe (function) progs/piano/piano.c:1015 static int run_pcm2_probe(void) -- Headless pcm2 plumbing probe (BDD hook): open NONBLOCK, stream one 2048-byte pattern, close, reopen (release...
  • main (function) progs/piano/piano.c:1042 int main(int argc, char **argv)

progs/pokemon/platform_minios.c

Depends on: headers/audio.h, kernel/string.c, progs/minios_abi.h, progs/minios_png.h

  • Difference-based, so it s...`

Next: API_p18.md

Start

Wiki

Agent Docs

Recipes

Clone this wiki locally