Annotation of 43BSDReno/contrib/isode-beta/others/X/client/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 MSKCNT ((NOFILE + 31) / 32)    /* size of bit array */
        !            14: 
        !            15: #if (MSKCNT==1)
        !            16: #define BITMASK(i) (1 << (i))
        !            17: #define MASKIDX(i) 0
        !            18: #endif
        !            19: #if (MSKCNT>1)
        !            20: #define BITMASK(i) (1 << ((i) & 31))
        !            21: #define MASKIDX(i) ((i) >> 5)
        !            22: #endif
        !            23: 
        !            24: #define MASKWORD(buf, i) buf[MASKIDX(i)]
        !            25: #define BITSET(buf, i) MASKWORD(buf, i) |= BITMASK(i)
        !            26: #define BITCLEAR(buf, i) MASKWORD(buf, i) &= ~BITMASK(i)
        !            27: #define GETBIT(buf, i) (MASKWORD(buf, i) & BITMASK(i))
        !            28: 
        !            29: #if (MSKCNT==1)
        !            30: #define COPYBITS(src, dst) dst[0] = src[0]
        !            31: #define CLEARBITS(buf) buf[0] = 0
        !            32: #define MASKANDSETBITS(dst, b1, b2) dst[0] = (b1[0] & b2[0])
        !            33: #define ORBITS(dst, b1, b2) dst[0] = (b1[0] | b2[0])
        !            34: #define UNSETBITS(dst, b1) (dst[0] &= ~b1[0])
        !            35: #define ANYSET(src) (src[0])
        !            36: #endif
        !            37: #if (MSKCNT==2)
        !            38: #define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; }
        !            39: #define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; }
        !            40: #define MASKANDSETBITS(dst, b1, b2)  {\
        !            41:                      dst[0] = (b1[0] & b2[0]);\
        !            42:                      dst[1] = (b1[1] & b2[1]); }
        !            43: #define ORBITS(dst, b1, b2)  {\
        !            44:                      dst[0] = (b1[0] | b2[0]);\
        !            45:                      dst[1] = (b1[1] | b2[1]); }
        !            46: #define UNSETBITS(dst, b1) {\
        !            47:                       dst[0] &= ~b1[0]; \
        !            48:                       dst[1] &= ~b1[1]; }
        !            49: #define ANYSET(src) (src[0] || src[1])
        !            50: #endif
        !            51: #if (MSKCNT==3)
        !            52: #define COPYBITS(src, dst) { dst[0] = src[0]; dst[1] = src[1]; dst[2] = src[2]; }
        !            53: #define CLEARBITS(buf) { buf[0] = 0; buf[1] = 0; buf[2] = 0; }
        !            54: #define MASKANDSETBITS(dst, b1, b2)  {\
        !            55:                      dst[0] = (b1[0] & b2[0]);\
        !            56:                      dst[1] = (b1[1] & b2[1]);\
        !            57:                      dst[2] = (b1[2] & b2[2]); }
        !            58: #define ORBITS(dst, b1, b2)  {\
        !            59:                      dst[0] = (b1[0] | b2[0]);\
        !            60:                      dst[1] = (b1[1] | b2[1]);\
        !            61:                      dst[2] = (b1[2] | b2[2]); }
        !            62: #define UNSETBITS(dst, b1) {\
        !            63:                       dst[0] &= ~b1[0]; \
        !            64:                       dst[1] &= ~b1[1]; \
        !            65:                       dst[2] &= ~b1[2]; }
        !            66: #define ANYSET(src) (src[0] || src[1] || src[2])
        !            67: #endif
        !            68: #if (MSKCNT>3)
        !            69: #define COPYBITS(src, dst) bcopy((caddr_t) src, (caddr_t) dst,\
        !            70:                                 MSKCNT*sizeof(long))
        !            71: #define CLEARBITS(buf) bzero((caddr_t) buf, MSKCNT*sizeof(long))
        !            72: #define MASKANDSETBITS(dst, b1, b2)  { int cri;\
        !            73:                      for (cri=0; i<MSKCNT; cri++) \
        !            74:                          dst[cri] = (b1[cri] & b2[cri]); }
        !            75: #define ORBITS(dst, b1, b2)  { int cri;\
        !            76:                      for (cri=0; i<MSKCNT; cri++) \
        !            77:                          dst[cri] = (b1[cri] | b2[cri]); }
        !            78: #define UNSETBITS(dst, b1)  { int cri;\
        !            79:                      for (cri=0; i<MSKCNT; cri++) \
        !            80:                          dst[cri] &= ~b1[cri]; }
        !            81: #define ANYSET(src) (src[0] || src[1] || src[2])
        !            82: #endif
        !            83: 
        !            84: char *malloc(), *realloc(), *calloc(), *alloca();
        !            85: 
        !            86: char *strncpy(), *strncat();
        !            87: 
        !            88: void exit();
        !            89: void bcopy();
        !            90: void perror();
        !            91: void free();
        !            92: 
        !            93: #define LockDisplay(dis)
        !            94: #define LockMutex(mutex)
        !            95: #define UnlockMutex(mutex)
        !            96: #define UnlockDisplay(dis)
        !            97: #define Xfree(ptr) free((ptr))
        !            98: #define Xalloca(size) alloca((size))
        !            99: 
        !           100: #if (defined ibm032)&&(defined __HIGHC__)
        !           101: pragma on(alloca);
        !           102: #endif
        !           103: 
        !           104: /*
        !           105:  * Note that some machines do not return a valid pointer for malloc(0), in
        !           106:  * which case we provide an alternate under the control of the
        !           107:  * define MALLOC_0_RETURNS_NULL.  This is necessary because some
        !           108:  * Xlib code expects malloc(0) to return a valid pointer to storage.
        !           109:  */
        !           110: #ifdef MALLOC_0_RETURNS_NULL
        !           111: 
        !           112: # define Xmalloc(size) malloc(((size) > 0 ? (size) : 1))
        !           113: # define Xrealloc(ptr, size) realloc((ptr), ((size) > 0 ? (size) : 1))
        !           114: # define Xcalloc(nelem, elsize) calloc(((nelem) > 0 ? (nelem) : 1), (elsize))
        !           115: 
        !           116: #else
        !           117: 
        !           118: # define Xmalloc(size) malloc((size))
        !           119: # define Xrealloc(ptr, size) realloc((ptr), (size))
        !           120: # define Xcalloc(nelem, elsize) calloc((nelem), (elsize))
        !           121: 
        !           122: #endif
        !           123: 
        !           124: #ifdef ISOCONN
        !           125: /*
        !           126:  * Should pick up next from server header file...
        !           127:  */
        !           128: #define MAXSOCKS 64
        !           129: 
        !           130: #define UNIX_IO 0
        !           131: #define ISODE_IO 1
        !           132: 
        !           133: #define BytesReadable(fd, ptr) \
        !           134: ioctlfn[fd2family[fd]](fd, ptr)
        !           135: 
        !           136: #define ReadFromServer(fd, data, size) \
        !           137: readfn[fd2family[fd]]((fd), (data), (size))
        !           138: 
        !           139: #define WriteToServer(fd, bufind, size) \
        !           140: writefn[fd2family[fd]]((fd), (bufind), (size))
        !           141: 
        !           142: #define ReadvFromServer(fd, iov, iovcnt) \
        !           143: readvfn[fd2family[fd]]((fd), (iov), (iovcnt))
        !           144: 
        !           145: #define WritevToServer(fd, iov, iovcnt) \
        !           146: writevfn[fd2family[fd]]((fd), (iov), (iovcnt))
        !           147: 
        !           148: #define CloseToServer(fd) \
        !           149: closefn[fd2family[fd]](fd)
        !           150: 
        !           151: extern int isodexbug;
        !           152: 
        !           153: #else /* ISOCONN */
        !           154: #define BytesReadable(fd, ptr) ioctl ((fd), FIONREAD, (ptr))
        !           155: #if !defined (mips) || !defined (SYSTYPE_SYSV)
        !           156: #define ReadFromServer(dpy, data, size) read((dpy), (data), (size))
        !           157: #define WriteToServer(dpy, bufind, size) write((dpy), (bufind), (size))
        !           158: #endif /* !mips || !SYSTYPE_SYSV */
        !           159: #define ReadvFromServer(dpy, iov, iovcnt) readv((dpy), (iov), (iovcnt))
        !           160: #define WritevToServer(dpy, iov, iovcnt) writev((dpy), (iov), (iovcnt))
        !           161: #endif /* ISOCONN */
        !           162: /*
        !           163:  *     ReadvFromServer and WritevToSever use struct iovec, normally found
        !           164:  *     in Berkeley systems in <sys/uio.h>.  See the readv(2) and writev(2)
        !           165:  *     manual pages for details.
        !           166:  *
        !           167:  *     struct iovec {
        !           168:  *             caddr_t iov_base;
        !           169:  *             int iov_len;
        !           170:  *     };
        !           171:  */
        !           172: 
        !           173: extern char *index();
        !           174: #define SearchString(string, char) index((string), (char))

unix.superglobalmegacorp.com

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