324 lines
14 KiB
C
324 lines
14 KiB
C
#ifndef MINIOS_KERN_KEYMAP_H
|
|
#define MINIOS_KERN_KEYMAP_H
|
|
|
|
#include <type.h>
|
|
|
|
#define NR_SCAN_CODES 128
|
|
|
|
#define FLAG_BREAK 0x0080 /* Break Code */
|
|
#define FLAG_EXT 0x0100 /* Normal function keys */
|
|
#define FLAG_SHIFT_L 0x0200 /* Shift key */
|
|
#define FLAG_SHIFT_R 0x0400 /* Shift key */
|
|
#define FLAG_CTRL_L 0x0800 /* Control key */
|
|
#define FLAG_CTRL_R 0x1000 /* Control key */
|
|
#define FLAG_ALT_L 0x2000 /* Alternate key */
|
|
#define FLAG_ALT_R 0x4000 /* Alternate key */
|
|
#define FLAG_PAD 0x8000 /* keys in num pad */
|
|
|
|
#define MASK_RAW 0x01FF /* raw key value = code_passed_to_tty & MASK_RAW
|
|
* the value can be found either in the keymap
|
|
* column 0 or in the list below
|
|
*/
|
|
|
|
/* Special keys */
|
|
#define ESC (0x01 + FLAG_EXT) /* Esc */
|
|
#define TAB (0x02 + FLAG_EXT) /* Tab */
|
|
#define ENTER (0x03 + FLAG_EXT) /* Enter */
|
|
#define BACKSPACE (0x04 + FLAG_EXT) /* BackSpace */
|
|
|
|
#define GUI_L (0x05 + FLAG_EXT) /* L GUI */
|
|
#define GUI_R (0x06 + FLAG_EXT) /* R GUI */
|
|
#define APPS (0x07 + FLAG_EXT) /* APPS */
|
|
|
|
/* Shift, Ctrl, Alt */
|
|
#define SHIFT_L (0x08 + FLAG_EXT) /* L Shift */
|
|
#define SHIFT_R (0x09 + FLAG_EXT) /* R Shift */
|
|
#define CTRL_L (0x0A + FLAG_EXT) /* L Ctrl */
|
|
#define CTRL_R (0x0B + FLAG_EXT) /* R Ctrl */
|
|
#define ALT_L (0x0C + FLAG_EXT) /* L Alt */
|
|
#define ALT_R (0x0D + FLAG_EXT) /* R Alt */
|
|
|
|
/* Lock keys */
|
|
#define CAPS_LOCK (0x0E + FLAG_EXT) /* Caps Lock */
|
|
#define NUM_LOCK (0x0F + FLAG_EXT) /* Number Lock */
|
|
#define SCROLL_LOCK (0x10 + FLAG_EXT) /* Scroll Lock */
|
|
|
|
/* Function keys */
|
|
#define F1 (0x11 + FLAG_EXT) /* F1 */
|
|
#define F2 (0x12 + FLAG_EXT) /* F2 */
|
|
#define F3 (0x13 + FLAG_EXT) /* F3 */
|
|
#define F4 (0x14 + FLAG_EXT) /* F4 */
|
|
#define F5 (0x15 + FLAG_EXT) /* F5 */
|
|
#define F6 (0x16 + FLAG_EXT) /* F6 */
|
|
#define F7 (0x17 + FLAG_EXT) /* F7 */
|
|
#define F8 (0x18 + FLAG_EXT) /* F8 */
|
|
#define F9 (0x19 + FLAG_EXT) /* F9 */
|
|
#define F10 (0x1A + FLAG_EXT) /* F10 */
|
|
#define F11 (0x1B + FLAG_EXT) /* F11 */
|
|
#define F12 (0x1C + FLAG_EXT) /* F12 */
|
|
|
|
/* Control Pad */
|
|
#define PRINTSCREEN (0x1D + FLAG_EXT) /* Print Screen */
|
|
#define PAUSEBREAK (0x1E + FLAG_EXT) /* Pause/Break */
|
|
#define INSERT (0x1F + FLAG_EXT) /* Insert */
|
|
#define DELETE (0x20 + FLAG_EXT) /* Delete */
|
|
#define HOME (0x21 + FLAG_EXT) /* Home */
|
|
#define END (0x22 + FLAG_EXT) /* End */
|
|
#define PAGEUP (0x23 + FLAG_EXT) /* Page Up */
|
|
#define PAGEDOWN (0x24 + FLAG_EXT) /* Page Down */
|
|
#define UP (0x25 + FLAG_EXT) /* Up */
|
|
#define DOWN (0x26 + FLAG_EXT) /* Down */
|
|
#define LEFT (0x27 + FLAG_EXT) /* Left */
|
|
#define RIGHT (0x28 + FLAG_EXT) /* Right */
|
|
|
|
/* ACPI keys */
|
|
// #define POWER (0x29 + FLAG_EXT) /* Power */
|
|
// #define SLEEP (0x2A + FLAG_EXT) /* Sleep */
|
|
// #define WAKE (0x2B + FLAG_EXT) /* Wake Up */
|
|
|
|
/* Num Pad */
|
|
#define PAD_SLASH (0x2C + FLAG_EXT) /* / */
|
|
#define PAD_STAR (0x2D + FLAG_EXT) /* * */
|
|
#define PAD_MINUS (0x2E + FLAG_EXT) /* - */
|
|
#define PAD_PLUS (0x2F + FLAG_EXT) /* + */
|
|
#define PAD_ENTER (0x30 + FLAG_EXT) /* Enter */
|
|
#define PAD_DOT (0x31 + FLAG_EXT) /* . */
|
|
#define PAD_0 (0x32 + FLAG_EXT) /* 0 */
|
|
#define PAD_1 (0x33 + FLAG_EXT) /* 1 */
|
|
#define PAD_2 (0x34 + FLAG_EXT) /* 2 */
|
|
#define PAD_3 (0x35 + FLAG_EXT) /* 3 */
|
|
#define PAD_4 (0x36 + FLAG_EXT) /* 4 */
|
|
#define PAD_5 (0x37 + FLAG_EXT) /* 5 */
|
|
#define PAD_6 (0x38 + FLAG_EXT) /* 6 */
|
|
#define PAD_7 (0x39 + FLAG_EXT) /* 7 */
|
|
#define PAD_8 (0x3A + FLAG_EXT) /* 8 */
|
|
#define PAD_9 (0x3B + FLAG_EXT) /* 9 */
|
|
#define PAD_UP PAD_8 /* Up */
|
|
#define PAD_DOWN PAD_2 /* Down */
|
|
#define PAD_LEFT PAD_4 /* Left */
|
|
#define PAD_RIGHT PAD_6 /* Right */
|
|
#define PAD_HOME PAD_7 /* Home */
|
|
#define PAD_END PAD_1 /* End */
|
|
#define PAD_PAGEUP PAD_9 /* Page Up */
|
|
#define PAD_PAGEDOWN PAD_3 /* Page Down */
|
|
#define PAD_INS PAD_0 /* Ins */
|
|
#define PAD_MID PAD_5 /* Middle key */
|
|
#define PAD_DEL PAD_DOT /* Del */
|
|
|
|
/* Keymap for US MF-2 keyboard. */
|
|
|
|
const static u32 keymap[NR_SCAN_CODES] = {
|
|
|
|
/* scan-code !Shift */
|
|
/* =============================================*/
|
|
/* 0x00 - none */ 0,
|
|
/* 0x01 - ESC */ ESC,
|
|
/* 0x02 - '1' */ '1',
|
|
/* 0x03 - '2' */ '2',
|
|
/* 0x04 - '3' */ '3',
|
|
/* 0x05 - '4' */ '4',
|
|
/* 0x06 - '5' */ '5',
|
|
/* 0x07 - '6' */ '6',
|
|
/* 0x08 - '7' */ '7',
|
|
/* 0x09 - '8' */ '8',
|
|
/* 0x0A - '9' */ '9',
|
|
/* 0x0B - '0' */ '0',
|
|
/* 0x0C - '-' */ '-',
|
|
/* 0x0D - '=' */ '=',
|
|
/* 0x0E - BS */ BACKSPACE,
|
|
/* 0x0F - TAB */ TAB,
|
|
/* 0x10 - 'q' */ 'q',
|
|
/* 0x11 - 'w' */ 'w',
|
|
/* 0x12 - 'e' */ 'e',
|
|
/* 0x13 - 'r' */ 'r',
|
|
/* 0x14 - 't' */ 't',
|
|
/* 0x15 - 'y' */ 'y',
|
|
/* 0x16 - 'u' */ 'u',
|
|
/* 0x17 - 'i' */ 'i',
|
|
/* 0x18 - 'o' */ 'o',
|
|
/* 0x19 - 'p' */ 'p',
|
|
/* 0x1A - '[' */ '[',
|
|
/* 0x1B - ']' */ ']',
|
|
/* 0x1C - CR/LF */ ENTER,
|
|
/* 0x1D - l. Ctrl */ CTRL_L,
|
|
/* 0x1E - 'a' */ 'a',
|
|
/* 0x1F - 's' */ 's',
|
|
/* 0x20 - 'd' */ 'd',
|
|
/* 0x21 - 'f' */ 'f',
|
|
/* 0x22 - 'g' */ 'g',
|
|
/* 0x23 - 'h' */ 'h',
|
|
/* 0x24 - 'j' */ 'j',
|
|
/* 0x25 - 'k' */ 'k',
|
|
/* 0x26 - 'l' */ 'l',
|
|
/* 0x27 - ';' */ ';',
|
|
/* 0x28 - '\'' */ '\'',
|
|
/* 0x29 - '`' */ '`',
|
|
/* 0x2A - l. SHIFT */ SHIFT_L,
|
|
/* 0x2B - '\' */ '\\',
|
|
/* 0x2C - 'z' */ 'z',
|
|
/* 0x2D - 'x' */ 'x',
|
|
/* 0x2E - 'c' */ 'c',
|
|
/* 0x2F - 'v' */ 'v',
|
|
/* 0x30 - 'b' */ 'b',
|
|
/* 0x31 - 'n' */ 'n',
|
|
/* 0x32 - 'm' */ 'm',
|
|
/* 0x33 - ',' */ ',',
|
|
/* 0x34 - '.' */ '.',
|
|
/* 0x35 - '/' */ '/',
|
|
/* 0x36 - r. SHIFT */ SHIFT_R,
|
|
/* 0x37 - '*' */ '*',
|
|
/* 0x38 - ALT */ ALT_L,
|
|
/* 0x39 - ' ' */ ' ',
|
|
/* 0x3A - CapsLock */ CAPS_LOCK,
|
|
/* 0x3B - F1 */ F1,
|
|
/* 0x3C - F2 */ F2,
|
|
/* 0x3D - F3 */ F3,
|
|
/* 0x3E - F4 */ F4,
|
|
/* 0x3F - F5 */ F5,
|
|
/* 0x40 - F6 */ F6,
|
|
/* 0x41 - F7 */ F7,
|
|
/* 0x42 - F8 */ F8,
|
|
/* 0x43 - F9 */ F9,
|
|
/* 0x44 - F10 */ F10,
|
|
/* 0x45 - NumLock */ NUM_LOCK,
|
|
/* 0x46 - ScrLock */ SCROLL_LOCK,
|
|
/* 0x47 - Home */ PAD_HOME,
|
|
/* 0x48 - CurUp */ PAD_UP,
|
|
/* 0x49 - PgUp */ PAD_PAGEUP,
|
|
/* 0x4A - '-' */ PAD_MINUS,
|
|
/* 0x4B - Left */ PAD_LEFT,
|
|
/* 0x4C - MID */ PAD_MID,
|
|
/* 0x4D - Right */ PAD_RIGHT,
|
|
/* 0x4E - '+' */ PAD_PLUS,
|
|
/* 0x4F - End */ PAD_END,
|
|
/* 0x50 - Down */ PAD_DOWN,
|
|
/* 0x51 - PgDown */ PAD_PAGEDOWN,
|
|
/* 0x52 - Insert */ PAD_INS,
|
|
/* 0x53 - Delete */ PAD_DOT,
|
|
/* 0x54 - Enter */ 0,
|
|
/* 0x55 - ??? */ 0,
|
|
/* 0x56 - ??? */ 0,
|
|
/* 0x57 - F11 */ F11,
|
|
/* 0x58 - F12 */ F12,
|
|
/* 0x59 - ??? */ 0,
|
|
/* 0x5A - ??? */ 0,
|
|
/* 0x5B - ??? */ 0,
|
|
/* 0x5C - ??? */ 0,
|
|
/* 0x5D - ??? */ 0,
|
|
/* 0x5E - ??? */ 0,
|
|
/* 0x5F - ??? */ 0,
|
|
/* 0x60 - ??? */ 0,
|
|
/* 0x61 - ??? */ 0,
|
|
/* 0x62 - ??? */ 0,
|
|
/* 0x63 - ??? */ 0,
|
|
/* 0x64 - ??? */ 0,
|
|
/* 0x65 - ??? */ 0,
|
|
/* 0x66 - ??? */ 0,
|
|
/* 0x67 - ??? */ 0,
|
|
/* 0x68 - ??? */ 0,
|
|
/* 0x69 - ??? */ 0,
|
|
/* 0x6A - ??? */ 0,
|
|
/* 0x6B - ??? */ 0,
|
|
/* 0x6C - ??? */ 0,
|
|
/* 0x6D - ??? */ 0,
|
|
/* 0x6E - ??? */ 0,
|
|
/* 0x6F - ??? */ 0,
|
|
/* 0x70 - ??? */ 0,
|
|
/* 0x71 - ??? */ 0,
|
|
/* 0x72 - ??? */ 0,
|
|
/* 0x73 - ??? */ 0,
|
|
/* 0x74 - ??? */ 0,
|
|
/* 0x75 - ??? */ 0,
|
|
/* 0x76 - ??? */ 0,
|
|
/* 0x77 - ??? */ 0,
|
|
/* 0x78 - ??? */ 0,
|
|
/* 0x78 - ??? */ 0,
|
|
/* 0x7A - ??? */ 0,
|
|
/* 0x7B - ??? */ 0,
|
|
/* 0x7C - ??? */ 0,
|
|
/* 0x7D - ??? */ 0,
|
|
/* 0x7E - ??? */ 0,
|
|
/* 0x7F - ??? */ 0,
|
|
};
|
|
/*====================================================================
|
|
Appendix: Scan code set 1
|
|
*====================================================================
|
|
KEY MAKE BREAK| KEY MAKE BREAK | KEY MAKE BREAK
|
|
---------------------|------------------------|-----------------------
|
|
A 1E 9E | 9 0A 8A | [ 1A 9A
|
|
B 30 B0 | ` 29 89 | INSERT E0,52 E0,D2
|
|
C 2E AE | - 0C 8C | HOME E0,47 E0,C7
|
|
D 20 A0 | = 0D 8D | PG UP E0,49 E0,C9
|
|
E 12 92 | \ 2B AB | DELETE E0,53 E0,D3
|
|
F 21 A1 | BKSP 0E 8E | END E0,4F E0,CF
|
|
G 22 A2 | SPACE 39 B9 | PG DN E0,51 E0,D1
|
|
H 23 A3 | TAB 0F 8F | U ARROW E0,48 E0,C8
|
|
I 17 97 | CAPS 3A BA | L ARROW E0,4B E0,CB
|
|
J 24 A4 | L SHFT 2A AA | D ARROW E0,50 E0,D0
|
|
K 25 A5 | L CTRL 1D 9D | R ARROW E0,4D E0,CD
|
|
L 26 A6 | L GUI E0,5B E0,DB | NUM 45 C5
|
|
M 32 B2 | L ALT 38 B8 | KP / E0,35 E0,B5
|
|
N 31 B1 | R SHFT 36 B6 | KP * 37 B7
|
|
O 18 98 | R CTRL E0,1D E0,9D | KP - 4A CA
|
|
P 19 99 | R GUI E0,5C E0,DC | KP + 4E CE
|
|
Q 10 19 | R ALT E0,38 E0,B8 | KP EN E0,1C E0,9C
|
|
R 13 93 | APPS E0,5D E0,DD | KP . 53 D3
|
|
S 1F 9F | ENTER 1C 9C | KP 0 52 D2
|
|
T 14 94 | ESC 01 81 | KP 1 4F CF
|
|
U 16 96 | F1 3B BB | KP 2 50 D0
|
|
V 2F AF | F2 3C BC | KP 3 51 D1
|
|
W 11 91 | F3 3D BD | KP 4 4B CB
|
|
X 2D AD | F4 3E BE | KP 5 4C CC
|
|
Y 15 95 | F5 3F BF | KP 6 4D CD
|
|
Z 2C AC | F6 40 C0 | KP 7 47 C7
|
|
0 0B 8B | F7 41 C1 | KP 8 48 C8
|
|
1 02 82 | F8 42 C2 | KP 9 49 C9
|
|
2 03 83 | F9 43 C3 | ] 1B 9B
|
|
3 04 84 | F10 44 C4 | ; 27 A7
|
|
4 05 85 | F11 57 D7 | ' 28 A8
|
|
5 06 86 | F12 58 D8 | , 33 B3
|
|
| |
|
|
6 07 87 | PRTSCRN E0,2A E0,B7 | . 34 B4
|
|
| E0,37 E0,AA |
|
|
| |
|
|
7 08 88 | SCROLL 46 C6 | / 35 B5
|
|
| |
|
|
8 09 89 | PAUSE E1,1D |
|
|
| 45,E1, -NONE-|
|
|
| 9D,C5 |
|
|
----------------------------------------------------------------------
|
|
-----------------
|
|
ACPI Scan Codes:
|
|
-------------------------------------------
|
|
Key Make Code Break Code
|
|
-------------------------------------------
|
|
Power E0, 5E E0, DE
|
|
Sleep E0, 5F E0, DF
|
|
Wake E0, 63 E0, E3
|
|
-------------------------------
|
|
Windows Multimedia Scan Codes:
|
|
-------------------------------------------
|
|
Key Make Code Break Code
|
|
-------------------------------------------
|
|
Next Track E0, 19 E0, 99
|
|
Previous Track E0, 10 E0, 90
|
|
Stop E0, 24 E0, A4
|
|
Play/Pause E0, 22 E0, A2
|
|
Mute E0, 20 E0, A0
|
|
Volume Up E0, 30 E0, B0
|
|
Volume Down E0, 2E E0, AE
|
|
Media Select E0, 6D E0, ED
|
|
E-Mail E0, 6C E0, EC
|
|
Calculator E0, 21 E0, A1
|
|
My Computer E0, 6B E0, EB
|
|
WWW Search E0, 65 E0, E5
|
|
WWW Home E0, 32 E0, B2
|
|
WWW Back E0, 6A E0, EA
|
|
WWW Forward E0, 69 E0, E9
|
|
WWW Stop E0, 68 E0, E8
|
|
WWW Refresh E0, 67 E0, E7
|
|
WWW Favorites E0, 66 E0, E6
|
|
*=====================================================================================*/
|
|
|
|
#endif /* MINIOS_KERN_KEYMAP_H */
|