]> 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
-  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
@@ -64,16 +64,15 @@ typedef UINT8 EFI_FFS_FILE_STATE;
 // \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
-// 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
-// note this is NOT an architecturally defined value, but is in this file for\r
-// implementation convenience\r
 //\r
-#define FFS_FIXED_CHECKSUM  0x5A\r
+#define FFS_FIXED_CHECKSUM  0xAA\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
+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
@@ -144,11 +154,20 @@ typedef struct {
   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
+typedef EFI_COMMON_SECTION_HEADER2 EFI_COMPATIBILITY16_SECTION2;\r
 \r
 //\r
 // CompressionType of EFI_COMPRESSION_SECTION.\r
@@ -165,15 +184,23 @@ typedef struct {
   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
+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
+typedef EFI_COMMON_SECTION_HEADER2 EFI_FIRMWARE_VOLUME_IMAGE_SECTION2;\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
+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
@@ -198,30 +230,42 @@ typedef struct {
   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
+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
+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
+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
+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
+typedef EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2;\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
+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
@@ -247,6 +299,11 @@ typedef struct {
   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
@@ -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
+  //\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