]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[console] Ensure that US keyboard map appears at start of linker table
authorMichael Brown <mcb30@ipxe.org>
Wed, 16 Feb 2022 00:11:33 +0000 (00:11 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 16 Feb 2022 13:50:41 +0000 (13:50 +0000)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/hci/keymap/keymap_us.c
src/include/ipxe/keymap.h
src/util/genkeymap.py

index 6432474e21241238c1e123e2e277e7e87c4a1188..b8e604a4838cc13ba3cb02184f5541e35507595e 100644 (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,
index 72b6961efee319cbce3ca8c117f6dcabba7efbff..392d3ab8fcde2fd2e3ba6afcbea578fd379157b2 100644 (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
index 632f71edac896400690c6bcd6cc107f5fadc6855..9fd9874779f74ee183d7ae38a486c148a009c471 100755 (executable)
@@ -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},