xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/actables.h (revision 20294b7e33bbb88515745d3036e94e3155ea80a9)
10d02842fSSascha Wildner /******************************************************************************
20d02842fSSascha Wildner  *
30d02842fSSascha Wildner  * Name: actables.h - ACPI table management
40d02842fSSascha Wildner  *
50d02842fSSascha Wildner  *****************************************************************************/
60d02842fSSascha Wildner 
70d02842fSSascha Wildner /*
8*20294b7eSSascha 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 /*
660d02842fSSascha Wildner  * tbfadt - FADT parse/convert/validate
670d02842fSSascha Wildner  */
680d02842fSSascha Wildner void
690d02842fSSascha Wildner AcpiTbParseFadt (
700d02842fSSascha Wildner     UINT32                  TableIndex);
710d02842fSSascha Wildner 
720d02842fSSascha Wildner void
730d02842fSSascha Wildner AcpiTbCreateLocalFadt (
740d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Table,
750d02842fSSascha Wildner     UINT32                  Length);
760d02842fSSascha Wildner 
770d02842fSSascha Wildner 
780d02842fSSascha Wildner /*
790d02842fSSascha Wildner  * tbfind - find ACPI table
800d02842fSSascha Wildner  */
810d02842fSSascha Wildner ACPI_STATUS
820d02842fSSascha Wildner AcpiTbFindTable (
830d02842fSSascha Wildner     char                    *Signature,
840d02842fSSascha Wildner     char                    *OemId,
850d02842fSSascha Wildner     char                    *OemTableId,
860d02842fSSascha Wildner     UINT32                  *TableIndex);
870d02842fSSascha Wildner 
880d02842fSSascha Wildner 
890d02842fSSascha Wildner /*
900d02842fSSascha Wildner  * tbinstal - Table removal and deletion
910d02842fSSascha Wildner  */
920d02842fSSascha Wildner ACPI_STATUS
930d02842fSSascha Wildner AcpiTbResizeRootTableList (
940d02842fSSascha Wildner     void);
950d02842fSSascha Wildner 
960d02842fSSascha Wildner ACPI_STATUS
970d02842fSSascha Wildner AcpiTbVerifyTable (
980d02842fSSascha Wildner     ACPI_TABLE_DESC         *TableDesc);
990d02842fSSascha Wildner 
1000d02842fSSascha Wildner ACPI_TABLE_HEADER *
1010d02842fSSascha Wildner AcpiTbTableOverride (
1020d02842fSSascha Wildner     ACPI_TABLE_HEADER       *TableHeader,
1030d02842fSSascha Wildner     ACPI_TABLE_DESC         *TableDesc);
1040d02842fSSascha Wildner 
1050d02842fSSascha Wildner ACPI_STATUS
1060d02842fSSascha Wildner AcpiTbAddTable (
1070d02842fSSascha Wildner     ACPI_TABLE_DESC         *TableDesc,
1080d02842fSSascha Wildner     UINT32                  *TableIndex);
1090d02842fSSascha Wildner 
1100d02842fSSascha Wildner ACPI_STATUS
1110d02842fSSascha Wildner AcpiTbStoreTable (
1120d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
1130d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Table,
1140d02842fSSascha Wildner     UINT32                  Length,
1150d02842fSSascha Wildner     UINT8                   Flags,
1160d02842fSSascha Wildner     UINT32                  *TableIndex);
1170d02842fSSascha Wildner 
1180d02842fSSascha Wildner void
1190d02842fSSascha Wildner AcpiTbDeleteTable (
1200d02842fSSascha Wildner     ACPI_TABLE_DESC        *TableDesc);
1210d02842fSSascha Wildner 
1220d02842fSSascha Wildner void
1230d02842fSSascha Wildner AcpiTbTerminate (
1240d02842fSSascha Wildner     void);
1250d02842fSSascha Wildner 
1260d02842fSSascha Wildner ACPI_STATUS
1270d02842fSSascha Wildner AcpiTbDeleteNamespaceByOwner (
1280d02842fSSascha Wildner     UINT32                  TableIndex);
1290d02842fSSascha Wildner 
1300d02842fSSascha Wildner ACPI_STATUS
1310d02842fSSascha Wildner AcpiTbAllocateOwnerId (
1320d02842fSSascha Wildner     UINT32                  TableIndex);
1330d02842fSSascha Wildner 
1340d02842fSSascha Wildner ACPI_STATUS
1350d02842fSSascha Wildner AcpiTbReleaseOwnerId (
1360d02842fSSascha Wildner     UINT32                  TableIndex);
1370d02842fSSascha Wildner 
1380d02842fSSascha Wildner ACPI_STATUS
1390d02842fSSascha Wildner AcpiTbGetOwnerId (
1400d02842fSSascha Wildner     UINT32                  TableIndex,
1410d02842fSSascha Wildner     ACPI_OWNER_ID           *OwnerId);
1420d02842fSSascha Wildner 
1430d02842fSSascha Wildner BOOLEAN
1440d02842fSSascha Wildner AcpiTbIsTableLoaded (
1450d02842fSSascha Wildner     UINT32                  TableIndex);
1460d02842fSSascha Wildner 
1470d02842fSSascha Wildner void
1480d02842fSSascha Wildner AcpiTbSetTableLoadedFlag (
1490d02842fSSascha Wildner     UINT32                  TableIndex,
1500d02842fSSascha Wildner     BOOLEAN                 IsLoaded);
1510d02842fSSascha Wildner 
1520d02842fSSascha Wildner 
1530d02842fSSascha Wildner /*
1540d02842fSSascha Wildner  * tbutils - table manager utilities
1550d02842fSSascha Wildner  */
1560d02842fSSascha Wildner ACPI_STATUS
1570d02842fSSascha Wildner AcpiTbInitializeFacs (
1580d02842fSSascha Wildner     void);
1590d02842fSSascha Wildner 
1600d02842fSSascha Wildner BOOLEAN
1610d02842fSSascha Wildner AcpiTbTablesLoaded (
1620d02842fSSascha Wildner     void);
1630d02842fSSascha Wildner 
1640d02842fSSascha Wildner void
1650d02842fSSascha Wildner AcpiTbPrintTableHeader(
1660d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
1670d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Header);
1680d02842fSSascha Wildner 
1690d02842fSSascha Wildner UINT8
1700d02842fSSascha Wildner AcpiTbChecksum (
1710d02842fSSascha Wildner     UINT8                   *Buffer,
1720d02842fSSascha Wildner     UINT32                  Length);
1730d02842fSSascha Wildner 
1740d02842fSSascha Wildner ACPI_STATUS
1750d02842fSSascha Wildner AcpiTbVerifyChecksum (
1760d02842fSSascha Wildner     ACPI_TABLE_HEADER       *Table,
1770d02842fSSascha Wildner     UINT32                  Length);
1780d02842fSSascha Wildner 
1790d02842fSSascha Wildner void
1800d02842fSSascha Wildner AcpiTbCheckDsdtHeader (
1810d02842fSSascha Wildner     void);
1820d02842fSSascha Wildner 
1830d02842fSSascha Wildner ACPI_TABLE_HEADER *
1840d02842fSSascha Wildner AcpiTbCopyDsdt (
1850d02842fSSascha Wildner     UINT32                  TableIndex);
1860d02842fSSascha Wildner 
1870d02842fSSascha Wildner void
1880d02842fSSascha Wildner AcpiTbInstallTable (
1890d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   Address,
1900d02842fSSascha Wildner     char                    *Signature,
1910d02842fSSascha Wildner     UINT32                  TableIndex);
1920d02842fSSascha Wildner 
1930d02842fSSascha Wildner ACPI_STATUS
1940d02842fSSascha Wildner AcpiTbParseRootTable (
1950d02842fSSascha Wildner     ACPI_PHYSICAL_ADDRESS   RsdpAddress);
1960d02842fSSascha Wildner 
1970d02842fSSascha Wildner #endif /* __ACTABLES_H__ */
198