about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/poll.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/poll.c')
-rw-r--r--sysdeps/unix/sysv/linux/poll.c61
1 files changed, 2 insertions, 59 deletions
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index c8f5e6deb1..0abdad0399 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1,6 +1,5 @@
-/* Poll system call, with emulation if it is not available.
-   Copyright (C) 1997,1998,1999,2000,2001,2002,2006
-	Free Software Foundation, Inc.
+/* Poll system call.
+   Copyright (C) 1997-2012 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
@@ -26,58 +25,12 @@
 
 #include <kernel-features.h>
 
-#if defined __NR_poll || __ASSUME_POLL_SYSCALL > 0
-
-# if __ASSUME_POLL_SYSCALL == 0
-static int __emulate_poll (struct pollfd *fds, nfds_t nfds,
-			   int timeout) internal_function;
-# endif
-
-
-# if __ASSUME_POLL_SYSCALL == 0
-/* For loser kernels.  */
-static int
-loser_poll (struct pollfd *fds, nfds_t nfds, int timeout)
-{
-  static int must_emulate;
-
-  if (!must_emulate)
-    {
-      int errno_saved = errno;
-      int retval = INLINE_SYSCALL (poll, 3, CHECK_N (fds, nfds), nfds,
-				   timeout);
-
-      if (retval >= 0 || errno != ENOSYS)
-	return retval;
-
-      __set_errno (errno_saved);
-      must_emulate = 1;
-    }
-
-  return __emulate_poll (fds, nfds, timeout);
-}
-# endif
-
-
-/* The real implementation.  */
 int
 __poll (fds, nfds, timeout)
      struct pollfd *fds;
      nfds_t nfds;
      int timeout;
 {
-# if __ASSUME_POLL_SYSCALL == 0
-  if (SINGLE_THREAD_P)
-    return loser_poll (CHECK_N (fds, nfds), nfds, timeout);
-
-  int oldtype = LIBC_CANCEL_ASYNC ();
-
-  int result = loser_poll (CHECK_N (fds, nfds), nfds, timeout);
-
-   LIBC_CANCEL_RESET (oldtype);
-
-  return result;
-# else
   if (SINGLE_THREAD_P)
     return INLINE_SYSCALL (poll, 3, CHECK_N (fds, nfds), nfds, timeout);
 
@@ -88,17 +41,7 @@ __poll (fds, nfds, timeout)
    LIBC_CANCEL_RESET (oldtype);
 
   return result;
-# endif
 }
 libc_hidden_def (__poll)
 weak_alias (__poll, poll)
 strong_alias (__poll, __libc_poll)
-
-/* Get the emulation code.  */
-# define __poll(fds, nfds, timeout) \
-  static internal_function __emulate_poll (fds, nfds, timeout)
-#endif
-
-#if __ASSUME_POLL_SYSCALL == 0
-# include <sysdeps/unix/bsd/poll.c>
-#endif