]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/PeImage.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / PeImage.h
index 0994f3f773822b008a7bdfda567d11de30af67ed..720bb084ac4293ada4a5c68d577b0d1bf0001a01 100644 (file)
@@ -1,21 +1,15 @@
 /** @file\r
-  EFI image format for PE32, PE32+ and TE. Please note some data structures are \r
-  different for PE32 and PE32+. EFI_IMAGE_NT_HEADERS32 is for PE32 and \r
-  EFI_IMAGE_NT_HEADERS64 is for PE32+. \r
+  EFI image format for PE32, PE32+ and TE. Please note some data structures are\r
+  different for PE32 and PE32+. EFI_IMAGE_NT_HEADERS32 is for PE32 and\r
+  EFI_IMAGE_NT_HEADERS64 is for PE32+.\r
 \r
-  This file is coded to the Visual Studio, Microsoft Portable Executable and \r
-  Common Object File Format Specification, Revision 8.0 - May 16, 2006. \r
+  This file is coded to the Visual Studio, Microsoft Portable Executable and\r
+  Common Object File Format Specification, Revision 8.3 - February 6, 2013.\r
   This file also includes some definitions in PI Specification, Revision 1.0.\r
 \r
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
-This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php.                                           \r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -39,6 +33,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define IMAGE_FILE_MACHINE_EBC             0x0EBC\r
 #define IMAGE_FILE_MACHINE_X64             0x8664\r
 #define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED  0x01c2\r
+#define IMAGE_FILE_MACHINE_ARM64           0xAA64\r
 \r
 //\r
 // EXE file formats\r
@@ -133,12 +128,12 @@ typedef struct {
 \r
 ///\r
 /// @attention\r
-/// EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC means PE32 and \r
+/// EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC means PE32 and\r
 /// EFI_IMAGE_OPTIONAL_HEADER32 must be used. The data structures only vary\r
 /// after NT additional fields.\r
 ///\r
 #define EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b\r
-          \r
+\r
 ///\r
 /// Optional Header Standard Fields for PE32.\r
 ///\r
@@ -184,7 +179,7 @@ typedef struct {
 \r
 ///\r
 /// @attention\r
-/// EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC means PE32+ and \r
+/// EFI_IMAGE_NT_OPTIONAL_HDR64_MAGIC means PE32+ and\r
 /// EFI_IMAGE_OPTIONAL_HEADER64 must be used. The data structures only vary\r
 /// after NT additional fields.\r
 ///\r
@@ -295,7 +290,7 @@ typedef struct {
 /// Size of EFI_IMAGE_SECTION_HEADER.\r
 ///\r
 #define EFI_IMAGE_SIZEOF_SECTION_HEADER       40\r
-         \r
+\r
 //\r
 // Section Flags Values\r
 //\r
@@ -303,12 +298,12 @@ typedef struct {
 #define EFI_IMAGE_SCN_CNT_CODE                     BIT5   ///< 0x00000020\r
 #define EFI_IMAGE_SCN_CNT_INITIALIZED_DATA         BIT6   ///< 0x00000040\r
 #define EFI_IMAGE_SCN_CNT_UNINITIALIZED_DATA       BIT7   ///< 0x00000080\r
-                                                   \r
+\r
 #define EFI_IMAGE_SCN_LNK_OTHER                    BIT8   ///< 0x00000100  ///< Reserved.\r
 #define EFI_IMAGE_SCN_LNK_INFO                     BIT9   ///< 0x00000200  ///< Section contains comments or some other type of information.\r
 #define EFI_IMAGE_SCN_LNK_REMOVE                   BIT11  ///< 0x00000800  ///< Section contents will not become part of image.\r
 #define EFI_IMAGE_SCN_LNK_COMDAT                   BIT12  ///< 0x00001000\r
-                                                   \r
+\r
 #define EFI_IMAGE_SCN_ALIGN_1BYTES                 BIT20  ///< 0x00100000\r
 #define EFI_IMAGE_SCN_ALIGN_2BYTES                 BIT21  ///< 0x00200000\r
 #define EFI_IMAGE_SCN_ALIGN_4BYTES          (BIT20|BIT21) ///< 0x00300000\r
@@ -316,7 +311,7 @@ typedef struct {
 #define EFI_IMAGE_SCN_ALIGN_16BYTES         (BIT20|BIT22) ///< 0x00500000\r
 #define EFI_IMAGE_SCN_ALIGN_32BYTES         (BIT21|BIT22) ///< 0x00600000\r
 #define EFI_IMAGE_SCN_ALIGN_64BYTES   (BIT20|BIT21|BIT22) ///< 0x00700000\r
-                                              \r
+\r
 #define EFI_IMAGE_SCN_MEM_DISCARDABLE              BIT25  ///< 0x02000000\r
 #define EFI_IMAGE_SCN_MEM_NOT_CACHED               BIT26  ///< 0x04000000\r
 #define EFI_IMAGE_SCN_MEM_NOT_PAGED                BIT27  ///< 0x08000000\r
@@ -414,7 +409,7 @@ typedef struct {
 #define EFI_IMAGE_COMDAT_SELECT_SAME_SIZE       3\r
 #define EFI_IMAGE_COMDAT_SELECT_EXACT_MATCH     4\r
 #define EFI_IMAGE_COMDAT_SELECT_ASSOCIATIVE     5\r
-                                       \r
+\r
 //\r
 // the following values only be referred in PeCoff, not defined in PECOFF.\r
 //\r
@@ -449,9 +444,9 @@ typedef struct {
 #define EFI_IMAGE_REL_I386_SECREL   0x000B\r
 #define EFI_IMAGE_REL_I386_REL32    0x0014  ///< PC-relative 32-bit reference to the symbols virtual address.\r
 \r
-// \r
+//\r
 // x64 processor relocation types.\r
-// \r
+//\r
 #define IMAGE_REL_AMD64_ABSOLUTE  0x0000\r
 #define IMAGE_REL_AMD64_ADDR64    0x0001\r
 #define IMAGE_REL_AMD64_ADDR32    0x0002\r
@@ -492,6 +487,8 @@ typedef struct {
 #define EFI_IMAGE_REL_BASED_HIGHLOW         3\r
 #define EFI_IMAGE_REL_BASED_HIGHADJ         4\r
 #define EFI_IMAGE_REL_BASED_MIPS_JMPADDR    5\r
+#define EFI_IMAGE_REL_BASED_ARM_MOV32A      5\r
+#define EFI_IMAGE_REL_BASED_ARM_MOV32T      7\r
 #define EFI_IMAGE_REL_BASED_IA64_IMM64      9\r
 #define EFI_IMAGE_REL_BASED_MIPS_JMPADDR16  9\r
 #define EFI_IMAGE_REL_BASED_DIR64           10\r