[edk2-devel] [PATCH v1 05/15] MdeModulePkg: SmmLockBoxSmmLib: Support StandaloneMm for SmmLockBoxLib

Wu, Hao A hao.a.wu at intel.com
Tue Dec 22 08:35:40 UTC 2020


A couple of minor inline comments below.

With them handled:
Reviewed-by: Hao A Wu <hao.a.wu at intel.com>


> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Kun Qin
> Sent: Saturday, December 19, 2020 2:50 AM
> To: devel at edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang at intel.com>; Wu, Hao A <hao.a.wu at intel.com>;
> Dong, Eric <eric.dong at intel.com>
> Subject: [edk2-devel] [PATCH v1 05/15] MdeModulePkg:
> SmmLockBoxSmmLib: Support StandaloneMm for SmmLockBoxLib
> 
> This change added support of StandaloneMm for SmmLockBoxLib. It replaces
> gSmst with gMmst to support both traditional MM and standalone MM. The
> contructor and desctructor functions are abstracted to support different
> function prototype definitions.
> 
> Cc: Jian J Wang <jian.j.wang at intel.com>
> Cc: Hao A Wu <hao.a.wu at intel.com>
> Cc: Eric Dong <eric.dong at intel.com>
> 
> Signed-off-by: Kun Qin <kun.q at outlook.com>
> ---
>  MdeModulePkg/Library/SmmLockBoxLib/{SmmLockBoxSmmLib.c =>
> SmmLockBoxMmLib.c}               | 77 +++++++++-----------
>  MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.c
> | 53 ++++++++++++++
>  MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxTraditionalMmLib.c
> | 53 ++++++++++++++
>  MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxLibPrivate.h
> | 27 +++++++
>  MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> | 15 ++--
>  MdeModulePkg/Library/SmmLockBoxLib/{SmmLockBoxSmmLib.inf =>
> SmmLockBoxStandaloneMmLib.inf} | 26 ++++---
>  MdeModulePkg/MdeModulePkg.dsc                                                              |  2 +
>  7 files changed, 193 insertions(+), 60 deletions(-)
> 
> diff --git a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.c
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxMmLib.c
> similarity index 89%
> rename from
> MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.c
> rename to MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxMmLib.c
> index 4cc0e8b78e5b..68fcf2a78ed6 100644
> --- a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.c
> +++ b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxMmLib.c
> @@ -6,16 +6,16 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> 
> -#include <PiSmm.h>
> -#include <Library/SmmServicesTableLib.h>
> +#include <PiMm.h>
> +#include <Library/MmServicesTableLib.h>
>  #include <Library/BaseLib.h>
>  #include <Library/BaseMemoryLib.h>
>  #include <Library/LockBoxLib.h>
>  #include <Library/DebugLib.h>
>  #include <Guid/SmmLockBox.h>
>  #include <Guid/EndOfS3Resume.h>
> -#include <Protocol/SmmReadyToLock.h>
> -#include <Protocol/SmmEndOfDxe.h>
> +#include <Protocol/MmReadyToLock.h>
> +#include <Protocol/MmEndOfDxe.h>
>  #include <Protocol/SmmSxDispatch2.h>
> 
>  #include "SmmLockBoxLibPrivate.h"
> @@ -49,13 +49,13 @@ InternalGetSmmLockBoxContext (
>    //
>    // Check if gEfiSmmLockBoxCommunicationGuid is installed by someone
>    //
> -  for (Index = 0; Index < gSmst->NumberOfTableEntries; Index++) {
> -    if (CompareGuid (&gSmst->SmmConfigurationTable[Index].VendorGuid,
> &gEfiSmmLockBoxCommunicationGuid)) {
> +  for (Index = 0; Index < gMmst->NumberOfTableEntries; Index++) {
> +    if (CompareGuid (&gMmst->MmConfigurationTable[Index].VendorGuid,
> + &gEfiSmmLockBoxCommunicationGuid)) {
>        //
>        // Found. That means some other library instance is already run.
>        // No need to install again, just return.
>        //
> -      return (SMM_LOCK_BOX_CONTEXT *)gSmst-
> >SmmConfigurationTable[Index].VendorTable;
> +      return (SMM_LOCK_BOX_CONTEXT
> + *)gMmst->MmConfigurationTable[Index].VendorTable;
>      }
>    }
> 
> @@ -142,8 +142,8 @@ SmmLockBoxSmmEndOfDxeNotify (
>    //
>    // Locate SmmSxDispatch2 protocol.
>    //
> -  Status = gSmst->SmmLocateProtocol (
> -                    &gEfiSmmSxDispatch2ProtocolGuid,
> +  Status = gMmst->MmLocateProtocol (
> +                    &gEfiMmSxDispatchProtocolGuid,
>                      NULL,
>                      (VOID **)&SxDispatch
>                      );
> @@ -191,29 +191,25 @@ SmmLockBoxEndOfS3ResumeNotify (
>    Constructor for SmmLockBox library.
>    This is used to set SmmLockBox context, which will be used in PEI phase in
> S3 boot path later.
> 
> -  @param[in] ImageHandle  Image handle of this driver.
> -  @param[in] SystemTable  A Pointer to the EFI System Table.
> -
>    @retval EFI_SUCEESS
>    @return Others          Some error occurs.
>  **/
>  EFI_STATUS
>  EFIAPI
> -SmmLockBoxSmmConstructor (
> -  IN EFI_HANDLE        ImageHandle,
> -  IN EFI_SYSTEM_TABLE  *SystemTable
> +SmmLockBoxMmConstructor (
> +  VOID
>    )


Since function SmmLockBoxMmConstructor() now has become an library internal function.
Could you help to remove the 'EFIAPI' keyword for it?


>  {
>    EFI_STATUS           Status;
>    SMM_LOCK_BOX_CONTEXT *SmmLockBoxContext;
> 
> -  DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxSmmConstructor - Enter\n"));
> +  DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxMmConstructor -
> + Enter\n"));
> 
>    //
>    // Register SmmReadyToLock notification.
>    //
> -  Status = gSmst->SmmRegisterProtocolNotify (
> -                    &gEfiSmmReadyToLockProtocolGuid,
> +  Status = gMmst->MmRegisterProtocolNotify (
> +                    &gEfiMmReadyToLockProtocolGuid,
>                      SmmLockBoxSmmReadyToLockNotify,
>                      &mSmmLockBoxRegistrationSmmReadyToLock
>                      );
> @@ -222,8 +218,8 @@ SmmLockBoxSmmConstructor (
>    //
>    // Register SmmEndOfDxe notification.
>    //
> -  Status = gSmst->SmmRegisterProtocolNotify (
> -                    &gEfiSmmEndOfDxeProtocolGuid,
> +  Status = gMmst->MmRegisterProtocolNotify (
> +                    &gEfiMmEndOfDxeProtocolGuid,
>                      SmmLockBoxSmmEndOfDxeNotify,
>                      &mSmmLockBoxRegistrationSmmEndOfDxe
>                      );
> @@ -232,7 +228,7 @@ SmmLockBoxSmmConstructor (
>    //
>    // Register EndOfS3Resume notification.
>    //
> -  Status = gSmst->SmmRegisterProtocolNotify (
> +  Status = gMmst->MmRegisterProtocolNotify (
>                      &gEdkiiEndOfS3ResumeGuid,
>                      SmmLockBoxEndOfS3ResumeNotify,
>                      &mSmmLockBoxRegistrationEndOfS3Resume
> @@ -249,7 +245,7 @@ SmmLockBoxSmmConstructor (
>      // No need to install again, just return.
>      //
>      DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib SmmLockBoxContext -
> already installed\n"));
> -    DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxSmmConstructor - Exit\n"));
> +    DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxMmConstructor -
> + Exit\n"));
>      return EFI_SUCCESS;
>    }
> 
> @@ -263,8 +259,8 @@ SmmLockBoxSmmConstructor (
>    }
>    mSmmLockBoxContext.LockBoxDataAddress =
> (EFI_PHYSICAL_ADDRESS)(UINTN)&mLockBoxQueue;
> 
> -  Status = gSmst->SmmInstallConfigurationTable (
> -                    gSmst,
> +  Status = gMmst->MmInstallConfigurationTable (
> +                    gMmst,
>                      &gEfiSmmLockBoxCommunicationGuid,
>                      &mSmmLockBoxContext,
>                      sizeof(mSmmLockBoxContext) @@ -274,7 +270,7 @@
> SmmLockBoxSmmConstructor (
> 
>    DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib SmmLockBoxContext -
>  %x\n", (UINTN)&mSmmLockBoxContext));
>    DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib LockBoxDataAddress -
>  %x\n", (UINTN)&mLockBoxQueue));
> -  DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxSmmConstructor - Exit\n"));
> +  DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxMmConstructor -
> + Exit\n"));
> 
>    return Status;
>  }
> @@ -292,18 +288,17 @@ SmmLockBoxSmmConstructor (  **/  EFI_STATUS
> EFIAPI -SmmLockBoxSmmDestructor (
> -  IN EFI_HANDLE         ImageHandle,
> -  IN EFI_SYSTEM_TABLE   *SystemTable
> +SmmLockBoxMmDestructor (
> +  VOID
>    )


Since function SmmLockBoxMmDestructor() now has become an library internal function.
Could you help to remove the 'EFIAPI' keyword for it?

Best Regards,
Hao Wu


>  {
>    EFI_STATUS            Status;
> 
> -  DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib
> SmmLockBoxSmmDestructor in %a module\n", gEfiCallerBaseName));
> +  DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib SmmLockBoxMmDestructor
> in %a
> + module\n", gEfiCallerBaseName));
> 
>    if (mSmmConfigurationTableInstalled) {
> -    Status = gSmst->SmmInstallConfigurationTable (
> -                      gSmst,
> +    Status = gMmst->MmInstallConfigurationTable (
> +                      gMmst,
>                        &gEfiSmmLockBoxCommunicationGuid,
>                        NULL,
>                        0
> @@ -316,8 +311,8 @@ SmmLockBoxSmmDestructor (
>      //
>      // Unregister SmmReadyToLock notification.
>      //
> -    Status = gSmst->SmmRegisterProtocolNotify (
> -                      &gEfiSmmReadyToLockProtocolGuid,
> +    Status = gMmst->MmRegisterProtocolNotify (
> +                      &gEfiMmReadyToLockProtocolGuid,
>                        NULL,
>                        &mSmmLockBoxRegistrationSmmReadyToLock
>                        );
> @@ -327,8 +322,8 @@ SmmLockBoxSmmDestructor (
>      //
>      // Unregister SmmEndOfDxe notification.
>      //
> -    Status = gSmst->SmmRegisterProtocolNotify (
> -                      &gEfiSmmEndOfDxeProtocolGuid,
> +    Status = gMmst->MmRegisterProtocolNotify (
> +                      &gEfiMmEndOfDxeProtocolGuid,
>                        NULL,
>                        &mSmmLockBoxRegistrationSmmEndOfDxe
>                        );
> @@ -338,7 +333,7 @@ SmmLockBoxSmmDestructor (
>      //
>      // Unregister EndOfS3Resume notification.
>      //
> -    Status = gSmst->SmmRegisterProtocolNotify (
> +    Status = gMmst->MmRegisterProtocolNotify (
>                        &gEdkiiEndOfS3ResumeGuid,
>                        NULL,
>                        &mSmmLockBoxRegistrationEndOfS3Resume
> @@ -453,7 +448,7 @@ SaveLockBox (
>    //
>    // Allocate SMRAM buffer
>    //
> -  Status = gSmst->SmmAllocatePages (
> +  Status = gMmst->MmAllocatePages (
>                      AllocateAnyPages,
>                      EfiRuntimeServicesData,
>                      EFI_SIZE_TO_PAGES (Length), @@ -468,14 +463,14 @@
> SaveLockBox (
>    //
>    // Allocate LockBox
>    //
> -  Status = gSmst->SmmAllocatePool (
> +  Status = gMmst->MmAllocatePool (
>                      EfiRuntimeServicesData,
>                      sizeof(*LockBox),
>                      (VOID **)&LockBox
>                      );
>    ASSERT_EFI_ERROR (Status);
>    if (EFI_ERROR (Status)) {
> -    gSmst->SmmFreePages (SmramBuffer, EFI_SIZE_TO_PAGES (Length));
> +    gMmst->MmFreePages (SmramBuffer, EFI_SIZE_TO_PAGES (Length));
>      DEBUG ((DEBUG_INFO, "SmmLockBoxSmmLib SaveLockBox - Exit (%r)\n",
> EFI_OUT_OF_RESOURCES));
>      return EFI_OUT_OF_RESOURCES;
>    }
> @@ -662,7 +657,7 @@ UpdateLockBox (
>            DEBUG_INFO,
>            "SmmLockBoxSmmLib UpdateLockBox - Allocate new buffer to
> enlarge.\n"
>            ));
> -        Status = gSmst->SmmAllocatePages (
> +        Status = gMmst->MmAllocatePages (
>                            AllocateAnyPages,
>                            EfiRuntimeServicesData,
>                            EFI_SIZE_TO_PAGES (Offset + Length), @@ -679,7 +674,7 @@
> UpdateLockBox (
>          //
>          CopyMem ((VOID *)(UINTN)SmramBuffer, (VOID *)(UINTN)LockBox-
> >SmramBuffer, (UINTN)LockBox->Length);
>          ZeroMem ((VOID *)(UINTN)LockBox->SmramBuffer, (UINTN)LockBox-
> >Length);
> -        gSmst->SmmFreePages (LockBox->SmramBuffer, EFI_SIZE_TO_PAGES
> ((UINTN)LockBox->Length));
> +        gMmst->MmFreePages (LockBox->SmramBuffer, EFI_SIZE_TO_PAGES
> + ((UINTN)LockBox->Length));
> 
>          LockBox->SmramBuffer = SmramBuffer;
>        }
> diff --git
> a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.
> c
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.
> c
> new file mode 100644
> index 000000000000..722121da430b
> --- /dev/null
> +++
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.
> c
> @@ -0,0 +1,53 @@
> +/** @file
> +
> +Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.
> +
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <PiMm.h>
> +
> +#include "SmmLockBoxLibPrivate.h"
> +
> +/**
> +  Constructor for SmmLockBox library.
> +  This is used to set SmmLockBox context, which will be used in PEI phase in
> S3 boot path later.
> +
> +  @param[in] ImageHandle  Image handle of this driver.
> +  @param[in] SystemTable  A Pointer to the EFI System Table.
> +
> +  @retval EFI_SUCEESS
> +  @return Others          Some error occurs.
> +**/
> +EFI_STATUS
> +EFIAPI
> +SmmLockBoxStandaloneMmConstructor (
> +  IN EFI_HANDLE           ImageHandle,
> +  IN EFI_MM_SYSTEM_TABLE  *SystemTable
> +  )
> +{
> +  return SmmLockBoxMmConstructor ();
> +}
> +
> +/**
> +  Destructor for SmmLockBox library.
> +  This is used to uninstall SmmLockBoxCommunication configuration table
> +  if it has been installed in Constructor.
> +
> +  @param[in] ImageHandle    Image handle of this driver.
> +  @param[in] SystemTable    A Pointer to the EFI System Table.
> +
> +  @retval EFI_SUCEESS       The destructor always returns EFI_SUCCESS.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +SmmLockBoxStandaloneMmDestructor (
> +  IN EFI_HANDLE             ImageHandle,
> +  IN EFI_MM_SYSTEM_TABLE    *SystemTable
> +  )
> +{
> +  return SmmLockBoxMmDestructor ();
> +}
> diff --git
> a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxTraditionalMmLib.c
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxTraditionalMmLib.c
> new file mode 100644
> index 000000000000..a748abb16c54
> --- /dev/null
> +++
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxTraditionalMmLib.c
> @@ -0,0 +1,53 @@
> +/** @file
> +
> +Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) Microsoft Corporation.
> +
> +SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include <PiSmm.h>
> +
> +#include "SmmLockBoxLibPrivate.h"
> +
> +/**
> +  Constructor for SmmLockBox library.
> +  This is used to set SmmLockBox context, which will be used in PEI phase in
> S3 boot path later.
> +
> +  @param[in] ImageHandle  Image handle of this driver.
> +  @param[in] SystemTable  A Pointer to the EFI System Table.
> +
> +  @retval EFI_SUCEESS
> +  @return Others          Some error occurs.
> +**/
> +EFI_STATUS
> +EFIAPI
> +SmmLockBoxTraditionalConstructor (
> +  IN EFI_HANDLE        ImageHandle,
> +  IN EFI_SYSTEM_TABLE  *SystemTable
> +  )
> +{
> +  return SmmLockBoxMmConstructor ();
> +}
> +
> +/**
> +  Destructor for SmmLockBox library.
> +  This is used to uninstall SmmLockBoxCommunication configuration table
> +  if it has been installed in Constructor.
> +
> +  @param[in] ImageHandle    Image handle of this driver.
> +  @param[in] SystemTable    A Pointer to the EFI System Table.
> +
> +  @retval EFI_SUCEESS       The destructor always returns EFI_SUCCESS.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +SmmLockBoxTraditionalDestructor (
> +  IN EFI_HANDLE          ImageHandle,
> +  IN EFI_SYSTEM_TABLE    *SystemTable
> +  )
> +{
> +  return SmmLockBoxMmDestructor ();
> +}
> diff --git
> a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxLibPrivate.h
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxLibPrivate.h
> index 35311cb85d69..f729c6cceeea 100644
> --- a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxLibPrivate.h
> +++ b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxLibPrivate.h
> @@ -43,5 +43,32 @@ typedef struct {
> 
>  #pragma pack()
> 
> +/**
> +  Constructor for SmmLockBox library.
> +  This is used to set SmmLockBox context, which will be used in PEI phase in
> S3 boot path later.
> +
> +  @retval EFI_SUCEESS
> +  @return Others          Some error occurs.
> +**/
> +EFI_STATUS
> +EFIAPI
> +SmmLockBoxMmConstructor (
> +  VOID
> +  );
> +
> +/**
> +  Destructor for SmmLockBox library.
> +  This is used to uninstall SmmLockBoxCommunication configuration table
> +  if it has been installed in Constructor.
> +
> +  @retval EFI_SUCEESS       The destructor always returns EFI_SUCCESS.
> +
> +**/
> +EFI_STATUS
> +EFIAPI
> +SmmLockBoxMmDestructor (
> +  VOID
> +  );
> +
>  #endif
> 
> diff --git a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> index 2b6cc983b988..44f7b63c5d20 100644
> --- a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> +++ b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> @@ -15,8 +15,8 @@ [Defines]
>    MODULE_TYPE                    = DXE_SMM_DRIVER
>    VERSION_STRING                 = 1.0
>    LIBRARY_CLASS                  = LockBoxLib|DXE_SMM_DRIVER
> -  CONSTRUCTOR                    = SmmLockBoxSmmConstructor
> -  DESTRUCTOR                     = SmmLockBoxSmmDestructor
> +  CONSTRUCTOR                    = SmmLockBoxTraditionalConstructor
> +  DESTRUCTOR                     = SmmLockBoxTraditionalDestructor
> 
>  #
>  # The following information is for reference only and not required by the
> build tools.
> @@ -25,7 +25,8 @@ [Defines]
>  #
> 
>  [Sources]
> -  SmmLockBoxSmmLib.c
> +  SmmLockBoxTraditionalMmLib.c
> +  SmmLockBoxMmLib.c
>    SmmLockBoxLibPrivate.h
> 
>  [Packages]
> @@ -33,14 +34,14 @@ [Packages]
>    MdeModulePkg/MdeModulePkg.dec
> 
>  [LibraryClasses]
> -  SmmServicesTableLib
> +  MmServicesTableLib
>    BaseLib
>    DebugLib
> 
>  [Protocols]
> -  gEfiSmmReadyToLockProtocolGuid    ## NOTIFY
> -  gEfiSmmEndOfDxeProtocolGuid       ## NOTIFY
> -  gEfiSmmSxDispatch2ProtocolGuid    ## NOTIFY
> +  gEfiMmReadyToLockProtocolGuid    ## NOTIFY
> +  gEfiMmEndOfDxeProtocolGuid       ## NOTIFY
> +  gEfiMmSxDispatchProtocolGuid     ## NOTIFY
> 
>  [Guids]
>    ## SOMETIMES_CONSUMES   ## UNDEFINED # SmmSystemTable
> diff --git a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.i
> nf
> similarity index 52%
> copy from MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> copy to
> MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.inf
> index 2b6cc983b988..d46dfb3f9aa8 100644
> --- a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> +++
> b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.i
> nf
> @@ -2,6 +2,7 @@
>  #  SMM LockBox library instance.
>  #
>  #  Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) Microsoft Corporation.
>  #
>  #  SPDX-License-Identifier: BSD-2-Clause-Patent  # @@ -9,14 +10,14 @@
> 
>  [Defines]
>    INF_VERSION                    = 0x00010005
> -  BASE_NAME                      = SmmLockBoxSmmLib
> -  MODULE_UNI_FILE                = SmmLockBoxSmmLib.uni
> -  FILE_GUID                      = E04894D6-290D-4171-A362-0ACFD939F3C8
> -  MODULE_TYPE                    = DXE_SMM_DRIVER
> +  BASE_NAME                      = SmmLockBoxStandaloneMmLib
> +  FILE_GUID                      = 3C05978B-30CA-4544-9C5A-AB99265EFC31
> +  MODULE_TYPE                    = MM_STANDALONE
>    VERSION_STRING                 = 1.0
> -  LIBRARY_CLASS                  = LockBoxLib|DXE_SMM_DRIVER
> -  CONSTRUCTOR                    = SmmLockBoxSmmConstructor
> -  DESTRUCTOR                     = SmmLockBoxSmmDestructor
> +  PI_SPECIFICATION_VERSION       = 0x00010032
> +  LIBRARY_CLASS                  = LockBoxLib|MM_STANDALONE
> +  CONSTRUCTOR                    = SmmLockBoxStandaloneMmConstructor
> +  DESTRUCTOR                     = SmmLockBoxStandaloneMmDestructor
> 
>  #
>  # The following information is for reference only and not required by the
> build tools.
> @@ -25,7 +26,8 @@ [Defines]
>  #
> 
>  [Sources]
> -  SmmLockBoxSmmLib.c
> +  SmmLockBoxStandaloneMmLib.c
> +  SmmLockBoxMmLib.c
>    SmmLockBoxLibPrivate.h
> 
>  [Packages]
> @@ -33,14 +35,14 @@ [Packages]
>    MdeModulePkg/MdeModulePkg.dec
> 
>  [LibraryClasses]
> -  SmmServicesTableLib
> +  MmServicesTableLib
>    BaseLib
>    DebugLib
> 
>  [Protocols]
> -  gEfiSmmReadyToLockProtocolGuid    ## NOTIFY
> -  gEfiSmmEndOfDxeProtocolGuid       ## NOTIFY
> -  gEfiSmmSxDispatch2ProtocolGuid    ## NOTIFY
> +  gEfiMmReadyToLockProtocolGuid    ## NOTIFY
> +  gEfiMmEndOfDxeProtocolGuid       ## NOTIFY
> +  gEfiMmSxDispatchProtocolGuid     ## NOTIFY
> 
>  [Guids]
>    ## SOMETIMES_CONSUMES   ## UNDEFINED # SmmSystemTable
> diff --git a/MdeModulePkg/MdeModulePkg.dsc
> b/MdeModulePkg/MdeModulePkg.dsc index 90165ca443bf..cd91a70b4fdd
> 100644
> --- a/MdeModulePkg/MdeModulePkg.dsc
> +++ b/MdeModulePkg/MdeModulePkg.dsc
> @@ -167,6 +167,7 @@ [LibraryClasses.common.MM_STANDALONE]
> 
> MemoryAllocationLib|MdeModulePkg/Library/BaseMemoryAllocationLibNul
> l/BaseMemoryAllocationLibNull.inf
> 
> StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntry
> Point/StandaloneMmDriverEntryPoint.inf
> 
> MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/Stan
> daloneMmServicesTableLib.inf
> +
> +
> LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandalo
> neMmLi
> + b.inf
> 
>  [LibraryClasses.ARM, LibraryClasses.AARCH64]
>    ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
> @@ -483,6 +484,7 @@ [Components.IA32, Components.X64]
>    MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
>    MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
>    MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
> +
> MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.inf
> 
> MdeModulePkg/Library/SmmCorePlatformHookLibNull/SmmCorePlatformH
> ookLibNull.inf
> 
> MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLi
> b.inf
> 
> MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaArchCustomDeco
> mpressLib.inf
> --
> 2.28.0.windows.1
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#69374): https://edk2.groups.io/g/devel/message/69374
Mute This Topic: https://groups.io/mt/79068288/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list