--- /dev/null
+/** @file\r
+ EFI SMM Communication PPI definition.\r
+\r
+ This Ppi provides a means of communicating between PEIM and SMI \r
+ handlers inside of SMM.\r
+ This Ppi is produced and consumed only in S3 resume boot path.\r
+ It is NOT available in normal boot path.\r
+\r
+Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>\r
+\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions\r
+of the BSD License which accompanies this distribution. The\r
+full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+\r
+#ifndef _SMM_COMMUNICATION_PPI_H_\r
+#define _SMM_COMMUNICATION_PPI_H_\r
+\r
+#define EFI_PEI_SMM_COMMUNICATION_PPI_GUID \\r
+ { \\r
+ 0xae933e1c, 0xcc47, 0x4e38, { 0x8f, 0xe, 0xe2, 0xf6, 0x1d, 0x26, 0x5, 0xdf } \\r
+ }\r
+\r
+typedef struct _EFI_PEI_SMM_COMMUNICATION_PPI EFI_PEI_SMM_COMMUNICATION_PPI;\r
+\r
+/**\r
+ Communicates with a registered handler.\r
+ \r
+ This function provides a service to send and receive messages from a registered UEFI service.\r
+\r
+ @param[in] This The EFI_PEI_SMM_COMMUNICATION_PPI instance.\r
+ @param[in] CommBuffer A pointer to the buffer to convey into SMRAM.\r
+ @param[in] CommSize The size of the data buffer being passed in.On exit, the size of data\r
+ being returned. Zero if the handler does not wish to reply with any data.\r
+\r
+ @retval EFI_SUCCESS The message was successfully posted.\r
+ @retval EFI_INVALID_PARAMETER The CommBuffer was NULL.\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PEI_SMM_COMMUNICATE)(\r
+ IN CONST EFI_PEI_SMM_COMMUNICATION_PPI *This,\r
+ IN OUT VOID *CommBuffer,\r
+ IN OUT UINTN *CommSize\r
+ );\r
+\r
+///\r
+/// EFI SMM Communication Protocol provides runtime services for communicating\r
+/// between DXE drivers and a registered SMI handler.\r
+///\r
+struct _EFI_PEI_SMM_COMMUNICATION_PPI {\r
+ EFI_PEI_SMM_COMMUNICATE Communicate;\r
+};\r
+\r
+extern EFI_GUID gEfiPeiSmmCommunicationPpiGuid;\r
+\r
+#endif\r
## Include/Ppi/Capsule.h\r
gPeiCapsulePpiGuid = { 0x3acf33ee, 0xd892, 0x40f4, { 0xa2, 0xfc, 0x38, 0x54, 0xd2, 0xe1, 0x32, 0x3d }}\r
\r
+ ## Include/Ppi/SmmCommunication.h\r
+ gEfiPeiSmmCommunicationPpiGuid = { 0xae933e1c, 0xcc47, 0x4e38, { 0x8f, 0xe, 0xe2, 0xf6, 0x1d, 0x26, 0x5, 0xdf }}\r
+\r
## Include/Ppi/SmmAccess.h\r
gPeiSmmAccessPpiGuid = { 0x268f33a9, 0xcccd, 0x48be, { 0x88, 0x17, 0x86, 0x5, 0x3a, 0xc3, 0x2e, 0xd6 }}\r
\r