* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
authorUlrich Drepper <drepper@redhat.com>
Wed, 11 Oct 2006 20:34:59 +0000 (20:34 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 11 Oct 2006 20:34:59 +0000 (20:34 +0000)
* sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
* sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
version GLIBC_2.6.
* Versions.def: Add GLIBC_2.6 for libc.

* sysdeps/unix/sysv/linux/i386/sysdep.h (DOARGS_6): Fix offset.

ChangeLog
NEWS
Versions.def
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
sysdeps/unix/sysv/linux/Versions
sysdeps/unix/sysv/linux/i386/sysdep.h
sysdeps/unix/sysv/linux/sys/epoll.h
sysdeps/unix/sysv/linux/syscalls.list

index 44ab28c..2d9919d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2006-10-11  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
+       * sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
+       * sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
+       version GLIBC_2.6.
+       * Versions.def: Add GLIBC_2.6 for libc.
+
+       * sysdeps/unix/sysv/linux/i386/sysdep.h (DOARGS_6): Fix offset.
+
        * sysdeps/i386/i486/bits/atomic.h: Add catomic_* support.
 
 2006-10-11  Jakub Jelinek  <jakub@redhat.com>
diff --git a/NEWS b/NEWS
index 83b6a5e..f078f3c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,15 @@
-GNU C Library NEWS -- history of user-visible changes.  2006-09-29
+GNU C Library NEWS -- history of user-visible changes.  2006-10-11
 Copyright (C) 1992-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
 using `glibc' in the "product" field.
 \f
+Version 2.6
+
+* New Linux interfaces: epoll_pwait.
+
+\f
 Version 2.5
 
 * For Linux, the sorting of addresses returned by getaddrinfo now also
index f40f351..2542084 100644 (file)
@@ -22,6 +22,7 @@ libc {
   GLIBC_2.3.4
   GLIBC_2.4
   GLIBC_2.5
+  GLIBC_2.6
 %ifdef USE_IN_LIBIO
   HURD_CTHREADS_0.3
 %endif
index a8bd0fd..f00f066 100644 (file)
@@ -1,5 +1,8 @@
 2006-10-11  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
+       cancelable syscalls with six parameters.
+
        * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
        operations instead of atomic_*.
 
index 147f5c8..2d1ad3d 100644 (file)
@@ -1,4 +1,4 @@
-/* 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.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
 
@@ -58,6 +58,7 @@
 # define SAVE_OLDTYPE_3        SAVE_OLDTYPE_2
 # define SAVE_OLDTYPE_4        SAVE_OLDTYPE_2
 # define SAVE_OLDTYPE_5        SAVE_OLDTYPE_2
+# define SAVE_OLDTYPE_6        SAVE_OLDTYPE_2
 
 # define PUSHCARGS_0   /* No arguments to push.  */
 # define DOCARGS_0     /* No arguments to frob.  */
 # define _POPCARGS_5   _POPCARGS_4; popl %edi; \
                        cfi_adjust_cfa_offset (-4); cfi_restore (edi);
 
+# define PUSHCARGS_6   _PUSHCARGS_6
+# define DOCARGS_6     _DOARGS_6 (44)
+# define POPCARGS_6    _POPCARGS_6
+# define _PUSHCARGS_6  pushl %ebp; cfi_adjust_cfa_offset (4); \
+                       cfi_rel_offset (ebp, 0); _PUSHCARGS_5
+# define _POPCARGS_6   _POPCARGS_5; popl %ebp; \
+                       cfi_adjust_cfa_offset (-4); cfi_restore (ebp);
+
 # ifdef IS_IN_libpthread
 #  define CENABLE      call __pthread_enable_asynccancel;
 #  define CDISABLE     call __pthread_disable_asynccancel
 # define POPSTATE_3    POPSTATE_2
 # define POPSTATE_4    POPSTATE_3
 # define POPSTATE_5    POPSTATE_4
+# define POPSTATE_6    POPSTATE_5
 
 # ifndef __ASSEMBLER__
 #  define SINGLE_THREAD_P \
index 7c015b1..137b44c 100644 (file)
@@ -126,6 +126,9 @@ libc {
   GLIBC_2.5 {
     splice; sync_file_range; tee; vmsplice;
   }
+  GLIBC_2.6 {
+    epoll_pwait;
+  }
   GLIBC_PRIVATE {
     # functions used in other libraries
     __syscall_rt_sigqueueinfo;
index 90423d8..5286676 100644 (file)
                        cfi_restore (edi); L(POPDI1):
 
 #define PUSHARGS_6     _PUSHARGS_6
-#define DOARGS_6       _DOARGS_6 (36)
+#define DOARGS_6       _DOARGS_6 (40)
 #define POPARGS_6      _POPARGS_6
 #define _PUSHARGS_6    pushl %ebp; cfi_adjust_cfa_offset (4); \
                        cfi_rel_offset (ebp, 0); L(PUSHBP1): _PUSHARGS_5
index 68f173a..d8901f7 100644 (file)
@@ -1,4 +1,4 @@
-/* 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
 #include <stdint.h>
 #include <sys/types.h>
 
+/* Get __sigset_t.  */
+#include <bits/sigset.h>
+
+#ifndef __sigset_t_defined
+# define __sigset_t_defined
+typedef __sigset_t sigset_t;
+#endif
+
 
 enum EPOLL_EVENTS
   {
@@ -105,6 +113,16 @@ extern int epoll_ctl (int __epfd, int __op, int __fd,
 extern int epoll_wait (int __epfd, struct epoll_event *__events,
                       int __maxevents, int __timeout);
 
+
+/* Same as epoll_wait, but the thread's signal mask is temporarily
+   and atomically replaced with the one provided as parameter.
+
+   This function is a cancellation point and therefore not marked with
+   __THROW.  */
+extern int epoll_pwait (int __epfd, struct epoll_event *__events,
+                       int __maxevents, int __timeout,
+                       __const __sigset_t *__ss);
+
 __END_DECLS
 
 #endif /* sys/epoll.h */
index fca29b2..5776673 100644 (file)
@@ -10,6 +10,7 @@ delete_module EXTRA   delete_module   3       delete_module
 epoll_create   EXTRA   epoll_create    i:i     epoll_create
 epoll_ctl      EXTRA   epoll_ctl       i:iiip  epoll_ctl
 epoll_wait     EXTRA   epoll_wait      Ci:ipii epoll_wait
+epoll_pwait    EXTRA   epoll_pwait     Ci:ipiipi       epoll_pwait
 fdatasync      -       fdatasync       i:i     fdatasync
 flock          -       flock           i:ii    __flock         flock
 fork           -       fork            i:      __libc_fork     __fork fork