syscalls.master revision 1.17
1 $NetBSD: syscalls.master,v 1.17 1998/06/25 21:17:39 thorpej 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 36#include "fs_lfs.h" 37#include "fs_nfs.h" 38 39#include <sys/param.h> 40#include <sys/systm.h> 41#include <sys/signal.h> 42#include <sys/mount.h> 43#include <sys/syscallargs.h> 44 45#include <compat/freebsd/freebsd_syscallargs.h> 46 47#include <machine/freebsd_machdep.h> 48 49; Reserved/unimplemented system calls in the range 0-150 inclusive 50; are reserved for use in future Berkeley releases. 51; Additional system calls implemented in vendor and other 52; redistributions should be placed in the reserved range at the end 53; of the current calls. 54 550 NOARGS { int sys_nosys(void); } syscall 561 NOARGS { int sys_exit(int rval); } 572 NOARGS { int sys_fork(void); } 583 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 594 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 605 STD { int freebsd_sys_open(char *path, int flags, \ 61 int mode); } 626 NOARGS { int sys_close(int fd); } 637 NOARGS { int sys_wait4(int pid, int *status, int options, \ 64 struct rusage *rusage); } 658 STD { int compat_43_freebsd_sys_creat(char *path, \ 66 int mode); } ocreat 679 STD { int freebsd_sys_link(char *path, char *link); } 6810 STD { int freebsd_sys_unlink(char *path); } 6911 OBSOL execv 7012 STD { int freebsd_sys_chdir(char *path); } 7113 NOARGS { int sys_fchdir(int fd); } 7214 STD { int freebsd_sys_mknod(char *path, int mode, \ 73 int dev); } 7415 STD { int freebsd_sys_chmod(char *path, int mode); } 7516 STD { int freebsd_sys_chown(char *path, int uid, int gid); } 7617 NOARGS { int sys_obreak(char *nsize); } break 7718 NOARGS { int sys_getfsstat(struct statfs *buf, long bufsize, \ 78 int flags); } 7919 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 80 int whence); } olseek 8120 NOARGS { pid_t sys_getpid(void); } 8221 STD { int freebsd_sys_mount(int type, char *path, \ 83 int flags, caddr_t data); } 8422 STD { int freebsd_sys_unmount(char *path, int flags); } 8523 NOARGS { int sys_setuid(uid_t uid); } 8624 NOARGS { uid_t sys_getuid(void); } 8725 NOARGS { uid_t sys_geteuid(void); } 8826 STD { int freebsd_sys_ptrace(int req, pid_t pid, \ 89 caddr_t addr, int data); } 9027 NOARGS { int sys_recvmsg(int s, struct msghdr *msg, \ 91 int flags); } 9228 NOARGS { int sys_sendmsg(int s, caddr_t msg, int flags); } 9329 NOARGS { int sys_recvfrom(int s, caddr_t buf, size_t len, \ 94 int flags, caddr_t from, int *fromlenaddr); } 9530 NOARGS { int sys_accept(int s, caddr_t name, int *anamelen); } 9631 NOARGS { int sys_getpeername(int fdes, caddr_t asa, \ 97 int *alen); } 9832 NOARGS { int sys_getsockname(int fdes, caddr_t asa, \ 99 int *alen); } 10033 STD { int freebsd_sys_access(char *path, int flags); } 10134 STD { int freebsd_sys_chflags(char *path, int flags); } 10235 NOARGS { int sys_fchflags(int fd, int flags); } 10336 NOARGS { int sys_sync(void); } 10437 NOARGS { int sys_kill(int pid, int signum); } 10538 STD { int compat_43_freebsd_sys_stat(char *path, \ 106 struct stat43 *ub); } stat43 10739 NOARGS { pid_t sys_getppid(void); } 10840 STD { int compat_43_freebsd_sys_lstat(char *path, \ 109 struct stat43 *ub); } lstat43 11041 NOARGS { int sys_dup(u_int fd); } 11142 NOARGS { int sys_pipe(void); } 11243 NOARGS { gid_t sys_getegid(void); } 11344 NOARGS { int sys_profil(caddr_t samples, u_int size, \ 114 u_int offset, u_int scale); } 115#ifdef KTRACE 11645 NOARGS { int sys_ktrace(char *fname, int ops, int facs, \ 117 int pid); } 118#else 11945 UNIMPL ktrace 120#endif 12146 NOARGS { int sys_sigaction(int signum, struct sigaction *nsa, \ 122 struct sigaction *osa); } 12347 NOARGS { gid_t sys_getgid(void); } 12448 NOARGS { int sys_sigprocmask(int how, sigset_t mask); } 12549 NOARGS { int sys___getlogin(char *namebuf, u_int namelen); } 12650 NOARGS { int sys_setlogin(char *namebuf); } 12751 NOARGS { int sys_acct(char *path); } 12852 NOARGS { int sys_sigpending(void); } 12953 NOARGS { int compat_13_sys_sigaltstack( \ 130 const struct sigaltstack13 *nss, \ 131 struct sigaltstack13 *oss); } 13254 STD { int freebsd_sys_ioctl(int fd, u_long com, \ 133 caddr_t data); } 13455 NOARGS { int sys_reboot(int opt); } 13556 STD { int freebsd_sys_revoke(char *path); } 13657 STD { int freebsd_sys_symlink(char *path, char *link); } 13758 STD { int freebsd_sys_readlink(char *path, char *buf, \ 138 int count); } 13959 STD { int freebsd_sys_execve(char *path, char **argp, \ 140 char **envp); } 14160 NOARGS { int sys_umask(int newmask); } 14261 STD { int freebsd_sys_chroot(char *path); } 14362 NOARGS { int compat_43_sys_fstat(int fd, struct stat43 *sb); } \ 144 fstat43 14563 NOARGS { int compat_43_sys_getkerninfo(int op, char *where, \ 146 int *size, int arg); } ogetkerninfo 14764 NOARGS { int compat_43_sys_getpagesize(void); } ogetpagesize 14865 STD { int freebsd_sys_msync(caddr_t addr, size_t len, \ 149 int flags); } 15066 NOARGS { int sys_vfork(void); } 15167 OBSOL vread 15268 OBSOL vwrite 15369 NOARGS { int sys_sbrk(int incr); } 15470 NOARGS { int sys_sstk(int incr); } 15571 NOARGS { int compat_43_sys_mmap(caddr_t addr, size_t len, \ 156 int prot, int flags, int fd, long pos); } ommap 15772 NOARGS { int sys_ovadvise(int anom); } vadvise 15873 NOARGS { int sys_munmap(caddr_t addr, size_t len); } 15974 NOARGS { int sys_mprotect(caddr_t addr, size_t len, \ 160 int prot); } 16175 NOARGS { int sys_madvise(caddr_t addr, size_t len, \ 162 int behav); } 16376 OBSOL vhangup 16477 OBSOL vlimit 16578 NOARGS { int sys_mincore(caddr_t addr, size_t len, char *vec); } 16679 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 16780 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 16881 NOARGS { int sys_getpgrp(void); } 16982 NOARGS { int sys_setpgid(int pid, int pgid); } 17083 NOARGS { int sys_setitimer(u_int which, \ 171 struct itimerval *itv, struct itimerval *oitv); } 17284 NOARGS { int compat_43_sys_wait(void); } owait 17385 NOARGS { int compat_12_sys_swapon(char *name); } 17486 NOARGS { int sys_getitimer(u_int which, \ 175 struct itimerval *itv); } 17687 NOARGS { int compat_43_sys_gethostname(char *hostname, \ 177 u_int len); } ogethostname 17888 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 179 u_int len); } osethostname 18089 NOARGS { int compat_43_sys_getdtablesize(void); } \ 181 ogetdtablesize 18290 NOARGS { int sys_dup2(u_int from, u_int to); } 18391 UNIMPL getdopt 18492 NOARGS { int sys_fcntl(int fd, int cmd, void *arg); } 18593 NOARGS { int sys_select(u_int nd, fd_set *in, fd_set *ou, \ 186 fd_set *ex, struct timeval *tv); } 18794 UNIMPL setdopt 18895 NOARGS { int sys_fsync(int fd); } 18996 NOARGS { int sys_setpriority(int which, int who, int prio); } 19097 NOARGS { int sys_socket(int domain, int type, int protocol); } 19198 NOARGS { int sys_connect(int s, caddr_t name, int namelen); } 19299 NOARGS { int compat_43_sys_accept(int s, caddr_t name, \ 193 int *anamelen); } oaccept 194100 NOARGS { int sys_getpriority(int which, int who); } 195101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \ 196 int flags); } osend 197102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \ 198 int flags); } orecv 199103 STD { int freebsd_sys_sigreturn( \ 200 struct freebsd_sigcontext *scp); } 201104 NOARGS { int sys_bind(int s, caddr_t name, int namelen); } 202105 NOARGS { int sys_setsockopt(int s, int level, int name, \ 203 caddr_t val, int valsize); } 204106 NOARGS { int sys_listen(int s, int backlog); } 205107 OBSOL vtimes 206108 NOARGS { int compat_43_sys_sigvec(int signum, \ 207 struct sigvec *nsv, struct sigvec *osv); } osigvec 208109 NOARGS { int compat_43_sys_sigblock(int mask); } osigblock 209110 NOARGS { int compat_43_sys_sigsetmask(int mask); } osigsetmask 210111 NOARGS { int sys_sigsuspend(int mask); } 211112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \ 212 struct sigstack *oss); } osigstack 213113 NOARGS { int compat_43_sys_recvmsg(int s, \ 214 struct omsghdr *msg, int flags); } orecvmsg 215114 NOARGS { int compat_43_sys_sendmsg(int s, caddr_t msg, \ 216 int flags); } osendmsg 217#ifdef TRACE 218115 NOARGS { int sys_vtrace(int request, int value); } 219#else 220115 OBSOL vtrace 221#endif 222116 NOARGS { int sys_gettimeofday(struct timeval *tp, \ 223 struct timezone *tzp); } 224117 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 225118 NOARGS { int sys_getsockopt(int s, int level, int name, \ 226 caddr_t val, int *avalsize); } 227119 OBSOL resuba 228120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 229 u_int iovcnt); } 230121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 231 u_int iovcnt); } 232122 NOARGS { int sys_settimeofday(struct timeval *tv, \ 233 struct timezone *tzp); } 234123 NOARGS { int sys_fchown(int fd, int uid, int gid); } 235124 NOARGS { int sys_fchmod(int fd, int mode); } 236125 NOARGS { int compat_43_sys_recvfrom(int s, caddr_t buf, \ 237 size_t len, int flags, caddr_t from, \ 238 int *fromlenaddr); } orecvfrom 239126 NOARGS { int sys_setreuid(int ruid, int euid); } 240127 NOARGS { int sys_setregid(int rgid, int egid); } 241128 STD { int freebsd_sys_rename(char *from, char *to); } 242129 STD { int compat_43_freebsd_sys_truncate(char *path, \ 243 long length); } otruncate 244130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } \ 245 oftruncate 246131 NOARGS { int sys_flock(int fd, int how); } 247132 STD { int freebsd_sys_mkfifo(char *path, int mode); } 248133 NOARGS { int sys_sendto(int s, caddr_t buf, size_t len, \ 249 int flags, caddr_t to, int tolen); } 250134 NOARGS { int sys_shutdown(int s, int how); } 251135 NOARGS { int sys_socketpair(int domain, int type, \ 252 int protocol, int *rsv); } 253136 STD { int freebsd_sys_mkdir(char *path, int mode); } 254137 STD { int freebsd_sys_rmdir(char *path); } 255138 NOARGS { int sys_utimes(char *path, struct timeval *tptr); } 256139 OBSOL 4.2 sigreturn 257140 NOARGS { int sys_adjtime(struct timeval *delta, \ 258 struct timeval *olddelta); } 259141 NOARGS { int compat_43_sys_getpeername(int fdes, caddr_t asa, \ 260 int *alen); } ogetpeername 261142 NOARGS { int32_t compat_43_sys_gethostid(void); } ogethostid 262143 NOARGS { int compat_43_sys_sethostid(int32_t hostid); } \ 263 osethostid 264144 NOARGS { int compat_43_sys_getrlimit(u_int which, \ 265 struct orlimit *rlp); } ogetrlimit 266145 NOARGS { int compat_43_sys_setrlimit(u_int which, \ 267 struct orlimit *rlp); } osetrlimit 268146 NOARGS { int compat_43_sys_killpg(int pgid, int signum); } \ 269 okillpg 270147 NOARGS { int sys_setsid(void); } 271148 NOARGS { int sys_quotactl(char *path, int cmd, int uid, \ 272 caddr_t arg); } 273149 NOARGS { int compat_43_sys_quota(void); } oquota 274150 NOARGS { int compat_43_sys_getsockname(int fdec, caddr_t asa, \ 275 int *alen); } ogetsockname 276 277; Syscalls 151-180 inclusive are reserved for vendor-specific 278; system calls. (This includes various calls added for compatibity 279; with other Unix variants.) 280; Some of these calls are now supported by BSD... 281151 UNIMPL 282152 UNIMPL 283153 UNIMPL 284154 UNIMPL 285#if defined(NFS) || defined(NFSSERVER) 286155 NOARGS { int sys_nfssvc(int flag, caddr_t argp); } 287#else 288155 UNIMPL 289#endif 290156 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \ 291 u_int count, long *basep); } ogetdirentries 292157 STD { int freebsd_sys_statfs(char *path, \ 293 struct statfs *buf); } 294158 NOARGS { int sys_fstatfs(int fd, struct statfs *buf); } 295159 UNIMPL 296160 UNIMPL 297#ifdef NFS 298161 STD { int freebsd_sys_getfh(char *fname, fhandle_t *fhp); } 299#else 300161 UNIMPL getfh 301#endif 302162 NOARGS { int compat_09_sys_getdomainname(char *domainname, \ 303 int len); } 304163 NOARGS { int compat_09_sys_setdomainname(char *domainname, \ 305 int len); } 306164 NOARGS { int compat_09_sys_uname(struct outsname *name); } 307165 NOARGS { int sys_sysarch(int op, char *parms); } 308166 STD { int freebsd_sys_rtprio(int function, pid_t pid, \ 309 struct freebsd_rtprio *rtp); } 310167 UNIMPL 311168 UNIMPL 312; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 313#if defined(SYSVSEM) && !defined(alpha) 314169 STD { int freebsd_sys_semsys(int which, int a2, int a3, \ 315 int a4, int a5); } 316#else 317169 UNIMPL 1.0 semsys 318#endif 319; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 320#if defined(SYSVMSG) && !defined(alpha) 321170 STD { int freebsd_sys_msgsys(int which, int a2, int a3, \ 322 int a4, int a5, int a6); } 323#else 324170 UNIMPL 1.0 msgsys 325#endif 326; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 327#if defined(SYSVSHM) && !defined(alpha) 328171 STD { int freebsd_sys_shmsys(int which, int a2, int a3, \ 329 int a4); } 330#else 331171 UNIMPL 1.0 shmsys 332#endif 333172 UNIMPL 334173 UNIMPL 335174 UNIMPL 336175 UNIMPL 337176 STD { int freebsd_ntp_adjtime(struct freebsd_timex *tp); } 338177 UNIMPL 339178 UNIMPL 340179 UNIMPL 341180 UNIMPL 342 343; Syscalls 180-199 are used by/reserved for BSD 344181 NOARGS { int sys_setgid(gid_t gid); } 345182 NOARGS { int sys_setegid(gid_t egid); } 346183 NOARGS { int sys_seteuid(uid_t euid); } 347#ifdef LFS 348184 NOARGS { int lfs_bmapv(fsid_t *fsidp, \ 349 struct block_info *blkiov, int blkcnt); } 350185 NOARGS { int lfs_markv(fsid_t *fsidp, \ 351 struct block_info *blkiov, int blkcnt); } 352186 NOARGS { int lfs_segclean(fsid_t *fsidp, u_long segment); } 353187 NOARGS { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 354#else 355184 UNIMPL 356185 UNIMPL 357186 UNIMPL 358187 UNIMPL 359#endif 360188 STD { int freebsd_sys_stat(char *path, \ 361 struct stat12 *ub); } 362189 NOARGS { int compat_12_sys_fstat(int fd, \ 363 struct stat12 *sb); } 364190 STD { int freebsd_sys_lstat(char *path, \ 365 struct stat12 *ub); } 366191 STD { int freebsd_sys_pathconf(char *path, int name); } 367192 NOARGS { int sys_fpathconf(int fd, int name); } 368193 UNIMPL 369194 NOARGS { int sys_getrlimit(u_int which, struct rlimit *rlp); } 370195 NOARGS { int sys_setrlimit(u_int which, struct rlimit *rlp); } 371196 NOARGS { int compat_12_sys_getdirentries(int fd, char *buf, \ 372 u_int count, long *basep); } 373197 NOARGS { caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \ 374 int flags, int fd, long pad, off_t pos); } 375198 NOARGS { int sys_nosys(void); } __syscall 376199 NOARGS { off_t sys_lseek(int fd, int pad, off_t offset, \ 377 int whence); } 378200 STD { int freebsd_sys_truncate(char *path, int pad, \ 379 off_t length); } 380201 NOARGS { int sys_ftruncate(int fd, int pad, off_t length); } 381202 NOARGS { int sys___sysctl(int *name, u_int namelen, \ 382 void *old, size_t *oldlenp, void *new, \ 383 size_t newlen); } 384203 NOARGS { int sys_mlock(caddr_t addr, size_t len); } 385204 NOARGS { int sys_munlock(caddr_t addr, size_t len); } 386#ifdef FREEBSD_BASED_ON_44LITE_R2 387205 STD { int freebsd_sys_undelete(char *path); } 388#else 389205 UNIMPL 390#endif 391206 UNIMPL 392207 UNIMPL 393208 UNIMPL 394209 UNIMPL 395; 396; Syscalls 210-219 are reserved for dynamically loaded syscalls 397; 398210 UNIMPL 399211 UNIMPL 400212 UNIMPL 401213 UNIMPL 402214 UNIMPL 403215 UNIMPL 404216 UNIMPL 405217 UNIMPL 406218 UNIMPL 407219 UNIMPL 408; 409; Syscalls 220-239 are reserved for syscalls imported from NetBSD 410; 411220 UNIMPL 412221 UNIMPL 413222 UNIMPL 414223 UNIMPL 415224 UNIMPL 416225 UNIMPL 417226 UNIMPL 418227 UNIMPL 419228 UNIMPL 420229 UNIMPL 421230 UNIMPL 422231 UNIMPL 423232 UNIMPL 424233 UNIMPL 425234 UNIMPL 426235 UNIMPL 427236 UNIMPL 428237 UNIMPL 429238 UNIMPL 430239 UNIMPL 431240 UNIMPL 432241 UNIMPL 433242 UNIMPL 434243 UNIMPL 435244 UNIMPL 436245 UNIMPL 437246 UNIMPL 438247 UNIMPL 439248 UNIMPL 440249 UNIMPL 441250 UNIMPL 442251 UNIMPL 443252 UNIMPL 444253 STD { int freebsd_sys_issetugid(void); } 445254 STD { int freebsd_sys_lchown(char *path, int uid, \ 446 int gid); } 447