Annotation of researchv9/X11/src/X.V11R1/lib/X/Xlibos.h, revision 1.1.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.