+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2006, 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
-Module Name:\r
- PcdEmulator.c\r
-\r
-Abstract:\r
- Platform Configuration Database (PCD) Service PEIM\r
-\r
---*/\r
-\r
-#include <PcdEmulator.h>\r
-\r
-//\r
-// BugBug: PEI early phase does not support global variable!!!\r
-// This is only a temperary solution.\r
-//\r
-\r
-UINTN mSkuId = 0;\r
-\r
-\r
-STATIC EMULATED_PCD_DATABASE_EX *\r
-GetPcdDataBaseEx (\r
- VOID\r
-) {\r
- EFI_HOB_GUID_TYPE *GuidHob;\r
- EMULATED_PCD_DATABASE_EX *EmulatedPcdDatabaseEx;\r
-\r
- GuidHob = GetFirstGuidHob (&gPcdHobGuid);\r
- EmulatedPcdDatabaseEx = (EMULATED_PCD_DATABASE_EX *) GET_GUID_HOB_DATA(GuidHob);\r
-\r
- return EmulatedPcdDatabaseEx;\r
-}\r
-\r
-STATIC UINTN \r
-GetPcdDataBaseExEntryCount (\r
- EMULATED_PCD_DATABASE_EX * Database\r
-) {\r
- return Database->Count;\r
-}\r
-\r
-STATIC UINTN \r
-GetPcdDataBaseExSize (\r
- EMULATED_PCD_DATABASE_EX * Database\r
-) {\r
- UINTN Size;\r
- \r
- Size = sizeof (Database->Count)\r
- + (sizeof (Database->Entry[0]) * Database->Count);\r
- \r
- return Size;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSetSku (\r
- IN UINTN SkuId\r
- )\r
-{\r
- mSkuId = SkuId;\r
- return EFI_SUCCESS;\r
-}\r
-\r
-UINT8\r
-EFIAPI\r
-PcdEmulatorGet8 (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- ASSERT (Pcd->DatumSize == 1);\r
-\r
- return (UINT8)Pcd->Datum;\r
-}\r
-\r
-UINT16\r
-EFIAPI\r
-PcdEmulatorGet16 (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- ASSERT (Pcd->DatumSize == 2);\r
-\r
- return (UINT16)Pcd->Datum;\r
-}\r
-\r
-UINT32\r
-EFIAPI\r
-PcdEmulatorGet32 (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- ASSERT (Pcd->DatumSize == 4);\r
-\r
- return (UINT32)Pcd->Datum;\r
-}\r
-\r
-UINT64\r
-EFIAPI\r
-PcdEmulatorGet64 (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- ASSERT (Pcd->DatumSize == sizeof (UINT64));\r
-\r
- return (UINT64)Pcd->Datum;\r
-}\r
-\r
-VOID *\r
-EFIAPI\r
-PcdEmulatorGetPtr (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
-\r
- return (VOID *)(UINTN)Pcd->ExtendedData;\r
-}\r
-\r
-BOOLEAN\r
-EFIAPI\r
-PcdEmulatorGetBoolean (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- ASSERT (Pcd->DatumSize == 1);\r
-\r
- return (BOOLEAN)Pcd->Datum;\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-PcdEmulatorGetSize (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- return Pcd->DatumSize;\r
-}\r
-\r
-UINT8\r
-EFIAPI\r
-PcdEmulatorGet8Ex (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- ASSERT (FALSE);\r
- return 0;\r
-}\r
-\r
-UINT16\r
-EFIAPI\r
-PcdEmulatorGet16Ex (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- ASSERT (FALSE);\r
- return 0;\r
-}\r
-\r
-UINT32\r
-EFIAPI\r
-PcdEmulatorGet32Ex (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- ASSERT (FALSE);\r
- return 0;\r
-}\r
-\r
-UINT64\r
-EFIAPI\r
-PcdEmulatorGet64Ex (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- ASSERT (FALSE);\r
- return 0;\r
-}\r
-\r
-VOID *\r
-EFIAPI\r
-PcdEmulatorGetPtrEx (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- ASSERT (FALSE);\r
- return 0;\r
-}\r
-\r
-BOOLEAN\r
-EFIAPI\r
-PcdEmulatorGetBooleanEx (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- ASSERT (FALSE);\r
- return 0;\r
-}\r
-\r
-UINTN\r
-EFIAPI\r
-PcdEmulatorGetSizeEx (\r
- IN CONST EFI_GUID *PcdDataBaseName,\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
- return Pcd->DatumSize;\r
-}\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet8 (\r
- IN UINTN TokenNumber,\r
- IN UINT8 Value\r
- )\r
-{ \r
-\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
-\r
- ASSERT (Pcd->DatumSize == sizeof (UINT8));\r
-\r
- Pcd->Datum = Value;\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet16 (\r
- IN UINTN TokenNumber,\r
- IN UINT16 Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet32 (\r
- IN UINTN TokenNumber,\r
- IN UINT32 Value\r
- )\r
-{ \r
-\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
-\r
- ASSERT (Pcd->DatumSize == sizeof (UINT32));\r
-\r
- Pcd->Datum = Value;\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet64 (\r
- IN UINTN TokenNumber,\r
- IN UINT64 Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSetPtr (\r
- IN UINTN TokenNumber,\r
- IN CONST VOID *Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSetBoolean (\r
- IN UINTN TokenNumber,\r
- IN BOOLEAN Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet8Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN TokenNumber,\r
- IN UINT8 Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet16Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN TokenNumber,\r
- IN UINT16 Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet32Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN TokenNumber,\r
- IN UINT32 Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSet64Ex (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN TokenNumber,\r
- IN UINT64 Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSetPtrEx (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN TokenNumber,\r
- IN CONST VOID *Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorSetBooleanEx (\r
- IN CONST EFI_GUID *Guid,\r
- IN UINTN TokenNumber,\r
- IN BOOLEAN Value\r
- )\r
-{ \r
-\r
- ASSERT (FALSE);\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorCallBackOnSet (\r
- IN UINTN TokenNumber,\r
- IN CONST EFI_GUID *Guid, OPTIONAL\r
- IN PCD_PPI_CALLBACK CallBackFunction\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
-\r
- if (Pcd->CallBackListSize == Pcd->CallBackEntries) {\r
- return EFI_OUT_OF_RESOURCES;\r
- }\r
-\r
- Pcd->CallBackList[Pcd->CallBackEntries++] = CallBackFunction;\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorUnregisterCallBackOnSet (\r
- IN UINTN TokenNumber,\r
- IN CONST EFI_GUID *Guid, OPTIONAL\r
- IN PCD_PPI_CALLBACK CallBackfunction\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
- UINT32 Index;\r
-\r
- Pcd = GetPcdEntry (TokenNumber);\r
- ASSERT (Pcd != NULL);\r
-\r
- for (Index = 0; Index < Pcd->CallBackListSize; Index++) {\r
- if (Pcd->CallBackList[Index] == CallBackfunction) {\r
- Pcd->CallBackList[Index] = NULL;\r
- return EFI_SUCCESS;\r
- }\r
- }\r
-\r
- return EFI_NOT_FOUND;\r
-}\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PcdEmulatorGetNextToken (\r
- IN CONST EFI_GUID *Guid, OPTIONAL\r
- IN UINTN *Token\r
- )\r
-{\r
- EMULATED_PCD_ENTRY_EX *Pcd;\r
- EMULATED_PCD_ENTRY_EX *LastPcdEntry;\r
- EMULATED_PCD_DATABASE_EX *PcdDatabase;\r
- EMULATED_PCD_ENTRY_EX *PcdEntry;\r
-\r
- PcdDatabase = GetPcdDataBaseEx (); \r
- PcdEntry = PcdDatabase->Entry;\r
-\r
- if (*Token == PCD_INVALID_TOKEN) {\r
- //\r
- // BugBug: Due to variable size array, ensure we convert this to a reasonable database\r
- // that can accomodate array references for simplicity's sake\r
- *Token = PcdEntry[0].Token;\r
- return EFI_SUCCESS;\r
- }\r
-\r
- Pcd = GetPcdEntry (*Token);\r
- if (Pcd == NULL) {\r
- return EFI_NOT_FOUND;\r
- }\r
-\r
- LastPcdEntry = PcdEntry + GetPcdDataBaseExEntryCount (PcdDatabase);\r
- if (++Pcd >= LastPcdEntry) {\r
- return EFI_NOT_FOUND;\r
- }\r
- \r
- *Token = Pcd->Token;\r
- return EFI_SUCCESS;\r
-}\r
-\r
-PCD_PPI mPcdPpiInstance = {\r
- PcdEmulatorSetSku,\r
-\r
- PcdEmulatorGet8,\r
- PcdEmulatorGet16, \r
- PcdEmulatorGet32, \r
- PcdEmulatorGet64, \r
- PcdEmulatorGetPtr, \r
- PcdEmulatorGetBoolean, \r
- PcdEmulatorGetSize,\r
-\r
- PcdEmulatorGet8Ex,\r
- PcdEmulatorGet16Ex, \r
- PcdEmulatorGet32Ex, \r
- PcdEmulatorGet64Ex, \r
- PcdEmulatorGetPtrEx, \r
- PcdEmulatorGetBooleanEx, \r
- PcdEmulatorGetSizeEx,\r
- \r
- PcdEmulatorSet8,\r
- PcdEmulatorSet16, \r
- PcdEmulatorSet32, \r
- PcdEmulatorSet64, \r
- PcdEmulatorSetPtr, \r
- PcdEmulatorSetBoolean, \r
-\r
- PcdEmulatorSet8Ex,\r
- PcdEmulatorSet16Ex, \r
- PcdEmulatorSet32Ex, \r
- PcdEmulatorSet64Ex, \r
- PcdEmulatorSetPtrEx, \r
- PcdEmulatorSetBooleanEx, \r
-\r
- PcdEmulatorCallBackOnSet,\r
- PcdEmulatorUnregisterCallBackOnSet,\r
- PcdEmulatorGetNextToken\r
-};\r
-\r
-STATIC EFI_PEI_PPI_DESCRIPTOR mPpiPCD = {\r
- (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
- &gPcdPpiGuid,\r
- &mPcdPpiInstance\r
-};\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-PeimPcdEmulatorEntry (\r
- IN EFI_FFS_FILE_HEADER *FfsHeader,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- )\r
-{\r
- EFI_STATUS Status;\r
- UINTN Index;\r
- UINTN Count;\r
- UINTN Calculation;\r
- UINT8 *AllocatedBuffer;\r
- EMULATED_PCD_DATABASE_EX *EmulatedPcdDatabaseEx;\r
- EMULATED_PCD_ENTRY_EX *EmulatedPcdEntryEx;\r
-\r
- //\r
- // BugBug: Normally, we would read an FFS file for this data\r
- // We need to remember, that when we read the FFS file, items such as the VariableName will not be encoded as a pointer\r
- // but as an array of content. In this emulation, our init is encoding this data as a pointer.\r
- // In the FFS version, we will depend on the proper Entry Count in the FFS data since the structures will\r
- // now be variable length.\r
- //\r
- //\r
-\r
- //\r
- // We should now read from the FFS file into the cache - for now, we fake this.\r
- //\r
- Count = GetPcdDataBaseSize () / sizeof (EMULATED_PCD_ENTRY);\r
-\r
- //\r
- // Let's now determine how big of a buffer we need for our database\r
- // For the FFS version, we need to calculate/consider the VariableName/ExtendedData size!!!\r
- //\r
- Calculation = sizeof (UINTN) + (Count * sizeof (EMULATED_PCD_ENTRY_EX));\r
-\r
- EmulatedPcdDatabaseEx = (EMULATED_PCD_DATABASE_EX *) BuildGuidHob (&gPcdHobGuid, Calculation);\r
-\r
- EmulatedPcdDatabaseEx->Count = Count;\r
- EmulatedPcdEntryEx = EmulatedPcdDatabaseEx->Entry;\r
-\r
- AllocatedBuffer = AllocatePool (Count * sizeof (PCD_PPI_CALLBACK) * MAX_PCD_CALLBACK);\r
- ASSERT (AllocatedBuffer != NULL); \r
-\r
- for (Index = 0; Index < Count; Index++) {\r
- //\r
- // Copy from source to our own allocated buffer - normally an FFS read\r
- //\r
- (*PeiServices)->CopyMem (\r
- (VOID *) (EmulatedPcdEntryEx + Index),\r
- (VOID *) (gEmulatedPcdEntry + Index),\r
- sizeof (EMULATED_PCD_ENTRY)\r
- );\r
-\r
- //\r
- // All the CallBackList worker functions refer to this CallBackList as CallBackList[CallbackEntry]\r
- // so we seed the same buffer address here.\r
- //\r
- EmulatedPcdEntryEx[Index].CallBackList = (PCD_PPI_CALLBACK *)AllocatedBuffer;\r
- AllocatedBuffer+= (sizeof (PCD_PPI_CALLBACK) * MAX_PCD_CALLBACK);\r
- EmulatedPcdEntryEx[Index].CallBackEntries = 0;\r
- EmulatedPcdEntryEx[Index].CallBackListSize = MAX_PCD_CALLBACK;\r
- }\r
-\r
- //\r
- // Install PCD service PPI\r
- //\r
- Status = PeiServicesInstallPpi (&mPpiPCD);\r
-\r
- ASSERT_EFI_ERROR (Status);\r
- return Status;\r
-}\r
-\r
-\r
-EMULATED_PCD_ENTRY_EX *\r
-GetPcdEntry (\r
- IN UINTN TokenNumber\r
- )\r
-{\r
- UINTN Index;\r
- UINTN Count;\r
- EMULATED_PCD_DATABASE_EX *EmulatedPcdDatabaseEx;\r
- EMULATED_PCD_ENTRY_EX *EmulatedPcdEntryEx;\r
-\r
- CpuBreakpoint (); \r
-\r
- EmulatedPcdDatabaseEx = GetPcdDataBaseEx (); \r
- //\r
- // BugBug: This Count will change when we flip over to FFS version\r
- //\r
- Count = EmulatedPcdDatabaseEx->Count;\r
- EmulatedPcdEntryEx = EmulatedPcdDatabaseEx->Entry;\r
- for (Index = 0; Index < Count; Index++) {\r
- if (EmulatedPcdEntryEx[Index].Token == TokenNumber) {\r
- return &EmulatedPcdEntryEx[Index];\r
- }\r
- }\r
- return NULL;\r
-}\r
-\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!--\r
-Copyright (c) 2006, 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
-<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">\r
- <MsaHeader>\r
- <BaseName>PcdEmulatorPeim</BaseName>\r
- <ModuleType>PEIM</ModuleType>\r
- <ComponentType>PE32_PEIM</ComponentType>\r
- <Guid>9B3ADA4F-AE56-4c24-8DEA-F03B7558AE50</Guid>\r
- <Version>EDK_RELEASE_VERSION 0x00020000</Version>\r
- <Abstract>Component description file for PcdEmulator PEIM module</Abstract>\r
- <Description>FIX ME!</Description>\r
- <Copyright>Copyright (c) 2004-2006, Intel Corporation</Copyright>\r
- <License>\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
- </License>\r
- <Created>2006-03-14 17:04</Created>\r
- <Updated>2006-03-24 18:54</Updated>\r
- <Specification>EFI_SPECIFICATION_VERSION 0x00000000</Specification>\r
- </MsaHeader>\r
- <LibraryClassDefinitions>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">DebugLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PeimEntryPoint</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">BaseLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">HobLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PeiServicesLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PcdLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">PeiServicesTablePointerLib</LibraryClass>\r
- <LibraryClass Usage="ALWAYS_CONSUMED">MemoryAllocationLib</LibraryClass>\r
- </LibraryClassDefinitions>\r
- <SourceFiles>\r
- <Filename>PcdEmulator.dxs</Filename>\r
- <Filename>PcdEmulator.c</Filename>\r
- </SourceFiles>\r
- <Includes>\r
- <PackageName>MdePkg</PackageName>\r
- <PackageName>EdkNt32Pkg</PackageName>\r
- </Includes>\r
- <Hobs>\r
- <Hob Usage="ALWAYS_PRODUCED" HobType="GUID_EXTENSION">\r
- <Name>PcdDataBase</Name>\r
- <C_Name>gPcdHobGuid</C_Name>\r
- <Guid>0x582e7ca1, 0x68cd, 0x4d44, 0xb4, 0x3b, 0xf2, 0x98, 0xed, 0x58, 0x7b, 0xa6</Guid>\r
- </Hob>\r
- </Hobs>\r
- <PPIs>\r
- <Ppi Usage="ALWAYS_PRODUCED">Pcd</Ppi>\r
- </PPIs>\r
- <Guids>\r
- <GuidEntry Usage="ALWAYS_CONSUMED">\r
- <C_Name>PcdHob</C_Name>\r
- </GuidEntry>\r
- </Guids>\r
- <Externs>\r
- <Extern>\r
- <ModuleEntryPoint>PeimPcdEmulatorEntry</ModuleEntryPoint>\r
- </Extern>\r
- </Externs>\r
-</ModuleSurfaceArea>\r