Home | History | Annotate | Download | only in Uefi
      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