]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Updated to fedora-glibc-20060427T2122
authorJakub Jelinek <jakub@redhat.com>
Thu, 27 Apr 2006 21:29:55 +0000 (21:29 +0000)
committerJakub Jelinek <jakub@redhat.com>
Thu, 27 Apr 2006 21:29:55 +0000 (21:29 +0000)
23 files changed:
ChangeLog
Makeconfig
fedora/branch.mk
iconvdata/ibm932.c
iconvdata/ibm943.c
localedata/ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/timer_routines.c
nptl/sysdeps/x86_64/tls.h
nscd/connections.c
nscd/nscd.conf
stdio-common/renameat.c
sysdeps/unix/sysv/linux/Versions
sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
sysdeps/unix/sysv/linux/bits/uio.h
sysdeps/unix/sysv/linux/i386/bits/fcntl.h
sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
sysdeps/unix/sysv/linux/s390/bits/fcntl.h
sysdeps/unix/sysv/linux/sh/bits/fcntl.h
sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
sysdeps/unix/sysv/linux/syscalls.list
sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h

index b1361a13820196d091546ec26f11c3a5583fbb74..18a7ede5fcb4d89e692fc1311ffc93f7ca62ef62 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,48 @@
+2006-04-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * nscd/connections.c (restart): If we want to switch back to the
+       old ID use setresuid and setresgid.
+       (finish_drop_privileges): Likewise.
+
+2006-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * nscd/nscd.conf: Fix a typo.
+
+2006-04-27  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #2611]
+       * stdio-common/renameat.c (renameat): Fix typo.
+
 2006-04-27  Jakub Jelinek  <jakub@redhat.com>
 
        * nscd/connections.c (sighup_handler): Only run prune_cache on
        enabled databases.
 
+2006-04-26  Roland McGrath  <roland@redhat.com>
+
+       * Makeconfig (%.v.i rule): Don't use -DASSEMBLER.
+       The predefined __ASSEMBLER__ is sufficient.
+
 2006-04-26  Ulrich Drepper  <drepper@redhat.com>
 
+       [BZ #1386]
+       * iconvdata/ibm932.c: Change mapping to allow round-trips.
+       * iconvdata/ibm943.c: Likewise.
+       Patch by Masahide Washizawa <WASHI@jp.ibm.com>.
+
+       * sysdeps/unix/sysv/linux/syscalls.list: Add vmsplice.
+       * sysdeps/unix/sysv/linux/Versions: Export vmsplice@@GLIBC_2.5.
+       * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Declare vmsplice.
+       * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
+       * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
+       * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise.
+       * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
+
+       * sysdeps/unix/sysv/linux/bits/uio.h: Fix a typo in a comment.
+
        * sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix typo which caused
        bugs not to be reported.
 
index 1f4b62822a767ad64104a558a932baf03be0eebc..87f8ba7fbe1401c3966af409617f6fef9db2a550 100644 (file)
@@ -783,8 +783,7 @@ ifeq (yes, $(build-shared))
 # (but no commands).
 %.v.i: $(common-objpfx)config.h
        sed '/^[        ]*#/d;s/^[      ]*%/#/' $(filter-out FORCE %.h,$^) \
-       | $(CC) -E -undef $(CPPFLAGS) \
-                  -DASSEMBLER -x assembler-with-cpp - \
+       | $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - \
                   > $@T
        mv -f $@T $@
 %.v: %.v.i
index 3c74097cd1f10a67b4cadc4984d88d32ef940063..60cebf722c95bd70db8677c2e806498187d53540 100644 (file)
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-fc4
-fedora-sync-date := 2006-04-26 20:00 UTC
-fedora-sync-tag := fedora-glibc-20060426T2000
+fedora-sync-date := 2006-04-27 21:22 UTC
+fedora-sync-tag := fedora-glibc-20060427T2122
index 8f05581c13ec54690ff13a2abe8d917d88affdc9..4fb1582e798d2277c09c92b37e97983e85ee55bf 100644 (file)
       }                                                                              \
     else                                                                     \
       {                                                                              \
-       if (res == 0x1c)                                                      \
-         res = 0x1a;                                                         \
-       else if (res == 0x7f)                                                 \
-         res = 0x1c;                                                         \
-       else if (res == 0xa5)                                                 \
+       if (res == 0xa5)                                                      \
          res = 0x5c;                                                         \
        else if (res == 0x203e)                                               \
          res = 0x7e;                                                         \
-       else if (res == 0x1a)                                                 \
-         res = 0x7f;                                                         \
        put32 (outptr, res);                                                  \
        outptr += 4;                                                          \
        inptr++;                                                              \
     uint32_t res = __ibm932sb_to_ucs4[c];                                    \
     if (res == 0 && c != 0)                                                  \
       return WEOF;                                                           \
-    if (res == 0x1c)                                                         \
-      res = 0x1a;                                                            \
-    else if (res == 0x7f)                                                    \
-      res = 0x1c;                                                            \
-    else if (res == 0xa5)                                                    \
+    if (res == 0xa5)                                                         \
       res = 0x5c;                                                            \
     else if (res == 0x203e)                                                  \
       res = 0x7e;                                                            \
-    else if (res == 0x1a)                                                    \
-      res = 0x7f;                                                            \
     return res;                                                                      \
   }
 #include <iconv/loop.c>
