keyboard.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. */
  8. /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  9. keyboard.h
  10. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  11. Forrest Yu, 2005
  12. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
  13. #ifndef _TINIX_KEYBOARD_H_
  14. #define _TINIX_KEYBOARD_H_
  15. /************************************************************************/
  16. /* Macros Declaration */
  17. /************************************************************************/
  18. #define KB_IN_BYTES 32 /* size of keyboard input buffer */
  19. #define MAP_COLS 3 /* Number of columns in keymap */
  20. #define NR_SCAN_CODES 0x80 /* Number of scan codes (rows in keymap) */
  21. #define FLAG_BREAK 0x0080 /* Break Code */
  22. #define FLAG_EXT 0x0100 /* Normal function keys */
  23. #define FLAG_SHIFT_L 0x0200 /* Shift key */
  24. #define FLAG_SHIFT_R 0x0400 /* Shift key */
  25. #define FLAG_CTRL_L 0x0800 /* Control key */
  26. #define FLAG_CTRL_R 0x1000 /* Control key */
  27. #define FLAG_ALT_L 0x2000 /* Alternate key */
  28. #define FLAG_ALT_R 0x4000 /* Alternate key */
  29. #define FLAG_PAD 0x8000 /* keys in num pad */
  30. #define MASK_RAW 0x01FF /* raw key value = code passed to tty & MASK_RAW
  31. the value can be found either in the keymap column 0
  32. or in the list below */
  33. /* Special keys */
  34. #define ESC (0x01 + FLAG_EXT) /* Esc */
  35. #define TAB (0x02 + FLAG_EXT) /* Tab */
  36. #define ENTER (0x03 + FLAG_EXT) /* Enter */
  37. #define BACKSPACE (0x04 + FLAG_EXT) /* BackSpace */
  38. #define GUI_L (0x05 + FLAG_EXT) /* L GUI */
  39. #define GUI_R (0x06 + FLAG_EXT) /* R GUI */
  40. #define APPS (0x07 + FLAG_EXT) /* APPS */
  41. /* Shift, Ctrl, Alt */
  42. #define SHIFT_L (0x08 + FLAG_EXT) /* L Shift */
  43. #define SHIFT_R (0x09 + FLAG_EXT) /* R Shift */
  44. #define CTRL_L (0x0A + FLAG_EXT) /* L Ctrl */
  45. #define CTRL_R (0x0B + FLAG_EXT) /* R Ctrl */
  46. #define ALT_L (0x0C + FLAG_EXT) /* L Alt */
  47. #define ALT_R (0x0D + FLAG_EXT) /* R Alt */
  48. /* Lock keys */
  49. #define CAPS_LOCK (0x0E + FLAG_EXT) /* Caps Lock */
  50. #define NUM_LOCK (0x0F + FLAG_EXT) /* Number Lock */
  51. #define SCROLL_LOCK (0x10 + FLAG_EXT) /* Scroll Lock */
  52. /* Function keys */
  53. #define F1 (0x11 + FLAG_EXT) /* F1 */
  54. #define F2 (0x12 + FLAG_EXT) /* F2 */
  55. #define F3 (0x13 + FLAG_EXT) /* F3 */
  56. #define F4 (0x14 + FLAG_EXT) /* F4 */
  57. #define F5 (0x15 + FLAG_EXT) /* F5 */
  58. #define F6 (0x16 + FLAG_EXT) /* F6 */
  59. #define F7 (0x17 + FLAG_EXT) /* F7 */
  60. #define F8 (0x18 + FLAG_EXT) /* F8 */
  61. #define F9 (0x19 + FLAG_EXT) /* F9 */
  62. #define F10 (0x1A + FLAG_EXT) /* F10 */
  63. #define F11 (0x1B + FLAG_EXT) /* F11 */
  64. #define F12 (0x1C + FLAG_EXT) /* F12 */
  65. /* Control Pad */
  66. #define PRINTSCREEN (0x1D + FLAG_EXT) /* Print Screen */
  67. #define PAUSEBREAK (0x1E + FLAG_EXT) /* Pause/Break */
  68. #define INSERT (0x1F + FLAG_EXT) /* Insert */
  69. #define DELETE (0x20 + FLAG_EXT) /* Delete */
  70. #define HOME (0x21 + FLAG_EXT) /* Home */
  71. #define END (0x22 + FLAG_EXT) /* End */
  72. #define PAGEUP (0x23 + FLAG_EXT) /* Page Up */
  73. #define PAGEDOWN (0x24 + FLAG_EXT) /* Page Down */
  74. #define UP (0x25 + FLAG_EXT) /* Up */
  75. #define DOWN (0x26 + FLAG_EXT) /* Down */
  76. #define LEFT (0x27 + FLAG_EXT) /* Left */
  77. #define RIGHT (0x28 + FLAG_EXT) /* Right */
  78. /* ACPI keys */
  79. #define POWER (0x29 + FLAG_EXT) /* Power */
  80. #define SLEEP (0x2A + FLAG_EXT) /* Sleep */
  81. #define WAKE (0x2B + FLAG_EXT) /* Wake Up */
  82. /* Num Pad */
  83. #define PAD_SLASH (0x2C + FLAG_EXT) /* / */
  84. #define PAD_STAR (0x2D + FLAG_EXT) /* * */
  85. #define PAD_MINUS (0x2E + FLAG_EXT) /* - */
  86. #define PAD_PLUS (0x2F + FLAG_EXT) /* + */
  87. #define PAD_ENTER (0x30 + FLAG_EXT) /* Enter */
  88. #define PAD_DOT (0x31 + FLAG_EXT) /* . */
  89. #define PAD_0 (0x32 + FLAG_EXT) /* 0 */
  90. #define PAD_1 (0x33 + FLAG_EXT) /* 1 */
  91. #define PAD_2 (0x34 + FLAG_EXT) /* 2 */
  92. #define PAD_3 (0x35 + FLAG_EXT) /* 3 */
  93. #define PAD_4 (0x36 + FLAG_EXT) /* 4 */
  94. #define PAD_5 (0x37 + FLAG_EXT) /* 5 */
  95. #define PAD_6 (0x38 + FLAG_EXT) /* 6 */
  96. #define PAD_7 (0x39 + FLAG_EXT) /* 7 */
  97. #define PAD_8 (0x3A + FLAG_EXT) /* 8 */
  98. #define PAD_9 (0x3B + FLAG_EXT) /* 9 */
  99. #define PAD_UP PAD_8 /* Up */
  100. #define PAD_DOWN PAD_2 /* Down */
  101. #define PAD_LEFT PAD_4 /* Left */
  102. #define PAD_RIGHT PAD_6 /* Right */
  103. #define PAD_HOME PAD_7 /* Home */
  104. #define PAD_END PAD_1 /* End */
  105. #define PAD_PAGEUP PAD_9 /* Page Up */
  106. #define PAD_PAGEDOWN PAD_3 /* Page Down */
  107. #define PAD_INS PAD_0 /* Ins */
  108. #define PAD_MID PAD_5 /* Middle key */
  109. #define PAD_DEL PAD_DOT /* Del */
  110. /************************************************************************/
  111. /* Stucture Definition */
  112. /************************************************************************/
  113. /* Keyboard structure, 1 per console. */
  114. typedef struct s_kb {
  115. char* p_head; /* input cache pointer */
  116. char* p_tail; /* read cache pointer */
  117. int count;
  118. char buf[KB_IN_BYTES];
  119. }KB_INPUT;
  120. #endif /* _TINIX_KEYBOARD_H_ */