Annotation of researchv9/X11/src/X.V11R1/lib/X/Xlibos.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Xlib include file for 4.2BSD based systems.
        !             3:  */
        !             4: 
        !             5: #include <netinet/in.h>
        !             6: #include <sys/ioctl.h>
        !             7: #include <netdb.h>
        !             8: 
        !             9: #include <sys/uio.h>   /* needed for XlibInt.c */
        !            10: 
        !            11: #include <sys/param.h> /* needed for XConnDis.c */
        !            12: 
        !            13: #define MAXSOCKS ( NOFILE - 1 )
        !            14: #define MSKCNT ((MAXSOCKS + 31) / 32)  /* size of bit array */
        !            15: 
        !            16: #if (MSKCNT==1)
        !            17: #define BITMASK(i) (1 << (i))
        !            18: #define MASKIDX(i) 0
        !            19: #endif
        !            20: #if (MSKCNT>1)
        !            21: #define BITMASK(i) (1 << ((i) & 31))
        !            22: #define MASKIDX(i) ((i) >> 5)
        !            23: #endif
        !            24: 
        !            25: #define MASKWORD(buf, i) buf[MASKIDX(i)]
        !            26: #define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i)
        !            27: #define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
        !            28: #define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
        !            29: 
        !            30: #if (MSKCNT==1)
        !            31: #define COPYBITS(src, dst) dst[0] = src[0]
        !            32: #define CLEARBITS(buf) buf[0] = 0
        !            33: #define MASKANDSETBITS(dst, b1, b2) dst[0] = (b1[0] & b2[0])
        !            34: #define ORBITS(dst, b1, b2) dst[0] = (b1[0] | b2[0])
        !            35: #define UNSETBITS(dst, b1) (dst[0] &= ~b1[0])
        !            36: #define ANYSET(src) (src[0])
        !            37: #endif
        !            38: #if (MSKCNT==2)
        !            39: #define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; }
        !            40: #define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; }
        !            41: #define MASKANDSETBITS(dst, b1, b2)  {\
        !            42:                      dst[0] = (b1[0] & b2[0]);\
        !            43:                      dst[1] = (b1[1] & b2[1]); }
        !            44: #define ORBITS(dst, b1, b2)  {\
        !            45:                      dst[0] = (b1[0] | b2[0]);\
        !            46:                      dst[1] = (b1[1] | b2[1]); }
        !            47: #define UNSETBITS(dst, b1) {\
        !            48:                       dst[0] &= ~b1[0]; \
        !            49:                       dst[1] &= ~b1[1]; }
        !            50: #define ANYSET(src) (src[0] || src[1])
        !            51: #endif
        !            52: #if (MSKCNT==3)
        !            53: #define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2]; }
        !            54: #define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; buf[2] = 0; }
        !            55: #define MASKANDSETBITS(dst, b1, b2)  {\
        !            56:                      dst[0] = (b1[0] & b2[0]);\
        !            57:                      dst[1] = (b1[1] & b2[1]);\
        !            58:                      dst[2] = (b1[2] & b2[2]); }
        !            59: #define ORBITS(dst, b1, b2)  {\
        !            60:                      dst[0] = (b1[0] | b2[0]);\
        !            61:                      dst[1] = (b1[1] | b2[1]);\
        !            62:                      dst[2] = (b1[2] | b2[2]); }
        !            63: #define UNSETBITS(dst, b1) {\
        !            64:                       dst[0] &= ~b1[0]; \
        !            65:                       dst[1] &= ~b1[1]; \
        !            66:                       dst[2] &= ~b1[2]; }
        !            67: #define ANYSET(src) (src[0] || src[1] || src[2])
        !            68: #endif
        !            69: #if (MSKCNT>3)
        !            70: #define COPYBITS(src, dst) bcopy((caddr_t) src, (caddr_t) dst,\
        !            71:                                 MSKCNT*sizeof(long))
        !            72: #define CLEARBITS(buf) bzero((caddr_t) buf, MSKCNT*sizeof(long))
        !            73: #define MASKANDSETBITS(dst, b1, b2)  { int cri;\
        !            74:                      for (cri=0; i<MSKCNT; cri++) \
        !            75:                          dst[cri] = (b1[cri] & b2[cri]); }
        !            76: #define ORBITS(dst, b1, b2)  { int cri;\
        !            77:                      for (cri=0; i<MSKCNT; cri++) \
        !            78:                          dst[cri] = (b1[cri] | b2[cri]); }
        !            79: #define UNSETBITS(dst, b1)  { int cri;\
        !            80:                      for (cri=0; i<MSKCNT; cri++) \
        !            81:                          dst[cri] &= ~b1[cri]; }
        !            82: #define ANYSET(src) (src[0] || src[1] || src[2])
        !            83: #endif
        !            84: 
        !            85: char *malloc(), *realloc(), *calloc(), *alloca();
        !            86: 
        !            87: char *strncpy(), *strncat();
        !            88: 
        !            89: void exit();
        !            90: void bcopy();
        !            91: void perror();
        !            92: void free();
        !            93: 
        !            94: #define LockDisplay(dis)
        !            95: #define LockMutex(mutex)
        !            96: #define UnlockMutex(mutex)
        !            97: #define UnlockDisplay(dis)
        !            98: #define Xfree(ptr) free((ptr))
        !            99: #define Xalloca(size) alloca((size))
        !           100: /*
        !           101:  * Note that some machines do not return a valid pointer for malloc(0), in
        !           102:  * which case we provide an alternate under the control of the
        !           103:  * define MALLOC_0_RETURNS_NULL.  This is necessary because some
        !           104:  * Xlib code expects malloc(0) to return a valid pointer to storage.
        !           105:  */
        !           106: #ifdef MALLOC_0_RETURNS_NULL
        !           107: 
        !           108: # define Xmalloc(size) malloc(max((size),1))
        !           109: # define Xrealloc(ptr, size) realloc((ptr), max((size),1))
        !           110: # define Xcalloc(nelem, elsize) calloc(max((nelem),1), (elsize))
        !           111: 
        !           112: #else
        !           113: 
        !           114: # define Xmalloc(size) malloc((size))
        !           115: # define Xrealloc(ptr, size) realloc((ptr), (size))
        !           116: # define Xcalloc(nelem, elsize) calloc((nelem), (elsize))
        !           117: 
        !           118: #endif
        !           119: 
        !           120: #define BytesReadable(fd, ptr) ioctl ((fd), FIONREAD, (ptr))
        !           121: #define ReadFromServer(dpy, data, size) read((dpy), (data), (size))
        !           122: #define ReadvFromServer(dpy, iov, iovcnt) readv((dpy), (iov), (iovcnt))
        !           123: #define WriteToServer(dpy, bufind, size) write((dpy), (bufind), (size))
        !           124: #define WritevToServer(dpy, iov, iovcnt) writev((dpy), (iov), (iovcnt))
        !           125: /*
        !           126:  *     ReadvFromServer and WritevToSever use struct iovec, normally found
        !           127:  *     in Berkeley systems in <sys/uio.h>.  See the readv(2) and writev(2)
        !           128:  *     manual pages for details.
        !           129:  *
        !           130:  *     struct iovec {
        !           131:  *             caddr_t iov_base;
        !           132:  *             int iov_len;
        !           133:  *     };
        !           134:  */
        !           135: 
        !           136: extern char *index();
        !           137: #define SearchString(string, char) index((string), (char))
        !           138: 
        !           139: #define KeymapDefault "/.X11keymap"
        !           140: #define ErrorDataBase "/usr/lib/X11/XErrorDB"

unix.superglobalmegacorp.com

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