Print this page
NEX-16819 loader UEFI support
Includes work by Toomas Soome <tsoome@me.com>
Upstream commits:
loader: pxe receive cleanup
9475 libefi: Do not return only if ReceiveFilter
installboot: should support efi system partition
8931 boot1.efi: scan all display modes rather than
loader: spinconsole updates
loader: gfx experiment to try GOP Blt() function.
sha1 build test
loader: add sha1 hash calculation
common/sha1: update for loader build
loader: biosdisk rework
uts: 32-bit kernel FB needs mapping in low memory
uts: add diag-device
uts: boot console mirror with diag-device
uts: enable very early console on ttya
kmdb: add diag-device as input/output device
uts: test VGA memory exclusion from mapping
uts: clear boot mapping and protect boot pages test
uts: add dboot map debug printf
uts: need to release FB pages in release_bootstrap()
uts: add screenmap ioctl
uts: update sys/queue.h
loader: add illumos uts/common to include path
loader: tem/gfx font cleanup
loader: vbe checks
uts: gfx_private set KD_TEXT when KD_RESETTEXT is
uts: gfx 8-bit update
loader: gfx 8-bit fix
loader: always set media size from partition.
uts: MB2 support for 32-bit kernel
loader: x86 should have tem 80x25
uts: x86 should have tem 80x25
uts: font update
loader: font update
uts: tem attributes
loader: tem.c comment added
uts: use font module
loader: add font module
loader: build rules for new font setup
uts: gfx_private update for new font structure
uts: early boot update for new font structure
uts: font update
uts: font build rules update for new fonts
uts: tem update to new font structure
loader: module.c needs to include tem_impl.h
uts: gfx_private 8x16 font rework
uts: make font_lookup public
loader: font rework
uts: font rework
9259 libefi: efi_alloc_and_read should check for PMBR
uts: tem utf-8 support
loader: implement tem utf-8 support
loader: tem should be able to display UTF-8
7784 uts: console input should support utf-8
7796 uts: ldterm default to utf-8
uts: do not reset serial console
uts: set up colors even if tem is not console
uts: add type for early boot properties
uts: gfx_private experiment with drm and vga
uts: gfx_private should use setmode drm callback.
uts: identify FB types and set up gfx_private based
loader: replace gop and vesa with framebuffer
uts: boot needs simple tem to support mdb
uts: boot_keyboard should emit esc sequences for
uts: gfx_private FB showuld be written by line
kmdb: set terminal window size
uts: gfx_private needs to keep track of early boot FB
pnglite: move pnglite to usr/src/common
loader: gfx_fb
ficl-sys: add gfx primitives
loader: add illumos.png logo
ficl: add fb-putimage
loader: add png support
loader: add alpha blending for gfx_fb
loader: use term-drawrect for menu frame
ficl: add simple gfx words
uts: provide fb_info via fbgattr dev_specific array.
uts: gfx_private add alpha blending
uts: update sys/ascii.h
uts: tem OSC support (incomplete)
uts: implement env module support and use data from
uts: tem get colors from early boot data
loader: use crc32 from libstand (libz)
loader: optimize for size
loader: pass tem info to the environment
loader: import tem for loader console
loader: UEFI loader needs to set ISADIR based on
loader: need UEFI32 support
8918 loader.efi: add vesa edid support
uts: tem_safe_pix_clear_prom_output() should only
uts: tem_safe_pix_clear_entire_screen() should use
uts: tem_safe_check_first_time() should query cursor
uts: tem implement cls callback & visual_io v4
uts: gfx_vgatext use block cursor for vgatext
uts: gfx_private implement cls callback & visual_io
uts: gfx_private bitmap framebuffer implementation
uts: early start frame buffer console support
uts: font functions should check the input char
uts: font rendering should support 16/24/32bit depths
uts: use smallest font as fallback default.
uts: update terminal dimensions based on selected
7834 uts: vgatext should use gfx_private
uts: add spacing property to 8859-1.bdf
terminfo: add underline for sun-color
terminfo: sun-color has 16 colors
uts: add font load callback type
loader: do not repeat int13 calls with error 0x20 and
8905 loader: add skein/edonr support
8904 common/crypto: make skein and edonr loader
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Revert "NEX-16819 loader UEFI support"
This reverts commit ec06b9fc617b99234e538bf2e7e4d02a24993e0c.
Reverting due to failures in the zfs-tests and the sharefs-tests
NEX-16819 loader UEFI support
Includes work by Toomas Soome <tsoome@me.com>
Upstream commits:
loader: pxe receive cleanup
9475 libefi: Do not return only if ReceiveFilter
installboot: should support efi system partition
8931 boot1.efi: scan all display modes rather than
loader: spinconsole updates
loader: gfx experiment to try GOP Blt() function.
sha1 build test
loader: add sha1 hash calculation
common/sha1: update for loader build
loader: biosdisk rework
uts: 32-bit kernel FB needs mapping in low memory
uts: add diag-device
uts: boot console mirror with diag-device
uts: enable very early console on ttya
kmdb: add diag-device as input/output device
uts: test VGA memory exclusion from mapping
uts: clear boot mapping and protect boot pages test
uts: add dboot map debug printf
uts: need to release FB pages in release_bootstrap()
uts: add screenmap ioctl
uts: update sys/queue.h
loader: add illumos uts/common to include path
loader: tem/gfx font cleanup
loader: vbe checks
uts: gfx_private set KD_TEXT when KD_RESETTEXT is
uts: gfx 8-bit update
loader: gfx 8-bit fix
loader: always set media size from partition.
uts: MB2 support for 32-bit kernel
loader: x86 should have tem 80x25
uts: x86 should have tem 80x25
uts: font update
loader: font update
uts: tem attributes
loader: tem.c comment added
uts: use font module
loader: add font module
loader: build rules for new font setup
uts: gfx_private update for new font structure
uts: early boot update for new font structure
uts: font update
uts: font build rules update for new fonts
uts: tem update to new font structure
loader: module.c needs to include tem_impl.h
uts: gfx_private 8x16 font rework
uts: make font_lookup public
loader: font rework
uts: font rework
libefi: efi_alloc_and_read should check for PMBR
uts: tem utf-8 support
loader: implement tem utf-8 support
loader: tem should be able to display UTF-8
7784 uts: console input should support utf-8
7796 uts: ldterm default to utf-8
uts: do not reset serial console
uts: set up colors even if tem is not console
uts: add type for early boot properties
uts: gfx_private experiment with drm and vga
uts: gfx_private should use setmode drm callback.
uts: identify FB types and set up gfx_private based
loader: replace gop and vesa with framebuffer
uts: boot needs simple tem to support mdb
uts: boot_keyboard should emit esc sequences for
uts: gfx_private FB showuld be written by line
kmdb: set terminal window size
uts: gfx_private needs to keep track of early boot FB
pnglite: move pnglite to usr/src/common
loader: gfx_fb
ficl-sys: add gfx primitives
loader: add illumos.png logo
ficl: add fb-putimage
loader: add png support
loader: add alpha blending for gfx_fb
loader: use term-drawrect for menu frame
ficl: add simple gfx words
uts: provide fb_info via fbgattr dev_specific array.
uts: gfx_private add alpha blending
uts: update sys/ascii.h
uts: tem OSC support (incomplete)
uts: implement env module support and use data from
uts: tem get colors from early boot data
loader: use crc32 from libstand (libz)
loader: optimize for size
loader: pass tem info to the environment
loader: import tem for loader console
loader: UEFI loader needs to set ISADIR based on
loader: need UEFI32 support
8918 loader.efi: add vesa edid support
uts: tem_safe_pix_clear_prom_output() should only
uts: tem_safe_pix_clear_entire_screen() should use
uts: tem_safe_check_first_time() should query cursor
uts: tem implement cls callback & visual_io v4
uts: gfx_vgatext use block cursor for vgatext
uts: gfx_private implement cls callback & visual_io
uts: gfx_private bitmap framebuffer implementation
uts: early start frame buffer console support
uts: font functions should check the input char
uts: font rendering should support 16/24/32bit depths
uts: use smallest font as fallback default.
uts: update terminal dimensions based on selected
7834 uts: vgatext should use gfx_private
uts: add spacing property to 8859-1.bdf
terminfo: add underline for sun-color
terminfo: sun-color has 16 colors
uts: add font load callback type
loader: do not repeat int13 calls with error 0x20 and
8905 loader: add skein/edonr support
8904 common/crypto: make skein and edonr loader
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/common/io/kbtrans/kbtrans_keytables.c
+++ new/usr/src/uts/common/io/kbtrans/kbtrans_keytables.c
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License, Version 1.0 only
6 6 * (the "License"). You may not use this file except in compliance
7 7 * with the License.
8 8 *
9 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 10 * or http://www.opensolaris.org/os/licensing.
11 11 * See the License for the specific language governing permissions
12 12 * and limitations under the License.
13 13 *
14 14 * When distributing Covered Code, include this CDDL HEADER in each
15 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 16 * If applicable, add the following below this CDDL HEADER, with the
|
↓ open down ↓ |
16 lines elided |
↑ open up ↑ |
17 17 * fields enclosed by brackets "[]" replaced with your own identifying
18 18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 19 *
20 20 * CDDL HEADER END
21 21 */
22 22 /*
23 23 * Copyright (c) 1999 by Sun Microsystems, Inc.
24 24 * All rights reserved.
25 25 */
26 26
27 -#pragma ident "%Z%%M% %I% %E% SMI"
28 -
29 27 /*
30 28 * This file contains generic keytable information across all
31 29 * keyboard hardware.
32 30 */
33 31
34 32 #include <sys/param.h>
35 33 #include <sys/kbd.h>
36 34
37 35 /*
38 36 * Keyboard String Table
39 37 *
40 38 * This defines the strings sent by various keys (as selected in the
41 39 * tables above).
42 40 * The first byte of each string is its length, the rest is data.
43 41 */
44 42
45 43 #ifdef __STDC__
46 44 #define kstescinit(c) "\033[" #c
47 45 #else /* __STDC__ */
48 46 #define kstescinit(c) {'\033', '[', 'c', '\0'}
49 47 #endif /* __STDC__ */
50 48 char keystringtab[16][KTAB_STRLEN] = {
51 49 kstescinit(H) /* home */,
52 50 kstescinit(A) /* up */,
53 51 kstescinit(B) /* down */,
54 52 kstescinit(D) /* left */,
55 53 kstescinit(C) /* right */,
56 54 };
57 55
58 56
59 57 /*
60 58 * Compose Key Sequence Table
61 59 *
62 60 * Taken from Suncompose.h of openwindows.
63 61 *
64 62 * The idea here is to create a simple index into a table of
65 63 * compose key sequences. The purpose is to provide a fast
66 64 * lookup mechanism using as little space as possible (while
67 65 * still using a table of triplets).
68 66 *
69 67 * For reference, here is the set of all composable characters:
70 68 * SP !\"\'*+,-./01234:<>?ACDEHILNOPRSTUXY\\^_`acdehilnoprstuxy|~
71 69 *
72 70 * if ascii_char[i] is not composable,
73 71 * kb_compose_map[i] is -1
74 72 * else
75 73 * if ascii_char[i] appears as a first char in compose_table,
76 74 * kb_compose_map[i] is the index of it's first appearance
77 75 * else
78 76 * kb_compose_map[i] is 112 (end of table)
79 77 */
80 78
81 79 signed char kb_compose_map[ASCII_SET_SIZE] = {
82 80 -1, /* 000 (^@) */
83 81 -1, /* 001 (^A) */
84 82 -1, /* 002 (^B) */
85 83 -1, /* 003 (^C) */
86 84 -1, /* 004 (^D) */
87 85 -1, /* 005 (^E) */
88 86 -1, /* 006 (^F) */
89 87 -1, /* 007 (^G) */
90 88 -1, /* 008 (^H) */
91 89 -1, /* 009 (^I) */
92 90 -1, /* 010 (^J) */
93 91 -1, /* 011 (^K) */
94 92 -1, /* 012 (^L) */
95 93 -1, /* 013 (^M) */
96 94 -1, /* 014 (^N) */
97 95 -1, /* 015 (^O) */
98 96 -1, /* 016 (^P) */
99 97 -1, /* 017 (^Q) */
100 98 -1, /* 018 (^R) */
101 99 -1, /* 019 (^S) */
102 100 -1, /* 020 (^T) */
103 101 -1, /* 021 (^U) */
104 102 -1, /* 022 (^V) */
105 103 -1, /* 023 (^W) */
106 104 -1, /* 024 (^X) */
107 105 -1, /* 025 (^Y) */
108 106 -1, /* 026 (^Z) */
109 107 -1, /* 027 (^[) */
110 108 -1, /* 028 (^\) */
111 109 -1, /* 029 (^]) */
112 110 -1, /* 030 (^^) */
113 111 -1, /* 031 (^_) */
114 112 0, /* 032 (SP) */
115 113 1, /* 033 (!) */
116 114 4, /* 034 (") */
117 115 -1, /* 035 (#) */
118 116 -1, /* 036 ($) */
119 117 -1, /* 037 (%) */
120 118 -1, /* 038 (&) */
121 119 16, /* 039 (') */
122 120 -1, /* 040 (() */
123 121 -1, /* 041 ()) */
124 122 28, /* 042 (*) */
125 123 31, /* 043 (+) */
126 124 32, /* 044 (,) */
127 125 36, /* 045 (-) */
128 126 48, /* 046 (.) */
129 127 49, /* 047 (/) */
130 128 54, /* 048 (0) */
131 129 57, /* 049 (1) */
132 130 60, /* 050 (2) */
133 131 61, /* 051 (3) */
134 132 112, /* 052 (4) */
135 133 -1, /* 053 (5) */
136 134 -1, /* 054 (6) */
137 135 -1, /* 055 (7) */
138 136 -1, /* 056 (8) */
139 137 -1, /* 057 (9) */
140 138 112, /* 058 (:) */
141 139 -1, /* 059 (;) */
142 140 63, /* 060 (<) */
143 141 -1, /* 061 (=) */
144 142 64, /* 062 (>) */
145 143 65, /* 063 (?) */
146 144 -1, /* 064 (@) */
147 145 66, /* 065 (A) */
148 146 -1, /* 066 (B) */
149 147 70, /* 067 (C) */
150 148 112, /* 068 (D) */
151 149 71, /* 069 (E) */
152 150 -1, /* 070 (F) */
153 151 -1, /* 071 (G) */
154 152 73, /* 072 (H) */
155 153 74, /* 073 (I) */
156 154 -1, /* 074 (J) */
157 155 -1, /* 075 (K) */
158 156 112, /* 076 (L) */
159 157 -1, /* 077 (M) */
160 158 76, /* 078 (N) */
161 159 77, /* 079 (O) */
162 160 84, /* 080 (P) */
163 161 -1, /* 081 (Q) */
164 162 112, /* 082 (R) */
165 163 112, /* 083 (S) */
166 164 112, /* 084 (T) */
167 165 85, /* 085 (U) */
168 166 -1, /* 086 (V) */
169 167 -1, /* 087 (W) */
170 168 112, /* 088 (X) */
171 169 112, /* 089 (Y) */
172 170 -1, /* 090 (Z) */
173 171 -1, /* 091 ([) */
174 172 87, /* 092 (\) */
175 173 -1, /* 093 (]) */
176 174 88, /* 094 (^) */
177 175 93, /* 095 (_) */
178 176 94, /* 096 (`) */
179 177 99, /* 097 (a) */
180 178 -1, /* 098 (b) */
181 179 101, /* 099 (c) */
182 180 112, /* 100 (d) */
183 181 112, /* 101 (e) */
184 182 -1, /* 102 (f) */
185 183 -1, /* 103 (g) */
186 184 102, /* 104 (h) */
187 185 112, /* 105 (i) */
188 186 -1, /* 106 (j) */
189 187 -1, /* 107 (k) */
190 188 112, /* 108 (l) */
191 189 -1, /* 109 (m) */
192 190 103, /* 110 (n) */
193 191 104, /* 111 (o) */
194 192 108, /* 112 (p) */
195 193 -1, /* 113 (q) */
196 194 112, /* 114 (r) */
197 195 109, /* 115 (s) */
198 196 112, /* 116 (t) */
199 197 112, /* 117 (u) */
200 198 -1, /* 118 (v) */
201 199 -1, /* 119 (w) */
202 200 110, /* 120 (x) */
203 201 112, /* 121 (y) */
204 202 -1, /* 122 (z) */
205 203 -1, /* 123 ({) */
206 204 111, /* 124 (|) */
207 205 -1, /* 125 (}) */
208 206 112, /* 126 (~) */
209 207 -1, /* 127 (DEL) */
|
↓ open down ↓ |
171 lines elided |
↑ open up ↑ |
210 208 };
211 209
212 210 /*
213 211 * IMPORTANT NOTE: This table MUST be kept in proper sorted order:
214 212 * The first and second characters in each entry must be in ASCII
215 213 * collating sequence (left to right).
216 214 * The table must be in ASCII collating sequence by first character
217 215 * (top to bottom).
218 216 */
219 217
220 -/* COMPOSE + first character + second character => ISO character */
218 +/* COMPOSE + first character + second character => UTF-8 character */
221 219
222 220 struct compose_sequence_t kb_compose_table[] = {
223 221
224 222 {' ', ' ', 0xA0}, /* 000 */ /* NBSP (non-breaking space) */
225 223 {'!', '!', 0xA1}, /* 001 */ /* inverted ! */
226 224 {'!', 'P', 0xB6}, /* 002 */ /* paragraph mark */
227 225 {'!', 'p', 0xB6}, /* 003 */ /* paragraph mark */
228 226 {'"', '"', 0xA8}, /* 004 */ /* diaresis */
229 227 {'"', 'A', 0xC4}, /* 005 */ /* A with diaresis */
230 228 {'"', 'E', 0xCB}, /* 006 */ /* E with diaresis */
231 229 {'"', 'I', 0xCF}, /* 007 */ /* I with diaresis */
232 230 {'"', 'O', 0xD6}, /* 008 */ /* O with diaresis */
233 231 {'"', 'U', 0xDC}, /* 009 */ /* U with diaresis */
234 232 {'"', 'a', 0xE4}, /* 010 */ /* a with diaresis */
235 233 {'"', 'e', 0xEB}, /* 011 */ /* e with diaresis */
236 234 {'"', 'i', 0xEF}, /* 012 */ /* i with diaresis */
237 235 {'"', 'o', 0xF6}, /* 013 */ /* o with diaresis */
238 236 {'"', 'u', 0xFC}, /* 014 */ /* u with diaresis */
239 237 {'"', 'y', 0xFF}, /* 015 */ /* y with diaresis */
240 238 {'\'', 'A', 0xC1}, /* 016 */ /* A with acute accent */
241 239 {'\'', 'E', 0xC9}, /* 017 */ /* E with acute accent */
242 240 {'\'', 'I', 0xCD}, /* 018 */ /* I with acute accent */
243 241 {'\'', 'O', 0xD3}, /* 019 */ /* O with acute accent */
244 242 {'\'', 'U', 0xDA}, /* 020 */ /* U with acute accent */
245 243 {'\'', 'Y', 0xDD}, /* 021 */ /* Y with acute accent */
246 244 {'\'', 'a', 0xE1}, /* 022 */ /* a with acute accent */
247 245 {'\'', 'e', 0xE9}, /* 023 */ /* e with acute accent */
248 246 {'\'', 'i', 0xED}, /* 024 */ /* i with acute accent */
249 247 {'\'', 'o', 0xF3}, /* 025 */ /* o with acute accent */
250 248 {'\'', 'u', 0xFA}, /* 026 */ /* u with acute accent */
251 249 {'\'', 'y', 0xFD}, /* 027 */ /* y with acute accent */
252 250 {'*', 'A', 0xC5}, /* 028 */ /* A with ring */
253 251 {'*', '^', 0xB0}, /* 029 */ /* degree */
254 252 {'*', 'a', 0xE5}, /* 030 */ /* a with ring */
255 253 {'+', '-', 0xB1}, /* 031 */ /* plus/minus */
256 254 {',', ',', 0xB8}, /* 032 */ /* cedilla */
257 255 {',', '-', 0xAC}, /* 033 */ /* not sign */
258 256 {',', 'C', 0xC7}, /* 034 */ /* C with cedilla */
259 257 {',', 'c', 0xE7}, /* 035 */ /* c with cedilla */
260 258 {'-', '-', 0xAD}, /* 036 */ /* soft hyphen */
261 259 {'-', ':', 0xF7}, /* 037 */ /* division sign */
262 260 {'-', 'A', 0xAA}, /* 038 */ /* feminine superior numeral */
263 261 {'-', 'D', 0xD0}, /* 039 */ /* Upper-case eth */
264 262 {'-', 'L', 0xA3}, /* 040 */ /* pounds sterling */
265 263 {'-', 'Y', 0xA5}, /* 041 */ /* yen */
266 264 {'-', '^', 0xAF}, /* 042 */ /* macron */
267 265 {'-', 'a', 0xAA}, /* 043 */ /* feminine superior numeral */
268 266 {'-', 'd', 0xF0}, /* 044 */ /* Lower-case eth */
269 267 {'-', 'l', 0xA3}, /* 045 */ /* pounds sterling */
270 268 {'-', 'y', 0xA5}, /* 046 */ /* yen */
271 269 {'-', '|', 0xAC}, /* 047 */ /* not sign */
272 270 {'.', '^', 0xB7}, /* 048 */ /* centered dot */
273 271 {'/', 'C', 0xA2}, /* 049 */ /* cent sign */
274 272 {'/', 'O', 0xD8}, /* 050 */ /* O with slash */
275 273 {'/', 'c', 0xA2}, /* 051 */ /* cent sign */
276 274 {'/', 'o', 0xF8}, /* 052 */ /* o with slash */
277 275 {'/', 'u', 0xB5}, /* 053 */ /* mu */
278 276 {'0', 'X', 0xA4}, /* 054 */ /* currency symbol */
279 277 {'0', '^', 0xB0}, /* 055 */ /* degree */
280 278 {'0', 'x', 0xA4}, /* 056 */ /* currency symbol */
281 279 {'1', '2', 0xBD}, /* 057 */ /* 1/2 */
282 280 {'1', '4', 0xBC}, /* 058 */ /* 1/4 */
283 281 {'1', '^', 0xB9}, /* 059 */ /* superior '1' */
284 282 {'2', '^', 0xB2}, /* 060 */ /* superior '2' */
285 283 {'3', '4', 0xBE}, /* 061 */ /* 3/4 */
286 284 {'3', '^', 0xB3}, /* 062 */ /* superior '3' */
287 285 {'<', '<', 0xAB}, /* 063 */ /* left guillemot */
288 286 {'>', '>', 0xBB}, /* 064 */ /* right guillemot */
289 287 {'?', '?', 0xBF}, /* 065 */ /* inverted ? */
290 288 {'A', 'E', 0xC6}, /* 066 */ /* AE dipthong */
291 289 {'A', '^', 0xC2}, /* 067 */ /* A with circumflex accent */
292 290 {'A', '`', 0xC0}, /* 068 */ /* A with grave accent */
293 291 {'A', '~', 0xC3}, /* 069 */ /* A with tilde */
294 292 {'C', 'O', 0xA9}, /* 060 */ /* copyright */
295 293 {'E', '^', 0xCA}, /* 071 */ /* E with circumflex accent */
296 294 {'E', '`', 0xC8}, /* 072 */ /* E with grave accent */
297 295 {'H', 'T', 0xDE}, /* 073 */ /* Upper-case thorn */
298 296 {'I', '^', 0xCE}, /* 074 */ /* I with circumflex accent */
299 297 {'I', '`', 0xCC}, /* 075 */ /* I with grave accent */
300 298 {'N', '~', 0xD1}, /* 076 */ /* N with tilde */
301 299 {'O', 'R', 0xAE}, /* 077 */ /* registered */
302 300 {'O', 'S', 0xA7}, /* 078 */ /* section mark */
303 301 {'O', 'X', 0xA4}, /* 079 */ /* currency symbol */
304 302 {'O', '^', 0xD4}, /* 080 */ /* O with circumflex accent */
305 303 {'O', '_', 0xBA}, /* 081 */ /* masculine superior numeral */
306 304 {'O', '`', 0xD2}, /* 082 */ /* O with grave accent */
307 305 {'O', '~', 0xD5}, /* 083 */ /* O with tilde */
308 306 {'P', '|', 0xDE}, /* 084 */ /* Upper-case thorn */
309 307 {'U', '^', 0xDB}, /* 085 */ /* U with circumflex accent */
310 308 {'U', '`', 0xD9}, /* 086 */ /* U with grave accent */
311 309 {'\\', '\\', 0xB4}, /* 087 */ /* acute accent */
312 310 {'^', 'a', 0xE2}, /* 088 */ /* a with circumflex accent */
313 311 {'^', 'e', 0xEA}, /* 089 */ /* e with circumflex accent */
314 312 {'^', 'i', 0xEE}, /* 090 */ /* i with circumflex accent */
315 313 {'^', 'o', 0xF4}, /* 091 */ /* o with circumflex accent */
316 314 {'^', 'u', 0xFB}, /* 092 */ /* u with circumflex accent */
317 315 {'_', 'o', 0xBA}, /* 093 */ /* masculine superior numeral */
318 316 {'`', 'a', 0xE0}, /* 094 */ /* a with grave accent */
319 317 {'`', 'e', 0xE8}, /* 095 */ /* e with grave accent */
320 318 {'`', 'i', 0xEC}, /* 096 */ /* i with grave accent */
321 319 {'`', 'o', 0xF2}, /* 097 */ /* o with grave accent */
322 320 {'`', 'u', 0xF9}, /* 098 */ /* u with grave accent */
323 321 {'a', 'e', 0xE6}, /* 099 */ /* ae dipthong */
324 322 {'a', '~', 0xE3}, /* 100 */ /* a with tilde */
325 323 {'c', 'o', 0xA9}, /* 101 */ /* copyright */
326 324 {'h', 't', 0xFE}, /* 102 */ /* Lower-case thorn */
327 325 {'n', '~', 0xF1}, /* 103 */ /* n with tilde */
328 326 {'o', 'r', 0xAE}, /* 104 */ /* registered */
329 327 {'o', 's', 0xA7}, /* 105 */ /* section mark */
330 328 {'o', 'x', 0xA4}, /* 106 */ /* currency symbol */
331 329 {'o', '~', 0xF5}, /* 107 */ /* o with tilde */
332 330 {'p', '|', 0xFE}, /* 108 */ /* Lower-case thorn */
333 331 {'s', 's', 0xDF}, /* 109 */ /* German double-s */
|
↓ open down ↓ |
103 lines elided |
↑ open up ↑ |
334 332 {'x', 'x', 0xD7}, /* 110 */ /* multiplication sign */
335 333 {'|', '|', 0xA6}, /* 111 */ /* broken bar */
336 334
337 335 {0, 0, 0}, /* end of table */
338 336 };
339 337
340 338 /*
341 339 * Floating Accent Sequence Table
342 340 */
343 341
344 -/* FA + ASCII character => ISO character */
342 +/* FA + ASCII character => UTF-8 character */
345 343 struct fltaccent_sequence_t kb_fltaccent_table[] = {
346 344
345 + {FA_UMLAUT, ' ', 0xA8}, /* umlaut/diaresis */
347 346 {FA_UMLAUT, 'A', 0xC4}, /* A with umlaut */
348 347 {FA_UMLAUT, 'E', 0xCB}, /* E with umlaut */
349 348 {FA_UMLAUT, 'I', 0xCF}, /* I with umlaut */
350 349 {FA_UMLAUT, 'O', 0xD6}, /* O with umlaut */
351 350 {FA_UMLAUT, 'U', 0xDC}, /* U with umlaut */
352 351 {FA_UMLAUT, 'a', 0xE4}, /* a with umlaut */
353 352 {FA_UMLAUT, 'e', 0xEB}, /* e with umlaut */
354 353 {FA_UMLAUT, 'i', 0xEF}, /* i with umlaut */
355 354 {FA_UMLAUT, 'o', 0xF6}, /* o with umlaut */
356 355 {FA_UMLAUT, 'u', 0xFC}, /* u with umlaut */
357 356 {FA_UMLAUT, 'y', 0xFF}, /* y with umlaut */
358 357
359 358 {FA_CFLEX, 'A', 0xC2}, /* A with circumflex */
|
↓ open down ↓ |
3 lines elided |
↑ open up ↑ |
360 359 {FA_CFLEX, 'E', 0xCA}, /* E with circumflex */
361 360 {FA_CFLEX, 'I', 0xCE}, /* I with circumflex */
362 361 {FA_CFLEX, 'O', 0xD4}, /* O with circumflex */
363 362 {FA_CFLEX, 'U', 0xDB}, /* U with circumflex */
364 363 {FA_CFLEX, 'a', 0xE2}, /* a with circumflex */
365 364 {FA_CFLEX, 'e', 0xEA}, /* e with circumflex */
366 365 {FA_CFLEX, 'i', 0xEE}, /* i with circumflex */
367 366 {FA_CFLEX, 'o', 0xF4}, /* o with circumflex */
368 367 {FA_CFLEX, 'u', 0xFB}, /* u with circumflex */
369 368
369 + {FA_TILDE, ' ', '~'}, /* tilde */
370 370 {FA_TILDE, 'A', 0xC3}, /* A with tilde */
371 371 {FA_TILDE, 'N', 0xD1}, /* N with tilde */
372 372 {FA_TILDE, 'O', 0xD5}, /* O with tilde */
373 373 {FA_TILDE, 'a', 0xE3}, /* a with tilde */
374 374 {FA_TILDE, 'n', 0xF1}, /* n with tilde */
375 375 {FA_TILDE, 'o', 0xF5}, /* o with tilde */
376 376
377 + {FA_CEDILLA, ' ', 0xB8}, /* cedilla */
377 378 {FA_CEDILLA, 'C', 0xC7}, /* C with cedilla */
378 379 {FA_CEDILLA, 'c', 0xE7}, /* c with cedilla */
379 380
381 + {FA_ACUTE, ' ', '\''}, /* apostrophe */
380 382 {FA_ACUTE, 'A', 0xC1}, /* A with acute accent */
381 383 {FA_ACUTE, 'E', 0xC9}, /* E with acute accent */
382 384 {FA_ACUTE, 'I', 0xCD}, /* I with acute accent */
383 385 {FA_ACUTE, 'O', 0xD3}, /* O with acute accent */
384 386 {FA_ACUTE, 'U', 0xDA}, /* U with acute accent */
385 387 {FA_ACUTE, 'a', 0xE1}, /* a with acute accent */
386 388 {FA_ACUTE, 'e', 0xE9}, /* e with acute accent */
387 389 {FA_ACUTE, 'i', 0xED}, /* i with acute accent */
388 390 {FA_ACUTE, 'o', 0xF3}, /* o with acute accent */
389 391 {FA_ACUTE, 'u', 0xFA}, /* u with acute accent */
390 392 {FA_ACUTE, 'y', 0xFD}, /* y with acute accent */
391 393
394 + {FA_GRAVE, ' ', '`'}, /* grave accent */
392 395 {FA_GRAVE, 'A', 0xC0}, /* A with grave accent */
393 396 {FA_GRAVE, 'E', 0xC8}, /* E with grave accent */
394 397 {FA_GRAVE, 'I', 0xCC}, /* I with grave accent */
395 398 {FA_GRAVE, 'O', 0xD2}, /* O with grave accent */
396 399 {FA_GRAVE, 'U', 0xD9}, /* U with grave accent */
397 400 {FA_GRAVE, 'a', 0xE0}, /* a with grave accent */
398 401 {FA_GRAVE, 'e', 0xE8}, /* e with grave accent */
399 402 {FA_GRAVE, 'i', 0xEC}, /* i with grave accent */
400 403 {FA_GRAVE, 'o', 0xF2}, /* o with grave accent */
401 404 {FA_GRAVE, 'u', 0xF9}, /* u with grave accent */
402 405
406 + {FA_MACRON, ' ', 0xAF}, /* macron */
407 +
408 + {FA_BREVE, ' ', 0x306}, /* combining breve */
409 +
410 + {FA_DOT, ' ', 0x307}, /* combining dot above */
411 +
412 + {FA_SLASH, 0, 0}, /* slash, invalid entry */
413 +
414 + {FA_RING, ' ', 0x30A}, /* combining ring above */
415 +
416 + {FA_APOSTROPHE, ' ', '\''}, /* apostrophe */
417 +
418 + {FA_DACUTE, ' ', 0x30B}, /* combining double acute */
419 +
420 + {FA_OGONEK, ' ', 0x328}, /* combining ogonek */
421 +
422 + {FA_CARON, ' ', 0x2C7}, /* caron */
423 + {FA_CARON, 'C', 0x10C}, /* C with caron */
424 + {FA_CARON, 'S', 0x160}, /* S with caron */
425 + {FA_CARON, 'Z', 0x17D}, /* Z with caron */
426 + {FA_CARON, 'c', 0x10D}, /* c with caron */
427 + {FA_CARON, 's', 0x161}, /* s with caron */
428 + {FA_CARON, 'z', 0x17E}, /* z with caron */
429 +
403 430 {0, 0, 0}, /* end of table */
404 431 };
405 432
406 433 /*
407 434 * Num Lock Table
408 435 */
409 436
410 437 /* Num Lock: pad key entry & 0x1F => ASCII character */
411 438 uchar_t kb_numlock_table[] = {
412 439 '=',
413 440 '/',
414 441 '*',
415 442 '-',
416 443 ',',
417 444
418 445 '7',
419 446 '8',
420 447 '9',
421 448 '+',
422 449
423 450 '4',
424 451 '5',
425 452 '6',
426 453
427 454 '1',
428 455 '2',
429 456 '3',
430 457
431 458 '0',
432 459 '.',
433 460 '\n', /* Enter */
434 461 };
|
↓ open down ↓ |
22 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX