This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.25-713-g94070f8
- From: azanella at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 11 Jul 2017 14:08:42 -0000
- Subject: 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