summaryrefslogtreecommitdiff
path: root/sys/compat/ultrix
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/ultrix')
-rw-r--r--sys/compat/ultrix/files.ultrix11
-rw-r--r--sys/compat/ultrix/syscalls.conf12
-rw-r--r--sys/compat/ultrix/syscalls.master355
-rw-r--r--sys/compat/ultrix/ultrix_misc.c598
-rw-r--r--sys/compat/ultrix/ultrix_syscall.h156
-rw-r--r--sys/compat/ultrix/ultrix_syscallargs.h257
-rw-r--r--sys/compat/ultrix/ultrix_syscalls.c276
-rw-r--r--sys/compat/ultrix/ultrix_sysent.c565
8 files changed, 2230 insertions, 0 deletions
diff --git a/sys/compat/ultrix/files.ultrix b/sys/compat/ultrix/files.ultrix
new file mode 100644
index 00000000000..d54c76ef9e3
--- /dev/null
+++ b/sys/compat/ultrix/files.ultrix
@@ -0,0 +1,11 @@
+# $NetBSD: files.ultrix,v 1.1 1995/09/20 00:15:19 thorpej Exp $
+#
+# Config file description for machine-independent Ultrix compat code.
+# Included by ports that need it.
+
+# ports should define any machine-specific files they need in their
+# own file lists.
+
+file compat/ultrix/ultrix_misc.c compat_ultrix
+file compat/ultrix/ultrix_syscalls.c compat_ultrix
+file compat/ultrix/ultrix_sysent.c compat_ultrix
diff --git a/sys/compat/ultrix/syscalls.conf b/sys/compat/ultrix/syscalls.conf
new file mode 100644
index 00000000000..6b5702359e9
--- /dev/null
+++ b/sys/compat/ultrix/syscalls.conf
@@ -0,0 +1,12 @@
+# $NetBSD: syscalls.conf,v 1.1 1994/11/23 17:49:06 dean Exp $
+
+sysnames="ultrix_syscalls.c"
+sysnumhdr="ultrix_syscall.h"
+syssw="ultrix_sysent.c"
+sysarghdr="ultrix_syscallargs.h"
+compatopts="compat_43 compat_09 compat_10"
+libcompatopts=""
+
+switchname="ultrix_sysent"
+namesname="ultrix_syscallnames"
+constprefix="ULTRIX_SYS_"
diff --git a/sys/compat/ultrix/syscalls.master b/sys/compat/ultrix/syscalls.master
new file mode 100644
index 00000000000..6b203215e58
--- /dev/null
+++ b/sys/compat/ultrix/syscalls.master
@@ -0,0 +1,355 @@
+ $NetBSD: syscalls.master,v 1.11 1995/10/07 06:28:00 mycroft Exp $
+
+; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
+
+; NetBSD COMPAT_ULTRIX system call name/number "master" file.
+; (See syscalls.conf to see what it is processed into.)
+;
+; Fields: number type [type-dependent ...]
+; number system call number, must be in order
+; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
+; the compatibility options defined in syscalls.conf.
+;
+; types:
+; STD always included
+; OBSOL obsolete, not included in system
+; UNIMPL unimplemented, not included in system
+; NODEF included, but don't define the syscall number
+; NOARGS included, but don't define the syscall args structure
+;
+; The compat options are defined in the syscalls.conf file, and the
+; compat option name is prefixed to the syscall name. Other than
+; that, they're like NODEF (for 'compat' options), or STD (for
+; 'libcompat' options).
+;
+; The type-dependent arguments are as follows:
+; For STD, NODEF, NOARGS, and compat syscalls:
+; { pseudo-proto } [alias]
+; For other syscalls:
+; [comment]
+;
+; #ifdef's, etc. may be included, and are copied to the output files.
+; #include's are copied to the syscall switch definition file only.
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/signal.h>
+#include <sys/mount.h>
+#include <sys/syscallargs.h>
+#include <compat/ultrix/ultrix_syscallargs.h>
+
+0 NOARGS { int sys_nosys(void); } syscall
+1 NOARGS { int sys_exit(int rval); }
+2 NOARGS { int sys_fork(void); }
+3 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); }
+4 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); }
+5 STD { int ultrix_sys_open(char *path, int flags, \
+ int mode); }
+6 NOARGS { int sys_close(int fd); }
+7 UNIMPL old_wait
+8 NOARGS { int compat_43_sys_creat(char *path, int mode); }
+9 NOARGS { int sys_link(char *path, char *link); }
+10 NOARGS { int sys_unlink(char *path); }
+11 STD { int ultrix_sys_execv(char *path, char **argp); }
+12 NOARGS { int sys_chdir(char *path); }
+13 OBSOL time
+14 STD { int ultrix_sys_mknod(char *path, int mode, int dev); }
+15 NOARGS { int sys_chmod(char *path, int mode); }
+16 NOARGS { int sys_chown(char *path, int uid, int gid); }
+17 NOARGS { int sys_obreak(char *nsize); } break
+18 OBSOL stat
+19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \
+ int whence); }
+20 NOARGS { pid_t sys_getpid(void); }
+21 OBSOL mount
+22 OBSOL sysV_unmount
+23 NOARGS { int sys_setuid(uid_t uid); }
+24 NOARGS { uid_t sys_getuid(void); }
+25 OBSOL v7 stime
+26 OBSOL v7 ptrace
+27 OBSOL v7 alarm
+28 OBSOL v7 fstat
+29 OBSOL v7 pause
+30 OBSOL v7 utime
+31 OBSOL v7 stty
+32 OBSOL v7 gtty
+33 NOARGS { int sys_access(char *path, int flags); }
+34 OBSOL v7 nice
+35 OBSOL v7 ftime
+36 NOARGS { int sys_sync(void); }
+37 NOARGS { int sys_kill(int pid, int signum); }
+38 NOARGS { int compat_43_sys_stat(char *path, \
+ struct ostat *ub); } ostat
+39 OBSOL v7 setpgrp
+40 NOARGS { int compat_43_sys_lstat(char *path, \
+ struct ostat *ub); } olstat
+41 NOARGS { int sys_dup(u_int fd); }
+42 NOARGS { int sys_pipe(void); }
+43 OBSOL v7 times
+44 NOARGS { int sys_profil(caddr_t samples, u_int size, \
+ u_int offset, u_int scale); }
+45 UNIMPL
+46 OBSOL v7 setgid
+47 NOARGS { gid_t sys_getgid(void); }
+48 UNIMPL ssig
+49 UNIMPL reserved for USG
+50 UNIMPL reserved for USG
+51 NOARGS { int sys_acct(char *path); }
+52 UNIMPL
+53 UNIMPL syslock
+54 NOARGS { int sys_ioctl(int fd, u_long com, caddr_t data); }
+55 NOARGS { int sys_reboot(int opt); }
+56 UNIMPL v7 mpxchan
+57 NOARGS { int sys_symlink(char *path, char *link); }
+58 NOARGS { int sys_readlink(char *path, char *buf, int count); }
+59 NOARGS { int sys_execve(char *path, char **argp, \
+ char **envp); }
+60 NOARGS { int sys_umask(int newmask); }
+61 NOARGS { int sys_chroot(char *path); }
+62 NOARGS { int compat_43_sys_fstat(int fd, struct ostat *sb); }
+63 UNIMPL
+64 NOARGS { int compat_43_sys_getpagesize(void); }
+65 UNIMPL mremap
+66 NOARGS { int sys_vfork(void); }
+67 OBSOL vread
+68 OBSOL vwrite
+69 NOARGS { int sys_sbrk(int incr); }
+70 NOARGS { int sys_sstk(int incr); }
+71 STD { int ultrix_sys_mmap(caddr_t addr, size_t len, \
+ int prot, u_int flags, int fd, long pos); }
+72 NOARGS { int sys_ovadvise(int anom); } vadvise
+73 NOARGS { int sys_munmap(caddr_t addr, size_t len); }
+74 NOARGS { int sys_mprotect(caddr_t addr, size_t len, \
+ int prot); }
+75 NOARGS { int sys_madvise(caddr_t addr, size_t len, \
+ int behav); }
+76 STD { int ultrix_sys_vhangup(void); }
+77 UNIMPL old vlimit
+78 NOARGS { int sys_mincore(caddr_t addr, int len, char *vec); }
+79 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
+80 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
+81 NOARGS { int sys_getpgrp(void); }
+82 STD { int ultrix_sys_setpgrp(int pid, int pgid); }
+83 NOARGS { int sys_setitimer(u_int which, \
+ struct itimerval *itv, struct itimerval *oitv); }
+84 STD { int ultrix_sys_wait3(int *status, int options, \
+ struct rusage *rusage);}
+85 NOARGS { int sys_swapon(char *name); }
+86 NOARGS { int sys_getitimer(u_int which, \
+ struct itimerval *itv); }
+87 NOARGS { int compat_43_sys_gethostname(char *hostname, \
+ u_int len); }
+88 NOARGS { int compat_43_sys_sethostname(char *hostname, \
+ u_int len); }
+89 NOARGS { int compat_43_sys_getdtablesize(void); }
+90 NOARGS { int sys_dup2(u_int from, u_int to); }
+91 UNIMPL getdopt
+92 NOARGS { int sys_fcntl(int fd, int cmd, void *arg); }
+93 NOARGS { int sys_select(u_int nd, fd_set *in, fd_set *ou, \
+ fd_set *ex, struct timeval *tv); }
+94 UNIMPL setdopt
+95 NOARGS { int sys_fsync(int fd); }
+96 NOARGS { int sys_setpriority(int which, int who, int prio); }
+97 NOARGS { int sys_socket(int domain, int type, int protocol); }
+98 NOARGS { int sys_connect(int s, caddr_t name, int namelen); }
+99 NOARGS { int compat_43_sys_accept(int s, caddr_t name, \
+ int *anamelen); }
+100 NOARGS { int sys_getpriority(int which, int who); }
+101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \
+ int flags); }
+102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \
+ int flags); }
+103 NOARGS { int sys_sigreturn(struct sigcontext *sigcntxp); }
+104 NOARGS { int sys_bind(int s, caddr_t name, int namelen); }
+105 STD { int ultrix_sys_setsockopt(int s, int level, \
+ int name, caddr_t val, int valsize); }
+106 NOARGS { int sys_listen(int s, int backlog); }
+107 UNIMPL vtimes
+108 NOARGS { int compat_43_sys_sigvec(int signum, \
+ struct sigvec *nsv, struct sigvec *osv); }
+109 NOARGS { int compat_43_sys_sigblock(int mask); }
+110 NOARGS { int compat_43_sys_sigsetmask(int mask); }
+111 NOARGS { int sys_sigsuspend(int mask); }
+112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \
+ struct sigstack *oss); }
+113 NOARGS { int compat_43_sys_recvmsg(int s, \
+ struct omsghdr *msg, int flags); }
+114 NOARGS { int compat_43_sys_sendmsg(int s, caddr_t msg, \
+ int flags); }
+115 OBSOL vtrace
+116 NOARGS { int sys_gettimeofday(struct timeval *tp, \
+ struct timezone *tzp); }
+117 NOARGS { int sys_getrusage(int who, struct rusage *rusage); }
+118 NOARGS { int sys_getsockopt(int s, int level, int name, \
+ caddr_t val, int *avalsize); }
+119 UNIMPL resuba
+120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \
+ u_int iovcnt); }
+121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \
+ u_int iovcnt); }
+122 NOARGS { int sys_settimeofday(struct timeval *tv, \
+ struct timezone *tzp); }
+123 NOARGS { int sys_fchown(int fd, int uid, int gid); }
+124 NOARGS { int sys_fchmod(int fd, int mode); }
+125 NOARGS { int compat_43_sys_recvfrom(int s, caddr_t buf, \
+ size_t len, int flags, caddr_t from, \
+ int *fromlenaddr); }
+126 NOARGS { int compat_43_sys_setreuid(int ruid, int euid); }
+127 NOARGS { int compat_43_sys_setregid(int rgid, int egid); }
+128 NOARGS { int sys_rename(char *from, char *to); }
+129 NOARGS { int compat_43_sys_truncate(char *path, long length); }
+130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); }
+131 NOARGS { int sys_flock(int fd, int how); }
+132 UNIMPL
+133 NOARGS { int sys_sendto(int s, caddr_t buf, size_t len, \
+ int flags, caddr_t to, int tolen); }
+134 NOARGS { int sys_shutdown(int s, int how); }
+135 NOARGS { int sys_socketpair(int domain, int type, \
+ int protocol, int *rsv); }
+136 NOARGS { int sys_mkdir(char *path, int mode); }
+137 NOARGS { int sys_rmdir(char *path); }
+138 NOARGS { int sys_utimes(char *path, struct timeval *tptr); }
+139 STD { int ultrix_sys_sigcleanup(struct sigcontext *sigcntxp); }
+140 NOARGS { int sys_adjtime(struct timeval *delta, \
+ struct timeval *olddelta); }
+141 NOARGS { int compat_43_sys_getpeername(int fdes, caddr_t asa, \
+ int *alen); }
+142 NOARGS { int compat_43_sys_gethostid(void); }
+143 UNIMPL old sethostid
+144 NOARGS { int compat_43_sys_getrlimit(u_int which, \
+ struct orlimit *rlp); }
+145 NOARGS { int compat_43_sys_setrlimit(u_int which, \
+ struct orlimit *rlp); }
+146 NOARGS { int compat_43_sys_killpg(int pgid, int signum); }
+147 UNIMPL
+148 UNIMPL setquota
+149 UNIMPL quota /* needs to be nullop to boot on Ultrix root partition*/
+150 NOARGS { int compat_43_sys_getsockname(int fdes, caddr_t asa, \
+ int *alen); }
+151 UNIMPL sysmips /* 4 args */
+152 UNIMPL cacheflush /* 4 args */
+153 UNIMPL cachectl /* 3 args */
+154 UNIMPL
+155 UNIMPL atomic_op
+156 UNIMPL
+157 UNIMPL
+#ifdef NFSSERVER
+158 STD { int ultrix_sys_nfssvc(int fd); }
+#else
+158 UNIMPL
+#endif
+159 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \
+ u_int count, long *basep); }
+160 STD { int ultrix_sys_statfs(char *path, \
+ struct ultrix_statfs *buf); }
+161 STD { int ultrix_sys_fstatfs(int fd, \
+ struct ultrix_statfs *buf); }
+162 UNIMPL umount
+#ifdef NFSCLIENT
+163 NOARGS { int async_daemon(void); }
+164 NOARGS { int sys_getfh(char *fname, fhandle_t *fhp); }
+#else
+163 UNIMPL async_daemon
+164 UNIMPL getfh
+#endif
+165 NOARGS { int compat_09_sys_getdomainname(char *domainname, \
+ int len); }
+166 NOARGS { int compat_09_sys_setdomainname(char *domainname, \
+ int len); }
+167 UNIMPL
+168 STD { int ultrix_sys_quotactl(int cmd, char *special, \
+ int uid, caddr_t addr); }
+169 STD { int ultrix_sys_exportfs(char *path, char *ex); }
+170 UNIMPL mount
+171 UNIMPL 4 hdwconf
+172 UNIMPL msgctl
+173 UNIMPL msgget
+174 UNIMPL msgrcv
+175 UNIMPL msgsnd
+176 UNIMPL semctl
+177 UNIMPL semget
+178 UNIMPL semop
+179 STD { int ultrix_sys_uname(struct ultrix_utsname *name); }
+180 UNIMPL shmsys
+181 UNIMPL 0 plock
+182 UNIMPL 0 lockf
+183 STD { int ultrix_sys_ustat(int dev, \
+ struct ultrix_ustat *buf); }
+184 UNIMPL getmnt
+185 UNIMPL notdef
+186 UNIMPL notdef
+187 STD { int ultrix_sys_sigpending(int *mask); }
+188 NOARGS { int sys_setsid(void); }
+189 STD { int ultrix_sys_waitpid(int pid, int *status, \
+ int options); }
+190 UNIMPL
+191 UNIMPL
+192 UNIMPL
+193 UNIMPL
+194 UNIMPL
+195 UNIMPL
+196 UNIMPL
+197 UNIMPL
+198 UNIMPL
+199 UNIMPL
+200 UNIMPL
+201 UNIMPL
+202 UNIMPL
+203 UNIMPL
+204 UNIMPL
+205 UNIMPL
+206 UNIMPL
+207 UNIMPL
+208 UNIMPL
+209 UNIMPL
+210 UNIMPL
+211 UNIMPL
+212 UNIMPL
+213 UNIMPL
+214 UNIMPL
+215 UNIMPL
+216 UNIMPL
+217 UNIMPL
+218 UNIMPL
+219 UNIMPL
+220 UNIMPL
+221 UNIMPL
+222 UNIMPL
+223 UNIMPL
+224 UNIMPL
+225 UNIMPL
+226 UNIMPL
+227 UNIMPL
+228 UNIMPL
+229 UNIMPL
+230 UNIMPL
+231 UNIMPL
+232 UNIMPL
+233 UNIMPL 1 utc_gettime
+234 UNIMPL 2 utc_adjtime
+235 UNIMPL
+236 UNIMPL
+237 UNIMPL
+238 UNIMPL
+239 UNIMPL
+240 UNIMPL
+241 UNIMPL
+242 UNIMPL
+243 UNIMPL
+244 UNIMPL
+245 UNIMPL
+246 UNIMPL
+247 UNIMPL
+248 UNIMPL
+249 UNIMPL
+250 UNIMPL
+251 UNIMPL
+252 UNIMPL audctl /*Make no-op for installation on Ultrix rootpartition?*/
+253 UNIMPL audgen /*Make no-op for installation on Ultrix rootpartition?*/
+254 UNIMPL startcpu
+255 UNIMPL stopcpu
+256 STD { int ultrix_sys_getsysinfo(unsigned op, char *buffer, \
+ unsigned nbytes, int *start, char *arg); }
+257 STD { int ultrix_sys_setsysinfo(unsigned op, char *buffer, \
+ unsigned nbytes, unsigned arg, unsigned flag); }
+
diff --git a/sys/compat/ultrix/ultrix_misc.c b/sys/compat/ultrix/ultrix_misc.c
new file mode 100644
index 00000000000..620d3fef5d1
--- /dev/null
+++ b/sys/compat/ultrix/ultrix_misc.c
@@ -0,0 +1,598 @@
+/* $NetBSD: ultrix_misc.c,v 1.16 1995/10/07 06:28:02 mycroft Exp $ */
+
+/*
+ * Copyright (c) 1992, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This software was developed by the Computer Systems Engineering group
+ * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+ * contributed to Berkeley.
+ *
+ * All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Lawrence Berkeley Laboratory.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *
+ * @(#)sun_misc.c 8.1 (Berkeley) 6/18/93
+ *
+ * from: Header: sun_misc.c,v 1.16 93/04/07 02:46:27 torek Exp
+ */
+
+/*
+ * SunOS compatibility module.
+ *
+ * SunOS system calls that are implemented differently in BSD are
+ * handled here.
+ */
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/namei.h>
+#include <sys/dir.h>
+#include <sys/proc.h>
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <sys/filedesc.h>
+#include <sys/ioctl.h>
+#include <sys/kernel.h>
+#include <sys/exec.h>
+#include <sys/malloc.h>
+#include <sys/mbuf.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/resource.h>
+#include <sys/resourcevar.h>
+#include <sys/signal.h>
+#include <sys/signalvar.h>
+#include <sys/socket.h>
+#include <sys/vnode.h>
+#include <sys/uio.h>
+#include <sys/wait.h>
+#include <sys/utsname.h>
+#include <sys/unistd.h>
+#include <sys/syscallargs.h>
+
+#include <compat/ultrix/ultrix_syscall.h>
+#include <compat/ultrix/ultrix_syscallargs.h>
+
+#include <netinet/in.h>
+
+#include <miscfs/specfs/specdev.h>
+
+#include <nfs/rpcv2.h>
+#include <nfs/nfsv2.h>
+#include <nfs/nfs.h>
+
+#include <vm/vm.h>
+
+extern struct sysent ultrix_sysent[];
+extern char *ultrix_syscallnames[];
+extern void cpu_exec_ecoff_setregs __P((struct proc *, struct exec_package *,
+ u_long, register_t *));
+struct emul emul_ultrix = {
+ "ultrix",
+ NULL,
+ sendsig,
+ ULTRIX_SYS_syscall,
+ ULTRIX_SYS_MAXSYSCALL,
+ ultrix_sysent,
+ ultrix_syscallnames,
+ 0,
+ copyargs,
+ cpu_exec_ecoff_setregs,
+ 0,
+ 0,
+};
+
+#define GSI_PROG_ENV 1
+
+ultrix_sys_getsysinfo(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_getsysinfo_args *uap = v;
+ static short progenv = 0;
+
+ switch (SCARG(uap, op)) {
+ /* operations implemented: */
+ case GSI_PROG_ENV:
+ if (SCARG(uap, nbytes) < sizeof(short))
+ return EINVAL;
+ *retval = 1;
+ return (copyout(&progenv, SCARG(uap, buffer), sizeof(short)));
+ default:
+ *retval = 0; /* info unavail */
+ return 0;
+ }
+}
+
+ultrix_sys_setsysinfo(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_setsysinfo_args *uap = v;
+ *retval = 0;
+ return 0;
+}
+
+ultrix_sys_waitpid(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_waitpid_args *uap = v;
+ struct sys_wait4_args ua;
+
+ SCARG(&ua, pid) = SCARG(uap, pid);
+ SCARG(&ua, status) = SCARG(uap, status);
+ SCARG(&ua, options) = SCARG(uap, options);
+ SCARG(&ua, rusage) = 0;
+
+ return (sys_wait4(p, &ua, retval));
+}
+
+ultrix_sys_wait3(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_wait3_args *uap = v;
+ struct sys_wait4_args ua;
+
+ SCARG(&ua, pid) = -1;
+ SCARG(&ua, status) = SCARG(uap, status);
+ SCARG(&ua, options) = SCARG(uap, options);
+ SCARG(&ua, rusage) = SCARG(uap, rusage);
+
+ return (sys_wait4(p, &ua, retval));
+}
+
+ultrix_sys_execv(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_execv_args *uap = v;
+ struct sys_execve_args ouap;
+
+ SCARG(&ouap, path) = SCARG(uap, path);
+ SCARG(&ouap, argp) = SCARG(uap, argp);
+ SCARG(&ouap, envp) = NULL;
+
+ return (sys_execve(p, &ouap, retval));
+}
+
+#if defined(NFSCLIENT)
+async_daemon(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct sys_nfssvc_args ouap;
+
+ SCARG(&ouap, flag) = NFSSVC_BIOD;
+ SCARG(&ouap, argp) = NULL;
+
+ return (sys_nfssvc(p, &ouap, retval));
+}
+#endif /* NFSCLIENT */
+
+ultrix_sys_sigpending(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_sigpending_args *uap = v;
+ int mask = p->p_siglist & p->p_sigmask;
+
+ return (copyout((caddr_t)&mask, (caddr_t)SCARG(uap, mask), sizeof(int)));
+}
+
+#if 0
+/* XXX: Temporary until sys/dir.h, include/dirent.h and sys/dirent.h are fixed */
+struct dirent {
+ u_long d_fileno; /* file number of entry */
+ u_short d_reclen; /* length of this record */
+ u_short d_namlen; /* length of string in d_name */
+ char d_name[255 + 1]; /* name must be no longer than this */
+};
+#endif
+
+#define SUN__MAP_NEW 0x80000000 /* if not, old mmap & cannot handle */
+
+ultrix_sys_mmap(p, v, retval)
+ register struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ register struct ultrix_sys_mmap_args *uap = v;
+ struct sys_mmap_args ouap;
+ register struct filedesc *fdp;
+ register struct file *fp;
+ register struct vnode *vp;
+
+ /*
+ * Verify the arguments.
+ */
+ if (SCARG(uap, prot) & ~(PROT_READ|PROT_WRITE|PROT_EXEC))
+ return (EINVAL); /* XXX still needed? */
+
+ if ((SCARG(uap, flags) & SUN__MAP_NEW) == 0)
+ return (EINVAL);
+
+ SCARG(&ouap, flags) = SCARG(uap, flags) & ~SUN__MAP_NEW;
+ SCARG(&ouap, addr) = SCARG(uap, addr);
+
+ if ((SCARG(&ouap, flags) & MAP_FIXED) == 0 &&
+ SCARG(&ouap, addr) != 0 &&
+ SCARG(&ouap, addr) < (caddr_t)round_page(p->p_vmspace->vm_daddr+MAXDSIZ))
+ SCARG(&ouap, addr) = (caddr_t)round_page(p->p_vmspace->vm_daddr+MAXDSIZ);
+
+ SCARG(&ouap, len) = SCARG(uap, len);
+ SCARG(&ouap, prot) = SCARG(uap, prot);
+ SCARG(&ouap, fd) = SCARG(uap, fd);
+ SCARG(&ouap, pos) = SCARG(uap, pos);
+
+ /*
+ * Special case: if fd refers to /dev/zero, map as MAP_ANON. (XXX)
+ */
+ fdp = p->p_fd;
+ if ((unsigned)SCARG(&ouap, fd) < fdp->fd_nfiles && /*XXX*/
+ (fp = fdp->fd_ofiles[SCARG(&ouap, fd)]) != NULL && /*XXX*/
+ fp->f_type == DTYPE_VNODE && /*XXX*/
+ (vp = (struct vnode *)fp->f_data)->v_type == VCHR && /*XXX*/
+ iszerodev(vp->v_rdev)) { /*XXX*/
+ SCARG(&ouap, flags) |= MAP_ANON;
+ SCARG(&ouap, fd) = -1;
+ }
+
+ return (sys_mmap(p, &ouap, retval));
+}
+
+ultrix_sys_setsockopt(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ register struct ultrix_sys_setsockopt_args *uap = v;
+ struct file *fp;
+ struct mbuf *m = NULL;
+ int error;
+
+ if (error = getsock(p->p_fd, SCARG(uap, s), &fp))
+ return (error);
+#define SO_DONTLINGER (~SO_LINGER)
+ if (SCARG(uap, name) == SO_DONTLINGER) {
+ m = m_get(M_WAIT, MT_SOOPTS);
+ if (m == NULL)
+ return (ENOBUFS);
+ mtod(m, struct linger *)->l_onoff = 0;
+ m->m_len = sizeof(struct linger);
+ return (sosetopt((struct socket *)fp->f_data, SCARG(uap, level),
+ SO_LINGER, m));
+ }
+ if (SCARG(uap, valsize) > MLEN)
+ return (EINVAL);
+ if (SCARG(uap, val)) {
+ m = m_get(M_WAIT, MT_SOOPTS);
+ if (m == NULL)
+ return (ENOBUFS);
+ if (error = copyin(SCARG(uap, val), mtod(m, caddr_t),
+ (u_int)SCARG(uap, valsize))) {
+ (void) m_free(m);
+ return (error);
+ }
+ m->m_len = SCARG(uap, valsize);
+ }
+ return (sosetopt((struct socket *)fp->f_data, SCARG(uap, level),
+ SCARG(uap, name), m));
+}
+
+struct ultrix_utsname {
+ char sysname[9];
+ char nodename[9];
+ char nodeext[65-9];
+ char release[9];
+ char version[9];
+ char machine[9];
+};
+
+ultrix_sys_uname(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_uname_args *uap = v;
+ struct ultrix_utsname sut;
+ extern char ostype[], machine[], osrelease[];
+
+ bzero(&sut, sizeof(sut));
+
+ bcopy(ostype, sut.sysname, sizeof(sut.sysname) - 1);
+ bcopy(hostname, sut.nodename, sizeof(sut.nodename));
+ sut.nodename[sizeof(sut.nodename)-1] = '\0';
+ bcopy(osrelease, sut.release, sizeof(sut.release) - 1);
+ bcopy("1", sut.version, sizeof(sut.version) - 1);
+ bcopy(machine, sut.machine, sizeof(sut.machine) - 1);
+
+ return copyout((caddr_t)&sut, (caddr_t)SCARG(uap, name),
+ sizeof(struct ultrix_utsname));
+}
+
+int
+ultrix_sys_setpgrp(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_setpgrp_args *uap = v;
+
+ /*
+ * difference to our setpgid call is to include backwards
+ * compatibility to pre-setsid() binaries. Do setsid()
+ * instead of setpgid() in those cases where the process
+ * tries to create a new session the old way.
+ */
+ if (!SCARG(uap, pgid) &&
+ (!SCARG(uap, pid) || SCARG(uap, pid) == p->p_pid))
+ return sys_setsid(p, uap, retval);
+ else
+ return sys_setpgid(p, uap, retval);
+}
+
+ultrix_sys_open(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_open_args *uap = v;
+ int l, r;
+ int noctty;
+ int ret;
+
+ /* convert mode into NetBSD mode */
+ l = SCARG(uap, mode);
+ noctty = l & 0x8000;
+ r = (l & (0x0001 | 0x0002 | 0x0008 | 0x0040 | 0x0200 | 0x0400 | 0x0800));
+ r |= ((l & (0x0004 | 0x1000 | 0x4000)) ? O_NONBLOCK : 0);
+ r |= ((l & 0x0080) ? O_SHLOCK : 0);
+ r |= ((l & 0x0100) ? O_EXLOCK : 0);
+ r |= ((l & 0x2000) ? O_FSYNC : 0);
+
+ SCARG(uap, flags) = r;
+ ret = sys_open(p, (struct sys_open_args *)uap, retval);
+
+ if (!ret && !noctty && SESS_LEADER(p) && !(p->p_flag & P_CONTROLT)) {
+ struct filedesc *fdp = p->p_fd;
+ struct file *fp = fdp->fd_ofiles[*retval];
+
+ /* ignore any error, just give it a try */
+ if (fp->f_type == DTYPE_VNODE)
+ (fp->f_ops->fo_ioctl)(fp, TIOCSCTTY, (caddr_t)0, p);
+ }
+ return ret;
+}
+
+#if defined (NFSSERVER)
+ultrix_sys_nfssvc(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_nfssvc_args *uap = v;
+ struct emul *e = p->p_emul;
+ struct sys_nfssvc_args outuap;
+ struct sockaddr sa;
+ int error;
+
+#if 0
+ bzero(&outuap, sizeof outuap);
+ SCARG(&outuap, fd) = SCARG(uap, fd);
+ SCARG(&outuap, mskval) = STACKGAPBASE;
+ SCARG(&outuap, msklen) = sizeof sa;
+ SCARG(&outuap, mtchval) = outuap.mskval + sizeof sa;
+ SCARG(&outuap, mtchlen) = sizeof sa;
+
+ bzero(&sa, sizeof sa);
+ if (error = copyout(&sa, SCARG(&outuap, mskval), SCARG(&outuap, msklen)))
+ return (error);
+ if (error = copyout(&sa, SCARG(&outuap, mtchval), SCARG(&outuap, mtchlen)))
+ return (error);
+
+ return nfssvc(p, &outuap, retval);
+#else
+ return (ENOSYS);
+#endif
+}
+#endif /* NFSSERVER */
+
+struct ultrix_ustat {
+ daddr_t f_tfree; /* total free */
+ ino_t f_tinode; /* total inodes free */
+ char f_fname[6]; /* filsys name */
+ char f_fpack[6]; /* filsys pack name */
+};
+
+ultrix_sys_ustat(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_ustat_args *uap = v;
+ struct ultrix_ustat us;
+ int error;
+
+ bzero(&us, sizeof us);
+
+ /*
+ * XXX: should set f_tfree and f_tinode at least
+ * How do we translate dev -> fstat? (and then to ultrix_ustat)
+ */
+
+ if (error = copyout(&us, SCARG(uap, buf), sizeof us))
+ return (error);
+ return 0;
+}
+
+ultrix_sys_quotactl(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_quotactl_args *uap = v;
+
+ return EINVAL;
+}
+
+ultrix_sys_vhangup(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+
+ return 0;
+}
+
+struct ultrix_statfs {
+ long f_type; /* type of info, zero for now */
+ long f_bsize; /* fundamental file system block size */
+ long f_blocks; /* total blocks in file system */
+ long f_bfree; /* free blocks */
+ long f_bavail; /* free blocks available to non-super-user */
+ long f_files; /* total file nodes in file system */
+ long f_ffree; /* free file nodes in fs */
+ fsid_t f_fsid; /* file system id */
+ long f_spare[7]; /* spare for later */
+};
+
+static
+sunstatfs(sp, buf)
+ struct statfs *sp;
+ caddr_t buf;
+{
+ struct ultrix_statfs ssfs;
+
+ bzero(&ssfs, sizeof ssfs);
+ ssfs.f_type = 0;
+ ssfs.f_bsize = sp->f_bsize;
+ ssfs.f_blocks = sp->f_blocks;
+ ssfs.f_bfree = sp->f_bfree;
+ ssfs.f_bavail = sp->f_bavail;
+ ssfs.f_files = sp->f_files;
+ ssfs.f_ffree = sp->f_ffree;
+ ssfs.f_fsid = sp->f_fsid;
+ return copyout((caddr_t)&ssfs, buf, sizeof ssfs);
+}
+
+ultrix_sys_statfs(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_statfs_args *uap = v;
+ register struct mount *mp;
+ register struct statfs *sp;
+ int error;
+ struct nameidata nd;
+
+ NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p);
+ if (error = namei(&nd))
+ return (error);
+ mp = nd.ni_vp->v_mount;
+ sp = &mp->mnt_stat;
+ vrele(nd.ni_vp);
+ if (error = VFS_STATFS(mp, sp, p))
+ return (error);
+ sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
+ return sunstatfs(sp, (caddr_t)SCARG(uap, buf));
+}
+
+ultrix_sys_fstatfs(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_fstatfs_args *uap = v;
+ struct file *fp;
+ struct mount *mp;
+ register struct statfs *sp;
+ int error;
+
+ if (error = getvnode(p->p_fd, SCARG(uap, fd), &fp))
+ return (error);
+ mp = ((struct vnode *)fp->f_data)->v_mount;
+ sp = &mp->mnt_stat;
+ if (error = VFS_STATFS(mp, sp, p))
+ return (error);
+ sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
+ return sunstatfs(sp, (caddr_t)SCARG(uap, buf));
+}
+
+ultrix_sys_exportfs(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_exportfs_args *uap = v;
+
+ /*
+ * XXX: should perhaps translate into a mount(2)
+ * with MOUNT_EXPORT?
+ */
+ return 0;
+}
+
+ultrix_sys_mknod(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_mknod_args *uap = v;
+
+ if (S_ISFIFO(SCARG(uap, mode)))
+ return sys_mkfifo(p, uap, retval);
+
+ return sys_mknod(p, (struct sys_mknod_args *)uap, retval);
+}
+
+int
+ultrix_sys_sigcleanup(p, v, retval)
+ struct proc *p;
+ void *v;
+ register_t *retval;
+{
+ struct ultrix_sys_sigcleanup_args *uap = v;
+
+ return sys_sigreturn(p, (struct sys_sigreturn_args *)uap, retval);
+}
diff --git a/sys/compat/ultrix/ultrix_syscall.h b/sys/compat/ultrix/ultrix_syscall.h
new file mode 100644
index 00000000000..3ac40c25b31
--- /dev/null
+++ b/sys/compat/ultrix/ultrix_syscall.h
@@ -0,0 +1,156 @@
+/*
+ * System call numbers.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * created from NetBSD: syscalls.master,v 1.11 1995/10/07 06:28:00 mycroft Exp
+ */
+
+#define ULTRIX_SYS_syscall 0
+#define ULTRIX_SYS_exit 1
+#define ULTRIX_SYS_fork 2
+#define ULTRIX_SYS_read 3
+#define ULTRIX_SYS_write 4
+#define ULTRIX_SYS_open 5
+#define ULTRIX_SYS_close 6
+#define ULTRIX_SYS_creat 8
+#define ULTRIX_SYS_link 9
+#define ULTRIX_SYS_unlink 10
+#define ULTRIX_SYS_execv 11
+#define ULTRIX_SYS_chdir 12
+ /* 13 is obsolete time */
+#define ULTRIX_SYS_mknod 14
+#define ULTRIX_SYS_chmod 15
+#define ULTRIX_SYS_chown 16
+#define ULTRIX_SYS_break 17
+ /* 18 is obsolete stat */
+#define ULTRIX_SYS_lseek 19
+#define ULTRIX_SYS_getpid 20
+ /* 21 is obsolete mount */
+ /* 22 is obsolete sysV_unmount */
+#define ULTRIX_SYS_setuid 23
+#define ULTRIX_SYS_getuid 24
+ /* 25 is obsolete v7 stime */
+ /* 26 is obsolete v7 ptrace */
+ /* 27 is obsolete v7 alarm */
+ /* 28 is obsolete v7 fstat */
+ /* 29 is obsolete v7 pause */
+ /* 30 is obsolete v7 utime */
+ /* 31 is obsolete v7 stty */
+ /* 32 is obsolete v7 gtty */
+#define ULTRIX_SYS_access 33
+ /* 34 is obsolete v7 nice */
+ /* 35 is obsolete v7 ftime */
+#define ULTRIX_SYS_sync 36
+#define ULTRIX_SYS_kill 37
+#define ULTRIX_SYS_ostat 38
+ /* 39 is obsolete v7 setpgrp */
+#define ULTRIX_SYS_olstat 40
+#define ULTRIX_SYS_dup 41
+#define ULTRIX_SYS_pipe 42
+ /* 43 is obsolete v7 times */
+#define ULTRIX_SYS_profil 44
+ /* 46 is obsolete v7 setgid */
+#define ULTRIX_SYS_getgid 47
+#define ULTRIX_SYS_acct 51
+#define ULTRIX_SYS_ioctl 54
+#define ULTRIX_SYS_reboot 55
+#define ULTRIX_SYS_symlink 57
+#define ULTRIX_SYS_readlink 58
+#define ULTRIX_SYS_execve 59
+#define ULTRIX_SYS_umask 60
+#define ULTRIX_SYS_chroot 61
+#define ULTRIX_SYS_fstat 62
+#define ULTRIX_SYS_getpagesize 64
+#define ULTRIX_SYS_vfork 66
+ /* 67 is obsolete vread */
+ /* 68 is obsolete vwrite */
+#define ULTRIX_SYS_sbrk 69
+#define ULTRIX_SYS_sstk 70
+#define ULTRIX_SYS_mmap 71
+#define ULTRIX_SYS_vadvise 72
+#define ULTRIX_SYS_munmap 73
+#define ULTRIX_SYS_mprotect 74
+#define ULTRIX_SYS_madvise 75
+#define ULTRIX_SYS_vhangup 76
+#define ULTRIX_SYS_mincore 78
+#define ULTRIX_SYS_getgroups 79
+#define ULTRIX_SYS_setgroups 80
+#define ULTRIX_SYS_getpgrp 81
+#define ULTRIX_SYS_setpgrp 82
+#define ULTRIX_SYS_setitimer 83
+#define ULTRIX_SYS_wait3 84
+#define ULTRIX_SYS_swapon 85
+#define ULTRIX_SYS_getitimer 86
+#define ULTRIX_SYS_gethostname 87
+#define ULTRIX_SYS_sethostname 88
+#define ULTRIX_SYS_getdtablesize 89
+#define ULTRIX_SYS_dup2 90
+#define ULTRIX_SYS_fcntl 92
+#define ULTRIX_SYS_select 93
+#define ULTRIX_SYS_fsync 95
+#define ULTRIX_SYS_setpriority 96
+#define ULTRIX_SYS_socket 97
+#define ULTRIX_SYS_connect 98
+#define ULTRIX_SYS_accept 99
+#define ULTRIX_SYS_getpriority 100
+#define ULTRIX_SYS_send 101
+#define ULTRIX_SYS_recv 102
+#define ULTRIX_SYS_sigreturn 103
+#define ULTRIX_SYS_bind 104
+#define ULTRIX_SYS_setsockopt 105
+#define ULTRIX_SYS_listen 106
+#define ULTRIX_SYS_sigvec 108
+#define ULTRIX_SYS_sigblock 109
+#define ULTRIX_SYS_sigsetmask 110
+#define ULTRIX_SYS_sigsuspend 111
+#define ULTRIX_SYS_sigstack 112
+#define ULTRIX_SYS_recvmsg 113
+#define ULTRIX_SYS_sendmsg 114
+ /* 115 is obsolete vtrace */
+#define ULTRIX_SYS_gettimeofday 116
+#define ULTRIX_SYS_getrusage 117
+#define ULTRIX_SYS_getsockopt 118
+#define ULTRIX_SYS_readv 120
+#define ULTRIX_SYS_writev 121
+#define ULTRIX_SYS_settimeofday 122
+#define ULTRIX_SYS_fchown 123
+#define ULTRIX_SYS_fchmod 124
+#define ULTRIX_SYS_recvfrom 125
+#define ULTRIX_SYS_setreuid 126
+#define ULTRIX_SYS_setregid 127
+#define ULTRIX_SYS_rename 128
+#define ULTRIX_SYS_truncate 129
+#define ULTRIX_SYS_ftruncate 130
+#define ULTRIX_SYS_flock 131
+#define ULTRIX_SYS_sendto 133
+#define ULTRIX_SYS_shutdown 134
+#define ULTRIX_SYS_socketpair 135
+#define ULTRIX_SYS_mkdir 136
+#define ULTRIX_SYS_rmdir 137
+#define ULTRIX_SYS_utimes 138
+#define ULTRIX_SYS_sigcleanup 139
+#define ULTRIX_SYS_adjtime 140
+#define ULTRIX_SYS_getpeername 141
+#define ULTRIX_SYS_gethostid 142
+#define ULTRIX_SYS_getrlimit 144
+#define ULTRIX_SYS_setrlimit 145
+#define ULTRIX_SYS_killpg 146
+#define ULTRIX_SYS_getsockname 150
+#define ULTRIX_SYS_nfssvc 158
+#define ULTRIX_SYS_getdirentries 159
+#define ULTRIX_SYS_statfs 160
+#define ULTRIX_SYS_fstatfs 161
+#define ULTRIX_SYS_async_daemon 163
+#define ULTRIX_SYS_getfh 164
+#define ULTRIX_SYS_getdomainname 165
+#define ULTRIX_SYS_setdomainname 166
+#define ULTRIX_SYS_quotactl 168
+#define ULTRIX_SYS_exportfs 169
+#define ULTRIX_SYS_uname 179
+#define ULTRIX_SYS_ustat 183
+#define ULTRIX_SYS_sigpending 187
+#define ULTRIX_SYS_setsid 188
+#define ULTRIX_SYS_waitpid 189
+#define ULTRIX_SYS_getsysinfo 256
+#define ULTRIX_SYS_setsysinfo 257
+#define ULTRIX_SYS_MAXSYSCALL 258
diff --git a/sys/compat/ultrix/ultrix_syscallargs.h b/sys/compat/ultrix/ultrix_syscallargs.h
new file mode 100644
index 00000000000..ac03a0be564
--- /dev/null
+++ b/sys/compat/ultrix/ultrix_syscallargs.h
@@ -0,0 +1,257 @@
+/*
+ * System call argument lists.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * created from NetBSD: syscalls.master,v 1.11 1995/10/07 06:28:00 mycroft Exp
+ */
+
+#define syscallarg(x) union { x datum; register_t pad; }
+
+struct ultrix_sys_open_args {
+ syscallarg(char *) path;
+ syscallarg(int) flags;
+ syscallarg(int) mode;
+};
+
+struct ultrix_sys_execv_args {
+ syscallarg(char *) path;
+ syscallarg(char **) argp;
+};
+
+struct ultrix_sys_mknod_args {
+ syscallarg(char *) path;
+ syscallarg(int) mode;
+ syscallarg(int) dev;
+};
+
+struct ultrix_sys_mmap_args {
+ syscallarg(caddr_t) addr;
+ syscallarg(size_t) len;
+ syscallarg(int) prot;
+ syscallarg(u_int) flags;
+ syscallarg(int) fd;
+ syscallarg(long) pos;
+};
+
+struct ultrix_sys_setpgrp_args {
+ syscallarg(int) pid;
+ syscallarg(int) pgid;
+};
+
+struct ultrix_sys_wait3_args {
+ syscallarg(int *) status;
+ syscallarg(int) options;
+ syscallarg(struct rusage *) rusage;
+};
+
+struct ultrix_sys_setsockopt_args {
+ syscallarg(int) s;
+ syscallarg(int) level;
+ syscallarg(int) name;
+ syscallarg(caddr_t) val;
+ syscallarg(int) valsize;
+};
+
+struct ultrix_sys_sigcleanup_args {
+ syscallarg(struct sigcontext *) sigcntxp;
+};
+
+struct ultrix_sys_nfssvc_args {
+ syscallarg(int) fd;
+};
+
+struct ultrix_sys_statfs_args {
+ syscallarg(char *) path;
+ syscallarg(struct ultrix_statfs *) buf;
+};
+
+struct ultrix_sys_fstatfs_args {
+ syscallarg(int) fd;
+ syscallarg(struct ultrix_statfs *) buf;
+};
+
+struct ultrix_sys_quotactl_args {
+ syscallarg(int) cmd;
+ syscallarg(char *) special;
+ syscallarg(int) uid;
+ syscallarg(caddr_t) addr;
+};
+
+struct ultrix_sys_exportfs_args {
+ syscallarg(char *) path;
+ syscallarg(char *) ex;
+};
+
+struct ultrix_sys_uname_args {
+ syscallarg(struct ultrix_utsname *) name;
+};
+
+struct ultrix_sys_ustat_args {
+ syscallarg(int) dev;
+ syscallarg(struct ultrix_ustat *) buf;
+};
+
+struct ultrix_sys_sigpending_args {
+ syscallarg(int *) mask;
+};
+
+struct ultrix_sys_waitpid_args {
+ syscallarg(int) pid;
+ syscallarg(int *) status;
+ syscallarg(int) options;
+};
+
+struct ultrix_sys_getsysinfo_args {
+ syscallarg(unsigned) op;
+ syscallarg(char *) buffer;
+ syscallarg(unsigned) nbytes;
+ syscallarg(int *) start;
+ syscallarg(char *) arg;
+};
+
+struct ultrix_sys_setsysinfo_args {
+ syscallarg(unsigned) op;
+ syscallarg(char *) buffer;
+ syscallarg(unsigned) nbytes;
+ syscallarg(unsigned) arg;
+ syscallarg(unsigned) flag;
+};
+
+/*
+ * System call prototypes.
+ */
+
+int sys_nosys __P((struct proc *, void *, register_t *));
+int sys_exit __P((struct proc *, void *, register_t *));
+int sys_fork __P((struct proc *, void *, register_t *));
+int sys_read __P((struct proc *, void *, register_t *));
+int sys_write __P((struct proc *, void *, register_t *));
+int ultrix_sys_open __P((struct proc *, void *, register_t *));
+int sys_close __P((struct proc *, void *, register_t *));
+int compat_43_sys_creat __P((struct proc *, void *, register_t *));
+int sys_link __P((struct proc *, void *, register_t *));
+int sys_unlink __P((struct proc *, void *, register_t *));
+int ultrix_sys_execv __P((struct proc *, void *, register_t *));
+int sys_chdir __P((struct proc *, void *, register_t *));
+int ultrix_sys_mknod __P((struct proc *, void *, register_t *));
+int sys_chmod __P((struct proc *, void *, register_t *));
+int sys_chown __P((struct proc *, void *, register_t *));
+int sys_obreak __P((struct proc *, void *, register_t *));
+int compat_43_sys_lseek __P((struct proc *, void *, register_t *));
+int sys_getpid __P((struct proc *, void *, register_t *));
+int sys_setuid __P((struct proc *, void *, register_t *));
+int sys_getuid __P((struct proc *, void *, register_t *));
+int sys_access __P((struct proc *, void *, register_t *));
+int sys_sync __P((struct proc *, void *, register_t *));
+int sys_kill __P((struct proc *, void *, register_t *));
+int compat_43_sys_stat __P((struct proc *, void *, register_t *));
+int compat_43_sys_lstat __P((struct proc *, void *, register_t *));
+int sys_dup __P((struct proc *, void *, register_t *));
+int sys_pipe __P((struct proc *, void *, register_t *));
+int sys_profil __P((struct proc *, void *, register_t *));
+int sys_getgid __P((struct proc *, void *, register_t *));
+int sys_acct __P((struct proc *, void *, register_t *));
+int sys_ioctl __P((struct proc *, void *, register_t *));
+int sys_reboot __P((struct proc *, void *, register_t *));
+int sys_symlink __P((struct proc *, void *, register_t *));
+int sys_readlink __P((struct proc *, void *, register_t *));
+int sys_execve __P((struct proc *, void *, register_t *));
+int sys_umask __P((struct proc *, void *, register_t *));
+int sys_chroot __P((struct proc *, void *, register_t *));
+int compat_43_sys_fstat __P((struct proc *, void *, register_t *));
+int compat_43_sys_getpagesize __P((struct proc *, void *, register_t *));
+int sys_vfork __P((struct proc *, void *, register_t *));
+int sys_sbrk __P((struct proc *, void *, register_t *));
+int sys_sstk __P((struct proc *, void *, register_t *));
+int ultrix_sys_mmap __P((struct proc *, void *, register_t *));
+int sys_ovadvise __P((struct proc *, void *, register_t *));
+int sys_munmap __P((struct proc *, void *, register_t *));
+int sys_mprotect __P((struct proc *, void *, register_t *));
+int sys_madvise __P((struct proc *, void *, register_t *));
+int ultrix_sys_vhangup __P((struct proc *, void *, register_t *));
+int sys_mincore __P((struct proc *, void *, register_t *));
+int sys_getgroups __P((struct proc *, void *, register_t *));
+int sys_setgroups __P((struct proc *, void *, register_t *));
+int sys_getpgrp __P((struct proc *, void *, register_t *));
+int ultrix_sys_setpgrp __P((struct proc *, void *, register_t *));
+int sys_setitimer __P((struct proc *, void *, register_t *));
+int ultrix_sys_wait3 __P((struct proc *, void *, register_t *));
+int sys_swapon __P((struct proc *, void *, register_t *));
+int sys_getitimer __P((struct proc *, void *, register_t *));
+int compat_43_sys_gethostname __P((struct proc *, void *, register_t *));
+int compat_43_sys_sethostname __P((struct proc *, void *, register_t *));
+int compat_43_sys_getdtablesize __P((struct proc *, void *, register_t *));
+int sys_dup2 __P((struct proc *, void *, register_t *));
+int sys_fcntl __P((struct proc *, void *, register_t *));
+int sys_select __P((struct proc *, void *, register_t *));
+int sys_fsync __P((struct proc *, void *, register_t *));
+int sys_setpriority __P((struct proc *, void *, register_t *));
+int sys_socket __P((struct proc *, void *, register_t *));
+int sys_connect __P((struct proc *, void *, register_t *));
+int compat_43_sys_accept __P((struct proc *, void *, register_t *));
+int sys_getpriority __P((struct proc *, void *, register_t *));
+int compat_43_sys_send __P((struct proc *, void *, register_t *));
+int compat_43_sys_recv __P((struct proc *, void *, register_t *));
+int sys_sigreturn __P((struct proc *, void *, register_t *));
+int sys_bind __P((struct proc *, void *, register_t *));
+int ultrix_sys_setsockopt __P((struct proc *, void *, register_t *));
+int sys_listen __P((struct proc *, void *, register_t *));
+int compat_43_sys_sigvec __P((struct proc *, void *, register_t *));
+int compat_43_sys_sigblock __P((struct proc *, void *, register_t *));
+int compat_43_sys_sigsetmask __P((struct proc *, void *, register_t *));
+int sys_sigsuspend __P((struct proc *, void *, register_t *));
+int compat_43_sys_sigstack __P((struct proc *, void *, register_t *));
+int compat_43_sys_recvmsg __P((struct proc *, void *, register_t *));
+int compat_43_sys_sendmsg __P((struct proc *, void *, register_t *));
+int sys_gettimeofday __P((struct proc *, void *, register_t *));
+int sys_getrusage __P((struct proc *, void *, register_t *));
+int sys_getsockopt __P((struct proc *, void *, register_t *));
+int sys_readv __P((struct proc *, void *, register_t *));
+int sys_writev __P((struct proc *, void *, register_t *));
+int sys_settimeofday __P((struct proc *, void *, register_t *));
+int sys_fchown __P((struct proc *, void *, register_t *));
+int sys_fchmod __P((struct proc *, void *, register_t *));
+int compat_43_sys_recvfrom __P((struct proc *, void *, register_t *));
+int compat_43_sys_setreuid __P((struct proc *, void *, register_t *));
+int compat_43_sys_setregid __P((struct proc *, void *, register_t *));
+int sys_rename __P((struct proc *, void *, register_t *));
+int compat_43_sys_truncate __P((struct proc *, void *, register_t *));
+int compat_43_sys_ftruncate __P((struct proc *, void *, register_t *));
+int sys_flock __P((struct proc *, void *, register_t *));
+int sys_sendto __P((struct proc *, void *, register_t *));
+int sys_shutdown __P((struct proc *, void *, register_t *));
+int sys_socketpair __P((struct proc *, void *, register_t *));
+int sys_mkdir __P((struct proc *, void *, register_t *));
+int sys_rmdir __P((struct proc *, void *, register_t *));
+int sys_utimes __P((struct proc *, void *, register_t *));
+int ultrix_sys_sigcleanup __P((struct proc *, void *, register_t *));
+int sys_adjtime __P((struct proc *, void *, register_t *));
+int compat_43_sys_getpeername __P((struct proc *, void *, register_t *));
+int compat_43_sys_gethostid __P((struct proc *, void *, register_t *));
+int compat_43_sys_getrlimit __P((struct proc *, void *, register_t *));
+int compat_43_sys_setrlimit __P((struct proc *, void *, register_t *));
+int compat_43_sys_killpg __P((struct proc *, void *, register_t *));
+int compat_43_sys_getsockname __P((struct proc *, void *, register_t *));
+#ifdef NFSSERVER
+int ultrix_sys_nfssvc __P((struct proc *, void *, register_t *));
+#else
+#endif
+int compat_43_sys_getdirentries __P((struct proc *, void *, register_t *));
+int ultrix_sys_statfs __P((struct proc *, void *, register_t *));
+int ultrix_sys_fstatfs __P((struct proc *, void *, register_t *));
+#ifdef NFSCLIENT
+int async_daemon __P((struct proc *, void *, register_t *));
+int sys_getfh __P((struct proc *, void *, register_t *));
+#else
+#endif
+int compat_09_sys_getdomainname __P((struct proc *, void *, register_t *));
+int compat_09_sys_setdomainname __P((struct proc *, void *, register_t *));
+int ultrix_sys_quotactl __P((struct proc *, void *, register_t *));
+int ultrix_sys_exportfs __P((struct proc *, void *, register_t *));
+int ultrix_sys_uname __P((struct proc *, void *, register_t *));
+int ultrix_sys_ustat __P((struct proc *, void *, register_t *));
+int ultrix_sys_sigpending __P((struct proc *, void *, register_t *));
+int sys_setsid __P((struct proc *, void *, register_t *));
+int ultrix_sys_waitpid __P((struct proc *, void *, register_t *));
+int ultrix_sys_getsysinfo __P((struct proc *, void *, register_t *));
+int ultrix_sys_setsysinfo __P((struct proc *, void *, register_t *));
diff --git a/sys/compat/ultrix/ultrix_syscalls.c b/sys/compat/ultrix/ultrix_syscalls.c
new file mode 100644
index 00000000000..f0695ed78f2
--- /dev/null
+++ b/sys/compat/ultrix/ultrix_syscalls.c
@@ -0,0 +1,276 @@
+/*
+ * System call names.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * created from NetBSD: syscalls.master,v 1.11 1995/10/07 06:28:00 mycroft Exp
+ */
+
+char *ultrix_syscallnames[] = {
+ "syscall", /* 0 = syscall */
+ "exit", /* 1 = exit */
+ "fork", /* 2 = fork */
+ "read", /* 3 = read */
+ "write", /* 4 = write */
+ "open", /* 5 = open */
+ "close", /* 6 = close */
+ "#7 (unimplemented old_wait)", /* 7 = unimplemented old_wait */
+ "creat", /* 8 = creat */
+ "link", /* 9 = link */
+ "unlink", /* 10 = unlink */
+ "execv", /* 11 = execv */
+ "chdir", /* 12 = chdir */
+ "#13 (obsolete time)", /* 13 = obsolete time */
+ "mknod", /* 14 = mknod */
+ "chmod", /* 15 = chmod */
+ "chown", /* 16 = chown */
+ "break", /* 17 = break */
+ "#18 (obsolete stat)", /* 18 = obsolete stat */
+ "lseek", /* 19 = lseek */
+ "getpid", /* 20 = getpid */
+ "#21 (obsolete mount)", /* 21 = obsolete mount */
+ "#22 (obsolete sysV_unmount)", /* 22 = obsolete sysV_unmount */
+ "setuid", /* 23 = setuid */
+ "getuid", /* 24 = getuid */
+ "#25 (obsolete v7 stime)", /* 25 = obsolete v7 stime */
+ "#26 (obsolete v7 ptrace)", /* 26 = obsolete v7 ptrace */
+ "#27 (obsolete v7 alarm)", /* 27 = obsolete v7 alarm */
+ "#28 (obsolete v7 fstat)", /* 28 = obsolete v7 fstat */
+ "#29 (obsolete v7 pause)", /* 29 = obsolete v7 pause */
+ "#30 (obsolete v7 utime)", /* 30 = obsolete v7 utime */
+ "#31 (obsolete v7 stty)", /* 31 = obsolete v7 stty */
+ "#32 (obsolete v7 gtty)", /* 32 = obsolete v7 gtty */
+ "access", /* 33 = access */
+ "#34 (obsolete v7 nice)", /* 34 = obsolete v7 nice */
+ "#35 (obsolete v7 ftime)", /* 35 = obsolete v7 ftime */
+ "sync", /* 36 = sync */
+ "kill", /* 37 = kill */
+ "ostat", /* 38 = ostat */
+ "#39 (obsolete v7 setpgrp)", /* 39 = obsolete v7 setpgrp */
+ "olstat", /* 40 = olstat */
+ "dup", /* 41 = dup */
+ "pipe", /* 42 = pipe */
+ "#43 (obsolete v7 times)", /* 43 = obsolete v7 times */
+ "profil", /* 44 = profil */
+ "#45 (unimplemented)", /* 45 = unimplemented */
+ "#46 (obsolete v7 setgid)", /* 46 = obsolete v7 setgid */
+ "getgid", /* 47 = getgid */
+ "#48 (unimplemented ssig)", /* 48 = unimplemented ssig */
+ "#49 (unimplemented reserved for USG)", /* 49 = unimplemented reserved for USG */
+ "#50 (unimplemented reserved for USG)", /* 50 = unimplemented reserved for USG */
+ "acct", /* 51 = acct */
+ "#52 (unimplemented)", /* 52 = unimplemented */
+ "#53 (unimplemented syslock)", /* 53 = unimplemented syslock */
+ "ioctl", /* 54 = ioctl */
+ "reboot", /* 55 = reboot */
+ "#56 (unimplemented v7 mpxchan)", /* 56 = unimplemented v7 mpxchan */
+ "symlink", /* 57 = symlink */
+ "readlink", /* 58 = readlink */
+ "execve", /* 59 = execve */
+ "umask", /* 60 = umask */
+ "chroot", /* 61 = chroot */
+ "fstat", /* 62 = fstat */
+ "#63 (unimplemented)", /* 63 = unimplemented */
+ "getpagesize", /* 64 = getpagesize */
+ "#65 (unimplemented mremap)", /* 65 = unimplemented mremap */
+ "vfork", /* 66 = vfork */
+ "#67 (obsolete vread)", /* 67 = obsolete vread */
+ "#68 (obsolete vwrite)", /* 68 = obsolete vwrite */
+ "sbrk", /* 69 = sbrk */
+ "sstk", /* 70 = sstk */
+ "mmap", /* 71 = mmap */
+ "vadvise", /* 72 = vadvise */
+ "munmap", /* 73 = munmap */
+ "mprotect", /* 74 = mprotect */
+ "madvise", /* 75 = madvise */
+ "vhangup", /* 76 = vhangup */
+ "#77 (unimplemented old vlimit)", /* 77 = unimplemented old vlimit */
+ "mincore", /* 78 = mincore */
+ "getgroups", /* 79 = getgroups */
+ "setgroups", /* 80 = setgroups */
+ "getpgrp", /* 81 = getpgrp */
+ "setpgrp", /* 82 = setpgrp */
+ "setitimer", /* 83 = setitimer */
+ "wait3", /* 84 = wait3 */
+ "swapon", /* 85 = swapon */
+ "getitimer", /* 86 = getitimer */
+ "gethostname", /* 87 = gethostname */
+ "sethostname", /* 88 = sethostname */
+ "getdtablesize", /* 89 = getdtablesize */
+ "dup2", /* 90 = dup2 */
+ "#91 (unimplemented getdopt)", /* 91 = unimplemented getdopt */
+ "fcntl", /* 92 = fcntl */
+ "select", /* 93 = select */
+ "#94 (unimplemented setdopt)", /* 94 = unimplemented setdopt */
+ "fsync", /* 95 = fsync */
+ "setpriority", /* 96 = setpriority */
+ "socket", /* 97 = socket */
+ "connect", /* 98 = connect */
+ "accept", /* 99 = accept */
+ "getpriority", /* 100 = getpriority */
+ "send", /* 101 = send */
+ "recv", /* 102 = recv */
+ "sigreturn", /* 103 = sigreturn */
+ "bind", /* 104 = bind */
+ "setsockopt", /* 105 = setsockopt */
+ "listen", /* 106 = listen */
+ "#107 (unimplemented vtimes)", /* 107 = unimplemented vtimes */
+ "sigvec", /* 108 = sigvec */
+ "sigblock", /* 109 = sigblock */
+ "sigsetmask", /* 110 = sigsetmask */
+ "sigsuspend", /* 111 = sigsuspend */
+ "sigstack", /* 112 = sigstack */
+ "recvmsg", /* 113 = recvmsg */
+ "sendmsg", /* 114 = sendmsg */
+ "#115 (obsolete vtrace)", /* 115 = obsolete vtrace */
+ "gettimeofday", /* 116 = gettimeofday */
+ "getrusage", /* 117 = getrusage */
+ "getsockopt", /* 118 = getsockopt */
+ "#119 (unimplemented resuba)", /* 119 = unimplemented resuba */
+ "readv", /* 120 = readv */
+ "writev", /* 121 = writev */
+ "settimeofday", /* 122 = settimeofday */
+ "fchown", /* 123 = fchown */
+ "fchmod", /* 124 = fchmod */
+ "recvfrom", /* 125 = recvfrom */
+ "setreuid", /* 126 = setreuid */
+ "setregid", /* 127 = setregid */
+ "rename", /* 128 = rename */
+ "truncate", /* 129 = truncate */
+ "ftruncate", /* 130 = ftruncate */
+ "flock", /* 131 = flock */
+ "#132 (unimplemented)", /* 132 = unimplemented */
+ "sendto", /* 133 = sendto */
+ "shutdown", /* 134 = shutdown */
+ "socketpair", /* 135 = socketpair */
+ "mkdir", /* 136 = mkdir */
+ "rmdir", /* 137 = rmdir */
+ "utimes", /* 138 = utimes */
+ "sigcleanup", /* 139 = sigcleanup */
+ "adjtime", /* 140 = adjtime */
+ "getpeername", /* 141 = getpeername */
+ "gethostid", /* 142 = gethostid */
+ "#143 (unimplemented old sethostid)", /* 143 = unimplemented old sethostid */
+ "getrlimit", /* 144 = getrlimit */
+ "setrlimit", /* 145 = setrlimit */
+ "killpg", /* 146 = killpg */
+ "#147 (unimplemented)", /* 147 = unimplemented */
+ "#148 (unimplemented setquota)", /* 148 = unimplemented setquota */
+ "#149 (unimplemented quota / * needs to be nullop to boot on Ultrix root partition * /)", /* 149 = unimplemented quota / * needs to be nullop to boot on Ultrix root partition * / */
+ "getsockname", /* 150 = getsockname */
+ "#151 (unimplemented sysmips / * 4 args * /)", /* 151 = unimplemented sysmips / * 4 args * / */
+ "#152 (unimplemented cacheflush / * 4 args * /)", /* 152 = unimplemented cacheflush / * 4 args * / */
+ "#153 (unimplemented cachectl / * 3 args * /)", /* 153 = unimplemented cachectl / * 3 args * / */
+ "#154 (unimplemented)", /* 154 = unimplemented */
+ "#155 (unimplemented atomic_op)", /* 155 = unimplemented atomic_op */
+ "#156 (unimplemented)", /* 156 = unimplemented */
+ "#157 (unimplemented)", /* 157 = unimplemented */
+#ifdef NFSSERVER
+ "nfssvc", /* 158 = nfssvc */
+#else
+ "#158 (unimplemented)", /* 158 = unimplemented */
+#endif
+ "getdirentries", /* 159 = getdirentries */
+ "statfs", /* 160 = statfs */
+ "fstatfs", /* 161 = fstatfs */
+ "#162 (unimplemented umount)", /* 162 = unimplemented umount */
+#ifdef NFSCLIENT
+ "async_daemon", /* 163 = async_daemon */
+ "getfh", /* 164 = getfh */
+#else
+ "#163 (unimplemented async_daemon)", /* 163 = unimplemented async_daemon */
+ "#164 (unimplemented getfh)", /* 164 = unimplemented getfh */
+#endif
+ "getdomainname", /* 165 = getdomainname */
+ "setdomainname", /* 166 = setdomainname */
+ "#167 (unimplemented)", /* 167 = unimplemented */
+ "quotactl", /* 168 = quotactl */
+ "exportfs", /* 169 = exportfs */
+ "#170 (unimplemented mount)", /* 170 = unimplemented mount */
+ "#171 (unimplemented 4 hdwconf)", /* 171 = unimplemented 4 hdwconf */
+ "#172 (unimplemented msgctl)", /* 172 = unimplemented msgctl */
+ "#173 (unimplemented msgget)", /* 173 = unimplemented msgget */
+ "#174 (unimplemented msgrcv)", /* 174 = unimplemented msgrcv */
+ "#175 (unimplemented msgsnd)", /* 175 = unimplemented msgsnd */
+ "#176 (unimplemented semctl)", /* 176 = unimplemented semctl */
+ "#177 (unimplemented semget)", /* 177 = unimplemented semget */
+ "#178 (unimplemented semop)", /* 178 = unimplemented semop */
+ "uname", /* 179 = uname */
+ "#180 (unimplemented shmsys)", /* 180 = unimplemented shmsys */
+ "#181 (unimplemented 0 plock)", /* 181 = unimplemented 0 plock */
+ "#182 (unimplemented 0 lockf)", /* 182 = unimplemented 0 lockf */
+ "ustat", /* 183 = ustat */
+ "#184 (unimplemented getmnt)", /* 184 = unimplemented getmnt */
+ "#185 (unimplemented notdef)", /* 185 = unimplemented notdef */
+ "#186 (unimplemented notdef)", /* 186 = unimplemented notdef */
+ "sigpending", /* 187 = sigpending */
+ "setsid", /* 188 = setsid */
+ "waitpid", /* 189 = waitpid */
+ "#190 (unimplemented)", /* 190 = unimplemented */
+ "#191 (unimplemented)", /* 191 = unimplemented */
+ "#192 (unimplemented)", /* 192 = unimplemented */
+ "#193 (unimplemented)", /* 193 = unimplemented */
+ "#194 (unimplemented)", /* 194 = unimplemented */
+ "#195 (unimplemented)", /* 195 = unimplemented */
+ "#196 (unimplemented)", /* 196 = unimplemented */
+ "#197 (unimplemented)", /* 197 = unimplemented */
+ "#198 (unimplemented)", /* 198 = unimplemented */
+ "#199 (unimplemented)", /* 199 = unimplemented */
+ "#200 (unimplemented)", /* 200 = unimplemented */
+ "#201 (unimplemented)", /* 201 = unimplemented */
+ "#202 (unimplemented)", /* 202 = unimplemented */
+ "#203 (unimplemented)", /* 203 = unimplemented */
+ "#204 (unimplemented)", /* 204 = unimplemented */
+ "#205 (unimplemented)", /* 205 = unimplemented */
+ "#206 (unimplemented)", /* 206 = unimplemented */
+ "#207 (unimplemented)", /* 207 = unimplemented */
+ "#208 (unimplemented)", /* 208 = unimplemented */
+ "#209 (unimplemented)", /* 209 = unimplemented */
+ "#210 (unimplemented)", /* 210 = unimplemented */
+ "#211 (unimplemented)", /* 211 = unimplemented */
+ "#212 (unimplemented)", /* 212 = unimplemented */
+ "#213 (unimplemented)", /* 213 = unimplemented */
+ "#214 (unimplemented)", /* 214 = unimplemented */
+ "#215 (unimplemented)", /* 215 = unimplemented */
+ "#216 (unimplemented)", /* 216 = unimplemented */
+ "#217 (unimplemented)", /* 217 = unimplemented */
+ "#218 (unimplemented)", /* 218 = unimplemented */
+ "#219 (unimplemented)", /* 219 = unimplemented */
+ "#220 (unimplemented)", /* 220 = unimplemented */
+ "#221 (unimplemented)", /* 221 = unimplemented */
+ "#222 (unimplemented)", /* 222 = unimplemented */
+ "#223 (unimplemented)", /* 223 = unimplemented */
+ "#224 (unimplemented)", /* 224 = unimplemented */
+ "#225 (unimplemented)", /* 225 = unimplemented */
+ "#226 (unimplemented)", /* 226 = unimplemented */
+ "#227 (unimplemented)", /* 227 = unimplemented */
+ "#228 (unimplemented)", /* 228 = unimplemented */
+ "#229 (unimplemented)", /* 229 = unimplemented */
+ "#230 (unimplemented)", /* 230 = unimplemented */
+ "#231 (unimplemented)", /* 231 = unimplemented */
+ "#232 (unimplemented)", /* 232 = unimplemented */
+ "#233 (unimplemented 1 utc_gettime)", /* 233 = unimplemented 1 utc_gettime */
+ "#234 (unimplemented 2 utc_adjtime)", /* 234 = unimplemented 2 utc_adjtime */
+ "#235 (unimplemented)", /* 235 = unimplemented */
+ "#236 (unimplemented)", /* 236 = unimplemented */
+ "#237 (unimplemented)", /* 237 = unimplemented */
+ "#238 (unimplemented)", /* 238 = unimplemented */
+ "#239 (unimplemented)", /* 239 = unimplemented */
+ "#240 (unimplemented)", /* 240 = unimplemented */
+ "#241 (unimplemented)", /* 241 = unimplemented */
+ "#242 (unimplemented)", /* 242 = unimplemented */
+ "#243 (unimplemented)", /* 243 = unimplemented */
+ "#244 (unimplemented)", /* 244 = unimplemented */
+ "#245 (unimplemented)", /* 245 = unimplemented */
+ "#246 (unimplemented)", /* 246 = unimplemented */
+ "#247 (unimplemented)", /* 247 = unimplemented */
+ "#248 (unimplemented)", /* 248 = unimplemented */
+ "#249 (unimplemented)", /* 249 = unimplemented */
+ "#250 (unimplemented)", /* 250 = unimplemented */
+ "#251 (unimplemented)", /* 251 = unimplemented */
+ "#252 (unimplemented audctl / * Make no-op for installation on Ultrix rootpartition? * /)", /* 252 = unimplemented audctl / * Make no-op for installation on Ultrix rootpartition? * / */
+ "#253 (unimplemented audgen / * Make no-op for installation on Ultrix rootpartition? * /)", /* 253 = unimplemented audgen / * Make no-op for installation on Ultrix rootpartition? * / */
+ "#254 (unimplemented startcpu)", /* 254 = unimplemented startcpu */
+ "#255 (unimplemented stopcpu)", /* 255 = unimplemented stopcpu */
+ "getsysinfo", /* 256 = getsysinfo */
+ "setsysinfo", /* 257 = setsysinfo */
+};
diff --git a/sys/compat/ultrix/ultrix_sysent.c b/sys/compat/ultrix/ultrix_sysent.c
new file mode 100644
index 00000000000..fdf44822eb1
--- /dev/null
+++ b/sys/compat/ultrix/ultrix_sysent.c
@@ -0,0 +1,565 @@
+/*
+ * System call switch table.
+ *
+ * DO NOT EDIT-- this file is automatically generated.
+ * created from NetBSD: syscalls.master,v 1.11 1995/10/07 06:28:00 mycroft Exp
+ */
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/signal.h>
+#include <sys/mount.h>
+#include <sys/syscallargs.h>
+#include <compat/ultrix/ultrix_syscallargs.h>
+
+#ifdef COMPAT_43
+#define compat_43(func) __CONCAT(compat_43_,func)
+#else
+#define compat_43(func) sys_nosys
+#endif
+
+#ifdef COMPAT_09
+#define compat_09(func) __CONCAT(compat_09_,func)
+#else
+#define compat_09(func) sys_nosys
+#endif
+
+#ifdef COMPAT_10
+#define compat_10(func) __CONCAT(compat_10_,func)
+#else
+#define compat_10(func) sys_nosys
+#endif
+
+#define s(type) sizeof(type)
+
+struct sysent ultrix_sysent[] = {
+ { 0, 0,
+ sys_nosys }, /* 0 = syscall */
+ { 1, s(struct sys_exit_args),
+ sys_exit }, /* 1 = exit */
+ { 0, 0,
+ sys_fork }, /* 2 = fork */
+ { 3, s(struct sys_read_args),
+ sys_read }, /* 3 = read */
+ { 3, s(struct sys_write_args),
+ sys_write }, /* 4 = write */
+ { 3, s(struct ultrix_sys_open_args),
+ ultrix_sys_open }, /* 5 = open */
+ { 1, s(struct sys_close_args),
+ sys_close }, /* 6 = close */
+ { 0, 0,
+ sys_nosys }, /* 7 = unimplemented old_wait */
+ { 2, s(struct compat_43_sys_creat_args),
+ compat_43_sys_creat }, /* 8 = creat */
+ { 2, s(struct sys_link_args),
+ sys_link }, /* 9 = link */
+ { 1, s(struct sys_unlink_args),
+ sys_unlink }, /* 10 = unlink */
+ { 2, s(struct ultrix_sys_execv_args),
+ ultrix_sys_execv }, /* 11 = execv */
+ { 1, s(struct sys_chdir_args),
+ sys_chdir }, /* 12 = chdir */
+ { 0, 0,
+ sys_nosys }, /* 13 = obsolete time */
+ { 3, s(struct ultrix_sys_mknod_args),
+ ultrix_sys_mknod }, /* 14 = mknod */
+ { 2, s(struct sys_chmod_args),
+ sys_chmod }, /* 15 = chmod */
+ { 3, s(struct sys_chown_args),
+ sys_chown }, /* 16 = chown */
+ { 1, s(struct sys_obreak_args),
+ sys_obreak }, /* 17 = break */
+ { 0, 0,
+ sys_nosys }, /* 18 = obsolete stat */
+ { 3, s(struct compat_43_sys_lseek_args),
+ compat_43_sys_lseek }, /* 19 = lseek */
+ { 0, 0,
+ sys_getpid }, /* 20 = getpid */
+ { 0, 0,
+ sys_nosys }, /* 21 = obsolete mount */
+ { 0, 0,
+ sys_nosys }, /* 22 = obsolete sysV_unmount */
+ { 1, s(struct sys_setuid_args),
+ sys_setuid }, /* 23 = setuid */
+ { 0, 0,
+ sys_getuid }, /* 24 = getuid */
+ { 0, 0,
+ sys_nosys }, /* 25 = obsolete v7 stime */
+ { 0, 0,
+ sys_nosys }, /* 26 = obsolete v7 ptrace */
+ { 0, 0,
+ sys_nosys }, /* 27 = obsolete v7 alarm */
+ { 0, 0,
+ sys_nosys }, /* 28 = obsolete v7 fstat */
+ { 0, 0,
+ sys_nosys }, /* 29 = obsolete v7 pause */
+ { 0, 0,
+ sys_nosys }, /* 30 = obsolete v7 utime */
+ { 0, 0,
+ sys_nosys }, /* 31 = obsolete v7 stty */
+ { 0, 0,
+ sys_nosys }, /* 32 = obsolete v7 gtty */
+ { 2, s(struct sys_access_args),
+ sys_access }, /* 33 = access */
+ { 0, 0,
+ sys_nosys }, /* 34 = obsolete v7 nice */
+ { 0, 0,
+ sys_nosys }, /* 35 = obsolete v7 ftime */
+ { 0, 0,
+ sys_sync }, /* 36 = sync */
+ { 2, s(struct sys_kill_args),
+ sys_kill }, /* 37 = kill */
+ { 2, s(struct compat_43_sys_stat_args),
+ compat_43_sys_stat }, /* 38 = ostat */
+ { 0, 0,
+ sys_nosys }, /* 39 = obsolete v7 setpgrp */
+ { 2, s(struct compat_43_sys_lstat_args),
+ compat_43_sys_lstat }, /* 40 = olstat */
+ { 1, s(struct sys_dup_args),
+ sys_dup }, /* 41 = dup */
+ { 0, 0,
+ sys_pipe }, /* 42 = pipe */
+ { 0, 0,
+ sys_nosys }, /* 43 = obsolete v7 times */
+ { 4, s(struct sys_profil_args),
+ sys_profil }, /* 44 = profil */
+ { 0, 0,
+ sys_nosys }, /* 45 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 46 = obsolete v7 setgid */
+ { 0, 0,
+ sys_getgid }, /* 47 = getgid */
+ { 0, 0,
+ sys_nosys }, /* 48 = unimplemented ssig */
+ { 0, 0,
+ sys_nosys }, /* 49 = unimplemented reserved for USG */
+ { 0, 0,
+ sys_nosys }, /* 50 = unimplemented reserved for USG */
+ { 1, s(struct sys_acct_args),
+ sys_acct }, /* 51 = acct */
+ { 0, 0,
+ sys_nosys }, /* 52 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 53 = unimplemented syslock */
+ { 3, s(struct sys_ioctl_args),
+ sys_ioctl }, /* 54 = ioctl */
+ { 1, s(struct sys_reboot_args),
+ sys_reboot }, /* 55 = reboot */
+ { 0, 0,
+ sys_nosys }, /* 56 = unimplemented v7 mpxchan */
+ { 2, s(struct sys_symlink_args),
+ sys_symlink }, /* 57 = symlink */
+ { 3, s(struct sys_readlink_args),
+ sys_readlink }, /* 58 = readlink */
+ { 3, s(struct sys_execve_args),
+ sys_execve }, /* 59 = execve */
+ { 1, s(struct sys_umask_args),
+ sys_umask }, /* 60 = umask */
+ { 1, s(struct sys_chroot_args),
+ sys_chroot }, /* 61 = chroot */
+ { 2, s(struct compat_43_sys_fstat_args),
+ compat_43_sys_fstat }, /* 62 = fstat */
+ { 0, 0,
+ sys_nosys }, /* 63 = unimplemented */
+ { 0, 0,
+ compat_43_sys_getpagesize }, /* 64 = getpagesize */
+ { 0, 0,
+ sys_nosys }, /* 65 = unimplemented mremap */
+ { 0, 0,
+ sys_vfork }, /* 66 = vfork */
+ { 0, 0,
+ sys_nosys }, /* 67 = obsolete vread */
+ { 0, 0,
+ sys_nosys }, /* 68 = obsolete vwrite */
+ { 1, s(struct sys_sbrk_args),
+ sys_sbrk }, /* 69 = sbrk */
+ { 1, s(struct sys_sstk_args),
+ sys_sstk }, /* 70 = sstk */
+ { 6, s(struct ultrix_sys_mmap_args),
+ ultrix_sys_mmap }, /* 71 = mmap */
+ { 1, s(struct sys_ovadvise_args),
+ sys_ovadvise }, /* 72 = vadvise */
+ { 2, s(struct sys_munmap_args),
+ sys_munmap }, /* 73 = munmap */
+ { 3, s(struct sys_mprotect_args),
+ sys_mprotect }, /* 74 = mprotect */
+ { 3, s(struct sys_madvise_args),
+ sys_madvise }, /* 75 = madvise */
+ { 0, 0,
+ ultrix_sys_vhangup }, /* 76 = vhangup */
+ { 0, 0,
+ sys_nosys }, /* 77 = unimplemented old vlimit */
+ { 3, s(struct sys_mincore_args),
+ sys_mincore }, /* 78 = mincore */
+ { 2, s(struct sys_getgroups_args),
+ sys_getgroups }, /* 79 = getgroups */
+ { 2, s(struct sys_setgroups_args),
+ sys_setgroups }, /* 80 = setgroups */
+ { 0, 0,
+ sys_getpgrp }, /* 81 = getpgrp */
+ { 2, s(struct ultrix_sys_setpgrp_args),
+ ultrix_sys_setpgrp }, /* 82 = setpgrp */
+ { 3, s(struct sys_setitimer_args),
+ sys_setitimer }, /* 83 = setitimer */
+ { 3, s(struct ultrix_sys_wait3_args),
+ ultrix_sys_wait3 }, /* 84 = wait3 */
+ { 1, s(struct sys_swapon_args),
+ sys_swapon }, /* 85 = swapon */
+ { 2, s(struct sys_getitimer_args),
+ sys_getitimer }, /* 86 = getitimer */
+ { 2, s(struct compat_43_sys_gethostname_args),
+ compat_43_sys_gethostname }, /* 87 = gethostname */
+ { 2, s(struct compat_43_sys_sethostname_args),
+ compat_43_sys_sethostname }, /* 88 = sethostname */
+ { 0, 0,
+ compat_43_sys_getdtablesize }, /* 89 = getdtablesize */
+ { 2, s(struct sys_dup2_args),
+ sys_dup2 }, /* 90 = dup2 */
+ { 0, 0,
+ sys_nosys }, /* 91 = unimplemented getdopt */
+ { 3, s(struct sys_fcntl_args),
+ sys_fcntl }, /* 92 = fcntl */
+ { 5, s(struct sys_select_args),
+ sys_select }, /* 93 = select */
+ { 0, 0,
+ sys_nosys }, /* 94 = unimplemented setdopt */
+ { 1, s(struct sys_fsync_args),
+ sys_fsync }, /* 95 = fsync */
+ { 3, s(struct sys_setpriority_args),
+ sys_setpriority }, /* 96 = setpriority */
+ { 3, s(struct sys_socket_args),
+ sys_socket }, /* 97 = socket */
+ { 3, s(struct sys_connect_args),
+ sys_connect }, /* 98 = connect */
+ { 3, s(struct compat_43_sys_accept_args),
+ compat_43_sys_accept }, /* 99 = accept */
+ { 2, s(struct sys_getpriority_args),
+ sys_getpriority }, /* 100 = getpriority */
+ { 4, s(struct compat_43_sys_send_args),
+ compat_43_sys_send }, /* 101 = send */
+ { 4, s(struct compat_43_sys_recv_args),
+ compat_43_sys_recv }, /* 102 = recv */
+ { 1, s(struct sys_sigreturn_args),
+ sys_sigreturn }, /* 103 = sigreturn */
+ { 3, s(struct sys_bind_args),
+ sys_bind }, /* 104 = bind */
+ { 5, s(struct ultrix_sys_setsockopt_args),
+ ultrix_sys_setsockopt }, /* 105 = setsockopt */
+ { 2, s(struct sys_listen_args),
+ sys_listen }, /* 106 = listen */
+ { 0, 0,
+ sys_nosys }, /* 107 = unimplemented vtimes */
+ { 3, s(struct compat_43_sys_sigvec_args),
+ compat_43_sys_sigvec }, /* 108 = sigvec */
+ { 1, s(struct compat_43_sys_sigblock_args),
+ compat_43_sys_sigblock }, /* 109 = sigblock */
+ { 1, s(struct compat_43_sys_sigsetmask_args),
+ compat_43_sys_sigsetmask }, /* 110 = sigsetmask */
+ { 1, s(struct sys_sigsuspend_args),
+ sys_sigsuspend }, /* 111 = sigsuspend */
+ { 2, s(struct compat_43_sys_sigstack_args),
+ compat_43_sys_sigstack }, /* 112 = sigstack */
+ { 3, s(struct compat_43_sys_recvmsg_args),
+ compat_43_sys_recvmsg }, /* 113 = recvmsg */
+ { 3, s(struct compat_43_sys_sendmsg_args),
+ compat_43_sys_sendmsg }, /* 114 = sendmsg */
+ { 0, 0,
+ sys_nosys }, /* 115 = obsolete vtrace */
+ { 2, s(struct sys_gettimeofday_args),
+ sys_gettimeofday }, /* 116 = gettimeofday */
+ { 2, s(struct sys_getrusage_args),
+ sys_getrusage }, /* 117 = getrusage */
+ { 5, s(struct sys_getsockopt_args),
+ sys_getsockopt }, /* 118 = getsockopt */
+ { 0, 0,
+ sys_nosys }, /* 119 = unimplemented resuba */
+ { 3, s(struct sys_readv_args),
+ sys_readv }, /* 120 = readv */
+ { 3, s(struct sys_writev_args),
+ sys_writev }, /* 121 = writev */
+ { 2, s(struct sys_settimeofday_args),
+ sys_settimeofday }, /* 122 = settimeofday */
+ { 3, s(struct sys_fchown_args),
+ sys_fchown }, /* 123 = fchown */
+ { 2, s(struct sys_fchmod_args),
+ sys_fchmod }, /* 124 = fchmod */
+ { 6, s(struct compat_43_sys_recvfrom_args),
+ compat_43_sys_recvfrom }, /* 125 = recvfrom */
+ { 2, s(struct compat_43_sys_setreuid_args),
+ compat_43_sys_setreuid }, /* 126 = setreuid */
+ { 2, s(struct compat_43_sys_setregid_args),
+ compat_43_sys_setregid }, /* 127 = setregid */
+ { 2, s(struct sys_rename_args),
+ sys_rename }, /* 128 = rename */
+ { 2, s(struct compat_43_sys_truncate_args),
+ compat_43_sys_truncate }, /* 129 = truncate */
+ { 2, s(struct compat_43_sys_ftruncate_args),
+ compat_43_sys_ftruncate }, /* 130 = ftruncate */
+ { 2, s(struct sys_flock_args),
+ sys_flock }, /* 131 = flock */
+ { 0, 0,
+ sys_nosys }, /* 132 = unimplemented */
+ { 6, s(struct sys_sendto_args),
+ sys_sendto }, /* 133 = sendto */
+ { 2, s(struct sys_shutdown_args),
+ sys_shutdown }, /* 134 = shutdown */
+ { 4, s(struct sys_socketpair_args),
+ sys_socketpair }, /* 135 = socketpair */
+ { 2, s(struct sys_mkdir_args),
+ sys_mkdir }, /* 136 = mkdir */
+ { 1, s(struct sys_rmdir_args),
+ sys_rmdir }, /* 137 = rmdir */
+ { 2, s(struct sys_utimes_args),
+ sys_utimes }, /* 138 = utimes */
+ { 1, s(struct ultrix_sys_sigcleanup_args),
+ ultrix_sys_sigcleanup }, /* 139 = sigcleanup */
+ { 2, s(struct sys_adjtime_args),
+ sys_adjtime }, /* 140 = adjtime */
+ { 3, s(struct compat_43_sys_getpeername_args),
+ compat_43_sys_getpeername }, /* 141 = getpeername */
+ { 0, 0,
+ compat_43_sys_gethostid }, /* 142 = gethostid */
+ { 0, 0,
+ sys_nosys }, /* 143 = unimplemented old sethostid */
+ { 2, s(struct compat_43_sys_getrlimit_args),
+ compat_43_sys_getrlimit }, /* 144 = getrlimit */
+ { 2, s(struct compat_43_sys_setrlimit_args),
+ compat_43_sys_setrlimit }, /* 145 = setrlimit */
+ { 2, s(struct compat_43_sys_killpg_args),
+ compat_43_sys_killpg }, /* 146 = killpg */
+ { 0, 0,
+ sys_nosys }, /* 147 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 148 = unimplemented setquota */
+ { 0, 0,
+ sys_nosys }, /* 149 = unimplemented quota / * needs to be nullop to boot on Ultrix root partition * / */
+ { 3, s(struct compat_43_sys_getsockname_args),
+ compat_43_sys_getsockname }, /* 150 = getsockname */
+ { 0, 0,
+ sys_nosys }, /* 151 = unimplemented sysmips / * 4 args * / */
+ { 0, 0,
+ sys_nosys }, /* 152 = unimplemented cacheflush / * 4 args * / */
+ { 0, 0,
+ sys_nosys }, /* 153 = unimplemented cachectl / * 3 args * / */
+ { 0, 0,
+ sys_nosys }, /* 154 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 155 = unimplemented atomic_op */
+ { 0, 0,
+ sys_nosys }, /* 156 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 157 = unimplemented */
+#ifdef NFSSERVER
+ { 1, s(struct ultrix_sys_nfssvc_args),
+ ultrix_sys_nfssvc }, /* 158 = nfssvc */
+#else
+ { 0, 0,
+ sys_nosys }, /* 158 = unimplemented */
+#endif
+ { 4, s(struct compat_43_sys_getdirentries_args),
+ compat_43_sys_getdirentries }, /* 159 = getdirentries */
+ { 2, s(struct ultrix_sys_statfs_args),
+ ultrix_sys_statfs }, /* 160 = statfs */
+ { 2, s(struct ultrix_sys_fstatfs_args),
+ ultrix_sys_fstatfs }, /* 161 = fstatfs */
+ { 0, 0,
+ sys_nosys }, /* 162 = unimplemented umount */
+#ifdef NFSCLIENT
+ { 0, 0,
+ async_daemon }, /* 163 = async_daemon */
+ { 2, s(struct sys_getfh_args),
+ sys_getfh }, /* 164 = getfh */
+#else
+ { 0, 0,
+ sys_nosys }, /* 163 = unimplemented async_daemon */
+ { 0, 0,
+ sys_nosys }, /* 164 = unimplemented getfh */
+#endif
+ { 2, s(struct compat_09_sys_getdomainname_args),
+ compat_09_sys_getdomainname }, /* 165 = getdomainname */
+ { 2, s(struct compat_09_sys_setdomainname_args),
+ compat_09_sys_setdomainname }, /* 166 = setdomainname */
+ { 0, 0,
+ sys_nosys }, /* 167 = unimplemented */
+ { 4, s(struct ultrix_sys_quotactl_args),
+ ultrix_sys_quotactl }, /* 168 = quotactl */
+ { 2, s(struct ultrix_sys_exportfs_args),
+ ultrix_sys_exportfs }, /* 169 = exportfs */
+ { 0, 0,
+ sys_nosys }, /* 170 = unimplemented mount */
+ { 0, 0,
+ sys_nosys }, /* 171 = unimplemented 4 hdwconf */
+ { 0, 0,
+ sys_nosys }, /* 172 = unimplemented msgctl */
+ { 0, 0,
+ sys_nosys }, /* 173 = unimplemented msgget */
+ { 0, 0,
+ sys_nosys }, /* 174 = unimplemented msgrcv */
+ { 0, 0,
+ sys_nosys }, /* 175 = unimplemented msgsnd */
+ { 0, 0,
+ sys_nosys }, /* 176 = unimplemented semctl */
+ { 0, 0,
+ sys_nosys }, /* 177 = unimplemented semget */
+ { 0, 0,
+ sys_nosys }, /* 178 = unimplemented semop */
+ { 1, s(struct ultrix_sys_uname_args),
+ ultrix_sys_uname }, /* 179 = uname */
+ { 0, 0,
+ sys_nosys }, /* 180 = unimplemented shmsys */
+ { 0, 0,
+ sys_nosys }, /* 181 = unimplemented 0 plock */
+ { 0, 0,
+ sys_nosys }, /* 182 = unimplemented 0 lockf */
+ { 2, s(struct ultrix_sys_ustat_args),
+ ultrix_sys_ustat }, /* 183 = ustat */
+ { 0, 0,
+ sys_nosys }, /* 184 = unimplemented getmnt */
+ { 0, 0,
+ sys_nosys }, /* 185 = unimplemented notdef */
+ { 0, 0,
+ sys_nosys }, /* 186 = unimplemented notdef */
+ { 1, s(struct ultrix_sys_sigpending_args),
+ ultrix_sys_sigpending }, /* 187 = sigpending */
+ { 0, 0,
+ sys_setsid }, /* 188 = setsid */
+ { 3, s(struct ultrix_sys_waitpid_args),
+ ultrix_sys_waitpid }, /* 189 = waitpid */
+ { 0, 0,
+ sys_nosys }, /* 190 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 191 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 192 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 193 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 194 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 195 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 196 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 197 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 198 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 199 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 200 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 201 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 202 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 203 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 204 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 205 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 206 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 207 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 208 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 209 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 210 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 211 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 212 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 213 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 214 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 215 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 216 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 217 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 218 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 219 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 220 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 221 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 222 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 223 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 224 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 225 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 226 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 227 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 228 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 229 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 230 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 231 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 232 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 233 = unimplemented 1 utc_gettime */
+ { 0, 0,
+ sys_nosys }, /* 234 = unimplemented 2 utc_adjtime */
+ { 0, 0,
+ sys_nosys }, /* 235 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 236 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 237 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 238 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 239 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 240 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 241 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 242 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 243 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 244 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 245 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 246 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 247 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 248 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 249 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 250 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 251 = unimplemented */
+ { 0, 0,
+ sys_nosys }, /* 252 = unimplemented audctl / * Make no-op for installation on Ultrix rootpartition? * / */
+ { 0, 0,
+ sys_nosys }, /* 253 = unimplemented audgen / * Make no-op for installation on Ultrix rootpartition? * / */
+ { 0, 0,
+ sys_nosys }, /* 254 = unimplemented startcpu */
+ { 0, 0,
+ sys_nosys }, /* 255 = unimplemented stopcpu */
+ { 5, s(struct ultrix_sys_getsysinfo_args),
+ ultrix_sys_getsysinfo }, /* 256 = getsysinfo */
+ { 5, s(struct ultrix_sys_setsysinfo_args),
+ ultrix_sys_setsysinfo }, /* 257 = setsysinfo */
+};
+