// /** @file
// Instance of PCD Library using PCD PPI.
//
// There are two PCD PPIs as follows:
// 1) PCD_PPI
// It is EDKII implementation which support Dynamic/DynamicEx Pcds.
// 2) EFI_PEI_PCD_PPI
// 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_PPI and EFI_PEI_PCD_PPI.
// This library instance uses the PCD_PPI to handle dynamic PCD request and use
// EFI_PEI_PCD_PPI to handle dynamicEx type PCD.
//
// This library instance assume the PCD_PPI and EFI_PEI_PCD_PPI are both installed early.
//
// PCD Library that uses the PCD PPI to access Dynamic and DynamicEx PCD entries
//
// Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "PCD Library for PEI"

#string STR_MODULE_DESCRIPTION          #language en-US "There are two PCD PPIs as follows: 1) PCD_PPI: It is EDKII implementation which support Dynamic/DynamicEx Pcds. 2) EFI_PEI_PCD_PPI: 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_PPI and EFI_PEI_PCD_PPI. This library instance uses the PCD_PPI to handle dynamic PCD request and use EFI_PEI_PCD_PPI to handle dynamicEx type PCD. This library instance assumes that PCD_PPI and EFI_PEI_PCD_PPI are both installed early. The PCD Library that uses the PCD PPI to access Dynamic and DynamicEx PCD entries."

