1 /** @file 2 UEFI ACPI Data Table Definition. 3 4 Copyright (c) 2011 - 2016, 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 typedef struct { 34 EFI_SMM_COMMUNICATION_ACPI_TABLE UefiSmmCommunicationAcpiTable; 35 EFI_ACPI_6_0_GENERIC_ADDRESS_STRUCTURE InvocationRegister; 36 } EFI_SMM_COMMUNICATION_ACPI_TABLE_2; 37 38 /// 39 /// To avoid confusion in interpreting frames, the communication buffer should always 40 /// begin with EFI_SMM_COMMUNICATE_HEADER 41 /// 42 typedef struct { 43 /// 44 /// Allows for disambiguation of the message format. 45 /// 46 EFI_GUID HeaderGuid; 47 /// 48 /// Describes the size of Data (in bytes) and does not include the size of the header. 49 /// 50 UINTN MessageLength; 51 /// 52 /// Designates an array of bytes that is MessageLength in size. 53 /// 54 UINT8 Data[1]; 55 } EFI_SMM_COMMUNICATE_HEADER; 56 57 #pragma pack() 58 59 #endif 60 61