]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/Include/Common/PiFirmwareFile.h
BaseTools: Clear build versions to sync with buildtools/BaseTools
[mirror_edk2.git] / BaseTools / Source / C / Include / Common / PiFirmwareFile.h
index 33b5645b12c437938ba90fbf777437a8cb3b4d5c..1790c3a1e841652bf07e9d0af582234c15262f19 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   The firmware file related definitions in PI.\r
 \r
 /** @file\r
   The firmware file related definitions in PI.\r
 \r
-  Copyright (c) 2006 - 2008, Intel Corporation  All rights reserved.\r
+  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
 \r
   This program and the accompanying materials are licensed and made available\r
   under the terms and conditions of the BSD License which accompanies this\r
@@ -64,16 +64,15 @@ typedef UINT8 EFI_FFS_FILE_STATE;
 // \r
 // FFS File Attributes.\r
 // \r
 // \r
 // FFS File Attributes.\r
 // \r
+#define FFS_ATTRIB_LARGE_FILE         0x01\r
 #define FFS_ATTRIB_FIXED              0x04\r
 #define FFS_ATTRIB_DATA_ALIGNMENT     0x38\r
 #define FFS_ATTRIB_CHECKSUM           0x40\r
 //\r
 #define FFS_ATTRIB_FIXED              0x04\r
 #define FFS_ATTRIB_DATA_ALIGNMENT     0x38\r
 #define FFS_ATTRIB_CHECKSUM           0x40\r
 //\r
-// FFS_FIXED_CHECKSUM is the default checksum value used when the\r
+// FFS_FIXED_CHECKSUM is the checksum value used when the\r
 // FFS_ATTRIB_CHECKSUM attribute bit is clear\r
 // FFS_ATTRIB_CHECKSUM attribute bit is clear\r
-// note this is NOT an architecturally defined value, but is in this file for\r
-// implementation convenience\r
 //\r
 //\r
-#define FFS_FIXED_CHECKSUM  0x5A\r
+#define FFS_FIXED_CHECKSUM  0xAA\r
 \r
 // \r
 // FFS File State Bits.\r
 \r
 // \r
 // FFS File State Bits.\r
@@ -106,6 +105,17 @@ typedef struct {
   EFI_FFS_FILE_STATE      State;\r
 } EFI_FFS_FILE_HEADER;\r
 \r
   EFI_FFS_FILE_STATE      State;\r
 } EFI_FFS_FILE_HEADER;\r
 \r
+typedef struct {\r
+  EFI_GUID                Name;\r
+  EFI_FFS_INTEGRITY_CHECK IntegrityCheck;\r
+  EFI_FV_FILETYPE         Type;\r
+  EFI_FFS_FILE_ATTRIBUTES Attributes;\r
+  UINT8                   Size[3];\r
+  EFI_FFS_FILE_STATE      State;\r
+  UINT32                  ExtendedSize;\r
+} EFI_FFS_FILE_HEADER2;\r
+\r
+#define MAX_FFS_SIZE        0x1000000\r
 \r
 typedef UINT8 EFI_SECTION_TYPE;\r
 \r
 \r
 typedef UINT8 EFI_SECTION_TYPE;\r
 \r
@@ -144,11 +154,20 @@ typedef struct {
   EFI_SECTION_TYPE  Type;\r
 } EFI_COMMON_SECTION_HEADER;\r
 \r
   EFI_SECTION_TYPE  Type;\r
 } EFI_COMMON_SECTION_HEADER;\r
 \r
+typedef struct {\r
+  UINT8             Size[3];\r
+  EFI_SECTION_TYPE  Type;\r
+  UINT32            ExtendedSize;\r
+} EFI_COMMON_SECTION_HEADER2;\r
+\r
+#define MAX_SECTION_SIZE        0x1000000\r
+\r
 //\r
 // Leaf section type that contains an \r
 // IA-32 16-bit executable image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_COMPATIBILITY16_SECTION;\r
 //\r
 // Leaf section type that contains an \r
 // IA-32 16-bit executable image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_COMPATIBILITY16_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;\r
 \r
 //\r
 // CompressionType of EFI_COMPRESSION_SECTION.\r
 \r
 //\r
 // CompressionType of EFI_COMPRESSION_SECTION.\r
@@ -165,15 +184,23 @@ typedef struct {
   UINT8                       CompressionType;\r
 } EFI_COMPRESSION_SECTION;\r
 \r
   UINT8                       CompressionType;\r
 } EFI_COMPRESSION_SECTION;\r
 \r
+typedef struct {\r
+  EFI_COMMON_SECTION_HEADER2  CommonHeader;\r
+  UINT32                      UncompressedLength;\r
+  UINT8                       CompressionType;\r
+} EFI_COMPRESSION_SECTION2;\r
+\r
 //\r
 // Leaf section which could be used to determine the dispatch order of DXEs.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION;\r
 //\r
 // Leaf section which could be used to determine the dispatch order of DXEs.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_DXE_DEPEX_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_DXE_DEPEX_SECTION2;\r
 \r
 //\r
 // Leaf section witch contains a PI FV.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION;\r
 \r
 //\r
 // Leaf section witch contains a PI FV.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_FIRMWARE_VOLUME_IMAGE_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;\r
 \r
 //\r
 // Leaf section which contains a single GUID.\r
 \r
 //\r
 // Leaf section which contains a single GUID.\r
@@ -183,6 +210,11 @@ typedef struct {
   EFI_GUID                    SubTypeGuid;\r
 } EFI_FREEFORM_SUBTYPE_GUID_SECTION;\r
 \r
   EFI_GUID                    SubTypeGuid;\r
 } EFI_FREEFORM_SUBTYPE_GUID_SECTION;\r
 \r
+typedef struct {\r
+  EFI_COMMON_SECTION_HEADER2  CommonHeader;\r
+  EFI_GUID                    SubTypeGuid;\r
+} EFI_FREEFORM_SUBTYPE_GUID_SECTION2;\r
+\r
 //\r
 // Attributes of EFI_GUID_DEFINED_SECTION\r
 // \r
 //\r
 // Attributes of EFI_GUID_DEFINED_SECTION\r
 // \r
@@ -198,30 +230,42 @@ typedef struct {
   UINT16                      Attributes;\r
 } EFI_GUID_DEFINED_SECTION;\r
 \r
   UINT16                      Attributes;\r
 } EFI_GUID_DEFINED_SECTION;\r
 \r
+typedef struct {\r
+  EFI_COMMON_SECTION_HEADER2  CommonHeader;\r
+  EFI_GUID                    SectionDefinitionGuid;\r
+  UINT16                      DataOffset;\r
+  UINT16                      Attributes;\r
+} EFI_GUID_DEFINED_SECTION2;\r
+\r
 //\r
 // Leaf section which contains PE32+ image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION;\r
 //\r
 // Leaf section which contains PE32+ image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PE32_SECTION2;\r
 \r
 //\r
 // Leaf section which contains PIC image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION;\r
 \r
 //\r
 // Leaf section which contains PIC image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PIC_SECTION2;\r
 \r
 //\r
 // Leaf section which used to determine the dispatch order of PEIMs.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION;\r
 \r
 //\r
 // Leaf section which used to determine the dispatch order of PEIMs.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PEI_DEPEX_SECTION2;\r
 \r
 //\r
 // Leaf section which constains the position-independent-code image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION;\r
 \r
 //\r
 // Leaf section which constains the position-independent-code image.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_TE_SECTION2;\r
 \r
 //\r
 // Leaf section which contains an array of zero or more bytes.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION;\r
 \r
 //\r
 // Leaf section which contains an array of zero or more bytes.\r
 // \r
 typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2;\r
 \r
 //\r
 // Leaf section which contains a unicode string that \r
 \r
 //\r
 // Leaf section which contains a unicode string that \r
@@ -236,6 +280,14 @@ typedef struct {
   CHAR16                      FileNameString[1];\r
 } EFI_USER_INTERFACE_SECTION;\r
 \r
   CHAR16                      FileNameString[1];\r
 } EFI_USER_INTERFACE_SECTION;\r
 \r
+typedef struct {\r
+  EFI_COMMON_SECTION_HEADER2  CommonHeader;\r
+\r
+  //\r
+  // Array of unicode string.\r
+  // \r
+  CHAR16                      FileNameString[1];\r
+} EFI_USER_INTERFACE_SECTION2;\r
 \r
 //\r
 // Leaf section which contains a numeric build number and\r
 \r
 //\r
 // Leaf section which contains a numeric build number and\r
@@ -247,6 +299,11 @@ typedef struct {
   CHAR16                      VersionString[1];\r
 } EFI_VERSION_SECTION;\r
 \r
   CHAR16                      VersionString[1];\r
 } EFI_VERSION_SECTION;\r
 \r
+typedef struct {\r
+  EFI_COMMON_SECTION_HEADER2  CommonHeader;\r
+  UINT16                      BuildNumber;\r
+  CHAR16                      VersionString[1];\r
+} EFI_VERSION_SECTION2;\r
 \r
 #define SECTION_SIZE(SectionHeaderPtr) \\r
     ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) SectionHeaderPtr)->Size) & 0x00ffffff))\r
 \r
 #define SECTION_SIZE(SectionHeaderPtr) \\r
     ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) SectionHeaderPtr)->Size) & 0x00ffffff))\r
@@ -268,6 +325,23 @@ typedef union {
   EFI_FIRMWARE_VOLUME_IMAGE_SECTION *FVImageSection;\r
   EFI_FREEFORM_SUBTYPE_GUID_SECTION *FreeformSubtypeSection;\r
   EFI_RAW_SECTION                   *RawSection;\r
   EFI_FIRMWARE_VOLUME_IMAGE_SECTION *FVImageSection;\r
   EFI_FREEFORM_SUBTYPE_GUID_SECTION *FreeformSubtypeSection;\r
   EFI_RAW_SECTION                   *RawSection;\r
+  //\r
+  // For section whose size is equal or greater than 0x1000000\r
+  //\r
+  EFI_COMMON_SECTION_HEADER2         *CommonHeader2;\r
+  EFI_COMPRESSION_SECTION2           *CompressionSection2;\r
+  EFI_GUID_DEFINED_SECTION2          *GuidDefinedSection2;\r
+  EFI_PE32_SECTION2                  *Pe32Section2;\r
+  EFI_PIC_SECTION2                   *PicSection2;\r
+  EFI_TE_SECTION2                    *TeSection2;\r
+  EFI_PEI_DEPEX_SECTION2             *PeimHeaderSection2;\r
+  EFI_DXE_DEPEX_SECTION2             *DependencySection2;\r
+  EFI_VERSION_SECTION2               *VersionSection2;\r
+  EFI_USER_INTERFACE_SECTION2        *UISection2;\r
+  EFI_COMPATIBILITY16_SECTION2       *Code16Section2;\r
+  EFI_FIRMWARE_VOLUME_IMAGE_SECTION2 *FVImageSection2;\r
+  EFI_FREEFORM_SUBTYPE_GUID_SECTION2 *FreeformSubtypeSection2;\r
+  EFI_RAW_SECTION2                   *RawSection2;\r
 } EFI_FILE_SECTION_POINTER;\r
 \r
 #endif\r
 } EFI_FILE_SECTION_POINTER;\r
 \r
 #endif\r