105b261ecSmrg/************************************************************
205b261ecSmrgCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
305b261ecSmrg
405b261ecSmrgPermission to use, copy, modify, and distribute this
505b261ecSmrgsoftware and its documentation for any purpose and without
605b261ecSmrgfee is hereby granted, provided that the above copyright
705b261ecSmrgnotice appear in all copies and that both that copyright
805b261ecSmrgnotice and this permission notice appear in supporting
935c4bbdfSmrgdocumentation, and that the name of Silicon Graphics not be
1035c4bbdfSmrgused in advertising or publicity pertaining to distribution
1105b261ecSmrgof the software without specific prior written permission.
1235c4bbdfSmrgSilicon Graphics makes no representation about the suitability
1305b261ecSmrgof this software for any purpose. It is provided "as is"
1405b261ecSmrgwithout any express or implied warranty.
1505b261ecSmrg
1635c4bbdfSmrgSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
1735c4bbdfSmrgSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1805b261ecSmrgAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
1935c4bbdfSmrgGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
2035c4bbdfSmrgDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
2135c4bbdfSmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
2205b261ecSmrgOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
2305b261ecSmrgTHE USE OR PERFORMANCE OF THIS SOFTWARE.
2405b261ecSmrg
2505b261ecSmrg********************************************************/
2605b261ecSmrg
2705b261ecSmrg#ifndef _XKBSRV_H_
2805b261ecSmrg#define	_XKBSRV_H_
2905b261ecSmrg
3005b261ecSmrg#define XkbAllocClientMap		SrvXkbAllocClientMap
3105b261ecSmrg#define XkbAllocServerMap		SrvXkbAllocServerMap
3205b261ecSmrg#define XkbChangeTypesOfKey		SrvXkbChangeTypesOfKey
3305b261ecSmrg#define XkbCopyKeyTypes			SrvXkbCopyKeyTypes
3405b261ecSmrg#define XkbFreeClientMap		SrvXkbFreeClientMap
3505b261ecSmrg#define XkbFreeServerMap		SrvXkbFreeServerMap
3605b261ecSmrg#define	XkbKeyTypesForCoreSymbols	SrvXkbKeyTypesForCoreSymbols
3705b261ecSmrg#define	XkbApplyCompatMapToKey		SrvXkbApplyCompatMapToKey
3805b261ecSmrg#define XkbResizeKeyActions		SrvXkbResizeKeyActions
3905b261ecSmrg#define XkbResizeKeySyms		SrvXkbResizeKeySyms
4005b261ecSmrg#define XkbResizeKeyType		SrvXkbResizeKeyType
4105b261ecSmrg#define XkbAllocCompatMap		SrvXkbAllocCompatMap
4205b261ecSmrg#define XkbAllocControls		SrvXkbAllocControls
4305b261ecSmrg#define XkbAllocIndicatorMaps		SrvXkbAllocIndicatorMaps
4405b261ecSmrg#define XkbAllocKeyboard		SrvXkbAllocKeyboard
4505b261ecSmrg#define XkbAllocNames			SrvXkbAllocNames
4605b261ecSmrg#define XkbFreeCompatMap		SrvXkbFreeCompatMap
4705b261ecSmrg#define XkbFreeKeyboard			SrvXkbFreeKeyboard
4805b261ecSmrg#define XkbFreeNames			SrvXkbFreeNames
4905b261ecSmrg#define XkbLatchModifiers		SrvXkbLatchModifiers
5005b261ecSmrg#define XkbLatchGroup			SrvXkbLatchGroup
5105b261ecSmrg#define XkbVirtualModsToReal		SrvXkbVirtualModsToReal
5205b261ecSmrg#define	XkbChangeKeycodeRange		SrvXkbChangeKeycodeRange
5305b261ecSmrg#define	XkbApplyVirtualModChanges	SrvXkbApplyVirtualModChanges
5405b261ecSmrg
5505b261ecSmrg#include <X11/extensions/XKBproto.h>
564642e01fSmrg#include "xkbstr.h"
576747b715Smrg#include "xkbrules.h"
5805b261ecSmrg#include "inputstr.h"
596747b715Smrg#include "events.h"
6005b261ecSmrg
6105b261ecSmrgtypedef struct _XkbInterest {
6235c4bbdfSmrg    DeviceIntPtr dev;
6335c4bbdfSmrg    ClientPtr client;
6435c4bbdfSmrg    XID resource;
6535c4bbdfSmrg    struct _XkbInterest *next;
6635c4bbdfSmrg    CARD16 extDevNotifyMask;
6735c4bbdfSmrg    CARD16 stateNotifyMask;
6835c4bbdfSmrg    CARD16 namesNotifyMask;
6935c4bbdfSmrg    CARD32 ctrlsNotifyMask;
7035c4bbdfSmrg    CARD8 compatNotifyMask;
7135c4bbdfSmrg    BOOL bellNotifyMask;
7235c4bbdfSmrg    BOOL actionMessageMask;
7335c4bbdfSmrg    CARD16 accessXNotifyMask;
7435c4bbdfSmrg    CARD32 iStateNotifyMask;
7535c4bbdfSmrg    CARD32 iMapNotifyMask;
7635c4bbdfSmrg    CARD16 altSymsNotifyMask;
7735c4bbdfSmrg    CARD32 autoCtrls;
7835c4bbdfSmrg    CARD32 autoCtrlValues;
7935c4bbdfSmrg} XkbInterestRec, *XkbInterestPtr;
8005b261ecSmrg
8105b261ecSmrgtypedef struct _XkbRadioGroup {
8235c4bbdfSmrg    CARD8 flags;
8335c4bbdfSmrg    CARD8 nMembers;
8435c4bbdfSmrg    CARD8 dfltDown;
8535c4bbdfSmrg    CARD8 currentDown;
8635c4bbdfSmrg    CARD8 members[XkbRGMaxMembers];
8705b261ecSmrg} XkbRadioGroupRec, *XkbRadioGroupPtr;
8805b261ecSmrg
8935c4bbdfSmrgtypedef struct _XkbEventCause {
9035c4bbdfSmrg    CARD8 kc;
9135c4bbdfSmrg    CARD8 event;
9235c4bbdfSmrg    CARD8 mjr;
9335c4bbdfSmrg    CARD8 mnr;
9435c4bbdfSmrg    ClientPtr client;
9535c4bbdfSmrg} XkbEventCauseRec, *XkbEventCausePtr;
9635c4bbdfSmrg
9705b261ecSmrg#define	XkbSetCauseKey(c,k,e)	{ (c)->kc= (k),(c)->event= (e),\
9805b261ecSmrg				  (c)->mjr= (c)->mnr= 0; \
9905b261ecSmrg				  (c)->client= NULL; }
10005b261ecSmrg#define	XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
10105b261ecSmrg				  (c)->mjr= (j),(c)->mnr= (n);\
10205b261ecSmrg				  (c)->client= (cl); }
10305b261ecSmrg#define	XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
10405b261ecSmrg#define	XkbSetCauseXkbReq(c,e,cl)  XkbSetCauseReq(c,XkbReqCode,e,cl)
10505b261ecSmrg#define	XkbSetCauseUnknown(c)	   XkbSetCauseKey(c,0,0)
10605b261ecSmrg
10705b261ecSmrg#define	_OFF_TIMER		0
10805b261ecSmrg#define	_KRG_WARN_TIMER		1
10905b261ecSmrg#define	_KRG_TIMER		2
11005b261ecSmrg#define	_SK_TIMEOUT_TIMER	3
11105b261ecSmrg#define	_ALL_TIMEOUT_TIMER	4
11205b261ecSmrg
11305b261ecSmrg#define	_BEEP_NONE		0
11405b261ecSmrg#define	_BEEP_FEATURE_ON	1
11505b261ecSmrg#define	_BEEP_FEATURE_OFF	2
11605b261ecSmrg#define	_BEEP_FEATURE_CHANGE	3
11705b261ecSmrg#define	_BEEP_SLOW_WARN		4
11805b261ecSmrg#define	_BEEP_SLOW_PRESS	5
11905b261ecSmrg#define	_BEEP_SLOW_ACCEPT	6
12005b261ecSmrg#define	_BEEP_SLOW_REJECT	7
12105b261ecSmrg#define	_BEEP_SLOW_RELEASE	8
12205b261ecSmrg#define	_BEEP_STICKY_LATCH	9
12305b261ecSmrg#define	_BEEP_STICKY_LOCK	10
12405b261ecSmrg#define	_BEEP_STICKY_UNLOCK	11
12505b261ecSmrg#define	_BEEP_LED_ON		12
12605b261ecSmrg#define	_BEEP_LED_OFF		13
12705b261ecSmrg#define	_BEEP_LED_CHANGE	14
12805b261ecSmrg#define	_BEEP_BOUNCE_REJECT	15
12905b261ecSmrg
13005b261ecSmrgtypedef struct _XkbFilter {
13135c4bbdfSmrg    CARD16 keycode;
13235c4bbdfSmrg    CARD8 what;
13335c4bbdfSmrg    CARD8 active;
13435c4bbdfSmrg    CARD8 filterOthers;
13535c4bbdfSmrg    CARD32 priv;
13635c4bbdfSmrg    XkbAction upAction;
13735c4bbdfSmrg    int (*filter) (struct _XkbSrvInfo * /* xkbi */ ,
13835c4bbdfSmrg                   struct _XkbFilter * /* filter */ ,
13935c4bbdfSmrg                   unsigned /* keycode */ ,
14035c4bbdfSmrg                   XkbAction *  /* action */
14135c4bbdfSmrg        );
14235c4bbdfSmrg    struct _XkbFilter *next;
14335c4bbdfSmrg} XkbFilterRec, *XkbFilterPtr;
14405b261ecSmrg
1451b5d61b8Smrgtypedef Bool (*XkbSrvCheckRepeatPtr) (DeviceIntPtr dev,
1461b5d61b8Smrg                                      struct _XkbSrvInfo * /* xkbi */ ,
1471b5d61b8Smrg                                      unsigned /* keycode */);
1481b5d61b8Smrg
14905b261ecSmrgtypedef struct _XkbSrvInfo {
15035c4bbdfSmrg    XkbStateRec prev_state;
15135c4bbdfSmrg    XkbStateRec state;
15235c4bbdfSmrg    XkbDescPtr desc;
15335c4bbdfSmrg
15435c4bbdfSmrg    DeviceIntPtr device;
15535c4bbdfSmrg    KbdCtrlProcPtr kbdProc;
15635c4bbdfSmrg
15735c4bbdfSmrg    XkbRadioGroupPtr radioGroups;
15835c4bbdfSmrg    CARD8 nRadioGroups;
15935c4bbdfSmrg    CARD8 clearMods;
16035c4bbdfSmrg    CARD8 setMods;
16135c4bbdfSmrg    INT16 groupChange;
16235c4bbdfSmrg
16335c4bbdfSmrg    CARD16 dfltPtrDelta;
16435c4bbdfSmrg
16535c4bbdfSmrg    double mouseKeysCurve;
16635c4bbdfSmrg    double mouseKeysCurveFactor;
16735c4bbdfSmrg    INT16 mouseKeysDX;
16835c4bbdfSmrg    INT16 mouseKeysDY;
16935c4bbdfSmrg    CARD8 mouseKeysFlags;
17035c4bbdfSmrg    Bool mouseKeysAccel;
17135c4bbdfSmrg    CARD8 mouseKeysCounter;
17235c4bbdfSmrg
17335c4bbdfSmrg    CARD8 lockedPtrButtons;
17435c4bbdfSmrg    CARD8 shiftKeyCount;
17535c4bbdfSmrg    KeyCode mouseKey;
17635c4bbdfSmrg    KeyCode inactiveKey;
17735c4bbdfSmrg    KeyCode slowKey;
17835c4bbdfSmrg    KeyCode slowKeyEnableKey;
17935c4bbdfSmrg    KeyCode repeatKey;
18035c4bbdfSmrg    CARD8 krgTimerActive;
18135c4bbdfSmrg    CARD8 beepType;
18235c4bbdfSmrg    CARD8 beepCount;
18335c4bbdfSmrg
18435c4bbdfSmrg    CARD32 flags;
18535c4bbdfSmrg    CARD32 lastPtrEventTime;
18635c4bbdfSmrg    CARD32 lastShiftEventTime;
18735c4bbdfSmrg    OsTimerPtr beepTimer;
18835c4bbdfSmrg    OsTimerPtr mouseKeyTimer;
18935c4bbdfSmrg    OsTimerPtr slowKeysTimer;
19035c4bbdfSmrg    OsTimerPtr bounceKeysTimer;
19135c4bbdfSmrg    OsTimerPtr repeatKeyTimer;
19235c4bbdfSmrg    OsTimerPtr krgTimer;
19335c4bbdfSmrg
19435c4bbdfSmrg    int szFilters;
19535c4bbdfSmrg    XkbFilterPtr filters;
1961b5d61b8Smrg
1971b5d61b8Smrg    XkbSrvCheckRepeatPtr checkRepeat;
1981b5d61b8Smrg
1991b5d61b8Smrg    char overlay_perkey_state[256/8]; /* bitfield */
20005b261ecSmrg} XkbSrvInfoRec, *XkbSrvInfoPtr;
20105b261ecSmrg
20205b261ecSmrg#define	XkbSLI_IsDefault	(1L<<0)
20305b261ecSmrg#define	XkbSLI_HasOwnState	(1L<<1)
20405b261ecSmrg
20535c4bbdfSmrgtypedef struct _XkbSrvLedInfo {
20635c4bbdfSmrg    CARD16 flags;
20735c4bbdfSmrg    CARD16 class;
20835c4bbdfSmrg    CARD16 id;
20935c4bbdfSmrg    union {
21035c4bbdfSmrg        KbdFeedbackPtr kf;
21135c4bbdfSmrg        LedFeedbackPtr lf;
21235c4bbdfSmrg    } fb;
21335c4bbdfSmrg
21435c4bbdfSmrg    CARD32 physIndicators;
21535c4bbdfSmrg    CARD32 autoState;
21635c4bbdfSmrg    CARD32 explicitState;
21735c4bbdfSmrg    CARD32 effectiveState;
21835c4bbdfSmrg
21935c4bbdfSmrg    CARD32 mapsPresent;
22035c4bbdfSmrg    CARD32 namesPresent;
22135c4bbdfSmrg    XkbIndicatorMapPtr maps;
22235c4bbdfSmrg    Atom *names;
22335c4bbdfSmrg
22435c4bbdfSmrg    CARD32 usesBase;
22535c4bbdfSmrg    CARD32 usesLatched;
22635c4bbdfSmrg    CARD32 usesLocked;
22735c4bbdfSmrg    CARD32 usesEffective;
22835c4bbdfSmrg    CARD32 usesCompat;
22935c4bbdfSmrg    CARD32 usesControls;
23035c4bbdfSmrg
23135c4bbdfSmrg    CARD32 usedComponents;
23205b261ecSmrg} XkbSrvLedInfoRec, *XkbSrvLedInfoPtr;
23305b261ecSmrg
23405b261ecSmrg/*
23505b261ecSmrg * Settings for xkbClientFlags field (used by DIX)
23605b261ecSmrg * These flags _must_ not overlap with XkbPCF_*
23705b261ecSmrg */
2381b5d61b8Smrg#define _XkbClientInitialized           (1<<7)
2391b5d61b8Smrg#define _XkbClientIsAncient             (1<<6)
24005b261ecSmrg
24105b261ecSmrg#define	_XkbWantsDetectableAutoRepeat(c)\
24205b261ecSmrg	((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
24305b261ecSmrg
24405b261ecSmrg/*
24505b261ecSmrg * Settings for flags field
24605b261ecSmrg */
24705b261ecSmrg#define	_XkbStateNotifyInProgress	(1<<0)
24805b261ecSmrg
24935c4bbdfSmrgtypedef struct {
25005b261ecSmrg    ProcessInputProc processInputProc;
25105b261ecSmrg    /* If processInputProc is set to something different than realInputProc,
25205b261ecSmrg     * UNWRAP and COND_WRAP will not touch processInputProc and update only
25305b261ecSmrg     * realInputProc.  This ensures that
25405b261ecSmrg     *   processInputProc == (frozen ? EnqueueEvent : realInputProc)
25505b261ecSmrg     *
25605b261ecSmrg     * WRAP_PROCESS_INPUT_PROC should only be called during initialization,
25705b261ecSmrg     * since it may destroy this invariant.
25805b261ecSmrg     */
25905b261ecSmrg    ProcessInputProc realInputProc;
26005b261ecSmrg    DeviceUnwrapProc unwrapProc;
26105b261ecSmrg} xkbDeviceInfoRec, *xkbDeviceInfoPtr;
26205b261ecSmrg
26305b261ecSmrg#define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
26405b261ecSmrg	device->public.processInputProc = proc; \
26505b261ecSmrg	oldprocs->processInputProc = \
26605b261ecSmrg	oldprocs->realInputProc = device->public.realInputProc; \
26705b261ecSmrg	device->public.realInputProc = proc; \
26805b261ecSmrg	oldprocs->unwrapProc = device->unwrapProc; \
26905b261ecSmrg	device->unwrapProc = unwrapproc;
27005b261ecSmrg
27105b261ecSmrg#define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
27205b261ecSmrg	if (device->public.processInputProc == device->public.realInputProc)\
27305b261ecSmrg	    device->public.processInputProc = proc; \
27405b261ecSmrg	oldprocs->processInputProc = \
27505b261ecSmrg	oldprocs->realInputProc = device->public.realInputProc; \
27605b261ecSmrg	device->public.realInputProc = proc; \
27705b261ecSmrg	oldprocs->unwrapProc = device->unwrapProc; \
27805b261ecSmrg	device->unwrapProc = unwrapproc;
27905b261ecSmrg
28005b261ecSmrg#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \
28105b261ecSmrg        backupproc = device->public.realInputProc; \
28205b261ecSmrg	if (device->public.processInputProc == device->public.realInputProc)\
28305b261ecSmrg	    device->public.processInputProc = oldprocs->realInputProc; \
28405b261ecSmrg	device->public.realInputProc = oldprocs->realInputProc; \
28505b261ecSmrg	device->unwrapProc = oldprocs->unwrapProc;
28605b261ecSmrg
2876747b715Smrgextern _X_EXPORT DevPrivateKeyRec xkbDevicePrivateKeyRec;
28835c4bbdfSmrg
2896747b715Smrg#define xkbDevicePrivateKey (&xkbDevicePrivateKeyRec)
2906747b715Smrg
2914642e01fSmrg#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
29205b261ecSmrg
29335c4bbdfSmrgextern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, void *);
29405b261ecSmrg
29505b261ecSmrg/***====================================================================***/
29605b261ecSmrg
29705b261ecSmrg/***====================================================================***/
29805b261ecSmrg
29905b261ecSmrg#define XkbAX_KRGMask	 (XkbSlowKeysMask|XkbBounceKeysMask)
30005b261ecSmrg#define	XkbAllFilteredEventsMask \
30105b261ecSmrg	(XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
30205b261ecSmrg
30305b261ecSmrg/***====================================================================***/
30405b261ecSmrg
30535c4bbdfSmrgextern _X_EXPORT int XkbReqCode;
30635c4bbdfSmrgextern _X_EXPORT int XkbEventBase;
30735c4bbdfSmrgextern _X_EXPORT int XkbKeyboardErrorCode;
30835c4bbdfSmrgextern _X_EXPORT const char *XkbBaseDirectory;
30935c4bbdfSmrgextern _X_EXPORT const char *XkbBinDirectory;
31035c4bbdfSmrg
31135c4bbdfSmrgextern _X_EXPORT CARD32 xkbDebugFlags;
31205b261ecSmrg
31335c4bbdfSmrg#define	_XkbLibError(c,l,d)     /* Epoch fail */
31405b261ecSmrg
31535c4bbdfSmrg/* "a" is a "unique" numeric identifier that just defines which error
31635c4bbdfSmrg * code statement it is. _XkbErrCode2(4, foo) means "this is the 4th error
31735c4bbdfSmrg * statement in this function". lovely.
31835c4bbdfSmrg */
31905b261ecSmrg#define	_XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
32005b261ecSmrg#define	_XkbErrCode3(a,b,c)	_XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
32105b261ecSmrg#define	_XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
32205b261ecSmrg
32305b261ecSmrg#define	Status		int
32405b261ecSmrg
32535c4bbdfSmrgextern _X_EXPORT void XkbUseMsg(void
32635c4bbdfSmrg    );
32735c4bbdfSmrg
32835c4bbdfSmrgextern _X_EXPORT int XkbProcessArguments(int /* argc */ ,
32935c4bbdfSmrg                                         char ** /* argv */ ,
33035c4bbdfSmrg                                         int    /* i */
33135c4bbdfSmrg    );
33235c4bbdfSmrg
33335c4bbdfSmrgextern _X_EXPORT Bool XkbInitPrivates(void);
33435c4bbdfSmrg
33535c4bbdfSmrgextern _X_EXPORT void XkbSetExtension(DeviceIntPtr device,
33635c4bbdfSmrg                                      ProcessInputProc proc);
33735c4bbdfSmrg
33835c4bbdfSmrgextern _X_EXPORT void XkbFreeCompatMap(XkbDescPtr /* xkb */ ,
33935c4bbdfSmrg                                       unsigned int /* which */ ,
34035c4bbdfSmrg                                       Bool     /* freeMap */
34135c4bbdfSmrg    );
34235c4bbdfSmrg
34335c4bbdfSmrgextern _X_EXPORT void XkbFreeNames(XkbDescPtr /* xkb */ ,
34435c4bbdfSmrg                                   unsigned int /* which */ ,
34535c4bbdfSmrg                                   Bool /* freeMap */
34635c4bbdfSmrg    );
34735c4bbdfSmrg
34835c4bbdfSmrgextern _X_EXPORT int _XkbLookupAnyDevice(DeviceIntPtr *pDev,
34935c4bbdfSmrg                                         int id,
35035c4bbdfSmrg                                         ClientPtr client,
35135c4bbdfSmrg                                         Mask access_mode, int *xkb_err);
35235c4bbdfSmrg
35335c4bbdfSmrgextern _X_EXPORT int _XkbLookupKeyboard(DeviceIntPtr *pDev,
35435c4bbdfSmrg                                        int id,
35535c4bbdfSmrg                                        ClientPtr client,
35635c4bbdfSmrg                                        Mask access_mode, int *xkb_err);
35735c4bbdfSmrg
35835c4bbdfSmrgextern _X_EXPORT int _XkbLookupBellDevice(DeviceIntPtr *pDev,
35935c4bbdfSmrg                                          int id,
36035c4bbdfSmrg                                          ClientPtr client,
36135c4bbdfSmrg                                          Mask access_mode, int *xkb_err);
36235c4bbdfSmrg
36335c4bbdfSmrgextern _X_EXPORT int _XkbLookupLedDevice(DeviceIntPtr *pDev,
36435c4bbdfSmrg                                         int id,
36535c4bbdfSmrg                                         ClientPtr client,
36635c4bbdfSmrg                                         Mask access_mode, int *xkb_err);
36735c4bbdfSmrg
36835c4bbdfSmrgextern _X_EXPORT int _XkbLookupButtonDevice(DeviceIntPtr *pDev,
36935c4bbdfSmrg                                            int id,
37035c4bbdfSmrg                                            ClientPtr client,
37135c4bbdfSmrg                                            Mask access_mode, int *xkb_err);
37235c4bbdfSmrg
37335c4bbdfSmrgextern _X_EXPORT XkbDescPtr XkbAllocKeyboard(void
37435c4bbdfSmrg    );
37535c4bbdfSmrg
37635c4bbdfSmrgextern _X_EXPORT Status XkbAllocClientMap(XkbDescPtr /* xkb */ ,
37735c4bbdfSmrg                                          unsigned int /* which */ ,
37835c4bbdfSmrg                                          unsigned int  /* nTypes */
37935c4bbdfSmrg    );
38035c4bbdfSmrg
38135c4bbdfSmrgextern _X_EXPORT Status XkbAllocServerMap(XkbDescPtr /* xkb */ ,
38235c4bbdfSmrg                                          unsigned int /* which */ ,
38335c4bbdfSmrg                                          unsigned int  /* nNewActions */
38435c4bbdfSmrg    );
38535c4bbdfSmrg
38635c4bbdfSmrgextern _X_EXPORT void XkbFreeClientMap(XkbDescPtr /* xkb */ ,
38735c4bbdfSmrg                                       unsigned int /* what */ ,
38835c4bbdfSmrg                                       Bool     /* freeMap */
38935c4bbdfSmrg    );
39035c4bbdfSmrg
39135c4bbdfSmrgextern _X_EXPORT void XkbFreeServerMap(XkbDescPtr /* xkb */ ,
39235c4bbdfSmrg                                       unsigned int /* what */ ,
39335c4bbdfSmrg                                       Bool     /* freeMap */
39435c4bbdfSmrg    );
39535c4bbdfSmrg
39635c4bbdfSmrgextern _X_EXPORT Status XkbAllocIndicatorMaps(XkbDescPtr        /* xkb */
39735c4bbdfSmrg    );
39835c4bbdfSmrg
39935c4bbdfSmrgextern _X_EXPORT Status XkbAllocCompatMap(XkbDescPtr /* xkb */ ,
40035c4bbdfSmrg                                          unsigned int /* which */ ,
40135c4bbdfSmrg                                          unsigned int  /* nInterpret */
40235c4bbdfSmrg    );
40335c4bbdfSmrg
40435c4bbdfSmrgextern _X_EXPORT Status XkbAllocNames(XkbDescPtr /* xkb */ ,
40535c4bbdfSmrg                                      unsigned int /* which */ ,
40635c4bbdfSmrg                                      int /* nTotalRG */ ,
40735c4bbdfSmrg                                      int       /* nTotalAliases */
40835c4bbdfSmrg    );
40935c4bbdfSmrg
41035c4bbdfSmrgextern _X_EXPORT Status XkbAllocControls(XkbDescPtr /* xkb */ ,
41135c4bbdfSmrg                                         unsigned int   /* which */
41235c4bbdfSmrg    );
41335c4bbdfSmrg
41435c4bbdfSmrgextern _X_EXPORT Status XkbCopyKeyTypes(XkbKeyTypePtr /* from */ ,
41535c4bbdfSmrg                                        XkbKeyTypePtr /* into */ ,
41635c4bbdfSmrg                                        int     /* num_types */
41735c4bbdfSmrg    );
41835c4bbdfSmrg
41935c4bbdfSmrgextern _X_EXPORT Status XkbResizeKeyType(XkbDescPtr /* xkb */ ,
42035c4bbdfSmrg                                         int /* type_ndx */ ,
42135c4bbdfSmrg                                         int /* map_count */ ,
42235c4bbdfSmrg                                         Bool /* want_preserve */ ,
42335c4bbdfSmrg                                         int    /* new_num_lvls */
42435c4bbdfSmrg    );
42535c4bbdfSmrg
42635c4bbdfSmrgextern _X_EXPORT void XkbFreeKeyboard(XkbDescPtr /* xkb */ ,
42735c4bbdfSmrg                                      unsigned int /* which */ ,
42835c4bbdfSmrg                                      Bool      /* freeDesc */
42935c4bbdfSmrg    );
43035c4bbdfSmrg
43135c4bbdfSmrgextern _X_EXPORT void XkbFreeComponentNames(XkbComponentNamesPtr /* names */ ,
43235c4bbdfSmrg                                            Bool        /* freeNames */
43335c4bbdfSmrg    );
43435c4bbdfSmrg
43535c4bbdfSmrgextern _X_EXPORT void XkbSetActionKeyMods(XkbDescPtr /* xkb */ ,
43635c4bbdfSmrg                                          XkbAction * /* act */ ,
43735c4bbdfSmrg                                          unsigned int  /* mods */
43835c4bbdfSmrg    );
43935c4bbdfSmrg
44035c4bbdfSmrgextern _X_EXPORT unsigned int XkbMaskForVMask(XkbDescPtr /* xkb */ ,
44135c4bbdfSmrg                                              unsigned int      /* vmask */
44235c4bbdfSmrg    );
44335c4bbdfSmrg
44435c4bbdfSmrgextern _X_EXPORT Bool XkbVirtualModsToReal(XkbDescPtr /* xkb */ ,
44535c4bbdfSmrg                                           unsigned int /* virtua_mask */ ,
44635c4bbdfSmrg                                           unsigned int *       /* mask_rtrn */
44735c4bbdfSmrg    );
44835c4bbdfSmrg
44935c4bbdfSmrgextern _X_EXPORT unsigned int XkbAdjustGroup(int /* group */ ,
45035c4bbdfSmrg                                             XkbControlsPtr     /* ctrls */
45135c4bbdfSmrg    );
45235c4bbdfSmrg
45335c4bbdfSmrgextern _X_EXPORT KeySym *XkbResizeKeySyms(XkbDescPtr /* xkb */ ,
45435c4bbdfSmrg                                          int /* key */ ,
45535c4bbdfSmrg                                          int   /* needed */
45635c4bbdfSmrg    );
45735c4bbdfSmrg
45835c4bbdfSmrgextern _X_EXPORT XkbAction *XkbResizeKeyActions(XkbDescPtr /* xkb */ ,
45935c4bbdfSmrg                                                int /* key */ ,
46035c4bbdfSmrg                                                int     /* needed */
46135c4bbdfSmrg    );
46235c4bbdfSmrg
46335c4bbdfSmrgextern _X_EXPORT void XkbUpdateKeyTypesFromCore(DeviceIntPtr /* pXDev */ ,
46435c4bbdfSmrg                                                KeySymsPtr /* syms */ ,
46535c4bbdfSmrg                                                KeyCode /* first */ ,
46635c4bbdfSmrg                                                CARD8 /* num */ ,
46735c4bbdfSmrg                                                XkbChangesPtr   /* pChanges */
46835c4bbdfSmrg    );
46935c4bbdfSmrg
47035c4bbdfSmrgextern _X_EXPORT void XkbUpdateDescActions(XkbDescPtr /* xkb */ ,
47135c4bbdfSmrg                                           KeyCode /* first */ ,
47235c4bbdfSmrg                                           CARD8 /* num */ ,
47335c4bbdfSmrg                                           XkbChangesPtr        /* changes */
47435c4bbdfSmrg    );
47535c4bbdfSmrg
47635c4bbdfSmrgextern _X_EXPORT void XkbUpdateActions(DeviceIntPtr /* pXDev */ ,
47735c4bbdfSmrg                                       KeyCode /* first */ ,
47835c4bbdfSmrg                                       CARD8 /* num */ ,
47935c4bbdfSmrg                                       XkbChangesPtr /* pChanges */ ,
48035c4bbdfSmrg                                       unsigned int * /* needChecksRtrn */ ,
48135c4bbdfSmrg                                       XkbEventCausePtr /* cause */
48235c4bbdfSmrg    );
48335c4bbdfSmrg
48435c4bbdfSmrgextern _X_EXPORT KeySymsPtr XkbGetCoreMap(DeviceIntPtr  /* keybd */
48535c4bbdfSmrg    );
48635c4bbdfSmrg
48735c4bbdfSmrgextern _X_EXPORT void XkbApplyMappingChange(DeviceIntPtr /* pXDev */ ,
48835c4bbdfSmrg                                            KeySymsPtr /* map */ ,
48935c4bbdfSmrg                                            KeyCode /* firstKey */ ,
49035c4bbdfSmrg                                            CARD8 /* num */ ,
49135c4bbdfSmrg                                            CARD8 * /* modmap */ ,
49235c4bbdfSmrg                                            ClientPtr   /* client */
49335c4bbdfSmrg    );
49435c4bbdfSmrg
49535c4bbdfSmrgextern _X_EXPORT void XkbSetIndicators(DeviceIntPtr /* pXDev */ ,
49635c4bbdfSmrg                                       CARD32 /* affect */ ,
49735c4bbdfSmrg                                       CARD32 /* values */ ,
49835c4bbdfSmrg                                       XkbEventCausePtr /* cause */
49935c4bbdfSmrg    );
50035c4bbdfSmrg
50135c4bbdfSmrgextern _X_EXPORT void XkbUpdateIndicators(DeviceIntPtr /* keybd */ ,
50235c4bbdfSmrg                                          CARD32 /* changed */ ,
50335c4bbdfSmrg                                          Bool /* check_edevs */ ,
50435c4bbdfSmrg                                          XkbChangesPtr /* pChanges */ ,
50535c4bbdfSmrg                                          XkbEventCausePtr      /* cause */
50635c4bbdfSmrg    );
50735c4bbdfSmrg
50835c4bbdfSmrgextern _X_EXPORT void XkbUpdateAllDeviceIndicators(XkbChangesPtr /* changes */,
50935c4bbdfSmrg                                                   XkbEventCausePtr /* cause */
51035c4bbdfSmrg    );
51135c4bbdfSmrg
51235c4bbdfSmrgextern _X_EXPORT XkbSrvLedInfoPtr XkbAllocSrvLedInfo(DeviceIntPtr /* dev */ ,
51335c4bbdfSmrg                                                     KbdFeedbackPtr /* kf */ ,
51435c4bbdfSmrg                                                     LedFeedbackPtr /* lf */ ,
51535c4bbdfSmrg                                                     unsigned int       /* needed_parts */
51635c4bbdfSmrg    );
51735c4bbdfSmrg
51835c4bbdfSmrgextern _X_EXPORT XkbSrvLedInfoPtr XkbCopySrvLedInfo(DeviceIntPtr /* dev */ ,
51935c4bbdfSmrg                                                    XkbSrvLedInfoPtr /* src */ ,
52035c4bbdfSmrg                                                    KbdFeedbackPtr /* kf */ ,
52135c4bbdfSmrg                                                    LedFeedbackPtr      /* lf */
52235c4bbdfSmrg    );
52335c4bbdfSmrg
52435c4bbdfSmrgextern _X_EXPORT XkbSrvLedInfoPtr XkbFindSrvLedInfo(DeviceIntPtr /* dev */ ,
52535c4bbdfSmrg                                                    unsigned int /* class */ ,
52635c4bbdfSmrg                                                    unsigned int /* id */ ,
52735c4bbdfSmrg                                                    unsigned int        /* needed_parts */
52835c4bbdfSmrg    );
52935c4bbdfSmrg
53035c4bbdfSmrgextern _X_EXPORT void XkbApplyLedNameChanges(DeviceIntPtr /* dev */ ,
53135c4bbdfSmrg                                             XkbSrvLedInfoPtr /* sli */ ,
53235c4bbdfSmrg                                             unsigned int /* changed_names */ ,
53335c4bbdfSmrg                                             xkbExtensionDeviceNotify * /* ed */
53435c4bbdfSmrg                                             ,
53535c4bbdfSmrg                                             XkbChangesPtr /* changes */ ,
53635c4bbdfSmrg                                             XkbEventCausePtr   /* cause */
53735c4bbdfSmrg    );
53835c4bbdfSmrg
53935c4bbdfSmrgextern _X_EXPORT void XkbApplyLedMapChanges(DeviceIntPtr /* dev */ ,
54035c4bbdfSmrg                                            XkbSrvLedInfoPtr /* sli */ ,
54135c4bbdfSmrg                                            unsigned int /* changed_maps */ ,
54235c4bbdfSmrg                                            xkbExtensionDeviceNotify * /* ed */
54335c4bbdfSmrg                                            ,
54435c4bbdfSmrg                                            XkbChangesPtr /* changes */ ,
54535c4bbdfSmrg                                            XkbEventCausePtr    /* cause */
54635c4bbdfSmrg    );
54735c4bbdfSmrg
54835c4bbdfSmrgextern _X_EXPORT void XkbApplyLedStateChanges(DeviceIntPtr /* dev */ ,
54935c4bbdfSmrg                                              XkbSrvLedInfoPtr /* sli */ ,
55035c4bbdfSmrg                                              unsigned int /* changed_leds */ ,
55135c4bbdfSmrg                                              xkbExtensionDeviceNotify *
55235c4bbdfSmrg                                              /* ed */ ,
55335c4bbdfSmrg                                              XkbChangesPtr /* changes */ ,
55435c4bbdfSmrg                                              XkbEventCausePtr  /* cause */
55535c4bbdfSmrg    );
55635c4bbdfSmrg
55735c4bbdfSmrgextern _X_EXPORT void XkbFlushLedEvents(DeviceIntPtr /* dev */ ,
55835c4bbdfSmrg                                        DeviceIntPtr /* kbd */ ,
55935c4bbdfSmrg                                        XkbSrvLedInfoPtr /* sli */ ,
56035c4bbdfSmrg                                        xkbExtensionDeviceNotify * /* ed */ ,
56135c4bbdfSmrg                                        XkbChangesPtr /* changes */ ,
56235c4bbdfSmrg                                        XkbEventCausePtr        /* cause */
56335c4bbdfSmrg    );
56435c4bbdfSmrg
56535c4bbdfSmrgextern _X_EXPORT unsigned int XkbIndicatorsToUpdate(DeviceIntPtr /* dev */ ,
56635c4bbdfSmrg                                                    unsigned long
56735c4bbdfSmrg                                                    /* state_changes */ ,
56835c4bbdfSmrg                                                    Bool        /* enabled_ctrl_changes */
56935c4bbdfSmrg    );
57035c4bbdfSmrg
57135c4bbdfSmrgextern _X_EXPORT void XkbComputeDerivedState(XkbSrvInfoPtr      /* xkbi */
57235c4bbdfSmrg    );
57335c4bbdfSmrg
57435c4bbdfSmrgextern _X_EXPORT void XkbCheckSecondaryEffects(XkbSrvInfoPtr /* xkbi */ ,
57535c4bbdfSmrg                                               unsigned int /* which */ ,
57635c4bbdfSmrg                                               XkbChangesPtr /* changes */ ,
57735c4bbdfSmrg                                               XkbEventCausePtr /* cause */
57835c4bbdfSmrg    );
57935c4bbdfSmrg
58035c4bbdfSmrgextern _X_EXPORT void XkbCheckIndicatorMaps(DeviceIntPtr /* dev */ ,
58135c4bbdfSmrg                                            XkbSrvLedInfoPtr /* sli */ ,
58235c4bbdfSmrg                                            unsigned int        /* which */
58335c4bbdfSmrg    );
58435c4bbdfSmrg
58535c4bbdfSmrgextern _X_EXPORT unsigned int XkbStateChangedFlags(XkbStatePtr /* old */ ,
58635c4bbdfSmrg                                                   XkbStatePtr  /* new */
58735c4bbdfSmrg    );
58835c4bbdfSmrg
58935c4bbdfSmrgextern _X_EXPORT void XkbSendStateNotify(DeviceIntPtr /* kbd */ ,
59035c4bbdfSmrg                                         xkbStateNotify *       /* pSN */
59135c4bbdfSmrg    );
59235c4bbdfSmrg
59335c4bbdfSmrgextern _X_EXPORT void XkbSendMapNotify(DeviceIntPtr /* kbd */ ,
59435c4bbdfSmrg                                       xkbMapNotify *   /* ev */
59535c4bbdfSmrg    );
59635c4bbdfSmrg
59735c4bbdfSmrgextern _X_EXPORT int XkbComputeControlsNotify(DeviceIntPtr /* kbd */ ,
59835c4bbdfSmrg                                              XkbControlsPtr /* old */ ,
59935c4bbdfSmrg                                              XkbControlsPtr /* new */ ,
60035c4bbdfSmrg                                              xkbControlsNotify * /* pCN */ ,
60135c4bbdfSmrg                                              Bool      /* forceCtrlProc */
60235c4bbdfSmrg    );
60335c4bbdfSmrg
60435c4bbdfSmrgextern _X_EXPORT void XkbSendControlsNotify(DeviceIntPtr /* kbd */ ,
60535c4bbdfSmrg                                            xkbControlsNotify * /* ev */
60635c4bbdfSmrg    );
60735c4bbdfSmrg
60835c4bbdfSmrgextern _X_EXPORT void XkbSendCompatMapNotify(DeviceIntPtr /* kbd */ ,
60935c4bbdfSmrg                                             xkbCompatMapNotify *       /* ev */
61035c4bbdfSmrg    );
61135c4bbdfSmrg
61235c4bbdfSmrgextern _X_EXPORT void XkbHandleBell(BOOL force,
61335c4bbdfSmrg                                    BOOL eventOnly,
61435c4bbdfSmrg                                    DeviceIntPtr kbd,
61535c4bbdfSmrg                                    CARD8 percent,
61635c4bbdfSmrg                                    void *ctrl,
61735c4bbdfSmrg                                    CARD8 class,
61835c4bbdfSmrg                                    Atom name,
61935c4bbdfSmrg                                    WindowPtr pWin,
62035c4bbdfSmrg                                    ClientPtr pClient
62135c4bbdfSmrg    );
62235c4bbdfSmrg
62335c4bbdfSmrgextern _X_EXPORT void XkbSendAccessXNotify(DeviceIntPtr /* kbd */ ,
62435c4bbdfSmrg                                           xkbAccessXNotify *   /* pEv */
62535c4bbdfSmrg    );
62635c4bbdfSmrg
62735c4bbdfSmrgextern _X_EXPORT void XkbSendNamesNotify(DeviceIntPtr /* kbd */ ,
62835c4bbdfSmrg                                         xkbNamesNotify *       /* ev */
62935c4bbdfSmrg    );
63035c4bbdfSmrg
63135c4bbdfSmrgextern _X_EXPORT void XkbSendActionMessage(DeviceIntPtr /* kbd */ ,
63235c4bbdfSmrg                                           xkbActionMessage *   /* ev */
63335c4bbdfSmrg    );
63435c4bbdfSmrg
63535c4bbdfSmrgextern _X_EXPORT void XkbSendExtensionDeviceNotify(DeviceIntPtr /* kbd */ ,
63635c4bbdfSmrg                                                   ClientPtr /* client */ ,
63735c4bbdfSmrg                                                   xkbExtensionDeviceNotify *   /* ev */
63835c4bbdfSmrg    );
63935c4bbdfSmrg
64035c4bbdfSmrgextern _X_EXPORT void XkbSendNotification(DeviceIntPtr /* kbd */ ,
64135c4bbdfSmrg                                          XkbChangesPtr /* pChanges */ ,
64235c4bbdfSmrg                                          XkbEventCausePtr      /* cause */
64335c4bbdfSmrg    );
64435c4bbdfSmrg
64535c4bbdfSmrgextern _X_EXPORT void XkbProcessKeyboardEvent(DeviceEvent * /* event */ ,
64635c4bbdfSmrg                                              DeviceIntPtr      /* keybd */
64735c4bbdfSmrg    );
64835c4bbdfSmrg
64935c4bbdfSmrgextern _X_EXPORT void XkbHandleActions(DeviceIntPtr /* dev */ ,
65035c4bbdfSmrg                                       DeviceIntPtr /* kbd */ ,
65135c4bbdfSmrg                                       DeviceEvent *    /* event */
65235c4bbdfSmrg    );
65335c4bbdfSmrg
65435c4bbdfSmrgextern void XkbPushLockedStateToSlaves(DeviceIntPtr /* master */,
65535c4bbdfSmrg                                       int /* evtype */,
65635c4bbdfSmrg                                       int /* key */);
65735c4bbdfSmrg
65835c4bbdfSmrgextern _X_EXPORT Bool XkbEnableDisableControls(XkbSrvInfoPtr /* xkbi */ ,
65935c4bbdfSmrg                                               unsigned long /* change */ ,
66035c4bbdfSmrg                                               unsigned long /* newValues */ ,
66135c4bbdfSmrg                                               XkbChangesPtr /* changes */ ,
66235c4bbdfSmrg                                               XkbEventCausePtr /* cause */
66335c4bbdfSmrg    );
66435c4bbdfSmrg
66535c4bbdfSmrgextern _X_EXPORT void AccessXInit(DeviceIntPtr  /* dev */
66635c4bbdfSmrg    );
66735c4bbdfSmrg
66835c4bbdfSmrgextern _X_EXPORT Bool AccessXFilterPressEvent(DeviceEvent * /* event */ ,
66935c4bbdfSmrg                                              DeviceIntPtr      /* keybd */
67035c4bbdfSmrg    );
67135c4bbdfSmrg
67235c4bbdfSmrgextern _X_EXPORT Bool AccessXFilterReleaseEvent(DeviceEvent * /* event */ ,
67335c4bbdfSmrg                                                DeviceIntPtr    /* keybd */
67435c4bbdfSmrg    );
67535c4bbdfSmrg
67635c4bbdfSmrgextern _X_EXPORT void AccessXCancelRepeatKey(XkbSrvInfoPtr /* xkbi */ ,
67735c4bbdfSmrg                                             KeyCode    /* key */
67835c4bbdfSmrg    );
67935c4bbdfSmrg
68035c4bbdfSmrgextern _X_EXPORT void AccessXComputeCurveFactor(XkbSrvInfoPtr /* xkbi */ ,
68135c4bbdfSmrg                                                XkbControlsPtr  /* ctrls */
68235c4bbdfSmrg    );
68335c4bbdfSmrg
68435c4bbdfSmrgextern _X_EXPORT XkbInterestPtr XkbFindClientResource(DevicePtr /* inDev */ ,
68535c4bbdfSmrg                                                      ClientPtr /* client */
68635c4bbdfSmrg    );
68735c4bbdfSmrg
68835c4bbdfSmrgextern _X_EXPORT XkbInterestPtr XkbAddClientResource(DevicePtr /* inDev */ ,
68935c4bbdfSmrg                                                     ClientPtr /* client */ ,
69035c4bbdfSmrg                                                     XID        /* id */
69135c4bbdfSmrg    );
69235c4bbdfSmrg
69335c4bbdfSmrgextern _X_EXPORT int XkbRemoveResourceClient(DevicePtr /* inDev */ ,
69435c4bbdfSmrg                                             XID        /* id */
69535c4bbdfSmrg    );
69635c4bbdfSmrg
69735c4bbdfSmrgextern _X_EXPORT int XkbDDXAccessXBeep(DeviceIntPtr /* dev */ ,
69835c4bbdfSmrg                                       unsigned int /* what */ ,
69935c4bbdfSmrg                                       unsigned int     /* which */
70035c4bbdfSmrg    );
70135c4bbdfSmrg
70235c4bbdfSmrgextern _X_EXPORT int XkbDDXUsesSoftRepeat(DeviceIntPtr  /* dev */
70335c4bbdfSmrg    );
70435c4bbdfSmrg
70535c4bbdfSmrgextern _X_EXPORT void XkbDDXKeybdCtrlProc(DeviceIntPtr /* dev */ ,
70635c4bbdfSmrg                                          KeybdCtrl *   /* ctrl */
70735c4bbdfSmrg    );
70835c4bbdfSmrg
70935c4bbdfSmrgextern _X_EXPORT void XkbDDXChangeControls(DeviceIntPtr /* dev */ ,
71035c4bbdfSmrg                                           XkbControlsPtr /* old */ ,
71135c4bbdfSmrg                                           XkbControlsPtr       /* new */
71235c4bbdfSmrg    );
71335c4bbdfSmrg
71435c4bbdfSmrgextern _X_EXPORT void XkbDDXUpdateDeviceIndicators(DeviceIntPtr /* dev */ ,
71535c4bbdfSmrg                                                   XkbSrvLedInfoPtr /* sli */ ,
71635c4bbdfSmrg                                                   CARD32       /* newState */
71735c4bbdfSmrg    );
71835c4bbdfSmrg
71935c4bbdfSmrgextern _X_EXPORT int XkbDDXTerminateServer(DeviceIntPtr /* dev */ ,
72035c4bbdfSmrg                                           KeyCode /* key */ ,
72135c4bbdfSmrg                                           XkbAction *  /* act */
72235c4bbdfSmrg    );
72335c4bbdfSmrg
72435c4bbdfSmrgextern _X_EXPORT int XkbDDXSwitchScreen(DeviceIntPtr /* dev */ ,
72535c4bbdfSmrg                                        KeyCode /* key */ ,
72635c4bbdfSmrg                                        XkbAction *     /* act */
72735c4bbdfSmrg    );
72835c4bbdfSmrg
72935c4bbdfSmrgextern _X_EXPORT int XkbDDXPrivate(DeviceIntPtr /* dev */ ,
73035c4bbdfSmrg                                   KeyCode /* key */ ,
73135c4bbdfSmrg                                   XkbAction *  /* act */
73235c4bbdfSmrg    );
73335c4bbdfSmrg
73435c4bbdfSmrgextern _X_EXPORT void XkbDisableComputedAutoRepeats(DeviceIntPtr /* pXDev */ ,
73535c4bbdfSmrg                                                    unsigned int        /* key */
73635c4bbdfSmrg    );
73735c4bbdfSmrg
73835c4bbdfSmrgextern _X_EXPORT void XkbSetRepeatKeys(DeviceIntPtr /* pXDev */ ,
73935c4bbdfSmrg                                       int /* key */ ,
74035c4bbdfSmrg                                       int      /* onoff */
74135c4bbdfSmrg    );
74235c4bbdfSmrg
74335c4bbdfSmrgextern _X_EXPORT int XkbLatchModifiers(DeviceIntPtr /* pXDev */ ,
74435c4bbdfSmrg                                       CARD8 /* mask */ ,
74535c4bbdfSmrg                                       CARD8    /* latches */
74635c4bbdfSmrg    );
74735c4bbdfSmrg
74835c4bbdfSmrgextern _X_EXPORT int XkbLatchGroup(DeviceIntPtr /* pXDev */ ,
74935c4bbdfSmrg                                   int  /* group */
75035c4bbdfSmrg    );
75135c4bbdfSmrg
75235c4bbdfSmrgextern _X_EXPORT void XkbClearAllLatchesAndLocks(DeviceIntPtr /* dev */ ,
75335c4bbdfSmrg                                                 XkbSrvInfoPtr /* xkbi */ ,
75435c4bbdfSmrg                                                 Bool /* genEv */ ,
75535c4bbdfSmrg                                                 XkbEventCausePtr       /* cause */
75635c4bbdfSmrg    );
75735c4bbdfSmrg
75835c4bbdfSmrgextern _X_EXPORT void XkbInitRules(XkbRMLVOSet * /* rmlvo   */,
75935c4bbdfSmrg                                   const char *  /* rules   */,
76035c4bbdfSmrg                                   const char *  /* model   */,
76135c4bbdfSmrg                                   const char *  /* layout  */,
76235c4bbdfSmrg                                   const char *  /* variant */,
76335c4bbdfSmrg                                   const char *  /* options */
76435c4bbdfSmrg    ) ;
76535c4bbdfSmrg
76635c4bbdfSmrgextern _X_EXPORT void XkbGetRulesDflts(XkbRMLVOSet *    /* rmlvo */
76735c4bbdfSmrg    );
76835c4bbdfSmrg
76935c4bbdfSmrgextern _X_EXPORT void XkbFreeRMLVOSet(XkbRMLVOSet * /* rmlvo */ ,
77035c4bbdfSmrg                                      Bool      /* freeRMLVO */
77135c4bbdfSmrg    );
77235c4bbdfSmrg
77335c4bbdfSmrgextern _X_EXPORT void XkbSetRulesDflts(XkbRMLVOSet *    /* rmlvo */
77435c4bbdfSmrg    );
77535c4bbdfSmrg
77635c4bbdfSmrgextern _X_EXPORT void XkbDeleteRulesDflts(void
77735c4bbdfSmrg    );
77835c4bbdfSmrg
77935c4bbdfSmrgextern _X_EXPORT void XkbDeleteRulesUsed(void
78035c4bbdfSmrg    );
78135c4bbdfSmrg
78235c4bbdfSmrgextern _X_EXPORT int SProcXkbDispatch(ClientPtr /* client */
78335c4bbdfSmrg    );
78435c4bbdfSmrg
78535c4bbdfSmrgextern _X_EXPORT XkbGeometryPtr XkbLookupNamedGeometry(DeviceIntPtr /* dev */ ,
78635c4bbdfSmrg                                                       Atom /* name */ ,
78735c4bbdfSmrg                                                       Bool *   /* shouldFree */
78835c4bbdfSmrg    );
78935c4bbdfSmrg
79035c4bbdfSmrgextern _X_EXPORT void XkbConvertCase(KeySym /* sym */ ,
79135c4bbdfSmrg                                     KeySym * /* lower */ ,
79235c4bbdfSmrg                                     KeySym *   /* upper */
79335c4bbdfSmrg    );
79435c4bbdfSmrg
79535c4bbdfSmrgextern _X_EXPORT Status XkbChangeKeycodeRange(XkbDescPtr /* xkb */ ,
79635c4bbdfSmrg                                              int /* minKC */ ,
79735c4bbdfSmrg                                              int /* maxKC */ ,
79835c4bbdfSmrg                                              XkbChangesPtr     /* changes */
79935c4bbdfSmrg    );
80035c4bbdfSmrg
80135c4bbdfSmrgextern _X_EXPORT void XkbFreeSrvLedInfo(XkbSrvLedInfoPtr        /* sli */
80235c4bbdfSmrg    );
80335c4bbdfSmrg
80435c4bbdfSmrgextern _X_EXPORT void XkbFreeInfo(XkbSrvInfoPtr /* xkbi */
80535c4bbdfSmrg    );
80635c4bbdfSmrg
80735c4bbdfSmrgextern _X_EXPORT Status XkbChangeTypesOfKey(XkbDescPtr /* xkb */ ,
80835c4bbdfSmrg                                            int /* key */ ,
80935c4bbdfSmrg                                            int /* nGroups */ ,
81035c4bbdfSmrg                                            unsigned int /* groups */ ,
81135c4bbdfSmrg                                            int * /* newTypesIn */ ,
81235c4bbdfSmrg                                            XkbMapChangesPtr    /* changes */
81335c4bbdfSmrg    );
81435c4bbdfSmrg
81535c4bbdfSmrgextern _X_EXPORT int XkbKeyTypesForCoreSymbols(XkbDescPtr /* xkb */ ,
81635c4bbdfSmrg                                               int /* map_width */ ,
81735c4bbdfSmrg                                               KeySym * /* core_syms */ ,
81835c4bbdfSmrg                                               unsigned int /* protected */ ,
81935c4bbdfSmrg                                               int * /* types_inout */ ,
82035c4bbdfSmrg                                               KeySym * /* xkb_syms_rtrn */
82135c4bbdfSmrg    );
82235c4bbdfSmrg
82335c4bbdfSmrgextern _X_EXPORT Bool XkbApplyCompatMapToKey(XkbDescPtr /* xkb */ ,
82435c4bbdfSmrg                                             KeyCode /* key */ ,
82535c4bbdfSmrg                                             XkbChangesPtr      /* changes */
82635c4bbdfSmrg    );
82735c4bbdfSmrg
82835c4bbdfSmrgextern _X_EXPORT Bool XkbApplyVirtualModChanges(XkbDescPtr /* xkb */ ,
82935c4bbdfSmrg                                                unsigned int /* changed */ ,
83035c4bbdfSmrg                                                XkbChangesPtr   /* changes */
83135c4bbdfSmrg    );
83235c4bbdfSmrg
83335c4bbdfSmrgextern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
83435c4bbdfSmrg                                               xkbNewKeyboardNotify *   /* pNKN */
83535c4bbdfSmrg    );
83635c4bbdfSmrg
83735c4bbdfSmrgextern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
83835c4bbdfSmrg                          XkbDescPtr /* src */ );
83935c4bbdfSmrg
84035c4bbdfSmrgextern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */,
84135c4bbdfSmrg					  DeviceIntPtr /* src */);
84235c4bbdfSmrg
84335c4bbdfSmrgextern _X_EXPORT Bool XkbDeviceApplyKeymap(DeviceIntPtr /* dst */ ,
84435c4bbdfSmrg                                           XkbDescPtr /* src */ );
84535c4bbdfSmrg
84635c4bbdfSmrgextern void XkbFilterEvents(ClientPtr /* pClient */ ,
84735c4bbdfSmrg                            int /* nEvents */ ,
84835c4bbdfSmrg                            xEvent * /* xE */ );
84935c4bbdfSmrg
85035c4bbdfSmrgextern int XkbGetEffectiveGroup(XkbSrvInfoPtr /* xkbi */ ,
85135c4bbdfSmrg                                XkbStatePtr /* xkbstate */ ,
85235c4bbdfSmrg                                CARD8 /* keycode */ );
85335c4bbdfSmrg
85435c4bbdfSmrgextern void XkbMergeLockedPtrBtns(DeviceIntPtr /* master */ );
85535c4bbdfSmrg
85635c4bbdfSmrgextern void XkbFakeDeviceButton(DeviceIntPtr /* dev */ ,
85735c4bbdfSmrg                                int /* press */ ,
85835c4bbdfSmrg                                int /* button */ );
85935c4bbdfSmrg
86035c4bbdfSmrgextern _X_EXPORT void XkbCopyControls(XkbDescPtr /* dst */ ,
86135c4bbdfSmrg                                      XkbDescPtr /* src */ );
8626747b715Smrg
8634642e01fSmrg#include "xkbfile.h"
8644642e01fSmrg#include "xkbrules.h"
86505b261ecSmrg
8666747b715Smrg#define	_XkbListKeycodes	0
8676747b715Smrg#define	_XkbListTypes		1
8686747b715Smrg#define	_XkbListCompat		2
8696747b715Smrg#define	_XkbListSymbols		3
8706747b715Smrg#define	_XkbListGeometry	4
8716747b715Smrg#define	_XkbListNumComponents	5
87205b261ecSmrg
87335c4bbdfSmrgextern _X_EXPORT unsigned int XkbDDXLoadKeymapByNames(DeviceIntPtr /* keybd */ ,
87435c4bbdfSmrg                                                      XkbComponentNamesPtr
87535c4bbdfSmrg                                                      /* names */ ,
87635c4bbdfSmrg                                                      unsigned int /* want */ ,
87735c4bbdfSmrg                                                      unsigned int /* need */ ,
87835c4bbdfSmrg                                                      XkbDescPtr *
87935c4bbdfSmrg                                                      /* finfoRtrn */ ,
88035c4bbdfSmrg                                                      char *
88135c4bbdfSmrg                                                      /* keymapNameRtrn */ ,
88235c4bbdfSmrg                                                      int       /* keymapNameRtrnLen */
88335c4bbdfSmrg    );
88435c4bbdfSmrg
88535c4bbdfSmrgextern _X_EXPORT Bool XkbDDXNamesFromRules(DeviceIntPtr /* keybd */ ,
88635c4bbdfSmrg                                           const char * /* rules */ ,
88735c4bbdfSmrg                                           XkbRF_VarDefsPtr /* defs */ ,
88835c4bbdfSmrg                                           XkbComponentNamesPtr /* names */
88935c4bbdfSmrg    );
89035c4bbdfSmrg
89135c4bbdfSmrgextern _X_EXPORT XkbDescPtr XkbCompileKeymap(DeviceIntPtr /* dev */ ,
89235c4bbdfSmrg                                             XkbRMLVOSet *      /* rmlvo */
89335c4bbdfSmrg    );
89435c4bbdfSmrg
89535c4bbdfSmrgextern _X_EXPORT XkbDescPtr XkbCompileKeymapFromString(DeviceIntPtr dev,
89635c4bbdfSmrg						       const char *keymap,
89735c4bbdfSmrg						       int keymap_length);
89835c4bbdfSmrg
89935c4bbdfSmrg#endif                          /* _XKBSRV_H_ */
900