efi_loader: use predefined constants in crt0_*_efi.S
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 11 Jul 2019 04:39:32 +0000 (06:39 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Tue, 16 Jul 2019 22:17:14 +0000 (22:17 +0000)
We should use predefined constants instead of magic numbers.

Move some constant definitions from include/pe.h to
include/asm-generic/pe.h.

Use these constants in crt0_*_efi.S.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
arch/arm/lib/crt0_aarch64_efi.S
arch/arm/lib/crt0_arm_efi.S
arch/riscv/lib/crt0_riscv_efi.S
include/asm-generic/pe.h
include/pe.h

index cb205fa30a5b701273e56f175c4ee29fe2894cfc..368933ecf2d6edfe2542ebb182efe2c0dffc75fa 100644 (file)
         */
        .globl  ImageBase
 ImageBase:
-       .ascii  "MZ"
+       .short  IMAGE_DOS_SIGNATURE             /* 'MZ' */
        .skip   58                              /* 'MZ' + pad + offset == 64 */
        .long   pe_header - ImageBase           /* Offset to the PE header */
 pe_header:
-       .ascii  "PE"
-       .short  0
+       .long   IMAGE_NT_SIGNATURE              /* 'PE' */
 coff_header:
-       .short  0xaa64                          /* AArch64 */
+       .short  IMAGE_FILE_MACHINE_ARM64        /* AArch64 */
        .short  2                               /* nr_sections */
        .long   0                               /* TimeDateStamp */
        .long   0                               /* PointerToSymbolTable */
@@ -36,7 +35,7 @@ coff_header:
                 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
                 IMAGE_FILE_DEBUG_STRIPPED)
 optional_header:
-       .short  0x20b                           /* PE32+ format */
+       .short  IMAGE_NT_OPTIONAL_HDR64_MAGIC   /* PE32+ format */
        .byte   0x02                            /* MajorLinkerVersion */
        .byte   0x14                            /* MinorLinkerVersion */
        .long   _edata - _start                 /* SizeOfCode */
index 5470e2ff0e68c577ff991031b9f9c31f4603041a..cc8a115f319c9f0f9c5305331dc452324d6bb8c1 100644 (file)
         */
        .globl  image_base
 image_base:
-       .ascii  "MZ"
+       .short  IMAGE_DOS_SIGNATURE             /* 'MZ' */
        .skip   58                              /* 'MZ' + pad + offset == 64 */
        .long   pe_header - image_base          /* Offset to the PE header */
 pe_header:
-       .ascii  "PE"
-       .short  0
+       .long   IMAGE_NT_SIGNATURE              /* 'PE' */
 coff_header:
-       .short  0x1c2                           /* Mixed ARM/Thumb */
+       .short  IMAGE_FILE_MACHINE_THUMB        /* Mixed ARM/Thumb */
        .short  2                               /* nr_sections */
        .long   0                               /* TimeDateStamp */
        .long   0                               /* PointerToSymbolTable */
@@ -36,7 +35,7 @@ coff_header:
                 IMAGE_FILE_32BIT_MACHINE | \
                 IMAGE_FILE_DEBUG_STRIPPED)
 optional_header:
-       .short  0x10b                           /* PE32 format */
+       .short  IMAGE_NT_OPTIONAL_HDR32_MAGIC   /* PE32 format */
        .byte   0x02                            /* MajorLinkerVersion */
        .byte   0x14                            /* MinorLinkerVersion */
        .long   _edata - _start                 /* SizeOfCode */
index b7b5329e1f788dd51d477825b43c7eac4aadbc69..87fe1e56f9063c393b02a556425f9314ddb2f4fb 100644 (file)
 #define SIZE_LONG      8
 #define SAVE_LONG(reg, idx)    sd      reg, (idx*SIZE_LONG)(sp)
 #define LOAD_LONG(reg, idx)    ld      reg, (idx*SIZE_LONG)(sp)
-#define PE_MACHINE     0x5064
+#define PE_MACHINE     IMAGE_FILE_MACHINE_RISCV64
 #else
 #define SIZE_LONG      4
 #define SAVE_LONG(reg, idx)    sw      reg, (idx*SIZE_LONG)(sp)
 #define LOAD_LONG(reg, idx)    lw      reg, (idx*SIZE_LONG)(sp)
