]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
OvmfPkg: AcpiPlatformDxe: enable PCI IO and MMIO while fetching QEMU tables
[mirror_edk2.git] / OvmfPkg / AcpiPlatformDxe / AcpiPlatform.h
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