|
|
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"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.