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.15-971-gf66f0ce
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 May 2012 13:51:48 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.15-971-gf66f0ce
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 f66f0ce833523a47e12b4a3eacab6b20866ab033 (commit)
via 6ad13e088de15b34beaa8eb7d1ae6d27517ccecd (commit)
from bb07f69f3b742687eb2849587c8756c28e018fe5 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f66f0ce833523a47e12b4a3eacab6b20866ab033
commit f66f0ce833523a47e12b4a3eacab6b20866ab033
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat May 19 06:51:12 2012 -0700
Add 64-bit preadv.c and pwritev.c
diff --git a/ChangeLog b/ChangeLog
index 876fc15..8680123 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2012-05-19 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/unix/sysv/linux/wordsize-64/preadv.c: New file.
+ * sysdeps/unix/sysv/linux/wordsize-64/pwritev.c: Likewise.
+
* sysdeps/x86_64/x32/_itoa.h: Add comment.
2012-05-19 Joseph Myers <joseph@codesourcery.com>
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/preadv.c b/sysdeps/unix/sysv/linux/wordsize-64/preadv.c
new file mode 100644
index 0000000..e36ca86
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/preadv.c
@@ -0,0 +1,73 @@
+/* 64-bit preadv.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/param.h>
+/* Hide the preadv64 declaration. */
+#define preadv64 __redirect_preadv64
+#include <sys/uio.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <kernel-features.h>
+
+#ifndef __ASSUME_PREADV
+static ssize_t __atomic_preadv_replacement (int, const struct iovec *,
+ int, off_t) internal_function;
+#endif
+
+ssize_t
+preadv (int fd, const struct iovec *vector, int count, off_t offset)
+{
+#ifdef __NR_preadv
+ ssize_t result;
+
+ if (SINGLE_THREAD_P)
+ result = INLINE_SYSCALL (preadv, 4, fd, vector, count, offset);
+ else
+ {
+ int oldtype = LIBC_CANCEL_ASYNC ();
+
+ result = INLINE_SYSCALL (preadv, 4, fd, vector, count, offset);
+
+ LIBC_CANCEL_RESET (oldtype);
+ }
+# ifdef __ASSUME_PREADV
+ return result;
+# endif
+#endif
+
+#ifndef __ASSUME_PREADV
+# ifdef __NR_preadv
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+# endif
+
+ return __atomic_preadv_replacement (fd, vector, count, offset);
+#endif
+}
+#undef preadv64
+strong_alias (preadv, preadv64)
+
+#ifndef __ASSUME_PREADV
+# define PREADV static internal_function __atomic_preadv_replacement
+# define PREAD __pread
+# define OFF_T off_t
+# include <sysdeps/posix/preadv.c>
+#endif
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/pwritev.c b/sysdeps/unix/sysv/linux/wordsize-64/pwritev.c
new file mode 100644
index 0000000..05644dd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/wordsize-64/pwritev.c
@@ -0,0 +1,73 @@
+/* 64-bit pwritev.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/param.h>
+/* Hide the pwritev64 declaration. */
+#define pwritev64 __redirect_pwritev64
+#include <sys/uio.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <kernel-features.h>
+
+#ifndef __ASSUME_PWRITEV
+static ssize_t __atomic_pwritev_replacement (int, const struct iovec *,
+ int, off_t) internal_function;
+#endif
+
+ssize_t
+pwritev (int fd, const struct iovec *vector, int count, off_t offset)
+{
+#ifdef __NR_pwritev
+ ssize_t result;
+
+ if (SINGLE_THREAD_P)
+ result = INLINE_SYSCALL (pwritev, 4, fd, vector, count, offset);
+ else
+ {
+ int oldtype = LIBC_CANCEL_ASYNC ();
+
+ result = INLINE_SYSCALL (pwritev, 4, fd, vector, count, offset);
+
+ LIBC_CANCEL_RESET (oldtype);
+ }
+# ifdef __ASSUME_PWRITEV
+ return result;
+# endif
+#endif
+
+#ifndef __ASSUME_PWRITEV
+# ifdef __NR_pwritev
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+# endif
+
+ return __atomic_pwritev_replacement (fd, vector, count, offset);
+#endif
+}
+#undef pwritev64
+strong_alias (pwritev, pwritev64)
+
+#ifndef __ASSUME_PWRITEV
+# define PWRITE __pwrite
+# define PWRITEV static internal_function __atomic_pwritev_replacement
+# define OFF_T off_t
+# include <sysdeps/posix/pwritev.c>
+#endif
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6ad13e088de15b34beaa8eb7d1ae6d27517ccecd
commit 6ad13e088de15b34beaa8eb7d1ae6d27517ccecd
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Sat May 19 06:46:29 2012 -0700
Add a comment to sysdeps/x86_64/x32/_itoa.h
diff --git a/ChangeLog b/ChangeLog
index 5441f61..876fc15 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-05-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/x32/_itoa.h: Add comment.
+
2012-05-19 Joseph Myers <joseph@codesourcery.com>
* sysdeps/powerpc/soft-fp/Makefile: Remove file.
diff --git a/sysdeps/x86_64/x32/_itoa.h b/sysdeps/x86_64/x32/_itoa.h
index f9ec802..0f9ed47 100644
--- a/sysdeps/x86_64/x32/_itoa.h
+++ b/sysdeps/x86_64/x32/_itoa.h
@@ -1,3 +1,4 @@
+/* X32 uses 64-bit _itoa_word and _itoa is mapped to _itoa_word. */
#define _ITOA_NEEDED 0
#define _ITOA_WORD_TYPE unsigned long long int
#include_next <_itoa.h>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++
sysdeps/unix/sysv/linux/{ => wordsize-64}/preadv.c | 47 +++++--------------
.../unix/sysv/linux/{ => wordsize-64}/pwritev.c | 47 +++++--------------
sysdeps/x86_64/x32/_itoa.h | 1 +
4 files changed, 34 insertions(+), 68 deletions(-)
copy sysdeps/unix/sysv/linux/{ => wordsize-64}/preadv.c (60%)
copy sysdeps/unix/sysv/linux/{ => wordsize-64}/pwritev.c (59%)
hooks/post-receive
--
GNU C Library master sources