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