Home | History | Annotate | Download | only in extensions
      1 /* $Xorg: XKBproto.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
      2 /************************************************************
      3 Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
      4 
      5 Permission to use, copy, modify, and distribute this
      6 software and its documentation for any purpose and without
      7 fee is hereby granted, provided that the above copyright
      8 notice appear in all copies and that both that copyright
      9 notice and this permission notice appear in supporting
     10 documentation, and that the name of Silicon Graphics not be
     11 used in advertising or publicity pertaining to distribution
     12 of the software without specific prior written permission.
     13 Silicon Graphics makes no representation about the suitability
     14 of this software for any purpose. It is provided "as is"
     15 without any express or implied warranty.
     16 
     17 SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
     18 SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
     19 AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
     20 GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
     21 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
     22 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
     23 OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
     24 THE USE OR PERFORMANCE OF THIS SOFTWARE.
     25 
     26 ********************************************************/
     27 
     28 #ifndef _XKBPROTO_H_
     29 #define	_XKBPROTO_H_
     30 
     31 #include <X11/Xmd.h>
     32 #include <X11/extensions/XKB.h>
     33 
     34 #define Window CARD32
     35 #define Atom CARD32
     36 #define Time CARD32
     37 #define KeyCode CARD8
     38 #define KeySym CARD32
     39 
     40 #define	XkbPaddedSize(n)	((((unsigned int)(n)+3) >> 2) << 2)
     41 
     42 typedef struct _xkbUseExtension {
     43     CARD8	reqType;
     44     CARD8	xkbReqType;	/* always X_KBUseExtension */
     45     CARD16	length B16;
     46     CARD16	wantedMajor B16;
     47     CARD16	wantedMinor B16;
     48 } xkbUseExtensionReq;
     49 #define	sz_xkbUseExtensionReq	8
     50 
     51 typedef struct _xkbUseExtensionReply {
     52     BYTE	type;		/* X_Reply */
     53     BOOL	supported;
     54     CARD16	sequenceNumber B16;
     55     CARD32	length B32;
     56     CARD16	serverMajor B16;
     57     CARD16	serverMinor B16;
     58     CARD32	pad1 B32;
     59     CARD32	pad2 B32;
     60     CARD32	pad3 B32;
     61     CARD32	pad4 B32;
     62     CARD32	pad5 B32;
     63 } xkbUseExtensionReply;
     64 #define	sz_xkbUseExtensionReply	32
     65 
     66 typedef	struct _xkbSelectEvents {
     67     CARD8	reqType;
     68     CARD8	xkbReqType;	/* X_KBSelectEvents */
     69     CARD16	length B16;
     70     CARD16	deviceSpec B16;
     71     CARD16	affectWhich B16;
     72     CARD16	clear B16;
     73     CARD16	selectAll B16;
     74     CARD16	affectMap B16;
     75     CARD16	map B16;
     76 } xkbSelectEventsReq;
     77 #define	sz_xkbSelectEventsReq	16
     78 
     79 typedef struct _xkbBell {
     80     CARD8	reqType;
     81     CARD8	xkbReqType;	/* X_KBBell */
     82     CARD16	length B16;
     83     CARD16	deviceSpec B16;
     84     CARD16	bellClass B16;
     85     CARD16	bellID B16;
     86     INT8	percent;
     87     BOOL	forceSound;
     88     BOOL	eventOnly;
     89     CARD8	pad1;
     90     INT16	pitch B16;
     91     INT16	duration B16;
     92     CARD16	pad2 B16;
     93     Atom	name B32;
     94     Window	window B32;
     95 } xkbBellReq;
     96 #define	sz_xkbBellReq		28
     97 
     98 typedef struct _xkbGetState {
     99 	CARD8		reqType;
    100 	CARD8		xkbReqType;	/* always X_KBGetState */
    101 	CARD16		length B16;
    102 	CARD16		deviceSpec B16;
    103 	CARD16		pad B16;
    104 } xkbGetStateReq;
    105 #define	sz_xkbGetStateReq	8
    106 
    107 typedef	struct _xkbGetStateReply {
    108     BYTE	type;
    109     BYTE	deviceID;
    110     CARD16	sequenceNumber B16;
    111     CARD32	length B32;
    112     CARD8	mods;
    113     CARD8	baseMods;
    114     CARD8	latchedMods;
    115     CARD8	lockedMods;
    116     CARD8	group;
    117     CARD8	lockedGroup;
    118     INT16	baseGroup B16;
    119     INT16	latchedGroup B16;
    120     CARD8	compatState;
    121     CARD8	grabMods;
    122     CARD8	compatGrabMods;
    123     CARD8	lookupMods;
    124     CARD8	compatLookupMods;
    125     CARD8	pad1;
    126     CARD16	ptrBtnState B16;
    127     CARD16	pad2 B16;
    128     CARD32	pad3 B32;
    129 } xkbGetStateReply;
    130 #define	sz_xkbGetStateReply	32
    131 
    132 typedef struct _xkbLatchLockState {
    133     CARD8	reqType;
    134     CARD8	xkbReqType;	/* always X_KBLatchLockState */
    135     CARD16	length B16;
    136     CARD16	deviceSpec B16;
    137     CARD8	affectModLocks;
    138     CARD8	modLocks;
    139     BOOL	lockGroup;
    140     CARD8	groupLock;
    141     CARD8	affectModLatches;
    142     CARD8	modLatches;
    143     CARD8	pad;
    144     BOOL	latchGroup;
    145     INT16	groupLatch B16;
    146 } xkbLatchLockStateReq;
    147 #define	sz_xkbLatchLockStateReq		16
    148 
    149 typedef struct _xkbGetControls {
    150     CARD8	reqType;
    151     CARD8	xkbReqType;	/* always X_KBGetControls */
    152     CARD16	length B16;
    153     CARD16	deviceSpec B16;
    154     CARD16	pad B16;
    155 } xkbGetControlsReq;
    156 #define	sz_xkbGetControlsReq	8
    157 
    158 typedef struct _xkbGetControlsReply {
    159     BYTE	type;		/* X_Reply */
    160     CARD8	deviceID;
    161     CARD16	sequenceNumber B16;
    162     CARD32	length B32;
    163     CARD8	mkDfltBtn;
    164     CARD8	numGroups;
    165     CARD8	groupsWrap;
    166     CARD8	internalMods;
    167     CARD8	ignoreLockMods;
    168     CARD8	internalRealMods;
    169     CARD8	ignoreLockRealMods;
    170     CARD8	pad1;
    171     CARD16	internalVMods B16;
    172     CARD16	ignoreLockVMods B16;
    173     CARD16	repeatDelay B16;
    174     CARD16	repeatInterval B16;
    175     CARD16	slowKeysDelay B16;
    176     CARD16	debounceDelay B16;
    177     CARD16	mkDelay B16;
    178     CARD16	mkInterval B16;
    179     CARD16	mkTimeToMax B16;
    180     CARD16	mkMaxSpeed B16;
    181     INT16	mkCurve B16;
    182     CARD16	axOptions B16;
    183     CARD16	axTimeout B16;
    184     CARD16	axtOptsMask B16;
    185     CARD16	axtOptsValues B16;
    186     CARD16	pad2 B16;
    187     CARD32	axtCtrlsMask B32;
    188     CARD32	axtCtrlsValues B32;
    189     CARD32	enabledCtrls B32;
    190     BYTE	perKeyRepeat[XkbPerKeyBitArraySize];
    191 } xkbGetControlsReply;
    192 #define	sz_xkbGetControlsReply	92
    193 
    194 typedef struct _xkbSetControls {
    195     CARD8	reqType;
    196     CARD8	xkbReqType;	/* always X_KBSetControls */
    197     CARD16	length B16;
    198     CARD16	deviceSpec B16;
    199     CARD8	affectInternalMods;
    200     CARD8	internalMods;
    201     CARD8	affectIgnoreLockMods;
    202     CARD8	ignoreLockMods;
    203     CARD16	affectInternalVMods B16;
    204     CARD16	internalVMods B16;
    205     CARD16	affectIgnoreLockVMods B16;
    206     CARD16	ignoreLockVMods B16;
    207     CARD8	mkDfltBtn;
    208     CARD8	groupsWrap;
    209     CARD16	axOptions B16;
    210     CARD16	pad1 B16;
    211     CARD32	affectEnabledCtrls B32;
    212     CARD32	enabledCtrls B32;
    213     CARD32	changeCtrls B32;
    214     CARD16	repeatDelay B16;
    215     CARD16	repeatInterval B16;
    216     CARD16	slowKeysDelay B16;
    217     CARD16	debounceDelay B16;
    218     CARD16	mkDelay B16;
    219     CARD16	mkInterval B16;
    220     CARD16	mkTimeToMax B16;
    221     CARD16	mkMaxSpeed B16;
    222     INT16	mkCurve B16;
    223     CARD16	axTimeout B16;
    224     CARD32	axtCtrlsMask B32;
    225     CARD32	axtCtrlsValues B32;
    226     CARD16	axtOptsMask B16;
    227     CARD16	axtOptsValues B16;
    228     BYTE	perKeyRepeat[XkbPerKeyBitArraySize];
    229 } xkbSetControlsReq;
    230 #define	sz_xkbSetControlsReq	100
    231 
    232 typedef	struct _xkbKTMapEntryWireDesc {
    233     BOOL	active;
    234     CARD8	mask;
    235     CARD8	level;
    236     CARD8	realMods;
    237     CARD16	virtualMods B16;
    238     CARD16	pad B16;
    239 } xkbKTMapEntryWireDesc;
    240 #define sz_xkbKTMapEntryWireDesc	8
    241 
    242 typedef struct _xkbKTSetMapEntryWireDesc {
    243     CARD8	level;
    244     CARD8	realMods;
    245     CARD16	virtualMods B16;
    246 } xkbKTSetMapEntryWireDesc;
    247 #define	sz_xkbKTSetMapEntryWireDesc	4
    248 
    249 typedef struct _xkbModsWireDesc {
    250     CARD8	mask;		/* GetMap only */
    251     CARD8	realMods;
    252     CARD16	virtualMods B16;
    253 } xkbModsWireDesc;
    254 #define	sz_xkbModsWireDesc	4
    255 
    256 typedef struct _xkbKeyTypeWireDesc {
    257     CARD8	mask;
    258     CARD8	realMods;
    259     CARD16	virtualMods B16;
    260     CARD8	numLevels;
    261     CARD8	nMapEntries;
    262     BOOL	preserve;
    263     CARD8	pad;
    264 } xkbKeyTypeWireDesc;
    265 #define	sz_xkbKeyTypeWireDesc	8
    266 
    267 typedef struct _xkbSymMapWireDesc {
    268     CARD8	ktIndex[XkbNumKbdGroups];
    269     CARD8	groupInfo;
    270     CARD8	width;
    271     CARD16	nSyms B16;
    272 } xkbSymMapWireDesc;
    273 #define	sz_xkbSymMapWireDesc	8
    274 
    275 typedef struct _xkbVModMapWireDesc {
    276     KeyCode	key;
    277     CARD8	pad;
    278     CARD16	vmods B16;
    279 } xkbVModMapWireDesc;
    280 #define	sz_xkbVModMapWireDesc	4
    281 
    282 typedef struct _xkbBehaviorWireDesc {
    283 	CARD8	key;
    284 	CARD8	type;
    285 	CARD8	data;
    286 	CARD8	pad;
    287 } xkbBehaviorWireDesc;
    288 #define	sz_xkbBehaviorWireDesc	4
    289 
    290 typedef	struct _xkbActionWireDesc {
    291     CARD8	type;
    292     CARD8	data[7];
    293 } xkbActionWireDesc;
    294 #define	sz_xkbActionWireDesc	8
    295 
    296 typedef struct _xkbGetMap {
    297     CARD8	reqType;
    298     CARD8	xkbReqType;	/* always X_KBGetMap */
    299     CARD16	length B16;
    300     CARD16	deviceSpec B16;
    301     CARD16	full B16;
    302     CARD16	partial B16;
    303     CARD8	firstType;
    304     CARD8	nTypes;
    305     KeyCode	firstKeySym;
    306     CARD8	nKeySyms;
    307     KeyCode	firstKeyAct;
    308     CARD8	nKeyActs;
    309     KeyCode	firstKeyBehavior;
    310     CARD8	nKeyBehaviors;
    311     CARD16	virtualMods B16;
    312     KeyCode	firstKeyExplicit;
    313     CARD8	nKeyExplicit;
    314     KeyCode	firstModMapKey;
    315     CARD8	nModMapKeys;
    316     KeyCode	firstVModMapKey;
    317     CARD8	nVModMapKeys;
    318     CARD16	pad1 B16;
    319 } xkbGetMapReq;
    320 #define	sz_xkbGetMapReq	28
    321 
    322 typedef struct _xkbGetMapReply {
    323     CARD8	type;		/* always X_Reply */
    324     CARD8	deviceID;
    325     CARD16	sequenceNumber B16;
    326     CARD32	length B32;
    327     CARD16	pad1 B16;
    328     KeyCode	minKeyCode;
    329     KeyCode	maxKeyCode;
    330     CARD16	present B16;
    331     CARD8	firstType;
    332     CARD8	nTypes;
    333     CARD8	totalTypes;
    334     KeyCode	firstKeySym;
    335     CARD16	totalSyms B16;
    336     CARD8	nKeySyms;
    337     KeyCode	firstKeyAct;
    338     CARD16	totalActs B16;
    339     CARD8	nKeyActs;
    340     KeyCode	firstKeyBehavior;
    341     CARD8	nKeyBehaviors;
    342     CARD8	totalKeyBehaviors;
    343     KeyCode	firstKeyExplicit;
    344     CARD8	nKeyExplicit;
    345     CARD8	totalKeyExplicit;
    346     KeyCode	firstModMapKey;
    347     CARD8	nModMapKeys;
    348     CARD8	totalModMapKeys;
    349     KeyCode	firstVModMapKey;
    350     CARD8	nVModMapKeys;
    351     CARD8	totalVModMapKeys;
    352     CARD8	pad2;
    353     CARD16	virtualMods B16;
    354 } xkbGetMapReply;
    355 #define	sz_xkbGetMapReply		40
    356 
    357 #define	XkbSetMapResizeTypes		(1L<<0)
    358 #define	XkbSetMapRecomputeActions	(1L<<1)
    359 #define	XkbSetMapAllFlags		(0x3)
    360 
    361 typedef struct _xkbSetMap {
    362     CARD8	reqType;
    363     CARD8	xkbReqType;	/* always X_KBSetMap */
    364     CARD16	length B16;
    365     CARD16	deviceSpec B16;
    366     CARD16	present B16;
    367     CARD16	flags B16;
    368     KeyCode	minKeyCode;
    369     KeyCode	maxKeyCode;
    370     CARD8	firstType;
    371     CARD8	nTypes;
    372     KeyCode	firstKeySym;
    373     CARD8	nKeySyms;
    374     CARD16	totalSyms B16;
    375     KeyCode	firstKeyAct;
    376     CARD8	nKeyActs;
    377     CARD16	totalActs B16;
    378     KeyCode	firstKeyBehavior;
    379     CARD8	nKeyBehaviors;
    380     CARD8	totalKeyBehaviors;
    381     KeyCode	firstKeyExplicit;
    382     CARD8	nKeyExplicit;
    383     CARD8	totalKeyExplicit;
    384     KeyCode	firstModMapKey;
    385     CARD8	nModMapKeys;
    386     CARD8	totalModMapKeys;
    387     KeyCode	firstVModMapKey;
    388     CARD8	nVModMapKeys;
    389     CARD8	totalVModMapKeys;
    390     CARD16	virtualMods B16;
    391 } xkbSetMapReq;
    392 #define	sz_xkbSetMapReq	36
    393 
    394 typedef struct _xkbSymInterpretWireDesc {
    395     CARD32		sym B32;
    396     CARD8		mods;
    397     CARD8		match;
    398     CARD8		virtualMod;
    399     CARD8		flags;
    400     xkbActionWireDesc	act;
    401 } xkbSymInterpretWireDesc;
    402 #define	sz_xkbSymInterpretWireDesc	16
    403 
    404 typedef struct _xkbGetCompatMap {
    405     CARD8	reqType;
    406     CARD8	xkbReqType;	/* always X_KBGetCompatMap */
    407     CARD16	length B16;
    408     CARD16	deviceSpec B16;
    409     CARD8	groups;
    410     BOOL	getAllSI;
    411     CARD16	firstSI B16;
    412     CARD16	nSI B16;
    413 } xkbGetCompatMapReq;
    414 #define	sz_xkbGetCompatMapReq	12
    415 
    416 typedef struct _xkbGetCompatMapReply {
    417     CARD8	type;		/* always X_Reply */
    418     CARD8	deviceID;
    419     CARD16	sequenceNumber B16;
    420     CARD32	length B32;
    421     CARD8	groups;
    422     CARD8	pad1;
    423     CARD16	firstSI B16;
    424     CARD16	nSI B16;
    425     CARD16	nTotalSI B16;
    426     CARD32	pad2 B32;
    427     CARD32	pad3 B32;
    428     CARD32	pad4 B32;
    429     CARD32	pad5 B32;
    430 } xkbGetCompatMapReply;
    431 #define	sz_xkbGetCompatMapReply		32
    432 
    433 typedef struct _xkbSetCompatMap {
    434     CARD8	reqType;
    435     CARD8	xkbReqType;	/* always X_KBSetCompatMap */
    436     CARD16	length B16;
    437     CARD16	deviceSpec B16;
    438     CARD8	pad1;
    439     BOOL	recomputeActions;
    440     BOOL	truncateSI;
    441     CARD8	groups;
    442     CARD16	firstSI B16;
    443     CARD16	nSI B16;
    444     CARD16	pad2 B16;
    445 } xkbSetCompatMapReq;
    446 #define	sz_xkbSetCompatMapReq	16
    447 
    448 typedef struct _xkbGetIndicatorState {
    449     CARD8	reqType;
    450     CARD8	xkbReqType;	/* always X_KBGetIndicatorState */
    451     CARD16	length B16;
    452     CARD16	deviceSpec B16;
    453     CARD16	pad1 B16;
    454 } xkbGetIndicatorStateReq;
    455 #define	sz_xkbGetIndicatorStateReq	8
    456 
    457 typedef struct _xkbGetIndicatorStateReply {
    458     CARD8	type;		/* always X_Reply */
    459     CARD8	deviceID;
    460     CARD16	sequenceNumber B16;
    461     CARD32	length B32;
    462     CARD32	state B32;
    463     CARD32	pad1 B32;
    464     CARD32	pad2 B32;
    465     CARD32	pad3 B32;
    466     CARD32	pad4 B32;
    467     CARD32	pad5 B32;
    468 } xkbGetIndicatorStateReply;
    469 #define	sz_xkbGetIndicatorStateReply	32
    470 
    471 typedef struct _xkbGetIndicatorMap {
    472     CARD8	reqType;
    473     CARD8	xkbReqType;	/* always X_KBGetIndicatorMap */
    474     CARD16	length B16;
    475     CARD16	deviceSpec B16;
    476     CARD16	pad B16;
    477     CARD32	which B32;
    478 } xkbGetIndicatorMapReq;
    479 #define	sz_xkbGetIndicatorMapReq	12
    480 
    481 typedef struct _xkbGetIndicatorMapReply {
    482     CARD8	type;		/* always X_Reply */
    483     CARD8	deviceID;
    484     CARD16	sequenceNumber B16;
    485     CARD32	length B32;
    486     CARD32	which B32;
    487     CARD32	realIndicators B32;
    488     CARD8	nIndicators;
    489     CARD8	pad1;
    490     CARD16	pad2 B16;
    491     CARD32	pad3 B32;
    492     CARD32	pad4 B32;
    493     CARD32	pad5 B32;
    494 } xkbGetIndicatorMapReply;
    495 #define	sz_xkbGetIndicatorMapReply	32
    496 
    497 typedef struct _xkbIndicatorMapWireDesc {
    498     CARD8	flags;
    499     CARD8	whichGroups;
    500     CARD8	groups;
    501     CARD8	whichMods;
    502     CARD8	mods;
    503     CARD8	realMods;
    504     CARD16	virtualMods B16;
    505     CARD32	ctrls B32;
    506 } xkbIndicatorMapWireDesc;
    507 #define	sz_xkbIndicatorMapWireDesc	12
    508 
    509 typedef struct _xkbSetIndicatorMap {
    510     CARD8	reqType;
    511     CARD8	xkbReqType;	/* always X_KBSetIndicatorMap */
    512     CARD16	length B16;
    513     CARD16	deviceSpec B16;
    514     CARD16	pad1 B16;
    515     CARD32	which B32;
    516 } xkbSetIndicatorMapReq;
    517 #define	sz_xkbSetIndicatorMapReq	12
    518 
    519 typedef struct _xkbGetNamedIndicator {
    520     CARD8	reqType;
    521     CARD8	xkbReqType;	/* X_KBGetNamedIndicator */
    522     CARD16	length B16;
    523     CARD16	deviceSpec B16;
    524     CARD16	ledClass B16;
    525     CARD16	ledID B16;
    526     CARD16	pad1 B16;
    527     Atom	indicator B32;
    528 } xkbGetNamedIndicatorReq;
    529 #define	sz_xkbGetNamedIndicatorReq		16
    530 
    531 typedef	struct _xkbGetNamedIndicatorReply {
    532     BYTE	type;
    533     BYTE	deviceID;
    534     CARD16	sequenceNumber B16;
    535     CARD32	length B32;
    536     Atom	indicator B32;
    537     BOOL	found;
    538     BOOL	on;
    539     BOOL	realIndicator;
    540     CARD8	ndx;
    541     CARD8	flags;
    542     CARD8	whichGroups;
    543     CARD8	groups;
    544     CARD8	whichMods;
    545     CARD8	mods;
    546     CARD8	realMods;
    547     CARD16	virtualMods B16;
    548     CARD32	ctrls B32;
    549     BOOL	supported;
    550     CARD8	pad1;
    551     CARD16	pad2 B16;
    552 } xkbGetNamedIndicatorReply;
    553 #define	sz_xkbGetNamedIndicatorReply	32
    554 
    555 typedef struct _xkbSetNamedIndicator {
    556     CARD8	reqType;
    557     CARD8	xkbReqType;	/* X_KBSetNamedIndicator */
    558     CARD16	length B16;
    559     CARD16	deviceSpec B16;
    560     CARD16	ledClass B16;
    561     CARD16	ledID B16;
    562     CARD16	pad1 B16;
    563     Atom	indicator B32;
    564     BOOL	setState;
    565     BOOL	on;
    566     BOOL	setMap;
    567     BOOL	createMap;
    568     CARD8	pad2;
    569     CARD8	flags;
    570     CARD8	whichGroups;
    571     CARD8	groups;
    572     CARD8	whichMods;
    573     CARD8	realMods;
    574     CARD16	virtualMods B16;
    575     CARD32	ctrls B32;
    576 } xkbSetNamedIndicatorReq;
    577 #define	sz_xkbSetNamedIndicatorReq	32
    578 
    579 typedef struct _xkbGetNames {
    580     CARD8	reqType;
    581     CARD8	xkbReqType;	/* always X_KBGetNames */
    582     CARD16	length B16;
    583     CARD16	deviceSpec B16;
    584     CARD16	pad B16;
    585     CARD32	which B32;
    586 } xkbGetNamesReq;
    587 #define	sz_xkbGetNamesReq		12
    588 
    589 typedef	struct _xkbGetNamesReply {
    590     BYTE	type;
    591     BYTE	deviceID;
    592     CARD16	sequenceNumber B16;
    593     CARD32	length B32;
    594     CARD32	which B32;
    595     KeyCode	minKeyCode;
    596     KeyCode	maxKeyCode;
    597     CARD8	nTypes;
    598     CARD8	groupNames;
    599     CARD16	virtualMods B16;
    600     KeyCode	firstKey;
    601     CARD8	nKeys;
    602     CARD32	indicators B32;
    603     CARD8	nRadioGroups;
    604     CARD8	nKeyAliases;
    605     CARD16	nKTLevels B16;
    606     CARD32	pad3 B32;
    607 } xkbGetNamesReply;
    608 #define	sz_xkbGetNamesReply	32
    609 
    610 typedef struct _xkbSetNames {
    611     CARD8	reqType;
    612     CARD8	xkbReqType;	/* always X_KBSetNames */
    613     CARD16	length B16;
    614     CARD16	deviceSpec B16;
    615     CARD16	virtualMods B16;
    616     CARD32	which B32;
    617     CARD8	firstType;
    618     CARD8	nTypes;
    619     CARD8	firstKTLevel;
    620     CARD8	nKTLevels;
    621     CARD32	indicators B32;
    622     CARD8	groupNames;
    623     CARD8	nRadioGroups;
    624     KeyCode	firstKey;
    625     CARD8	nKeys;
    626     CARD8	nKeyAliases;
    627     CARD8	pad1;
    628     CARD16	totalKTLevelNames B16;
    629 } xkbSetNamesReq;
    630 #define	sz_xkbSetNamesReq	28
    631 
    632 typedef struct _xkbPointWireDesc {
    633     INT16	x B16;
    634     INT16	y B16;
    635 } xkbPointWireDesc;
    636 #define	sz_xkbPointWireDesc	4
    637 
    638 typedef struct _xkbOutlineWireDesc {
    639     CARD8	nPoints;
    640     CARD8	cornerRadius;
    641     CARD16	pad B16;
    642 } xkbOutlineWireDesc;
    643 #define	sz_xkbOutlineWireDesc	4
    644 
    645 typedef struct _xkbShapeWireDesc {
    646     Atom	name B32;
    647     CARD8	nOutlines;
    648     CARD8	primaryNdx;
    649     CARD8	approxNdx;
    650     CARD8	pad;
    651 } xkbShapeWireDesc;
    652 #define	sz_xkbShapeWireDesc	8
    653 
    654 typedef struct _xkbSectionWireDesc {
    655     Atom	name B32;
    656     INT16	top B16;
    657     INT16	left B16;
    658     CARD16	width B16;
    659     CARD16	height B16;
    660     INT16	angle B16;
    661     CARD8	priority;
    662     CARD8	nRows;
    663     CARD8	nDoodads;
    664     CARD8	nOverlays;
    665     CARD16	pad B16;
    666 } xkbSectionWireDesc;
    667 #define	sz_xkbSectionWireDesc	20
    668 
    669 typedef struct _xkbRowWireDesc {
    670     INT16	top B16;
    671     INT16	left B16;
    672     CARD8	nKeys;
    673     BOOL	vertical;
    674     CARD16	pad B16;
    675 } xkbRowWireDesc;
    676 #define	sz_xkbRowWireDesc	8
    677 
    678 typedef struct _xkbKeyWireDesc {
    679     CARD8	name[XkbKeyNameLength];
    680     INT16	gap B16;
    681     CARD8	shapeNdx;
    682     CARD8	colorNdx;
    683 } xkbKeyWireDesc;
    684 #define	sz_xkbKeyWireDesc	8
    685 
    686 typedef struct _xkbOverlayWireDesc {
    687     Atom	name B32;
    688     CARD8	nRows;
    689     CARD8	pad1;
    690     CARD16	pad2 B16;
    691 } xkbOverlayWireDesc;
    692 #define	sz_xkbOverlayWireDesc	8
    693 
    694 typedef struct _xkbOverlayRowWireDesc {
    695    CARD8	rowUnder;
    696    CARD8	nKeys;
    697    CARD16	pad1 B16;
    698 } xkbOverlayRowWireDesc;
    699 #define	sz_xkbOverlayRowWireDesc	4
    700 
    701 typedef struct _xkbOverlayKeyWireDesc {
    702    CARD8	over[XkbKeyNameLength];
    703    CARD8	under[XkbKeyNameLength];
    704 } xkbOverlayKeyWireDesc;
    705 #define	sz_xkbOverlayKeyWireDesc	8
    706 
    707 typedef struct _xkbShapeDoodadWireDesc {
    708     Atom	name B32;
    709     CARD8	type;
    710     CARD8	priority;
    711     INT16	top B16;
    712     INT16	left B16;
    713     INT16	angle B16;
    714     CARD8	colorNdx;
    715     CARD8	shapeNdx;
    716     CARD16	pad1 B16;
    717     CARD32	pad2 B32;
    718 } xkbShapeDoodadWireDesc;
    719 #define	sz_xkbShapeDoodadWireDesc	20
    720 
    721 typedef struct _xkbTextDoodadWireDesc {
    722     Atom	name B32;
    723     CARD8	type;
    724     CARD8	priority;
    725     INT16	top B16;
    726     INT16	left B16;
    727     INT16	angle B16;
    728     CARD16	width B16;
    729     CARD16	height B16;
    730     CARD8	colorNdx;
    731     CARD8	pad1;
    732     CARD16	pad2 B16;
    733 } xkbTextDoodadWireDesc;
    734 #define	sz_xkbTextDoodadWireDesc	20
    735 
    736 typedef struct _xkbIndicatorDoodadWireDesc {
    737     Atom	name B32;
    738     CARD8	type;
    739     CARD8	priority;
    740     INT16	top B16;
    741     INT16	left B16;
    742     INT16	angle B16;
    743     CARD8	shapeNdx;
    744     CARD8	onColorNdx;
    745     CARD8	offColorNdx;
    746     CARD8	pad1;
    747     CARD32	pad2 B32;
    748 } xkbIndicatorDoodadWireDesc;
    749 #define	sz_xkbIndicatorDoodadWireDesc	20
    750 
    751 typedef struct _xkbLogoDoodadWireDesc {
    752     Atom	name B32;
    753     CARD8	type;
    754     CARD8	priority;
    755     INT16	top B16;
    756     INT16	left B16;
    757     INT16	angle B16;
    758     CARD8	colorNdx;
    759     CARD8	shapeNdx;
    760     CARD16	pad1 B16;
    761     CARD32	pad2 B32;
    762 } xkbLogoDoodadWireDesc;
    763 #define	sz_xkbLogoDoodadWireDesc	20
    764 
    765 typedef struct _xkbAnyDoodadWireDesc {
    766     Atom	name B32;
    767     CARD8	type;
    768     CARD8	priority;
    769     INT16	top B16;
    770     INT16	left B16;
    771     INT16	angle B16;
    772     CARD32	pad2 B32;
    773     CARD32	pad3 B32;
    774 } xkbAnyDoodadWireDesc;
    775 #define	sz_xkbAnyDoodadWireDesc	20
    776 
    777 typedef union _xkbDoodadWireDesc {
    778     xkbAnyDoodadWireDesc	any;
    779     xkbShapeDoodadWireDesc	shape;
    780     xkbTextDoodadWireDesc	text;
    781     xkbIndicatorDoodadWireDesc	indicator;
    782     xkbLogoDoodadWireDesc	logo;
    783 } xkbDoodadWireDesc;
    784 #define	sz_xkbDoodadWireDesc	20
    785 
    786 typedef struct _xkbGetGeometry {
    787     CARD8	reqType;
    788     CARD8	xkbReqType;	/* always X_KBGetGeometry */
    789     CARD16	length B16;
    790     CARD16	deviceSpec B16;
    791     CARD16	pad B16;
    792     Atom	name B32;
    793 } xkbGetGeometryReq;
    794 #define	sz_xkbGetGeometryReq	12
    795 
    796 typedef struct _xkbGetGeometryReply {
    797     CARD8	type;		/* always X_Reply */
    798     CARD8	deviceID;
    799     CARD16	sequenceNumber B16;
    800     CARD32	length B32;
    801     Atom	name B32;
    802     BOOL	found;
    803     CARD8	pad;
    804     CARD16	widthMM B16;
    805     CARD16	heightMM B16;
    806     CARD16	nProperties B16;
    807     CARD16	nColors B16;
    808     CARD16	nShapes B16;
    809     CARD16	nSections B16;
    810     CARD16	nDoodads B16;
    811     CARD16	nKeyAliases B16;
    812     CARD8	baseColorNdx;
    813     CARD8	labelColorNdx;
    814 } xkbGetGeometryReply;
    815 #define	sz_xkbGetGeometryReply	32
    816 
    817 typedef struct _xkbSetGeometry {
    818     CARD8	reqType;
    819     CARD8	xkbReqType;	/* always X_KBSetGeometry */
    820     CARD16	length B16;
    821     CARD16	deviceSpec B16;
    822     CARD8	nShapes;
    823     CARD8	nSections;
    824     Atom	name B32;
    825     CARD16	widthMM B16;
    826     CARD16	heightMM B16;
    827     CARD16	nProperties B16;
    828     CARD16	nColors B16;
    829     CARD16	nDoodads B16;
    830     CARD16	nKeyAliases B16;
    831     CARD8	baseColorNdx;
    832     CARD8	labelColorNdx;
    833     CARD16	pad B16;
    834 } xkbSetGeometryReq;
    835 #define	sz_xkbSetGeometryReq	28
    836 
    837 typedef struct _xkbPerClientFlags {
    838     CARD8	reqType;
    839     CARD8	xkbReqType;/* always X_KBPerClientFlags */
    840     CARD16	length B16;
    841     CARD16	deviceSpec B16;
    842     CARD16	pad1 B16;
    843     CARD32	change B32;
    844     CARD32	value B32;
    845     CARD32	ctrlsToChange B32;
    846     CARD32	autoCtrls B32;
    847     CARD32	autoCtrlValues B32;
    848 } xkbPerClientFlagsReq;
    849 #define	sz_xkbPerClientFlagsReq	28
    850 
    851 typedef struct _xkbPerClientFlagsReply {
    852     CARD8	type;		/* always X_Reply */
    853     CARD8	deviceID;
    854     CARD16	sequenceNumber B16;
    855     CARD32	length B32;
    856     CARD32	supported B32;
    857     CARD32	value B32;
    858     CARD32	autoCtrls B32;
    859     CARD32	autoCtrlValues B32;
    860     CARD32	pad1 B32;
    861     CARD32	pad2 B32;
    862 } xkbPerClientFlagsReply;
    863 #define	sz_xkbPerClientFlagsReply	32
    864 
    865 typedef struct _xkbListComponents {
    866     CARD8	reqType;
    867     CARD8	xkbReqType;	/* always X_KBListComponents */
    868     CARD16	length B16;
    869     CARD16	deviceSpec B16;
    870     CARD16	maxNames B16;
    871 } xkbListComponentsReq;
    872 #define	sz_xkbListComponentsReq	8
    873 
    874 typedef struct _xkbListComponentsReply {
    875     CARD8	type;		/* always X_Reply */
    876     CARD8	deviceID;
    877     CARD16	sequenceNumber B16;
    878     CARD32	length B32;
    879     CARD16	nKeymaps B16;
    880     CARD16	nKeycodes B16;
    881     CARD16	nTypes B16;
    882     CARD16	nCompatMaps B16;
    883     CARD16	nSymbols B16;
    884     CARD16	nGeometries B16;
    885     CARD16	extra B16;
    886     CARD16	pad1 B16;
    887     CARD32	pad2 B32;
    888     CARD32	pad3 B32;
    889 } xkbListComponentsReply;
    890 #define	sz_xkbListComponentsReply	32
    891 
    892 typedef struct _xkbGetKbdByName {
    893     CARD8	reqType;
    894     CARD8	xkbReqType;	/* always X_KBGetKbdByName */
    895     CARD16	length B16;
    896     CARD16	deviceSpec B16;
    897     CARD16	need B16;	/* combination of XkbGBN_* */
    898     CARD16	want B16;	/* combination of XkbGBN_* */
    899     BOOL	load;
    900     CARD8	pad;
    901 } xkbGetKbdByNameReq;
    902 #define	sz_xkbGetKbdByNameReq	12
    903 
    904 typedef struct _xkbGetKbdByNameReply {
    905     CARD8	type;		/* always X_Reply */
    906     CARD8	deviceID;
    907     CARD16	sequenceNumber B16;
    908     CARD32	length B32;
    909     KeyCode	minKeyCode;
    910     KeyCode	maxKeyCode;
    911     BOOL	loaded;
    912     BOOL	newKeyboard;
    913     CARD16	found B16;	/* combination of XkbGBN_* */
    914     CARD16	reported B16;	/* combination of XkbAllComponents */
    915     CARD32	pad1 B32;
    916     CARD32	pad2 B32;
    917     CARD32	pad3 B32;
    918     CARD32	pad4 B32;
    919 } xkbGetKbdByNameReply;
    920 #define	sz_xkbGetKbdByNameReply	32
    921 
    922 typedef	struct _xkbDeviceLedsWireDesc {
    923     CARD16	ledClass B16;
    924     CARD16	ledID B16;
    925     CARD32	namesPresent B32;
    926     CARD32	mapsPresent B32;
    927     CARD32	physIndicators B32;
    928     CARD32	state B32;
    929 } xkbDeviceLedsWireDesc;
    930 #define sz_xkbDeviceLedsWireDesc	20
    931 
    932 typedef struct _xkbGetDeviceInfo {
    933     CARD8	reqType;
    934     CARD8	xkbReqType;	/* always X_KBGetDeviceInfo */
    935     CARD16	length B16;
    936     CARD16	deviceSpec B16;
    937     CARD16	wanted B16;
    938     BOOL	allBtns;
    939     CARD8	firstBtn;
    940     CARD8	nBtns;
    941     CARD8	pad;
    942     CARD16	ledClass B16;
    943     CARD16	ledID B16;
    944 } xkbGetDeviceInfoReq;
    945 #define	sz_xkbGetDeviceInfoReq	16
    946 
    947 typedef struct _xkbGetDeviceInfoReply {
    948     CARD8	type;		/* always X_Reply */
    949     CARD8	deviceID;
    950     CARD16	sequenceNumber B16;
    951     CARD32	length B32;
    952     CARD16	present B16;
    953     CARD16	supported B16;
    954     CARD16	unsupported B16;
    955     CARD16	nDeviceLedFBs B16;
    956     CARD8	firstBtnWanted;
    957     CARD8	nBtnsWanted;
    958     CARD8	firstBtnRtrn;
    959     CARD8	nBtnsRtrn;
    960     CARD8	totalBtns;
    961     BOOL	hasOwnState;
    962     CARD16	dfltKbdFB B16;
    963     CARD16	dfltLedFB B16;
    964     CARD16	pad B16;
    965     Atom	devType B32;
    966 } xkbGetDeviceInfoReply;
    967 #define	sz_xkbGetDeviceInfoReply	32
    968 
    969 typedef struct _xkbSetDeviceInfo {
    970     CARD8	reqType;
    971     CARD8	xkbReqType;	/* always X_KBSetDeviceInfo */
    972     CARD16	length B16;
    973     CARD16	deviceSpec B16;
    974     CARD8	firstBtn;
    975     CARD8	nBtns;
    976     CARD16	change B16;
    977     CARD16	nDeviceLedFBs B16;
    978 } xkbSetDeviceInfoReq;
    979 #define	sz_xkbSetDeviceInfoReq	12
    980 
    981 typedef struct _xkbSetDebuggingFlags {
    982     CARD8	reqType;
    983     CARD8	xkbReqType;	/* always X_KBSetDebuggingFlags */
    984     CARD16	length B16;
    985     CARD16	msgLength B16;
    986     CARD16	pad B16;
    987     CARD32	affectFlags B32;
    988     CARD32	flags B32;
    989     CARD32	affectCtrls B32;
    990     CARD32	ctrls B32;
    991 } xkbSetDebuggingFlagsReq;
    992 #define	sz_xkbSetDebuggingFlagsReq	24
    993 
    994 typedef struct _xkbSetDebuggingFlagsReply {
    995     BYTE	type;		/* X_Reply */
    996     CARD8	pad0;
    997     CARD16	sequenceNumber B16;
    998     CARD32	length B32;
    999     CARD32	currentFlags B32;
   1000     CARD32	currentCtrls B32;
   1001     CARD32	supportedFlags B32;
   1002     CARD32	supportedCtrls B32;
   1003     CARD32	pad1 B32;
   1004     CARD32	pad2 B32;
   1005 } xkbSetDebuggingFlagsReply;
   1006 #define	sz_xkbSetDebuggingFlagsReply	32
   1007 
   1008 	/*
   1009 	 * X KEYBOARD EXTENSION EVENT STRUCTURES
   1010 	 */
   1011 
   1012 typedef struct _xkbAnyEvent {
   1013     BYTE	type;
   1014     BYTE	xkbType;
   1015     CARD16	sequenceNumber B16;
   1016     Time	time B32;
   1017     CARD8	deviceID;
   1018     CARD8	pad1;
   1019     CARD16	pad2 B16;
   1020     CARD32	pad3 B32;
   1021     CARD32	pad4 B32;
   1022     CARD32	pad5 B32;
   1023     CARD32	pad6 B32;
   1024     CARD32	pad7 B32;
   1025 } xkbAnyEvent;
   1026 #define	sz_xkbAnyEvent 32
   1027 
   1028 typedef	struct _xkbNewKeyboardNotify {
   1029     BYTE	type;
   1030     BYTE	xkbType;
   1031     CARD16	sequenceNumber B16;
   1032     Time	time B32;
   1033     CARD8	deviceID;
   1034     CARD8	oldDeviceID;
   1035     KeyCode	minKeyCode;
   1036     KeyCode	maxKeyCode;
   1037     KeyCode	oldMinKeyCode;
   1038     KeyCode	oldMaxKeyCode;
   1039     CARD8	requestMajor;
   1040     CARD8	requestMinor;
   1041     CARD16	changed B16;
   1042     CARD8	detail;
   1043     CARD8	pad1;
   1044     CARD32	pad2 B32;
   1045     CARD32	pad3 B32;
   1046     CARD32	pad4 B32;
   1047 } xkbNewKeyboardNotify;
   1048 #define	sz_xkbNewKeyboardNotify	32
   1049 
   1050 typedef	struct _xkbMapNotify {
   1051     BYTE	type;
   1052     BYTE	xkbType;
   1053     CARD16	sequenceNumber B16;
   1054     Time	time B32;
   1055     CARD8	deviceID;
   1056     CARD8	ptrBtnActions;
   1057     CARD16	changed B16;
   1058     KeyCode	minKeyCode;
   1059     KeyCode	maxKeyCode;
   1060     CARD8	firstType;
   1061     CARD8	nTypes;
   1062     KeyCode	firstKeySym;
   1063     CARD8	nKeySyms;
   1064     KeyCode	firstKeyAct;
   1065     CARD8	nKeyActs;
   1066     KeyCode	firstKeyBehavior;
   1067     CARD8	nKeyBehaviors;
   1068     KeyCode	firstKeyExplicit;
   1069     CARD8	nKeyExplicit;
   1070     KeyCode	firstModMapKey;
   1071     CARD8	nModMapKeys;
   1072     KeyCode	firstVModMapKey;
   1073     CARD8	nVModMapKeys;
   1074     CARD16	virtualMods B16;
   1075     CARD16	pad1 B16;
   1076 } xkbMapNotify;
   1077 #define	sz_xkbMapNotify	32
   1078 
   1079 typedef	struct _xkbStateNotify {
   1080     BYTE	type;
   1081     BYTE	xkbType;
   1082     CARD16	sequenceNumber B16;
   1083     Time	time B32;
   1084     CARD8	deviceID;
   1085     CARD8	mods;
   1086     CARD8	baseMods;
   1087     CARD8	latchedMods;
   1088     CARD8	lockedMods;
   1089     CARD8	group;
   1090     INT16	baseGroup B16;
   1091     INT16	latchedGroup B16;
   1092     CARD8	lockedGroup;
   1093     CARD8	compatState;
   1094     CARD8	grabMods;
   1095     CARD8	compatGrabMods;
   1096     CARD8	lookupMods;
   1097     CARD8	compatLookupMods;
   1098     CARD16	ptrBtnState B16;
   1099     CARD16	changed B16;
   1100     KeyCode	keycode;
   1101     CARD8	eventType;
   1102     CARD8	requestMajor;
   1103     CARD8	requestMinor;
   1104 } xkbStateNotify;
   1105 #define	sz_xkbStateNotify	32
   1106 
   1107 typedef struct _xkbControlsNotify {
   1108     BYTE	type;
   1109     BYTE	xkbType;
   1110     CARD16	sequenceNumber B16;
   1111     Time	time B32;
   1112     CARD8	deviceID;
   1113     CARD8	numGroups;
   1114     CARD16	pad1 B16;
   1115     CARD32	changedControls B32;
   1116     CARD32	enabledControls B32;
   1117     CARD32	enabledControlChanges B32;
   1118     KeyCode	keycode;
   1119     CARD8	eventType;
   1120     CARD8	requestMajor;
   1121     CARD8	requestMinor;
   1122     CARD32	pad2 B32;
   1123 } xkbControlsNotify;
   1124 #define	sz_xkbControlsNotify	32
   1125 
   1126 typedef struct _xkbIndicatorNotify {
   1127     BYTE	type;
   1128     BYTE	xkbType;
   1129     CARD16	sequenceNumber B16;
   1130     Time	time B32;
   1131     CARD8	deviceID;
   1132     CARD8	pad1;
   1133     CARD16	pad2 B16;
   1134     CARD32	state B32;
   1135     CARD32	changed B32;
   1136     CARD32	pad3 B32;
   1137     CARD32	pad4 B32;
   1138     CARD32	pad5 B32;
   1139 } xkbIndicatorNotify;
   1140 #define	sz_xkbIndicatorNotify	32
   1141 
   1142 typedef struct _xkbNamesNotify {
   1143     BYTE	type;
   1144     BYTE	xkbType;
   1145     CARD16	sequenceNumber B16;
   1146     Time	time B32;
   1147     CARD8	deviceID;
   1148     CARD8	pad1;
   1149     CARD16	changed B16;
   1150     CARD8	firstType;
   1151     CARD8	nTypes;
   1152     CARD8	firstLevelName;
   1153     CARD8	nLevelNames;
   1154     CARD8	pad2;
   1155     CARD8	nRadioGroups;
   1156     CARD8	nAliases;
   1157     CARD8	changedGroupNames;
   1158     CARD16	changedVirtualMods B16;
   1159     CARD8	firstKey;
   1160     CARD8	nKeys;
   1161     CARD32	changedIndicators B32;
   1162     CARD32	pad3 B32;
   1163 } xkbNamesNotify;
   1164 #define	sz_xkbNamesNotify	32
   1165 
   1166 typedef struct _xkbCompatMapNotify {
   1167     BYTE	type;
   1168     BYTE	xkbType;
   1169     CARD16	sequenceNumber B16;
   1170     Time	time B32;
   1171     CARD8	deviceID;
   1172     CARD8	changedGroups;
   1173     CARD16	firstSI B16;
   1174     CARD16	nSI B16;
   1175     CARD16	nTotalSI B16;
   1176     CARD32	pad1 B32;
   1177     CARD32	pad2 B32;
   1178     CARD32	pad3 B32;
   1179     CARD32	pad4 B32;
   1180 } xkbCompatMapNotify;
   1181 #define sz_xkbCompatMapNotify	32
   1182 
   1183 typedef struct _xkbBellNotify {
   1184     BYTE	type;
   1185     BYTE	xkbType;
   1186     CARD16	sequenceNumber B16;
   1187     Time	time B32;
   1188     CARD8	deviceID;
   1189     CARD8	bellClass;
   1190     CARD8	bellID;
   1191     CARD8	percent;
   1192     CARD16	pitch B16;
   1193     CARD16	duration B16;
   1194     Atom	name B32;
   1195     Window	window B32;
   1196     BOOL	eventOnly;
   1197     CARD8	pad1;
   1198     CARD16	pad2 B16;
   1199     CARD32	pad3 B32;
   1200 } xkbBellNotify;
   1201 #define	sz_xkbBellNotify	32
   1202 
   1203 typedef struct _xkbActionMessage {
   1204     BYTE	type;
   1205     BYTE	xkbType;
   1206     CARD16	sequenceNumber B16;
   1207     Time	time B32;
   1208     CARD8	deviceID;
   1209     KeyCode	keycode;
   1210     BOOL	press;
   1211     BOOL	keyEventFollows;
   1212     CARD8	mods;
   1213     CARD8	group;
   1214     CARD8	message[8];
   1215     CARD16	pad1 B16;
   1216     CARD32	pad2 B32;
   1217     CARD32	pad3 B32;
   1218 } xkbActionMessage;
   1219 #define	sz_xkbActionMessage		32
   1220 
   1221 typedef struct _xkbAccessXNotify {
   1222     BYTE	type;
   1223     BYTE	xkbType;
   1224     CARD16	sequenceNumber B16;
   1225     Time	time B32;
   1226     CARD8	deviceID;
   1227     KeyCode	keycode;
   1228     CARD16	detail B16;
   1229     CARD16	slowKeysDelay B16;
   1230     CARD16	debounceDelay B16;
   1231     CARD32	pad1 B32;
   1232     CARD32	pad2 B32;
   1233     CARD32	pad3 B32;
   1234     CARD32	pad4 B32;
   1235 } xkbAccessXNotify;
   1236 #define	sz_xkbAccessXNotify	32
   1237 
   1238 typedef struct _xkbExtensionDeviceNotify {
   1239     BYTE	type;
   1240     BYTE	xkbType;
   1241     CARD16	sequenceNumber B16;
   1242     Time	time B32;
   1243     CARD8	deviceID;
   1244     CARD8	pad1;
   1245     CARD16	reason B16;
   1246     CARD16	ledClass B16;
   1247     CARD16	ledID B16;
   1248     CARD32	ledsDefined B32;
   1249     CARD32	ledState B32;
   1250     CARD8	firstBtn;
   1251     CARD8	nBtns;
   1252     CARD16	supported B16;
   1253     CARD16	unsupported B16;
   1254     CARD16	pad3 B16;
   1255 } xkbExtensionDeviceNotify;
   1256 #define	sz_xkbExtensionDeviceNotify		32
   1257 
   1258 typedef struct _xkbEvent {
   1259     union {
   1260 	xkbAnyEvent		any;
   1261 	xkbNewKeyboardNotify	new_kbd;
   1262 	xkbMapNotify		map;
   1263 	xkbStateNotify		state;
   1264 	xkbControlsNotify	ctrls;
   1265 	xkbIndicatorNotify	indicators;
   1266 	xkbNamesNotify		names;
   1267 	xkbCompatMapNotify	compat;
   1268 	xkbBellNotify		bell;
   1269 	xkbActionMessage	message;
   1270 	xkbAccessXNotify	accessx;
   1271 	xkbExtensionDeviceNotify device;
   1272     } u;
   1273 } xkbEvent;
   1274 #define sz_xkbEvent	32
   1275 
   1276 #undef Window
   1277 #undef Atom
   1278 #undef Time
   1279 #undef KeyCode
   1280 #undef KeySym
   1281 
   1282 #endif /* _XKBPROTO_H_ */
   1283