## @file
# Instance of PCD Library using PCD Protocol.
#
# There are two PCD protocols 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.
#
# Note: A driver of type DXE_RUNTIME_DRIVER and DXE_SMM_DRIVER can only use this DxePcdLib
#  in their initialization without any issues to access Dynamic and DynamicEx PCD. They can't
#  access Dynamic and DynamicEx PCD in the implementation of runtime services and SMI handlers.
#  Because EFI_PCD_PROTOCOL is DXE protocol that is not available in OS runtime phase.
#
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = DxePcdLib
  MODULE_UNI_FILE                = DxePcdLib.uni
  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_SMM_DRIVER SMM_CORE UEFI_APPLICATION UEFI_DRIVER

#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  DxePcdLib.c


[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  BaseMemoryLib
  UefiBootServicesTableLib
  DebugLib


[Protocols]
  gPcdProtocolGuid                              ## SOMETIMES_CONSUMES
  gEfiPcdProtocolGuid                           ## CONSUMES
  gGetPcdInfoProtocolGuid                       ## SOMETIMES_CONSUMES
  gEfiGetPcdInfoProtocolGuid                    ## SOMETIMES_CONSUMES

[Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER]
  gEfiPcdProtocolGuid

