diff options
Diffstat (limited to 'X11/extensions/lbxproto.h')
-rw-r--r-- | X11/extensions/lbxproto.h | 1950 |
1 files changed, 975 insertions, 975 deletions
diff --git a/X11/extensions/lbxproto.h b/X11/extensions/lbxproto.h index fdd8b4b64..a1ae62ba4 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_ */ |