syscalls.master revision 1.12
1 $NetBSD: syscalls.master,v 1.12 1997/10/18 16:30:34 christos 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 switch definition file only. 33 34#include <sys/param.h> 35#include <sys/systm.h> 36#include <sys/signal.h> 37#include <sys/mount.h> 38#include <sys/syscallargs.h> 39 40#include <compat/freebsd/freebsd_syscallargs.h> 41 42#include <machine/freebsd_machdep.h> 43 44; Reserved/unimplemented system calls in the range 0-150 inclusive 45; are reserved for use in future Berkeley releases. 46; Additional system calls implemented in vendor and other 47; redistributions should be placed in the reserved range at the end 48; of the current calls. 49 500 NOARGS { int sys_nosys(void); } syscall 511 NOARGS { int sys_exit(int rval); } 522 NOARGS { int sys_fork(void); } 533 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 544 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 555 STD { int freebsd_sys_open(char *path, int flags, \ 56 int mode); } 576 NOARGS { int sys_close(int fd); } 587 NOARGS { int sys_wait4(int pid, int *status, int options, \ 59 struct rusage *rusage); } 608 STD { int compat_43_freebsd_sys_creat(char *path, \ 61 int mode); } ocreat 629 STD { int freebsd_sys_link(char *path, char *link); } 6310 STD { int freebsd_sys_unlink(char *path); } 6411 OBSOL execv 6512 STD { int freebsd_sys_chdir(char *path); } 6613 NOARGS { int sys_fchdir(int fd); } 6714 STD { int freebsd_sys_mknod(char *path, int mode, \ 68 int dev); } 6915 STD { int freebsd_sys_chmod(char *path, int mode); } 7016 STD { int freebsd_sys_chown(char *path, int uid, int gid); } 7117 NOARGS { int sys_obreak(char *nsize); } break 7218 NOARGS { int sys_getfsstat(struct statfs *buf, long bufsize, \ 73 int flags); } 7419 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 75 int whence); } olseek 7620 NOARGS { pid_t sys_getpid(void); } 7721 STD { int freebsd_sys_mount(int type, char *path, \ 78 int flags, caddr_t data); } 7922 STD { int freebsd_sys_unmount(char *path, int flags); } 8023 NOARGS { int sys_setuid(uid_t uid); } 8124 NOARGS { uid_t sys_getuid(void); } 8225 NOARGS { uid_t sys_geteuid(void); } 8326 STD { int freebsd_sys_ptrace(int req, pid_t pid, \ 84 caddr_t addr, int data); } 8527 NOARGS { int sys_recvmsg(int s, struct msghdr *msg, \ 86 int flags); } 8728 NOARGS { int sys_sendmsg(int s, caddr_t msg, int flags); } 8829 NOARGS { int sys_recvfrom(int s, caddr_t buf, size_t len, \ 89 int flags, caddr_t from, int *fromlenaddr); } 9030 NOARGS { int sys_accept(int s, caddr_t name, int *anamelen); } 9131 NOARGS { int sys_getpeername(int fdes, caddr_t asa, \ 92 int *alen); } 9332 NOARGS { int sys_getsockname(int fdes, caddr_t asa, \ 94 int *alen); } 9533 STD { int freebsd_sys_access(char *path, int flags); } 9634 STD { int freebsd_sys_chflags(char *path, int flags); } 9735 NOARGS { int sys_fchflags(int fd, int flags); } 9836 NOARGS { int sys_sync(void); } 9937 NOARGS { int sys_kill(int pid, int signum); } 10038 STD { int compat_43_freebsd_sys_stat(char *path, \ 101 struct stat43 *ub); } stat43 10239 NOARGS { pid_t sys_getppid(void); } 10340 STD { int compat_43_freebsd_sys_lstat(char *path, \ 104 struct stat43 *ub); } lstat43 10541 NOARGS { int sys_dup(u_int fd); } 10642 NOARGS { int sys_pipe(void); } 10743 NOARGS { gid_t sys_getegid(void); } 10844 NOARGS { int sys_profil(caddr_t samples, u_int size, \ 109 u_int offset, u_int scale); } 110#ifdef KTRACE 11145 NOARGS { int sys_ktrace(char *fname, int ops, int facs, \ 112 int pid); } 113#else 11445 UNIMPL ktrace 115#endif 11646 NOARGS { int sys_sigaction(int signum, struct sigaction *nsa, \ 117 struct sigaction *osa); } 11847 NOARGS { gid_t sys_getgid(void); } 11948 NOARGS { int sys_sigprocmask(int how, sigset_t mask); } 12049 NOARGS { int sys___getlogin(char *namebuf, u_int namelen); } 12150 NOARGS { int sys_setlogin(char *namebuf); } 12251 NOARGS { int sys_acct(char *path); } 12352 NOARGS { int sys_sigpending(void); } 12453 NOARGS { int sys_sigaltstack(struct sigaltstack *nss, \ 125 struct sigaltstack *oss); } 12654 STD { int freebsd_sys_ioctl(int fd, u_long com, \ 127 caddr_t data); } 12855 NOARGS { int sys_reboot(int opt); } 12956 STD { int freebsd_sys_revoke(char *path); } 13057 STD { int freebsd_sys_symlink(char *path, char *link); } 13158 STD { int freebsd_sys_readlink(char *path, char *buf, \ 132 int count); } 13359 STD { int freebsd_sys_execve(char *path, char **argp, \ 134 char **envp); } 13560 NOARGS { int sys_umask(int newmask); } 13661 STD { int freebsd_sys_chroot(char *path); } 13762 NOARGS { int compat_43_sys_fstat(int fd, struct stat43 *sb); } \ 138 fstat43 13963 NOARGS { int compat_43_sys_getkerninfo(int op, char *where, \ 140 int *size, int arg); } ogetkerninfo 14164 NOARGS { int compat_43_sys_getpagesize(void); } ogetpagesize 14265 STD { int freebsd_sys_msync(caddr_t addr, size_t len, \ 143 int flags); } 14466 NOARGS { int sys_vfork(void); } 14567 OBSOL vread 14668 OBSOL vwrite 14769 NOARGS { int sys_sbrk(int incr); } 14870 NOARGS { int sys_sstk(int incr); } 14971 NOARGS { int compat_43_sys_mmap(caddr_t addr, size_t len, \ 150 int prot, int flags, int fd, long pos); } ommap 15172 NOARGS { int sys_ovadvise(int anom); } vadvise 15273 NOARGS { int sys_munmap(caddr_t addr, size_t len); } 15374 NOARGS { int sys_mprotect(caddr_t addr, size_t len, \ 154 int prot); } 15575 NOARGS { int sys_madvise(caddr_t addr, size_t len, \ 156 int behav); } 15776 OBSOL vhangup 15877 OBSOL vlimit 15978 NOARGS { int sys_mincore(caddr_t addr, size_t len, char *vec); } 16079 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 16180 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 16281 NOARGS { int sys_getpgrp(void); } 16382 NOARGS { int sys_setpgid(int pid, int pgid); } 16483 NOARGS { int sys_setitimer(u_int which, \ 165 struct itimerval *itv, struct itimerval *oitv); } 16684 NOARGS { int compat_43_sys_wait(void); } owait 16785 NOARGS { int compat_12_sys_swapon(char *name); } 16886 NOARGS { int sys_getitimer(u_int which, \ 169 struct itimerval *itv); } 17087 NOARGS { int compat_43_sys_gethostname(char *hostname, \ 171 u_int len); } ogethostname 17288 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 173 u_int len); } osethostname 17489 NOARGS { int compat_43_sys_getdtablesize(void); } \ 175 ogetdtablesize 17690 NOARGS { int sys_dup2(u_int from, u_int to); } 17791 UNIMPL getdopt 17892 NOARGS { int sys_fcntl(int fd, int cmd, void *arg); } 17993 NOARGS { int sys_select(u_int nd, fd_set *in, fd_set *ou, \ 180 fd_set *ex, struct timeval *tv); } 18194 UNIMPL setdopt 18295 NOARGS { int sys_fsync(int fd); } 18396 NOARGS { int sys_setpriority(int which, int who, int prio); } 18497 NOARGS { int sys_socket(int domain, int type, int protocol); } 18598 NOARGS { int sys_connect(int s, caddr_t name, int namelen); } 18699 NOARGS { int compat_43_sys_accept(int s, caddr_t name, \ 187 int *anamelen); } oaccept 188100 NOARGS { int sys_getpriority(int which, int who); } 189101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \ 190 int flags); } osend 191102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \ 192 int flags); } orecv 193103 STD { int freebsd_sys_sigreturn( \ 194 struct freebsd_sigcontext *scp); } 195104 NOARGS { int sys_bind(int s, caddr_t name, int namelen); } 196105 NOARGS { int sys_setsockopt(int s, int level, int name, \ 197 caddr_t val, int valsize); } 198106 NOARGS { int sys_listen(int s, int backlog); } 199107 OBSOL vtimes 200108 NOARGS { int compat_43_sys_sigvec(int signum, \ 201 struct sigvec *nsv, struct sigvec *osv); } osigvec 202109 NOARGS { int compat_43_sys_sigblock(int mask); } osigblock 203110 NOARGS { int compat_43_sys_sigsetmask(int mask); } osigsetmask 204111 NOARGS { int sys_sigsuspend(int mask); } 205112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \ 206 struct sigstack *oss); } osigstack 207113 NOARGS { int compat_43_sys_recvmsg(int s, \ 208 struct omsghdr *msg, int flags); } orecvmsg 209114 NOARGS { int compat_43_sys_sendmsg(int s, caddr_t msg, \ 210 int flags); } osendmsg 211#ifdef TRACE 212115 NOARGS { int sys_vtrace(int request, int value); } 213#else 214115 OBSOL vtrace 215#endif 216116 NOARGS { int sys_gettimeofday(struct timeval *tp, \ 217 struct timezone *tzp); } 218117 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 219118 NOARGS { int sys_getsockopt(int s, int level, int name, \ 220 caddr_t val, int *avalsize); } 221119 OBSOL resuba 222120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 223 u_int iovcnt); } 224121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 225 u_int iovcnt); } 226122 NOARGS { int sys_settimeofday(struct timeval *tv, \ 227 struct timezone *tzp); } 228123 NOARGS { int sys_fchown(int fd, int uid, int gid); } 229124 NOARGS { int sys_fchmod(int fd, int mode); } 230125 NOARGS { int compat_43_sys_recvfrom(int s, caddr_t buf, \ 231 size_t len, int flags, caddr_t from, \ 232 int *fromlenaddr); } orecvfrom 233126 NOARGS { int sys_setreuid(int ruid, int euid); } 234127 NOARGS { int sys_setregid(int rgid, int egid); } 235128 STD { int freebsd_sys_rename(char *from, char *to); } 236129 STD { int compat_43_freebsd_sys_truncate(char *path, \ 237 long length); } otruncate 238130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } \ 239 oftruncate 240131 NOARGS { int sys_flock(int fd, int how); } 241132 STD { int freebsd_sys_mkfifo(char *path, int mode); } 242133 NOARGS { int sys_sendto(int s, caddr_t buf, size_t len, \ 243 int flags, caddr_t to, int tolen); } 244134 NOARGS { int sys_shutdown(int s, int how); } 245135 NOARGS { int sys_socketpair(int domain, int type, \ 246 int protocol, int *rsv); } 247136 STD { int freebsd_sys_mkdir(char *path, int mode); } 248137 STD { int freebsd_sys_rmdir(char *path); } 249138 NOARGS { int sys_utimes(char *path, struct timeval *tptr); } 250139 OBSOL 4.2 sigreturn 251140 NOARGS { int sys_adjtime(struct timeval *delta, \ 252 struct timeval *olddelta); } 253141 NOARGS { int compat_43_sys_getpeername(int fdes, caddr_t asa, \ 254 int *alen); } ogetpeername 255142 NOARGS { int32_t compat_43_sys_gethostid(void); } ogethostid 256143 NOARGS { int compat_43_sys_sethostid(int32_t hostid); } \ 257 osethostid 258144 NOARGS { int compat_43_sys_getrlimit(u_int which, \ 259 struct orlimit *rlp); } ogetrlimit 260145 NOARGS { int compat_43_sys_setrlimit(u_int which, \ 261 struct orlimit *rlp); } osetrlimit 262146 NOARGS { int compat_43_sys_killpg(int pgid, int signum); } \ 263 okillpg 264147 NOARGS { int sys_setsid(void); } 265148 NOARGS { int sys_quotactl(char *path, int cmd, int uid, \ 266 caddr_t arg); } 267149 NOARGS { int compat_43_sys_quota(void); } oquota 268150 NOARGS { int compat_43_sys_getsockname(int fdec, caddr_t asa, \ 269 int *alen); } ogetsockname 270 271; Syscalls 151-180 inclusive are reserved for vendor-specific 272; system calls. (This includes various calls added for compatibity 273; with other Unix variants.) 274; Some of these calls are now supported by BSD... 275151 UNIMPL 276152 UNIMPL 277153 UNIMPL 278154 UNIMPL 279#if defined(NFS) || defined(NFSSERVER) 280155 NOARGS { int sys_nfssvc(int flag, caddr_t argp); } 281#else 282155 UNIMPL 283#endif 284156 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \ 285 u_int count, long *basep); } ogetdirentries 286157 STD { int freebsd_sys_statfs(char *path, \ 287 struct statfs *buf); } 288158 NOARGS { int sys_fstatfs(int fd, struct statfs *buf); } 289159 UNIMPL 290160 UNIMPL 291#ifdef NFS 292161 STD { int freebsd_sys_getfh(char *fname, fhandle_t *fhp); } 293#else 294161 UNIMPL getfh 295#endif 296162 NOARGS { int compat_09_sys_getdomainname(char *domainname, \ 297 int len); } 298163 NOARGS { int compat_09_sys_setdomainname(char *domainname, \ 299 int len); } 300164 NOARGS { int compat_09_sys_uname(struct outsname *name); } 301165 NOARGS { int sys_sysarch(int op, char *parms); } 302166 STD { int freebsd_sys_rtprio(int function, pid_t pid, \ 303 struct freebsd_rtprio *rtp); } 304167 UNIMPL 305168 UNIMPL 306; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 307#if defined(SYSVSEM) && !defined(alpha) 308169 NOARGS { int compat_10_sys_semsys(int which, int a2, int a3, \ 309 int a4, int a5); } 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 NOARGS { int compat_10_sys_msgsys(int which, int a2, int a3, \ 316 int a4, int a5, int a6); } 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 NOARGS { int compat_10_sys_shmsys(int which, int a2, int a3, \ 323 int a4); } 324#else 325171 UNIMPL 1.0 shmsys 326#endif 327172 UNIMPL 328173 UNIMPL 329174 UNIMPL 330175 UNIMPL 331176 STD { int freebsd_ntp_adjtime(struct freebsd_timex *tp); } 332177 UNIMPL 333178 UNIMPL 334179 UNIMPL 335180 UNIMPL 336 337; Syscalls 180-199 are used by/reserved for BSD 338181 NOARGS { int sys_setgid(gid_t gid); } 339182 NOARGS { int sys_setegid(gid_t egid); } 340183 NOARGS { int sys_seteuid(uid_t euid); } 341#ifdef LFS 342184 NOARGS { int lfs_bmapv(fsid_t *fsidp, \ 343 struct block_info *blkiov, int blkcnt); } 344185 NOARGS { int lfs_markv(fsid_t *fsidp, \ 345 struct block_info *blkiov, int blkcnt); } 346186 NOARGS { int lfs_segclean(fsid_t *fsidp, u_long segment); } 347187 NOARGS { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 348#else 349184 UNIMPL 350185 UNIMPL 351186 UNIMPL 352187 UNIMPL 353#endif 354188 STD { int freebsd_sys_stat(char *path, \ 355 struct stat12 *ub); } 356189 NOARGS { int compat_12_sys_fstat(int fd, \ 357 struct stat12 *sb); } 358190 STD { int freebsd_sys_lstat(char *path, \ 359 struct stat12 *ub); } 360191 STD { int freebsd_sys_pathconf(char *path, int name); } 361192 NOARGS { int sys_fpathconf(int fd, int name); } 362193 UNIMPL 363194 NOARGS { int sys_getrlimit(u_int which, struct rlimit *rlp); } 364195 NOARGS { int sys_setrlimit(u_int which, struct rlimit *rlp); } 365196 NOARGS { int compat_12_sys_getdirentries(int fd, char *buf, \ 366 u_int count, long *basep); } 367197 NOARGS { caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \ 368 int flags, int fd, long pad, off_t pos); } 369198 NOARGS { int sys_nosys(void); } __syscall 370199 NOARGS { off_t sys_lseek(int fd, int pad, off_t offset, \ 371 int whence); } 372200 STD { int freebsd_sys_truncate(char *path, int pad, \ 373 off_t length); } 374201 NOARGS { int sys_ftruncate(int fd, int pad, off_t length); } 375202 NOARGS { int sys___sysctl(int *name, u_int namelen, \ 376 void *old, size_t *oldlenp, void *new, \ 377 size_t newlen); } 378203 NOARGS { int sys_mlock(caddr_t addr, size_t len); } 379204 NOARGS { int sys_munlock(caddr_t addr, size_t len); } 380#ifdef FREEBSD_BASED_ON_44LITE_R2 381205 STD { int freebsd_sys_undelete(char *path); } 382#else 383205 UNIMPL 384#endif 385206 UNIMPL 386207 UNIMPL 387208 UNIMPL 388209 UNIMPL 389; 390; Syscalls 210-219 are reserved for dynamically loaded syscalls 391; 392210 UNIMPL 393211 UNIMPL 394212 UNIMPL 395213 UNIMPL 396214 UNIMPL 397215 UNIMPL 398216 UNIMPL 399217 UNIMPL 400218 UNIMPL 401219 UNIMPL 402; 403; Syscalls 220-239 are reserved for syscalls imported from NetBSD 404; 405220 UNIMPL 406221 UNIMPL 407222 UNIMPL 408223 UNIMPL 409224 UNIMPL 410225 UNIMPL 411226 UNIMPL 412227 UNIMPL 413228 UNIMPL 414229 UNIMPL 415230 UNIMPL 416231 UNIMPL 417232 UNIMPL 418233 UNIMPL 419234 UNIMPL 420235 UNIMPL 421236 UNIMPL 422237 UNIMPL 423238 UNIMPL 424239 UNIMPL 425240 UNIMPL 426241 UNIMPL 427242 UNIMPL 428243 UNIMPL 429244 UNIMPL 430245 UNIMPL 431246 UNIMPL 432247 UNIMPL 433248 UNIMPL 434249 UNIMPL 435250 UNIMPL 436251 UNIMPL 437252 UNIMPL 438253 UNIMPL 439254 STD { int freebsd_sys_lchown(char *path, int uid, \ 440 int gid); } 441