## @file
# Instance of PCD Library using PCD Protocol.
#
# There are two PCD PPIs as follows:
#   1) PCD_PROTOCOL
#      It is EDKII implementation which support Dynamic/DynamicEx Pcds.
#   2) EFI_PCD_PROTOCOL
#      It is defined by PI specification 1.2, Vol 3 which only support dynamicEx 
#      type Pcd.
#
# For dynamicEx type PCD, it is compatible between PCD_PROTOCOL and EFI_PCD_PROTOCOL.
#
# This library instance uses the PCD_PROTOCOL to handle dynamic PCD request and use
# EFI_PCD_PROTOCOL to handle dynamicEx type PCD.
#
# Copyright (c) 2007 - 2010, 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
#  http://opensource.org/licenses/bsd-license.php
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = DxePcdLib
  FILE_GUID                      = af97eb89-4cc6-45f8-a514-ca025b346480
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PcdLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER SMM_CORE UEFI_APPLICATION UEFI_DRIVER 
  CONSTRUCTOR                    = PcdLibConstructor

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  DxePcdLib.c


[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  BaseMemoryLib
  UefiBootServicesTableLib
  DebugLib


[Protocols]
  gPcdProtocolGuid                              ## CONSUMES
  gEfiPcdProtocolGuid                           ## CONSUMES
  
[Depex]
  gEfiPcdProtocolGuid

