freebsd-nq/sys/compat/freebsd32/syscalls.master
Peter Wemm d85631c4ac Add BASIC i386 binary support for the amd64 kernel. This is largely
stolen from the ia64/ia32 code (indeed there was a repocopy), but I've
redone the MD parts and added and fixed a few essential syscalls.  It
is sufficient to run i386 binaries like /bin/ls, /usr/bin/id (dynamic)
and p4.  The ia64 code has not implemented signal delivery, so I had
to do that.

Before you say it, yes, this does need to go in a common place.  But
we're in a freeze at the moment and I didn't want to risk breaking ia64.
I will sort this out after the freeze so that the common code is in a
common place.

On the AMD64 side, this required adding segment selector context switch
support and some other support infrastructure.  The %fs/%gs etc code
is hairy because loading %gs will clobber the kernel's current MSR_GSBASE
setting.  The segment selectors are not used by the kernel, so they're only
changed at context switch time or when changing modes.  This still needs
to be optimized.

Approved by:	re (amd64/* blanket)
2003-05-14 04:10:49 +00:00

614 lines
25 KiB
Plaintext

$FreeBSD$
; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
; from: src/sys/kern/syscalls.master 1.107
;
; System call name/number master file.
; Processed to created init_sysent.c, syscalls.c and syscall.h.
; Columns: number [M]type nargs namespc name alt{name,tag,rtyp}/comments
; number system call number, must be in order
; type one of [M]STD, [M]OBSOL, [M]UNIMPL, [M]COMPAT, [M]CPT_NOA,
; [M]LIBCOMPAT, [M]NODEF, [M]NOARGS, [M]NOPROTO, [M]NOIMPL,
; [M]NOSTD
; namespc one of POSIX, BSD, NOHIDE
; name psuedo-prototype of syscall routine
; If one of the following alts is different, then all appear:
; altname name of system call if different
; alttag name of args struct tag if different from [o]`name'"_args"
; altrtyp return type if not int (bogus - syscalls always return int)
; for UNIMPL/OBSOL, name continues with comments
; types:
; [M] e.g. like MSTD -- means the system call is MP-safe. If no
; M prefix is used, the syscall wrapper will obtain the Giant
; lock for the syscall.
; STD always included
; COMPAT included on COMPAT #ifdef
; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
; OBSOL obsolete, not included in system, only specifies name
; UNIMPL not implemented, placeholder only
; NOSTD implemented but as a lkm that can be statically
; compiled in sysent entry will be filled with lkmsys
; so the SYSCALL_MODULE macro works
; #ifdef's, etc. may be included, and are copied to the output files.
#include <sys/param.h>
#include <sys/sysent.h>
#include <sys/sysproto.h>
#include <sys/mount.h>
#include <amd64/ia32/ia32.h>
#include <amd64/ia32/ia32_proto.h>
; 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.
0 MNOPROTO NOHIDE { int nosys(void); } syscall nosys_args int
1 MNOPROTO NOHIDE { void sys_exit(int rval); } exit sys_exit_args void
2 MNOPROTO POSIX { int fork(void); }
3 MNOPROTO POSIX { ssize_t read(int fd, void *buf, size_t nbyte); }
4 MNOPROTO POSIX { ssize_t write(int fd, const void *buf, size_t nbyte); }
5 STD POSIX { int ia32_open(char *path, int flags, int mode); }
; XXX should be { int open(const char *path, int flags, ...); }
; but we're not ready for `const' or varargs.
; XXX man page says `mode_t mode'.
6 MNOPROTO POSIX { int close(int fd); }
7 MSTD BSD { int ia32_wait4(int pid, int *status, int options, \
struct rusage32 *rusage); }
8 OBSOL BSD old creat
9 NOPROTO POSIX { int link(char *path, char *link); }
10 NOPROTO POSIX { int unlink(char *path); }
11 OBSOL NOHIDE execv
12 NOPROTO POSIX { int chdir(char *path); }
13 NOPROTO BSD { int fchdir(int fd); }
14 NOPROTO POSIX { int mknod(char *path, int mode, int dev); }
15 NOPROTO POSIX { int chmod(char *path, int mode); }
16 NOPROTO POSIX { int chown(char *path, int uid, int gid); }
17 MNOPROTO BSD { int obreak(char *nsize); } break obreak_args int
18 STD BSD { int ia32_getfsstat(struct statfs32 *buf, \
long bufsize, int flags); }
19 OBSOL POSIX olseek
20 MNOPROTO POSIX { pid_t getpid(void); }
21 NOPROTO BSD { int mount(char *type, char *path, int flags, \
caddr_t data); }
; XXX `path' should have type `const char *' but we're not ready for that.
22 NOPROTO BSD { int unmount(char *path, int flags); }
23 MNOPROTO POSIX { int setuid(uid_t uid); }
24 MNOPROTO POSIX { uid_t getuid(void); }
25 MNOPROTO POSIX { uid_t geteuid(void); }
26 NOPROTO BSD { int ptrace(int req, pid_t pid, caddr_t addr, \
int data); }
27 UNIMPL BSD recvmsg
28 MNOPROTO BSD { int sendmsg(int s, caddr_t msg, int flags); }
29 MNOPROTO BSD { int recvfrom(int s, caddr_t buf, size_t len, \
int flags, caddr_t from, int *fromlenaddr); }
30 MNOPROTO BSD { int accept(int s, caddr_t name, int *anamelen); }
31 MNOPROTO BSD { int getpeername(int fdes, caddr_t asa, int *alen); }
32 MNOPROTO BSD { int getsockname(int fdes, caddr_t asa, int *alen); }
33 STD POSIX { int ia32_access(char *path, int flags); }
34 STD BSD { int ia32_chflags(char *path, int flags); }
35 NOPROTO BSD { int fchflags(int fd, int flags); }
36 NOPROTO BSD { int sync(void); }
37 MNOPROTO POSIX { int kill(int pid, int signum); }
38 UNIMPL POSIX ostat
39 MNOPROTO POSIX { pid_t getppid(void); }
40 UNIMPL POSIX olstat
41 NOPROTO POSIX { int dup(u_int fd); }
42 NOPROTO POSIX { int pipe(void); }
43 MNOPROTO POSIX { gid_t getegid(void); }
44 MNOPROTO BSD { int profil(caddr_t samples, size_t size, \
size_t offset, u_int scale); }
45 NOPROTO BSD { int ktrace(const char *fname, int ops, int facs, \
int pid); }
46 UNIMPL POSIX osigaction
47 MNOPROTO POSIX { gid_t getgid(void); }
48 UNIMPL POSIX osigprocmask
49 MNOPROTO BSD { int getlogin(char *namebuf, u_int namelen); }
50 MNOPROTO BSD { int setlogin(char *namebuf); }
51 MNOPROTO BSD { int acct(char *path); }
52 MNOPROTO POSIX { int sigpending(void); }
53 STD BSD { int ia32_sigaltstack(struct sigaltstack32 *ss, struct sigaltstack32 *oss); }
54 MNOPROTO POSIX { int ioctl(int fd, u_long com, caddr_t data); }
55 MNOPROTO BSD { int reboot(int opt); }
56 NOPROTO POSIX { int revoke(char *path); }
57 NOPROTO POSIX { int symlink(char *path, char *link); }
58 NOPROTO POSIX { int readlink(char *path, char *buf, int count); }
59 STD POSIX { int ia32_execve(char *fname, u_int32_t *argv, u_int32_t *envv); }
60 MNOPROTO POSIX { int umask(int newmask); } umask umask_args int
61 NOPROTO BSD { int chroot(char *path); }
62 OBSOL POSIX ofstat
63 OBSOL BSD ogetkerninfo
64 OBSOL BSD ogetpagesize
65 OBSOL BSD omsync
66 OBSOL BSD ovfork
67 OBSOL NOHIDE vread
68 OBSOL NOHIDE vwrite
69 MNOPROTO BSD { int sbrk(int incr); }
70 MNOPROTO BSD { int sstk(int incr); }
71 OBSOL BSD ommap
72 MNOPROTO BSD { int ovadvise(int anom); } vadvise ovadvise_args int
73 MNOPROTO BSD { int munmap(void *addr, size_t len); }
74 MNOPROTO BSD { int mprotect(const void *addr, size_t len, int prot); }
75 MNOPROTO BSD { int madvise(void *addr, size_t len, int behav); }
76 OBSOL NOHIDE vhangup
77 OBSOL NOHIDE vlimit
78 MNOPROTO BSD { int mincore(const void *addr, size_t len, \
char *vec); }
79 MNOPROTO POSIX { int getgroups(u_int gidsetsize, gid_t *gidset); }
80 MNOPROTO POSIX { int setgroups(u_int gidsetsize, gid_t *gidset); }
81 MNOPROTO POSIX { int getpgrp(void); }
82 MNOPROTO POSIX { int setpgid(int pid, int pgid); }
83 STD BSD { int ia32_setitimer(u_int which, \
struct itimerval32 *itv, \
struct itimerval32 *oitv); }
84 OBSOL BSD owait
85 OBSOL BSD oswapon
86 OBSOL BSD ogetitimer
87 OBSOL BSD ogethostname
88 OBSOL BSD osethostname
89 MNOPROTO BSD { int getdtablesize(void); }
90 MNOPROTO POSIX { int dup2(u_int from, u_int to); }
91 UNIMPL BSD getdopt
92 MNOPROTO POSIX { int fcntl(int fd, int cmd, long arg); }
; XXX should be { int fcntl(int fd, int cmd, ...); }
; but we're not ready for varargs.
; XXX man page says `int arg' too.
93 STD BSD { int ia32_select(int nd, fd_set *in, fd_set *ou, \
fd_set *ex, struct timeval32 *tv); }
; XXX need to override for big-endian - little-endian should work fine.
94 UNIMPL BSD setdopt
95 NOPROTO POSIX { int fsync(int fd); }
96 MNOPROTO BSD { int setpriority(int which, int who, int prio); }
97 MNOPROTO BSD { int socket(int domain, int type, int protocol); }
98 MNOPROTO BSD { int connect(int s, caddr_t name, int namelen); }
99 MNOPROTO BSD { int accept(int s, caddr_t name, int *anamelen); } \
accept accept_args int
100 MNOPROTO BSD { int getpriority(int which, int who); }
101 OBSOL BSD osend
102 OBSOL BSD orecv
103 OBSOL BSD osigreturn
104 MNOPROTO BSD { int bind(int s, caddr_t name, int namelen); }
105 MNOPROTO BSD { int setsockopt(int s, int level, int name, \
caddr_t val, int valsize); }
106 MNOPROTO BSD { int listen(int s, int backlog); }
107 OBSOL NOHIDE vtimes
108 OBSOL BSD osigvec
109 OBSOL BSD osigblock
110 OBSOL BSD osigsetmask
111 OBSOL POSIX osigsuspend
112 OBSOL BSD osigstack
113 OBSOL BSD orecvmsg
114 OBSOL BSD osendmsg
115 OBSOL NOHIDE vtrace
116 STD BSD { int ia32_gettimeofday(struct timeval32 *tp, \
struct timezone *tzp); }
117 STD BSD { int ia32_getrusage(int who, struct rusage32 *rusage); }
118 MNOPROTO BSD { int getsockopt(int s, int level, int name, \
caddr_t val, int *avalsize); }
119 UNIMPL NOHIDE resuba (BSD/OS 2.x)
120 STD BSD { int ia32_readv(int fd, struct iovec32 *iovp, u_int iovcnt); }
121 STD BSD { int ia32_writev(int fd, struct iovec32 *iovp, \
u_int iovcnt); }
122 STD BSD { int ia32_settimeofday(struct timeval32 *tv, \
struct timezone *tzp); }
123 NOPROTO BSD { int fchown(int fd, int uid, int gid); }
124 NOPROTO BSD { int fchmod(int fd, int mode); }
125 MNOPROTO BSD { int recvfrom(int s, caddr_t buf, size_t len, \
int flags, caddr_t from, int *fromlenaddr); } \
recvfrom recvfrom_args int
126 MNOPROTO BSD { int setreuid(int ruid, int euid); }
127 MNOPROTO BSD { int setregid(int rgid, int egid); }
128 NOPROTO POSIX { int rename(char *from, char *to); }
129 OBSOL BSD otruncate
130 OBSOL BSD ftruncate
131 MNOPROTO BSD { int flock(int fd, int how); }
132 NOPROTO POSIX { int mkfifo(char *path, int mode); }
133 MNOPROTO BSD { int sendto(int s, caddr_t buf, size_t len, \
int flags, caddr_t to, int tolen); }
134 MNOPROTO BSD { int shutdown(int s, int how); }
135 MNOPROTO BSD { int socketpair(int domain, int type, int protocol, \
int *rsv); }
136 NOPROTO POSIX { int mkdir(char *path, int mode); }
137 NOPROTO POSIX { int rmdir(char *path); }
138 STD BSD { int ia32_utimes(char *path, \
struct timeval32 *tptr); }
139 OBSOL NOHIDE 4.2 sigreturn
140 STD BSD { int ia32_adjtime(struct timeval32 *delta, \
struct timeval32 *olddelta); }
141 OBSOL BSD ogetpeername
142 OBSOL BSD ogethostid
143 OBSOL BSD sethostid
144 OBSOL BSD getrlimit
145 OBSOL BSD setrlimit
146 OBSOL BSD killpg
147 MNOPROTO POSIX { int setsid(void); }
148 NOPROTO BSD { int quotactl(char *path, int cmd, int uid, \
caddr_t arg); }
149 OBSOL BSD oquota
150 OBSOL BSD ogetsockname
; Syscalls 151-180 inclusive are reserved for vendor-specific
; system calls. (This includes various calls added for compatibity
; with other Unix variants.)
; Some of these calls are now supported by BSD...
151 UNIMPL NOHIDE sem_lock (BSD/OS 2.x)
152 UNIMPL NOHIDE sem_wakeup (BSD/OS 2.x)
153 UNIMPL NOHIDE asyncdaemon (BSD/OS 2.x)
154 UNIMPL NOHIDE nosys
; 155 is initialized by the NFS code, if present.
155 UNIMPL NOHIDE nfssvc
156 NOPROTO BSD { int getdirentries(int fd, char *buf, u_int count, \
long *basep); }
157 STD BSD { int ia32_statfs(char *path, struct statfs32 *buf); }
158 STD BSD { int ia32_fstatfs(int fd, struct statfs32 *buf); }
159 UNIMPL NOHIDE nosys
160 UNIMPL NOHIDE nosys
161 NOPROTO BSD { int getfh(char *fname, struct fhandle *fhp); }
162 MNOPROTO BSD { int getdomainname(char *domainname, int len); }
163 MNOPROTO BSD { int setdomainname(char *domainname, int len); }
164 MNOPROTO BSD { int uname(struct utsname *name); }
165 NOPROTO BSD { int sysarch(int op, char *parms); }
166 MNOPROTO BSD { int rtprio(int function, pid_t pid, \
struct rtprio *rtp); }
167 UNIMPL NOHIDE nosys
168 UNIMPL NOHIDE nosys
169 STD BSD { int ia32_semsys(int which, int a2, int a3, int a4, \
int a5); }
170 STD BSD { int ia32_msgsys(int which, int a2, int a3, int a4, \
int a5, int a6); }
171 STD BSD { int ia32_shmsys(int which, int a2, int a3, int a4); }
172 UNIMPL NOHIDE nosys
173 STD POSIX { ssize_t ia32_pread(int fd, void *buf, size_t nbyte, \
int pad, u_int32_t offsetlo, u_int32_t offsethi); }
; XXX note - bigendian is different
174 STD POSIX { ssize_t ia32_pwrite(int fd, const void *buf, \
size_t nbyte, int pad, u_int32_t offsetlo, \
u_int32_t offsethi); }
; XXX note - bigendian is different
175 UNIMPL NOHIDE nosys
176 MNOPROTO BSD { int ntp_adjtime(struct timex *tp); }
177 UNIMPL NOHIDE sfork (BSD/OS 2.x)
178 UNIMPL NOHIDE getdescriptor (BSD/OS 2.x)
179 UNIMPL NOHIDE setdescriptor (BSD/OS 2.x)
180 UNIMPL NOHIDE nosys
; Syscalls 181-199 are used by/reserved for BSD
181 MNOPROTO POSIX { int setgid(gid_t gid); }
182 MNOPROTO BSD { int setegid(gid_t egid); }
183 MNOPROTO BSD { int seteuid(uid_t euid); }
184 UNIMPL BSD lfs_bmapv
185 UNIMPL BSD lfs_markv
186 UNIMPL BSD lfs_segclean
187 UNIMPL BSD lfs_segwait
188 STD POSIX { int ia32_stat(char *path, struct stat32 *ub); }
189 STD POSIX { int ia32_fstat(int fd, struct stat32 *ub); }
190 STD POSIX { int ia32_lstat(char *path, struct stat32 *ub); }
191 NOPROTO POSIX { int pathconf(char *path, int name); }
192 MNOPROTO POSIX { int fpathconf(int fd, int name); }
193 UNIMPL NOHIDE nosys
194 MNOPROTO BSD { int getrlimit(u_int which, \
struct rlimit *rlp); } \
getrlimit __getrlimit_args int
195 MNOPROTO BSD { int setrlimit(u_int which, \
struct rlimit *rlp); } \
setrlimit __setrlimit_args int
196 NOPROTO BSD { int getdirentries(int fd, char *buf, u_int count, \
long *basep); }
197 STD BSD { caddr_t ia32_mmap(caddr_t addr, size_t len, \
int prot, int flags, int fd, int pad, \
u_int32_t poslo, u_int32_t poshi); }
198 NOPROTO NOHIDE { int nosys(void); } __syscall __syscall_args int
; XXX note - bigendian is different
199 STD POSIX { off_t ia32_lseek(int fd, int pad, \
u_int32_t offsetlo, u_int32_t offsethi, \
int whence); }
; XXX note - bigendian is different
200 STD BSD { int ia32_truncate(char *path, int pad, \
u_int32_t lengthlo, u_int32_t lengthhi); }
; XXX note - bigendian is different
201 STD BSD { int ia32_ftruncate(int fd, int pad, \
u_int32_t lengthlo, u_int32_t lengthhi); }
202 MSTD BSD { int ia32_sysctl(int *name, u_int namelen, \
void *old, u_int32_t *oldlenp, void *new, \
u_int32_t newlen); }
203 MNOPROTO BSD { int mlock(const void *addr, size_t len); }
204 MNOPROTO BSD { int munlock(const void *addr, size_t len); }
205 NOPROTO BSD { int undelete(char *path); }
206 NOPROTO BSD { int futimes(int fd, struct timeval *tptr); }
207 MNOPROTO BSD { int getpgid(pid_t pid); }
208 UNIMPL NOHIDE newreboot (NetBSD)
209 MNOPROTO BSD { int poll(struct pollfd *fds, u_int nfds, \
int timeout); }
;
; The following are reserved for loadable syscalls
;
210 UNIMPL NOHIDE
211 UNIMPL NOHIDE
212 UNIMPL NOHIDE
213 UNIMPL NOHIDE
214 UNIMPL NOHIDE
215 UNIMPL NOHIDE
216 UNIMPL NOHIDE
217 UNIMPL NOHIDE
218 UNIMPL NOHIDE
219 UNIMPL NOHIDE
;
; The following were introduced with NetBSD/4.4Lite-2
; They are initialized by thier respective modules/sysinits
220 MNOPROTO BSD { int __semctl(int semid, int semnum, int cmd, \
union semun *arg); }
221 MNOPROTO BSD { int semget(key_t key, int nsems, int semflg); }
222 MNOPROTO BSD { int semop(int semid, struct sembuf *sops, \
u_int nsops); }
223 UNIMPL NOHIDE semconfig
224 MNOPROTO BSD { int msgctl(int msqid, int cmd, \
struct msqid_ds *buf); }
225 MNOPROTO BSD { int msgget(key_t key, int msgflg); }
226 MNOPROTO BSD { int msgsnd(int msqid, void *msgp, size_t msgsz, \
int msgflg); }
227 MNOPROTO BSD { int msgrcv(int msqid, void *msgp, size_t msgsz, \
long msgtyp, int msgflg); }
228 MNOPROTO BSD { int shmat(int shmid, void *shmaddr, int shmflg); }
229 MNOPROTO BSD { int shmctl(int shmid, int cmd, \
struct shmid_ds *buf); }
230 MNOPROTO BSD { int shmdt(void *shmaddr); }
231 MNOPROTO BSD { int shmget(key_t key, int size, int shmflg); }
;
232 MNOPROTO POSIX { int clock_gettime(clockid_t clock_id, \
struct timespec *tp); }
233 MNOPROTO POSIX { int clock_settime(clockid_t clock_id, \
const struct timespec *tp); }
234 MNOPROTO POSIX { int clock_getres(clockid_t clock_id, \
struct timespec *tp); }
235 UNIMPL NOHIDE timer_create
236 UNIMPL NOHIDE timer_delete
237 UNIMPL NOHIDE timer_settime
238 UNIMPL NOHIDE timer_gettime
239 UNIMPL NOHIDE timer_getoverrun
240 MNOPROTO POSIX { int nanosleep(const struct timespec *rqtp, \
struct timespec *rmtp); }
241 UNIMPL NOHIDE nosys
242 UNIMPL NOHIDE nosys
243 UNIMPL NOHIDE nosys
244 UNIMPL NOHIDE nosys
245 UNIMPL NOHIDE nosys
246 UNIMPL NOHIDE nosys
247 UNIMPL NOHIDE nosys
248 UNIMPL NOHIDE nosys
249 UNIMPL NOHIDE nosys
; syscall numbers initially used in OpenBSD
250 MNOPROTO BSD { int minherit(void *addr, size_t len, int inherit); }
251 MNOPROTO BSD { int rfork(int flags); }
252 MNOPROTO BSD { int openbsd_poll(struct pollfd *fds, u_int nfds, \
int timeout); }
253 NOPROTO BSD { int issetugid(void); }
254 NOPROTO BSD { int lchown(char *path, int uid, int gid); }
255 UNIMPL NOHIDE nosys
256 UNIMPL NOHIDE nosys
257 UNIMPL NOHIDE nosys
258 UNIMPL NOHIDE nosys
259 UNIMPL NOHIDE nosys
260 UNIMPL NOHIDE nosys
261 UNIMPL NOHIDE nosys
262 UNIMPL NOHIDE nosys
263 UNIMPL NOHIDE nosys
264 UNIMPL NOHIDE nosys
265 UNIMPL NOHIDE nosys
266 UNIMPL NOHIDE nosys
267 UNIMPL NOHIDE nosys
268 UNIMPL NOHIDE nosys
269 UNIMPL NOHIDE nosys
270 UNIMPL NOHIDE nosys
271 UNIMPL NOHIDE nosys
272 NOPROTO BSD { int getdents(int fd, char *buf, size_t count); }
273 UNIMPL NOHIDE nosys
274 NOPROTO BSD { int lchmod(char *path, mode_t mode); }
275 NOPROTO BSD { int lchown(char *path, uid_t uid, gid_t gid); } netbsd_lchown lchown_args int
276 NOPROTO BSD { int lutimes(char *path, struct timeval *tptr); }
277 MNOPROTO BSD { int msync(void *addr, size_t len, int flags); } netbsd_msync msync_args int
278 NOPROTO BSD { int nstat(char *path, struct nstat *ub); }
279 MNOPROTO BSD { int nfstat(int fd, struct nstat *sb); }
280 NOPROTO BSD { int nlstat(char *path, struct nstat *ub); }
281 UNIMPL NOHIDE nosys
282 UNIMPL NOHIDE nosys
283 UNIMPL NOHIDE nosys
284 UNIMPL NOHIDE nosys
285 UNIMPL NOHIDE nosys
286 UNIMPL NOHIDE nosys
287 UNIMPL NOHIDE nosys
288 UNIMPL NOHIDE nosys
289 UNIMPL NOHIDE nosys
290 UNIMPL NOHIDE nosys
291 UNIMPL NOHIDE nosys
292 UNIMPL NOHIDE nosys
293 UNIMPL NOHIDE nosys
294 UNIMPL NOHIDE nosys
295 UNIMPL NOHIDE nosys
296 UNIMPL NOHIDE nosys
; XXX 297 is 300 in NetBSD
297 NOPROTO BSD { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
298 NOPROTO BSD { int fhopen(const struct fhandle *u_fhp, int flags); }
299 NOPROTO BSD { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
; syscall numbers for FreeBSD
300 MNOPROTO BSD { int modnext(int modid); }
301 MNOPROTO BSD { int modstat(int modid, struct module_stat* stat); }
302 MNOPROTO BSD { int modfnext(int modid); }
303 MNOPROTO BSD { int modfind(const char *name); }
304 MNOPROTO BSD { int kldload(const char *file); }
305 MNOPROTO BSD { int kldunload(int fileid); }
306 MNOPROTO BSD { int kldfind(const char *file); }
307 MNOPROTO BSD { int kldnext(int fileid); }
308 MNOPROTO BSD { int kldstat(int fileid, struct kld_file_stat* stat); }
309 MNOPROTO BSD { int kldfirstmod(int fileid); }
310 MNOPROTO BSD { int getsid(pid_t pid); }
311 MNOPROTO BSD { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
312 MNOPROTO BSD { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
313 OBSOL NOHIDE signanosleep
314 UNIMPL NOHIDE aio_return
315 UNIMPL NOHIDE aio_suspend
316 UNIMPL NOHIDE aio_cancel
317 UNIMPL NOHIDE aio_error
318 UNIMPL NOHIDE aio_read
319 UNIMPL NOHIDE aio_write
320 UNIMPL NOHIDE lio_listio
321 MNOPROTO BSD { int yield(void); }
322 OBSOL NOHIDE thr_sleep
323 OBSOL NOHIDE thr_wakeup
324 MNOPROTO BSD { int mlockall(int how); }
325 MNOPROTO BSD { int munlockall(void); }
326 NOPROTO BSD { int __getcwd(u_char *buf, u_int buflen); }
327 MNOPROTO POSIX { int sched_setparam (pid_t pid, const struct sched_param *param); }
328 MNOPROTO POSIX { int sched_getparam (pid_t pid, struct sched_param *param); }
329 MNOPROTO POSIX { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }
330 MNOPROTO POSIX { int sched_getscheduler (pid_t pid); }
331 MNOPROTO POSIX { int sched_yield (void); }
332 MNOPROTO POSIX { int sched_get_priority_max (int policy); }
333 MNOPROTO POSIX { int sched_get_priority_min (int policy); }
334 MNOPROTO POSIX { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }
335 NOPROTO BSD { int utrace(const void *addr, size_t len); }
; XXX note - bigendian is different
336 MCOMPAT4 BSD { int ia32_sendfile(int fd, int s, u_int32_t offsetlo,\
u_int32_t offsethi, size_t nbytes, \
struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
337 NOPROTO BSD { int kldsym(int fileid, int cmd, void *data); }
338 MNOPROTO BSD { int jail(struct jail *jail); }
339 UNIMPL BSD pioctl
340 MNOPROTO POSIX { int sigprocmask(int how, const sigset_t *set, \
sigset_t *oset); }
341 MNOPROTO POSIX { int sigsuspend(const sigset_t *sigmask); }
342 COMPAT4 POSIX { int ia32_sigaction(int sig, \
struct sigaction32 *act, \
struct sigaction32 *oact); }
343 MNOPROTO POSIX { int sigpending(sigset_t *set); }
344 MCOMPAT4 BSD { int ia32_sigreturn(const struct __ucontext *sigcntxp); }
345 UNIMPL NOHIDE sigtimedwait
346 UNIMPL NOHIDE sigwaitinfo
347 MNOPROTO BSD { int __acl_get_file(const char *path, \
acl_type_t type, struct acl *aclp); }
348 MNOPROTO BSD { int __acl_set_file(const char *path, \
acl_type_t type, struct acl *aclp); }
349 MNOPROTO BSD { int __acl_get_fd(int filedes, acl_type_t type, \
struct acl *aclp); }
350 MNOPROTO BSD { int __acl_set_fd(int filedes, acl_type_t type, \
struct acl *aclp); }
351 MNOPROTO BSD { int __acl_delete_file(const char *path, \
acl_type_t type); }
352 MNOPROTO BSD { int __acl_delete_fd(int filedes, acl_type_t type); }
353 MNOPROTO BSD { int __acl_aclcheck_file(const char *path, \
acl_type_t type, struct acl *aclp); }
354 MNOPROTO BSD { int __acl_aclcheck_fd(int filedes, acl_type_t type, \
struct acl *aclp); }
355 NOPROTO BSD { int extattrctl(const char *path, int cmd, \
const char *filename, int attrnamespace, \
const char *attrname); }
356 NOPROTO BSD { int extattr_set_file(const char *path, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
357 NOPROTO BSD { ssize_t extattr_get_file(const char *path, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
358 NOPROTO BSD { int extattr_delete_file(const char *path, \
int attrnamespace, const char *attrname); }
359 UNIMPL NOHIDE aio_waitcomplete
360 MNOPROTO BSD { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
361 MNOPROTO BSD { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
362 MNOPROTO BSD { int kqueue(void); }
363 MSTD BSD { int ia32_kevent(int fd, \
const struct kevent *changelist, int nchanges, \
struct kevent *eventlist, int nevents, \
const struct timespec *timeout); }
364 UNIMPL NOHIDE __cap_get_proc
365 UNIMPL NOHIDE __cap_set_proc
366 UNIMPL NOHIDE __cap_get_fd
367 UNIMPL NOHIDE __cap_get_file
368 UNIMPL NOHIDE __cap_set_fd
369 UNIMPL NOHIDE __cap_set_file
370 UNIMPL NOHIDE lkmressys
371 NOPROTO BSD { int extattr_set_fd(int fd, int attrnamespace, \
const char *attrname, void *data, \
size_t nbytes); }
372 NOPROTO BSD { ssize_t extattr_get_fd(int fd, int attrnamespace, \
const char *attrname, void *data, size_t nbytes); }
373 NOPROTO BSD { int extattr_delete_fd(int fd, int attrnamespace, \
const char *attrname); }
374 MNOPROTO BSD { int __setugid(int flag); }
375 UNIMPL BSD nfsclnt
376 NOPROTO BSD { int eaccess(char *path, int flags); }
377 UNIMPL BSD afs_syscall
378 NOPROTO BSD { int nmount(struct iovec *iovp, unsigned int iovcnt, \
int flags); }
379 NOPROTO BSD { int kse_exit(void); }
380 NOPROTO BSD { int kse_wakeup(struct kse_mailbox *mbx); }
381 NOPROTO BSD { int kse_create(struct kse_mailbox *mbx, \
int newgroup); }
382 NOPROTO BSD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); }
383 NOPROTO BSD { int kse_release(void); }
384 UNIMPL BSD __mac_get_proc
385 UNIMPL BSD __mac_set_proc
386 UNIMPL BSD __mac_get_fd
387 UNIMPL BSD __mac_get_file
388 UNIMPL BSD __mac_set_fd
389 UNIMPL BSD __mac_set_file
390 NOPROTO BSD { int kenv(int what, const char *name, char *value, \
int len); }
391 NOPROTO BSD { int lchflags(const char *path, int flags); }
392 NOPROTO BSD { int uuidgen(struct uuid *store, int count); }
393 MSTD BSD { int ia32_sendfile(int fd, int s, u_int32_t offsetlo, \
u_int32_t offsethi, size_t nbytes, \
struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
394 UNIMPL NOHIDE mac_syscall
395 UNIMPL NOHIDE nosys
396 UNIMPL NOHIDE nosys
397 UNIMPL NOHIDE nosys
398 UNIMPL NOHIDE nosys
399 UNIMPL NOHIDE nosys
400 UNIMPL NOHIDE ksem_close
401 UNIMPL NOHIDE ksem_post
402 UNIMPL NOHIDE ksem_wait
403 UNIMPL NOHIDE ksem_trywait
404 UNIMPL NOHIDE ksem_init
405 UNIMPL NOHIDE ksem_open
406 UNIMPL NOHIDE ksem_unlink
407 UNIMPL NOHIDE ksem_getvalue
408 UNIMPL NOHIDE ksem_destroy
409 UNIMPL BSD __mac_get_pid
410 UNIMPL BSD __mac_get_link
411 UNIMPL BSD __mac_set_link
412 UNIMPL BSD extattr_set_link
413 UNIMPL BSD extattr_get_link
414 UNIMPL BSD extattr_delete_link
415 UNIMPL BSD __mac_execve
416 MSTD BSD { int ia32_sigreturn(const struct ia32_ucontext *sigcntxp); }
417 STD POSIX { int ia32_sigaction(int sig, \
struct sigaction32 *act, \
struct sigaction32 *oact); }
418 UNIMPL BSD __xstat
419 UNIMPL BSD __xfstat
420 UNIMPL BSD __xlstat
421 UNIMPL BSD getcontext
422 UNIMPL BSD setcontext
423 UNIMPL BSD swapcontext
424 UNIMPL BSD swapoff
425 UNIMPL BSD __acl_get_link
426 UNIMPL BSD __acl_set_link
427 UNIMPL BSD __acl_delete_link
428 UNIMPL BSD __acl_aclcheck_link
429 UNIMPL NOHIDE sigwait
430 MNOPROTO BSD { int thr_create(ucontext_t *ctx, thr_id_t *id, \
int flag s); }
431 MNOPROTO BSD { void thr_exit(void); }
432 MNOPROTO BSD { int thr_self(thr_id_t *id); }
433 MNOPROTO BSD { int thr_kill(thr_id_t id, int sig); }
434 MNOPROTO BSD { int _umtx_lock(struct umtx *umtx); }
435 MNOPROTO BSD { int _umtx_unlock(struct umtx *umtx); }
436 MNOPROTO BSD { int jail_attach(int jid); }