xref: /freebsd/sys/contrib/dev/acpica/include/actables.h (revision 313a0c13efa638cf248e35eed49f36ec0a1a7f26)
1a9f12690SJung-uk Kim /******************************************************************************
2a9f12690SJung-uk Kim  *
3a9f12690SJung-uk Kim  * Name: actables.h - ACPI table management
4a9f12690SJung-uk Kim  *
5a9f12690SJung-uk Kim  *****************************************************************************/
6a9f12690SJung-uk Kim 
7d244b227SJung-uk Kim /*
8*313a0c13SJung-uk Kim  * Copyright (C) 2000 - 2014, Intel Corp.
9a9f12690SJung-uk Kim  * All rights reserved.
10a9f12690SJung-uk Kim  *
11d244b227SJung-uk Kim  * Redistribution and use in source and binary forms, with or without
12d244b227SJung-uk Kim  * modification, are permitted provided that the following conditions
13d244b227SJung-uk Kim  * are met:
14d244b227SJung-uk Kim  * 1. Redistributions of source code must retain the above copyright
15d244b227SJung-uk Kim  *    notice, this list of conditions, and the following disclaimer,
16d244b227SJung-uk Kim  *    without modification.
17d244b227SJung-uk Kim  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18d244b227SJung-uk Kim  *    substantially similar to the "NO WARRANTY" disclaimer below
19d244b227SJung-uk Kim  *    ("Disclaimer") and any redistribution must be conditioned upon
20d244b227SJung-uk Kim  *    including a substantially similar Disclaimer requirement for further
21d244b227SJung-uk Kim  *    binary redistribution.
22d244b227SJung-uk Kim  * 3. Neither the names of the above-listed copyright holders nor the names
23d244b227SJung-uk Kim  *    of any contributors may be used to endorse or promote products derived
24d244b227SJung-uk Kim  *    from this software without specific prior written permission.
25a9f12690SJung-uk Kim  *
26d244b227SJung-uk Kim  * Alternatively, this software may be distributed under the terms of the
27d244b227SJung-uk Kim  * GNU General Public License ("GPL") version 2 as published by the Free
28d244b227SJung-uk Kim  * Software Foundation.
29a9f12690SJung-uk Kim  *
30d244b227SJung-uk Kim  * NO WARRANTY
31d244b227SJung-uk Kim  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32d244b227SJung-uk Kim  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33d244b227SJung-uk Kim  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34d244b227SJung-uk Kim  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35d244b227SJung-uk Kim  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36d244b227SJung-uk Kim  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37d244b227SJung-uk Kim  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38d244b227SJung-uk Kim  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39d244b227SJung-uk Kim  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40d244b227SJung-uk Kim  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41d244b227SJung-uk Kim  * POSSIBILITY OF SUCH DAMAGES.
42d244b227SJung-uk Kim  */
43a9f12690SJung-uk Kim 
44a9f12690SJung-uk Kim #ifndef __ACTABLES_H__
45a9f12690SJung-uk Kim #define __ACTABLES_H__
46a9f12690SJung-uk Kim 
47a9f12690SJung-uk Kim 
48a9f12690SJung-uk Kim ACPI_STATUS
49a9f12690SJung-uk Kim AcpiAllocateRootTable (
50a9f12690SJung-uk Kim     UINT32                  InitialTableCount);
51a9f12690SJung-uk Kim 
52a9f12690SJung-uk Kim /*
538d744e47SJung-uk Kim  * tbxfroot - Root pointer utilities
548d744e47SJung-uk Kim  */
55*313a0c13SJung-uk Kim UINT32
56*313a0c13SJung-uk Kim AcpiTbGetRsdpLength (
57*313a0c13SJung-uk Kim     ACPI_TABLE_RSDP         *Rsdp);
58*313a0c13SJung-uk Kim 
59bf6fac21SJung-uk Kim ACPI_STATUS
60bf6fac21SJung-uk Kim AcpiTbValidateRsdp (
61bf6fac21SJung-uk Kim     ACPI_TABLE_RSDP         *Rsdp);
62bf6fac21SJung-uk Kim 
638d744e47SJung-uk Kim UINT8 *
648d744e47SJung-uk Kim AcpiTbScanMemoryForRsdp (
658d744e47SJung-uk Kim     UINT8                   *StartAddress,
668d744e47SJung-uk Kim     UINT32                  Length);
678d744e47SJung-uk Kim 
688d744e47SJung-uk Kim 
698d744e47SJung-uk Kim /*
70*313a0c13SJung-uk Kim  * tbdata - table data structure management
71*313a0c13SJung-uk Kim  */
72*313a0c13SJung-uk Kim ACPI_STATUS
73*313a0c13SJung-uk Kim AcpiTbGetNextRootIndex (
74*313a0c13SJung-uk Kim     UINT32                  *TableIndex);
75*313a0c13SJung-uk Kim 
76*313a0c13SJung-uk Kim void
77*313a0c13SJung-uk Kim AcpiTbInitTableDescriptor (
78*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
79*313a0c13SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
80*313a0c13SJung-uk Kim     UINT8                   Flags,
81*313a0c13SJung-uk Kim     ACPI_TABLE_HEADER       *Table);
82*313a0c13SJung-uk Kim 
83*313a0c13SJung-uk Kim ACPI_STATUS
84*313a0c13SJung-uk Kim AcpiTbAcquireTempTable (
85*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
86*313a0c13SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
87*313a0c13SJung-uk Kim     UINT8                   Flags);
88*313a0c13SJung-uk Kim 
89*313a0c13SJung-uk Kim void
90*313a0c13SJung-uk Kim AcpiTbReleaseTempTable (
91*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
92*313a0c13SJung-uk Kim 
93*313a0c13SJung-uk Kim ACPI_STATUS
94*313a0c13SJung-uk Kim AcpiTbValidateTempTable (
95*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
96*313a0c13SJung-uk Kim 
97*313a0c13SJung-uk Kim ACPI_STATUS
98*313a0c13SJung-uk Kim AcpiTbVerifyTempTable (
99*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
100*313a0c13SJung-uk Kim     char                    *Signature);
101*313a0c13SJung-uk Kim 
102*313a0c13SJung-uk Kim BOOLEAN
103*313a0c13SJung-uk Kim AcpiTbIsTableLoaded (
104*313a0c13SJung-uk Kim     UINT32                  TableIndex);
105*313a0c13SJung-uk Kim 
106*313a0c13SJung-uk Kim void
107*313a0c13SJung-uk Kim AcpiTbSetTableLoadedFlag (
108*313a0c13SJung-uk Kim     UINT32                  TableIndex,
109*313a0c13SJung-uk Kim     BOOLEAN                 IsLoaded);
110*313a0c13SJung-uk Kim 
111*313a0c13SJung-uk Kim 
112*313a0c13SJung-uk Kim /*
113a9f12690SJung-uk Kim  * tbfadt - FADT parse/convert/validate
114a9f12690SJung-uk Kim  */
115a9f12690SJung-uk Kim void
116a9f12690SJung-uk Kim AcpiTbParseFadt (
117a9f12690SJung-uk Kim     UINT32                  TableIndex);
118a9f12690SJung-uk Kim 
119a9f12690SJung-uk Kim void
120a9f12690SJung-uk Kim AcpiTbCreateLocalFadt (
121a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
122a9f12690SJung-uk Kim     UINT32                  Length);
123a9f12690SJung-uk Kim 
124a9f12690SJung-uk Kim 
125a9f12690SJung-uk Kim /*
126a9f12690SJung-uk Kim  * tbfind - find ACPI table
127a9f12690SJung-uk Kim  */
128a9f12690SJung-uk Kim ACPI_STATUS
129a9f12690SJung-uk Kim AcpiTbFindTable (
130a9f12690SJung-uk Kim     char                    *Signature,
131a9f12690SJung-uk Kim     char                    *OemId,
132a9f12690SJung-uk Kim     char                    *OemTableId,
133a9f12690SJung-uk Kim     UINT32                  *TableIndex);
134a9f12690SJung-uk Kim 
135a9f12690SJung-uk Kim 
136a9f12690SJung-uk Kim /*
137a9f12690SJung-uk Kim  * tbinstal - Table removal and deletion
138a9f12690SJung-uk Kim  */
139a9f12690SJung-uk Kim ACPI_STATUS
140a9f12690SJung-uk Kim AcpiTbResizeRootTableList (
141a9f12690SJung-uk Kim     void);
142a9f12690SJung-uk Kim 
143a9f12690SJung-uk Kim ACPI_STATUS
144*313a0c13SJung-uk Kim AcpiTbValidateTable (
145a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
146a9f12690SJung-uk Kim 
147*313a0c13SJung-uk Kim void
148*313a0c13SJung-uk Kim AcpiTbInvalidateTable (
149a159c266SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
150a159c266SJung-uk Kim 
151*313a0c13SJung-uk Kim void
152*313a0c13SJung-uk Kim AcpiTbOverrideTable (
153*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *OldTableDesc);
154*313a0c13SJung-uk Kim 
155a9f12690SJung-uk Kim ACPI_STATUS
156*313a0c13SJung-uk Kim AcpiTbAcquireTable (
157a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
158*313a0c13SJung-uk Kim     ACPI_TABLE_HEADER       **TablePtr,
159*313a0c13SJung-uk Kim     UINT32                  *TableLength,
160*313a0c13SJung-uk Kim     UINT8                   *TableFlags);
161*313a0c13SJung-uk Kim 
162*313a0c13SJung-uk Kim void
163*313a0c13SJung-uk Kim AcpiTbReleaseTable (
164*313a0c13SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
165*313a0c13SJung-uk Kim     UINT32                  TableLength,
166*313a0c13SJung-uk Kim     UINT8                   TableFlags);
167*313a0c13SJung-uk Kim 
168*313a0c13SJung-uk Kim ACPI_STATUS
169*313a0c13SJung-uk Kim AcpiTbInstallStandardTable (
170*313a0c13SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
171*313a0c13SJung-uk Kim     UINT8                   Flags,
172*313a0c13SJung-uk Kim     BOOLEAN                 Reload,
173*313a0c13SJung-uk Kim     BOOLEAN                 Override,
174a9f12690SJung-uk Kim     UINT32                  *TableIndex);
175a9f12690SJung-uk Kim 
176a9f12690SJung-uk Kim ACPI_STATUS
177a9f12690SJung-uk Kim AcpiTbStoreTable (
178a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
179a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
180a9f12690SJung-uk Kim     UINT32                  Length,
181a9f12690SJung-uk Kim     UINT8                   Flags,
182a9f12690SJung-uk Kim     UINT32                  *TableIndex);
183a9f12690SJung-uk Kim 
184a9f12690SJung-uk Kim void
185*313a0c13SJung-uk Kim AcpiTbUninstallTable (
186a9f12690SJung-uk Kim     ACPI_TABLE_DESC        *TableDesc);
187a9f12690SJung-uk Kim 
188a9f12690SJung-uk Kim void
189a9f12690SJung-uk Kim AcpiTbTerminate (
190a9f12690SJung-uk Kim     void);
191a9f12690SJung-uk Kim 
192a9f12690SJung-uk Kim ACPI_STATUS
193a9f12690SJung-uk Kim AcpiTbDeleteNamespaceByOwner (
194a9f12690SJung-uk Kim     UINT32                  TableIndex);
195a9f12690SJung-uk Kim 
196a9f12690SJung-uk Kim ACPI_STATUS
197a9f12690SJung-uk Kim AcpiTbAllocateOwnerId (
198a9f12690SJung-uk Kim     UINT32                  TableIndex);
199a9f12690SJung-uk Kim 
200a9f12690SJung-uk Kim ACPI_STATUS
201a9f12690SJung-uk Kim AcpiTbReleaseOwnerId (
202a9f12690SJung-uk Kim     UINT32                  TableIndex);
203a9f12690SJung-uk Kim 
204a9f12690SJung-uk Kim ACPI_STATUS
205a9f12690SJung-uk Kim AcpiTbGetOwnerId (
206a9f12690SJung-uk Kim     UINT32                  TableIndex,
207a9f12690SJung-uk Kim     ACPI_OWNER_ID           *OwnerId);
208a9f12690SJung-uk Kim 
209a9f12690SJung-uk Kim 
210a9f12690SJung-uk Kim /*
211a9f12690SJung-uk Kim  * tbutils - table manager utilities
212a9f12690SJung-uk Kim  */
213a9f12690SJung-uk Kim ACPI_STATUS
214a9f12690SJung-uk Kim AcpiTbInitializeFacs (
215a9f12690SJung-uk Kim     void);
216a9f12690SJung-uk Kim 
217a9f12690SJung-uk Kim BOOLEAN
218a9f12690SJung-uk Kim AcpiTbTablesLoaded (
219a9f12690SJung-uk Kim     void);
220a9f12690SJung-uk Kim 
221a9f12690SJung-uk Kim void
222a9f12690SJung-uk Kim AcpiTbPrintTableHeader(
223a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
224a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Header);
225a9f12690SJung-uk Kim 
226a9f12690SJung-uk Kim UINT8
227a9f12690SJung-uk Kim AcpiTbChecksum (
228a9f12690SJung-uk Kim     UINT8                   *Buffer,
229a9f12690SJung-uk Kim     UINT32                  Length);
230a9f12690SJung-uk Kim 
231a9f12690SJung-uk Kim ACPI_STATUS
232a9f12690SJung-uk Kim AcpiTbVerifyChecksum (
233a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
234a9f12690SJung-uk Kim     UINT32                  Length);
235a9f12690SJung-uk Kim 
236a9f12690SJung-uk Kim void
2378c8be05fSJung-uk Kim AcpiTbCheckDsdtHeader (
2388c8be05fSJung-uk Kim     void);
2398c8be05fSJung-uk Kim 
2408c8be05fSJung-uk Kim ACPI_TABLE_HEADER *
2418c8be05fSJung-uk Kim AcpiTbCopyDsdt (
2428c8be05fSJung-uk Kim     UINT32                  TableIndex);
2438c8be05fSJung-uk Kim 
2448c8be05fSJung-uk Kim void
245*313a0c13SJung-uk Kim AcpiTbInstallTableWithOverride (
246*313a0c13SJung-uk Kim     UINT32                  TableIndex,
247*313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *NewTableDesc,
248*313a0c13SJung-uk Kim     BOOLEAN                 Override);
249*313a0c13SJung-uk Kim 
250*313a0c13SJung-uk Kim ACPI_STATUS
251*313a0c13SJung-uk Kim AcpiTbInstallFixedTable (
252a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
253a9f12690SJung-uk Kim     char                    *Signature,
254a9f12690SJung-uk Kim     UINT32                  TableIndex);
255a9f12690SJung-uk Kim 
256a9f12690SJung-uk Kim ACPI_STATUS
257a9f12690SJung-uk Kim AcpiTbParseRootTable (
258a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
259a9f12690SJung-uk Kim 
260a9f12690SJung-uk Kim #endif /* __ACTABLES_H__ */
261