]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/GenFv/GenFvInternalLib.h
BaseTools: Add DevicePath support for PCD values
[mirror_edk2.git] / BaseTools / Source / C / GenFv / GenFvInternalLib.h
index 3c0e9336bd96fd467a8b036d06eb14382f81decf..f039fa4dc7d82a60d44c0cd7ab57584e5652a689 100644 (file)
@@ -1,7 +1,9 @@
 /** @file\r
-\r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+This file contains describes the public interfaces to the GenFvImage Library.\r
+The basic purpose of the library is to create Firmware Volume images.\r
+  \r
+Copyright (c) 2004 - 2014, Intel Corporation. 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
@@ -9,15 +11,6 @@ http://opensource.org/licenses/bsd-license.php
 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
 \r
-Module Name:\r
-  \r
-  GenFvInternalLib.h\r
-\r
-Abstract:\r
-\r
-  This file contains describes the public interfaces to the GenFvImage Library.\r
-  The basic purpose of the library is to create Firmware Volume images.\r
-\r
 **/\r
 \r
 #ifndef _EFI_GEN_FV_INTERNAL_LIB_H\r
@@ -67,6 +60,7 @@ Abstract:
 #define OPTIONS_SECTION_STRING                "[options]"\r
 #define ATTRIBUTES_SECTION_STRING             "[attributes]"\r
 #define FILES_SECTION_STRING                  "[files]"\r
+#define FV_BASE_ADDRESS_STRING                "[FV_BASE_ADDRESS]"\r
 \r
 //\r
 // Options section\r
@@ -81,9 +75,8 @@ Abstract:
 #define EFI_CAPSULE_GUID_STRING           "EFI_CAPSULE_GUID"\r
 #define EFI_CAPSULE_HEADER_SIZE_STRING    "EFI_CAPSULE_HEADER_SIZE"\r
 #define EFI_CAPSULE_FLAGS_STRING          "EFI_CAPSULE_FLAGS"\r
+#define EFI_OEM_CAPSULE_FLAGS_STRING      "EFI_OEM_CAPSULE_FLAGS"\r
 #define EFI_CAPSULE_VERSION_STRING        "EFI_CAPSULE_VERSION"\r
-#define EFI_FV_BOOT_DRIVER_BASE_ADDRESS_STRING    "EFI_BOOT_DRIVER_BASE_ADDRESS"\r
-#define EFI_FV_RUNTIME_DRIVER_BASE_ADDRESS_STRING "EFI_RUNTIME_DRIVER_BASE_ADDRESS"\r
 \r
 #define EFI_FV_TOTAL_SIZE_STRING    "EFI_FV_TOTAL_SIZE"\r
 #define EFI_FV_TAKEN_SIZE_STRING    "EFI_FV_TAKEN_SIZE"\r
@@ -131,7 +124,7 @@ Abstract:
 #define EFI_FVB2_ALIGNMENT_64K_STRING     "EFI_FVB2_ALIGNMENT_64K" \r
 #define EFI_FVB2_ALIGNMENT_128K_STRING    "EFI_FVB2_ALIGNMENT_128K"\r
 #define EFI_FVB2_ALIGNMENT_256K_STRING    "EFI_FVB2_ALIGNMENT_256K"\r
-#define EFI_FVB2_ALIGNMNET_512K_STRING    "EFI_FVB2_ALIGNMENT_512K"\r
+#define EFI_FVB2_ALIGNMENT_512K_STRING    "EFI_FVB2_ALIGNMENT_512K"\r
 #define EFI_FVB2_ALIGNMENT_1M_STRING      "EFI_FVB2_ALIGNMENT_1M"  \r
 #define EFI_FVB2_ALIGNMENT_2M_STRING      "EFI_FVB2_ALIGNMENT_2M"  \r
 #define EFI_FVB2_ALIGNMENT_4M_STRING      "EFI_FVB2_ALIGNMENT_4M"  \r
@@ -145,6 +138,8 @@ Abstract:
 #define EFI_FVB2_ALIGNMENT_1G_STRING      "EFI_FVB2_ALIGNMENT_1G"  \r
 #define EFI_FVB2_ALIGNMENT_2G_STRING      "EFI_FVB2_ALIGNMENT_2G"  \r
 \r
+#define EFI_FV_WEAK_ALIGNMENT_STRING      "EFI_WEAK_ALIGNMENT"\r
+\r
 //\r
 // File sections\r
 //\r
