1 /** @file 2 UEFI ACPI Data Table Definition. 3 4 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials are licensed and made available under 6 the terms and conditions of the BSD License that accompanies this distribution. 7 The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php. 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef __UEFI_ACPI_DATA_TABLE_H__ 16 #define __UEFI_ACPI_DATA_TABLE_H__ 17 18 #include <IndustryStandard/Acpi.h> 19 20 #pragma pack(1) 21 typedef struct { 22 EFI_ACPI_DESCRIPTION_HEADER Header; 23 GUID Identifier; 24 UINT16 DataOffset; 25 } EFI_ACPI_DATA_TABLE; 26 27 typedef struct { 28 EFI_ACPI_DATA_TABLE UefiAcpiDataTable; 29 UINT32 SwSmiNumber; 30 UINT64 BufferPtrAddress; 31 } EFI_SMM_COMMUNICATION_ACPI_TABLE; 32 33 /// 34 /// To avoid confusion in interpreting frames, the communication buffer should always 35 /// begin with EFI_SMM_COMMUNICATE_HEADER 36 /// 37 typedef struct { 38 /// 39 /// Allows for disambiguation of the message format. 40 /// 41 EFI_GUID HeaderGuid; 42 /// 43 /// Describes the size of Data (in bytes) and does not include the size of the header. 44 /// 45 UINTN MessageLength; 46 /// 47 /// Designates an array of bytes that is MessageLength in size. 48 /// 49 UINT8 Data[1]; 50 } EFI_SMM_COMMUNICATE_HEADER; 51 52 #pragma pack() 53 54 #endif 55 56