This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [Update] bits/fcntl.h
- From: "Lior Balkohen" <balkohen at gmail dot com>
- To: libc-ports at sources dot redhat dot com
- Date: Thu, 27 Apr 2006 23:39:09 +0200
- Subject: Re: [Update] bits/fcntl.h
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=CiaeNGnSIULs84LdOC1QFGpPS2JQAfArAeQL4HEBSROPOWT0prOH5njgqOa9M9LZsoRms4hTxyWhUzLAqZyNTKHHsYcWzwJVO1ga8Rdjw+FIvodpjPJTD+dpb8zFsxXrGMWjtQ3MewJPHSqPDvRDrY43VoYvFBpiwNEu1SGgvF0=
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