1 $NetBSD: syscalls.master,v 1.19 2007/11/16 12:51:54 njoly Exp $ 2 3; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 4 5; NetBSD amd64 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#if defined(_KERNEL_OPT) 37#include "opt_sysv.h" 38#include "opt_compat_43.h" 39#endif 40 41#include <sys/param.h> 42#include <sys/poll.h> 43#include <sys/systm.h> 44#include <sys/signal.h> 45#include <sys/mount.h> 46#include <sys/syscallargs.h> 47 48#include <compat/linux/common/linux_types.h> 49#include <compat/linux/common/linux_mmap.h> 50#include <compat/linux/common/linux_ipc.h> 51#include <compat/linux/common/linux_sem.h> 52#include <compat/linux/common/linux_signal.h> 53#include <compat/linux/common/linux_siginfo.h> 54#include <compat/linux/common/linux_machdep.h> 55 56#include <compat/linux/linux_syscallargs.h> 57 58%% 59 600 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 611 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 622 STD { int linux_sys_open(const char *path, int flags, \ 63 int mode); } 643 NOARGS { int sys_close(int fd); } 654 STD { int linux_sys_stat64(const char *path, \ 66 struct linux_stat *sp); } 675 STD { int linux_sys_fstat64(int fd, \ 68 struct linux_stat *sp); } 696 STD { int linux_sys_lstat64(const char *path, \ 70 struct linux_stat *sp); } 717 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \ 72 int timeout); } 738 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 74 int whence); } 759 NOARGS { linux_off_t linux_sys_mmap(unsigned long addr, \ 76 size_t len, int prot, int flags, int fd, \ 77 linux_off_t offset); } 7810 STD { int linux_sys_mprotect(const void *start, \ 79 unsigned long len, int prot); } 8011 NOARGS { int sys_munmap(void *addr, int len); } 8112 STD { int linux_sys_brk(char *nsize); } 8213 STD { int linux_sys_rt_sigaction(int signum, \ 83 const struct linux_sigaction *nsa, \ 84 struct linux_sigaction *osa, \ 85 size_t sigsetsize); } 8614 STD { int linux_sys_rt_sigprocmask(int how, \ 87 const linux_sigset_t *set, \ 88 linux_sigset_t *oset, \ 89 size_t sigsetsize); } 9015 NOARGS { int linux_sys_rt_sigreturn(void); } 9116 STD { int linux_sys_ioctl(int fd, u_long com, \ 92 void *data); } 9317 STD { int linux_sys_pread(int fd, char *buf, \ 94 size_t nbyte, linux_off_t offset); } 9518 STD { int linux_sys_pwrite(int fd, char *buf, \ 96 size_t nbyte, linux_off_t offset); } 9719 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 98 u_int iovcnt); } 9920 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 100 u_int iovcnt); } 10121 NOARGS { int sys_access(const char *path, int flags); } 10222 STD { int linux_sys_pipe(int *pfds); } 10323 STD { int linux_sys_select(int nfds, fd_set *readfds, \ 104 fd_set *writefds, fd_set *exceptfds, \ 105 struct timeval *timeout); } 10624 STD { int linux_sys_sched_yield(void); } 10725 STD { void *linux_sys_mremap(void *old_address, \ 108 size_t old_size, size_t new_size, u_long flags); } 10926 STD { int linux_sys_msync(void *addr, int len, int fl); } 11027 NOARGS { int sys_mincore(void *addr, size_t len, char *vec); } 11128 NOARGS { int sys_madvise(void *addr, size_t len, int behav); } 112#ifdef SYSVSHM 11329 STD { int linux_sys_shmget(key_t key, size_t size, \ 114 int shmflg); } 11530 NOARGS { int sys_shmat(int shmid, void *shmaddr, int shmflg); } 11631 STD { int linux_sys_shmctl(int shmid, int cmd, \ 117 struct linux_shmid_ds *buf); } 118#else 11929 UNIMPL shmget 12030 UNIMPL shmat 12131 UNIMPL shmctl 122#endif 12332 NOARGS { int sys_dup(u_int fd); } 12433 NOARGS { int sys_dup2(u_int from, u_int to); } 12534 STD { int linux_sys_pause(void); } 12635 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \ 127 struct timespec *rmtp); } 12836 NOARGS { int sys_getitimer(u_int which, \ 129 struct itimerval *itv); } 13037 STD { int linux_sys_alarm(unsigned int secs); } 13138 NOARGS { int sys_setitimer(u_int which, \ 132 struct itimerval *itv, struct itimerval *oitv); } 13339 STD { pid_t linux_sys_getpid(void); } 13440 UNIMPL sendfile 13541 STD { int linux_sys_socket(int domain, \ 136 int type, int protocol); } 13742 STD { int linux_sys_connect(int s, \ 138 const struct osockaddr *name, \ 139 unsigned int namelen); } 14043 STD { int linux_sys_accept(int s, struct osockaddr *name, \ 141 int *anamelen); } oaccept 14244 STD { ssize_t linux_sys_sendto(int s, void *msg, int len, \ 143 int flags, struct osockaddr *to, int tolen); } 14445 STD { ssize_t linux_sys_recvfrom(int s, void *buf, \ 145 size_t len, int flags, struct osockaddr *from, \ 146 unsigned int *fromlenaddr); } 14746 STD { int linux_sys_sendmsg(int s, \ 148 const struct msghdr *msg, int flags); } 14947 STD { ssize_t linux_sys_recvmsg(int s, \ 150 struct msghdr *msg, int flags); } 15148 NOARGS { int sys_shutdown(int s, int how); } 15249 STD { int linux_sys_bind(int s, \ 153 const struct osockaddr *name, \ 154 unsigned int namelen); } 15550 NOARGS { int sys_listen(int s, int backlog); } 15651 STD { int linux_sys_getsockname(int fdec, void *asa, \ 157 int *alen); } 15852 STD { int linux_sys_getpeername(int fdes, \ 159 struct sockaddr *asa, unsigned int *alen); } 16053 STD { int linux_sys_socketpair(int domain, int type, \ 161 int protocol, int *rsv); } 16254 STD { int linux_sys_setsockopt(int s, int level, \ 163 int optname, void *optval, int optlen); } 16455 STD { int linux_sys_getsockopt(int s, int level, \ 165 int optname, void *optval, int *optlen); } 16656 STD { int linux_sys_clone(int flags, void *stack, \ 167 void *parent_tidptr, void *child_tidptr); } 16857 NOARGS { int sys_fork(void); } 16958 NOARGS { int sys___vfork14(void); } 17059 NOARGS { int sys_execve(const char *path, char **argp, \ 171 char **envp); } 17260 NOARGS { int sys_exit(int rval); } 17361 STD { int linux_sys_wait4(int pid, int *status, \ 174 int options, struct rusage *rusage); } 17562 STD { int linux_sys_kill(int pid, int signum); } 17663 STD { int linux_sys_uname(struct linux_utsname *up); } 177#ifdef SYSVSEM 17864 NOARGS { int sys_semget(key_t key, int nsems, int semflg); } 17965 NOARGS { int sys_semop(int semid, struct sembuf *sops, \ 180 size_t nsops); } 18166 STD { int linux_sys_semctl(int semid, int semnum, \ 182 int cmd, union linux_semun arg); } 183#else 18464 UNIMPL semget 18565 UNIMPL semop 18666 UNIMPL semctl 187#endif 188#ifdef SYSVSHM 18967 NOARGS { int sys_shmdt(const void *shmaddr); } 190#else 19167 UNIMPL shmdt 192#endif 193#ifdef SYSVMSG 19468 NOARGS { int sys_msgget(key_t key, int msgflg); } 19569 NOARGS { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \ 196 int msgflg); } 19770 NOARGS { ssize_t sys_msgrcv(int msqid, void *msgp, \ 198 size_t msgsz, long msgtyp, int msgflg); } 19971 STD { int linux_sys_msgctl(int msqid, int cmd, \ 200 struct linux_msqid_ds *buf); } 201#else 20268 UNIMPL msgget 20369 UNIMPL msgsnd 20470 UNIMPL msgrcv 20571 UNIMPL msgctl 206#endif 20772 STD { int linux_sys_fcntl(int fd, int cmd, void *arg); } 20873 NOARGS { int sys_flock(int fd, int how); } 20974 NOARGS { int sys_fsync(int fd); } 21075 STD { int linux_sys_fdatasync(int fd); } 21176 STD { int linux_sys_truncate64(const char *path, \ 212 off_t length); } 21377 STD { int linux_sys_ftruncate64(unsigned int fd, \ 214 off_t length); } 21578 STD { int linux_sys_getdents(int fd, \ 216 struct linux_dirent *dent, unsigned int count); } 21779 NOARGS { int sys___getcwd(char *bufp, size_t length); } 21880 NOARGS { int sys_chdir(const char *path); } 21981 NOARGS { int sys_fchdir(int fd); } 22082 NOARGS { int sys___posix_rename(const char *from, \ 221 const char *to); } 22283 NOARGS { int sys_mkdir(const char *path, int mode); } 22384 NOARGS { int sys_rmdir(const char *path); } 22485 STD { int linux_sys_creat(const char *path, int mode); } 22586 NOARGS { int sys_link(const char *path, const char *link); } 22687 STD { int linux_sys_unlink(const char *path); } 22788 NOARGS { int sys_symlink(const char *path, const char *to); } 22889 NOARGS { int sys_readlink(const char *name, char *buf, \ 229 int count); } 23090 NOARGS { int sys_chmod(const char *path, int mode); } 23191 NOARGS { int sys_fchmod(int fd, int mode); } 23292 NOARGS { int sys___posix_chown(const char *path, uid_t uid, \ 233 gid_t gid); } 23493 NOARGS { int sys___posix_fchown(int fd, uid_t uid, \ 235 gid_t gid); } 23694 NOARGS { int sys___posix_lchown(const char *path, uid_t uid, \ 237 gid_t gid); } 23895 NOARGS { int sys_umask(int newmask); } 23996 STD { int linux_sys_gettimeofday(struct timeval *tp, \ 240 struct timezone *tzp); } 24197 STD { int linux_sys_getrlimit(int which, \ 242 struct rlimit *rlp); } 24398 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 24499 STD { int linux_sys_sysinfo(struct linux_sysinfo *arg); } 245100 STD { int linux_sys_times(struct times *tms); } 246101 STD { int linux_sys_ptrace(long request, long pid, \ 247 long addr, long data); } 248102 NOARGS { uid_t sys_getuid(void); } 249103 UNIMPL syslog 250104 NOARGS { gid_t sys_getgid(void); } 251105 NOARGS { void sys_setuid(uid_t uid); } 252106 NOARGS { void sys_setgid(gid_t gid); } 253107 NOARGS { uid_t sys_geteuid(void); } 254108 NOARGS { gid_t sys_getegid(void); } 255109 NOARGS { int sys_setpgid(int pid, int pgid); } 256110 STD { pid_t linux_sys_getppid(void); } 257111 NOARGS { int sys_getpgrp(void); } 258112 NOARGS { int sys_setsid(void); } 259113 NOARGS { int sys_setreuid(uid_t ruid, uid_t euid); } 260114 NOARGS { int sys_setregid(gid_t rgid, gid_t egid); } 261115 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 262116 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 263117 STD { int linux_sys_setresuid(uid_t ruid, uid_t euid, \ 264 uid_t suid); } 265118 STD { int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \ 266 uid_t *suid); } 267119 STD { int linux_sys_setresgid(gid_t rgid, gid_t egid, \ 268 gid_t sgid); } 269120 STD { int linux_sys_getresgid(gid_t *rgid, gid_t *egid, \ 270 gid_t *sgid); } 271121 STD { int linux_sys_getpgid(int pid); } 272122 STD { int linux_sys_setfsuid(uid_t uid); } 273123 STD { int linux_sys_getfsuid(void); } 274124 NOARGS { pid_t sys_getsid(pid_t pid); } 275125 UNIMPL capget 276126 UNIMPL capset 277127 STD { int linux_sys_rt_sigpending( \ 278 linux_sigset_t *set, \ 279 size_t sigsetsize); } 280128 UNIMPL rt_sigtimedwait 281129 STD { int linux_sys_rt_queueinfo(int pid, int signum, \ 282 siginfo_t *uinfo); } 283130 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \ 284 size_t sigsetsize); } 285131 STD { int linux_sys_sigaltstack( \ 286 const struct linux_sigaltstack *ss, \ 287 struct linux_sigaltstack *oss); } 288132 STD { int linux_sys_utime(const char *path, \ 289 struct linux_utimbuf *times); } 290133 STD { int linux_sys_mknod(const char *path, int mode, \ 291 int dev); } 292#ifdef EXEC_AOUT 293134 STD { int linux_sys_uselib(const char *path); } 294#else 295134 UNIMPL sys_uselib 296#endif 297135 STD { int linux_sys_personality(int per); } 298136 UNIMPL ustat 299137 STD { int linux_sys_statfs(const char *path, \ 300 struct linux_statfs *sp); } 301138 STD { int linux_sys_fstatfs(int fd, \ 302 struct linux_statfs *sp); } 303139 UNIMPL sysfs 304140 STD { int linux_sys_getpriority(int which, int who); } 305141 NOARGS { int sys_setpriority(int which, int who, int prio); } 306142 STD { int linux_sys_sched_setparam(pid_t pid, \ 307 const struct linux_sched_param *sp); } 308143 STD { int linux_sys_sched_getparam(pid_t pid, \ 309 struct linux_sched_param *sp); } 310144 STD { int linux_sys_sched_setscheduler(pid_t pid, \ 311 int policy, const struct linux_sched_param *sp); } 312145 STD { int linux_sys_sched_getscheduler(pid_t pid); } 313146 STD { int linux_sys_sched_get_priority_max(int policy); } 314147 STD { int linux_sys_sched_get_priority_min(int policy); } 315148 UNIMPL sys_sched_rr_get_interval 316149 NOARGS { int sys_mlock(void *addr, size_t len); } 317150 NOARGS { int sys_munlock(void *addr, size_t len); } 318151 NOARGS { int sys_mlockall(int flags); } 319152 NOARGS { int sys_munlockall(void); } 320153 UNIMPL vhangup 321154 STD { int linux_sys_modify_ldt(int func, void *ptr, \ 322 size_t bytecount); } 323155 UNIMPL pivot_root 324156 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); } 325157 UNIMPL prctl 326158 STD { int linux_sys_arch_prctl(int code, \ 327 unsigned long addr); } 328159 UNIMPL adjtimex 329160 STD { int linux_sys_setrlimit(u_int which, \ 330 struct rlimit *rlp); } 331161 NOARGS { int sys_chroot(char *path); } 332162 NOARGS { int sys_sync(void); } 333163 NOARGS { int sys_acct(char *path); } 334164 STD { int linux_sys_settimeofday(struct timeval *tp, \ 335 struct timezone *tzp); } 336165 UNIMPL mount 337166 UNIMPL umount2 338167 STD { int linux_sys_swapon(char *name); } 339168 STD { int linux_sys_swapoff(const char *path); } 340169 STD { int linux_sys_reboot(int magic1, int magic2, \ 341 int cmd, void *arg); } 342170 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 343 u_int len);} 344171 STD { int linux_sys_setdomainname(char *domainname, \ 345 int len); } 346172 STD { int linux_sys_iopl(int level); } 347173 STD { int linux_sys_ioperm(unsigned int lo, \ 348 unsigned int hi, int val); } 349174 UNIMPL create_module 350175 UNIMPL init_module 351176 UNIMPL delete_module 352177 UNIMPL get_kernel_syms 353178 UNIMPL query_module 354179 UNIMPL quotactl 355180 UNIMPL nfsservctl 356181 UNIMPL getpmsg 357182 UNIMPL putpmsg 358183 UNIMPL afs_syscall 359184 UNIMPL tuxcall 360185 UNIMPL security 361186 STD { pid_t linux_sys_gettid(void); } 362187 UNIMPL readahead 363188 STD { int linux_sys_setxattr(char *path, char *name, \ 364 void *value, size_t size, int flags); } 365189 STD { int linux_sys_lsetxattr(char *path, char *name, \ 366 void *value, size_t size, int flags); } 367190 STD { int linux_sys_fsetxattr(int fd, char *name, \ 368 void *value, size_t size, int flags); } 369191 STD { ssize_t linux_sys_getxattr(char *path, char *name, \ 370 void *value, size_t size); } 371192 STD { ssize_t linux_sys_lgetxattr(char *path, char *name, \ 372 void *value, size_t size); } 373193 STD { ssize_t linux_sys_fgetxattr(int fd, char *name, \ 374 void *value, size_t size); } 375194 STD { ssize_t linux_sys_listxattr(char *path, char *list, \ 376 size_t size); } 377195 STD { ssize_t linux_sys_llistxattr(char *path, char *list, \ 378 size_t size); } 379196 STD { ssize_t linux_sys_flistxattr(int fd, char *list, \ 380 size_t size); } 381197 STD { int linux_sys_removexattr(char *path, char *name); } 382198 STD { int linux_sys_lremovexattr(char *path, char *name); } 383199 STD { int linux_sys_fremovexattr(int fd, char *name); } 384200 STD { int linux_sys_tkill(int tid, int sig); } 385201 STD { int linux_sys_time(linux_time_t *t); } 386202 STD { int linux_sys_futex(int *uaddr, int op, int val, \ 387 const struct timespec *timeout, int *uaddr2, \ 388 int val3); } 389203 STD { int linux_sys_sched_setaffinity(pid_t pid, \ 390 unsigned int len, unsigned long *mask); } 391204 STD { int linux_sys_sched_getaffinity(pid_t pid, \ 392 unsigned int len, unsigned long *mask); } 393205 UNIMPL set_thread_area 394206 UNIMPL io_setup 395207 UNIMPL io_destroy 396208 UNIMPL io_getevents 397209 UNIMPL io_submit 398210 UNIMPL io_cancel 399211 UNIMPL get_thread_area 400212 UNIMPL lookup_dcookie 401213 UNIMPL epoll_create 402214 UNIMPL epoll_ctl_old 403215 UNIMPL epoll_wait_old 404216 UNIMPL remap_file_pages 405217 STD { int linux_sys_getdents64(int fd, \ 406 struct linux_dirent64 *dent, unsigned int count); } 407218 STD { int linux_sys_set_tid_address(int *tid); } 408219 UNIMPL restart_syscall 409220 UNIMPL semtimedop 410221 UNIMPL fadvise64 411222 UNIMPL timer_create 412223 UNIMPL timer_settime 413224 UNIMPL timer_gettime 414225 UNIMPL timer_getoverrun 415226 UNIMPL timer_delete 416227 STD { int linux_sys_clock_settime(clockid_t which, \ 417 struct linux_timespec *tp); } 418228 STD { int linux_sys_clock_gettime(clockid_t which, \ 419 struct linux_timespec *tp); } 420229 STD { int linux_sys_clock_getres(clockid_t which, \ 421 struct linux_timespec *tp); } 422230 STD { int linux_sys_clock_nanosleep(clockid_t which, \ 423 int flags, struct linux_timespec *rqtp, \ 424 struct linux_timespec *rmtp); } 425231 STD { int linux_sys_exit_group(int error_code); } 426232 UNIMPL epoll_wait 427233 UNIMPL epoll_ctl 428234 STD { int linux_sys_tgkill(int tgid, int tid, int sig); } 429235 UNIMPL utimes 430236 UNIMPL vserver 431; Not really syscall 237, but we need it to be defined somewhere 432237 STD { int linux_sys_nosys(void); } 433