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 |