don't use function-equal in nadvice
[bpt/emacs.git] / src / sysselect.h
index 20eade8..db6438e 100644 (file)
@@ -1,5 +1,5 @@
 /* sysselect.h - System-dependent definitions for the select function.
-   Copyright (C) 1995, 2001-201 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2014 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -16,14 +16,11 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifdef HAVE_SYS_SELECT_H
-#if defined (DARWIN_OS)
-#undef init_process
-#endif
+#ifndef SYSSELECT_H
+#define SYSSELECT_H 1
+
+#ifndef DOS_NT
 #include <sys/select.h>
-#if defined (DARWIN_OS)
-#define init_process emacs_init_process
-#endif
 #endif
 
 /* The w32 build defines select stuff in w32.h, which is included
@@ -31,15 +28,12 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    definitions in w32.h are incompatible with the below.  */
 #ifndef WINDOWSNT
 #ifdef FD_SET
-#ifdef FD_SETSIZE
-#define MAXDESC FD_SETSIZE
-#else
-#define MAXDESC 64
+#ifndef FD_SETSIZE
+#define FD_SETSIZE 64
 #endif
-#define SELECT_TYPE fd_set
 #else /* no FD_SET */
-#define MAXDESC 32
-#define SELECT_TYPE int
+#define FD_SETSIZE 32
+typedef int fd_set;
 
 /* Define the macros to access a single-int bitmap of descriptors.  */
 #define FD_SET(n, p) (*(p) |= (1 << (n)))
@@ -53,3 +47,45 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define select sys_select
 #endif
 
+#ifdef MSDOS
+#define pselect sys_select
+#endif
+
+#ifndef WINDOWSNT
+INLINE_HEADER_BEGIN
+
+/* Check for out-of-range errors if ENABLE_CHECKING is defined.  */
+
+INLINE void
+fd_CLR (int fd, fd_set *set)
+{
+  eassume (0 <= fd && fd < FD_SETSIZE);
+  FD_CLR (fd, set);
+}
+
+INLINE bool
+fd_ISSET (int fd, fd_set *set)
+{
+  eassume (0 <= fd && fd < FD_SETSIZE);
+  return FD_ISSET (fd, set) != 0;
+}
+
+INLINE void
+fd_SET (int fd, fd_set *set)
+{
+  eassume (0 <= fd && fd < FD_SETSIZE);
+  FD_SET (fd, set);
+}
+
+#undef FD_CLR
+#undef FD_ISSET
+#undef FD_SET
+#define FD_CLR(fd, set) fd_CLR (fd, set)
+#define FD_ISSET(fd, set) fd_ISSET (fd, set)
+#define FD_SET(fd, set) fd_SET (fd, set)
+
+INLINE_HEADER_END
+
+#endif /* !WINDOWSNT */
+
+#endif