1 $NetBSD: syscalls.master,v 1.52 1997/06/12 22:05:37 mrg Exp $ 2 3; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 4 5; NetBSD 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; INDIR included, but don't define the syscall args structure, 20; and allow it to be "really" varargs. 21; 22; The compat options are defined in the syscalls.conf file, and the 23; compat option name is prefixed to the syscall name. Other than 24; that, they're like NODEF (for 'compat' options), or STD (for 25; 'libcompat' options). 26; 27; The type-dependent arguments are as follows: 28; For STD, NODEF, NOARGS, and compat syscalls: 29; { pseudo-proto } [alias] 30; For other syscalls: 31; [comment] 32; 33; #ifdef's, etc. may be included, and are copied to the output files. 34; #include's are copied to the syscall switch definition file only. 35 36#include <sys/param.h> 37#include <sys/systm.h> 38#include <sys/signal.h> 39#include <sys/mount.h> 40#include <sys/syscallargs.h> 41 42; Reserved/unimplemented system calls in the range 0-150 inclusive 43; are reserved for use in future Berkeley releases. 44; Additional system calls implemented in vendor and other 45; redistributions should be placed in the reserved range at the end 46; of the current calls. 47 480 INDIR { int sys_syscall(int number, ...); } 491 STD { void sys_exit(int rval); } 502 STD { int sys_fork(void); } 513 STD { ssize_t sys_read(int fd, void *buf, size_t nbyte); } 524 STD { ssize_t sys_write(int fd, const void *buf, \ 53 size_t nbyte); } 545 STD { int sys_open(const char *path, \ 55 int flags, ... int mode); } 566 STD { int sys_close(int fd); } 577 STD { int sys_wait4(int pid, int *status, int options, \ 58 struct rusage *rusage); } 598 COMPAT_43 { int sys_creat(char *path, int mode); } ocreat 609 STD { int sys_link(const char *path, const char *link); } 6110 STD { int sys_unlink(const char *path); } 6211 OBSOL execv 6312 STD { int sys_chdir(const char *path); } 6413 STD { int sys_fchdir(int fd); } 6514 STD { int sys_mknod(const char *path, int mode, int dev); } 6615 STD { int sys_chmod(const char *path, int mode); } 6716 STD { int sys_chown(const char *path, uid_t uid, \ 68 gid_t gid); } 6917 STD { int sys_obreak(char *nsize); } break 7018 STD { int sys_getfsstat(struct statfs *buf, long bufsize, \ 71 int flags); } 7219 COMPAT_43 { long sys_lseek(int fd, long offset, int whence); } \ 73 olseek 7420 STD { pid_t sys_getpid(void); } 7521 STD { int sys_mount(const char *type, const char *path, \ 76 int flags, void *data); } 7722 STD { int sys_unmount(const char *path, int flags); } 7823 STD { int sys_setuid(uid_t uid); } 7924 STD { uid_t sys_getuid(void); } 8025 STD { uid_t sys_geteuid(void); } 8126 STD { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ 82 int data); } 8327 STD { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ 84 int flags); } 8528 STD { ssize_t sys_sendmsg(int s, \ 86 const struct msghdr *msg, int flags); } 8729 STD { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ 88 int flags, struct sockaddr *from, \ 89 int *fromlenaddr); } 9030 STD { int sys_accept(int s, struct sockaddr *name, \ 91 int *anamelen); } 9231 STD { int sys_getpeername(int fdes, struct sockaddr *asa, \ 93 int *alen); } 9432 STD { int sys_getsockname(int fdes, struct sockaddr *asa, \ 95 int *alen); } 9633 STD { int sys_access(const char *path, int flags); } 9734 STD { int sys_chflags(const char *path, u_long flags); } 9835 STD { int sys_fchflags(int fd, u_long flags); } 9936 STD { void sys_sync(void); } 10037 STD { int sys_kill(int pid, int signum); } 10138 COMPAT_43 { int sys_stat(char *path, struct ostat *ub); } ostat 10239 STD { pid_t sys_getppid(void); } 10340 COMPAT_43 { int sys_lstat(char *path, struct ostat *ub); } olstat 10441 STD { int sys_dup(u_int fd); } 10542 STD { int sys_pipe(void); } 10643 STD { gid_t sys_getegid(void); } 10744 STD { int sys_profil(caddr_t samples, size_t size, \ 108 u_long offset, u_int scale); } 109#ifdef KTRACE 11045 STD { int sys_ktrace(const char *fname, int ops, \ 111 int facs, int pid); } 112#else 11345 UNIMPL ktrace 114#endif 11546 STD { int sys_sigaction(int signum, \ 116 const struct sigaction *nsa, \ 117 struct sigaction *osa); } 11847 STD { gid_t sys_getgid(void); } 11948 STD { int sys_sigprocmask(int how, sigset_t mask); } 12049 STD { int sys___getlogin(char *namebuf, u_int namelen); } 12150 STD { int sys_setlogin(const char *namebuf); } 12251 STD { int sys_acct(const char *path); } 12352 STD { int sys_sigpending(void); } 12453 STD { int sys_sigaltstack(const struct sigaltstack *nss, \ 125 struct sigaltstack *oss); } 12654 STD { int sys_ioctl(int fd, \ 127 u_long com, ... caddr_t data); } 12855 COMPAT_12 { int sys_reboot(int opt); } oreboot 12956 STD { int sys_revoke(const char *path); } 13057 STD { int sys_symlink(const char *path, \ 131 const char *link); } 13258 STD { int sys_readlink(const char *path, char *buf, \ 133 int count); } 13459 STD { int sys_execve(const char *path, \ 135 char * const *argp, char * const *envp); } 13660 STD { int sys_umask(int newmask); } 13761 STD { int sys_chroot(const char *path); } 13862 COMPAT_43 { int sys_fstat(int fd, struct ostat *sb); } ofstat 13963 COMPAT_43 { int sys_getkerninfo(int op, char *where, int *size, \ 140 int arg); } ogetkerninfo 14164 COMPAT_43 { int sys_getpagesize(void); } ogetpagesize 14265 STD { int sys_msync(caddr_t addr, size_t len); } 14366 STD { int sys_vfork(void); } 14467 OBSOL vread 14568 OBSOL vwrite 14669 STD { int sys_sbrk(int incr); } 14770 STD { int sys_sstk(int incr); } 14871 COMPAT_43 { int sys_mmap(caddr_t addr, size_t len, int prot, \ 149 int flags, int fd, long pos); } ommap 15072 STD { int sys_ovadvise(int anom); } vadvise 15173 STD { int sys_munmap(caddr_t addr, size_t len); } 15274 STD { int sys_mprotect(caddr_t addr, size_t len, \ 153 int prot); } 15475 STD { int sys_madvise(caddr_t addr, size_t len, \ 155 int behav); } 15676 OBSOL vhangup 15777 OBSOL vlimit 15878 STD { int sys_mincore(caddr_t addr, size_t len, \ 159 char *vec); } 16079 STD { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 16180 STD { int sys_setgroups(u_int gidsetsize, \ 162 const gid_t *gidset); } 16381 STD { int sys_getpgrp(void); } 16482 STD { int sys_setpgid(int pid, int pgid); } 16583 STD { int sys_setitimer(u_int which, \ 166 const struct itimerval *itv, \ 167 struct itimerval *oitv); } 16884 COMPAT_43 { int sys_wait(void); } owait 16985 COMPAT_12 { int sys_swapon(const char *name); } oswapon 17086 STD { int sys_getitimer(u_int which, \ 171 struct itimerval *itv); } 17287 COMPAT_43 { int sys_gethostname(char *hostname, u_int len); } \ 173 ogethostname 17488 COMPAT_43 { int sys_sethostname(char *hostname, u_int len); } \ 175 osethostname 17689 COMPAT_43 { int sys_getdtablesize(void); } ogetdtablesize 17790 STD { int sys_dup2(u_int from, u_int to); } 17891 UNIMPL getdopt 17992 STD { int sys_fcntl(int fd, int cmd, ... void *arg); } 18093 STD { int sys_select(u_int nd, fd_set *in, fd_set *ou, \ 181 fd_set *ex, struct timeval *tv); } 18294 UNIMPL setdopt 18395 STD { int sys_fsync(int fd); } 18496 STD { int sys_setpriority(int which, int who, int prio); } 18597 STD { int sys_socket(int domain, int type, int protocol); } 18698 STD { int sys_connect(int s, const struct sockaddr *name, \ 187 int namelen); } 18899 COMPAT_43 { int sys_accept(int s, caddr_t name, \ 189 int *anamelen); } oaccept 190100 STD { int sys_getpriority(int which, int who); } 191101 COMPAT_43 { int sys_send(int s, caddr_t buf, int len, \ 192 int flags); } osend 193102 COMPAT_43 { int sys_recv(int s, caddr_t buf, int len, \ 194 int flags); } orecv 195103 STD { int sys_sigreturn(struct sigcontext *sigcntxp); } 196104 STD { int sys_bind(int s, const struct sockaddr *name, \ 197 int namelen); } 198105 STD { int sys_setsockopt(int s, int level, int name, \ 199 const void *val, int valsize); } 200106 STD { int sys_listen(int s, int backlog); } 201107 OBSOL vtimes 202108 COMPAT_43 { int sys_sigvec(int signum, struct sigvec *nsv, \ 203 struct sigvec *osv); } osigvec 204109 COMPAT_43 { int sys_sigblock(int mask); } osigblock 205110 COMPAT_43 { int sys_sigsetmask(int mask); } osigsetmask 206111 STD { int sys_sigsuspend(int mask); } 207112 COMPAT_43 { int sys_sigstack(struct sigstack *nss, \ 208 struct sigstack *oss); } osigstack 209113 COMPAT_43 { int sys_recvmsg(int s, struct omsghdr *msg, \ 210 int flags); } orecvmsg 211114 COMPAT_43 { int sys_sendmsg(int s, caddr_t msg, int flags); } \ 212 osendmsg 213#ifdef TRACE 214115 STD { int sys_vtrace(int request, int value); } 215#else 216115 OBSOL vtrace 217#endif 218116 STD { int sys_gettimeofday(struct timeval *tp, \ 219 struct timezone *tzp); } 220117 STD { int sys_getrusage(int who, struct rusage *rusage); } 221118 STD { int sys_getsockopt(int s, int level, int name, \ 222 void *val, int *avalsize); } 223119 OBSOL resuba 224120 STD { ssize_t sys_readv(int fd, const struct iovec *iovp, \ 225 u_int iovcnt); } 226121 STD { ssize_t sys_writev(int fd, \ 227 const struct iovec *iovp, u_int iovcnt); } 228122 STD { int sys_settimeofday(const struct timeval *tv, \ 229 const struct timezone *tzp); } 230123 STD { int sys_fchown(int fd, uid_t uid, gid_t gid); } 231124 STD { int sys_fchmod(int fd, int mode); } 232125 COMPAT_43 { int sys_recvfrom(int s, caddr_t buf, size_t len, \ 233 int flags, caddr_t from, int *fromlenaddr); } \ 234 orecvfrom 235126 STD { int sys_setreuid(uid_t ruid, uid_t euid); } 236127 STD { int sys_setregid(gid_t rgid, gid_t egid); } 237128 STD { int sys_rename(const char *from, const char *to); } 238129 COMPAT_43 { int sys_truncate(char *path, long length); } \ 239 otruncate 240130 COMPAT_43 { int sys_ftruncate(int fd, long length); } oftruncate 241131 STD { int sys_flock(int fd, int how); } 242132 STD { int sys_mkfifo(const char *path, int mode); } 243133 STD { ssize_t sys_sendto(int s, const void *buf, \ 244 size_t len, int flags, const struct sockaddr *to, \ 245 int tolen); } 246134 STD { int sys_shutdown(int s, int how); } 247135 STD { int sys_socketpair(int domain, int type, \ 248 int protocol, int *rsv); } 249136 STD { int sys_mkdir(const char *path, int mode); } 250137 STD { int sys_rmdir(const char *path); } 251138 STD { int sys_utimes(const char *path, \ 252 const struct timeval *tptr); } 253139 OBSOL 4.2 sigreturn 254140 STD { int sys_adjtime(const struct timeval *delta, \ 255 struct timeval *olddelta); } 256141 COMPAT_43 { int sys_getpeername(int fdes, caddr_t asa, \ 257 int *alen); } ogetpeername 258142 COMPAT_43 { int32_t sys_gethostid(void); } ogethostid 259143 COMPAT_43 { int sys_sethostid(int32_t hostid); } osethostid 260144 COMPAT_43 { int sys_getrlimit(u_int which, \ 261 struct ogetrlimit *rlp); } ogetrlimit 262145 COMPAT_43 { int sys_setrlimit(u_int which, \ 263 struct ogetrlimit *rlp); } osetrlimit 264146 COMPAT_43 { int sys_killpg(int pgid, int signum); } okillpg 265147 STD { int sys_setsid(void); } 266148 STD { int sys_quotactl(const char *path, int cmd, \ 267 int uid, caddr_t arg); } 268149 COMPAT_43 { int sys_quota(void); } oquota 269150 COMPAT_43 { int sys_getsockname(int fdec, caddr_t asa, \ 270 int *alen); } ogetsockname 271 272; Syscalls 151-180 inclusive are reserved for vendor-specific 273; system calls. (This includes various calls added for compatibity 274; with other Unix variants.) 275; Some of these calls are now supported by BSD... 276151 UNIMPL 277152 UNIMPL 278153 UNIMPL 279154 UNIMPL 280#if defined(NFS) || defined(NFSSERVER) 281155 STD { int sys_nfssvc(int flag, void *argp); } 282#else 283155 UNIMPL 284#endif 285156 COMPAT_43 { int sys_getdirentries(int fd, char *buf, \ 286 u_int count, long *basep); } ogetdirentries 287157 STD { int sys_statfs(const char *path, \ 288 struct statfs *buf); } 289158 STD { int sys_fstatfs(int fd, struct statfs *buf); } 290159 UNIMPL 291160 UNIMPL 292#if defined(NFS) || defined(NFSSERVER) 293161 STD { int sys_getfh(const char *fname, fhandle_t *fhp); } 294#else 295161 UNIMPL getfh 296#endif 297162 COMPAT_09 { int sys_getdomainname(char *domainname, int len); } \ 298 ogetdomainname 299163 COMPAT_09 { int sys_setdomainname(char *domainname, int len); } \ 300 osetdomainname 301164 COMPAT_09 { int sys_uname(struct outsname *name); } ouname 302165 STD { int sys_sysarch(int op, char *parms); } 303166 UNIMPL 304167 UNIMPL 305168 UNIMPL 306; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 307#if defined(SYSVSEM) && !defined(alpha) 308169 COMPAT_10 { int sys_semsys(int which, int a2, int a3, int a4, \ 309 int a5); } osemsys 310#else 311169 UNIMPL 1.0 semsys 312#endif 313; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 314#if defined(SYSVMSG) && !defined(alpha) 315170 COMPAT_10 { int sys_msgsys(int which, int a2, int a3, int a4, \ 316 int a5, int a6); } omsgsys 317#else 318170 UNIMPL 1.0 msgsys 319#endif 320; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 321#if defined(SYSVSHM) && !defined(alpha) 322171 COMPAT_10 { int sys_shmsys(int which, int a2, int a3, int a4); } \ 323 oshmsys 324#else 325171 UNIMPL 1.0 shmsys 326#endif 327172 UNIMPL 328173 UNIMPL 329174 UNIMPL 330175 STD { int sys_ntp_gettime(struct ntptimeval *ntvp); } 331176 STD { int sys_ntp_adjtime(struct timex *tp); } 332177 UNIMPL 333178 UNIMPL 334179 UNIMPL 335180 UNIMPL 336 337; Syscalls 180-199 are used by/reserved for BSD 338181 STD { int sys_setgid(gid_t gid); } 339182 STD { int sys_setegid(gid_t egid); } 340183 STD { int sys_seteuid(uid_t euid); } 341#ifdef LFS 342184 STD { int lfs_bmapv(fsid_t *fsidp, \ 343 struct block_info *blkiov, int blkcnt); } 344185 STD { int lfs_markv(fsid_t *fsidp, \ 345 struct block_info *blkiov, int blkcnt); } 346186 STD { int lfs_segclean(fsid_t *fsidp, u_long segment); } 347187 STD { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 348#else 349184 UNIMPL 350185 UNIMPL 351186 UNIMPL 352187 UNIMPL 353#endif 354188 STD { int sys_stat(const char *path, struct stat *ub); } 355189 STD { int sys_fstat(int fd, struct stat *sb); } 356190 STD { int sys_lstat(const char *path, struct stat *ub); } 357191 STD { long sys_pathconf(const char *path, int name); } 358192 STD { long sys_fpathconf(int fd, int name); } 359193 UNIMPL 360194 STD { int sys_getrlimit(u_int which, struct rlimit *rlp); } 361195 STD { int sys_setrlimit(u_int which, \ 362 const struct rlimit *rlp); } 363196 STD { int sys_getdirentries(int fd, char *buf, \ 364 u_int count, long *basep); } 365197 STD { caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \ 366 int flags, int fd, long pad, off_t pos); } 367198 INDIR { quad_t sys___syscall(quad_t num, ...); } 368199 STD { off_t sys_lseek(int fd, int pad, off_t offset, \ 369 int whence); } 370200 STD { int sys_truncate(const char *path, int pad, \ 371 off_t length); } 372201 STD { int sys_ftruncate(int fd, int pad, off_t length); } 373202 STD { int sys___sysctl(int *name, u_int namelen, \ 374 void *old, size_t *oldlenp, void *new, \ 375 size_t newlen); } 376203 STD { int sys_mlock(caddr_t addr, size_t len); } 377204 STD { int sys_munlock(caddr_t addr, size_t len); } 378205 STD { int sys_undelete(const char *path); } 379206 STD { int sys_futimes(int fd, \ 380 const struct timeval *tptr); } 381207 STD { int sys_getpgid(pid_t pid); } 382208 STD { int sys_reboot(int opt, char *bootstr); } 383209 STD { int sys_poll(struct pollfd *fds, u_int nfds, \ 384 int timeout); } 385; 386; Syscalls 210-219 are reserved for dynamically loaded syscalls 387; 388#ifdef LKM 389210 NODEF { int sys_lkmnosys(void); } 390211 NODEF { int sys_lkmnosys(void); } 391212 NODEF { int sys_lkmnosys(void); } 392213 NODEF { int sys_lkmnosys(void); } 393214 NODEF { int sys_lkmnosys(void); } 394215 NODEF { int sys_lkmnosys(void); } 395216 NODEF { int sys_lkmnosys(void); } 396217 NODEF { int sys_lkmnosys(void); } 397218 NODEF { int sys_lkmnosys(void); } 398219 NODEF { int sys_lkmnosys(void); } 399#else /* !LKM */ 400210 UNIMPL 401211 UNIMPL 402212 UNIMPL 403213 UNIMPL 404214 UNIMPL 405215 UNIMPL 406216 UNIMPL 407217 UNIMPL 408218 UNIMPL 409219 UNIMPL 410#endif /* !LKM */ 411; System calls 220-300 are reserved for use by NetBSD 412#ifdef SYSVSEM 413220 STD { int sys___semctl(int semid, int semnum, int cmd, \ 414 union semun *arg); } 415221 STD { int sys_semget(key_t key, int nsems, int semflg); } 416222 STD { int sys_semop(int semid, struct sembuf *sops, \ 417 u_int nsops); } 418223 STD { int sys_semconfig(int flag); } 419#else 420220 UNIMPL semctl 421221 UNIMPL semget 422222 UNIMPL semop 423223 UNIMPL semconfig 424#endif 425#ifdef SYSVMSG 426224 STD { int sys_msgctl(int msqid, int cmd, \ 427 struct msqid_ds *buf); } 428225 STD { int sys_msgget(key_t key, int msgflg); } 429226 STD { int sys_msgsnd(int msqid, void *msgp, size_t msgsz, \ 430 int msgflg); } 431227 STD { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ 432 long msgtyp, int msgflg); } 433#else 434224 UNIMPL msgctl 435225 UNIMPL msgget 436226 UNIMPL msgsnd 437227 UNIMPL msgrcv 438#endif 439#ifdef SYSVSHM 440228 STD { void *sys_shmat(int shmid, void *shmaddr, \ 441 int shmflg); } 442229 STD { int sys_shmctl(int shmid, int cmd, \ 443 struct shmid_ds *buf); } 444230 STD { int sys_shmdt(void *shmaddr); } 445231 STD { int sys_shmget(key_t key, int size, int shmflg); } 446#else 447228 UNIMPL shmat 448229 UNIMPL shmctl 449230 UNIMPL shmdt 450231 UNIMPL shmget 451#endif 452232 STD { int sys_clock_gettime(clockid_t clock_id, \ 453 struct timespec *tp); } 454233 STD { int sys_clock_settime(clockid_t clock_id, \ 455 const struct timespec *tp); } 456234 STD { int sys_clock_getres(clockid_t clock_id, \ 457 struct timespec *tp); } 458235 UNIMPL timer_create 459236 UNIMPL timer_delete 460237 UNIMPL timer_settime 461238 UNIMPL timer_gettime 462239 UNIMPL timer_getoverrun 463240 STD { int sys_nanosleep(const struct timespec *rqtp, \ 464 struct timespec *rmtp); } 465241 UNIMPL 466242 UNIMPL 467243 UNIMPL 468244 UNIMPL 469245 UNIMPL 470246 UNIMPL 471247 UNIMPL 472248 UNIMPL 473249 UNIMPL 474250 UNIMPL 475251 UNIMPL 476252 UNIMPL 477253 UNIMPL 478254 UNIMPL 479255 UNIMPL 480256 UNIMPL 481257 UNIMPL 482258 UNIMPL 483259 UNIMPL 484260 UNIMPL 485261 UNIMPL 486262 UNIMPL 487263 UNIMPL 488264 UNIMPL 489265 UNIMPL 490266 UNIMPL 491267 UNIMPL 492268 UNIMPL 493269 UNIMPL 494270 STD { int sys_posix_rename(const char *from, \ 495 const char *to); } 496271 STD { int sys_swapctl(int cmd, void *arg, int misc); } 497