a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Two defines for every scancode:
a180a41bba1d50822df23fff0099e90b86638b89vboxsync One called SCANCODE_KEY_<num>, where <num> is the key location number.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync One called SCANCODE_CHAR_<char-on-us-kbd>, where <char-on-us-kbd> is the
a180a41bba1d50822df23fff0099e90b86638b89vboxsync unshifted character on a US 101/102 keyboard. See the Microsoft
a180a41bba1d50822df23fff0099e90b86638b89vboxsync document "Keyboard Scan Code Specification" for more information.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Up keys normally have scancode values +0x80.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync 0x1- 0x59: Normal
a180a41bba1d50822df23fff0099e90b86638b89vboxsync 0x60, 0x61: Avoid, since the up key would be 0xe1, 0xe1
a180a41bba1d50822df23fff0099e90b86638b89vboxsync 0x61 - 0x79: Normal
a180a41bba1d50822df23fff0099e90b86638b89vboxsync 0xfa - : keyboard drivers interpret these as responses from the 8042 chip
a180a41bba1d50822df23fff0099e90b86638b89vboxsync We use bit 7 to indicate 0xe0 prefix instead of two-byte sequence (0xe0, something). Eq.,
a180a41bba1d50822df23fff0099e90b86638b89vboxsync 0xe 0x38 is defined as (0x80 | 0x38)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync Special keys like Numeric / are very complicated and emits many scancodes.
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 14 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Only on US keyboard */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Only on international keyboard */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Only on international keyboard */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Only on Brazilian and some Far East keyboards */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 59 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 63 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 65 - 74 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 77 - 78 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 82 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 87 - 88 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 94 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Only on Brazilian and some Far East keyboards */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 109 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 111 does not exist */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 124: The Print Screen sequence is complicated, and
a180a41bba1d50822df23fff0099e90b86638b89vboxsync hardcoded in xkeymap.c */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync/* Key 126: The Pause and Break sequences is complicated, and
a180a41bba1d50822df23fff0099e90b86638b89vboxsync hardcoded in xkeymap.c */
a180a41bba1d50822df23fff0099e90b86638b89vboxsync The keys below does not have any key location number
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define SCANCODE_CHAR_LWIN (SCANCODE_EXTENDED | 0x5b)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define SCANCODE_CHAR_RWIN (SCANCODE_EXTENDED | 0x5c)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define SCANCODE_CHAR_APPLICATION (SCANCODE_EXTENDED | 0x5d)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define SCANCODE_CHAR_ACPIPOWER (SCANCODE_EXTENDED | 0x5e)
a180a41bba1d50822df23fff0099e90b86638b89vboxsync#define SCANCODE_CHAR_ACPISLEEP (SCANCODE_EXTENDED | 0x5f)