root/maint/gnulib/lib/poll.in.h

/* [previous][next][first][last][top][bottom][index][help] */
   1 /* Header for poll(2) emulation
   2    Contributed by Paolo Bonzini.
   3 
   4    Copyright 2001-2003, 2007, 2009-2021 Free Software Foundation, Inc.
   5 
   6    This file is part of gnulib.
   7 
   8    This file is free software: you can redistribute it and/or modify
   9    it under the terms of the GNU Lesser General Public License as
  10    published by the Free Software Foundation; either version 2.1 of the
  11    License, or (at your option) any later version.
  12 
  13    This file is distributed in the hope that it will be useful,
  14    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16    GNU Lesser General Public License for more details.
  17 
  18    You should have received a copy of the GNU Lesser General Public License
  19    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  20 
  21 #ifndef _@GUARD_PREFIX@_POLL_H
  22 
  23 #if __GNUC__ >= 3
  24 @PRAGMA_SYSTEM_HEADER@
  25 #endif
  26 @PRAGMA_COLUMNS@
  27 
  28 /* The include_next requires a split double-inclusion guard.  */
  29 #if @HAVE_POLL_H@
  30 # @INCLUDE_NEXT@ @NEXT_POLL_H@
  31 #endif
  32 
  33 #ifndef _@GUARD_PREFIX@_POLL_H
  34 #define _@GUARD_PREFIX@_POLL_H
  35 
  36 /* On native Windows, get the 'struct pollfd' type and the POLL* macro
  37    definitions before we override them.  mingw defines them in <winsock2.h>
  38    if _WIN32_WINNT >= 0x0600.  */
  39 #if @HAVE_WINSOCK2_H@
  40 # include <winsock2.h>
  41 #endif
  42 
  43 
  44 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
  45 
  46 /* The definition of _GL_WARN_ON_USE is copied here.  */
  47 
  48 
  49 #if !@HAVE_POLL_H@
  50 
  51 # if @HAVE_WINSOCK2_H@
  52 /* Override the definitions from <winsock2.h>.  */
  53 #  undef POLLIN
  54 #  undef POLLPRI
  55 #  undef POLLOUT
  56 #  undef POLLERR
  57 #  undef POLLHUP
  58 #  undef POLLNVAL
  59 #  undef POLLRDNORM
  60 #  undef POLLRDBAND
  61 #  undef POLLWRNORM
  62 #  undef POLLWRBAND
  63 #  define pollfd rpl_pollfd
  64 # endif
  65 
  66 /* fake a poll(2) environment */
  67 # define POLLIN      0x0001      /* any readable data available   */
  68 # define POLLPRI     0x0002      /* OOB/Urgent readable data      */
  69 # define POLLOUT     0x0004      /* file descriptor is writable   */
  70 # define POLLERR     0x0008      /* some poll error occurred      */
  71 # define POLLHUP     0x0010      /* file descriptor was "hung up" */
  72 # define POLLNVAL    0x0020      /* requested events "invalid"    */
  73 # define POLLRDNORM  0x0040
  74 # define POLLRDBAND  0x0080
  75 # define POLLWRNORM  0x0100
  76 # define POLLWRBAND  0x0200
  77 
  78 # if !GNULIB_defined_poll_types
  79 
  80 struct pollfd
  81 {
  82   int fd;                       /* which file descriptor to poll */
  83   short events;                 /* events we are interested in   */
  84   short revents;                /* events found on return        */
  85 };
  86 
  87 typedef unsigned long nfds_t;
  88 
  89 #  define GNULIB_defined_poll_types 1
  90 # endif
  91 
  92 /* Define INFTIM only if doing so conforms to POSIX.  */
  93 # if !defined (_POSIX_C_SOURCE) && !defined (_XOPEN_SOURCE)
  94 #  define INFTIM (-1)
  95 # endif
  96 
  97 #endif
  98 
  99 
 100 #if @GNULIB_POLL@
 101 # if @REPLACE_POLL@
 102 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 103 #   undef poll
 104 #   define poll rpl_poll
 105 #  endif
 106 _GL_FUNCDECL_RPL (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout));
 107 _GL_CXXALIAS_RPL (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout));
 108 # else
 109 #  if !@HAVE_POLL@
 110 _GL_FUNCDECL_SYS (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout));
 111 #  endif
 112 _GL_CXXALIAS_SYS (poll, int, (struct pollfd *pfd, nfds_t nfd, int timeout));
 113 # endif
 114 _GL_CXXALIASWARN (poll);
 115 #elif defined GNULIB_POSIXCHECK
 116 # undef poll
 117 # if HAVE_RAW_DECL_POLL
 118 _GL_WARN_ON_USE (poll, "poll is unportable - "
 119                  "use gnulib module poll for portability");
 120 # endif
 121 #endif
 122 
 123 
 124 #endif /* _@GUARD_PREFIX@_POLL_H */
 125 #endif /* _@GUARD_PREFIX@_POLL_H */

/* [previous][next][first][last][top][bottom][index][help] */