X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=Xserver%2Finclude%2FXpoll.h;fp=Xserver%2Finclude%2FXpoll.h;h=0000000000000000000000000000000000000000;hp=be2850a1035315bb3aeb4a2b1f4a11ad75ff46bf;hb=ce66b81460e5353db09d45c02339d4583fbda255;hpb=7772d71ffd742cfc9b7ff214659d16c5bb56a391 diff --git a/Xserver/include/Xpoll.h b/Xserver/include/Xpoll.h deleted file mode 100644 index be2850a..0000000 --- a/Xserver/include/Xpoll.h +++ /dev/null @@ -1,228 +0,0 @@ -/* $XConsortium: Xpoll.h /main/6 1996/12/02 10:25:52 lehors $ */ - -/* - -Copyright (c) 1994 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from the X Consortium. - -*/ - -#ifndef _XPOLL_H_ -#define _XPOLL_H_ - -#ifndef WIN32 - -#ifndef USE_POLL - -#include -#if (defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE) -#include -#ifdef luna -#include -#endif -#endif -/* AIX 4.2 fubar-ed , so go to heroic measures to get it */ -#if defined(AIXV4) && !defined(NFDBITS) -#include -#endif -#include -#ifdef CSRG_BASED -#include -# if BSD < 199103 -typedef long fd_mask; -# endif -#endif - -#define XFD_SETSIZE 256 -#ifndef FD_SETSIZE -#define FD_SETSIZE XFD_SETSIZE -#endif - -#ifndef NBBY -#define NBBY 8 /* number of bits in a byte */ -#endif - -#ifndef NFDBITS -#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ -#endif - -#ifndef howmany -#define howmany(x,y) (((x)+((y)-1))/(y)) -#endif - -#ifdef BSD -# if BSD < 198911 /* 198911 == OSF/1, 199103 == CSRG_BASED */ -# ifndef luna /* and even though on LUNA BSD == 43, it has it */ -typedef struct fd_set { - fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; -} fd_set; -# endif -# endif -#endif - -#ifdef hpux /* and perhaps old BSD ??? */ -#define Select(n,r,w,e,t) select(n,(int*)r,(int*)w,(int*)e,(struct timeval*)t) -#else -#define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t) -#endif - -#ifndef FD_SET -#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) -#endif -#ifndef FD_CLR -#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) -#endif -#ifndef FD_ISSET -#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) -#endif -#ifndef FD_ZERO -#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) -#endif - -/* - * The following macros are used by the servers only. There is an - * explicit assumption that the bit array in the fd_set is at least - * 256 bits long (8 32-bit words). This is true on most modern POSIX - * systems. Note that this is merely an optimization for the servers - * based on assumptions about the way that file descripters are - * allocated on POSIX systems. - * - * When porting X to new systems it is important to adjust these - * macros if the system has fewer than 256 bits in the fd_set bit - * array. - */ -#define XFD_ANYSET(p) \ - ((p)->fds_bits[0] || (p)->fds_bits[1] || \ - (p)->fds_bits[2] || (p)->fds_bits[3] || \ - (p)->fds_bits[4] || (p)->fds_bits[5] || \ - (p)->fds_bits[6] || (p)->fds_bits[7]) - -#define XFD_COPYSET(src,dst) \ - (dst)->fds_bits[0] = (src)->fds_bits[0]; \ - (dst)->fds_bits[1] = (src)->fds_bits[1]; \ - (dst)->fds_bits[2] = (src)->fds_bits[2]; \ - (dst)->fds_bits[3] = (src)->fds_bits[3]; \ - (dst)->fds_bits[4] = (src)->fds_bits[4]; \ - (dst)->fds_bits[5] = (src)->fds_bits[5]; \ - (dst)->fds_bits[6] = (src)->fds_bits[6]; \ - (dst)->fds_bits[7] = (src)->fds_bits[7]; - -#define XFD_ANDSET(dst,b1,b2) \ - (dst)->fds_bits[0] = ((b1)->fds_bits[0] & (b2)->fds_bits[0]); \ - (dst)->fds_bits[1] = ((b1)->fds_bits[1] & (b2)->fds_bits[1]); \ - (dst)->fds_bits[2] = ((b1)->fds_bits[2] & (b2)->fds_bits[2]); \ - (dst)->fds_bits[3] = ((b1)->fds_bits[3] & (b2)->fds_bits[3]); \ - (dst)->fds_bits[4] = ((b1)->fds_bits[4] & (b2)->fds_bits[4]); \ - (dst)->fds_bits[5] = ((b1)->fds_bits[5] & (b2)->fds_bits[5]); \ - (dst)->fds_bits[6] = ((b1)->fds_bits[6] & (b2)->fds_bits[6]); \ - (dst)->fds_bits[7] = ((b1)->fds_bits[7] & (b2)->fds_bits[7]); - -#define XFD_ORSET(dst,b1,b2) \ - (dst)->fds_bits[0] = ((b1)->fds_bits[0] | (b2)->fds_bits[0]); \ - (dst)->fds_bits[1] = ((b1)->fds_bits[1] | (b2)->fds_bits[1]); \ - (dst)->fds_bits[2] = ((b1)->fds_bits[2] | (b2)->fds_bits[2]); \ - (dst)->fds_bits[3] = ((b1)->fds_bits[3] | (b2)->fds_bits[3]); \ - (dst)->fds_bits[4] = ((b1)->fds_bits[4] | (b2)->fds_bits[4]); \ - (dst)->fds_bits[5] = ((b1)->fds_bits[5] | (b2)->fds_bits[5]); \ - (dst)->fds_bits[6] = ((b1)->fds_bits[6] | (b2)->fds_bits[6]); \ - (dst)->fds_bits[7] = ((b1)->fds_bits[7] | (b2)->fds_bits[7]); - -#define XFD_UNSET(dst,b1) \ - (dst)->fds_bits[0] &= ~((b1)->fds_bits[0]); \ - (dst)->fds_bits[1] &= ~((b1)->fds_bits[1]); \ - (dst)->fds_bits[2] &= ~((b1)->fds_bits[2]); \ - (dst)->fds_bits[3] &= ~((b1)->fds_bits[3]); \ - (dst)->fds_bits[4] &= ~((b1)->fds_bits[4]); \ - (dst)->fds_bits[5] &= ~((b1)->fds_bits[5]); \ - (dst)->fds_bits[6] &= ~((b1)->fds_bits[6]); \ - (dst)->fds_bits[7] &= ~((b1)->fds_bits[7]); - -#else /* USE_POLL */ -#include -#endif /* USE_POLL */ - -#else /* WIN32 */ - -#define XFD_SETSIZE 256 -#ifndef FD_SETSIZE -#define FD_SETSIZE XFD_SETSIZE -#endif -#include - -#define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval*)t) - -#define XFD_SETCOUNT(p) (((fd_set FAR *)(p))->fd_count) -#define XFD_FD(p,i) (((fd_set FAR *)(p))->fd_array[i]) -#define XFD_ANYSET(p) XFD_SETCOUNT(p) - -#define XFD_COPYSET(src,dst) { \ - u_int __i; \ - FD_ZERO(dst); \ - for (__i = 0; __i < XFD_SETCOUNT(src) ; __i++) { \ - XFD_FD(dst,__i) = XFD_FD(src,__i); \ - } \ - XFD_SETCOUNT(dst) = XFD_SETCOUNT(src); \ -} - -#define XFD_ANDSET(dst,b1,b2) { \ - u_int __i; \ - FD_ZERO(dst); \ - for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \ - if (FD_ISSET(XFD_FD(b1,__i), b2)) \ - FD_SET(XFD_FD(b1,__i), dst); \ - } \ -} - -#define XFD_ORSET(dst,b1,b2) { \ - u_int __i; \ - XFD_COPYSET(b1,dst); \ - for (__i = 0; __i < XFD_SETCOUNT(b2) ; __i++) { \ - if (!FD_ISSET(XFD_FD(b2,__i), dst)) \ - FD_SET(XFD_FD(b2,__i), dst); \ - } \ -} - -/* this one is really sub-optimal */ -#define XFD_UNSET(dst,b1) { \ - u_int __i; \ - for (__i = 0; __i < XFD_SETCOUNT(b1) ; __i++) { \ - FD_CLR(XFD_FD(b1,__i), dst); \ - } \ -} - -/* we have to pay the price of having an array here, unlike with bitmasks - calling twice FD_SET with the same fd is not transparent, so be careful */ -#undef FD_SET -#define FD_SET(fd,set) do { \ - if (XFD_SETCOUNT(set) < FD_SETSIZE && !FD_ISSET(fd,set)) \ - XFD_FD(set,XFD_SETCOUNT(set)++)=(fd); \ -} while(0) - -#define getdtablesize() FD_SETSIZE - -#endif /* WIN32 */ - -#endif /* _XPOLL_H_ */