keyboard.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/include/asm-parisc/keyboard.h
  3.  *
  4.  *  Original by Geert Uytterhoeven
  5.  *  updates by Alex deVries <adevries@thepuffingroup.com>
  6.  *  portions copyright (1999) The Puffin Group
  7.  *  mostly rewritten by Philipp Rumpf <prumpf@tux.org>,
  8.  *   Copyright 2000 Philipp Rumpf
  9.  */
  10. /*
  11.  *  We try to keep the amount of generic code as low as possible -
  12.  *  we want to support all HIL, PS/2, and untranslated USB keyboards
  13.  */
  14. #ifndef _PARISC_KEYBOARD_H
  15. #define _PARISC_KEYBOARD_H
  16. #include <linux/config.h>
  17. #ifdef __KERNEL__
  18. #ifdef CONFIG_VT
  19. /*  These are basically the generic functions / variables.  The only
  20.  *  unexpected detail is the initialization sequence for the keyboard
  21.  *  driver is something like this:
  22.  *
  23.  *  detect keyboard port
  24.  *  detect keyboard
  25.  *  call register_kbd_ops 
  26.  *  wait for init_hw
  27.  *
  28.  *  only after init_hw has been called you're allowed to call
  29.  *  handle_scancode.  This means you either have to be extremely
  30.  *  careful or use a global flag or something - I strongly suggest
  31.  *  the latter.    prumpf */
  32. extern struct kbd_ops {
  33. int (*setkeycode)(unsigned int, unsigned int);
  34. int (*getkeycode)(unsigned int);
  35. int (*translate)(unsigned char, unsigned char *, char);
  36. char (*unexpected_up)(unsigned char);
  37. void (*leds)(unsigned char);
  38. void (*init_hw)(void);
  39. unsigned char sysrq_key;
  40. unsigned char *sysrq_xlate;
  41. } *kbd_ops;
  42. #define kbd_setkeycode (*kbd_ops->setkeycode)
  43. #define kbd_getkeycode (*kbd_ops->getkeycode)
  44. #define kbd_translate (*kbd_ops->translate)
  45. #define kbd_unexpected_up (*kbd_ops->unexpected_up)
  46. #define kbd_leds (*kbd_ops->leds)
  47. #define kbd_init_hw (*kbd_ops->init_hw)
  48. #define SYSRQ_KEY (kbd_ops->sysrq_key)
  49. #define kbd_sysrq_xlate (kbd_ops->sysrq_xlate)
  50. extern unsigned char hp_ps2kbd_sysrq_xlate[128];  /* from drivers/char/hp_keyb.c */
  51. extern void register_kbd_ops(struct kbd_ops *ops);
  52. #endif /* CONFIG_VT */
  53. #endif /* __KERNEL__ */
  54. #endif /* __ASMPARISC_KEYBOARD_H */