syscalls.master revision 1.21
1 $NetBSD: syscalls.master,v 1.21 1998/12/10 17:03:19 christos Exp $ 2 3; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 4 5; NetBSD COMPAT_FREEBSD 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; 20; The compat options are defined in the syscalls.conf file, and the 21; compat option name is prefixed to the syscall name. Other than 22; that, they're like NODEF (for 'compat' options), or STD (for 23; 'libcompat' options). 24; 25; The type-dependent arguments are as follows: 26; For STD, NODEF, NOARGS, and compat syscalls: 27; { pseudo-proto } [alias] 28; For other syscalls: 29; [comment] 30; 31; #ifdef's, etc. may be included, and are copied to the output files. 32; #include's are copied to the syscall names and switch definition files only. 33 34#include "opt_ktrace.h" 35#include "opt_nfsserver.h" 36#include "opt_sysv.h" 37#include "opt_compat_43.h" 38 39#include "fs_lfs.h" 40#include "fs_nfs.h" 41 42#include <sys/param.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/freebsd/freebsd_syscallargs.h> 49 50#include <machine/freebsd_machdep.h> 51 52; Reserved/unimplemented system calls in the range 0-150 inclusive 53; are reserved for use in future Berkeley releases. 54; Additional system calls implemented in vendor and other 55; redistributions should be placed in the reserved range at the end 56; of the current calls. 57 580 NOARGS { int sys_nosys(void); } syscall 591 NOARGS { int sys_exit(int rval); } 602 NOARGS { int sys_fork(void); } 613 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 624 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 635 STD { int freebsd_sys_open(char *path, int flags, \ 64 int mode); } 656 NOARGS { int sys_close(int fd); } 667 NOARGS { int sys_wait4(int pid, int *status, int options, \ 67 struct rusage *rusage); } 688 STD { int compat_43_freebsd_sys_creat(char *path, \ 69 int mode); } ocreat 709 STD { int freebsd_sys_link(char *path, char *link); } 7110 STD { int freebsd_sys_unlink(char *path); } 7211 OBSOL execv 7312 STD { int freebsd_sys_chdir(char *path); } 7413 NOARGS { int sys_fchdir(int fd); } 7514 STD { int freebsd_sys_mknod(char *path, int mode, \ 76 int dev); } 7715 STD { int freebsd_sys_chmod(char *path, int mode); } 7816 STD { int freebsd_sys_chown(char *path, int uid, int gid); } 7917 NOARGS { int sys_obreak(char *nsize); } break 8018 NOARGS { int sys_getfsstat(struct statfs *buf, long bufsize, \ 81 int flags); } 8219 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 83 int whence); } olseek 8420 NOARGS { pid_t sys_getpid(void); } 8521 STD { int freebsd_sys_mount(int type, char *path, \ 86 int flags, caddr_t data); } 8722 STD { int freebsd_sys_unmount(char *path, int flags); } 8823 NOARGS { int sys_setuid(uid_t uid); } 8924 NOARGS { uid_t sys_getuid(void); } 9025 NOARGS { uid_t sys_geteuid(void); } 9126 STD { int freebsd_sys_ptrace(int req, pid_t pid, \ 92 caddr_t addr, int data); } 9327 NOARGS { int sys_recvmsg(int s, struct msghdr *msg, \ 94 int flags); } 9528 NOARGS { int sys_sendmsg(int s, caddr_t msg, int flags); } 9629 NOARGS { int sys_recvfrom(int s, caddr_t buf, size_t len, \ 97 int flags, caddr_t from, int *fromlenaddr); } 9830 NOARGS { int sys_accept(int s, caddr_t name, int *anamelen); } 9931 NOARGS { int sys_getpeername(int fdes, caddr_t asa, \ 100 int *alen); } 10132 NOARGS { int sys_getsockname(int fdes, caddr_t asa, \ 102 int *alen); } 10333 STD { int freebsd_sys_access(char *path, int flags); } 10434 STD { int freebsd_sys_chflags(char *path, int flags); } 10535 NOARGS { int sys_fchflags(int fd, int flags); } 10636 NOARGS { int sys_sync(void); } 10737 NOARGS { int sys_kill(int pid, int signum); } 10838 STD { int compat_43_freebsd_sys_stat(char *path, \ 109 struct stat43 *ub); } stat43 11039 NOARGS { pid_t sys_getppid(void); } 11140 STD { int compat_43_freebsd_sys_lstat(char *path, \ 112 struct stat43 *ub); } lstat43 11341 NOARGS { int sys_dup(u_int fd); } 11442 NOARGS { int sys_pipe(void); } 11543 NOARGS { gid_t sys_getegid(void); } 11644 NOARGS { int sys_profil(caddr_t samples, u_int size, \ 117 u_int offset, u_int scale); } 118#ifdef KTRACE 11945 NOARGS { int sys_ktrace(char *fname, int ops, int facs, \ 120 int pid); } 121#else 12245 UNIMPL ktrace 123#endif 12446 NOARGS { int compat_13_sys_sigaction(int signum, \ 125 const struct sigaction13 *nsa, \ 126 struct sigaction13 *osa); } 12747 NOARGS { gid_t sys_getgid(void); } 12848 NOARGS { int compat_13_sys_sigprocmask(int how, \ 129 int mask); } 13049 NOARGS { int sys___getlogin(char *namebuf, u_int namelen); } 13150 NOARGS { int sys_setlogin(char *namebuf); } 13251 NOARGS { int sys_acct(char *path); } 13352 NOARGS { int compat_13_sys_sigpending(void); } 13453 NOARGS { int compat_13_sys_sigaltstack( \ 135 const struct sigaltstack13 *nss, \ 136 struct sigaltstack13 *oss); } 13754 STD { int freebsd_sys_ioctl(int fd, u_long com, \ 138 caddr_t data); } 13955 NOARGS { int sys_reboot(int opt); } 14056 STD { int freebsd_sys_revoke(char *path); } 14157 STD { int freebsd_sys_symlink(char *path, char *link); } 14258 STD { int freebsd_sys_readlink(char *path, char *buf, \ 143 int count); } 14459 STD { int freebsd_sys_execve(char *path, char **argp, \ 145 char **envp); } 14660 NOARGS { int sys_umask(int newmask); } 14761 STD { int freebsd_sys_chroot(char *path); } 14862 NOARGS { int compat_43_sys_fstat(int fd, struct stat43 *sb); } \ 149 fstat43 15063 NOARGS { int compat_43_sys_getkerninfo(int op, char *where, \ 151 int *size, int arg); } ogetkerninfo 15264 NOARGS { int compat_43_sys_getpagesize(void); } ogetpagesize 15365 STD { int freebsd_sys_msync(caddr_t addr, size_t len, \ 154 int flags); } 15566 NOARGS { int sys_vfork(void); } 15667 OBSOL vread 15768 OBSOL vwrite 15869 NOARGS { int sys_sbrk(int incr); } 15970 NOARGS { int sys_sstk(int incr); } 16071 NOARGS { int compat_43_sys_mmap(caddr_t addr, size_t len, \ 161 int prot, int flags, int fd, long pos); } ommap 16272 NOARGS { int sys_ovadvise(int anom); } vadvise 16373 NOARGS { int sys_munmap(caddr_t addr, size_t len); } 16474 NOARGS { int sys_mprotect(caddr_t addr, size_t len, \ 165 int prot); } 16675 NOARGS { int sys_madvise(caddr_t addr, size_t len, \ 167 int behav); } 16876 OBSOL vhangup 16977 OBSOL vlimit 17078 NOARGS { int sys_mincore(caddr_t addr, size_t len, char *vec); } 17179 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 17280 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 17381 NOARGS { int sys_getpgrp(void); } 17482 NOARGS { int sys_setpgid(int pid, int pgid); } 17583 NOARGS { int sys_setitimer(u_int which, \ 176 struct itimerval *itv, struct itimerval *oitv); } 17784 NOARGS { int compat_43_sys_wait(void); } owait 17885 NOARGS { int compat_12_sys_swapon(char *name); } 17986 NOARGS { int sys_getitimer(u_int which, \ 180 struct itimerval *itv); } 18187 NOARGS { int compat_43_sys_gethostname(char *hostname, \ 182 u_int len); } ogethostname 18388 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 184 u_int len); } osethostname 18589 NOARGS { int compat_43_sys_getdtablesize(void); } \ 186 ogetdtablesize 18790 NOARGS { int sys_dup2(u_int from, u_int to); } 18891 UNIMPL getdopt 18992 NOARGS { int sys_fcntl(int fd, int cmd, void *arg); } 19093 NOARGS { int sys_select(u_int nd, fd_set *in, fd_set *ou, \ 191 fd_set *ex, struct timeval *tv); } 19294 UNIMPL setdopt 19395 NOARGS { int sys_fsync(int fd); } 19496 NOARGS { int sys_setpriority(int which, int who, int prio); } 19597 NOARGS { int sys_socket(int domain, int type, int protocol); } 19698 NOARGS { int sys_connect(int s, caddr_t name, int namelen); } 19799 NOARGS { int compat_43_sys_accept(int s, caddr_t name, \ 198 int *anamelen); } oaccept 199100 NOARGS { int sys_getpriority(int which, int who); } 200101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \ 201 int flags); } osend 202102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \ 203 int flags); } orecv 204103 STD { int freebsd_sys_sigreturn( \ 205 struct freebsd_sigcontext *scp); } 206104 NOARGS { int sys_bind(int s, caddr_t name, int namelen); } 207105 NOARGS { int sys_setsockopt(int s, int level, int name, \ 208 caddr_t val, int valsize); } 209106 NOARGS { int sys_listen(int s, int backlog); } 210107 OBSOL vtimes 211108 NOARGS { int compat_43_sys_sigvec(int signum, \ 212 struct sigvec *nsv, struct sigvec *osv); } osigvec 213109 NOARGS { int compat_43_sys_sigblock(int mask); } osigblock 214110 NOARGS { int compat_43_sys_sigsetmask(int mask); } osigsetmask 215111 NOARGS { int compat_13_sys_sigsuspend(int mask); } 216112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \ 217 struct sigstack *oss); } osigstack 218113 NOARGS { int compat_43_sys_recvmsg(int s, \ 219 struct omsghdr *msg, int flags); } orecvmsg 220114 NOARGS { int compat_43_sys_sendmsg(int s, caddr_t msg, \ 221 int flags); } osendmsg 222#ifdef TRACE 223115 NOARGS { int sys_vtrace(int request, int value); } 224#else 225115 OBSOL vtrace 226#endif 227116 NOARGS { int sys_gettimeofday(struct timeval *tp, \ 228 struct timezone *tzp); } 229117 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 230118 NOARGS { int sys_getsockopt(int s, int level, int name, \ 231 caddr_t val, int *avalsize); } 232119 OBSOL resuba 233120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 234 u_int iovcnt); } 235121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 236 u_int iovcnt); } 237122 NOARGS { int sys_settimeofday(struct timeval *tv, \ 238 struct timezone *tzp); } 239123 NOARGS { int sys_fchown(int fd, int uid, int gid); } 240124 NOARGS { int sys_fchmod(int fd, int mode); } 241125 NOARGS { int compat_43_sys_recvfrom(int s, caddr_t buf, \ 242 size_t len, int flags, caddr_t from, \ 243 int *fromlenaddr); } orecvfrom 244126 NOARGS { int sys_setreuid(int ruid, int euid); } 245127 NOARGS { int sys_setregid(int rgid, int egid); } 246128 STD { int freebsd_sys_rename(char *from, char *to); } 247129 STD { int compat_43_freebsd_sys_truncate(char *path, \ 248 long length); } otruncate 249130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } \ 250 oftruncate 251131 NOARGS { int sys_flock(int fd, int how); } 252132 STD { int freebsd_sys_mkfifo(char *path, int mode); } 253133 NOARGS { int sys_sendto(int s, caddr_t buf, size_t len, \ 254 int flags, caddr_t to, int tolen); } 255134 NOARGS { int sys_shutdown(int s, int how); } 256135 NOARGS { int sys_socketpair(int domain, int type, \ 257 int protocol, int *rsv); } 258136 STD { int freebsd_sys_mkdir(char *path, int mode); } 259137 STD { int freebsd_sys_rmdir(char *path); } 260138 NOARGS { int sys_utimes(char *path, struct timeval *tptr); } 261139 OBSOL 4.2 sigreturn 262140 NOARGS { int sys_adjtime(struct timeval *delta, \ 263 struct timeval *olddelta); } 264141 NOARGS { int compat_43_sys_getpeername(int fdes, caddr_t asa, \ 265 int *alen); } ogetpeername 266142 NOARGS { int32_t compat_43_sys_gethostid(void); } ogethostid 267143 NOARGS { int compat_43_sys_sethostid(int32_t hostid); } \ 268 osethostid 269144 NOARGS { int compat_43_sys_getrlimit(u_int which, \ 270 struct orlimit *rlp); } ogetrlimit 271145 NOARGS { int compat_43_sys_setrlimit(u_int which, \ 272 struct orlimit *rlp); } osetrlimit 273146 NOARGS { int compat_43_sys_killpg(int pgid, int signum); } \ 274 okillpg 275147 NOARGS { int sys_setsid(void); } 276148 NOARGS { int sys_quotactl(char *path, int cmd, int uid, \ 277 caddr_t arg); } 278149 NOARGS { int compat_43_sys_quota(void); } oquota 279150 NOARGS { int compat_43_sys_getsockname(int fdec, caddr_t asa, \ 280 int *alen); } ogetsockname 281 282; Syscalls 151-180 inclusive are reserved for vendor-specific 283; system calls. (This includes various calls added for compatibity 284; with other Unix variants.) 285; Some of these calls are now supported by BSD... 286151 UNIMPL 287152 UNIMPL 288153 UNIMPL 289154 UNIMPL 290#if defined(NFS) || defined(NFSSERVER) 291155 NOARGS { int sys_nfssvc(int flag, caddr_t argp); } 292#else 293155 UNIMPL 294#endif 295156 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \ 296 u_int count, long *basep); } ogetdirentries 297157 STD { int freebsd_sys_statfs(char *path, \ 298 struct statfs *buf); } 299158 NOARGS { int sys_fstatfs(int fd, struct statfs *buf); } 300159 UNIMPL 301160 UNIMPL 302#ifdef NFS 303161 STD { int freebsd_sys_getfh(char *fname, fhandle_t *fhp); } 304#else 305161 UNIMPL getfh 306#endif 307162 NOARGS { int compat_09_sys_getdomainname(char *domainname, \ 308 int len); } 309163 NOARGS { int compat_09_sys_setdomainname(char *domainname, \ 310 int len); } 311164 NOARGS { int compat_09_sys_uname(struct outsname *name); } 312165 NOARGS { int sys_sysarch(int op, char *parms); } 313166 STD { int freebsd_sys_rtprio(int function, pid_t pid, \ 314 struct freebsd_rtprio *rtp); } 315167 UNIMPL 316168 UNIMPL 317; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 318#if defined(SYSVSEM) && !defined(alpha) 319169 STD { int freebsd_sys_semsys(int which, int a2, int a3, \ 320 int a4, int a5); } 321#else 322169 UNIMPL 1.0 semsys 323#endif 324; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 325#if defined(SYSVMSG) && !defined(alpha) 326170 STD { int freebsd_sys_msgsys(int which, int a2, int a3, \ 327 int a4, int a5, int a6); } 328#else 329170 UNIMPL 1.0 msgsys 330#endif 331; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 332#if defined(SYSVSHM) && !defined(alpha) 333171 STD { int freebsd_sys_shmsys(int which, int a2, int a3, \ 334 int a4); } 335#else 336171 UNIMPL 1.0 shmsys 337#endif 338172 UNIMPL 339173 UNIMPL 340174 UNIMPL 341175 UNIMPL 342176 STD { int freebsd_ntp_adjtime(struct freebsd_timex *tp); } 343177 UNIMPL 344178 UNIMPL 345179 UNIMPL 346180 UNIMPL 347 348; Syscalls 180-199 are used by/reserved for BSD 349181 NOARGS { int sys_setgid(gid_t gid); } 350182 NOARGS { int sys_setegid(gid_t egid); } 351183 NOARGS { int sys_seteuid(uid_t euid); } 352#ifdef LFS 353184 NOARGS { int lfs_bmapv(fsid_t *fsidp, \ 354 struct block_info *blkiov, int blkcnt); } 355185 NOARGS { int lfs_markv(fsid_t *fsidp, \ 356 struct block_info *blkiov, int blkcnt); } 357186 NOARGS { int lfs_segclean(fsid_t *fsidp, u_long segment); } 358187 NOARGS { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 359#else 360184 UNIMPL 361185 UNIMPL 362186 UNIMPL 363187 UNIMPL 364#endif 365188 STD { int freebsd_sys_stat(char *path, \ 366 struct stat12 *ub); } 367189 NOARGS { int compat_12_sys_fstat(int fd, \ 368 struct stat12 *sb); } 369190 STD { int freebsd_sys_lstat(char *path, \ 370 struct stat12 *ub); } 371191 STD { int freebsd_sys_pathconf(char *path, int name); } 372192 NOARGS { int sys_fpathconf(int fd, int name); } 373193 UNIMPL 374194 NOARGS { int sys_getrlimit(u_int which, struct rlimit *rlp); } 375195 NOARGS { int sys_setrlimit(u_int which, struct rlimit *rlp); } 376196 NOARGS { int compat_12_sys_getdirentries(int fd, char *buf, \ 377 u_int count, long *basep); } 378197 NOARGS { caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \ 379 int flags, int fd, long pad, off_t pos); } 380198 NOARGS { int sys_nosys(void); } __syscall 381199 NOARGS { off_t sys_lseek(int fd, int pad, off_t offset, \ 382 int whence); } 383200 STD { int freebsd_sys_truncate(char *path, int pad, \ 384 off_t length); } 385201 NOARGS { int sys_ftruncate(int fd, int pad, off_t length); } 386202 NOARGS { int sys___sysctl(int *name, u_int namelen, \ 387 void *old, size_t *oldlenp, void *new, \ 388 size_t newlen); } 389203 NOARGS { int sys_mlock(caddr_t addr, size_t len); } 390204 NOARGS { int sys_munlock(caddr_t addr, size_t len); } 391#ifdef FREEBSD_BASED_ON_44LITE_R2 392205 STD { int freebsd_sys_undelete(char *path); } 393#else 394205 UNIMPL 395#endif 396206 UNIMPL 397207 UNIMPL 398208 UNIMPL 399209 UNIMPL 400; 401; Syscalls 210-219 are reserved for dynamically loaded syscalls 402; 403210 UNIMPL 404211 UNIMPL 405212 UNIMPL 406213 UNIMPL 407214 UNIMPL 408215 UNIMPL 409216 UNIMPL 410217 UNIMPL 411218 UNIMPL 412219 UNIMPL 413; 414; Syscalls 220-239 are reserved for syscalls imported from NetBSD 415; 416220 UNIMPL 417221 UNIMPL 418222 UNIMPL 419223 UNIMPL 420224 UNIMPL 421225 UNIMPL 422226 UNIMPL 423227 UNIMPL 424228 UNIMPL 425229 UNIMPL 426230 UNIMPL 427231 UNIMPL 428232 UNIMPL 429233 UNIMPL 430234 UNIMPL 431235 UNIMPL 432236 UNIMPL 433237 UNIMPL 434238 UNIMPL 435239 UNIMPL 436240 UNIMPL 437241 UNIMPL 438242 UNIMPL 439243 UNIMPL 440244 UNIMPL 441245 UNIMPL 442246 UNIMPL 443247 UNIMPL 444248 UNIMPL 445249 UNIMPL 446250 UNIMPL 447251 UNIMPL 448252 UNIMPL 449253 STD { int freebsd_sys_issetugid(void); } 450254 STD { int freebsd_sys_lchown(char *path, int uid, \ 451 int gid); } 452