summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-09-08 00:40:37 -0400
committerRich Felker <dalias@aerifal.cx>2012-09-08 00:40:37 -0400
commit90f770523f54b2e63a6ad46cba0149c9dc01ddd4 (patch)
tree1187fc337d15606cc03a66f59ed6085564252427
parentadb88e773b3897fa222b5d1bb8e46b2d6b424214 (diff)
downloadmusl-90f770523f54b2e63a6ad46cba0149c9dc01ddd4.tar.gz
add linux readahead syscall
-rw-r--r--include/fcntl.h1
-rw-r--r--src/linux/readahead.c8
2 files changed, 9 insertions, 0 deletions
diff --git a/include/fcntl.h b/include/fcntl.h
index 68baf7a2..b8d8702e 100644
--- a/include/fcntl.h
+++ b/include/fcntl.h
@@ -123,6 +123,7 @@ struct f_owner_ex {
#define SPLICE_F_MORE 4
#define SPLICE_F_GIFT 8
int fallocate(int, int, off_t, off_t);
+ssize_t readahead(int, off_t, size_t);
ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);
ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned);
#define loff_t off_t
diff --git a/src/linux/readahead.c b/src/linux/readahead.c
new file mode 100644
index 00000000..5c70bfd6
--- /dev/null
+++ b/src/linux/readahead.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <fcntl.h>
+#include "syscall.h"
+
+ssize_t readahead(int fd, off_t pos, size_t len)
+{
+ return syscall(SYS_readahead, fd, __SYSCALL_LL_O(pos), len);
+}