1 $NetBSD: syscalls.master,v 1.66 2009/01/17 22:28:52 njoly Exp $ 2 3; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 4 5; NetBSD m68k 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_compat_netbsd.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/sched.h> 47#include <sys/syscallargs.h> 48 49#include <compat/linux/common/linux_types.h> 50#include <compat/linux/common/linux_signal.h> 51#include <compat/linux/common/linux_siginfo.h> 52#include <compat/linux/common/linux_machdep.h> 53#include <compat/linux/common/linux_mmap.h> 54 55#include <compat/linux/linux_syscallargs.h> 56 57%% 58 590 NOARGS { int|linux_sys||nosys(void); } syscall 601 NOARGS { int|sys||exit(int rval); } 612 NOARGS { int|sys||fork(void); } 623 NOARGS { int|sys||read(int fd, char *buf, u_int nbyte); } 634 NOARGS { int|sys||write(int fd, char *buf, u_int nbyte); } 645 STD { int|linux_sys||open(const char *path, int flags, \ 65 int mode); } 666 NOARGS { int|sys||close(int fd); } 677 STD { int|linux_sys||waitpid(int pid, int *status, \ 68 int options);} 698 STD { int|linux_sys||creat(const char *path, int mode); } 709 NOARGS { int|sys||link(const char *path, const char *link); } 7110 STD { int|linux_sys||unlink(const char *path); } 7211 NOARGS { int|sys||execve(const char *path, char **argp, \ 73 char **envp); } 7412 NOARGS { int|sys||chdir(const char *path); } 7513 STD { int|linux_sys||time(linux_time_t *t); } 7614 STD { int|linux_sys||mknod(const char *path, int mode, \ 77 int dev); } 7815 NOARGS { int|sys||chmod(const char *path, int mode); } 79;16 lchown on i386; chown on m68k. 8016 STD { int|linux_sys||chown16(const char *path, \ 81 linux_uid16_t uid, linux_gid16_t gid); } 8217 OBSOL break 8318 OBSOL ostat 84#if !defined(_KERNEL) || defined(COMPAT_43) 8519 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 86 int whence); } 87#else 8819 UNIMPL compat_43_sys_lseek 89#endif 9020 NOARGS { pid_t|sys||getpid(void); } 9121 UNIMPL mount 9222 OBSOL umount 9323 NOARGS linux_setuid16 { int|sys||setuid(uid_t uid); } 9424 NOARGS linux_getuid16 { uid_t|sys||getuid(void); } 9525 STD { int|linux_sys||stime(linux_time_t *t); } 9626 STD { int|linux_sys||ptrace(int request, int pid, \ 97 int addr, int data); } 9827 STD { int|linux_sys||alarm(unsigned int secs); } 9928 OBSOL ofstat 10029 STD { int|linux_sys||pause(void); } 10130 STD { int|linux_sys||utime(const char *path, \ 102 struct linux_utimbuf *times); } 10331 OBSOL stty 10432 OBSOL gtty 10533 NOARGS { int|sys||access(const char *path, int flags); } 10634 STD { int|linux_sys||nice(int incr); } 10735 OBSOL ftime 10836 NOARGS { int|sys||sync(void); } 10937 STD { int|linux_sys||kill(int pid, int signum); } 11038 NOARGS { int|sys||__posix_rename(const char *from, \ 111 const char *to); } 11239 NOARGS { int|sys||mkdir(const char *path, int mode); } 11340 NOARGS { int|sys||rmdir(const char *path); } 11441 NOARGS { int|sys||dup(u_int fd); } 11542 STD { int|linux_sys||pipe(int *pfds); } 11643 STD { int|linux_sys||times(struct times *tms); } 11744 OBSOL prof 11845 STD { int|linux_sys||brk(char *nsize); } 11946 NOARGS linux_setgid16 { int|sys||setgid(gid_t gid); } 12047 NOARGS linux_getgid16 { gid_t|sys||getgid(void); } 12148 STD { int|linux_sys||signal(int signum, \ 122 linux_handler_t handler); } 12349 NOARGS linux_geteuid16 { uid_t|sys||geteuid(void); } 12450 NOARGS linux_getegid16 { gid_t|sys||getegid(void); } 12551 NOARGS { int|sys||acct(char *path); } 12652 UNIMPL umount 12753 OBSOL lock 12854 STD { int|linux_sys||ioctl(int fd, u_long com, \ 129 void *data); } 13055 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 13156 OBSOL mpx 13257 NOARGS { int|sys||setpgid(int pid, int pgid); } 13358 OBSOL ulimit 13459 UNIMPL oldolduname 13560 NOARGS { int|sys||umask(int newmask); } 13661 NOARGS { int|sys||chroot(char *path); } 13762 UNIMPL ustat 13863 NOARGS { int|sys||dup2(u_int from, u_int to); } 13964 NOARGS { pid_t|sys||getppid(void); } 14065 NOARGS { int|sys||getpgrp(void); } 14166 NOARGS { int|sys||setsid(void); } 14267 STD { int|linux_sys||sigaction(int signum, \ 143 const struct linux_old_sigaction *nsa, \ 144 struct linux_old_sigaction *osa); } 14568 STD { int|linux_sys||siggetmask(void); } 14669 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 14770 STD { int|linux_sys||setreuid16(linux_uid16_t ruid, \ 148 linux_uid16_t euid); } 14971 STD { int|linux_sys||setregid16(linux_gid16_t rgid, \ 150 linux_gid16_t egid); } 15172 STD { int|linux_sys||sigsuspend(void *restart, \ 152 int oldmask, int mask); } 15373 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 154#if !defined(_KERNEL) || defined(COMPAT_43) 15574 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 156 u_int len);} 157#else 15874 UNIMPL compat_43_sys_sethostname 159#endif 16075 STD { int|linux_sys||setrlimit(u_int which, \ 161 struct orlimit *rlp); } 16276 STD { int|linux_sys||getrlimit(u_int which, \ 163 struct orlimit *rlp); } 16477 NOARGS { int|compat_50_sys||getrusage(int who, \ 165 struct rusage50 *rusage); } 16678 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 167 struct timezone *tzp); } 16879 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 169 struct timezone *tzp); } 17080 STD { int|linux_sys||getgroups16(int gidsetsize, \ 171 linux_gid16_t *gidset); } 17281 STD { int|linux_sys||setgroups16(int gidsetsize, \ 173 linux_gid16_t *gidset); } 17482 STD { int|linux_sys||oldselect(struct linux_oldselect *lsp); } 17583 NOARGS { int|sys||symlink(const char *path, const char *to); } 176#if !defined(_KERNEL) || defined(COMPAT_43) 17784 NOARGS { int|compat_43_sys||lstat(const char *path, \ 178 struct stat43 *up); } oolstat 179#else 18084 UNIMPL compat_43_sys_lstat 181#endif 18285 NOARGS { int|sys||readlink(const char *name, char *buf, \ 183 int count); } 184#ifdef EXEC_AOUT 18586 STD { int|linux_sys||uselib(const char *path); } 186#else 18786 UNIMPL sys_uselib 188#endif 18987 STD { int|linux_sys||swapon(char *name); } 19088 STD { int|linux_sys||reboot(int magic1, int magic2, \ 191 int cmd, void *arg); } 19289 STD { int|linux_sys||readdir(int fd, void *dent, \ 193 unsigned int count); } 19490 STD { int|linux_sys||old_mmap(struct linux_oldmmap *lmp); } 19591 NOARGS { int|sys||munmap(void *addr, int len); } 19692 NOARGS { int|compat_43_sys||truncate(const char *path, \ 197 long length); } 198#if !defined(_KERNEL) || defined(COMPAT_43) 19993 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 200#else 20193 UNIMPL compat_43_sys_ftruncate 202#endif 20394 NOARGS { int|sys||fchmod(int fd, int mode); } 20495 STD { int|linux_sys||fchown16(int fd, linux_uid16_t uid, \ 205 linux_gid16_t gid); } 20696 STD { int|linux_sys||getpriority(int which, int who); } 20797 NOARGS { int|sys||setpriority(int which, int who, int prio); } 20898 NOARGS { int|sys||profil(void *samples, u_int size, \ 209 u_int offset, u_int scale); } 21099 STD { int|linux_sys||statfs(const char *path, \ 211 struct linux_statfs *sp); } 212100 STD { int|linux_sys||fstatfs(int fd, \ 213 struct linux_statfs *sp); } 214101 UNIMPL ioperm 215102 STD { int|linux_sys||socketcall(int what, void *args); } 216103 UNIMPL syslog 217104 NOARGS { int|compat_50_sys||setitimer(u_int which, \ 218 struct itimerval50 *itv, \ 219 struct itimerval50 *oitv); } 220105 NOARGS { int|compat_50_sys||getitimer(u_int which, \ 221 struct itimerval50 *itv); } 222106 STD { int|linux_sys||stat(const char *path, \ 223 struct linux_stat *sp); } 224107 STD { int|linux_sys||lstat(const char *path, \ 225 struct linux_stat *sp); } 226108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 227109 UNIMPL olduname 228110 UNIMPL iopl 229111 UNIMPL vhangup 230112 UNIMPL idle 231113 UNIMPL vm86old 232114 STD { int|linux_sys||wait4(int pid, int *status, \ 233 int options, struct rusage50 *rusage); } 234115 STD { int|linux_sys||swapoff(const char *path); } 235116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 236117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 237 void *ptr); } 238118 NOARGS { int|sys||fsync(int fd); } 239119 STD { int|linux_sys||sigreturn(void); } 240120 STD { int|linux_sys||clone(int flags, void *stack); } 241121 STD { int|linux_sys||setdomainname(char *domainname, \ 242 int len); } 243122 STD { int|linux_sys||uname(struct linux_utsname *up); } 244123 STD { int|linux_sys||cacheflush(unsigned long addr, \ 245 int scope, int cache, unsigned long len); } 246124 UNIMPL adjtimex 247125 STD { int|linux_sys||mprotect(const void *start, \ 248 unsigned long len, int prot); } 249126 STD { int|linux_sys||sigprocmask(int how, \ 250 const linux_old_sigset_t *set, \ 251 linux_old_sigset_t *oset); } 252127 UNIMPL create_module 253128 UNIMPL init_module 254129 UNIMPL delete_module 255130 UNIMPL get_kernel_syms 256131 UNIMPL quotactl 257132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 258133 NOARGS { int|sys||fchdir(int fd); } 259134 UNIMPL bdflush 260135 UNIMPL sysfs 261136 STD { int|linux_sys||personality(int per); } 262137 UNIMPL afs_syscall 263138 NOARGS linux_setfsuid16 { int|linux_sys||setfsuid(uid_t uid); } 264139 NOARGS linux_setfsgid16 { int|linux_sys||setfsgid(gid_t gid); } 265140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 266 u_int32_t olow, void *res, int whence); } 267141 STD { int|linux_sys||getdents(int fd, \ 268 struct linux_dirent *dent, unsigned int count); } 269142 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 270 fd_set *writefds, fd_set *exceptfds, \ 271 struct timeval50 *timeout); } 272143 NOARGS { int|sys||flock(int fd, int how); } 273144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 274145 NOARGS { int|sys||readv(int fd, struct iovec *iovp, \ 275 u_int iovcnt); } 276146 NOARGS { int|sys||writev(int fd, struct iovec *iovp, \ 277 u_int iovcnt); } 278147 NOARGS { pid_t|sys||getsid(pid_t pid); } 279148 STD { int|linux_sys||fdatasync(int fd); } 280149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 281150 NOARGS { int|sys||mlock(void *addr, size_t len); } 282151 NOARGS { int|sys||munlock(void *addr, size_t len); } 283152 NOARGS { int|sys||mlockall(int flags); } 284153 NOARGS { int|sys||munlockall(void); } 285154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 286 const struct linux_sched_param *sp); } 287155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 288 struct linux_sched_param *sp); } 289156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 290 int policy, const struct linux_sched_param *sp); } 291157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 292158 STD { int|linux_sys||sched_yield(void); } 293159 STD { int|linux_sys||sched_get_priority_max(int policy); } 294160 STD { int|linux_sys||sched_get_priority_min(int policy); } 295161 UNIMPL sched_rr_get_interval 296162 STD { int|linux_sys||nanosleep( \ 297 const struct linux_timespec *rqtp, \ 298 struct linux_timespec *rmtp); } 299163 STD { void *|linux_sys||mremap(void *old_address, \ 300 size_t old_size, size_t new_size, u_long flags); } 301164 STD { int|linux_sys||setresuid16(linux_uid16_t ruid, \ 302 linux_uid16_t euid, linux_uid16_t suid); } 303165 STD { int|linux_sys||getresuid16(linux_uid16_t *ruid, \ 304 linux_uid16_t *euid, linux_uid16_t *suid); } 305166 UNIMPL vm86 306167 UNIMPL query_module 307168 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 308 int timeout); } 309169 UNIMPL nfsservctl 310170 STD { int|linux_sys||setresgid16(linux_gid16_t rgid, \ 311 linux_gid16_t egid, linux_gid16_t sgid); } 312171 STD { int|linux_sys||getresgid16(linux_gid16_t *rgid, \ 313 linux_gid16_t *egid, linux_gid16_t *sgid); } 314172 UNIMPL prctl 315173 STD { int|linux_sys||rt_sigreturn(void); } 316174 STD { int|linux_sys||rt_sigaction(int signum, \ 317 const struct linux_sigaction *nsa, \ 318 struct linux_sigaction *osa, \ 319 size_t sigsetsize); } 320175 STD { int|linux_sys||rt_sigprocmask(int how, \ 321 const linux_sigset_t *set, \ 322 linux_sigset_t *oset, \ 323 size_t sigsetsize); } 324176 STD { int|linux_sys||rt_sigpending( \ 325 linux_sigset_t *set, \ 326 size_t sigsetsize); } 327177 UNIMPL rt_sigtimedwait 328; XXX XAX int here? sigset_t here? siginfo_t 329178 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 330 void *uinfo); } 331179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 332 size_t sigsetsize); } 333180 STD { int|linux_sys||pread(int fd, char *buf, \ 334 size_t nbyte, linux_off_t offset); } 335181 STD { int|linux_sys||pwrite(int fd, char *buf, \ 336 size_t nbyte, linux_off_t offset); } 337;182 chown on i386; lchown on m68k. 338182 STD { int|linux_sys||lchown16(const char *path, \ 339 linux_uid16_t uid, linux_gid16_t gid); } 340183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 341184 UNIMPL capget 342185 UNIMPL capset 343186 STD { int|linux_sys||sigaltstack( \ 344 const struct linux_sigaltstack *ss, \ 345 struct linux_sigaltstack *oss); } 346187 UNIMPL sendfile 347188 UNIMPL getpmsg 348189 UNIMPL putpmsg 349190 NOARGS { int|sys|14|vfork(void); } 350191 STD { int|linux_sys||ugetrlimit(int which, \ 351 struct orlimit *rlp); } 352#define linux_sys_mmap2_args linux_sys_mmap_args 353192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 354 size_t len, int prot, int flags, int fd, \ 355 linux_off_t offset); } 356193 STD { int|linux_sys||truncate64(const char *path, \ 357 off_t length); } 358194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 359 off_t length); } 360195 STD { int|linux_sys||stat64(const char *path, \ 361 struct linux_stat64 *sp); } 362196 STD { int|linux_sys||lstat64(const char *path, \ 363 struct linux_stat64 *sp); } 364197 STD { int|linux_sys||fstat64(int fd, \ 365 struct linux_stat64 *sp); } 366198 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 367 gid_t gid); } 368199 NOARGS { uid_t|sys||getuid(void); } 369200 NOARGS { gid_t|sys||getgid(void); } 370201 NOARGS { uid_t|sys||geteuid(void); } 371202 NOARGS { gid_t|sys||getegid(void); } 372203 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 373204 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 374205 NOARGS { int|sys||getgroups(u_int gidsetsize, gid_t *gidset); } 375206 NOARGS { int|sys||setgroups(u_int gidsetsize, gid_t *gidset); } 376207 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 377 gid_t gid); } 378208 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 379 uid_t suid); } 380209 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 381 uid_t *suid); } 382210 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 383 gid_t sgid); } 384211 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 385 gid_t *sgid); } 386212 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 387 gid_t gid); } 388213 NOARGS { int|sys||setuid(uid_t uid); } 389214 NOARGS { int|sys||setgid(gid_t gid); } 390215 STD { int|linux_sys||setfsuid(uid_t uid); } 391216 STD { int|linux_sys||setfsgid(gid_t gid); } 392217 UNIMPL /* unused */ 393218 UNIMPL /* unused */ 394219 UNIMPL /* unused */ 395220 STD { int|linux_sys||getdents64(int fd, \ 396 struct linux_dirent64 *dent, unsigned int count); } 397221 UNIMPL gettid 398222 UNIMPL tkill 399223 STD { int|linux_sys||setxattr(char *path, char *name, \ 400 void *value, size_t size, int flags); } 401224 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 402 void *value, size_t size, int flags); } 403225 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 404 void *value, size_t size, int flags); } 405226 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 406 void *value, size_t size); } 407227 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 408 void *value, size_t size); } 409228 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 410 void *value, size_t size); } 411229 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 412 size_t size); } 413230 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 414 size_t size); } 415231 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 416 size_t size); } 417232 STD { int|linux_sys||removexattr(char *path, char *name); } 418233 STD { int|linux_sys||lremovexattr(char *path, char *name); } 419234 STD { int|linux_sys||fremovexattr(int fd, char *name); } 420235 UNIMPL futex 421236 UNIMPL sendfile64 422237 UNIMPL mincore 423238 UNIMPL madvise 424239 UNIMPL fcntl64 425240 UNIMPL readahead 426241 UNIMPL io_setup 427242 UNIMPL io_destroy 428243 UNIMPL io_getevents 429244 UNIMPL io_submit 430245 UNIMPL io_cancel 431246 UNIMPL fadvise64 432247 UNIMPL exit_group 433248 UNIMPL lookup_dcookie 434249 UNIMPL epoll_create 435250 UNIMPL epoll_ctl 436251 UNIMPL epoll_wait 437252 UNIMPL remap_file_pages 438253 UNIMPL set_tid_address 439254 UNIMPL timer_create 440255 UNIMPL timer_settime 441256 UNIMPL timer_gettime 442257 UNIMPL timer_getoverrun 443258 UNIMPL timer_delete 444259 STD { int|linux_sys||clock_settime(clockid_t which, \ 445 struct linux_timespec *tp); } 446260 STD { int|linux_sys||clock_gettime(clockid_t which, \ 447 struct linux_timespec *tp); } 448261 STD { int|linux_sys||clock_getres(clockid_t which, \ 449 struct linux_timespec *tp); } 450262 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 451 int flags, struct linux_timespec *rqtp, \ 452 struct linux_timespec *rmtp); } 453