]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[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 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef _ACPI_PLATFORM_H_INCLUDED_
10 #define _ACPI_PLATFORM_H_INCLUDED_
11
12 #include <PiDxe.h>
13
14 #include <Protocol/AcpiTable.h>
15 #include <Protocol/FirmwareVolume2.h>
16 #include <Protocol/PciIo.h>
17
18 #include <Library/BaseLib.h>
19 #include <Library/UefiBootServicesTableLib.h>
20 #include <Library/DebugLib.h>
21 #include <Library/PcdLib.h>
22 #include <Library/XenPlatformLib.h>
23
24 #include <IndustryStandard/Acpi.h>
25
26 typedef struct {
27 EFI_PCI_IO_PROTOCOL *PciIo;
28 UINT64 PciAttributes;
29 } ORIGINAL_ATTRIBUTES;
30
31 typedef struct S3_CONTEXT S3_CONTEXT;
32
33 EFI_STATUS
34 EFIAPI
35 InstallAcpiTable (
36 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol,
37 IN VOID *AcpiTableBuffer,
38 IN UINTN AcpiTableBufferSize,
39 OUT UINTN *TableKey
40 );
41
42 BOOLEAN
43 QemuDetected (
44 VOID
45 );
46
47 EFI_STATUS
48 EFIAPI
49 QemuInstallAcpiTable (
50 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol,
51 IN VOID *AcpiTableBuffer,
52 IN UINTN AcpiTableBufferSize,
53 OUT UINTN *TableKey
54 );
55
56 EFI_STATUS
57 EFIAPI
58 InstallXenTables (
59 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol
60 );
61
62 EFI_STATUS
63 EFIAPI
64 InstallQemuFwCfgTables (
65 IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol
66 );
67
68 EFI_STATUS
69 EFIAPI
70 InstallAcpiTables (
71 IN EFI_ACPI_TABLE_PROTOCOL *AcpiTable
72 );
73
74 VOID
75 EnablePciDecoding (
76 OUT ORIGINAL_ATTRIBUTES **OriginalAttributes,
77 OUT UINTN *Count
78 );
79
80 VOID
81 RestorePciDecoding (
82 IN ORIGINAL_ATTRIBUTES *OriginalAttributes,
83 IN UINTN Count
84 );
85
86 EFI_STATUS
87 AllocateS3Context (
88 OUT S3_CONTEXT **S3Context,
89 IN UINTN WritePointerCount
90 );
91
92 VOID
93 ReleaseS3Context (
94 IN S3_CONTEXT *S3Context
95 );
96
97 EFI_STATUS
98 SaveCondensedWritePointerToS3Context (
99 IN OUT S3_CONTEXT *S3Context,
100 IN UINT16 PointerItem,
101 IN UINT8 PointerSize,
102 IN UINT32 PointerOffset,
103 IN UINT64 PointerValue
104 );
105
106 EFI_STATUS
107 TransferS3ContextToBootScript (
108 IN S3_CONTEXT *S3Context
109 );
110
111 #endif
112