ReactOS  0.4.15-dev-3175-g222acf5
actables.h
Go to the documentation of this file.
1 /******************************************************************************
2  *
3  * Name: actables.h - ACPI table management
4  *
5  *****************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2021, Intel Corp.
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  * notice, this list of conditions, and the following disclaimer,
16  * without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  * substantially similar to the "NO WARRANTY" disclaimer below
19  * ("Disclaimer") and any redistribution must be conditioned upon
20  * including a substantially similar Disclaimer requirement for further
21  * binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  * of any contributors may be used to endorse or promote products derived
24  * from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43 
44 #ifndef __ACTABLES_H__
45 #define __ACTABLES_H__
46 
47 
50  UINT32 InitialTableCount);
51 
52 /*
53  * tbxfroot - Root pointer utilities
54  */
55 UINT32
57  ACPI_TABLE_RSDP *Rsdp);
58 
61  ACPI_TABLE_RSDP *Rsdp);
62 
63 UINT8 *
65  UINT8 *StartAddress,
66  UINT32 Length);
67 
68 
69 /*
70  * tbdata - table data structure management
71  */
74  UINT32 *TableIndex,
75  ACPI_TABLE_DESC **TableDesc);
76 
77 void
79  ACPI_TABLE_DESC *TableDesc,
80  ACPI_PHYSICAL_ADDRESS Address,
81  UINT8 Flags,
83 
86  ACPI_TABLE_DESC *TableDesc,
87  ACPI_PHYSICAL_ADDRESS Address,
88  UINT8 Flags);
89 
90 void
92  ACPI_TABLE_DESC *TableDesc);
93 
96  ACPI_TABLE_DESC *TableDesc);
97 
100  ACPI_TABLE_DESC *TableDesc,
101  char *Signature,
102  UINT32 *TableIndex);
103 
104 BOOLEAN
106  UINT32 TableIndex);
107 
108 void
110  UINT32 TableIndex,
111  BOOLEAN IsLoaded);
112 
113 
114 /*
115  * tbfadt - FADT parse/convert/validate
116  */
117 void
119  void);
120 
121 void
124  UINT32 Length);
125 
126 
127 /*
128  * tbfind - find ACPI table
129  */
132  char *Signature,
133  char *OemId,
134  char *OemTableId,
135  UINT32 *TableIndex);
136 
137 
138 /*
139  * tbinstal - Table removal and deletion
140  */
143  void);
144 
147  ACPI_TABLE_DESC *TableDesc);
148 
149 void
151  ACPI_TABLE_DESC *TableDesc);
152 
153 void
155  ACPI_TABLE_DESC *OldTableDesc);
156 
159  ACPI_TABLE_DESC *TableDesc,
160  ACPI_TABLE_HEADER **TablePtr,
161  UINT32 *TableLength,
162  UINT8 *TableFlags);
163 
164 void
167  UINT32 TableLength,
168  UINT8 TableFlags);
169 
172  ACPI_PHYSICAL_ADDRESS Address,
173  UINT8 Flags,
174  BOOLEAN Reload,
175  BOOLEAN Override,
176  UINT32 *TableIndex);
177 
178 void
180  ACPI_TABLE_DESC *TableDesc);
181 
184  UINT32 TableIndex,
185  ACPI_NAMESPACE_NODE *ParentNode);
186 
189  ACPI_PHYSICAL_ADDRESS Address,
190  UINT8 Flags,
191  BOOLEAN Override,
192  UINT32 *TableIndex);
193 
196  UINT32 TableIndex);
197 
198 void
200  UINT32 Event,
201  void *Table);
202 
203 void
205  void);
206 
209  UINT32 TableIndex);
210 
213  UINT32 TableIndex);
214 
217  UINT32 TableIndex);
218 
221  UINT32 TableIndex,
223 
224 
225 /*
226  * tbutils - table manager utilities
227  */
230  void);
231 
232 void
234  ACPI_PHYSICAL_ADDRESS Address,
236 
237 UINT8
239  UINT8 *Buffer,
240  UINT32 Length);
241 
245  UINT32 Length);
246 
247 void
249  void);
250 
253  UINT32 TableIndex);
254 
255 void
257  ACPI_TABLE_DESC *NewTableDesc,
258  BOOLEAN Override,
259  UINT32 *TableIndex);
260 
263  ACPI_PHYSICAL_ADDRESS RsdpAddress);
264 
267  ACPI_TABLE_DESC *TableDesc,
268  ACPI_TABLE_HEADER **OutTable);
269 
270 void
272  ACPI_TABLE_DESC *TableDesc);
273 
274 
275 /*
276  * tbxfload
277  */
280  void);
281 
282 #endif /* __ACTABLES_H__ */
ASMGENDATA Table[]
Definition: genincdata.c:61
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ACPI_STATUS AcpiTbAcquireTempTable(ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags)
Definition: tbdata.c:265
UINT8 AcpiTbChecksum(UINT8 *Buffer, UINT32 Length)
Definition: tbprint.c:258
void AcpiTbTerminate(void)
Definition: tbdata.c:776
BOOLEAN AcpiTbIsTableLoaded(UINT32 TableIndex)
Definition: tbdata.c:991
void AcpiTbUninstallTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbinstal.c:333
ACPI_STATUS AcpiTbValidateRsdp(ACPI_TABLE_RSDP *Rsdp)
Definition: tbxfroot.c:103
ACPI_STATUS AcpiTbResizeRootTableList(void)
Definition: tbdata.c:642
ACPI_STATUS AcpiTbGetOwnerId(UINT32 TableIndex, ACPI_OWNER_ID *OwnerId)
Definition: tbdata.c:958
ACPI_STATUS AcpiTbLoadNamespace(void)
Definition: tbxfload.c:147
UINT32 ACPI_STATUS
Definition: actypes.h:460
ACPI_STATUS AcpiTbDeleteNamespaceByOwner(UINT32 TableIndex)
Definition: tbdata.c:827
ACPI_STATUS AcpiTbInstallStandardTable(ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, BOOLEAN Reload, BOOLEAN Override, UINT32 *TableIndex)
Definition: tbinstal.c:137
unsigned int UINT32
Definition: Header.h:8
void AcpiTbSetTableLoadedFlag(UINT32 TableIndex, BOOLEAN IsLoaded)
Definition: tbdata.c:1024
void AcpiTbCreateLocalFadt(ACPI_TABLE_HEADER *Table, UINT32 Length)
Definition: tbfadt.c:423
ACPI_STATUS AcpiAllocateRootTable(UINT32 InitialTableCount)
Definition: tbxface.c:69
unsigned char BOOLEAN
ACPI_STATUS AcpiTbGetTable(ACPI_TABLE_DESC *TableDesc, ACPI_TABLE_HEADER **OutTable)
Definition: tbutils.c:433
static WCHAR Address[46]
Definition: ping.c:68
ACPI_STATUS AcpiTbAllocateOwnerId(UINT32 TableIndex)
Definition: tbdata.c:888
void AcpiTbReleaseTempTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:326
Definition: bufpool.h:45
ACPI_STATUS AcpiTbValidateTempTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:428
void AcpiTbInstallTableWithOverride(ACPI_TABLE_DESC *NewTableDesc, BOOLEAN Override, UINT32 *TableIndex)
Definition: tbinstal.c:70
UINT8 * AcpiTbScanMemoryForRsdp(UINT8 *StartAddress, UINT32 Length)
Definition: tbxfroot.c:282
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
void AcpiTbPutTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbutils.c:490
UINT16 ACPI_OWNER_ID
Definition: actypes.h:486
void AcpiTbParseFadt(void)
Definition: tbfadt.c:339
void AcpiTbOverrideTable(ACPI_TABLE_DESC *OldTableDesc)
Definition: tbinstal.c:247
void AcpiTbCheckDsdtHeader(void)
Definition: tbutils.c:124
void AcpiTbNotifyTable(UINT32 Event, void *Table)
Definition: tbdata.c:1220
ACPI_STATUS AcpiTbAcquireTable(ACPI_TABLE_DESC *TableDesc, ACPI_TABLE_HEADER **TablePtr, UINT32 *TableLength, UINT8 *TableFlags)
Definition: tbdata.c:166
ACPI_STATUS AcpiTbGetNextTableDescriptor(UINT32 *TableIndex, ACPI_TABLE_DESC **TableDesc)
Definition: tbdata.c:727
void AcpiTbInitTableDescriptor(ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table)
Definition: tbdata.c:130
ACPI_STATUS AcpiTbUnloadTable(UINT32 TableIndex)
Definition: tbdata.c:1167
void AcpiTbPrintTableHeader(ACPI_PHYSICAL_ADDRESS Address, ACPI_TABLE_HEADER *Header)
Definition: tbprint.c:141
UINT32 AcpiTbGetRsdpLength(ACPI_TABLE_RSDP *Rsdp)
Definition: tbxfroot.c:66
ACPI_STATUS AcpiTbVerifyChecksum(ACPI_TABLE_HEADER *Table, UINT32 Length)
Definition: tbprint.c:203
void AcpiTbInvalidateTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:392
ACPI_STATUS AcpiTbVerifyTempTable(ACPI_TABLE_DESC *TableDesc, char *Signature, UINT32 *TableIndex)
Definition: tbdata.c:549
ACPI_STATUS AcpiTbLoadTable(UINT32 TableIndex, ACPI_NAMESPACE_NODE *ParentNode)
Definition: tbdata.c:1062
ACPI_TABLE_HEADER * AcpiTbCopyDsdt(UINT32 TableIndex)
Definition: tbutils.c:163
ACPI_STATUS AcpiTbReleaseOwnerId(UINT32 TableIndex)
Definition: tbdata.c:922
ACPI_STATUS AcpiTbInitializeFacs(void)
Definition: tbutils.c:75
void AcpiTbReleaseTable(ACPI_TABLE_HEADER *Table, UINT32 TableLength, UINT8 TableFlags)
Definition: tbdata.c:225
ACPI_STATUS AcpiTbValidateTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:353
_Must_inspect_result_ _In_opt_ PVOID OwnerId
Definition: fsrtlfuncs.h:907
static const WCHAR Signature[]
Definition: parser.c:141
unsigned char UINT8
ACPI_STATUS AcpiTbInstallAndLoadTable(ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, BOOLEAN Override, UINT32 *TableIndex)
Definition: tbdata.c:1124
ACPI_STATUS AcpiTbFindTable(char *Signature, char *OemId, char *OemTableId, UINT32 *TableIndex)
Definition: tbfind.c:70
ACPI_STATUS AcpiTbParseRootTable(ACPI_PHYSICAL_ADDRESS RsdpAddress)
Definition: tbutils.c:277