@@ -166,7 +161,7 @@ Abstract:
 // VTF (Firmware Volume Top File) signatures\r
 //\r
 #define IA32_X64_VTF_SIGNATURE_OFFSET    0x14\r
-#define IA32_X64_VTF0_SIGNATURE EFI_SIGNATURE_32('V','T','F',0)\r
+#define IA32_X64_VTF0_SIGNATURE SIGNATURE_32('V','T','F',0)\r
 \r
 //\r
 // Defines to calculate the offset for PEI CORE entry points\r
@@ -204,13 +199,6 @@ Abstract:
 #define FIT_TYPE_MASK         0x7F\r
 #define CHECKSUM_BIT_MASK     0x80\r
 \r
-//\r
-// Rebase File type\r
-//\r
-#define REBASE_XIP_FILE       0x1\r
-#define REBASE_BOOTTIME_FILE  0x2\r
-#define REBASE_RUNTIME_FILE   0x4\r
-\r
 //\r
 // Private data types\r
 //\r
@@ -219,7 +207,7 @@ Abstract:
 //\r
 typedef struct {\r
   UINTN Size;\r
-  CHAR8 ComponentName[_MAX_PATH];\r
+  CHAR8 ComponentName[MAX_LONG_FILE_PATH];\r
 } COMPONENT_INFO;\r
 \r
 //\r
@@ -228,28 +216,27 @@ typedef struct {
 typedef struct {\r
   BOOLEAN                 BaseAddressSet;\r
   EFI_PHYSICAL_ADDRESS    BaseAddress;\r
-  EFI_PHYSICAL_ADDRESS    BootBaseAddress;\r
-  EFI_PHYSICAL_ADDRESS    RuntimeBaseAddress;  \r
   EFI_GUID                FvFileSystemGuid;\r
   BOOLEAN                 FvFileSystemGuidSet;\r
   EFI_GUID                FvNameGuid;\r
   BOOLEAN                 FvNameGuidSet;\r
-  CHAR8                   FvExtHeaderFile[_MAX_PATH];\r
+  CHAR8                   FvExtHeaderFile[MAX_LONG_FILE_PATH];\r
   UINTN                   Size;\r
-  EFI_FVB_ATTRIBUTES      FvAttributes;\r
-  CHAR8                   FvName[_MAX_PATH];\r
+  EFI_FVB_ATTRIBUTES_2    FvAttributes;\r
+  CHAR8                   FvName[MAX_LONG_FILE_PATH];\r
   EFI_FV_BLOCK_MAP_ENTRY  FvBlocks[MAX_NUMBER_OF_FV_BLOCKS];\r
-  CHAR8                   FvFiles[MAX_NUMBER_OF_FILES_IN_FV][_MAX_PATH];\r
+  CHAR8                   FvFiles[MAX_NUMBER_OF_FILES_IN_FV][MAX_LONG_FILE_PATH];\r
   UINT32                  SizeofFvFiles[MAX_NUMBER_OF_FILES_IN_FV];\r
   BOOLEAN                 IsPiFvImage;\r
+  INT8                    ForceRebase;\r
 } FV_INFO;\r
 \r
 typedef struct {\r
   EFI_GUID                CapGuid;\r
   UINT32                  HeaderSize;\r
   UINT32                  Flags;\r
-  CHAR8                   CapName[_MAX_PATH];\r
-  CHAR8                   CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][_MAX_PATH];\r
+  CHAR8                   CapName[MAX_LONG_FILE_PATH];\r
+  CHAR8                   CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][MAX_LONG_FILE_PATH];\r
 } CAP_INFO;\r
 \r
 #pragma pack(1)\r
@@ -268,8 +255,12 @@ typedef struct {
 extern FV_INFO    mFvDataInfo;\r
 extern CAP_INFO   mCapDataInfo;\r
 extern EFI_GUID   mEfiFirmwareFileSystem2Guid;\r
+extern EFI_GUID   mEfiFirmwareFileSystem3Guid;\r
 extern UINT32     mFvTotalSize;\r
 extern UINT32     mFvTakenSize;\r
+\r
+extern EFI_PHYSICAL_ADDRESS mFvBaseAddress[];\r
+extern UINT32               mFvBaseAddressNumber;\r
 //\r
 // Local function prototypes\r
 //\r