1// SPDX-License-Identifier: GPL-2.0
2
3/* Do not edit this file! It was automatically generated by   */
4/*    loadkeys --mktable defkeymap.map > defkeymap.c          */
5
6#include <linux/types.h>
7#include <linux/keyboard.h>
8#include <linux/kd.h>
9#include <linux/kbd_kern.h>
10#include <linux/kbd_diacr.h>
11
12#include "keyboard.h"
13
14u_short ebc_plain_map[NR_KEYS] = {
15	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
16	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
17	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
18	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
19	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
20	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
21	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
22	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,	0xf000,
23	0xf020,	0xf000,	0xf0e2,	0xf0e4,	0xf0e0,	0xf0e1,	0xf0e3,	0xf0e5,
24	0xf0e7,	0xf0f1,	0xf0a2,	0xf02e,	0xf03c,	0xf028,	0xf02b,	0xf07c,
25	0xf026,	0xf0e9,	0xf0e2,	0xf0eb,	0xf0e8,	0xf0ed,	0xf0ee,	0xf0ef,
26	0xf0ec,	0xf0df,	0xf021,	0xf024,	0xf02a,	0xf029,	0xf03b,	0xf0ac,
27	0xf02d,	0xf02f,	0xf0c2,	0xf0c4,	0xf0c0,	0xf0c1,	0xf0c3,	0xf0c5,
28	0xf0c7,	0xf0d1,	0xf0a6,	0xf02c,	0xf025,	0xf05f,	0xf03e,	0xf03f,
29	0xf0f8,	0xf0c9,	0xf0ca,	0xf0cb,	0xf0c8,	0xf0cd,	0xf0ce,	0xf0cf,
30	0xf0cc,	0xf060,	0xf03a,	0xf023,	0xf040,	0xf027,	0xf03d,	0xf022,
31};
32
33static u_short shift_map[NR_KEYS] = {
34	0xf0d8,	0xf061,	0xf062,	0xf063,	0xf064,	0xf065,	0xf066,	0xf067,
35	0xf068,	0xf069,	0xf0ab,	0xf0bb,	0xf0f0,	0xf0fd,	0xf0fe,	0xf0b1,
36	0xf0b0,	0xf06a,	0xf06b,	0xf06c,	0xf06d,	0xf06e,	0xf06f,	0xf070,
37	0xf071,	0xf072,	0xf000,	0xf000,	0xf0e6,	0xf0b8,	0xf0c6,	0xf0a4,
38	0xf0b5,	0xf07e,	0xf073,	0xf074,	0xf075,	0xf076,	0xf077,	0xf078,
39	0xf079,	0xf07a,	0xf0a1,	0xf0bf,	0xf0d0,	0xf0dd,	0xf0de,	0xf0ae,
40	0xf402,	0xf0a3,	0xf0a5,	0xf0b7,	0xf0a9,	0xf0a7,	0xf0b6,	0xf0bc,
41	0xf0bd,	0xf0be,	0xf05b,	0xf05d,	0xf000,	0xf0a8,	0xf0b4,	0xf0d7,
42	0xf07b,	0xf041,	0xf042,	0xf043,	0xf044,	0xf045,	0xf046,	0xf047,
43	0xf048,	0xf049,	0xf000,	0xf0f4,	0xf0f6,	0xf0f2,	0xf0f3,	0xf0f5,
44	0xf07d,	0xf04a,	0xf04b,	0xf04c,	0xf04d,	0xf04e,	0xf04f,	0xf050,
45	0xf051,	0xf052,	0xf0b9,	0xf0fb,	0xf0fc,	0xf0f9,	0xf0fa,	0xf0ff,
46	0xf05c,	0xf0f7,	0xf053,	0xf054,	0xf055,	0xf056,	0xf057,	0xf058,
47	0xf059,	0xf05a,	0xf0b2,	0xf0d4,	0xf0d6,	0xf0d2,	0xf0d3,	0xf0d5,
48	0xf030,	0xf031,	0xf032,	0xf033,	0xf034,	0xf035,	0xf036,	0xf037,
49	0xf038,	0xf039,	0xf0b3,	0xf0db,	0xf0dc,	0xf0d9,	0xf0da,	0xf000,
50};
51
52static u_short ctrl_map[NR_KEYS] = {
53	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
54	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
55	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
56	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
57	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
58	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
59	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
60	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
61	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
62	0xf200,	0xf200,	0xf11f,	0xf120,	0xf121,	0xf200,	0xf200,	0xf200,
63	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
64	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
65	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
66	0xf200,	0xf200,	0xf200,	0xf01a,	0xf003,	0xf212,	0xf004,	0xf200,
67	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
68	0xf200,	0xf200,	0xf109,	0xf10a,	0xf206,	0xf00a,	0xf200,	0xf200,
69};
70
71static u_short shift_ctrl_map[NR_KEYS] = {
72	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
73	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
74	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
75	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
76	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
77	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
78	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
79	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
80	0xf200,	0xf10c,	0xf10d,	0xf10e,	0xf10f,	0xf110,	0xf111,	0xf112,
81	0xf113,	0xf11e,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
82	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
83	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
84	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
85	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
86	0xf200,	0xf100,	0xf101,	0xf211,	0xf103,	0xf104,	0xf105,	0xf20b,
87	0xf20a,	0xf108,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,	0xf200,
88};
89
90ushort *ebc_key_maps[MAX_NR_KEYMAPS] = {
91	ebc_plain_map, shift_map, NULL, NULL,
92	ctrl_map, shift_ctrl_map, NULL,
93};
94
95unsigned int ebc_keymap_count = 4;
96
97
98/*
99 * Philosophy: most people do not define more strings, but they who do
100 * often want quite a lot of string space. So, we statically allocate
101 * the default and allocate dynamically in chunks of 512 bytes.
102 */
103
104char ebc_func_buf[] = {
105	'\033', '[', '[', 'A', 0,
106	'\033', '[', '[', 'B', 0,
107	'\033', '[', '[', 'C', 0,
108	'\033', '[', '[', 'D', 0,
109	'\033', '[', '[', 'E', 0,
110	'\033', '[', '1', '7', '~', 0,
111	'\033', '[', '1', '8', '~', 0,
112	'\033', '[', '1', '9', '~', 0,
113	'\033', '[', '2', '0', '~', 0,
114	'\033', '[', '2', '1', '~', 0,
115	'\033', '[', '2', '3', '~', 0,
116	'\033', '[', '2', '4', '~', 0,
117	'\033', '[', '2', '5', '~', 0,
118	'\033', '[', '2', '6', '~', 0,
119	'\033', '[', '2', '8', '~', 0,
120	'\033', '[', '2', '9', '~', 0,
121	'\033', '[', '3', '1', '~', 0,
122	'\033', '[', '3', '2', '~', 0,
123	'\033', '[', '3', '3', '~', 0,
124	'\033', '[', '3', '4', '~', 0,
125};
126
127
128char *ebc_funcbufptr = ebc_func_buf;
129int ebc_funcbufsize = sizeof(ebc_func_buf);
130int ebc_funcbufleft;		/* space left */
131
132char *ebc_func_table[MAX_NR_FUNC] = {
133	ebc_func_buf + 0,
134	ebc_func_buf + 5,
135	ebc_func_buf + 10,
136	ebc_func_buf + 15,
137	ebc_func_buf + 20,
138	ebc_func_buf + 25,
139	ebc_func_buf + 31,
140	ebc_func_buf + 37,
141	ebc_func_buf + 43,
142	ebc_func_buf + 49,
143	ebc_func_buf + 55,
144	ebc_func_buf + 61,
145	ebc_func_buf + 67,
146	ebc_func_buf + 73,
147	ebc_func_buf + 79,
148	ebc_func_buf + 85,
149	ebc_func_buf + 91,
150	ebc_func_buf + 97,
151	ebc_func_buf + 103,
152	ebc_func_buf + 109,
153	NULL,
154};
155
156struct kbdiacruc ebc_accent_table[MAX_DIACR] = {
157	{'^', 'c', 0003},	{'^', 'd', 0004},
158	{'^', 'z', 0032},	{'^', 0012, 0000},
159};
160
161unsigned int ebc_accent_table_size = 4;
162