sysselect.h 1.7 KB
Newer Older
Karl Heuer's avatar
Karl Heuer committed
1
/* sysselect.h - System-dependent definitions for the select function.
2
   Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005,
Glenn Morris's avatar
Glenn Morris committed
3
                 2006, 2007, 2008  Free Software Foundation, Inc.
Karl Heuer's avatar
Karl Heuer committed
4 5 6 7 8

This file is part of GNU Emacs.

GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 3, or (at your option)
Karl Heuer's avatar
Karl Heuer committed
10 11 12 13 14 15 16 17 18
any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING.  If not, write to
Lute Kamstra's avatar
Lute Kamstra committed
19 20
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.  */
Karl Heuer's avatar
Karl Heuer committed
21

Thien-Thi Nguyen's avatar
Thien-Thi Nguyen committed
22
#ifdef HAVE_SYS_SELECT_H
23 24 25
#if defined (DARWIN) || defined (MAC_OSX)
#undef init_process
#endif
Karl Heuer's avatar
Karl Heuer committed
26
#include <sys/select.h>
27 28 29
#if defined (DARWIN) || defined (MAC_OSX)
#define init_process emacs_init_process
#endif
Karl Heuer's avatar
Karl Heuer committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
#endif

#ifdef FD_SET
#ifdef FD_SETSIZE
#define MAXDESC FD_SETSIZE
#else
#define MAXDESC 64
#endif
#define SELECT_TYPE fd_set
#else /* no FD_SET */
#define MAXDESC 32
#define SELECT_TYPE int

/* Define the macros to access a single-int bitmap of descriptors.  */
#define FD_SET(n, p) (*(p) |= (1 << (n)))
#define FD_CLR(n, p) (*(p) &= ~(1 << (n)))
#define FD_ISSET(n, p) (*(p) & (1 << (n)))
#define FD_ZERO(p) (*(p) = 0)
#endif /* no FD_SET */

#if !defined (HAVE_SELECT) || defined (BROKEN_SELECT_NON_X)
#define select sys_select
#endif
Miles Bader's avatar
Miles Bader committed
53 54 55

/* arch-tag: 36d05500-8cf6-4847-8e78-6721f18c06ef
   (do not change this comment) */