Add in BuildFv2Hob in HobLib
authorqwang12 <qwang12@de2fecce-e211-0410-80a6-f3fac2684e05>
Thu, 23 Aug 2007 06:22:53 +0000 (06:22 +0000)
committerqwang12 <qwang12@de2fecce-e211-0410-80a6-f3fac2684e05>
Thu, 23 Aug 2007 06:22:53 +0000 (06:22 +0000)
git-svn-id: https://edk2.tianocore.org/svn/edk2/trunk@3693 de2fecce-e211-0410-80a6-f3fac2684e05

edk2/MdePkg/Include/Pi/PiHob.h
edk2/MdePkg/Library/DxeCoreHobLib/HobLib.c
edk2/MdePkg/Library/DxeHobLib/HobLib.c
edk2/MdePkg/Library/PeiHobLib/HobLib.c

index 8809141..b415f1c 100644 (file)
@@ -247,6 +247,7 @@ typedef union {
   EFI_HOB_RESOURCE_DESCRIPTOR         *ResourceDescriptor;\r
   EFI_HOB_GUID_TYPE                   *Guid;\r
   EFI_HOB_FIRMWARE_VOLUME             *FirmwareVolume;\r
+  EFI_HOB_FIRMWARE_VOLUME2            *FirmwareVolume2;\r
   EFI_HOB_CPU                         *Cpu;\r
   EFI_HOB_MEMORY_POOL                 *Pool;\r
   UINT8                               *Raw;\r
index 407f7f9..1cce53e 100644 (file)
@@ -341,6 +341,32 @@ BuildFvHob (
   ASSERT (FALSE);\r
 }\r
 \r
+/**\r
+  Builds a EFI_HOB_TYPE_FV2 HOB.\r
+\r
+  This function builds a EFI_HOB_TYPE_FV2 HOB.\r
+  It can only be invoked during PEI phase;\r
+  for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.\r
+  If there is no additional space for HOB creation, then ASSERT().\r
+\r
+  @param  BaseAddress   The base address of the Firmware Volume.\r
+  @param  Length        The size of the Firmware Volume in bytes.\r
+  @param  FvName       The name of the Firmware Volume.\r
+  @param  FileName      The name of the file.\r
+  \r
+**/\r
+VOID\r
+EFIAPI\r
+BuildFv2Hob (\r
+  IN          EFI_PHYSICAL_ADDRESS        BaseAddress,\r
+  IN          UINT64                      Length,\r
+  IN CONST    EFI_GUID                    *FvName,\r
+  IN CONST    EFI_GUID                    *FileName\r
+  )\r
+{\r
+  ASSERT (FALSE);\r
+}\r
+\r
 /**\r
   Builds a Capsule Volume HOB.\r
 \r
index 43e57b6..605d42f 100644 (file)
@@ -372,6 +372,33 @@ BuildFvHob (
   ASSERT (FALSE);\r
 }\r
 \r
+/**\r
+  Builds a EFI_HOB_TYPE_FV2 HOB.\r
+\r
+  This function builds a EFI_HOB_TYPE_FV2 HOB.\r
+  It can only be invoked during PEI phase;\r
+  for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.\r
+  If there is no additional space for HOB creation, then ASSERT().\r
+\r
+  @param  BaseAddress   The base address of the Firmware Volume.\r
+  @param  Length        The size of the Firmware Volume in bytes.\r
+  @param  FvName       The name of the Firmware Volume.\r
+  @param  FileName      The name of the file.\r
+  \r
+**/\r
+VOID\r
+EFIAPI\r
+BuildFv2Hob (\r
+  IN          EFI_PHYSICAL_ADDRESS        BaseAddress,\r
+  IN          UINT64                      Length,\r
+  IN CONST    EFI_GUID                    *FvName,\r
+  IN CONST    EFI_GUID                    *FileName\r
+  )\r
+{\r
+  ASSERT (FALSE);\r
+}\r
+\r
+\r
 /**\r
   Builds a Capsule Volume HOB.\r
 \r
index 710e112..839a00f 100644 (file)
@@ -404,6 +404,39 @@ BuildFvHob (
   Hob->Length      = Length;\r
 }\r
 \r
+/**\r
+  Builds a EFI_HOB_TYPE_FV2 HOB.\r
+\r
+  This function builds a EFI_HOB_TYPE_FV2 HOB.\r
+  It can only be invoked during PEI phase;\r
+  for DXE phase, it will ASSERT() since PEI HOB is read-only for DXE phase.\r
+  If there is no additional space for HOB creation, then ASSERT().\r
+\r
+  @param  BaseAddress   The base address of the Firmware Volume.\r
+  @param  Length        The size of the Firmware Volume in bytes.\r
+  @param  FvName       The name of the Firmware Volume.\r
+  @param  FileName      The name of the file.\r
+  \r
+**/\r
+VOID\r
+EFIAPI\r
+BuildFv2Hob (\r
+  IN          EFI_PHYSICAL_ADDRESS        BaseAddress,\r
+  IN          UINT64                      Length,\r
+  IN CONST    EFI_GUID                    *FvName,\r
+  IN CONST    EFI_GUID                    *FileName\r
+  )\r
+{\r
+  EFI_HOB_FIRMWARE_VOLUME2  *Hob;\r
+\r
+  Hob = InternalPeiCreateHob (EFI_HOB_TYPE_FV2, sizeof (EFI_HOB_FIRMWARE_VOLUME2));\r
+\r
+  Hob->BaseAddress = BaseAddress;\r
+  Hob->Length      = Length;\r
+  CopyMem (&Hob->FvName, FvName, sizeof (EFI_GUID));\r
+  CopyMem (&Hob->FileName, FileName, sizeof (EFI_GUID));\r
+}\r
+\r
 /**\r
   Builds a Capsule Volume HOB.\r
 \r