-#define PE_MACHINE     0x5032
+#define PE_MACHINE     IMAGE_FILE_MACHINE_RISCV32
 #endif
 
 
         */
        .globl  ImageBase
 ImageBase:
-       .ascii  "MZ"
+       .short  IMAGE_DOS_SIGNATURE             /* 'MZ' */
        .skip   58                              /* 'MZ' + pad + offset == 64 */
        .long   pe_header - ImageBase           /* Offset to the PE header */
 pe_header:
-       .ascii  "PE"
-       .short  0
+       .long   IMAGE_NT_SIGNATURE              /* 'PE' */
 coff_header:
        .short  PE_MACHINE                      /* RISC-V 64/32-bit */
        .short  2                               /* nr_sections */
@@ -49,7 +48,7 @@ coff_header:
                 IMAGE_FILE_LOCAL_SYMS_STRIPPED | \
                 IMAGE_FILE_DEBUG_STRIPPED)
 optional_header:
-       .short  0x20b                           /* PE32+ format */
+       .short  IMAGE_NT_OPTIONAL_HDR64_MAGIC   /* PE32+ format */
        .byte   0x02                            /* MajorLinkerVersion */
        .byte   0x14                            /* MinorLinkerVersion */
        .long   _edata - _start                 /* SizeOfCode */
index faae534e3711a0fda8b63be69d5b2c0026abed0c..b247519a3d5c14fe95e79f60bdd6abd4cebe5dbc 100644 (file)
 #define IMAGE_FILE_UP_SYSTEM_ONLY              0x4000
 #define IMAGE_FILE_BYTES_REVERSED_HI           0x8000
 
+/* Machine types */
+#define IMAGE_FILE_MACHINE_I386                        0x014c
+#define IMAGE_FILE_MACHINE_ARM                 0x01c0
+#define IMAGE_FILE_MACHINE_THUMB               0x01c2
+#define IMAGE_FILE_MACHINE_ARMNT               0x01c4
+#define IMAGE_FILE_MACHINE_AMD64               0x8664
+#define IMAGE_FILE_MACHINE_ARM64               0xaa64
+#define IMAGE_FILE_MACHINE_RISCV32             0x5032
+#define IMAGE_FILE_MACHINE_RISCV64             0x5064
+
+/* Header magic constants */
+#define IMAGE_NT_OPTIONAL_HDR32_MAGIC          0x010b
+#define IMAGE_NT_OPTIONAL_HDR64_MAGIC          0x020b
+#define IMAGE_DOS_SIGNATURE                    0x5a4d     /* MZ   */
+#define IMAGE_NT_SIGNATURE                     0x00004550 /* PE00 */
+
 /* Subsystem type */
 #define IMAGE_SUBSYSTEM_EFI_APPLICATION                10
 #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER        11
index c7aeb2dcb6fbb9d854365e9e8332f83ddcef05d6..bff3b0aa7a6cd914184031091f6b24b0efe64160 100644 (file)
@@ -34,21 +34,6 @@ typedef struct _IMAGE_DOS_HEADER {
        uint32_t e_lfanew;      /* 3c: Offset to extended header */
 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
 
-#define IMAGE_DOS_SIGNATURE            0x5A4D     /* MZ   */
-#define IMAGE_NT_SIGNATURE             0x00004550 /* PE00 */
-
-#define IMAGE_FILE_MACHINE_I386                0x014c
-#define IMAGE_FILE_MACHINE_ARM         0x01c0
-#define IMAGE_FILE_MACHINE_THUMB       0x01c2
-#define IMAGE_FILE_MACHINE_ARMNT       0x01c4
-#define IMAGE_FILE_MACHINE_AMD64       0x8664
-#define IMAGE_FILE_MACHINE_ARM64       0xaa64
-#define IMAGE_FILE_MACHINE_RISCV32     0x5032
-#define IMAGE_FILE_MACHINE_RISCV64     0x5064
-
-#define IMAGE_NT_OPTIONAL_HDR32_MAGIC  0x10b
-#define IMAGE_NT_OPTIONAL_HDR64_MAGIC  0x20b
-
 typedef struct _IMAGE_FILE_HEADER {
        uint16_t Machine;
        uint16_t NumberOfSections;