$NetBSD: syscalls.master,v 1.16 2014/05/29 10:41:48 njoly Exp $

;       @(#)syscalls.master     8.2 (Berkeley) 1/13/94

; NetBSD 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 NODEF, UNIMPL, or NOARGS
;
; types:
;       NODEF   always included
;       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
;
; arguments:
;       PAD     argument not part of the C interface, used only for padding
;
;
; The purpose of this syscalls.master is to map to the Linux types which
; are marshalled into the arg structure by the clientside rump_syscalls.c
; code in librumpclient.
;

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/signal.h>
#include <sys/socket.h>
#include <sys/mount.h>
#include <sys/sched.h>
#include <sys/syscallargs.h>

#include <compat/linux/common/linux_types.h>
#include <compat/linux/common/linux_signal.h>
#include <compat/linux/linux_syscallargs.h>
#include <compat/linux/linux_syscall.h>

#ifdef LINUX_SYS_socketcall
#include <compat/linux/common/linux_socketcall.h>
#endif

#include "rump_linux_syscallargs.h"

%%

0       NOARGS          { int|linux_sys||nosys(void); }
1       UNIMPL          exit
2       UNIMPL          fork
3       NOARGS          { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
4       NOARGS          { ssize_t|sys||write(int fd, const void *buf, \
                           size_t nbyte); }
5       NOARGS          { int|linux_sys||open(const char *path, \
                           int flags, int mode); }
6       NOARGS          { int|sys||close(int fd); }
7       UNIMPL          wait4
8       UNIMPL          creat
9       NOARGS          { int|sys||link(const char *path, const char *link); }
10      NOARGS          { int|linux_sys||unlink(const char *path); }
11      UNIMPL          execv
12      NOARGS          { int|sys||chdir(const char *path); }
13      NOARGS          { int|sys||fchdir(int fd); }
14      UNIMPL          mknod
15      NOARGS          { int|sys||chmod(const char *path, mode_t mode); }
16      NOARGS          { int|sys||__posix_chown(const char *path, uid_t uid, \
                           gid_t gid); }
17      UNIMPL          obreak
18      UNIMPL          getfsstat
19      UNIMPL          lseek
20      NOARGS          { pid_t|sys||getpid_with_ppid(void); } getpid
21      UNIMPL          mount
22      UNIMPL          unmount
23      NOARGS          { int|sys||setuid(uid_t uid); }
24      NOARGS          { uid_t|sys||getuid_with_euid(void); } getuid
25      NOARGS          { uid_t|sys||geteuid(void); }
26      UNIMPL          ptrace
27      NOARGS          { ssize_t|linux_sys||recvmsg(int s, \
                           struct linux_msghdr *msg, int flags); }
28      NOARGS          { ssize_t|linux_sys||sendmsg(int s, \
                           const struct linux_msghdr *msg, int flags); }
29      NOARGS          { ssize_t|linux_sys||recvfrom(int s, void *buf, \
                           int len, int flags, struct osockaddr *from, \
                           int *fromlenaddr); }
30      NOARGS          { int|linux_sys||accept(int s, struct osockaddr *name, \
                           int *anamelen); }
31      NOARGS          { int|linux_sys||getpeername(int fdes, \
                           struct osockaddr *asa, int *alen); }
32      NOARGS          { int|linux_sys||getsockname(int fdes, \
                           struct osockaddr *asa, int *alen); }
33      NOARGS          { int|sys||access(const char *path, int flags); }
34      UNIMPL          chflags
35      UNIMPL          fchflags
36      NOARGS          { void|sys||sync(void); }
37      UNIMPL          kill
38      UNIMPL          stat
39      UNIMPL          getppid
40      UNIMPL          lstat
41      NOARGS          { int|sys||dup(int fd); }

; we mimic the librumpclient calling convention, therefore no linux_sys_pipe
42      NOARGS          { int|sys||pipe(void); }

43      UNIMPL          getegid
44      UNIMPL          profil
45      UNIMPL          ktrace
46      UNIMPL          sigaction
47      NOARGS          { gid_t|sys||getgid_with_egid(void); } getgid
48      UNIMPL          sigprocmask
49      UNIMPL          __getlogin
50      UNIMPL          __setlogin
51      UNIMPL          acct
52      UNIMPL          sigpending
53      UNIMPL          sigaltstack
54      NOARGS          { int|linux_sys||ioctl(int fd, \
                           u_long com, void *data); }
55      UNIMPL          reboot
56      UNIMPL          revoke
57      NOARGS          { int|sys||symlink(const char *path, \
                           const char *link); }
58      NOARGS          { ssize_t|sys||readlink(const char *path, char *buf, \
                           int count); }
59      UNIMPL          execve
60      NOARGS          { mode_t|sys||umask(mode_t newmask); }
61      NOARGS          { int|sys||chroot(const char *path); }
62      UNIMPL          fstat43
63      UNIMPL          getkerninfo
64      UNIMPL          getpagesize
65      UNIMPL          msync
66      UNIMPL          vfork
67      UNIMPL          vread
68      UNIMPL          vwrite
69      UNIMPL          sbrk
70      UNIMPL          sstk
71      UNIMPL          mmap
72      UNIMPL          ovadvise
73      UNIMPL          munmap
74      UNIMPL          mprotect
75      UNIMPL          madvise
76      UNIMPL          vhangup
77      UNIMPL          vlimit
78      UNIMPL          mincore
79      NOARGS          { int|sys||getgroups(int gidsetsize, \
                           int *gidset); }
80      NOARGS          { int|sys||setgroups(int gidsetsize, \
                           const int *gidset); }
81      NOARGS          { int|sys||getpgrp(void); }
82      NOARGS          { int|sys||setpgid(int pid, int pgid); }
83      UNIMPL          setitimer
84      UNIMPL          wait
85      UNIMPL          swapon
86      UNIMPL          getitimer
87      UNIMPL          gethostname
88      UNIMPL          sethostname
89      UNIMPL          getdtablesize
90      NOARGS          { int|sys||dup2(int from, int to); }
91      UNIMPL          getdopt
92      NOARGS          { int|linux_sys||fcntl(int fd, int cmd, void *arg); }
93      UNIMPL          select
94      UNIMPL          setdopt
95      NOARGS          { int|sys||fsync(int fd); }
96      UNIMPL          setpriority
97      UNIMPL          socket
98      NOARGS          { int|linux_sys||connect(int s, \
                           const struct osockaddr *name, \
                           unsigned int namelen); }
99      UNIMPL          accept
100     UNIMPL          getpriority

101     UNIMPL          send
102     UNIMPL          recv

103     UNIMPL          sigreturn
104     NOARGS          { int|linux_sys||bind(int s, \
                           const struct osockaddr *name, unsigned namelen); }
105     NOARGS          { int|linux_sys||setsockopt(int s, int level, \
                           int name, const void *val, int optlen); }
106     NOARGS          { int|sys||listen(int s, int backlog); }
107     UNIMPL          vtimes
108     UNIMPL          sigvec
109     UNIMPL          sigblock
110     UNIMPL          sigsetmask
111     UNIMPL          sigsuspend
112     UNIMPL          sigstack
113     UNIMPL          orecvmsg
114     UNIMPL          osendmsg
115     UNIMPL          vtrace
116     UNIMPL          gettimeofday
117     UNIMPL          getrusage
118     NOARGS          { int|linux_sys||getsockopt(int s, int level, \
                           int name, void *val, int *avalsize); }
119     UNIMPL          resuba
120     NOARGS          { ssize_t|sys||readv(int fd, \
                           const struct iovec *iovp, int iovcnt); }
121     NOARGS          { ssize_t|sys||writev(int fd, \
                           const struct iovec *iovp, int iovcnt); }
122     UNIMPL          settimeofday
123     NOARGS          { int|sys||__posix_fchown(int fd, int uid, int gid); }
124     NOARGS          { int|sys||fchmod(int fd, mode_t mode); }
125     UNIMPL          orecvfrom
126     NOARGS          { int|sys||setreuid(uid_t ruid, uid_t euid); }
127     NOARGS          { int|sys||setregid(gid_t rgid, gid_t egid); }
128     NOARGS          { int|sys||__posix_rename(const char *from, \
                           const char *to); }
129     UNIMPL          otruncate
130     UNIMPL          oftruncate
131     NOARGS          { int|sys||flock(int fd, int how); }
132     UNIMPL          mkfifo
133     NOARGS          { int|linux_sys||sendto(int s, void *buf, \
                           int len, int flags, const struct osockaddr *to, \
                           int tolen); }
134     NOARGS          { int|sys||shutdown(int s, int how); }
135     NOARGS          { int|linux_sys||socketpair(int domain, int type, \
                           int protocol, int *rsv); }
136     NOARGS          { int|sys||mkdir(const char *path, mode_t mode); }
137     NOARGS          { int|sys||rmdir(const char *path); }
138     UNIMPL          utimes

139     UNIMPL          4.2 sigreturn
140     UNIMPL          adjtime
141     UNIMPL          ogetpeername
142     UNIMPL          ogethostid
143     UNIMPL          osethostid
144     UNIMPL          ogetrlimit
145     UNIMPL          osetrlimit
146     UNIMPL          okillpg
147     NOARGS          { int|sys||setsid(void); }
148     UNIMPL          quotactl
149     UNIMPL          oquota
150     UNIMPL          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
152     UNIMPL
153     UNIMPL
154     UNIMPL
155     UNIMPL          nfssvc
156     UNIMPL          ogetdirentries
157     UNIMPL          statfs12
158     UNIMPL          fstatfs12
159     UNIMPL
160     UNIMPL
161     UNIMPL          getfh30
162     UNIMPL          ogetdomainname
163     UNIMPL          osetdomainname
164     UNIMPL          ouname
165     UNIMPL          sysarch
166     UNIMPL
167     UNIMPL
168     UNIMPL
169     UNIMPL          1.0 semsys
170     UNIMPL          1.0 msgsys
171     UNIMPL          1.0 shmsys
172     UNIMPL
173     NOARGS          { ssize_t|sys||pread(int fd, char *buf, \
                           size_t nbyte, int PAD, off_t offset); }
174     NOARGS          { ssize_t|sys||pwrite(int fd, char *buf, \
                           size_t nbyte, int PAD, off_t offset); }
175     UNIMPL          ntp_gettime
176     UNIMPL          ntp_adjtime
177     UNIMPL
178     UNIMPL
179     UNIMPL
180     UNIMPL

; Syscalls 180-199 are used by/reserved for BSD
181     NOARGS          { int|sys||setgid(gid_t gid); }
182     NOARGS          { int|sys||setegid(gid_t egid); }
183     NOARGS          { int|sys||seteuid(uid_t euid); }
184     UNIMPL          lfs_bmapv
185     UNIMPL          lfs_markv
186     UNIMPL          lfs_segclean
187     UNIMPL          lfs_segwait
188     UNIMPL          stat12
189     UNIMPL          fstat12
190     UNIMPL          lstat12
191     UNIMPL          pathconf
192     UNIMPL          fpathconf
193     UNIMPL
194     NOARGS          { int|linux_sys||getrlimit(int which, \
                           struct orlimit *rlp); }
195     NOARGS          { int|linux_sys||setrlimit(int which, \
                           const struct orlimit *rlp); }
196     UNIMPL          getdirentries
197     UNIMPL          mmap
198     UNIMPL          __syscall
199     NOARGS          { off_t|sys||lseek(int fd, int PAD, off_t offset, \
                           int whence); }
200     NOARGS          { int|sys||truncate(const char *path, int PAD, \
                           off_t length); }
201     NOARGS          { int|sys||ftruncate(int fd, int PAD, off_t length); }
202     UNIMPL          __sysctl
203     UNIMPL          mlock
204     UNIMPL          munlock
205     UNIMPL          undelete
206     UNIMPL          futimes
207     NOARGS          { pid_t|sys||getpgid(pid_t pid); }
208     UNIMPL          reboot
209     NOARGS          { int|sys||poll(struct pollfd *fds, u_int nfds, \
                           int timeout); }
;
; Syscalls 210-219 are reserved for dynamically loaded syscalls
;
210     UNIMPL          afssys
211     UNIMPL
212     UNIMPL
213     UNIMPL
214     UNIMPL
215     UNIMPL
216     UNIMPL
217     UNIMPL
218     UNIMPL
219     UNIMPL
220     UNIMPL          compat_14_semctl
221     UNIMPL          semget
222     UNIMPL          semop
223     UNIMPL          semconfig
224     UNIMPL          compat_14_msgctl
225     UNIMPL          msgget
226     UNIMPL          msgsnd
227     UNIMPL          msgrcv
228     UNIMPL          shmat
229     UNIMPL          compat_14_shmctl
230     UNIMPL          shmdt
231     UNIMPL          shmget

232     UNIMPL          clock_gettime
233     UNIMPL          clock_settime
234     UNIMPL          clock_getres
235     UNIMPL          timer_create
236     UNIMPL          timer_delete
237     UNIMPL          timer_settime
238     UNIMPL          timer_gettime
239     UNIMPL          timer_getoverrun
;
; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls
;
240     UNIMPL          nanosleep
241     NOARGS          { int|linux_sys||fdatasync(int fd); }
242     UNIMPL          mlockall
243     UNIMPL          munlockall
244     UNIMPL          __sigtimedwait
245     UNIMPL          sigqueueinfo
246     UNIMPL          modctl
247     UNIMPL          _ksem_init
248     UNIMPL          _ksem_open
249     UNIMPL          _ksem_unlink
250     UNIMPL          _ksem_close
251     UNIMPL          _ksem_post
252     UNIMPL          _ksem_wait
253     UNIMPL          _ksem_trywait
254     UNIMPL          _ksem_getvalue
255     UNIMPL          _ksem_destroy
256     UNIMPL          _ksem_timedwait

257     UNIMPL          mq_open
258     UNIMPL          mq_close
259     UNIMPL          mq_unlink
260     UNIMPL          mq_getattr
261     UNIMPL          mq_setattr
262     UNIMPL          mq_notify
263     UNIMPL          mq_send
264     UNIMPL          mq_receive
265     UNIMPL          mq_timedsend
266     UNIMPL          mq_timedreceive
267     UNIMPL
268     UNIMPL
269     UNIMPL
270     UNIMPL          __posix_rename
271     UNIMPL          swapctl
272     UNIMPL          getdents
273     UNIMPL          minherit
274     UNIMPL          lchmod
275     NOARGS          { int|sys||__posix_lchown(const char *path, uid_t uid, \
                           gid_t gid); }
276     UNIMPL          lutimes
277     UNIMPL          msync
278     UNIMPL          stat
279     UNIMPL          fstat
280     UNIMPL          lstat
281     UNIMPL          sigaltstack
282     UNIMPL          vfork
283     UNIMPL          __posix_chown
284     UNIMPL          __posix_fchown
285     UNIMPL          __posix_lchown
286     NOARGS          { pid_t|sys||getsid(pid_t pid); }

287     UNIMPL          __clone
288     UNIMPL          fktrace
289     UNIMPL          { ssize_t|sys||preadv(int fd, \
                           const struct iovec *iovp, int iovcnt, \
                           int PAD, off_t offset); }
290     UNIMPL          { ssize_t|sys||pwritev(int fd, \
                           const struct iovec *iovp, int iovcnt, \
                           int PAD, off_t offset); }
291     UNIMPL          sigaction
292     UNIMPL          sigpending
293     UNIMPL          sigprocmask
294     UNIMPL          sigsuspend
295     UNIMPL          sigreturn
296     NOARGS          { int|sys||__getcwd(char *bufp, size_t length); }
297     NOARGS          { int|sys||fchroot(int fd); }
298     UNIMPL          fhopen
299     UNIMPL          fhstat
300     UNIMPL          fhstatfs
301     UNIMPL          ____semctl13
302     UNIMPL          __msgctl13
303     UNIMPL          __shmctl13
304     UNIMPL          lchflags
305     UNIMPL          issetugid
306     UNIMPL          utrace
307     UNIMPL          getcontext
308     UNIMPL          setcontext
309     UNIMPL          _lwp_create
310     UNIMPL          _lwp_exit
311     UNIMPL          _lwp_self
312     UNIMPL          _lwp_wait
313     UNIMPL          _lwp_suspend
314     UNIMPL          _lwp_continue
315     UNIMPL          _lwp_wakeup
316     UNIMPL          _lwp_getprivate
317     UNIMPL          _lwp_setprivate
318     UNIMPL          _lwp_kill
319     UNIMPL          _lwp_detach
320     UNIMPL          _lwp_park
321     UNIMPL          _lwp_unpark
322     UNIMPL          _lwp_unpark_all
323     UNIMPL          _lwp_setname
324     UNIMPL          _lwp_getname
325     UNIMPL          _lwp_ctl

; Syscalls 326-339 reserved for LWP syscalls.
326     UNIMPL
327     UNIMPL
328     UNIMPL
329     UNIMPL
; SA system calls.
330     UNIMPL          sa_register
331     UNIMPL          sa_stacks
332     UNIMPL          sa_enable
333     UNIMPL          sa_setconcurrency
334     UNIMPL          sa_yield
335     UNIMPL          sa_preempt
336     UNIMPL          sys_sa_unblockyield
;
; Syscalls 337-339 are reserved for other scheduler activation syscalls.
;
337     UNIMPL
338     UNIMPL
339     UNIMPL

340     UNIMPL          __sigaction_sigtramp
341     UNIMPL          pmc_get_info
342     UNIMPL          pmc_control
343     UNIMPL          rasctl
344     UNIMPL          kqueue
345     UNIMPL          kevent

; Scheduling system calls.
346     UNIMPL          _sched_setparam
347     UNIMPL          _sched_getparam
348     UNIMPL          _sched_setaffinity
349     UNIMPL          _sched_getaffinity
350     UNIMPL          sched_yield
351     UNIMPL
352     UNIMPL
353     UNIMPL

354     UNIMPL          fsync_range
355     UNIMPL          uuidgen
356     UNIMPL          getvfsstat
357     UNIMPL          statvfs1
358     UNIMPL          fstatvfs1
359     UNIMPL          fhstatvfs1
360     UNIMPL          extattrctl
361     UNIMPL          extattr_set_file
362     UNIMPL          extattr_get_file
363     UNIMPL          extattr_delete_file
364     UNIMPL          extattr_set_fd
365     UNIMPL          extattr_get_fd
366     UNIMPL          extattr_delete_fd
367     UNIMPL          extattr_set_link
368     UNIMPL          extattr_get_link
369     UNIMPL          extattr_delete_link
370     UNIMPL          extattr_list_fd
371     UNIMPL          extattr_list_file
372     UNIMPL          extattr_list_link
373     UNIMPL          pselect
374     UNIMPL          pollts
375     UNIMPL          setxattr
376     UNIMPL          lsetxattr
377     UNIMPL          fsetxattr
378     UNIMPL          getxattr
379     UNIMPL          lgetxattr
380     UNIMPL          fgetxattr
381     UNIMPL          listxattr
382     UNIMPL          llistxattr
383     UNIMPL          flistxattr
384     UNIMPL          removexattr
385     UNIMPL          lremovexattr
386     UNIMPL          fremovexattr
387     UNIMPL          stat30
388     UNIMPL          fstat30
389     UNIMPL          lstat30
390     NOARGS          { int|linux_sys||getdents64(int fd, \
                           struct linux_dirent64 *dent, unsigned int count); }
391     UNIMPL          old posix_fadvise
392     UNIMPL          fhstat
393     UNIMPL          ntp_gettime
394     NOARGS          { int|linux_sys||socket(int domain, \
                           int type, int protocol); }
395     UNIMPL          getfh
396     UNIMPL          fhopen
397     UNIMPL          fhstatvfs1
398     UNIMPL          fhstat

; Asynchronous I/O system calls
399     UNIMPL          aio_cancel
400     UNIMPL          aio_error
401     UNIMPL          aio_fsync
402     UNIMPL          aio_read
403     UNIMPL          aio_return
404     UNIMPL          aio_suspend
405     UNIMPL          aio_write
406     UNIMPL          lio_listio

407     UNIMPL
408     UNIMPL
409     UNIMPL

410     UNIMPL          mount
411     UNIMPL          mremap

; Processor-sets system calls
412     UNIMPL          pset_create
413     UNIMPL          pset_destroy
414     UNIMPL          pset_assign
415     UNIMPL          _pset_bind
416     UNIMPL          fadvise
417     NOARGS          { int|linux_sys||select(int nd, \
                           fd_set *in, fd_set *ou, fd_set *ex, \
                           struct timeval50 *tv); }
418     NOARGS          { int|linux_sys||gettimeofday(struct timeval50 *tp, \
                           struct timezone *tzp); }
419     NOARGS          { int|linux_sys||settimeofday(struct timeval50 *tp, \
                           struct timezone *tzp); }
420     NOARGS          { int|compat_50_sys||utimes(const char *path, \
                           const struct timveval50 *tptr); }
421     UNIMPL          adjtime
422     UNIMPL          lfs_segwait
423     NOARGS          { int|sys|50|futimes(int fd, \
                           const struct timeval *tptr); }
424     NOARGS          { int|sys|50|lutimes(const char *path, \
                           const struct timeval *tptr); }
425     UNIMPL          setitimer
426     UNIMPL          getitimer
427     NOARGS          { int|linux_sys||clock_gettime(clockid_t which, \
                           struct linux_timespec *tp); }
428     NOARGS          { int|linux_sys||clock_settime(clockid_t which, \
                           struct linux_timespec *tp); }
429     NOARGS          { int|linux_sys||clock_getres(clockid_t which, \
                           struct linux_timespec *tp); }
430     NOARGS          { int|linux_sys||nanosleep( \
                          const struct linux_timespec *rqtp, \
                          struct linux_timespec *rmtp); }
431     UNIMPL          __sigtimedwait
432     UNIMPL          mq_timedsend
433     UNIMPL          mq_timedreceive
434     UNIMPL          _lwp_park
435     UNIMPL          kevent
436     UNIMPL          pselect
437     NOARGS          { int|linux_sys||ppoll(struct pollfd *fds, \
                           u_int nfds, const struct linux_timespec *timeout, \
                           const linux_sigset_t *mask);}
438     UNIMPL          aio_suspend
439     NOARGS                  { int|linux_sys||stat64(const char *path, \
                           struct linux_stat64 *sp); }
440     NOARGS                  { int|linux_sys||fstat64(int fd, \
                           struct linux_stat64 *sp); }
441     NOARGS                  { int|linux_sys||lstat64(const char *path, \
                           struct linux_stat64 *sp); }
442     UNIMPL          __semctl
443     UNIMPL          shmctl
444     UNIMPL          msgctl
445     UNIMPL          getrusage
446     UNIMPL          timer_settime
447     UNIMPL          timer_gettime
448     UNIMPL          ntp_gettime
449     UNIMPL          wait4
450     NOARGS                  { int|linux_sys||mknod(const char *path, mode_t mode, \
                           int dev); }
451     UNIMPL          fhstat

; 452 only ever appeared in 5.99.x and can be reused after netbsd-7
452     UNIMPL          5.99 quotactl
453     NOARGS          { int|linux_sys||pipe2(int *pfds, int flags); }
454     NOARGS          { int|linux_sys||dup3(int from, int to, int flags); }
455     UNIMPL          kqueue1
456     UNIMPL          paccept
457     NOARGS          { int|linux_sys||linkat(int fd1, const char *name1, \
                           int fd2, const char *name2, int flags); }
458     NOARGS          { int|sys||renameat(int fromfd, const char *from, \
                           int tofd, const char *to); }
459     UNIMPL          mkfifoat
460     STD             { int|rump_linux_sys||mknodat(int fd, const char *path, \
                           mode_t mode, int PAD, unsigned dev); }
461     NOARGS          { int|sys||mkdirat(int fd, const char *path, \
                           mode_t mode); }
462     NOARGS          { int|linux_sys||faccessat(int fd, const char *path, \
                           int amode); }
463     NOARGS          { int|linux_sys||fchmodat(int fd, const char *path, \
                           mode_t mode); }
464     NOARGS          { int|linux_sys||fchownat(int fd, const char *path, \
                           uid_t owner, gid_t group, int flag); }
465     UNIMPL          fexecve
466     NOARGS          { int|linux_sys||fstatat64(int fd, const char *path, \
                          struct linux_stat *sp, int flag); }
467     NOARGS          { int|linux_sys||utimensat(int fd, const char *path, \
                           struct linux_timespec *times, int flag); }
468     NOARGS          { int|linux_sys||openat(int fd, const char *path, \
                           int flags, ... mode_t mode); }
469     NOARGS          { int|sys||readlinkat(int fd, const char *path, \
                           char *buf, size_t bufsize); }
470     NOARGS          { int|sys||symlinkat(const char *path1, int fd, \
                           const char *path2); }
471     NOARGS          { int|linux_sys||unlinkat(int fd, const char *path, \
                           int flag); }
472     UNIMPL          futimens
473     UNIMPL          __quotactl
474     UNIMPL          posix_spawn
475     UNIMPL          recvmmsg
476     UNIMPL          sendmmsg
477     NOARGS          { int|linux_sys||clock_nanosleep(clockid_t which, \
                           int flags, struct linux_timespec *rqtp, \
                           struct linux_timespec *rmtp); }