1// SPDX-License-Identifier: GPL-2.0 2/* Do not edit this file! It was automatically generated by */ 3/* loadkeys --mktable defkeymap.map > defkeymap.c */ 4 5#include <linux/types.h> 6#include <linux/keyboard.h> 7#include <linux/kd.h> 8 9unsigned short plain_map[NR_KEYS] = { 10 0xf200, 0xf01b, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035, 0xf036, 11 0xf037, 0xf038, 0xf039, 0xf030, 0xf02d, 0xf03d, 0xf07f, 0xf009, 12 0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69, 13 0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201, 0xf702, 0xfb61, 0xfb73, 14 0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf03b, 15 0xf027, 0xf060, 0xf700, 0xf05c, 0xfb7a, 0xfb78, 0xfb63, 0xfb76, 16 0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf700, 0xf30c, 17 0xf703, 0xf020, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 18 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf209, 0xf307, 19 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301, 20 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03c, 0xf10a, 21 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 22 0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603, 23 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116, 24 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 25 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 26}; 27 28static unsigned short shift_map[NR_KEYS] = { 29 0xf200, 0xf01b, 0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e, 30 0xf026, 0xf02a, 0xf028, 0xf029, 0xf05f, 0xf02b, 0xf07f, 0xf009, 31 0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49, 32 0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201, 0xf702, 0xfb41, 0xfb53, 33 0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b, 0xfb4c, 0xf03a, 34 0xf022, 0xf07e, 0xf700, 0xf07c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56, 35 0xfb42, 0xfb4e, 0xfb4d, 0xf03c, 0xf03e, 0xf03f, 0xf700, 0xf30c, 36 0xf703, 0xf020, 0xf207, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e, 37 0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf213, 0xf203, 0xf307, 38 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301, 39 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03e, 0xf10a, 40 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 41 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603, 42 0xf20b, 0xf601, 0xf602, 0xf117, 0xf600, 0xf20a, 0xf115, 0xf116, 43 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 44 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 45}; 46 47static unsigned short altgr_map[NR_KEYS] = { 48 0xf200, 0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200, 49 0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf200, 0xf200, 0xf200, 50 0xfb71, 0xfb77, 0xf918, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69, 51 0xfb6f, 0xfb70, 0xf200, 0xf07e, 0xf201, 0xf702, 0xf914, 0xfb73, 52 0xf917, 0xf919, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf200, 53 0xf200, 0xf200, 0xf700, 0xf200, 0xfb7a, 0xfb78, 0xf916, 0xfb76, 54 0xf915, 0xfb6e, 0xfb6d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c, 55 0xf703, 0xf200, 0xf207, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510, 56 0xf511, 0xf512, 0xf513, 0xf514, 0xf515, 0xf208, 0xf202, 0xf911, 57 0xf912, 0xf913, 0xf30b, 0xf90e, 0xf90f, 0xf910, 0xf30a, 0xf90b, 58 0xf90c, 0xf90d, 0xf90a, 0xf310, 0xf206, 0xf200, 0xf07c, 0xf516, 59 0xf517, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 60 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603, 61 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116, 62 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 63 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 64}; 65 66static unsigned short ctrl_map[NR_KEYS] = { 67 0xf200, 0xf200, 0xf200, 0xf000, 0xf01b, 0xf01c, 0xf01d, 0xf01e, 68 0xf01f, 0xf07f, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf008, 0xf200, 69 0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009, 70 0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201, 0xf702, 0xf001, 0xf013, 71 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200, 72 0xf007, 0xf000, 0xf700, 0xf01c, 0xf01a, 0xf018, 0xf003, 0xf016, 73 0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf700, 0xf30c, 74 0xf703, 0xf000, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104, 75 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf204, 0xf307, 76 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301, 77 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf10a, 78 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 79 0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603, 80 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116, 81 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 82 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 83}; 84 85static unsigned short shift_ctrl_map[NR_KEYS] = { 86 0xf200, 0xf200, 0xf200, 0xf000, 0xf200, 0xf200, 0xf200, 0xf200, 87 0xf200, 0xf200, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf200, 0xf200, 88 0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009, 89 0xf00f, 0xf010, 0xf200, 0xf200, 0xf201, 0xf702, 0xf001, 0xf013, 90 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200, 91 0xf200, 0xf200, 0xf700, 0xf200, 0xf01a, 0xf018, 0xf003, 0xf016, 92 0xf002, 0xf00e, 0xf00d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c, 93 0xf703, 0xf200, 0xf207, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 94 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf208, 0xf200, 0xf307, 95 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301, 96 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf200, 97 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 98 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603, 99 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116, 100 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 101 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 102}; 103 104static unsigned short alt_map[NR_KEYS] = { 105 0xf200, 0xf81b, 0xf831, 0xf832, 0xf833, 0xf834, 0xf835, 0xf836, 106 0xf837, 0xf838, 0xf839, 0xf830, 0xf82d, 0xf83d, 0xf87f, 0xf809, 107 0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869, 108 0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d, 0xf702, 0xf861, 0xf873, 109 0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b, 0xf86c, 0xf83b, 110 0xf827, 0xf860, 0xf700, 0xf85c, 0xf87a, 0xf878, 0xf863, 0xf876, 111 0xf862, 0xf86e, 0xf86d, 0xf82c, 0xf82e, 0xf82f, 0xf700, 0xf30c, 112 0xf703, 0xf820, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504, 113 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf209, 0xf907, 114 0xf908, 0xf909, 0xf30b, 0xf904, 0xf905, 0xf906, 0xf30a, 0xf901, 115 0xf902, 0xf903, 0xf900, 0xf310, 0xf206, 0xf200, 0xf83c, 0xf50a, 116 0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 117 0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603, 118 0xf118, 0xf210, 0xf211, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116, 119 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 120 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 121}; 122 123static unsigned short ctrl_alt_map[NR_KEYS] = { 124 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 125 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 126 0xf811, 0xf817, 0xf805, 0xf812, 0xf814, 0xf819, 0xf815, 0xf809, 127 0xf80f, 0xf810, 0xf200, 0xf200, 0xf201, 0xf702, 0xf801, 0xf813, 128 0xf804, 0xf806, 0xf807, 0xf808, 0xf80a, 0xf80b, 0xf80c, 0xf200, 129 0xf200, 0xf200, 0xf700, 0xf200, 0xf81a, 0xf818, 0xf803, 0xf816, 130 0xf802, 0xf80e, 0xf80d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c, 131 0xf703, 0xf200, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504, 132 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf200, 0xf307, 133 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301, 134 0xf302, 0xf303, 0xf300, 0xf20c, 0xf206, 0xf200, 0xf200, 0xf50a, 135 0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 136 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603, 137 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf20c, 138 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d, 139 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 140}; 141 142ushort *key_maps[MAX_NR_KEYMAPS] = { 143 plain_map, shift_map, altgr_map, NULL, 144 ctrl_map, shift_ctrl_map, NULL, NULL, 145 alt_map, NULL, NULL, NULL, 146 ctrl_alt_map, NULL 147}; 148 149unsigned int keymap_count = 7; 150 151/* 152 * Philosophy: most people do not define more strings, but they who do 153 * often want quite a lot of string space. So, we statically allocate 154 * the default and allocate dynamically in chunks of 512 bytes. 155 */ 156 157char func_buf[] = { 158 '\033', '[', '[', 'A', 0, 159 '\033', '[', '[', 'B', 0, 160 '\033', '[', '[', 'C', 0, 161 '\033', '[', '[', 'D', 0, 162 '\033', '[', '[', 'E', 0, 163 '\033', '[', '1', '7', '~', 0, 164 '\033', '[', '1', '8', '~', 0, 165 '\033', '[', '1', '9', '~', 0, 166 '\033', '[', '2', '0', '~', 0, 167 '\033', '[', '2', '1', '~', 0, 168 '\033', '[', '2', '3', '~', 0, 169 '\033', '[', '2', '4', '~', 0, 170 '\033', '[', '2', '5', '~', 0, 171 '\033', '[', '2', '6', '~', 0, 172 '\033', '[', '2', '8', '~', 0, 173 '\033', '[', '2', '9', '~', 0, 174 '\033', '[', '3', '1', '~', 0, 175 '\033', '[', '3', '2', '~', 0, 176 '\033', '[', '3', '3', '~', 0, 177 '\033', '[', '3', '4', '~', 0, 178 '\033', '[', '1', '~', 0, 179 '\033', '[', '2', '~', 0, 180 '\033', '[', '3', '~', 0, 181 '\033', '[', '4', '~', 0, 182 '\033', '[', '5', '~', 0, 183 '\033', '[', '6', '~', 0, 184 '\033', '[', 'M', 0, 185 '\033', '[', 'P', 0, 186}; 187 188char *funcbufptr = func_buf; 189int funcbufsize = sizeof(func_buf); 190int funcbufleft = 0; /* space left */ 191 192char *func_table[MAX_NR_FUNC] = { 193 func_buf + 0, 194 func_buf + 5, 195 func_buf + 10, 196 func_buf + 15, 197 func_buf + 20, 198 func_buf + 25, 199 func_buf + 31, 200 func_buf + 37, 201 func_buf + 43, 202 func_buf + 49, 203 func_buf + 55, 204 func_buf + 61, 205 func_buf + 67, 206 func_buf + 73, 207 func_buf + 79, 208 func_buf + 85, 209 func_buf + 91, 210 func_buf + 97, 211 func_buf + 103, 212 func_buf + 109, 213 func_buf + 115, 214 func_buf + 120, 215 func_buf + 125, 216 func_buf + 130, 217 func_buf + 135, 218 func_buf + 140, 219 func_buf + 145, 220 NULL, 221 NULL, 222 func_buf + 149, 223 NULL, 224}; 225 226struct kbdiacruc accent_table[MAX_DIACR] = { 227 {'`', 'A', 0x00c0}, {'`', 'a', 0x00e0}, 228 {'\'', 'A', 0x00c1}, {'\'', 'a', 0x00e1}, 229 {'^', 'A', 0x00c2}, {'^', 'a', 0x00e2}, 230 {'~', 'A', 0x00c3}, {'~', 'a', 0x00e3}, 231 {'"', 'A', 0x00c4}, {'"', 'a', 0x00e4}, 232 {'O', 'A', 0x00c5}, {'o', 'a', 0x00e5}, 233 {'0', 'A', 0x00c5}, {'0', 'a', 0x00e5}, 234 {'A', 'A', 0x00c5}, {'a', 'a', 0x00e5}, 235 {'A', 'E', 0x00c6}, {'a', 'e', 0x00e6}, 236 {',', 'C', 0x00c7}, {',', 'c', 0x00e7}, 237 {'`', 'E', 0x00c8}, {'`', 'e', 0x00e8}, 238 {'\'', 'E', 0x00c9}, {'\'', 'e', 0x00e9}, 239 {'^', 'E', 0x00ca}, {'^', 'e', 0x00ea}, 240 {'"', 'E', 0x00cb}, {'"', 'e', 0x00eb}, 241 {'`', 'I', 0x00cc}, {'`', 'i', 0x00ec}, 242 {'\'', 'I', 0x00cd}, {'\'', 'i', 0x00ed}, 243 {'^', 'I', 0x00ce}, {'^', 'i', 0x00ee}, 244 {'"', 'I', 0x00cf}, {'"', 'i', 0x00ef}, 245 {'-', 'D', 0x00d0}, {'-', 'd', 0x00f0}, 246 {'~', 'N', 0x00d1}, {'~', 'n', 0x00f1}, 247 {'`', 'O', 0x00d2}, {'`', 'o', 0x00f2}, 248 {'\'', 'O', 0x00d3}, {'\'', 'o', 0x00f3}, 249 {'^', 'O', 0x00d4}, {'^', 'o', 0x00f4}, 250 {'~', 'O', 0x00d5}, {'~', 'o', 0x00f5}, 251 {'"', 'O', 0x00d6}, {'"', 'o', 0x00f6}, 252 {'/', 'O', 0x00d8}, {'/', 'o', 0x00f8}, 253 {'`', 'U', 0x00d9}, {'`', 'u', 0x00f9}, 254 {'\'', 'U', 0x00da}, {'\'', 'u', 0x00fa}, 255 {'^', 'U', 0x00db}, {'^', 'u', 0x00fb}, 256 {'"', 'U', 0x00dc}, {'"', 'u', 0x00fc}, 257 {'\'', 'Y', 0x00dd}, {'\'', 'y', 0x00fd}, 258 {'T', 'H', 0x00de}, {'t', 'h', 0x00fe}, 259 {'s', 's', 0x00df}, {'"', 'y', 0x00ff}, 260 {'s', 'z', 0x00df}, {'i', 'j', 0x00ff}, 261}; 262 263unsigned int accent_table_size = 68; 264