1 $Id$ 2; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 3; 4; System call name/number master file. 5; Processed to created init_sysent.c, syscalls.c and syscall.h. 6 7; Columns: number type nargs namespc name alt{name,tag,rtyp}/comments 8; number system call number, must be in order 9; type one of STD, OBSOL, UNIMPL, COMPAT 10; namespc one of POSIX, BSD, NOHIDE 11; name psuedo-prototype of syscall routine 12; If one of the following alts is different, then all appear: 13; altname name of system call if different 14; alttag name of args struct tag if different from [o]`name'"_args" 15; altrtyp return type if not int (bogus - syscalls always return int) 16; for UNIMPL/OBSOL, name continues with comments 17 18; types: 19; STD always included 20; COMPAT included on COMPAT #ifdef 21; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h 22; OBSOL obsolete, not included in system, only specifies name 23; UNIMPL not implemented, placeholder only 24 25; #ifdef's, etc. may be included, and are copied to the output files. 26 27#include <sys/param.h> 28#include <sys/sysent.h> 29#include <sys/sysproto.h> 30 31; Reserved/unimplemented system calls in the range 0-150 inclusive 32; are reserved for use in future Berkeley releases. 33; Additional system calls implemented in vendor and other 34; redistributions should be placed in the reserved range at the end 35; of the current calls. 36 370 STD NOHIDE { int nosys(void); } syscall nosys_args int 381 STD NOHIDE { void exit(int rval); } exit rexit_args void 392 STD POSIX { int fork(void); } 403 STD POSIX { int read(int fd, char *buf, u_int nbyte); } 414 STD POSIX { int write(int fd, char *buf, u_int nbyte); } 425 STD POSIX { int open(char *path, int flags, int mode); } 43; XXX should be { int open(const char *path, int flags, ...); } 44; but we're not ready for `const' or varargs. 45; XXX man page says `mode_t mode'. 466 STD POSIX { int close(int fd); } 477 STD BSD { int wait4(int pid, int *status, int options, \ 48 struct rusage *rusage); } wait4 wait_args int 498 COMPAT BSD { int creat(char *path, int mode); } 509 STD POSIX { int link(char *path, char *link); } 5110 STD POSIX { int unlink(char *path); } 5211 OBSOL NOHIDE execv 5312 STD POSIX { int chdir(char *path); } 5413 STD BSD { int fchdir(int fd); } 5514 STD POSIX { int mknod(char *path, int mode, int dev); } 5615 STD POSIX { int chmod(char *path, int mode); } 5716 STD POSIX { int chown(char *path, int uid, int gid); } 5817 STD BSD { int obreak(char *nsize); } break obreak_args int 5918 STD BSD { int getfsstat(struct statfs *buf, long bufsize, \ 60 int flags); } 6119 COMPAT POSIX { long lseek(int fd, long offset, int whence); } 6220 STD POSIX { pid_t getpid(void); } 6321 STD BSD { int mount(char *type, char *path, int flags, \ 64 caddr_t data); } 65; XXX 4.4lite2 uses `char *type' but we're not ready for that. 66; XXX `path' should have type `const char *' but we're not ready for that. 6722 STD BSD { int unmount(char *path, int flags); } 6823 STD POSIX { int setuid(uid_t uid); } 6924 STD POSIX { uid_t getuid(void); } 7025 STD POSIX { uid_t geteuid(void); } 7126 STD BSD { int ptrace(int req, pid_t pid, caddr_t addr, \ 72 int data); } 7327 STD BSD { int recvmsg(int s, struct msghdr *msg, int flags); } 7428 STD BSD { int sendmsg(int s, caddr_t msg, int flags); } 7529 STD BSD { int recvfrom(int s, caddr_t buf, size_t len, \ 76 int flags, caddr_t from, int *fromlenaddr); } 7730 STD BSD { int accept(int s, caddr_t name, int *anamelen); } 7831 STD BSD { int getpeername(int fdes, caddr_t asa, int *alen); } 7932 STD BSD { int getsockname(int fdes, caddr_t asa, int *alen); } 8033 STD POSIX { int access(char *path, int flags); } 8134 STD BSD { int chflags(char *path, int flags); } 8235 STD BSD { int fchflags(int fd, int flags); } 8336 STD BSD { int sync(void); } 8437 STD POSIX { int kill(int pid, int signum); } 8538 COMPAT POSIX { int stat(char *path, struct ostat *ub); } 8639 STD POSIX { pid_t getppid(void); } 8740 COMPAT POSIX { int lstat(char *path, struct ostat *ub); } 8841 STD POSIX { int dup(u_int fd); } 8942 STD POSIX { int pipe(void); } 9043 STD POSIX { gid_t getegid(void); } 9144 STD BSD { int profil(caddr_t samples, u_int size, \ 92 u_int offset, u_int scale); } 9345 STD BSD { int ktrace(char *fname, int ops, int facs, \ 94 int pid); } 9546 STD POSIX { int sigaction(int signum, struct sigaction *nsa, \ 96 struct sigaction *osa); } 9747 STD POSIX { gid_t getgid(void); } 9848 STD POSIX { int sigprocmask(int how, sigset_t mask); } 99; XXX note nonstandard (bogus) calling convention - the libc stub passes 100; us the mask, not a pointer to it, and we return the old mask as the 101; (int) return value. 10249 STD BSD { int getlogin(char *namebuf, u_int namelen); } 10350 STD BSD { int setlogin(char *namebuf); } 10451 STD BSD { int acct(char *path); } 10552 STD POSIX { int sigpending(void); } 10653 STD BSD { int sigaltstack(struct sigaltstack *nss, \ 107 struct sigaltstack *oss); } 10854 STD POSIX { int ioctl(int fd, u_long com, caddr_t data); } 10955 STD BSD { int reboot(int opt); } 11056 STD POSIX { int revoke(char *path); } 11157 STD POSIX { int symlink(char *path, char *link); } 11258 STD POSIX { int readlink(char *path, char *buf, int count); } 11359 STD POSIX { int execve(char *fname, char **argv, char **envv); } 11460 STD POSIX { int umask(int newmask); } umask umask_args int 11561 STD BSD { int chroot(char *path); } 11662 COMPAT POSIX { int fstat(int fd, struct ostat *sb); } 11763 COMPAT BSD { int getkerninfo(int op, char *where, int *size, \ 118 int arg); } getkerninfo getkerninfo_args int 11964 COMPAT BSD { int getpagesize(void); } \ 120 getpagesize getpagesize_args int 12165 STD BSD { int msync(caddr_t addr, size_t len, int flags); } 12266 STD BSD { int vfork(void); } 12367 OBSOL NOHIDE vread 12468 OBSOL NOHIDE vwrite 12569 STD BSD { int sbrk(int incr); } 12670 STD BSD { int sstk(int incr); } 12771 COMPAT BSD { int mmap(caddr_t addr, int len, int prot, \ 128 int flags, int fd, long pos); } 12972 STD BSD { int ovadvise(int anom); } vadvise ovadvise_args int 13073 STD BSD { int munmap(caddr_t addr, size_t len); } 13174 STD BSD { int mprotect(caddr_t addr, size_t len, int prot); } 13275 STD BSD { int madvise(caddr_t addr, size_t len, int behav); } 13376 OBSOL NOHIDE vhangup 13477 OBSOL NOHIDE vlimit 13578 STD BSD { int mincore(caddr_t addr, size_t len, char *vec); } 13679 STD POSIX { int getgroups(u_int gidsetsize, gid_t *gidset); } 13780 STD POSIX { int setgroups(u_int gidsetsize, gid_t *gidset); } 13881 STD POSIX { int getpgrp(void); } 13982 STD POSIX { int setpgid(int pid, int pgid); } 14083 STD BSD { int setitimer(u_int which, struct itimerval *itv, \ 141 struct itimerval *oitv); } 14284 COMPAT BSD { int wait(void); } 14385 STD BSD { int swapon(char *name); } 14486 STD BSD { int getitimer(u_int which, struct itimerval *itv); } 14587 COMPAT BSD { int gethostname(char *hostname, u_int len); } \ 146 gethostname gethostname_args int 14788 COMPAT BSD { int sethostname(char *hostname, u_int len); } \ 148 sethostname sethostname_args int 14989 STD BSD { int getdtablesize(void); } 15090 STD POSIX { int dup2(u_int from, u_int to); } 15191 UNIMPL BSD getdopt 15292 STD POSIX { int fcntl(int fd, int cmd, int arg); } 153; XXX should be { int fcntl(int fd, int cmd, ...); } 154; but we're not ready for varargs. 155; XXX man page says `int arg' too. 15693 STD BSD { int select(int nd, fd_set *in, fd_set *ou, \ 157 fd_set *ex, struct timeval *tv); } 15894 UNIMPL BSD setdopt 15995 STD POSIX { int fsync(int fd); } 16096 STD BSD { int setpriority(int which, int who, int prio); } 16197 STD BSD { int socket(int domain, int type, int protocol); } 16298 STD BSD { int connect(int s, caddr_t name, int namelen); } 16399 CPT_NOA BSD { int accept(int s, caddr_t name, int *anamelen); } \ 164 accept accept_args int 165100 STD BSD { int getpriority(int which, int who); } 166101 COMPAT BSD { int send(int s, caddr_t buf, int len, int flags); } 167102 COMPAT BSD { int recv(int s, caddr_t buf, int len, int flags); } 168103 STD BSD { int sigreturn(struct sigcontext *sigcntxp); } 169104 STD BSD { int bind(int s, caddr_t name, int namelen); } 170105 STD BSD { int setsockopt(int s, int level, int name, \ 171 caddr_t val, int valsize); } 172106 STD BSD { int listen(int s, int backlog); } 173107 OBSOL NOHIDE vtimes 174108 COMPAT BSD { int sigvec(int signum, struct sigvec *nsv, \ 175 struct sigvec *osv); } 176109 COMPAT BSD { int sigblock(int mask); } 177110 COMPAT BSD { int sigsetmask(int mask); } 178111 STD POSIX { int sigsuspend(sigset_t mask); } 179; XXX note nonstandard (bogus) calling convention - the libc stub passes 180; us the mask, not a pointer to it. 181112 COMPAT BSD { int sigstack(struct sigstack *nss, \ 182 struct sigstack *oss); } 183113 COMPAT BSD { int recvmsg(int s, struct omsghdr *msg, int flags); } 184114 COMPAT BSD { int sendmsg(int s, caddr_t msg, int flags); } 185115 OBSOL NOHIDE vtrace 186116 STD BSD { int gettimeofday(struct timeval *tp, \ 187 struct timezone *tzp); } 188117 STD BSD { int getrusage(int who, struct rusage *rusage); } 189118 STD BSD { int getsockopt(int s, int level, int name, \ 190 caddr_t val, int *avalsize); } 191119 UNIMPL NOHIDE resuba (BSD/OS 2.x) 192120 STD BSD { int readv(int fd, struct iovec *iovp, u_int iovcnt); } 193121 STD BSD { int writev(int fd, struct iovec *iovp, \ 194 u_int iovcnt); } 195122 STD BSD { int settimeofday(struct timeval *tv, \ 196 struct timezone *tzp); } 197123 STD BSD { int fchown(int fd, int uid, int gid); } 198124 STD BSD { int fchmod(int fd, int mode); } 199125 CPT_NOA BSD { int recvfrom(int s, caddr_t buf, size_t len, \ 200 int flags, caddr_t from, int *fromlenaddr); } \ 201 recvfrom recvfrom_args int 202126 STD BSD { int setreuid(int ruid, int euid); } 203127 STD BSD { int setregid(int rgid, int egid); } 204128 STD POSIX { int rename(char *from, char *to); } 205129 COMPAT BSD { int truncate(char *path, long length); } 206130 COMPAT BSD { int ftruncate(int fd, long length); } 207131 STD BSD { int flock(int fd, int how); } 208132 STD POSIX { int mkfifo(char *path, int mode); } 209133 STD BSD { int sendto(int s, caddr_t buf, size_t len, \ 210 int flags, caddr_t to, int tolen); } 211134 STD BSD { int shutdown(int s, int how); } 212135 STD BSD { int socketpair(int domain, int type, int protocol, \ 213 int *rsv); } 214136 STD POSIX { int mkdir(char *path, int mode); } 215137 STD POSIX { int rmdir(char *path); } 216138 STD BSD { int utimes(char *path, struct timeval *tptr); } 217139 OBSOL NOHIDE 4.2 sigreturn 218140 STD BSD { int adjtime(struct timeval *delta, \ 219 struct timeval *olddelta); } 220141 COMPAT BSD { int getpeername(int fdes, caddr_t asa, int *alen); } 221142 COMPAT BSD { long gethostid(void); } 222143 COMPAT BSD { int sethostid(long hostid); } 223144 COMPAT BSD { int getrlimit(u_int which, struct ogetrlimit *rlp); } 224145 COMPAT BSD { int setrlimit(u_int which, struct ogetrlimit *rlp); } 225146 COMPAT BSD { int killpg(int pgid, int signum); } 226147 STD POSIX { int setsid(void); } 227148 STD BSD { int quotactl(char *path, int cmd, int uid, \ 228 caddr_t arg); } 229149 COMPAT BSD { int quota(void); } 230150 CPT_NOA BSD { int getsockname(int fdec, caddr_t asa, int *alen); }\ 231 getsockname getsockname_args int 232 233; Syscalls 151-180 inclusive are reserved for vendor-specific 234; system calls. (This includes various calls added for compatibity 235; with other Unix variants.) 236; Some of these calls are now supported by BSD... 237151 UNIMPL NOHIDE sem_lock (BSD/OS 2.x) 238152 UNIMPL NOHIDE sem_wakeup (BSD/OS 2.x) 239153 UNIMPL NOHIDE asyncdaemon (BSD/OS 2.x) 240154 UNIMPL NOHIDE nosys 241#ifdef NFS 242155 STD BSD { int nfssvc(int flag, caddr_t argp); } 243#else 244155 UNIMPL BSD nosys 245#endif 246156 COMPAT BSD { int getdirentries(int fd, char *buf, u_int count, \ 247 long *basep); } 248157 STD BSD { int statfs(char *path, struct statfs *buf); } 249158 STD BSD { int fstatfs(int fd, struct statfs *buf); } 250159 UNIMPL NOHIDE nosys 251160 UNIMPL NOHIDE nosys 252#if defined(NFS) && !defined (NFS_NOSERVER) 253161 STD BSD { int getfh(char *fname, struct fhandle *fhp); } 254#else 255161 UNIMPL BSD nosys 256#endif 257162 STD BSD { int getdomainname(char *domainname, int len); } 258163 STD BSD { int setdomainname(char *domainname, int len); } 259164 STD BSD { int uname(struct utsname *name); } 260165 STD BSD { int sysarch(int op, char *parms); } 261166 STD BSD { int rtprio(int function, pid_t pid, \ 262 struct rtprio *rtp); } 263167 UNIMPL NOHIDE nosys 264168 UNIMPL NOHIDE nosys 265169 STD BSD { int semsys(int which, int a2, int a3, int a4, \ 266 int a5); } 267; XXX should be { int semsys(int which, ...); } 268170 STD BSD { int msgsys(int which, int a2, int a3, int a4, \ 269 int a5, int a6); } 270; XXX should be { int msgsys(int which, ...); } 271171 STD BSD { int shmsys(int which, int a2, int a3, int a4); } 272; XXX should be { int shmsys(int which, ...); } 273172 UNIMPL NOHIDE nosys 274173 UNIMPL NOHIDE nosys 275174 UNIMPL NOHIDE nosys 276175 UNIMPL NOHIDE nosys 277176 STD BSD { int ntp_adjtime(struct timex *tp); } 278177 UNIMPL NOHIDE sfork (BSD/OS 2.x) 279178 UNIMPL NOHIDE getdescriptor (BSD/OS 2.x) 280179 UNIMPL NOHIDE setdescriptor (BSD/OS 2.x) 281180 UNIMPL NOHIDE nosys 282 283; Syscalls 180-199 are used by/reserved for BSD 284181 STD POSIX { int setgid(gid_t gid); } 285182 STD BSD { int setegid(gid_t egid); } 286183 STD BSD { int seteuid(uid_t euid); } 287#ifdef LFS 288184 STD BSD { int lfs_bmapv(struct fsid **fsidp, \ 289 struct block_info *blkiov, int blkcnt); } 290185 STD BSD { int lfs_markv(struct fsid **fsidp, \ 291 struct block_info *blkiov, int blkcnt); } 292186 STD BSD { int lfs_segclean(struct fsid **fsidp, \ 293 u_long segment); } 294187 STD BSD { int lfs_segwait(struct fsid **fsidp, \ 295 struct timeval *tv); } 296#else 297184 UNIMPL BSD nosys 298185 UNIMPL BSD nosys 299186 UNIMPL BSD nosys 300187 UNIMPL BSD nosys 301#endif 302188 STD POSIX { int stat(char *path, struct stat *ub); } 303189 STD POSIX { int fstat(int fd, struct stat *sb); } 304190 STD POSIX { int lstat(char *path, struct stat *ub); } 305191 STD POSIX { int pathconf(char *path, int name); } 306192 STD POSIX { int fpathconf(int fd, int name); } 307193 UNIMPL NOHIDE nosys 308194 STD BSD { int getrlimit(u_int which, \ 309 struct orlimit *rlp); } \ 310 getrlimit __getrlimit_args int 311195 STD BSD { int setrlimit(u_int which, \ 312 struct orlimit *rlp); } \ 313 setrlimit __setrlimit_args int 314196 STD BSD { int getdirentries(int fd, char *buf, u_int count, \ 315 long *basep); } 316197 STD BSD { caddr_t mmap(caddr_t addr, size_t len, int prot, \ 317 int flags, int fd, long pad, off_t pos); } 318198 STD NOHIDE { int nosys(void); } __syscall __syscall_args int 319199 STD POSIX { off_t lseek(int fd, int pad, off_t offset, \ 320 int whence); } 321200 STD BSD { int truncate(char *path, int pad, off_t length); } 322201 STD BSD { int ftruncate(int fd, int pad, off_t length); } 323202 STD BSD { int __sysctl(int *name, u_int namelen, void *old, \ 324 size_t *oldlenp, void *new, size_t newlen); } \ 325 __sysctl sysctl_args int 326; properly, __sysctl should be a NOHIDE, but making an exception 327; here allows to avoid one in libc/sys/Makefile.inc. 328203 STD BSD { int mlock(caddr_t addr, size_t len); } 329204 STD BSD { int munlock(caddr_t addr, size_t len); } 330205 STD BSD { int utrace(caddr_t addr, size_t len); } 331206 STD BSD { int undelete(char *path); } 332207 UNIMPL NOHIDE nosys 333208 UNIMPL NOHIDE nosys 334209 UNIMPL NOHIDE nosys 335 336; 337; The following are reserved for loadable syscalls 338; 339210 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 340211 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 341212 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 342213 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 343214 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 344215 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 345216 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 346217 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 347218 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 348219 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 349 350; 351; The following were introduced with NetBSD/4.4Lite-2 352; 353220 STD BSD { int __semctl(int semid, int semnum, int cmd, \ 354 union semun *arg); } 355221 STD BSD { int semget(key_t key, int nsems, int semflg); } 356222 STD BSD { int semop(int semid, struct sembuf *sops, \ 357 u_int nsops); } 358223 STD BSD { int semconfig(int flag); } 359224 STD BSD { int msgctl(int msqid, int cmd, \ 360 struct msqid_ds *buf); } 361225 STD BSD { int msgget(key_t key, int msgflg); } 362226 STD BSD { int msgsnd(int msqid, void *msgp, size_t msgsz, \ 363 int msgflg); } 364227 STD BSD { int msgrcv(int msqid, void *msgp, size_t msgsz, \ 365 long msgtyp, int msgflg); } 366228 STD BSD { int shmat(int shmid, void *shmaddr, int shmflg); } 367229 STD BSD { int shmctl(int shmid, int cmd, \ 368 struct shmid_ds *buf); } 369230 STD BSD { int shmdt(void *shmaddr); } 370231 STD BSD { int shmget(key_t key, int size, int shmflg); } 371; 372232 UNIMPL NOHIDE nosys 373233 UNIMPL NOHIDE nosys 374234 UNIMPL NOHIDE nosys 375235 UNIMPL NOHIDE nosys 376236 UNIMPL NOHIDE nosys 377237 UNIMPL NOHIDE nosys 378238 UNIMPL NOHIDE nosys 379239 UNIMPL NOHIDE nosys 380240 UNIMPL NOHIDE nosys 381241 UNIMPL NOHIDE nosys 382242 UNIMPL NOHIDE nosys 383243 UNIMPL NOHIDE nosys 384244 UNIMPL NOHIDE nosys 385245 UNIMPL NOHIDE nosys 386246 UNIMPL NOHIDE nosys 387247 UNIMPL NOHIDE nosys 388248 UNIMPL NOHIDE nosys 389249 UNIMPL NOHIDE nosys 390; syscall numbers initially used in OpenBSD 391250 STD BSD { int minherit(caddr_t addr, size_t len, int inherit); } 392251 STD BSD { int rfork(int flags); } 393