GUID Identifier;\r
UINT16 DataOffset;\r
} EFI_ACPI_DATA_TABLE;\r
+\r
+typedef struct {\r
+ EFI_ACPI_DATA_TABLE UefiAcpiDataTable;\r
+ UINT32 SwSmiNumber;\r
+ UINT64 BufferPtrAddress;\r
+} EFI_SMM_COMMUNICATION_ACPI_TABLE;\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
#pragma pack()\r
\r
#endif\r