diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-05-26 23:37:38 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-05-26 23:37:38 +0000 |
commit | 958f238f3619373d3dbc106d3cda3c467b3419b1 (patch) | |
tree | 9d15d47658aeaae08ee7e5e5e9d4a63d034caa49 /sysdeps/unix/sysv/linux/poll.c | |
parent | 475e390e80a950a8746dc0b88341742dc99014e4 (diff) | |
download | glibc-958f238f3619373d3dbc106d3cda3c467b3419b1.tar.gz glibc-958f238f3619373d3dbc106d3cda3c467b3419b1.tar.xz glibc-958f238f3619373d3dbc106d3cda3c467b3419b1.zip |
Update.
1999-05-26 Ulrich Drepper <drepper@cygnus.com> * config.h.in: Add __LINUX_KERNEL_VERSION. * configure.in: Recognize --enable-kernel. * sysdeps/unix/sysv/linux/configure.in: Check for correct kernel headers if --enable-kernel is given and set __LINUX_KERNEL_VERSION appropriately. * sysdeps/unix/sysv/linux/init-first.c: If minimal kernel version is given perform runtime test. * sysdeps/unix/sysv/linux/kernel-features.h: New file. * sysdeps/unix/sysv/linux/getcwd.c: Elide compatibility code if minimal supported kernel is known to have the feature. * sysdeps/unix/sysv/linux/poll.c: Likewise. * sysdeps/unix/sysv/linux/pread.c: Likewise. * sysdeps/unix/sysv/linux/pread64.c: Likewise. * sysdeps/unix/sysv/linux/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/seteuid.c: Likewise. * sysdeps/unix/sysv/linux/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/sigprocmask.c: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. * sysdeps/unix/sysv/linux/testrtsig.h: Likewise. * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. * sysdeps/unix/sysv/linux/i386/pread.c: Likewise. * sysdeps/unix/sysv/linux/i386/pread64.c: Likewise. * sysdeps/unix/sysv/linux/i386/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/i386/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/sysctl.c: Add __sysctl alias.
Diffstat (limited to 'sysdeps/unix/sysv/linux/poll.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/poll.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c index e7df3b7774..16433e53e7 100644 --- a/sysdeps/unix/sysv/linux/poll.c +++ b/sysdeps/unix/sysv/linux/poll.c @@ -22,13 +22,18 @@ #include <sysdep.h> #include <sys/syscall.h> -#ifdef __NR_poll + +#include "kernel-features.h" + +#if defined __NR_poll || __ASSUME_POLL_SYSCALL > 0 extern int __syscall_poll __P ((struct pollfd *fds, unsigned int nfds, int timeout)); +# if __ASSUME_POLL_SYSCALL == 0 static int __emulate_poll __P ((struct pollfd *fds, unsigned long int nfds, int timeout)) internal_function; +# endif /* The real implementation. */ int @@ -37,6 +42,7 @@ __poll (fds, nfds, timeout) unsigned long int nfds; int timeout; { +# if __ASSUME_POLL_SYSCALL == 0 static int must_emulate; if (!must_emulate) @@ -52,6 +58,9 @@ __poll (fds, nfds, timeout) } return __emulate_poll (fds, nfds, timeout); +# else + return INLINE_SYSCALL (poll, 3, fds, nfds, timeout); +# endif } weak_alias (__poll, poll) @@ -59,4 +68,7 @@ weak_alias (__poll, poll) # define __poll(fds, nfds, timeout) \ static internal_function __emulate_poll (fds, nfds, timeout) #endif -#include <sysdeps/unix/bsd/poll.c> + +#if __ASSUME_POLL_SYSCALL == 0 +# include <sysdeps/unix/bsd/poll.c> +#endif |