summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Golaszewski <bartekgola@gmail.com>2015-10-14 17:14:01 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2015-10-14 18:11:59 +0200
commitea86f1d8885335f2bd38a388d2ab762bd1e29427 (patch)
tree8226d8ced668a4a54c15e6b8d0c88e3e67e50ce8
parent24e4dc6660057aa13c8d021f0dacf4f58bdf5245 (diff)
syncfs: add system call support
Add support for the syncfs() system call. Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
-rw-r--r--include/unistd.h2
-rw-r--r--libc/sysdeps/linux/common/syncfs.c13
2 files changed, 14 insertions, 1 deletions
diff --git a/include/unistd.h b/include/unistd.h
index 3793d2d3e..4701dabf8 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -1073,7 +1073,7 @@ extern char *getpass (const char *__prompt) __nonnull ((1));
extern int fsync (int __fd);
#endif /* Use BSD || X/Open || Unix98. */
-#if 0 /*def __USE_GNU */
+#if __USE_GNU
/* Make all changes done to all files on the file system associated
* with FD actually appear on disk. */
extern int syncfs (int __fd) __THROW;
diff --git a/libc/sysdeps/linux/common/syncfs.c b/libc/sysdeps/linux/common/syncfs.c
new file mode 100644
index 000000000..831f76568
--- /dev/null
+++ b/libc/sysdeps/linux/common/syncfs.c
@@ -0,0 +1,13 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2015 Bartosz Golaszewski <bartekgola@gmail.com>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+
+#if defined(__NR_syncfs) && __USE_GNU
+#include <unistd.h>
+_syscall1(int, syncfs, int, fd)
+#endif