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.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


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