aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-09-08 00:58:25 -0400
committerRich Felker <dalias@aerifal.cx>2012-09-08 00:58:25 -0400
commit00e6bbcc05403aec1c96674c1060d54f5f237e87 (patch)
treef223ab3272ac420fed96df84eda92e252bb2bc9d /src
parentb72db3d1ed561d31d059acc7e9a5aacb8c5ee9ac (diff)
downloadmusl-00e6bbcc05403aec1c96674c1060d54f5f237e87.zip
musl-00e6bbcc05403aec1c96674c1060d54f5f237e87.tar.gz
musl-00e6bbcc05403aec1c96674c1060d54f5f237e87.tar.bz2
add linux sync_file_range syscall
Diffstat (limited to 'src')
-rw-r--r--src/linux/sync_file_range.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/linux/sync_file_range.c b/src/linux/sync_file_range.c
new file mode 100644
index 0000000..739e602
--- /dev/null
+++ b/src/linux/sync_file_range.c
@@ -0,0 +1,16 @@
+#define _GNU_SOURCE
+#include <fcntl.h>
+#include "syscall.h"
+
+int sync_file_range(int fd, off_t pos, off_t len, unsigned flags)
+{
+#if defined(SYS_sync_file_range2)
+ return syscall(SYS_sync_file_range2, fd, flags,
+ __SYSCALL_LL_E(pos), __SYSCALL_LL_E(len));
+#elif defined(SYS_sync_file_range)
+ return syscall(SYS_sync_file_range, fd,
+ __SYSCALL_LL_O(pos), __SYSCALL_LL_E(len), flags);
+#else
+ return __syscall_ret(-ENOSYS);
+#endif
+}