root/drivers/char/kbd_kern.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. show_console
  2. set_console
  3. set_leds
  4. vc_kbd_mode
  5. vc_kbd_led
  6. set_vc_kbd_mode
  7. set_vc_kbd_led
  8. clr_vc_kbd_mode
  9. clr_vc_kbd_led
  10. chg_vc_kbd_lock
  11. chg_vc_kbd_slock
  12. chg_vc_kbd_mode
  13. chg_vc_kbd_led

   1 #ifndef _KBD_KERN_H
   2 #define _KBD_KERN_H
   3 
   4 #include <linux/interrupt.h>
   5 #include <linux/keyboard.h>
   6 
   7 extern int shift_state;
   8 
   9 extern char *func_table[MAX_NR_FUNC];
  10 extern char func_buf[];
  11 extern char *funcbufptr;
  12 extern int funcbufsize, funcbufleft;
  13 
  14 /*
  15  * kbd->xxx contains the VC-local things (flag settings etc..)
  16  *
  17  * Note: externally visible are LED_SCR, LED_NUM, LED_CAP defined in kd.h
  18  *       The code in KDGETLED / KDSETLED depends on the internal and
  19  *       external order being the same.
  20  *
  21  * Note: lockstate is used as index in the array key_map.
  22  */
  23 struct kbd_struct {
  24 
  25         unsigned char lockstate;
  26 /* 8 modifiers - the names do not have any meaning at all;
  27    they can be associated to arbitrarily chosen keys */
  28 #define VC_SHIFTLOCK    KG_SHIFT        /* shift lock mode */
  29 #define VC_ALTGRLOCK    KG_ALTGR        /* altgr lock mode */
  30 #define VC_CTRLLOCK     KG_CTRL         /* control lock mode */
  31 #define VC_ALTLOCK      KG_ALT          /* alt lock mode */
  32 #define VC_SHIFTLLOCK   KG_SHIFTL       /* shiftl lock mode */
  33 #define VC_SHIFTRLOCK   KG_SHIFTR       /* shiftr lock mode */
  34 #define VC_CTRLLLOCK    KG_CTRLL        /* ctrll lock mode */
  35 #define VC_CTRLRLOCK    KG_CTRLR        /* ctrlr lock mode */
  36         unsigned char slockstate;       /* for `sticky' Shift, Ctrl, etc. */
  37 
  38         unsigned char ledmode:2;        /* one 2-bit value */
  39 #define LED_SHOW_FLAGS 0        /* traditional state */
  40 #define LED_SHOW_IOCTL 1        /* only change leds upon ioctl */
  41 #define LED_SHOW_MEM 2          /* `heartbeat': peek into memory */
  42 
  43         unsigned char ledflagstate:3;   /* flags, not lights */
  44         unsigned char default_ledflagstate:3;
  45 #define VC_SCROLLOCK    0       /* scroll-lock mode */
  46 #define VC_NUMLOCK      1       /* numeric lock mode */
  47 #define VC_CAPSLOCK     2       /* capslock mode */
  48 
  49         unsigned char kbdmode:2;        /* one 2-bit value */
  50 #define VC_XLATE        0       /* translate keycodes using keymap */
  51 #define VC_MEDIUMRAW    1       /* medium raw (keycode) mode */
  52 #define VC_RAW          2       /* raw (scancode) mode */
  53 #define VC_UNICODE      3       /* Unicode mode */
  54 
  55         unsigned char modeflags:5;
  56 #define VC_APPLIC       0       /* application key mode */
  57 #define VC_CKMODE       1       /* cursor key mode */
  58 #define VC_REPEAT       2       /* keyboard repeat */
  59 #define VC_CRLF         3       /* 0 - enter sends CR, 1 - enter sends CRLF */
  60 #define VC_META         4       /* 0 - meta, 1 - meta=prefix with ESC */
  61 };
  62 
  63 extern struct kbd_struct kbd_table[];
  64 
  65 extern int kbd_init(void);
  66 
  67 extern unsigned char getledstate(void);
  68 extern void setledstate(struct kbd_struct *kbd, unsigned int led);
  69 
  70 extern int do_poke_blanked_console;
  71 
  72 extern inline void show_console(void)
     /* [previous][next][first][last][top][bottom][index][help] */
  73 {
  74         do_poke_blanked_console = 1;
  75         mark_bh(CONSOLE_BH);
  76 }
  77 
  78 extern inline void set_console(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  79 {
  80         want_console = nr;
  81         mark_bh(CONSOLE_BH);
  82 }
  83 
  84 extern inline void set_leds(void)
     /* [previous][next][first][last][top][bottom][index][help] */
  85 {
  86         mark_bh(KEYBOARD_BH);
  87 }
  88 
  89 extern inline int vc_kbd_mode(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  90 {
  91         return ((kbd->modeflags >> flag) & 1);
  92 }
  93 
  94 extern inline int vc_kbd_led(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
  95 {
  96         return ((kbd->ledflagstate >> flag) & 1);
  97 }
  98 
  99 extern inline void set_vc_kbd_mode(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 100 {
 101         kbd->modeflags |= 1 << flag;
 102 }
 103 
 104 extern inline void set_vc_kbd_led(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 105 {
 106         kbd->ledflagstate |= 1 << flag;
 107 }
 108 
 109 extern inline void clr_vc_kbd_mode(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 110 {
 111         kbd->modeflags &= ~(1 << flag);
 112 }
 113 
 114 extern inline void clr_vc_kbd_led(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 115 {
 116         kbd->ledflagstate &= ~(1 << flag);
 117 }
 118 
 119 extern inline void chg_vc_kbd_lock(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 120 {
 121         kbd->lockstate ^= 1 << flag;
 122 }
 123 
 124 extern inline void chg_vc_kbd_slock(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 125 {
 126         kbd->slockstate ^= 1 << flag;
 127 }
 128 
 129 extern inline void chg_vc_kbd_mode(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 130 {
 131         kbd->modeflags ^= 1 << flag;
 132 }
 133 
 134 extern inline void chg_vc_kbd_led(struct kbd_struct * kbd, int flag)
     /* [previous][next][first][last][top][bottom][index][help] */
 135 {
 136         kbd->ledflagstate ^= 1 << flag;
 137 }
 138 
 139 #define U(x) ((x) ^ 0xf000)
 140 
 141 #endif

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