diff --git a/include/stdio.h b/include/stdio.h index 2a682b81b517..6adc9d744ea3 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -449,5 +449,8 @@ extern int __isthreaded; #define putchar_unlocked(x) putc_unlocked(x, stdout) #endif +#if __BSD_VISIBLE +int renameat(int, const char *, int, const char *); +#endif __END_DECLS #endif /* !_STDIO_H_ */ diff --git a/include/unistd.h b/include/unistd.h index b7686858cf55..a277e42524fc 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -559,6 +559,17 @@ void *valloc(size_t); /* obsoleted by malloc() */ extern int optreset; /* getopt(3) external variable */ #endif #endif /* __BSD_VISIBLE */ + +#if __BSD_VISIBLE +int faccessat(int, const char *, int); +int fchmodat(int, const char *, mode_t, int); +int fchownat(int, const char *, uid_t, gid_t, int); +int fexecve(int, char *const [], char *const []); +int linkat(int, const char *, int, const char *, int); +ssize_t readlinkat(int, const char *, char *, size_t); +int symlinkat(const char *, int, const char *); +int unlinkat(int, const char *, int); +#endif /* __BSD_VISIBLE */ __END_DECLS #endif /* !_UNISTD_H_ */ diff --git a/lib/libc/sys/Symbol.map b/lib/libc/sys/Symbol.map index 56974033c5fb..f7f57cb7aa12 100644 --- a/lib/libc/sys/Symbol.map +++ b/lib/libc/sys/Symbol.map @@ -334,6 +334,24 @@ FBSD_1.0 { truncate; }; +FBSD_1.1 { + faccessat; + fchmodat; + fchownat; + fexecve; + fstatat; + futimesat; + linkat; + mkdirat; + mkfifoat; + mknodat; + openat; + readlinkat; + renameat; + symlinkat; + unlinkat; +}; + FBSDprivate_1.0 { ___acl_aclcheck_fd; __sys___acl_aclcheck_fd; diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index c4554361a73b..f6f5b8d97ec4 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -272,6 +272,7 @@ __BEGIN_DECLS int open(const char *, int, ...); int creat(const char *, mode_t); int fcntl(int, int, ...); +int openat(int, const char *, int, ...); #if __BSD_VISIBLE int flock(int, int); #endif diff --git a/sys/sys/stat.h b/sys/sys/stat.h index 10a3739cc440..4b70d19c8e5f 100644 --- a/sys/sys/stat.h +++ b/sys/sys/stat.h @@ -330,6 +330,12 @@ int mknod(const char *, mode_t, dev_t); #endif int stat(const char * __restrict, struct stat * __restrict); mode_t umask(mode_t); +#if __BSD_VISIBLE +int fstatat(int, const char *, struct stat *, int); +int mkdirat(int, const char *, mode_t); +int mkfifoat(int, const char *, mode_t); +int mknodat(int, const char *, mode_t, dev_t); +#endif __END_DECLS #endif /* !_KERNEL */ diff --git a/sys/sys/time.h b/sys/sys/time.h index 3ece2c1f7928..b12b6d89ad54 100644 --- a/sys/sys/time.h +++ b/sys/sys/time.h @@ -321,6 +321,7 @@ int lutimes(const char *, const struct timeval *); int setitimer(int, const struct itimerval *, struct itimerval *); int settimeofday(const struct timeval *, const struct timezone *); int utimes(const char *, const struct timeval *); +int futimesat(int, const char *, const struct timeval [2]); __END_DECLS #endif /* !_KERNEL */