about summary refs log tree commit diff
path: root/src/linux
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/linux
parentb72db3d1ed561d31d059acc7e9a5aacb8c5ee9ac (diff)
downloadmusl-00e6bbcc05403aec1c96674c1060d54f5f237e87.tar.gz
musl-00e6bbcc05403aec1c96674c1060d54f5f237e87.tar.xz
musl-00e6bbcc05403aec1c96674c1060d54f5f237e87.zip
add linux sync_file_range syscall
Diffstat (limited to 'src/linux')
-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 00000000..739e602a
--- /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
+}