1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Portable Executable and Common Object Constants 4 * 5 * Copyright (c) 2018 Heinrich Schuchardt 6 * 7 * based on the "Microsoft Portable Executable and Common Object File Format 8 * Specification", revision 11, 2017-01-23 9 */ 10 11 #ifndef _ASM_PE_H 12 #define _ASM_PE_H 13 14 /* Characteristics */ 15 #define IMAGE_FILE_RELOCS_STRIPPED 0x0001 16 #define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 17 #define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 18 #define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 19 #define IMAGE_FILE_AGGRESSIVE_WS_TRIM 0x0010 20 #define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 21 /* Reserved 0x0040 */ 22 #define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 23 #define IMAGE_FILE_32BIT_MACHINE 0x0100 24 #define IMAGE_FILE_DEBUG_STRIPPED 0x0200 25 #define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 26 #define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 27 #define IMAGE_FILE_SYSTEM 0x1000 28 #define IMAGE_FILE_DLL 0x2000 29 #define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 30 #define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 31 32 /* Machine types */ 33 #define IMAGE_FILE_MACHINE_I386 0x014c 34 #define IMAGE_FILE_MACHINE_ARM 0x01c0 35 #define IMAGE_FILE_MACHINE_THUMB 0x01c2 36 #define IMAGE_FILE_MACHINE_ARMNT 0x01c4 37 #define IMAGE_FILE_MACHINE_AMD64 0x8664 38 #define IMAGE_FILE_MACHINE_ARM64 0xaa64 39 #define IMAGE_FILE_MACHINE_RISCV32 0x5032 40 #define IMAGE_FILE_MACHINE_RISCV64 0x5064 41 42 /* Header magic constants */ 43 #define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x010b 44 #define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x020b 45 #define IMAGE_DOS_SIGNATURE 0x5a4d /* MZ */ 46 #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ 47 48 /* Subsystem type */ 49 #define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 50 #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 51 #define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 52 #define IMAGE_SUBSYSTEM_EFI_ROM 13 53 54 #define LINUX_ARM64_MAGIC 0x644d5241 55 56 #endif /* _ASM_PE_H */ 57