1 $NetBSD: syscalls.master,v 1.61 2007/12/24 14:17:17 njoly Exp $
3 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
5 ; NetBSD alpha COMPAT_LINUX system call name/number "master" file.
6 ; (See syscalls.conf to see what it is processed into.)
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.
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.
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).
27 ; The type-dependent arguments are as follows:
28 ; For STD, NODEF, NOARGS, and compat syscalls:
29 ; { pseudo-proto } [alias]
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.
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 ; make linux_sys_sigreturn in linux_machdep.c use frame.extramask
46 ; NOT USED = This syscall is not really used in Linux, except in its
47 ; osf compat mode. Since Linux binaries shouldn't ever
48 ; call it and osf binaries run under a different emulation,
49 ; it shouldn't matter that the linux version of the
50 ; function might not DTRT. Define it anyway so we
51 ; don't have to split off or ifdef the associated function.
52 ; A bit better might be to have makesyscalls identify this
53 ; as "define but don't include in table" so it doesn't actually
55 ; UNIMPL <blank> = not implemented here nor in linux source
56 ; UNIMPL osf_* = osf functions implemented in linux, not here.
59 #if defined(_KERNEL_OPT)
61 #include "opt_compat_43.h"
62 #include "opt_compat_osf1.h"
65 #include <sys/param.h>
67 #include <sys/systm.h>
68 #include <sys/signal.h>
69 #include <sys/mount.h>
70 #include <sys/syscallargs.h>
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>
82 #include <compat/linux/linux_syscallargs.h>
86 0 NOARGS { int linux_sys_nosys(void); } syscall
87 1 NOARGS { int sys_exit(int rval); }
88 2 NOARGS { int sys_fork(void); }
89 3 NOARGS { int sys_read(int fd, void *buf, size_t nbyte); }
90 4 NOARGS { int sys_write(int fd, const void *buf, size_t nbyte); }
92 6 NOARGS { int sys_close(int fd); }
93 7 NODEF { int osf1_sys_wait4(int pid, int *status, \
94 int options, struct osf1_rusage *rusage); }
95 ;8 ALIAS osf1_sys_old_creat, NOT USED
96 8 STD { int linux_sys_creat(const char *path, mode_t mode); }
97 9 NOARGS { int sys_link(const char *path, const char *link); }
98 10 STD { int linux_sys_unlink(const char *path); }
100 12 NOARGS { int sys_chdir(const char *path); }
101 13 NOARGS { int sys_fchdir(int fd); }
102 14 STD { int linux_sys_mknod(const char *path, int mode, int dev); }
103 15 NOARGS { int sys_chmod(const char *path, int mode); }
104 16 NOARGS { int sys___posix_chown(const char *path, int uid, int gid); }
105 ;17 ALIAS osf1_sys_brk
106 17 STD { int linux_sys_brk(char *nsize); }
108 19 NOARGS { long compat_43_sys_lseek(int fd, long offset, \
110 20 NOARGS { pid_t sys_getpid_with_ppid(void); }
111 21 NODEF { int osf1_sys_mount(int type, const char *path, \
112 int flags, void *data); }
114 23 NOARGS { int sys_setuid(uid_t uid); }
115 24 NOARGS { uid_t sys_getuid_with_euid(void); }
117 26 STD { int linux_sys_ptrace(long request, long pid, \
118 long addr, long data); }
125 33 NOARGS { int sys_access(const char *path, int flags); }
128 36 NOARGS { int sys_sync(void); }
129 37 STD { int linux_sys_kill(int pid, int signum); }
131 39 NOARGS { int sys_setpgid(int pid, int pgid); }
133 41 NOARGS { int sys_dup(int fd); }
134 42 NOARGS { int linux_sys_pipe(void); }
135 43 NODEF { int osf1_sys_set_program_attributes( \
136 void *taddr, unsigned long tsize, \
137 void *daddr, unsigned long dsize); }
139 45 STD { int linux_sys_open(const char *path, int flags, int mode); }
141 47 NOARGS { gid_t sys_getgid_with_egid(void); }
142 ; ALIAS osf1_sys_sigprocmask(int how, unsigned long mask);
143 ; XXX <- copied from osf1/syscalls.master
144 48 NOARGS { int compat_13_sys_sigprocmask(int how, \
148 51 NOARGS { int sys_acct(const char *path); }
149 52 STD { int linux_sys_sigpending(linux_old_sigset_t *set); }
151 54 STD { int linux_sys_ioctl(int fd, u_long com, \
155 57 NOARGS { int sys_symlink(const char *path, const char *to); }
156 58 NOARGS { int sys_readlink(const char *name, char *buf, \
158 59 NOARGS { int sys_execve(const char *path, char **argp, \
160 60 NOARGS { mode_t sys_umask(mode_t newmask); }
161 61 NOARGS { int sys_chroot(const char *path); }
163 63 NOARGS { int sys_getpgrp(void); }
164 64 NOARGS { int compat_43_sys_getpagesize(void); }
166 66 NOARGS { int sys___vfork14(void); }
167 67 STD { int linux_sys_stat(const char *path, \
168 struct linux_stat *sp); }
169 68 STD { int linux_sys_lstat(const char *path, \
170 struct linux_stat *sp); }
173 ;71 ALIAS osf1_sys_mmap
174 71 NOARGS { int linux_sys_mmap(unsigned long addr, size_t len, \
175 int prot, int flags, int fd, linux_off_t offset); }
177 73 NOARGS { int sys_munmap(void *addr, size_t len); }
178 74 STD { int linux_sys_mprotect(const void *start, \
179 unsigned long len, int prot); }
180 75 NOARGS { int sys_madvise(void *addr, size_t len, int behav); }
184 79 NOARGS { int sys_getgroups(int gidsetsize, gid_t *gidset); }
185 80 NOARGS { int sys_setgroups(int gidsetsize, const gid_t *gidset); }
188 83 NODEF { int osf1_sys_setitimer(u_int which, \
189 struct osf1_itimerval *itv, \
190 struct osf1_itimerval *oitv); }
193 86 UNIMPL osf1_sys_getitimer
194 87 NOARGS { int compat_43_sys_gethostname(char *hostname, \
196 88 NOARGS { int compat_43_sys_sethostname(char *hostname, \
198 89 UNIMPL getdtablesize
199 90 NOARGS { int sys_dup2(int from, int to); }
200 91 STD { int linux_sys_fstat(int fd, struct linux_stat *sp); }
201 92 STD { int linux_sys_fcntl(int fd, int cmd, void *arg); }
202 93 NODEF { int osf1_sys_select(u_int nd, fd_set *in, \
203 fd_set *ou, fd_set *ex, struct osf1_timeval *tv); }
204 94 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \
206 95 NOARGS { int sys_fsync(int fd); }
207 96 NOARGS { int sys_setpriority(int which, int who, int prio); }
208 97 STD { int linux_sys_socket(int domain, int type, \
210 98 STD { int linux_sys_connect(int s, \
211 const struct osockaddr *name, \
212 unsigned int namelen); }
213 99 STD { int linux_sys_accept(int s, \
214 struct osockaddr *name, int *anamelen); }
215 ;100 ALIAS osf1_sys_getpriority
216 100 STD { int linux_sys_getpriority(int which, int who); }
217 101 STD { int linux_sys_send(int s, void *buf, int len, \
219 102 STD { int linux_sys_recv(int s, void *buf, int len, \
221 103 STD { int linux_sys_sigreturn(struct linux_sigframe *sfp); }
222 104 STD { int linux_sys_bind(int s, \
223 const struct osockaddr *name, \
224 unsigned int namelen); }
225 105 STD { int linux_sys_setsockopt(int s, int level, \
226 int optname, void *optval, int optlen); }
227 106 NOARGS { int sys_listen(int s, int backlog); }
233 111 STD { int linux_sys_sigsuspend(void *restart, \
234 int oldmask, int mask); }
235 ;112 ALIAS osf1_sys_sigstack
236 112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \
237 struct sigstack *oss); }
238 113 STD { size_t linux_sys_recvmsg(int s, struct msghdr *msg, \
240 114 STD { ssize_t linux_sys_sendmsg(int s, \
241 const struct msghdr *msg, int flags); }
243 116 NODEF { int osf1_sys_gettimeofday(struct osf1_timeval *tv, \
244 struct osf1_timezone *tzp); }
245 117 NODEF { int osf1_sys_getrusage(int who, \
246 struct osf1_rusage *rusage); }
247 118 STD { int linux_sys_getsockopt(int s, int level, \
248 int optname, void *optval, int *optlen); }
250 120 NOARGS { ssize_t sys_readv(int fd, const struct iovec *iovp, \
252 121 NOARGS { ssize_t sys_writev(int fd, const struct iovec *iovp, \
254 122 NODEF { int osf1_sys_settimeofday(struct osf1_timeval *tv, \
255 struct osf1_timezone *tzp); }
256 123 NOARGS { int sys___posix_fchown(int fd, int uid, int gid); }
257 124 NOARGS { int sys_fchmod(int fd, mode_t mode); }
258 125 STD { int linux_sys_recvfrom(int s, void *buf, int len, \
259 int flags, struct osockaddr *from, \
261 126 NOARGS { int sys_setreuid(uid_t ruid, uid_t euid); }
262 127 NOARGS { int sys_setregid(gid_t rgid, gid_t egid); }
263 128 NOARGS { int sys___posix_rename(const char *from, const char *to); }
264 129 NOARGS { int compat_43_sys_truncate(const char *path, \
266 130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); }
267 131 NOARGS { int sys_flock(int fd, int how); }
268 132 NOARGS { int sys_setgid(gid_t gid); }
269 133 STD { int linux_sys_sendto(int s, void *msg, int len, \
270 int flags, struct osockaddr *to, int tolen); }
271 134 NOARGS { int sys_shutdown(int s, int how); }
272 135 STD { int linux_sys_socketpair(int domain, int type, \
273 int protocol, int *rsv); }
274 136 NOARGS { int sys_mkdir(const char *path, int mode); }
275 137 NOARGS { int sys_rmdir(const char *path); }
276 138 NODEF { int osf1_sys_utimes(const char *path, \
277 const struct osf1_timeval *tptr); }
280 141 STD { int linux_sys_getpeername(int fdes, \
281 void *asa, int *alen); }
284 144 STD { int linux_sys_getrlimit(int which, \
285 struct orlimit *rlp); }
286 145 STD { int linux_sys_setrlimit(int which, \
287 const struct orlimit *rlp); }
289 147 NOARGS { int sys_setsid(void); }
292 150 STD { int linux_sys_getsockname(int fdec, \
293 void *asa, int *alen); }
299 ;156 ALIAS osf1_sys_sigaction
300 156 STD { int linux_sys_sigaction(int signum, \
301 const struct linux_old_sigaction *nsa, \
302 struct linux_old_sigaction *osa); }
305 ;159 ALIAS osf1_sys_getdirentries
306 159 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \
307 u_int count, long *basep); }
308 160 NODEF { int osf1_sys_statfs(const char *path, \
309 struct osf1_statfs *buf, int len); }
310 161 NODEF { int osf1_sys_fstatfs(int fd, \
311 struct osf1_statfs *buf, int len); }
315 ;165 ALIAS osf1_sys_getdomainname
316 165 NOARGS { int compat_09_sys_getdomainname(char *domainname, \
318 166 STD { int linux_sys_setdomainname(char *domainname, \
345 191 STD { int linux_sys_ugetrlimit(int which, \
346 struct rlimit *rlp); }
354 199 UNIMPL osf1_sys_swapon
356 200 NOARGS { int linux_sys_msgctl(int msqid, int cmd, \
357 struct linux_msqid_ds *buf); }
358 201 NOARGS { int sys_msgget(key_t key, int msgflg); }
359 202 NOARGS { ssize_t sys_msgrcv(int msqid, void *msgp, \
360 size_t msgsz, long msgtyp, int msgflg); }
361 203 NOARGS { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \
370 204 NOARGS { int linux_sys_semctl(int semid, int semnum, \
371 int cmd, union linux_semun arg); }
372 205 NOARGS { int sys_semget(key_t key, int nsems, int semflg); }
373 206 NOARGS { int sys_semop(int semid, struct sembuf *sops, \
380 ;207 ALIAS osf1_sys_utsname
381 207 STD { int linux_sys_olduname(struct linux_old_utsname *up); }
382 208 NOARGS { int sys___posix_lchown(const char *path, int uid, int gid); }
384 209 NOARGS { int linux_sys_shmat(int shmid, void *shmaddr, \
385 int shmflg, u_long *raddr); }
386 210 NOARGS { int linux_sys_shmctl(int shmid, int cmd, \
387 struct linux_shmid_ds *buf); }
388 211 NOARGS { int sys_shmdt(const void *shmaddr); }
389 212 NOARGS { int linux_sys_shmget(key_t key, size_t size, int shmflg); }
400 217 NOARGS { int sys___msync13(void *addr, size_t len, int flags); }
416 233 NOARGS { pid_t sys_getpgid(pid_t pid); }
417 234 NOARGS { pid_t sys_getsid(pid_t pid); }
418 235 UNIMPL sigaltstack
424 241 NODEF { int osf1_sys_sysinfo(int cmd, char buf, long len); }
427 244 UNIMPL osf1_sys_proplist_syscall
434 251 NODEF { int osf1_sys_usleep_thread( \
435 struct osf1_timeval *sleep, \
436 struct osf1_timeval *slept); }
441 256 NODEF { int osf1_sys_getsysinfo(u_long op, void *buffer, \
442 u_long nbytes, void *arg, u_long flag); }
443 257 NODEF { int osf1_sys_setsysinfo(u_long op, void *buffer, \
444 u_long nbytes, void *arg, u_long flag); }
448 ; This entry doesn't exist in the Alpha linux syscall table but the function is
449 ; implemented and used on other ports.
450 261 STD { int linux_sys_fdatasync(int fd); }
492 303 UNIMPL old_adjtimex
493 304 STD { int linux_sys_swapoff(const char *path); }
494 305 STD { int linux_sys_getdents(int fd, \
495 struct linux_dirent *dent, unsigned int count); }
496 306 UNIMPL alpha_create_module
497 307 UNIMPL init_module
498 308 UNIMPL delete_module
499 309 UNIMPL get_kernel_syms
501 311 STD { int linux_sys_reboot(int magic1, int magic2, \
502 int cmd, void *arg); }
503 312 STD { int linux_sys_clone(int flags, void *stack); }
505 313 STD { int linux_sys_uselib(const char *path); }
507 313 UNIMPL sys_uselib
509 314 NOARGS { int sys_mlock(const void *addr, size_t len); }
510 315 NOARGS { int sys_munlock(const void *addr, size_t len); }
511 316 NOARGS { int sys_mlockall(int flags); }
512 317 NOARGS { int sys_munlockall(void); }
513 318 STD { int linux_sys_sysinfo(struct linux_sysinfo *arg); }
514 319 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); }
517 322 STD { int linux_sys_swapon(const char *name); }
518 323 STD { int linux_sys_times(struct times *tms); }
519 324 STD { int linux_sys_personality(int per); }
520 325 STD { int linux_sys_setfsuid(uid_t uid); }
521 326 STD { int linux_sys_setfsgid(gid_t gid); }
523 328 STD { int linux_sys_statfs(const char *path, \
524 struct linux_statfs *sp); }
525 329 STD { int linux_sys_fstatfs(int fd, \
526 struct linux_statfs *sp); }
527 330 STD { int linux_sys_sched_setparam(pid_t pid, \
528 const struct linux_sched_param *sp); }
529 331 STD { int linux_sys_sched_getparam(pid_t pid, \
530 struct linux_sched_param *sp); }
531 332 STD { int linux_sys_sched_setscheduler(pid_t pid, \
532 int policy, const struct linux_sched_param *sp); }
533 333 STD { int linux_sys_sched_getscheduler(pid_t pid); }
534 334 STD { int linux_sys_sched_yield(void); }
535 335 STD { int linux_sys_sched_get_priority_max(int policy); }
536 336 STD { int linux_sys_sched_get_priority_min(int policy); }
537 337 UNIMPL sched_rr_get_interval
538 338 UNIMPL afs_syscall
539 339 STD { int linux_sys_uname(struct linux_utsname *up); }
540 340 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \
541 struct timespec *rmtp); }
542 341 STD { void *linux_sys_mremap(void *old_address, \
543 size_t old_size, size_t new_size, u_long flags); }
544 342 UNIMPL nfsservctl
545 343 STD { int linux_sys_setresuid(uid_t ruid, uid_t euid, \
547 344 STD { int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \
549 345 UNIMPL pciconfig_read
550 346 UNIMPL pciconfig_write
551 347 UNIMPL query_module
553 349 STD { int linux_sys_pread(int fd, char *buf, \
554 size_t nbyte, linux_off_t offset); }
555 350 STD { int linux_sys_pwrite(int fd, char *buf, \
556 size_t nbyte, linux_off_t offset); }
557 351 STD { int linux_sys_rt_sigreturn( \
558 struct linux_rt_sigframe *sfp); }
559 352 STD { int linux_sys_rt_sigaction(int signum, \
560 const struct linux_sigaction *nsa, \
561 struct linux_sigaction *osa, \
562 size_t sigsetsize); }
563 353 STD { int linux_sys_rt_sigprocmask(int how, \
564 const linux_sigset_t *set, \
565 linux_sigset_t *oset, \
566 size_t sigsetsize); }
567 354 STD { int linux_sys_rt_sigpending( \
568 linux_sigset_t *set, \
569 size_t sigsetsize); }
570 355 UNIMPL rt_sigtimedwait
571 ; XXX XAX int here? sigset_t here?
572 356 STD { int linux_sys_rt_queueinfo(int pid, int signum, \
573 linux_siginfo_t *uinfo); }
574 357 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \
575 size_t sigsetsize); }
576 358 STD { int linux_sys_select(int nfds, fd_set *readfds, \
577 fd_set *writefds, fd_set *exceptfds, \
578 struct timeval *timeout); }
579 359 NOARGS { int sys_gettimeofday(struct timeval *tp, \
580 struct timezone *tzp); }
581 360 NOARGS { int sys_settimeofday(const struct timeval *tp, \
582 const struct timezone *tzp); }
583 361 NOARGS { int sys_getitimer(int which, \
584 struct itimerval *itv); }
585 362 NOARGS { int sys_setitimer(int which, \
586 const struct itimerval *itv, \
587 struct itimerval *oitv); }
588 363 NOARGS { int sys_utimes(char *path, \
589 struct timeval *times); }
590 364 NOARGS { int sys_getrusage(int who, struct rusage *rusage); }
591 365 STD { int linux_sys_wait4(int pid, int *status, \
592 int options, struct rusage *rusage); }
594 367 NOARGS { int sys___getcwd(char *bufp, size_t length); }
601 374 UNIMPL pivot_root
602 375 NOARGS { int sys_mincore(void *addr, size_t len, char *vec); }
603 376 UNIMPL pciconfig_iobase
604 377 STD { int linux_sys_getdents64(int fd, \
605 struct linux_dirent64 *dent, unsigned int count); }
608 380 UNIMPL /* unused */
610 382 STD { int linux_sys_setxattr(char *path, char *name, \
611 void *value, size_t size, int flags); }
612 383 STD { int linux_sys_lsetxattr(char *path, char *name, \
613 void *value, size_t size, int flags); }
614 384 STD { int linux_sys_fsetxattr(int fd, char *name, \
615 void *value, size_t size, int flags); }
616 385 STD { ssize_t linux_sys_getxattr(char *path, char *name, \
617 void *value, size_t size); }
618 386 STD { ssize_t linux_sys_lgetxattr(char *path, char *name, \
619 void *value, size_t size); }
620 387 STD { ssize_t linux_sys_fgetxattr(int fd, char *name, \
621 void *value, size_t size); }
622 388 STD { ssize_t linux_sys_listxattr(char *path, char *list, \
624 389 STD { ssize_t linux_sys_llistxattr(char *path, char *list, \
626 390 STD { ssize_t linux_sys_flistxattr(int fd, char *list, \
628 391 STD { int linux_sys_removexattr(char *path, char *name); }
629 392 STD { int linux_sys_lremovexattr(char *path, char *name); }
630 393 STD { int linux_sys_fremovexattr(int fd, char *name); }
632 395 UNIMPL sched_setaffinity
633 396 UNIMPL sched_getaffinity
636 399 UNIMPL io_destroy
637 400 UNIMPL io_getevents
640 403 UNIMPL /* unused */
641 404 UNIMPL /* unused */
642 405 STD { int linux_sys_exit_group(int error_code); }
643 406 UNIMPL lookup_dcookie
644 407 UNIMPL sys_epoll_create
645 408 UNIMPL sys_epoll_ctl
646 409 UNIMPL sys_epoll_wait
647 410 UNIMPL remap_file_pages
648 411 UNIMPL set_tid_address
649 412 UNIMPL restart_syscall
651 414 UNIMPL timer_create
652 415 UNIMPL timer_settime
653 416 UNIMPL timer_gettime
654 417 UNIMPL timer_getoverrun
655 418 UNIMPL timer_delete
656 419 STD { int linux_sys_clock_settime(clockid_t which, \
657 struct linux_timespec *tp); }
658 420 STD { int linux_sys_clock_gettime(clockid_t which, \
659 struct linux_timespec *tp); }
660 421 STD { int linux_sys_clock_getres(clockid_t which, \
661 struct linux_timespec *tp); }
662 422 STD { int linux_sys_clock_nanosleep(clockid_t which, \
663 int flags, struct linux_timespec *rqtp, \
664 struct linux_timespec *rmtp); }
665 423 UNIMPL semtimedop
672 430 UNIMPL get_mempolicy
673 431 UNIMPL set_mempolicy
676 434 UNIMPL mq_timedsend
677 435 UNIMPL mq_timedreceive
679 437 UNIMPL mq_getsetattr