117ca54c3Smrg/************************************************************
217ca54c3SmrgCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
317ca54c3Smrg
417ca54c3SmrgPermission to use, copy, modify, and distribute this
517ca54c3Smrgsoftware and its documentation for any purpose and without
617ca54c3Smrgfee is hereby granted, provided that the above copyright
717ca54c3Smrgnotice appear in all copies and that both that copyright
817ca54c3Smrgnotice and this permission notice appear in supporting
9ea1d6981Smrgdocumentation, and that the name of Silicon Graphics not be
10ea1d6981Smrgused in advertising or publicity pertaining to distribution
1117ca54c3Smrgof the software without specific prior written permission.
12ea1d6981SmrgSilicon Graphics makes no representation about the suitability
1317ca54c3Smrgof this software for any purpose. It is provided "as is"
1417ca54c3Smrgwithout any express or implied warranty.
1517ca54c3Smrg
16ea1d6981SmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
17ea1d6981SmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1817ca54c3SmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
19ea1d6981SmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
20ea1d6981SmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21ea1d6981SmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
2217ca54c3SmrgOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
2317ca54c3SmrgTHE USE OR PERFORMANCE OF THIS SOFTWARE.
2417ca54c3Smrg
2517ca54c3Smrg********************************************************/
2617ca54c3Smrg
2717ca54c3Smrg#ifndef _XKBPROTO_H_
2817ca54c3Smrg#define	_XKBPROTO_H_
2917ca54c3Smrg
3017ca54c3Smrg#include <X11/Xmd.h>
31d63b911fSmrg#include <X11/Xfuncproto.h>
3217ca54c3Smrg#include <X11/extensions/XKB.h>
3317ca54c3Smrg
3417ca54c3Smrg#define Window CARD32
3517ca54c3Smrg#define Atom CARD32
3617ca54c3Smrg#define Time CARD32
3717ca54c3Smrg#define KeyCode CARD8
3817ca54c3Smrg#define KeySym CARD32
3917ca54c3Smrg
4017ca54c3Smrg#define	XkbPaddedSize(n)	((((unsigned int)(n)+3) >> 2) << 2)
4117ca54c3Smrg
4217ca54c3Smrgtypedef struct _xkbUseExtension {
4317ca54c3Smrg    CARD8	reqType;
4417ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBUseExtension */
45ea1d6981Smrg    CARD16	length;
46ea1d6981Smrg    CARD16	wantedMajor;
47ea1d6981Smrg    CARD16	wantedMinor;
4817ca54c3Smrg} xkbUseExtensionReq;
4917ca54c3Smrg#define	sz_xkbUseExtensionReq	8
5017ca54c3Smrg
5117ca54c3Smrgtypedef struct _xkbUseExtensionReply {
5217ca54c3Smrg    BYTE	type;		/* X_Reply */
5317ca54c3Smrg    BOOL	supported;
54ea1d6981Smrg    CARD16	sequenceNumber;
55ea1d6981Smrg    CARD32	length;
56ea1d6981Smrg    CARD16	serverMajor;
57ea1d6981Smrg    CARD16	serverMinor;
58ea1d6981Smrg    CARD32	pad1;
59ea1d6981Smrg    CARD32	pad2;
60ea1d6981Smrg    CARD32	pad3;
61ea1d6981Smrg    CARD32	pad4;
62ea1d6981Smrg    CARD32	pad5;
6317ca54c3Smrg} xkbUseExtensionReply;
6417ca54c3Smrg#define	sz_xkbUseExtensionReply	32
6517ca54c3Smrg
6617ca54c3Smrgtypedef	struct _xkbSelectEvents {
6717ca54c3Smrg    CARD8	reqType;
6817ca54c3Smrg    CARD8	xkbReqType;	/* X_KBSelectEvents */
69ea1d6981Smrg    CARD16	length;
70ea1d6981Smrg    CARD16	deviceSpec;
71ea1d6981Smrg    CARD16	affectWhich;
72ea1d6981Smrg    CARD16	clear;
73ea1d6981Smrg    CARD16	selectAll;
74ea1d6981Smrg    CARD16	affectMap;
75ea1d6981Smrg    CARD16	map;
7617ca54c3Smrg} xkbSelectEventsReq;
7717ca54c3Smrg#define	sz_xkbSelectEventsReq	16
7817ca54c3Smrg
7917ca54c3Smrgtypedef struct _xkbBell {
8017ca54c3Smrg    CARD8	reqType;
8117ca54c3Smrg    CARD8	xkbReqType;	/* X_KBBell */
82ea1d6981Smrg    CARD16	length;
83ea1d6981Smrg    CARD16	deviceSpec;
84ea1d6981Smrg    CARD16	bellClass;
85ea1d6981Smrg    CARD16	bellID;
8617ca54c3Smrg    INT8	percent;
8717ca54c3Smrg    BOOL	forceSound;
8817ca54c3Smrg    BOOL	eventOnly;
8917ca54c3Smrg    CARD8	pad1;
90ea1d6981Smrg    INT16	pitch;
91ea1d6981Smrg    INT16	duration;
92ea1d6981Smrg    CARD16	pad2;
93ea1d6981Smrg    Atom	name;
94ea1d6981Smrg    Window	window;
9517ca54c3Smrg} xkbBellReq;
9617ca54c3Smrg#define	sz_xkbBellReq		28
9717ca54c3Smrg
9817ca54c3Smrgtypedef struct _xkbGetState {
9917ca54c3Smrg	CARD8		reqType;
10017ca54c3Smrg	CARD8		xkbReqType;	/* always X_KBGetState */
101ea1d6981Smrg	CARD16		length;
102ea1d6981Smrg	CARD16		deviceSpec;
103ea1d6981Smrg	CARD16		pad;
10417ca54c3Smrg} xkbGetStateReq;
10517ca54c3Smrg#define	sz_xkbGetStateReq	8
10617ca54c3Smrg
10717ca54c3Smrgtypedef	struct _xkbGetStateReply {
10817ca54c3Smrg    BYTE	type;
10917ca54c3Smrg    BYTE	deviceID;
110ea1d6981Smrg    CARD16	sequenceNumber;
111ea1d6981Smrg    CARD32	length;
11217ca54c3Smrg    CARD8	mods;
11317ca54c3Smrg    CARD8	baseMods;
11417ca54c3Smrg    CARD8	latchedMods;
11517ca54c3Smrg    CARD8	lockedMods;
11617ca54c3Smrg    CARD8	group;
11717ca54c3Smrg    CARD8	lockedGroup;
118ea1d6981Smrg    INT16	baseGroup;
119ea1d6981Smrg    INT16	latchedGroup;
12017ca54c3Smrg    CARD8	compatState;
12117ca54c3Smrg    CARD8	grabMods;
12217ca54c3Smrg    CARD8	compatGrabMods;
12317ca54c3Smrg    CARD8	lookupMods;
12417ca54c3Smrg    CARD8	compatLookupMods;
12517ca54c3Smrg    CARD8	pad1;
126ea1d6981Smrg    CARD16	ptrBtnState;
127ea1d6981Smrg    CARD16	pad2;
128ea1d6981Smrg    CARD32	pad3;
12917ca54c3Smrg} xkbGetStateReply;
13017ca54c3Smrg#define	sz_xkbGetStateReply	32
13117ca54c3Smrg
13217ca54c3Smrgtypedef struct _xkbLatchLockState {
13317ca54c3Smrg    CARD8	reqType;
13417ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBLatchLockState */
135ea1d6981Smrg    CARD16	length;
136ea1d6981Smrg    CARD16	deviceSpec;
13717ca54c3Smrg    CARD8	affectModLocks;
13817ca54c3Smrg    CARD8	modLocks;
13917ca54c3Smrg    BOOL	lockGroup;
14017ca54c3Smrg    CARD8	groupLock;
14117ca54c3Smrg    CARD8	affectModLatches;
14217ca54c3Smrg    CARD8	modLatches;
14317ca54c3Smrg    CARD8	pad;
14417ca54c3Smrg    BOOL	latchGroup;
145ea1d6981Smrg    INT16	groupLatch;
14617ca54c3Smrg} xkbLatchLockStateReq;
14717ca54c3Smrg#define	sz_xkbLatchLockStateReq		16
14817ca54c3Smrg
14917ca54c3Smrgtypedef struct _xkbGetControls {
15017ca54c3Smrg    CARD8	reqType;
15117ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetControls */
152ea1d6981Smrg    CARD16	length;
153ea1d6981Smrg    CARD16	deviceSpec;
154ea1d6981Smrg    CARD16	pad;
15517ca54c3Smrg} xkbGetControlsReq;
15617ca54c3Smrg#define	sz_xkbGetControlsReq	8
15717ca54c3Smrg
15817ca54c3Smrgtypedef struct _xkbGetControlsReply {
15917ca54c3Smrg    BYTE	type;		/* X_Reply */
16017ca54c3Smrg    CARD8	deviceID;
161ea1d6981Smrg    CARD16	sequenceNumber;
162ea1d6981Smrg    CARD32	length;
16317ca54c3Smrg    CARD8	mkDfltBtn;
16417ca54c3Smrg    CARD8	numGroups;
16517ca54c3Smrg    CARD8	groupsWrap;
16617ca54c3Smrg    CARD8	internalMods;
16717ca54c3Smrg    CARD8	ignoreLockMods;
16817ca54c3Smrg    CARD8	internalRealMods;
16917ca54c3Smrg    CARD8	ignoreLockRealMods;
17017ca54c3Smrg    CARD8	pad1;
171ea1d6981Smrg    CARD16	internalVMods;
172ea1d6981Smrg    CARD16	ignoreLockVMods;
173ea1d6981Smrg    CARD16	repeatDelay;
174ea1d6981Smrg    CARD16	repeatInterval;
175ea1d6981Smrg    CARD16	slowKeysDelay;
176ea1d6981Smrg    CARD16	debounceDelay;
177ea1d6981Smrg    CARD16	mkDelay;
178ea1d6981Smrg    CARD16	mkInterval;
179ea1d6981Smrg    CARD16	mkTimeToMax;
180ea1d6981Smrg    CARD16	mkMaxSpeed;
181ea1d6981Smrg    INT16	mkCurve;
182ea1d6981Smrg    CARD16	axOptions;
183ea1d6981Smrg    CARD16	axTimeout;
184ea1d6981Smrg    CARD16	axtOptsMask;
185ea1d6981Smrg    CARD16	axtOptsValues;
186ea1d6981Smrg    CARD16	pad2;
187ea1d6981Smrg    CARD32	axtCtrlsMask;
188ea1d6981Smrg    CARD32	axtCtrlsValues;
189ea1d6981Smrg    CARD32	enabledCtrls;
19017ca54c3Smrg    BYTE	perKeyRepeat[XkbPerKeyBitArraySize];
19117ca54c3Smrg} xkbGetControlsReply;
19217ca54c3Smrg#define	sz_xkbGetControlsReply	92
19317ca54c3Smrg
19417ca54c3Smrgtypedef struct _xkbSetControls {
19517ca54c3Smrg    CARD8	reqType;
19617ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetControls */
197ea1d6981Smrg    CARD16	length;
198ea1d6981Smrg    CARD16	deviceSpec;
19917ca54c3Smrg    CARD8	affectInternalMods;
20017ca54c3Smrg    CARD8	internalMods;
20117ca54c3Smrg    CARD8	affectIgnoreLockMods;
20217ca54c3Smrg    CARD8	ignoreLockMods;
203ea1d6981Smrg    CARD16	affectInternalVMods;
204ea1d6981Smrg    CARD16	internalVMods;
205ea1d6981Smrg    CARD16	affectIgnoreLockVMods;
206ea1d6981Smrg    CARD16	ignoreLockVMods;
20717ca54c3Smrg    CARD8	mkDfltBtn;
20817ca54c3Smrg    CARD8	groupsWrap;
209ea1d6981Smrg    CARD16	axOptions;
210ea1d6981Smrg    CARD16	pad1;
211ea1d6981Smrg    CARD32	affectEnabledCtrls;
212ea1d6981Smrg    CARD32	enabledCtrls;
213ea1d6981Smrg    CARD32	changeCtrls;
214ea1d6981Smrg    CARD16	repeatDelay;
215ea1d6981Smrg    CARD16	repeatInterval;
216ea1d6981Smrg    CARD16	slowKeysDelay;
217ea1d6981Smrg    CARD16	debounceDelay;
218ea1d6981Smrg    CARD16	mkDelay;
219ea1d6981Smrg    CARD16	mkInterval;
220ea1d6981Smrg    CARD16	mkTimeToMax;
221ea1d6981Smrg    CARD16	mkMaxSpeed;
222ea1d6981Smrg    INT16	mkCurve;
223ea1d6981Smrg    CARD16	axTimeout;
224ea1d6981Smrg    CARD32	axtCtrlsMask;
225ea1d6981Smrg    CARD32	axtCtrlsValues;
226ea1d6981Smrg    CARD16	axtOptsMask;
227ea1d6981Smrg    CARD16	axtOptsValues;
22817ca54c3Smrg    BYTE	perKeyRepeat[XkbPerKeyBitArraySize];
22917ca54c3Smrg} xkbSetControlsReq;
23017ca54c3Smrg#define	sz_xkbSetControlsReq	100
23117ca54c3Smrg
23217ca54c3Smrgtypedef	struct _xkbKTMapEntryWireDesc {
23317ca54c3Smrg    BOOL	active;
23417ca54c3Smrg    CARD8	mask;
23517ca54c3Smrg    CARD8	level;
23617ca54c3Smrg    CARD8	realMods;
237ea1d6981Smrg    CARD16	virtualMods;
238ea1d6981Smrg    CARD16	pad;
23917ca54c3Smrg} xkbKTMapEntryWireDesc;
24017ca54c3Smrg#define sz_xkbKTMapEntryWireDesc	8
24117ca54c3Smrg
24217ca54c3Smrgtypedef struct _xkbKTSetMapEntryWireDesc {
24317ca54c3Smrg    CARD8	level;
24417ca54c3Smrg    CARD8	realMods;
245ea1d6981Smrg    CARD16	virtualMods;
24617ca54c3Smrg} xkbKTSetMapEntryWireDesc;
24717ca54c3Smrg#define	sz_xkbKTSetMapEntryWireDesc	4
24817ca54c3Smrg
24917ca54c3Smrgtypedef struct _xkbModsWireDesc {
25017ca54c3Smrg    CARD8	mask;		/* GetMap only */
25117ca54c3Smrg    CARD8	realMods;
252ea1d6981Smrg    CARD16	virtualMods;
25317ca54c3Smrg} xkbModsWireDesc;
25417ca54c3Smrg#define	sz_xkbModsWireDesc	4
25517ca54c3Smrg
25617ca54c3Smrgtypedef struct _xkbKeyTypeWireDesc {
25717ca54c3Smrg    CARD8	mask;
25817ca54c3Smrg    CARD8	realMods;
259ea1d6981Smrg    CARD16	virtualMods;
26017ca54c3Smrg    CARD8	numLevels;
26117ca54c3Smrg    CARD8	nMapEntries;
26217ca54c3Smrg    BOOL	preserve;
26317ca54c3Smrg    CARD8	pad;
26417ca54c3Smrg} xkbKeyTypeWireDesc;
26517ca54c3Smrg#define	sz_xkbKeyTypeWireDesc	8
26617ca54c3Smrg
26717ca54c3Smrgtypedef struct _xkbSymMapWireDesc {
26817ca54c3Smrg    CARD8	ktIndex[XkbNumKbdGroups];
26917ca54c3Smrg    CARD8	groupInfo;
27017ca54c3Smrg    CARD8	width;
271ea1d6981Smrg    CARD16	nSyms;
27217ca54c3Smrg} xkbSymMapWireDesc;
27317ca54c3Smrg#define	sz_xkbSymMapWireDesc	8
27417ca54c3Smrg
27517ca54c3Smrgtypedef struct _xkbVModMapWireDesc {
27617ca54c3Smrg    KeyCode	key;
27717ca54c3Smrg    CARD8	pad;
278ea1d6981Smrg    CARD16	vmods;
27917ca54c3Smrg} xkbVModMapWireDesc;
28017ca54c3Smrg#define	sz_xkbVModMapWireDesc	4
28117ca54c3Smrg
28217ca54c3Smrgtypedef struct _xkbBehaviorWireDesc {
28317ca54c3Smrg	CARD8	key;
28417ca54c3Smrg	CARD8	type;
28517ca54c3Smrg	CARD8	data;
28617ca54c3Smrg	CARD8	pad;
28717ca54c3Smrg} xkbBehaviorWireDesc;
28817ca54c3Smrg#define	sz_xkbBehaviorWireDesc	4
28917ca54c3Smrg
29017ca54c3Smrgtypedef	struct _xkbActionWireDesc {
29117ca54c3Smrg    CARD8	type;
29217ca54c3Smrg    CARD8	data[7];
29317ca54c3Smrg} xkbActionWireDesc;
29417ca54c3Smrg#define	sz_xkbActionWireDesc	8
29517ca54c3Smrg
29617ca54c3Smrgtypedef struct _xkbGetMap {
29717ca54c3Smrg    CARD8	reqType;
29817ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetMap */
299ea1d6981Smrg    CARD16	length;
300ea1d6981Smrg    CARD16	deviceSpec;
301ea1d6981Smrg    CARD16	full;
302ea1d6981Smrg    CARD16	partial;
30317ca54c3Smrg    CARD8	firstType;
30417ca54c3Smrg    CARD8	nTypes;
30517ca54c3Smrg    KeyCode	firstKeySym;
30617ca54c3Smrg    CARD8	nKeySyms;
30717ca54c3Smrg    KeyCode	firstKeyAct;
30817ca54c3Smrg    CARD8	nKeyActs;
30917ca54c3Smrg    KeyCode	firstKeyBehavior;
31017ca54c3Smrg    CARD8	nKeyBehaviors;
311ea1d6981Smrg    CARD16	virtualMods;
31217ca54c3Smrg    KeyCode	firstKeyExplicit;
31317ca54c3Smrg    CARD8	nKeyExplicit;
31417ca54c3Smrg    KeyCode	firstModMapKey;
31517ca54c3Smrg    CARD8	nModMapKeys;
31617ca54c3Smrg    KeyCode	firstVModMapKey;
31717ca54c3Smrg    CARD8	nVModMapKeys;
318ea1d6981Smrg    CARD16	pad1;
31917ca54c3Smrg} xkbGetMapReq;
32017ca54c3Smrg#define	sz_xkbGetMapReq	28
32117ca54c3Smrg
32217ca54c3Smrgtypedef struct _xkbGetMapReply {
32317ca54c3Smrg    CARD8	type;		/* always X_Reply */
32417ca54c3Smrg    CARD8	deviceID;
325ea1d6981Smrg    CARD16	sequenceNumber;
326ea1d6981Smrg    CARD32	length;
327ea1d6981Smrg    CARD16	pad1;
32817ca54c3Smrg    KeyCode	minKeyCode;
32917ca54c3Smrg    KeyCode	maxKeyCode;
330ea1d6981Smrg    CARD16	present;
33117ca54c3Smrg    CARD8	firstType;
33217ca54c3Smrg    CARD8	nTypes;
33317ca54c3Smrg    CARD8	totalTypes;
33417ca54c3Smrg    KeyCode	firstKeySym;
335ea1d6981Smrg    CARD16	totalSyms;
33617ca54c3Smrg    CARD8	nKeySyms;
33717ca54c3Smrg    KeyCode	firstKeyAct;
338ea1d6981Smrg    CARD16	totalActs;
33917ca54c3Smrg    CARD8	nKeyActs;
34017ca54c3Smrg    KeyCode	firstKeyBehavior;
34117ca54c3Smrg    CARD8	nKeyBehaviors;
34217ca54c3Smrg    CARD8	totalKeyBehaviors;
34317ca54c3Smrg    KeyCode	firstKeyExplicit;
34417ca54c3Smrg    CARD8	nKeyExplicit;
34517ca54c3Smrg    CARD8	totalKeyExplicit;
34617ca54c3Smrg    KeyCode	firstModMapKey;
34717ca54c3Smrg    CARD8	nModMapKeys;
34817ca54c3Smrg    CARD8	totalModMapKeys;
34917ca54c3Smrg    KeyCode	firstVModMapKey;
35017ca54c3Smrg    CARD8	nVModMapKeys;
35117ca54c3Smrg    CARD8	totalVModMapKeys;
35217ca54c3Smrg    CARD8	pad2;
353ea1d6981Smrg    CARD16	virtualMods;
35417ca54c3Smrg} xkbGetMapReply;
35517ca54c3Smrg#define	sz_xkbGetMapReply		40
35617ca54c3Smrg
35717ca54c3Smrg#define	XkbSetMapResizeTypes		(1L<<0)
35817ca54c3Smrg#define	XkbSetMapRecomputeActions	(1L<<1)
35917ca54c3Smrg#define	XkbSetMapAllFlags		(0x3)
36017ca54c3Smrg
36117ca54c3Smrgtypedef struct _xkbSetMap {
36217ca54c3Smrg    CARD8	reqType;
36317ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetMap */
364ea1d6981Smrg    CARD16	length;
365ea1d6981Smrg    CARD16	deviceSpec;
366ea1d6981Smrg    CARD16	present;
367ea1d6981Smrg    CARD16	flags;
36817ca54c3Smrg    KeyCode	minKeyCode;
36917ca54c3Smrg    KeyCode	maxKeyCode;
37017ca54c3Smrg    CARD8	firstType;
37117ca54c3Smrg    CARD8	nTypes;
37217ca54c3Smrg    KeyCode	firstKeySym;
37317ca54c3Smrg    CARD8	nKeySyms;
374ea1d6981Smrg    CARD16	totalSyms;
37517ca54c3Smrg    KeyCode	firstKeyAct;
37617ca54c3Smrg    CARD8	nKeyActs;
377ea1d6981Smrg    CARD16	totalActs;
37817ca54c3Smrg    KeyCode	firstKeyBehavior;
37917ca54c3Smrg    CARD8	nKeyBehaviors;
38017ca54c3Smrg    CARD8	totalKeyBehaviors;
38117ca54c3Smrg    KeyCode	firstKeyExplicit;
38217ca54c3Smrg    CARD8	nKeyExplicit;
38317ca54c3Smrg    CARD8	totalKeyExplicit;
38417ca54c3Smrg    KeyCode	firstModMapKey;
38517ca54c3Smrg    CARD8	nModMapKeys;
38617ca54c3Smrg    CARD8	totalModMapKeys;
38717ca54c3Smrg    KeyCode	firstVModMapKey;
38817ca54c3Smrg    CARD8	nVModMapKeys;
38917ca54c3Smrg    CARD8	totalVModMapKeys;
390ea1d6981Smrg    CARD16	virtualMods;
39117ca54c3Smrg} xkbSetMapReq;
39217ca54c3Smrg#define	sz_xkbSetMapReq	36
39317ca54c3Smrg
39417ca54c3Smrgtypedef struct _xkbSymInterpretWireDesc {
395ea1d6981Smrg    CARD32		sym;
39617ca54c3Smrg    CARD8		mods;
39717ca54c3Smrg    CARD8		match;
39817ca54c3Smrg    CARD8		virtualMod;
39917ca54c3Smrg    CARD8		flags;
40017ca54c3Smrg    xkbActionWireDesc	act;
40117ca54c3Smrg} xkbSymInterpretWireDesc;
40217ca54c3Smrg#define	sz_xkbSymInterpretWireDesc	16
40317ca54c3Smrg
40417ca54c3Smrgtypedef struct _xkbGetCompatMap {
40517ca54c3Smrg    CARD8	reqType;
40617ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetCompatMap */
407ea1d6981Smrg    CARD16	length;
408ea1d6981Smrg    CARD16	deviceSpec;
40917ca54c3Smrg    CARD8	groups;
41017ca54c3Smrg    BOOL	getAllSI;
411ea1d6981Smrg    CARD16	firstSI;
412ea1d6981Smrg    CARD16	nSI;
41317ca54c3Smrg} xkbGetCompatMapReq;
41417ca54c3Smrg#define	sz_xkbGetCompatMapReq	12
41517ca54c3Smrg
41617ca54c3Smrgtypedef struct _xkbGetCompatMapReply {
41717ca54c3Smrg    CARD8	type;		/* always X_Reply */
41817ca54c3Smrg    CARD8	deviceID;
419ea1d6981Smrg    CARD16	sequenceNumber;
420ea1d6981Smrg    CARD32	length;
42117ca54c3Smrg    CARD8	groups;
42217ca54c3Smrg    CARD8	pad1;
423ea1d6981Smrg    CARD16	firstSI;
424ea1d6981Smrg    CARD16	nSI;
425ea1d6981Smrg    CARD16	nTotalSI;
426ea1d6981Smrg    CARD32	pad2;
427ea1d6981Smrg    CARD32	pad3;
428ea1d6981Smrg    CARD32	pad4;
429ea1d6981Smrg    CARD32	pad5;
43017ca54c3Smrg} xkbGetCompatMapReply;
43117ca54c3Smrg#define	sz_xkbGetCompatMapReply		32
43217ca54c3Smrg
43317ca54c3Smrgtypedef struct _xkbSetCompatMap {
43417ca54c3Smrg    CARD8	reqType;
43517ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetCompatMap */
436ea1d6981Smrg    CARD16	length;
437ea1d6981Smrg    CARD16	deviceSpec;
43817ca54c3Smrg    CARD8	pad1;
43917ca54c3Smrg    BOOL	recomputeActions;
44017ca54c3Smrg    BOOL	truncateSI;
44117ca54c3Smrg    CARD8	groups;
442ea1d6981Smrg    CARD16	firstSI;
443ea1d6981Smrg    CARD16	nSI;
444ea1d6981Smrg    CARD16	pad2;
44517ca54c3Smrg} xkbSetCompatMapReq;
44617ca54c3Smrg#define	sz_xkbSetCompatMapReq	16
44717ca54c3Smrg
44817ca54c3Smrgtypedef struct _xkbGetIndicatorState {
44917ca54c3Smrg    CARD8	reqType;
45017ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetIndicatorState */
451ea1d6981Smrg    CARD16	length;
452ea1d6981Smrg    CARD16	deviceSpec;
453ea1d6981Smrg    CARD16	pad1;
45417ca54c3Smrg} xkbGetIndicatorStateReq;
45517ca54c3Smrg#define	sz_xkbGetIndicatorStateReq	8
45617ca54c3Smrg
45717ca54c3Smrgtypedef struct _xkbGetIndicatorStateReply {
45817ca54c3Smrg    CARD8	type;		/* always X_Reply */
45917ca54c3Smrg    CARD8	deviceID;
460ea1d6981Smrg    CARD16	sequenceNumber;
461ea1d6981Smrg    CARD32	length;
462ea1d6981Smrg    CARD32	state;
463ea1d6981Smrg    CARD32	pad1;
464ea1d6981Smrg    CARD32	pad2;
465ea1d6981Smrg    CARD32	pad3;
466ea1d6981Smrg    CARD32	pad4;
467ea1d6981Smrg    CARD32	pad5;
46817ca54c3Smrg} xkbGetIndicatorStateReply;
46917ca54c3Smrg#define	sz_xkbGetIndicatorStateReply	32
47017ca54c3Smrg
47117ca54c3Smrgtypedef struct _xkbGetIndicatorMap {
47217ca54c3Smrg    CARD8	reqType;
47317ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetIndicatorMap */
474ea1d6981Smrg    CARD16	length;
475ea1d6981Smrg    CARD16	deviceSpec;
476ea1d6981Smrg    CARD16	pad;
477ea1d6981Smrg    CARD32	which;
47817ca54c3Smrg} xkbGetIndicatorMapReq;
47917ca54c3Smrg#define	sz_xkbGetIndicatorMapReq	12
48017ca54c3Smrg
48117ca54c3Smrgtypedef struct _xkbGetIndicatorMapReply {
48217ca54c3Smrg    CARD8	type;		/* always X_Reply */
48317ca54c3Smrg    CARD8	deviceID;
484ea1d6981Smrg    CARD16	sequenceNumber;
485ea1d6981Smrg    CARD32	length;
486ea1d6981Smrg    CARD32	which;
487ea1d6981Smrg    CARD32	realIndicators;
48817ca54c3Smrg    CARD8	nIndicators;
48917ca54c3Smrg    CARD8	pad1;
490ea1d6981Smrg    CARD16	pad2;
491ea1d6981Smrg    CARD32	pad3;
492ea1d6981Smrg    CARD32	pad4;
493ea1d6981Smrg    CARD32	pad5;
49417ca54c3Smrg} xkbGetIndicatorMapReply;
49517ca54c3Smrg#define	sz_xkbGetIndicatorMapReply	32
49617ca54c3Smrg
49717ca54c3Smrgtypedef struct _xkbIndicatorMapWireDesc {
49817ca54c3Smrg    CARD8	flags;
49917ca54c3Smrg    CARD8	whichGroups;
50017ca54c3Smrg    CARD8	groups;
50117ca54c3Smrg    CARD8	whichMods;
50217ca54c3Smrg    CARD8	mods;
50317ca54c3Smrg    CARD8	realMods;
504ea1d6981Smrg    CARD16	virtualMods;
505ea1d6981Smrg    CARD32	ctrls;
50617ca54c3Smrg} xkbIndicatorMapWireDesc;
50717ca54c3Smrg#define	sz_xkbIndicatorMapWireDesc	12
50817ca54c3Smrg
50917ca54c3Smrgtypedef struct _xkbSetIndicatorMap {
51017ca54c3Smrg    CARD8	reqType;
51117ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetIndicatorMap */
512ea1d6981Smrg    CARD16	length;
513ea1d6981Smrg    CARD16	deviceSpec;
514ea1d6981Smrg    CARD16	pad1;
515ea1d6981Smrg    CARD32	which;
51617ca54c3Smrg} xkbSetIndicatorMapReq;
51717ca54c3Smrg#define	sz_xkbSetIndicatorMapReq	12
51817ca54c3Smrg
51917ca54c3Smrgtypedef struct _xkbGetNamedIndicator {
52017ca54c3Smrg    CARD8	reqType;
52117ca54c3Smrg    CARD8	xkbReqType;	/* X_KBGetNamedIndicator */
522ea1d6981Smrg    CARD16	length;
523ea1d6981Smrg    CARD16	deviceSpec;
524ea1d6981Smrg    CARD16	ledClass;
525ea1d6981Smrg    CARD16	ledID;
526ea1d6981Smrg    CARD16	pad1;
527ea1d6981Smrg    Atom	indicator;
52817ca54c3Smrg} xkbGetNamedIndicatorReq;
52917ca54c3Smrg#define	sz_xkbGetNamedIndicatorReq		16
53017ca54c3Smrg
53117ca54c3Smrgtypedef	struct _xkbGetNamedIndicatorReply {
53217ca54c3Smrg    BYTE	type;
53317ca54c3Smrg    BYTE	deviceID;
534ea1d6981Smrg    CARD16	sequenceNumber;
535ea1d6981Smrg    CARD32	length;
536ea1d6981Smrg    Atom	indicator;
53717ca54c3Smrg    BOOL	found;
53817ca54c3Smrg    BOOL	on;
53917ca54c3Smrg    BOOL	realIndicator;
54017ca54c3Smrg    CARD8	ndx;
54117ca54c3Smrg    CARD8	flags;
54217ca54c3Smrg    CARD8	whichGroups;
54317ca54c3Smrg    CARD8	groups;
54417ca54c3Smrg    CARD8	whichMods;
54517ca54c3Smrg    CARD8	mods;
54617ca54c3Smrg    CARD8	realMods;
547ea1d6981Smrg    CARD16	virtualMods;
548ea1d6981Smrg    CARD32	ctrls;
54917ca54c3Smrg    BOOL	supported;
55017ca54c3Smrg    CARD8	pad1;
551ea1d6981Smrg    CARD16	pad2;
55217ca54c3Smrg} xkbGetNamedIndicatorReply;
55317ca54c3Smrg#define	sz_xkbGetNamedIndicatorReply	32
55417ca54c3Smrg
55517ca54c3Smrgtypedef struct _xkbSetNamedIndicator {
55617ca54c3Smrg    CARD8	reqType;
55717ca54c3Smrg    CARD8	xkbReqType;	/* X_KBSetNamedIndicator */
558ea1d6981Smrg    CARD16	length;
559ea1d6981Smrg    CARD16	deviceSpec;
560ea1d6981Smrg    CARD16	ledClass;
561ea1d6981Smrg    CARD16	ledID;
562ea1d6981Smrg    CARD16	pad1;
563ea1d6981Smrg    Atom	indicator;
56417ca54c3Smrg    BOOL	setState;
56517ca54c3Smrg    BOOL	on;
56617ca54c3Smrg    BOOL	setMap;
56717ca54c3Smrg    BOOL	createMap;
56817ca54c3Smrg    CARD8	pad2;
56917ca54c3Smrg    CARD8	flags;
57017ca54c3Smrg    CARD8	whichGroups;
57117ca54c3Smrg    CARD8	groups;
57217ca54c3Smrg    CARD8	whichMods;
57317ca54c3Smrg    CARD8	realMods;
574ea1d6981Smrg    CARD16	virtualMods;
575ea1d6981Smrg    CARD32	ctrls;
57617ca54c3Smrg} xkbSetNamedIndicatorReq;
57717ca54c3Smrg#define	sz_xkbSetNamedIndicatorReq	32
57817ca54c3Smrg
57917ca54c3Smrgtypedef struct _xkbGetNames {
58017ca54c3Smrg    CARD8	reqType;
58117ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetNames */
582ea1d6981Smrg    CARD16	length;
583ea1d6981Smrg    CARD16	deviceSpec;
584ea1d6981Smrg    CARD16	pad;
585ea1d6981Smrg    CARD32	which;
58617ca54c3Smrg} xkbGetNamesReq;
58717ca54c3Smrg#define	sz_xkbGetNamesReq		12
58817ca54c3Smrg
58917ca54c3Smrgtypedef	struct _xkbGetNamesReply {
59017ca54c3Smrg    BYTE	type;
59117ca54c3Smrg    BYTE	deviceID;
592ea1d6981Smrg    CARD16	sequenceNumber;
593ea1d6981Smrg    CARD32	length;
594ea1d6981Smrg    CARD32	which;
59517ca54c3Smrg    KeyCode	minKeyCode;
59617ca54c3Smrg    KeyCode	maxKeyCode;
59717ca54c3Smrg    CARD8	nTypes;
59817ca54c3Smrg    CARD8	groupNames;
599ea1d6981Smrg    CARD16	virtualMods;
60017ca54c3Smrg    KeyCode	firstKey;
60117ca54c3Smrg    CARD8	nKeys;
602ea1d6981Smrg    CARD32	indicators;
60317ca54c3Smrg    CARD8	nRadioGroups;
60417ca54c3Smrg    CARD8	nKeyAliases;
605ea1d6981Smrg    CARD16	nKTLevels;
606ea1d6981Smrg    CARD32	pad3;
60717ca54c3Smrg} xkbGetNamesReply;
60817ca54c3Smrg#define	sz_xkbGetNamesReply	32
60917ca54c3Smrg
61017ca54c3Smrgtypedef struct _xkbSetNames {
61117ca54c3Smrg    CARD8	reqType;
61217ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetNames */
613ea1d6981Smrg    CARD16	length;
614ea1d6981Smrg    CARD16	deviceSpec;
615ea1d6981Smrg    CARD16	virtualMods;
616ea1d6981Smrg    CARD32	which;
61717ca54c3Smrg    CARD8	firstType;
61817ca54c3Smrg    CARD8	nTypes;
61917ca54c3Smrg    CARD8	firstKTLevel;
62017ca54c3Smrg    CARD8	nKTLevels;
621ea1d6981Smrg    CARD32	indicators;
62217ca54c3Smrg    CARD8	groupNames;
62317ca54c3Smrg    CARD8	nRadioGroups;
62417ca54c3Smrg    KeyCode	firstKey;
62517ca54c3Smrg    CARD8	nKeys;
62617ca54c3Smrg    CARD8	nKeyAliases;
62717ca54c3Smrg    CARD8	pad1;
628ea1d6981Smrg    CARD16	totalKTLevelNames;
62917ca54c3Smrg} xkbSetNamesReq;
63017ca54c3Smrg#define	sz_xkbSetNamesReq	28
63117ca54c3Smrg
63217ca54c3Smrgtypedef struct _xkbPointWireDesc {
633ea1d6981Smrg    INT16	x;
634ea1d6981Smrg    INT16	y;
63517ca54c3Smrg} xkbPointWireDesc;
63617ca54c3Smrg#define	sz_xkbPointWireDesc	4
63717ca54c3Smrg
63817ca54c3Smrgtypedef struct _xkbOutlineWireDesc {
63917ca54c3Smrg    CARD8	nPoints;
64017ca54c3Smrg    CARD8	cornerRadius;
641ea1d6981Smrg    CARD16	pad;
64217ca54c3Smrg} xkbOutlineWireDesc;
64317ca54c3Smrg#define	sz_xkbOutlineWireDesc	4
64417ca54c3Smrg
64517ca54c3Smrgtypedef struct _xkbShapeWireDesc {
646ea1d6981Smrg    Atom	name;
64717ca54c3Smrg    CARD8	nOutlines;
64817ca54c3Smrg    CARD8	primaryNdx;
64917ca54c3Smrg    CARD8	approxNdx;
65017ca54c3Smrg    CARD8	pad;
65117ca54c3Smrg} xkbShapeWireDesc;
65217ca54c3Smrg#define	sz_xkbShapeWireDesc	8
65317ca54c3Smrg
65417ca54c3Smrgtypedef struct _xkbSectionWireDesc {
655ea1d6981Smrg    Atom	name;
656ea1d6981Smrg    INT16	top;
657ea1d6981Smrg    INT16	left;
658ea1d6981Smrg    CARD16	width;
659ea1d6981Smrg    CARD16	height;
660ea1d6981Smrg    INT16	angle;
66117ca54c3Smrg    CARD8	priority;
66217ca54c3Smrg    CARD8	nRows;
66317ca54c3Smrg    CARD8	nDoodads;
66417ca54c3Smrg    CARD8	nOverlays;
665ea1d6981Smrg    CARD16	pad;
66617ca54c3Smrg} xkbSectionWireDesc;
66717ca54c3Smrg#define	sz_xkbSectionWireDesc	20
66817ca54c3Smrg
66917ca54c3Smrgtypedef struct _xkbRowWireDesc {
670ea1d6981Smrg    INT16	top;
671ea1d6981Smrg    INT16	left;
67217ca54c3Smrg    CARD8	nKeys;
67317ca54c3Smrg    BOOL	vertical;
674ea1d6981Smrg    CARD16	pad;
67517ca54c3Smrg} xkbRowWireDesc;
67617ca54c3Smrg#define	sz_xkbRowWireDesc	8
67717ca54c3Smrg
67817ca54c3Smrgtypedef struct _xkbKeyWireDesc {
679d63b911fSmrg    CARD8	name[XkbKeyNameLength]	_X_NONSTRING;
680ea1d6981Smrg    INT16	gap;
68117ca54c3Smrg    CARD8	shapeNdx;
68217ca54c3Smrg    CARD8	colorNdx;
68317ca54c3Smrg} xkbKeyWireDesc;
68417ca54c3Smrg#define	sz_xkbKeyWireDesc	8
68517ca54c3Smrg
68617ca54c3Smrgtypedef struct _xkbOverlayWireDesc {
687ea1d6981Smrg    Atom	name;
68817ca54c3Smrg    CARD8	nRows;
68917ca54c3Smrg    CARD8	pad1;
690ea1d6981Smrg    CARD16	pad2;
69117ca54c3Smrg} xkbOverlayWireDesc;
69217ca54c3Smrg#define	sz_xkbOverlayWireDesc	8
69317ca54c3Smrg
69417ca54c3Smrgtypedef struct _xkbOverlayRowWireDesc {
69517ca54c3Smrg   CARD8	rowUnder;
69617ca54c3Smrg   CARD8	nKeys;
697ea1d6981Smrg   CARD16	pad1;
69817ca54c3Smrg} xkbOverlayRowWireDesc;
69917ca54c3Smrg#define	sz_xkbOverlayRowWireDesc	4
70017ca54c3Smrg
70117ca54c3Smrgtypedef struct _xkbOverlayKeyWireDesc {
702d63b911fSmrg   CARD8	over[XkbKeyNameLength]	_X_NONSTRING;
703d63b911fSmrg   CARD8	under[XkbKeyNameLength]	_X_NONSTRING;
70417ca54c3Smrg} xkbOverlayKeyWireDesc;
70517ca54c3Smrg#define	sz_xkbOverlayKeyWireDesc	8
70617ca54c3Smrg
70717ca54c3Smrgtypedef struct _xkbShapeDoodadWireDesc {
708ea1d6981Smrg    Atom	name;
70917ca54c3Smrg    CARD8	type;
71017ca54c3Smrg    CARD8	priority;
711ea1d6981Smrg    INT16	top;
712ea1d6981Smrg    INT16	left;
713ea1d6981Smrg    INT16	angle;
71417ca54c3Smrg    CARD8	colorNdx;
71517ca54c3Smrg    CARD8	shapeNdx;
716ea1d6981Smrg    CARD16	pad1;
717ea1d6981Smrg    CARD32	pad2;
71817ca54c3Smrg} xkbShapeDoodadWireDesc;
71917ca54c3Smrg#define	sz_xkbShapeDoodadWireDesc	20
72017ca54c3Smrg
72117ca54c3Smrgtypedef struct _xkbTextDoodadWireDesc {
722ea1d6981Smrg    Atom	name;
72317ca54c3Smrg    CARD8	type;
72417ca54c3Smrg    CARD8	priority;
725ea1d6981Smrg    INT16	top;
726ea1d6981Smrg    INT16	left;
727ea1d6981Smrg    INT16	angle;
728ea1d6981Smrg    CARD16	width;
729ea1d6981Smrg    CARD16	height;
73017ca54c3Smrg    CARD8	colorNdx;
73117ca54c3Smrg    CARD8	pad1;
732ea1d6981Smrg    CARD16	pad2;
73317ca54c3Smrg} xkbTextDoodadWireDesc;
73417ca54c3Smrg#define	sz_xkbTextDoodadWireDesc	20
73517ca54c3Smrg
73617ca54c3Smrgtypedef struct _xkbIndicatorDoodadWireDesc {
737ea1d6981Smrg    Atom	name;
73817ca54c3Smrg    CARD8	type;
73917ca54c3Smrg    CARD8	priority;
740ea1d6981Smrg    INT16	top;
741ea1d6981Smrg    INT16	left;
742ea1d6981Smrg    INT16	angle;
74317ca54c3Smrg    CARD8	shapeNdx;
74417ca54c3Smrg    CARD8	onColorNdx;
74517ca54c3Smrg    CARD8	offColorNdx;
74617ca54c3Smrg    CARD8	pad1;
747ea1d6981Smrg    CARD32	pad2;
74817ca54c3Smrg} xkbIndicatorDoodadWireDesc;
74917ca54c3Smrg#define	sz_xkbIndicatorDoodadWireDesc	20
75017ca54c3Smrg
75117ca54c3Smrgtypedef struct _xkbLogoDoodadWireDesc {
752ea1d6981Smrg    Atom	name;
75317ca54c3Smrg    CARD8	type;
75417ca54c3Smrg    CARD8	priority;
755ea1d6981Smrg    INT16	top;
756ea1d6981Smrg    INT16	left;
757ea1d6981Smrg    INT16	angle;
75817ca54c3Smrg    CARD8	colorNdx;
75917ca54c3Smrg    CARD8	shapeNdx;
760ea1d6981Smrg    CARD16	pad1;
761ea1d6981Smrg    CARD32	pad2;
76217ca54c3Smrg} xkbLogoDoodadWireDesc;
76317ca54c3Smrg#define	sz_xkbLogoDoodadWireDesc	20
76417ca54c3Smrg
76517ca54c3Smrgtypedef struct _xkbAnyDoodadWireDesc {
766ea1d6981Smrg    Atom	name;
76717ca54c3Smrg    CARD8	type;
76817ca54c3Smrg    CARD8	priority;
769ea1d6981Smrg    INT16	top;
770ea1d6981Smrg    INT16	left;
771ea1d6981Smrg    INT16	angle;
772ea1d6981Smrg    CARD32	pad2;
773ea1d6981Smrg    CARD32	pad3;
77417ca54c3Smrg} xkbAnyDoodadWireDesc;
77517ca54c3Smrg#define	sz_xkbAnyDoodadWireDesc	20
77617ca54c3Smrg
77717ca54c3Smrgtypedef union _xkbDoodadWireDesc {
77817ca54c3Smrg    xkbAnyDoodadWireDesc	any;
77917ca54c3Smrg    xkbShapeDoodadWireDesc	shape;
78017ca54c3Smrg    xkbTextDoodadWireDesc	text;
78117ca54c3Smrg    xkbIndicatorDoodadWireDesc	indicator;
78217ca54c3Smrg    xkbLogoDoodadWireDesc	logo;
78317ca54c3Smrg} xkbDoodadWireDesc;
78417ca54c3Smrg#define	sz_xkbDoodadWireDesc	20
78517ca54c3Smrg
78617ca54c3Smrgtypedef struct _xkbGetGeometry {
78717ca54c3Smrg    CARD8	reqType;
78817ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetGeometry */
789ea1d6981Smrg    CARD16	length;
790ea1d6981Smrg    CARD16	deviceSpec;
791ea1d6981Smrg    CARD16	pad;
792ea1d6981Smrg    Atom	name;
79317ca54c3Smrg} xkbGetGeometryReq;
79417ca54c3Smrg#define	sz_xkbGetGeometryReq	12
79517ca54c3Smrg
79617ca54c3Smrgtypedef struct _xkbGetGeometryReply {
79717ca54c3Smrg    CARD8	type;		/* always X_Reply */
79817ca54c3Smrg    CARD8	deviceID;
799ea1d6981Smrg    CARD16	sequenceNumber;
800ea1d6981Smrg    CARD32	length;
801ea1d6981Smrg    Atom	name;
80217ca54c3Smrg    BOOL	found;
80317ca54c3Smrg    CARD8	pad;
804ea1d6981Smrg    CARD16	widthMM;
805ea1d6981Smrg    CARD16	heightMM;
806ea1d6981Smrg    CARD16	nProperties;
807ea1d6981Smrg    CARD16	nColors;
808ea1d6981Smrg    CARD16	nShapes;
809ea1d6981Smrg    CARD16	nSections;
810ea1d6981Smrg    CARD16	nDoodads;
811ea1d6981Smrg    CARD16	nKeyAliases;
81217ca54c3Smrg    CARD8	baseColorNdx;
81317ca54c3Smrg    CARD8	labelColorNdx;
81417ca54c3Smrg} xkbGetGeometryReply;
81517ca54c3Smrg#define	sz_xkbGetGeometryReply	32
81617ca54c3Smrg
81717ca54c3Smrgtypedef struct _xkbSetGeometry {
81817ca54c3Smrg    CARD8	reqType;
81917ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetGeometry */
820ea1d6981Smrg    CARD16	length;
821ea1d6981Smrg    CARD16	deviceSpec;
82217ca54c3Smrg    CARD8	nShapes;
82317ca54c3Smrg    CARD8	nSections;
824ea1d6981Smrg    Atom	name;
825ea1d6981Smrg    CARD16	widthMM;
826ea1d6981Smrg    CARD16	heightMM;
827ea1d6981Smrg    CARD16	nProperties;
828ea1d6981Smrg    CARD16	nColors;
829ea1d6981Smrg    CARD16	nDoodads;
830ea1d6981Smrg    CARD16	nKeyAliases;
83117ca54c3Smrg    CARD8	baseColorNdx;
83217ca54c3Smrg    CARD8	labelColorNdx;
833ea1d6981Smrg    CARD16	pad;
83417ca54c3Smrg} xkbSetGeometryReq;
83517ca54c3Smrg#define	sz_xkbSetGeometryReq	28
83617ca54c3Smrg
83717ca54c3Smrgtypedef struct _xkbPerClientFlags {
83817ca54c3Smrg    CARD8	reqType;
83917ca54c3Smrg    CARD8	xkbReqType;/* always X_KBPerClientFlags */
840ea1d6981Smrg    CARD16	length;
841ea1d6981Smrg    CARD16	deviceSpec;
842ea1d6981Smrg    CARD16	pad1;
843ea1d6981Smrg    CARD32	change;
844ea1d6981Smrg    CARD32	value;
845ea1d6981Smrg    CARD32	ctrlsToChange;
846ea1d6981Smrg    CARD32	autoCtrls;
847ea1d6981Smrg    CARD32	autoCtrlValues;
84817ca54c3Smrg} xkbPerClientFlagsReq;
84917ca54c3Smrg#define	sz_xkbPerClientFlagsReq	28
85017ca54c3Smrg
85117ca54c3Smrgtypedef struct _xkbPerClientFlagsReply {
85217ca54c3Smrg    CARD8	type;		/* always X_Reply */
85317ca54c3Smrg    CARD8	deviceID;
854ea1d6981Smrg    CARD16	sequenceNumber;
855ea1d6981Smrg    CARD32	length;
856ea1d6981Smrg    CARD32	supported;
857ea1d6981Smrg    CARD32	value;
858ea1d6981Smrg    CARD32	autoCtrls;
859ea1d6981Smrg    CARD32	autoCtrlValues;
860ea1d6981Smrg    CARD32	pad1;
861ea1d6981Smrg    CARD32	pad2;
86217ca54c3Smrg} xkbPerClientFlagsReply;
86317ca54c3Smrg#define	sz_xkbPerClientFlagsReply	32
86417ca54c3Smrg
86517ca54c3Smrgtypedef struct _xkbListComponents {
86617ca54c3Smrg    CARD8	reqType;
86717ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBListComponents */
868ea1d6981Smrg    CARD16	length;
869ea1d6981Smrg    CARD16	deviceSpec;
870ea1d6981Smrg    CARD16	maxNames;
87117ca54c3Smrg} xkbListComponentsReq;
87217ca54c3Smrg#define	sz_xkbListComponentsReq	8
87317ca54c3Smrg
87417ca54c3Smrgtypedef struct _xkbListComponentsReply {
87517ca54c3Smrg    CARD8	type;		/* always X_Reply */
87617ca54c3Smrg    CARD8	deviceID;
877ea1d6981Smrg    CARD16	sequenceNumber;
878ea1d6981Smrg    CARD32	length;
879ea1d6981Smrg    CARD16	nKeymaps;
880ea1d6981Smrg    CARD16	nKeycodes;
881ea1d6981Smrg    CARD16	nTypes;
882ea1d6981Smrg    CARD16	nCompatMaps;
883ea1d6981Smrg    CARD16	nSymbols;
884ea1d6981Smrg    CARD16	nGeometries;
885ea1d6981Smrg    CARD16	extra;
886ea1d6981Smrg    CARD16	pad1;
887ea1d6981Smrg    CARD32	pad2;
888ea1d6981Smrg    CARD32	pad3;
88917ca54c3Smrg} xkbListComponentsReply;
89017ca54c3Smrg#define	sz_xkbListComponentsReply	32
89117ca54c3Smrg
89217ca54c3Smrgtypedef struct _xkbGetKbdByName {
89317ca54c3Smrg    CARD8	reqType;
89417ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetKbdByName */
895ea1d6981Smrg    CARD16	length;
896ea1d6981Smrg    CARD16	deviceSpec;
897ea1d6981Smrg    CARD16	need;		/* combination of XkbGBN_* */
898ea1d6981Smrg    CARD16	want;		/* combination of XkbGBN_* */
89917ca54c3Smrg    BOOL	load;
90017ca54c3Smrg    CARD8	pad;
90117ca54c3Smrg} xkbGetKbdByNameReq;
90217ca54c3Smrg#define	sz_xkbGetKbdByNameReq	12
90317ca54c3Smrg
90417ca54c3Smrgtypedef struct _xkbGetKbdByNameReply {
90517ca54c3Smrg    CARD8	type;		/* always X_Reply */
90617ca54c3Smrg    CARD8	deviceID;
907ea1d6981Smrg    CARD16	sequenceNumber;
908ea1d6981Smrg    CARD32	length;
90917ca54c3Smrg    KeyCode	minKeyCode;
91017ca54c3Smrg    KeyCode	maxKeyCode;
91117ca54c3Smrg    BOOL	loaded;
91217ca54c3Smrg    BOOL	newKeyboard;
913ea1d6981Smrg    CARD16	found;		/* combination of XkbGBN_* */
914ea1d6981Smrg    CARD16	reported;	/* combination of XkbAllComponents */
915ea1d6981Smrg    CARD32	pad1;
916ea1d6981Smrg    CARD32	pad2;
917ea1d6981Smrg    CARD32	pad3;
918ea1d6981Smrg    CARD32	pad4;
91917ca54c3Smrg} xkbGetKbdByNameReply;
92017ca54c3Smrg#define	sz_xkbGetKbdByNameReply	32
92117ca54c3Smrg
92217ca54c3Smrgtypedef	struct _xkbDeviceLedsWireDesc {
923ea1d6981Smrg    CARD16	ledClass;
924ea1d6981Smrg    CARD16	ledID;
925ea1d6981Smrg    CARD32	namesPresent;
926ea1d6981Smrg    CARD32	mapsPresent;
927ea1d6981Smrg    CARD32	physIndicators;
928ea1d6981Smrg    CARD32	state;
92917ca54c3Smrg} xkbDeviceLedsWireDesc;
93017ca54c3Smrg#define sz_xkbDeviceLedsWireDesc	20
93117ca54c3Smrg
93217ca54c3Smrgtypedef struct _xkbGetDeviceInfo {
93317ca54c3Smrg    CARD8	reqType;
93417ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBGetDeviceInfo */
935ea1d6981Smrg    CARD16	length;
936ea1d6981Smrg    CARD16	deviceSpec;
937ea1d6981Smrg    CARD16	wanted;
93817ca54c3Smrg    BOOL	allBtns;
93917ca54c3Smrg    CARD8	firstBtn;
94017ca54c3Smrg    CARD8	nBtns;
94117ca54c3Smrg    CARD8	pad;
942ea1d6981Smrg    CARD16	ledClass;
943ea1d6981Smrg    CARD16	ledID;
94417ca54c3Smrg} xkbGetDeviceInfoReq;
94517ca54c3Smrg#define	sz_xkbGetDeviceInfoReq	16
94617ca54c3Smrg
94717ca54c3Smrgtypedef struct _xkbGetDeviceInfoReply {
94817ca54c3Smrg    CARD8	type;		/* always X_Reply */
94917ca54c3Smrg    CARD8	deviceID;
950ea1d6981Smrg    CARD16	sequenceNumber;
951ea1d6981Smrg    CARD32	length;
952ea1d6981Smrg    CARD16	present;
953ea1d6981Smrg    CARD16	supported;
954ea1d6981Smrg    CARD16	unsupported;
955ea1d6981Smrg    CARD16	nDeviceLedFBs;
95617ca54c3Smrg    CARD8	firstBtnWanted;
95717ca54c3Smrg    CARD8	nBtnsWanted;
95817ca54c3Smrg    CARD8	firstBtnRtrn;
95917ca54c3Smrg    CARD8	nBtnsRtrn;
96017ca54c3Smrg    CARD8	totalBtns;
96117ca54c3Smrg    BOOL	hasOwnState;
962ea1d6981Smrg    CARD16	dfltKbdFB;
963ea1d6981Smrg    CARD16	dfltLedFB;
964ea1d6981Smrg    CARD16	pad;
965ea1d6981Smrg    Atom	devType;
96617ca54c3Smrg} xkbGetDeviceInfoReply;
96717ca54c3Smrg#define	sz_xkbGetDeviceInfoReply	32
96817ca54c3Smrg
96917ca54c3Smrgtypedef struct _xkbSetDeviceInfo {
97017ca54c3Smrg    CARD8	reqType;
97117ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetDeviceInfo */
972ea1d6981Smrg    CARD16	length;
973ea1d6981Smrg    CARD16	deviceSpec;
97417ca54c3Smrg    CARD8	firstBtn;
97517ca54c3Smrg    CARD8	nBtns;
976ea1d6981Smrg    CARD16	change;
977ea1d6981Smrg    CARD16	nDeviceLedFBs;
97817ca54c3Smrg} xkbSetDeviceInfoReq;
97917ca54c3Smrg#define	sz_xkbSetDeviceInfoReq	12
98017ca54c3Smrg
98117ca54c3Smrgtypedef struct _xkbSetDebuggingFlags {
98217ca54c3Smrg    CARD8	reqType;
98317ca54c3Smrg    CARD8	xkbReqType;	/* always X_KBSetDebuggingFlags */
984ea1d6981Smrg    CARD16	length;
985ea1d6981Smrg    CARD16	msgLength;
986ea1d6981Smrg    CARD16	pad;
987ea1d6981Smrg    CARD32	affectFlags;
988ea1d6981Smrg    CARD32	flags;
989ea1d6981Smrg    CARD32	affectCtrls;
990ea1d6981Smrg    CARD32	ctrls;
99117ca54c3Smrg} xkbSetDebuggingFlagsReq;
99217ca54c3Smrg#define	sz_xkbSetDebuggingFlagsReq	24
99317ca54c3Smrg
99417ca54c3Smrgtypedef struct _xkbSetDebuggingFlagsReply {
99517ca54c3Smrg    BYTE	type;		/* X_Reply */
99617ca54c3Smrg    CARD8	pad0;
997ea1d6981Smrg    CARD16	sequenceNumber;
998ea1d6981Smrg    CARD32	length;
999ea1d6981Smrg    CARD32	currentFlags;
1000ea1d6981Smrg    CARD32	currentCtrls;
1001ea1d6981Smrg    CARD32	supportedFlags;
1002ea1d6981Smrg    CARD32	supportedCtrls;
1003ea1d6981Smrg    CARD32	pad1;
1004ea1d6981Smrg    CARD32	pad2;
100517ca54c3Smrg} xkbSetDebuggingFlagsReply;
100617ca54c3Smrg#define	sz_xkbSetDebuggingFlagsReply	32
100717ca54c3Smrg
100817ca54c3Smrg	/*
100917ca54c3Smrg	 * X KEYBOARD EXTENSION EVENT STRUCTURES
101017ca54c3Smrg	 */
101117ca54c3Smrg
101217ca54c3Smrgtypedef struct _xkbAnyEvent {
101317ca54c3Smrg    BYTE	type;
101417ca54c3Smrg    BYTE	xkbType;
1015ea1d6981Smrg    CARD16	sequenceNumber;
1016ea1d6981Smrg    Time	time;
101717ca54c3Smrg    CARD8	deviceID;
101817ca54c3Smrg    CARD8	pad1;
1019ea1d6981Smrg    CARD16	pad2;
1020ea1d6981Smrg    CARD32	pad3;
1021ea1d6981Smrg    CARD32	pad4;
1022ea1d6981Smrg    CARD32	pad5;
1023ea1d6981Smrg    CARD32	pad6;
1024ea1d6981Smrg    CARD32	pad7;
102517ca54c3Smrg} xkbAnyEvent;
102617ca54c3Smrg#define	sz_xkbAnyEvent 32
102717ca54c3Smrg
102817ca54c3Smrgtypedef	struct _xkbNewKeyboardNotify {
102917ca54c3Smrg    BYTE	type;
103017ca54c3Smrg    BYTE	xkbType;
1031ea1d6981Smrg    CARD16	sequenceNumber;
1032ea1d6981Smrg    Time	time;
103317ca54c3Smrg    CARD8	deviceID;
103417ca54c3Smrg    CARD8	oldDeviceID;
103517ca54c3Smrg    KeyCode	minKeyCode;
103617ca54c3Smrg    KeyCode	maxKeyCode;
103717ca54c3Smrg    KeyCode	oldMinKeyCode;
103817ca54c3Smrg    KeyCode	oldMaxKeyCode;
103917ca54c3Smrg    CARD8	requestMajor;
104017ca54c3Smrg    CARD8	requestMinor;
1041ea1d6981Smrg    CARD16	changed;
104217ca54c3Smrg    CARD8	detail;
104317ca54c3Smrg    CARD8	pad1;
1044ea1d6981Smrg    CARD32	pad2;
1045ea1d6981Smrg    CARD32	pad3;
1046ea1d6981Smrg    CARD32	pad4;
104717ca54c3Smrg} xkbNewKeyboardNotify;
104817ca54c3Smrg#define	sz_xkbNewKeyboardNotify	32
104917ca54c3Smrg
105017ca54c3Smrgtypedef	struct _xkbMapNotify {
105117ca54c3Smrg    BYTE	type;
105217ca54c3Smrg    BYTE	xkbType;
1053ea1d6981Smrg    CARD16	sequenceNumber;
1054ea1d6981Smrg    Time	time;
105517ca54c3Smrg    CARD8	deviceID;
105617ca54c3Smrg    CARD8	ptrBtnActions;
1057ea1d6981Smrg    CARD16	changed;
105817ca54c3Smrg    KeyCode	minKeyCode;
105917ca54c3Smrg    KeyCode	maxKeyCode;
106017ca54c3Smrg    CARD8	firstType;
106117ca54c3Smrg    CARD8	nTypes;
106217ca54c3Smrg    KeyCode	firstKeySym;
106317ca54c3Smrg    CARD8	nKeySyms;
106417ca54c3Smrg    KeyCode	firstKeyAct;
106517ca54c3Smrg    CARD8	nKeyActs;
106617ca54c3Smrg    KeyCode	firstKeyBehavior;
106717ca54c3Smrg    CARD8	nKeyBehaviors;
106817ca54c3Smrg    KeyCode	firstKeyExplicit;
106917ca54c3Smrg    CARD8	nKeyExplicit;
107017ca54c3Smrg    KeyCode	firstModMapKey;
107117ca54c3Smrg    CARD8	nModMapKeys;
107217ca54c3Smrg    KeyCode	firstVModMapKey;
107317ca54c3Smrg    CARD8	nVModMapKeys;
1074ea1d6981Smrg    CARD16	virtualMods;
1075ea1d6981Smrg    CARD16	pad1;
107617ca54c3Smrg} xkbMapNotify;
107717ca54c3Smrg#define	sz_xkbMapNotify	32
107817ca54c3Smrg
107917ca54c3Smrgtypedef	struct _xkbStateNotify {
108017ca54c3Smrg    BYTE	type;
108117ca54c3Smrg    BYTE	xkbType;
1082ea1d6981Smrg    CARD16	sequenceNumber;
1083ea1d6981Smrg    Time	time;
108417ca54c3Smrg    CARD8	deviceID;
108517ca54c3Smrg    CARD8	mods;
108617ca54c3Smrg    CARD8	baseMods;
108717ca54c3Smrg    CARD8	latchedMods;
108817ca54c3Smrg    CARD8	lockedMods;
108917ca54c3Smrg    CARD8	group;
1090ea1d6981Smrg    INT16	baseGroup;
1091ea1d6981Smrg    INT16	latchedGroup;
109217ca54c3Smrg    CARD8	lockedGroup;
109317ca54c3Smrg    CARD8	compatState;
109417ca54c3Smrg    CARD8	grabMods;
109517ca54c3Smrg    CARD8	compatGrabMods;
109617ca54c3Smrg    CARD8	lookupMods;
109717ca54c3Smrg    CARD8	compatLookupMods;
1098ea1d6981Smrg    CARD16	ptrBtnState;
1099ea1d6981Smrg    CARD16	changed;
110017ca54c3Smrg    KeyCode	keycode;
110117ca54c3Smrg    CARD8	eventType;
110217ca54c3Smrg    CARD8	requestMajor;
110317ca54c3Smrg    CARD8	requestMinor;
110417ca54c3Smrg} xkbStateNotify;
110517ca54c3Smrg#define	sz_xkbStateNotify	32
110617ca54c3Smrg
110717ca54c3Smrgtypedef struct _xkbControlsNotify {
110817ca54c3Smrg    BYTE	type;
110917ca54c3Smrg    BYTE	xkbType;
1110ea1d6981Smrg    CARD16	sequenceNumber;
1111ea1d6981Smrg    Time	time;
111217ca54c3Smrg    CARD8	deviceID;
111317ca54c3Smrg    CARD8	numGroups;
1114ea1d6981Smrg    CARD16	pad1;
1115ea1d6981Smrg    CARD32	changedControls;
1116ea1d6981Smrg    CARD32	enabledControls;
1117ea1d6981Smrg    CARD32	enabledControlChanges;
111817ca54c3Smrg    KeyCode	keycode;
111917ca54c3Smrg    CARD8	eventType;
112017ca54c3Smrg    CARD8	requestMajor;
112117ca54c3Smrg    CARD8	requestMinor;
1122ea1d6981Smrg    CARD32	pad2;
112317ca54c3Smrg} xkbControlsNotify;
112417ca54c3Smrg#define	sz_xkbControlsNotify	32
112517ca54c3Smrg
112617ca54c3Smrgtypedef struct _xkbIndicatorNotify {
112717ca54c3Smrg    BYTE	type;
112817ca54c3Smrg    BYTE	xkbType;
1129ea1d6981Smrg    CARD16	sequenceNumber;
1130ea1d6981Smrg    Time	time;
113117ca54c3Smrg    CARD8	deviceID;
113217ca54c3Smrg    CARD8	pad1;
1133ea1d6981Smrg    CARD16	pad2;
1134ea1d6981Smrg    CARD32	state;
1135ea1d6981Smrg    CARD32	changed;
1136ea1d6981Smrg    CARD32	pad3;
1137ea1d6981Smrg    CARD32	pad4;
1138ea1d6981Smrg    CARD32	pad5;
113917ca54c3Smrg} xkbIndicatorNotify;
114017ca54c3Smrg#define	sz_xkbIndicatorNotify	32
114117ca54c3Smrg
114217ca54c3Smrgtypedef struct _xkbNamesNotify {
114317ca54c3Smrg    BYTE	type;
114417ca54c3Smrg    BYTE	xkbType;
1145ea1d6981Smrg    CARD16	sequenceNumber;
1146ea1d6981Smrg    Time	time;
114717ca54c3Smrg    CARD8	deviceID;
114817ca54c3Smrg    CARD8	pad1;
1149ea1d6981Smrg    CARD16	changed;
115017ca54c3Smrg    CARD8	firstType;
115117ca54c3Smrg    CARD8	nTypes;
115217ca54c3Smrg    CARD8	firstLevelName;
115317ca54c3Smrg    CARD8	nLevelNames;
115417ca54c3Smrg    CARD8	pad2;
115517ca54c3Smrg    CARD8	nRadioGroups;
115617ca54c3Smrg    CARD8	nAliases;
115717ca54c3Smrg    CARD8	changedGroupNames;
1158ea1d6981Smrg    CARD16	changedVirtualMods;
115917ca54c3Smrg    CARD8	firstKey;
116017ca54c3Smrg    CARD8	nKeys;
1161ea1d6981Smrg    CARD32	changedIndicators;
1162ea1d6981Smrg    CARD32	pad3;
116317ca54c3Smrg} xkbNamesNotify;
116417ca54c3Smrg#define	sz_xkbNamesNotify	32
116517ca54c3Smrg
116617ca54c3Smrgtypedef struct _xkbCompatMapNotify {
116717ca54c3Smrg    BYTE	type;
116817ca54c3Smrg    BYTE	xkbType;
1169ea1d6981Smrg    CARD16	sequenceNumber;
1170ea1d6981Smrg    Time	time;
117117ca54c3Smrg    CARD8	deviceID;
117217ca54c3Smrg    CARD8	changedGroups;
1173ea1d6981Smrg    CARD16	firstSI;
1174ea1d6981Smrg    CARD16	nSI;
1175ea1d6981Smrg    CARD16	nTotalSI;
1176ea1d6981Smrg    CARD32	pad1;
1177ea1d6981Smrg    CARD32	pad2;
1178ea1d6981Smrg    CARD32	pad3;
1179ea1d6981Smrg    CARD32	pad4;
118017ca54c3Smrg} xkbCompatMapNotify;
118117ca54c3Smrg#define sz_xkbCompatMapNotify	32
118217ca54c3Smrg
118317ca54c3Smrgtypedef struct _xkbBellNotify {
118417ca54c3Smrg    BYTE	type;
118517ca54c3Smrg    BYTE	xkbType;
1186ea1d6981Smrg    CARD16	sequenceNumber;
1187ea1d6981Smrg    Time	time;
118817ca54c3Smrg    CARD8	deviceID;
118917ca54c3Smrg    CARD8	bellClass;
119017ca54c3Smrg    CARD8	bellID;
119117ca54c3Smrg    CARD8	percent;
1192ea1d6981Smrg    CARD16	pitch;
1193ea1d6981Smrg    CARD16	duration;
1194ea1d6981Smrg    Atom	name;
1195ea1d6981Smrg    Window	window;
119617ca54c3Smrg    BOOL	eventOnly;
119717ca54c3Smrg    CARD8	pad1;
1198ea1d6981Smrg    CARD16	pad2;
1199ea1d6981Smrg    CARD32	pad3;
120017ca54c3Smrg} xkbBellNotify;
120117ca54c3Smrg#define	sz_xkbBellNotify	32
120217ca54c3Smrg
120317ca54c3Smrgtypedef struct _xkbActionMessage {
120417ca54c3Smrg    BYTE	type;
120517ca54c3Smrg    BYTE	xkbType;
1206ea1d6981Smrg    CARD16	sequenceNumber;
1207ea1d6981Smrg    Time	time;
120817ca54c3Smrg    CARD8	deviceID;
120917ca54c3Smrg    KeyCode	keycode;
121017ca54c3Smrg    BOOL	press;
121117ca54c3Smrg    BOOL	keyEventFollows;
121217ca54c3Smrg    CARD8	mods;
121317ca54c3Smrg    CARD8	group;
121417ca54c3Smrg    CARD8	message[8];
1215ea1d6981Smrg    CARD16	pad1;
1216ea1d6981Smrg    CARD32	pad2;
1217ea1d6981Smrg    CARD32	pad3;
121817ca54c3Smrg} xkbActionMessage;
121917ca54c3Smrg#define	sz_xkbActionMessage		32
122017ca54c3Smrg
122117ca54c3Smrgtypedef struct _xkbAccessXNotify {
122217ca54c3Smrg    BYTE	type;
122317ca54c3Smrg    BYTE	xkbType;
1224ea1d6981Smrg    CARD16	sequenceNumber;
1225ea1d6981Smrg    Time	time;
122617ca54c3Smrg    CARD8	deviceID;
122717ca54c3Smrg    KeyCode	keycode;
1228ea1d6981Smrg    CARD16	detail;
1229ea1d6981Smrg    CARD16	slowKeysDelay;
1230ea1d6981Smrg    CARD16	debounceDelay;
1231ea1d6981Smrg    CARD32	pad1;
1232ea1d6981Smrg    CARD32	pad2;
1233ea1d6981Smrg    CARD32	pad3;
1234ea1d6981Smrg    CARD32	pad4;
123517ca54c3Smrg} xkbAccessXNotify;
123617ca54c3Smrg#define	sz_xkbAccessXNotify	32
123717ca54c3Smrg
123817ca54c3Smrgtypedef struct _xkbExtensionDeviceNotify {
123917ca54c3Smrg    BYTE	type;
124017ca54c3Smrg    BYTE	xkbType;
1241ea1d6981Smrg    CARD16	sequenceNumber;
1242ea1d6981Smrg    Time	time;
124317ca54c3Smrg    CARD8	deviceID;
124417ca54c3Smrg    CARD8	pad1;
1245ea1d6981Smrg    CARD16	reason;
1246ea1d6981Smrg    CARD16	ledClass;
1247ea1d6981Smrg    CARD16	ledID;
1248ea1d6981Smrg    CARD32	ledsDefined;
1249ea1d6981Smrg    CARD32	ledState;
125017ca54c3Smrg    CARD8	firstBtn;
125117ca54c3Smrg    CARD8	nBtns;
1252ea1d6981Smrg    CARD16	supported;
1253ea1d6981Smrg    CARD16	unsupported;
1254ea1d6981Smrg    CARD16	pad3;
125517ca54c3Smrg} xkbExtensionDeviceNotify;
125617ca54c3Smrg#define	sz_xkbExtensionDeviceNotify		32
125717ca54c3Smrg
125817ca54c3Smrgtypedef struct _xkbEvent {
125917ca54c3Smrg    union {
126017ca54c3Smrg	xkbAnyEvent		any;
126117ca54c3Smrg	xkbNewKeyboardNotify	new_kbd;
126217ca54c3Smrg	xkbMapNotify		map;
126317ca54c3Smrg	xkbStateNotify		state;
126417ca54c3Smrg	xkbControlsNotify	ctrls;
126517ca54c3Smrg	xkbIndicatorNotify	indicators;
126617ca54c3Smrg	xkbNamesNotify		names;
126717ca54c3Smrg	xkbCompatMapNotify	compat;
126817ca54c3Smrg	xkbBellNotify		bell;
126917ca54c3Smrg	xkbActionMessage	message;
127017ca54c3Smrg	xkbAccessXNotify	accessx;
127117ca54c3Smrg	xkbExtensionDeviceNotify device;
127217ca54c3Smrg    } u;
127317ca54c3Smrg} xkbEvent;
127417ca54c3Smrg#define sz_xkbEvent	32
127517ca54c3Smrg
127617ca54c3Smrg#undef Window
127717ca54c3Smrg#undef Atom
127817ca54c3Smrg#undef Time
127917ca54c3Smrg#undef KeyCode
128017ca54c3Smrg#undef KeySym
128117ca54c3Smrg
128217ca54c3Smrg#endif /* _XKBPROTO_H_ */
1283