1 /** @file 2 Sample ACPI Platform Driver 3 4 Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. 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 _ACPI_PLATFORM_H_INCLUDED_ 16 #define _ACPI_PLATFORM_H_INCLUDED_ 17 18 #include <PiDxe.h> 19 20 #include <Protocol/AcpiTable.h> 21 #include <Protocol/FirmwareVolume2.h> 22 #include <Protocol/PciIo.h> 23 24 #include <Library/BaseLib.h> 25 #include <Library/UefiBootServicesTableLib.h> 26 #include <Library/DebugLib.h> 27 #include <Library/PcdLib.h> 28 29 #include <IndustryStandard/Acpi.h> 30 31 typedef struct { 32 EFI_PCI_IO_PROTOCOL *PciIo; 33 UINT64 PciAttributes; 34 } ORIGINAL_ATTRIBUTES; 35 36 EFI_STATUS 37 EFIAPI 38 InstallAcpiTable ( 39 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol, 40 IN VOID *AcpiTableBuffer, 41 IN UINTN AcpiTableBufferSize, 42 OUT UINTN *TableKey 43 ); 44 45 BOOLEAN 46 QemuDetected ( 47 VOID 48 ); 49 50 EFI_STATUS 51 EFIAPI 52 QemuInstallAcpiTable ( 53 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol, 54 IN VOID *AcpiTableBuffer, 55 IN UINTN AcpiTableBufferSize, 56 OUT UINTN *TableKey 57 ); 58 59 BOOLEAN 60 XenDetected ( 61 VOID 62 ); 63 64 EFI_STATUS 65 EFIAPI 66 InstallXenTables ( 67 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol 68 ); 69 70 EFI_STATUS 71 EFIAPI 72 InstallQemuFwCfgTables ( 73 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol 74 ); 75 76 EFI_STATUS 77 EFIAPI 78 InstallAcpiTables ( 79 IN EFI_ACPI_TABLE_PROTOCOL *AcpiTable 80 ); 81 82 VOID 83 EnablePciDecoding ( 84 OUT ORIGINAL_ATTRIBUTES **OriginalAttributes, 85 OUT UINTN *Count 86 ); 87 88 VOID 89 RestorePciDecoding ( 90 IN ORIGINAL_ATTRIBUTES *OriginalAttributes, 91 IN UINTN Count 92 ); 93 94 #endif 95 96