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