Hi Ard,

pt., 31 lip 2020 o 10:27 Ard Biesheuvel <ard.biesheu...@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 <p...@akeo.ie>
> Sent: Friday, July 31, 2020 09:53
> To: devel@edk2.groups.io <devel@edk2.groups.io>; liming....@intel.com 
> <liming....@intel.com>; m...@semihalf.com <m...@semihalf.com>; Leif Lindholm 
> <l...@nuviainc.com>
> Cc: Zhang, Shenglei <shenglei.zh...@intel.com>; Ard Biesheuvel 
> <ard.biesheu...@arm.com>; Kinney, Michael D <michael.d.kin...@intel.com>; 
> Ming Huang <huangmin...@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 <l...@nuviainc.com>
> > Cc: Gao, Liming <liming....@intel.com>; devel@edk2.groups.io; Zhang, 
> > Shenglei <shenglei.zh...@intel.com>; Ard Biesheuvel 
> > <ard.biesheu...@arm.com>; Kinney, Michael D <michael.d.kin...@intel.com>; 
> > Ming Huang <huangmin...@huawei.com>; Pete Batard <p...@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 <l...@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.zh...@intel.com>; devel@edk2.groups.io
> >>>> Cc: Kinney, Michael D <michael.d.kin...@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.zh...@intel.com>
> >>>>> Sent: Friday, June 5, 2020 4:13 PM
> >>>>> To: devel@edk2.groups.io
> >>>>> Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming 
> >>>>> <liming....@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.kin...@intel.com>
> >>>>> Cc: Liming Gao <liming....@intel.com>
> >>>>> Signed-off-by: Shenglei Zhang <shenglei.zh...@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.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63578): https://edk2.groups.io/g/devel/message/63578
Mute This Topic: https://groups.io/mt/74688627/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to