root/include/linux/keyboard.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. kbd_flag
  2. set_kbd_flag
  3. clr_kbd_flag
  4. chg_kbd_flag
  5. kbd_dead
  6. set_kbd_dead
  7. clr_kbd_dead
  8. chg_kbd_dead
  9. vc_kbd_flag
  10. set_vc_kbd_flag
  11. clr_vc_kbd_flag
  12. chg_vc_kbd_flag

   1 #ifndef __LINUX_KEYBOARD_H
   2 #define __LINUX_KEYBOARD_H
   3 
   4 #include <linux/interrupt.h>
   5 #define set_leds() mark_bh(KEYBOARD_BH)
   6 
   7 /*
   8  * Global flags: things that don't change between virtual consoles.
   9  * This includes things like "key-down" flags - if the shift key is
  10  * down when you change a console, it's down in both.
  11  *
  12  * Note that the KG_CAPSLOCK flags is NOT the flag that decides if
  13  * capslock is on or not: it's just a flag about the key being
  14  * physically down. The actual capslock status is in the local flags.
  15  */
  16 extern unsigned long kbd_flags;
  17 
  18 /*
  19  * These are the hardcoded global flags - use the numbers beyond 16
  20  * for non-standard or keyboard-dependent flags
  21  */
  22 #define KG_LSHIFT       0
  23 #define KG_RSHIFT       1
  24 #define KG_LCTRL        2
  25 #define KG_RCTRL        3
  26 #define KG_LALT         4
  27 #define KG_RALT         5       /* doesn't exist, but.. */
  28 #define KG_LALTGR       6       /* doesn't exist, but.. */
  29 #define KG_RALTGR       7
  30 #define KG_CAPSLOCK     8
  31 
  32 /*
  33  * "dead" keys - prefix key values that are valid only for the next
  34  * character code (sticky shift, E0/E1 special scancodes, diacriticals)
  35  */
  36 extern unsigned long kbd_dead_keys;
  37 extern unsigned long kbd_prev_dead_keys;
  38 
  39 /*
  40  * these are the hardcoded dead key flags
  41  */
  42 #define KGD_E0          0
  43 #define KGD_E1          1
  44 
  45 /*
  46  * kbd->xxx contains the VC-local things (flag settings etc..)
  47  * The low 3 local flags are hardcoded to be the led setting..
  48  */
  49 struct kbd_struct {
  50         unsigned long flags;
  51         unsigned long default_flags;
  52 };
  53 
  54 extern struct kbd_struct kbd_table[];
  55 
  56 /*
  57  * These are the local "softflags", giving actual keyboard modes. The
  58  * three first flags are coded to the led settings.
  59  */
  60 #define VC_SCROLLOCK    0       /* scroll-lock mode */
  61 #define VC_NUMLOCK      1       /* numeric lock mode */
  62 #define VC_CAPSLOCK     2       /* capslock mode */
  63 #define VC_APPLIC       3       /* application key mode */
  64 #define VC_CKMODE       5       /* cursor key mode */
  65 #define VC_REPEAT       6       /* keyboard repeat */
  66 #define VC_RAW          7       /* raw (scancode) mode */
  67 #define VC_CRLF         8       /* 0 - enter sends CR, 1 - enter sends CRLF */
  68 #define VC_META         9       /* 0 - meta, 1 - meta=prefix with ESC */
  69 #define VC_PAUSE        10      /* pause key pressed */
  70 
  71 #define LED_MASK        7
  72 
  73 extern unsigned long kbd_init(unsigned long);
  74 
  75 extern inline int kbd_flag(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  76 {
  77         return kbd_flags & (1 << flag);
  78 }
  79 
  80 extern inline void set_kbd_flag(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  81 {
  82         kbd_flags |= 1 << flag;
  83 }
  84 
  85 extern inline void clr_kbd_flag(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  86 {
  87         kbd_flags &= ~(1 << flag);
  88 }
  89 
  90 extern inline void chg_kbd_flag(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  91 {
  92         kbd_flags ^= 1 << flag;
  93 }
  94 
  95 extern inline int kbd_dead(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  96 {
  97         return kbd_prev_dead_keys & (1 << flag);
  98 }
  99 
 100 extern inline void set_kbd_dead(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 101 {
 102         kbd_dead_keys |= 1 << flag;
 103 }
 104 
 105 extern inline void clr_kbd_dead(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 106 {
 107         kbd_dead_keys &= ~(1 << flag);
 108 }
 109 
 110 extern inline void chg_kbd_dead(int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 111 {
 112         kbd_dead_keys ^= 1 << flag;
 113 }
 114 
 115 extern inline int vc_kbd_flag(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 116 {
 117         return ((kbd->flags >> flag) & 1);
 118 }
 119 
 120 extern inline void set_vc_kbd_flag(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 121 {
 122         kbd->flags |= 1 << flag;
 123 }
 124 
 125 extern inline void clr_vc_kbd_flag(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 126 {
 127         kbd->flags &= ~(1 << flag);
 128 }
 129 
 130 extern inline void chg_vc_kbd_flag(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 131 {
 132         kbd->flags ^= 1 << flag;
 133 }
 134 
 135 #define NR_KEYS 112
 136 #define NR_KEYMAPS 3
 137 extern const int NR_TYPES;
 138 extern const unsigned char max_vals[];
 139 extern unsigned short key_map[NR_KEYMAPS][NR_KEYS];
 140 
 141 #define KT_LATIN        0       /* we depend on this being zero */
 142 #define KT_FN           1
 143 #define KT_SPEC         2
 144 #define KT_PAD          3
 145 #define KT_DEAD         4
 146 #define KT_CONS         5
 147 #define KT_CUR          6
 148 #define KT_SHIFT        7
 149 
 150 #define K(t,v)          (((t)<<8)|(v))
 151 #define KTYP(x)         ((x) >> 8)
 152 #define KVAL(x)         ((x) & 0xff)
 153 
 154 #define K_F1            K(KT_FN,0)
 155 #define K_F2            K(KT_FN,1)
 156 #define K_F3            K(KT_FN,2)
 157 #define K_F4            K(KT_FN,3)
 158 #define K_F5            K(KT_FN,4)
 159 #define K_F6            K(KT_FN,5)
 160 #define K_F7            K(KT_FN,6)
 161 #define K_F8            K(KT_FN,7)
 162 #define K_F9            K(KT_FN,8)
 163 #define K_F10           K(KT_FN,9)
 164 #define K_F11           K(KT_FN,10)
 165 #define K_F12           K(KT_FN,11)
 166 #define K_F13           K(KT_FN,12)
 167 #define K_F14           K(KT_FN,13)
 168 #define K_F15           K(KT_FN,14)
 169 #define K_F16           K(KT_FN,15)
 170 #define K_F17           K(KT_FN,16)
 171 #define K_F18           K(KT_FN,17)
 172 #define K_F19           K(KT_FN,18)
 173 #define K_F20           K(KT_FN,19)
 174 #define K_FIND          K(KT_FN,20)
 175 #define K_INSERT        K(KT_FN,21)
 176 #define K_REMOVE        K(KT_FN,22)
 177 #define K_SELECT        K(KT_FN,23)
 178 #define K_PGUP          K(KT_FN,24)
 179 #define K_PGDN          K(KT_FN,25)
 180 
 181 #define K_HOLE          K(KT_SPEC,0)
 182 #define K_ENTER         K(KT_SPEC,1)
 183 #define K_SH_REGS       K(KT_SPEC,2)
 184 #define K_SH_MEM        K(KT_SPEC,3)
 185 #define K_SH_STAT       K(KT_SPEC,4)
 186 #define K_BREAK         K(KT_SPEC,5)
 187 #define K_CONS          K(KT_SPEC,6)
 188 #define K_CAPS          K(KT_SPEC,7)
 189 #define K_NUM           K(KT_SPEC,8)
 190 #define K_HOLD          K(KT_SPEC,9)
 191 
 192 #define K_P0            K(KT_PAD,0)
 193 #define K_P1            K(KT_PAD,1)
 194 #define K_P2            K(KT_PAD,2)
 195 #define K_P3            K(KT_PAD,3)
 196 #define K_P4            K(KT_PAD,4)
 197 #define K_P5            K(KT_PAD,5)
 198 #define K_P6            K(KT_PAD,6)
 199 #define K_P7            K(KT_PAD,7)
 200 #define K_P8            K(KT_PAD,8)
 201 #define K_P9            K(KT_PAD,9)
 202 #define K_PPLUS         K(KT_PAD,10)    /* key-pad plus                    */
 203 #define K_PMINUS        K(KT_PAD,11)    /* key-pad minus                   */
 204 #define K_PSTAR         K(KT_PAD,12)    /* key-pad asterisk (star)         */
 205 #define K_PSLASH        K(KT_PAD,13)    /* key-pad slash                   */
 206 #define K_PENTER        K(KT_PAD,14)    /* key-pad enter                   */
 207 #define K_PCOMMA        K(KT_PAD,15)    /* key-pad comma: kludge...        */
 208 #define K_PDOT          K(KT_PAD,16)    /* key-pad dot (period): kludge... */
 209 
 210 #define K_DGRAVE        K(KT_DEAD,0)
 211 #define K_DACUTE        K(KT_DEAD,1)
 212 #define K_DCIRCM        K(KT_DEAD,2)
 213 #define K_DTILDE        K(KT_DEAD,3)
 214 #define K_DDIERE        K(KT_DEAD,4)
 215 
 216 #define K_DOWN          K(KT_CUR,0)
 217 #define K_LEFT          K(KT_CUR,1)
 218 #define K_RIGHT         K(KT_CUR,2)
 219 #define K_UP            K(KT_CUR,3)
 220 
 221 #define K_LSHIFT        K(KT_SHIFT,KG_LSHIFT)
 222 #define K_RSHIFT        K(KT_SHIFT,KG_RSHIFT)
 223 #define K_LCTRL         K(KT_SHIFT,KG_LCTRL)
 224 #define K_RCTRL         K(KT_SHIFT,KG_RCTRL)
 225 #define K_LALT          K(KT_SHIFT,KG_LALT)
 226 #define K_RALT          K(KT_SHIFT,KG_RALT)
 227 #define K_LALTGR        K(KT_SHIFT,KG_LALTGR)
 228 #define K_RALTGR        K(KT_SHIFT,KG_RALTGR)
 229 
 230 #define K_ALT           K_LALT
 231 #define K_ALTGR         K_RALTGR
 232 
 233 #endif

/* [previous][next][first][last][top][bottom][index][help] */