]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/PeiPiLib/PeiPiLib.c
1. Add DPC protocol and DpcLib library in MdeModulePkg.
[mirror_edk2.git] / MdePkg / Library / PeiPiLib / PeiPiLib.c
CommitLineData
b0d803fe 1/** @file\r
2 MDE PI library functions and macros for PEI phase\r
3\r
4 Copyright (c) 2007, Intel Corporation \r
5 All rights reserved. This program and the accompanying materials \r
6 are licensed and made available under the terms and conditions of the BSD License \r
7 which accompanies this distribution. The full text of the license may be found at \r
8 http://opensource.org/licenses/bsd-license.php \r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13**/\r
14\r
15#include <PiPei.h>\r
16#include <Ppi/FirmwareVolumeInfo.h>\r
17#include <Guid/FirmwareFileSystem2.h>\r
18\r
19\r
20#include <Library/DebugLib.h>\r
21#include <Library/MemoryAllocationLib.h>\r
22#include <Library/PeiServicesLib.h>\r
23#include <Library/PeiPiLib.h>\r
166152e8 24#include <Library/BaseMemoryLib.h>\r
b0d803fe 25\r
26\r
166152e8 27CONST EFI_PEI_FIRMWARE_VOLUME_INFO_PPI mFvInfoPpiTemplate = {\r
b0d803fe 28 EFI_FIRMWARE_FILE_SYSTEM2_GUID,\r
29 NULL,\r
30 0, //FvInfoSize\r
31 NULL, //ParentFvName\r
32 NULL //ParentFileName;\r
33};\r
34\r
35VOID\r
36EFIAPI\r
166152e8 37PiLibInstallFvInfoPpi (\r
38 IN EFI_GUID *FvFormat, OPTIONAL\r
39 IN VOID *FvInfo,\r
40 IN UINT32 FvInfoSize,\r
41 IN EFI_GUID *ParentFvName, OPTIONAL\r
42 IN EFI_GUID *ParentFileName OPTIONAL\r
b0d803fe 43 ) {\r
44 \r
45 EFI_STATUS Status; \r
46 EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *FvInfoPpi;\r
47 EFI_PEI_PPI_DESCRIPTOR *FvInfoPpiDescriptor;\r
48\r
49 FvInfoPpi = AllocateCopyPool (sizeof (*FvInfoPpi), &mFvInfoPpiTemplate);\r
50 ASSERT( FvInfoPpi != NULL);\r
51\r
166152e8 52 if (FvFormat != NULL) {\r
53 CopyMem (&FvInfoPpi->FvFormat, FvFormat, sizeof (*FvFormat));\r
54 }\r
55 FvInfoPpi->FvInfo = (VOID *) (UINTN) FvInfo;\r
56 FvInfoPpi->FvInfoSize = (UINT32) FvInfoSize;\r
b0d803fe 57 FvInfoPpi->ParentFvName = ParentFvName;\r
58 FvInfoPpi->ParentFileName = ParentFileName;\r
59\r
60\r
61 FvInfoPpiDescriptor = AllocatePool (sizeof(EFI_PEI_PPI_DESCRIPTOR));\r
62 ASSERT (FvInfoPpiDescriptor != NULL);\r
63\r
64 FvInfoPpiDescriptor->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
65 FvInfoPpiDescriptor->Guid = &gEfiPeiFirmwareVolumeInfoPpiGuid;\r
66 FvInfoPpiDescriptor->Ppi = (VOID *) FvInfoPpi;\r
67 Status = PeiServicesInstallPpi (FvInfoPpiDescriptor);\r
68 ASSERT_EFI_ERROR (Status);\r
69\r
b0d803fe 70}\r
71\r