mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-18 23:12:15 +08:00
* cygwin.din (ppoll): Export.
* poll.cc (ppoll): Implement. * posix.sgml (std-gnu): Add ppoll. * include/cygwin/version.h: Bump API minor number. * include/sys/poll.h (ppoll): Declare.
This commit is contained in:
parent
0077cd1016
commit
20a0b8c8e6
@ -1,3 +1,11 @@
|
||||
2011-04-18 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* cygwin.din (ppoll): Export.
|
||||
* poll.cc (ppoll): Implement.
|
||||
* posix.sgml (std-gnu): Add ppoll.
|
||||
* include/cygwin/version.h: Bump API minor number.
|
||||
* include/sys/poll.h (ppoll): Declare.
|
||||
|
||||
2011-04-18 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* fhandler_socket.cc (fhandler_socket::evaluate_events): Handle the
|
||||
|
@ -1160,6 +1160,7 @@ pow10 NOSIGFE
|
||||
pow10f NOSIGFE
|
||||
powf NOSIGFE
|
||||
_powf = powf NOSIGFE
|
||||
ppoll SIGFE
|
||||
pread SIGFE
|
||||
printf SIGFE
|
||||
program_invocation_name DATA
|
||||
|
@ -404,12 +404,13 @@ details. */
|
||||
238: Export pthread_spin_destroy, pthread_spin_init, pthread_spin_lock,
|
||||
pthread_spin_trylock, pthread_spin_unlock.
|
||||
239: Export pthread_setschedprio.
|
||||
240: Export ppoll.
|
||||
*/
|
||||
|
||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||
|
||||
#define CYGWIN_VERSION_API_MAJOR 0
|
||||
#define CYGWIN_VERSION_API_MINOR 239
|
||||
#define CYGWIN_VERSION_API_MINOR 240
|
||||
|
||||
/* There is also a compatibity version number associated with the
|
||||
shared memory regions. It is incremented when incompatible
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* sys/poll.h
|
||||
|
||||
Copyright 2000, 2001, 2006 Red Hat, Inc.
|
||||
Copyright 2000, 2001, 2006, 2011 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
#define _SYS_POLL_H
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
@ -39,6 +40,9 @@ struct pollfd {
|
||||
typedef unsigned int nfds_t;
|
||||
|
||||
extern int poll __P ((struct pollfd *fds, nfds_t nfds, int timeout));
|
||||
extern int ppoll __P ((struct pollfd *fds, nfds_t nfds,
|
||||
const struct timespec *timeout_ts,
|
||||
const sigset_t *sigmask));
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
@ -21,6 +21,8 @@
|
||||
#include "fhandler.h"
|
||||
#include "dtable.h"
|
||||
#include "cygheap.h"
|
||||
#include "pinfo.h"
|
||||
#include "sigproc.h"
|
||||
|
||||
extern "C" int
|
||||
poll (struct pollfd *fds, nfds_t nfds, int timeout)
|
||||
@ -124,3 +126,24 @@ poll (struct pollfd *fds, nfds_t nfds, int timeout)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts,
|
||||
const sigset_t *sigmask)
|
||||
{
|
||||
int timeout;
|
||||
sigset_t oldset = _my_tls.sigmask;
|
||||
|
||||
myfault efault;
|
||||
if (efault.faulted (EFAULT))
|
||||
return -1;
|
||||
timeout = (timeout_ts == NULL)
|
||||
? -1
|
||||
: (timeout_ts->tv_sec * 1000 + timeout_ts->tv_nsec / 1000000);
|
||||
if (sigmask)
|
||||
set_signal_mask (*sigmask, _my_tls.sigmask);
|
||||
int ret = poll (fds, nfds, timeout);
|
||||
if (sigmask)
|
||||
set_signal_mask (oldset, _my_tls.sigmask);
|
||||
return ret;
|
||||
}
|
||||
|
@ -1116,6 +1116,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
||||
pipe2
|
||||
pow10
|
||||
pow10f
|
||||
ppoll
|
||||
removexattr
|
||||
setxattr
|
||||
strchrnul
|
||||
|
Loading…
x
Reference in New Issue
Block a user