Browse Source

add syscall wrappers for posix_fadvise, posix_fallocate

Rich Felker 14 years ago
parent
commit
1c76683cb4
4 changed files with 22 additions and 0 deletions
  1. 4 0
      arch/i386/bits/syscall.h
  2. 2 0
      arch/x86_64/bits/syscall.h
  3. 8 0
      src/fcntl/posix_fadvise.c
  4. 8 0
      src/fcntl/posix_fallocate.c

+ 4 - 0
arch/i386/bits/syscall.h

@@ -527,6 +527,8 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __
 #define __NR_pread __NR_pread64
 #define __NR_pwrite __NR_pwrite64
 
+#define __NR_fadvise __NR_fadvise64_64
+
 #undef __NR_getrlimit
 #define __NR_getrlimit __NR_ugetrlimit
 
@@ -936,6 +938,8 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __
 #define SYS_pread SYS_pread64
 #define SYS_pwrite SYS_pwrite64
 
+#define SYS_fadvise SYS_fadvise64_64
+
 #undef SYS_getrlimit
 #define SYS_getrlimit SYS_ugetrlimit
 

+ 2 - 0
arch/x86_64/bits/syscall.h

@@ -375,6 +375,7 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __
 #define __NR_pread __NR_pread64
 #define __NR_pwrite __NR_pwrite64
 #define __NR_getdents __NR_getdents64
+#define __NR_fadvise __NR_fadvise64
 
 
 
@@ -692,5 +693,6 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __
 #define SYS_pread SYS_pread64
 #define SYS_pwrite SYS_pwrite64
 #define SYS_getdents SYS_getdents64
+#define SYS_fadvise SYS_fadvise64
 
 

+ 8 - 0
src/fcntl/posix_fadvise.c

@@ -0,0 +1,8 @@
+#include <fcntl.h>
+#include "syscall.h"
+
+int posix_fadvise(int fd, off_t base, off_t len, int advice)
+{
+	return -__syscall(SYS_fadvise, fd, __SYSCALL_LL(base),
+		__SYSCALL_LL(len), advice);
+}

+ 8 - 0
src/fcntl/posix_fallocate.c

@@ -0,0 +1,8 @@
+#include <fcntl.h>
+#include "syscall.h"
+
+int posix_fallocate(int fd, off_t base, off_t len)
+{
+	return -__syscall(SYS_fallocate, fd, __SYSCALL_LL(base),
+		__SYSCALL_LL(len));
+}