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/test_readme_shot.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...
Next: API_p9.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