syscalls.master revision 1.21 1 $NetBSD: syscalls.master,v 1.21 2000/11/08 04:19:01 erh Exp $
2 ;
3 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
4
5 ; NetBSD alpha COMPAT_LINUX system call name/number "master" file.
6 ; (See syscalls.conf to see what it is processed into.)
7 ;
8 ; Fields: number type [type-dependent ...]
9 ; number system call number, must be in order
10 ; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
11 ; the compatibility options defined in syscalls.conf.
12 ;
13 ; types:
14 ; STD always included
15 ; OBSOL obsolete, not included in system
16 ; UNIMPL unimplemented, not included in system
17 ; NODEF included, but don't define the syscall number
18 ; NOARGS included, but don't define the syscall args structure
19 ; INDIR included, but don't define the syscall args structure
20 ; and allow it to be "really" varargs.
21 ;
22 ; The compat options are defined in the syscalls.conf file, and the
23 ; compat option name is prefixed to the syscall name. Other than
24 ; that, they're like NODEF (for 'compat' options), or STD (for
25 ; 'libcompat' options).
26 ;
27 ; The type-dependent arguments are as follows:
28 ; For STD, NODEF, NOARGS, and compat syscalls:
29 ; { pseudo-proto } [alias]
30 ; For other syscalls:
31 ; [comment]
32 ;
33 ; #ifdef's, etc. may be included, and are copied to the output files.
34 ; #include's are copied to the syscall names and switch definition files only.
35 ;
36 ; (ERH: 3/18/00)
37 ;
38 ; XXX XAX things to do:
39 ; make sure non-linux_foo() matches real linux syscalls.
40 ; create new linux_foo functions otherwise
41 ; (i.e. reboot, msgrcv? )
42 ; make sure linux_foo() matches expected prototypes in .c files.
43 ; kill not used functions. (ifdef the actual code)
44 ; fix getfsuid in linux_misc.c
45 ; make linux_sys_sigreturn in linux_machdep.c use frame.extramask
46 ;
47 ; NOT USED = This syscall is not really used in Linux, except in its
48 ; osf compat mode. Since Linux binaries shouldn't ever
49 ; call it and osf binaries run under a different emulation,
50 ; it shouldn't matter that the linux version of the
51 ; function might not DTRT. Define it anyway so we
52 ; don't have to split off or ifdef the associated function.
53 ; A bit better might be to have makesyscalls identify this
54 ; as "define but don't include in table" so it doesn't actually
55 ; ever get called.
56 ; UNIMPL <blank> = not implemented here nor in linux source
57 ; UNIMPL osf_* = osf functions implemented in linux, not here.
58 ;
59
60 #include "opt_sysv.h"
61 #include "opt_compat_43.h"
62
63 #include <sys/param.h>
64 #include <sys/poll.h>
65 #include <sys/systm.h>
66 #include <sys/signal.h>
67 #include <sys/mount.h>
68 #include <sys/syscallargs.h>
69
70 #include <compat/linux/common/linux_types.h>
71 #include <compat/linux/common/linux_signal.h>
72 #include <compat/linux/common/linux_siginfo.h>
73 #include <compat/linux/common/linux_ipc.h>
74 #include <compat/linux/common/linux_msg.h>
75 #include <compat/linux/common/linux_sem.h>
76 #include <compat/linux/common/linux_shm.h>
77 #include <compat/linux/common/linux_mmap.h>
78 ;#include <compat/linux/common/linux_machdep.h>
79
80 #include <compat/linux/linux_syscallargs.h>
81
82 0 NOARGS { int sys_nosys(void); } syscall
83 1 NOARGS { int sys_exit(int rval); }
84 2 NOARGS { int sys_fork(void); }
85 3 NOARGS { int sys_read(int fd, void *buf, size_t nbyte); }
86 4 NOARGS { int sys_write(int fd, const void *buf, size_t nbyte); }
87 5 UNIMPL
88 6 NOARGS { int sys_close(int fd); }
89 7 UNIMPL osf_wait4
90 ;8 OBSOL osf_old_creat, NOT USED
91 8 STD { int linux_sys_creat(const char *path, mode_t mode); }
92 9 NOARGS { int sys_link(const char *path, const char *link); }
93 10 STD { int linux_sys_unlink(const char *path); }
94 11 UNIMPL
95 12 STD { int linux_sys_chdir(const char *path); }
96 13 NOARGS { int sys_fchdir(int fd); }
97 14 STD { int linux_sys_mknod(const char *path, int mode, int dev); }
98 15 STD { int linux_sys_chmod(const char *path, int mode); }
99 16 STD { int linux_sys_chown(const char *path, int uid, int gid); }
100 ;17 ALIAS osf_brk
101 17 STD { int linux_sys_brk(char *nsize); }
102 18 UNIMPL
103 19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \
104 int whence); }
105 20 NOARGS { pid_t sys_getpid(void); }
106 21 UNIMPL osf_mount
107 22 UNIMPL umount
108 23 NOARGS { int sys_setuid(uid_t uid); }
109 24 NOARGS { uid_t sys_getuid(void); }
110 25 UNIMPL
111 26 STD { int linux_sys_ptrace(long request, long pid, \
112 long addr, long data); }
113 27 UNIMPL
114 28 UNIMPL
115 29 UNIMPL
116 30 UNIMPL
117 31 UNIMPL
118 32 UNIMPL
119 33 STD { int linux_sys_access(const char *path, int flags); }
120 34 UNIMPL
121 35 UNIMPL
122 36 NOARGS { int sys_sync(void); }
123 37 STD { int linux_sys_kill(int pid, int signum); }
124 38 UNIMPL
125 39 NOARGS { int sys_setpgid(int pid, int pgid); }
126 40 UNIMPL
127 41 NOARGS { int sys_dup(int fd); }
128 42 NOARGS { int linux_sys_pipe(void); }
129 43 UNIMPL osf_set_program_attributes
130 44 UNIMPL
131 45 STD { int linux_sys_open(const char *path, int flags, int mode); }
132 46 UNIMPL
133 47 NOARGS { gid_t sys_getgid(void); }
134 48 UNIMPL osf_sigprocmask
135 49 UNIMPL
136 50 UNIMPL
137 51 NOARGS { int sys_acct(const char *path); }
138 52 STD { int linux_sys_sigpending(linux_old_sigset_t *set); }
139 53 UNIMPL
140 54 STD { int linux_sys_ioctl(int fd, u_long com, \
141 caddr_t data); }
142 55 UNIMPL
143 56 UNIMPL
144 57 STD { int linux_sys_symlink(const char *path, const char *to); }
145 58 STD { int linux_sys_readlink(const char *name, char *buf, \
146 int count); }
147 59 STD { int linux_sys_execve(const char *path, char **argp, \
148 char **envp); }
149 60 NOARGS { mode_t sys_umask(mode_t newmask); }
150 61 NOARGS { int sys_chroot(const char *path); }
151 62 UNIMPL
152 63 NOARGS { int sys_getpgrp(void); }
153 64 NOARGS { int compat_43_sys_getpagesize(void); }
154 65 UNIMPL
155 66 NOARGS { int sys___vfork14(void); }
156 67 STD { int linux_sys_stat(const char *path, \
157 struct linux_stat *sp); }
158 68 STD { int linux_sys_lstat(const char *path, \
159 struct linux_stat *sp); }
160 69 UNIMPL
161 70 UNIMPL
162 ;71 ALIAS osf_mmap
163 71 NOARGS { int linux_sys_mmap(unsigned long addr, size_t len, \
164 int prot, int flags, int fd, off_t offset); }
165 72 UNIMPL
166 73 NOARGS { int sys_munmap(void *addr, size_t len); }
167 74 NOARGS { int sys_mprotect(void *addr, size_t len, int prot); }
168 ; Liunx sys_madvise just returns 0.
169 75 UNIMPL madvise
170 76 UNIMPL vhangup
171 77 UNIMPL
172 78 UNIMPL
173 79 NOARGS { int sys_getgroups(int gidsetsize, gid_t *gidset); }
174 80 NOARGS { int sys_setgroups(int gidsetsize, const gid_t *gidset); }
175 81 UNIMPL
176 82 UNIMPL setpgrp
177 83 UNIMPL osf_setitimer
178 84 UNIMPL
179 85 UNIMPL
180 86 UNIMPL osf_getitimer
181 87 NOARGS { int compat_43_sys_gethostname(char *hostname, \
182 u_int len); }
183 88 NOARGS { int compat_43_sys_sethostname(char *hostname, \
184 u_int len); }
185 89 UNIMPL getdtablesize
186 90 NOARGS { int sys_dup2(int from, int to); }
187 91 STD { int linux_sys_fstat(int fd, struct linux_stat *sp); }
188 92 STD { int linux_sys_fcntl(int fd, int cmd, void *arg); }
189 93 UNIMPL osf_select
190 94 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \
191 int timeout); }
192 95 NOARGS { int sys_fsync(int fd); }
193 96 NOARGS { int sys_setpriority(int which, int who, int prio); }
194 97 STD { int linux_sys_socket(int domain, int type, \
195 int protocol); }
196 98 STD { int linux_sys_connect(int s, \
197 const struct sockaddr *name, \
198 unsigned int namelen); }
199 99 NOARGS { int compat_43_sys_accept(int s, \
200 caddr_t name, int *anamelen); }
201 ;100 ALIAS osf_getpriority
202 100 NOARGS { int sys_getpriority(int which, int who); }
203 101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \
204 int flags); }
205 102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \
206 int flags); }
207 103 STD { int linux_sys_sigreturn(struct linux_sigframe *sfp); }
208 104 NOARGS { int sys_bind(int s, const struct sockaddr *name, \
209 unsigned int namelen); }
210 105 STD { int linux_sys_setsockopt(int s, int level, \
211 int optname, void *optval, int optlen); }
212 106 NOARGS { int sys_listen(int s, int backlog); }
213 107 UNIMPL
214 108 UNIMPL
215 109 UNIMPL
216 110 UNIMPL
217
218 111 STD { int linux_sys_sigsuspend(caddr_t restart, \
219 int oldmask, int mask); }
220 112 UNIMPL osf_sigstack
221 113 NOARGS { size_t sys_recvmsg(int fd, struct msghdr *msg, \
222 int flags); }
223 114 NOARGS { ssize_t sys_sendmsg(int fd, \
224 const struct msghdr *msg, int flags); }
225 115 UNIMPL
226 116 UNIMPL osf_gettimeofday
227 117 UNIMPL osf_getrusage
228 118 STD { int linux_sys_getsockopt(int s, int level, \
229 int optname, void *optval, int *optlen); }
230 119 UNIMPL
231 120 NOARGS { ssize_t sys_readv(int fd, const struct iovec *iovp, \
232 int iovcnt); }
233 121 NOARGS { ssize_t sys_writev(int fd, const struct iovec *iovp, \
234 int iovcnt); }
235 122 UNIMPL osf_settimeofday
236 123 STD { int linux_sys_fchown(int fd, int uid, int gid); }
237 124 NOARGS { int sys_fchmod(int fd, mode_t mode); }
238 125 STD { int linux_sys_recvfrom(int s, void *buf, int len, \
239 int flags, struct sockaddr *from, \
240 int *fromlen); }
241 126 STD { int linux_sys_setreuid(int ruid, int euid); }
242 127 STD { int linux_sys_setregid(int rgid, int egid); }
243 128 STD { int linux_sys_rename(const char *from, const char *to); }
244 129 STD { int linux_sys_truncate(const char *path, long length); }
245 130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); }
246 131 NOARGS { int sys_flock(int fd, int how); }
247 132 NOARGS { int sys_setgid(gid_t gid); }
248 133 STD { int linux_sys_sendto(int s, void *msg, int len, \
249 int flags, struct sockaddr *to, int tolen); }
250 134 NOARGS { int sys_shutdown(int s, int how); }
251 135 STD { int linux_sys_socketpair(int domain, int type, \
252 int protocol, int *rsv); }
253 136 STD { int linux_sys_mkdir(const char *path, int mode); }
254 137 STD { int linux_sys_rmdir(const char *path); }
255 138 UNIMPL osf_utimes
256 139 UNIMPL
257 140 UNIMPL
258 141 NOARGS { int compat_43_sys_getpeername(int fdes, \
259 caddr_t asa, int *alen); }
260 142 UNIMPL
261 143 UNIMPL
262 144 NOARGS { int compat_43_sys_getrlimit(int which, \
263 struct orlimit *rlp); }
264 145 NOARGS { int compat_43_sys_setrlimit(int which, \
265 const struct orlimit *rlp); }
266 146 UNIMPL
267 147 NOARGS { int sys_setsid(void); }
268 148 UNIMPL quotactl
269 149 UNIMPL
270 150 NOARGS { int compat_43_sys_getsockname(int fdec, \
271 caddr_t asa, int *alen); }
272 151 UNIMPL
273 152 UNIMPL
274 153 UNIMPL
275 154 UNIMPL
276 155 UNIMPL
277 ;156 ALIAS osf_sigaction
278 156 STD { int linux_sys_sigaction(int signum, \
279 const struct linux_old_sigaction *nsa, \
280 struct linux_old_sigaction *osa); }
281 157 UNIMPL
282 158 UNIMPL
283 159 UNIMPL osf_getdirentries
284 160 UNIMPL osf_statfs
285 161 UNIMPL osf_fstatfs
286 162 UNIMPL
287 163 UNIMPL
288 164 UNIMPL
289 165 UNIMPL osf_getdomainname
290 166 UNIMPL setdomainname
291 167 UNIMPL
292 168 UNIMPL
293 169 UNIMPL
294 170 UNIMPL
295 171 UNIMPL
296 172 UNIMPL
297 173 UNIMPL
298 174 UNIMPL
299 175 UNIMPL
300 176 UNIMPL
301 177 UNIMPL
302 178 UNIMPL
303 179 UNIMPL
304 180 UNIMPL
305 181 UNIMPL
306 182 UNIMPL
307 183 UNIMPL
308 184 UNIMPL
309 185 UNIMPL
310 186 UNIMPL
311 187 UNIMPL
312 188 UNIMPL
313 189 UNIMPL
314 190 UNIMPL
315 191 UNIMPL
316 192 UNIMPL
317 193 UNIMPL
318 194 UNIMPL
319 195 UNIMPL
320 196 UNIMPL
321 197 UNIMPL
322 198 UNIMPL
323 199 UNIMPL osf_swapon
324 #ifdef SYSVMSG
325 200 NOARGS { int linux_sys_msgctl(int msqid, int cmd, \
326 struct linux_msqid_ds *buf); }
327 201 NOARGS { int sys_msgget(key_t key, int msgflg); }
328 202 NOARGS { ssize_t sys_msgrcv(int msqid, void *msgp, \
329 size_t msgsz, long msgtyp, int msgflg); }
330 203 NOARGS { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \
331 int msgflg); }
332 #else
333 200 UNIMPL msgctl
334 201 UNIMPL msgget
335 202 UNIMPL msgrcv
336 203 UNIMPL msgsnd
337 #endif
338 #ifdef SYSVSEM
339 204 NOARGS { int linux_sys_semctl(int semid, int semnum, \
340 int cmd, union linux_semun arg); }
341 205 NOARGS { int sys_semget(key_t key, int nsems, int semflg); }
342 206 NOARGS { int sys_semop(int semid, struct sembuf *sops, \
343 size_t nsops); }
344 #else
345 204 UNIMPL semctl
346 205 UNIMPL semget
347 206 UNIMPL semop
348 #endif
349 ;207 ALIAS osf_utsname
350 207 STD { int linux_sys_olduname(struct linux_old_utsname *up); }
351 208 STD { int linux_sys_lchown(char *path, int uid, int gid); }
352 #ifdef SYSVSHM
353 209 NOARGS { int linux_sys_shmat(int shmid, void *shmaddr, \
354 int shmflg, u_long *raddr); }
355 210 NOARGS { int linux_sys_shmctl(int shmid, int cmd, \
356 struct linux_shmid_ds *buf); }
357 211 NOARGS { int sys_shmdt(const void *shmaddr); }
358 212 NOARGS { int sys_shmget(key_t key, size_t size, int shmflg); }
359 #else
360 209 UNIMPL shmat
361 210 UNIMPL shmctl
362 211 UNIMPL shmdt
363 212 UNIMPL shmget
364 #endif
365 213 UNIMPL
366 214 UNIMPL
367 215 UNIMPL
368 216 UNIMPL
369 217 STD { int linux_sys_msync(caddr_t addr, int len, int fl); }
370 218 UNIMPL
371 219 UNIMPL
372 220 UNIMPL
373 221 UNIMPL
374 222 UNIMPL
375 223 UNIMPL
376 224 UNIMPL
377 225 UNIMPL
378 226 UNIMPL
379 227 UNIMPL
380 228 UNIMPL
381 229 UNIMPL
382 230 UNIMPL
383 231 UNIMPL
384 232 UNIMPL
385 233 STD { int linux_sys_getpgid(int pid); }
386 234 NOARGS { pid_t sys_getsid(pid_t pid); }
387 235 UNIMPL sigaltstack
388 236 UNIMPL
389 237 UNIMPL
390 238 UNIMPL
391 239 UNIMPL
392 240 UNIMPL
393 241 UNIMPL osf_sysinfo
394 242 UNIMPL
395 243 UNIMPL
396 244 UNIMPL osf_proplist_syscall
397 245 UNIMPL
398 246 UNIMPL
399 247 UNIMPL
400 248 UNIMPL
401 249 UNIMPL
402 250 UNIMPL
403 251 UNIMPL osf_usleep_thread
404 252 UNIMPL
405 253 UNIMPL
406 254 UNIMPL sysfs
407 255 UNIMPL
408 256 UNIMPL osf_getsysinfo
409 257 UNIMPL osf_setsysinfo
410 258 UNIMPL
411 259 UNIMPL
412 260 UNIMPL
413 ; This entry doesn't exist in the Alpha linux syscall table but the function is
414 ; implemented and used on other ports.
415 261 STD { int linux_sys_fdatasync(int fd); }
416 262 UNIMPL
417 263 UNIMPL
418 264 UNIMPL
419 265 UNIMPL
420 266 UNIMPL
421 267 UNIMPL
422 268 UNIMPL
423 269 UNIMPL
424 270 UNIMPL
425 271 UNIMPL
426 272 UNIMPL
427 273 UNIMPL
428 274 UNIMPL
429 275 UNIMPL
430 276 UNIMPL
431 277 UNIMPL
432 278 UNIMPL
433 279 UNIMPL
434 280 UNIMPL
435 281 UNIMPL
436 282 UNIMPL
437 283 UNIMPL
438 284 UNIMPL
439 285 UNIMPL
440 286 UNIMPL
441 287 UNIMPL
442 288 UNIMPL
443 289 UNIMPL
444 290 UNIMPL
445 291 UNIMPL
446 292 UNIMPL
447 293 UNIMPL
448 294 UNIMPL
449 295 UNIMPL
450 296 UNIMPL
451 297 UNIMPL
452 298 UNIMPL
453 299 UNIMPL
454 300 UNIMPL bdflush
455 301 UNIMPL sethae
456 302 UNIMPL mount
457 303 UNIMPL old_adjtimex
458 304 UNIMPL swapoff
459 305 STD { int linux_sys_getdents(int fd, \
460 struct linux_dirent *dent, unsigned int count); }
461 306 UNIMPL alpha_create_module
462 307 UNIMPL init_module
463 308 UNIMPL delete_module
464 309 UNIMPL get_kernel_syms
465 310 UNIMPL syslog
466 311 STD { int linux_sys_reboot(int magic1, int magic2, \
467 int cmd, void *arg); }
468 312 STD { int linux_sys_clone(int flags, void *stack); }
469 ; XXX XAX does alpha linux really have a.out exec?
470 #ifdef EXEC_AOUT
471 313 STD { int linux_sys_uselib(char *path); }
472 #else
473 313 UNIMPL sys_uselib
474 #endif
475 314 NOARGS { int sys_mlock(const void *addr, size_t len); }
476 315 NOARGS { int sys_munlock(const void *addr, size_t len); }
477 316 NOARGS { int sys_mlockall(int flags); }
478 317 NOARGS { int sys_munlockall(void); }
479 318 UNIMPL sysinfo
480 319 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); }
481 320 UNIMPL idle
482 321 UNIMPL oldumount
483 322 NOARGS { int compat_12_sys_swapon(const char *name); }
484 323 STD { int linux_sys_times(struct times *tms); }
485 324 STD { int linux_sys_personality(int per); }
486 325 STD { int linux_sys_setfsuid(uid_t uid); }
487 326 UNIMPL setfsgid
488 327 UNIMPL ustat
489 328 STD { int linux_sys_statfs(const char *path, \
490 struct linux_statfs *sp); }
491 329 STD { int linux_sys_fstatfs(int fd, \
492 struct linux_statfs *sp); }
493 330 STD { int linux_sys_sched_setparam(pid_t pid, \
494 const struct linux_sched_param *sp); }
495 331 STD { int linux_sys_sched_getparam(pid_t pid, \
496 struct linux_sched_param *sp); }
497 332 STD { int linux_sys_sched_setscheduler(pid_t pid, \
498 int policy, const struct linux_sched_param *sp); }
499 333 STD { int linux_sys_sched_getscheduler(pid_t pid); }
500 334 STD { int linux_sys_sched_yield(void); }
501 335 STD { int linux_sys_sched_get_priority_max(int policy); }
502 336 STD { int linux_sys_sched_get_priority_min(int policy); }
503 337 UNIMPL sched_rr_get_interval
504 338 UNIMPL afs_syscall
505 339 STD { int linux_sys_uname(struct linux_utsname *up); }
506 340 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \
507 struct timespec *rmtp); }
508 341 STD { void *linux_sys_mremap(void *old_address, \
509 size_t old_size, size_t new_size, u_long flags); }
510 342 UNIMPL nfsservctl
511 343 STD { int linux_sys_setresuid(uid_t ruid, uid_t euid, \
512 uid_t suid); }
513 344 STD { int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \
514 uid_t *suid); }
515 345 UNIMPL pciconfig_read
516 346 UNIMPL pciconfig_write
517 347 UNIMPL query_module
518 348 UNIMPL prctl
519 349 STD { int linux_sys_pread(int fd, char *buf, \
520 size_t nbyte, linux_off_t offset); }
521 350 STD { int linux_sys_pwrite(int fd, char *buf, \
522 size_t nbyte, linux_off_t offset); }
523 351 STD { int linux_sys_rt_sigreturn( \
524 struct linux_rt_sigframe *sfp); }
525 352 STD { int linux_sys_rt_sigaction(int signum, \
526 const struct linux_sigaction *nsa, \
527 struct linux_sigaction *osa, \
528 size_t sigsetsize); }
529 353 STD { int linux_sys_rt_sigprocmask(int how, \
530 const linux_sigset_t *set, \
531 linux_sigset_t *oset, \
532 size_t sigsetsize); }
533 354 STD { int linux_sys_rt_sigpending( \
534 linux_sigset_t *set, \
535 size_t sigsetsize); }
536 355 UNIMPL rt_sigtimedwait
537 ; XXX XAX int here? sigset_t here?
538 356 STD { int linux_sys_rt_queueinfo(int pid, int signum, \
539 linux_siginfo_t *uinfo); }
540 357 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \
541 size_t sigsetsize); }
542 358 STD { int linux_sys_select(int nfds, fd_set *readfds, \
543 fd_set *writefds, fd_set *exceptfds, \
544 struct timeval *timeout); }
545 359 NOARGS { int sys_gettimeofday(struct timeval *tp, \
546 struct timezone *tzp); }
547 360 NOARGS { int sys_settimeofday(const struct timeval *tp, \
548 const struct timezone *tzp); }
549 361 NOARGS { int sys_getitimer(int which, \
550 struct itimerval *itv); }
551 362 NOARGS { int sys_setitimer(int which, \
552 const struct itimerval *itv, \
553 struct itimerval *oitv); }
554 363 NOARGS { int sys_utimes(char *path, \
555 struct timeval *times); }
556 364 NOARGS { int sys_getrusage(int who, struct rusage *rusage); }
557 365 STD { int linux_sys_wait4(int pid, int *status, \
558 int options, struct rusage *rusage); }
559 366 UNIMPL adjtimex
560 367 NOARGS { int sys___getcwd(char *bufp, size_t length); }
561 368 UNIMPL capget
562 369 UNIMPL capset
563 370 UNIMPL sendfile
564