/* $Xorg: lbxopts.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */ /* * Copyright 1994 Network Computing Devices, Inc. * * Permission to use, copy, modify, distribute, and sell this software and * its documentation for any purpose is hereby granted without fee, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name Network Computing Devices, Inc. not be * used in advertising or publicity pertaining to distribution of this * software without specific, written prior permission. * * THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC., * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT * LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK * COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING * SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, DATA, * OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF * WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ /* $XFree86: xc/include/extensions/lbxopts.h,v 1.5 2001/01/17 17:53:21 dawes Exp $ */ #ifndef _LBX_OPTS_H_ #define _LBX_OPTS_H_ /* * Negotiable configuration options */ #define LBX_OPT_DELTA_PROXY 0 #define LBX_OPT_DELTA_SERVER 1 #define LBX_OPT_STREAM_COMP 2 #define LBX_OPT_BITMAP_COMP 3 #define LBX_OPT_PIXMAP_COMP 4 #define LBX_OPT_MSG_COMP 5 /* aka "squishing" */ #define LBX_OPT_USE_TAGS 6 #define LBX_OPT_CMAP_ALL 7 #define LBX_OPT_EXTENSION 255 /* * Length fields are encoded in 1 or 3 bytes */ #define LBX_OPT_SMALLLEN_SIZE 1 #define LBX_OPT_BIGLEN_SIZE 3 #define LBX_OPT_BIGLEN_MIN 256 #define LBX_OPT_DECODE_LEN(p, len, size) \ if ((p)[0]) { \ (len) = (p)[0]; \ (size) = LBX_OPT_SMALLLEN_SIZE; \ } \ else { \ (len) = LBX_OPT_BIGLEN_MIN + (p)[1] << 8 | (p)[2]; \ (size) = LBX_OPT_BIGLEN_SIZE; \ } /* * Option header lengths */ #define LBX_OPT_SMALLHDR_LEN (1 + LBX_OPT_SMALLLEN_SIZE) #define LBX_OPT_BIGHDR_LEN (1 + LBX_OPT_BIGLEN_SIZE) /* * Delta compression parameters */ #define LBX_OPT_DELTA_REQLEN 6 #define LBX_OPT_DELTA_REPLYLEN 2 #define LBX_OPT_DELTA_NCACHE_DFLT 16 #define LBX_OPT_DELTA_MSGLEN_MIN 32 #define LBX_OPT_DELTA_MSGLEN_DFLT 64 /* * Stream compression opts */ #include #if defined(WIN32) || (defined(USG) && !defined(CRAY) && !defined(umips) && !defined(MOTOROLA) && !defined(uniosu) && !defined(__sxg__)) struct iovec { caddr_t iov_base; int iov_len; }; #else #ifndef Lynx #include #else #include #endif #endif typedef void *LbxStreamCompHandle; typedef struct _LbxStreamOpts { LbxStreamCompHandle (*streamCompInit)(int fd, pointer arg); pointer streamCompArg; int (*streamCompStuffInput)( int fd, unsigned char *buf, int buflen ); int (*streamCompInputAvail)( int fd ); int (*streamCompFlush)( int fd ); int (*streamCompRead)( int fd, unsigned char *buf, int buflen ); int (*streamCompWriteV)( int fd, struct iovec *iov, int iovcnt ); void (*streamCompOn)( int fd ); void (*streamCompOff)( int fd ); void (*streamCompFreeHandle)( LbxStreamCompHandle handle ); } LbxStreamOpts; #endif /* _LBX_OPTS_H_ */