public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Leif Lindholm" <leif@nuviainc.com>
To: Pete Batard <pete@akeo.ie>
Cc: Marcin Wojtas <mw@semihalf.com>,
	Ard Biesheuvel <Ard.Biesheuvel@arm.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	"liming.gao@intel.com" <liming.gao@intel.com>,
	"Zhang, Shenglei" <shenglei.zhang@intel.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>,
	Ming Huang <huangming23@huawei.com>
Subject: Re: [edk2-devel] [PATCH] MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES
Date: Mon, 3 Aug 2020 18:47:19 +0100	[thread overview]
Message-ID: <20200803174719.GA31778@vanye> (raw)
In-Reply-To: <e26edff1-9a30-96f7-dc6d-67a1a7cb6300@akeo.ie>

Thanks Pete, Marcin,

Fixes for RPi and Marvell platforms:
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
Pushed as 0f08b94dbdf0..02cf0dcf8f93.

This leaves AMD and Hisilicon platforms.

I would suggest that dropping the deprecated interfaces is added to
the plan for 202011 stable tag.

/
    Leif

On Mon, Aug 03, 2020 at 12:23:19 +0100, Pete Batard wrote:
> And done for RPi in https://edk2.groups.io/g/devel/message/63661
> 
> Regards,
> 
> /Pete
> 
> 
> On 2020.07.31 16:56, Marcin Wojtas wrote:
> > Hi Ard,
> > 
> > 
> > pt., 31 lip 2020 o 10:27 Ard Biesheuvel <Ard.Biesheuvel@arm.com> napisał(a):
> > > 
> > > The reason PcdSet## was deprecated in the first place was because it cannot signal failure, whereas PcdSet##S can.
> > > 
> > > So please fix the affected platforms by capturing the returned status value, and at the very least, use ASSERT_EFI_ERROR() on it so we can spot any failures in DEBUG builds. Just swapping out one for the other kind of defeats the purpose.
> > > 
> > 
> > Done: https://edk2.groups.io/g/devel/message/63577
> > 
> > Best regards,
> > Marcin
> > 
> > > ________________________________
> > > From: Pete Batard <pete@akeo.ie>
> > > Sent: Friday, July 31, 2020 09:53
> > > To: devel@edk2.groups.io <devel@edk2.groups.io>; liming.gao@intel.com <liming.gao@intel.com>; mw@semihalf.com <mw@semihalf.com>; Leif Lindholm <leif@nuviainc.com>
> > > Cc: Zhang, Shenglei <shenglei.zhang@intel.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Ming Huang <huangming23@huawei.com>
> > > Subject: Re: [edk2-devel] [PATCH] MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES
> > > 
> > > All,
> > > 
> > > Fix for Raspberry Pi platforms submitted at:
> > > https://edk2.groups.io/g/devel/message/63554
> > > 
> > > Regards,
> > > 
> > > /Pete
> > > 
> > > On 2020.07.31 02:55, Liming Gao wrote:
> > > > Thanks Marcin.
> > > > 
> > > > Leif:
> > > >     Is there the way to get the fix plan from the platform owner? If so, I can work the plan to merge this change.
> > > > 
> > > > Thanks
> > > > Liming
> > > > -----Original Message-----
> > > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Marcin Wojtas
> > > > Sent: 2020年7月31日 0:09
> > > > To: Leif Lindholm <leif@nuviainc.com>
> > > > Cc: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io; Zhang, Shenglei <shenglei.zhang@intel.com>; Ard Biesheuvel <ard.biesheuvel@arm.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Ming Huang <huangming23@huawei.com>; Pete Batard <pete@akeo.ie>
> > > > Subject: Re: [edk2-devel] [PATCH] MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES
> > > > 
> > > > Hi Leif,
> > > > 
> > > > 
> > > > śr., 29 lip 2020 o 15:35 Leif Lindholm <leif@nuviainc.com> napisał(a):
> > > > > 
> > > > > Right, so the following platforms break once this patch is merged:
> > > > > 
> > > > > - AMD Overdrive, Overdrive 1000, Cello
> > > > > - Hisilicon D03, D05, D06 (some of these due to binary drivers in
> > > > >     edk2-non-osi)
> > > > > - Marvell Armada 78x0/80x0, MacchiatoBIN
> > > > 
> > > > Fix for Marvell platforms submitted:
> > > > https://edk2.groups.io/g/devel/message/63472
> > > > 
> > > > Best regards,
> > > > Marcin
> > > > 
> > > > > - Raspberry Pi 3/4
> > > > > 
> > > > > I think this provides enough argument to push this patch at least
> > > > > until after August stable tag.
> > > > > 
> > > > > As far as I can tell, all of these are due to the PcdSet And
> > > > > UnicodeStrToAsciiStr functions/macros disappearing. Presumably these
> > > > > should be replaced with their S-suffixed counterparts.
> > > > > 
> > > > > Maintainers/reviewers on cc. I'd appreciate if you could update and
> > > > > sanity check your platforms and send out patches.
> > > > > 
> > > > > Best Regards,
> > > > > 
> > > > > Leif
> > > > > 
> > > > > On Wed, Jul 29, 2020 at 13:24:15 +0100, Leif Lindholm wrote:
> > > > > > Thanks Liming,
> > > > > > 
> > > > > > Yes, this does affect several ARM platforms. Currently running a build
> > > > > > test to determine just how many. My preference would be for a change
> > > > > > of this magnitude to go in just after a stable tag - what, if any, are
> > > > > > the plans for this patch?
> > > > > > 
> > > > > > Best Regards,
> > > > > > 
> > > > > > Leif
> > > > > > 
> > > > > > On Wed, Jul 29, 2020 at 07:55:09 +0000, Gao, Liming wrote:
> > > > > > > Include Leif and Ard. This change may impact ARM platform.
> > > > > > > 
> > > > > > > Thanks
> > > > > > > Liming
> > > > > > > -----Original Message-----
> > > > > > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Liming Gao
> > > > > > > Sent: 2020年6月9日 21:08
> > > > > > > To: Zhang, Shenglei <shenglei.zhang@intel.com>; devel@edk2.groups.io
> > > > > > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>
> > > > > > > Subject: Re: [edk2-devel] [PATCH] MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > 
> > > > > > > Shenglei:
> > > > > > >     Please also remove the deprecated code in MdeModulePkg.
> > > > > > > 
> > > > > > > Thanks
> > > > > > > Liming
> > > > > > > > -----Original Message-----
> > > > > > > > From: Zhang, Shenglei <shenglei.zhang@intel.com>
> > > > > > > > Sent: Friday, June 5, 2020 4:13 PM
> > > > > > > > To: devel@edk2.groups.io
> > > > > > > > Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>
> > > > > > > > Subject: [PATCH] MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > 
> > > > > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2777
> > > > > > > > Code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES is deprecated.
> > > > > > > > So remove it.
> > > > > > > > 
> > > > > > > > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > > > > > > > Cc: Liming Gao <liming.gao@intel.com>
> > > > > > > > Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
> > > > > > > > ---
> > > > > > > >    MdePkg/Library/BaseLib/String.c        | 626 -------------------------
> > > > > > > >    MdePkg/Library/BasePcdLibNull/PcdLib.c | 361 --------------
> > > > > > > >    MdePkg/Library/BasePrintLib/PrintLib.c | 118 -----
> > > > > > > >    MdePkg/Library/DxePcdLib/DxePcdLib.c   | 399 ----------------
> > > > > > > >    MdePkg/Library/PeiPcdLib/PeiPcdLib.c   | 397 ----------------
> > > > > > > >    MdePkg/Library/UefiLib/UefiLib.c       |  92 ----
> > > > > > > >    MdePkg/Include/Library/BaseLib.h       | 409 ----------------
> > > > > > > >    MdePkg/Include/Library/PcdLib.h        | 520 --------------------
> > > > > > > >    MdePkg/Include/Library/PrintLib.h      | 110 -----
> > > > > > > >    MdePkg/Include/Library/UefiLib.h       |  53 ---
> > > > > > > >    MdePkg/MdePkg.dsc                      |   1 -
> > > > > > > >    11 files changed, 3086 deletions(-)
> > > > > > > > 
> > > > > > > > diff --git a/MdePkg/Library/BaseLib/String.c b/MdePkg/Library/BaseLib/String.c
> > > > > > > > index 45198373f25c..f4854f357e3a 100644
> > > > > > > > --- a/MdePkg/Library/BaseLib/String.c
> > > > > > > > +++ b/MdePkg/Library/BaseLib/String.c
> > > > > > > > @@ -8,135 +8,6 @@
> > > > > > > > 
> > > > > > > >    #include "BaseLibInternals.h"
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies one Null-terminated Unicode string to another Null-terminated Unicode
> > > > > > > > -  string and returns the new Unicode string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the Unicode string Source to the Unicode
> > > > > > > > -  string Destination, and returns Destination. If Source and Destination
> > > > > > > > -  overlap, then the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrCpy (
> > > > > > > > -  OUT     CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  CHAR16                            *ReturnValue;
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination cannot be NULL
> > > > > > > > -  //
> > > > > > > > -  ASSERT (Destination != NULL);
> > > > > > > > -  ASSERT (((UINTN) Destination & BIT0) == 0);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination and source cannot overlap
> > > > > > > > -  //
> > > > > > > > -  ASSERT ((UINTN)(Destination - Source) > StrLen (Source));
> > > > > > > > -  ASSERT ((UINTN)(Source - Destination) > StrLen (Source));
> > > > > > > > -
> > > > > > > > -  ReturnValue = Destination;
> > > > > > > > -  while (*Source != 0) {
> > > > > > > > -    *(Destination++) = *(Source++);
> > > > > > > > -  }
> > > > > > > > -  *Destination = 0;
> > > > > > > > -  return ReturnValue;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies up to a specified length from one Null-terminated Unicode string  to
> > > > > > > > -  another Null-terminated Unicode string and returns the new Unicode string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the Unicode string Source to the Unicode
> > > > > > > > -  string Destination, and returns Destination. At most, Length Unicode
> > > > > > > > -  characters are copied from Source to Destination. If Length is 0, then
> > > > > > > > -  Destination is returned unmodified. If Length is greater that the number of
> > > > > > > > -  Unicode characters in Source, then Destination is padded with Null Unicode
> > > > > > > > -  characters. If Source and Destination overlap, then the results are
> > > > > > > > -  undefined.
> > > > > > > > -
> > > > > > > > -  If Length > 0 and Destination is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumUnicodeStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Length      The maximum number of Unicode characters to copy.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrnCpy (
> > > > > > > > -  OUT     CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  CHAR16                            *ReturnValue;
> > > > > > > > -
> > > > > > > > -  if (Length == 0) {
> > > > > > > > -    return Destination;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination cannot be NULL if Length is not zero
> > > > > > > > -  //
> > > > > > > > -  ASSERT (Destination != NULL);
> > > > > > > > -  ASSERT (((UINTN) Destination & BIT0) == 0);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination and source cannot overlap
> > > > > > > > -  //
> > > > > > > > -  ASSERT ((UINTN)(Destination - Source) > StrLen (Source));
> > > > > > > > -  ASSERT ((UINTN)(Source - Destination) >= Length);
> > > > > > > > -
> > > > > > > > -  if (PcdGet32 (PcdMaximumUnicodeStringLength) != 0) {
> > > > > > > > -    ASSERT (Length <= PcdGet32 (PcdMaximumUnicodeStringLength));
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  ReturnValue = Destination;
> > > > > > > > -
> > > > > > > > -  while ((*Source != L'\0') && (Length > 0)) {
> > > > > > > > -    *(Destination++) = *(Source++);
> > > > > > > > -    Length--;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  ZeroMem (Destination, Length * sizeof (*Destination));
> > > > > > > > -  return ReturnValue;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the length of a Null-terminated Unicode string.
> > > > > > > > @@ -320,121 +191,6 @@ StrnCmp (
> > > > > > > >      return *FirstString - *SecondString;
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates one Null-terminated Unicode string to another Null-terminated
> > > > > > > > -  Unicode string, and returns the concatenated Unicode string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated Unicode strings. The contents
> > > > > > > > -  of Null-terminated Unicode string Source are concatenated to the end of
> > > > > > > > -  Null-terminated Unicode string Destination. The Null-terminated concatenated
> > > > > > > > -  Unicode String is returned. If Source and Destination overlap, then the
> > > > > > > > -  results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Destination contains more
> > > > > > > > -  than PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and concatenating Destination
> > > > > > > > -  and Source results in a Unicode string with more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrCat (
> > > > > > > > -  IN OUT  CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  StrCpy (Destination + StrLen (Destination), Source);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Size of the resulting string should never be zero.
> > > > > > > > -  // PcdMaximumUnicodeStringLength is tested inside StrLen().
> > > > > > > > -  //
> > > > > > > > -  ASSERT (StrSize (Destination) != 0);
> > > > > > > > -  return Destination;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates up to a specified length one Null-terminated Unicode to the end
> > > > > > > > -  of another Null-terminated Unicode string, and returns the concatenated
> > > > > > > > -  Unicode string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated Unicode strings. The contents
> > > > > > > > -  of Null-terminated Unicode string Source are concatenated to the end of
> > > > > > > > -  Null-terminated Unicode string Destination, and Destination is returned. At
> > > > > > > > -  most, Length Unicode characters are concatenated from Source to the end of
> > > > > > > > -  Destination, and Destination is always Null-terminated. If Length is 0, then
> > > > > > > > -  Destination is returned unmodified. If Source and Destination overlap, then
> > > > > > > > -  the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumUnicodeStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Destination contains more
> > > > > > > > -  than PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and concatenating Destination
> > > > > > > > -  and Source results in a Unicode string with more than PcdMaximumUnicodeStringLength
> > > > > > > > -  Unicode characters, not including the Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Length      The maximum number of Unicode characters to concatenate from
> > > > > > > > -                      Source.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrnCat (
> > > > > > > > -  IN OUT  CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  UINTN   DestinationLen;
> > > > > > > > -
> > > > > > > > -  DestinationLen = StrLen (Destination);
> > > > > > > > -  StrnCpy (Destination + DestinationLen, Source, Length);
> > > > > > > > -  Destination[DestinationLen + Length] = L'\0';
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Size of the resulting string should never be zero.
> > > > > > > > -  // PcdMaximumUnicodeStringLength is tested inside StrLen().
> > > > > > > > -  //
> > > > > > > > -  ASSERT (StrSize (Destination) != 0);
> > > > > > > > -  return Destination;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the first occurrence of a Null-terminated Unicode sub-string
> > > > > > > > @@ -845,208 +601,6 @@ InternalAsciiIsHexaDecimalDigitCharacter (
> > > > > > > >        (Char >= 'a' && Char <= 'f'));
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Convert a Null-terminated Unicode string to a Null-terminated
> > > > > > > > -  ASCII string and returns the ASCII string.
> > > > > > > > -
> > > > > > > > -  This function converts the content of the Unicode string Source
> > > > > > > > -  to the ASCII string Destination by copying the lower 8 bits of
> > > > > > > > -  each Unicode character. It returns Destination.
> > > > > > > > -
> > > > > > > > -  The caller is responsible to make sure Destination points to a buffer with size
> > > > > > > > -  equal or greater than ((StrLen (Source) + 1) * sizeof (CHAR8)) in bytes.
> > > > > > > > -
> > > > > > > > -  If any Unicode characters in Source contain non-zero value in
> > > > > > > > -  the upper 8 bits, then ASSERT().
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains
> > > > > > > > -  more than PcdMaximumUnicodeStringLength Unicode characters, not including
> > > > > > > > -  the Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more
> > > > > > > > -  than PcdMaximumAsciiStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Source        A pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Destination   A pointer to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -UnicodeStrToAsciiStr (
> > > > > > > > -  IN      CONST CHAR16              *Source,
> > > > > > > > -  OUT     CHAR8                     *Destination
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  CHAR8                               *ReturnValue;
> > > > > > > > -
> > > > > > > > -  ASSERT (Destination != NULL);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // ASSERT if Source is long than PcdMaximumUnicodeStringLength.
> > > > > > > > -  // Length tests are performed inside StrLen().
> > > > > > > > -  //
> > > > > > > > -  ASSERT (StrSize (Source) != 0);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Source and Destination should not overlap
> > > > > > > > -  //
> > > > > > > > -  ASSERT ((UINTN) (Destination - (CHAR8 *) Source) >= StrSize (Source));
> > > > > > > > -  ASSERT ((UINTN) ((CHAR8 *) Source - Destination) > StrLen (Source));
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -  ReturnValue = Destination;
> > > > > > > > -  while (*Source != '\0') {
> > > > > > > > -    //
> > > > > > > > -    // If any Unicode characters in Source contain
> > > > > > > > -    // non-zero value in the upper 8 bits, then ASSERT().
> > > > > > > > -    //
> > > > > > > > -    ASSERT (*Source < 0x100);
> > > > > > > > -    *(Destination++) = (CHAR8) *(Source++);
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  *Destination = '\0';
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // ASSERT Original Destination is less long than PcdMaximumAsciiStringLength.
> > > > > > > > -  // Length tests are performed inside AsciiStrLen().
> > > > > > > > -  //
> > > > > > > > -  ASSERT (AsciiStrSize (ReturnValue) != 0);
> > > > > > > > -
> > > > > > > > -  return ReturnValue;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies one Null-terminated ASCII string to another Null-terminated ASCII
> > > > > > > > -  string and returns the new ASCII string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the ASCII string Source to the ASCII
> > > > > > > > -  string Destination, and returns Destination. If Source and Destination
> > > > > > > > -  overlap, then the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrCpy (
> > > > > > > > -  OUT     CHAR8                     *Destination,
> > > > > > > > -  IN      CONST CHAR8               *Source
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  CHAR8                             *ReturnValue;
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination cannot be NULL
> > > > > > > > -  //
> > > > > > > > -  ASSERT (Destination != NULL);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination and source cannot overlap
> > > > > > > > -  //
> > > > > > > > -  ASSERT ((UINTN)(Destination - Source) > AsciiStrLen (Source));
> > > > > > > > -  ASSERT ((UINTN)(Source - Destination) > AsciiStrLen (Source));
> > > > > > > > -
> > > > > > > > -  ReturnValue = Destination;
> > > > > > > > -  while (*Source != 0) {
> > > > > > > > -    *(Destination++) = *(Source++);
> > > > > > > > -  }
> > > > > > > > -  *Destination = 0;
> > > > > > > > -  return ReturnValue;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies up to a specified length one Null-terminated ASCII string to another
> > > > > > > > -  Null-terminated ASCII string and returns the new ASCII string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the ASCII string Source to the ASCII
> > > > > > > > -  string Destination, and returns Destination. At most, Length ASCII characters
> > > > > > > > -  are copied from Source to Destination. If Length is 0, then Destination is
> > > > > > > > -  returned unmodified. If Length is greater that the number of ASCII characters
> > > > > > > > -  in Source, then Destination is padded with Null ASCII characters. If Source
> > > > > > > > -  and Destination overlap, then the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumAsciiStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Length      The maximum number of ASCII characters to copy.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrnCpy (
> > > > > > > > -  OUT     CHAR8                     *Destination,
> > > > > > > > -  IN      CONST CHAR8               *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  CHAR8                             *ReturnValue;
> > > > > > > > -
> > > > > > > > -  if (Length == 0) {
> > > > > > > > -    return Destination;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination cannot be NULL
> > > > > > > > -  //
> > > > > > > > -  ASSERT (Destination != NULL);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Destination and source cannot overlap
> > > > > > > > -  //
> > > > > > > > -  ASSERT ((UINTN)(Destination - Source) > AsciiStrLen (Source));
> > > > > > > > -  ASSERT ((UINTN)(Source - Destination) >= Length);
> > > > > > > > -
> > > > > > > > -  if (PcdGet32 (PcdMaximumAsciiStringLength) != 0) {
> > > > > > > > -    ASSERT (Length <= PcdGet32 (PcdMaximumAsciiStringLength));
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  ReturnValue = Destination;
> > > > > > > > -
> > > > > > > > -  while (*Source != 0 && Length > 0) {
> > > > > > > > -    *(Destination++) = *(Source++);
> > > > > > > > -    Length--;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  ZeroMem (Destination, Length * sizeof (*Destination));
> > > > > > > > -  return ReturnValue;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the length of a Null-terminated ASCII string.
> > > > > > > > @@ -1329,114 +883,6 @@ AsciiStrnCmp (
> > > > > > > >      return *FirstString - *SecondString;
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates one Null-terminated ASCII string to another Null-terminated
> > > > > > > > -  ASCII string, and returns the concatenated ASCII string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated ASCII strings. The contents of
> > > > > > > > -  Null-terminated ASCII string Source are concatenated to the end of Null-
> > > > > > > > -  terminated ASCII string Destination. The Null-terminated concatenated ASCII
> > > > > > > > -  String is returned.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and Destination contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and concatenating Destination and
> > > > > > > > -  Source results in a ASCII string with more than PcdMaximumAsciiStringLength
> > > > > > > > -  ASCII characters, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrCat (
> > > > > > > > -  IN OUT CHAR8    *Destination,
> > > > > > > > -  IN CONST CHAR8  *Source
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  AsciiStrCpy (Destination + AsciiStrLen (Destination), Source);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Size of the resulting string should never be zero.
> > > > > > > > -  // PcdMaximumUnicodeStringLength is tested inside StrLen().
> > > > > > > > -  //
> > > > > > > > -  ASSERT (AsciiStrSize (Destination) != 0);
> > > > > > > > -  return Destination;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates up to a specified length one Null-terminated ASCII string to
> > > > > > > > -  the end of another Null-terminated ASCII string, and returns the
> > > > > > > > -  concatenated ASCII string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated ASCII strings. The contents
> > > > > > > > -  of Null-terminated ASCII string Source are concatenated to the end of Null-
> > > > > > > > -  terminated ASCII string Destination, and Destination is returned. At most,
> > > > > > > > -  Length ASCII characters are concatenated from Source to the end of
> > > > > > > > -  Destination, and Destination is always Null-terminated. If Length is 0, then
> > > > > > > > -  Destination is returned unmodified. If Source and Destination overlap, then
> > > > > > > > -  the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Length > 0 and Destination is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumAsciiStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Destination contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and concatenating Destination and
> > > > > > > > -  Source results in a ASCII string with more than PcdMaximumAsciiStringLength
> > > > > > > > -  ASCII characters, not including the Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Length      The maximum number of ASCII characters to concatenate from
> > > > > > > > -                      Source.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrnCat (
> > > > > > > > -  IN OUT  CHAR8                     *Destination,
> > > > > > > > -  IN      CONST CHAR8               *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  UINTN   DestinationLen;
> > > > > > > > -
> > > > > > > > -  DestinationLen = AsciiStrLen (Destination);
> > > > > > > > -  AsciiStrnCpy (Destination + DestinationLen, Source, Length);
> > > > > > > > -  Destination[DestinationLen + Length] = '\0';
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Size of the resulting string should never be zero.
> > > > > > > > -  // PcdMaximumUnicodeStringLength is tested inside StrLen().
> > > > > > > > -  //
> > > > > > > > -  ASSERT (AsciiStrSize (Destination) != 0);
> > > > > > > > -  return Destination;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the first occurrence of a Null-terminated ASCII sub-string
> > > > > > > > @@ -1684,78 +1130,6 @@ AsciiStrHexToUint64 (
> > > > > > > >      return Result;
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Convert one Null-terminated ASCII string to a Null-terminated
> > > > > > > > -  Unicode string and returns the Unicode string.
> > > > > > > > -
> > > > > > > > -  This function converts the contents of the ASCII string Source to the Unicode
> > > > > > > > -  string Destination, and returns Destination.  The function terminates the
> > > > > > > > -  Unicode string Destination by appending a Null-terminator character at the end.
> > > > > > > > -  The caller is responsible to make sure Destination points to a buffer with size
> > > > > > > > -  equal or greater than ((AsciiStrLen (Source) + 1) * sizeof (CHAR16)) in bytes.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength ASCII characters not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Source        A pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Destination   A pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrToUnicodeStr (
> > > > > > > > -  IN      CONST CHAR8               *Source,
> > > > > > > > -  OUT     CHAR16                    *Destination
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  CHAR16                            *ReturnValue;
> > > > > > > > -
> > > > > > > > -  ASSERT (Destination != NULL);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // ASSERT Source is less long than PcdMaximumAsciiStringLength
> > > > > > > > -  //
> > > > > > > > -  ASSERT (AsciiStrSize (Source) != 0);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Source and Destination should not overlap
> > > > > > > > -  //
> > > > > > > > -  ASSERT ((UINTN) ((CHAR8 *) Destination - Source) > AsciiStrLen (Source));
> > > > > > > > -  ASSERT ((UINTN) (Source - (CHAR8 *) Destination) >= (AsciiStrSize (Source) * sizeof (CHAR16)));
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -  ReturnValue = Destination;
> > > > > > > > -  while (*Source != '\0') {
> > > > > > > > -    *(Destination++) = (CHAR16)(UINT8) *(Source++);
> > > > > > > > -  }
> > > > > > > > -  //
> > > > > > > > -  // End the Destination with a NULL.
> > > > > > > > -  //
> > > > > > > > -  *Destination = '\0';
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // ASSERT Original Destination is less long than PcdMaximumUnicodeStringLength
> > > > > > > > -  //
> > > > > > > > -  ASSERT (StrSize (ReturnValue) != 0);
> > > > > > > > -
> > > > > > > > -  return ReturnValue;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    STATIC CHAR8 EncodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
> > > > > > > >                                    "abcdefghijklmnopqrstuvwxyz"
> > > > > > > > diff --git a/MdePkg/Library/BasePcdLibNull/PcdLib.c b/MdePkg/Library/BasePcdLibNull/PcdLib.c
> > > > > > > > index 49447880ae8b..265fae5d7368 100644
> > > > > > > > --- a/MdePkg/Library/BasePcdLibNull/PcdLib.c
> > > > > > > > +++ b/MdePkg/Library/BasePcdLibNull/PcdLib.c
> > > > > > > > @@ -386,367 +386,6 @@ LibPcdGetExSize (
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet8 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet16 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet32 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet64 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value
> > > > > > > > -  specified by Buffer and SizeOfBuffer.  Buffer is returned.
> > > > > > > > -  If SizeOfBuffer is greater than the maximum size support by TokenNumber,
> > > > > > > > -  then set SizeOfBuffer to the maximum size supported by TokenNumber and
> > > > > > > > -  return NULL to indicate that the set operation was not actually performed.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the
> > > > > > > > -  maximum size supported by TokenName and NULL must be returned.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]      TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]      Buffer        A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer for the buffer been set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetPtr (
> > > > > > > > -  IN        UINTN             TokenNumber,
> > > > > > > > -  IN OUT    UINTN             *SizeOfBuffer,
> > > > > > > > -  IN CONST  VOID              *Buffer
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return NULL;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetBool (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return FALSE;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx8 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx16 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx32 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx64 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return 0;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value specified by
> > > > > > > > -  Buffer and SizeOfBuffer.  Buffer is returned.  If SizeOfBuffer is greater than
> > > > > > > > -  the maximum size support by TokenNumber, then set SizeOfBuffer to the maximum size
> > > > > > > > -  supported by TokenNumber and return NULL to indicate that the set operation
> > > > > > > > -  was not actually performed.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid              The pointer to a 128-bit unique value that
> > > > > > > > -                                designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber       The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]  Buffer            A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pinter to the buffer been set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExPtr (
> > > > > > > > -  IN      CONST GUID        *Guid,
> > > > > > > > -  IN      UINTN             TokenNumber,
> > > > > > > > -  IN OUT  UINTN             *SizeOfBuffer,
> > > > > > > > -  IN      VOID              *Buffer
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return NULL;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The Boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExBool (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (FALSE);
> > > > > > > > -
> > > > > > > > -  return FALSE;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      This function provides a means by which to set a value for a given PCD token.
> > > > > > > > 
> > > > > > > > diff --git a/MdePkg/Library/BasePrintLib/PrintLib.c b/MdePkg/Library/BasePrintLib/PrintLib.c
> > > > > > > > index af771652e4b0..8bfbab05f58c 100644
> > > > > > > > --- a/MdePkg/Library/BasePrintLib/PrintLib.c
> > > > > > > > +++ b/MdePkg/Library/BasePrintLib/PrintLib.c
> > > > > > > > @@ -343,65 +343,6 @@ UnicodeSPrintAsciiFormat (
> > > > > > > >      return NumberOfPrinted;
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Converts a decimal value to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  Converts the decimal number specified by Value to a Null-terminated Unicode
> > > > > > > > -  string specified by Buffer containing at most Width characters. No padding of spaces
> > > > > > > > -  is ever performed. If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
> > > > > > > > -  The number of Unicode characters in Buffer is returned not including the Null-terminator.
> > > > > > > > -  If the conversion contains more than Width characters, then only the first
> > > > > > > > -  Width characters are returned, and the total number of characters
> > > > > > > > -  required to perform the conversion is returned.
> > > > > > > > -  Additional conversion parameters are specified in Flags.
> > > > > > > > -
> > > > > > > > -  The Flags bit LEFT_JUSTIFY is always ignored.
> > > > > > > > -  All conversions are left justified in Buffer.
> > > > > > > > -  If Width is 0, PREFIX_ZERO is ignored in Flags.
> > > > > > > > -  If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas
> > > > > > > > -  are inserted every 3rd digit starting from the right.
> > > > > > > > -  If RADIX_HEX is set in Flags, then the output buffer will be
> > > > > > > > -  formatted in hexadecimal format.
> > > > > > > > -  If Value is < 0 and RADIX_HEX is not set in Flags, then the fist character in Buffer is a '-'.
> > > > > > > > -  If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,
> > > > > > > > -  then Buffer is padded with '0' characters so the combination of the optional '-'
> > > > > > > > -  sign character, '0' characters, digit characters for Value, and the Null-terminator
> > > > > > > > -  add up to Width characters.
> > > > > > > > -  If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().
> > > > > > > > -  If Buffer is NULL, then ASSERT().
> > > > > > > > -  If Buffer is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If unsupported bits are set in Flags, then ASSERT().
> > > > > > > > -  If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().
> > > > > > > > -  If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()
> > > > > > > > -
> > > > > > > > -  @param  Buffer  The pointer to the output buffer for the produced Null-terminated
> > > > > > > > -                  Unicode string.
> > > > > > > > -  @param  Flags   The bitmask of flags that specify left justification, zero pad, and commas.
> > > > > > > > -  @param  Value   The 64-bit signed value to convert to a string.
> > > > > > > > -  @param  Width   The maximum number of Unicode characters to place in Buffer, not including
> > > > > > > > -                  the Null-terminator.
> > > > > > > > -
> > > > > > > > -  @return The number of Unicode characters in Buffer not including the Null-terminator.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINTN
> > > > > > > > -EFIAPI
> > > > > > > > -UnicodeValueToString (
> > > > > > > > -  IN OUT CHAR16  *Buffer,
> > > > > > > > -  IN UINTN       Flags,
> > > > > > > > -  IN INT64       Value,
> > > > > > > > -  IN UINTN       Width
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT_UNICODE_BUFFER(Buffer);
> > > > > > > > -  return BasePrintLibConvertValueToString ((CHAR8 *)Buffer, Flags, Value, Width, 2);
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Converts a decimal value to a Null-terminated Unicode string.
> > > > > > > > @@ -780,65 +721,6 @@ AsciiSPrintUnicodeFormat (
> > > > > > > >      return NumberOfPrinted;
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Converts a decimal value to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  Converts the decimal number specified by Value to a Null-terminated ASCII string
> > > > > > > > -  specified by Buffer containing at most Width characters. No padding of spaces
> > > > > > > > -  is ever performed.
> > > > > > > > -  If Width is 0 then a width of  MAXIMUM_VALUE_CHARACTERS is assumed.
> > > > > > > > -  The number of ASCII characters in Buffer is returned not including the Null-terminator.
> > > > > > > > -  If the conversion contains more than Width characters, then only the first Width
> > > > > > > > -  characters are returned, and the total number of characters required to perform
> > > > > > > > -  the conversion is returned.
> > > > > > > > -  Additional conversion parameters are specified in Flags.
> > > > > > > > -  The Flags bit LEFT_JUSTIFY is always ignored.
> > > > > > > > -  All conversions are left justified in Buffer.
> > > > > > > > -  If Width is 0, PREFIX_ZERO is ignored in Flags.
> > > > > > > > -  If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas
> > > > > > > > -  are inserted every 3rd digit starting from the right.
> > > > > > > > -  If RADIX_HEX is set in Flags, then the output buffer will be
> > > > > > > > -  formatted in hexadecimal format.
> > > > > > > > -  If Value is < 0 and RADIX_HEX is not set in Flags, then the fist character in Buffer is a '-'.
> > > > > > > > -  If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,
> > > > > > > > -  then Buffer is padded with '0' characters so the combination of the optional '-'
> > > > > > > > -  sign character, '0' characters, digit characters for Value, and the Null-terminator
> > > > > > > > -  add up to Width characters.
> > > > > > > > -
> > > > > > > > -  If Buffer is NULL, then ASSERT().
> > > > > > > > -  If unsupported bits are set in Flags, then ASSERT().
> > > > > > > > -  If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().
> > > > > > > > -  If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()
> > > > > > > > -
> > > > > > > > -  @param  Buffer  The pointer to the output buffer for the produced Null-terminated
> > > > > > > > -                  ASCII string.
> > > > > > > > -  @param  Flags   The bitmask of flags that specify left justification, zero pad, and commas.
> > > > > > > > -  @param  Value   The 64-bit signed value to convert to a string.
> > > > > > > > -  @param  Width   The maximum number of ASCII characters to place in Buffer, not including
> > > > > > > > -                  the Null-terminator.
> > > > > > > > -
> > > > > > > > -  @return The number of ASCII characters in Buffer not including the Null-terminator.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINTN
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiValueToString (
> > > > > > > > -  OUT CHAR8      *Buffer,
> > > > > > > > -  IN  UINTN      Flags,
> > > > > > > > -  IN  INT64      Value,
> > > > > > > > -  IN  UINTN      Width
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  return BasePrintLibConvertValueToString (Buffer, Flags, Value, Width, 1);
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Converts a decimal value to a Null-terminated Ascii string.
> > > > > > > > 
> > > > > > > > diff --git a/MdePkg/Library/DxePcdLib/DxePcdLib.c b/MdePkg/Library/DxePcdLib/DxePcdLib.c
> > > > > > > > index 6e3e4e70697f..2accaeda2cd6 100644
> > > > > > > > --- a/MdePkg/Library/DxePcdLib/DxePcdLib.c
> > > > > > > > +++ b/MdePkg/Library/DxePcdLib/DxePcdLib.c
> > > > > > > > @@ -474,405 +474,6 @@ LibPcdGetExSize (
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet8 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  GetPcdProtocol()->Set8 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet16 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  GetPcdProtocol()->Set16 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet32 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  GetPcdProtocol()->Set32 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet64 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  GetPcdProtocol()->Set64 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value
> > > > > > > > -  specified by Buffer and SizeOfBuffer.  Buffer is returned.
> > > > > > > > -  If SizeOfBuffer is greater than the maximum size support by TokenNumber,
> > > > > > > > -  then set SizeOfBuffer to the maximum size supported by TokenNumber and
> > > > > > > > -  return NULL to indicate that the set operation was not actually performed.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the
> > > > > > > > -  maximum size supported by TokenName and NULL must be returned.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]      TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]      Buffer        A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer for the buffer been set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetPtr (
> > > > > > > > -  IN        UINTN             TokenNumber,
> > > > > > > > -  IN OUT    UINTN             *SizeOfBuffer,
> > > > > > > > -  IN CONST  VOID              *Buffer
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  EFI_STATUS Status;
> > > > > > > > -  UINTN      InputSizeOfBuffer;
> > > > > > > > -
> > > > > > > > -  ASSERT (SizeOfBuffer != NULL);
> > > > > > > > -
> > > > > > > > -  if (*SizeOfBuffer > 0) {
> > > > > > > > -    ASSERT (Buffer != NULL);
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  InputSizeOfBuffer = *SizeOfBuffer;
> > > > > > > > -  Status = GetPcdProtocol()->SetPtr (TokenNumber, SizeOfBuffer, (VOID *) Buffer);
> > > > > > > > -  if (EFI_ERROR (Status) && (*SizeOfBuffer < InputSizeOfBuffer)) {
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  return (VOID *)Buffer;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetBool (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  GetPcdProtocol()->SetBool (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx8 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  GetPiPcdProtocol()->Set8 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx16 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  GetPiPcdProtocol()->Set16 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx32 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  GetPiPcdProtocol()->Set32 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx64 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  GetPiPcdProtocol()->Set64 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value specified by
> > > > > > > > -  Buffer and SizeOfBuffer.  Buffer is returned.  If SizeOfBuffer is greater than
> > > > > > > > -  the maximum size support by TokenNumber, then set SizeOfBuffer to the maximum size
> > > > > > > > -  supported by TokenNumber and return NULL to indicate that the set operation
> > > > > > > > -  was not actually performed.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid              The pointer to a 128-bit unique value that
> > > > > > > > -                                designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber       The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]  Buffer            A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer to the buffer been set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExPtr (
> > > > > > > > -  IN      CONST GUID        *Guid,
> > > > > > > > -  IN      UINTN             TokenNumber,
> > > > > > > > -  IN OUT  UINTN             *SizeOfBuffer,
> > > > > > > > -  IN      VOID              *Buffer
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  EFI_STATUS  Status;
> > > > > > > > -  UINTN       InputSizeOfBuffer;
> > > > > > > > -
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  ASSERT (SizeOfBuffer != NULL);
> > > > > > > > -
> > > > > > > > -  if (*SizeOfBuffer > 0) {
> > > > > > > > -    ASSERT (Buffer != NULL);
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  InputSizeOfBuffer = *SizeOfBuffer;
> > > > > > > > -  Status = GetPiPcdProtocol()->SetPtr (Guid, TokenNumber, SizeOfBuffer, Buffer);
> > > > > > > > -  if (EFI_ERROR (Status) && (*SizeOfBuffer < InputSizeOfBuffer)) {
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  return Buffer;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The Boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExBool (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  GetPiPcdProtocol()->SetBool (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      This function provides a means by which to set a value for a given PCD token.
> > > > > > > > 
> > > > > > > > diff --git a/MdePkg/Library/PeiPcdLib/PeiPcdLib.c b/MdePkg/Library/PeiPcdLib/PeiPcdLib.c
> > > > > > > > index 916a2c0844eb..d979b28cc8dd 100644
> > > > > > > > --- a/MdePkg/Library/PeiPcdLib/PeiPcdLib.c
> > > > > > > > +++ b/MdePkg/Library/PeiPcdLib/PeiPcdLib.c
> > > > > > > > @@ -474,403 +474,6 @@ LibPcdGetExSize (
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet8 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  (GetPcdPpiPointer ())->Set8 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet16 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  (GetPcdPpiPointer ())->Set16 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet32 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  (GetPcdPpiPointer ())->Set32 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet64 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  (GetPcdPpiPointer ())->Set64 (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value
> > > > > > > > -  specified by Buffer and SizeOfBuffer.  Buffer is returned.
> > > > > > > > -  If SizeOfBuffer is greater than the maximum size support by TokenNumber,
> > > > > > > > -  then set SizeOfBuffer to the maximum size supported by TokenNumber and
> > > > > > > > -  return NULL to indicate that the set operation was not actually performed.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the
> > > > > > > > -  maximum size supported by TokenName and NULL must be returned.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]      TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]      Buffer        A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer for the buffer been set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetPtr (
> > > > > > > > -  IN        UINTN             TokenNumber,
> > > > > > > > -  IN OUT    UINTN             *SizeOfBuffer,
> > > > > > > > -  IN CONST  VOID              *Buffer
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  EFI_STATUS Status;
> > > > > > > > -  UINTN      InputSizeOfBuffer;
> > > > > > > > -
> > > > > > > > -  ASSERT (SizeOfBuffer != NULL);
> > > > > > > > -
> > > > > > > > -  if (*SizeOfBuffer > 0) {
> > > > > > > > -    ASSERT (Buffer != NULL);
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  InputSizeOfBuffer = *SizeOfBuffer;
> > > > > > > > -  Status = (GetPcdPpiPointer ())->SetPtr (TokenNumber, SizeOfBuffer, (VOID *) Buffer);
> > > > > > > > -  if (EFI_ERROR (Status) && (*SizeOfBuffer < InputSizeOfBuffer)) {
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  return (VOID *) Buffer;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetBool (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  (GetPcdPpiPointer ())->SetBool (TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx8 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  (GetPiPcdPpiPointer ())->Set8 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx16 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  (GetPiPcdPpiPointer ())->Set16 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx32 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  (GetPiPcdPpiPointer ())->Set32 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx64 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  (GetPiPcdPpiPointer ())->Set64 (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value specified by
> > > > > > > > -  Buffer and SizeOfBuffer.  Buffer is returned.  If SizeOfBuffer is greater than
> > > > > > > > -  the maximum size support by TokenNumber, then set SizeOfBuffer to the maximum size
> > > > > > > > -  supported by TokenNumber and return NULL to indicate that the set operation
> > > > > > > > -  was not actually performed.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid              The pointer to a 128-bit unique value that
> > > > > > > > -                                designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber       The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]  Buffer            A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pinter to the buffer been set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExPtr (
> > > > > > > > -  IN      CONST GUID        *Guid,
> > > > > > > > -  IN      UINTN             TokenNumber,
> > > > > > > > -  IN OUT  UINTN             *SizeOfBuffer,
> > > > > > > > -  IN      VOID              *Buffer
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  EFI_STATUS      Status;
> > > > > > > > -  UINTN           InputSizeOfBuffer;
> > > > > > > > -
> > > > > > > > -  ASSERT (SizeOfBuffer != NULL);
> > > > > > > > -  if (*SizeOfBuffer > 0) {
> > > > > > > > -    ASSERT (Buffer != NULL);
> > > > > > > > -  }
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  InputSizeOfBuffer = *SizeOfBuffer;
> > > > > > > > -  Status = (GetPiPcdPpiPointer ())->SetPtr (Guid, TokenNumber, SizeOfBuffer, Buffer);
> > > > > > > > -  if (EFI_ERROR (Status) && (*SizeOfBuffer < InputSizeOfBuffer)) {
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  return Buffer;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          The pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The Boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExBool (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  (GetPiPcdPpiPointer ())->SetBool (Guid, TokenNumber, Value);
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      This function provides a means by which to set a value for a given PCD token.
> > > > > > > > 
> > > > > > > > diff --git a/MdePkg/Library/UefiLib/UefiLib.c b/MdePkg/Library/UefiLib/UefiLib.c
> > > > > > > > index 07c45d1e91ff..835218f9824f 100644
> > > > > > > > --- a/MdePkg/Library/UefiLib/UefiLib.c
> > > > > > > > +++ b/MdePkg/Library/UefiLib/UefiLib.c
> > > > > > > > @@ -1285,98 +1285,6 @@ FreeUnicodeStringTable (
> > > > > > > >      return EFI_SUCCESS;
> > > > > > > >    }
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Returns a pointer to an allocated buffer that contains the contents of a
> > > > > > > > -  variable retrieved through the UEFI Runtime Service GetVariable().  The
> > > > > > > > -  returned buffer is allocated using AllocatePool().  The caller is responsible
> > > > > > > > -  for freeing this buffer with FreePool().
> > > > > > > > -
> > > > > > > > -  If Name is NULL, then ASSERT().
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Name  The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param[in]  Guid  The pointer to an EFI_GUID structure
> > > > > > > > -
> > > > > > > > -  @retval NULL   The variable could not be retrieved.
> > > > > > > > -  @retval NULL   There are not enough resources available for the variable contents.
> > > > > > > > -  @retval Other  A pointer to allocated buffer containing the variable contents.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -GetVariable (
> > > > > > > > -  IN CONST CHAR16    *Name,
> > > > > > > > -  IN CONST EFI_GUID  *Guid
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  EFI_STATUS  Status;
> > > > > > > > -  UINTN       Size;
> > > > > > > > -  VOID        *Value;
> > > > > > > > -
> > > > > > > > -  ASSERT (Name != NULL);
> > > > > > > > -  ASSERT (Guid != NULL);
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Try to get the variable size.
> > > > > > > > -  //
> > > > > > > > -  Value = NULL;
> > > > > > > > -  Size = 0;
> > > > > > > > -  Status = gRT->GetVariable ((CHAR16 *) Name, (EFI_GUID *) Guid, NULL, &Size, Value);
> > > > > > > > -  if (Status != EFI_BUFFER_TOO_SMALL) {
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Allocate buffer to get the variable.
> > > > > > > > -  //
> > > > > > > > -  Value = AllocatePool (Size);
> > > > > > > > -  if (Value == NULL) {
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  //
> > > > > > > > -  // Get the variable data.
> > > > > > > > -  //
> > > > > > > > -  Status = gRT->GetVariable ((CHAR16 *) Name, (EFI_GUID *) Guid, NULL, &Size, Value);
> > > > > > > > -  if (EFI_ERROR (Status)) {
> > > > > > > > -    FreePool(Value);
> > > > > > > > -    return NULL;
> > > > > > > > -  }
> > > > > > > > -
> > > > > > > > -  return Value;
> > > > > > > > -}
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Returns a pointer to an allocated buffer that contains the contents of a
> > > > > > > > -  variable retrieved through the UEFI Runtime Service GetVariable().  This
> > > > > > > > -  function always uses the EFI_GLOBAL_VARIABLE GUID to retrieve variables.
> > > > > > > > -  The returned buffer is allocated using AllocatePool().  The caller is
> > > > > > > > -  responsible for freeing this buffer with FreePool().
> > > > > > > > -
> > > > > > > > -  If Name is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Name  The pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @retval NULL   The variable could not be retrieved.
> > > > > > > > -  @retval NULL   There are not enough resources available for the variable contents.
> > > > > > > > -  @retval Other  A pointer to allocated buffer containing the variable contents.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -GetEfiGlobalVariable (
> > > > > > > > -  IN CONST CHAR16  *Name
> > > > > > > > -  )
> > > > > > > > -{
> > > > > > > > -  return GetVariable (Name, &gEfiGlobalVariableGuid);
> > > > > > > > -}
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the status whether get the variable success. The function retrieves
> > > > > > > > diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
> > > > > > > > index 8e7b87cbda4e..b92a1a3a4028 100644
> > > > > > > > --- a/MdePkg/Include/Library/BaseLib.h
> > > > > > > > +++ b/MdePkg/Include/Library/BaseLib.h
> > > > > > > > @@ -962,82 +962,6 @@ AsciiStrHexToUint64S (
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies one Null-terminated Unicode string to another Null-terminated Unicode
> > > > > > > > -  string and returns the new Unicode string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the Unicode string Source to the Unicode
> > > > > > > > -  string Destination, and returns Destination. If Source and Destination
> > > > > > > > -  overlap, then the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrCpy (
> > > > > > > > -  OUT     CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies up to a specified length from one Null-terminated Unicode string to
> > > > > > > > -  another Null-terminated Unicode string and returns the new Unicode string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the Unicode string Source to the Unicode
> > > > > > > > -  string Destination, and returns Destination. At most, Length Unicode
> > > > > > > > -  characters are copied from Source to Destination. If Length is 0, then
> > > > > > > > -  Destination is returned unmodified. If Length is greater that the number of
> > > > > > > > -  Unicode characters in Source, then Destination is padded with Null Unicode
> > > > > > > > -  characters. If Source and Destination overlap, then the results are
> > > > > > > > -  undefined.
> > > > > > > > -
> > > > > > > > -  If Length > 0 and Destination is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumUnicodeStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Length      The maximum number of Unicode characters to copy.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrnCpy (
> > > > > > > > -  OUT     CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  );
> > > > > > > > -#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Returns the length of a Null-terminated Unicode string.
> > > > > > > > 
> > > > > > > > @@ -1164,99 +1088,6 @@ StrnCmp (
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates one Null-terminated Unicode string to another Null-terminated
> > > > > > > > -  Unicode string, and returns the concatenated Unicode string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated Unicode strings. The contents
> > > > > > > > -  of Null-terminated Unicode string Source are concatenated to the end of
> > > > > > > > -  Null-terminated Unicode string Destination. The Null-terminated concatenated
> > > > > > > > -  Unicode String is returned. If Source and Destination overlap, then the
> > > > > > > > -  results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Destination contains more
> > > > > > > > -  than PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and concatenating Destination
> > > > > > > > -  and Source results in a Unicode string with more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrCat (
> > > > > > > > -  IN OUT  CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates up to a specified length one Null-terminated Unicode to the end
> > > > > > > > -  of another Null-terminated Unicode string, and returns the concatenated
> > > > > > > > -  Unicode string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated Unicode strings. The contents
> > > > > > > > -  of Null-terminated Unicode string Source are concatenated to the end of
> > > > > > > > -  Null-terminated Unicode string Destination, and Destination is returned. At
> > > > > > > > -  most, Length Unicode characters are concatenated from Source to the end of
> > > > > > > > -  Destination, and Destination is always Null-terminated. If Length is 0, then
> > > > > > > > -  Destination is returned unmodified. If Source and Destination overlap, then
> > > > > > > > -  the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumUnicodeStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Destination contains more
> > > > > > > > -  than PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength Unicode characters, not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and concatenating Destination
> > > > > > > > -  and Source results in a Unicode string with more than PcdMaximumUnicodeStringLength
> > > > > > > > -  Unicode characters, not including the Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Length      The maximum number of Unicode characters to concatenate from
> > > > > > > > -                      Source.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -StrnCat (
> > > > > > > > -  IN OUT  CHAR16                    *Destination,
> > > > > > > > -  IN      CONST CHAR16              *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  );
> > > > > > > > -#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Returns the first occurrence of a Null-terminated Unicode sub-string
> > > > > > > >      in a Null-terminated Unicode string.
> > > > > > > > @@ -1655,51 +1486,6 @@ StrHexToBytes (
> > > > > > > >      IN  UINTN              MaxBufferSize
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Convert a Null-terminated Unicode string to a Null-terminated
> > > > > > > > -  ASCII string and returns the ASCII string.
> > > > > > > > -
> > > > > > > > -  This function converts the content of the Unicode string Source
> > > > > > > > -  to the ASCII string Destination by copying the lower 8 bits of
> > > > > > > > -  each Unicode character. It returns Destination.
> > > > > > > > -
> > > > > > > > -  The caller is responsible to make sure Destination points to a buffer with size
> > > > > > > > -  equal or greater than ((StrLen (Source) + 1) * sizeof (CHAR8)) in bytes.
> > > > > > > > -
> > > > > > > > -  If any Unicode characters in Source contain non-zero value in
> > > > > > > > -  the upper 8 bits, then ASSERT().
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains
> > > > > > > > -  more than PcdMaximumUnicodeStringLength Unicode characters not including
> > > > > > > > -  the Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more
> > > > > > > > -  than PcdMaximumAsciiStringLength Unicode characters not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Source        The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param  Destination   The pointer to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -UnicodeStrToAsciiStr (
> > > > > > > > -  IN      CONST CHAR16              *Source,
> > > > > > > > -  OUT     CHAR8                     *Destination
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Convert a Null-terminated Unicode string to a Null-terminated
> > > > > > > > @@ -1802,76 +1588,6 @@ UnicodeStrnToAsciiStrS (
> > > > > > > >      OUT     UINTN                     *DestinationLength
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies one Null-terminated ASCII string to another Null-terminated ASCII
> > > > > > > > -  string and returns the new ASCII string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the ASCII string Source to the ASCII
> > > > > > > > -  string Destination, and returns Destination. If Source and Destination
> > > > > > > > -  overlap, then the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrCpy (
> > > > > > > > -  OUT     CHAR8                     *Destination,
> > > > > > > > -  IN      CONST CHAR8               *Source
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Copies up to a specified length one Null-terminated ASCII string to another
> > > > > > > > -  Null-terminated ASCII string and returns the new ASCII string.
> > > > > > > > -
> > > > > > > > -  This function copies the contents of the ASCII string Source to the ASCII
> > > > > > > > -  string Destination, and returns Destination. At most, Length ASCII characters
> > > > > > > > -  are copied from Source to Destination. If Length is 0, then Destination is
> > > > > > > > -  returned unmodified. If Length is greater that the number of ASCII characters
> > > > > > > > -  in Source, then Destination is padded with Null ASCII characters. If Source
> > > > > > > > -  and Destination overlap, then the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumAsciiStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Length      The maximum number of ASCII characters to copy.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrnCpy (
> > > > > > > > -  OUT     CHAR8                     *Destination,
> > > > > > > > -  IN      CONST CHAR8               *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  );
> > > > > > > > -#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the length of a Null-terminated ASCII string.
> > > > > > > > @@ -2031,92 +1747,6 @@ AsciiStrnCmp (
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates one Null-terminated ASCII string to another Null-terminated
> > > > > > > > -  ASCII string, and returns the concatenated ASCII string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated ASCII strings. The contents of
> > > > > > > > -  Null-terminated ASCII string Source are concatenated to the end of Null-
> > > > > > > > -  terminated ASCII string Destination. The Null-terminated concatenated ASCII
> > > > > > > > -  String is returned.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and Destination contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero and concatenating Destination and
> > > > > > > > -  Source results in a ASCII string with more than PcdMaximumAsciiStringLength
> > > > > > > > -  ASCII characters, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrCat (
> > > > > > > > -  IN OUT CHAR8    *Destination,
> > > > > > > > -  IN CONST CHAR8  *Source
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Concatenates up to a specified length one Null-terminated ASCII string to
> > > > > > > > -  the end of another Null-terminated ASCII string, and returns the
> > > > > > > > -  concatenated ASCII string.
> > > > > > > > -
> > > > > > > > -  This function concatenates two Null-terminated ASCII strings. The contents
> > > > > > > > -  of Null-terminated ASCII string Source are concatenated to the end of Null-
> > > > > > > > -  terminated ASCII string Destination, and Destination is returned. At most,
> > > > > > > > -  Length ASCII characters are concatenated from Source to the end of
> > > > > > > > -  Destination, and Destination is always Null-terminated. If Length is 0, then
> > > > > > > > -  Destination is returned unmodified. If Source and Destination overlap, then
> > > > > > > > -  the results are undefined.
> > > > > > > > -
> > > > > > > > -  If Length > 0 and Destination is NULL, then ASSERT().
> > > > > > > > -  If Length > 0 and Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Length is greater than
> > > > > > > > -  PcdMaximumAsciiStringLength, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Destination contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters, not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and concatenating Destination and
> > > > > > > > -  Source results in a ASCII string with more than PcdMaximumAsciiStringLength
> > > > > > > > -  ASCII characters, not including the Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Destination The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Source      The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Length      The maximum number of ASCII characters to concatenate from
> > > > > > > > -                      Source.
> > > > > > > > -
> > > > > > > > -  @return Destination
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR8 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrnCat (
> > > > > > > > -  IN OUT  CHAR8                     *Destination,
> > > > > > > > -  IN      CONST CHAR8               *Source,
> > > > > > > > -  IN      UINTN                     Length
> > > > > > > > -  );
> > > > > > > > -#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Returns the first occurrence of a Null-terminated ASCII sub-string
> > > > > > > >      in a Null-terminated ASCII string.
> > > > > > > > @@ -2496,45 +2126,6 @@ AsciiStrHexToBytes (
> > > > > > > >      IN  UINTN              MaxBufferSize
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Convert one Null-terminated ASCII string to a Null-terminated
> > > > > > > > -  Unicode string and returns the Unicode string.
> > > > > > > > -
> > > > > > > > -  This function converts the contents of the ASCII string Source to the Unicode
> > > > > > > > -  string Destination, and returns Destination.  The function terminates the
> > > > > > > > -  Unicode string Destination by appending a Null-terminator character at the end.
> > > > > > > > -  The caller is responsible to make sure Destination points to a buffer with size
> > > > > > > > -  equal or greater than ((AsciiStrLen (Source) + 1) * sizeof (CHAR16)) in bytes.
> > > > > > > > -
> > > > > > > > -  If Destination is NULL, then ASSERT().
> > > > > > > > -  If Destination is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If Source is NULL, then ASSERT().
> > > > > > > > -  If Source and Destination overlap, then ASSERT().
> > > > > > > > -  If PcdMaximumAsciiStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator,
> > > > > > > > -  then ASSERT().
> > > > > > > > -  If PcdMaximumUnicodeStringLength is not zero, and Source contains more than
> > > > > > > > -  PcdMaximumUnicodeStringLength ASCII characters not including the
> > > > > > > > -  Null-terminator, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param  Source        The pointer to a Null-terminated ASCII string.
> > > > > > > > -  @param  Destination   The pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @return Destination.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -CHAR16 *
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiStrToUnicodeStr (
> > > > > > > > -  IN      CONST CHAR8               *Source,
> > > > > > > > -  OUT     CHAR16                    *Destination
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -#endif // !defined (DISABLE_NEW_DEPRECATED_INTERFACES)
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Convert one Null-terminated ASCII string to a Null-terminated
> > > > > > > > diff --git a/MdePkg/Include/Library/PcdLib.h b/MdePkg/Include/Library/PcdLib.h
> > > > > > > > index f09053e3cb86..71738857ad19 100644
> > > > > > > > --- a/MdePkg/Include/Library/PcdLib.h
> > > > > > > > +++ b/MdePkg/Include/Library/PcdLib.h
> > > > > > > > @@ -481,106 +481,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> > > > > > > >    **/
> > > > > > > >    #define PcdGetExSize(Guid, TokenName) LibPcdGetExSize ((Guid), PcdTokenEx(Guid,TokenName))
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -/**
> > > > > > > > -  Sets an 8-bit PCD token value based on a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space, then the module will not build.
> > > > > > > > -
> > > > > > > > -  @param   TokenName  The name of the PCD token to retrieve a current value for.
> > > > > > > > -  @param   Value      The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSet8(TokenName, Value)           _PCD_SET_MODE_8_##TokenName     ((Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a 16-bit PCD token value based on a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space, then the module will not build.
> > > > > > > > -
> > > > > > > > -  @param   TokenName  The name of the PCD token to retrieve a current value for.
> > > > > > > > -  @param   Value      The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSet16(TokenName, Value)          _PCD_SET_MODE_16_##TokenName    ((Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a 32-bit PCD token value based on a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space, then the module will not build.
> > > > > > > > -
> > > > > > > > -  @param   TokenName  The name of the PCD token to retrieve a current value for.
> > > > > > > > -  @param   Value      The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSet32(TokenName, Value)          _PCD_SET_MODE_32_##TokenName    ((Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a 64-bit PCD token value based on a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space, then the module will not build.
> > > > > > > > -
> > > > > > > > -  @param   TokenName  The name of the PCD token to retrieve a current value for.
> > > > > > > > -  @param   Value      The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSet64(TokenName, Value)          _PCD_SET_MODE_64_##TokenName    ((Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a pointer to a PCD token buffer based on a token name.
> > > > > > > > -
> > > > > > > > -  Sets the buffer for the token specified by TokenName. Buffer is returned.
> > > > > > > > -  If SizeOfBuffer is greater than the maximum size supported by TokenName,
> > > > > > > > -  then set SizeOfBuffer to the maximum size supported by TokenName and return NULL
> > > > > > > > -  to indicate that the set operation was not actually performed.  If SizeOfBuffer
> > > > > > > > -  is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size supported
> > > > > > > > -  by TokenName and NULL must be returned.
> > > > > > > > -  If TokenName is not a valid token in the token space, then the module will not build.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   TokenName      The name of the PCD token to set the current value for.
> > > > > > > > -  @param   SizeOfBuffer   A pointer to the size, in bytes, of Buffer.
> > > > > > > > -  @param   Buffer         A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer to the Buffer that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetPtr(TokenName, SizeOfBuffer, Buffer) \
> > > > > > > > -                                            _PCD_SET_MODE_PTR_##TokenName   ((SizeOfBuffer), (Buffer))
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a Boolean PCD token value based on a token name.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space, then the module will not build.
> > > > > > > > -
> > > > > > > > -  @param   TokenName      The name of the PCD token to set the current value for.
> > > > > > > > -  @param   Buffer         The Boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetBool(TokenName, Value)        _PCD_SET_MODE_BOOL_##TokenName  ((Value))
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Sets a 8-bit PCD token value based on a token name.
> > > > > > > > 
> > > > > > > > @@ -806,137 +706,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -/**
> > > > > > > > -  Sets an 8-bit PCD token value based on a GUID and a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by Guid and TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space specified by Guid,
> > > > > > > > -  then the module will not build.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   Guid        Pointer to a 128-bit unique value that designates
> > > > > > > > -                       which namespace to retrieve a value from.
> > > > > > > > -  @param   TokenName   The name of the PCD token to set the current value for.
> > > > > > > > -  @param   Value       The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetEx8(Guid, TokenName, Value)   LibPcdSetEx8   ((Guid), PcdTokenEx(Guid,TokenName), (Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a 16-bit PCD token value based on a GUID and a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by Guid and TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space specified by Guid,
> > > > > > > > -  then the module will not build.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   Guid        Pointer to a 128-bit unique value that designates
> > > > > > > > -                       which namespace to retrieve a value from.
> > > > > > > > -  @param   TokenName   The name of the PCD token to set the current value for.
> > > > > > > > -  @param   Value       The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetEx16(Guid, TokenName, Value)  LibPcdSetEx16  ((Guid), PcdTokenEx(Guid,TokenName), (Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a 32-bit PCD token value based on a GUID and a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by Guid and TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space specified by Guid,
> > > > > > > > -  then the module will not build.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   Guid        Pointer to a 128-bit unique value that designates
> > > > > > > > -                       which namespace to retrieve a value from.
> > > > > > > > -  @param   TokenName   The name of the PCD token to set the current value for.
> > > > > > > > -  @param   Value       The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetEx32(Guid, TokenName, Value)  LibPcdSetEx32  ((Guid), PcdTokenEx(Guid,TokenName), (Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a 64-bit PCD token value based on a GUID and a token name.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by Guid and TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space specified by Guid,
> > > > > > > > -  then the module will not build.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   Guid        Pointer to a 128-bit unique value that designates
> > > > > > > > -  which namespace to retrieve a value from.
> > > > > > > > -  @param   TokenName   The name of the PCD token to set the current value for.
> > > > > > > > -  @param   Value       The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetEx64(Guid, TokenName, Value)  LibPcdSetEx64  ((Guid), PcdTokenEx(Guid,TokenName), (Value))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a pointer to a PCD token buffer based on a GUID and a token name.
> > > > > > > > -
> > > > > > > > -  Sets the buffer for the token specified by Guid and TokenName. Buffer is returned.
> > > > > > > > -  If SizeOfBuffer is greater than the maximum size supported by Guid and TokenName,
> > > > > > > > -  then set SizeOfBuffer to the maximum size supported by Guid and TokenName and return
> > > > > > > > -  NULL to indicate that the set operation was not actually performed. If SizeOfBuffer
> > > > > > > > -  is set to MAX_ADDRESS, then SizeOfBuffer must be set to the maximum size supported by
> > > > > > > > -  Guid and TokenName and NULL must be returned.
> > > > > > > > -  If TokenName is not a valid token in the token space specified by Guid,
> > > > > > > > -  then the module will not build.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   Guid           Pointer to a 128-bit unique value that designates
> > > > > > > > -                          which namespace to retrieve a value from.
> > > > > > > > -  @param   TokenName      The name of the PCD token to set the current value for.
> > > > > > > > -  @param   SizeOfBuffer   A pointer to the size, in bytes, of Buffer.
> > > > > > > > -  @param   Buffer         Pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer to the Buffer that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetExPtr(Guid, TokenName, SizeOfBuffer, Buffer) \
> > > > > > > > -                                            LibPcdSetExPtr ((Guid), PcdTokenEx(Guid,TokenName), (SizeOfBuffer), (Buffer))
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  Sets a Boolean PCD token value based on a GUID and a token name.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by Guid and TokenName. Value is returned.
> > > > > > > > -  If TokenName is not a valid token in the token space specified by Guid,
> > > > > > > > -  then the module will not build.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param   Guid           Pointer to a 128-bit unique value that designates
> > > > > > > > -                          which namespace to retrieve a value from.
> > > > > > > > -  @param   TokenName      The name of the PCD token to set the current value for.
> > > > > > > > -  @param   Value          The Boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -#define PcdSetExBool(Guid, TokenName, Value) \
> > > > > > > > -                                            LibPcdSetExBool((Guid), PcdTokenEx(Guid,TokenName), (Value))
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Sets an 8-bit PCD token value based on a GUID and a token name.
> > > > > > > > 
> > > > > > > > @@ -1348,295 +1117,6 @@ LibPcdGetExSize (
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet8 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet16 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet32 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSet64 (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value
> > > > > > > > -  specified by Buffer and SizeOfBuffer.  Buffer is returned.
> > > > > > > > -  If SizeOfBuffer is greater than the maximum size support by TokenNumber,
> > > > > > > > -  then set SizeOfBuffer to the maximum size supported by TokenNumber and
> > > > > > > > -  return NULL to indicate that the set operation was not actually performed.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is set to MAX_ADDRESS, then SizeOfBuffer must be set to the
> > > > > > > > -  maximum size supported by TokenName and NULL must be returned.
> > > > > > > > -
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]      TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]      Buffer        A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer for the Buffer that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetPtr (
> > > > > > > > -  IN        UINTN             TokenNumber,
> > > > > > > > -  IN OUT    UINTN             *SizeOfBuffer,
> > > > > > > > -  IN CONST  VOID              *Buffer
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber
> > > > > > > > -  to the value specified by Value.  Value is returned.
> > > > > > > > -
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetBool (
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 8-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          Pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 8-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT8
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx8 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT8             Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 16-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          Pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 16-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT16
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx16 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT16            Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 32-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          Pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 32-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT32
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx32 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT32            Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the 64-bit value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          Pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The 64-bit value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINT64
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetEx64 (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN UINT64            Value
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets a buffer for the token specified by TokenNumber to the value specified by
> > > > > > > > -  Buffer and SizeOfBuffer.  Buffer is returned.  If SizeOfBuffer is greater than
> > > > > > > > -  the maximum size support by TokenNumber, then set SizeOfBuffer to the maximum size
> > > > > > > > -  supported by TokenNumber and return NULL to indicate that the set operation
> > > > > > > > -  was not actually performed.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer is NULL, then ASSERT().
> > > > > > > > -  If SizeOfBuffer > 0 and Buffer is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid              Pointer to a 128-bit unique value that
> > > > > > > > -                                designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber       The PCD token number to set a current value for.
> > > > > > > > -  @param[in, out] SizeOfBuffer  The size, in bytes, of Buffer.
> > > > > > > > -  @param[in]  Buffer            A pointer to the buffer to set.
> > > > > > > > -
> > > > > > > > -  @return Return the pointer to the Buffer that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExPtr (
> > > > > > > > -  IN      CONST GUID        *Guid,
> > > > > > > > -  IN      UINTN             TokenNumber,
> > > > > > > > -  IN OUT  UINTN             *SizeOfBuffer,
> > > > > > > > -  IN      VOID              *Buffer
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  This function provides a means by which to set a value for a given PCD token.
> > > > > > > > -
> > > > > > > > -  Sets the Boolean value for the token specified by TokenNumber and
> > > > > > > > -  Guid to the value specified by Value. Value is returned.
> > > > > > > > -
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Guid          Pointer to a 128-bit unique value that
> > > > > > > > -                            designates which namespace to set a value from.
> > > > > > > > -  @param[in]  TokenNumber   The PCD token number to set a current value for.
> > > > > > > > -  @param[in]  Value         The Boolean value to set.
> > > > > > > > -
> > > > > > > > -  @return Return the Value that was set.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -BOOLEAN
> > > > > > > > -EFIAPI
> > > > > > > > -LibPcdSetExBool (
> > > > > > > > -  IN CONST GUID        *Guid,
> > > > > > > > -  IN UINTN             TokenNumber,
> > > > > > > > -  IN BOOLEAN           Value
> > > > > > > > -  );
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      This function provides a means by which to set a value for a given PCD token.
> > > > > > > > 
> > > > > > > > diff --git a/MdePkg/Include/Library/PrintLib.h b/MdePkg/Include/Library/PrintLib.h
> > > > > > > > index dfbcd1b340be..0b38da6084e1 100644
> > > > > > > > --- a/MdePkg/Include/Library/PrintLib.h
> > > > > > > > +++ b/MdePkg/Include/Library/PrintLib.h
> > > > > > > > @@ -485,62 +485,6 @@ UnicodeSPrintAsciiFormat (
> > > > > > > >      ...
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Converts a decimal value to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  Converts the decimal number specified by Value to a Null-terminated Unicode
> > > > > > > > -  string specified by Buffer containing at most Width characters. No padding of spaces
> > > > > > > > -  is ever performed. If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.
> > > > > > > > -  The number of Unicode characters in Buffer is returned, not including the Null-terminator.
> > > > > > > > -  If the conversion contains more than Width characters, then only the first
> > > > > > > > -  Width characters are returned, and the total number of characters
> > > > > > > > -  required to perform the conversion is returned.
> > > > > > > > -  Additional conversion parameters are specified in Flags.
> > > > > > > > -
> > > > > > > > -  The Flags bit LEFT_JUSTIFY is always ignored.
> > > > > > > > -  All conversions are left justified in Buffer.
> > > > > > > > -  If Width is 0, PREFIX_ZERO is ignored in Flags.
> > > > > > > > -  If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas
> > > > > > > > -  are inserted every 3rd digit starting from the right.
> > > > > > > > -  If RADIX_HEX is set in Flags, then the output buffer will be
> > > > > > > > -  formatted in hexadecimal format.
> > > > > > > > -  If Value is < 0 and RADIX_HEX is not set in Flags, then the fist character in Buffer is a '-'.
> > > > > > > > -  If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,
> > > > > > > > -  then Buffer is padded with '0' characters so the combination of the optional '-'
> > > > > > > > -  sign character, '0' characters, digit characters for Value, and the Null-terminator
> > > > > > > > -  add up to Width characters.
> > > > > > > > -  If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().
> > > > > > > > -  If Buffer is NULL, then ASSERT().
> > > > > > > > -  If Buffer is not aligned on a 16-bit boundary, then ASSERT().
> > > > > > > > -  If unsupported bits are set in Flags, then ASSERT().
> > > > > > > > -  If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().
> > > > > > > > -  If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()
> > > > > > > > -
> > > > > > > > -  @param  Buffer  The pointer to the output buffer for the produced Null-terminated
> > > > > > > > -                  Unicode string.
> > > > > > > > -  @param  Flags   The bitmask of flags that specify left justification, zero pad, and commas.
> > > > > > > > -  @param  Value   The 64-bit signed value to convert to a string.
> > > > > > > > -  @param  Width   The maximum number of Unicode characters to place in Buffer, not including
> > > > > > > > -                  the Null-terminator.
> > > > > > > > -
> > > > > > > > -  @return The number of Unicode characters in Buffer, not including the Null-terminator.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINTN
> > > > > > > > -EFIAPI
> > > > > > > > -UnicodeValueToString (
> > > > > > > > -  IN OUT CHAR16  *Buffer,
> > > > > > > > -  IN UINTN       Flags,
> > > > > > > > -  IN INT64       Value,
> > > > > > > > -  IN UINTN       Width
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > >    /**
> > > > > > > >      Converts a decimal value to a Null-terminated Unicode string.
> > > > > > > > 
> > > > > > > > @@ -882,60 +826,6 @@ AsciiSPrintUnicodeFormat (
> > > > > > > >      ...
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function is deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Converts a decimal value to a Null-terminated ASCII string.
> > > > > > > > -
> > > > > > > > -  Converts the decimal number specified by Value to a Null-terminated ASCII string
> > > > > > > > -  specified by Buffer containing at most Width characters. No padding of spaces
> > > > > > > > -  is ever performed.
> > > > > > > > -  If Width is 0 then a width of  MAXIMUM_VALUE_CHARACTERS is assumed.
> > > > > > > > -  The number of ASCII characters in Buffer is returned, not including the Null-terminator.
> > > > > > > > -  If the conversion contains more than Width characters, then only the first Width
> > > > > > > > -  characters are returned, and the total number of characters required to perform
> > > > > > > > -  the conversion is returned.
> > > > > > > > -  Additional conversion parameters are specified in Flags.
> > > > > > > > -  The Flags bit LEFT_JUSTIFY is always ignored.
> > > > > > > > -  All conversions are left justified in Buffer.
> > > > > > > > -  If Width is 0, PREFIX_ZERO is ignored in Flags.
> > > > > > > > -  If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas
> > > > > > > > -  are inserted every 3rd digit starting from the right.
> > > > > > > > -  If RADIX_HEX is set in Flags, then the output buffer will be
> > > > > > > > -  formatted in hexadecimal format.
> > > > > > > > -  If Value is < 0 and RADIX_HEX is not set in Flags, then the fist character in Buffer is a '-'.
> > > > > > > > -  If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,
> > > > > > > > -  then Buffer is padded with '0' characters so the combination of the optional '-'
> > > > > > > > -  sign character, '0' characters, digit characters for Value, and the Null-terminator
> > > > > > > > -  add up to Width characters.
> > > > > > > > -
> > > > > > > > -  If Buffer is NULL, then ASSERT().
> > > > > > > > -  If unsupported bits are set in Flags, then ASSERT().
> > > > > > > > -  If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().
> > > > > > > > -  If Width >= MAXIMUM_VALUE_CHARACTERS, then ASSERT()
> > > > > > > > -
> > > > > > > > -  @param  Buffer  A pointer to the output buffer for the produced Null-terminated
> > > > > > > > -                  ASCII string.
> > > > > > > > -  @param  Flags   The bitmask of flags that specify left justification, zero pad, and commas.
> > > > > > > > -  @param  Value   The 64-bit signed value to convert to a string.
> > > > > > > > -  @param  Width   The maximum number of ASCII characters to place in Buffer, not including
> > > > > > > > -                  the Null-terminator.
> > > > > > > > -
> > > > > > > > -  @return The number of ASCII characters in Buffer, not including the Null-terminator.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -UINTN
> > > > > > > > -EFIAPI
> > > > > > > > -AsciiValueToString (
> > > > > > > > -  OUT CHAR8      *Buffer,
> > > > > > > > -  IN  UINTN      Flags,
> > > > > > > > -  IN  INT64      Value,
> > > > > > > > -  IN  UINTN      Width
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -#endif
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Converts a decimal value to a Null-terminated Ascii string.
> > > > > > > > diff --git a/MdePkg/Include/Library/UefiLib.h b/MdePkg/Include/Library/UefiLib.h
> > > > > > > > index 0abb40d6ecbd..f56ffde1230e 100644
> > > > > > > > --- a/MdePkg/Include/Library/UefiLib.h
> > > > > > > > +++ b/MdePkg/Include/Library/UefiLib.h
> > > > > > > > @@ -680,59 +680,6 @@ FreeUnicodeStringTable (
> > > > > > > >      IN EFI_UNICODE_STRING_TABLE  *UnicodeStringTable
> > > > > > > >      );
> > > > > > > > 
> > > > > > > > -#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Returns a pointer to an allocated buffer that contains the contents of a
> > > > > > > > -  variable retrieved through the UEFI Runtime Service GetVariable().  The
> > > > > > > > -  returned buffer is allocated using AllocatePool().  The caller is responsible
> > > > > > > > -  for freeing this buffer with FreePool().
> > > > > > > > -
> > > > > > > > -  If Name is NULL, then ASSERT().
> > > > > > > > -  If Guid is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Name  The pointer to a Null-terminated Unicode string.
> > > > > > > > -  @param[in]  Guid  The pointer to an EFI_GUID structure.
> > > > > > > > -
> > > > > > > > -  @retval NULL   The variable could not be retrieved.
> > > > > > > > -  @retval NULL   There are not enough resources available for the variable contents.
> > > > > > > > -  @retval Other  A pointer to allocated buffer containing the variable contents.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -GetVariable (
> > > > > > > > -  IN CONST CHAR16    *Name,
> > > > > > > > -  IN CONST EFI_GUID  *Guid
> > > > > > > > -  );
> > > > > > > > -
> > > > > > > > -/**
> > > > > > > > -  [ATTENTION] This function will be deprecated for security reason.
> > > > > > > > -
> > > > > > > > -  Returns a pointer to an allocated buffer that contains the contents of a
> > > > > > > > -  variable retrieved through the UEFI Runtime Service GetVariable().  This
> > > > > > > > -  function always uses the EFI_GLOBAL_VARIABLE GUID to retrieve variables.
> > > > > > > > -  The returned buffer is allocated using AllocatePool().  The caller is
> > > > > > > > -  responsible for freeing this buffer with FreePool().
> > > > > > > > -
> > > > > > > > -  If Name is NULL, then ASSERT().
> > > > > > > > -
> > > > > > > > -  @param[in]  Name  The pointer to a Null-terminated Unicode string.
> > > > > > > > -
> > > > > > > > -  @retval NULL   The variable could not be retrieved.
> > > > > > > > -  @retval NULL   There are not enough resources available for the variable contents.
> > > > > > > > -  @retval Other  A pointer to allocated buffer containing the variable contents.
> > > > > > > > -
> > > > > > > > -**/
> > > > > > > > -VOID *
> > > > > > > > -EFIAPI
> > > > > > > > -GetEfiGlobalVariable (
> > > > > > > > -  IN CONST CHAR16  *Name
> > > > > > > > -  );
> > > > > > > > -#endif
> > > > > > > > -
> > > > > > > > 
> > > > > > > >    /**
> > > > > > > >      Returns the status whether get the variable success. The function retrieves
> > > > > > > > diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc
> > > > > > > > index 6cd38e7ec3c9..0477e0205188 100644
> > > > > > > > --- a/MdePkg/MdePkg.dsc
> > > > > > > > +++ b/MdePkg/MdePkg.dsc
> > > > > > > > @@ -172,4 +172,3 @@ [Components.ARM, Components.AARCH64]
> > > > > > > >      MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
> > > > > > > > 
> > > > > > > >    [BuildOptions]
> > > > > > > > -  *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES
> > > > > > > > --
> > > > > > > > 2.18.0.windows.1
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > 
> > > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
> 

  reply	other threads:[~2020-08-03 17:47 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-05  8:12 [PATCH] MdePkg: Remove code wrapped by DISABLE_NEW_DEPRECATED_INTERFACES Zhang, Shenglei
2020-06-09 13:08 ` Liming Gao
     [not found] ` <1616E217E641F212.17072@groups.io>
2020-07-29  7:55   ` [edk2-devel] " Liming Gao
2020-07-29 12:24     ` Leif Lindholm
2020-07-29 13:34       ` Leif Lindholm
2020-07-30 16:09         ` Marcin Wojtas
2020-07-31  1:55           ` Liming Gao
2020-07-31  7:53             ` Pete Batard
2020-07-31  8:27               ` Ard Biesheuvel
2020-07-31 15:56                 ` Marcin Wojtas
2020-08-03 11:23                   ` Pete Batard
2020-08-03 17:47                     ` Leif Lindholm [this message]
2020-08-21  7:17         ` Ming Huang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200803174719.GA31778@vanye \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox