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