summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sys/stat.h3
-rw-r--r--src/stat/futimens.c6
-rw-r--r--src/stat/utimensat.c7
3 files changed, 16 insertions, 0 deletions
diff --git a/include/sys/stat.h b/include/sys/stat.h
index 25c199f9..5363a9a3 100644
--- a/include/sys/stat.h
+++ b/include/sys/stat.h
@@ -86,6 +86,9 @@ int mkdirat(int, const char *, mode_t);
int mknodat(int, const char *, mode_t, dev_t);
int mkfifoat(int, const char *, mode_t);
+int futimens(int, const struct timespec [2]);
+int utimensat(int, const char *, const struct timespec [2], int);
+
#ifdef _BSD_SOURCE
int lchmod(const char *, mode_t);
#endif
diff --git a/src/stat/futimens.c b/src/stat/futimens.c
new file mode 100644
index 00000000..360225b8
--- /dev/null
+++ b/src/stat/futimens.c
@@ -0,0 +1,6 @@
+#include <sys/stat.h>
+
+int futimens(int fd, const struct timespec times[2])
+{
+ return utimensat(fd, 0, times, 0);
+}
diff --git a/src/stat/utimensat.c b/src/stat/utimensat.c
new file mode 100644
index 00000000..b9b02adf
--- /dev/null
+++ b/src/stat/utimensat.c
@@ -0,0 +1,7 @@
+#include <sys/stat.h>
+#include "syscall.h"
+
+int utimensat(int fd, const char *path, const struct timespec times[2], int flags)
+{
+ return syscall4(__NR_utimensat, fd, (long)path, (long)times, flags);
+}