| /* $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 <sys/types.h> |
| |
| #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 <sys/uio.h> |
| #else |
| #include <uio.h> |
| #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_ */ |