h1. VSTa Syscall Quick Reference

# Name Args Prototype Returns Comment
0 msg_port 2 (portname argport, portname +user out+ *argportp) port_t of -1 or @[PROCOPENS..?]@
1 msg_connect 2 (portname argport, uint arg_mode) port_t of -1 or @[0..PROCOPENS-1]@
2 msg_accept 1 (long arg_tran) int of -1 or 0
3 msg_send 2 (portt argport, struct msg +user in+ *arg_msg) int of -1 or @sm.sm_arg@
4 msg_receive 2 (portt argport, struct msg +user out+ *arg_msg) int of -1 or 0
5 msg_reply 2 (long argwho, struct msg +user in+ *argmsg) int of -1 or 0
6 msg_disconnect 1 (portt argport) int of -1 or 0
7 msg_err 3 (long argtran, const char +user in+ *argwhy, int arg_len) int of -1 or 0
8 do_exit 1 (int code) void
9 fork 0 (void) pid_t of -1? or 0 or npid Never actually returns an error!
10 fork_thread 2 (voidfun +user+ f, ulong arg) pid_t of -1 or 0 or npid
11 enable_io 2 (int arglow, int arghigh) int of -1 or 0
12 enable_isr 2 (portt argport, int irq) int of -1 or 0
13 mmap 6 (caddrt addr, ulong len, int prot, int flags, portt port, ulong offset) void * of 0 or vaddr Only function that returns 0 as error! addr parameter is sometimes a +user+ address and sometimes a physical address
14 munmap 2 (caddr_t vaddr, ulong len) int of -1 or 0
15 strerror 1 (char +user out+ *ustr) int of -1 or 0
16 notify 4 (pidt argproc, pidt argthread, char +user in+ *argmsg, int argmsglen) int of -1 or 0
17 clone 1 (portt argport) int of -1 or @[0..PROCOPENS-1]@
18 page_wire 3 (void +user+ argva, void +user out+ *argpa, uint flags) int of -1 or @[0..MAX_WIRED]@
19 page_release 1 (uint arg_handle) int of -1 or 0
20 enable_dma 0 (void) int of -1 or 0
21 time_get 1 (struct time +user out+ *arg_time) int of -1 or 0
22 time_sleep 1 (struct time +user in+ *arg_time) int of -1 or 0
23 nop 1 ?? ??, formerly an int: 0 in debug kernel (with #define KDB), err(EINVAL), which is -1, otherwise Formerly (import from VSTa) dodbgenter (macro SDBGENTER) without args
24 exec 3 (uint argport, struct mapfile +user in+ *argmap, void +user+ *arg) int of -1
25 waits 2 (struct exitst +user out+ *w, int block) int of -1 or @e->e_code@
26 perm_ctl 3 (int argidx, struct perm +user in+ *argperm, struct perm +user out+ *arg_ret) int of -1 or 0
27 set_swapdev 1 (portt argport) int of -1 or 0
28 run_qio 0 (void) int of -1
29 set_cmd 1 (char +user in+ *arg_cmd) int of -1 or 0
30 pageout 0 (void) int of -1
31 getid 1 (int which) pid_t of -1 or pid
32 unhash 2 (portt argport, long arg_fid) int of -1 or 0
33 time_set 1 (struct time +user in+ *arg_time) int of -1 or 0
34 ptrace 2 (pidt pid, portname name) int of -1 or 0 or 1 #ifdef PROC_DEBUG
35 msg_portname 1 (portt argport) portname of -1 or @port->pname@
36 pstat 4 (uint pstype, uint psarg, void +user out+ *psinfo, uint pssize) int of -1 or 0 or # of pid_t's copied out or whatever copyout() returns #ifdef PSTAT
37 notify_handler 1 (voidfun +user+ handler) int of 0
38 sched_op 2 (int op, int arg) int of -1 or 0 or PRIBG or PRIRT or PRI_TIMESHARE
39 setsid 0 (void) int of -1 or 0
40 mutex_thread 1 (pid_t tid) int of -1 or 0

Also available in: HTML TXT