Skip to content

Commit

Permalink
* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
Browse files Browse the repository at this point in the history
	* 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.
  • Loading branch information
Ulrich Drepper committed Oct 11, 2006
1 parent 37fb759 commit 46c38bd
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 4 deletions.
8 changes: 8 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -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>
Expand Down
7 changes: 6 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
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.

Version 2.6

* New Linux interfaces: epoll_pwait.


Version 2.5

Expand Down
1 change: 1 addition & 0 deletions Versions.def
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -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_*.

Expand Down
12 changes: 11 additions & 1 deletion nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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. */
Expand Down Expand Up @@ -101,6 +102,14 @@
# 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
Expand All @@ -122,6 +131,7 @@
# 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 \
Expand Down
3 changes: 3 additions & 0 deletions sysdeps/unix/sysv/linux/Versions
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/unix/sysv/linux/i386/sysdep.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@
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
Expand Down
20 changes: 19 additions & 1 deletion sysdeps/unix/sysv/linux/sys/epoll.h
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -22,6 +22,14 @@
#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
{
Expand Down Expand Up @@ -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 */
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/syscalls.list
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 46c38bd

Please sign in to comment.