1bc36eafdSMike Gerdts /****************************************************************************** 2bc36eafdSMike Gerdts * 3bc36eafdSMike Gerdts * Module Name: dtcompiler.h - header for data table compiler 4bc36eafdSMike Gerdts * 5bc36eafdSMike Gerdts *****************************************************************************/ 6bc36eafdSMike Gerdts 7*35786f68SRobert Mustacchi /****************************************************************************** 8*35786f68SRobert Mustacchi * 9*35786f68SRobert Mustacchi * 1. Copyright Notice 10*35786f68SRobert Mustacchi * 11*35786f68SRobert Mustacchi * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. 12bc36eafdSMike Gerdts * All rights reserved. 13bc36eafdSMike Gerdts * 14*35786f68SRobert Mustacchi * 2. License 15*35786f68SRobert Mustacchi * 16*35786f68SRobert Mustacchi * 2.1. This is your license from Intel Corp. under its intellectual property 17*35786f68SRobert Mustacchi * rights. You may have additional license terms from the party that provided 18*35786f68SRobert Mustacchi * you this software, covering your right to use that party's intellectual 19*35786f68SRobert Mustacchi * property rights. 20*35786f68SRobert Mustacchi * 21*35786f68SRobert Mustacchi * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 22*35786f68SRobert Mustacchi * copy of the source code appearing in this file ("Covered Code") an 23*35786f68SRobert Mustacchi * irrevocable, perpetual, worldwide license under Intel's copyrights in the 24*35786f68SRobert Mustacchi * base code distributed originally by Intel ("Original Intel Code") to copy, 25*35786f68SRobert Mustacchi * make derivatives, distribute, use and display any portion of the Covered 26*35786f68SRobert Mustacchi * Code in any form, with the right to sublicense such rights; and 27*35786f68SRobert Mustacchi * 28*35786f68SRobert Mustacchi * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 29*35786f68SRobert Mustacchi * license (with the right to sublicense), under only those claims of Intel 30*35786f68SRobert Mustacchi * patents that are infringed by the Original Intel Code, to make, use, sell, 31*35786f68SRobert Mustacchi * offer to sell, and import the Covered Code and derivative works thereof 32*35786f68SRobert Mustacchi * solely to the minimum extent necessary to exercise the above copyright 33*35786f68SRobert Mustacchi * license, and in no event shall the patent license extend to any additions 34*35786f68SRobert Mustacchi * to or modifications of the Original Intel Code. No other license or right 35*35786f68SRobert Mustacchi * is granted directly or by implication, estoppel or otherwise; 36*35786f68SRobert Mustacchi * 37*35786f68SRobert Mustacchi * The above copyright and patent license is granted only if the following 38*35786f68SRobert Mustacchi * conditions are met: 39*35786f68SRobert Mustacchi * 40*35786f68SRobert Mustacchi * 3. Conditions 41*35786f68SRobert Mustacchi * 42*35786f68SRobert Mustacchi * 3.1. Redistribution of Source with Rights to Further Distribute Source. 43*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 44*35786f68SRobert Mustacchi * Code or modification with rights to further distribute source must include 45*35786f68SRobert Mustacchi * the above Copyright Notice, the above License, this list of Conditions, 46*35786f68SRobert Mustacchi * and the following Disclaimer and Export Compliance provision. In addition, 47*35786f68SRobert Mustacchi * Licensee must cause all Covered Code to which Licensee contributes to 48*35786f68SRobert Mustacchi * contain a file documenting the changes Licensee made to create that Covered 49*35786f68SRobert Mustacchi * Code and the date of any change. Licensee must include in that file the 50*35786f68SRobert Mustacchi * documentation of any changes made by any predecessor Licensee. Licensee 51*35786f68SRobert Mustacchi * must include a prominent statement that the modification is derived, 52*35786f68SRobert Mustacchi * directly or indirectly, from Original Intel Code. 53*35786f68SRobert Mustacchi * 54*35786f68SRobert Mustacchi * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 55*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 56*35786f68SRobert Mustacchi * Code or modification without rights to further distribute source must 57*35786f68SRobert Mustacchi * include the following Disclaimer and Export Compliance provision in the 58*35786f68SRobert Mustacchi * documentation and/or other materials provided with distribution. In 59*35786f68SRobert Mustacchi * addition, Licensee may not authorize further sublicense of source of any 60*35786f68SRobert Mustacchi * portion of the Covered Code, and must include terms to the effect that the 61*35786f68SRobert Mustacchi * license from Licensee to its licensee is limited to the intellectual 62*35786f68SRobert Mustacchi * property embodied in the software Licensee provides to its licensee, and 63*35786f68SRobert Mustacchi * not to intellectual property embodied in modifications its licensee may 64*35786f68SRobert Mustacchi * make. 65*35786f68SRobert Mustacchi * 66*35786f68SRobert Mustacchi * 3.3. Redistribution of Executable. Redistribution in executable form of any 67*35786f68SRobert Mustacchi * substantial portion of the Covered Code or modification must reproduce the 68*35786f68SRobert Mustacchi * above Copyright Notice, and the following Disclaimer and Export Compliance 69*35786f68SRobert Mustacchi * provision in the documentation and/or other materials provided with the 70*35786f68SRobert Mustacchi * distribution. 71*35786f68SRobert Mustacchi * 72*35786f68SRobert Mustacchi * 3.4. Intel retains all right, title, and interest in and to the Original 73*35786f68SRobert Mustacchi * Intel Code. 74*35786f68SRobert Mustacchi * 75*35786f68SRobert Mustacchi * 3.5. Neither the name Intel nor any other trademark owned or controlled by 76*35786f68SRobert Mustacchi * Intel shall be used in advertising or otherwise to promote the sale, use or 77*35786f68SRobert Mustacchi * other dealings in products derived from or relating to the Covered Code 78*35786f68SRobert Mustacchi * without prior written authorization from Intel. 79*35786f68SRobert Mustacchi * 80*35786f68SRobert Mustacchi * 4. Disclaimer and Export Compliance 81*35786f68SRobert Mustacchi * 82*35786f68SRobert Mustacchi * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 83*35786f68SRobert Mustacchi * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 84*35786f68SRobert Mustacchi * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 85*35786f68SRobert Mustacchi * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 86*35786f68SRobert Mustacchi * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 87*35786f68SRobert Mustacchi * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 88*35786f68SRobert Mustacchi * PARTICULAR PURPOSE. 89*35786f68SRobert Mustacchi * 90*35786f68SRobert Mustacchi * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 91*35786f68SRobert Mustacchi * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 92*35786f68SRobert Mustacchi * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 93*35786f68SRobert Mustacchi * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 94*35786f68SRobert Mustacchi * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 95*35786f68SRobert Mustacchi * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 96*35786f68SRobert Mustacchi * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 97*35786f68SRobert Mustacchi * LIMITED REMEDY. 98*35786f68SRobert Mustacchi * 99*35786f68SRobert Mustacchi * 4.3. Licensee shall not export, either directly or indirectly, any of this 100*35786f68SRobert Mustacchi * software or system incorporating such software without first obtaining any 101*35786f68SRobert Mustacchi * required license or other approval from the U. S. Department of Commerce or 102*35786f68SRobert Mustacchi * any other agency or department of the United States Government. In the 103*35786f68SRobert Mustacchi * event Licensee exports any such software from the United States or 104*35786f68SRobert Mustacchi * re-exports any such software from a foreign destination, Licensee shall 105*35786f68SRobert Mustacchi * ensure that the distribution and export/re-export of the software is in 106*35786f68SRobert Mustacchi * compliance with all laws, regulations, orders, or other restrictions of the 107*35786f68SRobert Mustacchi * U.S. Export Administration Regulations. Licensee agrees that neither it nor 108*35786f68SRobert Mustacchi * any of its subsidiaries will export/re-export any technical data, process, 109*35786f68SRobert Mustacchi * software, or service, directly or indirectly, to any country for which the 110*35786f68SRobert Mustacchi * United States government or any agency thereof requires an export license, 111*35786f68SRobert Mustacchi * other governmental approval, or letter of assurance, without first obtaining 112*35786f68SRobert Mustacchi * such license, approval or letter. 113*35786f68SRobert Mustacchi * 114*35786f68SRobert Mustacchi ***************************************************************************** 115*35786f68SRobert Mustacchi * 116*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 117*35786f68SRobert Mustacchi * following license: 118*35786f68SRobert Mustacchi * 119bc36eafdSMike Gerdts * Redistribution and use in source and binary forms, with or without 120bc36eafdSMike Gerdts * modification, are permitted provided that the following conditions 121bc36eafdSMike Gerdts * are met: 122bc36eafdSMike Gerdts * 1. Redistributions of source code must retain the above copyright 123bc36eafdSMike Gerdts * notice, this list of conditions, and the following disclaimer, 124bc36eafdSMike Gerdts * without modification. 125bc36eafdSMike Gerdts * 2. Redistributions in binary form must reproduce at minimum a disclaimer 126bc36eafdSMike Gerdts * substantially similar to the "NO WARRANTY" disclaimer below 127bc36eafdSMike Gerdts * ("Disclaimer") and any redistribution must be conditioned upon 128bc36eafdSMike Gerdts * including a substantially similar Disclaimer requirement for further 129bc36eafdSMike Gerdts * binary redistribution. 130bc36eafdSMike Gerdts * 3. Neither the names of the above-listed copyright holders nor the names 131bc36eafdSMike Gerdts * of any contributors may be used to endorse or promote products derived 132bc36eafdSMike Gerdts * from this software without specific prior written permission. 133bc36eafdSMike Gerdts * 134*35786f68SRobert Mustacchi * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 135*35786f68SRobert Mustacchi * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 136*35786f68SRobert Mustacchi * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 137*35786f68SRobert Mustacchi * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 138*35786f68SRobert Mustacchi * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 139*35786f68SRobert Mustacchi * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 140*35786f68SRobert Mustacchi * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 141*35786f68SRobert Mustacchi * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 142*35786f68SRobert Mustacchi * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 143*35786f68SRobert Mustacchi * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 144*35786f68SRobert Mustacchi * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 145*35786f68SRobert Mustacchi * 146*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 147bc36eafdSMike Gerdts * GNU General Public License ("GPL") version 2 as published by the Free 148bc36eafdSMike Gerdts * Software Foundation. 149bc36eafdSMike Gerdts * 150*35786f68SRobert Mustacchi *****************************************************************************/ 151bc36eafdSMike Gerdts 152bc36eafdSMike Gerdts #define __DTCOMPILER_H__ 153bc36eafdSMike Gerdts 154bc36eafdSMike Gerdts #ifndef _DTCOMPILER 155bc36eafdSMike Gerdts #define _DTCOMPILER 156bc36eafdSMike Gerdts 157bc36eafdSMike Gerdts #include "acdisasm.h" 158bc36eafdSMike Gerdts 159bc36eafdSMike Gerdts 160bc36eafdSMike Gerdts #define ASL_FIELD_CACHE_SIZE 512 161bc36eafdSMike Gerdts #define ASL_SUBTABLE_CACHE_SIZE 128 162bc36eafdSMike Gerdts 163bc36eafdSMike Gerdts 164bc36eafdSMike Gerdts #undef DT_EXTERN 165bc36eafdSMike Gerdts 166bc36eafdSMike Gerdts #ifdef _DECLARE_DT_GLOBALS 167bc36eafdSMike Gerdts #define DT_EXTERN 168bc36eafdSMike Gerdts #define DT_INIT_GLOBAL(a,b) (a)=(b) 169bc36eafdSMike Gerdts #else 170bc36eafdSMike Gerdts #define DT_EXTERN extern 171bc36eafdSMike Gerdts #define DT_INIT_GLOBAL(a,b) (a) 172bc36eafdSMike Gerdts #endif 173bc36eafdSMike Gerdts 174bc36eafdSMike Gerdts 175bc36eafdSMike Gerdts /* Types for individual fields (one per input line) */ 176bc36eafdSMike Gerdts 177bc36eafdSMike Gerdts #define DT_FIELD_TYPE_STRING 0 178bc36eafdSMike Gerdts #define DT_FIELD_TYPE_INTEGER 1 179bc36eafdSMike Gerdts #define DT_FIELD_TYPE_BUFFER 2 180bc36eafdSMike Gerdts #define DT_FIELD_TYPE_PCI_PATH 3 181bc36eafdSMike Gerdts #define DT_FIELD_TYPE_FLAG 4 182bc36eafdSMike Gerdts #define DT_FIELD_TYPE_FLAGS_INTEGER 5 183bc36eafdSMike Gerdts #define DT_FIELD_TYPE_INLINE_SUBTABLE 6 184bc36eafdSMike Gerdts #define DT_FIELD_TYPE_UUID 7 185bc36eafdSMike Gerdts #define DT_FIELD_TYPE_UNICODE 8 186bc36eafdSMike Gerdts #define DT_FIELD_TYPE_DEVICE_PATH 9 187bc36eafdSMike Gerdts #define DT_FIELD_TYPE_LABEL 10 188bc36eafdSMike Gerdts 189bc36eafdSMike Gerdts 190bc36eafdSMike Gerdts /* 191bc36eafdSMike Gerdts * Structure used for each individual field within an ACPI table 192bc36eafdSMike Gerdts */ 193bc36eafdSMike Gerdts typedef struct dt_field 194bc36eafdSMike Gerdts { 195bc36eafdSMike Gerdts char *Name; /* Field name (from name : value) */ 196bc36eafdSMike Gerdts char *Value; /* Field value (from name : value) */ 197bc36eafdSMike Gerdts UINT32 StringLength;/* Length of Value */ 198bc36eafdSMike Gerdts struct dt_field *Next; /* Next field */ 199bc36eafdSMike Gerdts struct dt_field *NextLabel; /* If field is a label, next label */ 200bc36eafdSMike Gerdts UINT32 Line; /* Line number for this field */ 201bc36eafdSMike Gerdts UINT32 ByteOffset; /* Offset in source file for field */ 202bc36eafdSMike Gerdts UINT32 NameColumn; /* Start column for field name */ 203bc36eafdSMike Gerdts UINT32 Column; /* Start column for field value */ 204bc36eafdSMike Gerdts UINT32 TableOffset; /* Binary offset within ACPI table */ 205bc36eafdSMike Gerdts UINT8 Flags; 206bc36eafdSMike Gerdts 207bc36eafdSMike Gerdts } DT_FIELD; 208bc36eafdSMike Gerdts 209bc36eafdSMike Gerdts /* Flags for above */ 210bc36eafdSMike Gerdts 211bc36eafdSMike Gerdts #define DT_FIELD_NOT_ALLOCATED 1 212bc36eafdSMike Gerdts 213bc36eafdSMike Gerdts 214bc36eafdSMike Gerdts /* 215bc36eafdSMike Gerdts * Structure used for individual subtables within an ACPI table 216bc36eafdSMike Gerdts */ 217bc36eafdSMike Gerdts typedef struct dt_subtable 218bc36eafdSMike Gerdts { 219bc36eafdSMike Gerdts struct dt_subtable *Parent; 220bc36eafdSMike Gerdts struct dt_subtable *Child; 221bc36eafdSMike Gerdts struct dt_subtable *Peer; 222bc36eafdSMike Gerdts struct dt_subtable *StackTop; 223bc36eafdSMike Gerdts UINT8 *Buffer; 224bc36eafdSMike Gerdts UINT8 *LengthField; 225bc36eafdSMike Gerdts char *Name; 226bc36eafdSMike Gerdts UINT32 Length; 227bc36eafdSMike Gerdts UINT32 TotalLength; 228bc36eafdSMike Gerdts UINT32 SizeOfLengthField; 229bc36eafdSMike Gerdts UINT16 Depth; 230bc36eafdSMike Gerdts UINT8 Flags; 231bc36eafdSMike Gerdts 232bc36eafdSMike Gerdts } DT_SUBTABLE; 233bc36eafdSMike Gerdts 234bc36eafdSMike Gerdts 235bc36eafdSMike Gerdts /* 236bc36eafdSMike Gerdts * Globals 237bc36eafdSMike Gerdts */ 238bc36eafdSMike Gerdts 239bc36eafdSMike Gerdts /* List of all field names and values from the input source */ 240bc36eafdSMike Gerdts 241bc36eafdSMike Gerdts DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_FieldList, NULL); 242bc36eafdSMike Gerdts 243bc36eafdSMike Gerdts /* List of all compiled tables and subtables */ 244bc36eafdSMike Gerdts 245bc36eafdSMike Gerdts DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_RootTable, NULL); 246bc36eafdSMike Gerdts 247bc36eafdSMike Gerdts /* Stack for subtables */ 248bc36eafdSMike Gerdts 249bc36eafdSMike Gerdts DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_SubtableStack, NULL); 250bc36eafdSMike Gerdts 251bc36eafdSMike Gerdts /* List for defined labels */ 252bc36eafdSMike Gerdts 253bc36eafdSMike Gerdts DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_LabelList, NULL); 254bc36eafdSMike Gerdts 255bc36eafdSMike Gerdts /* Current offset within the binary output table */ 256bc36eafdSMike Gerdts 257bc36eafdSMike Gerdts DT_EXTERN UINT32 DT_INIT_GLOBAL (Gbl_CurrentTableOffset, 0); 258bc36eafdSMike Gerdts 259bc36eafdSMike Gerdts /* Local caches */ 260bc36eafdSMike Gerdts 261bc36eafdSMike Gerdts DT_EXTERN UINT32 DT_INIT_GLOBAL (Gbl_SubtableCount, 0); 262bc36eafdSMike Gerdts DT_EXTERN ASL_CACHE_INFO DT_INIT_GLOBAL (*Gbl_SubtableCacheList, NULL); 263bc36eafdSMike Gerdts DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_SubtableCacheNext, NULL); 264bc36eafdSMike Gerdts DT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_SubtableCacheLast, NULL); 265bc36eafdSMike Gerdts 266bc36eafdSMike Gerdts DT_EXTERN UINT32 DT_INIT_GLOBAL (Gbl_FieldCount, 0); 267bc36eafdSMike Gerdts DT_EXTERN ASL_CACHE_INFO DT_INIT_GLOBAL (*Gbl_FieldCacheList, NULL); 268bc36eafdSMike Gerdts DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_FieldCacheNext, NULL); 269bc36eafdSMike Gerdts DT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_FieldCacheLast, NULL); 270bc36eafdSMike Gerdts 271bc36eafdSMike Gerdts 272bc36eafdSMike Gerdts /* dtcompiler - main module */ 273bc36eafdSMike Gerdts 274bc36eafdSMike Gerdts ACPI_STATUS 275bc36eafdSMike Gerdts DtCompileTable ( 276bc36eafdSMike Gerdts DT_FIELD **Field, 277bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *Info, 278*35786f68SRobert Mustacchi DT_SUBTABLE **RetSubtable); 279bc36eafdSMike Gerdts 280bc36eafdSMike Gerdts ACPI_STATUS 281bc36eafdSMike Gerdts DtCompileTwoSubtables ( 282bc36eafdSMike Gerdts void **List, 283bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *TableInfo1, 284bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *TableInfo2); 285bc36eafdSMike Gerdts 286bc36eafdSMike Gerdts ACPI_STATUS 287bc36eafdSMike Gerdts DtCompilePadding ( 288bc36eafdSMike Gerdts UINT32 Length, 289bc36eafdSMike Gerdts DT_SUBTABLE **RetSubtable); 290bc36eafdSMike Gerdts 291bc36eafdSMike Gerdts 292bc36eafdSMike Gerdts /* dtio - binary and text input/output */ 293bc36eafdSMike Gerdts 294bc36eafdSMike Gerdts UINT32 295bc36eafdSMike Gerdts DtGetNextLine ( 296bc36eafdSMike Gerdts FILE *Handle, 297bc36eafdSMike Gerdts UINT32 Flags); 298bc36eafdSMike Gerdts 299bc36eafdSMike Gerdts /* Flags for DtGetNextLine */ 300bc36eafdSMike Gerdts 301bc36eafdSMike Gerdts #define DT_ALLOW_MULTILINE_QUOTES 0x01 302bc36eafdSMike Gerdts 303bc36eafdSMike Gerdts 304bc36eafdSMike Gerdts DT_FIELD * 305bc36eafdSMike Gerdts DtScanFile ( 306bc36eafdSMike Gerdts FILE *Handle); 307bc36eafdSMike Gerdts 308bc36eafdSMike Gerdts void 309bc36eafdSMike Gerdts DtOutputBinary ( 310bc36eafdSMike Gerdts DT_SUBTABLE *RootTable); 311bc36eafdSMike Gerdts 312bc36eafdSMike Gerdts void 313bc36eafdSMike Gerdts DtDumpSubtableList ( 314bc36eafdSMike Gerdts void); 315bc36eafdSMike Gerdts 316bc36eafdSMike Gerdts void 317bc36eafdSMike Gerdts DtDumpFieldList ( 318bc36eafdSMike Gerdts DT_FIELD *Field); 319bc36eafdSMike Gerdts 320bc36eafdSMike Gerdts void 321bc36eafdSMike Gerdts DtWriteFieldToListing ( 322bc36eafdSMike Gerdts UINT8 *Buffer, 323bc36eafdSMike Gerdts DT_FIELD *Field, 324bc36eafdSMike Gerdts UINT32 Length); 325bc36eafdSMike Gerdts 326bc36eafdSMike Gerdts void 327bc36eafdSMike Gerdts DtWriteTableToListing ( 328bc36eafdSMike Gerdts void); 329bc36eafdSMike Gerdts 330bc36eafdSMike Gerdts 331bc36eafdSMike Gerdts /* dtsubtable - compile subtables */ 332bc36eafdSMike Gerdts 333bc36eafdSMike Gerdts void 334bc36eafdSMike Gerdts DtCreateSubtable ( 335bc36eafdSMike Gerdts UINT8 *Buffer, 336bc36eafdSMike Gerdts UINT32 Length, 337bc36eafdSMike Gerdts DT_SUBTABLE **RetSubtable); 338bc36eafdSMike Gerdts 339bc36eafdSMike Gerdts UINT32 340bc36eafdSMike Gerdts DtGetSubtableLength ( 341bc36eafdSMike Gerdts DT_FIELD *Field, 342bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *Info); 343bc36eafdSMike Gerdts 344bc36eafdSMike Gerdts void 345bc36eafdSMike Gerdts DtSetSubtableLength ( 346bc36eafdSMike Gerdts DT_SUBTABLE *Subtable); 347bc36eafdSMike Gerdts 348bc36eafdSMike Gerdts void 349bc36eafdSMike Gerdts DtPushSubtable ( 350bc36eafdSMike Gerdts DT_SUBTABLE *Subtable); 351bc36eafdSMike Gerdts 352bc36eafdSMike Gerdts void 353bc36eafdSMike Gerdts DtPopSubtable ( 354bc36eafdSMike Gerdts void); 355bc36eafdSMike Gerdts 356bc36eafdSMike Gerdts DT_SUBTABLE * 357bc36eafdSMike Gerdts DtPeekSubtable ( 358bc36eafdSMike Gerdts void); 359bc36eafdSMike Gerdts 360bc36eafdSMike Gerdts void 361bc36eafdSMike Gerdts DtInsertSubtable ( 362bc36eafdSMike Gerdts DT_SUBTABLE *ParentTable, 363bc36eafdSMike Gerdts DT_SUBTABLE *Subtable); 364bc36eafdSMike Gerdts 365bc36eafdSMike Gerdts DT_SUBTABLE * 366bc36eafdSMike Gerdts DtGetNextSubtable ( 367bc36eafdSMike Gerdts DT_SUBTABLE *ParentTable, 368bc36eafdSMike Gerdts DT_SUBTABLE *ChildTable); 369bc36eafdSMike Gerdts 370bc36eafdSMike Gerdts DT_SUBTABLE * 371bc36eafdSMike Gerdts DtGetParentSubtable ( 372bc36eafdSMike Gerdts DT_SUBTABLE *Subtable); 373bc36eafdSMike Gerdts 374bc36eafdSMike Gerdts 375bc36eafdSMike Gerdts /* dtexpress - Integer expressions and labels */ 376bc36eafdSMike Gerdts 377bc36eafdSMike Gerdts ACPI_STATUS 378bc36eafdSMike Gerdts DtResolveIntegerExpression ( 379bc36eafdSMike Gerdts DT_FIELD *Field, 380bc36eafdSMike Gerdts UINT64 *ReturnValue); 381bc36eafdSMike Gerdts 382bc36eafdSMike Gerdts UINT64 383bc36eafdSMike Gerdts DtDoOperator ( 384bc36eafdSMike Gerdts UINT64 LeftValue, 385bc36eafdSMike Gerdts UINT32 Operator, 386bc36eafdSMike Gerdts UINT64 RightValue); 387bc36eafdSMike Gerdts 388bc36eafdSMike Gerdts UINT64 389bc36eafdSMike Gerdts DtResolveLabel ( 390bc36eafdSMike Gerdts char *LabelString); 391bc36eafdSMike Gerdts 392bc36eafdSMike Gerdts void 393bc36eafdSMike Gerdts DtDetectAllLabels ( 394bc36eafdSMike Gerdts DT_FIELD *FieldList); 395bc36eafdSMike Gerdts 396bc36eafdSMike Gerdts 397bc36eafdSMike Gerdts /* dtfield - Compile individual fields within a table */ 398bc36eafdSMike Gerdts 399bc36eafdSMike Gerdts void 400bc36eafdSMike Gerdts DtCompileOneField ( 401bc36eafdSMike Gerdts UINT8 *Buffer, 402bc36eafdSMike Gerdts DT_FIELD *Field, 403bc36eafdSMike Gerdts UINT32 ByteLength, 404bc36eafdSMike Gerdts UINT8 Type, 405bc36eafdSMike Gerdts UINT8 Flags); 406bc36eafdSMike Gerdts 407bc36eafdSMike Gerdts void 408bc36eafdSMike Gerdts DtCompileInteger ( 409bc36eafdSMike Gerdts UINT8 *Buffer, 410bc36eafdSMike Gerdts DT_FIELD *Field, 411bc36eafdSMike Gerdts UINT32 ByteLength, 412bc36eafdSMike Gerdts UINT8 Flags); 413bc36eafdSMike Gerdts 414bc36eafdSMike Gerdts UINT32 415bc36eafdSMike Gerdts DtCompileBuffer ( 416bc36eafdSMike Gerdts UINT8 *Buffer, 417bc36eafdSMike Gerdts char *Value, 418bc36eafdSMike Gerdts DT_FIELD *Field, 419bc36eafdSMike Gerdts UINT32 ByteLength); 420bc36eafdSMike Gerdts 421bc36eafdSMike Gerdts void 422bc36eafdSMike Gerdts DtCompileFlag ( 423bc36eafdSMike Gerdts UINT8 *Buffer, 424bc36eafdSMike Gerdts DT_FIELD *Field, 425bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *Info); 426bc36eafdSMike Gerdts 427bc36eafdSMike Gerdts 428bc36eafdSMike Gerdts /* dtparser - lex/yacc files */ 429bc36eafdSMike Gerdts 430bc36eafdSMike Gerdts UINT64 431bc36eafdSMike Gerdts DtEvaluateExpression ( 432bc36eafdSMike Gerdts char *ExprString); 433bc36eafdSMike Gerdts 434bc36eafdSMike Gerdts int 435bc36eafdSMike Gerdts DtInitLexer ( 436bc36eafdSMike Gerdts char *String); 437bc36eafdSMike Gerdts 438bc36eafdSMike Gerdts void 439bc36eafdSMike Gerdts DtTerminateLexer ( 440bc36eafdSMike Gerdts void); 441bc36eafdSMike Gerdts 442bc36eafdSMike Gerdts char * 443bc36eafdSMike Gerdts DtGetOpName ( 444bc36eafdSMike Gerdts UINT32 ParseOpcode); 445bc36eafdSMike Gerdts 446bc36eafdSMike Gerdts 447bc36eafdSMike Gerdts /* dtutils - Miscellaneous utilities */ 448bc36eafdSMike Gerdts 449bc36eafdSMike Gerdts typedef 450bc36eafdSMike Gerdts void (*DT_WALK_CALLBACK) ( 451bc36eafdSMike Gerdts DT_SUBTABLE *Subtable, 452bc36eafdSMike Gerdts void *Context, 453bc36eafdSMike Gerdts void *ReturnValue); 454bc36eafdSMike Gerdts 455bc36eafdSMike Gerdts void 456bc36eafdSMike Gerdts DtWalkTableTree ( 457bc36eafdSMike Gerdts DT_SUBTABLE *StartTable, 458bc36eafdSMike Gerdts DT_WALK_CALLBACK UserFunction, 459bc36eafdSMike Gerdts void *Context, 460bc36eafdSMike Gerdts void *ReturnValue); 461bc36eafdSMike Gerdts 462bc36eafdSMike Gerdts void 463bc36eafdSMike Gerdts DtError ( 464bc36eafdSMike Gerdts UINT8 Level, 465bc36eafdSMike Gerdts UINT16 MessageId, 466bc36eafdSMike Gerdts DT_FIELD *FieldObject, 467bc36eafdSMike Gerdts char *ExtraMessage); 468bc36eafdSMike Gerdts 469bc36eafdSMike Gerdts void 470bc36eafdSMike Gerdts DtNameError ( 471bc36eafdSMike Gerdts UINT8 Level, 472bc36eafdSMike Gerdts UINT16 MessageId, 473bc36eafdSMike Gerdts DT_FIELD *FieldObject, 474bc36eafdSMike Gerdts char *ExtraMessage); 475bc36eafdSMike Gerdts 476bc36eafdSMike Gerdts void 477bc36eafdSMike Gerdts DtFatal ( 478bc36eafdSMike Gerdts UINT16 MessageId, 479bc36eafdSMike Gerdts DT_FIELD *FieldObject, 480bc36eafdSMike Gerdts char *ExtraMessage); 481bc36eafdSMike Gerdts 482*35786f68SRobert Mustacchi UINT64 483*35786f68SRobert Mustacchi DtDoConstant ( 484*35786f68SRobert Mustacchi char *String); 485bc36eafdSMike Gerdts 486bc36eafdSMike Gerdts char* 487bc36eafdSMike Gerdts DtGetFieldValue ( 488bc36eafdSMike Gerdts DT_FIELD *Field); 489bc36eafdSMike Gerdts 490bc36eafdSMike Gerdts UINT8 491bc36eafdSMike Gerdts DtGetFieldType ( 492bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *Info); 493bc36eafdSMike Gerdts 494bc36eafdSMike Gerdts UINT32 495bc36eafdSMike Gerdts DtGetBufferLength ( 496bc36eafdSMike Gerdts char *Buffer); 497bc36eafdSMike Gerdts 498bc36eafdSMike Gerdts UINT32 499bc36eafdSMike Gerdts DtGetFieldLength ( 500bc36eafdSMike Gerdts DT_FIELD *Field, 501bc36eafdSMike Gerdts ACPI_DMTABLE_INFO *Info); 502bc36eafdSMike Gerdts 503bc36eafdSMike Gerdts void 504bc36eafdSMike Gerdts DtSetTableChecksum ( 505bc36eafdSMike Gerdts UINT8 *ChecksumPointer); 506bc36eafdSMike Gerdts 507bc36eafdSMike Gerdts void 508bc36eafdSMike Gerdts DtSetTableLength( 509bc36eafdSMike Gerdts void); 510bc36eafdSMike Gerdts 511bc36eafdSMike Gerdts 512bc36eafdSMike Gerdts /* dttable - individual table compilation */ 513bc36eafdSMike Gerdts 514bc36eafdSMike Gerdts ACPI_STATUS 515bc36eafdSMike Gerdts DtCompileFacs ( 516bc36eafdSMike Gerdts DT_FIELD **PFieldList); 517bc36eafdSMike Gerdts 518bc36eafdSMike Gerdts ACPI_STATUS 519bc36eafdSMike Gerdts DtCompileRsdp ( 520bc36eafdSMike Gerdts DT_FIELD **PFieldList); 521bc36eafdSMike Gerdts 522bc36eafdSMike Gerdts ACPI_STATUS 523bc36eafdSMike Gerdts DtCompileAsf ( 524bc36eafdSMike Gerdts void **PFieldList); 525bc36eafdSMike Gerdts 526bc36eafdSMike Gerdts ACPI_STATUS 527bc36eafdSMike Gerdts DtCompileCpep ( 528bc36eafdSMike Gerdts void **PFieldList); 529bc36eafdSMike Gerdts 530bc36eafdSMike Gerdts ACPI_STATUS 531bc36eafdSMike Gerdts DtCompileCsrt ( 532bc36eafdSMike Gerdts void **PFieldList); 533bc36eafdSMike Gerdts 534bc36eafdSMike Gerdts ACPI_STATUS 535bc36eafdSMike Gerdts DtCompileDbg2 ( 536bc36eafdSMike Gerdts void **PFieldList); 537bc36eafdSMike Gerdts 538bc36eafdSMike Gerdts ACPI_STATUS 539bc36eafdSMike Gerdts DtCompileDmar ( 540bc36eafdSMike Gerdts void **PFieldList); 541bc36eafdSMike Gerdts 542bc36eafdSMike Gerdts ACPI_STATUS 543bc36eafdSMike Gerdts DtCompileDrtm ( 544bc36eafdSMike Gerdts void **PFieldList); 545bc36eafdSMike Gerdts 546bc36eafdSMike Gerdts ACPI_STATUS 547bc36eafdSMike Gerdts DtCompileEinj ( 548bc36eafdSMike Gerdts void **PFieldList); 549bc36eafdSMike Gerdts 550bc36eafdSMike Gerdts ACPI_STATUS 551bc36eafdSMike Gerdts DtCompileErst ( 552bc36eafdSMike Gerdts void **PFieldList); 553bc36eafdSMike Gerdts 554bc36eafdSMike Gerdts ACPI_STATUS 555bc36eafdSMike Gerdts DtCompileFadt ( 556bc36eafdSMike Gerdts void **PFieldList); 557bc36eafdSMike Gerdts 558bc36eafdSMike Gerdts ACPI_STATUS 559bc36eafdSMike Gerdts DtCompileFpdt ( 560bc36eafdSMike Gerdts void **PFieldList); 561bc36eafdSMike Gerdts 562bc36eafdSMike Gerdts ACPI_STATUS 563bc36eafdSMike Gerdts DtCompileGtdt ( 564bc36eafdSMike Gerdts void **PFieldList); 565bc36eafdSMike Gerdts 566bc36eafdSMike Gerdts ACPI_STATUS 567bc36eafdSMike Gerdts DtCompileHest ( 568bc36eafdSMike Gerdts void **PFieldList); 569bc36eafdSMike Gerdts 570bc36eafdSMike Gerdts ACPI_STATUS 571*35786f68SRobert Mustacchi DtCompileHmat ( 572*35786f68SRobert Mustacchi void **PFieldList); 573*35786f68SRobert Mustacchi 574*35786f68SRobert Mustacchi ACPI_STATUS 575bc36eafdSMike Gerdts DtCompileIort ( 576bc36eafdSMike Gerdts void **PFieldList); 577bc36eafdSMike Gerdts 578bc36eafdSMike Gerdts ACPI_STATUS 579bc36eafdSMike Gerdts DtCompileIvrs ( 580bc36eafdSMike Gerdts void **PFieldList); 581bc36eafdSMike Gerdts 582bc36eafdSMike Gerdts ACPI_STATUS 583bc36eafdSMike Gerdts DtCompileLpit ( 584bc36eafdSMike Gerdts void **PFieldList); 585bc36eafdSMike Gerdts 586bc36eafdSMike Gerdts ACPI_STATUS 587bc36eafdSMike Gerdts DtCompileMadt ( 588bc36eafdSMike Gerdts void **PFieldList); 589bc36eafdSMike Gerdts 590bc36eafdSMike Gerdts ACPI_STATUS 591bc36eafdSMike Gerdts DtCompileMcfg ( 592bc36eafdSMike Gerdts void **PFieldList); 593bc36eafdSMike Gerdts 594bc36eafdSMike Gerdts ACPI_STATUS 595bc36eafdSMike Gerdts DtCompileMpst ( 596bc36eafdSMike Gerdts void **PFieldList); 597bc36eafdSMike Gerdts 598bc36eafdSMike Gerdts ACPI_STATUS 599bc36eafdSMike Gerdts DtCompileMsct ( 600bc36eafdSMike Gerdts void **PFieldList); 601bc36eafdSMike Gerdts 602bc36eafdSMike Gerdts ACPI_STATUS 603bc36eafdSMike Gerdts DtCompileMtmr ( 604bc36eafdSMike Gerdts void **PFieldList); 605bc36eafdSMike Gerdts 606bc36eafdSMike Gerdts ACPI_STATUS 607bc36eafdSMike Gerdts DtCompileNfit ( 608bc36eafdSMike Gerdts void **PFieldList); 609bc36eafdSMike Gerdts 610bc36eafdSMike Gerdts ACPI_STATUS 611*35786f68SRobert Mustacchi DtCompilePcct ( 612*35786f68SRobert Mustacchi void **PFieldList); 613*35786f68SRobert Mustacchi 614*35786f68SRobert Mustacchi ACPI_STATUS 615*35786f68SRobert Mustacchi DtCompilePdtt ( 616*35786f68SRobert Mustacchi void **PFieldList); 617*35786f68SRobert Mustacchi 618*35786f68SRobert Mustacchi ACPI_STATUS 619bc36eafdSMike Gerdts DtCompilePmtt ( 620bc36eafdSMike Gerdts void **PFieldList); 621bc36eafdSMike Gerdts 622bc36eafdSMike Gerdts ACPI_STATUS 623*35786f68SRobert Mustacchi DtCompilePptt ( 624bc36eafdSMike Gerdts void **PFieldList); 625bc36eafdSMike Gerdts 626bc36eafdSMike Gerdts ACPI_STATUS 627bc36eafdSMike Gerdts DtCompileRsdt ( 628bc36eafdSMike Gerdts void **PFieldList); 629bc36eafdSMike Gerdts 630bc36eafdSMike Gerdts ACPI_STATUS 631bc36eafdSMike Gerdts DtCompileS3pt ( 632bc36eafdSMike Gerdts DT_FIELD **PFieldList); 633bc36eafdSMike Gerdts 634bc36eafdSMike Gerdts ACPI_STATUS 635*35786f68SRobert Mustacchi DtCompileSdev ( 636*35786f68SRobert Mustacchi void **PFieldList); 637*35786f68SRobert Mustacchi 638*35786f68SRobert Mustacchi ACPI_STATUS 639bc36eafdSMike Gerdts DtCompileSlic ( 640bc36eafdSMike Gerdts void **PFieldList); 641bc36eafdSMike Gerdts 642bc36eafdSMike Gerdts ACPI_STATUS 643bc36eafdSMike Gerdts DtCompileSlit ( 644bc36eafdSMike Gerdts void **PFieldList); 645bc36eafdSMike Gerdts 646bc36eafdSMike Gerdts ACPI_STATUS 647bc36eafdSMike Gerdts DtCompileSrat ( 648bc36eafdSMike Gerdts void **PFieldList); 649bc36eafdSMike Gerdts 650bc36eafdSMike Gerdts ACPI_STATUS 651bc36eafdSMike Gerdts DtCompileStao ( 652bc36eafdSMike Gerdts void **PFieldList); 653bc36eafdSMike Gerdts 654bc36eafdSMike Gerdts ACPI_STATUS 655bc36eafdSMike Gerdts DtCompileTcpa ( 656bc36eafdSMike Gerdts void **PFieldList); 657bc36eafdSMike Gerdts 658bc36eafdSMike Gerdts ACPI_STATUS 659*35786f68SRobert Mustacchi DtCompileTpm2 ( 660*35786f68SRobert Mustacchi void **PFieldList); 661*35786f68SRobert Mustacchi 662*35786f68SRobert Mustacchi ACPI_STATUS 663bc36eafdSMike Gerdts DtCompileUefi ( 664bc36eafdSMike Gerdts void **PFieldList); 665bc36eafdSMike Gerdts 666bc36eafdSMike Gerdts ACPI_STATUS 667bc36eafdSMike Gerdts DtCompileVrtc ( 668bc36eafdSMike Gerdts void **PFieldList); 669bc36eafdSMike Gerdts 670bc36eafdSMike Gerdts ACPI_STATUS 671bc36eafdSMike Gerdts DtCompileWdat ( 672bc36eafdSMike Gerdts void **PFieldList); 673bc36eafdSMike Gerdts 674bc36eafdSMike Gerdts ACPI_STATUS 675bc36eafdSMike Gerdts DtCompileWpbt ( 676bc36eafdSMike Gerdts void **PFieldList); 677bc36eafdSMike Gerdts 678bc36eafdSMike Gerdts ACPI_STATUS 679bc36eafdSMike Gerdts DtCompileXsdt ( 680bc36eafdSMike Gerdts void **PFieldList); 681bc36eafdSMike Gerdts 682bc36eafdSMike Gerdts ACPI_STATUS 683bc36eafdSMike Gerdts DtCompileGeneric ( 684bc36eafdSMike Gerdts void **PFieldList, 685bc36eafdSMike Gerdts char *TermFieldName, 686bc36eafdSMike Gerdts UINT32 *PFieldLength); 687bc36eafdSMike Gerdts 688bc36eafdSMike Gerdts ACPI_DMTABLE_INFO * 689bc36eafdSMike Gerdts DtGetGenericTableInfo ( 690bc36eafdSMike Gerdts char *Name); 691bc36eafdSMike Gerdts 692bc36eafdSMike Gerdts /* ACPI Table templates */ 693bc36eafdSMike Gerdts 694bc36eafdSMike Gerdts extern const unsigned char TemplateAsf[]; 695bc36eafdSMike Gerdts extern const unsigned char TemplateBoot[]; 696bc36eafdSMike Gerdts extern const unsigned char TemplateBert[]; 697bc36eafdSMike Gerdts extern const unsigned char TemplateBgrt[]; 698bc36eafdSMike Gerdts extern const unsigned char TemplateCpep[]; 699bc36eafdSMike Gerdts extern const unsigned char TemplateCsrt[]; 700bc36eafdSMike Gerdts extern const unsigned char TemplateDbg2[]; 701bc36eafdSMike Gerdts extern const unsigned char TemplateDbgp[]; 702bc36eafdSMike Gerdts extern const unsigned char TemplateDmar[]; 703bc36eafdSMike Gerdts extern const unsigned char TemplateDrtm[]; 704bc36eafdSMike Gerdts extern const unsigned char TemplateEcdt[]; 705bc36eafdSMike Gerdts extern const unsigned char TemplateEinj[]; 706bc36eafdSMike Gerdts extern const unsigned char TemplateErst[]; 707bc36eafdSMike Gerdts extern const unsigned char TemplateFadt[]; 708bc36eafdSMike Gerdts extern const unsigned char TemplateFpdt[]; 709bc36eafdSMike Gerdts extern const unsigned char TemplateGtdt[]; 710bc36eafdSMike Gerdts extern const unsigned char TemplateHest[]; 711*35786f68SRobert Mustacchi extern const unsigned char TemplateHmat[]; 712bc36eafdSMike Gerdts extern const unsigned char TemplateHpet[]; 713bc36eafdSMike Gerdts extern const unsigned char TemplateIort[]; 714bc36eafdSMike Gerdts extern const unsigned char TemplateIvrs[]; 715bc36eafdSMike Gerdts extern const unsigned char TemplateLpit[]; 716bc36eafdSMike Gerdts extern const unsigned char TemplateMadt[]; 717bc36eafdSMike Gerdts extern const unsigned char TemplateMcfg[]; 718bc36eafdSMike Gerdts extern const unsigned char TemplateMchi[]; 719bc36eafdSMike Gerdts extern const unsigned char TemplateMpst[]; 720bc36eafdSMike Gerdts extern const unsigned char TemplateMsct[]; 721bc36eafdSMike Gerdts extern const unsigned char TemplateMsdm[]; 722bc36eafdSMike Gerdts extern const unsigned char TemplateMtmr[]; 723bc36eafdSMike Gerdts extern const unsigned char TemplateNfit[]; 724bc36eafdSMike Gerdts extern const unsigned char TemplatePcct[]; 725*35786f68SRobert Mustacchi extern const unsigned char TemplatePdtt[]; 726bc36eafdSMike Gerdts extern const unsigned char TemplatePmtt[]; 727*35786f68SRobert Mustacchi extern const unsigned char TemplatePptt[]; 728*35786f68SRobert Mustacchi extern const unsigned char TemplateRasf[]; 729bc36eafdSMike Gerdts extern const unsigned char TemplateRsdt[]; 730bc36eafdSMike Gerdts extern const unsigned char TemplateS3pt[]; 731bc36eafdSMike Gerdts extern const unsigned char TemplateSbst[]; 732*35786f68SRobert Mustacchi extern const unsigned char TemplateSdei[]; 733*35786f68SRobert Mustacchi extern const unsigned char TemplateSdev[]; 734bc36eafdSMike Gerdts extern const unsigned char TemplateSlic[]; 735bc36eafdSMike Gerdts extern const unsigned char TemplateSlit[]; 736bc36eafdSMike Gerdts extern const unsigned char TemplateSpcr[]; 737bc36eafdSMike Gerdts extern const unsigned char TemplateSpmi[]; 738bc36eafdSMike Gerdts extern const unsigned char TemplateSrat[]; 739bc36eafdSMike Gerdts extern const unsigned char TemplateStao[]; 740bc36eafdSMike Gerdts extern const unsigned char TemplateTcpa[]; 741bc36eafdSMike Gerdts extern const unsigned char TemplateTpm2[]; 742bc36eafdSMike Gerdts extern const unsigned char TemplateUefi[]; 743bc36eafdSMike Gerdts extern const unsigned char TemplateVrtc[]; 744bc36eafdSMike Gerdts extern const unsigned char TemplateWaet[]; 745bc36eafdSMike Gerdts extern const unsigned char TemplateWdat[]; 746bc36eafdSMike Gerdts extern const unsigned char TemplateWddt[]; 747bc36eafdSMike Gerdts extern const unsigned char TemplateWdrt[]; 748bc36eafdSMike Gerdts extern const unsigned char TemplateWpbt[]; 749*35786f68SRobert Mustacchi extern const unsigned char TemplateWsmt[]; 750bc36eafdSMike Gerdts extern const unsigned char TemplateXenv[]; 751bc36eafdSMike Gerdts extern const unsigned char TemplateXsdt[]; 752bc36eafdSMike Gerdts 753bc36eafdSMike Gerdts #endif 754