VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/MdePkg/Include/Protocol/AcpiTable.h

最後變更 在這個檔案是 99404,由 vboxsync 提交於 2 年 前

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

  • 屬性 svn:eol-style 設為 native
檔案大小: 4.4 KB
 
1/** @file
2 The file provides the protocol to install or remove an ACPI
3 table from a platform.
4
5 Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8 @par Revision Reference:
9 This Protocol was introduced in UEFI Specification 2.3.
10
11**/
12
13#ifndef __ACPI_TABLE_H___
14#define __ACPI_TABLE_H___
15
16#define EFI_ACPI_TABLE_PROTOCOL_GUID \
17 { 0xffe06bdd, 0x6107, 0x46a6, { 0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c }}
18
19typedef struct _EFI_ACPI_TABLE_PROTOCOL EFI_ACPI_TABLE_PROTOCOL;
20
21/**
22
23 The InstallAcpiTable() function allows a caller to install an
24 ACPI table. When successful, the table will be linked by the
25 RSDT/XSDT. AcpiTableBuffer specifies the table to be installed.
26 InstallAcpiTable() will make a copy of the table and insert the
27 copy into the RSDT/XSDT. InstallAcpiTable() must insert the new
28 table at the end of the RSDT/XSDT. To prevent namespace
29 collision, ACPI tables may be created using UEFI ACPI table
30 format. If this protocol is used to install a table with a
31 signature already present in the system, the new table will not
32 replace the existing table. It is a platform implementation
33 decision to add a new table with a signature matching an
34 existing table or disallow duplicate table signatures and
35 return EFI_ACCESS_DENIED. On successful output, TableKey is
36 initialized with a unique key. Its value may be used in a
37 subsequent call to UninstallAcpiTable to remove an ACPI table.
38 If an EFI application is running at the time of this call, the
39 relevant EFI_CONFIGURATION_TABLE pointer to the RSDT is no
40 longer considered valid.
41
42
43 @param This A pointer to a EFI_ACPI_TABLE_PROTOCOL.
44
45 @param AcpiTableBuffer A pointer to a buffer containing the
46 ACPI table to be installed.
47
48 @param AcpiTableBufferSize Specifies the size, in bytes, of
49 the AcpiTableBuffer buffer.
50
51
52 @param TableKey Returns a key to refer to the ACPI table.
53
54 @retval EFI_SUCCESS The table was successfully inserted
55
56 @retval EFI_INVALID_PARAMETER Either AcpiTableBuffer is NULL,
57 TableKey is NULL, or
58 AcpiTableBufferSize and the size
59 field embedded in the ACPI table
60 pointed to by AcpiTableBuffer
61 are not in sync.
62
63 @retval EFI_OUT_OF_RESOURCES Insufficient resources exist to
64 complete the request.
65 @retval EFI_ACCESS_DENIED The table signature matches a table already
66 present in the system and platform policy
67 does not allow duplicate tables of this type.
68
69**/
70typedef
71EFI_STATUS
72(EFIAPI *EFI_ACPI_TABLE_INSTALL_ACPI_TABLE)(
73 IN EFI_ACPI_TABLE_PROTOCOL *This,
74 IN VOID *AcpiTableBuffer,
75 IN UINTN AcpiTableBufferSize,
76 OUT UINTN *TableKey
77 );
78
79/**
80
81 The UninstallAcpiTable() function allows a caller to remove an
82 ACPI table. The routine will remove its reference from the
83 RSDT/XSDT. A table is referenced by the TableKey parameter
84 returned from a prior call to InstallAcpiTable(). If an EFI
85 application is running at the time of this call, the relevant
86 EFI_CONFIGURATION_TABLE pointer to the RSDT is no longer
87 considered valid.
88
89 @param This A pointer to a EFI_ACPI_TABLE_PROTOCOL.
90
91 @param TableKey Specifies the table to uninstall. The key was
92 returned from InstallAcpiTable().
93
94 @retval EFI_SUCCESS The table was successfully inserted
95
96 @retval EFI_NOT_FOUND TableKey does not refer to a valid key
97 for a table entry.
98
99 @retval EFI_OUT_OF_RESOURCES Insufficient resources exist to
100 complete the request.
101
102**/
103typedef
104EFI_STATUS
105(EFIAPI *EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE)(
106 IN EFI_ACPI_TABLE_PROTOCOL *This,
107 IN UINTN TableKey
108 );
109
110///
111/// The EFI_ACPI_TABLE_PROTOCOL provides the ability for a component
112/// to install and uninstall ACPI tables from a platform.
113///
114struct _EFI_ACPI_TABLE_PROTOCOL {
115 EFI_ACPI_TABLE_INSTALL_ACPI_TABLE InstallAcpiTable;
116 EFI_ACPI_TABLE_UNINSTALL_ACPI_TABLE UninstallAcpiTable;
117};
118
119extern EFI_GUID gEfiAcpiTableProtocolGuid;
120
121#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette