Repository navigation
Agent API_p18
Previous: API_p17.md
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:92static 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:99static 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:108static 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:119static 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:144static 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:161static 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:179static 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:223static 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:240static 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:251static 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:272static void paint_crc_init(void) -
paint_crc_update(function)progs/paint/paint.c:285static unsigned long paint_crc_update(unsigned long c, cons... -
paint_adler(function)progs/paint/paint.c:296static 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:308static 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:320static 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:333static 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:461static 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:514static 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:549static 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:570static 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:577static 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:636static 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:720static 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:755static 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:942static 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:992int main(int argc, char **argv)
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:93static long sys_pcm_open(long flags) -
sys_pcm_write(function)progs/piano/piano.c:98static 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:101static void sys_pcm_close(void) -
sys_yield(function)progs/piano/piano.c:104static void sys_yield(void) -
sys_present_idx(function)progs/piano/piano.c:112static 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:127static int o3_op(int ch, int is_car) -
o3_opreg(function)progs/piano/piano.c:131static void o3_opreg(int ch, int is_car, int regbase, int val) -
o3_chreg(function)progs/piano/piano.c:135static void o3_chreg(int ch, int regbase, int val) -
o3_note(function)progs/piano/piano.c:173static void o3_note(int ch, int midi, int on) -
midi_to_key(function)progs/piano/piano.c:211static int midi_to_key(int midi) -
clamp_midi(function)progs/piano/piano.c:234static int clamp_midi(int m) -
pedal_set(function)progs/piano/piano.c:241static void pedal_set(int on)-- pressed scancode owns its channel until release. -
voice_alloc(function)progs/piano/piano.c:255static int voice_alloc(void) -
note_off_key(function)progs/piano/piano.c:268static void note_off_key(int key) -
note_on_key(function)progs/piano/piano.c:281static void note_on_key(int key, int midi, int vel) -
kbd_semitone(function)progs/piano/piano.c:298static 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:333static void kbd_all_off(void) -
note_on_sc(function)progs/piano/piano.c:339static void note_on_sc(int code, int vel) -
note_off_sc(function)progs/piano/piano.c:353static void note_off_sc(int code) -
piano_scancode(function)progs/piano/piano.c:369static 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:421static 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:440static float fx_process(float x) -
sb_flush(function)progs/piano/piano.c:469static void sb_flush(void)-- Flush held bytes to the low-latency ring. -
render_audio(function)progs/piano/piano.c:484static void render_audio(long ms) -
key_rect(function)progs/piano/piano.c:511static void key_rect(int key, int *x, int *y, int *w, int *h) -
hit_key(function)progs/piano/piano.c:518static int hit_key(int mx, int my) -
hit_velocity(function)progs/piano/piano.c:535static 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:563static int ctrl_hit(int id, int mx, int my) -
ctrl_active(function)progs/piano/piano.c:567static int ctrl_active(int id) -
ctrl_press(function)progs/piano/piano.c:577static void ctrl_press(int id) -
ui_run(function)progs/piano/piano.c:594static 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:836static 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:1015static 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:1042int main(int argc, char **argv)
Depends on: headers/audio.h, kernel/string.c, progs/minios_abi.h, progs/minios_png.h
-
sys_time_ms(function)progs/pokemon/platform_minios.c:70static long sys_time_ms(void) -
sys_kbd(function)progs/pokemon/platform_minios.c:76static long sys_kbd(void) -
sys_nk_frame(function)progs/pokemon/platform_minios.c:82static long sys_nk_frame(int *origin) -
sys_mouse(function)progs/pokemon/platform_minios.c:88static long sys_mouse(int *xybw) -
sys_vga_mode(function)progs/pokemon/platform_minios.c:94static long sys_vga_mode(int on) -
sys_kbd_raw(function)progs/pokemon/platform_minios.c:100static long sys_kbd_raw(int on) -
sys_palette(function)progs/pokemon/platform_minios.c:106static long sys_palette(const unsigned char *pal) -
sys_gfx_title(function)progs/pokemon/platform_minios.c:112static long sys_gfx_title(const char *t) -
sys_tone(function)progs/pokemon/platform_minios.c:118static long sys_tone(unsigned f) -
sys_pcm2_open(function)progs/pokemon/platform_minios.c:124static long sys_pcm2_open(long flags) -
sys_pcm2_write(function)progs/pokemon/platform_minios.c:130static long sys_pcm2_write(const void *buf, long len) -
sys_pcm2_close(function)progs/pokemon/platform_minios.c:136static void sys_pcm2_close(void) -
gain(function)progs/pokemon/platform_minios.c:143`* timing gain (overshoot is microseconds against millisecond waits).
- Difference-based, so it s...`
-
gb_platform_set_debug(function)progs/pokemon/platform_minios.c:191void gb_platform_set_debug(bool enabled) -
audio(function)progs/pokemon/platform_minios.c:219* PC speaker audio (DOOM-style: sparse syscalls from poll points) * * Per rendered frame, live voice frequencies... -
minios_audio_sample(function)progs/pokemon/platform_minios.c:263static void minios_audio_sample(GBContext *ctx, int16_t left, int16_t right) -
gb_voice_in_range(function)progs/pokemon/platform_minios.c:307static bool gb_voice_in_range(unsigned f) -
sample_apu_voices(function)progs/pokemon/platform_minios.c:311static void sample_apu_voices(gb_voice_t *v) -
minios_audio_play(function)progs/pokemon/platform_minios.c:331static void minios_audio_play(const gb_voice_t *v, bool pcm_audible, ... -
rebuild_joypad(function)progs/pokemon/platform_minios.c:403static void rebuild_joypad(void) -
poll_keyboard(function)progs/pokemon/platform_minios.c:417static void poll_keyboard(void) -
push_332_palette(function)progs/pokemon/platform_minios.c:456static void push_332_palette(void)-- 3-3-2 RGB palette ramp, pushed ONCE at init (not per frame). * Pixel index = (R & 0xE0) | ((G & 0xE0) >> 3) | ((B &... -
menu(function)progs/pokemon/platform_minios.c:572* FILE menu (no Nuklear on purpose) * * A 16 px menu bar lives in the top margin the 2x GB image never touches * (it... -
ui_fringe_dirty(function)progs/pokemon/platform_minios.c:621static bool ui_fringe_dirty(uint32_t now) -
ui_fringe_sync(function)progs/pokemon/platform_minios.c:627static void ui_fringe_sync(uint32_t now) -
menu_fill(function)progs/pokemon/platform_minios.c:633static void menu_fill(int x0, int y0, int w, int h, uint8_t idx) -
menu_text(function)progs/pokemon/platform_minios.c:646static void menu_text(int x, int y, const char *s, uint8_t fg) -
menu_osd(function)progs/pokemon/platform_minios.c:665static void menu_osd(const char *s) -
menu_draw(function)progs/pokemon/platform_minios.c:671static void menu_draw(void) -
menu_item_at(function)progs/pokemon/platform_minios.c:701static int menu_item_at(int lx, int ly) -
menu_do_save(function)progs/pokemon/platform_minios.c:708static void menu_do_save(void) -
menu_do_load(function)progs/pokemon/platform_minios.c:724static void menu_do_load(void) -
menu_activate(function)progs/pokemon/platform_minios.c:743static void menu_activate(int it) -
poll_menu(function)progs/pokemon/platform_minios.c:777static void poll_menu(void)-- Esc toggles, Up/Down move, Enter activates; the mouse is a bonus. * PS/2 Set 1: Esc = 0x01, Up = 0x48, Down = 0x50... -
pokemon_art_load_one(function)progs/pokemon/platform_minios.c:845static int pokemon_art_load_one(const char *path, unsigned char **rgb, ... -
pokemon_art_load(function)progs/pokemon/platform_minios.c:870static void pokemon_art_load(void) -
pokemon_art_draw_one(function)progs/pokemon/platform_minios.c:888static void pokemon_art_draw_one(const unsigned char *rgb, int sw, int sh, ... -
pokemon_art_draw(function)progs/pokemon/platform_minios.c:926static void pokemon_art_draw(void) -
px_to_idx(function)progs/pokemon/platform_minios.c:957static uint8_t px_to_idx(uint32_t pixel) -
upload_frame(function)progs/pokemon/platform_minios.c:976static void upload_frame(const uint32_t *framebuffer) -
gb_platform_init(function)progs/pokemon/platform_minios.c:1057bool gb_platform_init(int scale) -
minios_persist_path(function)progs/pokemon/platform_minios.c:1089static void minios_persist_path(char *out, size_t n, const GBContext *ctx, ... -
minios_legacy_path(function)progs/pokemon/platform_minios.c:1098static void minios_legacy_path(char *out, size_t n, const GBContext *ctx, ...-- Legacy ramdisk path (pre-MiniFS fix wrote bin/.* onto volatile ramdisk). -
minios_load_helper(function)progs/pokemon/platform_minios.c:1104static bool minios_load_helper(const char *path, void *data, size_t size, ... -
minios_save_helper(function)progs/pokemon/platform_minios.c:1122static bool minios_save_helper(const char *path, const void *data, size_t size) -
minios_load_battery_ram(function)progs/pokemon/platform_minios.c:1133static bool minios_load_battery_ram(GBContext *ctx, const char *rom_name, ... -
minios_save_battery_ram(function)progs/pokemon/platform_minios.c:1148static bool minios_save_battery_ram(GBContext *ctx, const char *rom_name, ... -
minios_load_rtc_data(function)progs/pokemon/platform_minios.c:1158static bool minios_load_rtc_data(GBContext *ctx, const char *rom_name, ... -
minios_save_rtc_data(function)progs/pokemon/platform_minios.c:1171static bool minios_save_rtc_data(GBContext *ctx, const char *rom_name, ... -
minios_fast_forward(function)progs/pokemon/platform_minios.c:1209static inline bool minios_fast_forward(void) -
minios_state_path(function)progs/pokemon/platform_minios.c:1213static void minios_state_path(char *out, size_t n, const GBContext *ctx) -
minios_legacy_state_path(function)progs/pokemon/platform_minios.c:1218static void minios_legacy_state_path(char *out, size_t n, const GBContext *ctx) -
minios_autosave(function)progs/pokemon/platform_minios.c:1223static void minios_autosave(uint32_t now) -
poll_hotkeys(function)progs/pokemon/platform_minios.c:1237static void poll_hotkeys(void)-- PS/2 Set 1: F5 = 0x3F, F8 = 0x42, Ctrl = 0x1D, S = 0x1F, L = 0x26, SPACE = 0x39, Shift = 0x2A/0x36. -
gb_platform_register_context(function)progs/pokemon/platform_minios.c:1289void gb_platform_register_context(GBContext *ctx) -
gb_platform_shutdown(function)progs/pokemon/platform_minios.c:1311void gb_platform_shutdown(void) -
gb_platform_poll_events(function)progs/pokemon/platform_minios.c:1322bool gb_platform_poll_events(GBContext *ctx) -
gb_platform_render_frame(function)progs/pokemon/platform_minios.c:1331void gb_platform_render_frame(const uint32_t *framebuffer) -
frames(function)progs/pokemon/platform_minios.c:1367* frames (menu bar not on screen yet) and any frame after the * LCD-off path zeroed the ... -
gb_platform_present_framebuffer(function)progs/pokemon/platform_minios.c:1400void gb_platform_present_framebuffer(const uint32_t *framebuffer) -
gb_platform_render_lcd_off_frame(function)progs/pokemon/platform_minios.c:1412void gb_platform_render_lcd_off_frame(void) -
gb_platform_vsync(function)progs/pokemon/platform_minios.c:1434void gb_platform_vsync(uint32_t frame_cycles) -
gb_platform_set_benchmark_mode(function)progs/pokemon/platform_minios.c:1451void gb_platform_set_benchmark_mode(bool enabled) -
gb_platform_set_input_script(function)progs/pokemon/platform_minios.c:1455bool gb_platform_set_input_script(const char *script) -
gb_platform_set_input_record_file(function)progs/pokemon/platform_minios.c:1461void gb_platform_set_input_record_file(const char *path) -
gb_platform_set_persistence_dir(function)progs/pokemon/platform_minios.c:1466bool gb_platform_set_persistence_dir(const char *path) -
gb_platform_set_dump_frames(function)progs/pokemon/platform_minios.c:1475void gb_platform_set_dump_frames(const char *frames) -
gb_platform_set_dump_present_frames(function)progs/pokemon/platform_minios.c:1497void gb_platform_set_dump_present_frames(const char *frames) -
gb_platform_set_screenshot_prefix(function)progs/pokemon/platform_minios.c:1518void gb_platform_set_screenshot_prefix(const char *prefix) -
gb_platform_get_timing_info(function)progs/pokemon/platform_minios.c:1524void gb_platform_get_timing_info(GBPlatformTimingInfo *out) -
gb_platform_get_joypad(function)progs/pokemon/platform_minios.c:1531uint8_t gb_platform_get_joypad(void) -
gb_platform_set_title(function)progs/pokemon/platform_minios.c:1535void gb_platform_set_title(const char *title) -
gb_platform_get_smooth_lcd_transitions(function)progs/pokemon/platform_minios.c:1541bool gb_platform_get_smooth_lcd_transitions(void) -
gb_platform_set_smooth_lcd_transitions(function)progs/pokemon/platform_minios.c:1545void gb_platform_set_smooth_lcd_transitions(bool enabled) -
gb_platform_set_launcher_return_enabled(function)progs/pokemon/platform_minios.c:1549void gb_platform_set_launcher_return_enabled(bool enabled) -
gb_platform_get_exit_action(function)progs/pokemon/platform_minios.c:1553GBPlatformExitAction gb_platform_get_exit_action(void) -
gb_platform_submit_port_frame(function)progs/pokemon/platform_minios.c:1557void gb_platform_submit_port_frame(void *user, const GBPortFrame *frame) -
gb_platform_test_audio_concurrency(function)progs/pokemon/platform_minios.c:1563bool gb_platform_test_audio_concurrency(uint32_t frames, ...-- void gb_platform_set_launcher_return_enabled(bool enabled) { (void)enabled; } GBPlatformExitAction... -
gb_platform_test_inject_persistence_fault(function)progs/pokemon/platform_minios.c:1572void gb_platform_test_inject_persistence_fault( GBPersistenceTestTarget target, GBPersist...
Depends on: kernel/string.c, progs/doomgeneric/r_local.h, progs/minios_abi.h
-
MINIOS_DOOM_BACKBUF_ADDR(function)progs/quake2generic/q2generic_minios.c:4* MINIOS_DOOM_BACKBUF_ADDR (minios_abi.h); -
MINIOS_GFX_BUF_GAME(function)progs/quake2generic/q2generic_minios.c:5`* MINIOS_SYS_GFX_PRESENT with MINIOS_GFX_BUF_GAME (211 stays as a kernel
- compat alias) and the...`
-
sys_kbd(function)progs/quake2generic/q2generic_minios.c:30static long sys_kbd(void) -
sys_palette(function)progs/quake2generic/q2generic_minios.c:36static long sys_palette(const unsigned char *pal) -
sys_kbd_raw(function)progs/quake2generic/q2generic_minios.c:42static long sys_kbd_raw(int on) -
sys_vga_mode(function)progs/quake2generic/q2generic_minios.c:48static long sys_vga_mode(int on) -
sys_doom_frame(function)progs/quake2generic/q2generic_minios.c:54static long sys_doom_frame(void) -
sys_mouse(function)progs/quake2generic/q2generic_minios.c:60static long sys_mouse(int *buf) -
sys_set_title(function)progs/quake2generic/q2generic_minios.c:66static long sys_set_title(const char *t) -
sys_gfx_zoom(function)progs/quake2generic/q2generic_minios.c:72static long sys_gfx_zoom(long mode) -
q2g_parse_windowed(function)progs/quake2generic/q2generic_minios.c:86static void q2g_parse_windowed(int argc, char **argv) -
Sys_Quit(function)progs/quake2generic/q2generic_minios.c:99extern void Sys_Quit(void);-- Sys_Quit lives in the engine's system driver (other/q_system.c); not pulled * in through quake2.h, so declare it... -
Cbuf_AddText(function)progs/quake2generic/q2generic_minios.c:102extern void Cbuf_AddText(char *text);-- Sys_Quit lives in the engine's system driver (other/q_system.c); not pulled * in through quake2.h, so declare it... -
q2snd_probe(function)progs/quake2generic/q2generic_minios.c:106extern int q2snd_probe(void);-- Sound backend probe (snddma_minios.c): headless proof the DMA layer * reaches the pcm2 path, run with... -
q2g_parse_autoframes(function)progs/quake2generic/q2generic_minios.c:121static void q2g_parse_autoframes(int argc, char **argv) -
QG_GetMouseDiff(function)progs/quake2generic/q2generic_minios.c:154void QG_GetMouseDiff(int *dx, int *dy) -
QG_CaptureMouse(function)progs/quake2generic/q2generic_minios.c:168void QG_CaptureMouse(void) -
QG_ReleaseMouse(function)progs/quake2generic/q2generic_minios.c:172void QG_ReleaseMouse(void) -
QG_Mkdir(function)progs/quake2generic/q2generic_minios.c:175void QG_Mkdir(const char *path) -
scancode_to_q2key(function)progs/quake2generic/q2generic_minios.c:179static unsigned char scancode_to_q2key(unsigned char raw) -
extended_to_q2key(function)progs/quake2generic/q2generic_minios.c:262static unsigned char extended_to_q2key(unsigned char sc) -
kbd_poll(function)progs/quake2generic/q2generic_minios.c:280static void kbd_poll(void) -
SWimp_SetPalette(function)progs/quake2generic/q2generic_minios.c:310void SWimp_SetPalette(const unsigned char *palette) -
SWimp_SetMode(function)progs/quake2generic/q2generic_minios.c:320rserr_t SWimp_SetMode(int *pwidth, int *pheight, int mode, qboolean fullscreen) -
SWimp_Init(function)progs/quake2generic/q2generic_minios.c:337int SWimp_Init(void *hInstance, void *wndProc) -
SWimp_Shutdown(function)progs/quake2generic/q2generic_minios.c:346void SWimp_Shutdown(void) -
SWimp_BeginFrame(function)progs/quake2generic/q2generic_minios.c:349void SWimp_BeginFrame(float camera_separation) -
SWimp_EndFrame(function)progs/quake2generic/q2generic_minios.c:352void SWimp_EndFrame(void) -
SWimp_AppActivate(function)progs/quake2generic/q2generic_minios.c:381void SWimp_AppActivate(qboolean active) -
QG_Milliseconds(function)progs/quake2generic/q2generic_minios.c:385int QG_Milliseconds(void) -
main(function)progs/quake2generic/q2generic_minios.c:389int main(int argc, char **argv)
Depends on: kernel/string.c, progs/minios_abi.h
-
sys_pcm2_open(function)progs/quake2generic/snddma_minios.c:67static long sys_pcm2_open(long flags) -
sys_pcm2_write(function)progs/quake2generic/snddma_minios.c:75static long sys_pcm2_write(const void *buf, long len) -
sys_pcm2_close(function)progs/quake2generic/snddma_minios.c:83static void sys_pcm2_close(void) -
sys_time_ms(function)progs/quake2generic/snddma_minios.c:89static long sys_time_ms(void) -
q2_dma_push(function)progs/quake2generic/snddma_minios.c:104static int q2_dma_push(int end)-- Push the freshly painted range [q2_dma_written, end) in ring order with NONBLOCK writes that take what the kernel... -
SNDDMA_Init(function)progs/quake2generic/snddma_minios.c:138qboolean SNDDMA_Init(void) -
SNDDMA_GetDMAPos(function)progs/quake2generic/snddma_minios.c:182int SNDDMA_GetDMAPos(void) -
SNDDMA_Shutdown(function)progs/quake2generic/snddma_minios.c:190void SNDDMA_Shutdown(void) -
SNDDMA_BeginPainting(function)progs/quake2generic/snddma_minios.c:202void SNDDMA_BeginPainting(void) -
SNDDMA_Submit(function)progs/quake2generic/snddma_minios.c:205void SNDDMA_Submit(void) -
q2snd_probe(function)progs/quake2generic/snddma_minios.c:222int q2snd_probe(void)-- Headless plumbing probe (BDD hook): open pcm2, stream one pattern, close, report.
-
GF(function)progs/src/aes.c:8* generated procedurally from the GF(2^8) multiplicative inverse plus the * FIPS-197 affine transform, so the file... -
putchar(function)progs/src/aes.c:25int putchar(); -
strcmp(function)progs/src/aes.c:26int strcmp(); -
strlen(function)progs/src/aes.c:27int strlen(); -
fopen(function)progs/src/aes.c:28void *fopen(); -
fclose(function)progs/src/aes.c:29int fclose(); -
fread(function)progs/src/aes.c:30int fread(); -
fwrite(function)progs/src/aes.c:31int fwrite(); -
fseek(function)progs/src/aes.c:32int fseek(); -
ftell(function)progs/src/aes.c:33int ftell(); -
rewind(function)progs/src/aes.c:34void rewind(); -
malloc(function)progs/src/aes.c:35void *malloc(); -
free(function)progs/src/aes.c:36void free(); -
aes_read_all(function)progs/src/aes.c:69static char *aes_read_all(const char *name, int *len) -
aes_write_all(function)progs/src/aes.c:86static int aes_write_all(const char *name, char *data, int len) -
aes_has(function)progs/src/aes.c:96static int aes_has(const char *s, const char *needle) -
hex_val(function)progs/src/aes.c:110static int hex_val(int c) -
aes_parse_hex(function)progs/src/aes.c:117static int aes_parse_hex(const char *s, int want, int *out) -
aes_gf_mul(function)progs/src/aes.c:130static int aes_gf_mul(int a, int b)-- static int aes_parse_hex(const char *s, int want, int *out) { int i, hi, lo; if ((int)strlen(s) != want) return 0... -
aes_xtime(function)progs/src/aes.c:142static int aes_xtime(int x) -
aes_rotl8(function)progs/src/aes.c:148static int aes_rotl8(int x, int n) -
aes_init_tables(function)progs/src/aes.c:155static void aes_init_tables(void)-- Build the S-box from first principles: multiplicative inverse in GF(2^8) composed with the FIPS-197 affine transform. -
aes_key_expand(function)progs/src/aes.c:174static void aes_key_expand(const int *key)-- Expand the 32-byte key into AES_RK_LEN round-key bytes (FIPS-197 for Nk=8, Nr=14: RotWord plus SubWord every Nk... -
aes_add_round_key(function)progs/src/aes.c:209static void aes_add_round_key(int round) -
aes_sub_bytes(function)progs/src/aes.c:215static void aes_sub_bytes(void) -
aes_shift_rows(function)progs/src/aes.c:220static void aes_shift_rows(void) -
aes_mix_columns(function)progs/src/aes.c:228static void aes_mix_columns(void) -
aes_cipher(function)progs/src/aes.c:248static void aes_cipher(void) -
aes_iv_increment(function)progs/src/aes.c:263static void aes_iv_increment(void)-- int r; aes_add_round_key(0); for (r = 1; r < AES_ROUNDS; r++) { aes_sub_bytes(); aes_shift_rows()... -
aes_ctr_crypt(function)progs/src/aes.c:273static void aes_ctr_crypt(char *data, int len)-- aes_add_round_key(AES_ROUNDS); } /* Big-endian increment of the whole counter block (SP 800-38A CTR). static void... -
aes_hdr_put(function)progs/src/aes.c:288static void aes_hdr_put(char *h, int size) -
aes_hdr_get(function)progs/src/aes.c:299static int aes_hdr_get(char *h) -
aes_tool_name(function)progs/src/aes.c:307static const char *aes_tool_name(int decode) -
aes_run(function)progs/src/aes.c:312static int aes_run(int decode, const char *keyhex, const char *noncehex, const... -
main(function)progs/src/aes.c:384int main(int argc, char **argv)
Depends on: kernel/string.c
-
apsse_grind(function)progs/src/apsse.c:49static uint64_t apsse_grind(int id)-- SSE2 integer lanes, a double accumulator and an SSE2 memchr per round; the folded value depends on every lane, so a... -
apsse_worker(function)progs/src/apsse.c:75static void *apsse_worker(void *arg) -
main(function)progs/src/apsse.c:81int main(void)
-
as_sc(function)progs/src/aslr.c:10static long as_sc(long n, long a1, long a2, long a3)-- aslr -- userspace ASLR probe (self-exec chain). gen0 (no args) prints its stack pointer, brk and first-mmap... -
as_mmap(function)progs/src/aslr.c:18static long as_mmap(void) -
as_write(function)progs/src/aslr.c:31static void as_write(const char *s, unsigned long len) -
as_exit(function)progs/src/aslr.c:35static void as_exit(long code) -
as_execve(function)progs/src/aslr.c:40static void as_execve(const char *path, const char **argv) -
as_putu(function)progs/src/aslr.c:47static void as_putu(unsigned long v) -
as_atou(function)progs/src/aslr.c:59static unsigned long as_atou(const char *s) -
as_rsp(function)progs/src/aslr.c:68static unsigned long as_rsp(void) -
as_fail(function)progs/src/aslr.c:74static void as_fail(int step) -
lmain(function)progs/src/aslr.c:82int lmain(long argc, char **argv)
Depends on: progs/minios_abi.h
-
syscall1(function)progs/src/audio.c:3static long syscall1(long n, long a1) -
syscall2(function)progs/src/audio.c:9static long syscall2(long n, long a1, long a2) -
syscall3(function)progs/src/audio.c:15static long syscall3(long n, long a1, long a2, long a3) -
syscall0(function)progs/src/audio.c:21static long syscall0(long n) -
audio_init(function)progs/src/audio.c:27int audio_init(void) -
audio_tone(function)progs/src/audio.c:31void audio_tone(unsigned freq) -
audio_pcm_open(function)progs/src/audio.c:35int audio_pcm_open(unsigned rate, unsigned channels, unsigned format) -
audio_pcm_submit(function)progs/src/audio.c:40int audio_pcm_submit(const void *buf, unsigned len) -
audio_pcm_pump(function)progs/src/audio.c:44void audio_pcm_pump(void) -
audio_pcm_close(function)progs/src/audio.c:48void audio_pcm_close(void) -
audio_set_volume(function)progs/src/audio.c:52void audio_set_volume(unsigned volume) -
audio_get_volume(function)progs/src/audio.c:56unsigned audio_get_volume(void) -
audio_sb16_present(function)progs/src/audio.c:60int audio_sb16_present(void) -
audio_stream_open(function)progs/src/audio.c:64int audio_stream_open(void) -
audio_stream_close(function)progs/src/audio.c:68void audio_stream_close(int id) -
audio_stream_submit(function)progs/src/audio.c:72int audio_stream_submit(int id, const void *buf, unsigned len) -
audio_stream_volume(function)progs/src/audio.c:76void audio_stream_volume(int id, unsigned char vol)
-
bn_sc(function)progs/src/burn.c:6static long bn_sc(long n, long a1, long a2, long a3)-- burn -- SMP mixed-workload probe: brk plus mmap plus CPU burn with a deterministic checksum. -
bn_mmap(function)progs/src/burn.c:14static long bn_mmap(unsigned long len) -
bn_write(function)progs/src/burn.c:27static void bn_write(const char *s, unsigned long len) -
bn_exit(function)progs/src/burn.c:31static void bn_exit(long code) -
bn_putu(function)progs/src/burn.c:36static void bn_putu(unsigned long v) -
bn_fail(function)progs/src/burn.c:48static void bn_fail(void) -
lmain(function)progs/src/burn.c:53int lmain(void)
-
printf(function)progs/src/cp.c:1int printf(); -
fopen(function)progs/src/cp.c:2void *fopen(); -
fclose(function)progs/src/cp.c:3int fclose(); -
fread(function)progs/src/cp.c:4int fread(); -
fwrite(function)progs/src/cp.c:5int fwrite(); -
main(function)progs/src/cp.c:10int main(int argc, char **argv)
-
read_cpl(function)progs/src/cpl.c:6static long read_cpl(void)-- Ring-3 privilege probe. -
exit_now(function)progs/src/cpl.c:12static void exit_now(long code)
Depends on: kernel/string.c
-
main(function)progs/src/cvmfmt.c:19int main(void)
-
program(function)progs/src/execho.c:5* * Proves the UNIX process composition the kernel lacked: a child * produced by fork replaces its image with execve... -
path(function)progs/src/execho.c:7`* execs a ghost path (must fail -2, exits 42). The parent checks
- both wait4 results with Linux...`
-
ex_write(function)progs/src/execho.c:20static void ex_write(const char *s, unsigned long len) -
ex_exit(function)progs/src/execho.c:24static void ex_exit(long code) -
ex_fail(function)progs/src/execho.c:29static void ex_fail(int step) -
lmain(function)progs/src/execho.c:37int lmain(void)
-
et_sc(function)progs/src/execthr.c:11static long et_sc(long n, long a1, long a2, long a3)-- execthr -- execve kills sibling threads (Linux semantics). -
et_exit(function)progs/src/execthr.c:19static void et_exit(long code) -
et_thread(function)progs/src/execthr.c:27static void et_thread(void) -
lmain(function)progs/src/execthr.c:33int lmain(void)
-
fib(function)progs/src/fib.c:1int fib(int n) -
main(function)progs/src/fib.c:6int main(void)
-
fx_syscall6(function)progs/src/forktest.c:17static long fx_syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6) -
fx_strlen(function)progs/src/forktest.c:41static unsigned long fx_strlen(const char *s) -
fx_write(function)progs/src/forktest.c:47static void fx_write(const char *s) -
fx_exit(function)progs/src/forktest.c:51static void fx_exit(long code) -
this(function)progs/src/forktest.c:115* this (and the child's closes must survive below). */ fx_syscall6(SYS_close, pfd[1], 0, 0, 0, 0, 0);
Depends on: progs/minios_abi.h, progs/src/mthreads.h
-
gettid(function)progs/src/fptest.c:21* * The same run smokes gettid (Phase 0.4: the two workers must observe * distinct tids, never the constant 1) and... -
read_mxcsr(function)progs/src/fptest.c:42static unsigned int read_mxcsr(void) -
raw_gettid(function)progs/src/fptest.c:48static long raw_gettid(void) -
raw_getrandom(function)progs/src/fptest.c:52static long raw_getrandom(void *buf, unsigned long n) -
stack_align_canary(function)progs/src/fptest.c:78static void stack_align_canary(void)-- Stack-alignment canary: an aligned SSE store to a stack slot faults with #GP unless the thread entry stack satisfies... -
worker(function)progs/src/fptest.c:84static void *worker(void *p) -
main(function)progs/src/fptest.c:148int main(void)
Depends on: kernel/string.c
-
curlfree(function)progs/src/freedom.c:4* spirit of curlfree (http.c + htmlfilter.c): a bounded header phase, * Content-Length or EOF body reading... -
net_dns_resolve(function)progs/src/freedom.c:41int net_dns_resolve(const char *host);-- Ring-3 TLS build (phase 2 of docs/TLS_MIGRATION.md): host libc for sockets/stdio/strings (identical ABI numbers... -
tls_handshake(function)progs/src/freedom.c:42int tls_handshake(int fd, char *host); -
tls_send(function)progs/src/freedom.c:43int tls_send(int fd, char *buf, int len); -
tls_recv(function)progs/src/freedom.c:44int tls_recv(int fd, char *buf, int len); -
socket(function)progs/src/freedom.c:52int socket(int domain, int type, int proto);-- else -
connect(function)progs/src/freedom.c:53int connect(int fd, void *addr, int addrlen); -
sendto(function)progs/src/freedom.c:54int sendto(int fd, char *buf, int len, int flags, void *to, int tolen); -
recvfrom(function)progs/src/freedom.c:55int recvfrom(int fd, char *buf, int len, int flags, void *from, int *fromlen); -
close(function)progs/src/freedom.c:56int close(int fd); -
tls_close(function)progs/src/freedom.c:58static int tls_close(int fd)-- Session-aware close (frees the TLS session for fd, no-op when none): every fetch path must use this, never raw... -
printf(function)progs/src/freedom.c:63int printf(char *fmt, ...); -
puts(function)progs/src/freedom.c:64int puts(char *s); -
strlen(function)progs/src/freedom.c:65int strlen(char *s); -
strchr(function)progs/src/freedom.c:66char *strchr(char *s, int c); -
strcmp(function)progs/src/freedom.c:67int strcmp(char *a, char *b); -
strncmp(function)progs/src/freedom.c:68int strncmp(char *a, char *b, int n); -
memcpy(function)progs/src/freedom.c:69int memcpy(char *dst, char *src, int n); -
memset(function)progs/src/freedom.c:70int memset(char *dst, int c, int n); -
putchar(function)progs/src/freedom.c:71int putchar(int c); -
atoi(function)progs/src/freedom.c:151static int atoi(char *s)-- static char f_dom[FREEDOM_DOM_BUF]; static int f_domlen; static char f_css[FREEDOM_CSS_BUF]; static int f_csslen... -
append(function)progs/src/freedom.c:166static int append(char *dst, int pos, char *src, int cap)-- Append src to dst at pos; returns the new length or -1 when it does not fit. -
ci_lower(function)progs/src/freedom.c:176static int ci_lower(int c) -
ci_starts(function)progs/src/freedom.c:182static int ci_starts(char *s, char *pre)-- if (pos < 0) return -1; n = strlen(src); if (pos + n >= cap) return -1; memcpy(dst + pos, src, n); dst[pos + n] = 0... -
ci_eq(function)progs/src/freedom.c:193static int ci_eq(char *a, char *b)-- } /* Case-insensitive starts-with. static int ci_starts(char *s, char *pre) { while (*pre) { if (!*s) return 0; if... -
ci_index(function)progs/src/freedom.c:203static int ci_index(char *s, char *needle)-- return 1; } /* Case-insensitive equality. static int ci_eq(char *a, char *b) { while (*a && *b) { if (ci_lower(*a)... -
looks_like_url(function)progs/src/freedom.c:212static int looks_like_url(char *s)-- } return *a == 0 && b == 0; } / Case-insensitive index of needle in haystack, or -1. static int ci_index(char *s... -
has_scheme(function)progs/src/freedom.c:226static int has_scheme(char *s)-- Does s begin with ":" per RFC 3986 (ALPHA *(ALPHA/DIGIT/+/-/.) ":")? -
make_search(function)progs/src/freedom.c:242static void make_search(char *out, char *query, int cap)-- char c; c = s[0]; if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))) return 0; for (i = 1; s[i]; i++) { c =... -
split_url(function)progs/src/freedom.c:266static int split_url(char *url)-- Split an http:// or https:// URL into f_host, f_path, f_port and f_secure. -
resolve_redirect(function)progs/src/freedom.c:313static int resolve_redirect(void)-- Recompute f_host/f_path/f_port/f_secure from the last Location value. -
put_ws(function)progs/src/freedom.c:366static void put_ws(void) -
put_utf(function)progs/src/freedom.c:377static void put_utf(int c)-- Print one text byte through the UTF-8 gate. -
put_text(function)progs/src/freedom.c:427static void put_text(int c)-- Print one text byte: whitespace collapses, everything else goes * through the UTF-8 gate. -
css_append(function)progs/src/freedom.c:483static void css_append(char *s, int n) -
css_line(function)progs/src/freedom.c:489static void css_line(char *s) -
dom_append(function)progs/src/freedom.c:494static void dom_append(char *s, int n) -
dom_space(function)progs/src/freedom.c:500static void dom_space(void) -
dom_nl(function)progs/src/freedom.c:504static void dom_nl(void) -
record_attr(function)progs/src/freedom.c:509static void record_attr(void)-- int i; for (i = 0; i < n && f_domlen < FREEDOM_DOM_BUF - 1; i++) f_dom[f_domlen++] = s[i]; } static void... -
is_void_tag(function)progs/src/freedom.c:534static int is_void_tag(void)-- f_hreflen = f_vallen < 127 ? f_vallen : 127; memcpy(f_href, f_val, f_hreflen); f_href[f_hreflen] = 0; } else if... -
classify_tag(function)progs/src/freedom.c:546static void classify_tag(void)-- A tag was fully collected into f_tagn (+ attributes). -
body_byte(function)progs/src/freedom.c:631static void body_byte(int c)-- } dom_nl(); if (!is_void_tag()) f_depth++; } if (ci_eq(f_tagn, "br") || ci_eq(f_tagn, "p") || ci_eq(f_tagn, "div")... -
head_line(function)progs/src/freedom.c:796static void head_line(char *line)-- f_rel_ss = 0; return; } if (c == '&') { f_entlen = 1; f_ent[0] = 0; return; } put_text(c); } /* --- HTTP -
parse_head(function)progs/src/freedom.c:821static void parse_head(void)-- Parse the collected header block f_hdr[0..f_hlen-1] (the last four * bytes are the terminating CRLF CRLF). -
recv_body(function)progs/src/freedom.c:843static int recv_body(int fd, char *buf, int len)-- f_hdr[lend] = 0; if (i == 0) { char *sp; sp = strchr(f_hdr, ' '); if (sp) f_status = atoi(sp + 1); } else if (lend >... -
send_all(function)progs/src/freedom.c:849static int send_all(int fd, char *buf, int len)-- head_line(f_hdr + i); } f_hdr[lend] = '\r'; i = lend + 2; } } /* Receive body bytes: TLS for f_secure, plain TCP... -
fetch(function)progs/src/freedom.c:860static int fetch(char *host, char *path, int port)-- Send one HTTP request and process the response body. -
fetch_css(function)progs/src/freedom.c:1031static void fetch_css(char *host, char *path)-- Fetch a linked stylesheet and print its raw body (through the UTF-8 * gate). -
print_css_dump(function)progs/src/freedom.c:1113static void print_css_dump(void)-- } continue; } f_ws = 0; put_utf(c); got++; } } tls_close(fd); putchar('\n'); printf("freedom: %s (%d bytes)\n"... -
print_dom_dump(function)progs/src/freedom.c:1122static void print_dom_dump(void)-- putchar('\n'); printf("freedom: %s (%d bytes)\n", host, got); } /* Print the collected CSS dump. static void... -
main(function)progs/src/freedom.c:1129int main(int argc, char **argv)
Depends on: headers/vga_fb.h, kernel/string.c, progs/minios_abi.h, progs/nk_palette.h, progs/wl/wl_mini.h
Imported by: tests/test_freedom_wl.c
-
net_dns_resolve(function)progs/src/freedom_wl.c:42int net_dns_resolve(const char *host); -
tls_handshake(function)progs/src/freedom_wl.c:43int tls_handshake(int fd, char *host); -
tls_send(function)progs/src/freedom_wl.c:44int tls_send(int fd, char *buf, int len); -
tls_recv(function)progs/src/freedom_wl.c:45int tls_recv(int fd, char *buf, int len); -
tls_close(function)progs/src/freedom_wl.c:46void tls_close(int fd); -
freedom_wl_surface_id(function)progs/src/freedom_wl.c:114static long freedom_wl_surface_id(void)-- Logical Wayland-mini surface id for this client (ADR-0024). -
freedom_wl_surface_attach(function)progs/src/freedom_wl.c:129static long freedom_wl_surface_attach(FreedomWlConfig *c)-- Attach this client to the wlcomp mapping: encode an attach message for the first pool and a commit for our surface... -
freedom_wl_default(function)progs/src/freedom_wl.c:158static FreedomWlConfig freedom_wl_default(void)-- if (pool != WL_ID_POOL_BASE || w != (int)c->surface_w || h != (int)c->surface_h) return -1L; n =... -
freedom_wl_clip_rect(function)progs/src/freedom_wl.c:196static long freedom_wl_clip_rect(FreedomWlConfig *c, long *x, long *y, long *w, long *h)-- c.hops_max = WL_HOPS_MAX; c.font_w = WL_FONT_W; c.font_h = WL_FONT_H; c.port_http = 80L; c.port_https = 443L... -
freedom_wl_frame_bytes(function)progs/src/freedom_wl.c:227static long freedom_wl_frame_bytes(FreedomWlConfig *c, long w, long h)-- } if (*x + *w > c->surface_w) { w = c->surface_w - *x; } if (*y + *h > c->surface_h) { h = c->surface_h - *y; } if... -
freedom_wl_keysym(function)progs/src/freedom_wl.c:246static long freedom_wl_keysym(FreedomWlConfig *c, long sc)-- if (w <= 0L || h <= 0L) { return -1L; } if (w > c->surface_w || h > c->surface_h) { return -1L; } bytes_per_pixel =... -
freedom_wl_sanitize_utf8(function)progs/src/freedom_wl.c:286static long freedom_wl_sanitize_utf8(char *s, long cap)-- } if (make == 0x39L) { return 32L; } if (make == 0x0EL) { return 8L; } if (make == 0x0FL) { return 9L; } return -1L... -
freedom_wl_title_ok(function)progs/src/freedom_wl.c:359static long freedom_wl_title_ok(FreedomWlConfig *c, char *t, long n)-- i++; } if (o >= cap - 1L) { break; } } if (o >= cap) { return -1L; } s[o] = 0; return o; } /** Validate a window... -
wl_copy(function)progs/src/freedom_wl.c:370static long wl_copy(char *dst, char *src, long cap)-- } /** Validate a window title against the kernel title bound. static long freedom_wl_title_ok(FreedomWlConfig *c... -
wl_strlen(function)progs/src/freedom_wl.c:388static long wl_strlen(char *s, long cap)-- } i = 0L; while (src[i] != 0) { if (i + 1L >= cap) { return -1L; } dst[i] = src[i]; i++; } dst[i] = 0; return 0L; }... -
wl_append(function)progs/src/freedom_wl.c:404static long wl_append(char *dst, long pos, char *src, long cap)-- if (!s || cap <= 0L) { return -1L; } i = 0L; while (i < cap && s[i] != 0) { i++; } if (i >= cap) { return -1L; }... -
wl_ci_lower(function)progs/src/freedom_wl.c:427static long wl_ci_lower(long ch)-- } if (pos + n >= cap) { return -1L; } i = 0L; while (i < n) { dst[pos + i] = src[i]; i++; } dst[pos + n] = 0; return... -
wl_ci_starts(function)progs/src/freedom_wl.c:435static long wl_ci_starts(char *s, char *pre)-- } dst[pos + n] = 0; return pos + n; } /** ASCII lowercase fold. static long wl_ci_lower(long ch) { if (ch >= 'A' &&... -
wl_ci_contains(function)progs/src/freedom_wl.c:453static long wl_ci_contains(char *s, char *needle)-- while (*pre) { if (*s == 0) { return 0L; } if (wl_ci_lower(*s) != wl_ci_lower(*pre)) { return 0L; } s++; pre++; }... -
wl_has_scheme(function)progs/src/freedom_wl.c:467static long wl_has_scheme(char *s)-- static long wl_ci_contains(char *s, char *needle) { if (!s || !needle) { return 0L; } while (*s) { if... -
wl_looks_like_url(function)progs/src/freedom_wl.c:493static long wl_looks_like_url(char *s)-- ch = s[i]; if (ch == ':') { return 1L; } if (!((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' &&... -
wl_make_search(function)progs/src/freedom_wl.c:512static long wl_make_search(char *out, char *query, long cap)-- dot = 0L; while (*s) { if (*s == ' ' || *s == '\t') { return 0L; } if (*s == '.') { dot = 1L; } s++; } return dot; }... -
wl_split_url(function)progs/src/freedom_wl.c:544static long wl_split_url(FreedomWlConfig *c, char *url, char *host, char *path, long *port, long ...-- } else { out[pos] = query; pos++; out[pos] = 0; } if (pos < 0L) { return -1L; } query++; } return pos; } /* Split... -
wl_resolve_redirect(function)progs/src/freedom_wl.c:609static long wl_resolve_redirect(FreedomWlConfig *c, char *loc, long secure, char *host, char *pat...-- if (plen < 0L) { return 0L; } if (wl_copy(path, p + hl, c->path_max) < 0L) { return 0L; } } else { path[0] = '/'... -
wl_scroll_clamp(function)progs/src/freedom_wl.c:689static long wl_scroll_clamp(FreedomWlConfig *c, long off, long nlines)-- if (last + 1L + l >= c->path_max) { return 0L; } i = 0L; while (i < l) { path[last + 1L + i] = loc[i]; i++; }... -
wl_filter_wrap(function)progs/src/freedom_wl.c:708static long wl_filter_wrap(FreedomWlConfig *c, char *body, long n, char *lines, long maxlines, lo...-- if (nlines <= c->text_rows) { return 0L; } maxoff = nlines - c->text_rows; if (off < 0L) { return 0L; } if (off >... -
wl_status_text(function)progs/src/freedom_wl.c:951static long wl_status_text(FreedomWlConfig *c, char *host, long nbytes, long off, long nlines, ch...-- lines[li * linelen + co] = (char)ch; co++; lines[li * linelen + co] = 0; } if (co > 0L) { return li + 1L; } if (li... -
freedom_wl_build_palette(function)progs/src/freedom_wl.c:1039static long freedom_wl_build_palette(unsigned char *pal, long cap)-- Shared hybrid palette, one table for every NK-window app (progs/nk_palette.h); this wrapper keeps the historic name... -
freedom_wl_sys_present(function)progs/src/freedom_wl.c:1062static long freedom_wl_sys_present(long buf, long origin)-- static char w_host[WL_HOST_MAX]; static char w_path[WL_PATH_MAX]; static char w_loc[WL_URL_MAX]; static char... -
freedom_wl_sys_title(function)progs/src/freedom_wl.c:1069static long freedom_wl_sys_title(char *t)-- static long w_nbytes; static long w_secure; static long w_port; static long w_status; static long w_truncated; /**... -
freedom_wl_sys_palette(function)progs/src/freedom_wl.c:1076static long freedom_wl_sys_palette(unsigned char *pal)-- static long freedom_wl_sys_present(long buf, long origin) { long ret; asm volatile("syscall" : "=a"(ret)... -
freedom_wl_sys_mouse(function)progs/src/freedom_wl.c:1083static long freedom_wl_sys_mouse(long *m)-- static long freedom_wl_sys_title(char *t) { long ret; asm volatile("syscall" : "=a"(ret)... -
freedom_wl_sys_kbd(function)progs/src/freedom_wl.c:1090static long freedom_wl_sys_kbd(void)-- static long freedom_wl_sys_palette(unsigned char *pal) { long ret; asm volatile("syscall" : "=a"(ret)... -
freedom_wl_sys_vga_mode(function)progs/src/freedom_wl.c:1097static long freedom_wl_sys_vga_mode(long on)-- static long freedom_wl_sys_mouse(long *m) { long ret; asm volatile("syscall" : "=a"(ret)... -
freedom_wl_sys_kbd_raw(function)progs/src/freedom_wl.c:1104static long freedom_wl_sys_kbd_raw(long on)-- static long freedom_wl_sys_kbd(void) { long ret; asm volatile("syscall" : "=a"(ret) : "a"(MINIOS_SYS_KBD)... -
freedom_wl_sys_yield(function)progs/src/freedom_wl.c:1111static long freedom_wl_sys_yield(void)-- static long freedom_wl_sys_vga_mode(long on) { long ret; asm volatile("syscall" : "=a"(ret)... -
wl_parse_headers(function)progs/src/freedom_wl.c:1118static long wl_parse_headers(FreedomWlConfig *c, char *hdr, long *status, long *clen, long *hascl...-- static long freedom_wl_sys_kbd_raw(long on) { long ret; asm volatile("syscall" : "=a"(ret)... -
wl_fetch_raw(function)progs/src/freedom_wl.c:1210static long wl_fetch_raw(FreedomWlConfig *c, char *host, char *path, long port, long secure)-- if (!wl_ci_starts(hdr + k, "text")) { istext = 0L; } } } line++; while (hdr[i] == '\r' || hdr[i] == '\n') { i++; } }... -
wl_render(function)progs/src/freedom_wl.c:1445static long wl_render(FreedomWlConfig *c, long off)-- if (got < c->body_cap) { w_body[got] = (char)ch; got++; } else { w_truncated = 1L; } } } } tls_close((int)fd)... -
wl_browse(function)progs/src/freedom_wl.c:1532static long wl_browse(FreedomWlConfig *c)-- long ink; if (bits & (0x80 >> px)) { ink = c->bar_fg; } else { ink = c->bar_bg; } fb[(c->text_rows * c->font_h +... -
freedom_wl_selftest(function)progs/src/freedom_wl.c:1613static long freedom_wl_selftest(void)-- off = off + (long)m[3] * c->scroll_step; changed = 1L; } if (changed) { off = wl_scroll_clamp(c, off, w_nlines); if... -
freedom_wl_host_probe(function)progs/src/freedom_wl.c:1696int freedom_wl_host_probe(FreedomWlConfig *c)-- return 1L; } if (freedom_wl_sys_kbd() > 0x7FFFFFFFL) { printf("freedom_wl: kbd out of range\n"); return 1L; }... -
main(function)progs/src/freedom_wl.c:1731int main(int argc, char **argv)-- } buf[0] = 'h'; buf[1] = 'i'; buf[2] = 0; if (freedom_wl_sanitize_utf8(buf, 16L) != 2L) { return 1; } if...
-
fprintf(function)progs/src/ftest.c:4extern int fprintf(void *stream, const char *fmt, ...);-- Exercises the kernel libc surface used by loaded .o programs: fprintf to stdout/stderr, snprintf into a buffer... -
snprintf(function)progs/src/ftest.c:5extern int snprintf(char *buf, unsigned long size, const char *fmt, ...); -
printf(function)progs/src/ftest.c:6extern int printf(const char *fmt, ...); -
exit(function)progs/src/ftest.c:7extern void exit(int code); -
fopen(function)progs/src/ftest.c:11extern void *fopen(const char *path, const char *mode); -
main(function)progs/src/ftest.c:13int main(int argc, char **argv)
-
printf(function)progs/src/hello.c:2extern int printf(const char *fmt, ...);-- /* MiniOS test program — compiled as relocatable .o, loaded by kernel ELF loader -
main(function)progs/src/hello.c:4int main(int argc, char **argv)
-
kernel(function)progs/src/http.c:3* Hostnames are resolved by the kernel (net_dns_resolve syscall). */ int socket(int domain, int type, int proto); -
connect(function)progs/src/http.c:6int connect(int fd, void *addr, int addrlen); -
sendto(function)progs/src/http.c:7int sendto(int fd, char *buf, int len, int flags, void *to, int tolen); -
recvfrom(function)progs/src/http.c:8int recvfrom(int fd, char *buf, int len, int flags, void *from, int *fromlen); -
shutdown(function)progs/src/http.c:9int shutdown(int fd, int how); -
close(function)progs/src/http.c:10int close(int fd); -
net_dns_resolve(function)progs/src/http.c:11int net_dns_resolve(const char *host); -
puts(function)progs/src/http.c:12int puts(char *s); -
printf(function)progs/src/http.c:13int printf(char *fmt, ...); -
strlen(function)progs/src/http.c:14int strlen(char *s); -
putchar(function)progs/src/http.c:15int putchar(int c); -
atoi(function)progs/src/http.c:18int atoi(char *s)-- int socket(int domain, int type, int proto); int connect(int fd, void *addr, int addrlen); int sendto(int fd, char... -
main(function)progs/src/http.c:29int main(int argc, char **argv)
Next: API_p19.md
Generated offline by readmenator from commit d64a8fe9383a. Edits here are overwritten by readmenator . --rebuild.
Start
Wiki
- community_0_headers_kernel
- community_10_orphans
- community_1_progs_doomgeneric_d_englsh
- community_2_progs_src
- community_3_progs_doomgeneric_p_spec
- community_4_tools_tls_crypto
- community_5_headers_vga_fb
- community_6_progs_doomgeneric_net_defs
- community_7_headers_batch
- community_8_headers_tick
- community_9_tools_doom_pwad
- concepts
- queries
- REPORT
Agent Docs
- API
- API_p10
- API_p11
- API_p12
- API_p13
- API_p14
- API_p15
- API_p16
- API_p17
- API_p18
- API_p19
- API_p2
- API_p20
- API_p21
- API_p3
- API_p4
- API_p5
- API_p6
- API_p7
- API_p8
- API_p9
- ARCHITECTURE
- ARCHITECTURE_p2
- ARCHITECTURE_p3
- ARCHITECTURE_p4
- CONCEPTS
- GOTCHAS
- INDEX
- INDEX_p2
- KB_asm
- KB_boot
- KB_doomgeneric
- KB_doomgeneric_p10
- KB_doomgeneric_p11
- KB_doomgeneric_p12
- KB_doomgeneric_p2
- KB_doomgeneric_p3
- KB_doomgeneric_p4
- KB_doomgeneric_p5
- KB_doomgeneric_p6
- KB_doomgeneric_p7
- KB_doomgeneric_p8
- KB_doomgeneric_p9
- KB_drivers
- KB_drivers_p2
- KB_file
- KB_freedomui
- KB_fs
- KB_headers
- KB_headers_arch_x86
- KB_headers_drivers
- KB_headers_kernel
- KB_headers_p2
- KB_headers_p3
- KB_headers_p4
- KB_headers_p5
- KB_headers_p6
- KB_kernel
- KB_kernel_p2
- KB_kernel_p3
- KB_kernel_p4
- KB_lib
- KB_lisp
- KB_lua
- KB_mcp
- KB_minios
- KB_misc
- KB_misc_p2
- KB_misc_p3
- KB_mm
- KB_net
- KB_nuklear
- KB_pokemon
- KB_progs
- KB_quake2generic
- KB_root
- KB_src
- KB_src_p2
- KB_src_p3
- KB_tests
- KB_tests_p2
- KB_tls_u
- KB_tools
- KB_tools_p2
- KB_wl
- KB_x86
- MEMORY
- SECURITY
- SYMBOLS
- SYMBOLS_p10
- SYMBOLS_p11
- SYMBOLS_p12
- SYMBOLS_p13
- SYMBOLS_p14
- SYMBOLS_p15
- SYMBOLS_p16
- SYMBOLS_p17
- SYMBOLS_p18
- SYMBOLS_p19
- SYMBOLS_p2
- SYMBOLS_p20
- SYMBOLS_p21
- SYMBOLS_p22
- SYMBOLS_p23
- SYMBOLS_p24
- SYMBOLS_p25
- SYMBOLS_p26
- SYMBOLS_p27
- SYMBOLS_p3
- SYMBOLS_p4
- SYMBOLS_p5
- SYMBOLS_p6
- SYMBOLS_p7
- SYMBOLS_p8
- SYMBOLS_p9
Recipes