ReactOS  0.4.15-dev-5462-g4d0d22a
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 - 2022, 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,
90 
91 void
93  ACPI_TABLE_DESC *TableDesc);
94 
97  ACPI_TABLE_DESC *TableDesc);
98 
101  ACPI_TABLE_DESC *TableDesc,
102  char *Signature,
103  UINT32 *TableIndex);
104 
105 BOOLEAN
107  UINT32 TableIndex);
108 
109 void
111  UINT32 TableIndex,
112  BOOLEAN IsLoaded);
113 
114 
115 /*
116  * tbfadt - FADT parse/convert/validate
117  */
118 void
120  void);
121 
122 void
125  UINT32 Length);
126 
127 
128 /*
129  * tbfind - find ACPI table
130  */
133  char *Signature,
134  char *OemId,
135  char *OemTableId,
136  UINT32 *TableIndex);
137 
138 
139 /*
140  * tbinstal - Table removal and deletion
141  */
144  void);
145 
148  ACPI_TABLE_DESC *TableDesc);
149 
150 void
152  ACPI_TABLE_DESC *TableDesc);
153 
154 void
156  ACPI_TABLE_DESC *OldTableDesc);
157 
160  ACPI_TABLE_DESC *TableDesc,
161  ACPI_TABLE_HEADER **TablePtr,
162  UINT32 *TableLength,
163  UINT8 *TableFlags);
164 
165 void
168  UINT32 TableLength,
169  UINT8 TableFlags);
170 
173  ACPI_PHYSICAL_ADDRESS Address,
174  UINT8 Flags,
176  BOOLEAN Reload,
177  BOOLEAN Override,
178  UINT32 *TableIndex);
179 
180 void
182  ACPI_TABLE_DESC *TableDesc);
183 
186  UINT32 TableIndex,
187  ACPI_NAMESPACE_NODE *ParentNode);
188 
191  ACPI_PHYSICAL_ADDRESS Address,
192  UINT8 Flags,
194  BOOLEAN Override,
195  UINT32 *TableIndex);
196 
199  UINT32 TableIndex);
200 
201 void
203  UINT32 Event,
204  void *Table);
205 
206 void
208  void);
209 
212  UINT32 TableIndex);
213 
216  UINT32 TableIndex);
217 
220  UINT32 TableIndex);
221 
224  UINT32 TableIndex,
226 
227 
228 /*
229  * tbutils - table manager utilities
230  */
233  void);
234 
235 void
237  ACPI_PHYSICAL_ADDRESS Address,
239 
240 void
242  void);
243 
246  UINT32 TableIndex);
247 
248 void
250  ACPI_TABLE_DESC *NewTableDesc,
251  BOOLEAN Override,
252  UINT32 *TableIndex);
253 
256  ACPI_PHYSICAL_ADDRESS RsdpAddress);
257 
260  ACPI_TABLE_DESC *TableDesc,
261  ACPI_TABLE_HEADER **OutTable);
262 
263 void
265  ACPI_TABLE_DESC *TableDesc);
266 
267 
268 /*
269  * tbxfload
270  */
273  void);
274 
275 #endif /* __ACTABLES_H__ */
ASMGENDATA Table[]
Definition: genincdata.c:61
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
void AcpiTbTerminate(void)
Definition: tbdata.c:811
ACPI_STATUS AcpiTbInstallAndLoadTable(ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table, BOOLEAN Override, UINT32 *TableIndex)
Definition: tbdata.c:1162
ACPI_STATUS AcpiTbInstallStandardTable(ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table, BOOLEAN Reload, BOOLEAN Override, UINT32 *TableIndex)
Definition: tbinstal.c:139
BOOLEAN AcpiTbIsTableLoaded(UINT32 TableIndex)
Definition: tbdata.c:1026
void AcpiTbUninstallTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbinstal.c:336
ACPI_STATUS AcpiTbValidateRsdp(ACPI_TABLE_RSDP *Rsdp)
Definition: tbxfroot.c:103
ACPI_STATUS AcpiTbResizeRootTableList(void)
Definition: tbdata.c:677
ACPI_STATUS AcpiTbGetOwnerId(UINT32 TableIndex, ACPI_OWNER_ID *OwnerId)
Definition: tbdata.c:993
ACPI_STATUS AcpiTbLoadNamespace(void)
Definition: tbxfload.c:147
UINT32 ACPI_STATUS
Definition: actypes.h:460
ACPI_STATUS AcpiTbDeleteNamespaceByOwner(UINT32 TableIndex)
Definition: tbdata.c:862
unsigned int UINT32
Definition: Header.h:8
void AcpiTbSetTableLoadedFlag(UINT32 TableIndex, BOOLEAN IsLoaded)
Definition: tbdata.c:1059
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:434
static WCHAR Address[46]
Definition: ping.c:68
ACPI_STATUS AcpiTbAllocateOwnerId(UINT32 TableIndex)
Definition: tbdata.c:923
void AcpiTbReleaseTempTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:348
ACPI_STATUS AcpiTbValidateTempTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:463
void AcpiTbInstallTableWithOverride(ACPI_TABLE_DESC *NewTableDesc, BOOLEAN Override, UINT32 *TableIndex)
Definition: tbinstal.c:70
UINT8 * AcpiTbScanMemoryForRsdp(UINT8 *StartAddress, UINT32 Length)
Definition: tbxfroot.c:296
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
void AcpiTbPutTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbutils.c:491
UINT16 ACPI_OWNER_ID
Definition: actypes.h:486
void AcpiTbParseFadt(void)
Definition: tbfadt.c:339
void AcpiTbOverrideTable(ACPI_TABLE_DESC *OldTableDesc)
Definition: tbinstal.c:250
void AcpiTbCheckDsdtHeader(void)
Definition: tbutils.c:124
void AcpiTbNotifyTable(UINT32 Event, void *Table)
Definition: tbdata.c:1259
ACPI_STATUS AcpiTbAcquireTable(ACPI_TABLE_DESC *TableDesc, ACPI_TABLE_HEADER **TablePtr, UINT32 *TableLength, UINT8 *TableFlags)
Definition: tbdata.c:180
ACPI_STATUS AcpiTbGetNextTableDescriptor(UINT32 *TableIndex, ACPI_TABLE_DESC **TableDesc)
Definition: tbdata.c:762
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:1206
void AcpiTbPrintTableHeader(ACPI_PHYSICAL_ADDRESS Address, ACPI_TABLE_HEADER *Header)
Definition: tbprint.c:143
UINT32 AcpiTbGetRsdpLength(ACPI_TABLE_RSDP *Rsdp)
Definition: tbxfroot.c:66
void AcpiTbInvalidateTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:414
ACPI_STATUS AcpiTbVerifyTempTable(ACPI_TABLE_DESC *TableDesc, char *Signature, UINT32 *TableIndex)
Definition: tbdata.c:584
ACPI_STATUS AcpiTbLoadTable(UINT32 TableIndex, ACPI_NAMESPACE_NODE *ParentNode)
Definition: tbdata.c:1097
ACPI_TABLE_HEADER * AcpiTbCopyDsdt(UINT32 TableIndex)
Definition: tbutils.c:163
ACPI_STATUS AcpiTbAcquireTempTable(ACPI_TABLE_DESC *TableDesc, ACPI_PHYSICAL_ADDRESS Address, UINT8 Flags, ACPI_TABLE_HEADER *Table)
Definition: tbdata.c:280
ACPI_STATUS AcpiTbReleaseOwnerId(UINT32 TableIndex)
Definition: tbdata.c:957
ACPI_STATUS AcpiTbInitializeFacs(void)
Definition: tbutils.c:75
void AcpiTbReleaseTable(ACPI_TABLE_HEADER *Table, UINT32 TableLength, UINT8 TableFlags)
Definition: tbdata.c:238
ACPI_STATUS AcpiTbValidateTable(ACPI_TABLE_DESC *TableDesc)
Definition: tbdata.c:375
_Must_inspect_result_ _In_opt_ PVOID OwnerId
Definition: fsrtlfuncs.h:907
static const WCHAR Signature[]
Definition: parser.c:141
unsigned char UINT8
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