syscalls.master revision 123817
1171133Sgnn $FreeBSD: head/sys/kern/syscalls.master 123817 2003-12-24 19:09:45Z alfred $ 2171133Sgnn; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 3171133Sgnn; 4171133Sgnn; System call name/number master file. 5171133Sgnn; Processed to created init_sysent.c, syscalls.c and syscall.h. 6171133Sgnn 7171133Sgnn; Columns: number [M]type nargs name alt{name,tag,rtyp}/comments 8171133Sgnn; number system call number, must be in order 9171133Sgnn; type one of [M]STD, [M]OBSOL, [M]UNIMPL, [M]COMPAT, [M]CPT_NOA, 10171133Sgnn; [M]LIBCOMPAT, [M]NODEF, [M]NOARGS, [M]NOPROTO, [M]NOIMPL, 11171133Sgnn; [M]NOSTD, [M]COMPAT4 12171133Sgnn; name psuedo-prototype of syscall routine 13171133Sgnn; If one of the following alts is different, then all appear: 14171133Sgnn; altname name of system call if different 15171133Sgnn; alttag name of args struct tag if different from [o]`name'"_args" 16171133Sgnn; altrtyp return type if not int (bogus - syscalls always return int) 17171133Sgnn; for UNIMPL/OBSOL, name continues with comments 18171133Sgnn 19171133Sgnn; types: 20171133Sgnn; [M] e.g. like MSTD -- means the system call is MP-safe. If no 21171133Sgnn; M prefix is used, the syscall wrapper will obtain the Giant 22171133Sgnn; lock for the syscall. 23171133Sgnn; STD always included 24171133Sgnn; COMPAT included on COMPAT #ifdef 25171133Sgnn; COMPAT4 included on COMPAT4 #ifdef (FreeBSD 4 compat) 26171133Sgnn; LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h 27171133Sgnn; OBSOL obsolete, not included in system, only specifies name 28171133Sgnn; UNIMPL not implemented, placeholder only 29171133Sgnn; NOSTD implemented but as a lkm that can be statically 30174510Sobrien; compiled in sysent entry will be filled with lkmsys 31174510Sobrien; so the SYSCALL_MODULE macro works 32174510Sobrien; 33221129Sbz; Please copy any additions and changes to the following compatability tables: 34195699Srwatson; sys/compat/freebsd32/syscalls.master 35171133Sgnn 36171133Sgnn; #ifdef's, etc. may be included, and are copied to the output files. 37171133Sgnn 38171133Sgnn#include <sys/param.h> 39171133Sgnn#include <sys/sysent.h> 40171133Sgnn#include <sys/sysproto.h> 41171133Sgnn 42171133Sgnn; Reserved/unimplemented system calls in the range 0-150 inclusive 43171133Sgnn; are reserved for use in future Berkeley releases. 44171133Sgnn; Additional system calls implemented in vendor and other 45171133Sgnn; redistributions should be placed in the reserved range at the end 46171133Sgnn; of the current calls. 47221129Sbz 48171133Sgnn0 STD { int nosys(void); } syscall nosys_args int 49171133Sgnn1 MSTD { void sys_exit(int rval); } exit sys_exit_args void 50257176Sglebius2 MSTD { int fork(void); } 51195699Srwatson3 MSTD { ssize_t read(int fd, void *buf, size_t nbyte); } 52171133Sgnn4 MSTD { ssize_t write(int fd, const void *buf, size_t nbyte); } 53171133Sgnn5 STD { int open(char *path, int flags, int mode); } 54171133Sgnn; XXX should be { int open(const char *path, int flags, ...); } 55171133Sgnn; but we're not ready for `const' or varargs. 56171133Sgnn; XXX man page says `mode_t mode'. 57180085Sjulian6 MSTD { int close(int fd); } 58171133Sgnn7 MSTD { int wait4(int pid, int *status, int options, \ 59171133Sgnn struct rusage *rusage); } wait4 wait_args int 60171133Sgnn8 COMPAT { int creat(char *path, int mode); } 61171133Sgnn9 STD { int link(char *path, char *link); } 62171133Sgnn10 STD { int unlink(char *path); } 63171133Sgnn11 OBSOL execv 64171167Sgnn12 STD { int chdir(char *path); } 65171133Sgnn13 STD { int fchdir(int fd); } 66171133Sgnn14 STD { int mknod(char *path, int mode, int dev); } 67171133Sgnn15 STD { int chmod(char *path, int mode); } 68171133Sgnn16 STD { int chown(char *path, int uid, int gid); } 69171133Sgnn17 MSTD { int obreak(char *nsize); } break obreak_args int 70171133Sgnn18 COMPAT4 { int getfsstat(struct ostatfs *buf, long bufsize, int flags); } 71171133Sgnn19 COMPAT { long lseek(int fd, long offset, int whence); } 72171133Sgnn20 MSTD { pid_t getpid(void); } 73171133Sgnn21 STD { int mount(char *type, char *path, int flags, caddr_t data); } 74171167Sgnn; XXX `path' should have type `const char *' but we're not ready for that. 75171133Sgnn22 STD { int unmount(char *path, int flags); } 76171133Sgnn23 MSTD { int setuid(uid_t uid); } 77180090Sbz24 MSTD { uid_t getuid(void); } 78171133Sgnn25 MSTD { uid_t geteuid(void); } 79171133Sgnn26 STD { int ptrace(int req, pid_t pid, caddr_t addr, int data); } 80171133Sgnn27 MSTD { int recvmsg(int s, struct msghdr *msg, int flags); } 81195699Srwatson28 MSTD { int sendmsg(int s, struct msghdr *msg, int flags); } 82195699Srwatson29 MSTD { int recvfrom(int s, caddr_t buf, size_t len, int flags, \ 83195699Srwatson struct sockaddr * from, \ 84195699Srwatson __socklen_t * fromlenaddr); } 85215701Sdim30 MSTD { int accept(int s, struct sockaddr * name, \ 86195699Srwatson __socklen_t *anamelen); } 87215701Sdim31 MSTD { int getpeername(int fdes, struct sockaddr * asa, \ 88192648Sbz __socklen_t *alen); } 89195727Srwatson32 MSTD { int getsockname(int fdes, struct sockaddr * asa, \ 90192648Sbz __socklen_t *alen); } 91195699Srwatson33 STD { int access(char *path, int flags); } 92274225Sglebius34 STD { int chflags(char *path, int flags); } 93274225Sglebius35 STD { int fchflags(int fd, int flags); } 94195699Srwatson36 STD { int sync(void); } 95195699Srwatson37 MSTD { int kill(int pid, int signum); } 96195699Srwatson38 COMPAT { int stat(char *path, struct ostat *ub); } 97195699Srwatson39 MSTD { pid_t getppid(void); } 98171133Sgnn40 COMPAT { int lstat(char *path, struct ostat *ub); } 99171133Sgnn41 MSTD { int dup(u_int fd); } 100222845Sbz42 MSTD { int pipe(void); } 101171133Sgnn43 MSTD { gid_t getegid(void); } 102171133Sgnn44 MSTD { int profil(caddr_t samples, size_t size, size_t offset, \ 103171133Sgnn u_int scale); } 104171732Sbz45 MSTD { int ktrace(const char *fname, int ops, int facs, int pid); } 105171133Sgnn46 MCOMPAT { int sigaction(int signum, struct osigaction *nsa, \ 106230442Sbz struct osigaction *osa); } 107192648Sbz47 MSTD { gid_t getgid(void); } 108171133Sgnn48 MCOMPAT { int sigprocmask(int how, osigset_t mask); } 109222845Sbz; XXX note nonstandard (bogus) calling convention - the libc stub passes 110171133Sgnn; us the mask, not a pointer to it, and we return the old mask as the 111192648Sbz; (int) return value. 112192648Sbz49 MSTD { int getlogin(char *namebuf, u_int namelen); } 113171133Sgnn50 MSTD { int setlogin(char *namebuf); } 114171133Sgnn51 MSTD { int acct(char *path); } 115171133Sgnn52 MCOMPAT { int sigpending(void); } 116171133Sgnn53 MSTD { int sigaltstack(stack_t *ss, stack_t *oss); } 117171133Sgnn54 MSTD { int ioctl(int fd, u_long com, caddr_t data); } 118171133Sgnn55 MSTD { int reboot(int opt); } 119171133Sgnn56 STD { int revoke(char *path); } 120171133Sgnn57 STD { int symlink(char *path, char *link); } 121222845Sbz58 STD { int readlink(char *path, char *buf, int count); } 122171133Sgnn59 MSTD { int execve(char *fname, char **argv, char **envv); } 123171133Sgnn60 MSTD { int umask(int newmask); } umask umask_args int 124171133Sgnn61 STD { int chroot(char *path); } 125171133Sgnn62 MCOMPAT { int fstat(int fd, struct ostat *sb); } 126171133Sgnn63 MCOMPAT { int getkerninfo(int op, char *where, size_t *size, \ 127171167Sgnn int arg); } getkerninfo getkerninfo_args int 128171133Sgnn64 MCOMPAT { int getpagesize(void); } getpagesize getpagesize_args int 129241686Sandre65 MSTD { int msync(void *addr, size_t len, int flags); } 130171133Sgnn66 MSTD { int vfork(void); } 131275710Sae67 OBSOL vread 132275704Sae68 OBSOL vwrite 133275704Sae69 MSTD { int sbrk(int incr); } 134275704Sae70 MSTD { int sstk(int incr); } 135275704Sae71 MCOMPAT { int mmap(void *addr, int len, int prot, int flags, int fd, \ 136275704Sae long pos); } 137275704Sae72 MSTD { int ovadvise(int anom); } vadvise ovadvise_args int 138171133Sgnn73 MSTD { int munmap(void *addr, size_t len); } 139275704Sae74 MSTD { int mprotect(const void *addr, size_t len, int prot); } 140275704Sae75 MSTD { int madvise(void *addr, size_t len, int behav); } 141171167Sgnn76 OBSOL vhangup 142275704Sae77 OBSOL vlimit 143171133Sgnn78 MSTD { int mincore(const void *addr, size_t len, char *vec); } 144171133Sgnn79 MSTD { int getgroups(u_int gidsetsize, gid_t *gidset); } 145171133Sgnn80 MSTD { int setgroups(u_int gidsetsize, gid_t *gidset); } 146171133Sgnn81 MSTD { int getpgrp(void); } 147171133Sgnn82 MSTD { int setpgid(int pid, int pgid); } 148171133Sgnn83 MSTD { int setitimer(u_int which, struct itimerval *itv, \ 149222845Sbz struct itimerval *oitv); } 150171133Sgnn84 MCOMPAT { int wait(void); } 151171133Sgnn85 MSTD { int swapon(char *name); } 152171133Sgnn86 MSTD { int getitimer(u_int which, struct itimerval *itv); } 153171133Sgnn87 MCOMPAT { int gethostname(char *hostname, u_int len); } \ 154171133Sgnn gethostname gethostname_args int 155171167Sgnn88 MCOMPAT { int sethostname(char *hostname, u_int len); } \ 156171133Sgnn sethostname sethostname_args int 157241686Sandre89 MSTD { int getdtablesize(void); } 158171133Sgnn90 MSTD { int dup2(u_int from, u_int to); } 159171133Sgnn91 UNIMPL getdopt 160171133Sgnn92 MSTD { int fcntl(int fd, int cmd, long arg); } 161171133Sgnn; XXX should be { int fcntl(int fd, int cmd, ...); } 162171133Sgnn; but we're not ready for varargs. 163171133Sgnn93 MSTD { int select(int nd, fd_set *in, fd_set *ou, \ 164171133Sgnn fd_set *ex, struct timeval *tv); } 165275710Sae94 UNIMPL setdopt 166171133Sgnn95 STD { int fsync(int fd); } 167171133Sgnn96 MSTD { int setpriority(int which, int who, int prio); } 168171133Sgnn97 MSTD { int socket(int domain, int type, int protocol); } 169171133Sgnn98 MSTD { int connect(int s, caddr_t name, int namelen); } 170171133Sgnn99 MCPT_NOA { int accept(int s, caddr_t name, int *anamelen); } \ 171171133Sgnn accept accept_args int 172171133Sgnn100 MSTD { int getpriority(int which, int who); } 173171133Sgnn101 MCOMPAT { int send(int s, caddr_t buf, int len, int flags); } 174171133Sgnn102 MCOMPAT { int recv(int s, caddr_t buf, int len, int flags); } 175222845Sbz103 MCOMPAT { int sigreturn(struct osigcontext *sigcntxp); } 176171133Sgnn104 MSTD { int bind(int s, caddr_t name, int namelen); } 177275703Sae105 MSTD { int setsockopt(int s, int level, int name, caddr_t val, \ 178275703Sae int valsize); } 179171133Sgnn106 MSTD { int listen(int s, int backlog); } 180171167Sgnn107 OBSOL vtimes 181275703Sae108 MCOMPAT { int sigvec(int signum, struct sigvec *nsv, \ 182171133Sgnn struct sigvec *osv); } 183171133Sgnn109 MCOMPAT { int sigblock(int mask); } 184171133Sgnn110 MCOMPAT { int sigsetmask(int mask); } 185171133Sgnn111 MCOMPAT { int sigsuspend(osigset_t mask); } 186171133Sgnn; XXX note nonstandard (bogus) calling convention - the libc stub passes 187171260Sdelphij; us the mask, not a pointer to it. 188171260Sdelphij112 MCOMPAT { int sigstack(struct sigstack *nss, struct sigstack *oss); } 189171133Sgnn113 MCOMPAT { int recvmsg(int s, struct omsghdr *msg, int flags); } 190171133Sgnn114 MCOMPAT { int sendmsg(int s, caddr_t msg, int flags); } 191275710Sae115 OBSOL vtrace 192171133Sgnn116 MSTD { int gettimeofday(struct timeval *tp, struct timezone *tzp); } 193171167Sgnn117 MSTD { int getrusage(int who, struct rusage *rusage); } 194275702Sae118 MSTD { int getsockopt(int s, int level, int name, caddr_t val, \ 195171133Sgnn int *avalsize); } 196171133Sgnn119 UNIMPL resuba (BSD/OS 2.x) 197275702Sae120 MSTD { int readv(int fd, struct iovec *iovp, u_int iovcnt); } 198275702Sae121 MSTD { int writev(int fd, struct iovec *iovp, u_int iovcnt); } 199275702Sae122 MSTD { int settimeofday(struct timeval *tv, struct timezone *tzp); } 200275702Sae123 STD { int fchown(int fd, int uid, int gid); } 201275702Sae124 STD { int fchmod(int fd, int mode); } 202275702Sae125 MCPT_NOA { int recvfrom(int s, caddr_t buf, size_t len, int flags, \ 203275702Sae caddr_t from, int *fromlenaddr); } \ 204275702Sae recvfrom recvfrom_args int 205275702Sae126 MSTD { int setreuid(int ruid, int euid); } 206275702Sae127 MSTD { int setregid(int rgid, int egid); } 207275702Sae128 STD { int rename(char *from, char *to); } 208275702Sae129 COMPAT { int truncate(char *path, long length); } 209275710Sae130 COMPAT { int ftruncate(int fd, long length); } 210275702Sae131 MSTD { int flock(int fd, int how); } 211171133Sgnn132 STD { int mkfifo(char *path, int mode); } 212171260Sdelphij133 MSTD { int sendto(int s, caddr_t buf, size_t len, int flags, \ 213171133Sgnn caddr_t to, int tolen); } 214171133Sgnn134 MSTD { int shutdown(int s, int how); } 215171133Sgnn135 MSTD { int socketpair(int domain, int type, int protocol, \ 216171133Sgnn int *rsv); } 217266800Svanhu136 STD { int mkdir(char *path, int mode); } 218171133Sgnn137 STD { int rmdir(char *path); } 219171133Sgnn138 STD { int utimes(char *path, struct timeval *tptr); } 220171133Sgnn139 OBSOL 4.2 sigreturn 221171133Sgnn140 MSTD { int adjtime(struct timeval *delta, \ 222238935Sbz struct timeval *olddelta); } 223171133Sgnn141 MCOMPAT { int getpeername(int fdes, caddr_t asa, int *alen); } 224171133Sgnn142 MCOMPAT { long gethostid(void); } 225171133Sgnn143 MCOMPAT { int sethostid(long hostid); } 226171133Sgnn144 MCOMPAT { int getrlimit(u_int which, struct orlimit *rlp); } 227238935Sbz145 MCOMPAT { int setrlimit(u_int which, struct orlimit *rlp); } 228266800Svanhu146 MCOMPAT { int killpg(int pgid, int signum); } 229266800Svanhu147 MSTD { int setsid(void); } 230266800Svanhu148 STD { int quotactl(char *path, int cmd, int uid, caddr_t arg); } 231266800Svanhu149 MCOMPAT { int quota(void); } 232266800Svanhu150 MCPT_NOA { int getsockname(int fdec, caddr_t asa, int *alen); }\ 233266800Svanhu getsockname getsockname_args int 234266800Svanhu 235266800Svanhu; Syscalls 151-180 inclusive are reserved for vendor-specific 236266800Svanhu; system calls. (This includes various calls added for compatibity 237266800Svanhu; with other Unix variants.) 238266800Svanhu; Some of these calls are now supported by BSD... 239171133Sgnn151 UNIMPL sem_lock (BSD/OS 2.x) 240266800Svanhu152 UNIMPL sem_wakeup (BSD/OS 2.x) 241266800Svanhu153 UNIMPL asyncdaemon (BSD/OS 2.x) 242266800Svanhu154 UNIMPL nosys 243266800Svanhu; 155 is initialized by the NFS code, if present. 244266800Svanhu155 MNOIMPL { int nfssvc(int flag, caddr_t argp); } 245266800Svanhu156 COMPAT { int getdirentries(int fd, char *buf, u_int count, \ 246266800Svanhu long *basep); } 247266800Svanhu157 COMPAT4 { int statfs(char *path, struct ostatfs *buf); } 248266800Svanhu158 COMPAT4 { int fstatfs(int fd, struct ostatfs *buf); } 249266800Svanhu159 UNIMPL nosys 250266800Svanhu160 UNIMPL nosys 251266800Svanhu161 STD { int getfh(char *fname, struct fhandle *fhp); } 252266800Svanhu162 MSTD { int getdomainname(char *domainname, int len); } 253171133Sgnn163 MSTD { int setdomainname(char *domainname, int len); } 254171133Sgnn164 MSTD { int uname(struct utsname *name); } 255171133Sgnn165 MSTD { int sysarch(int op, char *parms); } 256171133Sgnn166 MSTD { int rtprio(int function, pid_t pid, struct rtprio *rtp); } 257171133Sgnn167 UNIMPL nosys 258171133Sgnn168 UNIMPL nosys 259171133Sgnn; 169 is initialized by the SYSVSEM code if present or loaded 260171133Sgnn169 MNOSTD { int semsys(int which, int a2, int a3, int a4, int a5); } 261171133Sgnn; 169 is initialized by the SYSVMSG code if present or loaded 262266800Svanhu; XXX should be { int semsys(int which, ...); } 263171133Sgnn170 MNOSTD { int msgsys(int which, int a2, int a3, int a4, int a5, \ 264171133Sgnn int a6); } 265171133Sgnn; 169 is initialized by the SYSVSHM code if present or loaded 266171133Sgnn; XXX should be { int msgsys(int which, ...); } 267171133Sgnn171 MNOSTD { int shmsys(int which, int a2, int a3, int a4); } 268171133Sgnn; XXX should be { int shmsys(int which, ...); } 269171133Sgnn172 UNIMPL nosys 270171133Sgnn173 MSTD { ssize_t pread(int fd, void *buf, size_t nbyte, \ 271171133Sgnn int pad, off_t offset); } 272171133Sgnn174 MSTD { ssize_t pwrite(int fd, const void *buf, \ 273171133Sgnn size_t nbyte, int pad, off_t offset); } 274171133Sgnn175 UNIMPL nosys 275275702Sae176 MSTD { int ntp_adjtime(struct timex *tp); } 276171133Sgnn177 UNIMPL sfork (BSD/OS 2.x) 277171133Sgnn178 UNIMPL getdescriptor (BSD/OS 2.x) 278266800Svanhu179 UNIMPL setdescriptor (BSD/OS 2.x) 279266800Svanhu180 UNIMPL nosys 280171133Sgnn 281266800Svanhu; Syscalls 181-199 are used by/reserved for BSD 282266800Svanhu181 MSTD { int setgid(gid_t gid); } 283266800Svanhu182 MSTD { int setegid(gid_t egid); } 284171133Sgnn183 MSTD { int seteuid(uid_t euid); } 285171133Sgnn184 UNIMPL lfs_bmapv 286266800Svanhu185 UNIMPL lfs_markv 287266800Svanhu186 UNIMPL lfs_segclean 288171133Sgnn187 UNIMPL lfs_segwait 289171167Sgnn188 STD { int stat(char *path, struct stat *ub); } 290171133Sgnn189 MSTD { int fstat(int fd, struct stat *sb); } 291171133Sgnn190 STD { int lstat(char *path, struct stat *ub); } 292171133Sgnn191 STD { int pathconf(char *path, int name); } 293177166Sbz192 MSTD { int fpathconf(int fd, int name); } 294171133Sgnn193 UNIMPL nosys 295171133Sgnn194 MSTD { int getrlimit(u_int which, struct rlimit *rlp); } \ 296171133Sgnn getrlimit __getrlimit_args int 297171133Sgnn195 MSTD { int setrlimit(u_int which, struct rlimit *rlp); } \ 298171133Sgnn setrlimit __setrlimit_args int 299171133Sgnn196 STD { int getdirentries(int fd, char *buf, u_int count, \ 300171133Sgnn long *basep); } 301171133Sgnn197 MSTD { caddr_t mmap(caddr_t addr, size_t len, int prot, \ 302171133Sgnn int flags, int fd, int pad, off_t pos); } 303171133Sgnn198 STD { int nosys(void); } __syscall __syscall_args int 304171133Sgnn199 STD { off_t lseek(int fd, int pad, off_t offset, int whence); } 305171133Sgnn200 STD { int truncate(char *path, int pad, off_t length); } 306171133Sgnn201 STD { int ftruncate(int fd, int pad, off_t length); } 307171133Sgnn202 MSTD { int __sysctl(int *name, u_int namelen, void *old, \ 308171133Sgnn size_t *oldlenp, void *new, size_t newlen); } \ 309177166Sbz __sysctl sysctl_args int 310171133Sgnn203 MSTD { int mlock(const void *addr, size_t len); } 311171133Sgnn204 MSTD { int munlock(const void *addr, size_t len); } 312171133Sgnn205 STD { int undelete(char *path); } 313171133Sgnn206 STD { int futimes(int fd, struct timeval *tptr); } 314171133Sgnn207 MSTD { int getpgid(pid_t pid); } 315171133Sgnn208 UNIMPL newreboot (NetBSD) 316171133Sgnn209 MSTD { int poll(struct pollfd *fds, u_int nfds, int timeout); } 317171133Sgnn 318171133Sgnn; 319171133Sgnn; The following are reserved for loadable syscalls 320188306Sbz; 321171133Sgnn210 NODEF lkmnosys lkmnosys nosys_args int 322171133Sgnn211 NODEF lkmnosys lkmnosys nosys_args int 323171133Sgnn212 NODEF lkmnosys lkmnosys nosys_args int 324171133Sgnn213 NODEF lkmnosys lkmnosys nosys_args int 325171133Sgnn214 NODEF lkmnosys lkmnosys nosys_args int 326171133Sgnn215 NODEF lkmnosys lkmnosys nosys_args int 327171133Sgnn216 NODEF lkmnosys lkmnosys nosys_args int 328171133Sgnn217 NODEF lkmnosys lkmnosys nosys_args int 329214250Sbz218 NODEF lkmnosys lkmnosys nosys_args int 330171133Sgnn219 NODEF lkmnosys lkmnosys nosys_args int 331262763Sglebius 332171133Sgnn; 333171133Sgnn; The following were introduced with NetBSD/4.4Lite-2 334171133Sgnn; They are initialized by thier respective modules/sysinits 335171133Sgnn220 MNOSTD { int __semctl(int semid, int semnum, int cmd, \ 336171133Sgnn union semun *arg); } 337177166Sbz221 MNOSTD { int semget(key_t key, int nsems, int semflg); } 338171167Sgnn222 MNOSTD { int semop(int semid, struct sembuf *sops, size_t nsops); } 339177166Sbz223 UNIMPL semconfig 340171133Sgnn224 MNOSTD { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } 341171133Sgnn225 MNOSTD { int msgget(key_t key, int msgflg); } 342177166Sbz226 MNOSTD { int msgsnd(int msqid, const void *msgp, size_t msgsz, \ 343 int msgflg); } 344227 MNOSTD { int msgrcv(int msqid, void *msgp, size_t msgsz, \ 345 long msgtyp, int msgflg); } 346228 MNOSTD { int shmat(int shmid, const void *shmaddr, int shmflg); } 347229 MNOSTD { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } 348230 MNOSTD { int shmdt(const void *shmaddr); } 349231 MNOSTD { int shmget(key_t key, size_t size, int shmflg); } 350; 351232 MSTD { int clock_gettime(clockid_t clock_id, struct timespec *tp); } 352233 MSTD { int clock_settime(clockid_t clock_id, \ 353 const struct timespec *tp); } 354234 MSTD { int clock_getres(clockid_t clock_id, struct timespec *tp); } 355235 UNIMPL timer_create 356236 UNIMPL timer_delete 357237 UNIMPL timer_settime 358238 UNIMPL timer_gettime 359239 UNIMPL timer_getoverrun 360240 MSTD { int nanosleep(const struct timespec *rqtp, \ 361 struct timespec *rmtp); } 362241 UNIMPL nosys 363242 UNIMPL nosys 364243 UNIMPL nosys 365244 UNIMPL nosys 366245 UNIMPL nosys 367246 UNIMPL nosys 368247 UNIMPL nosys 369248 UNIMPL nosys 370249 UNIMPL nosys 371; syscall numbers initially used in OpenBSD 372250 MSTD { int minherit(void *addr, size_t len, int inherit); } 373251 MSTD { int rfork(int flags); } 374252 MSTD { int openbsd_poll(struct pollfd *fds, u_int nfds, \ 375 int timeout); } 376253 MSTD { int issetugid(void); } 377254 STD { int lchown(char *path, int uid, int gid); } 378255 UNIMPL nosys 379256 UNIMPL nosys 380257 UNIMPL nosys 381258 UNIMPL nosys 382259 UNIMPL nosys 383260 UNIMPL nosys 384261 UNIMPL nosys 385262 UNIMPL nosys 386263 UNIMPL nosys 387264 UNIMPL nosys 388265 UNIMPL nosys 389266 UNIMPL nosys 390267 UNIMPL nosys 391268 UNIMPL nosys 392269 UNIMPL nosys 393270 UNIMPL nosys 394271 UNIMPL nosys 395272 STD { int getdents(int fd, char *buf, size_t count); } 396273 UNIMPL nosys 397274 STD { int lchmod(char *path, mode_t mode); } 398275 NOPROTO { int lchown(char *path, uid_t uid, gid_t gid); } \ 399 netbsd_lchown lchown_args int 400276 STD { int lutimes(char *path, struct timeval *tptr); } 401277 MNOPROTO { int msync(void *addr, size_t len, int flags); } \ 402 netbsd_msync msync_args int 403278 STD { int nstat(char *path, struct nstat *ub); } 404279 MSTD { int nfstat(int fd, struct nstat *sb); } 405280 STD { int nlstat(char *path, struct nstat *ub); } 406281 UNIMPL nosys 407282 UNIMPL nosys 408283 UNIMPL nosys 409284 UNIMPL nosys 410285 UNIMPL nosys 411286 UNIMPL nosys 412287 UNIMPL nosys 413288 UNIMPL nosys 414289 UNIMPL nosys 415290 UNIMPL nosys 416291 UNIMPL nosys 417292 UNIMPL nosys 418293 UNIMPL nosys 419294 UNIMPL nosys 420295 UNIMPL nosys 421296 UNIMPL nosys 422; XXX 297 is 300 in NetBSD 423297 COMPAT4 { int fhstatfs(const struct fhandle *u_fhp, \ 424 struct ostatfs *buf); } 425298 STD { int fhopen(const struct fhandle *u_fhp, int flags); } 426299 STD { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } 427; syscall numbers for FreeBSD 428300 MSTD { int modnext(int modid); } 429301 MSTD { int modstat(int modid, struct module_stat* stat); } 430302 MSTD { int modfnext(int modid); } 431303 MSTD { int modfind(const char *name); } 432304 MSTD { int kldload(const char *file); } 433305 MSTD { int kldunload(int fileid); } 434306 MSTD { int kldfind(const char *file); } 435307 MSTD { int kldnext(int fileid); } 436308 MSTD { int kldstat(int fileid, struct kld_file_stat* stat); } 437309 MSTD { int kldfirstmod(int fileid); } 438310 MSTD { int getsid(pid_t pid); } 439311 MSTD { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } 440312 MSTD { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } 441313 OBSOL signanosleep 442314 NOSTD { int aio_return(struct aiocb *aiocbp); } 443315 NOSTD { int aio_suspend(struct aiocb * const * aiocbp, int nent, \ 444 const struct timespec *timeout); } 445316 NOSTD { int aio_cancel(int fd, struct aiocb *aiocbp); } 446317 NOSTD { int aio_error(struct aiocb *aiocbp); } 447318 NOSTD { int aio_read(struct aiocb *aiocbp); } 448319 NOSTD { int aio_write(struct aiocb *aiocbp); } 449320 NOSTD { int lio_listio(int mode, struct aiocb * const *acb_list, \ 450 int nent, struct sigevent *sig); } 451321 MSTD { int yield(void); } 452322 OBSOL thr_sleep 453323 OBSOL thr_wakeup 454324 MSTD { int mlockall(int how); } 455325 MSTD { int munlockall(void); } 456326 STD { int __getcwd(u_char *buf, u_int buflen); } 457 458327 MSTD { int sched_setparam (pid_t pid, \ 459 const struct sched_param *param); } 460328 MSTD { int sched_getparam (pid_t pid, struct sched_param *param); } 461 462329 MSTD { int sched_setscheduler (pid_t pid, int policy, \ 463 const struct sched_param *param); } 464330 MSTD { int sched_getscheduler (pid_t pid); } 465 466331 MSTD { int sched_yield (void); } 467332 MSTD { int sched_get_priority_max (int policy); } 468333 MSTD { int sched_get_priority_min (int policy); } 469334 MSTD { int sched_rr_get_interval (pid_t pid, \ 470 struct timespec *interval); } 471335 MSTD { int utrace(const void *addr, size_t len); } 472336 MCOMPAT4 { int sendfile(int fd, int s, off_t offset, size_t nbytes, \ 473 struct sf_hdtr *hdtr, off_t *sbytes, int flags); } 474337 STD { int kldsym(int fileid, int cmd, void *data); } 475338 MSTD { int jail(struct jail *jail); } 476339 UNIMPL pioctl 477340 MSTD { int sigprocmask(int how, const sigset_t *set, \ 478 sigset_t *oset); } 479341 MSTD { int sigsuspend(const sigset_t *sigmask); } 480342 MCOMPAT4 { int sigaction(int sig, const struct sigaction *act, \ 481 struct sigaction *oact); } 482343 MSTD { int sigpending(sigset_t *set); } 483344 MCOMPAT4 { int sigreturn(const struct ucontext4 *sigcntxp); } 484345 MSTD { int sigtimedwait(const sigset_t *set, \ 485 siginfo_t *info, const struct timespec *timeout); } 486346 MSTD { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } 487347 MSTD { int __acl_get_file(const char *path, \ 488 acl_type_t type, struct acl *aclp); } 489348 MSTD { int __acl_set_file(const char *path, \ 490 acl_type_t type, struct acl *aclp); } 491349 MSTD { int __acl_get_fd(int filedes, acl_type_t type, \ 492 struct acl *aclp); } 493350 MSTD { int __acl_set_fd(int filedes, acl_type_t type, \ 494 struct acl *aclp); } 495351 MSTD { int __acl_delete_file(const char *path, acl_type_t type); } 496352 MSTD { int __acl_delete_fd(int filedes, acl_type_t type); } 497353 MSTD { int __acl_aclcheck_file(const char *path, \ 498 acl_type_t type, struct acl *aclp); } 499354 MSTD { int __acl_aclcheck_fd(int filedes, acl_type_t type, \ 500 struct acl *aclp); } 501355 STD { int extattrctl(const char *path, int cmd, \ 502 const char *filename, int attrnamespace, \ 503 const char *attrname); } 504356 STD { int extattr_set_file(const char *path, \ 505 int attrnamespace, const char *attrname, \ 506 void *data, size_t nbytes); } 507357 STD { ssize_t extattr_get_file(const char *path, \ 508 int attrnamespace, const char *attrname, \ 509 void *data, size_t nbytes); } 510358 STD { int extattr_delete_file(const char *path, \ 511 int attrnamespace, const char *attrname); } 512359 NOSTD { int aio_waitcomplete(struct aiocb **aiocbp, \ 513 struct timespec *timeout); } 514360 MSTD { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } 515361 MSTD { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } 516362 MSTD { int kqueue(void); } 517363 MSTD { int kevent(int fd, \ 518 const struct kevent *changelist, int nchanges, \ 519 struct kevent *eventlist, int nevents, \ 520 const struct timespec *timeout); } 521364 UNIMPL __cap_get_proc 522365 UNIMPL __cap_set_proc 523366 UNIMPL __cap_get_fd 524367 UNIMPL __cap_get_file 525368 UNIMPL __cap_set_fd 526369 UNIMPL __cap_set_file 527370 NODEF lkmressys lkmressys nosys_args int 528371 STD { int extattr_set_fd(int fd, int attrnamespace, \ 529 const char *attrname, void *data, \ 530 size_t nbytes); } 531372 STD { ssize_t extattr_get_fd(int fd, int attrnamespace, \ 532 const char *attrname, void *data, size_t nbytes); } 533373 STD { int extattr_delete_fd(int fd, int attrnamespace, \ 534 const char *attrname); } 535374 MSTD { int __setugid(int flag); } 536375 NOIMPL { int nfsclnt(int flag, caddr_t argp); } 537376 STD { int eaccess(char *path, int flags); } 538377 UNIMPL afs_syscall 539378 STD { int nmount(struct iovec *iovp, unsigned int iovcnt, \ 540 int flags); } 541379 MSTD { int kse_exit(void); } 542380 MSTD { int kse_wakeup(struct kse_mailbox *mbx); } 543381 STD { int kse_create(struct kse_mailbox *mbx, \ 544 int newgroup); } 545382 MSTD { int kse_thr_interrupt(struct kse_thr_mailbox *tmbx, int cmd, \ 546 long data); } 547383 MSTD { int kse_release(struct timespec *timeout); } 548384 MSTD { int __mac_get_proc(struct mac *mac_p); } 549385 MSTD { int __mac_set_proc(struct mac *mac_p); } 550386 MSTD { int __mac_get_fd(int fd, struct mac *mac_p); } 551387 MSTD { int __mac_get_file(const char *path_p, \ 552 struct mac *mac_p); } 553388 MSTD { int __mac_set_fd(int fd, struct mac *mac_p); } 554389 MSTD { int __mac_set_file(const char *path_p, \ 555 struct mac *mac_p); } 556390 STD { int kenv(int what, const char *name, char *value, \ 557 int len); } 558391 STD { int lchflags(const char *path, int flags); } 559392 STD { int uuidgen(struct uuid *store, int count); } 560393 MSTD { int sendfile(int fd, int s, off_t offset, size_t nbytes, \ 561 struct sf_hdtr *hdtr, off_t *sbytes, int flags); } 562394 MSTD { int mac_syscall(const char *policy, int call, \ 563 void *arg); } 564395 STD { int getfsstat(struct statfs *buf, long bufsize, \ 565 int flags); } 566396 STD { int statfs(char *path, struct statfs *buf); } 567397 STD { int fstatfs(int fd, struct statfs *buf); } 568398 STD { int fhstatfs(const struct fhandle *u_fhp, \ 569 struct statfs *buf); } 570399 UNIMPL nosys 571400 MNOSTD { int ksem_close(semid_t id); } 572401 MNOSTD { int ksem_post(semid_t id); } 573402 MNOSTD { int ksem_wait(semid_t id); } 574403 MNOSTD { int ksem_trywait(semid_t id); } 575404 MNOSTD { int ksem_init(semid_t *idp, unsigned int value); } 576405 MNOSTD { int ksem_open(semid_t *idp, const char *name, \ 577 int oflag, mode_t mode, unsigned int value); } 578406 MNOSTD { int ksem_unlink(const char *name); } 579407 MNOSTD { int ksem_getvalue(semid_t id, int *val); } 580408 MNOSTD { int ksem_destroy(semid_t id); } 581409 MSTD { int __mac_get_pid(pid_t pid, struct mac *mac_p); } 582410 MSTD { int __mac_get_link(const char *path_p, \ 583 struct mac *mac_p); } 584411 MSTD { int __mac_set_link(const char *path_p, \ 585 struct mac *mac_p); } 586412 STD { int extattr_set_link(const char *path, \ 587 int attrnamespace, const char *attrname, \ 588 void *data, size_t nbytes); } 589413 STD { ssize_t extattr_get_link(const char *path, \ 590 int attrnamespace, const char *attrname, \ 591 void *data, size_t nbytes); } 592414 STD { int extattr_delete_link(const char *path, \ 593 int attrnamespace, const char *attrname); } 594415 MSTD { int __mac_execve(char *fname, char **argv, \ 595 char **envv, struct mac *mac_p); } 596416 MSTD { int sigaction(int sig, const struct sigaction *act, \ 597 struct sigaction *oact); } 598417 MSTD { int sigreturn(const struct __ucontext *sigcntxp); } 599418 UNIMPL __xstat 600419 UNIMPL __xfstat 601420 UNIMPL __xlstat 602421 MSTD { int getcontext(struct __ucontext *ucp); } 603422 MSTD { int setcontext(const struct __ucontext *ucp); } 604423 MSTD { int swapcontext(struct __ucontext *oucp, \ 605 const struct __ucontext *ucp); } 606424 MSTD { int swapoff(const char *name); } 607425 MSTD { int __acl_get_link(const char *path, \ 608 acl_type_t type, struct acl *aclp); } 609426 MSTD { int __acl_set_link(const char *path, \ 610 acl_type_t type, struct acl *aclp); } 611427 MSTD { int __acl_delete_link(const char *path, \ 612 acl_type_t type); } 613428 MSTD { int __acl_aclcheck_link(const char *path, \ 614 acl_type_t type, struct acl *aclp); } 615429 MSTD { int sigwait(const sigset_t *set, int *sig); } 616430 MSTD { int thr_create(ucontext_t *ctx, thr_id_t *id, int flags); } 617431 MSTD { void thr_exit(void); } 618432 MSTD { int thr_self(thr_id_t *id); } 619433 MSTD { int thr_kill(thr_id_t id, int sig); } 620434 MSTD { int _umtx_lock(struct umtx *umtx); } 621435 MSTD { int _umtx_unlock(struct umtx *umtx); } 622436 MSTD { int jail_attach(int jid); } 623437 STD { ssize_t extattr_list_fd(int fd, int attrnamespace, \ 624 void *data, size_t nbytes); } 625438 STD { ssize_t extattr_list_file(const char *path, \ 626 int attrnamespace, void *data, size_t nbytes); } 627439 STD { ssize_t extattr_list_link(const char *path, \ 628 int attrnamespace, void *data, size_t nbytes); } 629440 MSTD { int kse_switchin(const struct __mcontext *mcp, \ 630 long val, long *loc); } 631; Please copy any additions and changes to the following compatability tables: 632; sys/compat/freebsd32/syscalls.master 633