index daeac1d8b2cfa7f993887dfda0db9e03d516f82f..119bb1f4b9ce7d0be1e7c169cc82d66858e8e107 100644 (file)
       }                                                                              \
     else                                                                     \
       {                                                                              \
-       if (res == 0x1c)                                                      \
-         res = 0x1a;                                                         \
-       else if (res == 0x7f)                                                 \
-         res = 0x1c;                                                         \
-       else if (res == 0xa5)                                                 \
+       if (res == 0xa5)                                                      \
          res = 0x5c;                                                         \
        else if (res == 0x203e)                                               \
          res = 0x7e;                                                         \
-       else if (res == 0x1a)                                                 \
-         res = 0x7f;                                                         \
        put32 (outptr, res);                                                  \
        outptr += 4;                                                          \
        inptr++;                                                              \
     uint32_t res = __ibm943sb_to_ucs4[c];                                    \
     if (res == 0 && c != 0)                                                  \
       return WEOF;                                                           \
-    if (res == 0x1c)                                                         \
-      res = 0x1a;                                                            \
-    else if (res == 0x7f)                                                    \
-      res = 0x1c;                                                            \
-    else if (res == 0xa5)                                                    \
+    if (res == 0xa5)                                                         \
       res = 0x5c;                                                            \
     else if (res == 0x203e)                                                  \
       res = 0x7e;                                                            \
-    else if (res == 0x1a)                                                    \
-      res = 0x7f;                                                            \
     return res;                                                                      \
   }
 #include <iconv/loop.c>
index addfec9c9d10ea0de80b8fc174cc402c1a6cd36f..423a3bac62e2ff9702595e0ae6a29fbd5e9e6316 100644 (file)
@@ -1,11 +1,11 @@
 2006-04-26  Ulrich Drepper  <drepper@redhat.com>
 
-       * bg_BG: Update after iso-4217.def update.
-       * bs_BA: Likewise.
-       * es_MX: Likewise.
-       * ru_RU: Likewise.
-       * tg_TJ: Likewise.
-       * tt_RU: Likewise.
+       * locales/bg_BG: Update after iso-4217.def update.
+       * locales/bs_BA: Likewise.
+       * locales/es_MX: Likewise.
+       * locales/ru_RU: Likewise.
+       * locales/tg_TJ: Likewise.
+       * locales/tt_RU: Likewise.
 
 2006-04-25  Ulrich Drepper  <drepper@redhat.com>
 
@@ -24,7 +24,7 @@
        * locales/ca_AD: New file.
        * locales/ca_FR: New file.
        * locales/ca_IT: New file.
-                               
+
 2006-04-23  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ #2134]
index 2418fa810622e89ae276a649b1b906d8646eefc4..41a1d7f594c02fb70c0b680cafa331536e468e83 100644 (file)
@@ -1,3 +1,13 @@
+2006-04-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
+       Allocate new object which is passed to timer_sigev_thread so that
+       the timer can be deleted before the new thread is scheduled.
+
+2006-04-26  Roland McGrath  <roland@redhat.com>
+
+       * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
+
 2006-04-08  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
index c180b27c96a465fd9afe5fdf62f83dd8d24af40d..a5eb44225115ddaf2f6be43152dfa54e44f3a27f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
 
 #include "kernel-posix-timers.h"
 
 
+struct thread_start_data
+{
+  void (*thrfunc) (sigval_t);
+  sigval_t sival;
+};
+
+
 #ifdef __NR_timer_create
 /* Helper thread to call the user-provided function.  */
 static void *
@@ -40,10 +47,16 @@ timer_sigev_thread (void *arg)
   INTERNAL_SYSCALL_DECL (err);
   INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
 
