This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Update] bits/fcntl.h


This one is for ARM and MIPS, although only MIPS has sync_file_range
and splice syscalls.  In 2.6.17-rc3, ARM lacks sync_file_range,
splice, vmsplice, tee and MIPS lacks vmsplice, tee syscalls.


2006-04-27  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.
	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Likewise.



Index: sysdeps/unix/sysv/linux/arm/bits/fcntl.h
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h,v
retrieving revision 1.9
diff -u -r1.9 fcntl.h
--- sysdeps/unix/sysv/linux/arm/bits/fcntl.h	28 Mar 2006 04:32:41 -0000	1.9
+++ sysdeps/unix/sysv/linux/arm/bits/fcntl.h	27 Apr 2006 21:21:23 -0000
@@ -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 @@
 # 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: sysdeps/unix/sysv/linux/mips/bits/fcntl.h
===================================================================
RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h,v
retrieving revision 1.22
diff -u -r1.22 fcntl.h
--- sysdeps/unix/sysv/linux/mips/bits/fcntl.h	28 Mar 2006 04:32:14 -0000	1.22
+++ sysdeps/unix/sysv/linux/mips/bits/fcntl.h	27 Apr 2006 21:21:23 -0000
@@ -24,6 +24,10 @@

 #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 @@
 # 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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]