1 $NetBSD: syscalls.master,v 1.18 2007/03/14 12:44:39 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 STD { int linux_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 STD { int linux_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 STD { int linux_sys_chdir(const char *path); } 21981 NOARGS { int sys_fchdir(int fd); } 22082 STD { int linux_sys_rename(const char *from, \ 221 const char *to); } 22283 STD { int linux_sys_mkdir(const char *path, int mode); } 22384 STD { int linux_sys_rmdir(const char *path); } 22485 STD { int linux_sys_creat(const char *path, int mode); } 22586 STD { int linux_sys_link(const char *path, \ 226 const char *link); } 22787 STD { int linux_sys_unlink(const char *path); } 22888 STD { int linux_sys_symlink(const char *path, \ 229 const char *to); } 23089 STD { int linux_sys_readlink(const char *name, char *buf, \ 231 int count); } 23290 STD { int linux_sys_chmod(const char *path, int mode); } 23391 NOARGS { int sys_fchmod(int fd, int mode); } 23492 STD { int linux_sys_chown(const char *path, uid_t uid, \ 235 gid_t gid); } 23693 NOARGS { int sys___posix_fchown(int fd, uid_t uid, \ 237 gid_t gid); } 23894 STD { int linux_sys_lchown(const char *path, uid_t uid, \ 239 gid_t gid); } 24095 NOARGS { int sys_umask(int newmask); } 24196 STD { int linux_sys_gettimeofday(struct timeval *tp, \ 242 struct timezone *tzp); } 24397 STD { int linux_sys_getrlimit(int which, \ 244 struct rlimit *rlp); } 24598 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 24699 STD { int linux_sys_sysinfo(struct linux_sysinfo *arg); } 247100 STD { int linux_sys_times(struct times *tms); } 248101 STD { int linux_sys_ptrace(long request, long pid, \ 249 long addr, long data); } 250102 NOARGS { uid_t sys_getuid(void); } 251103 UNIMPL syslog 252104 NOARGS { gid_t sys_getgid(void); } 253105 NOARGS { void sys_setuid(uid_t uid); } 254106 NOARGS { void sys_setgid(gid_t gid); } 255107 NOARGS { uid_t sys_geteuid(void); } 256108 NOARGS { gid_t sys_getegid(void); } 257109 NOARGS { int sys_setpgid(int pid, int pgid); } 258110 STD { pid_t linux_sys_getppid(void); } 259111 NOARGS { int sys_getpgrp(void); } 260112 NOARGS { int sys_setsid(void); } 261113 NOARGS { int sys_setreuid(uid_t ruid, uid_t euid); } 262114 NOARGS { int sys_setregid(gid_t rgid, gid_t egid); } 263115 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 264116 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 265117 STD { int linux_sys_setresuid(uid_t ruid, uid_t euid, \ 266 uid_t suid); } 267118 STD { int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \ 268 uid_t *suid); } 269119 STD { int linux_sys_setresgid(gid_t rgid, gid_t egid, \ 270 gid_t sgid); } 271120 STD { int linux_sys_getresgid(gid_t *rgid, gid_t *egid, \ 272 gid_t *sgid); } 273121 STD { int linux_sys_getpgid(int pid); } 274122 STD { int linux_sys_setfsuid(uid_t uid); } 275123 STD { int linux_sys_getfsuid(void); } 276124 NOARGS { pid_t sys_getsid(pid_t pid); } 277125 UNIMPL capget 278126 UNIMPL capset 279127 STD { int linux_sys_rt_sigpending( \ 280 linux_sigset_t *set, \ 281 size_t sigsetsize); } 282128 UNIMPL rt_sigtimedwait 283129 STD { int linux_sys_rt_queueinfo(int pid, int signum, \ 284 siginfo_t *uinfo); } 285130 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \ 286 size_t sigsetsize); } 287131 STD { int linux_sys_sigaltstack( \ 288 const struct linux_sigaltstack *ss, \ 289 struct linux_sigaltstack *oss); } 290132 STD { int linux_sys_utime(const char *path, \ 291 struct linux_utimbuf *times); } 292133 STD { int linux_sys_mknod(const char *path, int mode, \ 293 int dev); } 294#ifdef EXEC_AOUT 295134 STD { int linux_sys_uselib(const char *path); } 296#else 297134 UNIMPL sys_uselib 298#endif 299135 STD { int linux_sys_personality(int per); } 300136 UNIMPL ustat 301137 STD { int linux_sys_statfs(const char *path, \ 302 struct linux_statfs *sp); } 303138 STD { int linux_sys_fstatfs(int fd, \ 304 struct linux_statfs *sp); } 305139 UNIMPL sysfs 306140 STD { int linux_sys_getpriority(int which, int who); } 307141 NOARGS { int sys_setpriority(int which, int who, int prio); } 308142 STD { int linux_sys_sched_setparam(pid_t pid, \ 309 const struct linux_sched_param *sp); } 310143 STD { int linux_sys_sched_getparam(pid_t pid, \ 311 struct linux_sched_param *sp); } 312144 STD { int linux_sys_sched_setscheduler(pid_t pid, \ 313 int policy, const struct linux_sched_param *sp); } 314145 STD { int linux_sys_sched_getscheduler(pid_t pid); } 315146 STD { int linux_sys_sched_get_priority_max(int policy); } 316147 STD { int linux_sys_sched_get_priority_min(int policy); } 317148 UNIMPL sys_sched_rr_get_interval 318149 NOARGS { int sys_mlock(void *addr, size_t len); } 319150 NOARGS { int sys_munlock(void *addr, size_t len); } 320151 NOARGS { int sys_mlockall(int flags); } 321152 NOARGS { int sys_munlockall(void); } 322153 UNIMPL vhangup 323154 STD { int linux_sys_modify_ldt(int func, void *ptr, \ 324 size_t bytecount); } 325155 UNIMPL pivot_root 326156 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); } 327157 UNIMPL prctl 328158 STD { int linux_sys_arch_prctl(int code, \ 329 unsigned long addr); } 330159 UNIMPL adjtimex 331160 STD { int linux_sys_setrlimit(u_int which, \ 332 struct rlimit *rlp); } 333161 NOARGS { int sys_chroot(char *path); } 334162 NOARGS { int sys_sync(void); } 335163 NOARGS { int sys_acct(char *path); } 336164 STD { int linux_sys_settimeofday(struct timeval *tp, \ 337 struct timezone *tzp); } 338165 UNIMPL mount 339166 UNIMPL umount2 340167 STD { int linux_sys_swapon(char *name); } 341168 STD { int linux_sys_swapoff(const char *path); } 342169 STD { int linux_sys_reboot(int magic1, int magic2, \ 343 int cmd, void *arg); } 344170 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 345 u_int len);} 346171 STD { int linux_sys_setdomainname(char *domainname, \ 347 int len); } 348172 STD { int linux_sys_iopl(int level); } 349173 STD { int linux_sys_ioperm(unsigned int lo, \ 350 unsigned int hi, int val); } 351174 UNIMPL create_module 352175 UNIMPL init_module 353176 UNIMPL delete_module 354177 UNIMPL get_kernel_syms 355178 UNIMPL query_module 356179 UNIMPL quotactl 357180 UNIMPL nfsservctl 358181 UNIMPL getpmsg 359182 UNIMPL putpmsg 360183 UNIMPL afs_syscall 361184 UNIMPL tuxcall 362185 UNIMPL security 363186 STD { pid_t linux_sys_gettid(void); } 364187 UNIMPL readahead 365188 STD { int linux_sys_setxattr(char *path, char *name, \ 366 void *value, size_t size, int flags); } 367189 STD { int linux_sys_lsetxattr(char *path, char *name, \ 368 void *value, size_t size, int flags); } 369190 STD { int linux_sys_fsetxattr(int fd, char *name, \ 370 void *value, size_t size, int flags); } 371191 STD { ssize_t linux_sys_getxattr(char *path, char *name, \ 372 void *value, size_t size); } 373192 STD { ssize_t linux_sys_lgetxattr(char *path, char *name, \ 374 void *value, size_t size); } 375193 STD { ssize_t linux_sys_fgetxattr(int fd, char *name, \ 376 void *value, size_t size); } 377194 STD { ssize_t linux_sys_listxattr(char *path, char *list, \ 378 size_t size); } 379195 STD { ssize_t linux_sys_llistxattr(char *path, char *list, \ 380 size_t size); } 381196 STD { ssize_t linux_sys_flistxattr(int fd, char *list, \ 382 size_t size); } 383197 STD { int linux_sys_removexattr(char *path, char *name); } 384198 STD { int linux_sys_lremovexattr(char *path, char *name); } 385199 STD { int linux_sys_fremovexattr(int fd, char *name); } 386200 STD { int linux_sys_tkill(int tid, int sig); } 387201 STD { int linux_sys_time(linux_time_t *t); } 388202 STD { int linux_sys_futex(int *uaddr, int op, int val, \ 389 const struct timespec *timeout, int *uaddr2, \ 390 int val3); } 391203 STD { int linux_sys_sched_setaffinity(pid_t pid, \ 392 unsigned int len, unsigned long *mask); } 393204 STD { int linux_sys_sched_getaffinity(pid_t pid, \ 394 unsigned int len, unsigned long *mask); } 395205 UNIMPL set_thread_area 396206 UNIMPL io_setup 397207 UNIMPL io_destroy 398208 UNIMPL io_getevents 399209 UNIMPL io_submit 400210 UNIMPL io_cancel 401211 UNIMPL get_thread_area 402212 UNIMPL lookup_dcookie 403213 UNIMPL epoll_create 404214 UNIMPL epoll_ctl_old 405215 UNIMPL epoll_wait_old 406216 UNIMPL remap_file_pages 407217 STD { int linux_sys_getdents64(int fd, \ 408 struct linux_dirent64 *dent, unsigned int count); } 409218 STD { int linux_sys_set_tid_address(int *tid); } 410219 UNIMPL restart_syscall 411220 UNIMPL semtimedop 412221 UNIMPL fadvise64 413222 UNIMPL timer_create 414223 UNIMPL timer_settime 415224 UNIMPL timer_gettime 416225 UNIMPL timer_getoverrun 417226 UNIMPL timer_delete 418227 STD { int linux_sys_clock_settime(clockid_t which, \ 419 struct linux_timespec *tp); } 420228 STD { int linux_sys_clock_gettime(clockid_t which, \ 421 struct linux_timespec *tp); } 422229 STD { int linux_sys_clock_getres(clockid_t which, \ 423 struct linux_timespec *tp); } 424230 STD { int linux_sys_clock_nanosleep(clockid_t which, \ 425 int flags, struct linux_timespec *rqtp, \ 426 struct linux_timespec *rmtp); } 427231 STD { int linux_sys_exit_group(int error_code); } 428232 UNIMPL epoll_wait 429233 UNIMPL epoll_ctl 430234 STD { int linux_sys_tgkill(int tgid, int tid, int sig); } 431235 UNIMPL utimes 432236 UNIMPL vserver 433; Not really syscall 237, but we need it to be defined somewhere 434237 STD { int linux_sys_nosys(void); } 435