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