976 lines
25 KiB
C
976 lines
25 KiB
C
|
/*
|
||
|
* 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_ */
|