The new PI MM PPIs deprecate MdeModulePkg's SMM PPIs entirely.
Shim the MM headers onto the previous SMM definitions.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marvin Haeuser <[email protected]>
---
 MdeModulePkg/Include/Ppi/SmmAccess.h        | 114 +-------------------
 MdeModulePkg/Include/Ppi/SmmCommunication.h |  36 +------
 MdeModulePkg/Include/Ppi/SmmControl.h       |  65 +----------
 3 files changed, 9 insertions(+), 206 deletions(-)

diff --git a/MdeModulePkg/Include/Ppi/SmmAccess.h 
b/MdeModulePkg/Include/Ppi/SmmAccess.h
index 795c8815a9c1..e1f144ee2293 100644
--- a/MdeModulePkg/Include/Ppi/SmmAccess.h
+++ b/MdeModulePkg/Include/Ppi/SmmAccess.h
@@ -27,119 +27,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER 
EXPRESS OR IMPLIED.
 #ifndef _SMM_ACCESS_PPI_H_
 #define _SMM_ACCESS_PPI_H_
 
-#define PEI_SMM_ACCESS_PPI_GUID \
-  { 0x268f33a9, 0xcccd, 0x48be, { 0x88, 0x17, 0x86, 0x5, 0x3a, 0xc3, 0x2e, 
0xd6 }}
+#include <Ppi/MmAccess.h>
 
-typedef struct _PEI_SMM_ACCESS_PPI  PEI_SMM_ACCESS_PPI;
+#define PEI_SMM_ACCESS_PPI_GUID  EFI_PEI_MM_ACCESS_PPI_GUID
 
