1a88e22b7SJung-uk Kim /****************************************************************************** 2a88e22b7SJung-uk Kim * 3a88e22b7SJung-uk Kim * Module Name: dtcompiler.h - header for data table compiler 4a88e22b7SJung-uk Kim * 5a88e22b7SJung-uk Kim *****************************************************************************/ 6a88e22b7SJung-uk Kim 70d84335fSJung-uk Kim /****************************************************************************** 80d84335fSJung-uk Kim * 90d84335fSJung-uk Kim * 1. Copyright Notice 100d84335fSJung-uk Kim * 11*804fe266SJung-uk Kim * Some or all of this work - Copyright (c) 1999 - 2024, Intel Corp. 12a88e22b7SJung-uk Kim * All rights reserved. 13a88e22b7SJung-uk Kim * 140d84335fSJung-uk Kim * 2. License 150d84335fSJung-uk Kim * 160d84335fSJung-uk Kim * 2.1. This is your license from Intel Corp. under its intellectual property 170d84335fSJung-uk Kim * rights. You may have additional license terms from the party that provided 180d84335fSJung-uk Kim * you this software, covering your right to use that party's intellectual 190d84335fSJung-uk Kim * property rights. 200d84335fSJung-uk Kim * 210d84335fSJung-uk Kim * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 220d84335fSJung-uk Kim * copy of the source code appearing in this file ("Covered Code") an 230d84335fSJung-uk Kim * irrevocable, perpetual, worldwide license under Intel's copyrights in the 240d84335fSJung-uk Kim * base code distributed originally by Intel ("Original Intel Code") to copy, 250d84335fSJung-uk Kim * make derivatives, distribute, use and display any portion of the Covered 260d84335fSJung-uk Kim * Code in any form, with the right to sublicense such rights; and 270d84335fSJung-uk Kim * 280d84335fSJung-uk Kim * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 290d84335fSJung-uk Kim * license (with the right to sublicense), under only those claims of Intel 300d84335fSJung-uk Kim * patents that are infringed by the Original Intel Code, to make, use, sell, 310d84335fSJung-uk Kim * offer to sell, and import the Covered Code and derivative works thereof 320d84335fSJung-uk Kim * solely to the minimum extent necessary to exercise the above copyright 330d84335fSJung-uk Kim * license, and in no event shall the patent license extend to any additions 340d84335fSJung-uk Kim * to or modifications of the Original Intel Code. No other license or right 350d84335fSJung-uk Kim * is granted directly or by implication, estoppel or otherwise; 360d84335fSJung-uk Kim * 370d84335fSJung-uk Kim * The above copyright and patent license is granted only if the following 380d84335fSJung-uk Kim * conditions are met: 390d84335fSJung-uk Kim * 400d84335fSJung-uk Kim * 3. Conditions 410d84335fSJung-uk Kim * 420d84335fSJung-uk Kim * 3.1. Redistribution of Source with Rights to Further Distribute Source. 430d84335fSJung-uk Kim * Redistribution of source code of any substantial portion of the Covered 440d84335fSJung-uk Kim * Code or modification with rights to further distribute source must include 450d84335fSJung-uk Kim * the above Copyright Notice, the above License, this list of Conditions, 460d84335fSJung-uk Kim * and the following Disclaimer and Export Compliance provision. In addition, 470d84335fSJung-uk Kim * Licensee must cause all Covered Code to which Licensee contributes to 480d84335fSJung-uk Kim * contain a file documenting the changes Licensee made to create that Covered 490d84335fSJung-uk Kim * Code and the date of any change. Licensee must include in that file the 500d84335fSJung-uk Kim * documentation of any changes made by any predecessor Licensee. Licensee 510d84335fSJung-uk Kim * must include a prominent statement that the modification is derived, 520d84335fSJung-uk Kim * directly or indirectly, from Original Intel Code. 530d84335fSJung-uk Kim * 540d84335fSJung-uk Kim * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 550d84335fSJung-uk Kim * Redistribution of source code of any substantial portion of the Covered 560d84335fSJung-uk Kim * Code or modification without rights to further distribute source must 570d84335fSJung-uk Kim * include the following Disclaimer and Export Compliance provision in the 580d84335fSJung-uk Kim * documentation and/or other materials provided with distribution. In 590d84335fSJung-uk Kim * addition, Licensee may not authorize further sublicense of source of any 600d84335fSJung-uk Kim * portion of the Covered Code, and must include terms to the effect that the 610d84335fSJung-uk Kim * license from Licensee to its licensee is limited to the intellectual 620d84335fSJung-uk Kim * property embodied in the software Licensee provides to its licensee, and 630d84335fSJung-uk Kim * not to intellectual property embodied in modifications its licensee may 640d84335fSJung-uk Kim * make. 650d84335fSJung-uk Kim * 660d84335fSJung-uk Kim * 3.3. Redistribution of Executable. Redistribution in executable form of any 670d84335fSJung-uk Kim * substantial portion of the Covered Code or modification must reproduce the 680d84335fSJung-uk Kim * above Copyright Notice, and the following Disclaimer and Export Compliance 690d84335fSJung-uk Kim * provision in the documentation and/or other materials provided with the 700d84335fSJung-uk Kim * distribution. 710d84335fSJung-uk Kim * 720d84335fSJung-uk Kim * 3.4. Intel retains all right, title, and interest in and to the Original 730d84335fSJung-uk Kim * Intel Code. 740d84335fSJung-uk Kim * 750d84335fSJung-uk Kim * 3.5. Neither the name Intel nor any other trademark owned or controlled by 760d84335fSJung-uk Kim * Intel shall be used in advertising or otherwise to promote the sale, use or 770d84335fSJung-uk Kim * other dealings in products derived from or relating to the Covered Code 780d84335fSJung-uk Kim * without prior written authorization from Intel. 790d84335fSJung-uk Kim * 800d84335fSJung-uk Kim * 4. Disclaimer and Export Compliance 810d84335fSJung-uk Kim * 820d84335fSJung-uk Kim * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 830d84335fSJung-uk Kim * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 840d84335fSJung-uk Kim * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 850d84335fSJung-uk Kim * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 860d84335fSJung-uk Kim * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 870d84335fSJung-uk Kim * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 880d84335fSJung-uk Kim * PARTICULAR PURPOSE. 890d84335fSJung-uk Kim * 900d84335fSJung-uk Kim * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 910d84335fSJung-uk Kim * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 920d84335fSJung-uk Kim * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 930d84335fSJung-uk Kim * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 940d84335fSJung-uk Kim * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 950d84335fSJung-uk Kim * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 960d84335fSJung-uk Kim * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 970d84335fSJung-uk Kim * LIMITED REMEDY. 980d84335fSJung-uk Kim * 990d84335fSJung-uk Kim * 4.3. Licensee shall not export, either directly or indirectly, any of this 1000d84335fSJung-uk Kim * software or system incorporating such software without first obtaining any 1010d84335fSJung-uk Kim * required license or other approval from the U. S. Department of Commerce or 1020d84335fSJung-uk Kim * any other agency or department of the United States Government. In the 1030d84335fSJung-uk Kim * event Licensee exports any such software from the United States or 1040d84335fSJung-uk Kim * re-exports any such software from a foreign destination, Licensee shall 1050d84335fSJung-uk Kim * ensure that the distribution and export/re-export of the software is in 1060d84335fSJung-uk Kim * compliance with all laws, regulations, orders, or other restrictions of the 1070d84335fSJung-uk Kim * U.S. Export Administration Regulations. Licensee agrees that neither it nor 1080d84335fSJung-uk Kim * any of its subsidiaries will export/re-export any technical data, process, 1090d84335fSJung-uk Kim * software, or service, directly or indirectly, to any country for which the 1100d84335fSJung-uk Kim * United States government or any agency thereof requires an export license, 1110d84335fSJung-uk Kim * other governmental approval, or letter of assurance, without first obtaining 1120d84335fSJung-uk Kim * such license, approval or letter. 1130d84335fSJung-uk Kim * 1140d84335fSJung-uk Kim ***************************************************************************** 1150d84335fSJung-uk Kim * 1160d84335fSJung-uk Kim * Alternatively, you may choose to be licensed under the terms of the 1170d84335fSJung-uk Kim * following license: 1180d84335fSJung-uk Kim * 119d244b227SJung-uk Kim * Redistribution and use in source and binary forms, with or without 120d244b227SJung-uk Kim * modification, are permitted provided that the following conditions 121d244b227SJung-uk Kim * are met: 122d244b227SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 123d244b227SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 124d244b227SJung-uk Kim * without modification. 125d244b227SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 126d244b227SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 127d244b227SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 128d244b227SJung-uk Kim * including a substantially similar Disclaimer requirement for further 129d244b227SJung-uk Kim * binary redistribution. 130d244b227SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 131d244b227SJung-uk Kim * of any contributors may be used to endorse or promote products derived 132d244b227SJung-uk Kim * from this software without specific prior written permission. 133a88e22b7SJung-uk Kim * 1340d84335fSJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1350d84335fSJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1360d84335fSJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1370d84335fSJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1380d84335fSJung-uk Kim * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1390d84335fSJung-uk Kim * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1400d84335fSJung-uk Kim * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1410d84335fSJung-uk Kim * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1420d84335fSJung-uk Kim * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1430d84335fSJung-uk Kim * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1440d84335fSJung-uk Kim * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1450d84335fSJung-uk Kim * 1460d84335fSJung-uk Kim * Alternatively, you may choose to be licensed under the terms of the 147d244b227SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 148d244b227SJung-uk Kim * Software Foundation. 149a88e22b7SJung-uk Kim * 1500d84335fSJung-uk Kim *****************************************************************************/ 151a88e22b7SJung-uk Kim 152a88e22b7SJung-uk Kim #define __DTCOMPILER_H__ 153a88e22b7SJung-uk Kim 154a88e22b7SJung-uk Kim #ifndef _DTCOMPILER 155a88e22b7SJung-uk Kim #define _DTCOMPILER 156a88e22b7SJung-uk Kim 157a88e22b7SJung-uk Kim #include <contrib/dev/acpica/include/acdisasm.h> 158a88e22b7SJung-uk Kim 159a88e22b7SJung-uk Kim 160313a0c13SJung-uk Kim #define ASL_FIELD_CACHE_SIZE 512 161313a0c13SJung-uk Kim #define ASL_SUBTABLE_CACHE_SIZE 128 162313a0c13SJung-uk Kim 163313a0c13SJung-uk Kim 164a88e22b7SJung-uk Kim #undef DT_EXTERN 165a88e22b7SJung-uk Kim 166a88e22b7SJung-uk Kim #ifdef _DECLARE_DT_GLOBALS 167a88e22b7SJung-uk Kim #define DT_EXTERN 168a88e22b7SJung-uk Kim #define DT_INIT_GLOBAL(a,b) (a)=(b) 169a88e22b7SJung-uk Kim #else 170a88e22b7SJung-uk Kim #define DT_EXTERN extern 171a88e22b7SJung-uk Kim #define DT_INIT_GLOBAL(a,b) (a) 172a88e22b7SJung-uk Kim #endif 173a88e22b7SJung-uk Kim 174a88e22b7SJung-uk Kim 175a88e22b7SJung-uk Kim /* Types for individual fields (one per input line) */ 176a88e22b7SJung-uk Kim 177a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_STRING 0 178a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_INTEGER 1 179a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_BUFFER 2 180a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_PCI_PATH 3 181a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_FLAG 4 182a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_FLAGS_INTEGER 5 183a88e22b7SJung-uk Kim #define DT_FIELD_TYPE_INLINE_SUBTABLE 6 184d244b227SJung-uk Kim #define DT_FIELD_TYPE_UUID 7 185d244b227SJung-uk Kim #define DT_FIELD_TYPE_UNICODE 8 186d244b227SJung-uk Kim #define DT_FIELD_TYPE_DEVICE_PATH 9 1870b94ba42SJung-uk Kim #define DT_FIELD_TYPE_LABEL 10 188a88e22b7SJung-uk Kim 189a88e22b7SJung-uk Kim 190a88e22b7SJung-uk Kim /* 191a88e22b7SJung-uk Kim * Structure used for each individual field within an ACPI table 192a88e22b7SJung-uk Kim */ 193a88e22b7SJung-uk Kim typedef struct dt_field 194a88e22b7SJung-uk Kim { 1950b94ba42SJung-uk Kim char *Name; /* Field name (from name : value) */ 1960b94ba42SJung-uk Kim char *Value; /* Field value (from name : value) */ 1977cf3e94aSJung-uk Kim UINT32 StringLength; /* Length of Value */ 1980b94ba42SJung-uk Kim struct dt_field *Next; /* Next field */ 1990b94ba42SJung-uk Kim struct dt_field *NextLabel; /* If field is a label, next label */ 200a88e22b7SJung-uk Kim UINT32 Line; /* Line number for this field */ 201a88e22b7SJung-uk Kim UINT32 ByteOffset; /* Offset in source file for field */ 202a88e22b7SJung-uk Kim UINT32 NameColumn; /* Start column for field name */ 203a88e22b7SJung-uk Kim UINT32 Column; /* Start column for field value */ 2040b94ba42SJung-uk Kim UINT32 TableOffset; /* Binary offset within ACPI table */ 205a88e22b7SJung-uk Kim UINT8 Flags; 206a88e22b7SJung-uk Kim 207a88e22b7SJung-uk Kim } DT_FIELD; 208a88e22b7SJung-uk Kim 209a88e22b7SJung-uk Kim /* Flags for above */ 210a88e22b7SJung-uk Kim 211a88e22b7SJung-uk Kim #define DT_FIELD_NOT_ALLOCATED 1 212a88e22b7SJung-uk Kim 213a009b7dcSJung-uk Kim /* 214a009b7dcSJung-uk Kim * Structure used for each individual key or value 215a009b7dcSJung-uk Kim */ 216a009b7dcSJung-uk Kim typedef struct dt_table_unit 217a009b7dcSJung-uk Kim { 218a009b7dcSJung-uk Kim char *Value; /* Field value (from name : value) */ 219a009b7dcSJung-uk Kim UINT32 Line; /* Line number for this field */ 220a009b7dcSJung-uk Kim UINT32 Column; /* Start column for field value */ 221a009b7dcSJung-uk Kim 222a009b7dcSJung-uk Kim } DT_TABLE_UNIT; 223a009b7dcSJung-uk Kim 224a88e22b7SJung-uk Kim 225a88e22b7SJung-uk Kim /* 226a88e22b7SJung-uk Kim * Structure used for individual subtables within an ACPI table 227a88e22b7SJung-uk Kim */ 228a88e22b7SJung-uk Kim typedef struct dt_subtable 229a88e22b7SJung-uk Kim { 230a88e22b7SJung-uk Kim struct dt_subtable *Parent; 231a88e22b7SJung-uk Kim struct dt_subtable *Child; 232a88e22b7SJung-uk Kim struct dt_subtable *Peer; 233a88e22b7SJung-uk Kim struct dt_subtable *StackTop; 234a88e22b7SJung-uk Kim UINT8 *Buffer; 235a88e22b7SJung-uk Kim UINT8 *LengthField; 236a371a5fdSJung-uk Kim char *Name; 237a88e22b7SJung-uk Kim UINT32 Length; 238a88e22b7SJung-uk Kim UINT32 TotalLength; 239a88e22b7SJung-uk Kim UINT32 SizeOfLengthField; 240efcc2a30SJung-uk Kim UINT16 Depth; 241a88e22b7SJung-uk Kim UINT8 Flags; 242a88e22b7SJung-uk Kim 243a88e22b7SJung-uk Kim } DT_SUBTABLE; 244a88e22b7SJung-uk Kim 245a88e22b7SJung-uk Kim 246a88e22b7SJung-uk Kim /* 247a88e22b7SJung-uk Kim * Globals 248a88e22b7SJung-uk Kim */ 249a88e22b7SJung-uk Kim 250a88e22b7SJung-uk Kim /* List of all field names and values from the input source */ 251a88e22b7SJung-uk Kim 2526f1f1a63SJung-uk Kim DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*AslGbl_FieldList, NULL); 253a88e22b7SJung-uk Kim 254a88e22b7SJung-uk Kim /* List of all compiled tables and subtables */ 255a88e22b7SJung-uk Kim 2566f1f1a63SJung-uk Kim DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*AslGbl_RootTable, NULL); 257a88e22b7SJung-uk Kim 258a88e22b7SJung-uk Kim /* Stack for subtables */ 259a88e22b7SJung-uk Kim 2606f1f1a63SJung-uk Kim DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*AslGbl_SubtableStack, NULL); 261a88e22b7SJung-uk Kim 2620b94ba42SJung-uk Kim /* List for defined labels */ 2630b94ba42SJung-uk Kim 2646f1f1a63SJung-uk Kim DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*AslGbl_LabelList, NULL); 2650b94ba42SJung-uk Kim 2660b94ba42SJung-uk Kim /* Current offset within the binary output table */ 2670b94ba42SJung-uk Kim 2686f1f1a63SJung-uk Kim DT_EXTERN UINT32 DT_INIT_GLOBAL (AslGbl_CurrentTableOffset, 0); 2690b94ba42SJung-uk Kim 270a009b7dcSJung-uk Kim /* Data table compiler Flex/Bison prototype */ 271a009b7dcSJung-uk Kim 272a009b7dcSJung-uk Kim DT_EXTERN BOOLEAN DT_INIT_GLOBAL (AslGbl_DtLexBisonPrototype, FALSE); 273a009b7dcSJung-uk Kim 274313a0c13SJung-uk Kim /* Local caches */ 275313a0c13SJung-uk Kim 2766f1f1a63SJung-uk Kim DT_EXTERN UINT32 DT_INIT_GLOBAL (AslGbl_SubtableCount, 0); 2776f1f1a63SJung-uk Kim DT_EXTERN ASL_CACHE_INFO DT_INIT_GLOBAL (*AslGbl_SubtableCacheList, NULL); 2786f1f1a63SJung-uk Kim DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*AslGbl_SubtableCacheNext, NULL); 2796f1f1a63SJung-uk Kim DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*AslGbl_SubtableCacheLast, NULL); 280313a0c13SJung-uk Kim 2816f1f1a63SJung-uk Kim DT_EXTERN UINT32 DT_INIT_GLOBAL (AslGbl_FieldCount, 0); 2826f1f1a63SJung-uk Kim DT_EXTERN ASL_CACHE_INFO DT_INIT_GLOBAL (*AslGbl_FieldCacheList, NULL); 2836f1f1a63SJung-uk Kim DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*AslGbl_FieldCacheNext, NULL); 2846f1f1a63SJung-uk Kim DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*AslGbl_FieldCacheLast, NULL); 285313a0c13SJung-uk Kim 286a88e22b7SJung-uk Kim 287a88e22b7SJung-uk Kim /* dtcompiler - main module */ 288a88e22b7SJung-uk Kim 289a88e22b7SJung-uk Kim ACPI_STATUS 290a88e22b7SJung-uk Kim DtCompileTable ( 291a88e22b7SJung-uk Kim DT_FIELD **Field, 292a88e22b7SJung-uk Kim ACPI_DMTABLE_INFO *Info, 293ff879b07SJung-uk Kim DT_SUBTABLE **RetSubtable); 294a88e22b7SJung-uk Kim 295a371a5fdSJung-uk Kim ACPI_STATUS 296f8146b88SJung-uk Kim DtCompileTwoSubtables ( 297f8146b88SJung-uk Kim void **List, 298f8146b88SJung-uk Kim ACPI_DMTABLE_INFO *TableInfo1, 299f8146b88SJung-uk Kim ACPI_DMTABLE_INFO *TableInfo2); 300f8146b88SJung-uk Kim 301f8146b88SJung-uk Kim ACPI_STATUS 302a371a5fdSJung-uk Kim DtCompilePadding ( 303a371a5fdSJung-uk Kim UINT32 Length, 304a371a5fdSJung-uk Kim DT_SUBTABLE **RetSubtable); 305a371a5fdSJung-uk Kim 306a88e22b7SJung-uk Kim 307a88e22b7SJung-uk Kim /* dtio - binary and text input/output */ 308a88e22b7SJung-uk Kim 3094c52cad2SJung-uk Kim UINT32 3104c52cad2SJung-uk Kim DtGetNextLine ( 3115ef50723SJung-uk Kim FILE *Handle, 3125ef50723SJung-uk Kim UINT32 Flags); 3135ef50723SJung-uk Kim 3145ef50723SJung-uk Kim /* Flags for DtGetNextLine */ 3155ef50723SJung-uk Kim 3165ef50723SJung-uk Kim #define DT_ALLOW_MULTILINE_QUOTES 0x01 3175ef50723SJung-uk Kim 3184c52cad2SJung-uk Kim 319a88e22b7SJung-uk Kim DT_FIELD * 320a88e22b7SJung-uk Kim DtScanFile ( 321a88e22b7SJung-uk Kim FILE *Handle); 322a88e22b7SJung-uk Kim 323a88e22b7SJung-uk Kim void 324a88e22b7SJung-uk Kim DtOutputBinary ( 325a88e22b7SJung-uk Kim DT_SUBTABLE *RootTable); 326a88e22b7SJung-uk Kim 327d244b227SJung-uk Kim void 328efcc2a30SJung-uk Kim DtDumpSubtableList ( 329efcc2a30SJung-uk Kim void); 330efcc2a30SJung-uk Kim 331efcc2a30SJung-uk Kim void 332efcc2a30SJung-uk Kim DtDumpFieldList ( 333efcc2a30SJung-uk Kim DT_FIELD *Field); 334efcc2a30SJung-uk Kim 335efcc2a30SJung-uk Kim void 336d244b227SJung-uk Kim DtWriteFieldToListing ( 337d244b227SJung-uk Kim UINT8 *Buffer, 338d244b227SJung-uk Kim DT_FIELD *Field, 339d244b227SJung-uk Kim UINT32 Length); 340d244b227SJung-uk Kim 341d244b227SJung-uk Kim void 342d244b227SJung-uk Kim DtWriteTableToListing ( 343d244b227SJung-uk Kim void); 344d244b227SJung-uk Kim 345a88e22b7SJung-uk Kim 346a88e22b7SJung-uk Kim /* dtsubtable - compile subtables */ 347a88e22b7SJung-uk Kim 348a88e22b7SJung-uk Kim void 349a88e22b7SJung-uk Kim DtCreateSubtable ( 350a88e22b7SJung-uk Kim UINT8 *Buffer, 351a88e22b7SJung-uk Kim UINT32 Length, 352a88e22b7SJung-uk Kim DT_SUBTABLE **RetSubtable); 353a88e22b7SJung-uk Kim 354a88e22b7SJung-uk Kim UINT32 355a88e22b7SJung-uk Kim DtGetSubtableLength ( 356a88e22b7SJung-uk Kim DT_FIELD *Field, 357a88e22b7SJung-uk Kim ACPI_DMTABLE_INFO *Info); 358a88e22b7SJung-uk Kim 359a88e22b7SJung-uk Kim void 360a88e22b7SJung-uk Kim DtSetSubtableLength ( 361a88e22b7SJung-uk Kim DT_SUBTABLE *Subtable); 362a88e22b7SJung-uk Kim 363a88e22b7SJung-uk Kim void 364a88e22b7SJung-uk Kim DtPushSubtable ( 365a88e22b7SJung-uk Kim DT_SUBTABLE *Subtable); 366a88e22b7SJung-uk Kim 367a88e22b7SJung-uk Kim void 368a88e22b7SJung-uk Kim DtPopSubtable ( 369a88e22b7SJung-uk Kim void); 370a88e22b7SJung-uk Kim 371a88e22b7SJung-uk Kim DT_SUBTABLE * 372a88e22b7SJung-uk Kim DtPeekSubtable ( 373a88e22b7SJung-uk Kim void); 374a88e22b7SJung-uk Kim 375a88e22b7SJung-uk Kim void 376a88e22b7SJung-uk Kim DtInsertSubtable ( 377a88e22b7SJung-uk Kim DT_SUBTABLE *ParentTable, 378a88e22b7SJung-uk Kim DT_SUBTABLE *Subtable); 379a88e22b7SJung-uk Kim 380a88e22b7SJung-uk Kim DT_SUBTABLE * 381a88e22b7SJung-uk Kim DtGetNextSubtable ( 382a88e22b7SJung-uk Kim DT_SUBTABLE *ParentTable, 383a88e22b7SJung-uk Kim DT_SUBTABLE *ChildTable); 384a88e22b7SJung-uk Kim 385a88e22b7SJung-uk Kim DT_SUBTABLE * 386a88e22b7SJung-uk Kim DtGetParentSubtable ( 387a88e22b7SJung-uk Kim DT_SUBTABLE *Subtable); 388a88e22b7SJung-uk Kim 389a88e22b7SJung-uk Kim 3900b94ba42SJung-uk Kim /* dtexpress - Integer expressions and labels */ 3910b94ba42SJung-uk Kim 392d052a1ccSJung-uk Kim ACPI_STATUS 3930b94ba42SJung-uk Kim DtResolveIntegerExpression ( 394d052a1ccSJung-uk Kim DT_FIELD *Field, 395d052a1ccSJung-uk Kim UINT64 *ReturnValue); 396d052a1ccSJung-uk Kim 397d052a1ccSJung-uk Kim UINT64 398d052a1ccSJung-uk Kim DtDoOperator ( 399d052a1ccSJung-uk Kim UINT64 LeftValue, 400d052a1ccSJung-uk Kim UINT32 Operator, 401d052a1ccSJung-uk Kim UINT64 RightValue); 402d052a1ccSJung-uk Kim 403d052a1ccSJung-uk Kim UINT64 404d052a1ccSJung-uk Kim DtResolveLabel ( 405d052a1ccSJung-uk Kim char *LabelString); 4060b94ba42SJung-uk Kim 4070b94ba42SJung-uk Kim void 4080b94ba42SJung-uk Kim DtDetectAllLabels ( 4090b94ba42SJung-uk Kim DT_FIELD *FieldList); 4100b94ba42SJung-uk Kim 4110b94ba42SJung-uk Kim 412a88e22b7SJung-uk Kim /* dtfield - Compile individual fields within a table */ 413a88e22b7SJung-uk Kim 414a88e22b7SJung-uk Kim void 415a88e22b7SJung-uk Kim DtCompileOneField ( 416a88e22b7SJung-uk Kim UINT8 *Buffer, 417a88e22b7SJung-uk Kim DT_FIELD *Field, 418a88e22b7SJung-uk Kim UINT32 ByteLength, 419a88e22b7SJung-uk Kim UINT8 Type, 420a88e22b7SJung-uk Kim UINT8 Flags); 421a88e22b7SJung-uk Kim 422a88e22b7SJung-uk Kim void 423a88e22b7SJung-uk Kim DtCompileInteger ( 424a88e22b7SJung-uk Kim UINT8 *Buffer, 425a88e22b7SJung-uk Kim DT_FIELD *Field, 426a88e22b7SJung-uk Kim UINT32 ByteLength, 427a88e22b7SJung-uk Kim UINT8 Flags); 428a88e22b7SJung-uk Kim 429a88e22b7SJung-uk Kim UINT32 430a88e22b7SJung-uk Kim DtCompileBuffer ( 431a88e22b7SJung-uk Kim UINT8 *Buffer, 432a88e22b7SJung-uk Kim char *Value, 433a88e22b7SJung-uk Kim DT_FIELD *Field, 434a88e22b7SJung-uk Kim UINT32 ByteLength); 435a88e22b7SJung-uk Kim 436a88e22b7SJung-uk Kim void 437a88e22b7SJung-uk Kim DtCompileFlag ( 438a88e22b7SJung-uk Kim UINT8 *Buffer, 439a88e22b7SJung-uk Kim DT_FIELD *Field, 440a88e22b7SJung-uk Kim ACPI_DMTABLE_INFO *Info); 441a88e22b7SJung-uk Kim 442a88e22b7SJung-uk Kim 443a009b7dcSJung-uk Kim /* dtfield - DT_FIELD operations */ 444a009b7dcSJung-uk Kim 445a009b7dcSJung-uk Kim void 446a009b7dcSJung-uk Kim DtLinkField ( 447a009b7dcSJung-uk Kim DT_FIELD *Field); 448a009b7dcSJung-uk Kim 449a009b7dcSJung-uk Kim void 450a009b7dcSJung-uk Kim DtCreateField ( 451a009b7dcSJung-uk Kim DT_TABLE_UNIT *FieldKey, 452a009b7dcSJung-uk Kim DT_TABLE_UNIT *FieldValue, 453a009b7dcSJung-uk Kim UINT32 Offset); 454a009b7dcSJung-uk Kim 455a009b7dcSJung-uk Kim DT_TABLE_UNIT * 456a009b7dcSJung-uk Kim DtCreateTableUnit ( 457a009b7dcSJung-uk Kim char *Data, 458a009b7dcSJung-uk Kim UINT32 Line, 459a009b7dcSJung-uk Kim UINT32 Column); 460a009b7dcSJung-uk Kim 461a009b7dcSJung-uk Kim 462d052a1ccSJung-uk Kim /* dtparser - lex/yacc files */ 463d052a1ccSJung-uk Kim 464a009b7dcSJung-uk Kim int 465a009b7dcSJung-uk Kim DtCompilerParserparse ( 466a009b7dcSJung-uk Kim void); 467a009b7dcSJung-uk Kim 468d052a1ccSJung-uk Kim UINT64 469d052a1ccSJung-uk Kim DtEvaluateExpression ( 470d052a1ccSJung-uk Kim char *ExprString); 471d052a1ccSJung-uk Kim 472a009b7dcSJung-uk Kim void 473a009b7dcSJung-uk Kim DtCompilerInitLexer ( 474a009b7dcSJung-uk Kim FILE *inFile); 475a009b7dcSJung-uk Kim 476a009b7dcSJung-uk Kim void 477a009b7dcSJung-uk Kim DtCompilerTerminateLexer ( 478a009b7dcSJung-uk Kim void); 479a009b7dcSJung-uk Kim 480d052a1ccSJung-uk Kim int 481d052a1ccSJung-uk Kim DtInitLexer ( 482d052a1ccSJung-uk Kim char *String); 483d052a1ccSJung-uk Kim 484d052a1ccSJung-uk Kim void 485d052a1ccSJung-uk Kim DtTerminateLexer ( 486d052a1ccSJung-uk Kim void); 487d052a1ccSJung-uk Kim 488d052a1ccSJung-uk Kim char * 489d052a1ccSJung-uk Kim DtGetOpName ( 490d052a1ccSJung-uk Kim UINT32 ParseOpcode); 491d052a1ccSJung-uk Kim 492d052a1ccSJung-uk Kim 493a88e22b7SJung-uk Kim /* dtutils - Miscellaneous utilities */ 494a88e22b7SJung-uk Kim 495a88e22b7SJung-uk Kim typedef 496a88e22b7SJung-uk Kim void (*DT_WALK_CALLBACK) ( 497a88e22b7SJung-uk Kim DT_SUBTABLE *Subtable, 498a88e22b7SJung-uk Kim void *Context, 499a88e22b7SJung-uk Kim void *ReturnValue); 500a88e22b7SJung-uk Kim 501a88e22b7SJung-uk Kim void 502a88e22b7SJung-uk Kim DtWalkTableTree ( 503a88e22b7SJung-uk Kim DT_SUBTABLE *StartTable, 504a88e22b7SJung-uk Kim DT_WALK_CALLBACK UserFunction, 505a88e22b7SJung-uk Kim void *Context, 506a88e22b7SJung-uk Kim void *ReturnValue); 507a88e22b7SJung-uk Kim 508a88e22b7SJung-uk Kim void 509a88e22b7SJung-uk Kim DtError ( 510a88e22b7SJung-uk Kim UINT8 Level, 511313a0c13SJung-uk Kim UINT16 MessageId, 512a88e22b7SJung-uk Kim DT_FIELD *FieldObject, 513a88e22b7SJung-uk Kim char *ExtraMessage); 514a88e22b7SJung-uk Kim 515a88e22b7SJung-uk Kim void 516a88e22b7SJung-uk Kim DtNameError ( 517a88e22b7SJung-uk Kim UINT8 Level, 518313a0c13SJung-uk Kim UINT16 MessageId, 519a88e22b7SJung-uk Kim DT_FIELD *FieldObject, 520a88e22b7SJung-uk Kim char *ExtraMessage); 521a88e22b7SJung-uk Kim 522a88e22b7SJung-uk Kim void 523a88e22b7SJung-uk Kim DtFatal ( 524313a0c13SJung-uk Kim UINT16 MessageId, 525a88e22b7SJung-uk Kim DT_FIELD *FieldObject, 526a88e22b7SJung-uk Kim char *ExtraMessage); 527a88e22b7SJung-uk Kim 5282f6a1a81SJung-uk Kim UINT64 5292f6a1a81SJung-uk Kim DtDoConstant ( 5302f6a1a81SJung-uk Kim char *String); 5312f6a1a81SJung-uk Kim 532a88e22b7SJung-uk Kim char* 533a88e22b7SJung-uk Kim DtGetFieldValue ( 534d052a1ccSJung-uk Kim DT_FIELD *Field); 535a88e22b7SJung-uk Kim 536a88e22b7SJung-uk Kim UINT8 537a88e22b7SJung-uk Kim DtGetFieldType ( 538a88e22b7SJung-uk Kim ACPI_DMTABLE_INFO *Info); 539a88e22b7SJung-uk Kim 540a88e22b7SJung-uk Kim UINT32 541a88e22b7SJung-uk Kim DtGetBufferLength ( 542a88e22b7SJung-uk Kim char *Buffer); 543a88e22b7SJung-uk Kim 544a88e22b7SJung-uk Kim UINT32 545a88e22b7SJung-uk Kim DtGetFieldLength ( 546a88e22b7SJung-uk Kim DT_FIELD *Field, 547a88e22b7SJung-uk Kim ACPI_DMTABLE_INFO *Info); 548a88e22b7SJung-uk Kim 549a88e22b7SJung-uk Kim void 550a88e22b7SJung-uk Kim DtSetTableChecksum ( 551a88e22b7SJung-uk Kim UINT8 *ChecksumPointer); 552a88e22b7SJung-uk Kim 553a88e22b7SJung-uk Kim void 554a88e22b7SJung-uk Kim DtSetTableLength( 555a88e22b7SJung-uk Kim void); 556a88e22b7SJung-uk Kim 557a88e22b7SJung-uk Kim 558a88e22b7SJung-uk Kim /* dttable - individual table compilation */ 559a88e22b7SJung-uk Kim 560a88e22b7SJung-uk Kim ACPI_STATUS 561a88e22b7SJung-uk Kim DtCompileFacs ( 562a88e22b7SJung-uk Kim DT_FIELD **PFieldList); 563a88e22b7SJung-uk Kim 564a88e22b7SJung-uk Kim ACPI_STATUS 565a88e22b7SJung-uk Kim DtCompileRsdp ( 566a88e22b7SJung-uk Kim DT_FIELD **PFieldList); 567a88e22b7SJung-uk Kim 568a88e22b7SJung-uk Kim ACPI_STATUS 56997c0b5abSJung-uk Kim DtCompileAest ( 57097c0b5abSJung-uk Kim void **PFieldList); 57197c0b5abSJung-uk Kim 57297c0b5abSJung-uk Kim ACPI_STATUS 573ab71bbb7SJung-uk Kim DtCompileApmt ( 574ab71bbb7SJung-uk Kim void **PFieldList); 575ab71bbb7SJung-uk Kim 576ab71bbb7SJung-uk Kim ACPI_STATUS 577a88e22b7SJung-uk Kim DtCompileAsf ( 578a88e22b7SJung-uk Kim void **PFieldList); 579a88e22b7SJung-uk Kim 580a88e22b7SJung-uk Kim ACPI_STATUS 581722b1667SJung-uk Kim DtCompileAspt ( 582722b1667SJung-uk Kim void **PFieldList); 583722b1667SJung-uk Kim 584722b1667SJung-uk Kim ACPI_STATUS 5859a4bc520SJung-uk Kim DtCompileCdat ( 5869a4bc520SJung-uk Kim void **PFieldList); 5879a4bc520SJung-uk Kim 5889a4bc520SJung-uk Kim ACPI_STATUS 5899a4bc520SJung-uk Kim DtCompileCedt ( 5909a4bc520SJung-uk Kim void **PFieldList); 5919a4bc520SJung-uk Kim 5929a4bc520SJung-uk Kim ACPI_STATUS 593a88e22b7SJung-uk Kim DtCompileCpep ( 594a88e22b7SJung-uk Kim void **PFieldList); 595a88e22b7SJung-uk Kim 596a88e22b7SJung-uk Kim ACPI_STATUS 597efcc2a30SJung-uk Kim DtCompileCsrt ( 598efcc2a30SJung-uk Kim void **PFieldList); 599efcc2a30SJung-uk Kim 600efcc2a30SJung-uk Kim ACPI_STATUS 601313a0c13SJung-uk Kim DtCompileDbg2 ( 602313a0c13SJung-uk Kim void **PFieldList); 603313a0c13SJung-uk Kim 604313a0c13SJung-uk Kim ACPI_STATUS 605a88e22b7SJung-uk Kim DtCompileDmar ( 606a88e22b7SJung-uk Kim void **PFieldList); 607a88e22b7SJung-uk Kim 608a88e22b7SJung-uk Kim ACPI_STATUS 609a371a5fdSJung-uk Kim DtCompileDrtm ( 610a371a5fdSJung-uk Kim void **PFieldList); 611a371a5fdSJung-uk Kim 612a371a5fdSJung-uk Kim ACPI_STATUS 613a88e22b7SJung-uk Kim DtCompileEinj ( 614a88e22b7SJung-uk Kim void **PFieldList); 615a88e22b7SJung-uk Kim 616a88e22b7SJung-uk Kim ACPI_STATUS 617a88e22b7SJung-uk Kim DtCompileErst ( 618a88e22b7SJung-uk Kim void **PFieldList); 619a88e22b7SJung-uk Kim 620a88e22b7SJung-uk Kim ACPI_STATUS 621a88e22b7SJung-uk Kim DtCompileFadt ( 622a88e22b7SJung-uk Kim void **PFieldList); 623a88e22b7SJung-uk Kim 624a88e22b7SJung-uk Kim ACPI_STATUS 6253f0275a0SJung-uk Kim DtCompileFpdt ( 6263f0275a0SJung-uk Kim void **PFieldList); 6273f0275a0SJung-uk Kim 6283f0275a0SJung-uk Kim ACPI_STATUS 629313a0c13SJung-uk Kim DtCompileGtdt ( 630313a0c13SJung-uk Kim void **PFieldList); 631313a0c13SJung-uk Kim 632313a0c13SJung-uk Kim ACPI_STATUS 633a88e22b7SJung-uk Kim DtCompileHest ( 634a88e22b7SJung-uk Kim void **PFieldList); 635a88e22b7SJung-uk Kim 636a88e22b7SJung-uk Kim ACPI_STATUS 637af051161SJung-uk Kim DtCompileHmat ( 638af051161SJung-uk Kim void **PFieldList); 639af051161SJung-uk Kim 640af051161SJung-uk Kim ACPI_STATUS 641a371a5fdSJung-uk Kim DtCompileIort ( 642a371a5fdSJung-uk Kim void **PFieldList); 643a371a5fdSJung-uk Kim 644a371a5fdSJung-uk Kim ACPI_STATUS 645a88e22b7SJung-uk Kim DtCompileIvrs ( 646a88e22b7SJung-uk Kim void **PFieldList); 647a88e22b7SJung-uk Kim 648a88e22b7SJung-uk Kim ACPI_STATUS 649313a0c13SJung-uk Kim DtCompileLpit ( 650313a0c13SJung-uk Kim void **PFieldList); 651313a0c13SJung-uk Kim 652313a0c13SJung-uk Kim ACPI_STATUS 653a88e22b7SJung-uk Kim DtCompileMadt ( 654a88e22b7SJung-uk Kim void **PFieldList); 655a88e22b7SJung-uk Kim 656a88e22b7SJung-uk Kim ACPI_STATUS 657a88e22b7SJung-uk Kim DtCompileMcfg ( 658a88e22b7SJung-uk Kim void **PFieldList); 659a88e22b7SJung-uk Kim 660a88e22b7SJung-uk Kim ACPI_STATUS 661722b1667SJung-uk Kim DtCompileMpam ( 662722b1667SJung-uk Kim void **PFieldList); 663722b1667SJung-uk Kim 664722b1667SJung-uk Kim ACPI_STATUS 6653f0275a0SJung-uk Kim DtCompileMpst ( 6663f0275a0SJung-uk Kim void **PFieldList); 6673f0275a0SJung-uk Kim 6683f0275a0SJung-uk Kim ACPI_STATUS 669a88e22b7SJung-uk Kim DtCompileMsct ( 670a88e22b7SJung-uk Kim void **PFieldList); 671a88e22b7SJung-uk Kim 672a88e22b7SJung-uk Kim ACPI_STATUS 673a371a5fdSJung-uk Kim DtCompileNfit ( 674a371a5fdSJung-uk Kim void **PFieldList); 675a371a5fdSJung-uk Kim 676a371a5fdSJung-uk Kim ACPI_STATUS 67767d9aa44SJung-uk Kim DtCompilePcct ( 67867d9aa44SJung-uk Kim void **PFieldList); 67967d9aa44SJung-uk Kim 68067d9aa44SJung-uk Kim ACPI_STATUS 68167d9aa44SJung-uk Kim DtCompilePdtt ( 68267d9aa44SJung-uk Kim void **PFieldList); 68367d9aa44SJung-uk Kim 68467d9aa44SJung-uk Kim ACPI_STATUS 685cfd1ed46SJung-uk Kim DtCompilePhat ( 686cfd1ed46SJung-uk Kim void **PFieldList); 687cfd1ed46SJung-uk Kim 688cfd1ed46SJung-uk Kim ACPI_STATUS 6893f0275a0SJung-uk Kim DtCompilePmtt ( 6903f0275a0SJung-uk Kim void **PFieldList); 6913f0275a0SJung-uk Kim 6923f0275a0SJung-uk Kim ACPI_STATUS 693af051161SJung-uk Kim DtCompilePptt ( 694af051161SJung-uk Kim void **PFieldList); 695af051161SJung-uk Kim 696af051161SJung-uk Kim ACPI_STATUS 6971970d693SJung-uk Kim DtCompilePrmt ( 6981970d693SJung-uk Kim void **PFieldList); 6991970d693SJung-uk Kim 7001970d693SJung-uk Kim ACPI_STATUS 701*804fe266SJung-uk Kim DtCompileRas2 ( 702*804fe266SJung-uk Kim void **PFieldList); 703*804fe266SJung-uk Kim 704*804fe266SJung-uk Kim ACPI_STATUS 7051970d693SJung-uk Kim DtCompileRgrt ( 7061970d693SJung-uk Kim void **PFieldList); 7071970d693SJung-uk Kim 7081970d693SJung-uk Kim ACPI_STATUS 709722b1667SJung-uk Kim DtCompileRhct ( 710722b1667SJung-uk Kim void **PFieldList); 711722b1667SJung-uk Kim 712722b1667SJung-uk Kim ACPI_STATUS 713a88e22b7SJung-uk Kim DtCompileRsdt ( 714a88e22b7SJung-uk Kim void **PFieldList); 715a88e22b7SJung-uk Kim 716a88e22b7SJung-uk Kim ACPI_STATUS 7173f0275a0SJung-uk Kim DtCompileS3pt ( 7183f0275a0SJung-uk Kim DT_FIELD **PFieldList); 7193f0275a0SJung-uk Kim 7203f0275a0SJung-uk Kim ACPI_STATUS 72167d9aa44SJung-uk Kim DtCompileSdev ( 72267d9aa44SJung-uk Kim void **PFieldList); 72367d9aa44SJung-uk Kim 72467d9aa44SJung-uk Kim ACPI_STATUS 725dcbce41eSJung-uk Kim DtCompileSlic ( 726dcbce41eSJung-uk Kim void **PFieldList); 727dcbce41eSJung-uk Kim 728dcbce41eSJung-uk Kim ACPI_STATUS 729a88e22b7SJung-uk Kim DtCompileSlit ( 730a88e22b7SJung-uk Kim void **PFieldList); 731a88e22b7SJung-uk Kim 732a88e22b7SJung-uk Kim ACPI_STATUS 733a88e22b7SJung-uk Kim DtCompileSrat ( 734a88e22b7SJung-uk Kim void **PFieldList); 735a88e22b7SJung-uk Kim 736a88e22b7SJung-uk Kim ACPI_STATUS 737a371a5fdSJung-uk Kim DtCompileStao ( 738a371a5fdSJung-uk Kim void **PFieldList); 739a371a5fdSJung-uk Kim 740a371a5fdSJung-uk Kim ACPI_STATUS 7411970d693SJung-uk Kim DtCompileSvkl ( 7421970d693SJung-uk Kim void **PFieldList); 7431970d693SJung-uk Kim 7441970d693SJung-uk Kim ACPI_STATUS 745fe0f0bbbSJung-uk Kim DtCompileTcpa ( 746fe0f0bbbSJung-uk Kim void **PFieldList); 747fe0f0bbbSJung-uk Kim 748fe0f0bbbSJung-uk Kim ACPI_STATUS 74967d9aa44SJung-uk Kim DtCompileTpm2 ( 75067d9aa44SJung-uk Kim void **PFieldList); 75167d9aa44SJung-uk Kim 75267d9aa44SJung-uk Kim ACPI_STATUS 753d244b227SJung-uk Kim DtCompileUefi ( 754d244b227SJung-uk Kim void **PFieldList); 755d244b227SJung-uk Kim 756d244b227SJung-uk Kim ACPI_STATUS 757cfd1ed46SJung-uk Kim DtCompileViot ( 758cfd1ed46SJung-uk Kim void **PFieldList); 759cfd1ed46SJung-uk Kim 760cfd1ed46SJung-uk Kim ACPI_STATUS 761a88e22b7SJung-uk Kim DtCompileWdat ( 762a88e22b7SJung-uk Kim void **PFieldList); 763a88e22b7SJung-uk Kim 764a88e22b7SJung-uk Kim ACPI_STATUS 765a371a5fdSJung-uk Kim DtCompileWpbt ( 766a371a5fdSJung-uk Kim void **PFieldList); 767a371a5fdSJung-uk Kim 768a371a5fdSJung-uk Kim ACPI_STATUS 769a88e22b7SJung-uk Kim DtCompileXsdt ( 770a88e22b7SJung-uk Kim void **PFieldList); 771a88e22b7SJung-uk Kim 772d052a1ccSJung-uk Kim ACPI_STATUS 773d052a1ccSJung-uk Kim DtCompileGeneric ( 774a371a5fdSJung-uk Kim void **PFieldList, 775a371a5fdSJung-uk Kim char *TermFieldName, 776a371a5fdSJung-uk Kim UINT32 *PFieldLength); 777d052a1ccSJung-uk Kim 7780b94ba42SJung-uk Kim ACPI_DMTABLE_INFO * 7790b94ba42SJung-uk Kim DtGetGenericTableInfo ( 7800b94ba42SJung-uk Kim char *Name); 7810b94ba42SJung-uk Kim 782a88e22b7SJung-uk Kim /* ACPI Table templates */ 783a88e22b7SJung-uk Kim 78497c0b5abSJung-uk Kim extern const unsigned char TemplateAest[]; 785ab71bbb7SJung-uk Kim extern const unsigned char TemplateAgdi[]; 786ab71bbb7SJung-uk Kim extern const unsigned char TemplateApmt[]; 787a88e22b7SJung-uk Kim extern const unsigned char TemplateAsf[]; 788722b1667SJung-uk Kim extern const unsigned char TemplateAspt[]; 789a88e22b7SJung-uk Kim extern const unsigned char TemplateBoot[]; 7901970d693SJung-uk Kim extern const unsigned char TemplateBdat[]; 791a88e22b7SJung-uk Kim extern const unsigned char TemplateBert[]; 7923f0275a0SJung-uk Kim extern const unsigned char TemplateBgrt[]; 7939a4bc520SJung-uk Kim extern const unsigned char TemplateCcel[]; 7949a4bc520SJung-uk Kim extern const unsigned char TemplateCdat[]; 795cfd1ed46SJung-uk Kim extern const unsigned char TemplateCedt[]; 796a88e22b7SJung-uk Kim extern const unsigned char TemplateCpep[]; 797efcc2a30SJung-uk Kim extern const unsigned char TemplateCsrt[]; 798313a0c13SJung-uk Kim extern const unsigned char TemplateDbg2[]; 799a88e22b7SJung-uk Kim extern const unsigned char TemplateDbgp[]; 800a88e22b7SJung-uk Kim extern const unsigned char TemplateDmar[]; 801a371a5fdSJung-uk Kim extern const unsigned char TemplateDrtm[]; 802a88e22b7SJung-uk Kim extern const unsigned char TemplateEcdt[]; 803a88e22b7SJung-uk Kim extern const unsigned char TemplateEinj[]; 804a88e22b7SJung-uk Kim extern const unsigned char TemplateErst[]; 805a88e22b7SJung-uk Kim extern const unsigned char TemplateFadt[]; 8063f0275a0SJung-uk Kim extern const unsigned char TemplateFpdt[]; 8073f0275a0SJung-uk Kim extern const unsigned char TemplateGtdt[]; 808a88e22b7SJung-uk Kim extern const unsigned char TemplateHest[]; 809af051161SJung-uk Kim extern const unsigned char TemplateHmat[]; 810a88e22b7SJung-uk Kim extern const unsigned char TemplateHpet[]; 811a371a5fdSJung-uk Kim extern const unsigned char TemplateIort[]; 812a88e22b7SJung-uk Kim extern const unsigned char TemplateIvrs[]; 813313a0c13SJung-uk Kim extern const unsigned char TemplateLpit[]; 814a88e22b7SJung-uk Kim extern const unsigned char TemplateMadt[]; 815a88e22b7SJung-uk Kim extern const unsigned char TemplateMcfg[]; 816a88e22b7SJung-uk Kim extern const unsigned char TemplateMchi[]; 817722b1667SJung-uk Kim extern const unsigned char TemplateMpam[]; 8183f0275a0SJung-uk Kim extern const unsigned char TemplateMpst[]; 819a88e22b7SJung-uk Kim extern const unsigned char TemplateMsct[]; 8207cf3e94aSJung-uk Kim extern const unsigned char TemplateMsdm[]; 821a371a5fdSJung-uk Kim extern const unsigned char TemplateNfit[]; 822313a0c13SJung-uk Kim extern const unsigned char TemplatePcct[]; 82367d9aa44SJung-uk Kim extern const unsigned char TemplatePdtt[]; 824cfd1ed46SJung-uk Kim extern const unsigned char TemplatePhat[]; 8253f0275a0SJung-uk Kim extern const unsigned char TemplatePmtt[]; 826af051161SJung-uk Kim extern const unsigned char TemplatePptt[]; 8271970d693SJung-uk Kim extern const unsigned char TemplatePrmt[]; 828493deb39SJung-uk Kim extern const unsigned char TemplateRasf[]; 829*804fe266SJung-uk Kim extern const unsigned char TemplateRas2[]; 8301970d693SJung-uk Kim extern const unsigned char TemplateRgrt[]; 831722b1667SJung-uk Kim extern const unsigned char TemplateRhct[]; 832a88e22b7SJung-uk Kim extern const unsigned char TemplateRsdt[]; 8333f0275a0SJung-uk Kim extern const unsigned char TemplateS3pt[]; 834a88e22b7SJung-uk Kim extern const unsigned char TemplateSbst[]; 8355f9b24faSJung-uk Kim extern const unsigned char TemplateSdei[]; 83667d9aa44SJung-uk Kim extern const unsigned char TemplateSdev[]; 837a88e22b7SJung-uk Kim extern const unsigned char TemplateSlic[]; 838a88e22b7SJung-uk Kim extern const unsigned char TemplateSlit[]; 839a88e22b7SJung-uk Kim extern const unsigned char TemplateSpcr[]; 840a88e22b7SJung-uk Kim extern const unsigned char TemplateSpmi[]; 841a88e22b7SJung-uk Kim extern const unsigned char TemplateSrat[]; 842a371a5fdSJung-uk Kim extern const unsigned char TemplateStao[]; 8431970d693SJung-uk Kim extern const unsigned char TemplateSvkl[]; 844a88e22b7SJung-uk Kim extern const unsigned char TemplateTcpa[]; 845ab71bbb7SJung-uk Kim extern const unsigned char TemplateTdel[]; 846efcc2a30SJung-uk Kim extern const unsigned char TemplateTpm2[]; 847a88e22b7SJung-uk Kim extern const unsigned char TemplateUefi[]; 848cfd1ed46SJung-uk Kim extern const unsigned char TemplateViot[]; 849a88e22b7SJung-uk Kim extern const unsigned char TemplateWaet[]; 850a88e22b7SJung-uk Kim extern const unsigned char TemplateWdat[]; 851a88e22b7SJung-uk Kim extern const unsigned char TemplateWddt[]; 852a88e22b7SJung-uk Kim extern const unsigned char TemplateWdrt[]; 853a371a5fdSJung-uk Kim extern const unsigned char TemplateWpbt[]; 854af051161SJung-uk Kim extern const unsigned char TemplateWsmt[]; 855a371a5fdSJung-uk Kim extern const unsigned char TemplateXenv[]; 856a88e22b7SJung-uk Kim extern const unsigned char TemplateXsdt[]; 857a88e22b7SJung-uk Kim 858a88e22b7SJung-uk Kim #endif 859