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 /* 8f8146b88SJung-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 ( 118f8146b88SJung-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 181493deb39SJung-uk Kim ACPI_STATUS 182493deb39SJung-uk Kim AcpiTbLoadTable ( 183493deb39SJung-uk Kim UINT32 TableIndex, 184493deb39SJung-uk Kim ACPI_NAMESPACE_NODE *ParentNode); 185493deb39SJung-uk Kim 186493deb39SJung-uk Kim ACPI_STATUS 187493deb39SJung-uk Kim AcpiTbInstallAndLoadTable ( 188493deb39SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 189493deb39SJung-uk Kim UINT8 Flags, 190493deb39SJung-uk Kim BOOLEAN Override, 191493deb39SJung-uk Kim UINT32 *TableIndex); 192493deb39SJung-uk Kim 193*1cc50d6bSJung-uk Kim ACPI_STATUS 194*1cc50d6bSJung-uk Kim AcpiTbUnloadTable ( 195*1cc50d6bSJung-uk Kim UINT32 TableIndex); 196*1cc50d6bSJung-uk Kim 197a9f12690SJung-uk Kim void 198a9f12690SJung-uk Kim AcpiTbTerminate ( 199a9f12690SJung-uk Kim void); 200a9f12690SJung-uk Kim 201a9f12690SJung-uk Kim ACPI_STATUS 202a9f12690SJung-uk Kim AcpiTbDeleteNamespaceByOwner ( 203a9f12690SJung-uk Kim UINT32 TableIndex); 204a9f12690SJung-uk Kim 205a9f12690SJung-uk Kim ACPI_STATUS 206a9f12690SJung-uk Kim AcpiTbAllocateOwnerId ( 207a9f12690SJung-uk Kim UINT32 TableIndex); 208a9f12690SJung-uk Kim 209a9f12690SJung-uk Kim ACPI_STATUS 210a9f12690SJung-uk Kim AcpiTbReleaseOwnerId ( 211a9f12690SJung-uk Kim UINT32 TableIndex); 212a9f12690SJung-uk Kim 213a9f12690SJung-uk Kim ACPI_STATUS 214a9f12690SJung-uk Kim AcpiTbGetOwnerId ( 215a9f12690SJung-uk Kim UINT32 TableIndex, 216a9f12690SJung-uk Kim ACPI_OWNER_ID *OwnerId); 217a9f12690SJung-uk Kim 218a9f12690SJung-uk Kim 219a9f12690SJung-uk Kim /* 220a9f12690SJung-uk Kim * tbutils - table manager utilities 221a9f12690SJung-uk Kim */ 222a9f12690SJung-uk Kim ACPI_STATUS 223a9f12690SJung-uk Kim AcpiTbInitializeFacs ( 224a9f12690SJung-uk Kim void); 225a9f12690SJung-uk Kim 226a9f12690SJung-uk Kim void 227a9f12690SJung-uk Kim AcpiTbPrintTableHeader( 228a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS Address, 229a9f12690SJung-uk Kim ACPI_TABLE_HEADER *Header); 230a9f12690SJung-uk Kim 231a9f12690SJung-uk Kim UINT8 232a9f12690SJung-uk Kim AcpiTbChecksum ( 233a9f12690SJung-uk Kim UINT8 *Buffer, 234a9f12690SJung-uk Kim UINT32 Length); 235a9f12690SJung-uk Kim 236a9f12690SJung-uk Kim ACPI_STATUS 237a9f12690SJung-uk Kim AcpiTbVerifyChecksum ( 238a9f12690SJung-uk Kim ACPI_TABLE_HEADER *Table, 239a9f12690SJung-uk Kim UINT32 Length); 240a9f12690SJung-uk Kim 241a9f12690SJung-uk Kim void 2428c8be05fSJung-uk Kim AcpiTbCheckDsdtHeader ( 2438c8be05fSJung-uk Kim void); 2448c8be05fSJung-uk Kim 2458c8be05fSJung-uk Kim ACPI_TABLE_HEADER * 2468c8be05fSJung-uk Kim AcpiTbCopyDsdt ( 2478c8be05fSJung-uk Kim UINT32 TableIndex); 2488c8be05fSJung-uk Kim 2498c8be05fSJung-uk Kim void 250313a0c13SJung-uk Kim AcpiTbInstallTableWithOverride ( 251313a0c13SJung-uk Kim ACPI_TABLE_DESC *NewTableDesc, 25270e6ab8fSJung-uk Kim BOOLEAN Override, 25370e6ab8fSJung-uk Kim UINT32 *TableIndex); 254313a0c13SJung-uk Kim 255313a0c13SJung-uk Kim ACPI_STATUS 256a9f12690SJung-uk Kim AcpiTbParseRootTable ( 257a9f12690SJung-uk Kim ACPI_PHYSICAL_ADDRESS RsdpAddress); 258a9f12690SJung-uk Kim 259*1cc50d6bSJung-uk Kim ACPI_STATUS 260*1cc50d6bSJung-uk Kim AcpiTbGetTable ( 261*1cc50d6bSJung-uk Kim ACPI_TABLE_DESC *TableDesc, 262*1cc50d6bSJung-uk Kim ACPI_TABLE_HEADER **OutTable); 263*1cc50d6bSJung-uk Kim 264*1cc50d6bSJung-uk Kim void 265*1cc50d6bSJung-uk Kim AcpiTbPutTable ( 266*1cc50d6bSJung-uk Kim ACPI_TABLE_DESC *TableDesc); 267*1cc50d6bSJung-uk Kim 26870e6ab8fSJung-uk Kim 26970e6ab8fSJung-uk Kim /* 27070e6ab8fSJung-uk Kim * tbxfload 27170e6ab8fSJung-uk Kim */ 27270e6ab8fSJung-uk Kim ACPI_STATUS 27370e6ab8fSJung-uk Kim AcpiTbLoadNamespace ( 27470e6ab8fSJung-uk Kim void); 27570e6ab8fSJung-uk Kim 276a9f12690SJung-uk Kim #endif /* __ACTABLES_H__ */ 277