syscalls.master revision 1.18
1 $NetBSD: syscalls.master,v 1.18 1998/06/25 22:18:32 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#include "opt_nfsserver.h" 36 37#include "fs_lfs.h" 38#include "fs_nfs.h" 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/signal.h> 43#include <sys/mount.h> 44#include <sys/syscallargs.h> 45 46#include <compat/freebsd/freebsd_syscallargs.h> 47 48#include <machine/freebsd_machdep.h> 49 50; Reserved/unimplemented system calls in the range 0-150 inclusive 51; are reserved for use in future Berkeley releases. 52; Additional system calls implemented in vendor and other 53; redistributions should be placed in the reserved range at the end 54; of the current calls. 55 560 NOARGS { int sys_nosys(void); } syscall 571 NOARGS { int sys_exit(int rval); } 582 NOARGS { int sys_fork(void); } 593 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 604 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 615 STD { int freebsd_sys_open(char *path, int flags, \ 62 int mode); } 636 NOARGS { int sys_close(int fd); } 647 NOARGS { int sys_wait4(int pid, int *status, int options, \ 65 struct rusage *rusage); } 668 STD { int compat_43_freebsd_sys_creat(char *path, \ 67 int mode); } ocreat 689 STD { int freebsd_sys_link(char *path, char *link); } 6910 STD { int freebsd_sys_unlink(char *path); } 7011 OBSOL execv 7112 STD { int freebsd_sys_chdir(char *path); } 7213 NOARGS { int sys_fchdir(int fd); } 7314 STD { int freebsd_sys_mknod(char *path, int mode, \ 74 int dev); } 7515 STD { int freebsd_sys_chmod(char *path, int mode); } 7616 STD { int freebsd_sys_chown(char *path, int uid, int gid); } 7717 NOARGS { int sys_obreak(char *nsize); } break 7818 NOARGS { int sys_getfsstat(struct statfs *buf, long bufsize, \ 79 int flags); } 8019 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 81 int whence); } olseek 8220 NOARGS { pid_t sys_getpid(void); } 8321 STD { int freebsd_sys_mount(int type, char *path, \ 84 int flags, caddr_t data); } 8522 STD { int freebsd_sys_unmount(char *path, int flags); } 8623 NOARGS { int sys_setuid(uid_t uid); } 8724 NOARGS { uid_t sys_getuid(void); } 8825 NOARGS { uid_t sys_geteuid(void); } 8926 STD { int freebsd_sys_ptrace(int req, pid_t pid, \ 90 caddr_t addr, int data); } 9127 NOARGS { int sys_recvmsg(int s, struct msghdr *msg, \ 92 int flags); } 9328 NOARGS { int sys_sendmsg(int s, caddr_t msg, int flags); } 9429 NOARGS { int sys_recvfrom(int s, caddr_t buf, size_t len, \ 95 int flags, caddr_t from, int *fromlenaddr); } 9630 NOARGS { int sys_accept(int s, caddr_t name, int *anamelen); } 9731 NOARGS { int sys_getpeername(int fdes, caddr_t asa, \ 98 int *alen); } 9932 NOARGS { int sys_getsockname(int fdes, caddr_t asa, \ 100 int *alen); } 10133 STD { int freebsd_sys_access(char *path, int flags); } 10234 STD { int freebsd_sys_chflags(char *path, int flags); } 10335 NOARGS { int sys_fchflags(int fd, int flags); } 10436 NOARGS { int sys_sync(void); } 10537 NOARGS { int sys_kill(int pid, int signum); } 10638 STD { int compat_43_freebsd_sys_stat(char *path, \ 107 struct stat43 *ub); } stat43 10839 NOARGS { pid_t sys_getppid(void); } 10940 STD { int compat_43_freebsd_sys_lstat(char *path, \ 110 struct stat43 *ub); } lstat43 11141 NOARGS { int sys_dup(u_int fd); } 11242 NOARGS { int sys_pipe(void); } 11343 NOARGS { gid_t sys_getegid(void); } 11444 NOARGS { int sys_profil(caddr_t samples, u_int size, \ 115 u_int offset, u_int scale); } 116#ifdef KTRACE 11745 NOARGS { int sys_ktrace(char *fname, int ops, int facs, \ 118 int pid); } 119#else 12045 UNIMPL ktrace 121#endif 12246 NOARGS { int sys_sigaction(int signum, struct sigaction *nsa, \ 123 struct sigaction *osa); } 12447 NOARGS { gid_t sys_getgid(void); } 12548 NOARGS { int sys_sigprocmask(int how, sigset_t mask); } 12649 NOARGS { int sys___getlogin(char *namebuf, u_int namelen); } 12750 NOARGS { int sys_setlogin(char *namebuf); } 12851 NOARGS { int sys_acct(char *path); } 12952 NOARGS { int sys_sigpending(void); } 13053 NOARGS { int compat_13_sys_sigaltstack( \ 131 const struct sigaltstack13 *nss, \ 132 struct sigaltstack13 *oss); } 13354 STD { int freebsd_sys_ioctl(int fd, u_long com, \ 134 caddr_t data); } 13555 NOARGS { int sys_reboot(int opt); } 13656 STD { int freebsd_sys_revoke(char *path); } 13757 STD { int freebsd_sys_symlink(char *path, char *link); } 13858 STD { int freebsd_sys_readlink(char *path, char *buf, \ 139 int count); } 14059 STD { int freebsd_sys_execve(char *path, char **argp, \ 141 char **envp); } 14260 NOARGS { int sys_umask(int newmask); } 14361 STD { int freebsd_sys_chroot(char *path); } 14462 NOARGS { int compat_43_sys_fstat(int fd, struct stat43 *sb); } \ 145 fstat43 14663 NOARGS { int compat_43_sys_getkerninfo(int op, char *where, \ 147 int *size, int arg); } ogetkerninfo 14864 NOARGS { int compat_43_sys_getpagesize(void); } ogetpagesize 14965 STD { int freebsd_sys_msync(caddr_t addr, size_t len, \ 150 int flags); } 15166 NOARGS { int sys_vfork(void); } 15267 OBSOL vread 15368 OBSOL vwrite 15469 NOARGS { int sys_sbrk(int incr); } 15570 NOARGS { int sys_sstk(int incr); } 15671 NOARGS { int compat_43_sys_mmap(caddr_t addr, size_t len, \ 157 int prot, int flags, int fd, long pos); } ommap 15872 NOARGS { int sys_ovadvise(int anom); } vadvise 15973 NOARGS { int sys_munmap(caddr_t addr, size_t len); } 16074 NOARGS { int sys_mprotect(caddr_t addr, size_t len, \ 161 int prot); } 16275 NOARGS { int sys_madvise(caddr_t addr, size_t len, \ 163 int behav); } 16476 OBSOL vhangup 16577 OBSOL vlimit 16678 NOARGS { int sys_mincore(caddr_t addr, size_t len, char *vec); } 16779 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 16880 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 16981 NOARGS { int sys_getpgrp(void); } 17082 NOARGS { int sys_setpgid(int pid, int pgid); } 17183 NOARGS { int sys_setitimer(u_int which, \ 172 struct itimerval *itv, struct itimerval *oitv); } 17384 NOARGS { int compat_43_sys_wait(void); } owait 17485 NOARGS { int compat_12_sys_swapon(char *name); } 17586 NOARGS { int sys_getitimer(u_int which, \ 176 struct itimerval *itv); } 17787 NOARGS { int compat_43_sys_gethostname(char *hostname, \ 178 u_int len); } ogethostname 17988 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 180 u_int len); } osethostname 18189 NOARGS { int compat_43_sys_getdtablesize(void); } \ 182 ogetdtablesize 18390 NOARGS { int sys_dup2(u_int from, u_int to); } 18491 UNIMPL getdopt 18592 NOARGS { int sys_fcntl(int fd, int cmd, void *arg); } 18693 NOARGS { int sys_select(u_int nd, fd_set *in, fd_set *ou, \ 187 fd_set *ex, struct timeval *tv); } 18894 UNIMPL setdopt 18995 NOARGS { int sys_fsync(int fd); } 19096 NOARGS { int sys_setpriority(int which, int who, int prio); } 19197 NOARGS { int sys_socket(int domain, int type, int protocol); } 19298 NOARGS { int sys_connect(int s, caddr_t name, int namelen); } 19399 NOARGS { int compat_43_sys_accept(int s, caddr_t name, \ 194 int *anamelen); } oaccept 195100 NOARGS { int sys_getpriority(int which, int who); } 196101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \ 197 int flags); } osend 198102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \ 199 int flags); } orecv 200103 STD { int freebsd_sys_sigreturn( \ 201 struct freebsd_sigcontext *scp); } 202104 NOARGS { int sys_bind(int s, caddr_t name, int namelen); } 203105 NOARGS { int sys_setsockopt(int s, int level, int name, \ 204 caddr_t val, int valsize); } 205106 NOARGS { int sys_listen(int s, int backlog); } 206107 OBSOL vtimes 207108 NOARGS { int compat_43_sys_sigvec(int signum, \ 208 struct sigvec *nsv, struct sigvec *osv); } osigvec 209109 NOARGS { int compat_43_sys_sigblock(int mask); } osigblock 210110 NOARGS { int compat_43_sys_sigsetmask(int mask); } osigsetmask 211111 NOARGS { int sys_sigsuspend(int mask); } 212112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \ 213 struct sigstack *oss); } osigstack 214113 NOARGS { int compat_43_sys_recvmsg(int s, \ 215 struct omsghdr *msg, int flags); } orecvmsg 216114 NOARGS { int compat_43_sys_sendmsg(int s, caddr_t msg, \ 217 int flags); } osendmsg 218#ifdef TRACE 219115 NOARGS { int sys_vtrace(int request, int value); } 220#else 221115 OBSOL vtrace 222#endif 223116 NOARGS { int sys_gettimeofday(struct timeval *tp, \ 224 struct timezone *tzp); } 225117 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 226118 NOARGS { int sys_getsockopt(int s, int level, int name, \ 227 caddr_t val, int *avalsize); } 228119 OBSOL resuba 229120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 230 u_int iovcnt); } 231121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 232 u_int iovcnt); } 233122 NOARGS { int sys_settimeofday(struct timeval *tv, \ 234 struct timezone *tzp); } 235123 NOARGS { int sys_fchown(int fd, int uid, int gid); } 236124 NOARGS { int sys_fchmod(int fd, int mode); } 237125 NOARGS { int compat_43_sys_recvfrom(int s, caddr_t buf, \ 238 size_t len, int flags, caddr_t from, \ 239 int *fromlenaddr); } orecvfrom 240126 NOARGS { int sys_setreuid(int ruid, int euid); } 241127 NOARGS { int sys_setregid(int rgid, int egid); } 242128 STD { int freebsd_sys_rename(char *from, char *to); } 243129 STD { int compat_43_freebsd_sys_truncate(char *path, \ 244 long length); } otruncate 245130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } \ 246 oftruncate 247131 NOARGS { int sys_flock(int fd, int how); } 248132 STD { int freebsd_sys_mkfifo(char *path, int mode); } 249133 NOARGS { int sys_sendto(int s, caddr_t buf, size_t len, \ 250 int flags, caddr_t to, int tolen); } 251134 NOARGS { int sys_shutdown(int s, int how); } 252135 NOARGS { int sys_socketpair(int domain, int type, \ 253 int protocol, int *rsv); } 254136 STD { int freebsd_sys_mkdir(char *path, int mode); } 255137 STD { int freebsd_sys_rmdir(char *path); } 256138 NOARGS { int sys_utimes(char *path, struct timeval *tptr); } 257139 OBSOL 4.2 sigreturn 258140 NOARGS { int sys_adjtime(struct timeval *delta, \ 259 struct timeval *olddelta); } 260141 NOARGS { int compat_43_sys_getpeername(int fdes, caddr_t asa, \ 261 int *alen); } ogetpeername 262142 NOARGS { int32_t compat_43_sys_gethostid(void); } ogethostid 263143 NOARGS { int compat_43_sys_sethostid(int32_t hostid); } \ 264 osethostid 265144 NOARGS { int compat_43_sys_getrlimit(u_int which, \ 266 struct orlimit *rlp); } ogetrlimit 267145 NOARGS { int compat_43_sys_setrlimit(u_int which, \ 268 struct orlimit *rlp); } osetrlimit 269146 NOARGS { int compat_43_sys_killpg(int pgid, int signum); } \ 270 okillpg 271147 NOARGS { int sys_setsid(void); } 272148 NOARGS { int sys_quotactl(char *path, int cmd, int uid, \ 273 caddr_t arg); } 274149 NOARGS { int compat_43_sys_quota(void); } oquota 275150 NOARGS { int compat_43_sys_getsockname(int fdec, caddr_t asa, \ 276 int *alen); } ogetsockname 277 278; Syscalls 151-180 inclusive are reserved for vendor-specific 279; system calls. (This includes various calls added for compatibity 280; with other Unix variants.) 281; Some of these calls are now supported by BSD... 282151 UNIMPL 283152 UNIMPL 284153 UNIMPL 285154 UNIMPL 286#if defined(NFS) || defined(NFSSERVER) 287155 NOARGS { int sys_nfssvc(int flag, caddr_t argp); } 288#else 289155 UNIMPL 290#endif 291156 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \ 292 u_int count, long *basep); } ogetdirentries 293157 STD { int freebsd_sys_statfs(char *path, \ 294 struct statfs *buf); } 295158 NOARGS { int sys_fstatfs(int fd, struct statfs *buf); } 296159 UNIMPL 297160 UNIMPL 298#ifdef NFS 299161 STD { int freebsd_sys_getfh(char *fname, fhandle_t *fhp); } 300#else 301161 UNIMPL getfh 302#endif 303162 NOARGS { int compat_09_sys_getdomainname(char *domainname, \ 304 int len); } 305163 NOARGS { int compat_09_sys_setdomainname(char *domainname, \ 306 int len); } 307164 NOARGS { int compat_09_sys_uname(struct outsname *name); } 308165 NOARGS { int sys_sysarch(int op, char *parms); } 309166 STD { int freebsd_sys_rtprio(int function, pid_t pid, \ 310 struct freebsd_rtprio *rtp); } 311167 UNIMPL 312168 UNIMPL 313; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 314#if defined(SYSVSEM) && !defined(alpha) 315169 STD { int freebsd_sys_semsys(int which, int a2, int a3, \ 316 int a4, int a5); } 317#else 318169 UNIMPL 1.0 semsys 319#endif 320; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 321#if defined(SYSVMSG) && !defined(alpha) 322170 STD { int freebsd_sys_msgsys(int which, int a2, int a3, \ 323 int a4, int a5, int a6); } 324#else 325170 UNIMPL 1.0 msgsys 326#endif 327; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 328#if defined(SYSVSHM) && !defined(alpha) 329171 STD { int freebsd_sys_shmsys(int which, int a2, int a3, \ 330 int a4); } 331#else 332171 UNIMPL 1.0 shmsys 333#endif 334172 UNIMPL 335173 UNIMPL 336174 UNIMPL 337175 UNIMPL 338176 STD { int freebsd_ntp_adjtime(struct freebsd_timex *tp); } 339177 UNIMPL 340178 UNIMPL 341179 UNIMPL 342180 UNIMPL 343 344; Syscalls 180-199 are used by/reserved for BSD 345181 NOARGS { int sys_setgid(gid_t gid); } 346182 NOARGS { int sys_setegid(gid_t egid); } 347183 NOARGS { int sys_seteuid(uid_t euid); } 348#ifdef LFS 349184 NOARGS { int lfs_bmapv(fsid_t *fsidp, \ 350 struct block_info *blkiov, int blkcnt); } 351185 NOARGS { int lfs_markv(fsid_t *fsidp, \ 352 struct block_info *blkiov, int blkcnt); } 353186 NOARGS { int lfs_segclean(fsid_t *fsidp, u_long segment); } 354187 NOARGS { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 355#else 356184 UNIMPL 357185 UNIMPL 358186 UNIMPL 359187 UNIMPL 360#endif 361188 STD { int freebsd_sys_stat(char *path, \ 362 struct stat12 *ub); } 363189 NOARGS { int compat_12_sys_fstat(int fd, \ 364 struct stat12 *sb); } 365190 STD { int freebsd_sys_lstat(char *path, \ 366 struct stat12 *ub); } 367191 STD { int freebsd_sys_pathconf(char *path, int name); } 368192 NOARGS { int sys_fpathconf(int fd, int name); } 369193 UNIMPL 370194 NOARGS { int sys_getrlimit(u_int which, struct rlimit *rlp); } 371195 NOARGS { int sys_setrlimit(u_int which, struct rlimit *rlp); } 372196 NOARGS { int compat_12_sys_getdirentries(int fd, char *buf, \ 373 u_int count, long *basep); } 374197 NOARGS { caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \ 375 int flags, int fd, long pad, off_t pos); } 376198 NOARGS { int sys_nosys(void); } __syscall 377199 NOARGS { off_t sys_lseek(int fd, int pad, off_t offset, \ 378 int whence); } 379200 STD { int freebsd_sys_truncate(char *path, int pad, \ 380 off_t length); } 381201 NOARGS { int sys_ftruncate(int fd, int pad, off_t length); } 382202 NOARGS { int sys___sysctl(int *name, u_int namelen, \ 383 void *old, size_t *oldlenp, void *new, \ 384 size_t newlen); } 385203 NOARGS { int sys_mlock(caddr_t addr, size_t len); } 386204 NOARGS { int sys_munlock(caddr_t addr, size_t len); } 387#ifdef FREEBSD_BASED_ON_44LITE_R2 388205 STD { int freebsd_sys_undelete(char *path); } 389#else 390205 UNIMPL 391#endif 392206 UNIMPL 393207 UNIMPL 394208 UNIMPL 395209 UNIMPL 396; 397; Syscalls 210-219 are reserved for dynamically loaded syscalls 398; 399210 UNIMPL 400211 UNIMPL 401212 UNIMPL 402213 UNIMPL 403214 UNIMPL 404215 UNIMPL 405216 UNIMPL 406217 UNIMPL 407218 UNIMPL 408219 UNIMPL 409; 410; Syscalls 220-239 are reserved for syscalls imported from NetBSD 411; 412220 UNIMPL 413221 UNIMPL 414222 UNIMPL 415223 UNIMPL 416224 UNIMPL 417225 UNIMPL 418226 UNIMPL 419227 UNIMPL 420228 UNIMPL 421229 UNIMPL 422230 UNIMPL 423231 UNIMPL 424232 UNIMPL 425233 UNIMPL 426234 UNIMPL 427235 UNIMPL 428236 UNIMPL 429237 UNIMPL 430238 UNIMPL 431239 UNIMPL 432240 UNIMPL 433241 UNIMPL 434242 UNIMPL 435243 UNIMPL 436244 UNIMPL 437245 UNIMPL 438246 UNIMPL 439247 UNIMPL 440248 UNIMPL 441249 UNIMPL 442250 UNIMPL 443251 UNIMPL 444252 UNIMPL 445253 STD { int freebsd_sys_issetugid(void); } 446254 STD { int freebsd_sys_lchown(char *path, int uid, \ 447 int gid); } 448