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