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 }