-#/** @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 - 2014, 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
-################################################################################\r
-#\r
-# Defines Section - statements that will be processed to create a Makefile.\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_SAL_DRIVER DXE_SMM_DRIVER SMM_CORE UEFI_APPLICATION UEFI_DRIVER \r
\r
-#\r
-# The following information is for reference only and not required by the build tools.\r
#\r
# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
#\r
\r
-################################################################################\r
-#\r
-# Sources Section - list of files that are required for the build to succeed.\r
-#\r
-################################################################################\r
-\r
-[Sources.common]\r
+[Sources]\r
DxePcdLib.c\r
- CommonHeader.h\r
\r
\r
-################################################################################\r
-#\r
-# Includes Section - list of Include locations that are required for\r
-# this module.\r
-#\r
-################################################################################\r
-\r
-[Includes]\r
- $(WORKSPACE)/MdePkg\Include/Library\r
-\r
-################################################################################\r
-#\r
-# Package Dependency Section - list of Package files that are required for\r
-# this module.\r
-#\r
-################################################################################\r
-\r
[Packages]\r
MdePkg/MdePkg.dec\r
\r
\r
-################################################################################\r
-#\r
-# Library Class Section - list of Library Classes that are required for\r
-# this module.\r
-#\r
-################################################################################\r
-\r
[LibraryClasses]\r
BaseMemoryLib\r
UefiBootServicesTableLib\r
DebugLib\r
\r
\r
-################################################################################\r
-#\r
-# Protocol C Name Section - list of Protocol and Protocol Notify C Names\r
-# that this module uses or produces.\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