-  struct timer *tk = (struct timer *) arg;
+  struct thread_start_data *td = (struct thread_start_data *) arg;
+
+  void (*thrfunc) (sigval_t) = td->thrfunc;
+  sigval_t sival = td->sival;
+
+  /* The TD object was allocated in timer_helper_thread.  */
+  free (td);
 
   /* Call the user-provided function.  */
-  tk->thrfunc (tk->sival);
+  thrfunc (sival);
 
   return NULL;
 }
@@ -82,10 +95,19 @@ timer_helper_thread (void *arg)
          if (si.si_code == SI_TIMER)
            {
              struct timer *tk = (struct timer *) si.si_ptr;
-
-             /* That the signal we are waiting for.  */
-             pthread_t th;
-             (void) pthread_create (&th, &tk->attr, timer_sigev_thread, tk);
+             struct thread_start_data *td = malloc (sizeof (*td));
+
+             /* There is not much we can do if the allocation fails.  */
+             if (td != NULL)
+               {
+                 /* That is the signal we are waiting for.  */
+                 td->thrfunc = tk->thrfunc;
+                 td->sival = tk->sival;
+
+                 pthread_t th;
+                 (void) pthread_create (&th, &tk->attr, timer_sigev_thread,
+                                        td);
+               }
            }
          else if (si.si_code == SI_TKILL)
            /* The thread is canceled.  */
index 13cf6fb3f5019d757fcc2c70ca5a9dd4fd00b4a1..65ff0639b61cc660ee288bd2551db85262e712a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Definition for thread-local data handling.  nptl/x86_64 version.
-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006 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
@@ -20,8 +20,8 @@
 #ifndef _TLS_H
 #define _TLS_H 1
 
-#include <asm/prctl.h> /* For ARCH_SET_FS.  */
 #ifndef __ASSEMBLER__
+# include <asm/prctl.h>        /* For ARCH_SET_FS.  */
 # include <stdbool.h>
 # include <stddef.h>
 # include <stdint.h>
