summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2008-03-31 12:14:04 +0000
committerkib <kib@FreeBSD.org>2008-03-31 12:14:04 +0000
commit2ad0eb2d91aa816f59ca8be579d30e4b4a5dc788 (patch)
tree01ab711c3d38413d1f4d7a5f2a4b8eb6ba3b8d7d
parent5c017b360f4996ed64753b8bfc0fa13a974bf4a8 (diff)
downloadFreeBSD-src-2ad0eb2d91aa816f59ca8be579d30e4b4a5dc788.zip
FreeBSD-src-2ad0eb2d91aa816f59ca8be579d30e4b4a5dc788.tar.gz
Add the libc glue and headers definitions for the *at() syscalls.
Based on the submission by rdivacky, sponsored by Google Summer of Code 2007 Reviewed by: rwatson, rdivacky Tested by: pho
-rw-r--r--include/stdio.h3
-rw-r--r--include/unistd.h11
-rw-r--r--lib/libc/sys/Symbol.map18
-rw-r--r--sys/sys/fcntl.h1
-rw-r--r--sys/sys/stat.h6
-rw-r--r--sys/sys/time.h1
6 files changed, 40 insertions, 0 deletions
diff --git a/include/stdio.h b/include/stdio.h
index 2a682b8..6adc9d7 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 b768685..a277e42 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 5697403..f7f57cb 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 c455436..f6f5b8d 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 10a3739..4b70d19 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 3ece2c1..b12b6d8 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 */
OpenPOWER on IntegriCloud