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