1 $NetBSD: syscalls.master,v 1.218 2008/11/26 15:01:17 pooka 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, IGNORED, NODEF, NOARGS, or one of 11; the compatibility options defined in syscalls.conf. 12; 13; Optional fields are specified after the type field 14; (NOTE! they *must* be specified in this order): 15; MODULAR:attempt to autoload system call if not present 16; RUMP: the system call can be called directly from rumps 17; 18; types: 19; STD always included 20; OBSOL obsolete, not included in system 21; IGNORED syscall is a null op, but always succeeds 22; UNIMPL unimplemented, not included in system 23; EXCL implemented, but not included in system 24; NODEF included, but don't define the syscall number 25; NOARGS included, but don't define the syscall args structure 26; INDIR included, but don't define the syscall args structure, 27; and allow it to be "really" varargs. 28; 29; The compat options are defined in the syscalls.conf file, and the 30; compat option name is prefixed to the syscall name. Other than 31; that, they're like NODEF (for 'compat' options), or STD (for 32; 'libcompat' options). 33; 34; The type-dependent arguments are as follows: 35; For STD, NODEF, NOARGS, and compat syscalls: 36; { pseudo-proto } [alias] 37; For other syscalls: 38; [comment] 39; 40; #ifdef's, etc. may be included, and are copied to the output files. 41; #include's are copied to the syscall names and switch definition files only. 42 43#include "opt_ntp.h" 44#include "opt_sysv.h" 45 46#include "fs_lfs.h" 47 48#include <sys/param.h> 49#include <sys/systm.h> 50#include <sys/signal.h> 51#include <sys/mount.h> 52#include <sys/sched.h> 53#include <sys/syscallargs.h> 54 55%% 56 57; Reserved/unimplemented system calls in the range 0-150 inclusive 58; are reserved for use in future Berkeley releases. 59; Additional system calls implemented in vendor and other 60; redistributions should be placed in the reserved range at the end 61; of the current calls. 62 630 INDIR { int sys_syscall(int code, \ 64 ... register_t args[SYS_MAXSYSARGS]); } 651 STD { void sys_exit(int rval); } 662 STD { int sys_fork(void); } 673 STD RUMP { ssize_t sys_read(int fd, void *buf, size_t nbyte); } 684 STD RUMP { ssize_t sys_write(int fd, const void *buf, \ 69 size_t nbyte); } 705 STD RUMP { int sys_open(const char *path, \ 71 int flags, ... mode_t mode); } 726 STD RUMP { int sys_close(int fd); } 737 STD { int sys_wait4(int pid, int *status, int options, \ 74 struct rusage *rusage); } 758 COMPAT_43 MODULAR { int sys_creat(const char *path, mode_t mode); } ocreat 769 STD RUMP { int sys_link(const char *path, const char *link); } 7710 STD RUMP { int sys_unlink(const char *path); } 7811 OBSOL execv 7912 STD RUMP { int sys_chdir(const char *path); } 8013 STD RUMP { int sys_fchdir(int fd); } 8114 STD RUMP { int sys_mknod(const char *path, mode_t mode, \ 82 dev_t dev); } 8315 STD RUMP { int sys_chmod(const char *path, mode_t mode); } 8416 STD RUMP { int sys_chown(const char *path, uid_t uid, \ 85 gid_t gid); } 8617 STD { int sys_obreak(char *nsize); } break 8718 COMPAT_20 MODULAR { int sys_getfsstat(struct statfs12 *buf, \ 88 long bufsize, int flags); } 8919 COMPAT_43 MODULAR { long sys_lseek(int fd, long offset, int whence); } \ 90 olseek 9120 STD { pid_t sys_getpid_with_ppid(void); } getpid 9221 COMPAT_40 MODULAR { int sys_mount(const char *type, const char *path, \ 93 int flags, void *data); } 9422 STD RUMP { int sys_unmount(const char *path, int flags); } 9523 STD { int sys_setuid(uid_t uid); } 9624 STD { uid_t sys_getuid_with_euid(void); } getuid 9725 STD { uid_t sys_geteuid(void); } 9826 STD { int sys_ptrace(int req, pid_t pid, void *addr, \ 99 int data); } 10027 STD { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ 101 int flags); } 10228 STD { ssize_t sys_sendmsg(int s, \ 103 const struct msghdr *msg, int flags); } 10429 STD { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ 105 int flags, struct sockaddr *from, \ 106 unsigned int *fromlenaddr); } 10730 STD RUMP { int sys_accept(int s, struct sockaddr *name, \ 108 unsigned int *anamelen); } 10931 STD { int sys_getpeername(int fdes, struct sockaddr *asa, \ 110 unsigned int *alen); } 11132 STD { int sys_getsockname(int fdes, struct sockaddr *asa, \ 112 unsigned int *alen); } 11333 STD { int sys_access(const char *path, int flags); } 11434 STD RUMP { int sys_chflags(const char *path, u_long flags); } 11535 STD { int sys_fchflags(int fd, u_long flags); } 11636 STD RUMP { void sys_sync(void); } 11737 STD { int sys_kill(int pid, int signum); } 11838 COMPAT_43 MODULAR { int sys_stat(const char *path, struct stat43 *ub); } \ 119 stat43 12039 STD { pid_t sys_getppid(void); } 12140 COMPAT_43 MODULAR { int sys_lstat(const char *path, \ 122 struct stat43 *ub); } lstat43 12341 STD { int sys_dup(int fd); } 12442 STD { int sys_pipe(void); } 12543 STD { gid_t sys_getegid(void); } 12644 STD { int sys_profil(char *samples, size_t size, \ 127 u_long offset, u_int scale); } 12845 STD { int sys_ktrace(const char *fname, int ops, \ 129 int facs, int pid); } 13046 COMPAT_13 MODULAR { int sys_sigaction(int signum, \ 131 const struct sigaction13 *nsa, \ 132 struct sigaction13 *osa); } sigaction13 13347 STD { gid_t sys_getgid_with_egid(void); } getgid 13448 COMPAT_13 MODULAR { int sys_sigprocmask(int how, \ 135 int mask); } sigprocmask13 13649 STD { int sys___getlogin(char *namebuf, size_t namelen); } 13750 STD { int sys___setlogin(const char *namebuf); } 13851 STD { int sys_acct(const char *path); } 13952 COMPAT_13 MODULAR { int sys_sigpending(void); } sigpending13 14053 COMPAT_13 MODULAR { int sys_sigaltstack( \ 141 const struct sigaltstack13 *nss, \ 142 struct sigaltstack13 *oss); } sigaltstack13 14354 STD RUMP { int sys_ioctl(int fd, \ 144 u_long com, ... void *data); } 14555 COMPAT_12 MODULAR { int sys_reboot(int opt); } oreboot 14656 STD { int sys_revoke(const char *path); } 14757 STD RUMP { int sys_symlink(const char *path, \ 148 const char *link); } 14958 STD RUMP { ssize_t sys_readlink(const char *path, char *buf, \ 150 size_t count); } 15159 STD { int sys_execve(const char *path, \ 152 char * const *argp, char * const *envp); } 15360 STD { mode_t sys_umask(mode_t newmask); } 15461 STD { int sys_chroot(const char *path); } 15562 COMPAT_43 MODULAR { int sys_fstat(int fd, struct stat43 *sb); } fstat43 15663 COMPAT_43 MODULAR { int sys_getkerninfo(int op, char *where, int *size, \ 157 int arg); } ogetkerninfo 15864 COMPAT_43 MODULAR { int sys_getpagesize(void); } ogetpagesize 15965 COMPAT_12 MODULAR { int sys_msync(void *addr, size_t len); } 160; XXX COMPAT_??? for 4.4BSD-compatible vfork(2)? 16166 STD { int sys_vfork(void); } 16267 OBSOL vread 16368 OBSOL vwrite 16469 STD { int sys_sbrk(intptr_t incr); } 16570 STD { int sys_sstk(int incr); } 16671 COMPAT_43 MODULAR { int sys_mmap(void *addr, size_t len, int prot, \ 167 int flags, int fd, long pos); } ommap 16872 STD { int sys_ovadvise(int anom); } vadvise 16973 STD { int sys_munmap(void *addr, size_t len); } 17074 STD { int sys_mprotect(void *addr, size_t len, \ 171 int prot); } 17275 STD { int sys_madvise(void *addr, size_t len, \ 173 int behav); } 17476 OBSOL vhangup 17577 OBSOL vlimit 17678 STD { int sys_mincore(void *addr, size_t len, \ 177 char *vec); } 17879 STD { int sys_getgroups(int gidsetsize, \ 179 gid_t *gidset); } 18080 STD { int sys_setgroups(int gidsetsize, \ 181 const gid_t *gidset); } 18281 STD { int sys_getpgrp(void); } 18382 STD { int sys_setpgid(int pid, int pgid); } 18483 STD { int sys_setitimer(int which, \ 185 const struct itimerval *itv, \ 186 struct itimerval *oitv); } 18784 COMPAT_43 MODULAR { int sys_wait(void); } owait 18885 COMPAT_12 MODULAR { int sys_swapon(const char *name); } oswapon 18986 STD { int sys_getitimer(int which, \ 190 struct itimerval *itv); } 19187 COMPAT_43 MODULAR { int sys_gethostname(char *hostname, u_int len); } \ 192 ogethostname 19388 COMPAT_43 MODULAR { int sys_sethostname(char *hostname, u_int len); } \ 194 osethostname 19589 COMPAT_43 MODULAR { int sys_getdtablesize(void); } ogetdtablesize 19690 STD { int sys_dup2(int from, int to); } 19791 UNIMPL getdopt 19892 STD { int sys_fcntl(int fd, int cmd, ... void *arg); } 19993 STD { int sys_select(int nd, fd_set *in, fd_set *ou, \ 200 fd_set *ex, struct timeval *tv); } 20194 UNIMPL setdopt 20295 STD RUMP { int sys_fsync(int fd); } 20396 STD { int sys_setpriority(int which, id_t who, int prio); } 20497 COMPAT_30 MODULAR { int sys_socket(int domain, int type, int protocol); } 20598 STD RUMP { int sys_connect(int s, const struct sockaddr *name, \ 206 unsigned int namelen); } 20799 COMPAT_43 MODULAR { int sys_accept(int s, void *name, \ 208 int *anamelen); } oaccept 209100 STD { int sys_getpriority(int which, id_t who); } 210101 COMPAT_43 MODULAR { int sys_send(int s, void *buf, int len, \ 211 int flags); } osend 212102 COMPAT_43 MODULAR { int sys_recv(int s, void *buf, int len, \ 213 int flags); } orecv 214103 COMPAT_13 MODULAR { int sys_sigreturn(struct sigcontext13 *sigcntxp); } \ 215 sigreturn13 216104 STD RUMP { int sys_bind(int s, const struct sockaddr *name, \ 217 unsigned int namelen); } 218105 STD RUMP { int sys_setsockopt(int s, int level, int name, \ 219 const void *val, unsigned int valsize); } 220106 STD RUMP { int sys_listen(int s, int backlog); } 221107 OBSOL vtimes 222108 COMPAT_43 MODULAR { int sys_sigvec(int signum, struct sigvec *nsv, \ 223 struct sigvec *osv); } osigvec 224109 COMPAT_43 MODULAR { int sys_sigblock(int mask); } osigblock 225110 COMPAT_43 MODULAR { int sys_sigsetmask(int mask); } osigsetmask 226111 COMPAT_13 MODULAR { int sys_sigsuspend(int mask); } sigsuspend13 227112 COMPAT_43 MODULAR { int sys_sigstack(struct sigstack *nss, \ 228 struct sigstack *oss); } osigstack 229113 COMPAT_43 MODULAR { int sys_recvmsg(int s, struct omsghdr *msg, \ 230 int flags); } orecvmsg 231114 COMPAT_43 MODULAR { int sys_sendmsg(int s, void *msg, int flags); } \ 232 osendmsg 233115 OBSOL vtrace 234116 STD { int sys_gettimeofday(struct timeval *tp, \ 235 void *tzp); } 236117 STD { int sys_getrusage(int who, struct rusage *rusage); } 237118 STD RUMP { int sys_getsockopt(int s, int level, int name, \ 238 void *val, unsigned int *avalsize); } 239119 OBSOL resuba 240120 STD { ssize_t sys_readv(int fd, \ 241 const struct iovec *iovp, int iovcnt); } 242121 STD { ssize_t sys_writev(int fd, \ 243 const struct iovec *iovp, int iovcnt); } 244122 STD { int sys_settimeofday(const struct timeval *tv, \ 245 const void *tzp); } 246123 STD { int sys_fchown(int fd, uid_t uid, gid_t gid); } 247124 STD { int sys_fchmod(int fd, mode_t mode); } 248125 COMPAT_43 MODULAR { int sys_recvfrom(int s, void *buf, size_t len, \ 249 int flags, void *from, int *fromlenaddr); } \ 250 orecvfrom 251126 STD { int sys_setreuid(uid_t ruid, uid_t euid); } 252127 STD { int sys_setregid(gid_t rgid, gid_t egid); } 253128 STD RUMP { int sys_rename(const char *from, const char *to); } 254129 COMPAT_43 MODULAR { int sys_truncate(const char *path, long length); } \ 255 otruncate 256130 COMPAT_43 MODULAR { int sys_ftruncate(int fd, long length); } oftruncate 257131 STD { int sys_flock(int fd, int how); } 258132 STD RUMP { int sys_mkfifo(const char *path, mode_t mode); } 259133 STD { ssize_t sys_sendto(int s, const void *buf, \ 260 size_t len, int flags, const struct sockaddr *to, \ 261 unsigned int tolen); } 262134 STD { int sys_shutdown(int s, int how); } 263135 STD { int sys_socketpair(int domain, int type, \ 264 int protocol, int *rsv); } 265136 STD RUMP { int sys_mkdir(const char *path, mode_t mode); } 266137 STD RUMP { int sys_rmdir(const char *path); } 267138 STD RUMP { int sys_utimes(const char *path, \ 268 const struct timeval *tptr); } 269139 OBSOL 4.2 sigreturn 270140 STD { int sys_adjtime(const struct timeval *delta, \ 271 struct timeval *olddelta); } 272141 COMPAT_43 MODULAR { int sys_getpeername(int fdes, void *asa, \ 273 int *alen); } ogetpeername 274142 COMPAT_43 MODULAR { int32_t sys_gethostid(void); } ogethostid 275143 COMPAT_43 MODULAR { int sys_sethostid(int32_t hostid); } osethostid 276144 COMPAT_43 MODULAR { int sys_getrlimit(int which, \ 277 struct orlimit *rlp); } ogetrlimit 278145 COMPAT_43 MODULAR { int sys_setrlimit(int which, \ 279 const struct orlimit *rlp); } osetrlimit 280146 COMPAT_43 MODULAR { int sys_killpg(int pgid, int signum); } okillpg 281147 STD { int sys_setsid(void); } 282148 STD { int sys_quotactl(const char *path, int cmd, \ 283 int uid, void *arg); } 284149 COMPAT_43 MODULAR { int sys_quota(void); } oquota 285150 COMPAT_43 MODULAR { int sys_getsockname(int fdec, void *asa, \ 286 int *alen); } ogetsockname 287 288; Syscalls 151-180 inclusive are reserved for vendor-specific 289; system calls. (This includes various calls added for compatibity 290; with other Unix variants.) 291; Some of these calls are now supported by BSD... 292151 UNIMPL 293152 UNIMPL 294153 UNIMPL 295154 UNIMPL 296155 STD MODULAR RUMP { int sys_nfssvc(int flag, void *argp); } 297156 COMPAT_43 MODULAR { int sys_getdirentries(int fd, char *buf, \ 298 u_int count, long *basep); } ogetdirentries 299157 COMPAT_20 MODULAR { int sys_statfs(const char *path, \ 300 struct statfs12 *buf); } 301158 COMPAT_20 MODULAR { int sys_fstatfs(int fd, struct statfs12 *buf); } 302159 UNIMPL 303160 UNIMPL 304161 COMPAT_30 MODULAR { int sys_getfh(const char *fname, \ 305 struct compat_30_fhandle *fhp); } 306162 COMPAT_09 MODULAR { int sys_getdomainname(char *domainname, int len); } \ 307 ogetdomainname 308163 COMPAT_09 MODULAR { int sys_setdomainname(char *domainname, int len); } \ 309 osetdomainname 310164 COMPAT_09 MODULAR { int sys_uname(struct outsname *name); } ouname 311165 STD { int sys_sysarch(int op, void *parms); } 312166 UNIMPL 313167 UNIMPL 314168 UNIMPL 315; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 316#if (defined(SYSVSEM) || !defined(_KERNEL_OPT)) && !defined(_LP64) 317169 COMPAT_10 MODULAR { int sys_semsys(int which, int a2, int a3, int a4, \ 318 int a5); } osemsys 319#else 320169 EXCL 1.0 semsys 321#endif 322; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 323#if (defined(SYSVMSG) || !defined(_KERNEL_OPT)) && !defined(_LP64) 324170 COMPAT_10 MODULAR { int sys_msgsys(int which, int a2, int a3, int a4, \ 325 int a5, int a6); } omsgsys 326#else 327170 EXCL 1.0 msgsys 328#endif 329; XXX more generally, never on machines where sizeof(void *) != sizeof(int) 330#if (defined(SYSVSHM) || !defined(_KERNEL_OPT)) && !defined(_LP64) 331171 COMPAT_10 MODULAR { int sys_shmsys(int which, int a2, int a3, int a4); } \ 332 oshmsys 333#else 334171 EXCL 1.0 shmsys 335#endif 336172 UNIMPL 337173 STD RUMP { ssize_t sys_pread(int fd, void *buf, \ 338 size_t nbyte, int pad, off_t offset); } 339174 STD RUMP { ssize_t sys_pwrite(int fd, const void *buf, \ 340 size_t nbyte, int pad, off_t offset); } 341; For some reason, ntp_gettime doesn't want to raise SIGSYS when it's excluded. 342175 STD { int sys_ntp_gettime(struct ntptimeval30 *ntvp); } 343#if defined(NTP) || !defined(_KERNEL_OPT) 344176 STD { int sys_ntp_adjtime(struct timex *tp); } 345#else 346176 EXCL ntp_adjtime 347#endif 348177 UNIMPL 349178 UNIMPL 350179 UNIMPL 351180 UNIMPL 352 353; Syscalls 180-199 are used by/reserved for BSD 354181 STD { int sys_setgid(gid_t gid); } 355182 STD { int sys_setegid(gid_t egid); } 356183 STD { int sys_seteuid(uid_t euid); } 357#if defined(LFS) || !defined(_KERNEL) 358184 STD { int sys_lfs_bmapv(fsid_t *fsidp, \ 359 struct block_info *blkiov, int blkcnt); } 360185 STD { int sys_lfs_markv(fsid_t *fsidp, \ 361 struct block_info *blkiov, int blkcnt); } 362186 STD { int sys_lfs_segclean(fsid_t *fsidp, u_long segment); } 363187 STD { int sys_lfs_segwait(fsid_t *fsidp, \ 364 struct timeval *tv); } 365#else 366184 EXCL lfs_bmapv 367185 EXCL lfs_markv 368186 EXCL lfs_segclean 369187 EXCL lfs_segwait 370#endif 371188 COMPAT_12 MODULAR { int sys_stat(const char *path, struct stat12 *ub); } \ 372 stat12 373189 COMPAT_12 MODULAR { int sys_fstat(int fd, struct stat12 *sb); } fstat12 374190 COMPAT_12 MODULAR { int sys_lstat(const char *path, \ 375 struct stat12 *ub); } lstat12 376191 STD { long sys_pathconf(const char *path, int name); } 377192 STD { long sys_fpathconf(int fd, int name); } 378193 UNIMPL 379194 STD { int sys_getrlimit(int which, \ 380 struct rlimit *rlp); } 381195 STD { int sys_setrlimit(int which, \ 382 const struct rlimit *rlp); } 383196 COMPAT_12 MODULAR { int sys_getdirentries(int fd, char *buf, \ 384 u_int count, long *basep); } 385197 STD { void *sys_mmap(void *addr, size_t len, int prot, \ 386 int flags, int fd, long pad, off_t pos); } 387198 INDIR { quad_t sys___syscall(quad_t code, \ 388 ... register_t args[SYS_MAXSYSARGS]); } 389199 STD { off_t sys_lseek(int fd, int pad, off_t offset, \ 390 int whence); } 391200 STD RUMP { int sys_truncate(const char *path, int pad, \ 392 off_t length); } 393201 STD { int sys_ftruncate(int fd, int pad, off_t length); } 394202 STD RUMP { int sys___sysctl(const int *name, u_int namelen, \ 395 void *old, size_t *oldlenp, const void *new, \ 396 size_t newlen); } 397203 STD { int sys_mlock(const void *addr, size_t len); } 398204 STD { int sys_munlock(const void *addr, size_t len); } 399205 STD { int sys_undelete(const char *path); } 400206 STD { int sys_futimes(int fd, \ 401 const struct timeval *tptr); } 402207 STD { pid_t sys_getpgid(pid_t pid); } 403208 STD { int sys_reboot(int opt, char *bootstr); } 404209 STD { int sys_poll(struct pollfd *fds, u_int nfds, \ 405 int timeout); } 406; 407; Syscalls 210-219 are reserved for dynamically loaded syscalls 408; 409210 UNIMPL 410211 UNIMPL 411212 UNIMPL 412213 UNIMPL 413214 UNIMPL 414215 UNIMPL 415216 UNIMPL 416217 UNIMPL 417218 UNIMPL 418219 UNIMPL 419; System calls 220-300 are reserved for use by NetBSD 420#if defined(SYSVSEM) || !defined(_KERNEL_OPT) 421220 COMPAT_14 MODULAR { int sys___semctl(int semid, int semnum, int cmd, \ 422 union __semun *arg); } 423221 STD { int sys_semget(key_t key, int nsems, int semflg); } 424222 STD { int sys_semop(int semid, struct sembuf *sops, \ 425 size_t nsops); } 426223 STD { int sys_semconfig(int flag); } 427#else 428220 EXCL compat_14_semctl 429221 EXCL semget 430222 EXCL semop 431223 EXCL semconfig 432#endif 433#if defined(SYSVMSG) || !defined(_KERNEL_OPT) 434224 COMPAT_14 MODULAR { int sys_msgctl(int msqid, int cmd, \ 435 struct msqid_ds14 *buf); } 436225 STD { int sys_msgget(key_t key, int msgflg); } 437226 STD { int sys_msgsnd(int msqid, const void *msgp, \ 438 size_t msgsz, int msgflg); } 439227 STD { ssize_t sys_msgrcv(int msqid, void *msgp, \ 440 size_t msgsz, long msgtyp, int msgflg); } 441#else 442224 EXCL compat_14_msgctl 443225 EXCL msgget 444226 EXCL msgsnd 445227 EXCL msgrcv 446#endif 447#if defined(SYSVSHM) || !defined(_KERNEL_OPT) 448228 STD { void *sys_shmat(int shmid, const void *shmaddr, \ 449 int shmflg); } 450229 COMPAT_14 MODULAR { int sys_shmctl(int shmid, int cmd, \ 451 struct shmid_ds14 *buf); } 452230 STD { int sys_shmdt(const void *shmaddr); } 453231 STD { int sys_shmget(key_t key, size_t size, int shmflg); } 454#else 455228 EXCL shmat 456229 EXCL compat_14_shmctl 457230 EXCL shmdt 458231 EXCL shmget 459#endif 460232 STD { int sys_clock_gettime(clockid_t clock_id, \ 461 struct timespec *tp); } 462233 STD { int sys_clock_settime(clockid_t clock_id, \ 463 const struct timespec *tp); } 464234 STD { int sys_clock_getres(clockid_t clock_id, \ 465 struct timespec *tp); } 466235 STD { int sys_timer_create(clockid_t clock_id, \ 467 struct sigevent *evp, timer_t *timerid); } 468236 STD { int sys_timer_delete(timer_t timerid); } 469237 STD { int sys_timer_settime(timer_t timerid, int flags, \ 470 const struct itimerspec *value, \ 471 struct itimerspec *ovalue); } 472238 STD { int sys_timer_gettime(timer_t timerid, struct \ 473 itimerspec *value); } 474239 STD { int sys_timer_getoverrun(timer_t timerid); } 475; 476; Syscalls 240-269 are reserved for other IEEE Std1003.1b syscalls 477; 478240 STD { int sys_nanosleep(const struct timespec *rqtp, \ 479 struct timespec *rmtp); } 480241 STD { int sys_fdatasync(int fd); } 481242 STD { int sys_mlockall(int flags); } 482243 STD { int sys_munlockall(void); } 483244 STD { int sys___sigtimedwait(const sigset_t *set, \ 484 siginfo_t *info, \ 485 struct timespec *timeout); } 486245 UNIMPL sys_sigqueue 487246 STD { int sys_modctl(int cmd, void *arg); } 488247 STD MODULAR { int sys__ksem_init(unsigned int value, intptr_t *idp); } 489248 STD MODULAR { int sys__ksem_open(const char *name, int oflag, \ 490 mode_t mode, unsigned int value, intptr_t *idp); } 491249 STD MODULAR { int sys__ksem_unlink(const char *name); } 492250 STD MODULAR { int sys__ksem_close(intptr_t id); } 493251 STD MODULAR { int sys__ksem_post(intptr_t id); } 494252 STD MODULAR { int sys__ksem_wait(intptr_t id); } 495253 STD MODULAR { int sys__ksem_trywait(intptr_t id); } 496254 STD MODULAR { int sys__ksem_getvalue(intptr_t id, \ 497 unsigned int *value); } 498255 STD MODULAR { int sys__ksem_destroy(intptr_t id); } 499256 UNIMPL sys__ksem_timedwait 500257 STD { mqd_t sys_mq_open(const char * name, int oflag, \ 501 mode_t mode, struct mq_attr *attr); } 502258 STD { int sys_mq_close(mqd_t mqdes); } 503259 STD { int sys_mq_unlink(const char *name); } 504260 STD { int sys_mq_getattr(mqd_t mqdes, \ 505 struct mq_attr *mqstat); } 506261 STD { int sys_mq_setattr(mqd_t mqdes, \ 507 const struct mq_attr *mqstat, \ 508 struct mq_attr *omqstat); } 509262 STD { int sys_mq_notify(mqd_t mqdes, \ 510 const struct sigevent *notification); } 511263 STD { int sys_mq_send(mqd_t mqdes, const char *msg_ptr, \ 512 size_t msg_len, unsigned msg_prio); } 513264 STD { ssize_t sys_mq_receive(mqd_t mqdes, char *msg_ptr, \ 514 size_t msg_len, unsigned *msg_prio); } 515265 STD { int sys_mq_timedsend(mqd_t mqdes, \ 516 const char *msg_ptr, size_t msg_len, \ 517 unsigned msg_prio, \ 518 const struct timespec *abs_timeout); } 519266 STD { ssize_t sys_mq_timedreceive(mqd_t mqdes, \ 520 char *msg_ptr, size_t msg_len, unsigned *msg_prio, \ 521 const struct timespec *abs_timeout); } 522267 UNIMPL 523268 UNIMPL 524269 UNIMPL 525270 STD { int sys___posix_rename(const char *from, \ 526 const char *to); } 527271 STD { int sys_swapctl(int cmd, void *arg, int misc); } 528272 COMPAT_30 MODULAR { int sys_getdents(int fd, char *buf, size_t count); } 529273 STD { int sys_minherit(void *addr, size_t len, \ 530 int inherit); } 531274 STD RUMP { int sys_lchmod(const char *path, mode_t mode); } 532275 STD RUMP { int sys_lchown(const char *path, uid_t uid, \ 533 gid_t gid); } 534276 STD RUMP { int sys_lutimes(const char *path, \ 535 const struct timeval *tptr); } 536277 STD { int sys___msync13(void *addr, size_t len, int flags); } 537278 COMPAT_30 MODULAR { int sys___stat13(const char *path, struct stat13 *ub); } 538279 COMPAT_30 MODULAR { int sys___fstat13(int fd, struct stat13 *sb); } 539280 COMPAT_30 MODULAR { int sys___lstat13(const char *path, struct stat13 *ub); } 540281 STD { int sys___sigaltstack14( \ 541 const struct sigaltstack *nss, \ 542 struct sigaltstack *oss); } 543282 STD { int sys___vfork14(void); } 544283 STD { int sys___posix_chown(const char *path, uid_t uid, \ 545 gid_t gid); } 546284 STD { int sys___posix_fchown(int fd, uid_t uid, \ 547 gid_t gid); } 548285 STD { int sys___posix_lchown(const char *path, uid_t uid, \ 549 gid_t gid); } 550286 STD { pid_t sys_getsid(pid_t pid); } 551287 STD { pid_t sys___clone(int flags, void *stack); } 552288 STD { int sys_fktrace(int fd, int ops, \ 553 int facs, int pid); } 554289 STD { ssize_t sys_preadv(int fd, \ 555 const struct iovec *iovp, int iovcnt, \ 556 int pad, off_t offset); } 557290 STD { ssize_t sys_pwritev(int fd, \ 558 const struct iovec *iovp, int iovcnt, \ 559 int pad, off_t offset); } 560291 COMPAT_16 MODULAR { int sys___sigaction14(int signum, \ 561 const struct sigaction *nsa, \ 562 struct sigaction *osa); } 563292 STD { int sys___sigpending14(sigset_t *set); } 564293 STD { int sys___sigprocmask14(int how, \ 565 const sigset_t *set, \ 566 sigset_t *oset); } 567294 STD { int sys___sigsuspend14(const sigset_t *set); } 568295 COMPAT_16 MODULAR { int sys___sigreturn14(struct sigcontext *sigcntxp); } 569296 STD { int sys___getcwd(char *bufp, size_t length); } 570297 STD { int sys_fchroot(int fd); } 571298 COMPAT_30 MODULAR { int sys_fhopen(const struct compat_30_fhandle *fhp, int flags); } 572299 COMPAT_30 MODULAR { int sys_fhstat(const struct compat_30_fhandle *fhp, \ 573 struct stat13 *sb); } 574300 COMPAT_20 MODULAR { int sys_fhstatfs(const struct compat_30_fhandle *fhp, \ 575 struct statfs12 *buf); } 576#if defined(SYSVSEM) || !defined(_KERNEL_OPT) 577301 STD { int sys_____semctl13(int semid, int semnum, int cmd, \ 578 ... union __semun *arg); } 579#else 580301 EXCL ____semctl13 581#endif 582#if defined(SYSVMSG) || !defined(_KERNEL_OPT) 583302 STD { int sys___msgctl13(int msqid, int cmd, \ 584 struct msqid_ds *buf); } 585#else 586302 EXCL __msgctl13 587#endif 588#if defined(SYSVSHM) || !defined(_KERNEL_OPT) 589303 STD { int sys___shmctl13(int shmid, int cmd, \ 590 struct shmid_ds *buf); } 591#else 592303 EXCL __shmctl13 593#endif 594304 STD RUMP { int sys_lchflags(const char *path, u_long flags); } 595305 STD { int sys_issetugid(void); } 596306 STD { int sys_utrace(const char *label, void *addr, \ 597 size_t len); } 598307 STD { int sys_getcontext(struct __ucontext *ucp); } 599308 STD { int sys_setcontext(const struct __ucontext *ucp); } 600309 STD { int sys__lwp_create(const struct __ucontext *ucp, \ 601 u_long flags, lwpid_t *new_lwp); } 602310 STD { int sys__lwp_exit(void); } 603311 STD { lwpid_t sys__lwp_self(void); } 604312 STD { int sys__lwp_wait(lwpid_t wait_for, \ 605 lwpid_t *departed); } 606313 STD { int sys__lwp_suspend(lwpid_t target); } 607314 STD { int sys__lwp_continue(lwpid_t target); } 608315 STD { int sys__lwp_wakeup(lwpid_t target); } 609316 STD { void *sys__lwp_getprivate(void); } 610317 STD { void sys__lwp_setprivate(void *ptr); } 611318 STD { int sys__lwp_kill(lwpid_t target, int signo); } 612319 STD { int sys__lwp_detach(lwpid_t target); } 613320 STD { int sys__lwp_park(const struct timespec *ts, \ 614 lwpid_t unpark, const void *hint, \ 615 const void *unparkhint); } 616321 STD { int sys__lwp_unpark(lwpid_t target, const void *hint); } 617322 STD { ssize_t sys__lwp_unpark_all(const lwpid_t *targets, \ 618 size_t ntargets, const void *hint); } 619323 STD { int sys__lwp_setname(lwpid_t target, \ 620 const char *name); } 621324 STD { int sys__lwp_getname(lwpid_t target, \ 622 char *name, size_t len); } 623325 STD { int sys__lwp_ctl(int features, \ 624 struct lwpctl **address); } 625; Syscalls 326-339 reserved for LWP syscalls. 626326 UNIMPL 627327 UNIMPL 628328 UNIMPL 629329 UNIMPL 630; SA system calls. 631330 STD { int sys_sa_register(sa_upcall_t new, \ 632 sa_upcall_t *old, int flags, \ 633 ssize_t stackinfo_offset); } 634331 STD { int sys_sa_stacks(int num, stack_t *stacks); } 635332 STD { int sys_sa_enable(void); } 636333 STD { int sys_sa_setconcurrency(int concurrency); } 637334 STD { int sys_sa_yield(void); } 638335 STD { int sys_sa_preempt(int sa_id); } 639336 OBSOL sys_sa_unblockyield 640; 641; Syscalls 337-339 are reserved for other scheduler activation syscalls. 642; 643337 UNIMPL 644338 UNIMPL 645339 UNIMPL 646340 STD { int sys___sigaction_sigtramp(int signum, \ 647 const struct sigaction *nsa, \ 648 struct sigaction *osa, \ 649 const void *tramp, int vers); } 650341 STD { int sys_pmc_get_info(int ctr, int op, void *args); } 651342 STD { int sys_pmc_control(int ctr, int op, void *args); } 652343 STD { int sys_rasctl(void *addr, size_t len, int op); } 653344 STD { int sys_kqueue(void); } 654345 STD { int sys_kevent(int fd, \ 655 const struct kevent *changelist, size_t nchanges, \ 656 struct kevent *eventlist, size_t nevents, \ 657 const struct timespec *timeout); } 658 659; Scheduling system calls. 660346 STD { int sys__sched_setparam(pid_t pid, lwpid_t lid, \ 661 int policy, const struct sched_param *params); } 662347 STD { int sys__sched_getparam(pid_t pid, lwpid_t lid, \ 663 int *policy, struct sched_param *params); } 664348 STD { int sys__sched_setaffinity(pid_t pid, lwpid_t lid, \ 665 size_t size, const cpuset_t *cpuset); } 666349 STD { int sys__sched_getaffinity(pid_t pid, lwpid_t lid, \ 667 size_t size, cpuset_t *cpuset); } 668350 STD { int sys_sched_yield(void); } 669351 UNIMPL 670352 UNIMPL 671353 UNIMPL 672 673354 STD { int sys_fsync_range(int fd, int flags, off_t start, \ 674 off_t length); } 675355 STD { int sys_uuidgen(struct uuid *store, int count); } 676356 STD { int sys_getvfsstat(struct statvfs *buf, \ 677 size_t bufsize, int flags); } 678357 STD RUMP { int sys_statvfs1(const char *path, \ 679 struct statvfs *buf, int flags); } 680358 STD { int sys_fstatvfs1(int fd, struct statvfs *buf, \ 681 int flags); } 682359 COMPAT_30 MODULAR { int sys_fhstatvfs1(const struct compat_30_fhandle *fhp, \ 683 struct statvfs *buf, int flags); } 684360 STD { int sys_extattrctl(const char *path, int cmd, \ 685 const char *filename, int attrnamespace, \ 686 const char *attrname); } 687361 STD { int sys_extattr_set_file(const char *path, \ 688 int attrnamespace, const char *attrname, \ 689 const void *data, size_t nbytes); } 690362 STD { ssize_t sys_extattr_get_file(const char *path, \ 691 int attrnamespace, const char *attrname, \ 692 void *data, size_t nbytes); } 693363 STD { int sys_extattr_delete_file(const char *path, \ 694 int attrnamespace, const char *attrname); } 695364 STD { int sys_extattr_set_fd(int fd, \ 696 int attrnamespace, const char *attrname, \ 697 const void *data, size_t nbytes); } 698365 STD { ssize_t sys_extattr_get_fd(int fd, \ 699 int attrnamespace, const char *attrname, \ 700 void *data, size_t nbytes); } 701366 STD { int sys_extattr_delete_fd(int fd, \ 702 int attrnamespace, const char *attrname); } 703367 STD { int sys_extattr_set_link(const char *path, \ 704 int attrnamespace, const char *attrname, \ 705 const void *data, size_t nbytes); } 706368 STD { ssize_t sys_extattr_get_link(const char *path, \ 707 int attrnamespace, const char *attrname, \ 708 void *data, size_t nbytes); } 709369 STD { int sys_extattr_delete_link(const char *path, \ 710 int attrnamespace, const char *attrname); } 711370 STD { ssize_t sys_extattr_list_fd(int fd, \ 712 int attrnamespace, void *data, size_t nbytes); } 713371 STD { ssize_t sys_extattr_list_file(const char *path, \ 714 int attrnamespace, void *data, size_t nbytes); } 715372 STD { ssize_t sys_extattr_list_link(const char *path, \ 716 int attrnamespace, void *data, size_t nbytes); } 717373 STD { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ 718 fd_set *ex, const struct timespec *ts, \ 719 const sigset_t *mask); } 720374 STD { int sys_pollts(struct pollfd *fds, u_int nfds, \ 721 const struct timespec *ts, const sigset_t *mask); } 722375 STD { int sys_setxattr(const char *path, \ 723 const char *name, void *value, size_t size, \ 724 int flags); } 725376 STD { int sys_lsetxattr(const char *path, \ 726 const char *name, void *value, size_t size, \ 727 int flags); } 728377 STD { int sys_fsetxattr(int fd, \ 729 const char *name, void *value, size_t size, \ 730 int flags); } 731378 STD { int sys_getxattr(const char *path, \ 732 const char *name, void *value, size_t size); } 733379 STD { int sys_lgetxattr(const char *path, \ 734 const char *name, void *value, size_t size); } 735380 STD { int sys_fgetxattr(int fd, \ 736 const char *name, void *value, size_t size); } 737381 STD { int sys_listxattr(const char *path, \ 738 char *list, size_t size); } 739382 STD { int sys_llistxattr(const char *path, \ 740 char *list, size_t size); } 741383 STD { int sys_flistxattr(int fd, \ 742 char *list, size_t size); } 743384 STD { int sys_removexattr(const char *path, \ 744 const char *name); } 745385 STD { int sys_lremovexattr(const char *path, \ 746 const char *name); } 747386 STD { int sys_fremovexattr(int fd, \ 748 const char *name); } 749387 STD RUMP { int sys___stat30(const char *path, struct stat *ub); } 750388 STD { int sys___fstat30(int fd, struct stat *sb); } 751389 STD RUMP { int sys___lstat30(const char *path, struct stat *ub); } 752390 STD { int sys___getdents30(int fd, char *buf, size_t count); } 753391 IGNORED old posix_fadvise 754392 COMPAT_30 MODULAR { int sys___fhstat30(const struct compat_30_fhandle \ 755 *fhp, struct stat *sb); } 756393 STD { int sys___ntp_gettime30(struct ntptimeval *ntvp); } 757394 STD RUMP { int sys___socket30(int domain, int type, int protocol); } 758395 STD RUMP { int sys___getfh30(const char *fname, void *fhp, \ 759 size_t *fh_size); } 760396 STD { int sys___fhopen40(const void *fhp, size_t fh_size,\ 761 int flags); } 762397 STD { int sys___fhstatvfs140(const void *fhp, \ 763 size_t fh_size, struct statvfs *buf, int flags); } 764398 STD { int sys___fhstat40(const void *fhp, \ 765 size_t fh_size, struct stat *sb); } 766 767; Asynchronous I/O system calls 768399 STD MODULAR { int sys_aio_cancel(int fildes, struct aiocb *aiocbp); } 769400 STD MODULAR { int sys_aio_error(const struct aiocb *aiocbp); } 770401 STD MODULAR { int sys_aio_fsync(int op, struct aiocb *aiocbp); } 771402 STD MODULAR { int sys_aio_read(struct aiocb *aiocbp); } 772403 STD MODULAR { int sys_aio_return(struct aiocb *aiocbp); } 773404 STD MODULAR { int sys_aio_suspend(const struct aiocb *const *list, \ 774 int nent, const struct timespec *timeout); } 775405 STD MODULAR { int sys_aio_write(struct aiocb *aiocbp); } 776406 STD MODULAR { int sys_lio_listio(int mode, struct aiocb *const *list, \ 777 int nent, struct sigevent *sig); } 778 779407 UNIMPL 780408 UNIMPL 781409 UNIMPL 782 783410 STD { int sys___mount50(const char *type, \ 784 const char *path, int flags, void *data, \ 785 size_t data_len); } 786411 STD { void *sys_mremap(void *old_address, size_t old_size, \ 787 void *new_address, size_t new_size, int flags); } 788 789; Processor-sets system calls 790412 STD { int sys_pset_create(psetid_t *psid); } 791413 STD { int sys_pset_destroy(psetid_t psid); } 792414 STD { int sys_pset_assign(psetid_t psid, cpuid_t cpuid, \ 793 psetid_t *opsid); } 794415 STD { int sys__pset_bind(idtype_t idtype, id_t first_id, \ 795 id_t second_id, psetid_t psid, psetid_t *opsid); } 796416 STD { int sys___posix_fadvise50(int fd, int pad, \ 797 off_t offset, off_t len, int advice); } 798