fd_set.h 631 B

1234567891011121314151617181920212223
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <Kernel/API/POSIX/select.h>
  8. #define FD_ZERO(set) \
  9. do { \
  10. memset((set), 0, sizeof(fd_set)); \
  11. } while (0)
  12. #define FD_CLR(fd, set) ((set)->fds_bits[(fd / 8)] &= ~(1 << (fd) % 8))
  13. #define FD_SET(fd, set) ((set)->fds_bits[(fd / 8)] |= (1 << (fd) % 8))
  14. #define FD_ISSET(fd, set) ((set)->fds_bits[(fd / 8)] & (1 << (fd) % 8))
  15. struct __fd_set {
  16. unsigned char fds_bits[FD_SETSIZE / 8];
  17. };
  18. typedef struct __fd_set fd_set;