Annotation of 43BSDReno/contrib/isode-beta/others/X/client/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 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.