This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc 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]

GNU C Library master sources branch master updated. glibc-2.25-713-g94070f8


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  94070f86c0c849c71ed2e7e2189bb4d1f7411a17 (commit)
      from  2a91300176a5991d9825eba085e502196a3f47cd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=94070f86c0c849c71ed2e7e2189bb4d1f7411a17

commit 94070f86c0c849c71ed2e7e2189bb4d1f7411a17
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Jul 10 15:53:32 2017 -0300

    posix: Add p{read,write}v2 RWF_NOWAIT flag (BZ#21738)
    
    Linux 4.12 (b745fafaf70c0a98a2e1e7ac8cb14542889ceb0e) adds a new
    p{read,write}v2 flag RWF_NOWAIT.  This patch adds it for linux
    uio-ext.h header.
    
    Checked on x86_64-linux-gnu (on a 4.10 kernel).
    
    	[BZ #21738]
    	* manual/llio.texi (RWF_NOWAIT): New item.
    	* misc/tst-preadvwritev2-common.c (do_test_with_invalid_flags):
    	Add RWF_NOWAIT check.
    	* sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_NOWAIT): New flag.

diff --git a/ChangeLog b/ChangeLog
index 71d027d..7ee4f2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2017-07-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	[BZ #21738]
+	* manual/llio.texi (RWF_NOWAIT): New item.
+	* misc/tst-preadvwritev2-common.c (do_test_with_invalid_flags):
+	Add RWF_NOWAIT check.
+	* sysdeps/unix/sysv/linux/bits/uio-ext.h (RWF_NOWAIT): New flag.
+
 2017-07-11  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
 	* sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c:
diff --git a/manual/llio.texi b/manual/llio.texi
index ba1f455..e72c53c 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -770,6 +770,10 @@ Per-IO synchronization as if the file was opened with @code{O_DSYNC} flag.
 
 @item RWF_SYNC
 Per-IO synchronization as if the file was opened with @code{O_SYNC} flag.
+
+@item RWF_NOWAIT
+Use nonblocking mode for this operation; that is, this call to @code{preadv2}
+will fail and set @code{errno} to @code{EAGAIN} if the operation would block.
 @end vtable
 
 When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the
diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c
index 4c53d56..8abedc1 100644
--- a/misc/tst-preadvwritev2-common.c
+++ b/misc/tst-preadvwritev2-common.c
@@ -16,21 +16,16 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <limits.h>
 #include <support/check.h>
 
 static void
 do_test_with_invalid_flags (void)
 {
-  int invalid_flag = 0x1;
-#ifdef RWF_HIPRI
-  invalid_flag <<= 1;
-#endif
-#ifdef RWF_DSYNC
-  invalid_flag <<= 1;
-#endif
-#ifdef RWF_SYNC
-  invalid_flag <<= 1;
-#endif
+#define RWF_SUPPORTED	(RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
+  /* Set the next bit from the mask of all supported flags.  */
+  int invalid_flag = __builtin_clz (RWF_SUPPORTED);
+  invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag);
 
   char buf[32];
   const struct iovec vec = { .iov_base = buf, .iov_len = sizeof (buf) };
diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h
index 4ddb644..751fc49 100644
--- a/sysdeps/unix/sysv/linux/bits/uio-ext.h
+++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h
@@ -46,6 +46,7 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
 #define RWF_HIPRI	0x00000001 /* High priority request.  */
 #define RWF_DSYNC	0x00000002 /* per-IO O_DSYNC.  */
 #define RWF_SYNC	0x00000004 /* per-IO O_SYNC.  */
+#define RWF_NOWAIT	0x00000008 /* per-IO nonblocking mode.  */
 
 __END_DECLS
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                              |    8 ++++++++
 manual/llio.texi                       |    4 ++++
 misc/tst-preadvwritev2-common.c        |   15 +++++----------
 sysdeps/unix/sysv/linux/bits/uio-ext.h |    1 +
 4 files changed, 18 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]