1 $Id: syscalls.master,v 1.28 1996/08/20 07:17:49 smpatel 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, size_t len, int flags); } 12166 STD BSD { int vfork(void); } 12267 OBSOL NOHIDE vread 12368 OBSOL NOHIDE vwrite 12469 STD BSD { int sbrk(int incr); } 12570 STD BSD { int sstk(int incr); } 12671 COMPAT BSD { int mmap(caddr_t addr, int len, int prot, \ 127 int flags, int fd, long pos); } 12872 STD BSD { int ovadvise(int anom); } vadvise ovadvise_args int 12973 STD BSD { int munmap(caddr_t addr, size_t len); } 13074 STD BSD { int mprotect(caddr_t addr, size_t len, int prot); } 13175 STD BSD { int madvise(caddr_t addr, size_t len, int behav); } 13276 OBSOL NOHIDE vhangup 13377 OBSOL NOHIDE vlimit 13478 STD BSD { int mincore(caddr_t addr, size_t len, char *vec); } 13579 STD POSIX { int getgroups(u_int gidsetsize, gid_t *gidset); } 13680 STD POSIX { int setgroups(u_int gidsetsize, gid_t *gidset); } 13781 STD POSIX { int getpgrp(void); } 13882 STD POSIX { int setpgid(int pid, int pgid); } 13983 STD BSD { int setitimer(u_int which, struct itimerval *itv, \ 140 struct itimerval *oitv); } 14184 COMPAT BSD { int wait(void); } 14285 STD BSD { int swapon(char *name); } 14386 STD BSD { int getitimer(u_int which, struct itimerval *itv); } 14487 COMPAT BSD { int gethostname(char *hostname, u_int len); } \ 145 gethostname gethostname_args int 14688 COMPAT BSD { int sethostname(char *hostname, u_int len); } \ 147 sethostname sethostname_args int 14889 STD BSD { int getdtablesize(void); } 14990 STD POSIX { int dup2(u_int from, u_int to); } 15091 UNIMPL BSD getdopt 15192 STD POSIX { int fcntl(int fd, int cmd, int arg); } 152; XXX should be { int fcntl(int fd, int cmd, ...); } 153; but we're not ready for varargs. 154; XXX man page says `int arg' too. 15593 STD BSD { int select(int nd, fd_set *in, fd_set *ou, \ 156 fd_set *ex, struct timeval *tv); } 15794 UNIMPL BSD setdopt 15895 STD POSIX { int fsync(int fd); } 15996 STD BSD { int setpriority(int which, int who, int prio); } 16097 STD BSD { int socket(int domain, int type, int protocol); } 16198 STD BSD { int connect(int s, caddr_t name, int namelen); } 16299 CPT_NOA BSD { int accept(int s, caddr_t name, int *anamelen); } \ 163 accept accept_args int 164100 STD BSD { int getpriority(int which, int who); } 165101 COMPAT BSD { int send(int s, caddr_t buf, int len, int flags); } 166102 COMPAT BSD { int recv(int s, caddr_t buf, int len, int flags); } 167103 STD BSD { int sigreturn(struct sigcontext *sigcntxp); } 168104 STD BSD { int bind(int s, caddr_t name, int namelen); } 169105 STD BSD { int setsockopt(int s, int level, int name, \ 170 caddr_t val, int valsize); } 171106 STD BSD { int listen(int s, int backlog); } 172107 OBSOL NOHIDE vtimes 173108 COMPAT BSD { int sigvec(int signum, struct sigvec *nsv, \ 174 struct sigvec *osv); } 175109 COMPAT BSD { int sigblock(int mask); } 176110 COMPAT BSD { int sigsetmask(int mask); } 177111 STD POSIX { int sigsuspend(int mask); } 178112 COMPAT BSD { int sigstack(struct sigstack *nss, \ 179 struct sigstack *oss); } 180113 COMPAT BSD { int recvmsg(int s, struct omsghdr *msg, int flags); } 181114 COMPAT BSD { int sendmsg(int s, caddr_t msg, int flags); } 182115 OBSOL NOHIDE vtrace 183116 STD BSD { int gettimeofday(struct timeval *tp, \ 184 struct timezone *tzp); } 185117 STD BSD { int getrusage(int who, struct rusage *rusage); } 186118 STD BSD { int getsockopt(int s, int level, int name, \ 187 caddr_t val, int *avalsize); } 188119 UNIMPL NOHIDE resuba (BSD/OS 2.x) 189120 STD BSD { int readv(int fd, struct iovec *iovp, u_int iovcnt); } 190121 STD BSD { int writev(int fd, struct iovec *iovp, \ 191 u_int iovcnt); } 192122 STD BSD { int settimeofday(struct timeval *tv, \ 193 struct timezone *tzp); } 194123 STD BSD { int fchown(int fd, int uid, int gid); } 195124 STD BSD { int fchmod(int fd, int mode); } 196125 CPT_NOA BSD { int recvfrom(int s, caddr_t buf, size_t len, \ 197 int flags, caddr_t from, int *fromlenaddr); } \ 198 recvfrom recvfrom_args int 199126 STD BSD { int setreuid(int ruid, int euid); } 200127 STD BSD { int setregid(int rgid, int egid); } 201128 STD POSIX { int rename(char *from, char *to); } 202129 COMPAT BSD { int truncate(char *path, long length); } 203130 COMPAT BSD { int ftruncate(int fd, long length); } 204131 STD BSD { int flock(int fd, int how); } 205132 STD POSIX { int mkfifo(char *path, int mode); } 206133 STD BSD { int sendto(int s, caddr_t buf, size_t len, \ 207 int flags, caddr_t to, int tolen); } 208134 STD BSD { int shutdown(int s, int how); } 209135 STD BSD { int socketpair(int domain, int type, int protocol, \ 210 int *rsv); } 211136 STD POSIX { int mkdir(char *path, int mode); } 212137 STD POSIX { int rmdir(char *path); } 213138 STD BSD { int utimes(char *path, struct timeval *tptr); } 214139 OBSOL NOHIDE 4.2 sigreturn 215140 STD BSD { int adjtime(struct timeval *delta, \ 216 struct timeval *olddelta); } 217141 COMPAT BSD { int getpeername(int fdes, caddr_t asa, int *alen); } 218142 COMPAT BSD { long gethostid(void); } 219143 COMPAT BSD { int sethostid(long hostid); } 220144 COMPAT BSD { int getrlimit(u_int which, struct ogetrlimit *rlp); } 221145 COMPAT BSD { int setrlimit(u_int which, struct ogetrlimit *rlp); } 222146 COMPAT BSD { int killpg(int pgid, int signum); } 223147 STD POSIX { int setsid(void); } 224148 STD BSD { int quotactl(char *path, int cmd, int uid, \ 225 caddr_t arg); } 226149 COMPAT BSD { int quota(void); } 227150 CPT_NOA BSD { int getsockname(int fdec, caddr_t asa, int *alen); }\ 228 getsockname getsockname_args int 229 230; Syscalls 151-180 inclusive are reserved for vendor-specific 231; system calls. (This includes various calls added for compatibity 232; with other Unix variants.) 233; Some of these calls are now supported by BSD... 234151 UNIMPL NOHIDE sem_lock (BSD/OS 2.x) 235152 UNIMPL NOHIDE sem_wakeup (BSD/OS 2.x) 236153 UNIMPL NOHIDE asyncdaemon (BSD/OS 2.x) 237154 UNIMPL NOHIDE nosys 238#ifdef NFS 239155 STD BSD { int nfssvc(int flag, caddr_t argp); } 240#else 241155 UNIMPL BSD nosys 242#endif 243156 COMPAT BSD { int getdirentries(int fd, char *buf, u_int count, \ 244 long *basep); } 245157 STD BSD { int statfs(char *path, struct statfs *buf); } 246158 STD BSD { int fstatfs(int fd, struct statfs *buf); } 247159 UNIMPL NOHIDE nosys 248160 UNIMPL NOHIDE nosys 249#if defined(NFS) && !defined (NFS_NOSERVER) 250161 STD BSD { int getfh(char *fname, fhandle_t *fhp); } 251#else 252161 UNIMPL BSD nosys 253#endif 254162 STD BSD { int getdomainname(char *domainname, int len); } 255163 STD BSD { int setdomainname(char *domainname, int len); } 256164 STD BSD { int uname(struct utsname *name); } 257165 STD BSD { int sysarch(int op, char *parms); } 258166 STD BSD { int rtprio(int function, pid_t pid, \ 259 struct rtprio *rtp); } 260167 UNIMPL NOHIDE nosys 261168 UNIMPL NOHIDE nosys 262169 STD BSD { int semsys(int which, int a2, int a3, int a4, \ 263 int a5); } 264; XXX should be { int semsys(int which, ...); } 265170 STD BSD { int msgsys(int which, int a2, int a3, int a4, \ 266 int a5, int a6); } 267; XXX should be { int msgsys(int which, ...); } 268171 STD BSD { int shmsys(int which, int a2, int a3, int a4); } 269; XXX should be { int shmsys(int which, ...); } 270172 UNIMPL NOHIDE nosys 271173 UNIMPL NOHIDE nosys 272174 UNIMPL NOHIDE nosys 273175 UNIMPL NOHIDE nosys 274176 STD BSD { int ntp_adjtime(struct timex *tp); } 275177 UNIMPL NOHIDE sfork (BSD/OS 2.x) 276178 UNIMPL NOHIDE getdescriptor (BSD/OS 2.x) 277179 UNIMPL NOHIDE setdescriptor (BSD/OS 2.x) 278180 UNIMPL NOHIDE nosys 279 280; Syscalls 180-199 are used by/reserved for BSD 281181 STD POSIX { int setgid(gid_t gid); } 282182 STD BSD { int setegid(gid_t egid); } 283183 STD BSD { int seteuid(uid_t euid); } 284#ifdef LFS 285184 STD BSD { int lfs_bmapv(fsid_t *fsidp, \ 286 struct block_info *blkiov, int blkcnt); } 287185 STD BSD { int lfs_markv(fsid_t *fsidp, \ 288 struct block_info *blkiov, int blkcnt); } 289186 STD BSD { int lfs_segclean(fsid_t *fsidp, u_long segment); } 290187 STD BSD { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 291#else 292184 UNIMPL BSD nosys 293185 UNIMPL BSD nosys 294186 UNIMPL BSD nosys 295187 UNIMPL BSD nosys 296#endif 297188 STD POSIX { int stat(char *path, struct stat *ub); } 298189 STD POSIX { int fstat(int fd, struct stat *sb); } 299190 STD POSIX { int lstat(char *path, struct stat *ub); } 300191 STD POSIX { int pathconf(char *path, int name); } 301192 STD POSIX { int fpathconf(int fd, int name); } 302193 UNIMPL NOHIDE nosys 303194 STD BSD { int getrlimit(u_int which, \ 304 struct orlimit *rlp); } \ 305 getrlimit __getrlimit_args int 306195 STD BSD { int setrlimit(u_int which, \ 307 struct orlimit *rlp); } \ 308 setrlimit __setrlimit_args int 309196 STD BSD { int getdirentries(int fd, char *buf, u_int count, \ 310 long *basep); } 311197 STD BSD { caddr_t mmap(caddr_t addr, size_t len, int prot, \ 312 int flags, int fd, long pad, off_t pos); } 313198 STD NOHIDE { int nosys(void); } __syscall __syscall_args int 314199 STD POSIX { off_t lseek(int fd, int pad, off_t offset, \ 315 int whence); } 316200 STD BSD { int truncate(char *path, int pad, off_t length); } 317201 STD BSD { int ftruncate(int fd, int pad, off_t length); } 318202 STD BSD { int __sysctl(int *name, u_int namelen, void *old, \ 319 size_t *oldlenp, void *new, size_t newlen); } \ 320 __sysctl sysctl_args int 321; properly, __sysctl should be a NOHIDE, but making an exception 322; here allows to avoid one in libc/sys/Makefile.inc. 323203 STD BSD { int mlock(caddr_t addr, size_t len); } 324204 STD BSD { int munlock(caddr_t addr, size_t len); } 325205 STD BSD { int utrace(caddr_t addr, size_t len); } 326206 UNIMPL NOHIDE nosys 327207 UNIMPL NOHIDE nosys 328208 UNIMPL NOHIDE nosys 329209 UNIMPL NOHIDE nosys 330 331; 332; The following are reserved for loadable syscalls 333; 334210 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 335211 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 336212 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 337213 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 338214 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 339215 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 340216 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 341217 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 342218 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 343219 NODEF NOHIDE lkmnosys lkmnosys nosys_args int 344 345; 346; The following were introduced with NetBSD/4.4Lite-2 347; 348220 STD BSD { int __semctl(int semid, int semnum, int cmd, \ 349 union semun *arg); } 350221 STD BSD { int semget(key_t key, int nsems, int semflg); } 351222 STD BSD { int semop(int semid, struct sembuf *sops, \ 352 u_int nsops); } 353223 STD BSD { int semconfig(int flag); } 354224 STD BSD { int msgctl(int msqid, int cmd, \ 355 struct msqid_ds *buf); } 356225 STD BSD { int msgget(key_t key, int msgflg); } 357226 STD BSD { int msgsnd(int msqid, void *msgp, size_t msgsz, \ 358 int msgflg); } 359227 STD BSD { int msgrcv(int msqid, void *msgp, size_t msgsz, \ 360 long msgtyp, int msgflg); } 361228 STD BSD { int shmat(int shmid, void *shmaddr, int shmflg); } 362229 STD BSD { int shmctl(int shmid, int cmd, \ 363 struct shmid_ds *buf); } 364230 STD BSD { int shmdt(void *shmaddr); } 365231 STD BSD { int shmget(key_t key, int size, int shmflg); } 366; 367232 UNIMPL NOHIDE nosys 368233 UNIMPL NOHIDE nosys 369234 UNIMPL NOHIDE nosys 370235 UNIMPL NOHIDE nosys 371236 UNIMPL NOHIDE nosys 372237 UNIMPL NOHIDE nosys 373238 UNIMPL NOHIDE nosys 374239 UNIMPL NOHIDE nosys 375240 UNIMPL NOHIDE nosys 376241 UNIMPL NOHIDE nosys 377242 UNIMPL NOHIDE nosys 378243 UNIMPL NOHIDE nosys 379244 UNIMPL NOHIDE nosys 380245 UNIMPL NOHIDE nosys 381246 UNIMPL NOHIDE nosys 382247 UNIMPL NOHIDE nosys 383248 UNIMPL NOHIDE nosys 384249 UNIMPL NOHIDE nosys 385; syscall numbers initially used in OpenBSD 386250 STD BSD { int minherit(caddr_t addr, size_t len, int inherit); } 387251 STD BSD { int rfork(int flags); } 388