github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xcb/include/X11/Xproto.h (about)

     1  /* Definitions for the X window system used by server and c bindings */
     2  
     3  /*
     4   * This packet-construction scheme makes the following assumptions:
     5   *
     6   * 1. The compiler is able
     7   * to generate code which addresses one- and two-byte quantities.
     8   * In the worst case, this would be done with bit-fields.  If bit-fields
     9   * are used it may be necessary to reorder the request fields in this file,
    10   * depending on the order in which the machine assigns bit fields to
    11   * machine words.  There may also be a problem with sign extension,
    12   * as K+R specify that bitfields are always unsigned.
    13   *
    14   * 2. 2- and 4-byte fields in packet structures must be ordered by hand
    15   * such that they are naturally-aligned, so that no compiler will ever
    16   * insert padding bytes.
    17   *
    18   * 3. All packets are hand-padded to a multiple of 4 bytes, for
    19   * the same reason.
    20   */
    21  
    22  #ifndef XPROTO_H
    23  #define XPROTO_H
    24  
    25  /***********************************************************
    26  
    27  Copyright 1987, 1998  The Open Group
    28  
    29  Permission to use, copy, modify, distribute, and sell this software and its
    30  documentation for any purpose is hereby granted without fee, provided that
    31  the above copyright notice appear in all copies and that both that
    32  copyright notice and this permission notice appear in supporting
    33  documentation.
    34  
    35  The above copyright notice and this permission notice shall be included in
    36  all copies or substantial portions of the Software.
    37  
    38  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    39  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    40  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    41  OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    42  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    43  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    44  
    45  Except as contained in this notice, the name of The Open Group shall not be
    46  used in advertising or otherwise to promote the sale, use or other dealings
    47  in this Software without prior written authorization from The Open Group.
    48  
    49  
    50  Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
    51  
    52                          All Rights Reserved
    53  
    54  Permission to use, copy, modify, and distribute this software and its
    55  documentation for any purpose and without fee is hereby granted,
    56  provided that the above copyright notice appear in all copies and that
    57  both that copyright notice and this permission notice appear in
    58  supporting documentation, and that the name of Digital not be
    59  used in advertising or publicity pertaining to distribution of the
    60  software without specific, written prior permission.
    61  
    62  DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
    63  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
    64  DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
    65  ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
    66  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
    67  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
    68  SOFTWARE.
    69  
    70  ******************************************************************/
    71  
    72  #include <X11/Xmd.h>
    73  #include <X11/Xprotostr.h>
    74  
    75  /*
    76   * Define constants for the sizes of the network packets.  The sz_ prefix is
    77   * used instead of something more descriptive so that the symbols are no more
    78   * than 32 characters in length (which causes problems for some compilers).
    79   */
    80  #define sz_xSegment 8
    81  #define sz_xPoint 4
    82  #define sz_xRectangle 8
    83  #define sz_xArc 12
    84  #define sz_xConnClientPrefix 12
    85  #define sz_xConnSetupPrefix 8
    86  #define sz_xConnSetup 32
    87  #define sz_xPixmapFormat 8
    88  #define sz_xDepth 8
    89  #define sz_xVisualType 24
    90  #define sz_xWindowRoot 40
    91  #define sz_xTimecoord 8
    92  #define sz_xHostEntry 4
    93  #define sz_xCharInfo 12
    94  #define sz_xFontProp 8
    95  #define sz_xTextElt 2
    96  #define sz_xColorItem 12
    97  #define sz_xrgb 8
    98  #define sz_xGenericReply 32
    99  #define sz_xGetWindowAttributesReply 44
   100  #define sz_xGetGeometryReply 32
   101  #define sz_xQueryTreeReply 32
   102  #define sz_xInternAtomReply 32
   103  #define sz_xGetAtomNameReply 32
   104  #define sz_xGetPropertyReply 32
   105  #define sz_xListPropertiesReply 32
   106  #define sz_xGetSelectionOwnerReply 32
   107  #define sz_xGrabPointerReply 32
   108  #define sz_xQueryPointerReply 32
   109  #define sz_xGetMotionEventsReply 32
   110  #define sz_xTranslateCoordsReply 32
   111  #define sz_xGetInputFocusReply 32
   112  #define sz_xQueryKeymapReply 40
   113  #define sz_xQueryFontReply 60
   114  #define sz_xQueryTextExtentsReply 32
   115  #define sz_xListFontsReply 32
   116  #define sz_xGetFontPathReply 32
   117  #define sz_xGetImageReply 32
   118  #define sz_xListInstalledColormapsReply 32
   119  #define sz_xAllocColorReply 32
   120  #define sz_xAllocNamedColorReply 32
   121  #define sz_xAllocColorCellsReply 32
   122  #define sz_xAllocColorPlanesReply 32
   123  #define sz_xQueryColorsReply 32
   124  #define sz_xLookupColorReply 32
   125  #define sz_xQueryBestSizeReply 32
   126  #define sz_xQueryExtensionReply 32
   127  #define sz_xListExtensionsReply 32
   128  #define sz_xSetMappingReply 32
   129  #define sz_xGetKeyboardControlReply 52
   130  #define sz_xGetPointerControlReply 32
   131  #define sz_xGetScreenSaverReply 32
   132  #define sz_xListHostsReply 32
   133  #define sz_xSetModifierMappingReply 32
   134  #define sz_xError 32
   135  #define sz_xEvent 32
   136  #define sz_xKeymapEvent 32
   137  #define sz_xReq 4
   138  #define sz_xResourceReq 8
   139  #define sz_xCreateWindowReq 32
   140  #define sz_xChangeWindowAttributesReq 12
   141  #define sz_xChangeSaveSetReq 8
   142  #define sz_xReparentWindowReq 16
   143  #define sz_xConfigureWindowReq 12
   144  #define sz_xCirculateWindowReq 8
   145  #define sz_xInternAtomReq 8
   146  #define sz_xChangePropertyReq 24
   147  #define sz_xDeletePropertyReq 12
   148  #define sz_xGetPropertyReq 24
   149  #define sz_xSetSelectionOwnerReq 16
   150  #define sz_xConvertSelectionReq 24
   151  #define sz_xSendEventReq 44
   152  #define sz_xGrabPointerReq 24
   153  #define sz_xGrabButtonReq 24
   154  #define sz_xUngrabButtonReq 12
   155  #define sz_xChangeActivePointerGrabReq 16
   156  #define sz_xGrabKeyboardReq 16
   157  #define sz_xGrabKeyReq 16
   158  #define sz_xUngrabKeyReq 12
   159  #define sz_xAllowEventsReq 8
   160  #define sz_xGetMotionEventsReq 16
   161  #define sz_xTranslateCoordsReq 16
   162  #define sz_xWarpPointerReq 24
   163  #define sz_xSetInputFocusReq 12
   164  #define sz_xOpenFontReq 12
   165  #define sz_xQueryTextExtentsReq 8
   166  #define sz_xListFontsReq 8
   167  #define sz_xSetFontPathReq 8
   168  #define sz_xCreatePixmapReq 16
   169  #define sz_xCreateGCReq 16
   170  #define sz_xChangeGCReq 12
   171  #define sz_xCopyGCReq 16
   172  #define sz_xSetDashesReq 12
   173  #define sz_xSetClipRectanglesReq 12
   174  #define sz_xCopyAreaReq 28
   175  #define sz_xCopyPlaneReq 32
   176  #define sz_xPolyPointReq 12
   177  #define sz_xPolySegmentReq 12
   178  #define sz_xFillPolyReq 16
   179  #define sz_xPutImageReq 24
   180  #define sz_xGetImageReq 20
   181  #define sz_xPolyTextReq 16
   182  #define sz_xImageTextReq 16
   183  #define sz_xCreateColormapReq 16
   184  #define sz_xCopyColormapAndFreeReq 12
   185  #define sz_xAllocColorReq 16
   186  #define sz_xAllocNamedColorReq 12
   187  #define sz_xAllocColorCellsReq 12
   188  #define sz_xAllocColorPlanesReq 16
   189  #define sz_xFreeColorsReq 12
   190  #define sz_xStoreColorsReq 8
   191  #define sz_xStoreNamedColorReq 16
   192  #define sz_xQueryColorsReq 8
   193  #define sz_xLookupColorReq 12
   194  #define sz_xCreateCursorReq 32
   195  #define sz_xCreateGlyphCursorReq 32
   196  #define sz_xRecolorCursorReq 20
   197  #define sz_xQueryBestSizeReq 12
   198  #define sz_xQueryExtensionReq 8
   199  #define sz_xChangeKeyboardControlReq 8
   200  #define sz_xBellReq 4
   201  #define sz_xChangePointerControlReq 12
   202  #define sz_xSetScreenSaverReq 12
   203  #define sz_xChangeHostsReq 8
   204  #define sz_xListHostsReq 4
   205  #define sz_xChangeModeReq 4
   206  #define sz_xRotatePropertiesReq 12
   207  #define sz_xReply 32
   208  #define sz_xGrabKeyboardReply 32
   209  #define sz_xListFontsWithInfoReply 60
   210  #define sz_xSetPointerMappingReply 32
   211  #define sz_xGetKeyboardMappingReply 32
   212  #define sz_xGetPointerMappingReply 32
   213  #define sz_xGetModifierMappingReply 32
   214  #define sz_xListFontsWithInfoReq 8
   215  #define sz_xPolyLineReq 12
   216  #define sz_xPolyArcReq 12
   217  #define sz_xPolyRectangleReq 12
   218  #define sz_xPolyFillRectangleReq 12
   219  #define sz_xPolyFillArcReq 12
   220  #define sz_xPolyText8Req 16
   221  #define sz_xPolyText16Req 16
   222  #define sz_xImageText8Req 16
   223  #define sz_xImageText16Req 16
   224  #define sz_xSetPointerMappingReq 4
   225  #define sz_xForceScreenSaverReq 4
   226  #define sz_xSetCloseDownModeReq 4
   227  #define sz_xClearAreaReq 16
   228  #define sz_xSetAccessControlReq 4
   229  #define sz_xGetKeyboardMappingReq 8
   230  #define sz_xSetModifierMappingReq 4
   231  #define sz_xPropIconSize 24
   232  #define sz_xChangeKeyboardMappingReq 8
   233  
   234  
   235  /* For the purpose of the structure definitions in this file,
   236  we must redefine the following types in terms of Xmd.h's types, which may
   237  include bit fields.  All of these are #undef'd at the end of this file,
   238  restoring the definitions in X.h.  */
   239  
   240  #define Window CARD32
   241  #define Drawable CARD32
   242  #define Font CARD32
   243  #define Pixmap CARD32
   244  #define Cursor CARD32
   245  #define Colormap CARD32
   246  #define GContext CARD32
   247  #define Atom CARD32
   248  #define VisualID CARD32
   249  #define Time CARD32
   250  #define KeyCode CARD8
   251  #define KeySym CARD32
   252  
   253  #define X_TCP_PORT 6000     /* add display number */
   254  
   255  #define xTrue        1
   256  #define xFalse       0
   257  
   258  
   259  typedef CARD16 KeyButMask;
   260  
   261  /*****************
   262     Connection setup structures.  See Chapter 8: Connection Setup
   263     of the X Window System Protocol specification for details.
   264  *****************/
   265  
   266  /* Client initiates handshake with this data, followed by the strings
   267   * for the auth protocol & data.
   268   */
   269  typedef struct {
   270      CARD8	byteOrder;
   271      BYTE	pad;
   272      CARD16	majorVersion, minorVersion;
   273      CARD16	nbytesAuthProto;	/* Authorization protocol */
   274      CARD16	nbytesAuthString;	/* Authorization string */
   275      CARD16	pad2;
   276  } xConnClientPrefix;
   277  
   278  /* Server response to xConnClientPrefix.
   279   *
   280   * If success == Success, this is followed by xConnSetup and
   281   * numRoots xWindowRoot structs.
   282   *
   283   * If success == Failure, this is followed by a reason string.
   284   *
   285   * The protocol also defines a case of success == Authenticate, but
   286   * that doesn't seem to have ever been implemented by the X Consortium.
   287   */
   288  typedef struct {
   289      CARD8          success;
   290      BYTE           lengthReason; /*num bytes in string following if failure */
   291      CARD16         majorVersion,
   292                     minorVersion;
   293      CARD16         length;       /* 1/4 additional bytes in setup info */
   294  } xConnSetupPrefix;
   295  
   296  
   297  typedef struct {
   298      CARD32         release;
   299      CARD32         ridBase,
   300                     ridMask;
   301      CARD32         motionBufferSize;
   302      CARD16         nbytesVendor;      /* number of bytes in vendor string */
   303      CARD16         maxRequestSize;
   304      CARD8          numRoots;          /* number of roots structs to follow */
   305      CARD8          numFormats;        /* number of pixmap formats */
   306      CARD8          imageByteOrder;        /* LSBFirst, MSBFirst */
   307      CARD8          bitmapBitOrder;        /* LeastSignificant, MostSign...*/
   308      CARD8          bitmapScanlineUnit,     /* 8, 16, 32 */
   309                     bitmapScanlinePad;     /* 8, 16, 32 */
   310      KeyCode	   minKeyCode, maxKeyCode;
   311      CARD32	   pad2;
   312  } xConnSetup;
   313  
   314  typedef struct {
   315      CARD8          depth;
   316      CARD8          bitsPerPixel;
   317      CARD8          scanLinePad;
   318      CARD8          pad1;
   319      CARD32	   pad2;
   320  } xPixmapFormat;
   321  
   322  /* window root */
   323  
   324  typedef struct {
   325      CARD8 	depth;
   326      CARD8 	pad1;
   327      CARD16	nVisuals;  /* number of xVisualType structures following */
   328      CARD32	pad2;
   329      } xDepth;
   330  
   331  typedef struct {
   332      VisualID visualID;
   333  #if defined(__cplusplus) || defined(c_plusplus)
   334      CARD8 c_class;
   335  #else
   336      CARD8 class;
   337  #endif
   338      CARD8 bitsPerRGB;
   339      CARD16 colormapEntries;
   340      CARD32 redMask, greenMask, blueMask;
   341      CARD32 pad;
   342      } xVisualType;
   343  
   344  typedef struct {
   345      Window         windowId;
   346      Colormap       defaultColormap;
   347      CARD32         whitePixel, blackPixel;
   348      CARD32         currentInputMask;
   349      CARD16         pixWidth, pixHeight;
   350      CARD16         mmWidth, mmHeight;
   351      CARD16         minInstalledMaps, maxInstalledMaps;
   352      VisualID       rootVisualID;
   353      CARD8          backingStore;
   354      BOOL           saveUnders;
   355      CARD8          rootDepth;
   356      CARD8          nDepths;  /* number of xDepth structures following */
   357  } xWindowRoot;
   358  
   359  
   360  /*****************************************************************
   361   * Structure Defns
   362   *   Structures needed for replies
   363   *****************************************************************/
   364  
   365  /* Used in GetMotionEvents */
   366  
   367  typedef struct {
   368      CARD32 time;
   369      INT16 x, y;
   370  } xTimecoord;
   371  
   372  typedef struct {
   373      CARD8 family;
   374      BYTE pad;
   375      CARD16 length;
   376  } xHostEntry;
   377  
   378  typedef struct {
   379      INT16 leftSideBearing,
   380  	  rightSideBearing,
   381  	  characterWidth,
   382  	  ascent,
   383  	  descent;
   384      CARD16 attributes;
   385  } xCharInfo;
   386  
   387  typedef struct {
   388      Atom name;
   389      CARD32 value;
   390  } xFontProp;
   391  
   392  /*
   393   * non-aligned big-endian font ID follows this struct
   394   */
   395  typedef struct {           /* followed by string */
   396      CARD8 len;	/* number of *characters* in string, or FontChange (255)
   397  		   for font change, or 0 if just delta given */
   398      INT8 delta;
   399  } xTextElt;
   400  
   401  
   402  typedef struct {
   403      CARD32 pixel;
   404      CARD16 red, green, blue;
   405      CARD8 flags;  /* DoRed, DoGreen, DoBlue booleans */
   406      CARD8 pad;
   407  } xColorItem;
   408  
   409  
   410  typedef struct {
   411      CARD16 red, green, blue, pad;
   412  } xrgb;
   413  
   414  typedef CARD8 KEYCODE;
   415  
   416  
   417  /*****************
   418   * XRep:
   419   *    meant to be 32 byte quantity
   420   *****************/
   421  
   422  /* GenericReply is the common format of all replies.  The "data" items
   423     are specific to each individual reply type. */
   424  
   425  typedef struct {
   426      BYTE type;              /* X_Reply */
   427      BYTE data1;             /* depends on reply type */
   428      CARD16 sequenceNumber;  /* of last request received by server */
   429      CARD32 length;          /* 4 byte quantities beyond size of GenericReply */
   430      CARD32 data00;
   431      CARD32 data01;
   432      CARD32 data02;
   433      CARD32 data03;
   434      CARD32 data04;
   435      CARD32 data05;
   436      } xGenericReply;
   437  
   438  /* Individual reply formats. */
   439  
   440  typedef struct {
   441      BYTE type;  /* X_Reply */
   442      CARD8 backingStore;
   443      CARD16 sequenceNumber;
   444      CARD32 length;	/* NOT 0; this is an extra-large reply */
   445      VisualID visualID;
   446  #if defined(__cplusplus) || defined(c_plusplus)
   447      CARD16 c_class;
   448  #else
   449      CARD16 class;
   450  #endif
   451      CARD8 bitGravity;
   452      CARD8 winGravity;
   453      CARD32 backingBitPlanes;
   454      CARD32 backingPixel;
   455      BOOL saveUnder;
   456      BOOL mapInstalled;
   457      CARD8 mapState;
   458      BOOL override;
   459      Colormap colormap;
   460      CARD32 allEventMasks;
   461      CARD32 yourEventMask;
   462      CARD16 doNotPropagateMask;
   463      CARD16 pad;
   464      } xGetWindowAttributesReply;
   465  
   466  typedef struct {
   467      BYTE type;   /* X_Reply */
   468      CARD8 depth;
   469      CARD16 sequenceNumber;
   470      CARD32 length;  /* 0 */
   471      Window root;
   472      INT16 x, y;
   473      CARD16 width, height;
   474      CARD16 borderWidth;
   475      CARD16 pad1;
   476      CARD32 pad2;
   477      CARD32 pad3;
   478      } xGetGeometryReply;
   479  
   480  typedef struct {
   481      BYTE type;  /* X_Reply */
   482      BYTE pad1;
   483      CARD16 sequenceNumber;
   484      CARD32 length;
   485      Window root, parent;
   486      CARD16 nChildren;
   487      CARD16 pad2;
   488      CARD32 pad3;
   489      CARD32 pad4;
   490      CARD32 pad5;
   491      } xQueryTreeReply;
   492  
   493  typedef struct {
   494      BYTE type;  /* X_Reply */
   495      BYTE pad1;
   496      CARD16 sequenceNumber;
   497      CARD32 length; /* 0 */
   498      Atom atom;
   499      CARD32 pad2;
   500      CARD32 pad3;
   501      CARD32 pad4;
   502      CARD32 pad5;
   503      CARD32 pad6;
   504      } xInternAtomReply;
   505  
   506  typedef struct {
   507      BYTE type;  /* X_Reply */
   508      BYTE pad1;
   509      CARD16 sequenceNumber;
   510      CARD32 length;  /* of additional bytes */
   511      CARD16 nameLength;  /* # of characters in name */
   512      CARD16 pad2;
   513      CARD32 pad3;
   514      CARD32 pad4;
   515      CARD32 pad5;
   516      CARD32 pad6;
   517      CARD32 pad7;
   518      } xGetAtomNameReply;
   519  
   520  typedef struct {
   521      BYTE type;  /* X_Reply */
   522      CARD8 format;
   523      CARD16 sequenceNumber;
   524      CARD32 length; /* of additional bytes */
   525      Atom propertyType;
   526      CARD32 bytesAfter;
   527      CARD32 nItems; /* # of 8, 16, or 32-bit entities in reply */
   528      CARD32 pad1;
   529      CARD32 pad2;
   530      CARD32 pad3;
   531      } xGetPropertyReply;
   532  
   533  typedef struct {
   534      BYTE type;  /* X_Reply */
   535      BYTE pad1;
   536      CARD16 sequenceNumber;
   537      CARD32 length;
   538      CARD16 nProperties;
   539      CARD16 pad2;
   540      CARD32 pad3;
   541      CARD32 pad4;
   542      CARD32 pad5;
   543      CARD32 pad6;
   544      CARD32 pad7;
   545      } xListPropertiesReply;
   546  
   547  typedef struct {
   548      BYTE type;  /* X_Reply */
   549      BYTE pad1;
   550      CARD16 sequenceNumber;
   551      CARD32 length;  /* 0 */
   552      Window owner;
   553      CARD32 pad2;
   554      CARD32 pad3;
   555      CARD32 pad4;
   556      CARD32 pad5;
   557      CARD32 pad6;
   558      } xGetSelectionOwnerReply;
   559  
   560  typedef struct {
   561      BYTE type;  /* X_Reply */
   562      BYTE status;
   563      CARD16 sequenceNumber;
   564      CARD32 length;  /* 0 */
   565      CARD32 pad1;
   566      CARD32 pad2;
   567      CARD32 pad3;
   568      CARD32 pad4;
   569      CARD32 pad5;
   570      CARD32 pad6;
   571      } xGrabPointerReply;
   572  
   573  typedef xGrabPointerReply xGrabKeyboardReply;
   574  
   575  typedef struct {
   576      BYTE type;  /* X_Reply */
   577      BOOL sameScreen;
   578      CARD16 sequenceNumber;
   579      CARD32 length;  /* 0 */
   580      Window root, child;
   581      INT16 rootX, rootY, winX, winY;
   582      CARD16 mask;
   583      CARD16 pad1;
   584      CARD32 pad;
   585      } xQueryPointerReply;
   586  
   587  typedef struct {
   588      BYTE type;  /* X_Reply */
   589      BYTE pad1;
   590      CARD16 sequenceNumber;
   591      CARD32 length;
   592      CARD32 nEvents;
   593      CARD32 pad2;
   594      CARD32 pad3;
   595      CARD32 pad4;
   596      CARD32 pad5;
   597      CARD32 pad6;
   598      } xGetMotionEventsReply;
   599  
   600  typedef struct {
   601      BYTE type;  /* X_Reply */
   602      BOOL sameScreen;
   603      CARD16 sequenceNumber;
   604      CARD32 length; /* 0 */
   605      Window child;
   606      INT16 dstX, dstY;
   607      CARD32 pad2;
   608      CARD32 pad3;
   609      CARD32 pad4;
   610      CARD32 pad5;
   611      } xTranslateCoordsReply;
   612  
   613  typedef struct {
   614      BYTE type;  /* X_Reply */
   615      CARD8 revertTo;
   616      CARD16 sequenceNumber;
   617      CARD32 length;  /* 0 */
   618      Window focus;
   619      CARD32 pad1;
   620      CARD32 pad2;
   621      CARD32 pad3;
   622      CARD32 pad4;
   623      CARD32 pad5;
   624      } xGetInputFocusReply;
   625  
   626  typedef struct {
   627      BYTE type;  /* X_Reply */
   628      BYTE pad1;
   629      CARD16 sequenceNumber;
   630      CARD32 length;  /* 2, NOT 0; this is an extra-large reply */
   631      BYTE map[32];
   632      } xQueryKeymapReply;
   633  
   634  /* Warning: this MUST match (up to component renaming) xListFontsWithInfoReply */
   635  typedef struct _xQueryFontReply {
   636      BYTE type;  /* X_Reply */
   637      BYTE pad1;
   638      CARD16 sequenceNumber;
   639      CARD32 length;  /* definitely > 0, even if "nCharInfos" is 0 */
   640      xCharInfo minBounds;
   641      CARD32 walign1;
   642      xCharInfo maxBounds;
   643      CARD32 walign2;
   644      CARD16 minCharOrByte2, maxCharOrByte2;
   645      CARD16 defaultChar;
   646      CARD16 nFontProps;  /* followed by this many xFontProp structures */
   647      CARD8 drawDirection;
   648      CARD8 minByte1, maxByte1;
   649      BOOL allCharsExist;
   650      INT16 fontAscent, fontDescent;
   651      CARD32 nCharInfos; /* followed by this many xCharInfo structures */
   652  } xQueryFontReply;
   653  
   654  typedef struct {
   655      BYTE type;  /* X_Reply */
   656      CARD8 drawDirection;
   657      CARD16 sequenceNumber;
   658      CARD32 length;  /* 0 */
   659      INT16 fontAscent, fontDescent;
   660      INT16 overallAscent, overallDescent;
   661      INT32 overallWidth, overallLeft, overallRight;
   662      CARD32 pad;
   663      } xQueryTextExtentsReply;
   664  
   665  typedef struct {
   666      BYTE type;  /* X_Reply */
   667      BYTE pad1;
   668      CARD16 sequenceNumber;
   669      CARD32 length;
   670      CARD16 nFonts;
   671      CARD16 pad2;
   672      CARD32 pad3;
   673      CARD32 pad4;
   674      CARD32 pad5;
   675      CARD32 pad6;
   676      CARD32 pad7;
   677      } xListFontsReply;
   678  
   679  /* Warning: this MUST match (up to component renaming) xQueryFontReply */
   680  typedef struct {
   681      BYTE type;  /* X_Reply */
   682      CARD8 nameLength;  /* 0 indicates end-of-reply-sequence */
   683      CARD16 sequenceNumber;
   684      CARD32 length;  /* definitely > 0, even if "nameLength" is 0 */
   685      xCharInfo minBounds;
   686      CARD32 walign1;
   687      xCharInfo maxBounds;
   688      CARD32 walign2;
   689      CARD16 minCharOrByte2, maxCharOrByte2;
   690      CARD16 defaultChar;
   691      CARD16 nFontProps;  /* followed by this many xFontProp structures */
   692      CARD8 drawDirection;
   693      CARD8 minByte1, maxByte1;
   694      BOOL allCharsExist;
   695      INT16 fontAscent, fontDescent;
   696      CARD32 nReplies;   /* hint as to how many more replies might be coming */
   697  } xListFontsWithInfoReply;
   698  
   699  typedef struct {
   700      BYTE type;  /* X_Reply */
   701      BYTE pad1;
   702      CARD16 sequenceNumber;
   703      CARD32 length;
   704      CARD16 nPaths;
   705      CARD16 pad2;
   706      CARD32 pad3;
   707      CARD32 pad4;
   708      CARD32 pad5;
   709      CARD32 pad6;
   710      CARD32 pad7;
   711      } xGetFontPathReply;
   712  
   713  typedef struct {
   714      BYTE type;  /* X_Reply */
   715      CARD8 depth;
   716      CARD16 sequenceNumber;
   717      CARD32 length;
   718      VisualID visual;
   719      CARD32 pad3;
   720      CARD32 pad4;
   721      CARD32 pad5;
   722      CARD32 pad6;
   723      CARD32 pad7;
   724      } xGetImageReply;
   725  
   726  typedef struct {
   727      BYTE type;  /* X_Reply */
   728      BYTE pad1;
   729      CARD16 sequenceNumber;
   730      CARD32 length;
   731      CARD16 nColormaps;
   732      CARD16 pad2;
   733      CARD32 pad3;
   734      CARD32 pad4;
   735      CARD32 pad5;
   736      CARD32 pad6;
   737      CARD32 pad7;
   738      } xListInstalledColormapsReply;
   739  
   740  typedef struct {
   741      BYTE type; /* X_Reply */
   742      BYTE pad1;
   743      CARD16 sequenceNumber;
   744      CARD32 length;   /* 0 */
   745      CARD16 red, green, blue;
   746      CARD16 pad2;
   747      CARD32 pixel;
   748      CARD32 pad3;
   749      CARD32 pad4;
   750      CARD32 pad5;
   751      } xAllocColorReply;
   752  
   753  typedef struct {
   754      BYTE type; /* X_Reply */
   755      BYTE pad1;
   756      CARD16 sequenceNumber;
   757      CARD32 length;  /* 0 */
   758      CARD32 pixel;
   759      CARD16 exactRed, exactGreen, exactBlue;
   760      CARD16 screenRed, screenGreen, screenBlue;
   761      CARD32 pad2;
   762      CARD32 pad3;
   763      } xAllocNamedColorReply;
   764  
   765  typedef struct {
   766      BYTE type;  /* X_Reply */
   767      BYTE pad1;
   768      CARD16 sequenceNumber;
   769      CARD32 length;
   770      CARD16 nPixels, nMasks;
   771      CARD32 pad3;
   772      CARD32 pad4;
   773      CARD32 pad5;
   774      CARD32 pad6;
   775      CARD32 pad7;
   776      } xAllocColorCellsReply;
   777  
   778  typedef struct {
   779      BYTE type; /* X_Reply */
   780      BYTE pad1;
   781      CARD16 sequenceNumber;
   782      CARD32 length;
   783      CARD16 nPixels;
   784      CARD16 pad2;
   785      CARD32 redMask, greenMask, blueMask;
   786      CARD32 pad3;
   787      CARD32 pad4;
   788      } xAllocColorPlanesReply;
   789  
   790  typedef struct {
   791      BYTE type; /* X_Reply */
   792      BYTE pad1;
   793      CARD16 sequenceNumber;
   794      CARD32 length;
   795      CARD16 nColors;
   796      CARD16 pad2;
   797      CARD32 pad3;
   798      CARD32 pad4;
   799      CARD32 pad5;
   800      CARD32 pad6;
   801      CARD32 pad7;
   802      } xQueryColorsReply;
   803  
   804  typedef struct {
   805      BYTE type;  /* X_Reply */
   806      BYTE pad1;
   807      CARD16 sequenceNumber;
   808      CARD32 length;  /* 0 */
   809      CARD16 exactRed, exactGreen, exactBlue;
   810      CARD16 screenRed, screenGreen, screenBlue;
   811      CARD32 pad3;
   812      CARD32 pad4;
   813      CARD32 pad5;
   814      } xLookupColorReply;
   815  
   816  typedef struct {
   817      BYTE type;  /* X_Reply */
   818      BYTE pad1;
   819      CARD16 sequenceNumber;
   820      CARD32 length;  /* 0 */
   821      CARD16 width, height;
   822      CARD32 pad3;
   823      CARD32 pad4;
   824      CARD32 pad5;
   825      CARD32 pad6;
   826      CARD32 pad7;
   827      } xQueryBestSizeReply;
   828  
   829  typedef struct {
   830      BYTE type;  /* X_Reply */
   831      BYTE pad1;
   832      CARD16 sequenceNumber;
   833      CARD32 length; /* 0 */
   834      BOOL  present;
   835      CARD8 major_opcode;
   836      CARD8 first_event;
   837      CARD8 first_error;
   838      CARD32 pad3;
   839      CARD32 pad4;
   840      CARD32 pad5;
   841      CARD32 pad6;
   842      CARD32 pad7;
   843      } xQueryExtensionReply;
   844  
   845  typedef struct {
   846      BYTE type;  /* X_Reply */
   847      CARD8 nExtensions;
   848      CARD16 sequenceNumber;
   849      CARD32 length;
   850      CARD32 pad2;
   851      CARD32 pad3;
   852      CARD32 pad4;
   853      CARD32 pad5;
   854      CARD32 pad6;
   855      CARD32 pad7;
   856      } xListExtensionsReply;
   857  
   858  
   859  typedef struct {
   860      BYTE   type;  /* X_Reply */
   861      CARD8  success;
   862      CARD16 sequenceNumber;
   863      CARD32 length;
   864      CARD32 pad2;
   865      CARD32 pad3;
   866      CARD32 pad4;
   867      CARD32 pad5;
   868      CARD32 pad6;
   869      CARD32 pad7;
   870      } xSetMappingReply;
   871  typedef xSetMappingReply xSetPointerMappingReply;
   872  typedef xSetMappingReply xSetModifierMappingReply;
   873  
   874  typedef struct {
   875      BYTE type;  /* X_Reply */
   876      CARD8 nElts;  /* how many elements does the map have */
   877      CARD16 sequenceNumber;
   878      CARD32 length;
   879      CARD32 pad2;
   880      CARD32 pad3;
   881      CARD32 pad4;
   882      CARD32 pad5;
   883      CARD32 pad6;
   884      CARD32 pad7;
   885      } xGetPointerMappingReply;
   886  
   887  typedef struct {
   888      BYTE type;
   889      CARD8 keySymsPerKeyCode;
   890      CARD16 sequenceNumber;
   891      CARD32 length;
   892      CARD32 pad2;
   893      CARD32 pad3;
   894      CARD32 pad4;
   895      CARD32 pad5;
   896      CARD32 pad6;
   897      CARD32 pad7;
   898  } xGetKeyboardMappingReply;
   899  
   900  typedef struct {
   901      BYTE type;
   902      CARD8 numKeyPerModifier;
   903      CARD16 sequenceNumber;
   904      CARD32 length;
   905      CARD32 pad1;
   906      CARD32 pad2;
   907      CARD32 pad3;
   908      CARD32 pad4;
   909      CARD32 pad5;
   910      CARD32 pad6;
   911  } xGetModifierMappingReply;
   912  
   913  typedef struct {
   914      BYTE type;  /* X_Reply */
   915      BOOL globalAutoRepeat;
   916      CARD16 sequenceNumber;
   917      CARD32 length;  /* 5 */
   918      CARD32 ledMask;
   919      CARD8 keyClickPercent, bellPercent;
   920      CARD16 bellPitch, bellDuration;
   921      CARD16 pad;
   922      BYTE map[32];  /* bit masks start here */
   923      } xGetKeyboardControlReply;
   924  
   925  typedef struct {
   926      BYTE type;  /* X_Reply */
   927      BYTE pad1;
   928      CARD16 sequenceNumber;
   929      CARD32 length;  /* 0 */
   930      CARD16 accelNumerator, accelDenominator;
   931      CARD16 threshold;
   932      CARD16 pad2;
   933      CARD32 pad3;
   934      CARD32 pad4;
   935      CARD32 pad5;
   936      CARD32 pad6;
   937      } xGetPointerControlReply;
   938  
   939  typedef struct {
   940      BYTE type;  /* X_Reply */
   941      BYTE pad1;
   942      CARD16 sequenceNumber;
   943      CARD32 length;  /* 0 */
   944      CARD16 timeout, interval;
   945      BOOL preferBlanking;
   946      BOOL allowExposures;
   947      CARD16 pad2;
   948      CARD32 pad3;
   949      CARD32 pad4;
   950      CARD32 pad5;
   951      CARD32 pad6;
   952      } xGetScreenSaverReply;
   953  
   954  typedef struct {
   955      BYTE type;  /* X_Reply */
   956      BOOL enabled;
   957      CARD16 sequenceNumber;
   958      CARD32 length;
   959      CARD16 nHosts;
   960      CARD16 pad1;
   961      CARD32 pad3;
   962      CARD32 pad4;
   963      CARD32 pad5;
   964      CARD32 pad6;
   965      CARD32 pad7;
   966      } xListHostsReply;
   967  
   968  
   969  
   970  
   971  /*****************************************************************
   972   * Xerror
   973   *    All errors  are 32 bytes
   974   *****************************************************************/
   975  
   976  typedef struct {
   977      BYTE type;                  /* X_Error */
   978      BYTE errorCode;
   979      CARD16 sequenceNumber;       /* the nth request from this client */
   980      CARD32 resourceID;
   981      CARD16 minorCode;
   982      CARD8 majorCode;
   983      BYTE pad1;
   984      CARD32 pad3;
   985      CARD32 pad4;
   986      CARD32 pad5;
   987      CARD32 pad6;
   988      CARD32 pad7;
   989  } xError;
   990  
   991  /*****************************************************************
   992   * xEvent
   993   *    All events are 32 bytes
   994   *****************************************************************/
   995  
   996  typedef struct _xEvent {
   997      union {
   998  	struct {
   999  	    BYTE type;
  1000  	    BYTE detail;
  1001  	    CARD16 sequenceNumber;
  1002  	    } u;
  1003  	struct {
  1004  	    CARD32 pad00;
  1005  	    Time time;
  1006  	    Window root, event, child;
  1007  	    INT16 rootX, rootY, eventX, eventY;
  1008  	    KeyButMask state;
  1009  	    BOOL sameScreen;
  1010  	    BYTE pad1;
  1011  	} keyButtonPointer;
  1012  	struct {
  1013  	    CARD32 pad00;
  1014  	    Time time;
  1015  	    Window root, event, child;
  1016  	    INT16 rootX, rootY, eventX, eventY;
  1017  	    KeyButMask state;
  1018  	    BYTE mode; 			/* really XMode */
  1019  	    BYTE flags;		/* sameScreen and focus booleans, packed together */
  1020  #define ELFlagFocus        (1<<0)
  1021  #define ELFlagSameScreen   (1<<1)
  1022  	} enterLeave;
  1023  	struct {
  1024  	    CARD32 pad00;
  1025  	    Window window;
  1026  	    BYTE mode; 			/* really XMode */
  1027  	    BYTE pad1, pad2, pad3;
  1028  	} focus;
  1029  	struct {
  1030  	    CARD32 pad00;
  1031  	    Window window;
  1032  	    CARD16 x, y, width, height;
  1033  	    CARD16 count;
  1034  	    CARD16 pad2;
  1035  	} expose;
  1036  	struct {
  1037  	    CARD32 pad00;
  1038  	    Drawable drawable;
  1039  	    CARD16 x, y, width, height;
  1040  	    CARD16 minorEvent;
  1041  	    CARD16 count;
  1042  	    BYTE majorEvent;
  1043  	    BYTE pad1, pad2, pad3;
  1044  	} graphicsExposure;
  1045  	struct {
  1046  	    CARD32 pad00;
  1047  	    Drawable drawable;
  1048  	    CARD16 minorEvent;
  1049  	    BYTE majorEvent;
  1050  	    BYTE bpad;
  1051  	} noExposure;
  1052  	struct {
  1053  	    CARD32 pad00;
  1054  	    Window window;
  1055  	    CARD8 state;
  1056  	    BYTE pad1, pad2, pad3;
  1057  	} visibility;
  1058  	struct {
  1059  	    CARD32 pad00;
  1060  	    Window parent, window;
  1061  	    INT16 x, y;
  1062  	    CARD16 width, height, borderWidth;
  1063  	    BOOL override;
  1064  	    BYTE bpad;
  1065          } createNotify;
  1066  /*
  1067   * The event fields in the structures for DestroyNotify, UnmapNotify,
  1068   * MapNotify, ReparentNotify, ConfigureNotify, CirculateNotify, GravityNotify,
  1069   * must be at the same offset because server internal code is depending upon
  1070   * this to patch up the events before they are delivered.
  1071   * Also note that MapRequest, ConfigureRequest and CirculateRequest have
  1072   * the same offset for the event window.
  1073   */
  1074  	struct {
  1075  	    CARD32 pad00;
  1076  	    Window event, window;
  1077  	} destroyNotify;
  1078  	struct {
  1079  	    CARD32 pad00;
  1080  	    Window event, window;
  1081  	    BOOL fromConfigure;
  1082  	    BYTE pad1, pad2, pad3;
  1083          } unmapNotify;
  1084  	struct {
  1085  	    CARD32 pad00;
  1086  	    Window event, window;
  1087  	    BOOL override;
  1088  	    BYTE pad1, pad2, pad3;
  1089          } mapNotify;
  1090  	struct {
  1091  	    CARD32 pad00;
  1092  	    Window parent, window;
  1093          } mapRequest;
  1094  	struct {
  1095  	    CARD32 pad00;
  1096  	    Window event, window, parent;
  1097  	    INT16 x, y;
  1098  	    BOOL override;
  1099  	    BYTE pad1, pad2, pad3;
  1100  	} reparent;
  1101  	struct {
  1102  	    CARD32 pad00;
  1103  	    Window event, window, aboveSibling;
  1104  	    INT16 x, y;
  1105  	    CARD16 width, height, borderWidth;
  1106  	    BOOL override;
  1107  	    BYTE bpad;
  1108  	} configureNotify;
  1109  	struct {
  1110  	    CARD32 pad00;
  1111  	    Window parent, window, sibling;
  1112  	    INT16 x, y;
  1113  	    CARD16 width, height, borderWidth;
  1114  	    CARD16 valueMask;
  1115  	    CARD32 pad1;
  1116  	} configureRequest;
  1117  	struct {
  1118  	    CARD32 pad00;
  1119  	    Window event, window;
  1120  	    INT16 x, y;
  1121  	    CARD32 pad1, pad2, pad3, pad4;
  1122  	} gravity;
  1123  	struct {
  1124  	    CARD32 pad00;
  1125  	    Window window;
  1126  	    CARD16 width, height;
  1127  	} resizeRequest;
  1128  	struct {
  1129  /* The event field in the circulate record is really the parent when this
  1130     is used as a CirculateRequest instead of a CirculateNotify */
  1131  	    CARD32 pad00;
  1132  	    Window event, window, parent;
  1133  	    BYTE place;			/* Top or Bottom */
  1134  	    BYTE pad1, pad2, pad3;
  1135  	} circulate;
  1136  	struct {
  1137  	    CARD32 pad00;
  1138  	    Window window;
  1139  	    Atom atom;
  1140  	    Time time;
  1141  	    BYTE state;			/* NewValue or Deleted */
  1142  	    BYTE pad1;
  1143  	    CARD16 pad2;
  1144  	} property;
  1145  	struct {
  1146  	    CARD32 pad00;
  1147  	    Time time;
  1148  	    Window window;
  1149  	    Atom atom;
  1150  	} selectionClear;
  1151  	struct {
  1152  	    CARD32 pad00;
  1153  	    Time time;
  1154  	    Window owner, requestor;
  1155  	    Atom selection, target, property;
  1156  	} selectionRequest;
  1157  	struct {
  1158  	    CARD32 pad00;
  1159  	    Time time;
  1160  	    Window requestor;
  1161  	    Atom selection, target, property;
  1162  	} selectionNotify;
  1163  	struct {
  1164  	    CARD32 pad00;
  1165  	    Window window;
  1166  	    Colormap colormap;
  1167  #if defined(__cplusplus) || defined(c_plusplus)
  1168  	    BOOL c_new;
  1169  #else
  1170  	    BOOL new;
  1171  #endif
  1172  	    BYTE state;			/* Installed or UnInstalled */
  1173  	    BYTE pad1, pad2;
  1174  	} colormap;
  1175  	struct {
  1176  	    CARD32 pad00;
  1177  	    CARD8 request;
  1178  	    KeyCode firstKeyCode;
  1179  	    CARD8 count;
  1180  	    BYTE pad1;
  1181  	} mappingNotify;
  1182  	struct {
  1183  	    CARD32 pad00;
  1184  	    Window window;
  1185  	    union {
  1186  		struct {
  1187  		    Atom type;
  1188  		    INT32 longs0;
  1189  		    INT32 longs1;
  1190  		    INT32 longs2;
  1191  		    INT32 longs3;
  1192  		    INT32 longs4;
  1193  		} l;
  1194  		struct {
  1195  		    Atom type;
  1196  		    INT16 shorts0;
  1197  		    INT16 shorts1;
  1198  		    INT16 shorts2;
  1199  		    INT16 shorts3;
  1200  		    INT16 shorts4;
  1201  		    INT16 shorts5;
  1202  		    INT16 shorts6;
  1203  		    INT16 shorts7;
  1204  		    INT16 shorts8;
  1205  		    INT16 shorts9;
  1206  		} s;
  1207  		struct {
  1208  		    Atom type;
  1209  		    INT8 bytes[20];
  1210  		} b;
  1211  	    } u;
  1212  	} clientMessage;
  1213      } u;
  1214  } xEvent;
  1215  
  1216  /*********************************************************
  1217   *
  1218   * Generic event
  1219   *
  1220   * Those events are not part of the core protocol spec and can be used by
  1221   * various extensions.
  1222   * type is always GenericEvent
  1223   * extension is the minor opcode of the extension the event belongs to.
  1224   * evtype is the actual event type, unique __per extension__.
  1225   *
  1226   * GenericEvents can be longer than 32 bytes, with the length field
  1227   * specifying the number of 4 byte blocks after the first 32 bytes.
  1228   *
  1229   *
  1230   */
  1231  typedef struct
  1232  {
  1233      BYTE    type;
  1234      CARD8   extension;
  1235      CARD16  sequenceNumber;
  1236      CARD32  length;
  1237      CARD16  evtype;
  1238      CARD16  pad2;
  1239      CARD32  pad3;
  1240      CARD32  pad4;
  1241      CARD32  pad5;
  1242      CARD32  pad6;
  1243      CARD32  pad7;
  1244  } xGenericEvent;
  1245  
  1246  
  1247  
  1248  /* KeymapNotify events are not included in the above union because they
  1249     are different from all other events: they do not have a "detail"
  1250     or "sequenceNumber", so there is room for a 248-bit key mask. */
  1251  
  1252  typedef struct {
  1253      BYTE type;
  1254      BYTE map[31];
  1255      } xKeymapEvent;
  1256  
  1257  #define XEventSize (sizeof(xEvent))
  1258  
  1259  /* XReply is the union of all the replies above whose "fixed part"
  1260  fits in 32 bytes.  It does NOT include GetWindowAttributesReply,
  1261  QueryFontReply, QueryKeymapReply, or GetKeyboardControlReply
  1262  ListFontsWithInfoReply */
  1263  
  1264  typedef union {
  1265      xGenericReply generic;
  1266      xGetGeometryReply geom;
  1267      xQueryTreeReply tree;
  1268      xInternAtomReply atom;
  1269      xGetAtomNameReply atomName;
  1270      xGetPropertyReply property;
  1271      xListPropertiesReply listProperties;
  1272      xGetSelectionOwnerReply selection;
  1273      xGrabPointerReply grabPointer;
  1274      xGrabKeyboardReply grabKeyboard;
  1275      xQueryPointerReply pointer;
  1276      xGetMotionEventsReply motionEvents;
  1277      xTranslateCoordsReply coords;
  1278      xGetInputFocusReply inputFocus;
  1279      xQueryTextExtentsReply textExtents;
  1280      xListFontsReply fonts;
  1281      xGetFontPathReply fontPath;
  1282      xGetImageReply image;
  1283      xListInstalledColormapsReply colormaps;
  1284      xAllocColorReply allocColor;
  1285      xAllocNamedColorReply allocNamedColor;
  1286      xAllocColorCellsReply colorCells;
  1287      xAllocColorPlanesReply colorPlanes;
  1288      xQueryColorsReply colors;
  1289      xLookupColorReply lookupColor;
  1290      xQueryBestSizeReply bestSize;
  1291      xQueryExtensionReply extension;
  1292      xListExtensionsReply extensions;
  1293      xSetModifierMappingReply setModifierMapping;
  1294      xGetModifierMappingReply getModifierMapping;
  1295      xSetPointerMappingReply setPointerMapping;
  1296      xGetKeyboardMappingReply getKeyboardMapping;
  1297      xGetPointerMappingReply getPointerMapping;
  1298      xGetPointerControlReply pointerControl;
  1299      xGetScreenSaverReply screenSaver;
  1300      xListHostsReply hosts;
  1301      xError error;
  1302      xEvent event;
  1303  } xReply;
  1304  
  1305  
  1306  
  1307  /*****************************************************************
  1308   * REQUESTS
  1309   *****************************************************************/
  1310  
  1311  
  1312  /* Request structure */
  1313  
  1314  typedef struct _xReq {
  1315  	CARD8 reqType;
  1316  	CARD8 data;            /* meaning depends on request type */
  1317  	CARD16 length;         /* length in 4 bytes quantities
  1318  				  of whole request, including this header */
  1319  } xReq;
  1320  
  1321  /*****************************************************************
  1322   *  structures that follow request.
  1323   *****************************************************************/
  1324  
  1325  /* ResourceReq is used for any request which has a resource ID
  1326     (or Atom or Time) as its one and only argument.  */
  1327  
  1328  typedef struct {
  1329      CARD8 reqType;
  1330      BYTE pad;
  1331      CARD16 length;
  1332      CARD32 id;  /* a Window, Drawable, Font, GContext, Pixmap, etc. */
  1333      } xResourceReq;
  1334  
  1335  typedef struct {
  1336      CARD8 reqType;
  1337      CARD8 depth;
  1338      CARD16 length;
  1339      Window wid, parent;
  1340      INT16 x, y;
  1341      CARD16 width, height, borderWidth;
  1342  #if defined(__cplusplus) || defined(c_plusplus)
  1343      CARD16 c_class;
  1344  #else
  1345      CARD16 class;
  1346  #endif
  1347      VisualID visual;
  1348      CARD32 mask;
  1349  } xCreateWindowReq;
  1350  
  1351  typedef struct {
  1352      CARD8 reqType;
  1353      BYTE pad;
  1354      CARD16 length;
  1355      Window window;
  1356      CARD32 valueMask;
  1357  } xChangeWindowAttributesReq;
  1358  
  1359  typedef struct {
  1360      CARD8 reqType;
  1361      BYTE mode;
  1362      CARD16 length;
  1363      Window window;
  1364  } xChangeSaveSetReq;
  1365  
  1366  typedef struct {
  1367      CARD8 reqType;
  1368      BYTE pad;
  1369      CARD16 length;
  1370      Window window, parent;
  1371      INT16 x, y;
  1372  } xReparentWindowReq;
  1373  
  1374  typedef struct {
  1375      CARD8 reqType;
  1376      CARD8 pad;
  1377      CARD16 length;
  1378      Window window;
  1379      CARD16 mask;
  1380      CARD16 pad2;
  1381  } xConfigureWindowReq;
  1382  
  1383  typedef struct {
  1384      CARD8 reqType;
  1385      CARD8 direction;
  1386      CARD16 length;
  1387      Window window;
  1388  } xCirculateWindowReq;
  1389  
  1390  typedef struct {    /* followed by padded string */
  1391      CARD8 reqType;
  1392      BOOL onlyIfExists;
  1393      CARD16 length;
  1394      CARD16 nbytes;    /* number of bytes in string */
  1395      CARD16 pad;
  1396  } xInternAtomReq;
  1397  
  1398  typedef struct {
  1399      CARD8 reqType;
  1400      CARD8 mode;
  1401      CARD16 length;
  1402      Window window;
  1403      Atom property, type;
  1404      CARD8 format;
  1405      BYTE pad[3];
  1406      CARD32 nUnits;     /* length of stuff following, depends on format */
  1407  } xChangePropertyReq;
  1408  
  1409  typedef struct {
  1410      CARD8 reqType;
  1411      BYTE pad;
  1412      CARD16 length;
  1413      Window window;
  1414      Atom property;
  1415  } xDeletePropertyReq;
  1416  
  1417  typedef struct {
  1418      CARD8 reqType;
  1419  #if defined(__cplusplus) || defined(c_plusplus)
  1420      BOOL c_delete;
  1421  #else
  1422      BOOL delete;
  1423  #endif
  1424      CARD16 length;
  1425      Window window;
  1426      Atom property, type;
  1427      CARD32 longOffset;
  1428      CARD32 longLength;
  1429  } xGetPropertyReq;
  1430  
  1431  typedef struct {
  1432      CARD8 reqType;
  1433      BYTE pad;
  1434      CARD16 length;
  1435      Window window;
  1436      Atom selection;
  1437      Time time;
  1438  } xSetSelectionOwnerReq;
  1439  
  1440  typedef struct {
  1441      CARD8 reqType;
  1442      BYTE pad;
  1443      CARD16 length;
  1444      Window requestor;
  1445      Atom selection, target, property;
  1446      Time time;
  1447      } xConvertSelectionReq;
  1448  
  1449  typedef struct {
  1450      CARD8 reqType;
  1451      BOOL propagate;
  1452      CARD16 length;
  1453      Window destination;
  1454      CARD32 eventMask;
  1455      xEvent event;
  1456  } xSendEventReq;
  1457  
  1458  typedef struct {
  1459      CARD8 reqType;
  1460      BOOL ownerEvents;
  1461      CARD16 length;
  1462      Window grabWindow;
  1463      CARD16 eventMask;
  1464      BYTE pointerMode, keyboardMode;
  1465      Window confineTo;
  1466      Cursor cursor;
  1467      Time time;
  1468  } xGrabPointerReq;
  1469  
  1470  typedef struct {
  1471      CARD8 reqType;
  1472      BOOL ownerEvents;
  1473      CARD16 length;
  1474      Window grabWindow;
  1475      CARD16 eventMask;
  1476      BYTE pointerMode, keyboardMode;
  1477      Window confineTo;
  1478      Cursor cursor;
  1479      CARD8 button;
  1480      BYTE pad;
  1481      CARD16 modifiers;
  1482  } xGrabButtonReq;
  1483  
  1484  typedef struct {
  1485      CARD8 reqType;
  1486      CARD8 button;
  1487      CARD16 length;
  1488      Window grabWindow;
  1489      CARD16 modifiers;
  1490      CARD16 pad;
  1491  } xUngrabButtonReq;
  1492  
  1493  typedef struct {
  1494      CARD8 reqType;
  1495      BYTE pad;
  1496      CARD16 length;
  1497      Cursor cursor;
  1498      Time time;
  1499      CARD16 eventMask;
  1500      CARD16 pad2;
  1501  } xChangeActivePointerGrabReq;
  1502  
  1503  typedef struct {
  1504      CARD8 reqType;
  1505      BOOL ownerEvents;
  1506      CARD16 length;
  1507      Window grabWindow;
  1508      Time time;
  1509      BYTE pointerMode, keyboardMode;
  1510      CARD16 pad;
  1511  } xGrabKeyboardReq;
  1512  
  1513  typedef struct {
  1514      CARD8 reqType;
  1515      BOOL ownerEvents;
  1516      CARD16 length;
  1517      Window grabWindow;
  1518      CARD16 modifiers;
  1519      CARD8 key;
  1520      BYTE pointerMode, keyboardMode;
  1521      BYTE pad1, pad2, pad3;
  1522  } xGrabKeyReq;
  1523  
  1524  typedef struct {
  1525      CARD8 reqType;
  1526      CARD8 key;
  1527      CARD16 length;
  1528      Window grabWindow;
  1529      CARD16 modifiers;
  1530      CARD16 pad;
  1531  } xUngrabKeyReq;
  1532  
  1533  typedef struct {
  1534      CARD8 reqType;
  1535      CARD8 mode;
  1536      CARD16 length;
  1537      Time time;
  1538  } xAllowEventsReq;
  1539  
  1540  typedef struct {
  1541      CARD8 reqType;
  1542      BYTE pad;
  1543      CARD16 length;
  1544      Window window;
  1545      Time start, stop;
  1546  } xGetMotionEventsReq;
  1547  
  1548  typedef struct {
  1549      CARD8 reqType;
  1550      BYTE pad;
  1551      CARD16 length;
  1552      Window srcWid, dstWid;
  1553      INT16 srcX, srcY;
  1554  } xTranslateCoordsReq;
  1555  
  1556  typedef struct {
  1557      CARD8 reqType;
  1558      BYTE pad;
  1559      CARD16 length;
  1560      Window srcWid, dstWid;
  1561      INT16 srcX, srcY;
  1562      CARD16 srcWidth, srcHeight;
  1563      INT16 dstX, dstY;
  1564  } xWarpPointerReq;
  1565  
  1566  typedef struct {
  1567      CARD8 reqType;
  1568      CARD8 revertTo;
  1569      CARD16 length;
  1570      Window focus;
  1571      Time time;
  1572  } xSetInputFocusReq;
  1573  
  1574  typedef struct {
  1575      CARD8 reqType;
  1576      BYTE pad;
  1577      CARD16 length;
  1578      Font fid;
  1579      CARD16 nbytes;
  1580      BYTE pad1, pad2;	/* string follows on word boundary */
  1581  } xOpenFontReq;
  1582  
  1583  typedef struct {
  1584      CARD8 reqType;
  1585      BOOL oddLength;
  1586      CARD16 length;
  1587      Font fid;
  1588      } xQueryTextExtentsReq;
  1589  
  1590  typedef struct {
  1591      CARD8 reqType;
  1592      BYTE pad;
  1593      CARD16 length;
  1594      CARD16 maxNames;
  1595      CARD16 nbytes;	/* followed immediately by string bytes */
  1596  } xListFontsReq;
  1597  
  1598  typedef xListFontsReq xListFontsWithInfoReq;
  1599  
  1600  typedef struct {
  1601      CARD8 reqType;
  1602      BYTE pad;
  1603      CARD16 length;
  1604      CARD16 nFonts;
  1605      BYTE pad1, pad2;	/* LISTofSTRING8 follows on word boundary */
  1606  } xSetFontPathReq;
  1607  
  1608  typedef struct {
  1609      CARD8 reqType;
  1610      CARD8 depth;
  1611      CARD16 length;
  1612      Pixmap pid;
  1613      Drawable drawable;
  1614      CARD16 width, height;
  1615  } xCreatePixmapReq;
  1616  
  1617  typedef struct {
  1618      CARD8 reqType;
  1619      BYTE pad;
  1620      CARD16 length;
  1621      GContext gc;
  1622      Drawable drawable;
  1623      CARD32 mask;
  1624  } xCreateGCReq;
  1625  
  1626  typedef struct {
  1627      CARD8 reqType;
  1628      BYTE pad;
  1629      CARD16 length;
  1630      GContext gc;
  1631      CARD32 mask;
  1632  } xChangeGCReq;
  1633  
  1634  typedef struct {
  1635      CARD8 reqType;
  1636      BYTE pad;
  1637      CARD16 length;
  1638      GContext srcGC, dstGC;
  1639      CARD32 mask;
  1640  } xCopyGCReq;
  1641  
  1642  typedef struct {
  1643      CARD8 reqType;
  1644      BYTE pad;
  1645      CARD16 length;
  1646      GContext gc;
  1647      CARD16 dashOffset;
  1648      CARD16 nDashes;	/* length LISTofCARD8 of values following */
  1649  } xSetDashesReq;
  1650  
  1651  typedef struct {
  1652      CARD8 reqType;
  1653      BYTE ordering;
  1654      CARD16 length;
  1655      GContext gc;
  1656      INT16 xOrigin, yOrigin;
  1657  } xSetClipRectanglesReq;
  1658  
  1659  typedef struct {
  1660      CARD8 reqType;
  1661      BOOL exposures;
  1662      CARD16 length;
  1663      Window window;
  1664      INT16 x, y;
  1665      CARD16 width, height;
  1666  } xClearAreaReq;
  1667  
  1668  typedef struct {
  1669      CARD8 reqType;
  1670      BYTE pad;
  1671      CARD16 length;
  1672      Drawable srcDrawable, dstDrawable;
  1673      GContext gc;
  1674      INT16 srcX, srcY, dstX, dstY;
  1675      CARD16 width, height;
  1676  } xCopyAreaReq;
  1677  
  1678  typedef struct {
  1679      CARD8 reqType;
  1680      BYTE pad;
  1681      CARD16 length;
  1682      Drawable srcDrawable, dstDrawable;
  1683      GContext gc;
  1684      INT16 srcX, srcY, dstX, dstY;
  1685      CARD16 width, height;
  1686      CARD32 bitPlane;
  1687  } xCopyPlaneReq;
  1688  
  1689  typedef struct {
  1690      CARD8 reqType;
  1691      BYTE coordMode;
  1692      CARD16 length;
  1693      Drawable drawable;
  1694      GContext gc;
  1695  } xPolyPointReq;
  1696  
  1697  typedef xPolyPointReq xPolyLineReq;  /* same request structure */
  1698  
  1699  /* The following used for PolySegment, PolyRectangle, PolyArc, PolyFillRectangle, PolyFillArc */
  1700  
  1701  typedef struct {
  1702      CARD8 reqType;
  1703      BYTE pad;
  1704      CARD16 length;
  1705      Drawable drawable;
  1706      GContext gc;
  1707  } xPolySegmentReq;
  1708  
  1709  typedef xPolySegmentReq xPolyArcReq;
  1710  typedef xPolySegmentReq xPolyRectangleReq;
  1711  typedef xPolySegmentReq xPolyFillRectangleReq;
  1712  typedef xPolySegmentReq xPolyFillArcReq;
  1713  
  1714  typedef struct _FillPolyReq {
  1715      CARD8 reqType;
  1716      BYTE pad;
  1717      CARD16 length;
  1718      Drawable drawable;
  1719      GContext gc;
  1720      BYTE shape;
  1721      BYTE coordMode;
  1722      CARD16 pad1;
  1723  } xFillPolyReq;
  1724  
  1725  
  1726  typedef struct _PutImageReq {
  1727      CARD8 reqType;
  1728      CARD8 format;
  1729      CARD16 length;
  1730      Drawable drawable;
  1731      GContext gc;
  1732      CARD16 width, height;
  1733      INT16 dstX, dstY;
  1734      CARD8 leftPad;
  1735      CARD8 depth;
  1736      CARD16 pad;
  1737  } xPutImageReq;
  1738  
  1739  typedef struct {
  1740      CARD8 reqType;
  1741      CARD8 format;
  1742      CARD16 length;
  1743      Drawable drawable;
  1744      INT16 x, y;
  1745      CARD16 width, height;
  1746      CARD32 planeMask;
  1747  } xGetImageReq;
  1748  
  1749  /* the following used by PolyText8 and PolyText16 */
  1750  
  1751  typedef struct {
  1752      CARD8 reqType;
  1753      CARD8 pad;
  1754      CARD16 length;
  1755      Drawable drawable;
  1756      GContext gc;
  1757      INT16 x, y;		/* items (xTextElt) start after struct */
  1758  } xPolyTextReq;
  1759  
  1760  typedef xPolyTextReq xPolyText8Req;
  1761  typedef xPolyTextReq xPolyText16Req;
  1762  
  1763  typedef struct {
  1764      CARD8 reqType;
  1765      BYTE nChars;
  1766      CARD16 length;
  1767      Drawable drawable;
  1768      GContext gc;
  1769      INT16 x, y;
  1770  } xImageTextReq;
  1771  
  1772  typedef xImageTextReq xImageText8Req;
  1773  typedef xImageTextReq xImageText16Req;
  1774  
  1775  typedef struct {
  1776      CARD8 reqType;
  1777      BYTE alloc;
  1778      CARD16 length;
  1779      Colormap mid;
  1780      Window window;
  1781      VisualID visual;
  1782  } xCreateColormapReq;
  1783  
  1784  typedef struct {
  1785      CARD8 reqType;
  1786      BYTE pad;
  1787      CARD16 length;
  1788      Colormap mid;
  1789      Colormap srcCmap;
  1790  } xCopyColormapAndFreeReq;
  1791  
  1792  typedef struct {
  1793      CARD8 reqType;
  1794      BYTE pad;
  1795      CARD16 length;
  1796      Colormap cmap;
  1797      CARD16 red, green, blue;
  1798      CARD16 pad2;
  1799  } xAllocColorReq;
  1800  
  1801  typedef struct {
  1802      CARD8 reqType;
  1803      BYTE pad;
  1804      CARD16 length;
  1805      Colormap cmap;
  1806      CARD16 nbytes;	/* followed by structure */
  1807      BYTE pad1, pad2;
  1808  } xAllocNamedColorReq;
  1809  
  1810  typedef struct {
  1811      CARD8 reqType;
  1812      BOOL contiguous;
  1813      CARD16 length;
  1814      Colormap cmap;
  1815      CARD16 colors, planes;
  1816  } xAllocColorCellsReq;
  1817  
  1818  typedef struct {
  1819      CARD8 reqType;
  1820      BOOL contiguous;
  1821      CARD16 length;
  1822      Colormap cmap;
  1823      CARD16 colors, red, green, blue;
  1824  } xAllocColorPlanesReq;
  1825  
  1826  typedef struct {
  1827      CARD8 reqType;
  1828      BYTE pad;
  1829      CARD16 length;
  1830      Colormap cmap;
  1831      CARD32 planeMask;
  1832  } xFreeColorsReq;
  1833  
  1834  typedef struct {
  1835      CARD8 reqType;
  1836      BYTE pad;
  1837      CARD16 length;
  1838      Colormap cmap;
  1839  } xStoreColorsReq;
  1840  
  1841  typedef struct {
  1842      CARD8 reqType;
  1843      CARD8 flags;   /* DoRed, DoGreen, DoBlue, as in xColorItem */
  1844      CARD16 length;
  1845      Colormap cmap;
  1846      CARD32 pixel;
  1847      CARD16 nbytes;  /* number of name string bytes following structure */
  1848      BYTE pad1, pad2;
  1849      } xStoreNamedColorReq;
  1850  
  1851  typedef struct {
  1852      CARD8 reqType;
  1853      BYTE pad;
  1854      CARD16 length;
  1855      Colormap cmap;
  1856  } xQueryColorsReq;
  1857  
  1858  typedef struct {    /* followed  by string of length len */
  1859      CARD8 reqType;
  1860      BYTE pad;
  1861      CARD16 length;
  1862      Colormap cmap;
  1863      CARD16 nbytes;  /* number of string bytes following structure*/
  1864      BYTE pad1, pad2;
  1865  } xLookupColorReq;
  1866  
  1867  typedef struct {
  1868      CARD8 reqType;
  1869      BYTE pad;
  1870      CARD16 length;
  1871      Cursor cid;
  1872      Pixmap source, mask;
  1873      CARD16 foreRed, foreGreen, foreBlue;
  1874      CARD16 backRed, backGreen, backBlue;
  1875      CARD16 x, y;
  1876  } xCreateCursorReq;
  1877  
  1878  typedef struct {
  1879      CARD8 reqType;
  1880      BYTE pad;
  1881      CARD16 length;
  1882      Cursor cid;
  1883      Font source, mask;
  1884      CARD16 sourceChar, maskChar;
  1885      CARD16 foreRed, foreGreen, foreBlue;
  1886      CARD16 backRed, backGreen, backBlue;
  1887  } xCreateGlyphCursorReq;
  1888  
  1889  typedef struct {
  1890      CARD8 reqType;
  1891      BYTE pad;
  1892      CARD16 length;
  1893      Cursor cursor;
  1894      CARD16 foreRed, foreGreen, foreBlue;
  1895      CARD16 backRed, backGreen, backBlue;
  1896  } xRecolorCursorReq;
  1897  
  1898  typedef struct {
  1899      CARD8 reqType;
  1900  #if defined(__cplusplus) || defined(c_plusplus)
  1901      CARD8 c_class;
  1902  #else
  1903      CARD8 class;
  1904  #endif
  1905      CARD16 length;
  1906      Drawable drawable;
  1907      CARD16 width, height;
  1908  } xQueryBestSizeReq;
  1909  
  1910  typedef struct {
  1911      CARD8 reqType;
  1912      BYTE pad;
  1913      CARD16 length;
  1914      CARD16 nbytes;	/* number of string bytes following structure */
  1915      BYTE pad1, pad2;
  1916  } xQueryExtensionReq;
  1917  
  1918  typedef struct {
  1919      CARD8   reqType;
  1920      CARD8   numKeyPerModifier;
  1921      CARD16  length;
  1922  } xSetModifierMappingReq;
  1923  
  1924  typedef struct {
  1925      CARD8 reqType;
  1926      CARD8 nElts;	/* how many elements in the map */
  1927      CARD16 length;
  1928  } xSetPointerMappingReq;
  1929  
  1930  typedef struct {
  1931      CARD8 reqType;
  1932      BYTE pad;
  1933      CARD16 length;
  1934      KeyCode firstKeyCode;
  1935      CARD8 count;
  1936      CARD16 pad1;
  1937  } xGetKeyboardMappingReq;
  1938  
  1939  typedef struct {
  1940      CARD8 reqType;
  1941      CARD8 keyCodes;
  1942      CARD16 length;
  1943      KeyCode firstKeyCode;
  1944      CARD8 keySymsPerKeyCode;
  1945      CARD16 pad1;
  1946  } xChangeKeyboardMappingReq;
  1947  
  1948  typedef struct {
  1949      CARD8 reqType;
  1950      BYTE pad;
  1951      CARD16 length;
  1952      CARD32 mask;
  1953  } xChangeKeyboardControlReq;
  1954  
  1955  typedef struct {
  1956      CARD8 reqType;
  1957      INT8 percent;  /* -100 to 100 */
  1958      CARD16 length;
  1959  } xBellReq;
  1960  
  1961  typedef struct {
  1962      CARD8 reqType;
  1963      BYTE pad;
  1964      CARD16 length;
  1965      INT16 accelNum, accelDenum;
  1966      INT16 threshold;
  1967      BOOL doAccel, doThresh;
  1968  } xChangePointerControlReq;
  1969  
  1970  typedef struct {
  1971      CARD8 reqType;
  1972      BYTE pad;
  1973      CARD16 length;
  1974      INT16 timeout, interval;
  1975      BYTE preferBlank, allowExpose;
  1976      CARD16 pad2;
  1977  } xSetScreenSaverReq;
  1978  
  1979  typedef struct {
  1980      CARD8 reqType;
  1981      BYTE mode;
  1982      CARD16 length;
  1983      CARD8 hostFamily;
  1984      BYTE pad;
  1985      CARD16 hostLength;
  1986  } xChangeHostsReq;
  1987  
  1988  typedef struct {
  1989      CARD8 reqType;
  1990      BYTE pad;
  1991      CARD16 length;
  1992      } xListHostsReq;
  1993  
  1994  typedef struct {
  1995      CARD8 reqType;
  1996      BYTE mode;
  1997      CARD16 length;
  1998      } xChangeModeReq;
  1999  
  2000  typedef xChangeModeReq xSetAccessControlReq;
  2001  typedef xChangeModeReq xSetCloseDownModeReq;
  2002  typedef xChangeModeReq xForceScreenSaverReq;
  2003  
  2004  typedef struct { /* followed by LIST of ATOM */
  2005      CARD8 reqType;
  2006      BYTE pad;
  2007      CARD16 length;
  2008      Window window;
  2009      CARD16 nAtoms;
  2010      INT16 nPositions;
  2011      } xRotatePropertiesReq;
  2012  
  2013  
  2014  
  2015  /* Reply codes */
  2016  
  2017  #define X_Reply		1		/* Normal reply */
  2018  #define X_Error		0		/* Error */
  2019  
  2020  /* Request codes */
  2021  
  2022  #define X_CreateWindow                  1
  2023  #define X_ChangeWindowAttributes        2
  2024  #define X_GetWindowAttributes           3
  2025  #define X_DestroyWindow                 4
  2026  #define X_DestroySubwindows             5
  2027  #define X_ChangeSaveSet                 6
  2028  #define X_ReparentWindow                7
  2029  #define X_MapWindow                     8
  2030  #define X_MapSubwindows                 9
  2031  #define X_UnmapWindow                  10
  2032  #define X_UnmapSubwindows              11
  2033  #define X_ConfigureWindow              12
  2034  #define X_CirculateWindow              13
  2035  #define X_GetGeometry                  14
  2036  #define X_QueryTree                    15
  2037  #define X_InternAtom                   16
  2038  #define X_GetAtomName                  17
  2039  #define X_ChangeProperty               18
  2040  #define X_DeleteProperty               19
  2041  #define X_GetProperty                  20
  2042  #define X_ListProperties               21
  2043  #define X_SetSelectionOwner            22
  2044  #define X_GetSelectionOwner            23
  2045  #define X_ConvertSelection             24
  2046  #define X_SendEvent                    25
  2047  #define X_GrabPointer                  26
  2048  #define X_UngrabPointer                27
  2049  #define X_GrabButton                   28
  2050  #define X_UngrabButton                 29
  2051  #define X_ChangeActivePointerGrab      30
  2052  #define X_GrabKeyboard                 31
  2053  #define X_UngrabKeyboard               32
  2054  #define X_GrabKey                      33
  2055  #define X_UngrabKey                    34
  2056  #define X_AllowEvents                  35
  2057  #define X_GrabServer                   36
  2058  #define X_UngrabServer                 37
  2059  #define X_QueryPointer                 38
  2060  #define X_GetMotionEvents              39
  2061  #define X_TranslateCoords              40
  2062  #define X_WarpPointer                  41
  2063  #define X_SetInputFocus                42
  2064  #define X_GetInputFocus                43
  2065  #define X_QueryKeymap                  44
  2066  #define X_OpenFont                     45
  2067  #define X_CloseFont                    46
  2068  #define X_QueryFont                    47
  2069  #define X_QueryTextExtents             48
  2070  #define X_ListFonts                    49
  2071  #define X_ListFontsWithInfo    	       50
  2072  #define X_SetFontPath                  51
  2073  #define X_GetFontPath                  52
  2074  #define X_CreatePixmap                 53
  2075  #define X_FreePixmap                   54
  2076  #define X_CreateGC                     55
  2077  #define X_ChangeGC                     56
  2078  #define X_CopyGC                       57
  2079  #define X_SetDashes                    58
  2080  #define X_SetClipRectangles            59
  2081  #define X_FreeGC                       60
  2082  #define X_ClearArea                    61
  2083  #define X_CopyArea                     62
  2084  #define X_CopyPlane                    63
  2085  #define X_PolyPoint                    64
  2086  #define X_PolyLine                     65
  2087  #define X_PolySegment                  66
  2088  #define X_PolyRectangle                67
  2089  #define X_PolyArc                      68
  2090  #define X_FillPoly                     69
  2091  #define X_PolyFillRectangle            70
  2092  #define X_PolyFillArc                  71
  2093  #define X_PutImage                     72
  2094  #define X_GetImage                     73
  2095  #define X_PolyText8                    74
  2096  #define X_PolyText16                   75
  2097  #define X_ImageText8                   76
  2098  #define X_ImageText16                  77
  2099  #define X_CreateColormap               78
  2100  #define X_FreeColormap                 79
  2101  #define X_CopyColormapAndFree          80
  2102  #define X_InstallColormap              81
  2103  #define X_UninstallColormap            82
  2104  #define X_ListInstalledColormaps       83
  2105  #define X_AllocColor                   84
  2106  #define X_AllocNamedColor              85
  2107  #define X_AllocColorCells              86
  2108  #define X_AllocColorPlanes             87
  2109  #define X_FreeColors                   88
  2110  #define X_StoreColors                  89
  2111  #define X_StoreNamedColor              90
  2112  #define X_QueryColors                  91
  2113  #define X_LookupColor                  92
  2114  #define X_CreateCursor                 93
  2115  #define X_CreateGlyphCursor            94
  2116  #define X_FreeCursor                   95
  2117  #define X_RecolorCursor                96
  2118  #define X_QueryBestSize                97
  2119  #define X_QueryExtension               98
  2120  #define X_ListExtensions               99
  2121  #define X_ChangeKeyboardMapping        100
  2122  #define X_GetKeyboardMapping           101
  2123  #define X_ChangeKeyboardControl        102
  2124  #define X_GetKeyboardControl           103
  2125  #define X_Bell                         104
  2126  #define X_ChangePointerControl         105
  2127  #define X_GetPointerControl            106
  2128  #define X_SetScreenSaver               107
  2129  #define X_GetScreenSaver               108
  2130  #define X_ChangeHosts                  109
  2131  #define X_ListHosts                    110
  2132  #define X_SetAccessControl             111
  2133  #define X_SetCloseDownMode             112
  2134  #define X_KillClient                   113
  2135  #define X_RotateProperties	       114
  2136  #define X_ForceScreenSaver	       115
  2137  #define X_SetPointerMapping            116
  2138  #define X_GetPointerMapping            117
  2139  #define X_SetModifierMapping	       118
  2140  #define X_GetModifierMapping	       119
  2141  #define X_NoOperation                  127
  2142  
  2143  /* restore these definitions back to the typedefs in X.h */
  2144  #undef Window
  2145  #undef Drawable
  2146  #undef Font
  2147  #undef Pixmap
  2148  #undef Cursor
  2149  #undef Colormap
  2150  #undef GContext
  2151  #undef Atom
  2152  #undef VisualID
  2153  #undef Time
  2154  #undef KeyCode
  2155  #undef KeySym
  2156  
  2157  #endif /* XPROTO_H */