syscalls.master revision 139681
1 $FreeBSD: head/sys/compat/freebsd32/syscalls.master 139681 2005-01-04 18:53:32Z jhb $
2;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
3;	from: src/sys/kern/syscalls.master 1.107
4;
5; System call name/number master file.
6; Processed to created init_sysent.c, syscalls.c and syscall.h.
7
8; Columns: number [M]type nargs name alt{name,tag,rtyp}/comments
9;	number	system call number, must be in order
10;	type	one of [M]STD, [M]OBSOL, [M]UNIMPL, [M]COMPAT, [M]CPT_NOA,
11;		[M]LIBCOMPAT, [M]NODEF,  [M]NOARGS,  [M]NOPROTO,  [M]NOIMPL,
12;		[M]NOSTD
13;	name	psuedo-prototype of syscall routine
14;		If one of the following alts is different, then all appear:
15;	altname	name of system call if different
16;	alttag	name of args struct tag if different from [o]`name'"_args"
17;	altrtyp	return type if not int (bogus - syscalls always return int)
18;		for UNIMPL/OBSOL, name continues with comments
19
20; types:
21;	[M]	e.g. like MSTD -- means the system call is MP-safe.  If no
22;		M prefix is used, the syscall wrapper will obtain the Giant
23;		lock for the syscall.
24;	STD	always included
25;	COMPAT	included on COMPAT #ifdef
26;	LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
27;	OBSOL	obsolete, not included in system, only specifies name
28;	UNIMPL	not implemented, placeholder only
29;	NOSTD	implemented but as a lkm that can be statically
30;			compiled in sysent entry will be filled with lkmsys
31;			so the SYSCALL_MODULE macro works
32
33; #ifdef's, etc. may be included, and are copied to the output files.
34
35#include <sys/param.h>
36#include <sys/sysent.h>
37#include <sys/sysproto.h>
38#include <sys/mount.h>
39#include <compat/freebsd32/freebsd32.h>
40#include <compat/freebsd32/freebsd32_proto.h>
41
42; Reserved/unimplemented system calls in the range 0-150 inclusive
43; are reserved for use in future Berkeley releases.
44; Additional system calls implemented in vendor and other
45; redistributions should be placed in the reserved range at the end
46; of the current calls.
47
480	MNOPROTO { int nosys(void); } syscall nosys_args int
491	MNOPROTO { void sys_exit(int rval); } exit sys_exit_args void
502	MNOPROTO { int fork(void); }
513	MNOPROTO { ssize_t read(int fd, void *buf, size_t nbyte); }
524	MNOPROTO { ssize_t write(int fd, const void *buf, size_t nbyte); }
535	MNOPROTO { int open(char *path, int flags, int mode); }
546	MNOPROTO { int close(int fd); }
557	MSTD	{ int freebsd32_wait4(int pid, int *status, int options, \
56		    struct rusage32 *rusage); }
578	OBSOL	old creat
589	MNOPROTO { int link(char *path, char *link); }
5910	MNOPROTO { int unlink(char *path); }
6011	OBSOL	execv
6112	NOPROTO	{ int chdir(char *path); }
6213	NOPROTO	{ int fchdir(int fd); }
6314	NOPROTO	{ int mknod(char *path, int mode, int dev); }
6415	NOPROTO	{ int chmod(char *path, int mode); }
6516	NOPROTO	{ int chown(char *path, int uid, int gid); }
6617	MNOPROTO { int obreak(char *nsize); } break obreak_args int
6718	COMPAT4	{ int freebsd32_getfsstat(struct statfs32 *buf, \
68		    long bufsize, int flags); }
6919	OBSOL	olseek
7020	MNOPROTO { pid_t getpid(void); }
7121	MNOPROTO { int mount(char *type, char *path, int flags, \
72		    caddr_t data); }
7322	MNOPROTO { int unmount(char *path, int flags); }
7423	MNOPROTO { int setuid(uid_t uid); }
7524	MNOPROTO { uid_t getuid(void); }
7625	MNOPROTO { uid_t geteuid(void); }
7726	MNOPROTO { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
78; XXX implement
7927	UNIMPL	recvmsg
8028	MNOPROTO { int sendmsg(int s, caddr_t msg, int flags); }
8129	MNOPROTO { int recvfrom(int s, caddr_t buf, size_t len, int flags, \
82		    caddr_t from, int *fromlenaddr); }
8330	MNOPROTO { int accept(int s, caddr_t name, int *anamelen); }
8431	MNOPROTO { int getpeername(int fdes, caddr_t asa, int *alen); }
8532	MNOPROTO { int getsockname(int fdes, caddr_t asa, int *alen); }
8633	NOPROTO	{ int access(char *path, int flags); }
8734	NOPROTO	{ int chflags(char *path, int flags); }
8835	NOPROTO	{ int fchflags(int fd, int flags); }
8936	NOPROTO	{ int sync(void); }
9037	MNOPROTO { int kill(int pid, int signum); }
9138	UNIMPL	ostat
9239	MNOPROTO { pid_t getppid(void); }
9340	UNIMPL	olstat
9441	MNOPROTO { int dup(u_int fd); }
9542	MNOPROTO { int pipe(void); }
9643	MNOPROTO { gid_t getegid(void); }
9744	MNOPROTO { int profil(caddr_t samples, size_t size, size_t offset, \
98		    u_int scale); }
9945	MNOPROTO { int ktrace(const char *fname, int ops, int facs, int pid); }
10046	UNIMPL	osigaction
10147	MNOPROTO { gid_t getgid(void); }
10248	UNIMPL	osigprocmask
10349	MNOPROTO { int getlogin(char *namebuf, u_int namelen); }
10450	MNOPROTO { int setlogin(char *namebuf); }
10551	MNOPROTO { int acct(char *path); }
10652	OBSOL	osigpending
10753	MSTD	{ int freebsd32_sigaltstack(struct sigaltstack32 *ss, \
108		    struct sigaltstack32 *oss); }
10954	MNOPROTO { int ioctl(int fd, u_long com, caddr_t data); }
11055	MNOPROTO { int reboot(int opt); }
11156	NOPROTO	{ int revoke(char *path); }
11257	NOPROTO	{ int symlink(char *path, char *link); }
11358	NOPROTO	{ int readlink(char *path, char *buf, int count); }
11459	STD	 { int freebsd32_execve(char *fname, u_int32_t *argv, \
115		    u_int32_t *envv); }
11660	MNOPROTO { int umask(int newmask); } umask umask_args int
11761	NOPROTO	{ int chroot(char *path); }
11862	OBSOL	ofstat
11963	OBSOL	ogetkerninfo
12064	OBSOL	ogetpagesize
121; XXX implement (not OBSOL at all)
12265	OBSOL	omsync
12366	MNOPROTO { int vfork(void); }
12467	OBSOL	vread
12568	OBSOL	vwrite
12669	MNOPROTO { int sbrk(int incr); }
12770	MNOPROTO { int sstk(int incr); }
12871	OBSOL	ommap
12972	MNOPROTO { int ovadvise(int anom); } vadvise ovadvise_args int
13073	MNOPROTO { int munmap(void *addr, size_t len); }
13174	MNOPROTO { int mprotect(const void *addr, size_t len, int prot); }
13275	MNOPROTO { int madvise(void *addr, size_t len, int behav); }
13376	OBSOL	vhangup
13477	OBSOL	vlimit
13578	MNOPROTO { int mincore(const void *addr, size_t len, char *vec); }
13679	MNOPROTO { int getgroups(u_int gidsetsize, gid_t *gidset); }
13780	MNOPROTO { int setgroups(u_int gidsetsize, gid_t *gidset); }
13881	MNOPROTO { int getpgrp(void); }
13982	MNOPROTO { int setpgid(int pid, int pgid); }
14083	STD	{ int freebsd32_setitimer(u_int which, \
141		    struct itimerval32 *itv, struct itimerval32 *oitv); }
14284	OBSOL	owait
143; XXX implement
14485	OBSOL	oswapon
14586	STD	{ int freebsd32_getitimer(u_int which, \
146		    struct itimerval32 *itv); }
14787	OBSOL	ogethostname
14888	OBSOL	osethostname
14989	MNOPROTO { int getdtablesize(void); }
15090	MNOPROTO { int dup2(u_int from, u_int to); }
15191	UNIMPL	getdopt
15292	MNOPROTO { int fcntl(int fd, int cmd, long arg); }
15393	STD	{ int freebsd32_select(int nd, fd_set *in, fd_set *ou, \
154		    fd_set *ex, struct timeval32 *tv); }
155; XXX need to override for big-endian - little-endian should work fine.
15694	UNIMPL	setdopt
15795	NOPROTO	{ int fsync(int fd); }
15896	MNOPROTO { int setpriority(int which, int who, int prio); }
15997	MNOPROTO { int socket(int domain, int type, int protocol); }
16098	MNOPROTO { int connect(int s, caddr_t name, int namelen); }
16199	OBSOL	oaccept
162100	MNOPROTO { int getpriority(int which, int who); }
163101	OBSOL	osend
164102	OBSOL	orecv
165103	OBSOL	osigreturn
166104	MNOPROTO { int bind(int s, caddr_t name, int namelen); }
167105	MNOPROTO { int setsockopt(int s, int level, int name, caddr_t val, \
168		    int valsize); }
169106	MNOPROTO { int listen(int s, int backlog); }
170107	OBSOL	vtimes
171108	OBSOL	osigvec
172109	OBSOL	osigblock
173110	OBSOL	osigsetmask
174111	OBSOL	osigsuspend
175112	OBSOL	osigstack
176113	OBSOL	orecvmsg
177114	OBSOL	osendmsg
178115	OBSOL	vtrace
179116	MSTD	{ int freebsd32_gettimeofday(struct timeval32 *tp, \
180		    struct timezone *tzp); }
181117	STD	{ int freebsd32_getrusage(int who, struct rusage32 *rusage); }
182118	MNOPROTO { int getsockopt(int s, int level, int name, caddr_t val, \
183		    int *avalsize); }
184119	UNIMPL	resuba (BSD/OS 2.x)
185120	STD	{ int freebsd32_readv(int fd, struct iovec32 *iovp, \
186		    u_int iovcnt); }
187121	STD	{ int freebsd32_writev(int fd, struct iovec32 *iovp, \
188		    u_int iovcnt); }
189122	STD	{ int freebsd32_settimeofday(struct timeval32 *tv, \
190		    struct timezone *tzp); }
191123	NOPROTO	{ int fchown(int fd, int uid, int gid); }
192124	NOPROTO	{ int fchmod(int fd, int mode); }
193125	OBSOL	orecvfrom
194126	MNOPROTO { int setreuid(int ruid, int euid); }
195127	MNOPROTO { int setregid(int rgid, int egid); }
196128	NOPROTO	{ int rename(char *from, char *to); }
197129	OBSOL	otruncate
198130	OBSOL	ftruncate
199131	MNOPROTO { int flock(int fd, int how); }
200132	NOPROTO	{ int mkfifo(char *path, int mode); }
201133	MNOPROTO { int sendto(int s, caddr_t buf, size_t len, int flags, \
202		    caddr_t to, int tolen); }
203134	MNOPROTO { int shutdown(int s, int how); }
204135	MNOPROTO { int socketpair(int domain, int type, int protocol, \
205		    int *rsv); }
206136	NOPROTO	{ int mkdir(char *path, int mode); }
207137	NOPROTO	{ int rmdir(char *path); }
208138	STD	{ int freebsd32_utimes(char *path, struct timeval32 *tptr); }
209139	OBSOL	4.2 sigreturn
210140	STD	{ int freebsd32_adjtime(struct timeval32 *delta, \
211		    struct timeval32 *olddelta); }
212141	OBSOL	ogetpeername
213142	OBSOL	ogethostid
214143	OBSOL	sethostid
215144	OBSOL	getrlimit
216145	OBSOL	setrlimit
217146	OBSOL	killpg
218147	MNOPROTO { int setsid(void); }
219148	NOPROTO	{ int quotactl(char *path, int cmd, int uid, caddr_t arg); }
220149	OBSOL oquota
221150	OBSOL ogetsockname
222
223; Syscalls 151-180 inclusive are reserved for vendor-specific
224; system calls.  (This includes various calls added for compatibity
225; with other Unix variants.)
226; Some of these calls are now supported by BSD...
227151	UNIMPL	sem_lock (BSD/OS 2.x)
228152	UNIMPL	sem_wakeup (BSD/OS 2.x)
229153	UNIMPL	asyncdaemon (BSD/OS 2.x)
230154	UNIMPL	nosys
231; 155 is initialized by the NFS code, if present.
232; XXX this is a problem!!!
233155	UNIMPL	nfssvc
234156	OBSOL	ogetdirentries
235157	COMPAT4	{ int freebsd32_statfs(char *path, \
236		    struct statfs32 *buf); }
237158	COMPAT4	{ int freebsd32_fstatfs(int fd, struct statfs32 *buf);}
238159	UNIMPL	nosys
239160	UNIMPL	nosys
240161	NOPROTO	{ int getfh(char *fname, struct fhandle *fhp); }
241162	MNOPROTO { int getdomainname(char *domainname, int len); }
242163	MNOPROTO { int setdomainname(char *domainname, int len); }
243164	MNOPROTO { int uname(struct utsname *name); }
244165	MNOPROTO { int sysarch(int op, char *parms); }
245166	MNOPROTO { int rtprio(int function, pid_t pid, \
246		    struct rtprio *rtp); }
247167	UNIMPL	nosys
248168	UNIMPL	nosys
249169	STD	{ int freebsd32_semsys(int which, int a2, int a3, int a4, \
250		    int a5); }
251170	STD	{ int freebsd32_msgsys(int which, int a2, int a3, int a4, \
252		    int a5, int a6); }
253171	STD	{ int freebsd32_shmsys(int which, int a2, int a3, int a4); }
254172	UNIMPL	nosys
255173	STD { ssize_t freebsd32_pread(int fd, void *buf, size_t nbyte, \
256		    int pad, u_int32_t offsetlo, u_int32_t offsethi); }
257; XXX note - bigendian is different
258174	STD	{ ssize_t freebsd32_pwrite(int fd, const void *buf, \
259		    size_t nbyte, int pad, u_int32_t offsetlo, \
260		    u_int32_t offsethi); }
261; XXX note - bigendian is different
262175	UNIMPL	nosys
263176	MNOPROTO { int ntp_adjtime(struct timex *tp); }
264177	UNIMPL	sfork (BSD/OS 2.x)
265178	UNIMPL	getdescriptor (BSD/OS 2.x)
266179	UNIMPL	setdescriptor (BSD/OS 2.x)
267180	UNIMPL	nosys
268
269; Syscalls 181-199 are used by/reserved for BSD
270181	MNOPROTO { int setgid(gid_t gid); }
271182	MNOPROTO { int setegid(gid_t egid); }
272183	MNOPROTO { int seteuid(uid_t euid); }
273184	UNIMPL	lfs_bmapv
274185	UNIMPL	lfs_markv
275186	UNIMPL	lfs_segclean
276187	UNIMPL	lfs_segwait
277188	STD	{ int freebsd32_stat(char *path, struct stat32 *ub); }
278189	MSTD	{ int freebsd32_fstat(int fd, struct stat32 *ub); }
279190	STD	{ int freebsd32_lstat(char *path, struct stat32 *ub); }
280191	NOPROTO	{ int pathconf(char *path, int name); }
281192	MNOPROTO { int fpathconf(int fd, int name); }
282193	UNIMPL	nosys
283194	MNOPROTO { int getrlimit(u_int which, struct rlimit *rlp); } \
284		    getrlimit __getrlimit_args int
285195	MNOPROTO { int setrlimit(u_int which, struct rlimit *rlp); } \
286		    setrlimit __setrlimit_args int
287196	NOPROTO	{ int getdirentries(int fd, char *buf, u_int count, \
288		    long *basep); }
289197	STD 	{ caddr_t freebsd32_mmap(caddr_t addr, size_t len, int prot, \
290		    int flags, int fd, int pad, u_int32_t poslo, \
291		    u_int32_t poshi); }
292198	NOPROTO	{ int nosys(void); } __syscall __syscall_args int
293; XXX note - bigendian is different
294199	STD	{ off_t freebsd32_lseek(int fd, int pad, u_int32_t offsetlo, \
295		    u_int32_t offsethi, int whence); }
296; XXX note - bigendian is different
297200	STD	{ int freebsd32_truncate(char *path, int pad, \
298		    u_int32_t lengthlo, u_int32_t lengthhi); }
299; XXX note - bigendian is different
300201	STD	{ int freebsd32_ftruncate(int fd, int pad, \
301		    u_int32_t lengthlo, u_int32_t lengthhi); }
302202	MSTD { int freebsd32_sysctl(int *name, u_int namelen, void *old, \
303		    u_int32_t *oldlenp, void *new, u_int32_t newlen); }
304203	MNOPROTO { int mlock(const void *addr, size_t len); }
305204	MNOPROTO { int munlock(const void *addr, size_t len); }
306205	NOPROTO	{ int undelete(char *path); }
307206	NOPROTO	{ int futimes(int fd, struct timeval *tptr); }
308207	MNOPROTO { int getpgid(pid_t pid); }
309208	UNIMPL	newreboot (NetBSD)
310209	MNOPROTO { int poll(struct pollfd *fds, u_int nfds, int timeout); }
311
312;
313; The following are reserved for loadable syscalls
314;
315210	UNIMPL
316211	UNIMPL
317212	UNIMPL
318213	UNIMPL
319214	UNIMPL
320215	UNIMPL
321216	UNIMPL
322217	UNIMPL
323218	UNIMPL
324219	UNIMPL
325
326;
327; The following were introduced with NetBSD/4.4Lite-2
328; They are initialized by thier respective modules/sysinits
329; XXX PROBLEM!!
330220	MNOPROTO { int __semctl(int semid, int semnum, int cmd, \
331		    union semun *arg); }
332221	MNOPROTO { int semget(key_t key, int nsems, int semflg); }
333222	MNOPROTO { int semop(int semid, struct sembuf *sops, u_int nsops); }
334223	UNIMPL	semconfig
335224	MNOPROTO { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
336225	MNOPROTO { int msgget(key_t key, int msgflg); }
337226	MNOPROTO { int msgsnd(int msqid, void *msgp, size_t msgsz, \
338		    int msgflg); }
339227	MNOPROTO { int msgrcv(int msqid, void *msgp, size_t msgsz, \
340		    long msgtyp, int msgflg); }
341228	MNOPROTO { int shmat(int shmid, void *shmaddr, int shmflg); }
342229	MNOPROTO { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
343230	MNOPROTO { int shmdt(void *shmaddr); }
344231	MNOPROTO { int shmget(key_t key, int size, int shmflg); }
345;
346232	MNOPROTO { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
347233	MNOPROTO { int clock_settime(clockid_t clock_id, \
348		    const struct timespec *tp); }
349234	MNOPROTO { int clock_getres(clockid_t clock_id, struct timespec *tp); }
350235	UNIMPL	timer_create
351236	UNIMPL	timer_delete
352237	UNIMPL	timer_settime
353238	UNIMPL	timer_gettime
354239	UNIMPL	timer_getoverrun
355240	MNOPROTO { int nanosleep(const struct timespec *rqtp, \
356		    struct timespec *rmtp); }
357241	UNIMPL	nosys
358242	UNIMPL	nosys
359243	UNIMPL	nosys
360244	UNIMPL	nosys
361245	UNIMPL	nosys
362246	UNIMPL	nosys
363247	UNIMPL	nosys
364248	UNIMPL	ntp_gettime
365249	UNIMPL	nosys
366; syscall numbers initially used in OpenBSD
367250	MNOPROTO { int minherit(void *addr, size_t len, int inherit); }
368251	MNOPROTO { int rfork(int flags); }
369252	MNOPROTO { int openbsd_poll(struct pollfd *fds, u_int nfds, \
370		    int timeout); }
371253	MNOPROTO { int issetugid(void); }
372254	NOPROTO	{ int lchown(char *path, int uid, int gid); }
373255	UNIMPL	nosys
374256	UNIMPL	nosys
375257	UNIMPL	nosys
376258	UNIMPL	nosys
377259	UNIMPL	nosys
378260	UNIMPL	nosys
379261	UNIMPL	nosys
380262	UNIMPL	nosys
381263	UNIMPL	nosys
382264	UNIMPL	nosys
383265	UNIMPL	nosys
384266	UNIMPL	nosys
385267	UNIMPL	nosys
386268	UNIMPL	nosys
387269	UNIMPL	nosys
388270	UNIMPL	nosys
389271	UNIMPL	nosys
390272	NOPROTO	{ int getdents(int fd, char *buf, size_t count); }
391273	UNIMPL	nosys
392274	NOPROTO	{ int lchmod(char *path, mode_t mode); }
393275	NOPROTO { int lchown(char *path, uid_t uid, gid_t gid); } \
394		    netbsd_lchown lchown_args int
395276	NOPROTO	{ int lutimes(char *path, struct timeval *tptr); }
396277	MNOPROTO { int msync(void *addr, size_t len, int flags); } \
397		    netbsd_msync msync_args int
398278	NOPROTO	{ int nstat(char *path, struct nstat *ub); }
399279	MNOPROTO { int nfstat(int fd, struct nstat *sb); }
400280	NOPROTO	{ int nlstat(char *path, struct nstat *ub); }
401281	UNIMPL	nosys
402282	UNIMPL	nosys
403283	UNIMPL	nosys
404284	UNIMPL	nosys
405285	UNIMPL	nosys
406286	UNIMPL	nosys
407287	UNIMPL	nosys
408288	UNIMPL	nosys
409289	UNIMPL	nosys
410290	UNIMPL	nosys
411291	UNIMPL	nosys
412292	UNIMPL	nosys
413293	UNIMPL	nosys
414294	UNIMPL	nosys
415295	UNIMPL	nosys
416296	UNIMPL	nosys
417; XXX 297 is 300 in NetBSD 
418297	COMPAT4	{ int freebsd32_fhstatfs(const struct fhandle *u_fhp, \
419		    struct statfs32 *buf); }
420298	NOPROTO	{ int fhopen(const struct fhandle *u_fhp, int flags); }
421299	NOPROTO	{ int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
422; syscall numbers for FreeBSD
423300	MNOPROTO { int modnext(int modid); }
424301	MNOPROTO { int modstat(int modid, struct module_stat* stat); }
425302	MNOPROTO { int modfnext(int modid); }
426303	MNOPROTO { int modfind(const char *name); }
427304	MNOPROTO { int kldload(const char *file); }
428305	MNOPROTO { int kldunload(int fileid); }
429306	MNOPROTO { int kldfind(const char *file); }
430307	MNOPROTO { int kldnext(int fileid); }
431308	MNOPROTO { int kldstat(int fileid, struct kld_file_stat* stat); }
432309	MNOPROTO { int kldfirstmod(int fileid); }
433310	MNOPROTO { int getsid(pid_t pid); }
434311	MNOPROTO { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
435312	MNOPROTO { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
436313	OBSOL	signanosleep
437314	UNIMPL	aio_return
438315	UNIMPL	aio_suspend
439316	UNIMPL	aio_cancel
440317	UNIMPL	aio_error
441318	UNIMPL	aio_read
442319	UNIMPL	aio_write
443320	UNIMPL	lio_listio
444321	MNOPROTO { int yield(void); }
445322	OBSOL	thr_sleep
446323	OBSOL	thr_wakeup
447324	MNOPROTO { int mlockall(int how); }
448325	MNOPROTO { int munlockall(void); }
449326	NOPROTO	{ int __getcwd(u_char *buf, u_int buflen); }
450
451327	MNOPROTO { int sched_setparam (pid_t pid, \
452		    const struct sched_param *param); }
453328	MNOPROTO { int sched_getparam (pid_t pid, struct sched_param *param); }
454
455329	MNOPROTO { int sched_setscheduler (pid_t pid, int policy, \
456		    const struct sched_param *param); }
457330	MNOPROTO { int sched_getscheduler (pid_t pid); }
458
459331	MNOPROTO { int sched_yield (void); }
460332	MNOPROTO { int sched_get_priority_max (int policy); }
461333	MNOPROTO { int sched_get_priority_min (int policy); }
462334	MNOPROTO { int sched_rr_get_interval (pid_t pid, \
463		    struct timespec *interval); }
464335	MNOPROTO { int utrace(const void *addr, size_t len); }
465; XXX note - bigendian is different
466336	MCOMPAT4 { int freebsd32_sendfile(int fd, int s, u_int32_t offsetlo, \
467		    u_int32_t offsethi, size_t nbytes, struct sf_hdtr *hdtr, \
468		    off_t *sbytes, int flags); }
469337	NOPROTO	{ int kldsym(int fileid, int cmd, void *data); }
470338	MNOPROTO { int jail(struct jail *jail); }
471339	UNIMPL	pioctl
472340	MNOPROTO { int sigprocmask(int how, const sigset_t *set, \
473		    sigset_t *oset); }
474341	MNOPROTO { int sigsuspend(const sigset_t *sigmask); }
475342	MCOMPAT4 { int freebsd32_sigaction(int sig, struct sigaction32 *act, \
476		    struct sigaction32 *oact); }
477343	MNOPROTO { int sigpending(sigset_t *set); }
478344	MCOMPAT4 { int freebsd32_sigreturn( \
479		    const struct freebsd4_freebsd32_ucontext *sigcntxp); }
480; XXX implement
481345	UNIMPL	sigtimedwait
482; XXX implement
483346	UNIMPL	sigwaitinfo
484347	MNOPROTO { int __acl_get_file(const char *path, acl_type_t type, \
485		    struct acl *aclp); }
486348	MNOPROTO { int __acl_set_file(const char *path, acl_type_t type, \
487		    struct acl *aclp); }
488349	MNOPROTO { int __acl_get_fd(int filedes, acl_type_t type, \
489		    struct acl *aclp); }
490350	MNOPROTO { int __acl_set_fd(int filedes, acl_type_t type, \
491		    struct acl *aclp); }
492351	MNOPROTO { int __acl_delete_file(const char *path, acl_type_t type); }
493352	MNOPROTO { int __acl_delete_fd(int filedes, acl_type_t type); }
494353	MNOPROTO { int __acl_aclcheck_file(const char *path, acl_type_t type, \
495		    struct acl *aclp); }
496354	MNOPROTO { int __acl_aclcheck_fd(int filedes, acl_type_t type, \
497		    struct acl *aclp); }
498355	NOPROTO	{ int extattrctl(const char *path, int cmd, \
499		    const char *filename, int attrnamespace, \
500		    const char *attrname); }
501356	NOPROTO	{ int extattr_set_file(const char *path, \
502		    int attrnamespace, const char *attrname, \
503		    void *data, size_t nbytes); }
504357	NOPROTO	{ ssize_t extattr_get_file(const char *path, \
505		    int attrnamespace, const char *attrname, \
506		    void *data, size_t nbytes); }
507358	NOPROTO	{ int extattr_delete_file(const char *path, \
508		    int attrnamespace, const char *attrname); }
509359	UNIMPL	aio_waitcomplete
510360	MNOPROTO { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
511361	MNOPROTO { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
512362	MNOPROTO { int kqueue(void); }
513363	MSTD { int freebsd32_kevent(int fd, \
514		    const struct kevent *changelist, int nchanges, \
515		    struct kevent *eventlist, int nevents, \
516		    const struct timespec *timeout); }
517364	UNIMPL	__cap_get_proc
518365	UNIMPL	__cap_set_proc
519366	UNIMPL	__cap_get_fd
520367	UNIMPL	__cap_get_file
521368	UNIMPL	__cap_set_fd
522369	UNIMPL	__cap_set_file
523370	UNIMPL	lkmressys
524371	NOPROTO	{ int extattr_set_fd(int fd, int attrnamespace, \
525		    const char *attrname, void *data, size_t nbytes); }
526372	NOPROTO	{ ssize_t extattr_get_fd(int fd, int attrnamespace, \
527		    const char *attrname, void *data, size_t nbytes); }
528373	NOPROTO	{ int extattr_delete_fd(int fd, int attrnamespace, \
529		    const char *attrname); }
530374	MNOPROTO { int __setugid(int flag); }
531375	UNIMPL	nfsclnt
532376	NOPROTO	{ int eaccess(char *path, int flags); }
533377	UNIMPL	afs_syscall
534378	MNOPROTO { int nmount(struct iovec *iovp, unsigned int iovcnt, \
535		    int flags); }
536379	NOPROTO	{ int kse_exit(void); }
537380	NOPROTO	{ int kse_wakeup(struct kse_mailbox *mbx); }
538381	NOPROTO	{ int kse_create(struct kse_mailbox *mbx, int newgroup); }
539382	NOPROTO	{ int kse_thr_interrupt(struct kse_thr_mailbox *tmbx); }
540383	NOPROTO	{ int kse_release(void); }
541384	UNIMPL	__mac_get_proc
542385	UNIMPL	__mac_set_proc
543386	UNIMPL	__mac_get_fd
544387	UNIMPL	__mac_get_file
545388	UNIMPL	__mac_set_fd
546389	UNIMPL	__mac_set_file
547390	NOPROTO	{ int kenv(int what, const char *name, char *value, int len); }
548391	NOPROTO	{ int lchflags(const char *path, int flags); }
549392	MNOPROTO { int uuidgen(struct uuid *store, int count); }
550393	MSTD	{ int freebsd32_sendfile(int fd, int s, u_int32_t offsetlo, \
551		    u_int32_t offsethi, size_t nbytes, struct sf_hdtr *hdtr, \
552		    off_t *sbytes, int flags); }
553394	UNIMPL	mac_syscall
554395	NOPROTO	{ int getfsstat(struct statfs *buf, long bufsize, \
555		    int flags); }
556396	NOPROTO	{ int statfs(char *path, struct statfs *buf); }
557397	NOPROTO	{ int fstatfs(int fd, struct statfs *buf); }
558398	NOPROTO	{ int fhstatfs(const struct fhandle *u_fhp, \
559		    struct statfs *buf); }
560399	UNIMPL	nosys
561; XXX implement these?
562400	UNIMPL	ksem_close
563401	UNIMPL	ksem_post
564402	UNIMPL	ksem_wait
565403	UNIMPL	ksem_trywait
566404	UNIMPL	ksem_init
567405	UNIMPL	ksem_open
568406	UNIMPL	ksem_unlink
569407	UNIMPL	ksem_getvalue
570408	UNIMPL	ksem_destroy
571409	UNIMPL	__mac_get_pid
572410	UNIMPL	__mac_get_link
573411	UNIMPL	__mac_set_link
574412	UNIMPL	extattr_set_link
575413	UNIMPL	extattr_get_link
576414	UNIMPL	extattr_delete_link
577415	UNIMPL	__mac_execve
578416	MSTD { int freebsd32_sigaction(int sig, struct sigaction32 *act, \
579		    struct sigaction32 *oact); }
580417	MSTD { int freebsd32_sigreturn( \
581		    const struct freebsd32_ucontext *sigcntxp); }
582418	UNIMPL	__xstat
583419	UNIMPL	__xfstat
584420	UNIMPL	__xlstat
585; XXX implement
586421	UNIMPL	getcontext
587; XXX implement
588422	UNIMPL	setcontext
589; XXX implement
590423	UNIMPL	swapcontext
591424	UNIMPL	swapoff
592425	UNIMPL	__acl_get_link
593426	UNIMPL	__acl_set_link
594427	UNIMPL	__acl_delete_link
595428	UNIMPL	__acl_aclcheck_link
596; XXX implement
597429	UNIMPL	sigwait
598430	MNOPROTO { int thr_create(ucontext_t *ctx, long *id, int flag s); }
599431	MNOPROTO { void thr_exit(long *state); }
600432	MNOPROTO { int thr_self(long *id); }
601433	MNOPROTO { int thr_kill(long id, int sig); }
602434	MNOPROTO { int _umtx_lock(struct umtx *umtx); }
603435	MNOPROTO { int _umtx_unlock(struct umtx *umtx); }
604436	MNOPROTO { int jail_attach(int jid); }
605437	UNIMPL	extattr_list_fd
606438	UNIMPL	extattr_list_file
607439	UNIMPL	extattr_list_link
608440	UNIMPL	kse_switchin
609441	UNIMPL	ksem_timedwait
610442	MNOPROTO { int thr_suspend(const struct timespec *timeout); }
611443	MNOPROTO { int thr_wake(long id); }
612444	MNOPROTO { int kldunloadf(int fileid, int flags); }
613445	UNIMPL	audit
614446	UNIMPL	auditon
615447	UNIMPL	getauid
616448	UNIMPL	setauid
617449	UNIMPL	getaudit
618450	UNIMPL	setaudit
619451	UNIMPL	getaudit_addr
620452	UNIMPL	setaudit_addr
621453	UNIMPL	auditctl
622454	UNIMPL	_umtx_op
623