aboutsummaryrefslogtreecommitdiff
path: root/X11/extensions/lbxproto.h
diff options
context:
space:
mode:
Diffstat (limited to 'X11/extensions/lbxproto.h')
-rw-r--r--X11/extensions/lbxproto.h1950
1 files changed, 975 insertions, 975 deletions
diff --git a/X11/extensions/lbxproto.h b/X11/extensions/lbxproto.h
index a1ae62ba4..fdd8b4b64 100644
--- a/X11/extensions/lbxproto.h
+++ b/X11/extensions/lbxproto.h
@@ -1,975 +1,975 @@
-/*
- * Copyright 1992 Network Computing Devices
- *
- * 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 of NCD. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. NCD. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#ifndef _LBXPROTO_H_
-#define _LBXPROTO_H_
-
-#include <X11/extensions/lbx.h>
-/*
- * NOTE: any changes or additions to the opcodes needs to be reflected
- * in the lbxCacheable array in Xserver/lbx/lbxmain.c
- */
-
-#define X_LbxQueryVersion 0
-#define X_LbxStartProxy 1
-#define X_LbxStopProxy 2
-#define X_LbxSwitch 3
-#define X_LbxNewClient 4
-#define X_LbxCloseClient 5
-#define X_LbxModifySequence 6
-#define X_LbxAllowMotion 7
-#define X_LbxIncrementPixel 8
-#define X_LbxDelta 9
-#define X_LbxGetModifierMapping 10
-#define X_LbxInvalidateTag 12
-#define X_LbxPolyPoint 13
-#define X_LbxPolyLine 14
-#define X_LbxPolySegment 15
-#define X_LbxPolyRectangle 16
-#define X_LbxPolyArc 17
-#define X_LbxFillPoly 18
-#define X_LbxPolyFillRectangle 19
-#define X_LbxPolyFillArc 20
-#define X_LbxGetKeyboardMapping 21
-#define X_LbxQueryFont 22
-#define X_LbxChangeProperty 23
-#define X_LbxGetProperty 24
-#define X_LbxTagData 25
-
-#define X_LbxCopyArea 26
-#define X_LbxCopyPlane 27
-#define X_LbxPolyText8 28
-#define X_LbxPolyText16 29
-#define X_LbxImageText8 30
-#define X_LbxImageText16 31
-
-#define X_LbxQueryExtension 32
-#define X_LbxPutImage 33
-#define X_LbxGetImage 34
-
-#define X_LbxBeginLargeRequest 35
-#define X_LbxLargeRequestData 36
-#define X_LbxEndLargeRequest 37
-
-#define X_LbxInternAtoms 38
-#define X_LbxGetWinAttrAndGeom 39
-
-#define X_LbxGrabCmap 40
-#define X_LbxReleaseCmap 41
-#define X_LbxAllocColor 42
-
-#define X_LbxSync 43
-
-/*
- * Redefine some basic types used by structures defined herein. This removes
- * any possibility on 64-bit architectures of one entity viewing communicated
- * data as 32-bit quantities and another entity viewing the same data as 64-bit
- * quantities.
- */
-#define XID CARD32
-#define Atom CARD32
-#define Colormap CARD32
-#define Drawable CARD32
-#define VisualID CARD32
-#define Window CARD32
-
-typedef struct {
- BOOL success; /* TRUE */
- BOOL changeType;
- CARD16 majorVersion B16,
- minorVersion B16;
- CARD16 length B16; /* 1/4 additional bytes in setup info */
- CARD32 tag B32;
-} xLbxConnSetupPrefix;
-
-typedef struct _LbxQueryVersion {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxQueryVersion */
- CARD16 length B16;
-} xLbxQueryVersionReq;
-#define sz_xLbxQueryVersionReq 4
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 unused;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD16 majorVersion B16; /* major version of LBX protocol */
- CARD16 minorVersion B16; /* minor version of LBX protocol */
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxQueryVersionReply;
-#define sz_xLbxQueryVersionReply 32
-
-typedef struct _LbxStartProxy {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxStartProxy */
- CARD16 length B16;
-} xLbxStartProxyReq;
-#define sz_xLbxStartProxyReq 4
-
-typedef struct _LbxStopProxy {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxStopProxy */
- CARD16 length B16;
-} xLbxStopProxyReq;
-#define sz_xLbxStopProxyReq 4
-
-typedef struct _LbxSwitch {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxSwitch */
- CARD16 length B16;
- CARD32 client B32; /* new client */
-} xLbxSwitchReq;
-#define sz_xLbxSwitchReq 8
-
-typedef struct _LbxNewClient {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxNewClient */
- CARD16 length B16;
- CARD32 client B32; /* new client */
-} xLbxNewClientReq;
-#define sz_xLbxNewClientReq 8
-
-typedef struct _LbxCloseClient {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxCloseClient */
- CARD16 length B16;
- CARD32 client B32; /* new client */
-} xLbxCloseClientReq;
-#define sz_xLbxCloseClientReq 8
-
-typedef struct _LbxModifySequence {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxModifySequence */
- CARD16 length B16;
- CARD32 adjust B32;
-} xLbxModifySequenceReq;
-#define sz_xLbxModifySequenceReq 8
-
-typedef struct _LbxAllowMotion {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxAllowMotion */
- CARD16 length B16;
- CARD32 num B32;
-} xLbxAllowMotionReq;
-#define sz_xLbxAllowMotionReq 8
-
-typedef struct {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxGrabCmap */
- CARD16 length B16;
- Colormap cmap B32;
-} xLbxGrabCmapReq;
-#define sz_xLbxGrabCmapReq 8
-
-#define LBX_SMART_GRAB 0x80
-#define LBX_AUTO_RELEASE 0x40
-#define LBX_3CHANNELS 0x20
-#define LBX_2BYTE_PIXELS 0x10
-#define LBX_RGB_BITS_MASK 0x0f
-
-#define LBX_LIST_END 0
-#define LBX_PIXEL_PRIVATE 1
-#define LBX_PIXEL_SHARED 2
-#define LBX_PIXEL_RANGE_PRIVATE 3
-#define LBX_PIXEL_RANGE_SHARED 4
-#define LBX_NEXT_CHANNEL 5
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 flags;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 pad0 B16;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B16;
-} xLbxGrabCmapReply;
-#define sz_xLbxGrabCmapReply 32
-#define sz_xLbxGrabCmapReplyHdr 8
-
-
-typedef struct {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxReleaseCmap */
- CARD16 length B16;
- Colormap cmap B32;
-} xLbxReleaseCmapReq;
-#define sz_xLbxReleaseCmapReq 8
-
-typedef struct {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxAllocColor */
- CARD16 length B16;
- Colormap cmap B32;
- CARD32 pixel B32;
- CARD16 red B16, green B16, blue B16;
- CARD16 pad B16;
-} xLbxAllocColorReq;
-#define sz_xLbxAllocColorReq 20
-
-typedef struct _LbxIncrementPixel {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxIncrementPixel */
- CARD16 length B16;
- CARD32 cmap B32;
- CARD32 pixel B32;
-} xLbxIncrementPixelReq;
-#define sz_xLbxIncrementPixelReq 12
-
-typedef struct _LbxDelta {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxDelta */
- CARD16 length B16;
- CARD8 diffs; /* number of diffs */
- CARD8 cindex; /* cache index */
- /* list of diffs follows */
-} xLbxDeltaReq;
-#define sz_xLbxDeltaReq 6
-
-typedef struct _LbxGetModifierMapping {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxGetModifierMapping */
- CARD16 length B16;
-} xLbxGetModifierMappingReq;
-#define sz_xLbxGetModifierMappingReq 4
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 keyspermod;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 tag B32;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxGetModifierMappingReply;
-#define sz_xLbxGetModifierMappingReply 32
-
-typedef struct _LbxGetKeyboardMapping {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxGetKeyboardMapping */
- CARD16 length B16;
- KeyCode firstKeyCode;
- CARD8 count;
- CARD16 pad1 B16;
-} xLbxGetKeyboardMappingReq;
-#define sz_xLbxGetKeyboardMappingReq 8
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 keysperkeycode;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 tag B32;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxGetKeyboardMappingReply;
-#define sz_xLbxGetKeyboardMappingReply 32
-
-typedef struct _LbxQueryFont {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxQueryFont */
- CARD16 length B16;
- CARD32 fid B32;
-} xLbxQueryFontReq;
-#define sz_xLbxQueryFontReq 8
-
-typedef struct _LbxInternAtoms {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxInternAtoms */
- CARD16 length B16;
- CARD16 num B16;
-} xLbxInternAtomsReq;
-#define sz_xLbxInternAtomsReq 6
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 unused;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 atomsStart B32;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxInternAtomsReply;
-#define sz_xLbxInternAtomsReply 32
-#define sz_xLbxInternAtomsReplyHdr 8
-
-
-typedef struct _LbxGetWinAttrAndGeom {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxGetWinAttrAndGeom */
- CARD16 length B16;
- CARD32 id B32; /* window id */
-} xLbxGetWinAttrAndGeomReq;
-#define sz_xLbxGetWinAttrAndGeomReq 8
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 backingStore;
- CARD16 sequenceNumber B16;
- CARD32 length B32; /* NOT 0; this is an extra-large reply */
- VisualID visualID B32;
-#if defined(__cplusplus) || defined(c_plusplus)
- CARD16 c_class B16;
-#else
- CARD16 class B16;
-#endif
- CARD8 bitGravity;
- CARD8 winGravity;
- CARD32 backingBitPlanes B32;
- CARD32 backingPixel B32;
- BOOL saveUnder;
- BOOL mapInstalled;
- CARD8 mapState;
- BOOL override;
- Colormap colormap B32;
- CARD32 allEventMasks B32;
- CARD32 yourEventMask B32;
- CARD16 doNotPropagateMask B16;
- CARD16 pad1 B16;
- Window root B32;
- INT16 x B16, y B16;
- CARD16 width B16, height B16;
- CARD16 borderWidth B16;
- CARD8 depth;
- CARD8 pad2;
-} xLbxGetWinAttrAndGeomReply;
-#define sz_xLbxGetWinAttrAndGeomReply 60
-
-
-typedef struct {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxSync */
- CARD16 length B16;
-} xLbxSyncReq;
-#define sz_xLbxSyncReq 4
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 pad0;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
-} xLbxSyncReply;
-#define sz_xLbxSyncReply 32
-
-
-/* an LBX squished charinfo packs the data in a CARD32 as follows */
-#define LBX_WIDTH_SHIFT 26
-#define LBX_LEFT_SHIFT 20
-#define LBX_RIGHT_SHIFT 13
-#define LBX_ASCENT_SHIFT 7
-#define LBX_DESCENT_SHIFT 0
-
-#define LBX_WIDTH_BITS 6
-#define LBX_LEFT_BITS 6
-#define LBX_RIGHT_BITS 7
-#define LBX_ASCENT_BITS 6
-#define LBX_DESCENT_BITS 7
-
-#define LBX_WIDTH_MASK 0xfc000000
-#define LBX_LEFT_MASK 0x03f00000
-#define LBX_RIGHT_MASK 0x000fe000
-#define LBX_ASCENT_MASK 0x00001f80
-#define LBX_DESCENT_MASK 0x0000007f
-
-#define LBX_MASK_BITS(val, n) ((unsigned int) ((val) & ((1 << (n)) - 1)))
-
-typedef struct {
- CARD32 metrics B32;
-} xLbxCharInfo;
-
-/* note that this is identical to xQueryFontReply except for missing
- * first 2 words
- */
-typedef struct {
- xCharInfo minBounds;
-/* XXX do we need to leave this gunk? */
-#ifndef WORD64
- CARD32 walign1 B32;
-#endif
- xCharInfo maxBounds;
-#ifndef WORD64
- CARD32 walign2 B32;
-#endif
- CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
- CARD16 defaultChar B16;
- CARD16 nFontProps B16; /* followed by this many xFontProp structures */
- CARD8 drawDirection;
- CARD8 minByte1, maxByte1;
- BOOL allCharsExist;
- INT16 fontAscent B16, fontDescent B16;
- CARD32 nCharInfos B32; /* followed by this many xLbxCharInfo structures */
-} xLbxFontInfo;
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 compression;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 tag B32;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- /* X_QueryFont sticks much of the data in the base reply packet,
- * but we hope that it won't be needed, (and it won't fit in 32 bytes
- * with the tag anyways)
- *
- * if any additional data is needed, its sent in a xLbxFontInfo
- */
-} xLbxQueryFontReply;
-#define sz_xLbxQueryFontReply 32
-
-typedef struct _LbxChangeProperty {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxChangeProperty */
- CARD16 length B16;
- Window window B32;
- Atom property B32;
- Atom type B32;
- CARD8 format;
- CARD8 mode;
- BYTE pad[2];
- CARD32 nUnits B32;
-} xLbxChangePropertyReq;
-#define sz_xLbxChangePropertyReq 24
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 pad;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 tag B32;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxChangePropertyReply;
-#define sz_xLbxChangePropertyReply 32
-
-typedef struct _LbxGetProperty {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxGetProperty */
- CARD16 length B16;
- Window window B32;
- Atom property B32;
- Atom type B32;
- CARD8 delete;
- BYTE pad[3];
- CARD32 longOffset B32;
- CARD32 longLength B32;
-} xLbxGetPropertyReq;
-#define sz_xLbxGetPropertyReq 28
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 format;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- Atom propertyType B32;
- CARD32 bytesAfter B32;
- CARD32 nItems B32;
- CARD32 tag B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
-} xLbxGetPropertyReply;
-#define sz_xLbxGetPropertyReply 32
-
-typedef struct _LbxTagData {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxTagData */
- CARD16 length B16;
- XID tag B32;
- CARD32 real_length B32;
- /* data */
-} xLbxTagDataReq;
-#define sz_xLbxTagDataReq 12
-
-typedef struct _LbxInvalidateTag {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxInvalidateTag */
- CARD16 length B16;
- CARD32 tag B32;
-} xLbxInvalidateTagReq;
-#define sz_xLbxInvalidateTagReq 8
-
-typedef struct _LbxPutImage {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxPutImage */
- CARD16 length B16;
- CARD8 compressionMethod;
- CARD8 cacheEnts;
- CARD8 bitPacked;
- /* rest is variable */
-} xLbxPutImageReq;
-#define sz_xLbxPutImageReq 7
-
-typedef struct {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxGetImage */
- CARD16 length B16;
- Drawable drawable B32;
- INT16 x B16, y B16;
- CARD16 width B16, height B16;
- CARD32 planeMask B32;
- CARD8 format;
- CARD8 pad1;
- CARD16 pad2 B16;
-} xLbxGetImageReq;
-
-#define sz_xLbxGetImageReq 24
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 depth;
- CARD16 sequenceNumber B16;
- CARD32 lbxLength B32;
- CARD32 xLength B32;
- VisualID visual B32;
- CARD8 compressionMethod;
- CARD8 pad1;
- CARD16 pad2 B16;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
-} xLbxGetImageReply;
-
-#define sz_xLbxGetImageReply 32
-
-/* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment,
- LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */
-
-#define GFX_CACHE_SIZE 15
-
-#define GFXdCacheEnt(e) ((e) & 0xf)
-#define GFXgCacheEnt(e) (((e) >> 4) & 0xf)
-#define GFXCacheEnts(d,g) (((d) & 0xf) | (((g) & 0xf) << 4))
-
-#define GFXCacheNone 0xf
-
-typedef struct _LbxPolyPoint {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType;
- CARD16 length B16;
- CARD8 cacheEnts;
- CARD8 padBytes;
-} xLbxPolyPointReq;
-
-#define sz_xLbxPolyPointReq 6
-
-typedef xLbxPolyPointReq xLbxPolyLineReq;
-typedef xLbxPolyPointReq xLbxPolySegmentReq;
-typedef xLbxPolyPointReq xLbxPolyRectangleReq;
-typedef xLbxPolyPointReq xLbxPolyArcReq;
-typedef xLbxPolyPointReq xLbxPolyFillRectangleReq;
-typedef xLbxPolyPointReq xLbxPolyFillArcReq;
-
-#define sz_xLbxPolyLineReq sz_xLbxPolyPointReq
-#define sz_xLbxPolySegmentReq sz_xLbxPolyPointReq
-#define sz_xLbxPolyRectangleReq sz_xLbxPolyPointReq
-#define sz_xLbxPolyArcReq sz_xLbxPolyPointReq
-#define sz_xLbxPolyFillRectangleReq sz_xLbxPolyPointReq
-#define sz_xLbxPolyFillArc sz_xLbxPolyPointReq
-
-typedef struct _LbxFillPoly {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType;
- CARD16 length B16;
- CARD8 cacheEnts;
- BYTE shape;
- CARD8 padBytes;
-} xLbxFillPolyReq;
-#define sz_xLbxFillPolyReq 7
-
-typedef struct _LbxCopyArea {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType;
- CARD16 length B16;
- CARD8 srcCache; /* source drawable */
- CARD8 cacheEnts; /* dest drawable and gc */
- /* followed by encoded src x, src y, dst x, dst y, width, height */
-} xLbxCopyAreaReq;
-
-#define sz_xLbxCopyAreaReq 6
-
-typedef struct _LbxCopyPlane {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType;
- CARD16 length B16;
- CARD32 bitPlane B32;
- CARD8 srcCache; /* source drawable */
- CARD8 cacheEnts; /* dest drawable and gc */
- /* followed by encoded src x, src y, dst x, dst y, width, height */
-} xLbxCopyPlaneReq;
-
-#define sz_xLbxCopyPlaneReq 10
-
-typedef struct _LbxPolyText {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType;
- CARD16 length B16;
- CARD8 cacheEnts;
- /* followed by encoded src x, src y coordinates and text elts */
-} xLbxPolyTextReq;
-
-#define sz_xLbxPolyTextReq 5
-
-typedef xLbxPolyTextReq xLbxPolyText8Req;
-typedef xLbxPolyTextReq xLbxPolyText16Req;
-
-#define sz_xLbxPolyTextReq 5
-#define sz_xLbxPolyText8Req 5
-#define sz_xLbxPolyText16Req 5
-
-typedef struct _LbxImageText {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType;
- CARD16 length B16;
- CARD8 cacheEnts;
- CARD8 nChars;
- /* followed by encoded src x, src y coordinates and string */
-} xLbxImageTextReq;
-
-typedef xLbxImageTextReq xLbxImageText8Req;
-typedef xLbxImageTextReq xLbxImageText16Req;
-
-#define sz_xLbxImageTextReq 6
-#define sz_xLbxImageText8Req 6
-#define sz_xLbxImageText16Req 6
-
-typedef struct {
- CARD8 offset;
- CARD8 diff;
-} xLbxDiffItem;
-#define sz_xLbxDiffItem 2
-
-typedef struct {
- BYTE type; /* X_Reply */
- CARD8 nOpts;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- CARD32 optDataStart B32;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxStartReply;
-#define sz_xLbxStartReply 32
-#define sz_xLbxStartReplyHdr 8
-
-typedef struct _LbxQueryExtension {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxQueryExtension */
- CARD16 length B16;
- CARD32 nbytes B32;
-} xLbxQueryExtensionReq;
-#define sz_xLbxQueryExtensionReq 8
-
-typedef struct _LbxQueryExtensionReply {
- BYTE type; /* X_Reply */
- CARD8 numReqs;
- CARD16 sequenceNumber B16;
- CARD32 length B32;
- BOOL present;
- CARD8 major_opcode;
- CARD8 first_event;
- CARD8 first_error;
- CARD32 pad0 B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-
- /* reply & event generating requests */
-} xLbxQueryExtensionReply;
-#define sz_xLbxQueryExtensionReply 32
-
-
-typedef struct _LbxBeginLargeRequest {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxBeginLargeRequest */
- CARD16 length B16;
- CARD32 largeReqLength B32;
-} xLbxBeginLargeRequestReq;
-#define sz_BeginLargeRequestReq 8
-
-typedef struct _LbxLargeRequestData {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxLargeRequestData */
- CARD16 length B16;
- /* followed by LISTofCARD8 data */
-} xLbxLargeRequestDataReq;
-#define sz_LargeRequestDataReq 4
-
-typedef struct _LbxEndLargeRequest {
- CARD8 reqType; /* always LbxReqCode */
- CARD8 lbxReqType; /* always X_LbxEndLargeRequest */
- CARD16 length B16;
-} xLbxEndLargeRequestReq;
-#define sz_EndLargeRequestReq 4
-
-
-
-typedef struct _LbxSwitchEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxSwitchEvent */
- CARD16 pad B16;
- CARD32 client B32;
-} xLbxSwitchEvent;
-#define sz_xLbxSwitchEvent 8
-
-typedef struct _LbxCloseEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxCloseEvent */
- CARD16 sequenceNumber B16;
- CARD32 client B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
-} xLbxCloseEvent;
-#define sz_xLbxCloseEvent 32
-
-typedef struct _LbxInvalidateTagEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxInvalidateTagEvent */
- CARD16 sequenceNumber B16;
- CARD32 tag B32;
- CARD32 tagType B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
-} xLbxInvalidateTagEvent;
-#define sz_xLbxInvalidateTagEvent 32
-
-typedef struct _LbxSendTagDataEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxSendTagDataEvent */
- CARD16 sequenceNumber B16;
- CARD32 tag B32;
- CARD32 tagType B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
-} xLbxSendTagDataEvent;
-#define sz_xLbxSendTagDataEvent 32
-
-typedef struct _LbxListenToOneEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxListenToOneEvent */
- CARD16 sequenceNumber B16;
- CARD32 client B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
-} xLbxListenToOneEvent;
-#define sz_xLbxListenToOneEvent 32
-
-typedef struct _LbxListenToAllEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxListenToAllEvent */
- CARD16 sequenceNumber B16;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
- CARD32 pad7 B32;
-} xLbxListenToAllEvent;
-#define sz_xLbxListenToOneEvent 32
-
-typedef struct _LbxReleaseCmapEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxReleaseCmapEvent */
- CARD16 sequenceNumber B16;
- Colormap colormap B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
- CARD32 pad5 B32;
- CARD32 pad6 B32;
-} xLbxReleaseCmapEvent;
-#define sz_xLbxReleaseCmapEvent 32
-
-
-typedef struct _LbxFreeCellsEvent {
- BYTE type; /* always eventBase + LbxEvent */
- BYTE lbxType; /* LbxFreeCellsEvent */
- CARD16 sequenceNumber B16;
- Colormap colormap B32;
- CARD32 pixelStart B32;
- CARD32 pixelEnd B32;
- CARD32 pad1 B32;
- CARD32 pad2 B32;
- CARD32 pad3 B32;
- CARD32 pad4 B32;
-} xLbxFreeCellsEvent;
-#define sz_xLbxFreeCellsEvent 32
-
-
-/*
- * squished X event sizes. If these change, be sure to update lbxquish.c
- * and unsquish.c appropriately
- *
- * lbxsz_* is the padded squished length
- * lbxupsz_* is the unpadded squished length
- */
-
-#define lbxsz_KeyButtonEvent 32
-#define lbxupsz_KeyButtonEvent 31
-
-#define lbxsz_EnterLeaveEvent 32
-#define lbxupsz_EnterLeaveEvent 32
-
-#define lbxsz_FocusEvent 12
-#define lbxupsz_FocusEvent 9
-
-#define lbxsz_KeymapEvent 32
-#define lbxupsz_KeymapEvent 32
-
-#define lbxsz_ExposeEvent 20
-#define lbxupsz_ExposeEvent 18
-
-#define lbxsz_GfxExposeEvent 24
-#define lbxupsz_GfxExposeEvent 21
-
-#define lbxsz_NoExposeEvent 12
-#define lbxupsz_NoExposeEvent 11
-
-#define lbxsz_VisibilityEvent 12
-#define lbxupsz_VisibilityEvent 9
-
-#define lbxsz_CreateNotifyEvent 24
-#define lbxupsz_CreateNotifyEvent 23
-
-#define lbxsz_DestroyNotifyEvent 12
-#define lbxupsz_DestroyNotifyEvent 12
-
-#define lbxsz_UnmapNotifyEvent 16
-#define lbxupsz_UnmapNotifyEvent 13
-
-#define lbxsz_MapNotifyEvent 16
-#define lbxupsz_MapNotifyEvent 13
-
-#define lbxsz_MapRequestEvent 12
-#define lbxupsz_MapRequestEvent 12
-
-#define lbxsz_ReparentEvent 24
-#define lbxupsz_ReparentEvent 21
-
-#define lbxsz_ConfigureNotifyEvent 28
-#define lbxupsz_ConfigureNotifyEvent 27
-
-#define lbxsz_ConfigureRequestEvent 28
-#define lbxupsz_ConfigureRequestEvent 28
-
-#define lbxsz_GravityEvent 16
-#define lbxupsz_GravityEvent 16
-
-#define lbxsz_ResizeRequestEvent 12
-#define lbxupsz_ResizeRequestEvent 12
-
-#define lbxsz_CirculateEvent 20
-#define lbxupsz_CirculateEvent 17
-
-#define lbxsz_PropertyEvent 20
-#define lbxupsz_PropertyEvent 17
-
-#define lbxsz_SelectionClearEvent 16
-#define lbxupsz_SelectionClearEvent 16
-
-#define lbxsz_SelectionRequestEvent 28
-#define lbxupsz_SelectionRequestEvent 28
-
-#define lbxsz_SelectionNotifyEvent 24
-#define lbxupsz_SelectionNotifyEvent 24
-
-#define lbxsz_ColormapEvent 16
-#define lbxupsz_ColormapEvent 14
-
-#define lbxsz_MappingNotifyEvent 8
-#define lbxupsz_MappingNotifyEvent 7
-
-#define lbxsz_ClientMessageEvent 32
-#define lbxupsz_ClientMessageEvent 32
-
-#define lbxsz_UnknownEvent 32
-
-#ifdef DEBUG
-
-#define DBG_SWITCH 0x00000001
-#define DBG_CLOSE 0x00000002
-#define DBG_IO 0x00000004
-#define DBG_READ_REQ 0x00000008
-#define DBG_LEN 0x00000010
-#define DBG_BLOCK 0x00000020
-#define DBG_CLIENT 0x00000040
-#define DBG_DELTA 0x00000080
-#endif
-/*
- * Cancel the previous redefinition of the basic types, thus restoring their
- * X.h definitions.
- */
-
-#undef XID
-#undef Atom
-#undef Colormap
-#undef Drawable
-#undef VisualID
-#undef Window
-
-#endif /* _LBXPROTO_H_ */
+/*
+ * Copyright 1992 Network Computing Devices
+ *
+ * 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 of NCD. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. NCD. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
+ * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#ifndef _LBXPROTO_H_
+#define _LBXPROTO_H_
+
+#include <X11/extensions/lbx.h>
+/*
+ * NOTE: any changes or additions to the opcodes needs to be reflected
+ * in the lbxCacheable array in Xserver/lbx/lbxmain.c
+ */
+
+#define X_LbxQueryVersion 0
+#define X_LbxStartProxy 1
+#define X_LbxStopProxy 2
+#define X_LbxSwitch 3
+#define X_LbxNewClient 4
+#define X_LbxCloseClient 5
+#define X_LbxModifySequence 6
+#define X_LbxAllowMotion 7
+#define X_LbxIncrementPixel 8
+#define X_LbxDelta 9
+#define X_LbxGetModifierMapping 10
+#define X_LbxInvalidateTag 12
+#define X_LbxPolyPoint 13
+#define X_LbxPolyLine 14
+#define X_LbxPolySegment 15
+#define X_LbxPolyRectangle 16
+#define X_LbxPolyArc 17
+#define X_LbxFillPoly 18
+#define X_LbxPolyFillRectangle 19
+#define X_LbxPolyFillArc 20
+#define X_LbxGetKeyboardMapping 21
+#define X_LbxQueryFont 22
+#define X_LbxChangeProperty 23
+#define X_LbxGetProperty 24
+#define X_LbxTagData 25
+
+#define X_LbxCopyArea 26
+#define X_LbxCopyPlane 27
+#define X_LbxPolyText8 28
+#define X_LbxPolyText16 29
+#define X_LbxImageText8 30
+#define X_LbxImageText16 31
+
+#define X_LbxQueryExtension 32
+#define X_LbxPutImage 33
+#define X_LbxGetImage 34
+
+#define X_LbxBeginLargeRequest 35
+#define X_LbxLargeRequestData 36
+#define X_LbxEndLargeRequest 37
+
+#define X_LbxInternAtoms 38
+#define X_LbxGetWinAttrAndGeom 39
+
+#define X_LbxGrabCmap 40
+#define X_LbxReleaseCmap 41
+#define X_LbxAllocColor 42
+
+#define X_LbxSync 43
+
+/*
+ * Redefine some basic types used by structures defined herein. This removes
+ * any possibility on 64-bit architectures of one entity viewing communicated
+ * data as 32-bit quantities and another entity viewing the same data as 64-bit
+ * quantities.
+ */
+#define XID CARD32
+#define Atom CARD32
+#define Colormap CARD32
+#define Drawable CARD32
+#define VisualID CARD32
+#define Window CARD32
+
+typedef struct {
+ BOOL success; /* TRUE */
+ BOOL changeType;
+ CARD16 majorVersion B16,
+ minorVersion B16;
+ CARD16 length B16; /* 1/4 additional bytes in setup info */
+ CARD32 tag B32;
+} xLbxConnSetupPrefix;
+
+typedef struct _LbxQueryVersion {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxQueryVersion */
+ CARD16 length B16;
+} xLbxQueryVersionReq;
+#define sz_xLbxQueryVersionReq 4
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 unused;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 majorVersion B16; /* major version of LBX protocol */
+ CARD16 minorVersion B16; /* minor version of LBX protocol */
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxQueryVersionReply;
+#define sz_xLbxQueryVersionReply 32
+
+typedef struct _LbxStartProxy {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxStartProxy */
+ CARD16 length B16;
+} xLbxStartProxyReq;
+#define sz_xLbxStartProxyReq 4
+
+typedef struct _LbxStopProxy {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxStopProxy */
+ CARD16 length B16;
+} xLbxStopProxyReq;
+#define sz_xLbxStopProxyReq 4
+
+typedef struct _LbxSwitch {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxSwitch */
+ CARD16 length B16;
+ CARD32 client B32; /* new client */
+} xLbxSwitchReq;
+#define sz_xLbxSwitchReq 8
+
+typedef struct _LbxNewClient {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxNewClient */
+ CARD16 length B16;
+ CARD32 client B32; /* new client */
+} xLbxNewClientReq;
+#define sz_xLbxNewClientReq 8
+
+typedef struct _LbxCloseClient {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxCloseClient */
+ CARD16 length B16;
+ CARD32 client B32; /* new client */
+} xLbxCloseClientReq;
+#define sz_xLbxCloseClientReq 8
+
+typedef struct _LbxModifySequence {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxModifySequence */
+ CARD16 length B16;
+ CARD32 adjust B32;
+} xLbxModifySequenceReq;
+#define sz_xLbxModifySequenceReq 8
+
+typedef struct _LbxAllowMotion {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxAllowMotion */
+ CARD16 length B16;
+ CARD32 num B32;
+} xLbxAllowMotionReq;
+#define sz_xLbxAllowMotionReq 8
+
+typedef struct {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxGrabCmap */
+ CARD16 length B16;
+ Colormap cmap B32;
+} xLbxGrabCmapReq;
+#define sz_xLbxGrabCmapReq 8
+
+#define LBX_SMART_GRAB 0x80
+#define LBX_AUTO_RELEASE 0x40
+#define LBX_3CHANNELS 0x20
+#define LBX_2BYTE_PIXELS 0x10
+#define LBX_RGB_BITS_MASK 0x0f
+
+#define LBX_LIST_END 0
+#define LBX_PIXEL_PRIVATE 1
+#define LBX_PIXEL_SHARED 2
+#define LBX_PIXEL_RANGE_PRIVATE 3
+#define LBX_PIXEL_RANGE_SHARED 4
+#define LBX_NEXT_CHANNEL 5
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 flags;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 pad0 B16;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B16;
+} xLbxGrabCmapReply;
+#define sz_xLbxGrabCmapReply 32
+#define sz_xLbxGrabCmapReplyHdr 8
+
+
+typedef struct {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxReleaseCmap */
+ CARD16 length B16;
+ Colormap cmap B32;
+} xLbxReleaseCmapReq;
+#define sz_xLbxReleaseCmapReq 8
+
+typedef struct {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxAllocColor */
+ CARD16 length B16;
+ Colormap cmap B32;
+ CARD32 pixel B32;
+ CARD16 red B16, green B16, blue B16;
+ CARD16 pad B16;
+} xLbxAllocColorReq;
+#define sz_xLbxAllocColorReq 20
+
+typedef struct _LbxIncrementPixel {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxIncrementPixel */
+ CARD16 length B16;
+ CARD32 cmap B32;
+ CARD32 pixel B32;
+} xLbxIncrementPixelReq;
+#define sz_xLbxIncrementPixelReq 12
+
+typedef struct _LbxDelta {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxDelta */
+ CARD16 length B16;
+ CARD8 diffs; /* number of diffs */
+ CARD8 cindex; /* cache index */
+ /* list of diffs follows */
+} xLbxDeltaReq;
+#define sz_xLbxDeltaReq 6
+
+typedef struct _LbxGetModifierMapping {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxGetModifierMapping */
+ CARD16 length B16;
+} xLbxGetModifierMappingReq;
+#define sz_xLbxGetModifierMappingReq 4
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 keyspermod;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 tag B32;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxGetModifierMappingReply;
+#define sz_xLbxGetModifierMappingReply 32
+
+typedef struct _LbxGetKeyboardMapping {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxGetKeyboardMapping */
+ CARD16 length B16;
+ KeyCode firstKeyCode;
+ CARD8 count;
+ CARD16 pad1 B16;
+} xLbxGetKeyboardMappingReq;
+#define sz_xLbxGetKeyboardMappingReq 8
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 keysperkeycode;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 tag B32;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxGetKeyboardMappingReply;
+#define sz_xLbxGetKeyboardMappingReply 32
+
+typedef struct _LbxQueryFont {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxQueryFont */
+ CARD16 length B16;
+ CARD32 fid B32;
+} xLbxQueryFontReq;
+#define sz_xLbxQueryFontReq 8
+
+typedef struct _LbxInternAtoms {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxInternAtoms */
+ CARD16 length B16;
+ CARD16 num B16;
+} xLbxInternAtomsReq;
+#define sz_xLbxInternAtomsReq 6
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 unused;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 atomsStart B32;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxInternAtomsReply;
+#define sz_xLbxInternAtomsReply 32
+#define sz_xLbxInternAtomsReplyHdr 8
+
+
+typedef struct _LbxGetWinAttrAndGeom {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxGetWinAttrAndGeom */
+ CARD16 length B16;
+ CARD32 id B32; /* window id */
+} xLbxGetWinAttrAndGeomReq;
+#define sz_xLbxGetWinAttrAndGeomReq 8
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 backingStore;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32; /* NOT 0; this is an extra-large reply */
+ VisualID visualID B32;
+#if defined(__cplusplus) || defined(c_plusplus)
+ CARD16 c_class B16;
+#else
+ CARD16 class B16;
+#endif
+ CARD8 bitGravity;
+ CARD8 winGravity;
+ CARD32 backingBitPlanes B32;
+ CARD32 backingPixel B32;
+ BOOL saveUnder;
+ BOOL mapInstalled;
+ CARD8 mapState;
+ BOOL override;
+ Colormap colormap B32;
+ CARD32 allEventMasks B32;
+ CARD32 yourEventMask B32;
+ CARD16 doNotPropagateMask B16;
+ CARD16 pad1 B16;
+ Window root B32;
+ INT16 x B16, y B16;
+ CARD16 width B16, height B16;
+ CARD16 borderWidth B16;
+ CARD8 depth;
+ CARD8 pad2;
+} xLbxGetWinAttrAndGeomReply;
+#define sz_xLbxGetWinAttrAndGeomReply 60
+
+
+typedef struct {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxSync */
+ CARD16 length B16;
+} xLbxSyncReq;
+#define sz_xLbxSyncReq 4
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 pad0;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xLbxSyncReply;
+#define sz_xLbxSyncReply 32
+
+
+/* an LBX squished charinfo packs the data in a CARD32 as follows */
+#define LBX_WIDTH_SHIFT 26
+#define LBX_LEFT_SHIFT 20
+#define LBX_RIGHT_SHIFT 13
+#define LBX_ASCENT_SHIFT 7
+#define LBX_DESCENT_SHIFT 0
+
+#define LBX_WIDTH_BITS 6
+#define LBX_LEFT_BITS 6
+#define LBX_RIGHT_BITS 7
+#define LBX_ASCENT_BITS 6
+#define LBX_DESCENT_BITS 7
+
+#define LBX_WIDTH_MASK 0xfc000000
+#define LBX_LEFT_MASK 0x03f00000
+#define LBX_RIGHT_MASK 0x000fe000
+#define LBX_ASCENT_MASK 0x00001f80
+#define LBX_DESCENT_MASK 0x0000007f
+
+#define LBX_MASK_BITS(val, n) ((unsigned int) ((val) & ((1 << (n)) - 1)))
+
+typedef struct {
+ CARD32 metrics B32;
+} xLbxCharInfo;
+
+/* note that this is identical to xQueryFontReply except for missing
+ * first 2 words
+ */
+typedef struct {
+ xCharInfo minBounds;
+/* XXX do we need to leave this gunk? */
+#ifndef WORD64
+ CARD32 walign1 B32;
+#endif
+ xCharInfo maxBounds;
+#ifndef WORD64
+ CARD32 walign2 B32;
+#endif
+ CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
+ CARD16 defaultChar B16;
+ CARD16 nFontProps B16; /* followed by this many xFontProp structures */
+ CARD8 drawDirection;
+ CARD8 minByte1, maxByte1;
+ BOOL allCharsExist;
+ INT16 fontAscent B16, fontDescent B16;
+ CARD32 nCharInfos B32; /* followed by this many xLbxCharInfo structures */
+} xLbxFontInfo;
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 compression;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 tag B32;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ /* X_QueryFont sticks much of the data in the base reply packet,
+ * but we hope that it won't be needed, (and it won't fit in 32 bytes
+ * with the tag anyways)
+ *
+ * if any additional data is needed, its sent in a xLbxFontInfo
+ */
+} xLbxQueryFontReply;
+#define sz_xLbxQueryFontReply 32
+
+typedef struct _LbxChangeProperty {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxChangeProperty */
+ CARD16 length B16;
+ Window window B32;
+ Atom property B32;
+ Atom type B32;
+ CARD8 format;
+ CARD8 mode;
+ BYTE pad[2];
+ CARD32 nUnits B32;
+} xLbxChangePropertyReq;
+#define sz_xLbxChangePropertyReq 24
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 pad;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 tag B32;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxChangePropertyReply;
+#define sz_xLbxChangePropertyReply 32
+
+typedef struct _LbxGetProperty {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxGetProperty */
+ CARD16 length B16;
+ Window window B32;
+ Atom property B32;
+ Atom type B32;
+ CARD8 delete;
+ BYTE pad[3];
+ CARD32 longOffset B32;
+ CARD32 longLength B32;
+} xLbxGetPropertyReq;
+#define sz_xLbxGetPropertyReq 28
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 format;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ Atom propertyType B32;
+ CARD32 bytesAfter B32;
+ CARD32 nItems B32;
+ CARD32 tag B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+} xLbxGetPropertyReply;
+#define sz_xLbxGetPropertyReply 32
+
+typedef struct _LbxTagData {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxTagData */
+ CARD16 length B16;
+ XID tag B32;
+ CARD32 real_length B32;
+ /* data */
+} xLbxTagDataReq;
+#define sz_xLbxTagDataReq 12
+
+typedef struct _LbxInvalidateTag {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxInvalidateTag */
+ CARD16 length B16;
+ CARD32 tag B32;
+} xLbxInvalidateTagReq;
+#define sz_xLbxInvalidateTagReq 8
+
+typedef struct _LbxPutImage {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxPutImage */
+ CARD16 length B16;
+ CARD8 compressionMethod;
+ CARD8 cacheEnts;
+ CARD8 bitPacked;
+ /* rest is variable */
+} xLbxPutImageReq;
+#define sz_xLbxPutImageReq 7
+
+typedef struct {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxGetImage */
+ CARD16 length B16;
+ Drawable drawable B32;
+ INT16 x B16, y B16;
+ CARD16 width B16, height B16;
+ CARD32 planeMask B32;
+ CARD8 format;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+} xLbxGetImageReq;
+
+#define sz_xLbxGetImageReq 24
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 depth;
+ CARD16 sequenceNumber B16;
+ CARD32 lbxLength B32;
+ CARD32 xLength B32;
+ VisualID visual B32;
+ CARD8 compressionMethod;
+ CARD8 pad1;
+ CARD16 pad2 B16;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+} xLbxGetImageReply;
+
+#define sz_xLbxGetImageReply 32
+
+/* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment,
+ LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */
+
+#define GFX_CACHE_SIZE 15
+
+#define GFXdCacheEnt(e) ((e) & 0xf)
+#define GFXgCacheEnt(e) (((e) >> 4) & 0xf)
+#define GFXCacheEnts(d,g) (((d) & 0xf) | (((g) & 0xf) << 4))
+
+#define GFXCacheNone 0xf
+
+typedef struct _LbxPolyPoint {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType;
+ CARD16 length B16;
+ CARD8 cacheEnts;
+ CARD8 padBytes;
+} xLbxPolyPointReq;
+
+#define sz_xLbxPolyPointReq 6
+
+typedef xLbxPolyPointReq xLbxPolyLineReq;
+typedef xLbxPolyPointReq xLbxPolySegmentReq;
+typedef xLbxPolyPointReq xLbxPolyRectangleReq;
+typedef xLbxPolyPointReq xLbxPolyArcReq;
+typedef xLbxPolyPointReq xLbxPolyFillRectangleReq;
+typedef xLbxPolyPointReq xLbxPolyFillArcReq;
+
+#define sz_xLbxPolyLineReq sz_xLbxPolyPointReq
+#define sz_xLbxPolySegmentReq sz_xLbxPolyPointReq
+#define sz_xLbxPolyRectangleReq sz_xLbxPolyPointReq
+#define sz_xLbxPolyArcReq sz_xLbxPolyPointReq
+#define sz_xLbxPolyFillRectangleReq sz_xLbxPolyPointReq
+#define sz_xLbxPolyFillArc sz_xLbxPolyPointReq
+
+typedef struct _LbxFillPoly {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType;
+ CARD16 length B16;
+ CARD8 cacheEnts;
+ BYTE shape;
+ CARD8 padBytes;
+} xLbxFillPolyReq;
+#define sz_xLbxFillPolyReq 7
+
+typedef struct _LbxCopyArea {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType;
+ CARD16 length B16;
+ CARD8 srcCache; /* source drawable */
+ CARD8 cacheEnts; /* dest drawable and gc */
+ /* followed by encoded src x, src y, dst x, dst y, width, height */
+} xLbxCopyAreaReq;
+
+#define sz_xLbxCopyAreaReq 6
+
+typedef struct _LbxCopyPlane {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType;
+ CARD16 length B16;
+ CARD32 bitPlane B32;
+ CARD8 srcCache; /* source drawable */
+ CARD8 cacheEnts; /* dest drawable and gc */
+ /* followed by encoded src x, src y, dst x, dst y, width, height */
+} xLbxCopyPlaneReq;
+
+#define sz_xLbxCopyPlaneReq 10
+
+typedef struct _LbxPolyText {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType;
+ CARD16 length B16;
+ CARD8 cacheEnts;
+ /* followed by encoded src x, src y coordinates and text elts */
+} xLbxPolyTextReq;
+
+#define sz_xLbxPolyTextReq 5
+
+typedef xLbxPolyTextReq xLbxPolyText8Req;
+typedef xLbxPolyTextReq xLbxPolyText16Req;
+
+#define sz_xLbxPolyTextReq 5
+#define sz_xLbxPolyText8Req 5
+#define sz_xLbxPolyText16Req 5
+
+typedef struct _LbxImageText {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType;
+ CARD16 length B16;
+ CARD8 cacheEnts;
+ CARD8 nChars;
+ /* followed by encoded src x, src y coordinates and string */
+} xLbxImageTextReq;
+
+typedef xLbxImageTextReq xLbxImageText8Req;
+typedef xLbxImageTextReq xLbxImageText16Req;
+
+#define sz_xLbxImageTextReq 6
+#define sz_xLbxImageText8Req 6
+#define sz_xLbxImageText16Req 6
+
+typedef struct {
+ CARD8 offset;
+ CARD8 diff;
+} xLbxDiffItem;
+#define sz_xLbxDiffItem 2
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ CARD8 nOpts;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD32 optDataStart B32;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxStartReply;
+#define sz_xLbxStartReply 32
+#define sz_xLbxStartReplyHdr 8
+
+typedef struct _LbxQueryExtension {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxQueryExtension */
+ CARD16 length B16;
+ CARD32 nbytes B32;
+} xLbxQueryExtensionReq;
+#define sz_xLbxQueryExtensionReq 8
+
+typedef struct _LbxQueryExtensionReply {
+ BYTE type; /* X_Reply */
+ CARD8 numReqs;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ BOOL present;
+ CARD8 major_opcode;
+ CARD8 first_event;
+ CARD8 first_error;
+ CARD32 pad0 B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+
+ /* reply & event generating requests */
+} xLbxQueryExtensionReply;
+#define sz_xLbxQueryExtensionReply 32
+
+
+typedef struct _LbxBeginLargeRequest {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxBeginLargeRequest */
+ CARD16 length B16;
+ CARD32 largeReqLength B32;
+} xLbxBeginLargeRequestReq;
+#define sz_BeginLargeRequestReq 8
+
+typedef struct _LbxLargeRequestData {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxLargeRequestData */
+ CARD16 length B16;
+ /* followed by LISTofCARD8 data */
+} xLbxLargeRequestDataReq;
+#define sz_LargeRequestDataReq 4
+
+typedef struct _LbxEndLargeRequest {
+ CARD8 reqType; /* always LbxReqCode */
+ CARD8 lbxReqType; /* always X_LbxEndLargeRequest */
+ CARD16 length B16;
+} xLbxEndLargeRequestReq;
+#define sz_EndLargeRequestReq 4
+
+
+
+typedef struct _LbxSwitchEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxSwitchEvent */
+ CARD16 pad B16;
+ CARD32 client B32;
+} xLbxSwitchEvent;
+#define sz_xLbxSwitchEvent 8
+
+typedef struct _LbxCloseEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxCloseEvent */
+ CARD16 sequenceNumber B16;
+ CARD32 client B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xLbxCloseEvent;
+#define sz_xLbxCloseEvent 32
+
+typedef struct _LbxInvalidateTagEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxInvalidateTagEvent */
+ CARD16 sequenceNumber B16;
+ CARD32 tag B32;
+ CARD32 tagType B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+} xLbxInvalidateTagEvent;
+#define sz_xLbxInvalidateTagEvent 32
+
+typedef struct _LbxSendTagDataEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxSendTagDataEvent */
+ CARD16 sequenceNumber B16;
+ CARD32 tag B32;
+ CARD32 tagType B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+} xLbxSendTagDataEvent;
+#define sz_xLbxSendTagDataEvent 32
+
+typedef struct _LbxListenToOneEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxListenToOneEvent */
+ CARD16 sequenceNumber B16;
+ CARD32 client B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xLbxListenToOneEvent;
+#define sz_xLbxListenToOneEvent 32
+
+typedef struct _LbxListenToAllEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxListenToAllEvent */
+ CARD16 sequenceNumber B16;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+ CARD32 pad7 B32;
+} xLbxListenToAllEvent;
+#define sz_xLbxListenToOneEvent 32
+
+typedef struct _LbxReleaseCmapEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxReleaseCmapEvent */
+ CARD16 sequenceNumber B16;
+ Colormap colormap B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xLbxReleaseCmapEvent;
+#define sz_xLbxReleaseCmapEvent 32
+
+
+typedef struct _LbxFreeCellsEvent {
+ BYTE type; /* always eventBase + LbxEvent */
+ BYTE lbxType; /* LbxFreeCellsEvent */
+ CARD16 sequenceNumber B16;
+ Colormap colormap B32;
+ CARD32 pixelStart B32;
+ CARD32 pixelEnd B32;
+ CARD32 pad1 B32;
+ CARD32 pad2 B32;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+} xLbxFreeCellsEvent;
+#define sz_xLbxFreeCellsEvent 32
+
+
+/*
+ * squished X event sizes. If these change, be sure to update lbxquish.c
+ * and unsquish.c appropriately
+ *
+ * lbxsz_* is the padded squished length
+ * lbxupsz_* is the unpadded squished length
+ */
+
+#define lbxsz_KeyButtonEvent 32
+#define lbxupsz_KeyButtonEvent 31
+
+#define lbxsz_EnterLeaveEvent 32
+#define lbxupsz_EnterLeaveEvent 32
+
+#define lbxsz_FocusEvent 12
+#define lbxupsz_FocusEvent 9
+
+#define lbxsz_KeymapEvent 32
+#define lbxupsz_KeymapEvent 32
+
+#define lbxsz_ExposeEvent 20
+#define lbxupsz_ExposeEvent 18
+
+#define lbxsz_GfxExposeEvent 24
+#define lbxupsz_GfxExposeEvent 21
+
+#define lbxsz_NoExposeEvent 12
+#define lbxupsz_NoExposeEvent 11
+
+#define lbxsz_VisibilityEvent 12
+#define lbxupsz_VisibilityEvent 9
+
+#define lbxsz_CreateNotifyEvent 24
+#define lbxupsz_CreateNotifyEvent 23
+
+#define lbxsz_DestroyNotifyEvent 12
+#define lbxupsz_DestroyNotifyEvent 12
+
+#define lbxsz_UnmapNotifyEvent 16
+#define lbxupsz_UnmapNotifyEvent 13
+
+#define lbxsz_MapNotifyEvent 16
+#define lbxupsz_MapNotifyEvent 13
+
+#define lbxsz_MapRequestEvent 12
+#define lbxupsz_MapRequestEvent 12
+
+#define lbxsz_ReparentEvent 24
+#define lbxupsz_ReparentEvent 21
+
+#define lbxsz_ConfigureNotifyEvent 28
+#define lbxupsz_ConfigureNotifyEvent 27
+
+#define lbxsz_ConfigureRequestEvent 28
+#define lbxupsz_ConfigureRequestEvent 28
+
+#define lbxsz_GravityEvent 16
+#define lbxupsz_GravityEvent 16
+
+#define lbxsz_ResizeRequestEvent 12
+#define lbxupsz_ResizeRequestEvent 12
+
+#define lbxsz_CirculateEvent 20
+#define lbxupsz_CirculateEvent 17
+
+#define lbxsz_PropertyEvent 20
+#define lbxupsz_PropertyEvent 17
+
+#define lbxsz_SelectionClearEvent 16
+#define lbxupsz_SelectionClearEvent 16
+
+#define lbxsz_SelectionRequestEvent 28
+#define lbxupsz_SelectionRequestEvent 28
+
+#define lbxsz_SelectionNotifyEvent 24
+#define lbxupsz_SelectionNotifyEvent 24
+
+#define lbxsz_ColormapEvent 16
+#define lbxupsz_ColormapEvent 14
+
+#define lbxsz_MappingNotifyEvent 8
+#define lbxupsz_MappingNotifyEvent 7
+
+#define lbxsz_ClientMessageEvent 32
+#define lbxupsz_ClientMessageEvent 32
+
+#define lbxsz_UnknownEvent 32
+
+#ifdef DEBUG
+
+#define DBG_SWITCH 0x00000001
+#define DBG_CLOSE 0x00000002
+#define DBG_IO 0x00000004
+#define DBG_READ_REQ 0x00000008
+#define DBG_LEN 0x00000010
+#define DBG_BLOCK 0x00000020
+#define DBG_CLIENT 0x00000040
+#define DBG_DELTA 0x00000080
+#endif
+/*
+ * Cancel the previous redefinition of the basic types, thus restoring their
+ * X.h definitions.
+ */
+
+#undef XID
+#undef Atom
+#undef Colormap
+#undef Drawable
+#undef VisualID
+#undef Window
+
+#endif /* _LBXPROTO_H_ */