PatchworkOS
Loading...
Searching...
No Matches
ps2_scanmap.c
Go to the documentation of this file.
1
#include <
kernel/drivers/ps2/ps2_scanmap.h
>
2
#include <
sys/kbd.h
>
3
4
static
const
keycode_t
set2Map
[256] = {
5
[0x00] =
KBD_NONE
,
6
[0x01] =
KBD_F9
,
7
[0x03] =
KBD_F5
,
8
[0x04] =
KBD_F3
,
9
[0x05] =
KBD_F1
,
10
[0x06] =
KBD_F2
,
11
[0x07] =
KBD_F12
,
12
[0x09] =
KBD_F10
,
13
[0x0A] =
KBD_F8
,
14
[0x0B] =
KBD_F6
,
15
[0x0C] =
KBD_F4
,
16
[0x0D] =
KBD_TAB
,
17
[0x0E] =
KBD_GRAVE
,
18
[0x11] =
KBD_LEFT_ALT
,
19
[0x12] =
KBD_LEFT_SHIFT
,
20
[0x14] =
KBD_LEFT_CTRL
,
21
[0x15] =
KBD_Q
,
22
[0x16] =
KBD_1
,
23
[0x1A] =
KBD_Z
,
24
[0x1B] =
KBD_S
,
25
[0x1C] =
KBD_A
,
26
[0x1D] =
KBD_W
,
27
[0x1E] =
KBD_2
,
28
[0x21] =
KBD_C
,
29
[0x22] =
KBD_X
,
30
[0x23] =
KBD_D
,
31
[0x24] =
KBD_E
,
32
[0x25] =
KBD_4
,
33
[0x26] =
KBD_3
,
34
[0x29] =
KBD_SPACE
,
35
[0x2A] =
KBD_V
,
36
[0x2B] =
KBD_F
,
37
[0x2C] =
KBD_T
,
38
[0x2D] =
KBD_R
,
39
[0x2E] =
KBD_5
,
40
[0x31] =
KBD_N
,
41
[0x32] =
KBD_B
,
42
[0x33] =
KBD_H
,
43
[0x34] =
KBD_G
,
44
[0x35] =
KBD_Y
,
45
[0x36] =
KBD_6
,
46
[0x3A] =
KBD_M
,
47
[0x3B] =
KBD_J
,
48
[0x3C] =
KBD_U
,
49
[0x3D] =
KBD_7
,
50
[0x3E] =
KBD_8
,
51
[0x41] =
KBD_COMMA
,
52
[0x42] =
KBD_K
,
53
[0x43] =
KBD_I
,
54
[0x44] =
KBD_O
,
55
[0x45] =
KBD_0
,
56
[0x46] =
KBD_9
,
57
[0x49] =
KBD_PERIOD
,
58
[0x4A] =
KBD_SLASH
,
59
[0x4B] =
KBD_L
,
60
[0x4C] =
KBD_SEMICOLON
,
61
[0x4D] =
KBD_P
,
62
[0x4E] =
KBD_MINUS
,
63
[0x52] =
KBD_APOSTROPHE
,
64
[0x54] =
KBD_LEFT_BRACE
,
65
[0x55] =
KBD_EQUAL
,
66
[0x58] =
KBD_CAPS_LOCK
,
67
[0x59] =
KBD_RIGHT_SHIFT
,
68
[0x5A] =
KBD_ENTER
,
69
[0x5B] =
KBD_RIGHT_BRACE
,
70
[0x5D] =
KBD_BACKSLASH
,
71
[0x66] =
KBD_BACKSPACE
,
72
[0x69] =
KBD_KP_1
,
73
[0x6B] =
KBD_KP_4
,
74
[0x6C] =
KBD_KP_7
,
75
[0x70] =
KBD_KP_0
,
76
[0x71] =
KBD_KP_PERIOD
,
77
[0x72] =
KBD_KP_2
,
78
[0x73] =
KBD_KP_5
,
79
[0x74] =
KBD_KP_6
,
80
[0x75] =
KBD_KP_8
,
81
[0x76] =
KBD_ESC
,
82
[0x77] =
KBD_NUM_LOCK
,
83
[0x78] =
KBD_F11
,
84
[0x79] =
KBD_KP_PLUS
,
85
[0x7A] =
KBD_KP_3
,
86
[0x7B] =
KBD_KP_MINUS
,
87
[0x7C] =
KBD_KP_ASTERISK
,
88
[0x7D] =
KBD_KP_9
,
89
[0x7E] =
KBD_SCROLL_LOCK
,
90
[0x83] =
KBD_F7
,
91
};
92
93
static
const
keycode_t
set2ExtendedMap
[256] = {
94
[0x11] =
KBD_RIGHT_ALT
,
95
[0x14] =
KBD_RIGHT_CTRL
,
96
[0x1F] =
KBD_LEFT_SUPER
,
97
[0x27] =
KBD_RIGHT_SUPER
,
98
[0x37] =
KBD_SYSRQ
,
99
[0x4A] =
KBD_KP_SLASH
,
100
[0x5A] =
KBD_KP_ENTER
,
101
[0x69] =
KBD_END
,
102
[0x6B] =
KBD_LEFT
,
103
[0x6C] =
KBD_HOME
,
104
[0x70] =
KBD_INSERT
,
105
[0x71] =
KBD_DELETE
,
106
[0x72] =
KBD_DOWN
,
107
[0x74] =
KBD_RIGHT
,
108
[0x75] =
KBD_UP
,
109
[0x7A] =
KBD_PAGE_DOWN
,
110
[0x7D] =
KBD_PAGE_UP
,
111
[0x20] =
KBD_MUTE
,
112
[0x22] =
KBD_MEDIA_PLAY_PAUSE
,
113
[0x24] =
KBD_MEDIA_STOP
,
114
[0x2E] =
KBD_VOLUME_DOWN
,
115
[0x30] =
KBD_VOLUME_UP
,
116
};
117
118
keycode_t
ps2_scancode_to_keycode
(
ps2_scancode_t
scancode,
bool
isExtended)
119
{
120
if
(isExtended)
121
{
122
if
(
set2ExtendedMap
[scancode] != 0)
123
{
124
return
set2ExtendedMap
[scancode];
125
}
126
}
127
else
128
{
129
if
(
set2Map
[scancode] != 0)
130
{
131
return
set2Map
[scancode];
132
}
133
}
134
return
KBD_NONE
;
135
}
ps2_scancode_to_keycode
keycode_t ps2_scancode_to_keycode(ps2_scancode_t scancode, bool isExtended)
Convert a PS/2 scancode to a generic keycode.
Definition
ps2_scanmap.c:118
ps2_scancode_t
uint8_t ps2_scancode_t
PS/2 scancode.
Definition
ps2_scanmap.h:23
keycode_t
keycode_t
Keyboard keycode type.
Definition
kbd.h:27
KBD_F11
@ KBD_F11
F11 key.
Definition
kbd.h:99
KBD_KP_4
@ KBD_KP_4
Keypad 4.
Definition
kbd.h:125
KBD_RIGHT_SUPER
@ KBD_RIGHT_SUPER
Right Super key.
Definition
kbd.h:256
KBD_2
@ KBD_2
Key 2.
Definition
kbd.h:60
KBD_MEDIA_PLAY_PAUSE
@ KBD_MEDIA_PLAY_PAUSE
Media Play/Pause key.
Definition
kbd.h:258
KBD_6
@ KBD_6
Key 6.
Definition
kbd.h:64
KBD_1
@ KBD_1
Key 1.
Definition
kbd.h:59
KBD_F5
@ KBD_F5
F5 key.
Definition
kbd.h:93
KBD_4
@ KBD_4
Key 4.
Definition
kbd.h:62
KBD_K
@ KBD_K
Key K.
Definition
kbd.h:42
KBD_MUTE
@ KBD_MUTE
Mute key.
Definition
kbd.h:163
KBD_SPACE
@ KBD_SPACE
Space key.
Definition
kbd.h:74
KBD_T
@ KBD_T
Key T.
Definition
kbd.h:51
KBD_INSERT
@ KBD_INSERT
Insert key.
Definition
kbd.h:105
KBD_F2
@ KBD_F2
F2 key.
Definition
kbd.h:90
KBD_R
@ KBD_R
Key R.
Definition
kbd.h:49
KBD_GRAVE
@ KBD_GRAVE
Grave accent key.
Definition
kbd.h:83
KBD_PERIOD
@ KBD_PERIOD
Period key.
Definition
kbd.h:85
KBD_F9
@ KBD_F9
F9 key.
Definition
kbd.h:97
KBD_F6
@ KBD_F6
F6 key.
Definition
kbd.h:94
KBD_MEDIA_STOP
@ KBD_MEDIA_STOP
Media Stop key.
Definition
kbd.h:269
KBD_LEFT
@ KBD_LEFT
Left arrow key.
Definition
kbd.h:112
KBD_F7
@ KBD_F7
F7 key.
Definition
kbd.h:95
KBD_Q
@ KBD_Q
Key Q.
Definition
kbd.h:48
KBD_MINUS
@ KBD_MINUS
Minus key.
Definition
kbd.h:75
KBD_M
@ KBD_M
Key M.
Definition
kbd.h:44
KBD_APOSTROPHE
@ KBD_APOSTROPHE
Apostrophe key.
Definition
kbd.h:82
KBD_3
@ KBD_3
Key 3.
Definition
kbd.h:61
KBD_LEFT_ALT
@ KBD_LEFT_ALT
Left Alt key.
Definition
kbd.h:251
KBD_J
@ KBD_J
Key J.
Definition
kbd.h:41
KBD_KP_ASTERISK
@ KBD_KP_ASTERISK
Keypad Asterisk.
Definition
kbd.h:118
KBD_DOWN
@ KBD_DOWN
Down arrow key.
Definition
kbd.h:113
KBD_F4
@ KBD_F4
F4 key.
Definition
kbd.h:92
KBD_BACKSLASH
@ KBD_BACKSLASH
Backslash key.
Definition
kbd.h:79
KBD_RIGHT_BRACE
@ KBD_RIGHT_BRACE
Right brace key.
Definition
kbd.h:78
KBD_KP_1
@ KBD_KP_1
Keypad 1.
Definition
kbd.h:122
KBD_X
@ KBD_X
Key X.
Definition
kbd.h:55
KBD_8
@ KBD_8
Key 8.
Definition
kbd.h:66
KBD_F8
@ KBD_F8
F8 key.
Definition
kbd.h:96
KBD_HOME
@ KBD_HOME
Home key.
Definition
kbd.h:106
KBD_LEFT_SHIFT
@ KBD_LEFT_SHIFT
Left Shift key.
Definition
kbd.h:250
KBD_S
@ KBD_S
Key S.
Definition
kbd.h:50
KBD_I
@ KBD_I
Key I.
Definition
kbd.h:40
KBD_H
@ KBD_H
Key H.
Definition
kbd.h:39
KBD_RIGHT_SHIFT
@ KBD_RIGHT_SHIFT
Right Shift key.
Definition
kbd.h:254
KBD_TAB
@ KBD_TAB
Tab key.
Definition
kbd.h:73
KBD_N
@ KBD_N
Key N.
Definition
kbd.h:45
KBD_Z
@ KBD_Z
Key Z.
Definition
kbd.h:57
KBD_LEFT_CTRL
@ KBD_LEFT_CTRL
Left Control key.
Definition
kbd.h:249
KBD_KP_7
@ KBD_KP_7
Keypad 7.
Definition
kbd.h:128
KBD_BACKSPACE
@ KBD_BACKSPACE
Backspace key.
Definition
kbd.h:72
KBD_U
@ KBD_U
Key U.
Definition
kbd.h:52
KBD_RIGHT
@ KBD_RIGHT
Right arrow key.
Definition
kbd.h:111
KBD_F
@ KBD_F
Key F.
Definition
kbd.h:37
KBD_7
@ KBD_7
Key 7.
Definition
kbd.h:65
KBD_5
@ KBD_5
Key 5.
Definition
kbd.h:63
KBD_KP_9
@ KBD_KP_9
Keypad 9.
Definition
kbd.h:130
KBD_0
@ KBD_0
Key 0.
Definition
kbd.h:68
KBD_KP_3
@ KBD_KP_3
Keypad 3.
Definition
kbd.h:124
KBD_KP_0
@ KBD_KP_0
Keypad 0.
Definition
kbd.h:131
KBD_O
@ KBD_O
Key O.
Definition
kbd.h:46
KBD_KP_6
@ KBD_KP_6
Keypad 6.
Definition
kbd.h:127
KBD_D
@ KBD_D
Key D.
Definition
kbd.h:35
KBD_NUM_LOCK
@ KBD_NUM_LOCK
Num Lock key.
Definition
kbd.h:116
KBD_ENTER
@ KBD_ENTER
Enter key.
Definition
kbd.h:70
KBD_V
@ KBD_V
Key V.
Definition
kbd.h:53
KBD_KP_MINUS
@ KBD_KP_MINUS
Keypad Minus.
Definition
kbd.h:119
KBD_VOLUME_UP
@ KBD_VOLUME_UP
Volume Up key.
Definition
kbd.h:164
KBD_RIGHT_ALT
@ KBD_RIGHT_ALT
Right Alt key.
Definition
kbd.h:255
KBD_W
@ KBD_W
Key W.
Definition
kbd.h:54
KBD_EQUAL
@ KBD_EQUAL
Equal key.
Definition
kbd.h:76
KBD_9
@ KBD_9
Key 9.
Definition
kbd.h:67
KBD_KP_SLASH
@ KBD_KP_SLASH
Keypad Slash.
Definition
kbd.h:117
KBD_CAPS_LOCK
@ KBD_CAPS_LOCK
Caps Lock key.
Definition
kbd.h:87
KBD_KP_PLUS
@ KBD_KP_PLUS
Keypad Plus.
Definition
kbd.h:120
KBD_KP_8
@ KBD_KP_8
Keypad 8.
Definition
kbd.h:129
KBD_P
@ KBD_P
Key P.
Definition
kbd.h:47
KBD_KP_2
@ KBD_KP_2
Keypad 2.
Definition
kbd.h:123
KBD_KP_ENTER
@ KBD_KP_ENTER
Keypad Enter.
Definition
kbd.h:121
KBD_UP
@ KBD_UP
Up arrow key.
Definition
kbd.h:114
KBD_L
@ KBD_L
Key L.
Definition
kbd.h:43
KBD_A
@ KBD_A
Key A.
Definition
kbd.h:32
KBD_F12
@ KBD_F12
F12 key.
Definition
kbd.h:100
KBD_Y
@ KBD_Y
Key Y.
Definition
kbd.h:56
KBD_KP_5
@ KBD_KP_5
Keypad 5.
Definition
kbd.h:126
KBD_RIGHT_CTRL
@ KBD_RIGHT_CTRL
Right Control key.
Definition
kbd.h:253
KBD_NONE
@ KBD_NONE
None.
Definition
kbd.h:28
KBD_SLASH
@ KBD_SLASH
Slash key.
Definition
kbd.h:86
KBD_END
@ KBD_END
End key.
Definition
kbd.h:109
KBD_ESC
@ KBD_ESC
Escape key.
Definition
kbd.h:71
KBD_C
@ KBD_C
Key C.
Definition
kbd.h:34
KBD_PAGE_DOWN
@ KBD_PAGE_DOWN
Page Down key.
Definition
kbd.h:110
KBD_B
@ KBD_B
Key B.
Definition
kbd.h:33
KBD_SCROLL_LOCK
@ KBD_SCROLL_LOCK
Scroll Lock key.
Definition
kbd.h:103
KBD_G
@ KBD_G
Key G.
Definition
kbd.h:38
KBD_E
@ KBD_E
Key E.
Definition
kbd.h:36
KBD_F1
@ KBD_F1
F1 key.
Definition
kbd.h:89
KBD_KP_PERIOD
@ KBD_KP_PERIOD
Keypad Period.
Definition
kbd.h:132
KBD_VOLUME_DOWN
@ KBD_VOLUME_DOWN
Volume Down key.
Definition
kbd.h:165
KBD_DELETE
@ KBD_DELETE
Delete key.
Definition
kbd.h:108
KBD_COMMA
@ KBD_COMMA
Comma key.
Definition
kbd.h:84
KBD_F3
@ KBD_F3
F3 key.
Definition
kbd.h:91
KBD_LEFT_BRACE
@ KBD_LEFT_BRACE
Left brace key.
Definition
kbd.h:77
KBD_LEFT_SUPER
@ KBD_LEFT_SUPER
Left Super key.
Definition
kbd.h:252
KBD_SEMICOLON
@ KBD_SEMICOLON
Semicolon key.
Definition
kbd.h:81
KBD_F10
@ KBD_F10
F10 key.
Definition
kbd.h:98
KBD_SYSRQ
@ KBD_SYSRQ
SysRq key.
Definition
kbd.h:102
KBD_PAGE_UP
@ KBD_PAGE_UP
Page Up key.
Definition
kbd.h:107
kbd.h
set2ExtendedMap
static const keycode_t set2ExtendedMap[256]
Definition
ps2_scanmap.c:93
set2Map
static const keycode_t set2Map[256]
Definition
ps2_scanmap.c:4
ps2_scanmap.h
src
kernel
drivers
ps2
ps2_scanmap.c
Generated by
1.9.8