1 $NetBSD: syscalls.master,v 1.23 2008/04/04 12:38:52 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_msg.h> 52#include <compat/linux/common/linux_sem.h> 53#include <compat/linux/common/linux_shm.h> 54#include <compat/linux/common/linux_signal.h> 55#include <compat/linux/common/linux_siginfo.h> 56#include <compat/linux/common/linux_machdep.h> 57 58#include <compat/linux/linux_syscallargs.h> 59 60%% 61 620 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 631 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 642 STD { int linux_sys_open(const char *path, int flags, \ 65 int mode); } 663 NOARGS { int sys_close(int fd); } 674 STD { int linux_sys_stat64(const char *path, \ 68 struct linux_stat *sp); } 695 STD { int linux_sys_fstat64(int fd, \ 70 struct linux_stat *sp); } 716 STD { int linux_sys_lstat64(const char *path, \ 72 struct linux_stat *sp); } 737 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \ 74 int timeout); } 758 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 76 int whence); } 779 NOARGS { linux_off_t linux_sys_mmap(unsigned long addr, \ 78 size_t len, int prot, int flags, int fd, \ 79 linux_off_t offset); } 8010 STD { int linux_sys_mprotect(const void *start, \ 81 unsigned long len, int prot); } 8211 NOARGS { int sys_munmap(void *addr, int len); } 8312 STD { int linux_sys_brk(char *nsize); } 8413 STD { int linux_sys_rt_sigaction(int signum, \ 85 const struct linux_sigaction *nsa, \ 86 struct linux_sigaction *osa, \ 87 size_t sigsetsize); } 8814 STD { int linux_sys_rt_sigprocmask(int how, \ 89 const linux_sigset_t *set, \ 90 linux_sigset_t *oset, \ 91 size_t sigsetsize); } 9215 NOARGS { int linux_sys_rt_sigreturn(void); } 9316 STD { int linux_sys_ioctl(int fd, u_long com, \ 94 void *data); } 9517 STD { int linux_sys_pread(int fd, char *buf, \ 96 size_t nbyte, linux_off_t offset); } 9718 STD { int linux_sys_pwrite(int fd, char *buf, \ 98 size_t nbyte, linux_off_t offset); } 9919 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 100 u_int iovcnt); } 10120 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 102 u_int iovcnt); } 10321 NOARGS { int sys_access(const char *path, int flags); } 10422 STD { int linux_sys_pipe(int *pfds); } 10523 STD { int linux_sys_select(int nfds, fd_set *readfds, \ 106 fd_set *writefds, fd_set *exceptfds, \ 107 struct timeval *timeout); } 10824 STD { int linux_sys_sched_yield(void); } 10925 STD { void *linux_sys_mremap(void *old_address, \ 110 size_t old_size, size_t new_size, u_long flags); } 11126 NOARGS { int sys___msync13(void *addr, size_t len, int flags); } 11227 NOARGS { int sys_mincore(void *addr, size_t len, char *vec); } 11328 NOARGS { int sys_madvise(void *addr, size_t len, int behav); } 114#ifdef SYSVSHM 11529 NOARGS { int linux_sys_shmget(key_t key, size_t size, \ 116 int shmflg); } 11730 NOARGS { int sys_shmat(int shmid, void *shmaddr, int shmflg); } 11831 NOARGS { int linux_sys_shmctl(int shmid, int cmd, \ 119 struct linux_shmid_ds *buf); } 120#else 12129 UNIMPL shmget 12230 UNIMPL shmat 12331 UNIMPL shmctl 124#endif 12532 NOARGS { int sys_dup(u_int fd); } 12633 NOARGS { int sys_dup2(u_int from, u_int to); } 12734 STD { int linux_sys_pause(void); } 12835 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \ 129 struct timespec *rmtp); } 13036 NOARGS { int sys_getitimer(u_int which, \ 131 struct itimerval *itv); } 13237 STD { int linux_sys_alarm(unsigned int secs); } 13338 NOARGS { int sys_setitimer(u_int which, \ 134 struct itimerval *itv, struct itimerval *oitv); } 13539 STD { pid_t linux_sys_getpid(void); } 13640 UNIMPL sendfile 13741 STD { int linux_sys_socket(int domain, \ 138 int type, int protocol); } 13942 STD { int linux_sys_connect(int s, \ 140 const struct osockaddr *name, \ 141 unsigned int namelen); } 14243 STD { int linux_sys_accept(int s, struct osockaddr *name, \ 143 int *anamelen); } oaccept 14444 STD { ssize_t linux_sys_sendto(int s, void *msg, int len, \ 145 int flags, struct osockaddr *to, int tolen); } 14645 STD { ssize_t linux_sys_recvfrom(int s, void *buf, \ 147 size_t len, int flags, struct osockaddr *from, \ 148 unsigned int *fromlenaddr); } 14946 STD { int linux_sys_sendmsg(int s, \ 150 const struct msghdr *msg, int flags); } 15147 STD { ssize_t linux_sys_recvmsg(int s, \ 152 struct msghdr *msg, int flags); } 15348 NOARGS { int sys_shutdown(int s, int how); } 15449 STD { int linux_sys_bind(int s, \ 155 const struct osockaddr *name, \ 156 unsigned int namelen); } 15750 NOARGS { int sys_listen(int s, int backlog); } 15851 STD { int linux_sys_getsockname(int fdec, void *asa, \ 159 int *alen); } 16052 STD { int linux_sys_getpeername(int fdes, \ 161 struct sockaddr *asa, unsigned int *alen); } 16253 STD { int linux_sys_socketpair(int domain, int type, \ 163 int protocol, int *rsv); } 16454 STD { int linux_sys_setsockopt(int s, int level, \ 165 int optname, void *optval, int optlen); } 16655 STD { int linux_sys_getsockopt(int s, int level, \ 167 int optname, void *optval, int *optlen); } 16856 STD { int linux_sys_clone(int flags, void *stack, \ 169 void *parent_tidptr, void *child_tidptr); } 17057 NOARGS { int sys_fork(void); } 17158 NOARGS { int sys___vfork14(void); } 17259 NOARGS { int sys_execve(const char *path, char **argp, \ 173 char **envp); } 17460 NOARGS { int sys_exit(int rval); } 17561 STD { int linux_sys_wait4(int pid, int *status, \ 176 int options, struct rusage *rusage); } 17762 STD { int linux_sys_kill(int pid, int signum); } 17863 STD { int linux_sys_uname(struct linux_utsname *up); } 179#ifdef SYSVSEM 18064 NOARGS { int sys_semget(key_t key, int nsems, int semflg); } 18165 NOARGS { int sys_semop(int semid, struct sembuf *sops, \ 182 size_t nsops); } 18366 STD { int linux_sys_semctl(int semid, int semnum, \ 184 int cmd, union linux_semun arg); } 185#else 18664 UNIMPL semget 18765 UNIMPL semop 18866 UNIMPL semctl 189#endif 190#ifdef SYSVSHM 19167 NOARGS { int sys_shmdt(const void *shmaddr); } 192#else 19367 UNIMPL shmdt 194#endif 195#ifdef SYSVMSG 19668 NOARGS { int sys_msgget(key_t key, int msgflg); } 19769 NOARGS { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \ 198 int msgflg); } 19970 NOARGS { ssize_t sys_msgrcv(int msqid, void *msgp, \ 200 size_t msgsz, long msgtyp, int msgflg); } 20171 NOARGS { int linux_sys_msgctl(int msqid, int cmd, \ 202 struct linux_msqid_ds *buf); } 203#else 20468 UNIMPL msgget 20569 UNIMPL msgsnd 20670 UNIMPL msgrcv 20771 UNIMPL msgctl 208#endif 20972 STD { int linux_sys_fcntl(int fd, int cmd, void *arg); } 21073 NOARGS { int sys_flock(int fd, int how); } 21174 NOARGS { int sys_fsync(int fd); } 21275 STD { int linux_sys_fdatasync(int fd); } 21376 STD { int linux_sys_truncate64(const char *path, \ 214 off_t length); } 21577 STD { int linux_sys_ftruncate64(unsigned int fd, \ 216 off_t length); } 21778 STD { int linux_sys_getdents(int fd, \ 218 struct linux_dirent *dent, unsigned int count); } 21979 NOARGS { int sys___getcwd(char *bufp, size_t length); } 22080 NOARGS { int sys_chdir(const char *path); } 22181 NOARGS { int sys_fchdir(int fd); } 22282 NOARGS { int sys___posix_rename(const char *from, \ 223 const char *to); } 22483 NOARGS { int sys_mkdir(const char *path, int mode); } 22584 NOARGS { int sys_rmdir(const char *path); } 22685 STD { int linux_sys_creat(const char *path, int mode); } 22786 NOARGS { int sys_link(const char *path, const char *link); } 22887 STD { int linux_sys_unlink(const char *path); } 22988 NOARGS { int sys_symlink(const char *path, const char *to); } 23089 NOARGS { int sys_readlink(const char *name, char *buf, \ 231 int count); } 23290 NOARGS { int sys_chmod(const char *path, int mode); } 23391 NOARGS { int sys_fchmod(int fd, int mode); } 23492 NOARGS { int sys___posix_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 NOARGS { int sys___posix_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 NOARGS { pid_t sys_getpgid(pid_t pid); } 274122 STD { int linux_sys_setfsuid(uid_t uid); } 275123 STD { int linux_sys_setfsgid(gid_t gid); } 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