• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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