[console] Ensure that US keyboard map appears at start of linker table

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/594/head
Michael Brown 2022-02-16 00:11:33 +00:00
parent 252cff5e9a
commit 11e17991d0
3 changed files with 7 additions and 3 deletions

View File

@ -21,7 +21,7 @@ static struct keymap_key us_altgr[] = {
};
/** "us" keyboard map */
struct keymap us_keymap __keymap = {
struct keymap us_keymap __keymap_default = {
.name = "us",
.basic = us_basic,
.altgr = us_altgr,

View File

@ -39,8 +39,11 @@ struct keymap {
/** Keyboard mapping table */
#define KEYMAP __table ( struct keymap, "keymap" )
/** Define a default keyboard mapping */
#define __keymap_default __table_entry ( KEYMAP, 01 )
/** Define a keyboard mapping */
#define __keymap __table_entry ( KEYMAP, 01 )
#define __keymap __table_entry ( KEYMAP, 02 )
/** Mappable character mask */
#define KEYMAP_MASK 0xff

View File

@ -399,6 +399,7 @@ class Keymap:
keymap_name = self.cname("keymap")
basic_name = self.cname("basic")
altgr_name = self.cname("altgr")
attribute = "__keymap_default" if self.name == "us" else "__keymap"
code = textwrap.dedent(f"""
/** @file
*
@ -419,7 +420,7 @@ class Keymap:
static struct keymap_key {altgr_name}[] = %s;
/** "{self.name}" keyboard map */
struct keymap {keymap_name} __keymap = {{
struct keymap {keymap_name} {attribute} = {{
\t.name = "{self.name}",
\t.basic = {basic_name},
\t.altgr = {altgr_name},