Repository navigation
Agent API_p8
Previous: API_p7.md
Depends on: headers/arch/x86/boot/bootdefs.h, headers/arch/x86/hal_io.h, headers/arch/x86/msr.h, headers/batch.h, headers/block.h, headers/driver.h, headers/drivers/kbd.h, headers/futex.h, headers/ide.h, headers/ktime.h, headers/lz4_kernel.h, headers/minifs.h, headers/net.h, headers/pcache.h, headers/pcm2.h, headers/pcspk.h, headers/percpu_rq.h, headers/proc_sec.h, headers/randmix.h, headers/rcu.h, headers/rtc.h, headers/sanitize.h, headers/sb16.h, headers/sched.h, headers/select_map.h, headers/shell.h, headers/spawn.h, headers/sync.h, headers/syscalls_proc.h, headers/tlb.h, headers/vga_fb.h, headers/zip.h
-
kfd_view_current(function)kernel/syscalls.c:61static kfd_view_t *kfd_view_current(void)-- Docstring: View owning the caller's fds: its own on isolated procs * and threads, the root on pid 0 and any pid... -
kfd_view_root(function)kernel/syscalls.c:71kfd_view_t *kfd_view_root(void)-- Docstring: Static root view (shell pid 0, pids without their own): * entries are the historical shared table, never... -
kfd_get(function)kernel/syscalls.c:90KFILE *kfd_get(int fd) -
kfd_put(function)kernel/syscalls.c:103void kfd_put(KFILE *f) -
kfd_view_count(function)kernel/syscalls.c:115static int kfd_view_count(kfd_view_t *v)-- } void kfd_put(KFILE *f) { irqflags_t flags; int drop = 0; if (!f) return; spin_lock_irqsave(&fd_lock, &flags)... -
untouched(function)kernel/syscalls.c:139* child untouched (caller refuses fail-closed). */ int kfd_view_copy(proc_t *child, proc_t *parent) -
NULL(function)kernel/syscalls.c:166* on NULL (already released or never owned). */ void kfd_view_release(proc_t *p) -
kfd_view_cloexec(function)kernel/syscalls.c:197void kfd_view_cloexec(void)-- Docstring: Close every CLOEXEC fd in the caller's own view (execve: the image is replaced, marked descriptors must... -
by(function)kernel/syscalls.c:225* is indexed by (syscall_number - 200). New syscalls are added by: * 1. Adding a MINIOS_SYS_* constant to... -
wall_us_now(function)kernel/syscalls.c:256unsigned long wall_us_now(void)-- wall_us_now: RTC-anchored wall clock in microseconds (Phase 0.2/0.3). -
sys_minios_dns(function)kernel/syscalls.c:266static long sys_minios_dns(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_tls_retired(function)kernel/syscalls.c:271static long sys_minios_tls_retired(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_time(function)kernel/syscalls.c:284static long sys_linux_time(long a1, long a2, long a3, long a4, long a5, long a6)-- time (201): the retired kernel-TLS handshake number now serves Linux time(2), exactly as 202 serves futex (ADR-0014... -
sys_linux_futex(function)kernel/syscalls.c:293static long sys_linux_futex(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_time(function)kernel/syscalls.c:342static long sys_minios_time(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_kbd(function)kernel/syscalls.c:346static long sys_minios_kbd(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_palette(function)kernel/syscalls.c:366static long sys_minios_palette(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_kbd_raw(function)kernel/syscalls.c:378static long sys_minios_kbd_raw(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_vga_mode(function)kernel/syscalls.c:384static long sys_minios_vga_mode(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_pcspk_init(function)kernel/syscalls.c:391static long sys_minios_pcspk_init(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_pcspk_tone(function)kernel/syscalls.c:395static long sys_minios_pcspk_tone(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_doom_frame(function)kernel/syscalls.c:409static long sys_minios_doom_frame(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_gfx_zoom(function)kernel/syscalls.c:420static long sys_minios_gfx_zoom(long a1, long a2, long a3, long a4, long a5, long a6)-- Graphics window scale request (a1): 0 native, 1 2x nearest-neighbour zoom for the 320x200 game window, 2 true... -
sys_minios_rtc(function)kernel/syscalls.c:429static long sys_minios_rtc(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_fb_info(function)kernel/syscalls.c:442static long sys_minios_fb_info(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_pcspk_vol(function)kernel/syscalls.c:462static long sys_minios_pcspk_vol(long a1, long a2, long a3, long a4, long a5, long a6) -
boot(function)kernel/syscalls.c:479* boot (minfo_sleep_init from sched_init); -
minfo_sleep_init(function)kernel/syscalls.c:486void minfo_sleep_init(int tick_ok) -
minfo_tick_wake(function)kernel/syscalls.c:491void minfo_tick_wake(void *ctx) -
view(function)kernel/syscalls.c:503* view (same as theclear` builtin). Anything else is -EINVAL. Each
- out-word is range-checked...`
-
sys_minios_spawn(function)kernel/syscalls.c:594static long sys_minios_spawn(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_lz4_compress(function)kernel/syscalls.c:605static long sys_minios_lz4_compress(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_lz4_decompress(function)kernel/syscalls.c:618static long sys_minios_lz4_decompress(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_mouse(function)kernel/syscalls.c:632static long sys_minios_mouse(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_nk_frame(function)kernel/syscalls.c:656static long sys_minios_nk_frame(long a1, long a2, long a3, long a4, long a5, long a6) -
sb16_audio_device(function)kernel/syscalls.c:669static device_t *sb16_audio_device(void)-- } static long sys_minios_nk_frame(long a1, long a2, long a3, long a4, long a5, long a6) { (void)a2; (void)a3... -
sys_minios_sb16_open(function)kernel/syscalls.c:675static long sys_minios_sb16_open(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_sb16_submit(function)kernel/syscalls.c:687static long sys_minios_sb16_submit(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_gfx_title(function)kernel/syscalls.c:698static long sys_minios_gfx_title(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_sb16_pump(function)kernel/syscalls.c:712static long sys_minios_sb16_pump(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_sb16_stream_open(function)kernel/syscalls.c:716static long sys_minios_sb16_stream_open(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_sb16_stream_close(function)kernel/syscalls.c:720static long sys_minios_sb16_stream_close(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_sb16_stream_submit(function)kernel/syscalls.c:724static long sys_minios_sb16_stream_submit(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_pcm2_open(function)kernel/syscalls.c:737static long sys_minios_pcm2_open(long a1, long a2, long a3, long a4, long a5, long a6)-- Low-latency PCM path (pcm2, syscalls 246-248): OPEN takes flags, WRITE returns bytes taken (blocking unless... -
sys_minios_pcm2_write(function)kernel/syscalls.c:742static long sys_minios_pcm2_write(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_pcm2_close(function)kernel/syscalls.c:750static long sys_minios_pcm2_close(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_clip_set(function)kernel/syscalls.c:760static long sys_minios_clip_set(long a1, long a2, long a3, long a4, long a5, long a6)-- Shared text clipboard (syscalls 249-250): SET copies len bytes in (refused past 4096, never truncated), GET copies... -
sys_minios_clip_get(function)kernel/syscalls.c:770static long sys_minios_clip_get(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_sb16_stream_vol(function)kernel/syscalls.c:786static long sys_minios_sb16_stream_vol(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_futex_wait(function)kernel/syscalls.c:799static long sys_minios_futex_wait(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_futex_wake(function)kernel/syscalls.c:805static long sys_minios_futex_wake(long a1, long a2, long a3, long a4, long a5, long a6) -
batch_kdispatch(function)kernel/syscalls.c:814static long batch_kdispatch(uint32_t opcode) -
DOOM_FRAME(function)kernel/syscalls.c:829* DOOM_FRAME (211) and NK_FRAME (220) stay as compat aliases. */ static long sys_minios_gfx_prese... -
sys_minios_getc_raw(function)kernel/syscalls.c:863static long sys_minios_getc_raw(long a1, long a2, long a3, long a4, long a5, long a6)-- Raw keystroke read for fullscreen ring-3 programs (vedit): one byte from the serial + PS/2 multiplexer with no line... -
sys_minios_submit_batch(function)kernel/syscalls.c:874static long sys_minios_submit_batch(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_rlimit(function)kernel/syscalls.c:897static long sys_minios_rlimit(long a1, long a2, long a3, long a4, long a5, long a6)-- RLIMIT/cgroups-lite (240): a1 = op (SET/GET), a2 = resource (AS/CPU/NOFILE), a3 = value for SET. -
sys_linux_getdents64(function)kernel/syscalls.c:976static long sys_linux_getdents64(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_dir_list(function)kernel/syscalls.c:1069static long sys_minios_dir_list(long a1, long a2, long a3, long a4, long a5, long a6) -
syscall_trace_enabled(function)kernel/syscalls.c:1241long syscall_trace_enabled(void) -
syscall_trace_set(function)kernel/syscalls.c:1242void syscall_trace_set(int on) -
syscall_trace_verbose_enabled(function)kernel/syscalls.c:1243long syscall_trace_verbose_enabled(void) -
syscall_trace_verbose_set(function)kernel/syscalls.c:1244void syscall_trace_verbose_set(int on) -
syscall_trace_shown(function)kernel/syscalls.c:1245unsigned long syscall_trace_shown(void) -
unchanged(function)kernel/syscalls.c:1260* unchanged (same code, same order of checks). Numbers >= 200 that * overlap real Linux ABIs stay in the switch as... -
sys_linux_read(function)kernel/syscalls.c:1271static long sys_linux_read(long a1, long a2, long a3, long a4, long a5, long a6) -
EAGAIN(function)kernel/syscalls.c:1287* writer open is EAGAIN (-11, retry); -
EOF(function)kernel/syscalls.c:1288* is EOF (0). */ KFILE *o = kfd_get(0); -
fd_write(function)kernel/syscalls.c:1327static long fd_write(long fd, const char *buf, long cnt)-- Write cnt validated user bytes to fd: a dup2/pipe override on fd 1/2 (pipeline stage stdout) is served instead of... -
sys_linux_write(function)kernel/syscalls.c:1351static long sys_linux_write(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_writev(function)kernel/syscalls.c:1358static long sys_linux_writev(long a1, long a2, long a3, long a4, long a5, long a6) -
kfd_install(function)kernel/syscalls.c:1403static long kfd_install(KFILE *f, int cloexec)-- Install an open description as the lowest free fd (>= 3), honouring * close-on-exec; shared by do_open_path's file... -
do_open_kpath(function)kernel/syscalls.c:1426static long do_open_kpath(const char *path, long flags)-- Trusted core:pathis already a kernel string (syscall argument that * passed SANITIZE_STR, or an *at(2) join... -
do_open_path(function)kernel/syscalls.c:1452static long do_open_path(const char *path, long flags) -
sys_linux_open(function)kernel/syscalls.c:1457static long sys_linux_open(long a1, long a2, long a3, long a4, long a5, long a6) -
cwd(function)kernel/syscalls.c:1466`* ENAMETOOLONG instead of silently resolving against the cwd (the bug
- that broke shutil.rmtree...`
-
kfd_claim_from(function)kernel/syscalls.c:1529static long kfd_claim_from(KFILE *f, long minfd, int cloexec)-- Claim the lowest free fd slot >= minfd for an already-opened KFILE (pipes, dup, eventfd), arming close-on-exec when... -
kfd_claim(function)kernel/syscalls.c:1554static long kfd_claim(KFILE *f) -
sys_linux_pipe2(function)kernel/syscalls.c:1578static long sys_linux_pipe2(long a1, long a2, long a3, long a4, long a5, long a6)-- pipe2 (293): O_CLOEXEC arms close-on-exec on both ends, O_NONBLOCK makes * both descriptions non-blocking; O_DIRECT... -
sys_linux_pipe(function)kernel/syscalls.c:1606static long sys_linux_pipe(long a1, long a2, long a3, long a4, long a5, long a6) -
kfd_cloexec_get(function)kernel/syscalls.c:1612static int kfd_cloexec_get(long fd)-- kfclose(w); return wfd; } ufd[0] = (int)rfd; ufd[1] = (int)wfd; return 0; } static long sys_linux_pipe(long a1, long... -
kfd_cloexec_set(function)kernel/syscalls.c:1622static void kfd_cloexec_set(long fd, int on) -
kfile_status_flags(function)kernel/syscalls.c:1633static long kfile_status_flags(KFILE *f)-- Linux open-file status flags of a description: access mode from its * kind plus O_APPEND and O_NONBLOCK. -
sys_linux_dup3(function)kernel/syscalls.c:1684static long sys_linux_dup3(long a1, long a2, long a3, long a4, long a5, long a6)-- break; case LINUX_F_SETFL: if (f) f->nonblock = (a3 & LINUX_O_NONBLOCK) ? -
sys_linux_close_range(function)kernel/syscalls.c:1694static long sys_linux_close_range(long a1, long a2, long a3, long a4, long a5, long a6)-- return r; } /* dup3 (292): dup2 with O_CLOEXEC as the only flag; old == new is EINVAL. static long... -
sys_linux_eventfd2(function)kernel/syscalls.c:1718static long sys_linux_eventfd2(long a1, long a2, long a3, long a4, long a5, long a6)-- spin_lock_irqsave(&fd_lock, &flags_irq); for (fd = lo; fd <= hi && fd < KFD_MAX; fd++) if (v->f[fd]) v->cloexec |=... -
sys_linux_eventfd(function)kernel/syscalls.c:1731static long sys_linux_eventfd(long a1, long a2, long a3, long a4, long a5, long a6) -
kfd_poll_revents(function)kernel/syscalls.c:1739int kfd_poll_revents(int fd)-- Docstring: poll(2) readiness of a non-socket descriptor (pipes, eventfds, files, console), masked by nothing: the... -
kfile_user_read(function)kernel/syscalls.c:1774static long kfile_user_read(KFILE *f, char *buf, long cnt)-- Linux read on a description: an eventfd takes its counter, a pipe read end blocks (yielding) while empty with the... -
kfile_user_write(function)kernel/syscalls.c:1804static long kfile_user_write(KFILE *f, const char *buf, long cnt)-- Linux write on a description: an eventfd adds to its counter, a pipe write end blocks (yielding) while full unless... -
sys_linux_dup(function)kernel/syscalls.c:1833static long sys_linux_dup(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_dup2(function)kernel/syscalls.c:1848static long sys_linux_dup2(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_close(function)kernel/syscalls.c:1882static long sys_linux_close(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_lseek(function)kernel/syscalls.c:1905static long sys_linux_lseek(long a1, long a2, long a3, long a4, long a5, long a6) -
mm_ensure_cur(function)kernel/syscalls.c:1923static int mm_ensure_cur(unsigned long start, unsigned long end)-- Back isolated user windows (mrun/proc_spawn_elf): their page tables start with only segments + stack mapped, so... -
sys_linux_brk(function)kernel/syscalls.c:1932static long sys_linux_brk(long a1, long a2, long a3, long a4, long a5, long a6) -
mmap_tag_file(function)kernel/syscalls.c:1973static int mmap_tag_file(unsigned long base, int ino, unsigned long off)-- Docstring: Tag a freshly carved live node as file-backed. -
mmap_range_free(function)kernel/syscalls.c:1988static int mmap_range_free(unsigned long base, unsigned long len)-- Invariant guard for every range mmap hands out: it must not overlap a live mapping or reach below the brk heap. -
sys_linux_mmap(function)kernel/syscalls.c:1997static long sys_linux_mmap(long a1, long a2, long a3, long a4, long a5, long a6) -
vma_live_first_overlap(function)kernel/syscalls.c:2095static vma_node_t *vma_live_first_overlap(unsigned long base, unsigned long end)-- Lowest live mapping overlapping [base, end), or VMA_NIL. -
vma_live_remainder(function)kernel/syscalls.c:2112static int vma_live_remainder(unsigned long base, unsigned long len, int file, int ino, u...-- int sp = 0; vma_node_t *x = vma_live_root; while (x != VMA_NIL || sp > 0) { while (x != VMA_NIL) { if (sp < 64)... -
split(function)kernel/syscalls.c:2126* hold a split (the mapping is restored untouched). */ static long sys_linux_munmap(long a1, long... -
mprotect_pte(function)kernel/syscalls.c:2176static volatile unsigned long *mprotect_pte(unsigned long cr3, unsigned long va)-- Docstring: Locate the PTE for a user address in the caller's live tables (syscall entry keeps the caller CR3 loaded... -
first(function)kernel/syscalls.c:2200`* passes under mm_lock: validate every page first (present, user,
- private), then apply, so a h...`
-
vma_free_cover(function)kernel/syscalls.c:2281static vma_node_t *vma_free_cover(unsigned long base, unsigned long len)-- Free-tree node covering [base, base+len) entirely, or VMA_NIL. -
vma_live_overlap(function)kernel/syscalls.c:2300static int vma_live_overlap(unsigned long base, unsigned long len)-- while (x != VMA_NIL || sp > 0) { while (x != VMA_NIL) { if (sp < 64) stack[sp++] = x; x = x->left; } x =... -
node(function)kernel/syscalls.c:2322* mapping is one exact live VMA node (what mmap inserts); -
sys_linux_mremap(function)kernel/syscalls.c:2327static long sys_linux_mremap(long a1, long a2, long a3, long a4, long a5, long a6)-- Linux mremap(25): resize or move one mmap region. glibc's realloc calls it when growing large mmap'd chunks (the... -
sys_linux_sigaction(function)kernel/syscalls.c:2593static long sys_linux_sigaction(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_sigprocmask(function)kernel/syscalls.c:2598static long sys_linux_sigprocmask(long a1, long a2, long a3, long a4, long a5, long a6) -
kfile_readable_bytes(function)kernel/syscalls.c:2617static int kfile_readable_bytes(KFILE *f)-- #define LINUX_TCGETS 0x5401 #define LINUX_TIOCGWINSZ 0x5413 #define LINUX_FIONREAD 0x541B #define... -
FIONREAD(function)kernel/syscalls.c:2633`* descriptor answers FIONREAD (bytes readable now), FIONBIO (O_NONBLOCK),
- FIOCLEX/FIONCLEX (FD...`
-
sys_linux_access(function)kernel/syscalls.c:2673static long sys_linux_access(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_socket(function)kernel/syscalls.c:2695static long sys_linux_socket(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_connect(function)kernel/syscalls.c:2700static long sys_linux_connect(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_bind(function)kernel/syscalls.c:2706static long sys_linux_bind(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_listen(function)kernel/syscalls.c:2712static long sys_linux_listen(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_accept(function)kernel/syscalls.c:2717static long sys_linux_accept(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_sendto(function)kernel/syscalls.c:2723static long sys_linux_sendto(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_recvfrom(function)kernel/syscalls.c:2728static long sys_linux_recvfrom(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_shutdown(function)kernel/syscalls.c:2733static long sys_linux_shutdown(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_prlimit64(function)kernel/syscalls.c:2768static long sys_linux_prlimit64(long a1, long a2, long a3, long a4, long a5, long a6)-- prlimit64(pid, resource, new, old): pid 0 or a live pid. -
sys_linux_sched_getaffinity(function)kernel/syscalls.c:2801static long sys_linux_sched_getaffinity(long a1, long a2, long a3, long a4, long a5, long a6)-- sched_getaffinity(pid, size, mask): every task may run on every CPU, so the mask has the low cpu_count bits set; the... -
linux_timespec_us(function)kernel/syscalls.c:2823static long linux_timespec_us(long ts)-- Microseconds of a user timespec, or -EINVAL when it is malformed * (negative, or tv_nsec outside [0, 1e9)); huge... -
sys_linux_pause(function)kernel/syscalls.c:2840static long sys_linux_pause(long a1, long a2, long a3, long a4, long a5, long a6)-- pause(34): wait for a signal. -
sys_linux_nanosleep(function)kernel/syscalls.c:2848static long sys_linux_nanosleep(long a1, long a2, long a3, long a4, long a5, long a6)-- nanosleep(35): sleep the relative interval at *req on the monotonic * clock; -EINVAL for a malformed interval... -
clock(function)kernel/syscalls.c:2859* clock (the monotonic TSC clock times it, as Linux does: glibc sends * every nanosleep here as a relative... -
clock_gettime(function)kernel/syscalls.c:2863* clock_gettime(1) reads. */ static long sys_linux_clock_nanosleep(long a1, long a2, long a3, lon... -
long(function)kernel/syscalls.c:2865unsigned long (*now)(void); -
sys_linux_setsockopt(function)kernel/syscalls.c:2880static long sys_linux_setsockopt(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_getsockopt(function)kernel/syscalls.c:2887static long sys_linux_getsockopt(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_getsockname(function)kernel/syscalls.c:2894static long sys_linux_getsockname(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_getpeername(function)kernel/syscalls.c:2900static long sys_linux_getpeername(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_sendmsg(function)kernel/syscalls.c:2906static long sys_linux_sendmsg(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_sendmmsg(function)kernel/syscalls.c:2912static long sys_linux_sendmmsg(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_poll(function)kernel/syscalls.c:2920static long sys_linux_poll(long a1, long a2, long a3, long a4, long a5, long a6) -
select_timeout_ms(function)kernel/syscalls.c:2946static int select_timeout_ms(const long *t, int pselect, long *out)-- Convert a sanitized timeval/timespec to a net_sys_poll budget: 0 polls once, -1 waits forever (net_sys_poll's... -
sys_linux_select(function)kernel/syscalls.c:3031static long sys_linux_select(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_pselect6(function)kernel/syscalls.c:3036static long sys_linux_pselect6(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_flock(function)kernel/syscalls.c:3041static long sys_linux_flock(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_fsync(function)kernel/syscalls.c:3050static long sys_linux_fsync(long a1, long a2, long a3, long a4, long a5, long a6)-- fsync/fdatasync: the ramdisk is memory (always durable) and MiniFS persists through kfclose/minifs_sync, so there is... -
sys_linux_fdatasync(function)kernel/syscalls.c:3055static long sys_linux_fdatasync(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_getcwd(function)kernel/syscalls.c:3060static long sys_linux_getcwd(long a1, long a2, long a3, long a4, long a5, long a6) -
unlink_kpath(function)kernel/syscalls.c:3073static long unlink_kpath(const char *path)-- static long sys_linux_getcwd(long a1, long a2, long a3, long a4, long a5, long a6) { (void)a3; (void)a4; (void)a5... -
sys_linux_unlink(function)kernel/syscalls.c:3089static long sys_linux_unlink(long a1, long a2, long a3, long a4, long a5, long a6) -
readlink_path(function)kernel/syscalls.c:3101static long readlink_path(const char *path, char *buf, long bufsz)-- readlink of /proc/self/exe answers the caller's image path (absolute, no NUL, truncated to the buffer like Linux)... -
sys_linux_readlink(function)kernel/syscalls.c:3117static long sys_linux_readlink(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_prctl(function)kernel/syscalls.c:3123static long sys_linux_prctl(long a1, long a2, long a3, long a4, long a5, long a6)-- if (!exe[0]) return -2; len = (long)kstrlen(exe) + 1; if (len > bufsz) len = bufsz; buf[0] = '/'; for (i = 1; i <... -
sys_linux_rename(function)kernel/syscalls.c:3132static long sys_linux_rename(long a1, long a2, long a3, long a4, long a5, long a6)-- rename(82): same-filesystem file move through fs_rename (ramdisk in-place, MiniFS entry move). -
sys_linux_fstat(function)kernel/syscalls.c:3146static long sys_linux_fstat(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_gettimeofday(function)kernel/syscalls.c:3171static long sys_linux_gettimeofday(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_arch_prctl(function)kernel/syscalls.c:3194static long sys_linux_arch_prctl(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_uname(function)kernel/syscalls.c:3206static long sys_linux_uname(long a1, long a2, long a3, long a4, long a5, long a6) -
answer(function)kernel/syscalls.c:3230`* made glibc answer (uid_t)-1, which CPython's startup reads. */ #define LINUX_UID_GID_ROOT 0
st...`
-
sys_linux_getgid(function)kernel/syscalls.c:3238static long sys_linux_getgid(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_geteuid(function)kernel/syscalls.c:3243static long sys_linux_geteuid(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_getegid(function)kernel/syscalls.c:3248static long sys_linux_getegid(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_madvise(function)kernel/syscalls.c:3255static long sys_linux_madvise(long a1, long a2, long a3, long a4, long a5, long a6)-- madvise (28): advice only; glibc frees thread stacks with it and * ignores the result, MiniOS keeps the pages, so 0... -
sys_linux_mkdir(function)kernel/syscalls.c:3263static long sys_linux_mkdir(long a1, long a2, long a3, long a4, long a5, long a6)-- mkdir (83): a MiniFS directory. -
rmdir_kpath(function)kernel/syscalls.c:3299static long rmdir_kpath(const char *path)-- rmdir (84): remove one empty MiniFS directory (the ramdisk carries no directories of its own; its prefixes come from... -
sys_linux_rmdir(function)kernel/syscalls.c:3320static long sys_linux_rmdir(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_umask(function)kernel/syscalls.c:3334static long sys_linux_umask(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_fchmod(function)kernel/syscalls.c:3357static long sys_linux_fchmod(long a1, long a2, long a3, long a4, long a5, long a6) -
trace_is_noisy(function)kernel/syscalls.c:3443static int trace_is_noisy(long n) -
syscall_name(function)kernel/syscalls.c:3472const char *syscall_name(long n)-- define SC_EXTRA_COUNT (sizeof(sc_extra_names) / sizeof(sc_extra_names[0])) -
trace_hint_print(function)kernel/syscalls.c:3513static void trace_hint_print(long n, int kind, const char *path, lon... -
sc_record(function)kernel/syscalls.c:3537static void sc_record(long n, long a1, long a2, long a3, long ret) -
sc_hex(function)kernel/syscalls.c:3557static void sc_hex(unsigned long v) -
sc_record_dump(function)kernel/syscalls.c:3567void sc_record_dump(int pid)-- e->a3 = a3; e->ret = ret; } static void sc_hex(unsigned long v) { static const char digits[] = "0123456789abcdef"... -
ksyscall(function)kernel/syscalls.c:3585long ksyscall(long n, long a1, long a2, long a3, long a4, long a5, long a6) -
user_range_ok(function)kernel/syscalls.c:3624int user_range_ok(unsigned long p, unsigned long len) -
Discipline(function)kernel/syscalls.c:3637* * Discipline (audit 2026-09, kept as comment, not a deprecation: both * primitives are legitimate): user_range_ok... -
products(function)kernel/syscalls.c:3641`* products (writev cntsizeof, poll a28, spawn (argc+1)*sizeof) are
- pre-bounded against (END-...`
-
ksyscall_dispatch(function)kernel/syscalls.c:3654static long ksyscall_dispatch(long n, long a1, long a2, long a3, long a4, long a5, long a6) -
readlink(function)kernel/syscalls.c:3801* readlink (89). */ return readlink_path((const char *)a2, (char *)a3, a4); -
proc_spawn_elf(function)kernel/syscalls.c:3923* proc_spawn_elf (the same path mrun uses) and the caller blocks in * do_waitpid, so the parent address space is... -
k_syscall_spawn(function)kernel/syscalls.c:3932static int k_syscall_spawn(const char *path, const char *redirect, i...
Depends on: headers/proc_sec.h, headers/sanitize.h, headers/sched.h, headers/syscalls_proc.h
-
state(function)kernel/syscalls_proc.c:5* touches only scheduler state (current_pid, procs[], do_* / * seccomp_* / yield) plus the kernel-wide user_range_ok... -
sys_minios_clone(function)kernel/syscalls_proc.c:18long sys_minios_clone(long flags, long newsp, long a3, long a4, long a5, long a6) -
sys_minios_thread_spawn(function)kernel/syscalls_proc.c:24long sys_minios_thread_spawn(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_minios_seccomp(function)kernel/syscalls_proc.c:37long sys_minios_seccomp(long a1, long a2, long a3, long a4, long a5, long a6)-- Seccomp-basic (238): a1 = op (1 deny-one, 2 allow-one, 3 deny-all), a2 = syscall number (ops 1-2). -
sys_minios_nice(function)kernel/syscalls_proc.c:53long sys_minios_nice(long a1, long a2, long a3, long a4, long a5, long a6)-- int pid = current_pid; if (a1 == SECCOMP_OP_DENY_ONE) return seccomp_deny_one(pid, (int)a2); if (a1 ==... -
sys_linux_yield(function)kernel/syscalls_proc.c:66long sys_linux_yield(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_getpid(function)kernel/syscalls_proc.c:75long sys_linux_getpid(long a1, long a2, long a3, long a4, long a5, long a6)-- getpid answers the thread group: a CLONE_THREAD member reports its leader, a process its own pid. -
sys_linux_clone(function)kernel/syscalls_proc.c:83long sys_linux_clone(long a1, long a2, long a3, long a4, long a5, long a6)-- getpid answers the thread group: a CLONE_THREAD member reports its leader, a process its own pid. -
sys_linux_fork(function)kernel/syscalls_proc.c:89long sys_linux_fork(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_vfork(function)kernel/syscalls_proc.c:94long sys_linux_vfork(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_execve(function)kernel/syscalls_proc.c:99long sys_linux_execve(long a1, long a2, long a3, long a4, long a5, long a6) -
sys_linux_exit(function)kernel/syscalls_proc.c:184long sys_linux_exit(long a1, long a2, long a3, long a4, long a5, long a6) -
kill(function)kernel/syscalls_proc.c:192* historic kill (SIGKILL), -N is signal N (a seccomp kill is -SIGSYS). */ #define LINUX_WNOHANG ... -
groups(function)kernel/syscalls_proc.c:213* groups (pid 0 and < -1) are not modelled and wait for any child. */ long sys_linux_wait4(long a... -
sig(function)kernel/syscalls_proc.c:245* the target as killed by sig (wait4 reports WTERMSIG); -
sys_linux_kill(function)kernel/syscalls_proc.c:248long sys_linux_kill(long a1, long a2, long a3, long a4, long a5, long a6)-- kill(pid, sig): sig 0 only probes that pid exists; a fatal signal ends the target as killed by sig (wait4 reports... -
sys_linux_gettid(function)kernel/syscalls_proc.c:259long sys_linux_gettid(long a1, long a2, long a3, long a4, long a5, long a6)
Depends on: headers/tick.h
-
tick_reset(function)kernel/tick.c:34void tick_reset(void)-- /** Docstring: Audio listener table. static tick_slot_t tick_audio_slots[TICK_MAX_AUDIO_LISTENERS]; /** Docstring... -
tick_register_audio(function)kernel/tick.c:58int tick_register_audio(tick_fn_t fn, void *ctx)-- Docstring: Register an unconditional BSP audio effect. -
tick_register_desktop(function)kernel/tick.c:76int tick_register_desktop(tick_fn_t fn, void *ctx)-- Docstring: Register a gated desktop effect. -
tick_register_usb(function)kernel/tick.c:89int tick_register_usb(tick_fn_t fn, void *ctx) -
tick_run_usb(function)kernel/tick.c:103void tick_run_usb(void)-- int tick_register_usb(tick_fn_t fn, void *ctx) { if (fn == NULL) { return -1; } if (tick_usb_used < 0 ||... -
tick_run_audio(function)kernel/tick.c:113void tick_run_audio(void)-- return 0; } /** Docstring: Run USB listeners in registration order. void tick_run_usb(void) { int i; for (i = 0; i <... -
tick_run_desktop(function)kernel/tick.c:123void tick_run_desktop(void)-- } } /** Docstring: Run audio listeners in registration order. void tick_run_audio(void) { int i; for (i = 0; i <... -
tick_audio_count(function)kernel/tick.c:133int tick_audio_count(void)-- } } /** Docstring: Run desktop listeners in registration order. void tick_run_desktop(void) { int i; for (i = 0; i <... -
tick_desktop_count(function)kernel/tick.c:144int tick_desktop_count(void)-- } /** Docstring: Count registered audio listeners. int tick_audio_count(void) { if (tick_audio_used < 0) { return 0... -
tick_desktop_due(function)kernel/tick.c:160int tick_desktop_due(unsigned long long ticks, unsigned interval)-- Docstring: Pure desktop gating predicate.
Depends on: headers/ktime.h
Imported by: headers/tls_port.h, mcp/mcp_dbg_driver.py, mcp/mcp_dogfood.py, mcp/minios_addons.py, mcp/minios_mcp.py, progs/doomgeneric/doomgeneric_xlib.c, progs/src/lxabi.c, progs/src/lxsel.c, progs/src/test_py.py, progs/tls_u/tls_u_port.c, tests/test_vma_bench.c, tools/boot_wl.py, tools/gdb_repro.py, tools/minios_cli.py, tools/minios_gui.py, tools/minios_hyper.py, tools/probe_compute_vga.py, tools/probe_minicraft.py, tools/qga_client.py, tools/repro_gui.py, tools/test_gui_fashion.py, tools/test_gui_freedom.py, tools/test_gui_gfxview.py, tools/test_gui_icon_cwd.py, tools/test_gui_menu.py, tools/test_gui_wm.py, tools/test_gui_zoom.py, tools/test_http_server.py, tools/tls_test.py
-
ktime_rdtsc(function)kernel/time.c:13static unsigned long ktime_rdtsc(void) -
ktime_init(function)kernel/time.c:19static void ktime_init(void) -
ktime_ms(function)kernel/time.c:33unsigned long ktime_ms(void) -
ktime_us(function)kernel/time.c:41unsigned long ktime_us(void)-- Microsecond resolution over the same calibrated ratio (Phase 0.2/0.3: clock_gettime nsec and gettimeofday usec both...
Depends on: headers/kernel/vga_cursor.h, headers/vga_fb.h
-
cursor_save_bg(function)kernel/vga_cursor.c:40static void cursor_save_bg(int mx, int my)-- The cursor is drawn with its top-left corner at (mx, my), so the sprite spans down-right of the pointer. -
cursor_is_set(function)kernel/vga_cursor.c:50static int cursor_is_set(int i, int j)-- spans down-right of the pointer. -
cursor_has_set_neighbour(function)kernel/vga_cursor.c:57static int cursor_has_set_neighbour(int i, int j)-- int y0 = my - CURSOR_TIP_Y; for (j = 0; j < 8; j++) for (i = 0; i < 8; i++) cursor_save[j][i] = fb_read_packed(x0 +... -
cursor_draw(function)kernel/vga_cursor.c:68static void cursor_draw(int mx, int my) -
cursor_restore(function)kernel/vga_cursor.c:81static void cursor_restore(int mx, int my) -
cursor_over(function)kernel/vga_cursor.c:96int cursor_over(int x0, int y0, int w, int h)-- Docstring: True when the cursor sprite overlaps the given screen rectangle. -
cursor_place(function)kernel/vga_cursor.c:106void cursor_place(int mx, int my)-- Docstring: Paint the pointer at mx/my unconditionally: save the * background, draw the sprite, record the position. -
cursor_move(function)kernel/vga_cursor.c:116void cursor_move(int mx, int my)-- Docstring: Desktop-tick pointer update: repaint only when the position * moved since the last paint, otherwise keep... -
cursor_erase(function)kernel/vga_cursor.c:133void cursor_erase(void)-- Docstring: Restore the saved background when the pointer is up, then mark it hidden. -
cursor_invalidate(function)kernel/vga_cursor.c:141void cursor_invalidate(void)-- Docstring: Mark the pointer hidden without touching the framebuffer. * Used after any repaint that may have covered... -
cursor_note_repaint(function)kernel/vga_cursor.c:147void cursor_note_repaint(int x0, int y0, int w, int h)-- Docstring: Invalidate the pointer when it overlaps a repainted screen * rectangle, so the next move re-saves a fresh...
Depends on: headers/arch/x86/boot/bootdefs.h, headers/desktop_icons.h, headers/desktop_shortcuts.h, headers/drivers/kbd.h, headers/kernel/vga_cursor.h, headers/sched.h, headers/vga_fb.h, headers/vga_fx.h, headers/wm_events.h, headers/wm_focus.h, headers/wm_geom.h, headers/wm_gfxview.h, headers/wm_layout.h, headers/wm_notify.h, headers/wm_render.h, headers/wm_tiling.h, headers/wm_window.h
-
wm_geom_cfg(function)kernel/vga_fb.c:49static wm_geom_config_t wm_geom_cfg(void)-- /** Docstring: Focus ids share one space across terminals and graphics. _Static_assert(WM_FOCUS_GFX ==... -
wm_event_cfg(function)kernel/vga_fb.c:60static wm_event_config_t wm_event_cfg(void)-- static int wm_ggy; /** Docstring: Geometry config derived once from the font layout. static wm_geom_config_t... -
wm_drag_reset(function)kernel/vga_fb.c:69static void wm_drag_reset(void)-- cfg.title_h = FONT_H; return cfg; } /** Docstring: Event config for the PS/2 mouse button mask. static... -
vga_fb_boot_config(function)kernel/vga_fb.c:90void vga_fb_boot_config(void) -
fb_bytes_per_pixel(function)kernel/vga_fb.c:117int fb_bytes_per_pixel(void) -
compositions(function)kernel/vga_fb.c:133* compositions (an ISR tick composing inside a syscall composition) draw * into the same shadow and leave the... -
fb_copy_bytes(function)kernel/vga_fb.c:151static void fb_copy_bytes(volatile void *dst, const volatile void *src, unsigned long n)-- Docstring: Bulk copy through the string engine: quadwords first (rep movsq, an eighth of the iterations, which is... -
fb_fill_u32(function)kernel/vga_fb.c:169static void fb_fill_u32(volatile void *dst, unsigned int v, unsigned long n)-- Docstring: Fill n 32-bit words with one value: pairs as quadwords * (rep stosq), then the odd word. -
fb_frame_bytes(function)kernel/vga_fb.c:183static unsigned long fb_frame_bytes(void)-- static void fb_fill_u32(volatile void *dst, unsigned int v, unsigned long n) { void *d = (void *)dst; unsigned long... -
fb_shadow_ready(function)kernel/vga_fb.c:189static int fb_shadow_ready(void)-- : "+D"(d), "+c"(q) : "a"(pat) : "memory"); if (n & 1UL) (volatile unsigned int )d = v; } /* Docstring: Bytes one... -
fb_present_shadow(function)kernel/vga_fb.c:210static void fb_present_shadow(void)-- return 1; } if (fb_shadow) { return 0; } fb_shadow = (uint8_t *)kmalloc(need); if (!fb_shadow) { return 0; }... -
fb_compose_begin(function)kernel/vga_fb.c:221static int fb_compose_begin(void)-- Docstring: Enter a composition. -
fb_compose_end(function)kernel/vga_fb.c:234static void fb_compose_end(int owner)-- entry that must not present. static int fb_compose_begin(void) { if (fb_compose_depth++ > 0) { return 0; } if... -
lg_get(function)kernel/vga_fb.c:305static const char *lg_get(int i)-- Docstring: Completed-logical-lines ring, heap-owned since the .bss diet (256 x TERM_MAX_COLS). -
lg_push(function)kernel/vga_fb.c:312static void lg_push(const char *line, int len)-- Append a completed logical line to the ring. -
lg_alloc(function)kernel/vga_fb.c:333static void lg_alloc(void) -
vga_fb_term_ring_init(function)kernel/vga_fb.c:349void vga_fb_term_ring_init(void)-- Docstring: Create the terminal history ring. -
vga_fb_term_feed(function)kernel/vga_fb.c:357void vga_fb_term_feed(const char *line, int len)-- Docstring: Feed one completed console line into the terminal history. -
line_nrows(function)kernel/vga_fb.c:364static int line_nrows(int len)-- Docstring: Feed one completed console line into the terminal history. -
act_nrows(function)kernel/vga_fb.c:371static int act_nrows(void) -
total_rows(function)kernel/vga_fb.c:374static int total_rows(void)-- lg_push(line, len); } /* Display rows a logical line oflencharacters occupies at term_cols. static int... -
disp_clamp(function)kernel/vga_fb.c:382static void disp_clamp(void)-- return n; } static int act_nrows(void) { return line_nrows(act_len); } /* Total display rows of the whole history... -
line_at(function)kernel/vga_fb.c:400static const char *line_at(int abs, int *off)-- Locate the logical line contributing the display rowabs, and set *off to the character offset where that display... -
first(function)kernel/vga_fb.c:456* screen ever showing it whole first (the old flash-then-melt). */ static unsigned int *fx_start_... -
flag(function)kernel/vga_fb.c:533* is the minimized flag (the program keeps running, nothing composites); -
letterbox(function)kernel/vga_fb.c:537* present to repaint chrome plus letterbox (after a desktop redraw or a * view change); -
gfx_view_cfg(function)kernel/vga_fb.c:572static wm_gfxview_config_t gfx_view_cfg(void)-- Handshake between the present path and the desktop tick, the two painters of the graphics-mode pointer. -
gfx_covers_screen(function)kernel/vga_fb.c:581static int gfx_covers_screen(void)-- Docstring: 1 while a visible fullscreen graphics window owns every * pixel: the terminals, taskbar and dock must not... -
gfx_keep_save(function)kernel/vga_fb.c:587static void gfx_keep_save(const volatile uint8_t *src, int kind, int sw, int sh)-- Docstring: 1 while a visible fullscreen graphics window owns every * pixel: the terminals, taskbar and dock must not... -
vga_fb_set_gfx_program(function)kernel/vga_fb.c:613void vga_fb_set_gfx_program(const char *name) -
shcmd_base(function)kernel/vga_fb.c:632static void shcmd_base(const char *cmd, char *out, unsigned long cap)-- Basename of a shortcut command's program: first token after an optionalrun, then past the last '/'. "run... -
ci_eq(function)kernel/vga_fb.c:649static int ci_eq(const char *a, const char *b) -
gfx_prog_icon(function)kernel/vga_fb.c:662static const uint8_t *gfx_prog_icon(void)-- Icon of the running program via the shortcuts config: whoever composited * last, resolved through its launch command. -
vga_fb_set_gfx_mode(function)kernel/vga_fb.c:675void vga_fb_set_gfx_mode(int on) -
gfx_view_for(function)kernel/vga_fb.c:726static int gfx_view_for(int sw, int sh, wm_gfxview_t *v)-- Docstring: Compute the view for a sw x sh source under the current mode. -
gfx_view_publish(function)kernel/vga_fb.c:738static void gfx_view_publish(const wm_gfxview_t *v)-- mode. -
gfx_float_frame(function)kernel/vga_fb.c:752static int gfx_float_frame(wm_gfxview_rect_t *out)-- Docstring: Floating-mode frame of the current source, used by the * snap and drag math, which move the native... -
vga_fb_gfx_origin(function)kernel/vga_fb.c:768void vga_fb_gfx_origin(int *x, int *y)-- Docstring: Content origin of the graphics window (the point an app * subtracts from SYS_MOUSE coordinates), for the... -
coordinates(function)kernel/vga_fb.c:782* windows keep the exact historical coordinates (including outside the * window); -
vga_fb_gfx_map_mouse(function)kernel/vga_fb.c:785void vga_fb_gfx_map_mouse(int *x, int *y)-- Docstring: Map a desktop pointer into the graphics app's back-buffer space when its view is scaled. -
vga_fb_gfx_cursor_erase(function)kernel/vga_fb.c:800static void vga_fb_gfx_cursor_erase(void)-- Restore the last composite's pointer before the new frame covers it. -
vga_fb_gfx_cursor_draw(function)kernel/vga_fb.c:810static void vga_fb_gfx_cursor_draw(void)-- Clamp the mouse into the framebuffer (the idle loop that normally clamps never runs in graphics mode) and draw the... -
gfx_transition(function)kernel/vga_fb.c:976static void gfx_transition(const wm_gfxview_rect_t *from, int from_titled); -
wm_focus_cursor_sync(function)kernel/vga_fb.c:1001static void wm_focus_cursor_sync(const wm_notify_event_t *e)-- char eline[WM_ELINE_SZ]; int epos, has_line; int prompted; } termwin_t; static termwin_t twins[WM_MAX_TERMS]; static... -
wm_emit_focus_moved(function)kernel/vga_fb.c:1008static void wm_emit_focus_moved(int before, int source)-- static int wm_term; static int wm_inited; /** Docstring: Single focus event bus owned by the desktop. static... -
vga_fb_focus_event(function)kernel/vga_fb.c:1020const wm_notify_event_t *vga_fb_focus_event(void)-- /** Docstring: Emit one focus event when the id actually moved. static void wm_emit_focus_moved(int before, int... -
vga_fb_focus_report(function)kernel/vga_fb.c:1026void vga_fb_focus_report(int before, int source)-- e.type = WM_NOTIFY_FOCUS; e.old_focus = before; e.new_focus = wm_focus; e.source = source; wm_notify_emit(&wm_bus... -
tw_park(function)kernel/vga_fb.c:1035static void tw_park(int i) -
tw_unpark(function)kernel/vga_fb.c:1065static void tw_unpark(int i) -
wm_init_once(function)kernel/vga_fb.c:1100static void wm_init_once(void) -
tw_select(function)kernel/vga_fb.c:1125static void tw_select(int i)-- twins[k].has_line = 0; twins[k].eline[0] = '\0'; twins[k].epos = 0; twins[k].prompted = 0; } twins[0].lg = lg; if... -
vga_fb_focus_get(function)kernel/vga_fb.c:1137int vga_fb_focus_get(void) -
vga_fb_nterms_get(function)kernel/vga_fb.c:1138int vga_fb_nterms_get(void) -
wm_snapshot_state(function)kernel/vga_fb.c:1141static void wm_snapshot_state(wm_focus_state_t *st)-- if (!twins[i].present) return; if (shell_readline_active()) shell_focus_park(); tw_park(wm_term); wm_focus = i... -
vga_fb_focus_next(function)kernel/vga_fb.c:1154void vga_fb_focus_next(void)-- /** Docstring: Single snapshot of every window for focus decisions. static void wm_snapshot_state(wm_focus_state_t... -
app(function)kernel/vga_fb.c:1195* a gfx child spawned from another gfx app (file -> vedit) keeps the * terminal focused, so its keys and wheel keep... -
wm_gfx_focus_sync(function)kernel/vga_fb.c:1200static void wm_gfx_focus_sync(int on)-- Docstring: Route WM focus with the graphics mode switch. -
vga_fb_focus_id(function)kernel/vga_fb.c:1219int vga_fb_focus_id(int id)-- tw_park(wm_term); wm_focus = WM_FOCUS_GFX; kbd_raw_flush(); wm_emit_focus_moved(before, WM_FOCUS_SRC_MODE); } } else... -
vga_fb_boot_history_to_active(function)kernel/vga_fb.c:1254static void vga_fb_boot_history_to_active(void)-- Docstring: Copy the boot-time history into the terminal that owns the screen after the desktop comes up. -
content(function)kernel/vga_fb.c:1269`* windows would share content (same prompt/output on both) and a park
- would alias src == dst. ...`
-
vga_fb_layout_set(function)kernel/vga_fb.c:1354int vga_fb_layout_set(int mode)-- twins[1].lg = 0; twins[1].present = 0; twins[1].has_line = 0; twins[1].eline[0] = '\0'; twins[1].epos = 0... -
vga_fb_layout_cycle(function)kernel/vga_fb.c:1365void vga_fb_layout_cycle(void)-- /** Docstring: Tile terminals through the tiling contract, graphics right. /** Docstring: Set active layout mode... -
vga_fb_layout_get(function)kernel/vga_fb.c:1381int vga_fb_layout_get(void)-- if (wm_layout_mode == WM_LAYOUT_TILE) { wm_layout_mode = WM_LAYOUT_BSP; } else if (wm_layout_mode == WM_LAYOUT_BSP)... -
vga_fb_layout_name(function)kernel/vga_fb.c:1387const char *vga_fb_layout_name(void)-- } else { wm_layout_mode = WM_LAYOUT_TILE; } wm_last_n = -1; vga_fb_tile_all(); } /** Docstring: Active layout mode... -
alone(function)kernel/vga_fb.c:1399`* window alone (an unfocused graphics window minimizes to the taskbar,
- exactly like the hidden...`
-
vga_fb_list_windows(function)kernel/vga_fb.c:1526void vga_fb_list_windows(void) -
vga_fb_act_empty(function)kernel/vga_fb.c:1584int vga_fb_act_empty(void)-- vn ? vn : "floating", gfx_view_valid ? gfx_view.content.x : gfx_win_x, gfx_view_valid ? gfx_view.content.y... -
vga_fb_note_prompt(function)kernel/vga_fb.c:1588void vga_fb_note_prompt(void)-- The shell loop calls note after printing a prompt (it is live in the * focused window) and clear once the line is... -
vga_fb_clear_prompt(function)kernel/vga_fb.c:1593void vga_fb_clear_prompt(void) -
vga_fb_prompted(function)kernel/vga_fb.c:1598int vga_fb_prompted(void) -
vga_fb_prompt_live(function)kernel/vga_fb.c:1607int vga_fb_prompt_live(void)-- 1 when the active line is empty or holds exactly a fresh prompt, so printing another one would stack duplicate... -
vga_fb_park_line(function)kernel/vga_fb.c:1614void vga_fb_park_line(const char *b, int p)-- 1 when the active line is empty or holds exactly a fresh prompt, so printing another one would stack duplicate... -
vga_fb_unpark_line(function)kernel/vga_fb.c:1629int vga_fb_unpark_line(char *b, int *p)-- A fresh prompt parks empty: record no line, sowm listdoes not * claim a half-typed command that never existed.... -
tw_hit(function)kernel/vga_fb.c:1644static int tw_hit(int i, int mx, int my)-- termwin_t *t; int k; wm_init_once(); if (wm_focus < 0 || wm_focus >= WM_MAX_TERMS) return 0; t = &twins[wm_focus]... -
vga_fb_set_gfx_palette(function)kernel/vga_fb.c:1750void vga_fb_set_gfx_palette(const unsigned char *pal) -
fb_pack_idx(function)kernel/vga_fb.c:1765static unsigned long fb_pack_idx(unsigned idx)-- --- True-color pixel layer ---- VBE true-color framebuffers store pixels natively as B,G,R(,X) bytes, so the DAC is... -
fb_write_packed(function)kernel/vga_fb.c:1781void fb_write_packed(int x, int y, unsigned long rgb) -
fb_read_packed(function)kernel/vga_fb.c:1801unsigned long fb_read_packed(int x, int y) -
vga_fb_read_rgb(function)kernel/vga_fb.c:1825unsigned long vga_fb_read_rgb(int x, int y) -
fb_write_row_packed(function)kernel/vga_fb.c:1830void fb_write_row_packed(int x, int y, const unsigned int *src, int n)-- Docstring: Write n packed pixels (0x00RRGGBB, or raw indices in 8-bit mode) to row y from column x, clipped once. -
fb_read_row_packed(function)kernel/vga_fb.c:1860void fb_read_row_packed(int x, int y, unsigned int *dst, int n)-- Docstring: Read n packed pixels of row y from column x into dst, * clipped once; pixels outside the screen read as 0. -
fb_fill_run(function)kernel/vga_fb.c:1882static void fb_fill_run(int x, int y, int n, unsigned long px)-- int xx = x + i; if (xx < 0 || xx >= fb_width) continue; if (fb_bpp == 32) { dst[i] = *(volatile unsigned int *)(p +... -
wall_level(function)kernel/vga_fb.c:1908static int wall_level(int v)-- for (i = 0; i < n; i++) { q[0] = (uint8_t)(px & 0xFF); q[1] = (uint8_t)((px >> 8) & 0xFF); q[2] = (uint8_t)((px >>... -
vga_fb_set_palette(function)kernel/vga_fb.c:1917static void vga_fb_set_palette(void) -
fb_glyph(function)kernel/vga_fb.c:1970static const uint8_t *fb_glyph(unsigned char c)-- Resolve one byte to its 8-row glyph: ASCII through font8x8, Spanish Latin-1 through the table above, anything else... -
vga_fb_pixel(function)kernel/vga_fb.c:1991void vga_fb_pixel(int x, int y, uint8_t color)-- case 0xAC: return glyph_notsign; case 0xB4: return glyph_acute; case 0xB7: return glyph_middot; case 0xBA: return... -
vga_fb_clear(function)kernel/vga_fb.c:2001void vga_fb_clear(void)-- } } /* ---- Drawing primitives ---- void vga_fb_pixel(int x, int y, uint8_t color) { if (fb_bpp == 8) { if (x >= 0... -
vga_fb_rect(function)kernel/vga_fb.c:2011void vga_fb_rect(int x, int y, int w, int h, uint8_t color)-- Docstring: Solid rectangle: the color resolves once, every row is one * clipped run fill instead of a per-pixel... -
vga_fb_pixel_rgb(function)kernel/vga_fb.c:2026void vga_fb_pixel_rgb(int x, int y, uint8_t r, uint8_t g, uint8_t b)-- Direct RGB pixel: full color depth in true-color modes, best-effort quantization in 8-bit mode. -
vga_fb_rect_rgb(function)kernel/vga_fb.c:2035void vga_fb_rect_rgb(int x, int y, int w, int h, uint8_t r, uint8_t g, uint8_t b) -
vga_fb_char(function)kernel/vga_fb.c:2042void vga_fb_char(int col, int row, char c, uint8_t fg, uint8_t bg) -
vga_fb_str(function)kernel/vga_fb.c:2056void vga_fb_str(int col, int row, const char *s, uint8_t fg, uint8_t bg) -
text_px(function)kernel/vga_fb.c:2067static void text_px(int px, int py, const char *s, uint8_t fg, uint8_t bg)-- Blit a text string at an absolute pixel position. -
wm_draw_buttons(function)kernel/vga_fb.c:2093static void wm_draw_buttons(int px, int py, int win_w, uint8_t fg, uint8_t bg)-- --- Window controls ---- Three glyph buttons at the right end of a window's title bar: minimize (_), maximize... -
wm_buttons_hit(function)kernel/vga_fb.c:2119static int wm_buttons_hit(int mx, int my, int win_x, int win_y, int win_w)-- } for (i = 1; i < WM_BTN_H - 1; i++) { vga_fb_pixel(bx + 1, by + i, fg); vga_fb_pixel(bx + WM_BTN_W - 2, by + i... -
wm_close_pending(function)kernel/vga_fb.c:2134int wm_close_pending(void)-- Close request bridge: the syscall dispatcher polls this so a graphics * program's next syscall exits it on the... -
wm_clear_close(function)kernel/vga_fb.c:2135void wm_clear_close(void) -
wm_gfx_mode_active(function)kernel/vga_fb.c:2136int wm_gfx_mode_active(void) -
vga_fb_ps2_owner(function)kernel/vga_fb.c:2139int vga_fb_ps2_owner(int pid)-- Close request bridge: the syscall dispatcher polls this so a graphics * program's next syscall exits it on the... -
taskbar(function)kernel/vga_fb.c:2159`* minimize hides the app to the taskbar (it never closes it), maximize
- toggles true fullscreen...`
-
directly(function)kernel/vga_fb.c:2207* RGB sources pack directly (quantized to the wallpaper cube in 8-bit). */ static void gfx_scale_... -
gfx_letterbox(function)kernel/vga_fb.c:2312static void gfx_letterbox(const wm_gfxview_t *v)-- Docstring: Clear the frame area the content does not cover (the * letterbox bars of a tiled or fullscreen view) to... -
gfx_title(function)kernel/vga_fb.c:2331static void gfx_title(const wm_gfxview_t *v)-- int ah = v->frame.h - v->title_h; const wm_gfxview_rect_t *c = &v->content; if (aw <= 0 || ah <= 0) return; if (c->y... -
gfx_compose(function)kernel/vga_fb.c:2343static void gfx_compose(const volatile uint8_t *src, int kind, int sw, int sh, ...-- Docstring: Compose one graphics frame at a view into the render target: * title, letterbox (when full is set) and... -
gfx_present(function)kernel/vga_fb.c:2409static void gfx_present(const volatile uint8_t *bb, int kind, int sw, int sh)-- Docstring: Present under the pointer handshake: wait out a desktop tick that is moving the sprite, composite, then... -
gfx_cursor_follow_idle(function)kernel/vga_fb.c:2425static void gfx_cursor_follow_idle(void)-- Docstring: Move the graphics-mode pointer from the desktop tick while the app is idle. -
vga_fb_blit_gfx_window(function)kernel/vga_fb.c:2438void vga_fb_blit_gfx_window(void) -
vga_fb_blit_nk_window(function)kernel/vga_fb.c:2447void vga_fb_blit_nk_window(void) -
vga_fb_blit_nk_rgb_window(function)kernel/vga_fb.c:2453void vga_fb_blit_nk_rgb_window(void)-- Composite the Nuklear RGB back-buffer (NK_RGB_ADDR, NK_W x NK_H x 3 bytes) * through the same present path as the... -
term_recalc(function)kernel/vga_fb.c:2462static void term_recalc(void) -
draw_title_win(function)kernel/vga_fb.c:2488static void draw_title_win(int idx, int focused)-- Preserve the current window position, clamping it into range so a * drag or Ctrl+arrow move is not undone by the... -
taskbar_layout(function)kernel/vga_fb.c:2519static void taskbar_layout(void) -
draw_speaker_icon(function)kernel/vga_fb.c:2550static void draw_speaker_icon(int x, int y, uint8_t color)-- Running-app button right after it: mini icon + title while a graphics program owns the display. -
taskbar_render(function)kernel/vga_fb.c:2559static void taskbar_render(void) -
title(function)kernel/vga_fb.c:2569* 8px row plus its title (bright when focused). The hint line * starts after it instead of underneath. */ const... -
taskbar_tick(function)kernel/vga_fb.c:2638static void taskbar_tick(void)-- Redraw the clock only when the wall-clock second changes. -
vga_fb_theme_name(function)kernel/vga_fb.c:2654int vga_fb_theme_name(char *dst, int cap)-- Docstring: Active Nuklear theme name for the taskbar widget. -
taskbar_theme_cycle(function)kernel/vga_fb.c:2675static void taskbar_theme_cycle(void)-- Cycle the active theme to the next etc/themes/ entry (ramdisk). -
taskbar_handle_click(function)kernel/vga_fb.c:2715static void taskbar_handle_click(int mx, int my)-- Click handling for the keyboard widget, the speaker icon and -/+ buttons, plus the restore button that reappears... -
draw_scrollbar(function)kernel/vga_fb.c:2775static void draw_scrollbar(void)-- return; } if (mx >= tb_minus_x && mx < tb_minus_x + TASKBAR_BTN_W) { v = pcspk_get_volume(); pcspk_set_volume(v >... -
render_blank_row(function)kernel/vga_fb.c:2810static void render_blank_row(int vrow)-- Blank one viewport row: every cell is repainted with the terminal background. vga_fb_str with an empty string would... -
render_row(function)kernel/vga_fb.c:2820static void render_row(int vrow, int abs)-- Render one display row at viewport rowvrowfor the absolute display rowabs. -
term_render(function)kernel/vga_fb.c:2855static void term_render(void) -
buffer(function)kernel/vga_fb.c:2870* owns the buffer (indices reset, render reads an empty ring). */ void term_clear(void) -
term_render_active(function)kernel/vga_fb.c:2887static void term_render_active(void)-- Repaint only the bottom region that a live edit touches: from the active line's first visible display row to the... -
line(function)kernel/vga_fb.c:2930`* display stale bytes left over from a longer previous line (e.g. the prompt
- would show the ta...`
-
escapes(function)kernel/vga_fb.c:2939`* swallowing them here keeps the escapes (which the serial side needs)- from printing as li...`
-
vga_fb_puts_term(function)kernel/vga_fb.c:2996void vga_fb_puts_term(const char *s) -
vga_fb_text_cursor(function)kernel/vga_fb.c:3002void vga_fb_text_cursor(int col)-- Show the text cursor at character columncolof the active line, or hide * it with a negative column. -
vga_fb_hide_text_cursor(function)kernel/vga_fb.c:3010void vga_fb_hide_text_cursor(void)-- Show the text cursor at character columncolof the active line, or hide * it with a negative column. -
vga_fb_draw_desktop(function)kernel/vga_fb.c:3034void vga_fb_draw_desktop(void)-- Docstring: Repaint the desktop through the shared render plan. -
gfx_view_in_rect(function)kernel/vga_fb.c:3129static void gfx_view_in_rect(const wm_gfxview_rect_t *r, int titled, wm_gfxview_t *v)-- Docstring: View of the persistent source inside an arbitrary frame, * titled when the frame is tall enough to carry... -
gfx_animate(function)kernel/vga_fb.c:3148static void gfx_animate(const wm_gfxview_rect_t *from, const wm_gfxview_rect_t *to, ...-- Docstring: Glide the persistent source frame from one rect to * another over the desktop, then settle with a plain... -
gfx_taskbar_rect(function)kernel/vga_fb.c:3198static void gfx_taskbar_rect(wm_gfxview_rect_t *r)-- fb_tgt = fb_shadow; gfx_compose(gfx_keep, gfx_keep_kind, gfx_keep_sw, gfx_keep_sh, &v, 0); fb_tgt = 0... -
gfx_drop_focus(function)kernel/vga_fb.c:3235static void gfx_drop_focus(int source)-- Docstring: Hand keyboard focus to the graphics window without a * redraw (callers repaint once afterwards). static... -
from(function)kernel/vga_fb.c:3246`* leaving returns to the view it came from (floating or tiled). Returns
- 0 on success, -1 witho...`
-
vga_fb_gfx_set_hidden(function)kernel/vga_fb.c:3280int vga_fb_gfx_set_hidden(int hide)-- Docstring: Minimize (hide) or restore the graphics window. -
vga_fb_gfx_view_name(function)kernel/vga_fb.c:3308const char *vga_fb_gfx_view_name(void)-- if (gfx_view_valid) gfx_animate(&from, &btn, titled, 0); else vga_fb_draw_desktop(); return 0; } gfx_hidden = 0... -
term_toggle_fullscreen(function)kernel/vga_fb.c:3320static void term_toggle_fullscreen(void)-- /** Docstring: Graphics view state forwm state/wm list. const char *vga_fb_gfx_view_name(void) { const char *n... -
vga_fb_toggle_fullscreen(function)kernel/vga_fb.c:3332void vga_fb_toggle_fullscreen(void)-- Docstring: Toggle fullscreen on the focused window: the graphics * window scales to the whole display, a terminal... -
term_toggle_minimize(function)kernel/vga_fb.c:3343static void term_toggle_minimize(void)-- Minimize/restore the terminal window. -
vga_fb_toggle_minimize(function)kernel/vga_fb.c:3353void vga_fb_toggle_minimize(void)-- Minimize/restore the terminal window. -
vga_fb_is_minimized(function)kernel/vga_fb.c:3361int vga_fb_is_minimized(void) -
vga_fb_is_fullscreen(function)kernel/vga_fb.c:3362int vga_fb_is_fullscreen(void) -
gfx_snap(function)kernel/vga_fb.c:3367static void gfx_snap(int zone)-- Snap the focused graphics window into a screen region (halves place it against that edge, quadrants into that... -
term_close_default(function)kernel/vga_fb.c:3400static void term_close_default(void)-- Docstring: Terminal close button: restore the default geometry (the * shell cannot be closed). -
vga_fb_close_active(function)kernel/vga_fb.c:3416int vga_fb_close_active(void)-- Close the focused window. -
vga_fb_move_terminal(function)kernel/vga_fb.c:3430void vga_fb_move_terminal(int dx, int dy) -
term_max_cols(function)kernel/vga_fb.c:3475static int term_max_cols(void)-- --- Tiling window operations (Alt = WM modifier) ---- Snap places the window in a screen half or quadrant and sizes... -
term_max_rows(function)kernel/vga_fb.c:3479static int term_max_rows(void) -
term_finish_layout(function)kernel/vga_fb.c:3484static void term_finish_layout(void) -
vga_fb_snap_window(function)kernel/vga_fb.c:3490void vga_fb_snap_window(int zone) -
vga_fb_resize(function)kernel/vga_fb.c:3518void vga_fb_resize(int dcols, int drows) -
vga_fb_reset_default(function)kernel/vga_fb.c:3538void vga_fb_reset_default(void)-- int ncol = term_sz_cols + dcols; int nrow = term_sz_rows + drows; if (ncol < 1) ncol = 1; if (nrow < 1) nrow = 1; if... -
wallpaper_ensure(function)kernel/vga_fb.c:3592static void wallpaper_ensure(void) -
wallpaper_usable(function)kernel/vga_fb.c:3644static int wallpaper_usable(void)-- d[2] = px[0]; if (bpx == 4) d[3] = 0; } } } stbi_image_free(img); wall_native = cache; wall_cw = fb_width; wall_ch =... -
wallpaper_draw(function)kernel/vga_fb.c:3649static void wallpaper_draw(void) -
pipe_field(function)kernel/vga_fb.c:3675static const char *pipe_field(const char *line, int idx, char *buf, int buflen)-- --- Desktop shortcut icons ---- Shortcuts are defined in etc/shortcuts on the ramdisk, one per line... -
icon_nearest(function)kernel/vga_fb.c:3693static int icon_nearest(int r, int g, int b)-- Nearest entry in the 16-colour icon palette (squared RGB distance, * integer-only: at most 3255255 per entry, far... -
icon_embedded(function)kernel/vga_fb.c:3709static const uint8_t *icon_embedded(const char *name)-- for (i = 0; i < ICON_PAL_SIZE; i++) { int dr = r - icon_pal[i][0]; int dg = g - icon_pal[i][1]; int db = b... -
icon_decode(function)kernel/vga_fb.c:3729static const uint8_t *icon_decode(const char *path)-- Decode a shortcut's PNG to raw 32x32 RGBA pixels. -
icon_embedded_rgba(function)kernel/vga_fb.c:3763static const uint8_t *icon_embedded_rgba(const uint8_t *idx)-- Expand an embedded index icon (desktop_icons.h, transparent 0) to RGBA through the icon palette, so fallback art... -
dock_label_px(function)kernel/vga_fb.c:3791static int dock_label_px(const struct desktop_shortcut *sc)-- Width of the longest shortcut label in pixels (cached after load). -
shortcuts_layout(function)kernel/vga_fb.c:3800static void shortcuts_layout(void)-- Dock layout: one centred row just above the taskbar. -
shortcut_cell_left(function)kernel/vga_fb.c:3818static int shortcut_cell_left(int i)-- dock_h = ICON_H + DOCK_LABEL_GAP + ICON_LABEL_H + 2 * DOCK_PAD_Y; x0 = (fb_width - dock_w) / 2; if (x0 < 0) x0 = 0... -
desktop_shortcuts_load(function)kernel/vga_fb.c:3825void desktop_shortcuts_load(void) -
shortcut_draw_scaled(function)kernel/vga_fb.c:3881static void shortcut_draw_scaled(const struct desktop_shortcut *sc, ...-- Blit one shortcut icon scaled to dw x dh at (dx, dy), nearest neighbour from the cached 32x32 RGBA source. -
dock_hover_index(function)kernel/vga_fb.c:3906static int dock_hover_index(int mx, int my)-- Index of the shortcut column under (mx, my), or -1. -
dock_bounce_counts(function)kernel/vga_fb.c:3933void dock_bounce_counts(unsigned long *kicks, unsigned long *paints) -
dock_click_count(function)kernel/vga_fb.c:3943void dock_click_count(unsigned long *edges) -
dock_bounce_elapsed(function)kernel/vga_fb.c:3949static unsigned long dock_bounce_elapsed(void)-- Ticks elapsed since the bounce click, capped so the subtraction can * never wrap on a late read. -
dock_bounce_live(function)kernel/vga_fb.c:3957static int dock_bounce_live(void)-- Ticks elapsed since the bounce click, capped so the subtraction can * never wrap on a late read. static unsigned... -
dock_pending_active(function)kernel/vga_fb.c:4007int dock_pending_active(void) -
dock_paint_icons(function)kernel/vga_fb.c:4015static void dock_paint_icons(int hover)-- Paint every shortcut icon and label at the given hover sizes. -
desktop_shortcuts_draw(function)kernel/vga_fb.c:4051void desktop_shortcuts_draw(void) -
wallpaper_rect(function)kernel/vga_fb.c:4078static void wallpaper_rect(int x0, int y0, int w, int h)-- Paint one wallpaper rectangle from the cache (solid fill when the cache * is absent or stale): the strip-erase... -
dock_paint_hover(function)kernel/vga_fb.c:4109static void dock_paint_hover(int hover)-- Hover repaint without the fullscreen flash: erase only the dock strip (bar plus the overflow the magnified icons... -
command(function)kernel/vga_fb.c:4140* its launch command (config-driven, covers apps that never set a window * title); -
gfx_task_icon(function)kernel/vga_fb.c:4145static const uint8_t *gfx_task_icon(void)-- Icon for the taskbar running-app button. -
desktop_shortcuts_hit_test(function)kernel/vga_fb.c:4166const char *desktop_shortcuts_hit_test(int mx, int my) -
mouse_focus_topmost(function)kernel/vga_fb.c:4180static int mouse_focus_topmost(int mx, int my)-- const char *desktop_shortcuts_hit_test(int mx, int my) { shortcuts_layout(); for (int i = 0; i < shortcut_count... -
mouse_apply_wheel(function)kernel/vga_fb.c:4206static void mouse_apply_wheel(int wheel, int step)-- if (!twins[f].present) continue; if (tw_hit(f, mx, my)) { if (f == wm_focus) return 0; before = wm_focus... -
pointer(function)kernel/vga_fb.c:4227* tiled window floats it at native size under the pointer (the grab point * keeps its relative position along the... -
mouse_drag_gfx(function)kernel/vga_fb.c:4230static void mouse_drag_gfx(const wm_geom_config_t *gcfg, int mx, int my)-- Docstring: Title-bar drag of the graphics window. -
mouse_drag_term(function)kernel/vga_fb.c:4282static void mouse_drag_term(const wm_geom_config_t *gcfg, int win_w, int mx, int my, int gfx_cursor)-- Docstring: Title-bar drag of the focused terminal window. -
mouse_scrollbar(function)kernel/vga_fb.c:4305static void mouse_scrollbar(const wm_geom_config_t *gcfg, int mx, int my)-- wm_grab_cx = (mx - term_px_x) / FONT_W; } } else { wm_dragging = 0; } if (wm_dragging) { vga_fb_drag_terminal(mx... -
vga_fb_wait_tick(function)kernel/vga_fb.c:4334void vga_fb_wait_tick(void)-- Docstring: Drive the desktop from a kernel wait loop. -
vga_fb_mouse_tick(function)kernel/vga_fb.c:4343void vga_fb_mouse_tick(void)-- timer ISR drives it only for the pid-0 exec frame (user_program_active) and the shell's input loop is not running... -
path(function)kernel/vga_fb.c:4354* present path (blit_gfx_buf) is the sole cursor painter. The tick * used to share the sprite state with it and... -
state(function)kernel/vga_fb.c:4467`* ignores the button state (the arming press is consumed) and settles- once on expiry, so t...`
-
vga_fb_mouse_init(function)kernel/vga_fb.c:4545void vga_fb_mouse_init(void) -
vga_fb_history_page(function)kernel/vga_fb.c:4599void vga_fb_history_page(int dir)-- Docstring: Page the terminal history by one screen (dir -1 up, +1 down). -
vga_fb_init(function)kernel/vga_fb.c:4611void vga_fb_init(void)
Depends on: headers/vga_fb.h, headers/vga_fx.h
-
vga_fx_set_enabled(function)kernel/vga_fx.c:22void vga_fx_set_enabled(int on) -
vga_fx_enabled(function)kernel/vga_fx.c:27int vga_fx_enabled(void) -
fx_wait_until(function)kernel/vga_fx.c:35static void fx_wait_until(unsigned long deadline)-- Deadline pacing over the PIT-calibrated TSC clock. -
vga_fx_snap_rect(function)kernel/vga_fx.c:41unsigned int *vga_fx_snap_rect(int x, int y, int w, int h) -
vga_fx_restore_rect(function)kernel/vga_fx.c:63void vga_fx_restore_rect(int x, int y, int w, int h, const unsigned int *buf) -
vga_fx_free(function)kernel/vga_fx.c:77void vga_fx_free(unsigned int *buf) -
once(function)kernel/vga_fx.c:90`* once (prev[] tracks the revealed frontier per column), then the final
- restore guarantees the...`
-
vga_fx_melt_rect(function)kernel/vga_fx.c:150void vga_fx_melt_rect(int x, int y, int w, int h, const unsigned int *oldb, const unsigned in...-- Drive one old->new melt. -
vga_fx_melt_from_black(function)kernel/vga_fx.c:159void vga_fx_melt_from_black(int x, int y, int w, int h, const unsigned int *newb)-- Boot melt: the framebuffer is already cleared to black on entry, so no * old snapshot is needed; the new frame...
Depends on: kernel/time.c
-
Client.__init__(method)mcp/mcp_dbg_driver.py:16def __init__(self) -
Client.request(method)mcp/mcp_dbg_driver.py:28def request(self, method, params) -
Client.tool(method)mcp/mcp_dbg_driver.py:46def tool(self, name, params) -
Client.close(method)mcp/mcp_dbg_driver.py:54def close(self) -
main(function)mcp/mcp_dbg_driver.py:64def main()
Depends on: kernel/time.c
-
Client.__init__(method)mcp/mcp_dogfood.py:20def __init__(self, addons_dir) -
Client.request(method)mcp/mcp_dogfood.py:40def request(self, method, params) -
Client.tool(method)mcp/mcp_dogfood.py:58def tool(self, name, params) -
Client.close(method)mcp/mcp_dogfood.py:68def close(self) -
main(function)mcp/mcp_dogfood.py:78def main()
Next: API_p9.md
Generated offline by readmenator from commit cd87980b5eb5. 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