1; $OpenBSD: syscalls.master,v 1.118 2011/07/18 00:16:54 matthew Exp $ 2; $NetBSD: syscalls.master,v 1.32 1996/04/23 10:24:21 mycroft Exp $ 3 4; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 5 6; OpenBSD system call name/number "master" file. 7; (See syscalls.conf to see what it is processed into.) 8; 9; Fields: number type [type-dependent ...] 10; number system call number, must be in order 11; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 12; the compatibility options defined in syscalls.conf. 13; 14; types: 15; STD always included 16; OBSOL obsolete, not included in system 17; UNIMPL unimplemented, not included in system 18; NODEF included, but don't define the syscall number 19; NOARGS included, but don't define the syscall args structure 20; INDIR included, but don't define the syscall args structure, 21; and allow it to be "really" varargs. 22; 23; The compat options are defined in the syscalls.conf file, and the 24; compat option name is prefixed to the syscall name. Other than 25; that, they're like NODEF (for 'compat' options), or STD (for 26; 'libcompat' options). 27; 28; The type-dependent arguments are as follows: 29; For STD, NODEF, NOARGS, and compat syscalls: 30; { pseudo-proto } [alias] 31; For other syscalls: 32; [comment] 33; 34; #ifdef's, etc. may be included, and are copied to the output files. 35; #include's are copied to the syscall switch definition file only. 36 37#include <sys/param.h> 38#include <sys/systm.h> 39#include <sys/signal.h> 40#include <sys/mount.h> 41#include <sys/syscallargs.h> 42#include <sys/poll.h> 43#include <sys/event.h> 44#include <nnpfs/nnpfs_pioctl.h> 45 46; Reserved/unimplemented system calls in the range 0-150 inclusive 47; are reserved for use in future Berkeley releases. 48; Additional system calls implemented in vendor and other 49; redistributions should be placed in the reserved range at the end 50; of the current calls. 51 520 INDIR { int sys_syscall(int number, ...); } 531 STD { void sys_exit(int rval); } 542 STD { int sys_fork(void); } 553 STD { ssize_t sys_read(int fd, void *buf, size_t nbyte); } 564 STD { ssize_t sys_write(int fd, const void *buf, \ 57 size_t nbyte); } 585 STD { int sys_open(const char *path, \ 59 int flags, ... mode_t mode); } 606 STD { int sys_close(int fd); } 617 STD { pid_t sys_wait4(pid_t pid, int *status, int options, \ 62 struct rusage *rusage); } 638 OBSOL ocreat 649 STD { int sys_link(const char *path, const char *link); } 6510 STD { int sys_unlink(const char *path); } 6611 OBSOL execv 6712 STD { int sys_chdir(const char *path); } 6813 STD { int sys_fchdir(int fd); } 6914 STD { int sys_mknod(const char *path, mode_t mode, \ 70 dev_t dev); } 7115 STD { int sys_chmod(const char *path, mode_t mode); } 7216 STD { int sys_chown(const char *path, uid_t uid, \ 73 gid_t gid); } 7417 STD { int sys_obreak(char *nsize); } break 7518 OBSOL getfsstat25 7619 OBSOL olseek 7720 STD NOLOCK { pid_t sys_getpid(void); } 7821 STD { int sys_mount(const char *type, const char *path, \ 79 int flags, void *data); } 8022 STD { int sys_unmount(const char *path, int flags); } 8123 STD { int sys_setuid(uid_t uid); } 8224 STD { uid_t sys_getuid(void); } 8325 STD { uid_t sys_geteuid(void); } 84#ifdef PTRACE 8526 STD { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ 86 int data); } 87#else 8826 UNIMPL ptrace 89#endif 9027 STD { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ 91 int flags); } 9228 STD { ssize_t sys_sendmsg(int s, \ 93 const struct msghdr *msg, int flags); } 9429 STD { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ 95 int flags, struct sockaddr *from, \ 96 socklen_t *fromlenaddr); } 9730 STD { int sys_accept(int s, struct sockaddr *name, \ 98 socklen_t *anamelen); } 9931 STD { int sys_getpeername(int fdes, struct sockaddr *asa, \ 100 socklen_t *alen); } 10132 STD { int sys_getsockname(int fdes, struct sockaddr *asa, \ 102 socklen_t *alen); } 10333 STD { int sys_access(const char *path, int flags); } 10434 STD { int sys_chflags(const char *path, u_int flags); } 10535 STD { int sys_fchflags(int fd, u_int flags); } 10636 STD { void sys_sync(void); } 10737 STD { int sys_kill(int pid, int signum); } 10838 OBSOL stat43 10939 STD { pid_t sys_getppid(void); } 11040 OBSOL lstat43 11141 STD { int sys_dup(int fd); } 11242 OBSOL opipe 11343 STD { gid_t sys_getegid(void); } 11444 STD { int sys_profil(caddr_t samples, size_t size, \ 115 u_long offset, u_int scale); } 116#ifdef KTRACE 11745 STD { int sys_ktrace(const char *fname, int ops, \ 118 int facs, pid_t pid); } 119#else 12045 UNIMPL ktrace 121#endif 12246 STD { int sys_sigaction(int signum, \ 123 const struct sigaction *nsa, \ 124 struct sigaction *osa); } 12547 STD { gid_t sys_getgid(void); } 12648 STD { int sys_sigprocmask(int how, sigset_t mask); } 12749 STD { int sys_getlogin(char *namebuf, u_int namelen); } 12850 STD { int sys_setlogin(const char *namebuf); } 129#ifdef ACCOUNTING 13051 STD { int sys_acct(const char *path); } 131#else 13251 UNIMPL acct 133#endif 13452 STD { int sys_sigpending(void); } 13553 OBSOL osigaltstack 13654 STD { int sys_ioctl(int fd, \ 137 u_long com, ... void *data); } 13855 STD { int sys_reboot(int opt); } 13956 STD { int sys_revoke(const char *path); } 14057 STD { int sys_symlink(const char *path, \ 141 const char *link); } 14258 STD { int sys_readlink(const char *path, char *buf, \ 143 size_t count); } 14459 STD { int sys_execve(const char *path, \ 145 char * const *argp, char * const *envp); } 14660 STD { mode_t sys_umask(mode_t newmask); } 14761 STD { int sys_chroot(const char *path); } 14862 OBSOL fstat43 14963 OBSOL ogetkerninfo 15064 OBSOL ogetpagesize 15165 OBSOL omsync25 15266 STD { int sys_vfork(void); } 15367 OBSOL vread 15468 OBSOL vwrite 15569 OBSOL sbrk 15670 OBSOL sstk 15771 OBSOL ommap 15872 OBSOL vadvise 15973 STD { int sys_munmap(void *addr, size_t len); } 16074 STD { int sys_mprotect(void *addr, size_t len, \ 161 int prot); } 16275 STD { int sys_madvise(void *addr, size_t len, \ 163 int behav); } 16476 OBSOL vhangup 16577 OBSOL vlimit 16678 STD { int sys_mincore(void *addr, size_t len, \ 167 char *vec); } 16879 STD { int sys_getgroups(int gidsetsize, \ 169 gid_t *gidset); } 17080 STD { int sys_setgroups(int gidsetsize, \ 171 const gid_t *gidset); } 17281 STD { int sys_getpgrp(void); } 17382 STD { int sys_setpgid(pid_t pid, int pgid); } 17483 STD { int sys_setitimer(int which, \ 175 const struct itimerval *itv, \ 176 struct itimerval *oitv); } 17784 OBSOL owait 17885 OBSOL swapon25 17986 STD { int sys_getitimer(int which, \ 180 struct itimerval *itv); } 18187 OBSOL ogethostname 18288 OBSOL osethostname 18389 OBSOL ogetdtablesize 18490 STD { int sys_dup2(int from, int to); } 18591 UNIMPL getdopt 18692 STD { int sys_fcntl(int fd, int cmd, ... void *arg); } 18793 STD { int sys_select(int nd, fd_set *in, fd_set *ou, \ 188 fd_set *ex, struct timeval *tv); } 18994 UNIMPL setdopt 19095 STD { int sys_fsync(int fd); } 19196 STD { int sys_setpriority(int which, id_t who, int prio); } 19297 STD { int sys_socket(int domain, int type, int protocol); } 19398 STD { int sys_connect(int s, const struct sockaddr *name, \ 194 socklen_t namelen); } 19599 OBSOL oaccept 196100 STD { int sys_getpriority(int which, id_t who); } 197101 OBSOL osend 198102 OBSOL orecv 199103 STD { int sys_sigreturn(struct sigcontext *sigcntxp); } 200104 STD { int sys_bind(int s, const struct sockaddr *name, \ 201 socklen_t namelen); } 202105 STD { int sys_setsockopt(int s, int level, int name, \ 203 const void *val, socklen_t valsize); } 204106 STD { int sys_listen(int s, int backlog); } 205107 OBSOL vtimes 206108 OBSOL osigvec 207109 OBSOL osigblock 208110 OBSOL osigsetmask 209111 STD { int sys_sigsuspend(int mask); } 210112 OBSOL osigstack 211113 OBSOL orecvmsg 212114 OBSOL osendmsg 213115 OBSOL vtrace 214116 STD NOLOCK { int sys_gettimeofday(struct timeval *tp, \ 215 struct timezone *tzp); } 216117 STD { int sys_getrusage(int who, struct rusage *rusage); } 217118 STD { int sys_getsockopt(int s, int level, int name, \ 218 void *val, socklen_t *avalsize); } 219119 OBSOL resuba 220120 STD { ssize_t sys_readv(int fd, \ 221 const struct iovec *iovp, int iovcnt); } 222121 STD { ssize_t sys_writev(int fd, \ 223 const struct iovec *iovp, int iovcnt); } 224122 STD { int sys_settimeofday(const struct timeval *tv, \ 225 const struct timezone *tzp); } 226123 STD { int sys_fchown(int fd, uid_t uid, gid_t gid); } 227124 STD { int sys_fchmod(int fd, mode_t mode); } 228125 OBSOL orecvfrom 229126 STD { int sys_setreuid(uid_t ruid, uid_t euid); } 230127 STD { int sys_setregid(gid_t rgid, gid_t egid); } 231128 STD { int sys_rename(const char *from, const char *to); } 232129 OBSOL otruncate 233130 OBSOL oftruncate 234131 STD { int sys_flock(int fd, int how); } 235132 STD { int sys_mkfifo(const char *path, mode_t mode); } 236133 STD { ssize_t sys_sendto(int s, const void *buf, \ 237 size_t len, int flags, const struct sockaddr *to, \ 238 socklen_t tolen); } 239134 STD { int sys_shutdown(int s, int how); } 240135 STD { int sys_socketpair(int domain, int type, \ 241 int protocol, int *rsv); } 242136 STD { int sys_mkdir(const char *path, mode_t mode); } 243137 STD { int sys_rmdir(const char *path); } 244138 STD { int sys_utimes(const char *path, \ 245 const struct timeval *tptr); } 246139 OBSOL 4.2 sigreturn 247140 STD { int sys_adjtime(const struct timeval *delta, \ 248 struct timeval *olddelta); } 249141 OBSOL ogetpeername 250142 OBSOL ogethostid 251143 OBSOL osethostid 252144 OBSOL ogetrlimit 253145 OBSOL osetrlimit 254146 OBSOL okillpg 255147 STD { int sys_setsid(void); } 256148 STD { int sys_quotactl(const char *path, int cmd, \ 257 int uid, char *arg); } 258149 OBSOL oquota 259150 OBSOL ogetsockname 260 261; Syscalls 151-180 inclusive are reserved for vendor-specific 262; system calls. (This includes various calls added for compatibility 263; with other Unix variants.) 264; Some of these calls are now supported by BSD... 265151 UNIMPL 266152 UNIMPL 267153 UNIMPL 268154 UNIMPL 269#if defined(NFSCLIENT) || defined(NFSSERVER) 270155 STD { int sys_nfssvc(int flag, void *argp); } 271#else 272155 UNIMPL 273#endif 274156 OBSOL ogetdirentries 275157 OBSOL statfs25 276158 OBSOL fstatfs25 277159 UNIMPL 278160 UNIMPL 279161 STD { int sys_getfh(const char *fname, fhandle_t *fhp); } 280162 OBSOL ogetdomainname 281163 OBSOL osetdomainname 282164 UNIMPL ouname 283165 STD { int sys_sysarch(int op, void *parms); } 284166 UNIMPL 285167 UNIMPL 286168 UNIMPL 287169 OBSOL semsys10 288170 OBSOL msgsys10 289171 OBSOL shmsys10 290172 UNIMPL 291173 STD { ssize_t sys_pread(int fd, void *buf, \ 292 size_t nbyte, int pad, off_t offset); } 293174 STD { ssize_t sys_pwrite(int fd, const void *buf, \ 294 size_t nbyte, int pad, off_t offset); } 295175 UNIMPL ntp_gettime 296176 UNIMPL ntp_adjtime 297177 UNIMPL 298178 UNIMPL 299179 UNIMPL 300180 UNIMPL 301 302; Syscalls 181-199 are used by/reserved for BSD 303181 STD { int sys_setgid(gid_t gid); } 304182 STD { int sys_setegid(gid_t egid); } 305183 STD { int sys_seteuid(uid_t euid); } 306#ifdef LFS 307184 STD { int lfs_bmapv(fsid_t *fsidp, \ 308 struct block_info *blkiov, int blkcnt); } 309185 STD { int lfs_markv(fsid_t *fsidp, \ 310 struct block_info *blkiov, int blkcnt); } 311186 STD { int lfs_segclean(fsid_t *fsidp, u_long segment); } 312187 STD { int lfs_segwait(fsid_t *fsidp, struct timeval *tv); } 313#else 314184 UNIMPL 315185 UNIMPL 316186 UNIMPL 317187 UNIMPL 318#endif 319188 OBSOL stat35 320189 OBSOL fstat35 321190 OBSOL lstat35 322191 STD { long sys_pathconf(const char *path, int name); } 323192 STD { long sys_fpathconf(int fd, int name); } 324193 STD { int sys_swapctl(int cmd, const void *arg, int misc); } 325194 STD { int sys_getrlimit(int which, \ 326 struct rlimit *rlp); } 327195 STD { int sys_setrlimit(int which, \ 328 const struct rlimit *rlp); } 329196 COMPAT_O48 { int sys_getdirentries(int fd, char *buf, \ 330 int count, long *basep); } 331197 STD { void *sys_mmap(void *addr, size_t len, int prot, \ 332 int flags, int fd, long pad, off_t pos); } 333198 INDIR { quad_t sys___syscall(quad_t num, ...); } 334199 STD { off_t sys_lseek(int fd, int pad, off_t offset, \ 335 int whence); } 336200 STD { int sys_truncate(const char *path, int pad, \ 337 off_t length); } 338201 STD { int sys_ftruncate(int fd, int pad, off_t length); } 339202 STD { int sys___sysctl(int *name, u_int namelen, \ 340 void *old, size_t *oldlenp, void *new, \ 341 size_t newlen); } 342203 STD { int sys_mlock(const void *addr, size_t len); } 343204 STD { int sys_munlock(const void *addr, size_t len); } 344205 UNIMPL sys_undelete 345206 STD { int sys_futimes(int fd, \ 346 const struct timeval *tptr); } 347207 STD { pid_t sys_getpgid(pid_t pid); } 348208 STD { int sys_nnpfspioctl(int operation, char *a_pathP, \ 349 int a_opcode, struct ViceIoctl *a_paramsP, \ 350 int a_followSymlinks); } 351209 UNIMPL 352; 353; Syscalls 210-219 are reserved for dynamically loaded syscalls 354; 355#ifdef LKM 356210 NODEF { int sys_lkmnosys(void); } 357211 NODEF { int sys_lkmnosys(void); } 358212 NODEF { int sys_lkmnosys(void); } 359213 NODEF { int sys_lkmnosys(void); } 360214 NODEF { int sys_lkmnosys(void); } 361215 NODEF { int sys_lkmnosys(void); } 362216 NODEF { int sys_lkmnosys(void); } 363217 NODEF { int sys_lkmnosys(void); } 364218 NODEF { int sys_lkmnosys(void); } 365219 NODEF { int sys_lkmnosys(void); } 366#else /* !LKM */ 367210 UNIMPL 368211 UNIMPL 369212 UNIMPL 370213 UNIMPL 371214 UNIMPL 372215 UNIMPL 373216 UNIMPL 374217 UNIMPL 375218 UNIMPL 376219 UNIMPL 377#endif /* !LKM */ 378; System calls 220-240 are reserved for use by OpenBSD 379#ifdef SYSVSEM 380220 UNIMPL 381221 STD { int sys_semget(key_t key, int nsems, int semflg); } 382#else 383220 UNIMPL semctl 384221 UNIMPL semget 385#endif 386222 OBSOL semop35 387223 OBSOL semconfig35 388#ifdef SYSVMSG 389224 UNIMPL 390225 STD { int sys_msgget(key_t key, int msgflg); } 391226 STD { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ 392 int msgflg); } 393227 STD { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ 394 long msgtyp, int msgflg); } 395#else 396224 UNIMPL msgctl 397225 UNIMPL msgget 398226 UNIMPL msgsnd 399227 UNIMPL msgrcv 400#endif 401#ifdef SYSVSHM 402228 STD { void *sys_shmat(int shmid, const void *shmaddr, \ 403 int shmflg); } 404229 UNIMPL 405230 STD { int sys_shmdt(const void *shmaddr); } 406#else 407228 UNIMPL shmat 408229 UNIMPL shmctl 409230 UNIMPL shmdt 410#endif 411231 OBSOL shmget35 412232 STD NOLOCK { int sys_clock_gettime(clockid_t clock_id, \ 413 struct timespec *tp); } 414233 STD { int sys_clock_settime(clockid_t clock_id, \ 415 const struct timespec *tp); } 416234 STD NOLOCK { int sys_clock_getres(clockid_t clock_id, \ 417 struct timespec *tp); } 418235 UNIMPL timer_create 419236 UNIMPL timer_delete 420237 UNIMPL timer_settime 421238 UNIMPL timer_gettime 422239 UNIMPL timer_getoverrun 423; 424; System calls 240-249 are reserved for other IEEE Std1003.1b syscalls 425; 426240 STD NOLOCK { int sys_nanosleep(const struct timespec *rqtp, \ 427 struct timespec *rmtp); } 428241 UNIMPL 429242 UNIMPL 430243 UNIMPL 431244 UNIMPL 432245 UNIMPL 433246 UNIMPL 434247 UNIMPL 435248 UNIMPL 436249 UNIMPL 437250 STD { int sys_minherit(void *addr, size_t len, \ 438 int inherit); } 439251 STD { int sys_rfork(int flags); } 440252 STD { int sys_poll(struct pollfd *fds, \ 441 u_int nfds, int timeout); } 442253 STD NOLOCK { int sys_issetugid(void); } 443254 STD { int sys_lchown(const char *path, uid_t uid, gid_t gid); } 444255 STD { pid_t sys_getsid(pid_t pid); } 445256 STD { int sys_msync(void *addr, size_t len, int flags); } 446257 OBSOL semctl35 447258 OBSOL shmctl35 448259 OBSOL msgctl35 449260 UNIMPL 450261 UNIMPL 451262 UNIMPL 452263 STD { int sys_pipe(int *fdp); } 453264 STD { int sys_fhopen(const fhandle_t *fhp, int flags); } 454265 UNIMPL 455266 UNIMPL 456267 STD { ssize_t sys_preadv(int fd, \ 457 const struct iovec *iovp, int iovcnt, \ 458 int pad, off_t offset); } 459268 STD { ssize_t sys_pwritev(int fd, \ 460 const struct iovec *iovp, int iovcnt, \ 461 int pad, off_t offset); } 462269 STD { int sys_kqueue(void); } 463270 STD { int sys_kevent(int fd, \ 464 const struct kevent *changelist, int nchanges, \ 465 struct kevent *eventlist, int nevents, \ 466 const struct timespec *timeout); } 467271 STD { int sys_mlockall(int flags); } 468272 STD { int sys_munlockall(void); } 469273 UNIMPL sys_getpeereid 470274 UNIMPL sys_extattrctl 471275 UNIMPL sys_extattr_set_file 472276 UNIMPL sys_extattr_get_file 473277 UNIMPL sys_extattr_delete_file 474278 UNIMPL sys_extattr_set_fd 475279 UNIMPL sys_extattr_get_fd 476280 UNIMPL sys_extattr_delete_fd 477281 STD { int sys_getresuid(uid_t *ruid, uid_t *euid, \ 478 uid_t *suid); } 479282 STD { int sys_setresuid(uid_t ruid, uid_t euid, \ 480 uid_t suid); } 481283 STD { int sys_getresgid(gid_t *rgid, gid_t *egid, \ 482 gid_t *sgid); } 483284 STD { int sys_setresgid(gid_t rgid, gid_t egid, \ 484 gid_t sgid); } 485285 OBSOL sys_omquery 486286 STD { void *sys_mquery(void *addr, size_t len, int prot, \ 487 int flags, int fd, long pad, off_t pos); } 488287 STD { int sys_closefrom(int fd); } 489288 STD { int sys_sigaltstack(const struct sigaltstack *nss, \ 490 struct sigaltstack *oss); } 491#ifdef SYSVSHM 492289 STD { int sys_shmget(key_t key, size_t size, int shmflg); } 493#else 494289 UNIMPL shmget 495#endif 496#ifdef SYSVSEM 497290 STD { int sys_semop(int semid, struct sembuf *sops, \ 498 size_t nsops); } 499#else 500290 UNIMPL semop 501#endif 502291 STD { int sys_stat(const char *path, struct stat *ub); } 503292 STD { int sys_fstat(int fd, struct stat *sb); } 504293 STD { int sys_lstat(const char *path, struct stat *ub); } 505294 STD { int sys_fhstat(const fhandle_t *fhp, \ 506 struct stat *sb); } 507#ifdef SYSVSEM 508295 STD { int sys___semctl(int semid, int semnum, int cmd, \ 509 union semun *arg); } 510#else 511295 UNIMPL 512#endif 513#ifdef SYSVSHM 514296 STD { int sys_shmctl(int shmid, int cmd, \ 515 struct shmid_ds *buf); } 516#else 517296 UNIMPL 518#endif 519#ifdef SYSVMSG 520297 STD { int sys_msgctl(int msqid, int cmd, \ 521 struct msqid_ds *buf); } 522#else 523297 UNIMPL 524#endif 525298 STD NOLOCK { int sys_sched_yield(void); } 526299 STD NOLOCK { pid_t sys_getthrid(void); } 527300 STD { int sys_thrsleep(void *ident, clockid_t clock_id, \ 528 const struct timespec *tp, void *lock); } 529301 STD { int sys_thrwakeup(void *ident, int n); } 530302 STD { void sys_threxit(pid_t *notdead); } 531303 STD { int sys_thrsigdivert(sigset_t sigmask, \ 532 siginfo_t *info, const struct timespec *timeout); } 533304 STD { int sys___getcwd(char *buf, size_t len); } 534305 STD { int sys_adjfreq(const int64_t *freq, \ 535 int64_t *oldfreq); } 536306 STD { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ 537 int flags); } 538307 STD { int sys_statfs(const char *path, \ 539 struct statfs *buf); } 540308 STD { int sys_fstatfs(int fd, struct statfs *buf); } 541309 STD { int sys_fhstatfs(const fhandle_t *fhp, \ 542 struct statfs *buf); } 543310 STD { int sys_setrtable(int rtableid); } 544311 STD { int sys_getrtable(void); } 545312 STD { int sys_getdirentries(int fd, char *buf, \ 546 int count, off_t *basep); } 547313 STD { int sys_faccessat(int fd, const char *path, \ 548 int amode, int flag); } 549314 STD { int sys_fchmodat(int fd, const char *path, \ 550 mode_t mode, int flag); } 551315 STD { int sys_fchownat(int fd, const char *path, \ 552 uid_t uid, gid_t gid, int flag); } 553316 STD { int sys_fstatat(int fd, const char *path, \ 554 struct stat *buf, int flag); } 555317 STD { int sys_linkat(int fd1, const char *path1, int fd2, \ 556 const char *path2, int flag); } 557318 STD { int sys_mkdirat(int fd, const char *path, \ 558 mode_t mode); } 559319 STD { int sys_mkfifoat(int fd, const char *path, \ 560 mode_t mode); } 561320 STD { int sys_mknodat(int fd, const char *path, \ 562 mode_t mode, dev_t dev); } 563321 STD { int sys_openat(int fd, const char *path, int flags, \ 564 ... mode_t mode); } 565322 STD { ssize_t sys_readlinkat(int fd, const char *path, \ 566 char *buf, size_t count); } 567323 STD { int sys_renameat(int fromfd, const char *from, \ 568 int tofd, const char *to); } 569324 STD { int sys_symlinkat(const char *path, int fd, \ 570 const char *link); } 571325 STD { int sys_unlinkat(int fd, const char *path, \ 572 int flag); } 573326 STD { int sys_utimensat(int fd, const char *path, \ 574 const struct timespec *times, int flag); } 575327 STD { int sys_futimens(int fd, \ 576 const struct timespec *times); } 577