]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/include/extensions/XKBstr.h
Removed Xserver/ directory, it does nothing useful ATM.
[rdpsrv] / Xserver / include / extensions / XKBstr.h
diff --git a/Xserver/include/extensions/XKBstr.h b/Xserver/include/extensions/XKBstr.h
deleted file mode 100644 (file)
index 29fde0a..0000000
+++ /dev/null
@@ -1,614 +0,0 @@
-/* $TOG: XKBstr.h /main/16 1997/06/10 06:53:12 kaleb $ */
-/************************************************************
-Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
-
-Permission to use, copy, modify, and distribute this
-software and its documentation for any purpose and without
-fee is hereby granted, provided that the above copyright
-notice appear in all copies and that both that copyright
-notice and this permission notice appear in supporting
-documentation, and that the name of Silicon Graphics not be 
-used in advertising or publicity pertaining to distribution 
-of the software without specific prior written permission.
-Silicon Graphics makes no representation about the suitability 
-of this software for any purpose. It is provided "as is"
-without any express or implied warranty.
-
-SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
-AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
-GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
-DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
-OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
-THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-********************************************************/
-
-#ifndef _XKBSTR_H_
-#define        _XKBSTR_H_
-
-#include <X11/extensions/XKB.h>
-
-#define        XkbCharToInt(v)         ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f))
-#define        XkbIntTo2Chars(i,h,l)   (((h)=((i>>8)&0xff)),((l)=((i)&0xff)))
-
-#if defined(WORD64) && defined(UNSIGNEDBITFIELDS)
-#define        Xkb2CharsToInt(h,l)     ((h)&0x80?(int)(((h)<<8)|(l)|(~0xffff)):\
-                                         (int)(((h)<<8)|(l)&0x7fff))
-#else
-#define        Xkb2CharsToInt(h,l)     ((short)(((h)<<8)|(l)))
-#endif
-
-       /*
-        * Common data structures and access macros
-        */
-
-typedef struct _XkbStateRec {
-       unsigned char   group;
-       unsigned char   locked_group;
-       unsigned short  base_group;
-       unsigned short  latched_group;
-       unsigned char   mods;
-       unsigned char   base_mods;
-       unsigned char   latched_mods;
-       unsigned char   locked_mods;
-       unsigned char   compat_state;
-       unsigned char   grab_mods;
-       unsigned char   compat_grab_mods;
-       unsigned char   lookup_mods;
-       unsigned char   compat_lookup_mods;
-       unsigned short  ptr_buttons;
-} XkbStateRec,*XkbStatePtr;
-#define        XkbModLocks(s)   ((s)->locked_mods)
-#define        XkbStateMods(s)  ((s)->base_mods|(s)->latched_mods|XkbModLocks(s))
-#define        XkbGroupLock(s)  ((s)->locked_group)
-#define        XkbStateGroup(s) ((s)->base_group+(s)->latched_group+XkbGroupLock(s))
-#define        XkbStateFieldFromRec(s) XkbBuildCoreState((s)->lookup_mods,(s)->group)
-#define        XkbGrabStateFromRec(s)  XkbBuildCoreState((s)->grab_mods,(s)->group)
-
-typedef struct _XkbMods {
-       unsigned char   mask;   /* effective mods */
-       unsigned char   real_mods;
-       unsigned short  vmods;
-} XkbModsRec,*XkbModsPtr;
-
-typedef struct _XkbKTMapEntry {
-       Bool            active;
-       unsigned char   level;
-       XkbModsRec      mods;
-} XkbKTMapEntryRec,*XkbKTMapEntryPtr;
-
-typedef struct _XkbKeyType {
-       XkbModsRec              mods;
-       unsigned char           num_levels;
-       unsigned char           map_count;
-       XkbKTMapEntryPtr        map;
-       XkbModsPtr              preserve;
-       Atom                    name;
-       Atom *                  level_names;
-} XkbKeyTypeRec, *XkbKeyTypePtr;
-
-#define        XkbNumGroups(g)                 ((g)&0x0f)
-#define        XkbOutOfRangeGroupInfo(g)       ((g)&0xf0)
-#define        XkbOutOfRangeGroupAction(g)     ((g)&0xc0)
-#define        XkbOutOfRangeGroupNumber(g)     (((g)&0x30)>>4)
-#define        XkbSetGroupInfo(g,w,n)  (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f))
-#define        XkbSetNumGroups(g,n)    (((g)&0xf0)|((n)&0x0f))
-
-       /*
-        * Structures and access macros used primarily by the server
-        */
-
-typedef struct _XkbBehavior {
-       unsigned char   type;
-       unsigned char   data;
-} XkbBehavior;
-
-#define        XkbAnyActionDataSize 7
-typedef        struct _XkbAnyAction {
-       unsigned char   type;
-       unsigned char   data[XkbAnyActionDataSize];
-} XkbAnyAction;
-
-typedef struct _XkbModAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   mask;
-       unsigned char   real_mods;
-       unsigned char   vmods1;
-       unsigned char   vmods2;
-} XkbModAction;
-#define        XkbModActionVMods(a)      \
-       ((short)(((a)->vmods1<<8)|((a)->vmods2)))
-#define        XkbSetModActionVMods(a,v) \
-       (((a)->vmods1=(((v)>>8)&0xff)),(a)->vmods2=((v)&0xff))
-
-typedef struct _XkbGroupAction {
-       unsigned char   type;
-       unsigned char   flags;
-       char            group_XXX;
-} XkbGroupAction;
-#define        XkbSAGroup(a)           (XkbCharToInt((a)->group_XXX))
-#define        XkbSASetGroup(a,g)      ((a)->group_XXX=(g))
-
-typedef struct _XkbISOAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   mask;
-       unsigned char   real_mods;
-       char            group_XXX;
-       unsigned char   affect;
-       unsigned char   vmods1;
-       unsigned char   vmods2;
-} XkbISOAction;
-
-typedef struct _XkbPtrAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   high_XXX;
-       unsigned char   low_XXX;
-       unsigned char   high_YYY;
-       unsigned char   low_YYY;
-} XkbPtrAction;
-#define        XkbPtrActionX(a)      (Xkb2CharsToInt((a)->high_XXX,(a)->low_XXX))
-#define        XkbPtrActionY(a)      (Xkb2CharsToInt((a)->high_YYY,(a)->low_YYY))
-#define        XkbSetPtrActionX(a,x) (XkbIntTo2Chars(x,(a)->high_XXX,(a)->low_XXX))
-#define        XkbSetPtrActionY(a,y) (XkbIntTo2Chars(y,(a)->high_YYY,(a)->low_YYY))
-
-typedef struct _XkbPtrBtnAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   count;
-       unsigned char   button;
-} XkbPtrBtnAction;
-
-typedef struct _XkbPtrDfltAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   affect;
-       char            valueXXX;
-} XkbPtrDfltAction;
-#define        XkbSAPtrDfltValue(a)            (XkbCharToInt((a)->valueXXX))
-#define        XkbSASetPtrDfltValue(a,c)       ((a)->valueXXX= ((c)&0xff))
-
-typedef struct _XkbSwitchScreenAction {
-       unsigned char   type;
-       unsigned char   flags;
-       char            screenXXX;
-} XkbSwitchScreenAction;
-#define        XkbSAScreen(a)                  (XkbCharToInt((a)->screenXXX))
-#define        XkbSASetScreen(a,s)             ((a)->screenXXX= ((s)&0xff))
-
-typedef struct _XkbCtrlsAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   ctrls3;
-       unsigned char   ctrls2;
-       unsigned char   ctrls1;
-       unsigned char   ctrls0;
-} XkbCtrlsAction;
-#define        XkbActionSetCtrls(a,c)  (((a)->ctrls3=(((c)>>24)&0xff)),\
-                                       ((a)->ctrls2=(((c)>>16)&0xff)),\
-                                       ((a)->ctrls1=(((c)>>8)&0xff)),\
-                                       ((a)->ctrls0=((c)&0xff)))
-#define        XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|\
-                          (((unsigned int)(a)->ctrls2)<<16)|\
-                          (((unsigned int)(a)->ctrls1)<<8)|\
-                          ((unsigned int)((a)->ctrls0)))
-
-typedef struct _XkbMessageAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   message[6];
-} XkbMessageAction;
-
-typedef struct _XkbRedirectKeyAction {
-       unsigned char   type;
-       unsigned char   new_key;
-       unsigned char   mods_mask;
-       unsigned char   mods;
-       unsigned char   vmods_mask0;
-       unsigned char   vmods_mask1;
-       unsigned char   vmods0;
-       unsigned char   vmods1;
-} XkbRedirectKeyAction;
-
-#define        XkbSARedirectVMods(a)           ((((unsigned int)(a)->vmods1)<<8)|\
-                                       ((unsigned int)(a)->vmods0))
-#define        XkbSARedirectSetVMods(a,m)      (((a)->vmods_mask1=(((m)>>8)&0xff)),\
-                                        ((a)->vmods_mask0=((m)&0xff)))
-#define        XkbSARedirectVModsMask(a)       ((((unsigned int)(a)->vmods_mask1)<<8)|\
-                                       ((unsigned int)(a)->vmods_mask0))
-#define        XkbSARedirectSetVModsMask(a,m)  (((a)->vmods_mask1=(((m)>>8)&0xff)),\
-                                        ((a)->vmods_mask0=((m)&0xff)))
-
-typedef struct _XkbDeviceBtnAction {
-       unsigned char   type;
-       unsigned char   flags;
-       unsigned char   count;
-       unsigned char   button;
-       unsigned char   device;
-} XkbDeviceBtnAction;
-
-typedef struct _XkbDeviceValuatorAction {
-       unsigned char   type;
-       unsigned char   device;
-       unsigned char   v1_what;
-       unsigned char   v1_ndx;
-       unsigned char   v1_value;
-       unsigned char   v2_what;
-       unsigned char   v2_ndx;
-       unsigned char   v2_value;
-} XkbDeviceValuatorAction;
-
-typedef        union _XkbAction {
-       XkbAnyAction            any;
-       XkbModAction            mods;
-       XkbGroupAction          group;
-       XkbISOAction            iso;
-       XkbPtrAction            ptr;
-       XkbPtrBtnAction         btn;
-       XkbPtrDfltAction        dflt;
-       XkbSwitchScreenAction   screen;
-       XkbCtrlsAction          ctrls;
-       XkbMessageAction        msg;
-       XkbRedirectKeyAction    redirect;
-       XkbDeviceBtnAction      devbtn;
-       XkbDeviceValuatorAction devval;
-       unsigned char           type;
-} XkbAction;
-
-typedef        struct _XkbControls {
-       unsigned char   mk_dflt_btn;
-       unsigned char   num_groups;
-       unsigned char   groups_wrap;
-       XkbModsRec      internal;
-       XkbModsRec      ignore_lock;
-       unsigned int    enabled_ctrls;
-       unsigned short  repeat_delay;
-       unsigned short  repeat_interval;
-       unsigned short  slow_keys_delay;
-       unsigned short  debounce_delay;
-       unsigned short  mk_delay;
-       unsigned short  mk_interval;
-       unsigned short  mk_time_to_max;
-       unsigned short  mk_max_speed;
-                short  mk_curve;
-       unsigned short  ax_options;
-       unsigned short  ax_timeout;
-       unsigned short  axt_opts_mask;
-       unsigned short  axt_opts_values;
-       unsigned int    axt_ctrls_mask;
-       unsigned int    axt_ctrls_values;
-       unsigned char   per_key_repeat[XkbPerKeyBitArraySize];
-} XkbControlsRec, *XkbControlsPtr;
-
-#define        XkbAX_AnyFeedback(c)    ((c)->enabled_ctrls&XkbAccessXFeedbackMask)
-#define        XkbAX_NeedOption(c,w)   ((c)->ax_options&(w))
-#define        XkbAX_NeedFeedback(c,w) (XkbAX_AnyFeedback(c)&&XkbAX_NeedOption(c,w))
-
-typedef struct _XkbServerMapRec {
-       unsigned short           num_acts;
-       unsigned short           size_acts;
-       XkbAction               *acts;
-
-       XkbBehavior             *behaviors;
-       unsigned short          *key_acts;
-#if defined(__cplusplus) || defined(c_plusplus)
-       /* explicit is a C++ reserved word */
-       unsigned char           *c_explicit;
-#else
-       unsigned char           *explicit;
-#endif
-       unsigned char            vmods[XkbNumVirtualMods];
-       unsigned short          *vmodmap;
-} XkbServerMapRec, *XkbServerMapPtr;
-
-#define        XkbSMKeyActionsPtr(m,k) (&(m)->acts[(m)->key_acts[k]])
-
-       /*
-        * Structures and access macros used primarily by clients
-        */
-
-typedef        struct _XkbSymMapRec {
-       unsigned char    kt_index[XkbNumKbdGroups];
-       unsigned char    group_info;
-       unsigned char    width;
-       unsigned short   offset;
-} XkbSymMapRec, *XkbSymMapPtr;
-
-typedef struct _XkbClientMapRec {
-       unsigned char            size_types;
-       unsigned char            num_types;
-       XkbKeyTypePtr            types;
-
-       unsigned short           size_syms;
-       unsigned short           num_syms;
-       KeySym                  *syms;
-       XkbSymMapPtr             key_sym_map;
-
-       unsigned char           *modmap;
-} XkbClientMapRec, *XkbClientMapPtr;
-
-#define        XkbCMKeyGroupInfo(m,k)  ((m)->key_sym_map[k].group_info)
-#define        XkbCMKeyNumGroups(m,k)   (XkbNumGroups((m)->key_sym_map[k].group_info))
-#define        XkbCMKeyGroupWidth(m,k,g) (XkbCMKeyType(m,k,g)->num_levels)
-#define        XkbCMKeyGroupsWidth(m,k) ((m)->key_sym_map[k].width)
-#define        XkbCMKeyTypeIndex(m,k,g) ((m)->key_sym_map[k].kt_index[g&0x3])
-#define        XkbCMKeyType(m,k,g)      (&(m)->types[XkbCMKeyTypeIndex(m,k,g)])
-#define        XkbCMKeyNumSyms(m,k) (XkbCMKeyGroupsWidth(m,k)*XkbCMKeyNumGroups(m,k))
-#define        XkbCMKeySymsOffset(m,k) ((m)->key_sym_map[k].offset)
-#define        XkbCMKeySymsPtr(m,k)    (&(m)->syms[XkbCMKeySymsOffset(m,k)])
-
-       /*
-        * Compatibility structures and access macros
-        */
-
-typedef struct _XkbSymInterpretRec {
-       KeySym          sym;
-       unsigned char   flags;
-       unsigned char   match;
-       unsigned char   mods;
-       unsigned char   virtual_mod;
-       XkbAnyAction    act;
-} XkbSymInterpretRec,*XkbSymInterpretPtr;
-
-typedef struct _XkbCompatMapRec {
-       XkbSymInterpretPtr       sym_interpret;
-       XkbModsRec               groups[XkbNumKbdGroups];
-       unsigned short           num_si;
-       unsigned short           size_si;
-} XkbCompatMapRec, *XkbCompatMapPtr;
-
-typedef struct _XkbIndicatorMapRec {
-       unsigned char   flags;
-       unsigned char   which_groups;
-       unsigned char   groups;
-       unsigned char   which_mods;
-       XkbModsRec      mods;
-       unsigned int    ctrls;
-} XkbIndicatorMapRec, *XkbIndicatorMapPtr;
-
-#define        XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&\
-                           (((i)->which_groups&&(i)->groups)||\
-                            ((i)->which_mods&&(i)->mods.mask)||\
-                            ((i)->ctrls)))
-#define        XkbIM_InUse(i)  (((i)->flags)||((i)->which_groups)||\
-                                       ((i)->which_mods)||((i)->ctrls))
-       
-
-typedef struct _XkbIndicatorRec {
-       unsigned long           phys_indicators;
-       XkbIndicatorMapRec      maps[XkbNumIndicators];
-} XkbIndicatorRec,*XkbIndicatorPtr;
-
-typedef        struct _XkbKeyNameRec {
-       char    name[XkbKeyNameLength];
-} XkbKeyNameRec,*XkbKeyNamePtr;
-
-typedef struct _XkbKeyAliasRec {
-       char    real[XkbKeyNameLength];
-       char    alias[XkbKeyNameLength];
-} XkbKeyAliasRec,*XkbKeyAliasPtr;
-
-       /*
-        * Names for everything 
-        */
-typedef struct _XkbNamesRec {
-       Atom              keycodes;
-       Atom              geometry;
-       Atom              symbols;
-       Atom              types;
-       Atom              compat;
-       Atom              vmods[XkbNumVirtualMods];
-       Atom              indicators[XkbNumIndicators];
-       Atom              groups[XkbNumKbdGroups];
-       XkbKeyNamePtr     keys;
-       XkbKeyAliasPtr    key_aliases;
-       Atom             *radio_groups;
-       Atom              phys_symbols;
-
-       unsigned char     num_keys;
-       unsigned char     num_key_aliases;
-       unsigned short    num_rg;
-} XkbNamesRec,*XkbNamesPtr;
-
-typedef        struct _XkbGeometry     *XkbGeometryPtr;
-       /*
-        * Tie it all together into one big keyboard description
-        */
-typedef        struct _XkbDesc {
-       struct _XDisplay *      dpy;
-       unsigned short          flags;
-       unsigned short          device_spec;
-       KeyCode                 min_key_code;
-       KeyCode                 max_key_code;
-
-       XkbControlsPtr          ctrls;
-       XkbServerMapPtr         server;
-       XkbClientMapPtr         map;
-       XkbIndicatorPtr         indicators;
-       XkbNamesPtr             names;
-       XkbCompatMapPtr         compat;
-       XkbGeometryPtr          geom;
-} XkbDescRec, *XkbDescPtr;
-#define        XkbKeyKeyTypeIndex(d,k,g)       (XkbCMKeyTypeIndex((d)->map,k,g))
-#define        XkbKeyKeyType(d,k,g)            (XkbCMKeyType((d)->map,k,g))
-#define        XkbKeyGroupWidth(d,k,g)         (XkbCMKeyGroupWidth((d)->map,k,g))
-#define        XkbKeyGroupsWidth(d,k)          (XkbCMKeyGroupsWidth((d)->map,k))
-#define        XkbKeyGroupInfo(d,k)            (XkbCMKeyGroupInfo((d)->map,(k)))
-#define        XkbKeyNumGroups(d,k)            (XkbCMKeyNumGroups((d)->map,(k)))
-#define        XkbKeyNumSyms(d,k)              (XkbCMKeyNumSyms((d)->map,(k)))
-#define        XkbKeySymsPtr(d,k)              (XkbCMKeySymsPtr((d)->map,(k)))
-#define        XkbKeySym(d,k,n)                (XkbKeySymsPtr(d,k)[n])
-#define        XkbKeySymEntry(d,k,sl,g) \
-       (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))))
-#define        XkbKeyAction(d,k,n) \
-       (XkbKeyHasActions(d,k)?&XkbKeyActionsPtr(d,k)[n]:NULL)
-#define        XkbKeyActionEntry(d,k,sl,g) \
-       (XkbKeyHasActions(d,k)?\
-               XkbKeyAction(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl))):NULL)
-
-#define        XkbKeyHasActions(d,k)   ((d)->server->key_acts[k]!=0)
-#define        XkbKeyNumActions(d,k)   (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1)
-#define        XkbKeyActionsPtr(d,k)   (XkbSMKeyActionsPtr((d)->server,k))
-#define        XkbKeycodeInRange(d,k)  (((k)>=(d)->min_key_code)&&\
-                                ((k)<=(d)->max_key_code))
-#define        XkbNumKeys(d)           ((d)->max_key_code-(d)->min_key_code+1)
-
-
-       /*
-        * The following structures can be used to track changes
-        * to a keyboard device
-        */
-typedef struct _XkbMapChanges {
-       unsigned short           changed;
-       KeyCode                  min_key_code;
-       KeyCode                  max_key_code;
-       unsigned char            first_type;
-       unsigned char            num_types;
-       KeyCode                  first_key_sym;
-       unsigned char            num_key_syms;
-       KeyCode                  first_key_act;
-       unsigned char            num_key_acts;
-       KeyCode                  first_key_behavior;
-       unsigned char            num_key_behaviors;
-       KeyCode                  first_key_explicit;
-       unsigned char            num_key_explicit;
-       KeyCode                  first_modmap_key;
-       unsigned char            num_modmap_keys;
-       KeyCode                  first_vmodmap_key;
-       unsigned char            num_vmodmap_keys;
-       unsigned char            pad;
-       unsigned short           vmods;
-} XkbMapChangesRec,*XkbMapChangesPtr;
-
-typedef struct _XkbControlsChanges {
-       unsigned int             changed_ctrls;
-       unsigned int             enabled_ctrls_changes;
-       Bool                     num_groups_changed;
-} XkbControlsChangesRec,*XkbControlsChangesPtr;
-
-typedef struct _XkbIndicatorChanges {
-       unsigned int             state_changes;
-       unsigned int             map_changes;
-} XkbIndicatorChangesRec,*XkbIndicatorChangesPtr;
-
-typedef struct _XkbNameChanges {
-       unsigned int            changed;
-       unsigned char           first_type;
-       unsigned char           num_types;
-       unsigned char           first_lvl;
-       unsigned char           num_lvls;
-       unsigned char           num_aliases;
-       unsigned char           num_rg;
-       unsigned char           first_key;
-       unsigned char           num_keys;
-       unsigned short          changed_vmods;
-       unsigned long           changed_indicators;
-       unsigned char           changed_groups;
-} XkbNameChangesRec,*XkbNameChangesPtr;
-
-typedef struct _XkbCompatChanges {
-       unsigned char           changed_groups;
-       unsigned short          first_si;
-       unsigned short          num_si;
-} XkbCompatChangesRec,*XkbCompatChangesPtr;
-
-typedef struct _XkbChanges {
-       unsigned short           device_spec;
-       unsigned short           state_changes;
-       XkbMapChangesRec         map;
-       XkbControlsChangesRec    ctrls;
-       XkbIndicatorChangesRec   indicators;
-       XkbNameChangesRec        names;
-       XkbCompatChangesRec      compat;
-} XkbChangesRec, *XkbChangesPtr;
-
-       /*
-        * These data structures are used to construct a keymap from 
-        * a set of components or to list components in the server
-        * database.
-        */
-typedef struct _XkbComponentNames {
-       char *                   keymap;
-       char *                   keycodes;
-       char *                   types;
-       char *                   compat;
-       char *                   symbols;
-       char *                   geometry;
-} XkbComponentNamesRec, *XkbComponentNamesPtr;
-
-typedef struct _XkbComponentName {
-       unsigned short          flags;
-       char *                  name;
-} XkbComponentNameRec,*XkbComponentNamePtr;
-
-typedef struct _XkbComponentList {
-       int                     num_keymaps;
-       int                     num_keycodes;
-       int                     num_types;
-       int                     num_compat;
-       int                     num_symbols;
-       int                     num_geometry;
-       XkbComponentNamePtr     keymaps;
-       XkbComponentNamePtr     keycodes;
-       XkbComponentNamePtr     types;
-       XkbComponentNamePtr     compat;
-       XkbComponentNamePtr     symbols;
-       XkbComponentNamePtr     geometry;
-} XkbComponentListRec, *XkbComponentListPtr;
-
-       /*
-        * The following data structures describe and track changes to a 
-        * non-keyboard extension device 
-        */
-typedef struct _XkbDeviceLedInfo {
-       unsigned short                  led_class;
-       unsigned short                  led_id;
-       unsigned int                    phys_indicators;
-       unsigned int                    maps_present;
-       unsigned int                    names_present;
-       unsigned int                    state;
-       Atom                            names[XkbNumIndicators];
-       XkbIndicatorMapRec              maps[XkbNumIndicators];
-} XkbDeviceLedInfoRec,*XkbDeviceLedInfoPtr;
-
-typedef struct _XkbDeviceInfo {
-       char *                  name;
-       Atom                    type;
-       unsigned short          device_spec;
-       Bool                    has_own_state;
-       unsigned short          supported;
-       unsigned short          unsupported;
-
-       unsigned short          num_btns;
-       XkbAction *             btn_acts;
-
-       unsigned short          sz_leds;
-       unsigned short          num_leds;
-       unsigned short          dflt_kbd_fb;
-       unsigned short          dflt_led_fb;
-       XkbDeviceLedInfoPtr     leds;
-} XkbDeviceInfoRec,*XkbDeviceInfoPtr;
-
-#define        XkbXI_DevHasBtnActs(d)  (((d)->num_btns>0)&&((d)->btn_acts!=NULL))
-#define        XkbXI_LegalDevBtn(d,b)  (XkbXI_DevHasBtnActs(d)&&((b)<(d)->num_btns))
-#define        XkbXI_DevHasLeds(d)     (((d)->num_leds>0)&&((d)->leds!=NULL))
-
-typedef struct _XkbDeviceLedChanges {
-       unsigned short          led_class;
-       unsigned short          led_id;
-       unsigned int            defined; /* names or maps changed */
-       struct _XkbDeviceLedChanges *next;
-} XkbDeviceLedChangesRec,*XkbDeviceLedChangesPtr;
-
-typedef struct _XkbDeviceChanges {
-       unsigned int            changed;
-       unsigned short          first_btn;
-       unsigned short          num_btns;
-       XkbDeviceLedChangesRec  leds;
-} XkbDeviceChangesRec,*XkbDeviceChangesPtr;
-
-#endif /* _XKBSTR_H_ */