syscalls.master revision 1.20
1 $NetBSD: syscalls.master,v 1.20 1998/10/19 22:27:38 tron 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#include "opt_sysv.h" 37 38#include "fs_lfs.h" 39#include "fs_nfs.h" 40 41#include <sys/param.h> 42#include <sys/systm.h> 43#include <sys/signal.h> 44#include <sys/mount.h> 45#include <sys/syscallargs.h> 46 47#include <compat/freebsd/freebsd_syscallargs.h> 48 49#include <machine/freebsd_machdep.h> 50 51; Reserved/unimplemented system calls in the range 0-150 inclusive 52; are reserved for use in future Berkeley releases. 53; Additional system calls implemented in vendor and other 54; redistributions should be placed in the reserved range at the end 55; of the current calls. 56 570 NOARGS { int sys_nosys(void); } syscall 581 NOARGS { int sys_exit(int rval); } 592 NOARGS { int sys_fork(void); } 603 NOARGS { int sys_read(int fd, char *buf, u_int nbyte); } 614 NOARGS { int sys_write(int fd, char *buf, u_int nbyte); } 625 STD { int freebsd_sys_open(char *path, int flags, \ 63 int mode); } 646 NOARGS { int sys_close(int fd); } 657 NOARGS { int sys_wait4(int pid, int *status, int options, \ 66 struct rusage *rusage); } 678 STD { int compat_43_freebsd_sys_creat(char *path, \ 68 int mode); } ocreat 699 STD { int freebsd_sys_link(char *path, char *link); } 7010 STD { int freebsd_sys_unlink(char *path); } 7111 OBSOL execv 7212 STD { int freebsd_sys_chdir(char *path); } 7313 NOARGS { int sys_fchdir(int fd); } 7414 STD { int freebsd_sys_mknod(char *path, int mode, \ 75 int dev); } 7615 STD { int freebsd_sys_chmod(char *path, int mode); } 7716 STD { int freebsd_sys_chown(char *path, int uid, int gid); } 7817 NOARGS { int sys_obreak(char *nsize); } break 7918 NOARGS { int sys_getfsstat(struct statfs *buf, long bufsize, \ 80 int flags); } 8119 NOARGS { long compat_43_sys_lseek(int fd, long offset, \ 82 int whence); } olseek 8320 NOARGS { pid_t sys_getpid(void); } 8421 STD { int freebsd_sys_mount(int type, char *path, \ 85 int flags, caddr_t data); } 8622 STD { int freebsd_sys_unmount(char *path, int flags); } 8723 NOARGS { int sys_setuid(uid_t uid); } 8824 NOARGS { uid_t sys_getuid(void); } 8925 NOARGS { uid_t sys_geteuid(void); } 9026 STD { int freebsd_sys_ptrace(int req, pid_t pid, \ 91 caddr_t addr, int data); } 9227 NOARGS { int sys_recvmsg(int s, struct msghdr *msg, \ 93 int flags); } 9428 NOARGS { int sys_sendmsg(int s, caddr_t msg, int flags); } 9529 NOARGS { int sys_recvfrom(int s, caddr_t buf, size_t len, \ 96 int flags, caddr_t from, int *fromlenaddr); } 9730 NOARGS { int sys_accept(int s, caddr_t name, int *anamelen); } 9831 NOARGS { int sys_getpeername(int fdes, caddr_t asa, \ 99 int *alen); } 10032 NOARGS { int sys_getsockname(int fdes, caddr_t asa, \ 101 int *alen); } 10233 STD { int freebsd_sys_access(char *path, int flags); } 10334 STD { int freebsd_sys_chflags(char *path, int flags); } 10435 NOARGS { int sys_fchflags(int fd, int flags); } 10536 NOARGS { int sys_sync(void); } 10637 NOARGS { int sys_kill(int pid, int signum); } 10738 STD { int compat_43_freebsd_sys_stat(char *path, \ 108 struct stat43 *ub); } stat43 10939 NOARGS { pid_t sys_getppid(void); } 11040 STD { int compat_43_freebsd_sys_lstat(char *path, \ 111 struct stat43 *ub); } lstat43 11241 NOARGS { int sys_dup(u_int fd); } 11342 NOARGS { int sys_pipe(void); } 11443 NOARGS { gid_t sys_getegid(void); } 11544 NOARGS { int sys_profil(caddr_t samples, u_int size, \ 116 u_int offset, u_int scale); } 117#ifdef KTRACE 11845 NOARGS { int sys_ktrace(char *fname, int ops, int facs, \ 119 int pid); } 120#else 12145 UNIMPL ktrace 122#endif 12346 NOARGS { int compat_13_sys_sigaction(int signum, \ 124 const struct sigaction13 *nsa, \ 125 struct sigaction13 *osa); } 12647 NOARGS { gid_t sys_getgid(void); } 12748 NOARGS { int compat_13_sys_sigprocmask(int how, \ 128 int mask); } 12949 NOARGS { int sys___getlogin(char *namebuf, u_int namelen); } 13050 NOARGS { int sys_setlogin(char *namebuf); } 13151 NOARGS { int sys_acct(char *path); } 13252 NOARGS { int compat_13_sys_sigpending(void); } 13353 NOARGS { int compat_13_sys_sigaltstack( \ 134 const struct sigaltstack13 *nss, \ 135 struct sigaltstack13 *oss); } 13654 STD { int freebsd_sys_ioctl(int fd, u_long com, \ 137 caddr_t data); } 13855 NOARGS { int sys_reboot(int opt); } 13956 STD { int freebsd_sys_revoke(char *path); } 14057 STD { int freebsd_sys_symlink(char *path, char *link); } 14158 STD { int freebsd_sys_readlink(char *path, char *buf, \ 142 int count); } 14359 STD { int freebsd_sys_execve(char *path, char **argp, \ 144 char **envp); } 14560 NOARGS { int sys_umask(int newmask); } 14661 STD { int freebsd_sys_chroot(char *path); } 14762 NOARGS { int compat_43_sys_fstat(int fd, struct stat43 *sb); } \ 148 fstat43 14963 NOARGS { int compat_43_sys_getkerninfo(int op, char *where, \ 150 int *size, int arg); } ogetkerninfo 15164 NOARGS { int compat_43_sys_getpagesize(void); } ogetpagesize 15265 STD { int freebsd_sys_msync(caddr_t addr, size_t len, \ 153 int flags); } 15466 NOARGS { int sys_vfork(void); } 15567 OBSOL vread 15668 OBSOL vwrite 15769 NOARGS { int sys_sbrk(int incr); } 15870 NOARGS { int sys_sstk(int incr); } 15971 NOARGS { int compat_43_sys_mmap(caddr_t addr, size_t len, \ 160 int prot, int flags, int fd, long pos); } ommap 16172 NOARGS { int sys_ovadvise(int anom); } vadvise 16273 NOARGS { int sys_munmap(caddr_t addr, size_t len); } 16374 NOARGS { int sys_mprotect(caddr_t addr, size_t len, \ 164 int prot); } 16575 NOARGS { int sys_madvise(caddr_t addr, size_t len, \ 166 int behav); } 16776 OBSOL vhangup 16877 OBSOL vlimit 16978 NOARGS { int sys_mincore(caddr_t addr, size_t len, char *vec); } 17079 NOARGS { int sys_getgroups(u_int gidsetsize, gid_t *gidset); } 17180 NOARGS { int sys_setgroups(u_int gidsetsize, gid_t *gidset); } 17281 NOARGS { int sys_getpgrp(void); } 17382 NOARGS { int sys_setpgid(int pid, int pgid); } 17483 NOARGS { int sys_setitimer(u_int which, \ 175 struct itimerval *itv, struct itimerval *oitv); } 17684 NOARGS { int compat_43_sys_wait(void); } owait 17785 NOARGS { int compat_12_sys_swapon(char *name); } 17886 NOARGS { int sys_getitimer(u_int which, \ 179 struct itimerval *itv); } 18087 NOARGS { int compat_43_sys_gethostname(char *hostname, \ 181 u_int len); } ogethostname 18288 NOARGS { int compat_43_sys_sethostname(char *hostname, \ 183 u_int len); } osethostname 18489 NOARGS { int compat_43_sys_getdtablesize(void); } \ 185 ogetdtablesize 18690 NOARGS { int sys_dup2(u_int from, u_int to); } 18791 UNIMPL getdopt 18892 NOARGS { int sys_fcntl(int fd, int cmd, void *arg); } 18993 NOARGS { int sys_select(u_int nd, fd_set *in, fd_set *ou, \ 190 fd_set *ex, struct timeval *tv); } 19194 UNIMPL setdopt 19295 NOARGS { int sys_fsync(int fd); } 19396 NOARGS { int sys_setpriority(int which, int who, int prio); } 19497 NOARGS { int sys_socket(int domain, int type, int protocol); } 19598 NOARGS { int sys_connect(int s, caddr_t name, int namelen); } 19699 NOARGS { int compat_43_sys_accept(int s, caddr_t name, \ 197 int *anamelen); } oaccept 198100 NOARGS { int sys_getpriority(int which, int who); } 199101 NOARGS { int compat_43_sys_send(int s, caddr_t buf, int len, \ 200 int flags); } osend 201102 NOARGS { int compat_43_sys_recv(int s, caddr_t buf, int len, \ 202 int flags); } orecv 203103 STD { int freebsd_sys_sigreturn( \ 204 struct freebsd_sigcontext *scp); } 205104 NOARGS { int sys_bind(int s, caddr_t name, int namelen); } 206105 NOARGS { int sys_setsockopt(int s, int level, int name, \ 207 caddr_t val, int valsize); } 208106 NOARGS { int sys_listen(int s, int backlog); } 209107 OBSOL vtimes 210108 NOARGS { int compat_43_sys_sigvec(int signum, \ 211 struct sigvec *nsv, struct sigvec *osv); } osigvec 212109 NOARGS { int compat_43_sys_sigblock(int mask); } osigblock 213110 NOARGS { int compat_43_sys_sigsetmask(int mask); } osigsetmask 214111 NOARGS { int compat_13_sys_sigsuspend(int mask); } 215112 NOARGS { int compat_43_sys_sigstack(struct sigstack *nss, \ 216 struct sigstack *oss); } osigstack 217113 NOARGS { int compat_43_sys_recvmsg(int s, \ 218 struct omsghdr *msg, int flags); } orecvmsg 219114 NOARGS { int compat_43_sys_sendmsg(int s, caddr_t msg, \ 220 int flags); } osendmsg 221#ifdef TRACE 222115 NOARGS { int sys_vtrace(int request, int value); } 223#else 224115 OBSOL vtrace 225#endif 226116 NOARGS { int sys_gettimeofday(struct timeval *tp, \ 227 struct timezone *tzp); } 228117 NOARGS { int sys_getrusage(int who, struct rusage *rusage); } 229118 NOARGS { int sys_getsockopt(int s, int level, int name, \ 230 caddr_t val, int *avalsize); } 231119 OBSOL resuba 232120 NOARGS { int sys_readv(int fd, struct iovec *iovp, \ 233 u_int iovcnt); } 234121 NOARGS { int sys_writev(int fd, struct iovec *iovp, \ 235 u_int iovcnt); } 236122 NOARGS { int sys_settimeofday(struct timeval *tv, \ 237 struct timezone *tzp); } 238123 NOARGS { int sys_fchown(int fd, int uid, int gid); } 239124 NOARGS { int sys_fchmod(int fd, int mode); } 240125 NOARGS { int compat_43_sys_recvfrom(int s, caddr_t buf, \ 241 size_t len, int flags, caddr_t from, \ 242 int *fromlenaddr); } orecvfrom 243126 NOARGS { int sys_setreuid(int ruid, int euid); } 244127 NOARGS { int sys_setregid(int rgid, int egid); } 245128 STD { int freebsd_sys_rename(char *from, char *to); } 246129 STD { int compat_43_freebsd_sys_truncate(char *path, \ 247 long length); } otruncate 248130 NOARGS { int compat_43_sys_ftruncate(int fd, long length); } \ 249 oftruncate 250131 NOARGS { int sys_flock(int fd, int how); } 251132 STD { int freebsd_sys_mkfifo(char *path, int mode); } 252133 NOARGS { int sys_sendto(int s, caddr_t buf, size_t len, \ 253 int flags, caddr_t to, int tolen); } 254134 NOARGS { int sys_shutdown(int s, int how); } 255135 NOARGS { int sys_socketpair(int domain, int type, \ 256 int protocol, int *rsv); } 257136 STD { int freebsd_sys_mkdir(char *path, int mode); } 258137 STD { int freebsd_sys_rmdir(char *path); } 259138 NOARGS { int sys_utimes(char *path, struct timeval *tptr); } 260139 OBSOL 4.2 sigreturn 261140 NOARGS { int sys_adjtime(struct timeval *delta, \ 262 struct timeval *olddelta); } 263141 NOARGS { int compat_43_sys_getpeername(int fdes, caddr_t asa, \ 264 int *alen); } ogetpeername 265142 NOARGS { int32_t compat_43_sys_gethostid(void); } ogethostid 266143 NOARGS { int compat_43_sys_sethostid(int32_t hostid); } \ 267 osethostid 268144 NOARGS { int compat_43_sys_getrlimit(u_int which, \ 269 struct orlimit *rlp); } ogetrlimit 270145 NOARGS { int compat_43_sys_setrlimit(u_int which, \ 271 struct orlimit *rlp); } osetrlimit 272146 NOARGS { int compat_43_sys_killpg(int pgid, int signum); } \ 273 okillpg 274147 NOARGS { int sys_setsid(void); } 275148 NOARGS { int sys_quotactl(char *path, int cmd, int uid, \ 276 caddr_t arg); } 277149 NOARGS { int compat_43_sys_quota(void); } oquota 278150 NOARGS { int compat_43_sys_getsockname(int fdec, caddr_t asa, \ 279 int *alen); } ogetsockname 280 281; Syscalls 151-180 inclusive are reserved for vendor-specific 282; system calls. (This includes various calls added for compatibity 283; with other Unix variants.) 284; Some of these calls are now supported by BSD... 285151 UNIMPL 286152 UNIMPL 287153 UNIMPL 288154 UNIMPL 289#if defined(NFS) || defined(NFSSERVER) 290155 NOARGS { int sys_nfssvc(int flag, caddr_t argp); } 291#else 292155 UNIMPL 293#endif 294156 NOARGS { int compat_43_sys_getdirentries(int fd, char *buf, \ 295 u_int count, long *basep); } ogetdirentries 296157 STD { int freebsd_sys_statfs(char *path, \ 297 struct statfs *buf); } 298158 NOARGS { int sys_fstatfs(int fd, struct statfs *buf); } 299159 UNIMPL 300160 UNIMPL 301#ifdef NFS 302161 STD { int freebsd_sys_getfh(char *fname, fhandle_t *fhp); } 303#else 304161 UNIMPL getfh 305#endif 306162 NOARGS { int compat_09_sys_getdomainname(char *domainname, \ 307 int len); } 308163 NOARGS { int compat_09_sys_setdomainname(char *domainname, \ 309 int len); } 310164 NOARGS { int compat_09_sys_uname(struct outsname *name); } 311165 NOARGS { int sys_sysarch(int op, char *parms); } 312166 STD { int freebsd_sys_rtprio(int function, pid_t pid, \ 313 struct freebsd_rtprio *rtp); } 314167 UNIMPL 315168 UNIMPL 316; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 317#if defined(SYSVSEM) && !defined(alpha) 318169 STD { int freebsd_sys_semsys(int which, int a2, int a3, \ 319 int a4, int a5); } 320#else 321169 UNIMPL 1.0 semsys 322#endif 323; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 324#if defined(SYSVMSG) && !defined(alpha) 325170 STD { int freebsd_sys_msgsys(int which, int a2, int a3, \ 326 int a4, int a5, int a6); } 327#else 328170 UNIMPL 1.0 msgsys 329#endif 330; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 331#if defined(SYSVSHM) && !defined(alpha) 332171 STD { int freebsd_sys_shmsys(int which, int a2, int a3, \ 333 int a4); } 334#else 335171 UNIMPL 1.0 shmsys 336#endif 337172 UNIMPL 338173 UNIMPL 339174 UNIMPL 340175 UNIMPL 341176 STD { int freebsd_ntp_adjtime(struct freebsd_timex *tp); } 342177 UNIMPL 343178 UNIMPL 344179 UNIMPL 345180 UNIMPL 346 347; Syscalls 180-199 are used by/reserved for BSD 348181 NOARGS { int sys_setgid(gid_t gid); } 349182 NOARGS { int sys_setegid(gid_t egid); } 350183 NOARGS { int sys_seteuid(uid_t euid); } 351#ifdef LFS 352184 NOARGS { int lfs_bmapv(fsid_t *fsidp, \ 353 struct block_info *blkiov, int blkcnt); } 354185 NOARGS { int lfs_markv(fsid_t *fsidp, \ 355 struct block_info *blkiov, int blkcnt); } 356186 NOARGS { int lfs_segclean(fsid_t *fsidp, u_long segment); } 357187 NOARGS { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 358#else 359184 UNIMPL 360185 UNIMPL 361186 UNIMPL 362187 UNIMPL 363#endif 364188 STD { int freebsd_sys_stat(char *path, \ 365 struct stat12 *ub); } 366189 NOARGS { int compat_12_sys_fstat(int fd, \ 367 struct stat12 *sb); } 368190 STD { int freebsd_sys_lstat(char *path, \ 369 struct stat12 *ub); } 370191 STD { int freebsd_sys_pathconf(char *path, int name); } 371192 NOARGS { int sys_fpathconf(int fd, int name); } 372193 UNIMPL 373194 NOARGS { int sys_getrlimit(u_int which, struct rlimit *rlp); } 374195 NOARGS { int sys_setrlimit(u_int which, struct rlimit *rlp); } 375196 NOARGS { int compat_12_sys_getdirentries(int fd, char *buf, \ 376 u_int count, long *basep); } 377197 NOARGS { caddr_t sys_mmap(caddr_t addr, size_t len, int prot, \ 378 int flags, int fd, long pad, off_t pos); } 379198 NOARGS { int sys_nosys(void); } __syscall 380199 NOARGS { off_t sys_lseek(int fd, int pad, off_t offset, \ 381 int whence); } 382200 STD { int freebsd_sys_truncate(char *path, int pad, \ 383 off_t length); } 384201 NOARGS { int sys_ftruncate(int fd, int pad, off_t length); } 385202 NOARGS { int sys___sysctl(int *name, u_int namelen, \ 386 void *old, size_t *oldlenp, void *new, \ 387 size_t newlen); } 388203 NOARGS { int sys_mlock(caddr_t addr, size_t len); } 389204 NOARGS { int sys_munlock(caddr_t addr, size_t len); } 390#ifdef FREEBSD_BASED_ON_44LITE_R2 391205 STD { int freebsd_sys_undelete(char *path); } 392#else 393205 UNIMPL 394#endif 395206 UNIMPL 396207 UNIMPL 397208 UNIMPL 398209 UNIMPL 399; 400; Syscalls 210-219 are reserved for dynamically loaded syscalls 401; 402210 UNIMPL 403211 UNIMPL 404212 UNIMPL 405213 UNIMPL 406214 UNIMPL 407215 UNIMPL 408216 UNIMPL 409217 UNIMPL 410218 UNIMPL 411219 UNIMPL 412; 413; Syscalls 220-239 are reserved for syscalls imported from NetBSD 414; 415220 UNIMPL 416221 UNIMPL 417222 UNIMPL 418223 UNIMPL 419224 UNIMPL 420225 UNIMPL 421226 UNIMPL 422227 UNIMPL 423228 UNIMPL 424229 UNIMPL 425230 UNIMPL 426231 UNIMPL 427232 UNIMPL 428233 UNIMPL 429234 UNIMPL 430235 UNIMPL 431236 UNIMPL 432237 UNIMPL 433238 UNIMPL 434239 UNIMPL 435240 UNIMPL 436241 UNIMPL 437242 UNIMPL 438243 UNIMPL 439244 UNIMPL 440245 UNIMPL 441246 UNIMPL 442247 UNIMPL 443248 UNIMPL 444249 UNIMPL 445250 UNIMPL 446251 UNIMPL 447252 UNIMPL 448253 STD { int freebsd_sys_issetugid(void); } 449254 STD { int freebsd_sys_lchown(char *path, int uid, \ 450 int gid); } 451