PCD DXE driver manage all PCD entry initialized in PEI phase and DXE phase, and\r
produce the implementation of PCD protocol.\r
\r
-Copyright (c) 2006 - 2007, Intel Corporation\r
+Copyright (c) 2006 - 2009, 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
DxePcdGetNextTokenSpace\r
};\r
\r
+EFI_PCD_PROTOCOL mEfiPcdInstance = {\r
+ DxePcdSetSku,\r
+ DxePcdGet8Ex,\r
+ DxePcdGet16Ex,\r
+ DxePcdGet32Ex,\r
+ DxePcdGet64Ex,\r
+ DxePcdGetPtrEx,\r
+ DxePcdGetBoolEx,\r
+ DxePcdGetSizeEx,\r
+ DxePcdSet8Ex,\r
+ DxePcdSet16Ex,\r
+ DxePcdSet32Ex,\r
+ DxePcdSet64Ex,\r
+ DxePcdSetPtrEx,\r
+ DxePcdSetBoolEx,\r
+ (EFI_PCD_PROTOCOL_CALLBACK_ON_SET) DxeRegisterCallBackOnSet,\r
+ (EFI_PCD_PROTOCOL_CANCEL_CALLBACK) DxeUnRegisterCallBackOnSet,\r
+ DxePcdGetNextToken,\r
+ DxePcdGetNextTokenSpace\r
+};\r
\r
//\r
// Static global to reduce the code size\r
&mPcdInstance\r
);\r
\r
+ \r
+ //\r
+ // Also install gEfiPcdProtocolGuid which is only support dynamic-ex type \r
+ // PCD.\r
+ //\r
+ mNewHandle = NULL;\r
+ Status = gBS->InstallProtocolInterface (\r
+ &mNewHandle,\r
+ &gEfiPcdProtocolGuid,\r
+ EFI_NATIVE_INTERFACE,\r
+ &mEfiPcdInstance\r
+ );\r
+ \r
ASSERT_EFI_ERROR (Status);\r
\r
return EFI_SUCCESS;\r
\r
[Protocols]\r
gPcdProtocolGuid ## PRODUCES\r
-\r
+ gEfiPcdProtocolGuid ## PRODUCES\r
+ \r
[FixedPcd.common]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress\r
\r
#include <PiDxe.h>\r
#include <Guid/PcdDataBaseHobGuid.h>\r
#include <Protocol/Pcd.h>\r
+#include <Protocol/PiPcd.h>\r
#include <Library/BaseLib.h>\r
#include <Library/DebugLib.h>\r
#include <Library/UefiLib.h>\r
/** @file \r
All Pcd Ppi services are implemented here.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation \r
+Copyright (c) 2006 - 2009, 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
PeiPcdGetNextTokenSpace\r
};\r
\r
+EFI_PEI_PCD_PPI mEfiPcdPpiInstance = {\r
+ PeiPcdSetSku,\r
+ \r
+ PeiPcdGet8Ex,\r
+ PeiPcdGet16Ex,\r
+ PeiPcdGet32Ex,\r
+ PeiPcdGet64Ex,\r
+ PeiPcdGetPtrEx,\r
+ PeiPcdGetBoolEx,\r
+ PeiPcdGetSizeEx,\r
+ PeiPcdSet8Ex,\r
+ PeiPcdSet16Ex,\r
+ PeiPcdSet32Ex,\r
+ PeiPcdSet64Ex,\r
+ PeiPcdSetPtrEx,\r
+ PeiPcdSetBoolEx,\r
+ (EFI_PEI_PCD_PPI_CALLBACK_ON_SET) PeiRegisterCallBackOnSet,\r
+ (EFI_PEI_PCD_PPI_CANCEL_CALLBACK) PcdUnRegisterCallBackOnSet,\r
+ PeiPcdGetNextToken,\r
+ PeiPcdGetNextTokenSpace\r
+};\r
+\r
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_PEI_PPI_DESCRIPTOR mEfiPpiPCD = {\r
+ (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
+ &gEfiPeiPcdPpiGuid,\r
+ &mEfiPcdPpiInstance\r
+};\r
+\r
/**\r
Main entry for PCD PEIM driver.\r
\r
# - Variable GUID for HII type PCD\r
# - Token space GUID for dynamicex type PCD \r
# \r
-# Copyright (c) 2006 - 2008, Intel Corporation\r
+# Copyright (c) 2006 - 2009, 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
[Ppis]\r
gEfiPeiReadOnlyVariable2PpiGuid ## CONSUMES\r
gPcdPpiGuid ## PRODUCES\r
-\r
+ gEfiPeiPcdPpiGuid ## PRODUCES\r
+ \r
[FeaturePcd]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiFullPcdDatabaseEnable\r
\r
/** @file\r
The internal header file declares the private functions used by PeiPcd driver.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation\r
+Copyright (c) 2006 - 2009, 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
#include <PiPei.h>\r
#include <Ppi/ReadOnlyVariable2.h>\r
#include <Ppi/Pcd.h>\r
+#include <Ppi/PiPcd.h>\r
#include <Guid/PcdDataBaseHobGuid.h>\r
#include <Library/DebugLib.h>\r
#include <Library/PeimEntryPoint.h>\r