summaryrefslogtreecommitdiffstats
path: root/src/hci/keymap/keymap_es.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/hci/keymap/keymap_es.c')
-rw-r--r--src/hci/keymap/keymap_es.c52
1 files changed, 50 insertions, 2 deletions
diff --git a/src/hci/keymap/keymap_es.c b/src/hci/keymap/keymap_es.c
index c1fe013a9..c1c55b348 100644
--- a/src/hci/keymap/keymap_es.c
+++ b/src/hci/keymap/keymap_es.c
@@ -10,8 +10,10 @@ FILE_LICENCE ( PUBLIC_DOMAIN );
#include <ipxe/keymap.h>
-/** "es" keyboard mapping */
-struct key_mapping es_mapping[] __keymap = {
+/** "es" basic remapping */
+static struct keymap_key es_basic[] = {
+ { 0x1c, 0x1d }, /* 0x1c => 0x1d */
+ { 0x1e, 0x36 }, /* 0x1e => '6' */
{ 0x26, 0x2f }, /* '&' => '/' */
{ 0x28, 0x29 }, /* '(' => ')' */
{ 0x29, 0x3d }, /* ')' => '=' */
@@ -22,8 +24,54 @@ struct key_mapping es_mapping[] __keymap = {
{ 0x3e, 0x3a }, /* '>' => ':' */
{ 0x3f, 0x5f }, /* '?' => '_' */
{ 0x40, 0x22 }, /* '@' => '"' */
+ { 0x5b, 0x60 }, /* '[' => '`' */
{ 0x5d, 0x2b }, /* ']' => '+' */
{ 0x5e, 0x26 }, /* '^' => '&' */
{ 0x5f, 0x3f }, /* '_' => '?' */
+ { 0x7b, 0x5e }, /* '{' => '^' */
{ 0x7d, 0x2a }, /* '}' => '*' */
+ { 0xdc, 0x3c }, /* Pseudo-'\\' => '<' */
+ { 0xfc, 0x3e }, /* Pseudo-'|' => '>' */
+ { 0, 0 }
+};
+
+/** "es" AltGr remapping */
+static struct keymap_key es_altgr[] = {
+ { 0x21, 0x7c }, /* '!' => '|' */
+ { 0x22, 0x7b }, /* '"' => '{' */
+ { 0x26, 0x7b }, /* '&' => '{' */
+ { 0x27, 0x7b }, /* '\'' => '{' */
+ { 0x28, 0x5d }, /* '(' => ']' */
+ { 0x29, 0x7d }, /* ')' => '}' */
+ { 0x2a, 0x5b }, /* '*' => '[' */
+ { 0x2b, 0x7e }, /* '+' => '~' */
+ { 0x2d, 0x5c }, /* '-' => '\\' */
+ { 0x30, 0x7d }, /* '0' => '}' */
+ { 0x31, 0x7c }, /* '1' => '|' */
+ { 0x32, 0x40 }, /* '2' => '@' */
+ { 0x33, 0x23 }, /* '3' => '#' */
+ { 0x34, 0x7e }, /* '4' => '~' */
+ { 0x37, 0x7b }, /* '7' => '{' */
+ { 0x38, 0x5b }, /* '8' => '[' */
+ { 0x39, 0x5d }, /* '9' => ']' */
+ { 0x3a, 0x7e }, /* ':' => '~' */
+ { 0x3b, 0x7e }, /* ';' => '~' */
+ { 0x3d, 0x7e }, /* '=' => '~' */
+ { 0x51, 0x40 }, /* 'Q' => '@' */
+ { 0x5c, 0x7d }, /* '\\' => '}' */
+ { 0x5f, 0x5c }, /* '_' => '\\' */
+ { 0x60, 0x5c }, /* '`' => '\\' */
+ { 0x71, 0x40 }, /* 'q' => '@' */
+ { 0x7b, 0x5b }, /* '{' => '[' */
+ { 0x7c, 0x7e }, /* '|' => '~' */
+ { 0x7e, 0x5c }, /* '~' => '\\' */
+ { 0xdc, 0x7c }, /* Pseudo-'\\' => '|' */
+ { 0, 0 }
+};
+
+/** "es" keyboard map */
+struct keymap es_keymap __keymap = {
+ .name = "es",
+ .basic = es_basic,
+ .altgr = es_altgr,
};