Home / Docs / Syscall Reference
tools/docgen/gen_syscalls.py reading kernel/proc/syscall.h and kernel/proc/syscall.c directly out of the source tree at commit a36311c (generated 2026-08-06). It cannot describe a syscall the dispatcher does not actually have a case for, because IMPLEMENTED means the name was found as a real case arm, not just declared in the header. Regenerate it after any syscall.h/syscall.c change; do not hand-edit the table below.MayteraOS syscall reference
275 syscall numbers are declared in syscall.h. 274 have a matching case in the dispatcher (syscall.c) and are callable. 1 are declared but have no dispatcher arm, so calling that number returns the dispatcher's default (unimplemented) response rather than doing anything. The highest number in use is 358.
Numbering integrity
The following numbers are claimed by more than one #define, which the header allows (multiple names can share one number) but usually indicates one of the names is a boundary marker rather than a real syscall:
215:SYS_DNS_START,SYS_MAX
SYS_MAX is one of the collisions above and is a sentinel constant, not a real syscall; it is stale (still 215 while the real highest allocated number is 358) and has zero callers anywhere in the dispatcher or process code, confirmed by grep across kernel/proc/*.c. It is not used for any bounds check, so the stale value does not affect dispatch; it is simply misleading if read as documentation.
Full table
| Number | Name | Status | Notes |
|---|---|---|---|
| 0 | SYS_EXIT | IMPLEMENTED | Exit process |
| 1 | SYS_FORK | IMPLEMENTED | Fork process |
| 2 | SYS_EXEC | IMPLEMENTED | Execute program |
| 3 | SYS_WAIT | IMPLEMENTED | Wait for child |
| 4 | SYS_GETPID | IMPLEMENTED | Get process ID |
| 5 | SYS_GETPPID | IMPLEMENTED | Get parent process ID |
| 6 | SYS_YIELD | IMPLEMENTED | Yield CPU |
| 7 | SYS_SLEEP | IMPLEMENTED | Sleep for milliseconds |
| 10 | SYS_OPEN | IMPLEMENTED | Open file |
| 11 | SYS_CLOSE | IMPLEMENTED | Close file |
| 12 | SYS_READ | IMPLEMENTED | Read from file |
| 13 | SYS_WRITE | IMPLEMENTED | Write to file |
| 14 | SYS_SEEK | IMPLEMENTED | Seek in file |
| 15 | SYS_STAT | IMPLEMENTED | Get file status |
| 16 | SYS_MKDIR | IMPLEMENTED | Create directory |
| 17 | SYS_RMDIR | IMPLEMENTED | Remove directory |
| 18 | SYS_UNLINK | IMPLEMENTED | Delete file |
| 19 | SYS_READDIR | IMPLEMENTED | Read directory entry |
| 20 | SYS_BRK | IMPLEMENTED | Change data segment size |
| 21 | SYS_MMAP | IMPLEMENTED | Map memory |
| 22 | SYS_MUNMAP | IMPLEMENTED | Unmap memory |
| 30 | SYS_WIN_CREATE | IMPLEMENTED | Create window |
| 31 | SYS_WIN_DESTROY | IMPLEMENTED | Destroy window |
| 32 | SYS_WIN_DRAW_RECT | IMPLEMENTED | Draw rectangle |
| 33 | SYS_WIN_DRAW_TEXT | IMPLEMENTED | Draw text |
| 34 | SYS_WIN_DRAW_PIXEL | IMPLEMENTED | Draw pixel |
| 35 | SYS_WIN_BLIT | IMPLEMENTED | Blit bitmap |
| 36 | SYS_WIN_GET_EVENT | IMPLEMENTED | Get window event |
| 37 | SYS_WIN_INVALIDATE | IMPLEMENTED | Invalidate window (request redraw) |
| 38 | SYS_WIN_GET_SIZE | IMPLEMENTED | Get window content dimensions |
| 40 | SYS_PUTCHAR | IMPLEMENTED | Write character |
| 41 | SYS_GETCHAR | IMPLEMENTED | Read character |
| 50 | SYS_TIME | IMPLEMENTED | Get current time |
| 51 | SYS_CLOCK | IMPLEMENTED | Get system clock ticks |
| 60 | SYS_SOCKET | IMPLEMENTED | Create TCP socket |
| 61 | SYS_CONNECT | IMPLEMENTED | Connect socket (sock, ip, port) |
| 62 | SYS_SEND | IMPLEMENTED | Send data (sock, buf, len) |
| 63 | SYS_RECV | IMPLEMENTED | Receive data (sock, buf, len) |
| 64 | SYS_TCP_CLOSE | IMPLEMENTED | Close TCP socket (sock) |
| 65 | SYS_TCP_STATE | IMPLEMENTED | Get TCP socket state (sock) |
| 66 | SYS_PING | IMPLEMENTED | ICMP echo (dest_ip, timeout_ms) -> rtt ms or -1 |
| 70 | SYS_RENAME | IMPLEMENTED | Rename file/directory |
| 80 | SYS_KILL | IMPLEMENTED | kill(pid, sig) |
| 81 | SYS_SIGACTION | IMPLEMENTED | sigaction(signo, act, oact) |
| 82 | SYS_SIGPROCMASK | IMPLEMENTED | sigprocmask(how, set, oldset) |
| 83 | SYS_SIGRETURN | IMPLEMENTED | rt_sigreturn (invoked from the libc trampoline) |
| 84 | SYS_ALARM | IMPLEMENTED | alarm(seconds) |
| 85 | SYS_PAUSE | IMPLEMENTED | pause() |
| 86 | SYS_HTTP_FETCH | IMPLEMENTED | |
| 90 | SYS_DUP | IMPLEMENTED | |
| 91 | SYS_DUP2 | IMPLEMENTED | |
| 92 | SYS_PIPE | IMPLEMENTED | |
| 93 | SYS_FCNTL | IMPLEMENTED | #359: fcntl(fd,cmd,arg) |
| 94 | SYS_IOCTL | IMPLEMENTED | Device control (termios, winsize, ...) |
| 98 | SYS_WAITPID | IMPLEMENTED | Wait for specific child process |
| 99 | SYS_GETCWD | IMPLEMENTED | Get current working directory |
| 100 | SYS_CHDIR | IMPLEMENTED | Change directory |
| 110 | SYS_CLONE | IMPLEMENTED | clone(flags, stack, ptid, ctid, tls) |
| 111 | SYS_GETTID | IMPLEMENTED | gettid() |
| 112 | SYS_SET_TID_ADDRESS | IMPLEMENTED | set_tid_address(tidptr) |
| 113 | SYS_FUTEX | IMPLEMENTED | futex(addr, op, val, timeout, addr2, val3) |
| 114 | SYS_TKILL | IMPLEMENTED | tkill(tid, sig) |
| 115 | SYS_TGKILL | IMPLEMENTED | tgkill(tgid, tid, sig) |
| 120 | SYS_GETUID | IMPLEMENTED | Get real user ID |
| 121 | SYS_SETUID | IMPLEMENTED | Set user ID |
| 122 | SYS_GETGID | IMPLEMENTED | Get real group ID |
| 123 | SYS_SETGID | IMPLEMENTED | Set group ID |
| 124 | SYS_GETEUID | IMPLEMENTED | Get effective user ID |
| 125 | SYS_GETEGID | IMPLEMENTED | Get effective group ID |
| 126 | SYS_SETEUID | IMPLEMENTED | Set effective user ID |
| 127 | SYS_SETEGID | IMPLEMENTED | Set effective group ID |
| 128 | SYS_CHMOD | IMPLEMENTED | Change file permissions |
| 129 | SYS_CHOWN | IMPLEMENTED | Change file ownership |
| 130 | SYS_PASSWD_CHANGE | IMPLEMENTED | Change user password |
| 131 | SYS_SU | IMPLEMENTED | Switch user (verify + setuid) |
| 132 | SYS_ADDUSER | IMPLEMENTED | Create new user (root only) |
| 133 | SYS_SET_THEME | IMPLEMENTED | Set system-wide UI theme |
| 134 | SYS_GET_THEME | IMPLEMENTED | Get current system theme ID |
| 135 | SYS_SET_VOLUME | IMPLEMENTED | Set master audio volume (0-100) |
| 136 | SYS_GET_VOLUME | IMPLEMENTED | Get master audio volume (0-100) |
| 137 | SYS_SET_MUTE | IMPLEMENTED | Set audio mute state (0=unmute, 1=mute) |
| 138 | SYS_GET_DISK_TOTAL | IMPLEMENTED | Get disk total size in MB |
| 139 | SYS_GET_DISK_FREE | IMPLEMENTED | Get disk free space in MB |
| 140 | SYS_SET_MOUSE_SPEED | IMPLEMENTED | Set mouse sensitivity (1-10) |
| 141 | SYS_GET_MOUSE_SPEED | IMPLEMENTED | Get mouse sensitivity (1-10) |
| 142 | SYS_GET_RTC_TIME | IMPLEMENTED | Get RTC time packed: (hour<<16)|(min<<8)|sec |
| 143 | SYS_GET_RTC_DATE | IMPLEMENTED | Get RTC date packed: (year<<16)|(month<<8)|day |
| 144 | SYS_SET_RTC_TIME | IMPLEMENTED | Set RTC time: packed (hour<<16)|(min<<8)|sec |
| 145 | SYS_SET_RTC_DATE | IMPLEMENTED | Set RTC date: packed (year<<16)|(month<<8)|day |
| 146 | SYS_GET_NET_INFO | IMPLEMENTED | Fill net_info_t buffer |
| 147 | SYS_NTP_SYNC | IMPLEMENTED | Sync from NTP; returns 0=ok -1=fail |
| 148 | SYS_SET_CURSOR_THEME | IMPLEMENTED | Set cursor theme: 0=Retro, 1=Light, 2=Dark |
| 149 | SYS_GET_CURSOR_THEME | IMPLEMENTED | Get current cursor theme |
| 150 | SYS_WIN_GET_POS | IMPLEMENTED | Get window screen position: arg1=handle, arg2=*x, arg3=*y |
| 155 | SYS_WM_GET_WINDOWS | IMPLEMENTED | |
| 156 | SYS_COMPOSITOR_RENDER_WINDOWS | IMPLEMENTED | Compositor: draw KWM windows onto compositor FB |
| 157 | SYS_WM_FOCUS_WINDOW | IMPLEMENTED | |
| 158 | SYS_WM_MINIMIZE_WINDOW | IMPLEMENTED | |
| 159 | SYS_DELETE_USER | IMPLEMENTED | |
| 160 | SYS_MSG_CREATE_CHANNEL | IMPLEMENTED | |
| 161 | SYS_MSG_CONNECT | IMPLEMENTED | |
| 162 | SYS_MSG_SEND | IMPLEMENTED | |
| 163 | SYS_MSG_RECV | IMPLEMENTED | |
| 164 | SYS_MSG_ACCEPT | IMPLEMENTED | |
| 165 | SYS_MSG_CLOSE | IMPLEMENTED | |
| 166 | SYS_MSG_DESTROY | IMPLEMENTED | |
| 170 | SYS_SHM_CREATE | IMPLEMENTED | |
| 171 | SYS_SHM_MAP | IMPLEMENTED | |
| 172 | SYS_SHM_UNMAP | IMPLEMENTED | |
| 173 | SYS_SHM_DESTROY | IMPLEMENTED | |
| 174 | SYS_SHM_INFO | IMPLEMENTED | |
| 180 | SYS_IPC_REGISTER_NAME | IMPLEMENTED | |
| 181 | SYS_IPC_LOOKUP_NAME | IMPLEMENTED | |
| 190 | SYS_LIST_USERS | IMPLEMENTED | |
| 191 | SYS_AUTHENTICATE | IMPLEMENTED | |
| 192 | SYS_PLAY_WAV | IMPLEMENTED | |
| 193 | SYS_GET_CPU_USAGE | IMPLEMENTED | |
| 194 | SYS_GET_MEM_INFO | IMPLEMENTED | |
| 195 | SYS_GET_KEYBOARD | IMPLEMENTED | Compositor: read raw key from hardware queue |
| 196 | SYS_SPAWN | IMPLEMENTED | Spawn process: path (no args) |
| 197 | SYS_INJECT_KEY | IMPLEMENTED | Compositor: inject key event into KWM queue |
| 198 | SYS_SPAWN_ARGS | IMPLEMENTED | Spawn process with argv: path, argv[], argc |
| 199 | SYS_GET_DISK_INFO | IMPLEMENTED | |
| 200 | SYS_FB_MAP | IMPLEMENTED | |
| 201 | SYS_FB_INFO | IMPLEMENTED | |
| 202 | SYS_FB_FLIP | IMPLEMENTED | |
| 203 | SYS_FB_DAMAGE | IMPLEMENTED | |
| 204 | SYS_SET_WALLPAPER | IMPLEMENTED | |
| 205 | SYS_GET_WALLPAPER | IMPLEMENTED | |
| 206 | SYS_POWEROFF | IMPLEMENTED | |
| 207 | SYS_REBOOT | IMPLEMENTED | |
| 208 | SYS_SET_ICON_SIZE | IMPLEMENTED | |
| 209 | SYS_GET_ICON_SIZE | IMPLEMENTED | |
| 210 | SYS_GET_MOUSE | IMPLEMENTED | |
| 211 | SYS_SET_MOUSE | IMPLEMENTED | |
| 212 | SYS_GET_KEY | IMPLEMENTED | |
| 213 | SYS_GRAB_INPUT | IMPLEMENTED | |
| 214 | SYS_INJECT_MOUSE | IMPLEMENTED | Compositor: inject mouse event into KWM handlers |
| 215 | SYS_DNS_START | IMPLEMENTED | |
| 215 | SYS_MAX | DECLARED ONLY | |
| 216 | SYS_DNS_POLL | IMPLEMENTED | |
| 217 | SYS_NET_SET_STATIC | IMPLEMENTED | |
| 218 | SYS_NET_DHCP | IMPLEMENTED | |
| 219 | SYS_SET_DISPLAY_FX | IMPLEMENTED | |
| 220 | SYS_GET_DISPLAY_FX | IMPLEMENTED | |
| 221 | SYS_DRAW_TTF | IMPLEMENTED | |
| 222 | SYS_MEASURE_TTF | IMPLEMENTED | |
| 223 | SYS_SET_FONT_SIZE | IMPLEMENTED | |
| 224 | SYS_GET_FONT_SIZE | IMPLEMENTED | |
| 225 | SYS_SET_SCREENSAVER | IMPLEMENTED | |
| 226 | SYS_GET_SCREENSAVER | IMPLEMENTED | |
| 227 | SYS_SCREENSAVER_TEST | IMPLEMENTED | |
| 228 | SYS_GET_SS_TEST | IMPLEMENTED | |
| 229 | SYS_SET_SETTINGS_TAB | IMPLEMENTED | compositor -> Settings: open this panel index |
| 230 | SYS_GET_SETTINGS_TAB | IMPLEMENTED | Settings reads + should clear (-1) |
| 231 | SYS_SET_WIN_BLANK | IMPLEMENTED | Compositor: suppress kernel user-window fb_blits (screensaver active) |
| 232 | SYS_WIN_DRAW_TEXT_SMALL | IMPLEMENTED | Draw 4x8 small text into a window (tooltips/hints) |
| 233 | SYS_SET_WIN_OPACITY | IMPLEMENTED | Global default window opacity (0-255), applied to all windows |
| 234 | SYS_GET_NET_BYTES | IMPLEMENTED | Total link bytes (rx+tx) for the network gauge |
| 235 | SYS_WIN_DRAW_TTF | IMPLEMENTED | Antialiased TTF text into a window (size in top byte of color) |
| 236 | SYS_GET_WIN_OPACITY | IMPLEMENTED | Read global default window opacity |
| 237 | SYS_WIN16_RUN | IMPLEMENTED | Run a Win16 NE/.COM executable by path (GUI launch) |
| 238 | SYS_PROC_LIST | IMPLEMENTED | Task Manager: snapshot process table |
| 239 | SYS_HTTP_POST | IMPLEMENTED | HTTPS POST (url, headers, body, buf, cap, &status) for LLM/REST clients |
| 240 | SYS_DOS_RUN | IMPLEMENTED | Run an MS-DOS .EXE/.COM by path in its own window (GUI launch, #208) |
| 241 | SYS_WIN16_ACTIVE | IMPLEMENTED | Query whether a Win16 app owns the foreground (#200 SkiFree) |
| 242 | SYS_SSH_CLIENT | IMPLEMENTED | Interactive SSH client bridged to caller's stdin/stdout |
| 243 | SYS_NET_INFO | IMPLEMENTED | Verbose network interface report into a user buffer |
| 244 | SYS_SETPRIORITY | IMPLEMENTED | Set a process's scheduling priority (nice) |
| 245 | SYS_GET_TICKS | IMPLEMENTED | Monotonic 100Hz tick counter (10ms units) |
| 246 | SYS_GET_VERSION | IMPLEMENTED | Copy the OS version string into a user buffer |
| 247 | SYS_SPAWN_REDIR | IMPLEMENTED | Spawn a child with stdin/stdout redirected to files (#shell redirection) |
| 248 | SYS_SET_CURSOR | IMPLEMENTED | Set live mouse-cursor style + size (#116) |
| 249 | SYS_GET_CURSOR | IMPLEMENTED | |
| 250 | SYS_SET_SS_DELAY | IMPLEMENTED | (#115) Set screensaver activation delay (seconds) |
| 251 | SYS_GET_SS_DELAY | IMPLEMENTED | |
| 252 | SYS_UPTIME_MS | IMPLEMENTED | Monotonic ms since boot (ticks*1000/g_timer_hz) |
| 253 | SYS_DECODE_IMAGE | IMPLEMENTED | Decode+point-sample an image (BMP/PNG/JPEG) to a target box |
| 254 | SYS_WIN_DRAW_IMAGE | IMPLEMENTED | |
| 255 | SYS_HTTP_FETCH_START | IMPLEMENTED | async fetch: start (url) -> job id |
| 256 | SYS_HTTP_FETCH_POLL | IMPLEMENTED | async fetch: poll (id,&status,&len) -> 0run/1done/2err |
| 257 | SYS_HTTP_FETCH_READ | IMPLEMENTED | async fetch: read (id,buf,max) -> bytes, frees job |
| 258 | SYS_HTTP_FETCH_CANCEL | IMPLEMENTED | |
| 259 | SYS_GET_CPU_PER_CORE | IMPLEMENTED | per-core CPU %: buf[0]=count, buf[1..]=pct // async fetch: cancel (id) // Blit a w*h BGRA buffer into a window's content at (x,y) |
| 260 | SYS_WM_MAXIMIZE_WINDOW | IMPLEMENTED | toggle maximize/restore of focused window (F11) |
| 261 | SYS_RUN_NEXT_ON_AP | IMPLEMENTED | |
| 262 | SYS_WIN_SET_NOCHROME | IMPLEMENTED | #185: mark a window borderless (no chrome) |
| 263 | SYS_GET_MOUSE_SCROLL | IMPLEMENTED | OS-wide wheel: read+clear kernel scroll delta // #279: route the next user proc this caller launches onto an application processor |
| 264 | SYS_GET_GLOBAL_MOUSE | IMPLEMENTED | |
| 265 | SYS_HTTP_POST_START | IMPLEMENTED | #264 async POST: start (url,headers,body) -> job id |
| 266 | SYS_HTTP_POST_POLL | IMPLEMENTED | #264 async POST: poll (id,&status,&len) -> 0run/1done/2err |
| 267 | SYS_HTTP_POST_READ | IMPLEMENTED | #264 async POST: read (id,buf,max) -> bytes, frees job |
| 268 | SYS_HTTP_POST_CANCEL | IMPLEMENTED | #264 async POST: cancel (id) // #185: read-only global cursor for non-compositor windows |
| 269 | SYS_NET_MOUNT | IMPLEMENTED | #317: mount an SMB share with creds (server,share,user,pass) -> 0/-1 |
| 270 | SYS_NET_LIST_SHARES | IMPLEMENTED | #317: enumerate a server's shares (server,buf,maxlen) -> count |
| 271 | SYS_NET_UNMOUNT | IMPLEMENTED | #317: unmount an SMB share (server,share) -> 0/-1 |
| 272 | SYS_DEV_PCI_LIST | IMPLEMENTED | (devinfo_pci_t *buf, int max) -> count |
| 273 | SYS_DEV_USB_LIST | IMPLEMENTED | (devinfo_usb_t *buf, int max) -> count |
| 274 | SYS_DEV_IRQ_LIST | IMPLEMENTED | (devinfo_irq_t *buf, int max) -> count |
| 275 | SYS_SYSINFO | IMPLEMENTED | (devinfo_sysinfo_t *out) -> 0/-1 |
| 276 | SYS_CRON_ADD | IMPLEMENTED | (cron_job_t *job) -> new id (>0) / <0 |
| 277 | SYS_CRON_LIST | IMPLEMENTED | (cron_job_t *buf, int max) -> count |
| 278 | SYS_CRON_REMOVE | IMPLEMENTED | (uint32_t id) -> 0/-1 |
| 279 | SYS_CRON_ENABLE | IMPLEMENTED | (uint32_t id, int enable) -> 0/-1 |
| 280 | SYS_WIN_MOVE | IMPLEMENTED | #334: move a window to absolute screen x,y (handle,x,y) -> 0/-1 |
| 281 | SYS_WIN_MOVE_BY | IMPLEMENTED | #334: move a window by dx,dy (handle,dx,dy) -> 0/-1 |
| 290 | SYS_THEME_COLOR | IMPLEMENTED | (#285) Get active theme color by theme_color_id_t // (#115) Get screensaver activation delay (seconds) |
| 291 | SYS_PRINT_LIST | IMPLEMENTED | (printer_cfg_t *out, int max) -> count |
| 292 | SYS_PRINT_JOB | IMPLEMENTED | (const char *printer, const char *title, const char *text) -> 0/-1 |
| 293 | SYS_PRINT_ADD | IMPLEMENTED | (name, host, port, queue, make_default) -> 0/-1 |
| 294 | SYS_PRINT_REMOVE | IMPLEMENTED | (const char *name) -> 0/-1 |
| 295 | SYS_AUDIO_POS_MS | IMPLEMENTED | (#335) elapsed ms of the current DAC stream (frames/rate), -1 if idle |
| 296 | SYS_PRINT_IMAGE | IMPLEMENTED | (#318) (const char *printer, const char *path) -> 0/-1 (print image file) |
| 297 | SYS_PRINT_SCREEN | IMPLEMENTED | (#318) (const char *printer) -> 0/-1 (print the framebuffer) |
| 298 | SYS_BOOTLOG_WRITE | IMPLEMENTED | (#307 real-hw) (const char *msg) -> 0/-1, appends to persistent /BOOTLOG.TXT |
| 299 | SYS_NET_IS_UP | IMPLEMENTED | #374 network-up gate (link+IP+stack) |
| 300 | SYS_DESKTOP_MENU_RELOAD | IMPLEMENTED | (#402) reload Start menu after App Store install |
| 301 | SYS_PKG_WRITE | IMPLEMENTED | (#402) package manager: write a file to the FAT ESP |
| 302 | SYS_HTTP_FETCH_HDR | IMPLEMENTED | (#414) blocking GET with auth headers (haservice) |
| 303 | SYS_LISTEN | IMPLEMENTED | (sock, port, backlog) -> 0/-1: bind+listen |
| 304 | SYS_ACCEPT | IMPLEMENTED | (sock) -> new socket fd, or WOULD_BLOCK/-1 |
| 305 | SYS_SET_MOUSE_BUTTONS | IMPLEMENTED | (mask) -> 0/-1, compositor-only |
| 306 | SYS_HDA_DBG | IMPLEMENTED | (#71) userland HDA audio bring-up debug: op,a,b,c -> see hda_debug_op() |
| 307 | SYS_FONT_COUNT | IMPLEMENTED | () -> number of installed faces (>=1) |
| 308 | SYS_FONT_NAME | IMPLEMENTED | (int idx, char *buf, int cap) -> name length |
| 309 | SYS_FONT_GLYPH | IMPLEMENTED | (packed[face|size<<8|style<<24], cp, int meta[5], u8 *bmp, cap) -> advance or -1 |
| 310 | SYS_FONT_METRICS | IMPLEMENTED | (packed[face|size<<8], int out[3]={asc,desc,linegap}) -> 0 |
| 311 | SYS_WIN_DRAW_TTF_EX | IMPLEMENTED | (win, x|y<<16, str, face|size<<8|style<<24, color) -> 0 (face-aware window TTF) |
| 312 | SYS_FONT_KERN | IMPLEMENTED | |
| 313 | SYS_KERNEL_SELFUPDATE | IMPLEMENTED | |
| 314 | SYS_OTA_VERIFY_SIG | IMPLEMENTED | (digest[32], sig, sig_len) -> 0 valid / -1: verify a signed OTA manifest against the baked-in pubkey |
| 315 | SYS_AUDIO_PCM_OPEN | IMPLEMENTED | (rate, channels, format) -> handle >=1, or <0 |
| 316 | SYS_AUDIO_PCM_WRITE | IMPLEMENTED | (handle, const void *pcm, frames) -> frames accepted, or <0 |
| 317 | SYS_AUDIO_PCM_CLOSE | IMPLEMENTED | |
| 318 | SYS_PROC_HANDLES | IMPLEMENTED | (pid, handle_info_t *buf, int max) -> count / -1 |
| 319 | SYS_NET_CONNS | IMPLEMENTED | (pid|PI_PID_ALL, tcp_conn_info_t *buf, int max) -> count / -1 |
| 320 | SYS_SVC_LIST | IMPLEMENTED | (svc_info_t *buf, int max) -> count / -1 |
| 321 | SYS_SVC_CONTROL | IMPLEMENTED | (const char *name, PI_SVC_START/STOP) -> 0 / -1 |
| 322 | SYS_PROC_DETAIL | IMPLEMENTED | (pid, proc_detail_t *out) -> 1 / -1 |
| 323 | SYS_SECTEST | IMPLEMENTED | (void *ubuf, uint64_t len) -> failing controls |
| 324 | SYS_FONT_STYLE | IMPLEMENTED | |
| 325 | SYS_FONT_RESCAN | IMPLEMENTED | |
| 326 | SYS_FONT_REMOVE | IMPLEMENTED | |
| 327 | SYS_FONT_SET_UI | IMPLEMENTED | |
| 328 | SYS_FONT_GET_UI | IMPLEMENTED | |
| 329 | SYS_FONT_FIND | IMPLEMENTED | (packed[face|size<<8], cp1, cp2) -> kerning px |
| 330 | SYS_CLIP_SET | IMPLEMENTED | (const void *src, uint64_t len) -> bytes stored |
| 331 | SYS_CLIP_GET | IMPLEMENTED | (void *dst, uint64_t cap) -> total bytes held (copies min) |
| 332 | SYS_CLIP_LEN | IMPLEMENTED | () -> total bytes currently on the clipboard |
| 333 | SYS_FS_PERM_INFO | IMPLEMENTED | #554: (const char *path, int reserved, k_fsperm_info_t *out) -> 0/-1: filesystem-aware permission/attribute info (ext2 uid/gid/mode via perms.c, or native FAT attribute byte). See rustkern/fsperm.rs. |
| 334 | SYS_APP_VERIFY_SIG | IMPLEMENTED | (digest[32], sig, sig_len) -> 0 valid / -1: verify a signed APP-REPO manifest against the baked-in APP key (#563 key split; domain-separated from the OTA key). RESTORED: dropped by 68199dd (#565) which silently defeated the key split. |
| 335 | SYS_THEME_LOAD_FILE | IMPLEMENTED | |
| 336 | SYS_SESSION_LOCK | IMPLEMENTED | () -> 0: lock the current session |
| 337 | SYS_SESSION_UNLOCK | IMPLEMENTED | (const char *user, const char *pass) -> 0 ok / -1 bad / -2 locked |
| 338 | SYS_SESSION_IS_LOCKED | IMPLEMENTED | () -> 1 locked / 0 unlocked (display cache read) |
| 339 | SYS_SET_AUTOLOGIN | IMPLEMENTED | (const char *user, const char *pass, int enable) -> 0/-1 |
| 340 | SYS_GET_AUTOLOGIN | IMPLEMENTED | (char *buf, int cap) -> len of configured user (0 = disabled) |
| 341 | SYS_AUTH_LOCKOUT | IMPLEMENTED | (const char *user) -> seconds of lockout remaining (0 = none) |
| 342 | SYS_WM_APPS_DIRTY | IMPLEMENTED | () -> 1 if any KWM window changed (move/resize/focus/create/close/win_invalidate) since the last SYS_COMPOSITOR_RENDER_WINDOWS composite, else 0. #564 idle-CPU render gate; see kernel/gui/window.c sys_wm_apps_dirty(). |
| 343 | SYS_SOCK_OPEN | IMPLEMENTED | (domain,type,proto) -> fd |
| 344 | SYS_SOCK_BIND | IMPLEMENTED | (fd, sockaddr_in*, addrlen) -> 0/-err |
| 345 | SYS_SOCK_CONNECT | IMPLEMENTED | (fd, sockaddr_in*, addrlen) -> 0/-err (blocking) |
| 346 | SYS_SOCK_LISTEN | IMPLEMENTED | (fd, backlog) -> 0/-err |
| 347 | SYS_SOCK_ACCEPT | IMPLEMENTED | (fd, sockaddr_in*, addrlen*) -> newfd/-err (blocking) |
| 348 | SYS_SOCK_SEND | IMPLEMENTED | (fd, buf, len, flags) -> n/-err |
| 349 | SYS_SOCK_RECV | IMPLEMENTED | (fd, buf, len, flags) -> n/-err (blocking) |
| 350 | SYS_SOCK_SENDTO | IMPLEMENTED | (fd, buf, len, flags, sockaddr_in*, addrlen) -> n/-err |
| 351 | SYS_SOCK_RECVFROM | IMPLEMENTED | (fd, buf, len, flags, sockaddr_in*, addrlen*) -> n/-err (blocking) |
| 352 | SYS_SOCK_SETOPT | IMPLEMENTED | (fd, level, optname, optval*, optlen) -> 0/-err |
| 353 | SYS_SOCK_GETOPT | IMPLEMENTED | (fd, level, optname, optval*, optlen*) -> 0/-err |
| 354 | SYS_SOCK_SELECT | IMPLEMENTED | (nfds, readfds*, writefds*, exceptfds*, timeout*) -> count/-err |
| 355 | SYS_SOCK_SHUTDOWN | IMPLEMENTED | (fd, how) -> 0/-err |
| 356 | SYS_FSCK | IMPLEMENTED | Read live mouse-cursor style + size (packed: style|size<<8) |
| 357 | SYS_THEME_METRIC | IMPLEMENTED | (#711) mtheme v2 integer metric: (theme_id, theme_metric_v2_t) -> int32 |
| 358 | SYS_FSYNC | IMPLEMENTED | (#695) fsync(int fd) -> 0 durable / <0 failed |
How this page is kept honest
IMPLEMENTED is not "the header defines it" - it is "the string appears as a real case SYS_NAME: arm in kernel/proc/syscall.c, the actual dispatcher the kernel runs". A syscall can still be a no-op or a stub behind that case arm; this page proves the case exists, not that the implementation behind it is complete. For a specific syscall's real behaviour, read the case body in syscall.c directly.