xref: /linux/drivers/s390/char/defkeymap.c (revision 1a2ac6d7ecdcde74a4e16f31de64124160fc7237)
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 
14 u_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 
33 static 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 
52 static 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 
71 static 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 
90 ushort *ebc_key_maps[MAX_NR_KEYMAPS] = {
91 	ebc_plain_map, shift_map, NULL, NULL,
92 	ctrl_map, shift_ctrl_map, NULL,
93 };
94 
95 unsigned 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 
104 char 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 
128 char *ebc_funcbufptr = ebc_func_buf;
129 int ebc_funcbufsize = sizeof(ebc_func_buf);
130 int ebc_funcbufleft;		/* space left */
131 
132 char *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 
156 struct kbdiacruc ebc_accent_table[MAX_DIACR] = {
157 	{'^', 'c', 0003},	{'^', 'd', 0004},
158 	{'^', 'z', 0032},	{'^', 0012, 0000},
159 };
160 
161 unsigned int ebc_accent_table_size = 4;
162