-/**
-  Opens the SMRAM area to be accessible by a PEIM driver.
-
-  This function "opens" SMRAM so that it is visible while not inside of SMM. 
The function should
-  return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM. The 
function
-  should return EFI_DEVICE_ERROR if the SMRAM configuration is locked.
-
-  @param  PeiServices            General purpose services available to every 
PEIM.
-  @param  This                   The pointer to the SMM Access Interface.
-  @param  DescriptorIndex        The region of SMRAM to Open.
-
-  @retval EFI_SUCCESS            The region was successfully opened.
-  @retval EFI_DEVICE_ERROR       The region could not be opened because locked 
by chipset.
-  @retval EFI_INVALID_PARAMETER  The descriptor index was out of bounds.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *PEI_SMM_OPEN)(
-  IN EFI_PEI_SERVICES                **PeiServices,
-  IN PEI_SMM_ACCESS_PPI              *This,
-  IN UINTN                           DescriptorIndex
-  );
-
-/**
-  Inhibits access to the SMRAM.
-
-  This function "closes" SMRAM so that it is not visible while outside of SMM. 
The function should
-  return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM.
-
-  @param  PeiServices              General purpose services available to every 
PEIM.
-  @param  This                     The pointer to the SMM Access Interface.
-  @param  DescriptorIndex          The region of SMRAM to Close.
-
-  @retval EFI_SUCCESS              The region was successfully closed.
-  @retval EFI_DEVICE_ERROR         The region could not be closed because 
locked by chipset.
-  @retval EFI_INVALID_PARAMETER    The descriptor index was out of bounds.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *PEI_SMM_CLOSE)(
-  IN EFI_PEI_SERVICES                **PeiServices,
-  IN PEI_SMM_ACCESS_PPI              *This,
-  IN UINTN                           DescriptorIndex
-  );
-
-/**
-  Inhibits access to the SMRAM.
-
-  This function prohibits access to the SMRAM region.  This function is 
usually implemented such
-  that it is a write-once operation.
-
-  @param  PeiServices              General purpose services available to every 
PEIM.
-  @param  This                     The pointer to the SMM Access Interface.
-  @param  DescriptorIndex          The region of SMRAM to Close.
-
-  @retval EFI_SUCCESS            The region was successfully locked.
-  @retval EFI_DEVICE_ERROR       The region could not be locked because at 
least
-                                 one range is still open.
-  @retval EFI_INVALID_PARAMETER  The descriptor index was out of bounds.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *PEI_SMM_LOCK)(
-  IN EFI_PEI_SERVICES                **PeiServices,
-  IN PEI_SMM_ACCESS_PPI              *This,
-  IN UINTN                           DescriptorIndex
-  );
-
-/**
-  Queries the memory controller for the possible regions that will support 
SMRAM.
-
-  @param  PeiServices           General purpose services available to every 
PEIM.
-  @param This                   The pointer to the SmmAccessPpi Interface.
-  @param SmramMapSize           The pointer to the variable containing size of 
the
-                                buffer to contain the description information.
-  @param SmramMap               The buffer containing the data describing the 
Smram
-                                region descriptors.
-
-  @retval EFI_BUFFER_TOO_SMALL  The user did not provide a sufficient buffer.
-  @retval EFI_SUCCESS           The user provided a sufficiently-sized buffer.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *PEI_SMM_CAPABILITIES)(
-  IN EFI_PEI_SERVICES                **PeiServices,
-  IN PEI_SMM_ACCESS_PPI              *This,
-  IN OUT UINTN                       *SmramMapSize,
-  IN OUT EFI_SMRAM_DESCRIPTOR        *SmramMap
-  );
-
-///
-///  EFI SMM Access PPI is used to control the visibility of the SMRAM on the 
platform.
-///  It abstracts the location and characteristics of SMRAM. The platform 
should report
-///  all MMRAM via PEI_SMM_ACCESS_PPI. The expectation is that the north 
bridge or
-///  memory controller would publish this PPI.
-///
-struct _PEI_SMM_ACCESS_PPI {
-  PEI_SMM_OPEN          Open;
-  PEI_SMM_CLOSE         Close;
-  PEI_SMM_LOCK          Lock;
-  PEI_SMM_CAPABILITIES  GetCapabilities;
-  BOOLEAN               LockState;
-  BOOLEAN               OpenState;
-};
+typedef EFI_PEI_MM_ACCESS_PPI PEI_SMM_ACCESS_PPI;
 
 extern EFI_GUID gPeiSmmAccessPpiGuid;
 
diff --git a/MdeModulePkg/Include/Ppi/SmmCommunication.h 
b/MdeModulePkg/Include/Ppi/SmmCommunication.h
index 8ac86a443a15..e3ef045a18bb 100644
--- a/MdeModulePkg/Include/Ppi/SmmCommunication.h
+++ b/MdeModulePkg/Include/Ppi/SmmCommunication.h
@@ -23,41 +23,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER 
EXPRESS OR IMPLIED.
 #ifndef _SMM_COMMUNICATION_PPI_H_
 #define _SMM_COMMUNICATION_PPI_H_
 
-#define EFI_PEI_SMM_COMMUNICATION_PPI_GUID \
-  { \
-    0xae933e1c, 0xcc47, 0x4e38, { 0x8f, 0xe, 0xe2, 0xf6, 0x1d, 0x26, 0x5, 0xdf 
} \
-  }
+#include <Ppi/MmCommunication.h>
 
-typedef struct _EFI_PEI_SMM_COMMUNICATION_PPI  EFI_PEI_SMM_COMMUNICATION_PPI;
+#define EFI_PEI_SMM_COMMUNICATION_PPI_GUID  EFI_PEI_MM_COMMUNICATION_PPI_GUID
 
-/**
-  Communicates with a registered handler.
-
-  This function provides a service to send and receive messages from a 
registered UEFI service.
-
-  @param[in] This                The EFI_PEI_SMM_COMMUNICATION_PPI instance.
-  @param[in] CommBuffer          A pointer to the buffer to convey into SMRAM.
-  @param[in] CommSize            The size of the data buffer being passed 
in.On exit, the size of data
-                                 being returned. Zero if the handler does not 
wish to reply with any data.
-
-  @retval EFI_SUCCESS            The message was successfully posted.
-  @retval EFI_INVALID_PARAMETER  The CommBuffer was NULL.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_PEI_SMM_COMMUNICATE)(
-  IN CONST EFI_PEI_SMM_COMMUNICATION_PPI   *This,
-  IN OUT VOID                              *CommBuffer,
-  IN OUT UINTN                             *CommSize
-  );
-
-///
-/// EFI SMM Communication Protocol provides runtime services for communicating
-/// between DXE drivers and a registered SMI handler.
-///
-struct _EFI_PEI_SMM_COMMUNICATION_PPI {
-  EFI_PEI_SMM_COMMUNICATE  Communicate;
-};
+typedef EFI_PEI_MM_COMMUNICATION_PPI EFI_PEI_SMM_COMMUNICATION_PPI;
 
 extern EFI_GUID gEfiPeiSmmCommunicationPpiGuid;
 
diff --git a/MdeModulePkg/Include/Ppi/SmmControl.h 
b/MdeModulePkg/Include/Ppi/SmmControl.h
index 0c62196fb44c..ff346e9b8af4 100644
--- a/MdeModulePkg/Include/Ppi/SmmControl.h
+++ b/MdeModulePkg/Include/Ppi/SmmControl.h
@@ -26,70 +26,11 @@
 #ifndef _SMM_CONTROL_PPI_H_
 #define _SMM_CONTROL_PPI_H_
 
-#define PEI_SMM_CONTROL_PPI_GUID \
-  { 0x61c68702, 0x4d7e, 0x4f43, 0x8d, 0xef, 0xa7, 0x43, 0x5, 0xce, 0x74, 0xc5 }
+#include <Ppi/MmControl.h>
 
-typedef struct _PEI_SMM_CONTROL_PPI  PEI_SMM_CONTROL_PPI;
+#define PEI_SMM_CONTROL_PPI_GUID  EFI_PEI_MM_CONTROL_PPI_GUID
 
-/**
-  Invokes SMI activation from either the preboot or runtime environment.
-
-  @param  PeiServices           General purpose services available to every 
PEIM.
-  @param  This                  The PEI_SMM_CONTROL_PPI instance.
-  @param  ArgumentBuffer        The optional sized data to pass into the 
protocol activation.
-  @param  ArgumentBufferSize    The optional size of the data.
-  @param  Periodic              An optional mechanism to periodically repeat 
activation.
-  @param  ActivationInterval    An optional parameter to repeat at this period 
one
-                                time or, if the Periodic Boolean is set, 
periodically.
-
-  @retval EFI_SUCCESS           The SMI/PMI has been engendered.
-  @retval EFI_DEVICE_ERROR      The timing is unsupported.
-  @retval EFI_INVALID_PARAMETER The activation period is unsupported.
-  @retval EFI_NOT_STARTED       The SMM base service has not been initialized.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *PEI_SMM_ACTIVATE) (
-  IN EFI_PEI_SERVICES                                **PeiServices,
-  IN PEI_SMM_CONTROL_PPI                             * This,
-  IN OUT INT8                                        *ArgumentBuffer OPTIONAL,
-  IN OUT UINTN                                       *ArgumentBufferSize 
OPTIONAL,
-  IN BOOLEAN                                         Periodic OPTIONAL,
-  IN UINTN                                           ActivationInterval 
OPTIONAL
-  );
-
-/**
-  Clears any system state that was created in response to the Active call.
-
-  @param  PeiServices           General purpose services available to every 
PEIM.
-  @param  This                  The PEI_SMM_CONTROL_PPI instance.
-  @param  Periodic              Optional parameter to repeat at this period one
-                                time or, if the Periodic Boolean is set, 
periodically.
-
-  @retval EFI_SUCCESS           The SMI/PMI has been engendered.
-  @retval EFI_DEVICE_ERROR      The source could not be cleared.
-  @retval EFI_INVALID_PARAMETER The service did not support the Periodic input 
argument.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *PEI_SMM_DEACTIVATE) (
-  IN EFI_PEI_SERVICES                      **PeiServices,
-  IN PEI_SMM_CONTROL_PPI                   * This,
-  IN BOOLEAN                               Periodic OPTIONAL
-  );
-
-///
-///  PEI SMM Control PPI is used to initiate SMI/PMI activations. This 
protocol could be published by either:
-///  - A processor driver to abstract the SMI/PMI IPI
-///  - The driver that abstracts the ASIC that is supporting the APM port, 
such as the ICH in an
-///  Intel chipset
-///
-struct _PEI_SMM_CONTROL_PPI {
-  PEI_SMM_ACTIVATE    Trigger;
-  PEI_SMM_DEACTIVATE  Clear;
-};
+typedef EFI_PEI_MM_CONTROL_PPI PEI_SMM_CONTROL_PPI;
 
 extern EFI_GUID gPeiSmmControlPpiGuid;
 
-- 
2.18.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to