xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/actables.h (revision 5f39c7e70ca0960d1868c75a449064df712dbb10)
10d02842fSSascha Wildner /******************************************************************************
20d02842fSSascha Wildner  *
30d02842fSSascha Wildner  * Name: actables.h - ACPI table management
40d02842fSSascha Wildner  *
50d02842fSSascha Wildner  *****************************************************************************/
60d02842fSSascha Wildner 
70d02842fSSascha Wildner /*
820294b7eSSascha Wildner  * Copyright (C) 2000 - 2014, Intel Corp.
90d02842fSSascha Wildner  * All rights reserved.
100d02842fSSascha Wildner  *
110d02842fSSascha Wildner  * Redistribution and use in source and binary forms, with or without
120d02842fSSascha Wildner  * modification, are permitted provided that the following conditions
130d02842fSSascha Wildner  * are met:
140d02842fSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
150d02842fSSascha Wildner  *    notice, this list of conditions, and the following disclaimer,
160d02842fSSascha Wildner  *    without modification.
170d02842fSSascha Wildner  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
180d02842fSSascha Wildner  *    substantially similar to the "NO WARRANTY" disclaimer below
190d02842fSSascha Wildner  *    ("Disclaimer") and any redistribution must be conditioned upon
200d02842fSSascha Wildner  *    including a substantially similar Disclaimer requirement for further
210d02842fSSascha Wildner  *    binary redistribution.
220d02842fSSascha Wildner  * 3. Neither the names of the above-listed copyright holders nor the names
230d02842fSSascha Wildner  *    of any contributors may be used to endorse or promote products derived
240d02842fSSascha Wildner  *    from this software without specific prior written permission.
250d02842fSSascha Wildner  *
260d02842fSSascha Wildner  * Alternatively, this software may be distributed under the terms of the
270d02842fSSascha Wildner  * GNU General Public License ("GPL") version 2 as published by the Free
280d02842fSSascha Wildner  * Software Foundation.
290d02842fSSascha Wildner  *
300d02842fSSascha Wildner  * NO WARRANTY
310d02842fSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
320d02842fSSascha Wildner  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
330d02842fSSascha Wildner  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
340d02842fSSascha Wildner  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
350d02842fSSascha Wildner  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
360d02842fSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
370d02842fSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
380d02842fSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
390d02842fSSascha Wildner  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
400d02842fSSascha Wildner  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
410d02842fSSascha Wildner  * POSSIBILITY OF SUCH DAMAGES.
420d02842fSSascha Wildner  */
430d02842fSSascha Wildner 
440d02842fSSascha Wildner #ifndef __ACTABLES_H__
450d02842fSSascha Wildner #define __ACTABLES_H__
460d02842fSSascha Wildner 
470d02842fSSascha Wildner 
480d02842fSSascha Wildner ACPI_STATUS
490d02842fSSascha Wildner AcpiAllocateRootTable (
500d02842fSSascha Wildner     UINT32                  InitialTableCount);
510d02842fSSascha Wildner 
520d02842fSSascha Wildner /*
530d02842fSSascha Wildner  * tbxfroot - Root pointer utilities
540d02842fSSascha Wildner  */
550d02842fSSascha Wildner ACPI_STATUS
560d02842fSSascha Wildner AcpiTbValidateRsdp (
570d02842fSSascha Wildner     ACPI_TABLE_RSDP         *Rsdp);
580d02842fSSascha Wildner 
590d02842fSSascha Wildner UINT8 *
600d02842fSSascha Wildner AcpiTbScanMemoryForRsdp (
610d02842fSSascha Wildner     UINT8                   *StartAddress,
620d02842fSSascha Wildner     UINT32                  Length);
630d02842fSSascha Wildner 
640d02842fSSascha Wildner 
650d02842fSSascha Wildner /*
66d4972a9cSSascha Wildner  * tbdata - table data structure management
67d4972a9cSSascha Wildner  */
68d4972a9cSSascha Wildner ACPI_STATUS
69d4972a9cSSascha Wildner AcpiTbGetNextRootIndex (
70d4972a9cSSascha Wildner     UINT32                  *TableIndex);
71d4972a9cSSascha Wildner 
72d4972a9cSSascha Wildner void
73d4972a9cSSascha Wildner AcpiTbInitTableDescriptor (
74d4972a9cSSascha Wildner     ACPI_TABLE_DESC         *TableDesc,
75d4972a9cSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
76d4972a9cSSascha Wildner     UINT8                   Flags,
77d4972a9cSSascha Wildner     ACPI_TABLE_HEADER       *Table);
78d4972a9cSSascha Wildner 
79d4972a9cSSascha Wildner ACPI_STATUS
80d4972a9cSSascha Wildner AcpiTbAcquireTempTable (
81d4972a9cSSascha Wildner     ACPI_TABLE_DESC         *TableDesc,
82d4972a9cSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
83d4972a9cSSascha Wildner     UINT8                   Flags);
84d4972a9cSSascha Wildner 
85d4972a9cSSascha Wildner void
86d4972a9cSSascha Wildner AcpiTbReleaseTempTable (
87d4972a9cSSascha Wildner     ACPI_TABLE_DESC         *TableDesc);
88d4972a9cSSascha Wildner 
89*5f39c7e7SSascha Wildner ACPI_STATUS
90*5f39c7e7SSascha Wildner AcpiTbValidateTempTable (
91*5f39c7e7SSascha Wildner     ACPI_TABLE_DESC         *TableDesc);
92*5f39c7e7SSascha Wildner 
93*5f39c7e7SSascha Wildner ACPI_STATUS
94*5f39c7e7SSascha Wildner AcpiTbVerifyTempTable (
95*5f39c7e7SSascha Wildner     ACPI_TABLE_DESC         *TableDesc,
96*5f39c7e7SSascha Wildner     char                    *Signature);
97*5f39c7e7SSascha Wildner 
98d4972a9cSSascha Wildner BOOLEAN
99d4972a9cSSascha Wildner AcpiTbIsTableLoaded (
100d4972a9cSSascha Wildner     UINT32                  TableIndex);
101d4972a9cSSascha Wildner 
102d4972a9cSSascha Wildner void
103d4972a9cSSascha Wildner AcpiTbSetTableLoadedFlag (
104d4972a9cSSascha Wildner     UINT32                  TableIndex,
105d4972a9cSSascha Wildner     BOOLEAN                 IsLoaded);
106d4972a9cSSascha Wildner 
107d4972a9cSSascha Wildner 
108d4972a9cSSascha Wildner /*
1090d02842fSSascha Wildner  * tbfadt - FADT parse/convert/validate
1100d02842fSSascha Wildner  */
1110d02842fSSascha Wildner void
1120d02842fSSascha Wildner AcpiTbParseFadt (
1130d02842fSSascha Wildner     UINT32                  TableIndex);
1140d02842fSSascha Wildner 
1150d02842fSSascha Wildner void
1160d02842fSSascha Wildner AcpiTbCreateLocalFadt (
1170d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Table,
1180d02842fSSascha Wildner     UINT32                  Length);
1190d02842fSSascha Wildner 
1200d02842fSSascha Wildner 
1210d02842fSSascha Wildner /*
1220d02842fSSascha Wildner  * tbfind - find ACPI table
1230d02842fSSascha Wildner  */
1240d02842fSSascha Wildner ACPI_STATUS
1250d02842fSSascha Wildner AcpiTbFindTable (
1260d02842fSSascha Wildner     char                    *Signature,
1270d02842fSSascha Wildner     char                    *OemId,
1280d02842fSSascha Wildner     char                    *OemTableId,
1290d02842fSSascha Wildner     UINT32                  *TableIndex);
1300d02842fSSascha Wildner 
1310d02842fSSascha Wildner 
1320d02842fSSascha Wildner /*
1330d02842fSSascha Wildner  * tbinstal - Table removal and deletion
1340d02842fSSascha Wildner  */
1350d02842fSSascha Wildner ACPI_STATUS
1360d02842fSSascha Wildner AcpiTbResizeRootTableList (
1370d02842fSSascha Wildner     void);
1380d02842fSSascha Wildner 
1390d02842fSSascha Wildner ACPI_STATUS
140d4972a9cSSascha Wildner AcpiTbValidateTable (
1410d02842fSSascha Wildner     ACPI_TABLE_DESC         *TableDesc);
1420d02842fSSascha Wildner 
143d4972a9cSSascha Wildner void
144d4972a9cSSascha Wildner AcpiTbInvalidateTable (
1450d02842fSSascha Wildner     ACPI_TABLE_DESC         *TableDesc);
1460d02842fSSascha Wildner 
147d4972a9cSSascha Wildner void
148d4972a9cSSascha Wildner AcpiTbOverrideTable (
149d4972a9cSSascha Wildner     ACPI_TABLE_DESC         *OldTableDesc);
150d4972a9cSSascha Wildner 
151d4972a9cSSascha Wildner ACPI_STATUS
152d4972a9cSSascha Wildner AcpiTbAcquireTable (
153d4972a9cSSascha Wildner     ACPI_TABLE_DESC         *TableDesc,
154d4972a9cSSascha Wildner     ACPI_TABLE_HEADER       **TablePtr,
155d4972a9cSSascha Wildner     UINT32                  *TableLength,
156d4972a9cSSascha Wildner     UINT8                   *TableFlags);
157d4972a9cSSascha Wildner 
158d4972a9cSSascha Wildner void
159d4972a9cSSascha Wildner AcpiTbReleaseTable (
160d4972a9cSSascha Wildner     ACPI_TABLE_HEADER       *Table,
161d4972a9cSSascha Wildner     UINT32                  TableLength,
162d4972a9cSSascha Wildner     UINT8                   TableFlags);
163d4972a9cSSascha Wildner 
164d4972a9cSSascha Wildner ACPI_STATUS
165d4972a9cSSascha Wildner AcpiTbInstallStandardTable (
166d4972a9cSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
167d4972a9cSSascha Wildner     UINT8                   Flags,
168d4972a9cSSascha Wildner     BOOLEAN                 Reload,
169d4972a9cSSascha Wildner     BOOLEAN                 Override,
1700d02842fSSascha Wildner     UINT32                  *TableIndex);
1710d02842fSSascha Wildner 
1720d02842fSSascha Wildner ACPI_STATUS
1730d02842fSSascha Wildner AcpiTbStoreTable (
1740d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
1750d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Table,
1760d02842fSSascha Wildner     UINT32                  Length,
1770d02842fSSascha Wildner     UINT8                   Flags,
1780d02842fSSascha Wildner     UINT32                  *TableIndex);
1790d02842fSSascha Wildner 
1800d02842fSSascha Wildner void
181d4972a9cSSascha Wildner AcpiTbUninstallTable (
1820d02842fSSascha Wildner     ACPI_TABLE_DESC        *TableDesc);
1830d02842fSSascha Wildner 
1840d02842fSSascha Wildner void
1850d02842fSSascha Wildner AcpiTbTerminate (
1860d02842fSSascha Wildner     void);
1870d02842fSSascha Wildner 
1880d02842fSSascha Wildner ACPI_STATUS
1890d02842fSSascha Wildner AcpiTbDeleteNamespaceByOwner (
1900d02842fSSascha Wildner     UINT32                  TableIndex);
1910d02842fSSascha Wildner 
1920d02842fSSascha Wildner ACPI_STATUS
1930d02842fSSascha Wildner AcpiTbAllocateOwnerId (
1940d02842fSSascha Wildner     UINT32                  TableIndex);
1950d02842fSSascha Wildner 
1960d02842fSSascha Wildner ACPI_STATUS
1970d02842fSSascha Wildner AcpiTbReleaseOwnerId (
1980d02842fSSascha Wildner     UINT32                  TableIndex);
1990d02842fSSascha Wildner 
2000d02842fSSascha Wildner ACPI_STATUS
2010d02842fSSascha Wildner AcpiTbGetOwnerId (
2020d02842fSSascha Wildner     UINT32                  TableIndex,
2030d02842fSSascha Wildner     ACPI_OWNER_ID           *OwnerId);
2040d02842fSSascha Wildner 
2050d02842fSSascha Wildner 
2060d02842fSSascha Wildner /*
2070d02842fSSascha Wildner  * tbutils - table manager utilities
2080d02842fSSascha Wildner  */
2090d02842fSSascha Wildner ACPI_STATUS
2100d02842fSSascha Wildner AcpiTbInitializeFacs (
2110d02842fSSascha Wildner     void);
2120d02842fSSascha Wildner 
2130d02842fSSascha Wildner BOOLEAN
2140d02842fSSascha Wildner AcpiTbTablesLoaded (
2150d02842fSSascha Wildner     void);
2160d02842fSSascha Wildner 
2170d02842fSSascha Wildner void
2180d02842fSSascha Wildner AcpiTbPrintTableHeader(
2190d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
2200d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Header);
2210d02842fSSascha Wildner 
2220d02842fSSascha Wildner UINT8
2230d02842fSSascha Wildner AcpiTbChecksum (
2240d02842fSSascha Wildner     UINT8                   *Buffer,
2250d02842fSSascha Wildner     UINT32                  Length);
2260d02842fSSascha Wildner 
2270d02842fSSascha Wildner ACPI_STATUS
2280d02842fSSascha Wildner AcpiTbVerifyChecksum (
2290d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Table,
2300d02842fSSascha Wildner     UINT32                  Length);
2310d02842fSSascha Wildner 
2320d02842fSSascha Wildner void
2330d02842fSSascha Wildner AcpiTbCheckDsdtHeader (
2340d02842fSSascha Wildner     void);
2350d02842fSSascha Wildner 
2360d02842fSSascha Wildner ACPI_TABLE_HEADER *
2370d02842fSSascha Wildner AcpiTbCopyDsdt (
2380d02842fSSascha Wildner     UINT32                  TableIndex);
2390d02842fSSascha Wildner 
2400d02842fSSascha Wildner void
241d4972a9cSSascha Wildner AcpiTbInstallTableWithOverride (
242d4972a9cSSascha Wildner     UINT32                  TableIndex,
243d4972a9cSSascha Wildner     ACPI_TABLE_DESC         *NewTableDesc,
244d4972a9cSSascha Wildner     BOOLEAN                 Override);
245d4972a9cSSascha Wildner 
246d4972a9cSSascha Wildner ACPI_STATUS
247d4972a9cSSascha Wildner AcpiTbInstallFixedTable (
2480d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
2490d02842fSSascha Wildner     char                    *Signature,
2500d02842fSSascha Wildner     UINT32                  TableIndex);
2510d02842fSSascha Wildner 
2520d02842fSSascha Wildner ACPI_STATUS
2530d02842fSSascha Wildner AcpiTbParseRootTable (
2540d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
2550d02842fSSascha Wildner 
2560d02842fSSascha Wildner #endif /* __ACTABLES_H__ */
257