Files
retrobsd/sys/kernel/init_sysent.c
Serge Vakulenko 585773955b Fix include paths in the kernel sources.
Max32 kernel successfully compiled with kconfig utility.
2015-08-31 00:21:41 -07:00

212 lines
9.6 KiB
C

/*
* System call switch table.
*
* Copyright (c) 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/glob.h>
#ifdef INET
# define ifnet(narg, name) narg, name
# define errnet(narg, name) narg, name
#else
# define ifnet(narg, name) 0, nosys
# define errnet(narg, name) 0, nonet
#endif
extern void sc_msec();
/*
* Reserved/unimplemented system calls in the range 0-150 inclusive
* are reserved for use in future Berkeley releases.
* Additional system calls implemented in vendor and other
* redistributions should be placed in the reserved range at the end
* of the current calls.
*/
/*
* This table is the switch used to transfer to the appropriate routine for
* processing a system call. Each row contains the number of words of
* arguments expected in registers, how many on the stack, and a pointer to
* the routine.
*
* The maximum number of direct system calls is 255 since system call numbers
* are encoded in the lower byte of the trap instruction -- see trap.c.
*/
const struct sysent sysent[] = {
{ 1, nosys }, /* 0 = out-of-range */
{ 1, rexit }, /* 1 = exit */
{ 0, fork }, /* 2 = fork */
{ 3, read }, /* 3 = read */
{ 3, write }, /* 4 = write */
{ 3, open }, /* 5 = open */
{ 1, close }, /* 6 = close */
{ 4, wait4 }, /* 7 = wait4 */
{ 0, nosys }, /* 8 = (old creat) */
{ 2, link }, /* 9 = link */
{ 1, unlink }, /* 10 = unlink */
{ 2, execv }, /* 11 = execv */
{ 1, chdir }, /* 12 = chdir */
{ 1, fchdir }, /* 13 = fchdir */
{ 3, mknod }, /* 14 = mknod */
{ 2, chmod }, /* 15 = chmod */
{ 3, chown }, /* 16 = chown; now 3 args */
{ 2, chflags }, /* 17 = chflags */
{ 2, fchflags }, /* 18 = fchflags */
{ 4, lseek }, /* 19 = lseek */
{ 0, getpid }, /* 20 = getpid */
{ 3, smount }, /* 21 = mount */
{ 1, umount }, /* 22 = umount */
{ 6, __sysctl }, /* 23 = __sysctl */
{ 0, getuid }, /* 24 = getuid */
{ 0, geteuid }, /* 25 = geteuid */
{ 4, ptrace }, /* 26 = ptrace */
{ 0, getppid }, /* 27 = getppid */
{ 2, statfs }, /* 28 = statfs */
{ 2, fstatfs }, /* 29 = fstatfs */
{ 3, getfsstat }, /* 30 = getfsstat */
{ 4, sigaction }, /* 31 = sigaction */
{ 3, sigprocmask }, /* 32 = sigprocmask */
{ 2, saccess }, /* 33 = access */
{ 1, sigpending }, /* 34 = sigpending */
{ 2, sigaltstack }, /* 35 = sigaltstack */
{ 0, sync }, /* 36 = sync */
{ 2, kill }, /* 37 = kill */
{ 2, stat }, /* 38 = stat */
{ 2, nosys }, /* 39 = getlogin */
{ 2, lstat }, /* 40 = lstat */
{ 1, dup }, /* 41 = dup */
{ 0, pipe }, /* 42 = pipe */
{ 1, nosys }, /* 43 = setlogin */
{ 4, profil }, /* 44 = profil */
{ 1, setuid }, /* 45 = setuid */
{ 1, seteuid }, /* 46 = seteuid */
{ 0, getgid }, /* 47 = getgid */
{ 0, getegid }, /* 48 = getegid */
{ 1, setgid }, /* 49 = setgid */
{ 1, setegid }, /* 50 = setegid */
{ 0, kmemdev }, /* 51 = kmemdev */
{ 3, nosys }, /* 52 = (2.9) set phys addr */
{ 1, nosys }, /* 53 = (2.9) lock in core */
{ 4, ioctl }, /* 54 = ioctl */
{ 1, reboot }, /* 55 = reboot */
{ 2, sigwait }, /* 56 = sigwait */
{ 2, symlink }, /* 57 = symlink */
{ 3, readlink }, /* 58 = readlink */
{ 3, execve }, /* 59 = execve */
{ 1, umask }, /* 60 = umask */
{ 1, chroot }, /* 61 = chroot */
{ 2, fstat }, /* 62 = fstat */
{ 0, nosys }, /* 63 = reserved */
{ 0, nosys }, /* 64 = (old getpagesize) */
{ 6, pselect }, /* 65 = pselect */
{ 0, vfork }, /* 66 = vfork */
{ 0, nosys }, /* 67 = unused */
{ 0, nosys }, /* 68 = unused */
{ 1, brk }, /* 69 = brk */
#ifdef GLOB_ENABLED
{ 1, rdglob }, /* 70 = read from global */
{ 2, wrglob }, /* 71 = write to global */
#else
{ 1, nosys },
{ 2, nosys },
#endif
{ 0, sc_msec }, /* 72 = msec */
{ 0, nosys }, /* 73 = unused */
{ 0, nosys }, /* 74 = unused */
{ 0, nosys }, /* 75 = unused */
{ 0, vhangup }, /* 76 = vhangup */
{ 0, nosys }, /* 77 = unused */
{ 0, nosys }, /* 78 = unused */
{ 2, getgroups }, /* 79 = getgroups */
{ 2, setgroups }, /* 80 = setgroups */
{ 1, getpgrp }, /* 81 = getpgrp */
{ 2, setpgrp }, /* 82 = setpgrp */
{ 3, setitimer }, /* 83 = setitimer */
{ 0, nosys }, /* 84 = (old wait,wait3) */
{ 0, nosys }, /* 85 = unused */
{ 2, getitimer }, /* 86 = getitimer */
{ 0, nosys }, /* 87 = (old gethostname) */
{ 0, nosys }, /* 88 = (old sethostname) */
{ 0, getdtablesize }, /* 89 = getdtablesize */
{ 2, dup2 }, /* 90 = dup2 */
{ 0, nosys }, /* 91 = unused */
{ 3, fcntl }, /* 92 = fcntl */
{ 5, select }, /* 93 = select */
{ 0, nosys }, /* 94 = unused */
{ 1, fsync }, /* 95 = fsync */
{ 3, setpriority }, /* 96 = setpriority */
{ errnet(3, socket) }, /* 97 = socket */
{ ifnet(3, connect) }, /* 98 = connect */
{ ifnet(3, accept) }, /* 99 = accept */
{ 2, getpriority }, /* 100 = getpriority */
{ ifnet(4, send) }, /* 101 = send */
{ ifnet(4, recv) }, /* 102 = recv */
{ 1, sigreturn }, /* 103 = sigreturn */
{ ifnet(3, bind) }, /* 104 = bind */
{ ifnet(5, setsockopt) }, /* 105 = setsockopt */
{ ifnet(2, listen) }, /* 106 = listen */
{ 1, sigsuspend }, /* 107 = sigsuspend */
{ 0, nosys }, /* 108 = (old sigvec) */
{ 0, nosys }, /* 109 = (old sigblock) */
{ 0, nosys }, /* 110 = (old sigsetmask) */
{ 0, nosys }, /* 111 = (old sigpause) */
{ 2, sigstack }, /* 112 = sigstack COMPAT-43 */
{ ifnet(3, recvmsg) }, /* 113 = recvmsg */
{ ifnet(3, sendmsg) }, /* 114 = sendmsg */
{ 0, nosys }, /* 115 = unused */
{ 2, gettimeofday }, /* 116 = gettimeofday */
{ 2, getrusage }, /* 117 = getrusage */
{ ifnet(5, getsockopt) }, /* 118 = getsockopt */
{ 0, nosys }, /* 119 = unused */
{ 3, readv }, /* 120 = readv */
{ 3, writev }, /* 121 = writev */
{ 2, settimeofday }, /* 122 = settimeofday */
{ 3, fchown }, /* 123 = fchown */
{ 2, fchmod }, /* 124 = fchmod */
{ ifnet(6, recvfrom) }, /* 125 = recvfrom */
{ 0, nosys }, /* 126 = (old setreuid) */
{ 0, nosys }, /* 127 = (old setregid) */
{ 2, rename }, /* 128 = rename */
{ 3, truncate }, /* 129 = truncate */
{ 3, ftruncate }, /* 130 = ftruncate */
{ 2, flock }, /* 131 = flock */
{ 0, nosys }, /* 132 = nosys */
{ ifnet(6, sendto) }, /* 133 = sendto */
{ ifnet(2, shutdown) }, /* 134 = shutdown */
{ errnet(4, socketpair) }, /* 135 = socketpair */
{ 2, mkdir }, /* 136 = mkdir */
{ 1, rmdir }, /* 137 = rmdir */
{ 2, utimes }, /* 138 = utimes */
{ 0, nosys }, /* 139 = unused */
{ 2, adjtime }, /* 140 = adjtime */
{ ifnet(3, getpeername) }, /* 141 = getpeername */
{ 0, nosys }, /* 142 = (old gethostid) */
{ 0, nosys }, /* 143 = (old sethostid) */
{ 2, getrlimit }, /* 144 = getrlimit */
{ 2, setrlimit }, /* 145 = setrlimit */
{ 2, killpg }, /* 146 = killpg */
{ 0, nosys }, /* 147 = nosys */
{ 2, nosys }, /* 148 = quota */
{ 4, nosys }, /* 149 = qquota */
{ ifnet(3, getsockname) }, /* 150 = getsockname */
/*
* Syscalls 151-180 inclusive are reserved for vendor-specific
* system calls. (This includes various calls added for compatibity
* with other Unix variants.)
*/
/*
* 2BSD special calls
*/
{ 0, nosys }, /* 151 = unused */
{ 2, ustore }, /* 152 = ustore */
{ 1, ufetch }, /* 153 = ufetch */
{ 4, ucall }, /* 154 = ucall */
{ 0, nosys }, /* 155 = fperr */
};
const int nsysent = sizeof (sysent) / sizeof (sysent[0]);