Annotation of researchv9/X11/src/X.V11R1/server/os/v9/osdep.h, revision 1.1

1.1     ! root        1: /***********************************************************
        !             2: Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
        !             3: and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
        !             4: 
        !             5:                         All Rights Reserved
        !             6: 
        !             7: Permission to use, copy, modify, and distribute this software and its 
        !             8: documentation for any purpose and without fee is hereby granted, 
        !             9: provided that the above copyright notice appear in all copies and that
        !            10: both that copyright notice and this permission notice appear in 
        !            11: supporting documentation, and that the names of Digital or MIT not be
        !            12: used in advertising or publicity pertaining to distribution of the
        !            13: software without specific, written prior permission.  
        !            14: 
        !            15: DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
        !            16: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
        !            17: DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
        !            18: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
        !            19: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
        !            20: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
        !            21: SOFTWARE.
        !            22: 
        !            23: ******************************************************************/
        !            24: /* $Header: osdep.h,v 1.8 87/09/01 17:24:02 toddb Exp $ */
        !            25: 
        !            26: #define NULL 0
        !            27: 
        !            28: #undef BUFSIZE
        !            29: #define BUFSIZE 4096
        !            30: #define MAXBUFSIZE (1<<17)
        !            31: #if (NOFILE <= 128) /* 128 is value of MAXCLIENTS in dix layer */
        !            32: #define MAXSOCKS (NOFILE - 1)
        !            33: #else
        !            34: #define MAXSOCKS 128
        !            35: #endif
        !            36: #define mskcnt ((MAXSOCKS + 31) / 32)  /* size of bit array */
        !            37: 
        !            38: #if (mskcnt==1)
        !            39: #define BITMASK(i) (1 << (i))
        !            40: #define MASKIDX(i) 0
        !            41: #endif
        !            42: #if (mskcnt>1)
        !            43: #define BITMASK(i) (1 << ((i) & 31))
        !            44: #define MASKIDX(i) ((i) >> 5)
        !            45: #endif
        !            46: 
        !            47: #define MASKWORD(buf, i) buf[MASKIDX(i)]
        !            48: #define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i)
        !            49: #define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
        !            50: #define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
        !            51: 
        !            52: int cri;
        !            53: 
        !            54: #if (mskcnt==1)
        !            55: #define COPYBITS(src, dst) dst[0] = src[0]
        !            56: #define CLEARBITS(buf) buf[0] = 0
        !            57: #define MASKANDSETBITS(dst, b1, b2) dst[0] = (b1[0] & b2[0])
        !            58: #define ORBITS(dst, b1, b2) dst[0] = (b1[0] | b2[0])
        !            59: #define UNSETBITS(dst, b1) (dst[0] &= ~b1[0])
        !            60: #define ANYSET(src) (src[0])
        !            61: #endif
        !            62: #if (mskcnt==2)
        !            63: #define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]
        !            64: #define CLEARBITS(buf) buf[0] = 0; buf[1] = 0
        !            65: #define MASKANDSETBITS(dst, b1, b2)  \
        !            66:                      dst[0] = (b1[0] & b2[0]);\
        !            67:                      dst[1] = (b1[1] & b2[1])
        !            68: #define ORBITS(dst, b1, b2)  \
        !            69:                      dst[0] = (b1[0] | b2[0]);\
        !            70:                      dst[1] = (b1[1] | b2[1])
        !            71: #define UNSETBITS(dst, b1) \
        !            72:                       dst[0] &= ~b1[0]; \
        !            73:                       dst[1] &= ~b1[1]
        !            74: #define ANYSET(src) (src[0] || src[1])
        !            75: #endif
        !            76: #if (mskcnt==3)
        !            77: #define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2];
        !            78: #define CLEARBITS(buf) buf[0] = 0; buf[1] = 0; buf[2] = 0
        !            79: #define MASKANDSETBITS(dst, b1, b2)  \
        !            80:                      dst[0] = (b1[0] & b2[0]);\
        !            81:                      dst[1] = (b1[1] & b2[1]);\
        !            82:                      dst[2] = (b1[2] & b2[2])
        !            83: #define ORBITS(dst, b1, b2)  \
        !            84:                      dst[0] = (b1[0] | b2[0]);\
        !            85:                      dst[1] = (b1[1] | b2[1]);\
        !            86:                      dst[2] = (b1[2] | b2[2])
        !            87: #define UNSETBITS(dst, b1) \
        !            88:                       dst[0] &= ~b1[0]; \
        !            89:                       dst[1] &= ~b1[1]; \
        !            90:                       dst[2] &= ~b1[2]
        !            91: #define ANYSET(src) (src[0] || src[1] || src[2])
        !            92: #endif
        !            93: #if (mskcnt==4)
        !            94: #define COPYBITS(src, dst) dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2];\
        !            95:                      dst[3] = src[3]
        !            96: #define CLEARBITS(buf) buf[0] = 0; buf[1] = 0; buf[2] = 0; buf[3] = 0
        !            97: #define MASKANDSETBITS(dst, b1, b2)  \
        !            98:                       dst[0] = (b1[0] & b2[0]);\
        !            99:                       dst[1] = (b1[1] & b2[1]);\
        !           100:                       dst[2] = (b1[2] & b2[2]);\
        !           101:                       dst[3] = (b1[3] & b2[3])
        !           102: #define ORBITS(dst, b1, b2)  \
        !           103:                       dst[0] = (b1[0] | b2[0]);\
        !           104:                       dst[1] = (b1[1] | b2[1]);\
        !           105:                       dst[2] = (b1[2] | b2[2]);\
        !           106:                       dst[3] = (b1[3] | b2[3])
        !           107: #define UNSETBITS(dst, b1) \
        !           108:                       dst[0] &= ~b1[0]; \
        !           109:                       dst[1] &= ~b1[1]; \
        !           110:                       dst[2] &= ~b1[2]; \
        !           111:                       dst[3] &= ~b1[3]
        !           112: #define ANYSET(src) (src[0] || src[1] || src[2] || src[3])
        !           113: #endif
        !           114: 
        !           115: #if (mskcnt>4)
        !           116: #define COPYBITS(src, dst) bcopy((caddr_t) src, (caddr_t) dst,\
        !           117:                                 mskcnt*sizeof(long))
        !           118: #define CLEARBITS(buf) bzero((caddr_t) buf, mskcnt*sizeof(long))
        !           119: #define MASKANDSETBITS(dst, b1, b2)  \
        !           120:                      for (cri=0; cri<mskcnt; cri++) \
        !           121:                          dst[cri] = (b1[cri] & b2[cri])
        !           122: #define ORBITS(dst, b1, b2)  \
        !           123:                      for (cri=0; cri<mskcnt; cri++) \
        !           124:                          dst[cri] = (b1[cri] | b2[cri])
        !           125: #define UNSETBITS(dst, b1) \
        !           126:                      for (cri=0; cri<mskcnt; cri++) \
        !           127:                          dst[cri] &= ~b1[cri]; 
        !           128: #define ANYSET(src) (src[0] || src[1] || src[2] || src[3])
        !           129: #endif
        !           130: 
        !           131: typedef struct _connectionInput {
        !           132:     int used;                  /* is this client connected */
        !           133:     char *buffer;               /* contains current client input */
        !           134:     char *bufptr;               /* pointer to current start of data */
        !           135:     int  bufcnt;                /* count of bytes in buffer */
        !           136:     int lenLastReq;
        !           137:     int size;
        !           138: } ConnectionInput;
        !           139: 
        !           140: typedef struct _osPriv {
        !           141:     int fd;
        !           142: } osPrivRec, *osPrivPtr;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.