index f8e66c20a6eb9769092aca2283f555bbc84d9aee..167b9913f49eb1f4e6a1be6cefafbb20665e6181 100644 (file)
@@ -1176,7 +1176,7 @@ cannot open /proc/self/cmdline: %s; disabling paranoia mode"),
   /* Second, change back to the old user if we changed it.  */
   if (server_user != NULL)
     {
-      if (setuid (old_uid) != 0)
+      if (setresuid (old_uid, old_uid, old_uid) != 0)
        {
          dbg_log (_("\
 cannot change to old UID: %s; disabling paranoia mode"),
@@ -1186,7 +1186,7 @@ cannot change to old UID: %s; disabling paranoia mode"),
          return;
        }
 
-      if (setgid (old_gid) != 0)
+      if (setresgid (old_gid, old_gid, old_gid) != 0)
        {
          dbg_log (_("\
 cannot change to old GID: %s; disabling paranoia mode"),
@@ -1873,14 +1873,23 @@ finish_drop_privileges (void)
       error (EXIT_FAILURE, errno, _("setgroups failed"));
     }
 
-  if (setgid (server_gid) == -1)
+  int res;
+  if (paranoia)
+    res = setresgid (server_gid, server_gid, old_gid);
+  else
+    res = setgid (server_gid);
+  if (res == -1)
     {
       dbg_log (_("Failed to run nscd as user '%s'"), server_user);
       perror ("setgid");
       exit (4);
     }
 
-  if (setuid (server_uid) == -1)
+  if (paranoia)
+    res = setresuid (server_uid, server_uid, old_uid);
+  else
+    res = setuid (server_uid);
+  if (res == -1)
     {
       dbg_log (_("Failed to run nscd as user '%s'"), server_user);
       perror ("setuid");
index 4cdcb7dc9e6b9208b0b4cfc4fb90c69fca446100..954eafd554ff2f0591dca43463a14d9972182e2d 100644 (file)
@@ -24,7 +24,7 @@
 #      persistent              <service> <yes|no>
 #      shared                  <service> <yes|no>
 #      max-db-size             <service> <number bytes>
-*      auto-propagate          <service> <yes|no>
+#      auto-propagate          <service> <yes|no>
 #
 # Currently supported cache names (services): passwd, group, hosts
 #
index e09c5933ed9cb3dc30b9167bef55fa00fe7f2928..1261da88a46888c9ae3264ae328ff27a91f388b1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2006 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
@@ -29,7 +29,7 @@ renameat (oldfd, old, newfd, new)
      int newfd;
      const char *new;
 {
-  if ((oldfd < 0 & oldfd != AT_FDCWD) || (newfd < 0 && newfd != AT_FDCWD))
+  if ((oldfd < 0 && oldfd != AT_FDCWD) || (newfd < 0 && newfd != AT_FDCWD))
     {
       __set_errno (EBADF);
       return -1;
index ad7a8701fddea0ac70ccf2deb4544a28e31b6c97..7c015b1d620183faa5df03bd1b5daeabf64743a2 100644 (file)
@@ -124,7 +124,7 @@ libc {
     _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
   }
   GLIBC_2.5 {
-    splice; sync_file_range; tee;
+    splice; sync_file_range; tee; vmsplice;
   }
   GLIBC_PRIVATE {
     # functions used in other libraries
index 6898fe874328d15e4cb100d61f980314cee3fe38..4a20f1d673edb24e7a2a538f7d8c58f5d163af76 100644 (file)
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-
 #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
@@ -200,6 +202,10 @@ 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;
index 84b4805fe8814c8df5b3950e000a16c8920c48b5..6a283ed771035be7b2808ae7db848569acab0527 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2006 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
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#ifndef _SYS_UIO_H
+#if !defined _SYS_UIO_H && !defined _FCNTL_H
 # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
 #endif
 
+#ifndef _BITS_UIO_H
+#define _BITS_UIO_H    1
 
 #include <sys/types.h>
 
@@ -31,7 +33,7 @@
 /* Size of object which can be written atomically.
 
    This macro has different values in different kernel versions.  The
-   latest versions of ther kernel use 1024 and this is good choice.  Since
+   latest versions of the kernel use 1024 and this is good choice.  Since
    the C library implementation of readv/writev is able to emulate the
    functionality even if the currently running kernel does not support
    this large value the readv/writev call will not fail because of this.  */
@@ -44,3 +46,5 @@ struct iovec
     void *iov_base;    /* Pointer to data.  */
     size_t iov_len;    /* Length of data.  */
   };
+
+#endif
index a375888106a62a95a30fa820e32891342de10a2f..82f06332be780b86cd79bc4d482289b10608d267 100644 (file)
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-
 #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 */
@@ -207,6 +210,10 @@ 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;
index 63a771ddb9ddcfb2858d97a7671d63b1a04be09d..1d684ad3673ed0cde26ff525e734b5c022ea749c 100644 (file)
@@ -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 */
@@ -201,6 +204,10 @@ 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;
index 2219271a1b3412bfc5f10f06e34abc1c1a7d2bed..2843c6e9ccb1a87e314864d1e7f98954bd60fa93 100644 (file)
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-
 #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 */
@@ -207,6 +210,10 @@ 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;
index ad3ef420a1c2428f9684737b18ab9bd4b3b609fa..7a9aa5738ef11fae8ed977c0e714f86afad86e6d 100644 (file)
 
 #include <sys/types.h>
 #include <bits/wordsize.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 */
@@ -226,6 +230,10 @@ 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;
index a375888106a62a95a30fa820e32891342de10a2f..82f06332be780b86cd79bc4d482289b10608d267 100644 (file)
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-
 #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 */
@@ -207,6 +210,10 @@ 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;
index b3788f0daf866c42a897474fdf2f89ab7c024735..e8cc3987e30e5950436aee5a45ff1a165db19824 100644 (file)
@@ -24,6 +24,9 @@
 
 #include <sys/types.h>
 #include <bits/wordsize.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 */
@@ -226,6 +229,10 @@ 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;
index 6bfccd26aa4cc834f39a7821a67d26594ae29cc1..969d054c62520ddd1a1eb4f73951e15c0c60935d 100644 (file)
@@ -77,6 +77,7 @@ swapoff               -       swapoff         i:s     __swapoff       swapoff
 tee            EXTRA   tee             i:iiii  tee
 unshare                EXTRA   unshare         i:i     unshare
 uselib         EXTRA   uselib          i:s     uselib
+vmsplice       EXTRA   vmsplice        i:iPii  vmsplice
 wait4          -       wait4           i:iWiP  __wait4         wait4
 
 chown          -       chown           i:sii   __libc_chown    __chown chown
index 2351737f7c5ae84bb3151c6029029cb4791f3cd6..ad4c1443e40a74b882d5fa45f85f8eb2ceac144c 100644 (file)
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-
 #include <sys/types.h>
 #include <bits/wordsize.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 */
@@ -221,6 +224,10 @@ 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;