2006-05-05 Lior Balkohen <balkohen@gmail.com>
authorDaniel Jacobowitz <dan@codesourcery.com>
Fri, 5 May 2006 14:03:22 +0000 (14:03 +0000)
committerDaniel Jacobowitz <dan@codesourcery.com>
Fri, 5 May 2006 14:03:22 +0000 (14:03 +0000)
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove
LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT.
Define SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE
and SYNC_FILE_RANGE_WAIT_AFTER.
Declare sync_file_range, vmsplice, splice and tee.

2006-05-05  Lior Balkohen  <balkohen@gmail.com>

* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Remove
LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT.
Define SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE
and SYNC_FILE_RANGE_WAIT_AFTER.
Declare sync_file_range, vmsplice, splice and tee.

ChangeLog.arm
ChangeLog.mips
sysdeps/unix/sysv/linux/arm/bits/fcntl.h
sysdeps/unix/sysv/linux/mips/bits/fcntl.h

index 5907503..aaf4573 100644 (file)
@@ -1,3 +1,11 @@
+2006-05-05  Lior Balkohen  <balkohen@gmail.com>
+
+       * sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Remove
+       LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT.
+       Define SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE
+       and SYNC_FILE_RANGE_WAIT_AFTER.
+       Declare sync_file_range, vmsplice, splice and tee.
+
 2006-03-27  Lior Balkohen  <balkohen@gmail.com>
 
        * sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define
index 19f4b41..201252a 100644 (file)
@@ -1,3 +1,11 @@
+2006-05-05  Lior Balkohen  <balkohen@gmail.com>
+
+       * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove
+       LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT.
+       Define SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE
+       and SYNC_FILE_RANGE_WAIT_AFTER.
+       Declare sync_file_range, vmsplice, splice and tee.
+
 2006-03-27  Lior Balkohen  <balkohen@gmail.com>
 
        * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Define
index 5368515..54510a3 100644 (file)
@@ -23,6 +23,9 @@
 
 
 #include <sys/types.h>
+#ifdef __USE_GNU
+# include <bits/uio.h>
+#endif
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
@@ -180,16 +183,45 @@ struct flock64
 # define POSIX_FADV_NOREUSE    5 /* Data will be accessed once.  */
 #endif
 
-/* Linux-specific operations for posix_fadvise.  */
+
 #ifdef __USE_GNU
-# define LINUX_FADV_ASYNC_WRITE        32 /* Start writeout on range.  */
-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range.  */
+# define SYNC_FILE_RANGE_WAIT_BEFORE    1 /* Wait upon writeout of all pages
+                                             in the range before performing the
+                                             write.  */
+# define SYNC_FILE_RANGE_WRITE          2 /* Initiate writeout of all those
+                                             dirty pages in the range which are
+                                             not presently under writeback.  */
+# define SYNC_FILE_RANGE_WAIT_AFTER     4 /* Wait upon writeout of all pages in
+                                             the range after performing the
+                                             write.  */
 #endif
 
 __BEGIN_DECLS
 
+#ifdef __USE_GNU
+
 /* Provide kernel hint to read ahead.  */
 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
     __THROW;
 
+
+/* Selective file content synch'ing.  */
+extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
+                            unsigned int __flags);
+
+
+/* Splice address range into a pipe.  */
+extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
+                     unsigned int __flags);
+
+/* Splice two files together.  */
+extern int splice (int __fdin, int __fdout, size_t __len, unsigned int __flags)
+    __THROW;
+
+/* In-kernel implementation of tee for pipe buffers.  */
+extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
+    __THROW;
+
+#endif
+
 __END_DECLS
index 87affe3..e7aae60 100644 (file)
 
 #include <sgidefs.h>
 #include <sys/types.h>
+#ifdef __USE_GNU
+# include <bits/uio.h>
+#endif
+
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
@@ -193,16 +197,45 @@ struct flock64
 # define POSIX_FADV_NOREUSE    5 /* Data will be accessed once.  */
 #endif
 
-/* Linux-specific operations for posix_fadvise.  */
+
 #ifdef __USE_GNU
-# define LINUX_FADV_ASYNC_WRITE        32 /* Start writeout on range.  */
-# define LINUX_FADV_WRITE_WAIT 33 /* Wait upon writeout to range.  */
+# define SYNC_FILE_RANGE_WAIT_BEFORE    1 /* Wait upon writeout of all pages
+                                             in the range before performing the
+                                             write.  */
+# define SYNC_FILE_RANGE_WRITE          2 /* Initiate writeout of all those
+                                             dirty pages in the range which are
+                                             not presently under writeback.  */
+# define SYNC_FILE_RANGE_WAIT_AFTER     4 /* Wait upon writeout of all pages in
+                                             the range after performing the
+                                             write.  */
 #endif
 
 __BEGIN_DECLS
 
+#ifdef __USE_GNU
+
 /* Provide kernel hint to read ahead.  */
 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
     __THROW;
 
+
+/* Selective file content synch'ing.  */
+extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
+                            unsigned int __flags);
+
+
+/* Splice address range into a pipe.  */
+extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
+                     unsigned int __flags);
+
+/* Splice two files together.  */
+extern int splice (int __fdin, int __fdout, size_t __len, unsigned int __flags)
+    __THROW;
+
+/* In-kernel implementation of tee for pipe buffers.  */
+extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
+    __THROW;
+
+#endif
+
 __END_DECLS