xref: /freebsd/sys/contrib/dev/acpica/include/actables.h (revision f8146b882bc156c1d8ddf14bbea67253ebc064bb)
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*f8146b88SJung-uk Kim  * Copyright (C) 2000 - 2016, 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  */
55313a0c13SJung-uk Kim UINT32
56313a0c13SJung-uk Kim AcpiTbGetRsdpLength (
57313a0c13SJung-uk Kim     ACPI_TABLE_RSDP         *Rsdp);
58313a0c13SJung-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 /*
70313a0c13SJung-uk Kim  * tbdata - table data structure management
71313a0c13SJung-uk Kim  */
72313a0c13SJung-uk Kim ACPI_STATUS
737cf3e94aSJung-uk Kim AcpiTbGetNextTableDescriptor (
747cf3e94aSJung-uk Kim     UINT32                  *TableIndex,
757cf3e94aSJung-uk Kim     ACPI_TABLE_DESC         **TableDesc);
76313a0c13SJung-uk Kim 
77313a0c13SJung-uk Kim void
78313a0c13SJung-uk Kim AcpiTbInitTableDescriptor (
79313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
80313a0c13SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
81313a0c13SJung-uk Kim     UINT8                   Flags,
82313a0c13SJung-uk Kim     ACPI_TABLE_HEADER       *Table);
83313a0c13SJung-uk Kim 
84313a0c13SJung-uk Kim ACPI_STATUS
85313a0c13SJung-uk Kim AcpiTbAcquireTempTable (
86313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
87313a0c13SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
88313a0c13SJung-uk Kim     UINT8                   Flags);
89313a0c13SJung-uk Kim 
90313a0c13SJung-uk Kim void
91313a0c13SJung-uk Kim AcpiTbReleaseTempTable (
92313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
93313a0c13SJung-uk Kim 
94313a0c13SJung-uk Kim ACPI_STATUS
95313a0c13SJung-uk Kim AcpiTbValidateTempTable (
96313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
97313a0c13SJung-uk Kim 
98313a0c13SJung-uk Kim ACPI_STATUS
99313a0c13SJung-uk Kim AcpiTbVerifyTempTable (
100313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
101313a0c13SJung-uk Kim     char                    *Signature);
102313a0c13SJung-uk Kim 
103313a0c13SJung-uk Kim BOOLEAN
104313a0c13SJung-uk Kim AcpiTbIsTableLoaded (
105313a0c13SJung-uk Kim     UINT32                  TableIndex);
106313a0c13SJung-uk Kim 
107313a0c13SJung-uk Kim void
108313a0c13SJung-uk Kim AcpiTbSetTableLoadedFlag (
109313a0c13SJung-uk Kim     UINT32                  TableIndex,
110313a0c13SJung-uk Kim     BOOLEAN                 IsLoaded);
111313a0c13SJung-uk Kim 
112313a0c13SJung-uk Kim 
113313a0c13SJung-uk Kim /*
114a9f12690SJung-uk Kim  * tbfadt - FADT parse/convert/validate
115a9f12690SJung-uk Kim  */
116a9f12690SJung-uk Kim void
117a9f12690SJung-uk Kim AcpiTbParseFadt (
118*f8146b88SJung-uk Kim     void);
119a9f12690SJung-uk Kim 
120a9f12690SJung-uk Kim void
121a9f12690SJung-uk Kim AcpiTbCreateLocalFadt (
122a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
123a9f12690SJung-uk Kim     UINT32                  Length);
124a9f12690SJung-uk Kim 
125a9f12690SJung-uk Kim 
126a9f12690SJung-uk Kim /*
127a9f12690SJung-uk Kim  * tbfind - find ACPI table
128a9f12690SJung-uk Kim  */
129a9f12690SJung-uk Kim ACPI_STATUS
130a9f12690SJung-uk Kim AcpiTbFindTable (
131a9f12690SJung-uk Kim     char                    *Signature,
132a9f12690SJung-uk Kim     char                    *OemId,
133a9f12690SJung-uk Kim     char                    *OemTableId,
134a9f12690SJung-uk Kim     UINT32                  *TableIndex);
135a9f12690SJung-uk Kim 
136a9f12690SJung-uk Kim 
137a9f12690SJung-uk Kim /*
138a9f12690SJung-uk Kim  * tbinstal - Table removal and deletion
139a9f12690SJung-uk Kim  */
140a9f12690SJung-uk Kim ACPI_STATUS
141a9f12690SJung-uk Kim AcpiTbResizeRootTableList (
142a9f12690SJung-uk Kim     void);
143a9f12690SJung-uk Kim 
144a9f12690SJung-uk Kim ACPI_STATUS
145313a0c13SJung-uk Kim AcpiTbValidateTable (
146a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
147a9f12690SJung-uk Kim 
148313a0c13SJung-uk Kim void
149313a0c13SJung-uk Kim AcpiTbInvalidateTable (
150a159c266SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc);
151a159c266SJung-uk Kim 
152313a0c13SJung-uk Kim void
153313a0c13SJung-uk Kim AcpiTbOverrideTable (
154313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *OldTableDesc);
155313a0c13SJung-uk Kim 
156a9f12690SJung-uk Kim ACPI_STATUS
157313a0c13SJung-uk Kim AcpiTbAcquireTable (
158a9f12690SJung-uk Kim     ACPI_TABLE_DESC         *TableDesc,
159313a0c13SJung-uk Kim     ACPI_TABLE_HEADER       **TablePtr,
160313a0c13SJung-uk Kim     UINT32                  *TableLength,
161313a0c13SJung-uk Kim     UINT8                   *TableFlags);
162313a0c13SJung-uk Kim 
163313a0c13SJung-uk Kim void
164313a0c13SJung-uk Kim AcpiTbReleaseTable (
165313a0c13SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
166313a0c13SJung-uk Kim     UINT32                  TableLength,
167313a0c13SJung-uk Kim     UINT8                   TableFlags);
168313a0c13SJung-uk Kim 
169313a0c13SJung-uk Kim ACPI_STATUS
170313a0c13SJung-uk Kim AcpiTbInstallStandardTable (
171313a0c13SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
172313a0c13SJung-uk Kim     UINT8                   Flags,
173313a0c13SJung-uk Kim     BOOLEAN                 Reload,
174313a0c13SJung-uk Kim     BOOLEAN                 Override,
175a9f12690SJung-uk Kim     UINT32                  *TableIndex);
176a9f12690SJung-uk Kim 
177a9f12690SJung-uk Kim void
178313a0c13SJung-uk Kim AcpiTbUninstallTable (
179a9f12690SJung-uk Kim     ACPI_TABLE_DESC        *TableDesc);
180a9f12690SJung-uk Kim 
181a9f12690SJung-uk Kim void
182a9f12690SJung-uk Kim AcpiTbTerminate (
183a9f12690SJung-uk Kim     void);
184a9f12690SJung-uk Kim 
185a9f12690SJung-uk Kim ACPI_STATUS
186a9f12690SJung-uk Kim AcpiTbDeleteNamespaceByOwner (
187a9f12690SJung-uk Kim     UINT32                  TableIndex);
188a9f12690SJung-uk Kim 
189a9f12690SJung-uk Kim ACPI_STATUS
190a9f12690SJung-uk Kim AcpiTbAllocateOwnerId (
191a9f12690SJung-uk Kim     UINT32                  TableIndex);
192a9f12690SJung-uk Kim 
193a9f12690SJung-uk Kim ACPI_STATUS
194a9f12690SJung-uk Kim AcpiTbReleaseOwnerId (
195a9f12690SJung-uk Kim     UINT32                  TableIndex);
196a9f12690SJung-uk Kim 
197a9f12690SJung-uk Kim ACPI_STATUS
198a9f12690SJung-uk Kim AcpiTbGetOwnerId (
199a9f12690SJung-uk Kim     UINT32                  TableIndex,
200a9f12690SJung-uk Kim     ACPI_OWNER_ID           *OwnerId);
201a9f12690SJung-uk Kim 
202a9f12690SJung-uk Kim 
203a9f12690SJung-uk Kim /*
204a9f12690SJung-uk Kim  * tbutils - table manager utilities
205a9f12690SJung-uk Kim  */
206a9f12690SJung-uk Kim ACPI_STATUS
207a9f12690SJung-uk Kim AcpiTbInitializeFacs (
208a9f12690SJung-uk Kim     void);
209a9f12690SJung-uk Kim 
210a9f12690SJung-uk Kim void
211a9f12690SJung-uk Kim AcpiTbPrintTableHeader(
212a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
213a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Header);
214a9f12690SJung-uk Kim 
215a9f12690SJung-uk Kim UINT8
216a9f12690SJung-uk Kim AcpiTbChecksum (
217a9f12690SJung-uk Kim     UINT8                   *Buffer,
218a9f12690SJung-uk Kim     UINT32                  Length);
219a9f12690SJung-uk Kim 
220a9f12690SJung-uk Kim ACPI_STATUS
221a9f12690SJung-uk Kim AcpiTbVerifyChecksum (
222a9f12690SJung-uk Kim     ACPI_TABLE_HEADER       *Table,
223a9f12690SJung-uk Kim     UINT32                  Length);
224a9f12690SJung-uk Kim 
225a9f12690SJung-uk Kim void
2268c8be05fSJung-uk Kim AcpiTbCheckDsdtHeader (
2278c8be05fSJung-uk Kim     void);
2288c8be05fSJung-uk Kim 
2298c8be05fSJung-uk Kim ACPI_TABLE_HEADER *
2308c8be05fSJung-uk Kim AcpiTbCopyDsdt (
2318c8be05fSJung-uk Kim     UINT32                  TableIndex);
2328c8be05fSJung-uk Kim 
2338c8be05fSJung-uk Kim void
234313a0c13SJung-uk Kim AcpiTbInstallTableWithOverride (
235313a0c13SJung-uk Kim     ACPI_TABLE_DESC         *NewTableDesc,
23670e6ab8fSJung-uk Kim     BOOLEAN                 Override,
23770e6ab8fSJung-uk Kim     UINT32                  *TableIndex);
238313a0c13SJung-uk Kim 
239313a0c13SJung-uk Kim ACPI_STATUS
240313a0c13SJung-uk Kim AcpiTbInstallFixedTable (
241a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   Address,
242a9f12690SJung-uk Kim     char                    *Signature,
24370e6ab8fSJung-uk Kim     UINT32                  *TableIndex);
244a9f12690SJung-uk Kim 
245a9f12690SJung-uk Kim ACPI_STATUS
246a9f12690SJung-uk Kim AcpiTbParseRootTable (
247a9f12690SJung-uk Kim     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
248a9f12690SJung-uk Kim 
24970e6ab8fSJung-uk Kim 
25070e6ab8fSJung-uk Kim /*
25170e6ab8fSJung-uk Kim  * tbxfload
25270e6ab8fSJung-uk Kim  */
25370e6ab8fSJung-uk Kim ACPI_STATUS
25470e6ab8fSJung-uk Kim AcpiTbLoadNamespace (
25570e6ab8fSJung-uk Kim     void);
25670e6ab8fSJung-uk Kim 
257a9f12690SJung-uk Kim #endif /* __ACTABLES_H__ */
258