+++ /dev/null
-/** @file\r
- MDE PI library functions and macros for PEI phase\r
-\r
- Copyright (c) 2007 - 2008, Intel Corporation \r
- All rights reserved. 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
-\r
-**/\r
-\r
-#include <PiPei.h>\r
-#include <Ppi/FirmwareVolumeInfo.h>\r
-#include <Guid/FirmwareFileSystem2.h>\r
-\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/PeiServicesLib.h>\r
-#include <Library/PeiPiLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-\r
-CONST EFI_PEI_PPI_DESCRIPTOR mPpiListTemplate [] = {\r
- {\r
- (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
- &gEfiPeiFirmwareVolumeInfoPpiGuid,\r
- NULL\r
- }\r
-};\r
-\r
-/**\r
- Install a EFI_PEI_FIRMWARE_VOLUME_INFO PPI to inform PEI core about the existence of a new Firmware Volume.\r
- \r
- The function allocate the EFI_PEI_PPI_DESCRIPTOR structure and update the fields accordingly to parameter passed\r
- in and install the PPI.\r
- \r
- @param FvFormat Unique identifier of the format of the memory-mapped firmware volume. \r
- If NULL is specified, EFI_FIRMWARE_FILE_SYSTEM2_GUID is used as the Format GUID.\r
- @param FvInfo Points to a buffer which allows the EFI_PEI_FIRMWARE_VOLUME_PPI to\r
- process the volume. The format of this buffer is specific to the FvFormat. For\r
- memory-mapped firmware volumes, this typically points to the first byte of the\r
- firmware volume.\r
- @param FvInfoSize Size of the data provided by FvInfo. For memory-mapped firmware volumes, this is\r
- typically the size of the firmware volume.\r
- @param ParentFvName If the firmware volume originally came from a firmware file, then these point to the\r
- parent firmware volume name. If it did not originally come from a firmware file, \r
- these should be NULL.\r
- @param ParentFileName If the firmware volume originally came from a firmware file, then these point to the\r
- firmware volume file. If it did not originally come from a firmware file, \r
- these should be NULL.\r
- \r
-**/\r
-VOID\r
-EFIAPI\r
-PiLibInstallFvInfoPpi (\r
- IN CONST EFI_GUID *FvFormat, OPTIONAL\r
- IN CONST VOID *FvInfo,\r
- IN UINT32 FvInfoSize,\r
- IN CONST EFI_GUID *ParentFvName, OPTIONAL\r
- IN CONST EFI_GUID *ParentFileName OPTIONAL\r
- )\r
-{\r
- EFI_STATUS Status; \r
- EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *FvInfoPpi;\r
- EFI_PEI_PPI_DESCRIPTOR *FvInfoPpiDescriptor;\r
-\r
- FvInfoPpi = AllocateZeroPool (sizeof (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI));\r
- ASSERT( FvInfoPpi != NULL);\r
-\r
- if (FvFormat != NULL) {\r
- CopyGuid (&FvInfoPpi->FvFormat, FvFormat);\r
- } else {\r
- CopyGuid (&FvInfoPpi->FvFormat, &gEfiFirmwareFileSystem2Guid);\r
- }\r
- FvInfoPpi->FvInfo = (VOID *) FvInfo;\r
- FvInfoPpi->FvInfoSize = FvInfoSize;\r
- FvInfoPpi->ParentFvName = (EFI_GUID *) ParentFvName;\r
- FvInfoPpi->ParentFileName = (EFI_GUID *) ParentFileName;\r
-\r
-\r
- FvInfoPpiDescriptor = AllocateCopyPool (sizeof(EFI_PEI_PPI_DESCRIPTOR), mPpiListTemplate);\r
- ASSERT (FvInfoPpiDescriptor != NULL);\r
-\r
- FvInfoPpiDescriptor->Ppi = (VOID *) FvInfoPpi;\r
- Status = PeiServicesInstallPpi (FvInfoPpiDescriptor);\r
- ASSERT_EFI_ERROR (Status);\r
-\r
-}\r
-\r
+++ /dev/null
-#/** @file\r
-# Instance of PI Library for PEI phase.\r
-#\r
-# Copyright (c) 2007 - 2008, Intel Corporation.\r
-#\r
-# All rights reserved. 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
-# 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
-#\r
-#**/\r
-\r
-[Defines]\r
- INF_VERSION = 0x00010005\r
- BASE_NAME = PeiPiLib\r
- FILE_GUID = 6196FE81-4FA4-469a-B759-2C4DFE935B79\r
- MODULE_TYPE = PEIM\r
- VERSION_STRING = 1.0\r
- LIBRARY_CLASS = PeiPiLib|PEIM PEI_CORE\r
- EDK_RELEASE_VERSION = 0x00020000\r
-\r
-\r
-#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC (EBC is for build only)\r
-#\r
-\r
-[Sources.common]\r
- PeiPiLib.c\r
-\r
-[Packages]\r
- MdePkg/MdePkg.dec\r
-\r
-\r
-[LibraryClasses]\r
- MemoryAllocationLib\r
- DebugLib\r
-\r
-[Guids]\r
- gEfiFirmwareFileSystem2Guid\r
-\r
-[Ppis]\r
- gEfiPeiFirmwareVolumeInfoPpiGuid\r
-\r
-\r
-\r