1 $NetBSD: syscalls.master,v 1.29 2008/04/23 14:07:50 ad Exp $ 2 3; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 4 5; Derived from NetBSD's sys/compat/linux/arch/powerpc/syscalls.master 6; from Linux's arch/mips/kernel/syscalls.h 7 8; NetBSD mips COMPAT_LINUX system call name/number "master" file. 9; (See syscalls.conf to see what it is processed into.) 10; 11; Expect problems with 12; 48 signal: undefined in Linux??? 13; 86 uselib: needs a.out 14; 15; Fields: number type [type-dependent ...] 16; number system call number, must be in order 17; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 18; the compatibility options defined in syscalls.conf. 19; 20; types: 21; STD always included 22; OBSOL obsolete, not included in system 23; UNIMPL unimplemented, not included in system 24; NODEF included, but don't define the syscall number 25; NOARGS included, but don't define the syscall args structure 26; INDIR included, but don't define the syscall args structure 27; and allow it to be "really" varargs. 28; 29; The compat options are defined in the syscalls.conf file, and the 30; compat option name is prefixed to the syscall name. Other than 31; that, they're like NODEF (for 'compat' options), or STD (for 32; 'libcompat' options). 33; 34; The type-dependent arguments are as follows: 35; For STD, NODEF, NOARGS, and compat syscalls: 36; { pseudo-proto } [alias] 37; For other syscalls: 38; [comment] 39; 40; #ifdef's, etc. may be included, and are copied to the output files. 41; #include's are copied to the syscall names and switch definition files only. 42 43#if defined(_KERNEL_OPT) 44#include "opt_compat_netbsd.h" 45#include "opt_compat_43.h" 46#endif 47 48#include <sys/param.h> 49#include <sys/poll.h> 50#include <sys/systm.h> 51#include <sys/signal.h> 52#include <sys/mount.h> 53#include <sys/syscallargs.h> 54 55#include <compat/linux/common/linux_types.h> 56#include <compat/linux/common/linux_signal.h> 57#include <compat/linux/common/linux_siginfo.h> 58#include <compat/linux/common/linux_machdep.h> 59#include <compat/linux/common/linux_mmap.h> 60#include <compat/linux/common/linux_socketcall.h> 61 62#include <compat/linux/linux_syscallargs.h> 63 640 NOARGS { int linux_sys_nosys(void); } syscall 651 NOARGS { int sys_exit(int rval); } 662 NOARGS { int sys_fork(void); } 673 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 684 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 695 STD { int linux_sys_open(const char *path, int flags, \ 70 int mode); } 716 NOARGS { int sys_close(int fd); } 727 STD { int linux_sys_waitpid(int pid, int *status, \ 73 int options);} 748 STD { int linux_sys_creat(const char *path, int mode); } 759 NOARGS { int sys_link(const char *path, const char *link); } 7610 STD { int linux_sys_unlink(const char *path); } 7711 NOARGS { int sys_execve(const char *path, char **argp, \ 78 char **envp); } 7912 NOARGS { int sys_chdir(const char *path); } 8013 STD { int linux_sys_time(linux_time_t *t); } 8114 STD { int linux_sys_mknod(const char *path, int mode, \ 82 int dev); } 8315 NOARGS { int sys_chmod(const char *path, int mode); } 8416 NOARGS { int sys___posix_lchown(const char *path, int uid, \ 85 int gid); } 8617 UNIMPL 8718 OBSOL ostat 8819 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 89 int whence); } 9020 NOARGS { pid_t sys_getpid(void); } 9121 UNIMPL mount 9222 OBSOL umount 9323 NOARGS { int sys_setuid(uid_t uid); } 9424 NOARGS { 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 UNIMPL 10432 UNIMPL 10533 NOARGS { int sys_access(const char *path, int flags); } 10634 STD { int linux_sys_nice(int incr); } 10735 UNIMPL 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 UNIMPL 11845 STD { int linux_sys_brk(char *nsize); } 11946 NOARGS { int sys_setgid(gid_t gid); } 12047 NOARGS { gid_t sys_getgid(void); } 12148 STD { int linux_sys_signal(int signum, \ 122 linux___sighandler_t handler); } 12349 NOARGS { uid_t sys_geteuid(void); } 12450 NOARGS { gid_t sys_getegid(void); } 12551 NOARGS { int sys_acct(char *path); } 12652 UNIMPL umount 12753 UNIMPL 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 UNIMPL 13459 STD { int linux_sys_olduname(struct linux_old_utsname \ 135 *up); } 13660 NOARGS { int sys_umask(int newmask); } 13761 NOARGS { int sys_chroot(char *path); } 13862 UNIMPL ustat 13963 NOARGS { int sys_dup2(u_int from, u_int to); } 14064 NOARGS { pid_t sys_getppid(void); } 14165 NOARGS { int sys_getpgrp(void); } 14266 NOARGS { int sys_setsid(void); } 14367 STD { int linux_sys_sigaction(int signum, \ 144 const struct linux_old_sigaction *nsa, \ 145 struct linux_old_sigaction *osa); } 14668 STD { int linux_sys_siggetmask(void); } 14769 STD { int linux_sys_sigsetmask(linux_old_sigset_t mask); } 14870 NOARGS { int sys_setreuid(uid_t ruid, uid_t euid); } 14971 NOARGS { int sys_setregid(gid_t rgid, gid_t egid); } 15072 STD { int linux_sys_sigsuspend(void *restart, \ 151 int oldmask, int mask); } 15273 STD { int linux_sys_sigpending(linux_old_sigset_t *set); } 15374 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 154 u_int len);} 15575 STD { int linux_sys_setrlimit(u_int which, \ 156 struct orlimit *rlp); } 15776 STD { int linux_sys_getrlimit(u_int which, \ 158 struct orlimit *rlp); } 15977 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 16078 STD { int linux_sys_gettimeofday(struct timeval *tp, \ 161 struct timezone *tzp); } 16279 STD { int linux_sys_settimeofday(struct timeval *tp, \ 163 struct timezone *tzp); } 16480 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 16581 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 16682 UNIMPL old_select 16783 NOARGS { int sys_symlink(const char *path, const char *to); } 16884 NOARGS { int compat_43_sys_lstat(const char *path, \ 169 struct stat43 *up); } oolstat 17085 NOARGS { int sys_readlink(const char *name, char *buf, \ 171 int count); } 17286 UNIMPL uselib 173;86 STD { int linux_sys_uselib(const char *path); } 17487 STD { int linux_sys_swapon(char *name); } 17588 STD { int linux_sys_reboot(int magic1, int magic2, \ 176 int cmd, void *arg); } 17789 STD { int linux_sys_readdir(int fd, void *dent, \ 178 unsigned int count); } 17990 NOARGS { int linux_sys_mmap(unsigned long addr, size_t len, \ 180 int prot, int flags, int fd, linux_off_t offset); } 18191 NOARGS { int sys_munmap(void *addr, int len); } 18292 NOARGS { int compat_43_sys_truncate(const char *path, \ 183 long length); } 18493 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } 18594 NOARGS { int sys_fchmod(int fd, int mode); } 18695 NOARGS { int sys___posix_fchown(int fd, int uid, int gid); } 18796 STD { int linux_sys_getpriority(int which, int who); } 18897 NOARGS { int sys_setpriority(int which, int who, int prio); } 18998 UNIMPL 19099 STD { int linux_sys_statfs(const char *path, \ 191 struct linux_statfs *sp); } 192100 STD { int linux_sys_fstatfs(int fd, \ 193 struct linux_statfs *sp); } 194101 STD { int linux_sys_ioperm(unsigned int lo, \ 195 unsigned int hi, int val); } 196102 STD { int linux_sys_socketcall(int what, void *args); } 197103 UNIMPL syslog 198104 NOARGS { int sys_setitimer(u_int which, \ 199 struct itimerval *itv, struct itimerval *oitv); } 200105 NOARGS { int sys_getitimer(u_int which, \ 201 struct itimerval *itv); } 202106 STD { int linux_sys_stat(const char *path, \ 203 struct linux_stat *sp); } 204107 STD { int linux_sys_lstat(const char *path, \ 205 struct linux_stat *sp); } 206108 STD { int linux_sys_fstat(int fd, struct linux_stat *sp); } 207109 STD { int linux_sys_uname(struct linux_utsname *up); } 208110 UNIMPL iopl 209111 UNIMPL vhangup 210112 UNIMPL idle 211113 UNIMPL vm86old 212114 STD { int linux_sys_wait4(int pid, int *status, \ 213 int options, struct rusage *rusage); } 214115 STD { int linux_sys_swapoff(const char *path); } 215116 STD { int linux_sys_sysinfo(struct linux_sysinfo *arg); } 216117 STD { int linux_sys_ipc(int what, int a1, int a2, int a3, \ 217 void *ptr); } 218118 NOARGS { int sys_fsync(int fd); } 219119 STD { int linux_sys_sigreturn(struct linux_sigframe *sf); } 220120 STD { int linux_sys_clone(int flags, void *stack); } 221121 STD { int linux_sys_setdomainname(char *domainname, \ 222 int len); } 223122 STD { int linux_sys_new_uname(struct linux_utsname *up); } 224123 UNIMPL modify_ldt 225124 UNIMPL adjtimex 226125 STD { int linux_sys_mprotect(const void *start, \ 227 unsigned long len, int prot); } 228126 STD { int linux_sys_sigprocmask(int how, \ 229 const linux_old_sigset_t *set, \ 230 linux_old_sigset_t *oset); } 231127 UNIMPL create_module 232128 UNIMPL init_module 233129 UNIMPL delete_module 234130 UNIMPL get_kernel_syms 235131 UNIMPL quotactl 236132 NOARGS { pid_t sys_getpgid(pid_t pid); } 237133 NOARGS { int sys_fchdir(int fd); } 238134 UNIMPL bdflush 239135 UNIMPL sysfs 240136 STD { int linux_sys_personality(int per); } 241137 UNIMPL afs_syscall 242138 STD { int linux_sys_setfsuid(uid_t uid); } 243139 STD { int linux_sys_setfsgid(gid_t gid); } 244140 STD { int linux_sys_llseek(int fd, u_int32_t ohigh, \ 245 u_int32_t olow, void *res, int whence); } 246141 STD { int linux_sys_getdents(int fd, \ 247 struct linux_dirent *dent, unsigned int count); } 248142 STD { int linux_sys_select(int nfds, fd_set *readfds, \ 249 fd_set *writefds, fd_set *exceptfds, \ 250 struct timeval *timeout); } 251143 NOARGS { int sys_flock(int fd, int how); } 252144 NOARGS { int sys___msync13(void *addr, size_t len, int flags); } 253145 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 254 u_int iovcnt); } 255146 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 256 u_int iovcnt); } 257147 STD { int linux_sys_cacheflush(void *addr, \ 258 int bytes, int cache); } 259148 UNIMPL cachectl 260149 STD { int linux_sys_sysmips(int cmd, int arg1, \ 261 int arg2, int arg3); } 262150 UNIMPL 263151 NOARGS { pid_t sys_getsid(pid_t pid); } 264152 STD { int linux_sys_fdatasync(int fd); } 265153 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); } 266154 NOARGS { int sys_mlock(void *addr, size_t len); } 267155 NOARGS { int sys_munlock(void *addr, size_t len); } 268156 NOARGS { int sys_mlockall(int flags); } 269157 NOARGS { int sys_munlockall(void); } 270158 STD { int linux_sys_sched_setparam(pid_t pid, \ 271 const struct linux_sched_param *sp); } 272159 STD { int linux_sys_sched_getparam(pid_t pid, \ 273 struct linux_sched_param *sp); } 274160 STD { int linux_sys_sched_setscheduler(pid_t pid, \ 275 int policy, const struct linux_sched_param *sp); } 276161 STD { int linux_sys_sched_getscheduler(pid_t pid); } 277162 STD { int linux_sys_sched_yield(void); } 278163 STD { int linux_sys_sched_get_priority_max(int policy); } 279164 STD { int linux_sys_sched_get_priority_min(int policy); } 280165 UNIMPL sched_rr_get_interval 281166 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \ 282 struct timespec *rmtp); } 283167 STD { void *linux_sys_mremap(void *old_address, \ 284 size_t old_size, size_t new_size, u_long flags); } 285168 NOARGS { int linux_sys_accept(int s, \ 286 struct osockaddr *name, int *anamelen); } 287169 NOARGS { int linux_sys_bind(int s, \ 288 const struct osockaddr *name, int namelen); } 289170 NOARGS { int linux_sys_connect(int s, \ 290 const struct sockaddr *name, int namelen); } 291171 NOARGS { int linux_sys_getpeername(int fdes, void *asa, \ 292 int *alen); } 293172 NOARGS { int linux_sys_getsockname(int fdes, void *asa, \ 294 int *alen); } 295173 NOARGS { int linux_sys_getsockopt(int s, int level, \ 296 int optname, void *optval, int *optlen); } 297174 NOARGS { int sys_listen(int s, int backlog); } 298175 NOARGS { int linux_sys_recv(int s, void *buf, int len, \ 299 int flags); } 300176 NOARGS { int linux_sys_recvfrom(int s, void *buf, int len, \ 301 int flags, struct osockaddr *from, \ 302 int *fromlenaddr); } 303177 NOARGS { int linux_sys_recvmsg(int s, struct msghdr *msg, \ 304 u_int flags); } 305178 NOARGS { int linux_sys_send(int s, void *buf, int len, \ 306 int flags); } 307179 NOARGS { int linux_sys_sendmsg(int s, struct msghdr *msg, \ 308 u_int flags); } 309180 NOARGS { int linux_sys_sendto(int s, void *msg, \ 310 int len, int flags, struct osockaddr *to, \ 311 int tolen); } 312181 NOARGS { int linux_sys_setsockopt(int s, int level, \ 313 int optname, void *optval, int optlen); } 314182 UNIMPL shutdown 315183 NOARGS { int linux_sys_socket(int domain, int type, \ 316 int protocol); } 317184 NOARGS { int linux_sys_socketpair(int domain, int type, \ 318 int protocol, int *rsv); } 319185 STD { int linux_sys_setresuid(uid_t ruid, uid_t euid, \ 320 uid_t suid); } 321186 STD { int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \ 322 uid_t *suid); } 323187 UNIMPL query_module 324188 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \ 325 int timeout); } 326189 UNIMPL nfsservctl 327190 STD { int linux_sys_setresgid(gid_t rgid, gid_t egid, \ 328 gid_t sgid); } 329191 STD { int linux_sys_getresgid(gid_t *rgid, gid_t *egid, \ 330 gid_t *sgid); } 331192 UNIMPL prctl 332193 STD { int linux_sys_rt_sigreturn( \ 333 struct linux_pt_regs regs); } 334194 STD { int linux_sys_rt_sigaction(int signum, \ 335 const struct linux_sigaction *nsa, \ 336 struct linux_sigaction *osa, \ 337 size_t sigsetsize); } 338195 STD { int linux_sys_rt_sigprocmask(int how, \ 339 const linux_sigset_t *set, \ 340 linux_sigset_t *oset, \ 341 size_t sigsetsize); } 342196 STD { int linux_sys_rt_sigpending( \ 343 linux_sigset_t *set, \ 344 size_t sigsetsize); } 345197 UNIMPL rt_sigtimedwait 346; XXX XAX int here? sigset_t here? siginfo_t 347198 STD { int linux_sys_rt_queueinfo(int pid, int signum, \ 348 void *uinfo); } 349199 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \ 350 size_t sigsetsize); } 351200 STD { int linux_sys_pread(int fd, char *buf, \ 352 size_t nbyte, linux_off_t offset); } 353201 STD { int linux_sys_pwrite(int fd, char *buf, \ 354 size_t nbyte, linux_off_t offset); } 355202 NOARGS { int sys___posix_chown(const char *path, \ 356 int uid, int gid); } 357203 NOARGS { int sys___getcwd(char *bufp, size_t length); } 358204 UNIMPL capget 359205 UNIMPL capset 360206 STD { int linux_sys_sigaltstack( \ 361 const struct linux_sigaltstack *ss, \ 362 struct linux_sigaltstack *oss); } 363207 UNIMPL sendfile 364208 UNIMPL 365209 UNIMPL 366#define linux_sys_mmap2_args linux_sys_mmap_args 367210 NOARGS { linux_off_t linux_sys_mmap2(unsigned long addr, \ 368 size_t len, int prot, int flags, int fd, \ 369 linux_off_t offset); } 370211 STD { int linux_sys_truncate64(const char *path, \ 371 off_t length); } 372212 STD { int linux_sys_ftruncate64(unsigned int fd, \ 373 off_t length); } 374213 STD { int linux_sys_stat64(const char *path, \ 375 struct linux_stat64 *sp); } 376214 STD { int linux_sys_lstat64(const char *path, \ 377 struct linux_stat64 *sp); } 378215 STD { int linux_sys_fstat64(int fd, \ 379 struct linux_stat64 *sp); } 380216 UNIMPL pivot_root 381217 NOARGS { int sys_mincore(void *addr, size_t len, char *vec); } 382218 NOARGS { int sys_madvise(void *addr, size_t len, int behav); } 383219 STD { int linux_sys_getdents64(int fd, \ 384 struct linux_dirent64 *dent, unsigned int count); } 385220 STD { int linux_sys_fcntl64(int fd, \ 386 int cmd, void *arg); } 387221 UNIMPL /* reserved */ 388222 UNIMPL gettid 389223 UNIMPL readahead 390224 STD { int linux_sys_setxattr(char *path, char *name, \ 391 void *value, size_t size, int flags); } 392225 STD { int linux_sys_lsetxattr(char *path, char *name, \ 393 void *value, size_t size, int flags); } 394226 STD { int linux_sys_fsetxattr(int fd, char *name, \ 395 void *value, size_t size, int flags); } 396227 STD { ssize_t linux_sys_getxattr(char *path, char *name, \ 397 void *value, size_t size); } 398228 STD { ssize_t linux_sys_lgetxattr(char *path, char *name, \ 399 void *value, size_t size); } 400229 STD { ssize_t linux_sys_fgetxattr(int fd, char *name, \ 401 void *value, size_t size); } 402230 STD { ssize_t linux_sys_listxattr(char *path, char *list, \ 403 size_t size); } 404231 STD { ssize_t linux_sys_llistxattr(char *path, char *list, \ 405 size_t size); } 406232 STD { ssize_t linux_sys_flistxattr(int fd, char *list, \ 407 size_t size); } 408233 STD { int linux_sys_removexattr(char *path, char *name); } 409234 STD { int linux_sys_lremovexattr(char *path, char *name); } 410235 STD { int linux_sys_fremovexattr(int fd, char *name); } 411236 UNIMPL tkill 412237 UNIMPL sendfile64 413238 UNIMPL futex 414239 UNIMPL sched_setaffinity 415240 UNIMPL sched_getaffinity 416241 UNIMPL io_setup 417242 UNIMPL io_destroy 418243 UNIMPL io_getevents 419244 UNIMPL io_submit 420245 UNIMPL io_cancel 421246 STD { int linux_sys_exit_group(int error_code); } 422247 UNIMPL lookup_dcookie 423248 UNIMPL epoll_create 424249 UNIMPL epoll_ctl 425250 UNIMPL epoll_wait 426251 UNIMPL remap_file_pages 427252 UNIMPL set_tid_address 428253 UNIMPL restart_syscall 429254 UNIMPL fadvise64 430255 STD { int linux_sys_statfs64(const char *path, \ 431 size_t sz, struct linux_statfs64 *sp); } 432256 STD { int linux_sys_fstatfs64(int fd, \ 433 size_t sz, struct linux_statfs64 *sp); } 434257 UNIMPL timer_create 435258 UNIMPL timer_settime 436259 UNIMPL timer_gettime 437260 UNIMPL timer_getoverrun 438261 UNIMPL timer_delete 439262 STD { int linux_sys_clock_settime(clockid_t which, \ 440 struct linux_timespec *tp); } 441263 STD { int linux_sys_clock_gettime(clockid_t which, \ 442 struct linux_timespec *tp); } 443264 STD { int linux_sys_clock_getres(clockid_t which, \ 444 struct linux_timespec *tp); } 445265 STD { int linux_sys_clock_nanosleep(clockid_t which, \ 446 int flags, struct linux_timespec *rqtp, \ 447 struct linux_timespec *rmtp); } 448266 UNIMPL tgkill 449267 UNIMPL utimes 450268 UNIMPL mbind 451269 UNIMPL get_mempolicy 452270 UNIMPL set_mempolicy 453271 UNIMPL mq_open 454272 UNIMPL mq_unlink 455273 UNIMPL mq_timedsend 456274 UNIMPL mq_timedreceive 457275 UNIMPL mq_notify 458276 UNIMPL mq_getsetattr 459