]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add into MdePkg definitions for EFI SMM Communication Protocol as defined in the...
authorrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 1 Sep 2009 07:58:24 +0000 (07:58 +0000)
committerrsun3 <rsun3@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 1 Sep 2009 07:58:24 +0000 (07:58 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9218 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Include/Protocol/SmmCommunication.h [new file with mode: 0644]
MdePkg/MdePkg.dec

diff --git a/MdePkg/Include/Protocol/SmmCommunication.h b/MdePkg/Include/Protocol/SmmCommunication.h
new file mode 100644 (file)
index 0000000..f2cbecf
--- /dev/null
@@ -0,0 +1,79 @@
+/** @file\r
+  EFI SMM Communication Protocol as defined in the PI 1.2 specification.\r
+\r
+  This protocol provides a means of communicating between drivers outside of SMM and SMI \r
+  handlers inside of SMM.  \r
+\r
+  Copyright (c) 2009, Intel Corporation                                                         \r
+  All rights reserved. This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The 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
+#ifndef _SMM_COMMUNICATION_H_\r
+#define _SMM_COMMUNICATION_H_\r
+\r
+#define EFI_SMM_COMMUNICATION_PROTOCOL_GUID \\r
+  { \\r
+    0xc68ed8e2, 0x9dc6, 0x4cbd, { 0x9d, 0x94, 0xdb, 0x65, 0xac, 0xc5, 0xc3, 0x32 } \\r
+  }\r
+\r
+///\r
+/// To avoid confusion in interpreting frames, the communication buffer should always \r
+/// begin with EFI_SMM_COMMUNICATE_HEADER\r
+///\r
+typedef struct {\r
+  ///\r
+  /// Allows for disambiguation of the message format.\r
+  ///\r
+  EFI_GUID  HeaderGuid;\r
+  ///\r
+  /// Describes the size of Data (in bytes) and does not include the size of the header.\r
+  ///\r
+  UINTN     MessageLength;\r
+  ///\r
+  /// Designates an array of bytes that is MessageLength in size.\r
+  ///\r
+  UINT8     Data[1];\r
+} EFI_SMM_COMMUNICATE_HEADER;\r
+\r
+typedef struct _EFI_SMM_COMMUNICATION_PROTOCOL  EFI_SMM_COMMUNICATION_PROTOCOL;\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_SMM_COMMUNICATION_PROTOCOL 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_SMM_COMMUNICATE)(\r
+  IN CONST EFI_SMM_COMMUNICATION_PROTOCOL  *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_SMM_COMMUNICATION_PROTOCOL {\r
+  EFI_SMM_COMMUNICATE  Communicate;\r
+};\r
+\r
+extern EFI_GUID gEfiSmmCommunicationProtocolGuid;\r
+\r
+#endif\r
+\r
index 835fa989dd069fbe10cd9c967877285d345f89f9..c3e77cb79ccda07bf85f7116b7944f8cd9e52c50 100644 (file)
   ## Include/Protocol/DxeSmmReadyToLock.h\r
   gEfiDxeSmmReadyToLockProtocolGuid = { 0x60ff8964, 0xe906, 0x41d0, { 0xaf, 0xed, 0xf2, 0x41, 0xe9, 0x74, 0xe0, 0x8e }}\r
 \r
+  ## Include/Protocol/SmmCommunication.h\r
+  gEfiSmmCommunicationProtocolGuid  = { 0xc68ed8e2, 0x9dc6, 0x4cbd, { 0x9d, 0x94, 0xdb, 0x65, 0xac, 0xc5, 0xc3, 0x32 }}\r
+\r
   #\r
   # Protocols defined in UEFI2.1/UEFI2.0/EFI1.1\r
   #\r