-#/** @file\r
-# PCD Library instance implemented with PCD Protocol\r
+## @file\r
+# Instance of PCD Library using PCD Protocol.\r
#\r
-# This library instance implement the APIs listed \r
-# in PCD library class defined in MDE library specification.\r
-# It is used by modules in DXE phase.\r
-# Copyright (c) 2007, Intel Corporation.\r
+# There are two PCD protocols as follows:\r
+# 1) PCD_PROTOCOL\r
+# It is EDKII implementation which support Dynamic/DynamicEx Pcds.\r
+# 2) EFI_PCD_PROTOCOL\r
+# It is defined by PI specification 1.2, Vol 3 which only support dynamicEx\r
+# type Pcd.\r
#\r
-# All rights reserved. This program and the accompanying materials\r
+# For dynamicEx type PCD, it is compatible between PCD_PROTOCOL and EFI_PCD_PROTOCOL.\r
+#\r
+# This library instance uses the PCD_PROTOCOL to handle dynamic PCD request and use\r
+# EFI_PCD_PROTOCOL to handle dynamicEx type PCD.\r
+#\r
+# Note: A driver of type DXE_RUNTIME_DRIVER and DXE_SMM_DRIVER can only use this DxePcdLib\r
+# in their initialization without any issues to access Dynamic and DynamicEx PCD. They can't\r
+# access Dynamic and DynamicEx PCD in the implementation of runtime services and SMI handlers.\r
+# Because EFI_PCD_PROTOCOL is DXE protocol that is not aviable in OS runtime phase.\r
+#\r
+# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
+#\r
+# 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
+# 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
\r
[Defines]\r
INF_VERSION = 0x00010005\r
BASE_NAME = DxePcdLib\r
+ MODULE_UNI_FILE = DxePcdLib.uni\r
FILE_GUID = af97eb89-4cc6-45f8-a514-ca025b346480\r
MODULE_TYPE = DXE_DRIVER\r
VERSION_STRING = 1.0\r
- LIBRARY_CLASS = PcdLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER \r
- EDK_RELEASE_VERSION = 0x00020000\r
- EFI_SPECIFICATION_VERSION = 0x00020000\r
-\r
- CONSTRUCTOR = PcdLibConstructor\r
+ LIBRARY_CLASS = PcdLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER SMM_CORE UEFI_APPLICATION UEFI_DRIVER\r
\r
#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
+# VALID_ARCHITECTURES = IA32 X64 EBC\r
#\r
\r
-[Sources.common]\r
+[Sources]\r
DxePcdLib.c\r
\r
\r
\r
\r
[Protocols]\r
- gPcdProtocolGuid # PROTOCOL ALWAYS_CONSUMED\r
+ gPcdProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiPcdProtocolGuid ## CONSUMES\r
+ gGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES\r
+ gEfiGetPcdInfoProtocolGuid ## SOMETIMES_CONSUMES\r
\r
+[Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER]\r
+ gEfiPcdProtocolGuid\r
\r
-[Depex]\r
- gPcdProtocolGuid
\ No newline at end of file