xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/actables.h (revision e19e5bbc20dd1d64f1833c5d0ac7a605c8e9bfa0)
1 /******************************************************************************
2  *
3  * Name: actables.h - ACPI table management
4  *
5  *****************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2014, 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 MERCHANTIBILITY 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 
48 ACPI_STATUS
49 AcpiAllocateRootTable (
50     UINT32                  InitialTableCount);
51 
52 /*
53  * tbxfroot - Root pointer utilities
54  */
55 ACPI_STATUS
56 AcpiTbValidateRsdp (
57     ACPI_TABLE_RSDP         *Rsdp);
58 
59 UINT8 *
60 AcpiTbScanMemoryForRsdp (
61     UINT8                   *StartAddress,
62     UINT32                  Length);
63 
64 
65 /*
66  * tbdata - table data structure management
67  */
68 ACPI_STATUS
69 AcpiTbGetNextRootIndex (
70     UINT32                  *TableIndex);
71 
72 void
73 AcpiTbInitTableDescriptor (
74     ACPI_TABLE_DESC         *TableDesc,
75     ACPI_PHYSICAL_ADDRESS   Address,
76     UINT8                   Flags,
77     ACPI_TABLE_HEADER       *Table);
78 
79 ACPI_STATUS
80 AcpiTbAcquireTempTable (
81     ACPI_TABLE_DESC         *TableDesc,
82     ACPI_PHYSICAL_ADDRESS   Address,
83     UINT8                   Flags);
84 
85 void
86 AcpiTbReleaseTempTable (
87     ACPI_TABLE_DESC         *TableDesc);
88 
89 BOOLEAN
90 AcpiTbIsTableLoaded (
91     UINT32                  TableIndex);
92 
93 void
94 AcpiTbSetTableLoadedFlag (
95     UINT32                  TableIndex,
96     BOOLEAN                 IsLoaded);
97 
98 
99 /*
100  * tbfadt - FADT parse/convert/validate
101  */
102 void
103 AcpiTbParseFadt (
104     UINT32                  TableIndex);
105 
106 void
107 AcpiTbCreateLocalFadt (
108     ACPI_TABLE_HEADER       *Table,
109     UINT32                  Length);
110 
111 
112 /*
113  * tbfind - find ACPI table
114  */
115 ACPI_STATUS
116 AcpiTbFindTable (
117     char                    *Signature,
118     char                    *OemId,
119     char                    *OemTableId,
120     UINT32                  *TableIndex);
121 
122 
123 /*
124  * tbinstal - Table removal and deletion
125  */
126 ACPI_STATUS
127 AcpiTbResizeRootTableList (
128     void);
129 
130 ACPI_STATUS
131 AcpiTbValidateTable (
132     ACPI_TABLE_DESC         *TableDesc);
133 
134 void
135 AcpiTbInvalidateTable (
136     ACPI_TABLE_DESC         *TableDesc);
137 
138 ACPI_STATUS
139 AcpiTbVerifyTable (
140     ACPI_TABLE_DESC         *TableDesc,
141     char                    *Signature);
142 
143 void
144 AcpiTbOverrideTable (
145     ACPI_TABLE_DESC         *OldTableDesc);
146 
147 ACPI_STATUS
148 AcpiTbAcquireTable (
149     ACPI_TABLE_DESC         *TableDesc,
150     ACPI_TABLE_HEADER       **TablePtr,
151     UINT32                  *TableLength,
152     UINT8                   *TableFlags);
153 
154 void
155 AcpiTbReleaseTable (
156     ACPI_TABLE_HEADER       *Table,
157     UINT32                  TableLength,
158     UINT8                   TableFlags);
159 
160 ACPI_STATUS
161 AcpiTbInstallStandardTable (
162     ACPI_PHYSICAL_ADDRESS   Address,
163     UINT8                   Flags,
164     BOOLEAN                 Reload,
165     BOOLEAN                 Override,
166     UINT32                  *TableIndex);
167 
168 ACPI_STATUS
169 AcpiTbStoreTable (
170     ACPI_PHYSICAL_ADDRESS   Address,
171     ACPI_TABLE_HEADER       *Table,
172     UINT32                  Length,
173     UINT8                   Flags,
174     UINT32                  *TableIndex);
175 
176 void
177 AcpiTbUninstallTable (
178     ACPI_TABLE_DESC        *TableDesc);
179 
180 void
181 AcpiTbTerminate (
182     void);
183 
184 ACPI_STATUS
185 AcpiTbDeleteNamespaceByOwner (
186     UINT32                  TableIndex);
187 
188 ACPI_STATUS
189 AcpiTbAllocateOwnerId (
190     UINT32                  TableIndex);
191 
192 ACPI_STATUS
193 AcpiTbReleaseOwnerId (
194     UINT32                  TableIndex);
195 
196 ACPI_STATUS
197 AcpiTbGetOwnerId (
198     UINT32                  TableIndex,
199     ACPI_OWNER_ID           *OwnerId);
200 
201 
202 /*
203  * tbutils - table manager utilities
204  */
205 ACPI_STATUS
206 AcpiTbInitializeFacs (
207     void);
208 
209 BOOLEAN
210 AcpiTbTablesLoaded (
211     void);
212 
213 void
214 AcpiTbPrintTableHeader(
215     ACPI_PHYSICAL_ADDRESS   Address,
216     ACPI_TABLE_HEADER       *Header);
217 
218 UINT8
219 AcpiTbChecksum (
220     UINT8                   *Buffer,
221     UINT32                  Length);
222 
223 ACPI_STATUS
224 AcpiTbVerifyChecksum (
225     ACPI_TABLE_HEADER       *Table,
226     UINT32                  Length);
227 
228 void
229 AcpiTbCheckDsdtHeader (
230     void);
231 
232 ACPI_TABLE_HEADER *
233 AcpiTbCopyDsdt (
234     UINT32                  TableIndex);
235 
236 void
237 AcpiTbInstallTableWithOverride (
238     UINT32                  TableIndex,
239     ACPI_TABLE_DESC         *NewTableDesc,
240     BOOLEAN                 Override);
241 
242 ACPI_STATUS
243 AcpiTbInstallFixedTable (
244     ACPI_PHYSICAL_ADDRESS   Address,
245     char                    *Signature,
246     UINT32                  TableIndex);
247 
248 ACPI_STATUS
249 AcpiTbParseRootTable (
250     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
251 
252 #endif /* __ACTABLES_H__ */
253