1 $NetBSD: syscalls.master,v 1.16 2004/09/20 18:41:07 jdolecek 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/sa.h> 54#include <sys/syscallargs.h> 55 56#include <compat/linux/common/linux_types.h> 57#include <compat/linux/common/linux_signal.h> 58#include <compat/linux/common/linux_siginfo.h> 59#include <compat/linux/common/linux_machdep.h> 60#include <compat/linux/common/linux_mmap.h> 61#include <compat/linux/common/linux_socketcall.h> 62 63#include <compat/linux/linux_syscallargs.h> 64 650 NOARGS { int linux_sys_nosys(void); } syscall 661 NOARGS { int sys_exit(int rval); } 672 NOARGS { int sys_fork(void); } 683 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 694 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 705 STD { int linux_sys_open(const char *path, int flags, \ 71 int mode); } 726 NOARGS { int sys_close(int fd); } 737 STD { int linux_sys_waitpid(int pid, int *status, \ 74 int options);} 758 STD { int linux_sys_creat(const char *path, int mode); } 769 STD { int linux_sys_link(const char *path, \ 77 const char *link); } 7810 STD { int linux_sys_unlink(const char *path); } 7911 STD { int linux_sys_execve(const char *path, char **argp, \ 80 char **envp); } 8112 STD { int linux_sys_chdir(const char *path); } 8213 STD { int linux_sys_time(linux_time_t *t); } 8314 STD { int linux_sys_mknod(const char *path, int mode, \ 84 int dev); } 8515 STD { int linux_sys_chmod(const char *path, int mode); } 8616 STD { int linux_sys_lchown(const char *path, int uid, \ 87 int gid); } 8817 UNIMPL 8918 OBSOL ostat 9019 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 91 int whence); } 9220 NOARGS MPSAFE { pid_t sys_getpid(void); } 9321 UNIMPL mount 9422 OBSOL umount 9523 NOARGS { int sys_setuid(uid_t uid); } 9624 NOARGS { uid_t sys_getuid(void); } 9725 STD { int linux_sys_stime(linux_time_t *t); } 9826 STD { int linux_sys_ptrace(int request, int pid, \ 99 int addr, int data); } 10027 STD { int linux_sys_alarm(unsigned int secs); } 10128 OBSOL ofstat 10229 STD { int linux_sys_pause(void); } 10330 STD { int linux_sys_utime(const char *path, \ 104 struct linux_utimbuf *times); } 10531 UNIMPL 10632 UNIMPL 10733 STD { int linux_sys_access(const char *path, int flags); } 10834 STD { int linux_sys_nice(int incr); } 10935 UNIMPL 11036 NOARGS { int sys_sync(void); } 11137 STD { int linux_sys_kill(int pid, int signum); } 11238 STD { int linux_sys_rename(const char *from, \ 113 const char *to); } 11439 STD { int linux_sys_mkdir(const char *path, int mode); } 11540 STD { int linux_sys_rmdir(const char *path); } 11641 NOARGS { int sys_dup(u_int fd); } 11742 STD { int linux_sys_pipe(int *pfds); } 11843 STD { int linux_sys_times(struct times *tms); } 11944 UNIMPL 12045 STD { int linux_sys_brk(char *nsize); } 12146 NOARGS { int sys_setgid(gid_t gid); } 12247 NOARGS { gid_t sys_getgid(void); } 12348 STD { int linux_sys_signal(int signum, \ 124 linux___sighandler_t handler); } 12549 NOARGS { uid_t sys_geteuid(void); } 12650 NOARGS { gid_t sys_getegid(void); } 12751 NOARGS { int sys_acct(char *path); } 12852 UNIMPL umount 12953 UNIMPL 13054 STD { int linux_sys_ioctl(int fd, u_long com, \ 131 caddr_t data); } 13255 STD { int linux_sys_fcntl(int fd, int cmd, void *arg); } 13356 OBSOL mpx 13457 NOARGS { int sys_setpgid(int pid, int pgid); } 13558 UNIMPL 13659 STD { int linux_sys_olduname(struct linux_old_utsname \ 137 *up); } 13860 NOARGS { int sys_umask(int newmask); } 13961 NOARGS { int sys_chroot(char *path); } 14062 UNIMPL ustat 14163 NOARGS { int sys_dup2(u_int from, u_int to); } 14264 NOARGS { pid_t sys_getppid(void); } 14365 NOARGS { int sys_getpgrp(void); } 14466 NOARGS { int sys_setsid(void); } 14567 STD { int linux_sys_sigaction(int signum, \ 146 const struct linux_old_sigaction *nsa, \ 147 struct linux_old_sigaction *osa); } 14868 STD { int linux_sys_siggetmask(void); } 14969 STD { int linux_sys_sigsetmask(linux_old_sigset_t mask); } 15070 NOARGS { int sys_setreuid(uid_t ruid, uid_t euid); } 15171 NOARGS { int sys_setregid(gid_t rgid, gid_t egid); } 15272 STD { int linux_sys_sigsuspend(caddr_t restart, \ 153 int oldmask, int mask); } 15473 STD { int linux_sys_sigpending(linux_old_sigset_t *set); } 15574 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 156 u_int len);} 15775 STD { int linux_sys_setrlimit(u_int which, \ 158 struct orlimit *rlp); } 15976 STD { int linux_sys_getrlimit(u_int which, \ 160 struct orlimit *rlp); } 16177 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 16278 STD { int linux_sys_gettimeofday(struct timeval *tp, \ 163 struct timezone *tzp); } 16479 STD { int linux_sys_settimeofday(struct timeval *tp, \ 165 struct timezone *tzp); } 16680 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 16781 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 16882 UNIMPL old_select 16983 STD { int linux_sys_symlink(const char *path, \ 170 const char *to); } 17184 NOARGS { int compat_43_sys_lstat(const char *path, \ 172 struct stat43 *up); } oolstat 17385 STD { int linux_sys_readlink(const char *name, char *buf, \ 174 int count); } 17586 UNIMPL uselib 176;86 STD { int linux_sys_uselib(const char *path); } 17787 STD { int linux_sys_swapon(char *name); } 17888 STD { int linux_sys_reboot(int magic1, int magic2, \ 179 int cmd, void *arg); } 18089 STD { int linux_sys_readdir(int fd, caddr_t dent, \ 181 unsigned int count); } 18290 NOARGS { int linux_sys_mmap(unsigned long addr, size_t len, \ 183 int prot, int flags, int fd, linux_off_t offset); } 18491 NOARGS { int sys_munmap(caddr_t addr, int len); } 18592 STD { int linux_sys_truncate(const char *path, \ 186 long length); } 18793 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } 18894 NOARGS { int sys_fchmod(int fd, int mode); } 18995 NOARGS { int sys___posix_fchown(int fd, int uid, int gid); } 19096 NOARGS { int sys_getpriority(int which, int who); } 19197 NOARGS { int sys_setpriority(int which, int who, int prio); } 19298 UNIMPL 19399 STD { int linux_sys_statfs(const char *path, \ 194 struct linux_statfs *sp); } 195100 STD { int linux_sys_fstatfs(int fd, \ 196 struct linux_statfs *sp); } 197101 STD { int linux_sys_ioperm(unsigned int lo, \ 198 unsigned int hi, int val); } 199102 STD { int linux_sys_socketcall(int what, void *args); } 200103 UNIMPL syslog 201104 NOARGS { int sys_setitimer(u_int which, \ 202 struct itimerval *itv, struct itimerval *oitv); } 203105 NOARGS { int sys_getitimer(u_int which, \ 204 struct itimerval *itv); } 205106 STD { int linux_sys_stat(const char *path, \ 206 struct linux_stat *sp); } 207107 STD { int linux_sys_lstat(const char *path, \ 208 struct linux_stat *sp); } 209108 STD { int linux_sys_fstat(int fd, struct linux_stat *sp); } 210109 STD { int linux_sys_uname(struct linux_utsname *up); } 211110 UNIMPL iopl 212111 UNIMPL vhangup 213112 UNIMPL idle 214113 UNIMPL vm86old 215114 STD { int linux_sys_wait4(int pid, int *status, \ 216 int options, struct rusage *rusage); } 217115 STD { int linux_sys_swapoff(const char *path); } 218116 STD { int linux_sys_sysinfo(struct linux_sysinfo *arg); } 219117 STD { int linux_sys_ipc(int what, int a1, int a2, int a3, \ 220 caddr_t ptr); } 221118 NOARGS { int sys_fsync(int fd); } 222119 STD { int linux_sys_sigreturn(struct linux_sigframe *sf); } 223120 STD { int linux_sys_clone(int flags, void *stack); } 224121 STD { int linux_sys_setdomainname(char *domainname, \ 225 int len); } 226122 STD { int linux_sys_new_uname(struct linux_utsname *up); } 227123 UNIMPL modify_ldt 228124 UNIMPL adjtimex 229125 STD { int linux_sys_mprotect(const void *start, \ 230 unsigned long len, int prot); } 231126 STD { int linux_sys_sigprocmask(int how, \ 232 const linux_old_sigset_t *set, \ 233 linux_old_sigset_t *oset); } 234127 UNIMPL create_module 235128 UNIMPL init_module 236129 UNIMPL delete_module 237130 UNIMPL get_kernel_syms 238131 UNIMPL quotactl 239132 STD { int linux_sys_getpgid(int pid); } 240133 NOARGS { int sys_fchdir(int fd); } 241134 UNIMPL bdflush 242135 UNIMPL sysfs 243136 STD { int linux_sys_personality(int per); } 244137 UNIMPL afs_syscall 245138 STD { int linux_sys_setfsuid(uid_t uid); } 246139 NOARGS { int linux_sys_getfsuid(void); } 247140 STD { int linux_sys_llseek(int fd, u_int32_t ohigh, \ 248 u_int32_t olow, caddr_t res, int whence); } 249141 STD { int linux_sys_getdents(int fd, \ 250 struct linux_dirent *dent, unsigned int count); } 251142 STD { int linux_sys_select(int nfds, fd_set *readfds, \ 252 fd_set *writefds, fd_set *exceptfds, \ 253 struct timeval *timeout); } 254143 NOARGS { int sys_flock(int fd, int how); } 255144 STD { int linux_sys_msync(caddr_t addr, int len, int fl); } 256145 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 257 u_int iovcnt); } 258146 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 259 u_int iovcnt); } 260147 STD { int linux_sys_cacheflush(void *addr, \ 261 int bytes, int cache); } 262148 UNIMPL cachectl 263149 STD { int linux_sys_sysmips(int cmd, int arg1, \ 264 int arg2, int arg3); } 265150 UNIMPL 266151 NOARGS { pid_t sys_getsid(pid_t pid); } 267152 STD { int linux_sys_fdatasync(int fd); } 268153 STD { int linux_sys___sysctl(struct linux___sysctl *lsp); } 269154 NOARGS { int sys_mlock(caddr_t addr, size_t len); } 270155 NOARGS { int sys_munlock(caddr_t addr, size_t len); } 271156 NOARGS { int sys_mlockall(int flags); } 272157 NOARGS { int sys_munlockall(void); } 273158 STD { int linux_sys_sched_setparam(pid_t pid, \ 274 const struct linux_sched_param *sp); } 275159 STD { int linux_sys_sched_getparam(pid_t pid, \ 276 struct linux_sched_param *sp); } 277160 STD { int linux_sys_sched_setscheduler(pid_t pid, \ 278 int policy, const struct linux_sched_param *sp); } 279161 STD { int linux_sys_sched_getscheduler(pid_t pid); } 280162 STD { int linux_sys_sched_yield(void); } 281163 STD { int linux_sys_sched_get_priority_max(int policy); } 282164 STD { int linux_sys_sched_get_priority_min(int policy); } 283165 UNIMPL sched_rr_get_interval 284166 NOARGS { int sys_nanosleep(const struct timespec *rqtp, \ 285 struct timespec *rmtp); } 286167 STD { void *linux_sys_mremap(void *old_address, \ 287 size_t old_size, size_t new_size, u_long flags); } 288168 NOARGS { int linux_sys_accept(int s, \ 289 struct osockaddr *name, int *anamelen); } 290169 NOARGS { int linux_sys_bind(int s, \ 291 const struct osockaddr *name, int namelen); } 292170 NOARGS { int linux_sys_connect(int s, \ 293 const struct sockaddr *name, int namelen); } 294171 NOARGS { int linux_sys_getpeername(int fdes, caddr_t asa, \ 295 int *alen); } 296172 NOARGS { int linux_sys_getsockname(int fdes, caddr_t asa, \ 297 int *alen); } 298173 NOARGS { int linux_sys_getsockopt(int s, int level, \ 299 int optname, void *optval, int *optlen); } 300174 NOARGS { int sys_listen(int s, int backlog); } 301175 NOARGS { int linux_sys_recv(int s, void *buf, int len, \ 302 int flags); } 303176 NOARGS { int linux_sys_recvfrom(int s, void *buf, int len, \ 304 int flags, struct osockaddr *from, \ 305 int *fromlenaddr); } 306177 NOARGS { int linux_sys_recvmsg(int s, struct msghdr *msg, \ 307 u_int flags); } 308178 NOARGS { int linux_sys_send(int s, caddr_t buf, int len, \ 309 int flags); } 310179 NOARGS { int linux_sys_sendmsg(int s, struct msghdr *msg, \ 311 u_int flags); } 312180 NOARGS { int linux_sys_sendto(int s, void *msg, \ 313 int len, int flags, struct osockaddr *to, \ 314 int tolen); } 315181 NOARGS { int linux_sys_setsockopt(int s, int level, \ 316 int optname, void *optval, int optlen); } 317182 UNIMPL shutdown 318183 NOARGS { int linux_sys_socket(int domain, int type, \ 319 int protocol); } 320184 NOARGS { int linux_sys_socketpair(int domain, int type, \ 321 int protocol, int *rsv); } 322185 STD { int linux_sys_setresuid(uid_t ruid, uid_t euid, \ 323 uid_t suid); } 324186 STD { int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \ 325 uid_t *suid); } 326187 UNIMPL query_module 327188 NOARGS { int sys_poll(struct pollfd *fds, u_int nfds, \ 328 int timeout); } 329189 UNIMPL nfsservctl 330190 STD { int linux_sys_setresgid(gid_t rgid, gid_t egid, \ 331 gid_t sgid); } 332191 STD { int linux_sys_getresgid(gid_t *rgid, gid_t *egid, \ 333 gid_t *sgid); } 334192 UNIMPL prctl 335193 STD { int linux_sys_rt_sigreturn( \ 336 struct linux_pt_regs regs); } 337194 STD { int linux_sys_rt_sigaction(int signum, \ 338 const struct linux_sigaction *nsa, \ 339 struct linux_sigaction *osa, \ 340 size_t sigsetsize); } 341195 STD { int linux_sys_rt_sigprocmask(int how, \ 342 const linux_sigset_t *set, \ 343 linux_sigset_t *oset, \ 344 size_t sigsetsize); } 345196 STD { int linux_sys_rt_sigpending( \ 346 linux_sigset_t *set, \ 347 size_t sigsetsize); } 348197 UNIMPL rt_sigtimedwait 349; XXX XAX int here? sigset_t here? siginfo_t 350198 STD { int linux_sys_rt_queueinfo(int pid, int signum, \ 351 void *uinfo); } 352199 STD { int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \ 353 size_t sigsetsize); } 354200 STD { int linux_sys_pread(int fd, char *buf, \ 355 size_t nbyte, linux_off_t offset); } 356201 STD { int linux_sys_pwrite(int fd, char *buf, \ 357 size_t nbyte, linux_off_t offset); } 358202 STD { int linux_sys_chown(const char *path, \ 359 int uid, int gid); } 360203 NOARGS { int sys___getcwd(char *bufp, size_t length); } 361204 UNIMPL capget 362205 UNIMPL capset 363206 STD { int linux_sys_sigaltstack( \ 364 const struct linux_sigaltstack *ss, \ 365 struct linux_sigaltstack *oss); } 366207 UNIMPL sendfile 367208 UNIMPL 368209 UNIMPL 369210 NOARGS { linux_off_t linux_sys_mmap2(unsigned long addr, \ 370 size_t len, int prot, int flags, int fd, \ 371 linux_off_t offset); } 372211 STD { int linux_sys_truncate64(const char *path, \ 373 off_t length); } 374212 STD { int linux_sys_ftruncate64(unsigned int fd, \ 375 off_t length); } 376213 STD { int linux_sys_stat64(const char *path, \ 377 struct linux_stat64 *sp); } 378214 STD { int linux_sys_lstat64(const char *path, \ 379 struct linux_stat64 *sp); } 380215 STD { int linux_sys_fstat64(int fd, \ 381 struct linux_stat64 *sp); } 382216 UNIMPL pivot_root 383217 NOARGS { int sys_mincore(void *addr, size_t len, char *vec); } 384218 NOARGS { int sys_madvise(void *addr, size_t len, int behav); } 385219 STD { int linux_sys_getdents64(int fd, \ 386 struct linux_dirent64 *dent, unsigned int count); } 387220 STD { int linux_sys_fcntl64(int fd, \ 388 int cmd, void *arg); } 389221 UNIMPL /* reserved */ 390222 UNIMPL gettid 391223 UNIMPL readahead 392224 UNIMPL setxattr 393225 UNIMPL lsetxattr 394226 UNIMPL fsetxattr 395227 UNIMPL getxattr 396228 UNIMPL lgetxattr 397229 UNIMPL fgetxattr 398230 UNIMPL listxattr 399231 UNIMPL llistxattr 400232 UNIMPL flistxattr 401233 UNIMPL removexattr 402234 UNIMPL lremovexattr 403235 UNIMPL fremovexattr 404236 UNIMPL tkill 405237 UNIMPL sendfile64 406238 UNIMPL futex 407239 UNIMPL sched_setaffinity 408240 UNIMPL sched_getaffinity 409241 UNIMPL io_setup 410242 UNIMPL io_destroy 411243 UNIMPL io_getevents 412244 UNIMPL io_submit 413245 UNIMPL io_cancel 414246 STD { int linux_sys_exit_group(int error_code); } 415247 UNIMPL lookup_dcookie 416248 UNIMPL epoll_create 417249 UNIMPL epoll_ctl 418250 UNIMPL epoll_wait 419251 UNIMPL remap_file_pages 420252 UNIMPL set_tid_address 421253 UNIMPL restart_syscall 422254 UNIMPL fadvise64 423255 STD { int linux_sys_statfs64(const char *path, \ 424 size_t sz, struct linux_statfs64 *sp); } 425256 STD { int linux_sys_fstatfs64(int fd, \ 426 size_t sz, struct linux_statfs64 *sp); } 427257 UNIMPL timer_create 428258 UNIMPL timer_settime 429259 UNIMPL timer_gettime 430260 UNIMPL timer_getoverrun 431261 UNIMPL timer_delete 432262 UNIMPL clock_settime 433263 UNIMPL clock_gettime 434264 UNIMPL clock_getres 435265 UNIMPL clock_nanosleep 436266 UNIMPL tgkill 437267 UNIMPL utimes 438268 UNIMPL mbind 439269 UNIMPL get_mempolicy 440270 UNIMPL set_mempolicy 441271 UNIMPL mq_open 442272 UNIMPL mq_unlink 443273 UNIMPL mq_timedsend 444274 UNIMPL mq_timedreceive 445275 UNIMPL mq_notify 446276 UNIMPL mq_getsetattr 447