glibc (2.38)

(root)/
include/
bits/
select.h
       1  /* Copyright (C) 1997-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _SYS_SELECT_H
      19  # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
      20  #endif
      21  
      22  
      23  /* We don't use `memset' because this would require a prototype and
      24     the array isn't too big.  */
      25  #define __FD_ZERO(s) \
      26    do {									      \
      27      unsigned int __i;							      \
      28      fd_set *__arr = (s);						      \
      29      for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	      \
      30        __FDS_BITS (__arr)[__i] = 0;					      \
      31    } while (0)
      32  #define __FD_SET(d, s) \
      33    ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d)))
      34  #define __FD_CLR(d, s) \
      35    ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d)))
      36  #define __FD_ISSET(d, s) \
      37    ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0)