45e9809aff7304721fddb95654901b32195c9c7avboxsync/************************************************************
45e9809aff7304721fddb95654901b32195c9c7avboxsyncCopyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
45e9809aff7304721fddb95654901b32195c9c7avboxsyncPermission to use, copy, modify, and distribute this
45e9809aff7304721fddb95654901b32195c9c7avboxsyncsoftware and its documentation for any purpose and without
45e9809aff7304721fddb95654901b32195c9c7avboxsyncfee is hereby granted, provided that the above copyright
45e9809aff7304721fddb95654901b32195c9c7avboxsyncnotice appear in all copies and that both that copyright
45e9809aff7304721fddb95654901b32195c9c7avboxsyncnotice and this permission notice appear in supporting
45e9809aff7304721fddb95654901b32195c9c7avboxsyncdocumentation, and that the name of Silicon Graphics not be
45e9809aff7304721fddb95654901b32195c9c7avboxsyncused in advertising or publicity pertaining to distribution
45e9809aff7304721fddb95654901b32195c9c7avboxsyncof the software without specific prior written permission.
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSilicon Graphics makes no representation about the suitability
45e9809aff7304721fddb95654901b32195c9c7avboxsyncof this software for any purpose. It is provided "as is"
45e9809aff7304721fddb95654901b32195c9c7avboxsyncwithout any express or implied warranty.
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
45e9809aff7304721fddb95654901b32195c9c7avboxsyncSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
45e9809aff7304721fddb95654901b32195c9c7avboxsyncAND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
45e9809aff7304721fddb95654901b32195c9c7avboxsyncGRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
45e9809aff7304721fddb95654901b32195c9c7avboxsyncDAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
45e9809aff7304721fddb95654901b32195c9c7avboxsyncOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
45e9809aff7304721fddb95654901b32195c9c7avboxsyncTHE USE OR PERFORMANCE OF THIS SOFTWARE.
45e9809aff7304721fddb95654901b32195c9c7avboxsync********************************************************/
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbVirtualModsToReal SrvXkbVirtualModsToReal
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl)
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbSetCauseXkbReq(c,e,cl) XkbSetCauseReq(c,XkbReqCode,e,cl)
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned /* keycode */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Settings for xkbClientFlags field (used by DIX)
45e9809aff7304721fddb95654901b32195c9c7avboxsync * These flags _must_ not overlap with XkbPCF_*
45e9809aff7304721fddb95654901b32195c9c7avboxsync ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask)
45e9809aff7304721fddb95654901b32195c9c7avboxsync * Settings for flags field
45e9809aff7304721fddb95654901b32195c9c7avboxsynctypedef struct
45e9809aff7304721fddb95654901b32195c9c7avboxsync /* If processInputProc is set to something different than realInputProc,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * UNWRAP and COND_WRAP will not touch processInputProc and update only
45e9809aff7304721fddb95654901b32195c9c7avboxsync * realInputProc. This ensures that
45e9809aff7304721fddb95654901b32195c9c7avboxsync * processInputProc == (frozen ? EnqueueEvent : realInputProc)
45e9809aff7304721fddb95654901b32195c9c7avboxsync * WRAP_PROCESS_INPUT_PROC should only be called during initialization,
45e9809aff7304721fddb95654901b32195c9c7avboxsync * since it may destroy this invariant.
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
45e9809aff7304721fddb95654901b32195c9c7avboxsync oldprocs->realInputProc = device->public.realInputProc; \
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \
45e9809aff7304721fddb95654901b32195c9c7avboxsync if (device->public.processInputProc == device->public.realInputProc)\
45e9809aff7304721fddb95654901b32195c9c7avboxsync oldprocs->realInputProc = device->public.realInputProc; \
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs, backupproc) \
45e9809aff7304721fddb95654901b32195c9c7avboxsync if (device->public.processInputProc == device->public.realInputProc)\
45e9809aff7304721fddb95654901b32195c9c7avboxsync device->public.processInputProc = oldprocs->realInputProc; \
45e9809aff7304721fddb95654901b32195c9c7avboxsync device->public.realInputProc = oldprocs->realInputProc; \
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr) (dev)->devPrivates[xkbDevicePrivateIndex].ptr)
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, pointer);
45e9809aff7304721fddb95654901b32195c9c7avboxsync/***====================================================================***/
45e9809aff7304721fddb95654901b32195c9c7avboxsync/***====================================================================***/
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask)
45e9809aff7304721fddb95654901b32195c9c7avboxsync (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask)
45e9809aff7304721fddb95654901b32195c9c7avboxsync/***====================================================================***/
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern unsigned int XkbXIUnsupported;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n)*sizeof(t)))
45e9809aff7304721fddb95654901b32195c9c7avboxsync ((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t))
45e9809aff7304721fddb95654901b32195c9c7avboxsync { _XkbErrCode= (c); _XkbErrLocation= (l); _XkbErrData= (d); }
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff)))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d)))
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern int DeviceKeyPress,DeviceKeyRelease,DeviceMotionNotify;
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease))
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\
45e9809aff7304721fddb95654901b32195c9c7avboxsync#define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* argc */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char ** /* argv */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* i */
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc);
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* id */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* why_rtrn */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* id */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* why_rtrn */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* id */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* why_rtrn */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* id */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* why_rtrn */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* id */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* why_rtrn */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* nTypes */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* nNewActions */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* what */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* what */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* nInterpret */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nTotalRG */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nTotalAliases */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which*/
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* num_types */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* type_ndx */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* map_count */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* new_num_lvls */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* mods */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* changed */
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern unsigned int XkbMaskForVMask(
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* vmask */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* virtua_mask */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int * /* mask_rtrn */
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern unsigned int XkbAdjustGroup(
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* group */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* key */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* needed */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* key */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* needed */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int * /* needChecksRtrn */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* needed_parts */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* class */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* id */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* needed_parts */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* changed_names */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* changed_maps */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* changed_leds */,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern unsigned int XkbIndicatorsToUpdate(
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned long /* state_changes */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern unsigned int XkbStateChangedFlags(
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned long /* change */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned long /* newValues */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* count */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* what */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* which */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* keycode */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* synthetic */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* event */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* button */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* flags */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* x */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* y */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* button */
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* key */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* key */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* onoff */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* group */
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* rulesFile */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* model */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* layout */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* variant */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* options */
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* str */
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* minKC */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* maxKC */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* key */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* nGroups */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* groups */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* newTypesIn */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* map_width */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* protected */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int * /* types_inout */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* changed */,
45e9809aff7304721fddb95654901b32195c9c7avboxsyncextern unsigned int XkbDDXLoadKeymapByNames(
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* want */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync unsigned int /* need */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* keymapNameRtrn */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync int /* keymapNameRtrnLen */
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* rules */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char ** /* rulesFileRtrn */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* str1 */,
45e9809aff7304721fddb95654901b32195c9c7avboxsync char * /* str2 */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif /* XKBSRV_NEED_FILE_FUNCS */
45e9809aff7304721fddb95654901b32195c9c7avboxsync#endif /* _XKBSRV_H_ */