1208625Sjkim/****************************************************************************** 2208625Sjkim * 3208625Sjkim * Module Name: dtcompiler.h - header for data table compiler 4208625Sjkim * 5208625Sjkim *****************************************************************************/ 6208625Sjkim 7217365Sjkim/* 8306536Sjkim * Copyright (C) 2000 - 2016, Intel Corp. 9208625Sjkim * All rights reserved. 10208625Sjkim * 11217365Sjkim * Redistribution and use in source and binary forms, with or without 12217365Sjkim * modification, are permitted provided that the following conditions 13217365Sjkim * are met: 14217365Sjkim * 1. Redistributions of source code must retain the above copyright 15217365Sjkim * notice, this list of conditions, and the following disclaimer, 16217365Sjkim * without modification. 17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 18217365Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 19217365Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 20217365Sjkim * including a substantially similar Disclaimer requirement for further 21217365Sjkim * binary redistribution. 22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 23217365Sjkim * of any contributors may be used to endorse or promote products derived 24217365Sjkim * from this software without specific prior written permission. 25208625Sjkim * 26217365Sjkim * Alternatively, this software may be distributed under the terms of the 27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 28217365Sjkim * Software Foundation. 29208625Sjkim * 30217365Sjkim * NO WARRANTY 31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 41217365Sjkim * POSSIBILITY OF SUCH DAMAGES. 42217365Sjkim */ 43208625Sjkim 44208625Sjkim#define __DTCOMPILER_H__ 45208625Sjkim 46208625Sjkim#ifndef _DTCOMPILER 47208625Sjkim#define _DTCOMPILER 48208625Sjkim 49208625Sjkim#include <stdio.h> 50209746Sjkim#include <contrib/dev/acpica/include/acdisasm.h> 51208625Sjkim 52208625Sjkim 53281075Sdim#define ASL_FIELD_CACHE_SIZE 512 54281075Sdim#define ASL_SUBTABLE_CACHE_SIZE 128 55281075Sdim 56281075Sdim 57208625Sjkim#undef DT_EXTERN 58208625Sjkim 59208625Sjkim#ifdef _DECLARE_DT_GLOBALS 60208625Sjkim#define DT_EXTERN 61208625Sjkim#define DT_INIT_GLOBAL(a,b) (a)=(b) 62208625Sjkim#else 63208625Sjkim#define DT_EXTERN extern 64208625Sjkim#define DT_INIT_GLOBAL(a,b) (a) 65208625Sjkim#endif 66208625Sjkim 67208625Sjkim 68208625Sjkim/* Types for individual fields (one per input line) */ 69208625Sjkim 70208625Sjkim#define DT_FIELD_TYPE_STRING 0 71208625Sjkim#define DT_FIELD_TYPE_INTEGER 1 72208625Sjkim#define DT_FIELD_TYPE_BUFFER 2 73208625Sjkim#define DT_FIELD_TYPE_PCI_PATH 3 74208625Sjkim#define DT_FIELD_TYPE_FLAG 4 75208625Sjkim#define DT_FIELD_TYPE_FLAGS_INTEGER 5 76208625Sjkim#define DT_FIELD_TYPE_INLINE_SUBTABLE 6 77217365Sjkim#define DT_FIELD_TYPE_UUID 7 78217365Sjkim#define DT_FIELD_TYPE_UNICODE 8 79217365Sjkim#define DT_FIELD_TYPE_DEVICE_PATH 9 80218590Sjkim#define DT_FIELD_TYPE_LABEL 10 81208625Sjkim 82208625Sjkim 83208625Sjkim/* 84208625Sjkim * Structure used for each individual field within an ACPI table 85208625Sjkim */ 86208625Sjkimtypedef struct dt_field 87208625Sjkim{ 88281687Sjkim char *Name; /* Field name (from name : value) */ 89281687Sjkim char *Value; /* Field value (from name : value) */ 90281687Sjkim UINT32 StringLength;/* Length of Value */ 91281687Sjkim struct dt_field *Next; /* Next field */ 92281687Sjkim struct dt_field *NextLabel; /* If field is a label, next label */ 93281687Sjkim UINT32 Line; /* Line number for this field */ 94281687Sjkim UINT32 ByteOffset; /* Offset in source file for field */ 95281687Sjkim UINT32 NameColumn; /* Start column for field name */ 96281687Sjkim UINT32 Column; /* Start column for field value */ 97281687Sjkim UINT32 TableOffset; /* Binary offset within ACPI table */ 98208625Sjkim UINT8 Flags; 99208625Sjkim 100208625Sjkim} DT_FIELD; 101208625Sjkim 102208625Sjkim/* Flags for above */ 103208625Sjkim 104208625Sjkim#define DT_FIELD_NOT_ALLOCATED 1 105208625Sjkim 106208625Sjkim 107208625Sjkim/* 108208625Sjkim * Structure used for individual subtables within an ACPI table 109208625Sjkim */ 110208625Sjkimtypedef struct dt_subtable 111208625Sjkim{ 112208625Sjkim struct dt_subtable *Parent; 113208625Sjkim struct dt_subtable *Child; 114208625Sjkim struct dt_subtable *Peer; 115208625Sjkim struct dt_subtable *StackTop; 116208625Sjkim UINT8 *Buffer; 117208625Sjkim UINT8 *LengthField; 118284460Sjkim char *Name; 119208625Sjkim UINT32 Length; 120208625Sjkim UINT32 TotalLength; 121208625Sjkim UINT32 SizeOfLengthField; 122245582Sjkim UINT16 Depth; 123208625Sjkim UINT8 Flags; 124208625Sjkim 125208625Sjkim} DT_SUBTABLE; 126208625Sjkim 127208625Sjkim 128208625Sjkim/* 129208625Sjkim * Globals 130208625Sjkim */ 131208625Sjkim 132208625Sjkim/* List of all field names and values from the input source */ 133208625Sjkim 134208625SjkimDT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_FieldList, NULL); 135208625Sjkim 136208625Sjkim/* List of all compiled tables and subtables */ 137208625Sjkim 138208625SjkimDT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_RootTable, NULL); 139208625Sjkim 140208625Sjkim/* Stack for subtables */ 141208625Sjkim 142208625SjkimDT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_SubtableStack, NULL); 143208625Sjkim 144218590Sjkim/* List for defined labels */ 145208625Sjkim 146218590SjkimDT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_LabelList, NULL); 147218590Sjkim 148218590Sjkim/* Current offset within the binary output table */ 149218590Sjkim 150218590SjkimDT_EXTERN UINT32 DT_INIT_GLOBAL (Gbl_CurrentTableOffset, 0); 151218590Sjkim 152281075Sdim/* Local caches */ 153218590Sjkim 154281075SdimDT_EXTERN UINT32 DT_INIT_GLOBAL (Gbl_SubtableCount, 0); 155281075SdimDT_EXTERN ASL_CACHE_INFO DT_INIT_GLOBAL (*Gbl_SubtableCacheList, NULL); 156281075SdimDT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_SubtableCacheNext, NULL); 157281075SdimDT_EXTERN DT_SUBTABLE DT_INIT_GLOBAL (*Gbl_SubtableCacheLast, NULL); 158281075Sdim 159281075SdimDT_EXTERN UINT32 DT_INIT_GLOBAL (Gbl_FieldCount, 0); 160281075SdimDT_EXTERN ASL_CACHE_INFO DT_INIT_GLOBAL (*Gbl_FieldCacheList, NULL); 161281075SdimDT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_FieldCacheNext, NULL); 162281075SdimDT_EXTERN DT_FIELD DT_INIT_GLOBAL (*Gbl_FieldCacheLast, NULL); 163281075Sdim 164281075Sdim 165208625Sjkim/* dtcompiler - main module */ 166208625Sjkim 167208625SjkimACPI_STATUS 168208625SjkimDtCompileTable ( 169208625Sjkim DT_FIELD **Field, 170208625Sjkim ACPI_DMTABLE_INFO *Info, 171208625Sjkim DT_SUBTABLE **RetSubtable, 172208625Sjkim BOOLEAN Required); 173208625Sjkim 174284460SjkimACPI_STATUS 175306536SjkimDtCompileTwoSubtables ( 176306536Sjkim void **List, 177306536Sjkim ACPI_DMTABLE_INFO *TableInfo1, 178306536Sjkim ACPI_DMTABLE_INFO *TableInfo2); 179306536Sjkim 180306536SjkimACPI_STATUS 181284460SjkimDtCompilePadding ( 182284460Sjkim UINT32 Length, 183284460Sjkim DT_SUBTABLE **RetSubtable); 184208625Sjkim 185284460Sjkim 186208625Sjkim/* dtio - binary and text input/output */ 187208625Sjkim 188233250SjkimUINT32 189233250SjkimDtGetNextLine ( 190306536Sjkim FILE *Handle, 191306536Sjkim UINT32 Flags); 192233250Sjkim 193306536Sjkim/* Flags for DtGetNextLine */ 194306536Sjkim 195306536Sjkim#define DT_ALLOW_MULTILINE_QUOTES 0x01 196306536Sjkim 197306536Sjkim 198208625SjkimDT_FIELD * 199208625SjkimDtScanFile ( 200208625Sjkim FILE *Handle); 201208625Sjkim 202208625Sjkimvoid 203208625SjkimDtOutputBinary ( 204208625Sjkim DT_SUBTABLE *RootTable); 205208625Sjkim 206217365Sjkimvoid 207245582SjkimDtDumpSubtableList ( 208245582Sjkim void); 209245582Sjkim 210245582Sjkimvoid 211245582SjkimDtDumpFieldList ( 212245582Sjkim DT_FIELD *Field); 213245582Sjkim 214245582Sjkimvoid 215217365SjkimDtWriteFieldToListing ( 216217365Sjkim UINT8 *Buffer, 217217365Sjkim DT_FIELD *Field, 218217365Sjkim UINT32 Length); 219208625Sjkim 220217365Sjkimvoid 221217365SjkimDtWriteTableToListing ( 222217365Sjkim void); 223217365Sjkim 224217365Sjkim 225208625Sjkim/* dtsubtable - compile subtables */ 226208625Sjkim 227208625Sjkimvoid 228208625SjkimDtCreateSubtable ( 229208625Sjkim UINT8 *Buffer, 230208625Sjkim UINT32 Length, 231208625Sjkim DT_SUBTABLE **RetSubtable); 232208625Sjkim 233208625SjkimUINT32 234208625SjkimDtGetSubtableLength ( 235208625Sjkim DT_FIELD *Field, 236208625Sjkim ACPI_DMTABLE_INFO *Info); 237208625Sjkim 238208625Sjkimvoid 239208625SjkimDtSetSubtableLength ( 240208625Sjkim DT_SUBTABLE *Subtable); 241208625Sjkim 242208625Sjkimvoid 243208625SjkimDtPushSubtable ( 244208625Sjkim DT_SUBTABLE *Subtable); 245208625Sjkim 246208625Sjkimvoid 247208625SjkimDtPopSubtable ( 248208625Sjkim void); 249208625Sjkim 250208625SjkimDT_SUBTABLE * 251208625SjkimDtPeekSubtable ( 252208625Sjkim void); 253208625Sjkim 254208625Sjkimvoid 255208625SjkimDtInsertSubtable ( 256208625Sjkim DT_SUBTABLE *ParentTable, 257208625Sjkim DT_SUBTABLE *Subtable); 258208625Sjkim 259208625SjkimDT_SUBTABLE * 260208625SjkimDtGetNextSubtable ( 261208625Sjkim DT_SUBTABLE *ParentTable, 262208625Sjkim DT_SUBTABLE *ChildTable); 263208625Sjkim 264208625SjkimDT_SUBTABLE * 265208625SjkimDtGetParentSubtable ( 266208625Sjkim DT_SUBTABLE *Subtable); 267208625Sjkim 268208625Sjkim 269218590Sjkim/* dtexpress - Integer expressions and labels */ 270218590Sjkim 271220663SjkimACPI_STATUS 272218590SjkimDtResolveIntegerExpression ( 273220663Sjkim DT_FIELD *Field, 274220663Sjkim UINT64 *ReturnValue); 275218590Sjkim 276220663SjkimUINT64 277220663SjkimDtDoOperator ( 278220663Sjkim UINT64 LeftValue, 279220663Sjkim UINT32 Operator, 280220663Sjkim UINT64 RightValue); 281220663Sjkim 282220663SjkimUINT64 283220663SjkimDtResolveLabel ( 284220663Sjkim char *LabelString); 285220663Sjkim 286218590Sjkimvoid 287218590SjkimDtDetectAllLabels ( 288218590Sjkim DT_FIELD *FieldList); 289218590Sjkim 290218590Sjkim 291208625Sjkim/* dtfield - Compile individual fields within a table */ 292208625Sjkim 293208625Sjkimvoid 294208625SjkimDtCompileOneField ( 295208625Sjkim UINT8 *Buffer, 296208625Sjkim DT_FIELD *Field, 297208625Sjkim UINT32 ByteLength, 298208625Sjkim UINT8 Type, 299208625Sjkim UINT8 Flags); 300208625Sjkim 301208625Sjkimvoid 302208625SjkimDtCompileInteger ( 303208625Sjkim UINT8 *Buffer, 304208625Sjkim DT_FIELD *Field, 305208625Sjkim UINT32 ByteLength, 306208625Sjkim UINT8 Flags); 307208625Sjkim 308208625SjkimUINT32 309208625SjkimDtCompileBuffer ( 310208625Sjkim UINT8 *Buffer, 311208625Sjkim char *Value, 312208625Sjkim DT_FIELD *Field, 313208625Sjkim UINT32 ByteLength); 314208625Sjkim 315209734Sjkimvoid 316208625SjkimDtCompileFlag ( 317208625Sjkim UINT8 *Buffer, 318208625Sjkim DT_FIELD *Field, 319209734Sjkim ACPI_DMTABLE_INFO *Info); 320208625Sjkim 321208625Sjkim 322220663Sjkim/* dtparser - lex/yacc files */ 323220663Sjkim 324220663SjkimUINT64 325220663SjkimDtEvaluateExpression ( 326220663Sjkim char *ExprString); 327220663Sjkim 328220663Sjkimint 329220663SjkimDtInitLexer ( 330220663Sjkim char *String); 331220663Sjkim 332220663Sjkimvoid 333220663SjkimDtTerminateLexer ( 334220663Sjkim void); 335220663Sjkim 336220663Sjkimchar * 337220663SjkimDtGetOpName ( 338220663Sjkim UINT32 ParseOpcode); 339220663Sjkim 340220663Sjkim 341208625Sjkim/* dtutils - Miscellaneous utilities */ 342208625Sjkim 343208625Sjkimtypedef 344208625Sjkimvoid (*DT_WALK_CALLBACK) ( 345208625Sjkim DT_SUBTABLE *Subtable, 346208625Sjkim void *Context, 347208625Sjkim void *ReturnValue); 348208625Sjkim 349208625Sjkimvoid 350208625SjkimDtWalkTableTree ( 351208625Sjkim DT_SUBTABLE *StartTable, 352208625Sjkim DT_WALK_CALLBACK UserFunction, 353208625Sjkim void *Context, 354208625Sjkim void *ReturnValue); 355208625Sjkim 356208625Sjkimvoid 357208625SjkimDtError ( 358208625Sjkim UINT8 Level, 359281075Sdim UINT16 MessageId, 360208625Sjkim DT_FIELD *FieldObject, 361208625Sjkim char *ExtraMessage); 362208625Sjkim 363208625Sjkimvoid 364208625SjkimDtNameError ( 365208625Sjkim UINT8 Level, 366281075Sdim UINT16 MessageId, 367208625Sjkim DT_FIELD *FieldObject, 368208625Sjkim char *ExtraMessage); 369208625Sjkim 370208625Sjkimvoid 371208625SjkimDtFatal ( 372281075Sdim UINT16 MessageId, 373208625Sjkim DT_FIELD *FieldObject, 374208625Sjkim char *ExtraMessage); 375208625Sjkim 376208625SjkimACPI_STATUS 377208625SjkimDtStrtoul64 ( 378208625Sjkim char *String, 379208625Sjkim UINT64 *ReturnInteger); 380208625Sjkim 381208625Sjkimchar* 382208625SjkimDtGetFieldValue ( 383220663Sjkim DT_FIELD *Field); 384208625Sjkim 385208625SjkimUINT8 386208625SjkimDtGetFieldType ( 387208625Sjkim ACPI_DMTABLE_INFO *Info); 388208625Sjkim 389208625SjkimUINT32 390208625SjkimDtGetBufferLength ( 391208625Sjkim char *Buffer); 392208625Sjkim 393208625SjkimUINT32 394208625SjkimDtGetFieldLength ( 395208625Sjkim DT_FIELD *Field, 396208625Sjkim ACPI_DMTABLE_INFO *Info); 397208625Sjkim 398208625Sjkimvoid 399208625SjkimDtSetTableChecksum ( 400208625Sjkim UINT8 *ChecksumPointer); 401208625Sjkim 402208625Sjkimvoid 403208625SjkimDtSetTableLength( 404208625Sjkim void); 405208625Sjkim 406281075SdimDT_SUBTABLE * 407281075SdimUtSubtableCacheCalloc ( 408281075Sdim void); 409281075Sdim 410281075SdimDT_FIELD * 411281075SdimUtFieldCacheCalloc ( 412281075Sdim void); 413281075Sdim 414208625Sjkimvoid 415281075SdimDtDeleteCaches ( 416208625Sjkim void); 417208625Sjkim 418208625Sjkim 419208625Sjkim/* dttable - individual table compilation */ 420208625Sjkim 421208625SjkimACPI_STATUS 422208625SjkimDtCompileFacs ( 423208625Sjkim DT_FIELD **PFieldList); 424208625Sjkim 425208625SjkimACPI_STATUS 426208625SjkimDtCompileRsdp ( 427208625Sjkim DT_FIELD **PFieldList); 428208625Sjkim 429208625SjkimACPI_STATUS 430208625SjkimDtCompileAsf ( 431208625Sjkim void **PFieldList); 432208625Sjkim 433208625SjkimACPI_STATUS 434208625SjkimDtCompileCpep ( 435208625Sjkim void **PFieldList); 436208625Sjkim 437208625SjkimACPI_STATUS 438245582SjkimDtCompileCsrt ( 439245582Sjkim void **PFieldList); 440245582Sjkim 441245582SjkimACPI_STATUS 442281075SdimDtCompileDbg2 ( 443281075Sdim void **PFieldList); 444281075Sdim 445281075SdimACPI_STATUS 446208625SjkimDtCompileDmar ( 447208625Sjkim void **PFieldList); 448208625Sjkim 449208625SjkimACPI_STATUS 450284460SjkimDtCompileDrtm ( 451284460Sjkim void **PFieldList); 452284460Sjkim 453284460SjkimACPI_STATUS 454208625SjkimDtCompileEinj ( 455208625Sjkim void **PFieldList); 456208625Sjkim 457208625SjkimACPI_STATUS 458208625SjkimDtCompileErst ( 459208625Sjkim void **PFieldList); 460208625Sjkim 461208625SjkimACPI_STATUS 462208625SjkimDtCompileFadt ( 463208625Sjkim void **PFieldList); 464208625Sjkim 465208625SjkimACPI_STATUS 466228110SjkimDtCompileFpdt ( 467228110Sjkim void **PFieldList); 468228110Sjkim 469228110SjkimACPI_STATUS 470281075SdimDtCompileGtdt ( 471281075Sdim void **PFieldList); 472281075Sdim 473281075SdimACPI_STATUS 474208625SjkimDtCompileHest ( 475208625Sjkim void **PFieldList); 476208625Sjkim 477208625SjkimACPI_STATUS 478284460SjkimDtCompileIort ( 479284460Sjkim void **PFieldList); 480284460Sjkim 481284460SjkimACPI_STATUS 482208625SjkimDtCompileIvrs ( 483208625Sjkim void **PFieldList); 484208625Sjkim 485208625SjkimACPI_STATUS 486281075SdimDtCompileLpit ( 487281075Sdim void **PFieldList); 488281075Sdim 489281075SdimACPI_STATUS 490208625SjkimDtCompileMadt ( 491208625Sjkim void **PFieldList); 492208625Sjkim 493208625SjkimACPI_STATUS 494208625SjkimDtCompileMcfg ( 495208625Sjkim void **PFieldList); 496208625Sjkim 497208625SjkimACPI_STATUS 498228110SjkimDtCompileMpst ( 499228110Sjkim void **PFieldList); 500228110Sjkim 501228110SjkimACPI_STATUS 502208625SjkimDtCompileMsct ( 503208625Sjkim void **PFieldList); 504208625Sjkim 505208625SjkimACPI_STATUS 506246849SjkimDtCompileMtmr ( 507246849Sjkim void **PFieldList); 508246849Sjkim 509246849SjkimACPI_STATUS 510284460SjkimDtCompileNfit ( 511284460Sjkim void **PFieldList); 512284460Sjkim 513284460SjkimACPI_STATUS 514228110SjkimDtCompilePmtt ( 515228110Sjkim void **PFieldList); 516228110Sjkim 517228110SjkimACPI_STATUS 518281075SdimDtCompilePcct ( 519281075Sdim void **PFieldList); 520281075Sdim 521281075SdimACPI_STATUS 522208625SjkimDtCompileRsdt ( 523208625Sjkim void **PFieldList); 524208625Sjkim 525208625SjkimACPI_STATUS 526228110SjkimDtCompileS3pt ( 527228110Sjkim DT_FIELD **PFieldList); 528228110Sjkim 529228110SjkimACPI_STATUS 530219707SjkimDtCompileSlic ( 531219707Sjkim void **PFieldList); 532219707Sjkim 533219707SjkimACPI_STATUS 534208625SjkimDtCompileSlit ( 535208625Sjkim void **PFieldList); 536208625Sjkim 537208625SjkimACPI_STATUS 538208625SjkimDtCompileSrat ( 539208625Sjkim void **PFieldList); 540208625Sjkim 541208625SjkimACPI_STATUS 542284460SjkimDtCompileStao ( 543284460Sjkim void **PFieldList); 544284460Sjkim 545284460SjkimACPI_STATUS 546306536SjkimDtCompileTcpa ( 547306536Sjkim void **PFieldList); 548306536Sjkim 549306536SjkimACPI_STATUS 550217365SjkimDtCompileUefi ( 551217365Sjkim void **PFieldList); 552217365Sjkim 553217365SjkimACPI_STATUS 554246849SjkimDtCompileVrtc ( 555246849Sjkim void **PFieldList); 556246849Sjkim 557246849SjkimACPI_STATUS 558208625SjkimDtCompileWdat ( 559208625Sjkim void **PFieldList); 560208625Sjkim 561208625SjkimACPI_STATUS 562284460SjkimDtCompileWpbt ( 563284460Sjkim void **PFieldList); 564284460Sjkim 565284460SjkimACPI_STATUS 566208625SjkimDtCompileXsdt ( 567208625Sjkim void **PFieldList); 568208625Sjkim 569220663SjkimACPI_STATUS 570220663SjkimDtCompileGeneric ( 571284460Sjkim void **PFieldList, 572284460Sjkim char *TermFieldName, 573284460Sjkim UINT32 *PFieldLength); 574220663Sjkim 575218590SjkimACPI_DMTABLE_INFO * 576218590SjkimDtGetGenericTableInfo ( 577218590Sjkim char *Name); 578218590Sjkim 579209734Sjkim/* ACPI Table templates */ 580208625Sjkim 581209734Sjkimextern const unsigned char TemplateAsf[]; 582209734Sjkimextern const unsigned char TemplateBoot[]; 583209734Sjkimextern const unsigned char TemplateBert[]; 584228110Sjkimextern const unsigned char TemplateBgrt[]; 585209734Sjkimextern const unsigned char TemplateCpep[]; 586245582Sjkimextern const unsigned char TemplateCsrt[]; 587281075Sdimextern const unsigned char TemplateDbg2[]; 588209734Sjkimextern const unsigned char TemplateDbgp[]; 589209734Sjkimextern const unsigned char TemplateDmar[]; 590284460Sjkimextern const unsigned char TemplateDrtm[]; 591209734Sjkimextern const unsigned char TemplateEcdt[]; 592209734Sjkimextern const unsigned char TemplateEinj[]; 593209734Sjkimextern const unsigned char TemplateErst[]; 594209734Sjkimextern const unsigned char TemplateFadt[]; 595228110Sjkimextern const unsigned char TemplateFpdt[]; 596228110Sjkimextern const unsigned char TemplateGtdt[]; 597209734Sjkimextern const unsigned char TemplateHest[]; 598209734Sjkimextern const unsigned char TemplateHpet[]; 599284460Sjkimextern const unsigned char TemplateIort[]; 600209734Sjkimextern const unsigned char TemplateIvrs[]; 601281075Sdimextern const unsigned char TemplateLpit[]; 602209734Sjkimextern const unsigned char TemplateMadt[]; 603209734Sjkimextern const unsigned char TemplateMcfg[]; 604209734Sjkimextern const unsigned char TemplateMchi[]; 605228110Sjkimextern const unsigned char TemplateMpst[]; 606209734Sjkimextern const unsigned char TemplateMsct[]; 607281687Sjkimextern const unsigned char TemplateMsdm[]; 608246849Sjkimextern const unsigned char TemplateMtmr[]; 609284460Sjkimextern const unsigned char TemplateNfit[]; 610281075Sdimextern const unsigned char TemplatePcct[]; 611228110Sjkimextern const unsigned char TemplatePmtt[]; 612209734Sjkimextern const unsigned char TemplateRsdt[]; 613228110Sjkimextern const unsigned char TemplateS3pt[]; 614209734Sjkimextern const unsigned char TemplateSbst[]; 615209734Sjkimextern const unsigned char TemplateSlic[]; 616209734Sjkimextern const unsigned char TemplateSlit[]; 617209734Sjkimextern const unsigned char TemplateSpcr[]; 618209734Sjkimextern const unsigned char TemplateSpmi[]; 619209734Sjkimextern const unsigned char TemplateSrat[]; 620284460Sjkimextern const unsigned char TemplateStao[]; 621209734Sjkimextern const unsigned char TemplateTcpa[]; 622245582Sjkimextern const unsigned char TemplateTpm2[]; 623209734Sjkimextern const unsigned char TemplateUefi[]; 624246849Sjkimextern const unsigned char TemplateVrtc[]; 625209734Sjkimextern const unsigned char TemplateWaet[]; 626209734Sjkimextern const unsigned char TemplateWdat[]; 627209734Sjkimextern const unsigned char TemplateWddt[]; 628209734Sjkimextern const unsigned char TemplateWdrt[]; 629284460Sjkimextern const unsigned char TemplateWpbt[]; 630284460Sjkimextern const unsigned char TemplateXenv[]; 631209734Sjkimextern const unsigned char TemplateXsdt[]; 632209734Sjkim 633208625Sjkim#endif 634