]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
pe: Add LoongArch definitions
authorXiaotian Wu <wuxiaotian@loongson.cn>
Thu, 27 Apr 2023 07:43:00 +0000 (15:43 +0800)
committerDaniel Kiper <daniel.kiper@oracle.com>
Wed, 17 May 2023 10:42:22 +0000 (12:42 +0200)
Add PE machine types [1] and relocation types [2] for LoongArch to
the current in-repo definitions.

[1] https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#machine-types
[2] https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#base-relocation-types

Signed-off-by: Zhou Yang <zhouyang@loongson.cn>
Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
include/grub/efi/pe32.h

index 98c4ff177e19f0fa7238b969a31aaead83521491..101859af1ea64237fe323d5bf695b78acae2c213 100644 (file)
@@ -88,6 +88,8 @@ struct grub_pe32_coff_header
 #define GRUB_PE32_MACHINE_X86_64               0x8664
 #define GRUB_PE32_MACHINE_ARMTHUMB_MIXED       0x01c2
 #define GRUB_PE32_MACHINE_ARM64                        0xAA64
+#define GRUB_PE32_MACHINE_LOONGARCH32          0x6232
+#define GRUB_PE32_MACHINE_LOONGARCH64          0x6264
 #define GRUB_PE32_MACHINE_RISCV32              0x5032
 #define GRUB_PE32_MACHINE_RISCV64              0x5064
 
@@ -291,22 +293,24 @@ struct grub_pe32_fixup_block
 
 #define GRUB_PE32_FIXUP_ENTRY(type, offset)    (((type) << 12) | (offset))
 
-#define GRUB_PE32_REL_BASED_ABSOLUTE   0
-#define GRUB_PE32_REL_BASED_HIGH       1
-#define GRUB_PE32_REL_BASED_LOW                2
-#define GRUB_PE32_REL_BASED_HIGHLOW    3
-#define GRUB_PE32_REL_BASED_HIGHADJ    4
-#define GRUB_PE32_REL_BASED_MIPS_JMPADDR 5
-#define GRUB_PE32_REL_BASED_ARM_MOV32A  5
-#define GRUB_PE32_REL_BASED_RISCV_HI20 5
-#define GRUB_PE32_REL_BASED_SECTION    6
-#define GRUB_PE32_REL_BASED_REL                7
-#define GRUB_PE32_REL_BASED_ARM_MOV32T  7
-#define GRUB_PE32_REL_BASED_RISCV_LOW12I 7
-#define GRUB_PE32_REL_BASED_RISCV_LOW12S 8
-#define GRUB_PE32_REL_BASED_IA64_IMM64 9
-#define GRUB_PE32_REL_BASED_DIR64      10
-#define GRUB_PE32_REL_BASED_HIGH3ADJ   11
+#define GRUB_PE32_REL_BASED_ABSOLUTE           0
+#define GRUB_PE32_REL_BASED_HIGH               1
+#define GRUB_PE32_REL_BASED_LOW                        2
+#define GRUB_PE32_REL_BASED_HIGHLOW            3
+#define GRUB_PE32_REL_BASED_HIGHADJ            4
+#define GRUB_PE32_REL_BASED_MIPS_JMPADDR       5
+#define GRUB_PE32_REL_BASED_ARM_MOV32A         5
+#define GRUB_PE32_REL_BASED_RISCV_HI20         5
+#define GRUB_PE32_REL_BASED_SECTION            6
+#define GRUB_PE32_REL_BASED_REL                        7
+#define GRUB_PE32_REL_BASED_ARM_MOV32T         7
+#define GRUB_PE32_REL_BASED_RISCV_LOW12I       7
+#define GRUB_PE32_REL_BASED_RISCV_LOW12S       8
+#define GRUB_PE32_REL_BASED_LOONGARCH32_MARK_LA        8
+#define GRUB_PE32_REL_BASED_LOONGARCH64_MARK_LA        8
+#define GRUB_PE32_REL_BASED_IA64_IMM64         9
+#define GRUB_PE32_REL_BASED_DIR64              10
+#define GRUB_PE32_REL_BASED_HIGH3ADJ           11
 
 struct grub_pe32_symbol
 {