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