/* sys/select.h */ /* * Copyright (c) 2005, 2009-2010, 2016, 2018, 2021 Wind River Systems, Inc. * * The right to copy, distribute, modify or otherwise make use * of this software may be licensed only pursuant to the terms * of an applicable Wind River license agreement. */ #ifndef _SYS_SELECT_H_ #define _SYS_SELECT_H_ #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) && \ !defined(_POSIX_AEP_RT_CONTROLLER_C_SOURCE) #include #else #include /* _VX_FD_SETSIZE, etc. */ #endif /* _POSIX_xxx_SOURCE */ #include /* timeval */ #include /* sigset_t */ #include /* timespec */ #include #ifdef __cplusplus extern "C" { #endif #ifndef FD_SETSIZE #define FD_SETSIZE _VX_FD_SETSIZE #endif /* FD_SETSIZE */ #ifndef _FD_MASK_DEFINED #define _FD_MASK_DEFINED typedef long fd_mask; #endif /* _FD_MASK_DEFINED */ #ifndef NBBY #define NBBY 8 #endif #ifndef NFDBITS #define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ #endif #ifndef howmany #define howmany(x, y) ((unsigned int)(((x)+((y)-1)))/(unsigned int)(y)) #endif #ifndef _FD_SET_DEFINED #define _FD_SET_DEFINED typedef struct fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; } fd_set; #endif /* _FD_SET_DEFINED */ #ifndef _FD_FUNC_DEFINED #define _FD_FUNC_DEFINED #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~((fd_mask)1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & ((fd_mask)1 << ((n) % NFDBITS))) #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= ((fd_mask)1 << ((n) % NFDBITS))) #define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) #endif /* _FD_FUNC_DEFINED */ #ifdef _WRS_KERNEL extern int select (int width, fd_set * pReadFds, fd_set * pWriteFds, fd_set * pExceptFds, struct timeval * pTimeOut); #else extern int select(int, fd_set *_Restrict, fd_set *_Restrict, fd_set *_Restrict, struct timeval *_Restrict); #endif #if FALSE /* pselect not implemented */ extern int pselect(int, fd_set *_Restrict, fd_set *_Restrict, fd_set *_Restrict, const struct timespec *_Restrict, const sigset_t *_Restrict); #endif #ifdef __cplusplus } #endif #endif /* _SYS_SELECT_H_ */