Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:22

0001 /************************************************************
0002 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
0003 
0004 Permission to use, copy, modify, and distribute this
0005 software and its documentation for any purpose and without
0006 fee is hereby granted, provided that the above copyright
0007 notice appear in all copies and that both that copyright
0008 notice and this permission notice appear in supporting
0009 documentation, and that the name of Silicon Graphics not be 
0010 used in advertising or publicity pertaining to distribution 
0011 of the software without specific prior written permission.
0012 Silicon Graphics makes no representation about the suitability 
0013 of this software for any purpose. It is provided "as is"
0014 without any express or implied warranty.
0015 
0016 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
0017 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
0018 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
0019 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
0020 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
0021 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
0022 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
0023 THE USE OR PERFORMANCE OF THIS SOFTWARE.
0024 
0025 ********************************************************/
0026 
0027 #ifndef _XKBPROTO_H_
0028 #define _XKBPROTO_H_
0029 
0030 #include <X11/Xmd.h>
0031 #include <X11/extensions/XKB.h>
0032 
0033 #define Window CARD32
0034 #define Atom CARD32
0035 #define Time CARD32
0036 #define KeyCode CARD8
0037 #define KeySym CARD32
0038 
0039 #define XkbPaddedSize(n)    ((((unsigned int)(n)+3) >> 2) << 2)
0040 
0041 typedef struct _xkbUseExtension {
0042     CARD8   reqType;
0043     CARD8   xkbReqType; /* always X_KBUseExtension */
0044     CARD16  length B16;
0045     CARD16  wantedMajor B16;
0046     CARD16  wantedMinor B16;
0047 } xkbUseExtensionReq;
0048 #define sz_xkbUseExtensionReq   8
0049 
0050 typedef struct _xkbUseExtensionReply {
0051     BYTE    type;       /* X_Reply */
0052     BOOL    supported;
0053     CARD16  sequenceNumber B16;
0054     CARD32  length B32;
0055     CARD16  serverMajor B16;
0056     CARD16  serverMinor B16;
0057     CARD32  pad1 B32;
0058     CARD32  pad2 B32;
0059     CARD32  pad3 B32;
0060     CARD32  pad4 B32;
0061     CARD32  pad5 B32;
0062 } xkbUseExtensionReply;
0063 #define sz_xkbUseExtensionReply 32
0064 
0065 typedef struct _xkbSelectEvents {
0066     CARD8   reqType;
0067     CARD8   xkbReqType; /* X_KBSelectEvents */
0068     CARD16  length B16;
0069     CARD16  deviceSpec B16;
0070     CARD16  affectWhich B16;
0071     CARD16  clear B16;
0072     CARD16  selectAll B16;
0073     CARD16  affectMap B16;
0074     CARD16  map B16;
0075 } xkbSelectEventsReq;
0076 #define sz_xkbSelectEventsReq   16
0077 
0078 typedef struct _xkbBell {
0079     CARD8   reqType;
0080     CARD8   xkbReqType; /* X_KBBell */
0081     CARD16  length B16;
0082     CARD16  deviceSpec B16;
0083     CARD16  bellClass B16;
0084     CARD16  bellID B16;
0085     INT8    percent;
0086     BOOL    forceSound;
0087     BOOL    eventOnly;
0088     CARD8   pad1;
0089     INT16   pitch B16;
0090     INT16   duration B16;
0091     CARD16  pad2 B16;
0092     Atom    name B32;
0093     Window  window B32;
0094 } xkbBellReq;
0095 #define sz_xkbBellReq       28
0096 
0097 typedef struct _xkbGetState {
0098     CARD8       reqType;
0099     CARD8       xkbReqType; /* always X_KBGetState */
0100     CARD16      length B16;
0101     CARD16      deviceSpec B16;
0102     CARD16      pad B16;
0103 } xkbGetStateReq;
0104 #define sz_xkbGetStateReq   8
0105 
0106 typedef struct _xkbGetStateReply {
0107     BYTE    type;
0108     BYTE    deviceID;
0109     CARD16  sequenceNumber B16;
0110     CARD32  length B32;
0111     CARD8   mods;
0112     CARD8   baseMods;
0113     CARD8   latchedMods;
0114     CARD8   lockedMods;
0115     CARD8   group;
0116     CARD8   lockedGroup;
0117     INT16   baseGroup B16;
0118     INT16   latchedGroup B16;
0119     CARD8   compatState;
0120     CARD8   grabMods;
0121     CARD8   compatGrabMods;
0122     CARD8   lookupMods;
0123     CARD8   compatLookupMods;
0124     CARD8   pad1;
0125     CARD16  ptrBtnState B16;
0126     CARD16  pad2 B16;
0127     CARD32  pad3 B32;
0128 } xkbGetStateReply;
0129 #define sz_xkbGetStateReply 32
0130 
0131 typedef struct _xkbLatchLockState {
0132     CARD8   reqType;
0133     CARD8   xkbReqType; /* always X_KBLatchLockState */
0134     CARD16  length B16;
0135     CARD16  deviceSpec B16;
0136     CARD8   affectModLocks;
0137     CARD8   modLocks;
0138     BOOL    lockGroup;
0139     CARD8   groupLock;
0140     CARD8   affectModLatches;
0141     CARD8   modLatches;
0142     CARD8   pad;
0143     BOOL    latchGroup;
0144     INT16   groupLatch B16;
0145 } xkbLatchLockStateReq;
0146 #define sz_xkbLatchLockStateReq     16
0147 
0148 typedef struct _xkbGetControls {
0149     CARD8   reqType;
0150     CARD8   xkbReqType; /* always X_KBGetControls */
0151     CARD16  length B16;
0152     CARD16  deviceSpec B16;
0153     CARD16  pad B16;
0154 } xkbGetControlsReq;
0155 #define sz_xkbGetControlsReq    8
0156 
0157 typedef struct _xkbGetControlsReply {
0158     BYTE    type;       /* X_Reply */
0159     CARD8   deviceID;
0160     CARD16  sequenceNumber B16;
0161     CARD32  length B32;
0162     CARD8   mkDfltBtn;
0163     CARD8   numGroups;
0164     CARD8   groupsWrap;
0165     CARD8   internalMods;
0166     CARD8   ignoreLockMods;
0167     CARD8   internalRealMods;
0168     CARD8   ignoreLockRealMods;
0169     CARD8   pad1;
0170     CARD16  internalVMods B16;
0171     CARD16  ignoreLockVMods B16;
0172     CARD16  repeatDelay B16;
0173     CARD16  repeatInterval B16;
0174     CARD16  slowKeysDelay B16;
0175     CARD16  debounceDelay B16;
0176     CARD16  mkDelay B16;
0177     CARD16  mkInterval B16;
0178     CARD16  mkTimeToMax B16;
0179     CARD16  mkMaxSpeed B16;
0180     INT16   mkCurve B16;
0181     CARD16  axOptions B16;
0182     CARD16  axTimeout B16;
0183     CARD16  axtOptsMask B16;
0184     CARD16  axtOptsValues B16;
0185     CARD16  pad2 B16;
0186     CARD32  axtCtrlsMask B32;
0187     CARD32  axtCtrlsValues B32;
0188     CARD32  enabledCtrls B32;
0189     BYTE    perKeyRepeat[XkbPerKeyBitArraySize];
0190 } xkbGetControlsReply;
0191 #define sz_xkbGetControlsReply  92
0192 
0193 typedef struct _xkbSetControls {
0194     CARD8   reqType;
0195     CARD8   xkbReqType; /* always X_KBSetControls */
0196     CARD16  length B16;
0197     CARD16  deviceSpec B16;
0198     CARD8   affectInternalMods;
0199     CARD8   internalMods;
0200     CARD8   affectIgnoreLockMods;
0201     CARD8   ignoreLockMods;
0202     CARD16  affectInternalVMods B16;
0203     CARD16  internalVMods B16;
0204     CARD16  affectIgnoreLockVMods B16;
0205     CARD16  ignoreLockVMods B16;
0206     CARD8   mkDfltBtn;
0207     CARD8   groupsWrap;
0208     CARD16  axOptions B16;
0209     CARD16  pad1 B16;
0210     CARD32  affectEnabledCtrls B32;
0211     CARD32  enabledCtrls B32;
0212     CARD32  changeCtrls B32;
0213     CARD16  repeatDelay B16;
0214     CARD16  repeatInterval B16;
0215     CARD16  slowKeysDelay B16;
0216     CARD16  debounceDelay B16;
0217     CARD16  mkDelay B16;
0218     CARD16  mkInterval B16;
0219     CARD16  mkTimeToMax B16;
0220     CARD16  mkMaxSpeed B16;
0221     INT16   mkCurve B16;
0222     CARD16  axTimeout B16;
0223     CARD32  axtCtrlsMask B32;
0224     CARD32  axtCtrlsValues B32;
0225     CARD16  axtOptsMask B16;
0226     CARD16  axtOptsValues B16;
0227     BYTE    perKeyRepeat[XkbPerKeyBitArraySize];
0228 } xkbSetControlsReq;
0229 #define sz_xkbSetControlsReq    100
0230 
0231 typedef struct _xkbKTMapEntryWireDesc {
0232     BOOL    active;
0233     CARD8   mask;
0234     CARD8   level;
0235     CARD8   realMods;
0236     CARD16  virtualMods B16;
0237     CARD16  pad B16;
0238 } xkbKTMapEntryWireDesc;
0239 #define sz_xkbKTMapEntryWireDesc    8
0240 
0241 typedef struct _xkbKTSetMapEntryWireDesc {
0242     CARD8   level;
0243     CARD8   realMods;
0244     CARD16  virtualMods B16;
0245 } xkbKTSetMapEntryWireDesc;
0246 #define sz_xkbKTSetMapEntryWireDesc 4
0247 
0248 typedef struct _xkbModsWireDesc {
0249     CARD8   mask;       /* GetMap only */
0250     CARD8   realMods;
0251     CARD16  virtualMods B16;
0252 } xkbModsWireDesc;
0253 #define sz_xkbModsWireDesc  4
0254 
0255 typedef struct _xkbKeyTypeWireDesc {
0256     CARD8   mask;
0257     CARD8   realMods;
0258     CARD16  virtualMods B16;
0259     CARD8   numLevels;
0260     CARD8   nMapEntries;
0261     BOOL    preserve;
0262     CARD8   pad;
0263 } xkbKeyTypeWireDesc;
0264 #define sz_xkbKeyTypeWireDesc   8
0265 
0266 typedef struct _xkbSymMapWireDesc {
0267     CARD8   ktIndex[XkbNumKbdGroups];
0268     CARD8   groupInfo;
0269     CARD8   width;
0270     CARD16  nSyms B16;
0271 } xkbSymMapWireDesc;
0272 #define sz_xkbSymMapWireDesc    8
0273 
0274 typedef struct _xkbVModMapWireDesc {
0275     KeyCode key;
0276     CARD8   pad;
0277     CARD16  vmods B16;
0278 } xkbVModMapWireDesc;
0279 #define sz_xkbVModMapWireDesc   4
0280 
0281 typedef struct _xkbBehaviorWireDesc {
0282     CARD8   key;
0283     CARD8   type;
0284     CARD8   data;
0285     CARD8   pad;
0286 } xkbBehaviorWireDesc;
0287 #define sz_xkbBehaviorWireDesc  4
0288 
0289 typedef struct _xkbActionWireDesc {
0290     CARD8   type;
0291     CARD8   data[7];
0292 } xkbActionWireDesc;
0293 #define sz_xkbActionWireDesc    8
0294 
0295 typedef struct _xkbGetMap {
0296     CARD8   reqType;
0297     CARD8   xkbReqType; /* always X_KBGetMap */
0298     CARD16  length B16;
0299     CARD16  deviceSpec B16;
0300     CARD16  full B16;
0301     CARD16  partial B16;
0302     CARD8   firstType;
0303     CARD8   nTypes;
0304     KeyCode firstKeySym;
0305     CARD8   nKeySyms;
0306     KeyCode firstKeyAct;
0307     CARD8   nKeyActs;
0308     KeyCode firstKeyBehavior;
0309     CARD8   nKeyBehaviors;
0310     CARD16  virtualMods B16;
0311     KeyCode firstKeyExplicit;
0312     CARD8   nKeyExplicit;
0313     KeyCode firstModMapKey;
0314     CARD8   nModMapKeys;
0315     KeyCode firstVModMapKey;
0316     CARD8   nVModMapKeys;
0317     CARD16  pad1 B16;
0318 } xkbGetMapReq;
0319 #define sz_xkbGetMapReq 28
0320 
0321 typedef struct _xkbGetMapReply {
0322     CARD8   type;       /* always X_Reply */
0323     CARD8   deviceID;
0324     CARD16  sequenceNumber B16;
0325     CARD32  length B32;
0326     CARD16  pad1 B16;
0327     KeyCode minKeyCode;
0328     KeyCode maxKeyCode;
0329     CARD16  present B16;
0330     CARD8   firstType;
0331     CARD8   nTypes;
0332     CARD8   totalTypes;
0333     KeyCode firstKeySym;
0334     CARD16  totalSyms B16;
0335     CARD8   nKeySyms;
0336     KeyCode firstKeyAct;
0337     CARD16  totalActs B16;
0338     CARD8   nKeyActs;
0339     KeyCode firstKeyBehavior;
0340     CARD8   nKeyBehaviors;
0341     CARD8   totalKeyBehaviors;
0342     KeyCode firstKeyExplicit;
0343     CARD8   nKeyExplicit;
0344     CARD8   totalKeyExplicit;
0345     KeyCode firstModMapKey;
0346     CARD8   nModMapKeys;
0347     CARD8   totalModMapKeys;
0348     KeyCode firstVModMapKey;
0349     CARD8   nVModMapKeys;
0350     CARD8   totalVModMapKeys;
0351     CARD8   pad2;
0352     CARD16  virtualMods B16;
0353 } xkbGetMapReply;
0354 #define sz_xkbGetMapReply       40
0355 
0356 #define XkbSetMapResizeTypes        (1L<<0)
0357 #define XkbSetMapRecomputeActions   (1L<<1)
0358 #define XkbSetMapAllFlags       (0x3)
0359 
0360 typedef struct _xkbSetMap {
0361     CARD8   reqType;
0362     CARD8   xkbReqType; /* always X_KBSetMap */
0363     CARD16  length B16;
0364     CARD16  deviceSpec B16;
0365     CARD16  present B16;
0366     CARD16  flags B16;
0367     KeyCode minKeyCode;
0368     KeyCode maxKeyCode;
0369     CARD8   firstType;
0370     CARD8   nTypes;
0371     KeyCode firstKeySym;
0372     CARD8   nKeySyms;
0373     CARD16  totalSyms B16;
0374     KeyCode firstKeyAct;
0375     CARD8   nKeyActs;
0376     CARD16  totalActs B16;
0377     KeyCode firstKeyBehavior;
0378     CARD8   nKeyBehaviors;
0379     CARD8   totalKeyBehaviors;
0380     KeyCode firstKeyExplicit;
0381     CARD8   nKeyExplicit;
0382     CARD8   totalKeyExplicit;
0383     KeyCode firstModMapKey;
0384     CARD8   nModMapKeys;
0385     CARD8   totalModMapKeys;
0386     KeyCode firstVModMapKey;
0387     CARD8   nVModMapKeys;
0388     CARD8   totalVModMapKeys;
0389     CARD16  virtualMods B16;
0390 } xkbSetMapReq;
0391 #define sz_xkbSetMapReq 36
0392 
0393 typedef struct _xkbSymInterpretWireDesc {
0394     CARD32      sym B32;
0395     CARD8       mods;
0396     CARD8       match;
0397     CARD8       virtualMod;
0398     CARD8       flags;
0399     xkbActionWireDesc   act;
0400 } xkbSymInterpretWireDesc;
0401 #define sz_xkbSymInterpretWireDesc  16
0402 
0403 typedef struct _xkbGetCompatMap {
0404     CARD8   reqType;
0405     CARD8   xkbReqType; /* always X_KBGetCompatMap */
0406     CARD16  length B16;
0407     CARD16  deviceSpec B16;
0408     CARD8   groups;
0409     BOOL    getAllSI;
0410     CARD16  firstSI B16;
0411     CARD16  nSI B16;
0412 } xkbGetCompatMapReq;
0413 #define sz_xkbGetCompatMapReq   12
0414 
0415 typedef struct _xkbGetCompatMapReply {
0416     CARD8   type;       /* always X_Reply */
0417     CARD8   deviceID;
0418     CARD16  sequenceNumber B16;
0419     CARD32  length B32;
0420     CARD8   groups;
0421     CARD8   pad1;
0422     CARD16  firstSI B16;
0423     CARD16  nSI B16;
0424     CARD16  nTotalSI B16;
0425     CARD32  pad2 B32;
0426     CARD32  pad3 B32;
0427     CARD32  pad4 B32;
0428     CARD32  pad5 B32;
0429 } xkbGetCompatMapReply;
0430 #define sz_xkbGetCompatMapReply     32
0431 
0432 typedef struct _xkbSetCompatMap {
0433     CARD8   reqType;
0434     CARD8   xkbReqType; /* always X_KBSetCompatMap */
0435     CARD16  length B16;
0436     CARD16  deviceSpec B16;
0437     CARD8   pad1;
0438     BOOL    recomputeActions;
0439     BOOL    truncateSI;
0440     CARD8   groups;
0441     CARD16  firstSI B16;
0442     CARD16  nSI B16;
0443     CARD16  pad2 B16;
0444 } xkbSetCompatMapReq;
0445 #define sz_xkbSetCompatMapReq   16
0446 
0447 typedef struct _xkbGetIndicatorState {
0448     CARD8   reqType;
0449     CARD8   xkbReqType; /* always X_KBGetIndicatorState */
0450     CARD16  length B16;
0451     CARD16  deviceSpec B16;
0452     CARD16  pad1 B16;
0453 } xkbGetIndicatorStateReq;
0454 #define sz_xkbGetIndicatorStateReq  8
0455 
0456 typedef struct _xkbGetIndicatorStateReply {
0457     CARD8   type;       /* always X_Reply */
0458     CARD8   deviceID;
0459     CARD16  sequenceNumber B16;
0460     CARD32  length B32;
0461     CARD32  state B32;
0462     CARD32  pad1 B32;
0463     CARD32  pad2 B32;
0464     CARD32  pad3 B32;
0465     CARD32  pad4 B32;
0466     CARD32  pad5 B32;
0467 } xkbGetIndicatorStateReply;
0468 #define sz_xkbGetIndicatorStateReply    32
0469 
0470 typedef struct _xkbGetIndicatorMap {
0471     CARD8   reqType;
0472     CARD8   xkbReqType; /* always X_KBGetIndicatorMap */
0473     CARD16  length B16;
0474     CARD16  deviceSpec B16;
0475     CARD16  pad B16;
0476     CARD32  which B32;
0477 } xkbGetIndicatorMapReq;
0478 #define sz_xkbGetIndicatorMapReq    12
0479 
0480 typedef struct _xkbGetIndicatorMapReply {
0481     CARD8   type;       /* always X_Reply */
0482     CARD8   deviceID;
0483     CARD16  sequenceNumber B16;
0484     CARD32  length B32;
0485     CARD32  which B32;
0486     CARD32  realIndicators B32;
0487     CARD8   nIndicators;
0488     CARD8   pad1;
0489     CARD16  pad2 B16;
0490     CARD32  pad3 B32;
0491     CARD32  pad4 B32;
0492     CARD32  pad5 B32;
0493 } xkbGetIndicatorMapReply;
0494 #define sz_xkbGetIndicatorMapReply  32
0495 
0496 typedef struct _xkbIndicatorMapWireDesc {
0497     CARD8   flags;
0498     CARD8   whichGroups;
0499     CARD8   groups;
0500     CARD8   whichMods;
0501     CARD8   mods;
0502     CARD8   realMods;
0503     CARD16  virtualMods B16;
0504     CARD32  ctrls B32;
0505 } xkbIndicatorMapWireDesc;
0506 #define sz_xkbIndicatorMapWireDesc  12
0507 
0508 typedef struct _xkbSetIndicatorMap {
0509     CARD8   reqType;
0510     CARD8   xkbReqType; /* always X_KBSetIndicatorMap */
0511     CARD16  length B16;
0512     CARD16  deviceSpec B16;
0513     CARD16  pad1 B16;
0514     CARD32  which B32;
0515 } xkbSetIndicatorMapReq;
0516 #define sz_xkbSetIndicatorMapReq    12
0517 
0518 typedef struct _xkbGetNamedIndicator {
0519     CARD8   reqType;
0520     CARD8   xkbReqType; /* X_KBGetNamedIndicator */
0521     CARD16  length B16;
0522     CARD16  deviceSpec B16;
0523     CARD16  ledClass B16;
0524     CARD16  ledID B16;
0525     CARD16  pad1 B16;
0526     Atom    indicator B32;
0527 } xkbGetNamedIndicatorReq;
0528 #define sz_xkbGetNamedIndicatorReq      16
0529 
0530 typedef struct _xkbGetNamedIndicatorReply {
0531     BYTE    type;
0532     BYTE    deviceID;
0533     CARD16  sequenceNumber B16;
0534     CARD32  length B32;
0535     Atom    indicator B32;
0536     BOOL    found;
0537     BOOL    on;
0538     BOOL    realIndicator;
0539     CARD8   ndx;
0540     CARD8   flags;
0541     CARD8   whichGroups;
0542     CARD8   groups;
0543     CARD8   whichMods;
0544     CARD8   mods;
0545     CARD8   realMods;
0546     CARD16  virtualMods B16;
0547     CARD32  ctrls B32;
0548     BOOL    supported;
0549     CARD8   pad1;
0550     CARD16  pad2 B16;
0551 } xkbGetNamedIndicatorReply;
0552 #define sz_xkbGetNamedIndicatorReply    32
0553 
0554 typedef struct _xkbSetNamedIndicator {
0555     CARD8   reqType;
0556     CARD8   xkbReqType; /* X_KBSetNamedIndicator */
0557     CARD16  length B16;
0558     CARD16  deviceSpec B16;
0559     CARD16  ledClass B16;
0560     CARD16  ledID B16;
0561     CARD16  pad1 B16;
0562     Atom    indicator B32;
0563     BOOL    setState;
0564     BOOL    on;
0565     BOOL    setMap;
0566     BOOL    createMap;
0567     CARD8   pad2;
0568     CARD8   flags;
0569     CARD8   whichGroups;
0570     CARD8   groups;
0571     CARD8   whichMods;
0572     CARD8   realMods;
0573     CARD16  virtualMods B16;
0574     CARD32  ctrls B32;
0575 } xkbSetNamedIndicatorReq;
0576 #define sz_xkbSetNamedIndicatorReq  32
0577 
0578 typedef struct _xkbGetNames {
0579     CARD8   reqType;
0580     CARD8   xkbReqType; /* always X_KBGetNames */
0581     CARD16  length B16;
0582     CARD16  deviceSpec B16;
0583     CARD16  pad B16;
0584     CARD32  which B32;
0585 } xkbGetNamesReq;
0586 #define sz_xkbGetNamesReq       12
0587 
0588 typedef struct _xkbGetNamesReply {
0589     BYTE    type;
0590     BYTE    deviceID;
0591     CARD16  sequenceNumber B16;
0592     CARD32  length B32;
0593     CARD32  which B32;
0594     KeyCode minKeyCode;
0595     KeyCode maxKeyCode;
0596     CARD8   nTypes;
0597     CARD8   groupNames;
0598     CARD16  virtualMods B16;
0599     KeyCode firstKey;
0600     CARD8   nKeys;
0601     CARD32  indicators B32;
0602     CARD8   nRadioGroups;
0603     CARD8   nKeyAliases;
0604     CARD16  nKTLevels B16;
0605     CARD32  pad3 B32;
0606 } xkbGetNamesReply;
0607 #define sz_xkbGetNamesReply 32
0608 
0609 typedef struct _xkbSetNames {
0610     CARD8   reqType;
0611     CARD8   xkbReqType; /* always X_KBSetNames */
0612     CARD16  length B16;
0613     CARD16  deviceSpec B16;
0614     CARD16  virtualMods B16;
0615     CARD32  which B32;
0616     CARD8   firstType;
0617     CARD8   nTypes;
0618     CARD8   firstKTLevel;
0619     CARD8   nKTLevels;
0620     CARD32  indicators B32;
0621     CARD8   groupNames;
0622     CARD8   nRadioGroups;
0623     KeyCode firstKey;
0624     CARD8   nKeys;
0625     CARD8   nKeyAliases;
0626     CARD8   pad1;
0627     CARD16  totalKTLevelNames B16;
0628 } xkbSetNamesReq;
0629 #define sz_xkbSetNamesReq   28
0630 
0631 typedef struct _xkbPointWireDesc {
0632     INT16   x B16;
0633     INT16   y B16;
0634 } xkbPointWireDesc;
0635 #define sz_xkbPointWireDesc 4
0636 
0637 typedef struct _xkbOutlineWireDesc {
0638     CARD8   nPoints;
0639     CARD8   cornerRadius;
0640     CARD16  pad B16;
0641 } xkbOutlineWireDesc;
0642 #define sz_xkbOutlineWireDesc   4
0643 
0644 typedef struct _xkbShapeWireDesc {
0645     Atom    name B32;
0646     CARD8   nOutlines;
0647     CARD8   primaryNdx;
0648     CARD8   approxNdx;
0649     CARD8   pad;
0650 } xkbShapeWireDesc;
0651 #define sz_xkbShapeWireDesc 8
0652 
0653 typedef struct _xkbSectionWireDesc {
0654     Atom    name B32;
0655     INT16   top B16;
0656     INT16   left B16;
0657     CARD16  width B16;
0658     CARD16  height B16;
0659     INT16   angle B16;
0660     CARD8   priority;
0661     CARD8   nRows;
0662     CARD8   nDoodads;
0663     CARD8   nOverlays;
0664     CARD16  pad B16;
0665 } xkbSectionWireDesc;
0666 #define sz_xkbSectionWireDesc   20
0667 
0668 typedef struct _xkbRowWireDesc {
0669     INT16   top B16;
0670     INT16   left B16;
0671     CARD8   nKeys;
0672     BOOL    vertical;
0673     CARD16  pad B16;
0674 } xkbRowWireDesc;
0675 #define sz_xkbRowWireDesc   8
0676 
0677 typedef struct _xkbKeyWireDesc {
0678     CARD8   name[XkbKeyNameLength];
0679     INT16   gap B16;
0680     CARD8   shapeNdx;
0681     CARD8   colorNdx;
0682 } xkbKeyWireDesc;
0683 #define sz_xkbKeyWireDesc   8
0684 
0685 typedef struct _xkbOverlayWireDesc {
0686     Atom    name B32;
0687     CARD8   nRows;
0688     CARD8   pad1;
0689     CARD16  pad2 B16;
0690 } xkbOverlayWireDesc;
0691 #define sz_xkbOverlayWireDesc   8
0692 
0693 typedef struct _xkbOverlayRowWireDesc {
0694    CARD8    rowUnder;
0695    CARD8    nKeys;
0696    CARD16   pad1 B16;
0697 } xkbOverlayRowWireDesc;
0698 #define sz_xkbOverlayRowWireDesc    4
0699 
0700 typedef struct _xkbOverlayKeyWireDesc {
0701    CARD8    over[XkbKeyNameLength];
0702    CARD8    under[XkbKeyNameLength];
0703 } xkbOverlayKeyWireDesc;
0704 #define sz_xkbOverlayKeyWireDesc    8
0705 
0706 typedef struct _xkbShapeDoodadWireDesc {
0707     Atom    name B32;
0708     CARD8   type;
0709     CARD8   priority;
0710     INT16   top B16;
0711     INT16   left B16;
0712     INT16   angle B16;
0713     CARD8   colorNdx;
0714     CARD8   shapeNdx;
0715     CARD16  pad1 B16;
0716     CARD32  pad2 B32;
0717 } xkbShapeDoodadWireDesc;
0718 #define sz_xkbShapeDoodadWireDesc   20
0719 
0720 typedef struct _xkbTextDoodadWireDesc {
0721     Atom    name B32;
0722     CARD8   type;
0723     CARD8   priority;
0724     INT16   top B16;
0725     INT16   left B16;
0726     INT16   angle B16;
0727     CARD16  width B16;
0728     CARD16  height B16;
0729     CARD8   colorNdx;
0730     CARD8   pad1;
0731     CARD16  pad2 B16;
0732 } xkbTextDoodadWireDesc;
0733 #define sz_xkbTextDoodadWireDesc    20
0734 
0735 typedef struct _xkbIndicatorDoodadWireDesc {
0736     Atom    name B32;
0737     CARD8   type;
0738     CARD8   priority;
0739     INT16   top B16;
0740     INT16   left B16;
0741     INT16   angle B16;
0742     CARD8   shapeNdx;
0743     CARD8   onColorNdx;
0744     CARD8   offColorNdx;
0745     CARD8   pad1;
0746     CARD32  pad2 B32;
0747 } xkbIndicatorDoodadWireDesc;
0748 #define sz_xkbIndicatorDoodadWireDesc   20
0749 
0750 typedef struct _xkbLogoDoodadWireDesc {
0751     Atom    name B32;
0752     CARD8   type;
0753     CARD8   priority;
0754     INT16   top B16;
0755     INT16   left B16;
0756     INT16   angle B16;
0757     CARD8   colorNdx;
0758     CARD8   shapeNdx;
0759     CARD16  pad1 B16;
0760     CARD32  pad2 B32;
0761 } xkbLogoDoodadWireDesc;
0762 #define sz_xkbLogoDoodadWireDesc    20
0763 
0764 typedef struct _xkbAnyDoodadWireDesc {
0765     Atom    name B32;
0766     CARD8   type;
0767     CARD8   priority;
0768     INT16   top B16;
0769     INT16   left B16;
0770     INT16   angle B16;
0771     CARD32  pad2 B32;
0772     CARD32  pad3 B32;
0773 } xkbAnyDoodadWireDesc;
0774 #define sz_xkbAnyDoodadWireDesc 20
0775 
0776 typedef union _xkbDoodadWireDesc {
0777     xkbAnyDoodadWireDesc    any;
0778     xkbShapeDoodadWireDesc  shape;
0779     xkbTextDoodadWireDesc   text;
0780     xkbIndicatorDoodadWireDesc  indicator;
0781     xkbLogoDoodadWireDesc   logo;
0782 } xkbDoodadWireDesc;
0783 #define sz_xkbDoodadWireDesc    20
0784 
0785 typedef struct _xkbGetGeometry {
0786     CARD8   reqType;
0787     CARD8   xkbReqType; /* always X_KBGetGeometry */
0788     CARD16  length B16;
0789     CARD16  deviceSpec B16;
0790     CARD16  pad B16;
0791     Atom    name B32;
0792 } xkbGetGeometryReq;
0793 #define sz_xkbGetGeometryReq    12
0794 
0795 typedef struct _xkbGetGeometryReply {
0796     CARD8   type;       /* always X_Reply */
0797     CARD8   deviceID;
0798     CARD16  sequenceNumber B16;
0799     CARD32  length B32;
0800     Atom    name B32;
0801     BOOL    found;
0802     CARD8   pad;
0803     CARD16  widthMM B16;
0804     CARD16  heightMM B16;
0805     CARD16  nProperties B16;
0806     CARD16  nColors B16;
0807     CARD16  nShapes B16;
0808     CARD16  nSections B16;
0809     CARD16  nDoodads B16;
0810     CARD16  nKeyAliases B16;
0811     CARD8   baseColorNdx;
0812     CARD8   labelColorNdx;
0813 } xkbGetGeometryReply;
0814 #define sz_xkbGetGeometryReply  32
0815 
0816 typedef struct _xkbSetGeometry {
0817     CARD8   reqType;
0818     CARD8   xkbReqType; /* always X_KBSetGeometry */
0819     CARD16  length B16;
0820     CARD16  deviceSpec B16;
0821     CARD8   nShapes;
0822     CARD8   nSections;
0823     Atom    name B32;
0824     CARD16  widthMM B16;
0825     CARD16  heightMM B16;
0826     CARD16  nProperties B16;
0827     CARD16  nColors B16;
0828     CARD16  nDoodads B16;
0829     CARD16  nKeyAliases B16;
0830     CARD8   baseColorNdx;
0831     CARD8   labelColorNdx;
0832     CARD16  pad B16;
0833 } xkbSetGeometryReq;
0834 #define sz_xkbSetGeometryReq    28
0835 
0836 typedef struct _xkbPerClientFlags {
0837     CARD8   reqType;
0838     CARD8   xkbReqType;/* always X_KBPerClientFlags */
0839     CARD16  length B16;
0840     CARD16  deviceSpec B16;
0841     CARD16  pad1 B16;
0842     CARD32  change B32;
0843     CARD32  value B32;
0844     CARD32  ctrlsToChange B32;
0845     CARD32  autoCtrls B32;
0846     CARD32  autoCtrlValues B32;
0847 } xkbPerClientFlagsReq;
0848 #define sz_xkbPerClientFlagsReq 28
0849 
0850 typedef struct _xkbPerClientFlagsReply {
0851     CARD8   type;       /* always X_Reply */
0852     CARD8   deviceID;
0853     CARD16  sequenceNumber B16;
0854     CARD32  length B32;
0855     CARD32  supported B32;
0856     CARD32  value B32;
0857     CARD32  autoCtrls B32;
0858     CARD32  autoCtrlValues B32;
0859     CARD32  pad1 B32;
0860     CARD32  pad2 B32;
0861 } xkbPerClientFlagsReply;
0862 #define sz_xkbPerClientFlagsReply   32
0863 
0864 typedef struct _xkbListComponents {
0865     CARD8   reqType;
0866     CARD8   xkbReqType; /* always X_KBListComponents */
0867     CARD16  length B16;
0868     CARD16  deviceSpec B16;
0869     CARD16  maxNames B16;
0870 } xkbListComponentsReq;
0871 #define sz_xkbListComponentsReq 8
0872 
0873 typedef struct _xkbListComponentsReply {
0874     CARD8   type;       /* always X_Reply */
0875     CARD8   deviceID;
0876     CARD16  sequenceNumber B16;
0877     CARD32  length B32;
0878     CARD16  nKeymaps B16;
0879     CARD16  nKeycodes B16;
0880     CARD16  nTypes B16;
0881     CARD16  nCompatMaps B16;
0882     CARD16  nSymbols B16;
0883     CARD16  nGeometries B16;
0884     CARD16  extra B16;
0885     CARD16  pad1 B16;
0886     CARD32  pad2 B32;
0887     CARD32  pad3 B32;
0888 } xkbListComponentsReply;
0889 #define sz_xkbListComponentsReply   32
0890 
0891 typedef struct _xkbGetKbdByName {
0892     CARD8   reqType;
0893     CARD8   xkbReqType; /* always X_KBGetKbdByName */
0894     CARD16  length B16;
0895     CARD16  deviceSpec B16;
0896     CARD16  need B16;   /* combination of XkbGBN_* */
0897     CARD16  want B16;   /* combination of XkbGBN_* */
0898     BOOL    load;
0899     CARD8   pad;
0900 } xkbGetKbdByNameReq;
0901 #define sz_xkbGetKbdByNameReq   12
0902 
0903 typedef struct _xkbGetKbdByNameReply {
0904     CARD8   type;       /* always X_Reply */
0905     CARD8   deviceID;
0906     CARD16  sequenceNumber B16;
0907     CARD32  length B32;
0908     KeyCode minKeyCode;
0909     KeyCode maxKeyCode;
0910     BOOL    loaded;
0911     BOOL    newKeyboard;
0912     CARD16  found B16;  /* combination of XkbGBN_* */
0913     CARD16  reported B16;   /* combination of XkbAllComponents */
0914     CARD32  pad1 B32;
0915     CARD32  pad2 B32;
0916     CARD32  pad3 B32;
0917     CARD32  pad4 B32;
0918 } xkbGetKbdByNameReply;
0919 #define sz_xkbGetKbdByNameReply 32
0920 
0921 typedef struct _xkbDeviceLedsWireDesc {
0922     CARD16  ledClass B16;
0923     CARD16  ledID B16;
0924     CARD32  namesPresent B32;
0925     CARD32  mapsPresent B32;
0926     CARD32  physIndicators B32;
0927     CARD32  state B32;
0928 } xkbDeviceLedsWireDesc;
0929 #define sz_xkbDeviceLedsWireDesc    20
0930 
0931 typedef struct _xkbGetDeviceInfo {
0932     CARD8   reqType;
0933     CARD8   xkbReqType; /* always X_KBGetDeviceInfo */
0934     CARD16  length B16;
0935     CARD16  deviceSpec B16;
0936     CARD16  wanted B16;
0937     BOOL    allBtns;
0938     CARD8   firstBtn;
0939     CARD8   nBtns;
0940     CARD8   pad;
0941     CARD16  ledClass B16;
0942     CARD16  ledID B16;
0943 } xkbGetDeviceInfoReq;
0944 #define sz_xkbGetDeviceInfoReq  16
0945 
0946 typedef struct _xkbGetDeviceInfoReply {
0947     CARD8   type;       /* always X_Reply */
0948     CARD8   deviceID;
0949     CARD16  sequenceNumber B16;
0950     CARD32  length B32;
0951     CARD16  present B16;
0952     CARD16  supported B16;
0953     CARD16  unsupported B16;
0954     CARD16  nDeviceLedFBs B16;
0955     CARD8   firstBtnWanted;
0956     CARD8   nBtnsWanted;
0957     CARD8   firstBtnRtrn;
0958     CARD8   nBtnsRtrn;
0959     CARD8   totalBtns;
0960     BOOL    hasOwnState;
0961     CARD16  dfltKbdFB B16;
0962     CARD16  dfltLedFB B16;
0963     CARD16  pad B16;
0964     Atom    devType B32;
0965 } xkbGetDeviceInfoReply;
0966 #define sz_xkbGetDeviceInfoReply    32
0967 
0968 typedef struct _xkbSetDeviceInfo {
0969     CARD8   reqType;
0970     CARD8   xkbReqType; /* always X_KBSetDeviceInfo */
0971     CARD16  length B16;
0972     CARD16  deviceSpec B16;
0973     CARD8   firstBtn;
0974     CARD8   nBtns;
0975     CARD16  change B16;
0976     CARD16  nDeviceLedFBs B16;
0977 } xkbSetDeviceInfoReq;
0978 #define sz_xkbSetDeviceInfoReq  12
0979 
0980 typedef struct _xkbSetDebuggingFlags {
0981     CARD8   reqType;
0982     CARD8   xkbReqType; /* always X_KBSetDebuggingFlags */
0983     CARD16  length B16;
0984     CARD16  msgLength B16;
0985     CARD16  pad B16;
0986     CARD32  affectFlags B32;
0987     CARD32  flags B32;
0988     CARD32  affectCtrls B32;
0989     CARD32  ctrls B32;
0990 } xkbSetDebuggingFlagsReq;
0991 #define sz_xkbSetDebuggingFlagsReq  24
0992 
0993 typedef struct _xkbSetDebuggingFlagsReply {
0994     BYTE    type;       /* X_Reply */
0995     CARD8   pad0;
0996     CARD16  sequenceNumber B16;
0997     CARD32  length B32;
0998     CARD32  currentFlags B32;
0999     CARD32  currentCtrls B32;
1000     CARD32  supportedFlags B32;
1001     CARD32  supportedCtrls B32;
1002     CARD32  pad1 B32;
1003     CARD32  pad2 B32;
1004 } xkbSetDebuggingFlagsReply;
1005 #define sz_xkbSetDebuggingFlagsReply    32
1006 
1007     /*
1008      * X KEYBOARD EXTENSION EVENT STRUCTURES
1009      */
1010 
1011 typedef struct _xkbAnyEvent {
1012     BYTE    type;
1013     BYTE    xkbType;
1014     CARD16  sequenceNumber B16;
1015     Time    time B32;
1016     CARD8   deviceID;
1017     CARD8   pad1;
1018     CARD16  pad2 B16;
1019     CARD32  pad3 B32;
1020     CARD32  pad4 B32;
1021     CARD32  pad5 B32;
1022     CARD32  pad6 B32;
1023     CARD32  pad7 B32;
1024 } xkbAnyEvent;
1025 #define sz_xkbAnyEvent 32
1026 
1027 typedef struct _xkbNewKeyboardNotify {
1028     BYTE    type;
1029     BYTE    xkbType;
1030     CARD16  sequenceNumber B16;
1031     Time    time B32;
1032     CARD8   deviceID;
1033     CARD8   oldDeviceID;
1034     KeyCode minKeyCode;
1035     KeyCode maxKeyCode;
1036     KeyCode oldMinKeyCode;
1037     KeyCode oldMaxKeyCode;
1038     CARD8   requestMajor;
1039     CARD8   requestMinor;
1040     CARD16  changed B16;
1041     CARD8   detail;
1042     CARD8   pad1;
1043     CARD32  pad2 B32;
1044     CARD32  pad3 B32;
1045     CARD32  pad4 B32;
1046 } xkbNewKeyboardNotify;
1047 #define sz_xkbNewKeyboardNotify 32
1048 
1049 typedef struct _xkbMapNotify {
1050     BYTE    type;
1051     BYTE    xkbType;
1052     CARD16  sequenceNumber B16;
1053     Time    time B32;
1054     CARD8   deviceID;
1055     CARD8   ptrBtnActions;
1056     CARD16  changed B16;
1057     KeyCode minKeyCode;
1058     KeyCode maxKeyCode;
1059     CARD8   firstType;
1060     CARD8   nTypes;
1061     KeyCode firstKeySym;
1062     CARD8   nKeySyms;
1063     KeyCode firstKeyAct;
1064     CARD8   nKeyActs;
1065     KeyCode firstKeyBehavior;
1066     CARD8   nKeyBehaviors;
1067     KeyCode firstKeyExplicit;
1068     CARD8   nKeyExplicit;
1069     KeyCode firstModMapKey;
1070     CARD8   nModMapKeys;
1071     KeyCode firstVModMapKey;
1072     CARD8   nVModMapKeys;
1073     CARD16  virtualMods B16;
1074     CARD16  pad1 B16;
1075 } xkbMapNotify;
1076 #define sz_xkbMapNotify 32
1077 
1078 typedef struct _xkbStateNotify {
1079     BYTE    type;
1080     BYTE    xkbType;
1081     CARD16  sequenceNumber B16;
1082     Time    time B32;
1083     CARD8   deviceID;
1084     CARD8   mods;
1085     CARD8   baseMods;
1086     CARD8   latchedMods;
1087     CARD8   lockedMods;
1088     CARD8   group;
1089     INT16   baseGroup B16;
1090     INT16   latchedGroup B16;
1091     CARD8   lockedGroup;
1092     CARD8   compatState;
1093     CARD8   grabMods;
1094     CARD8   compatGrabMods;
1095     CARD8   lookupMods;
1096     CARD8   compatLookupMods;
1097     CARD16  ptrBtnState B16;
1098     CARD16  changed B16;
1099     KeyCode keycode;
1100     CARD8   eventType;
1101     CARD8   requestMajor;
1102     CARD8   requestMinor;
1103 } xkbStateNotify;
1104 #define sz_xkbStateNotify   32
1105 
1106 typedef struct _xkbControlsNotify {
1107     BYTE    type;
1108     BYTE    xkbType;
1109     CARD16  sequenceNumber B16;
1110     Time    time B32;
1111     CARD8   deviceID;
1112     CARD8   numGroups;
1113     CARD16  pad1 B16;
1114     CARD32  changedControls B32;
1115     CARD32  enabledControls B32;
1116     CARD32  enabledControlChanges B32;
1117     KeyCode keycode;
1118     CARD8   eventType;
1119     CARD8   requestMajor;
1120     CARD8   requestMinor;
1121     CARD32  pad2 B32;
1122 } xkbControlsNotify;
1123 #define sz_xkbControlsNotify    32
1124 
1125 typedef struct _xkbIndicatorNotify {
1126     BYTE    type;
1127     BYTE    xkbType;
1128     CARD16  sequenceNumber B16;
1129     Time    time B32;
1130     CARD8   deviceID;
1131     CARD8   pad1;
1132     CARD16  pad2 B16;
1133     CARD32  state B32;
1134     CARD32  changed B32;
1135     CARD32  pad3 B32;
1136     CARD32  pad4 B32;
1137     CARD32  pad5 B32;
1138 } xkbIndicatorNotify;
1139 #define sz_xkbIndicatorNotify   32
1140 
1141 typedef struct _xkbNamesNotify {
1142     BYTE    type;
1143     BYTE    xkbType;
1144     CARD16  sequenceNumber B16;
1145     Time    time B32;
1146     CARD8   deviceID;
1147     CARD8   pad1;
1148     CARD16  changed B16;
1149     CARD8   firstType;
1150     CARD8   nTypes;
1151     CARD8   firstLevelName;
1152     CARD8   nLevelNames;
1153     CARD8   pad2;
1154     CARD8   nRadioGroups;
1155     CARD8   nAliases;
1156     CARD8   changedGroupNames;
1157     CARD16  changedVirtualMods B16;
1158     CARD8   firstKey;
1159     CARD8   nKeys;
1160     CARD32  changedIndicators B32;
1161     CARD32  pad3 B32;
1162 } xkbNamesNotify;
1163 #define sz_xkbNamesNotify   32
1164 
1165 typedef struct _xkbCompatMapNotify {
1166     BYTE    type;
1167     BYTE    xkbType;
1168     CARD16  sequenceNumber B16;
1169     Time    time B32;
1170     CARD8   deviceID;
1171     CARD8   changedGroups;
1172     CARD16  firstSI B16;
1173     CARD16  nSI B16;
1174     CARD16  nTotalSI B16;
1175     CARD32  pad1 B32;
1176     CARD32  pad2 B32;
1177     CARD32  pad3 B32;
1178     CARD32  pad4 B32;
1179 } xkbCompatMapNotify;
1180 #define sz_xkbCompatMapNotify   32
1181 
1182 typedef struct _xkbBellNotify {
1183     BYTE    type;
1184     BYTE    xkbType;
1185     CARD16  sequenceNumber B16;
1186     Time    time B32;
1187     CARD8   deviceID;
1188     CARD8   bellClass;
1189     CARD8   bellID;
1190     CARD8   percent;
1191     CARD16  pitch B16;
1192     CARD16  duration B16;
1193     Atom    name B32;
1194     Window  window B32;
1195     BOOL    eventOnly;
1196     CARD8   pad1;
1197     CARD16  pad2 B16;
1198     CARD32  pad3 B32;
1199 } xkbBellNotify;
1200 #define sz_xkbBellNotify    32
1201 
1202 typedef struct _xkbActionMessage {
1203     BYTE    type;
1204     BYTE    xkbType;
1205     CARD16  sequenceNumber B16;
1206     Time    time B32;
1207     CARD8   deviceID;
1208     KeyCode keycode;
1209     BOOL    press;
1210     BOOL    keyEventFollows;
1211     CARD8   mods;
1212     CARD8   group;
1213     CARD8   message[8];
1214     CARD16  pad1 B16;
1215     CARD32  pad2 B32;
1216     CARD32  pad3 B32;
1217 } xkbActionMessage;
1218 #define sz_xkbActionMessage     32
1219 
1220 typedef struct _xkbAccessXNotify {
1221     BYTE    type;
1222     BYTE    xkbType;
1223     CARD16  sequenceNumber B16;
1224     Time    time B32;
1225     CARD8   deviceID;
1226     KeyCode keycode;
1227     CARD16  detail B16;
1228     CARD16  slowKeysDelay B16;
1229     CARD16  debounceDelay B16;
1230     CARD32  pad1 B32;
1231     CARD32  pad2 B32;
1232     CARD32  pad3 B32;
1233     CARD32  pad4 B32;
1234 } xkbAccessXNotify;
1235 #define sz_xkbAccessXNotify 32
1236 
1237 typedef struct _xkbExtensionDeviceNotify {
1238     BYTE    type;
1239     BYTE    xkbType;
1240     CARD16  sequenceNumber B16;
1241     Time    time B32;
1242     CARD8   deviceID;
1243     CARD8   pad1;
1244     CARD16  reason B16;
1245     CARD16  ledClass B16;
1246     CARD16  ledID B16;
1247     CARD32  ledsDefined B32;
1248     CARD32  ledState B32;
1249     CARD8   firstBtn;
1250     CARD8   nBtns;
1251     CARD16  supported B16;
1252     CARD16  unsupported B16;
1253     CARD16  pad3 B16;
1254 } xkbExtensionDeviceNotify;
1255 #define sz_xkbExtensionDeviceNotify     32
1256 
1257 typedef struct _xkbEvent {
1258     union {
1259     xkbAnyEvent     any;
1260     xkbNewKeyboardNotify    new_kbd;
1261     xkbMapNotify        map;
1262     xkbStateNotify      state;
1263     xkbControlsNotify   ctrls;
1264     xkbIndicatorNotify  indicators;
1265     xkbNamesNotify      names;
1266     xkbCompatMapNotify  compat;
1267     xkbBellNotify       bell;
1268     xkbActionMessage    message;
1269     xkbAccessXNotify    accessx;
1270     xkbExtensionDeviceNotify device;
1271     } u;
1272 } xkbEvent;
1273 #define sz_xkbEvent 32
1274 
1275 #undef Window
1276 #undef Atom
1277 #undef Time
1278 #undef KeyCode
1279 #undef KeySym
1280 
1281 #endif /* _XKBPROTO_H_ */