1// SPDX-License-Identifier: GPL-2.0
2/* Do not edit this file! It was automatically generated by     */
3/*    loadkeys --mktable --unicode 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
142unsigned short *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