syscalls.master revision 14215
1 $Id: syscalls.master,v 1.24 1996/01/13 23:27:26 phk Exp $ 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/types.h> 28#include <sys/param.h> 29#include <sys/mount.h> 30#include <sys/sysent.h> 31#include <sys/sysproto.h> 32 33; Reserved/unimplemented system calls in the range 0-150 inclusive 34; are reserved for use in future Berkeley releases. 35; Additional system calls implemented in vendor and other 36; redistributions should be placed in the reserved range at the end 37; of the current calls. 38 390 STD NOHIDE { int nosys(void); } syscall nosys_args int 401 STD NOHIDE { void exit(int rval); } exit rexit_args void 412 STD POSIX { int fork(void); } 423 STD POSIX { int read(int fd, char *buf, u_int nbyte); } 434 STD POSIX { int write(int fd, char *buf, u_int nbyte); } 445 STD POSIX { int open(char *path, int flags, int mode); } 45; XXX should be { int open(const char *path, int flags, ...); } 46; but we're not ready for `const' or varargs. 47; XXX man page says `mode_t mode'. 486 STD POSIX { int close(int fd); } 497 STD BSD { int wait4(int pid, int *status, int options, \ 50 struct rusage *rusage); } wait4 wait_args int 518 COMPAT BSD { int creat(char *path, int mode); } 529 STD POSIX { int link(char *path, char *link); } 5310 STD POSIX { int unlink(char *path); } 5411 OBSOL NOHIDE execv 5512 STD POSIX { int chdir(char *path); } 5613 STD BSD { int fchdir(int fd); } 5714 STD POSIX { int mknod(char *path, int mode, int dev); } 5815 STD POSIX { int chmod(char *path, int mode); } 5916 STD POSIX { int chown(char *path, int uid, int gid); } 6017 STD BSD { int obreak(char *nsize); } break obreak_args int 6118 STD BSD { int getfsstat(struct statfs *buf, long bufsize, \ 62 int flags); } 6319 COMPAT POSIX { long lseek(int fd, long offset, int whence); } 6420 STD POSIX { pid_t getpid(void); } 6521 STD BSD { int mount(int type, char *path, int flags, \ 66 caddr_t data); } 67; XXX 4.4lite2 uses `char *type' but we're not ready for that. 68; XXX `path' should have type `const char *' but we're not ready for that. 6922 STD BSD { int unmount(char *path, int flags); } 7023 STD POSIX { int setuid(uid_t uid); } 7124 STD POSIX { uid_t getuid(void); } 7225 STD POSIX { uid_t geteuid(void); } 7326 STD BSD { int ptrace(int req, pid_t pid, caddr_t addr, \ 74 int data); } 7527 STD BSD { int recvmsg(int s, struct msghdr *msg, int flags); } 7628 STD BSD { int sendmsg(int s, caddr_t msg, int flags); } 7729 STD BSD { int recvfrom(int s, caddr_t buf, size_t len, \ 78 int flags, caddr_t from, int *fromlenaddr); } 7930 STD BSD { int accept(int s, caddr_t name, int *anamelen); } 8031 STD BSD { int getpeername(int fdes, caddr_t asa, int *alen); } 8132 STD BSD { int getsockname(int fdes, caddr_t asa, int *alen); } 8233 STD POSIX { int access(char *path, int flags); } 8334 STD BSD { int chflags(char *path, int flags); } 8435 STD BSD { int fchflags(int fd, int flags); } 8536 STD BSD { int sync(void); } 8637 STD POSIX { int kill(int pid, int signum); } 8738 COMPAT POSIX { int stat(char *path, struct ostat *ub); } 8839 STD POSIX { pid_t getppid(void); } 8940 COMPAT POSIX { int lstat(char *path, struct ostat *ub); } 9041 STD POSIX { int dup(u_int fd); } 9142 STD POSIX { int pipe(void); } 9243 STD POSIX { gid_t getegid(void); } 9344 STD BSD { int profil(caddr_t samples, u_int size, \ 94 u_int offset, u_int scale); } 9545 STD BSD { int ktrace(char *fname, int ops, int facs, \ 96 int pid); } 9746 STD POSIX { int sigaction(int signum, struct sigaction *nsa, \ 98 struct sigaction *osa); } 9947 STD POSIX { gid_t getgid(void); } 10048 STD POSIX { int sigprocmask(int how, sigset_t mask); } 10149 STD BSD { int getlogin(char *namebuf, u_int namelen); } 10250 STD BSD { int setlogin(char *namebuf); } 10351 STD BSD { int acct(char *path); } 10452 STD POSIX { int sigpending(void); } 10553 STD BSD { int sigaltstack(struct sigaltstack *nss, \ 106 struct sigaltstack *oss); } 10754 STD POSIX { int ioctl(int fd, u_long com, caddr_t data); } 10855 STD BSD { int reboot(int opt); } 10956 STD POSIX { int revoke(char *path); } 11057 STD POSIX { int symlink(char *path, char *link); } 11158 STD POSIX { int readlink(char *path, char *buf, int count); } 11259 STD POSIX { int execve(char *fname, char **argv, char **envv); } 11360 STD POSIX { int umask(int newmask); } umask umask_args mode_t 11461 STD BSD { int chroot(char *path); } 11562 COMPAT POSIX { int fstat(int fd, struct ostat *sb); } 11663 COMPAT BSD { int getkerninfo(int op, char *where, int *size, \ 117 int arg); } getkerninfo getkerninfo_args int 11864 COMPAT BSD { int getpagesize(void); } \ 119 getpagesize getpagesize_args int 12065 STD BSD { int msync(caddr_t addr, int len, int flags); } 121; XXX should be { int msync(caddr_t addr, size_t len, int flags); } 122; but man page and old args struct have `int len'. 12366 NOARGS BSD { int vfork(void); } vfork fork_args int 12467 OBSOL NOHIDE vread 12568 OBSOL NOHIDE vwrite 12669 STD BSD { int sbrk(int incr); } 12770 STD BSD { int sstk(int incr); } 12871 COMPAT BSD { int mmap(caddr_t addr, int len, int prot, \ 129 int flags, int fd, long pos); } 130; XXX should be { int mmap(caddr_t addr, size_t len, int prot, 131; int flags, int fd, long pos); } 132; but old args struct has `int len'. 13372 STD BSD { int ovadvise(int anom); } vadvise ovadvise_args int 13473 STD BSD { int munmap(caddr_t addr, int len); } 135; XXX should be { int munmap(caddr_t addr, size_t len); } 136; but man page and old args struct have `int len'. 13774 STD BSD { int mprotect(caddr_t addr, int len, int prot); } 138; XXX should be { int mprotect(caddr_t addr, size_t len, int prot); } 139; but man page and old args struct have `int len'. 14075 STD BSD { int madvise(caddr_t addr, int len, int behav); } 141; XXX should be { int madvise(caddr_t addr, size_t len, int behav); } 142; but man page, madvise() prototype and old args struct have `int len'. 14376 OBSOL NOHIDE vhangup 14477 OBSOL NOHIDE vlimit 14578 STD BSD { int mincore(caddr_t addr, int len, char *vec); } 146; XXX should be { int mincore(caddr_t addr, size_t len, char *vec); } 147; but man page, and old args struct have `int len'. 148; XXX mincore() prototype isn't in <sys/mman.h>. 14979 STD POSIX { int getgroups(u_int gidsetsize, gid_t *gidset); } 15080 STD POSIX { int setgroups(u_int gidsetsize, gid_t *gidset); } 15181 STD POSIX { int getpgrp(void); } 15282 STD POSIX { int setpgid(int pid, int pgid); } 15383 STD BSD { int setitimer(u_int which, struct itimerval *itv, \ 154 struct itimerval *oitv); } 15584 COMPAT BSD { int wait(void); } 15685 STD BSD { int swapon(char *name); } 15786 STD BSD { int getitimer(u_int which, struct itimerval *itv); } 15887 COMPAT BSD { int gethostname(char *hostname, u_int len); } \ 159 gethostname gethostname_args int 16088 COMPAT BSD { int sethostname(char *hostname, u_int len); } \ 161 sethostname sethostname_args int 16289 STD BSD { int getdtablesize(void); } 16390 STD POSIX { int dup2(u_int from, u_int to); } 16491 UNIMPL BSD getdopt 16592 STD POSIX { int fcntl(int fd, int cmd, int arg); } 166; XXX should be { int fcntl(int fd, int cmd, ...); } 167; but we're not ready for varargs. 168; XXX man page says `int arg' too. 16993 STD BSD { int select(u_int nd, fd_set *in, fd_set *ou, \ 170 fd_set *ex, struct timeval *tv); } 17194 UNIMPL BSD setdopt 17295 STD POSIX { int fsync(int fd); } 17396 STD BSD { int setpriority(int which, int who, int prio); } 17497 STD BSD { int socket(int domain, int type, int protocol); } 17598 STD BSD { int connect(int s, caddr_t name, int namelen); } 17699 CPT_NOA BSD { int accept(int s, caddr_t name, int *anamelen); } \ 177 accept accept_args int 178100 STD BSD { int getpriority(int which, int who); } 179101 COMPAT BSD { int send(int s, caddr_t buf, int len, int flags); } 180102 COMPAT BSD { int recv(int s, caddr_t buf, int len, int flags); } 181103 STD BSD { int sigreturn(struct sigcontext *sigcntxp); } 182104 STD BSD { int bind(int s, caddr_t name, int namelen); } 183105 STD BSD { int setsockopt(int s, int level, int name, \ 184 caddr_t val, int valsize); } 185106 STD BSD { int listen(int s, int backlog); } 186107 OBSOL NOHIDE vtimes 187108 COMPAT BSD { int sigvec(int signum, struct sigvec *nsv, \ 188 struct sigvec *osv); } 189109 COMPAT BSD { int sigblock(int mask); } 190110 COMPAT BSD { int sigsetmask(int mask); } 191111 STD POSIX { int sigsuspend(int mask); } 192112 COMPAT BSD { int sigstack(struct sigstack *nss, \ 193 struct sigstack *oss); } 194113 COMPAT BSD { int recvmsg(int s, struct omsghdr *msg, int flags); } 195114 COMPAT BSD { int sendmsg(int s, caddr_t msg, int flags); } 196115 OBSOL NOHIDE vtrace 197116 STD BSD { int gettimeofday(struct timeval *tp, \ 198 struct timezone *tzp); } 199117 STD BSD { int getrusage(int who, struct rusage *rusage); } 200118 STD BSD { int getsockopt(int s, int level, int name, \ 201 caddr_t val, int *avalsize); } 202119 UNIMPL NOHIDE resuba (BSD/OS 2.x) 203120 STD BSD { int readv(int fd, struct iovec *iovp, u_int iovcnt); } 204121 STD BSD { int writev(int fd, struct iovec *iovp, \ 205 u_int iovcnt); } 206122 STD BSD { int settimeofday(struct timeval *tv, \ 207 struct timezone *tzp); } 208123 STD BSD { int fchown(int fd, int uid, int gid); } 209124 STD BSD { int fchmod(int fd, int mode); } 210125 CPT_NOA BSD { int recvfrom(int s, caddr_t buf, size_t len, \ 211 int flags, caddr_t from, int *fromlenaddr); } \ 212 recvfrom recvfrom_args int 213126 STD BSD { int setreuid(int ruid, int euid); } 214127 STD BSD { int setregid(int rgid, int egid); } 215128 STD POSIX { int rename(char *from, char *to); } 216129 COMPAT BSD { int truncate(char *path, long length); } 217130 COMPAT BSD { int ftruncate(int fd, long length); } 218131 STD BSD { int flock(int fd, int how); } 219132 STD POSIX { int mkfifo(char *path, int mode); } 220133 STD BSD { int sendto(int s, caddr_t buf, size_t len, \ 221 int flags, caddr_t to, int tolen); } 222134 STD BSD { int shutdown(int s, int how); } 223135 STD BSD { int socketpair(int domain, int type, int protocol, \ 224 int *rsv); } 225136 STD POSIX { int mkdir(char *path, int mode); } 226137 STD POSIX { int rmdir(char *path); } 227138 STD BSD { int utimes(char *path, struct timeval *tptr); } 228139 OBSOL NOHIDE 4.2 sigreturn 229140 STD BSD { int adjtime(struct timeval *delta, \ 230 struct timeval *olddelta); } 231141 COMPAT BSD { int getpeername(int fdes, caddr_t asa, int *alen); } 232142 COMPAT BSD { long gethostid(void); } 233143 COMPAT BSD { int sethostid(long hostid); } 234144 COMPAT BSD { int getrlimit(u_int which, struct ogetrlimit *rlp); } 235145 COMPAT BSD { int setrlimit(u_int which, struct ogetrlimit *rlp); } 236146 COMPAT BSD { int killpg(int pgid, int signum); } 237147 STD POSIX { int setsid(void); } 238148 STD BSD { int quotactl(char *path, int cmd, int uid, \ 239 caddr_t arg); } 240149 COMPAT BSD { int quota(void); } 241150 CPT_NOA BSD { int getsockname(int fdec, caddr_t asa, int *alen); }\ 242 getsockname getsockname_args int 243 244; Syscalls 151-180 inclusive are reserved for vendor-specific 245; system calls. (This includes various calls added for compatibity 246; with other Unix variants.) 247; Some of these calls are now supported by BSD... 248151 UNIMPL NOHIDE sem_lock (BSD/OS 2.x) 249152 UNIMPL NOHIDE sem_wakeup (BSD/OS 2.x) 250153 UNIMPL NOHIDE asyncdaemon (BSD/OS 2.x) 251154 UNIMPL NOHIDE nosys 252#ifdef NFS 253155 STD BSD { int nfssvc(int flag, caddr_t argp); } 254#else 255155 UNIMPL BSD nosys 256#endif 257156 COMPAT BSD { int getdirentries(int fd, char *buf, u_int count, \ 258 long *basep); } 259157 STD BSD { int statfs(char *path, struct statfs *buf); } 260158 STD BSD { int fstatfs(int fd, struct statfs *buf); } 261159 UNIMPL NOHIDE nosys 262160 UNIMPL NOHIDE nosys 263#if defined(NFS) && !defined (NFS_NOSERVER) 264161 STD BSD { int getfh(char *fname, fhandle_t *fhp); } 265#else 266161 UNIMPL BSD nosys 267#endif 268162 STD BSD { int getdomainname(char *domainname, int len); } 269163 STD BSD { int setdomainname(char *domainname, int len); } 270164 STD BSD { int uname(struct utsname *name); } 271165 STD BSD { int sysarch(int op, char *parms); } 272166 STD BSD { int rtprio(int function, pid_t pid, \ 273 struct rtprio *rtp); } 274167 UNIMPL NOHIDE nosys 275168 UNIMPL NOHIDE nosys 276169 STD BSD { int semsys(int which, int a2, int a3, int a4, \ 277 int a5); } 278; XXX should be { int semsys(int which, ...); } 279170 STD BSD { int msgsys(int which, int a2, int a3, int a4, \ 280 int a5, int a6); } 281; XXX should be { int msgsys(int which, ...); } 282171 STD BSD { int shmsys(int which, int a2, int a3, int a4); } 283; XXX should be { int shmsys(int which, ...); } 284172 UNIMPL NOHIDE nosys 285173 UNIMPL NOHIDE nosys 286174 UNIMPL NOHIDE nosys 287175 UNIMPL NOHIDE nosys 288176 STD BSD { int ntp_adjtime(struct timex *tp); } 289177 UNIMPL NOHIDE sfork (BSD/OS 2.x) 290178 UNIMPL NOHIDE getdescriptor (BSD/OS 2.x) 291179 UNIMPL NOHIDE setdescriptor (BSD/OS 2.x) 292180 UNIMPL NOHIDE nosys 293 294; Syscalls 180-199 are used by/reserved for BSD 295181 STD POSIX { int setgid(gid_t gid); } 296182 STD BSD { int setegid(gid_t egid); } 297183 STD BSD { int seteuid(uid_t euid); } 298#ifdef LFS 299184 STD BSD { int lfs_bmapv(fsid_t *fsidp, \ 300 struct block_info *blkiov, int blkcnt); } 301185 STD BSD { int lfs_markv(fsid_t *fsidp, \ 302 struct block_info *blkiov, int blkcnt); } 303186 STD BSD { int lfs_segclean(fsid_t *fsidp, u_long segment); } 304187 STD BSD { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 305#else 306184 UNIMPL BSD nosys 307185 UNIMPL BSD nosys 308186 UNIMPL BSD nosys 309187 UNIMPL BSD nosys 310#endif 311188 STD POSIX { int stat(char *path, struct stat *ub); } 312189 STD POSIX { int fstat(int fd, struct stat *sb); } 313190 STD POSIX { int lstat(char *path, struct stat *ub); } 314191 STD POSIX { int pathconf(char *path, int name); } 315192 STD POSIX { int fpathconf(int fd, int name); } 316193 UNIMPL NOHIDE nosys 317194 STD BSD { int getrlimit(u_int which, \ 318 struct orlimit *rlp); } \ 319 getrlimit __getrlimit_args int 320195 STD BSD { int setrlimit(u_int which, \ 321 struct orlimit *rlp); } \ 322 setrlimit __setrlimit_args int 323196 STD BSD { int getdirentries(int fd, char *buf, u_int count, \ 324 long *basep); } 325197 STD BSD { caddr_t mmap(caddr_t addr, size_t len, int prot, \ 326 int flags, int fd, long pad, off_t pos); } 327198 STD NOHIDE { int nosys(void); } __syscall __syscall_args int 328199 STD POSIX { off_t lseek(int fd, int pad, off_t offset, \ 329 int whence); } 330200 STD BSD { int truncate(char *path, int pad, off_t length); } 331201 STD BSD { int ftruncate(int fd, int pad, off_t length); } 332202 STD BSD { int __sysctl(int *name, u_int namelen, void *old, \ 333 size_t *oldlenp, void *new, size_t newlen); } \ 334 __sysctl sysctl_args int 335; properly, __sysctl should be a NOHIDE, but making an exception 336; here allows to avoid one in libc/sys/Makefile.inc. 337203 STD BSD { int mlock(caddr_t addr, size_t len); } 338204 STD BSD { int munlock(caddr_t addr, size_t len); } 339205 UNIMPL NOHIDE nosys 340206 UNIMPL NOHIDE nosys 341207 UNIMPL NOHIDE nosys 342208 UNIMPL NOHIDE nosys 343209 UNIMPL NOHIDE nosys 344 345; 346; The following are reserved for loadable syscalls 347; 348210 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 349211 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 350212 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 351213 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 352214 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 353215 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 354216 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 355217 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 356218 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 357219 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 358 359; 360; The following were introduced with NetBSD/4.4Lite-2 361; 362220 STD BSD { int __semctl(int semid, int semnum, int cmd, \ 363 union semun *arg); } 364221 STD BSD { int semget(key_t key, int nsems, int semflg); } 365222 STD BSD { int semop(int semid, struct sembuf *sops, \ 366 u_int nsops); } 367223 STD BSD { int semconfig(int flag); } 368224 STD BSD { int msgctl(int msqid, int cmd, \ 369 struct msqid_ds *buf); } 370225 STD BSD { int msgget(key_t key, int msgflg); } 371226 STD BSD { int msgsnd(int msqid, void *msgp, size_t msgsz, \ 372 int msgflg); } 373227 STD BSD { int msgrcv(int msqid, void *msgp, size_t msgsz, \ 374 long msgtyp, int msgflg); } 375228 STD BSD { int shmat(int shmid, void *shmaddr, int shmflg); } 376229 STD BSD { int shmctl(int shmid, int cmd, \ 377 struct shmid_ds *buf); } 378230 STD BSD { int shmdt(void *shmaddr); } 379231 STD BSD { int shmget(key_t key, int size, int shmflg); } 380