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