h1. FMI/OS Syscall Quick Reference

This is current as of dalen-fmios/system-base/kernel/dev rev: 161

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

Also available in: HTML TXT