Make PcdPeim/PcdDxe driver also produce EFI_PCD_PPI/EFI_PCD_PROTOCOL defined in PI 1.2 vol3. The EFI_PCD_PPI/EFI_PCD_PROTOCOL only support dynamic-ex type PCD, but original PCD_PPI/PCD_PROTOCOL in MdePkg support dynamic and dynamic-ex type PCDs.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9401 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2
2009-11-10 08:45:07 +00:00
parent 9136fc3ce3
commit c896d68257
6 changed files with 71 additions and 6 deletions

View File

@@ -2,7 +2,7 @@
PCD DXE driver manage all PCD entry initialized in PEI phase and DXE phase, and
produce the implementation of PCD protocol.
Copyright (c) 2006 - 2007, Intel Corporation
Copyright (c) 2006 - 2009, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -66,6 +66,26 @@ PCD_PROTOCOL mPcdInstance = {
DxePcdGetNextTokenSpace
};
EFI_PCD_PROTOCOL mEfiPcdInstance = {
DxePcdSetSku,
DxePcdGet8Ex,
DxePcdGet16Ex,
DxePcdGet32Ex,
DxePcdGet64Ex,
DxePcdGetPtrEx,
DxePcdGetBoolEx,
DxePcdGetSizeEx,
DxePcdSet8Ex,
DxePcdSet16Ex,
DxePcdSet32Ex,
DxePcdSet64Ex,
DxePcdSetPtrEx,
DxePcdSetBoolEx,
(EFI_PCD_PROTOCOL_CALLBACK_ON_SET) DxeRegisterCallBackOnSet,
(EFI_PCD_PROTOCOL_CANCEL_CALLBACK) DxeUnRegisterCallBackOnSet,
DxePcdGetNextToken,
DxePcdGetNextTokenSpace
};
//
// Static global to reduce the code size
@@ -107,6 +127,19 @@ PcdDxeInit (
&mPcdInstance
);
//
// Also install gEfiPcdProtocolGuid which is only support dynamic-ex type
// PCD.
//
mNewHandle = NULL;
Status = gBS->InstallProtocolInterface (
&mNewHandle,
&gEfiPcdProtocolGuid,
EFI_NATIVE_INTERFACE,
&mEfiPcdInstance
);
ASSERT_EFI_ERROR (Status);
return EFI_SUCCESS;

View File

@@ -318,7 +318,8 @@
[Protocols]
gPcdProtocolGuid ## PRODUCES
gEfiPcdProtocolGuid ## PRODUCES
[FixedPcd.common]
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress

View File

@@ -18,6 +18,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <PiDxe.h>
#include <Guid/PcdDataBaseHobGuid.h>
#include <Protocol/Pcd.h>
#include <Protocol/PiPcd.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/UefiLib.h>