PR/9901: mycroft: make select guts partially visible for X/Open 5.
This commit is contained in:
parent
470504f184
commit
18e39b7462
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: types.h,v 1.42 1999/12/30 15:51:35 eeh Exp $ */
|
||||
/* $NetBSD: types.h,v 1.43 2000/04/16 23:12:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1982, 1986, 1991, 1993, 1994
|
||||
@ -170,8 +170,23 @@ typedef _BSD_USECONDS_T_ useconds_t;
|
||||
#undef _BSD_USECONDS_T_
|
||||
#endif
|
||||
|
||||
#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
|
||||
#define NBBY 8 /* number of bits in a byte */
|
||||
#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
|
||||
(defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \
|
||||
(_XOPEN_SOURCE - 0) >= 500
|
||||
|
||||
/*
|
||||
* Implementation dependent defines, hidden from user space. X/Open does not
|
||||
* specify them.
|
||||
*/
|
||||
#define __NBBY 8 /* number of bits in a byte */
|
||||
typedef int32_t __fd_mask;
|
||||
#define __NFDBITS (sizeof(__fd_mask) * __NBBY) /* bits per mask */
|
||||
|
||||
#ifndef howmany
|
||||
#define __howmany(x, y) (((x) + ((y) - 1)) / (y))
|
||||
#else
|
||||
#define __howmany(x, y) howmany(x, y)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Select uses bit masks of file descriptors in longs. These macros
|
||||
@ -183,23 +198,34 @@ typedef _BSD_USECONDS_T_ useconds_t;
|
||||
#define FD_SETSIZE 256
|
||||
#endif
|
||||
|
||||
typedef int32_t fd_mask;
|
||||
#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
|
||||
|
||||
#ifndef howmany
|
||||
#define howmany(x, y) (((x) + ((y) - 1)) / (y))
|
||||
#endif
|
||||
|
||||
typedef struct fd_set {
|
||||
fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
|
||||
__fd_mask fds_bits[__howmany(FD_SETSIZE, __NFDBITS)];
|
||||
} fd_set;
|
||||
|
||||
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
|
||||
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
|
||||
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
|
||||
#define FD_COPY(f, t) (void)memcpy((t), (f), sizeof(*(f)))
|
||||
#define FD_SET(n, p) \
|
||||
((p)->fds_bits[(n)/__NFDBITS] |= (1 << ((n) % __NFDBITS)))
|
||||
#define FD_CLR(n, p) \
|
||||
((p)->fds_bits[(n)/__NFDBITS] &= ~(1 << ((n) % __NFDBITS)))
|
||||
#define FD_ISSET(n, p) \
|
||||
((p)->fds_bits[(n)/__NFDBITS] & (1 << ((n) % __NFDBITS)))
|
||||
#define FD_ZERO(p) (void)memset((p), 0, sizeof(*(p)))
|
||||
|
||||
/*
|
||||
* Expose our internals if we are not required to hide them.
|
||||
*/
|
||||
#ifndef _XOPEN_SOURCE
|
||||
|
||||
#define NBBY __NBBY
|
||||
#define fd_mask __fd_mask
|
||||
#define NFDBITS __NFDBITS
|
||||
#ifndef howmany
|
||||
#define howmany(a, b) __howmany(a, b)
|
||||
#endif
|
||||
|
||||
#define FD_COPY(f, t) (void)memcpy((t), (f), sizeof(*(f)))
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__STDC__) && defined(_KERNEL)
|
||||
/*
|
||||
* Forward structure declarations for function prototypes. We include the
|
||||
|
Loading…
x
Reference in New Issue
Block a user