1 2/****************************************************************************** 3 * 4 * Module Name: aslcompiler.h - common include file for iASL 5 * 6 *****************************************************************************/ 7 8/* 9 * Copyright (C) 2000 - 2011, Intel Corp. 10 * All rights reserved. 11 * 12 * Redistribution and use in source and binary forms, with or without 13 * modification, are permitted provided that the following conditions 14 * are met: 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions, and the following disclaimer, 17 * without modification. 18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19 * substantially similar to the "NO WARRANTY" disclaimer below 20 * ("Disclaimer") and any redistribution must be conditioned upon 21 * including a substantially similar Disclaimer requirement for further 22 * binary redistribution. 23 * 3. Neither the names of the above-listed copyright holders nor the names 24 * of any contributors may be used to endorse or promote products derived 25 * from this software without specific prior written permission. 26 * 27 * Alternatively, this software may be distributed under the terms of the 28 * GNU General Public License ("GPL") version 2 as published by the Free 29 * Software Foundation. 30 * 31 * NO WARRANTY 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 * POSSIBILITY OF SUCH DAMAGES. 43 */ 44 45 46#ifndef __ASLCOMPILER_H 47#define __ASLCOMPILER_H 48 49#include <contrib/dev/acpica/include/acpi.h> 50#include <contrib/dev/acpica/include/accommon.h> 51#include <contrib/dev/acpica/include/amlresrc.h> 52#include <contrib/dev/acpica/include/acdebug.h> 53 54/* Microsoft-specific */ 55 56#if (defined WIN32 || defined WIN64) 57 58/* warn : used #pragma pack */ 59#pragma warning(disable:4103) 60 61/* warn : named type definition in parentheses */ 62#pragma warning(disable:4115) 63#endif 64 65#include <stdio.h> 66#include <stdlib.h> 67#include <stdarg.h> 68#include <string.h> 69#include <errno.h> 70#include <ctype.h> 71 72/* Compiler headers */ 73 74#include <contrib/dev/acpica/compiler/asldefine.h> 75#include <contrib/dev/acpica/compiler/asltypes.h> 76#include <contrib/dev/acpica/compiler/aslmessages.h> 77#include <contrib/dev/acpica/compiler/aslglobal.h> 78 79 80/******************************************************************************* 81 * 82 * Compiler prototypes 83 * 84 ******************************************************************************/ 85 86/* 87 * parser - generated from flex/bison, lex/yacc, etc. 88 */ 89int 90AslCompilerparse( 91 void); 92 93ACPI_PARSE_OBJECT * 94AslDoError ( 95 void); 96 97int 98AslCompilerlex( 99 void); 100 101void 102ResetCurrentLineBuffer ( 103 void); 104 105void 106InsertLineBuffer ( 107 int SourceChar); 108 109int 110AslPopInputFileStack ( 111 void); 112 113void 114AslPushInputFileStack ( 115 FILE *InputFile, 116 char *Filename); 117 118/* 119 * aslstartup - entered from main() 120 */ 121void 122AslInitializeGlobals ( 123 void); 124 125typedef 126ACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( 127 char *); 128 129ACPI_STATUS 130AslDoOnePathname ( 131 char *Pathname, 132 ASL_PATHNAME_CALLBACK Callback); 133 134ACPI_STATUS 135AslDoOneFile ( 136 char *Filename); 137 138/* 139 * aslcompile - compile mainline 140 */ 141void 142AslCompilerSignon ( 143 UINT32 FileId); 144 145void 146AslCompilerFileHeader ( 147 UINT32 FileId); 148 149int 150CmDoCompile ( 151 void); 152 153void 154CmDoOutputFiles ( 155 void); 156 157void 158CmCleanupAndExit ( 159 void); 160 161ACPI_STATUS 162FlCheckForAscii ( 163 ASL_FILE_INFO *FileInfo); 164 165 166/*
| 1 2/****************************************************************************** 3 * 4 * Module Name: aslcompiler.h - common include file for iASL 5 * 6 *****************************************************************************/ 7 8/* 9 * Copyright (C) 2000 - 2011, Intel Corp. 10 * All rights reserved. 11 * 12 * Redistribution and use in source and binary forms, with or without 13 * modification, are permitted provided that the following conditions 14 * are met: 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions, and the following disclaimer, 17 * without modification. 18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19 * substantially similar to the "NO WARRANTY" disclaimer below 20 * ("Disclaimer") and any redistribution must be conditioned upon 21 * including a substantially similar Disclaimer requirement for further 22 * binary redistribution. 23 * 3. Neither the names of the above-listed copyright holders nor the names 24 * of any contributors may be used to endorse or promote products derived 25 * from this software without specific prior written permission. 26 * 27 * Alternatively, this software may be distributed under the terms of the 28 * GNU General Public License ("GPL") version 2 as published by the Free 29 * Software Foundation. 30 * 31 * NO WARRANTY 32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 * POSSIBILITY OF SUCH DAMAGES. 43 */ 44 45 46#ifndef __ASLCOMPILER_H 47#define __ASLCOMPILER_H 48 49#include <contrib/dev/acpica/include/acpi.h> 50#include <contrib/dev/acpica/include/accommon.h> 51#include <contrib/dev/acpica/include/amlresrc.h> 52#include <contrib/dev/acpica/include/acdebug.h> 53 54/* Microsoft-specific */ 55 56#if (defined WIN32 || defined WIN64) 57 58/* warn : used #pragma pack */ 59#pragma warning(disable:4103) 60 61/* warn : named type definition in parentheses */ 62#pragma warning(disable:4115) 63#endif 64 65#include <stdio.h> 66#include <stdlib.h> 67#include <stdarg.h> 68#include <string.h> 69#include <errno.h> 70#include <ctype.h> 71 72/* Compiler headers */ 73 74#include <contrib/dev/acpica/compiler/asldefine.h> 75#include <contrib/dev/acpica/compiler/asltypes.h> 76#include <contrib/dev/acpica/compiler/aslmessages.h> 77#include <contrib/dev/acpica/compiler/aslglobal.h> 78 79 80/******************************************************************************* 81 * 82 * Compiler prototypes 83 * 84 ******************************************************************************/ 85 86/* 87 * parser - generated from flex/bison, lex/yacc, etc. 88 */ 89int 90AslCompilerparse( 91 void); 92 93ACPI_PARSE_OBJECT * 94AslDoError ( 95 void); 96 97int 98AslCompilerlex( 99 void); 100 101void 102ResetCurrentLineBuffer ( 103 void); 104 105void 106InsertLineBuffer ( 107 int SourceChar); 108 109int 110AslPopInputFileStack ( 111 void); 112 113void 114AslPushInputFileStack ( 115 FILE *InputFile, 116 char *Filename); 117 118/* 119 * aslstartup - entered from main() 120 */ 121void 122AslInitializeGlobals ( 123 void); 124 125typedef 126ACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( 127 char *); 128 129ACPI_STATUS 130AslDoOnePathname ( 131 char *Pathname, 132 ASL_PATHNAME_CALLBACK Callback); 133 134ACPI_STATUS 135AslDoOneFile ( 136 char *Filename); 137 138/* 139 * aslcompile - compile mainline 140 */ 141void 142AslCompilerSignon ( 143 UINT32 FileId); 144 145void 146AslCompilerFileHeader ( 147 UINT32 FileId); 148 149int 150CmDoCompile ( 151 void); 152 153void 154CmDoOutputFiles ( 155 void); 156 157void 158CmCleanupAndExit ( 159 void); 160 161ACPI_STATUS 162FlCheckForAscii ( 163 ASL_FILE_INFO *FileInfo); 164 165 166/*
|
167 * aslanalyze - semantic analysis
| 167 * aslwalks - semantic analysis and parse tree walks
|
168 */ 169ACPI_STATUS 170AnOtherSemanticAnalysisWalkBegin ( 171 ACPI_PARSE_OBJECT *Op, 172 UINT32 Level, 173 void *Context); 174 175ACPI_STATUS 176AnOtherSemanticAnalysisWalkEnd ( 177 ACPI_PARSE_OBJECT *Op, 178 UINT32 Level, 179 void *Context); 180 181ACPI_STATUS
| 168 */ 169ACPI_STATUS 170AnOtherSemanticAnalysisWalkBegin ( 171 ACPI_PARSE_OBJECT *Op, 172 UINT32 Level, 173 void *Context); 174 175ACPI_STATUS 176AnOtherSemanticAnalysisWalkEnd ( 177 ACPI_PARSE_OBJECT *Op, 178 UINT32 Level, 179 void *Context); 180 181ACPI_STATUS
|
182AnOperandTypecheckWalkBegin ( 183 ACPI_PARSE_OBJECT *Op, 184 UINT32 Level, 185 void *Context); 186 187ACPI_STATUS
| |
188AnOperandTypecheckWalkEnd ( 189 ACPI_PARSE_OBJECT *Op, 190 UINT32 Level, 191 void *Context); 192 193ACPI_STATUS 194AnMethodAnalysisWalkBegin ( 195 ACPI_PARSE_OBJECT *Op, 196 UINT32 Level, 197 void *Context); 198 199ACPI_STATUS 200AnMethodAnalysisWalkEnd ( 201 ACPI_PARSE_OBJECT *Op, 202 UINT32 Level, 203 void *Context); 204 205ACPI_STATUS
| 182AnOperandTypecheckWalkEnd ( 183 ACPI_PARSE_OBJECT *Op, 184 UINT32 Level, 185 void *Context); 186 187ACPI_STATUS 188AnMethodAnalysisWalkBegin ( 189 ACPI_PARSE_OBJECT *Op, 190 UINT32 Level, 191 void *Context); 192 193ACPI_STATUS 194AnMethodAnalysisWalkEnd ( 195 ACPI_PARSE_OBJECT *Op, 196 UINT32 Level, 197 void *Context); 198 199ACPI_STATUS
|
206AnMethodTypingWalkBegin (
| 200AnMethodTypingWalkEnd (
|
207 ACPI_PARSE_OBJECT *Op, 208 UINT32 Level, 209 void *Context); 210
| 201 ACPI_PARSE_OBJECT *Op, 202 UINT32 Level, 203 void *Context); 204
|
211ACPI_STATUS 212AnMethodTypingWalkEnd (
| 205 206/* 207 * aslbtypes - bitfield data types 208 */ 209UINT32 210AnMapObjTypeToBtype ( 211 ACPI_PARSE_OBJECT *Op); 212 213UINT32 214AnMapArgTypeToBtype ( 215 UINT32 ArgType); 216 217UINT32 218AnGetBtype ( 219 ACPI_PARSE_OBJECT *Op); 220 221void 222AnFormatBtype ( 223 char *Buffer, 224 UINT32 Btype); 225 226 227/* 228 * aslanalyze - Support functions for parse tree walks 229 */ 230void 231AnCheckId (
|
213 ACPI_PARSE_OBJECT *Op,
| 232 ACPI_PARSE_OBJECT *Op,
|
214 UINT32 Level, 215 void *Context);
| 233 ACPI_NAME Type);
|
216
| 234
|
| 235/* Values for Type argument above */
|
217
| 236
|
| 237#define ASL_TYPE_HID 0 238#define ASL_TYPE_CID 1 239 240BOOLEAN 241AnIsInternalMethod ( 242 ACPI_PARSE_OBJECT *Op); 243 244UINT32 245AnGetInternalMethodReturnType ( 246 ACPI_PARSE_OBJECT *Op); 247 248BOOLEAN 249AnLastStatementIsReturn ( 250 ACPI_PARSE_OBJECT *Op); 251 252void 253AnCheckMethodReturnValue ( 254 ACPI_PARSE_OBJECT *Op, 255 const ACPI_OPCODE_INFO *OpInfo, 256 ACPI_PARSE_OBJECT *ArgOp, 257 UINT32 RequiredBtypes, 258 UINT32 ThisNodeBtype); 259 260BOOLEAN 261AnIsResultUsed ( 262 ACPI_PARSE_OBJECT *Op); 263 264void 265ApCheckForGpeNameConflict ( 266 ACPI_PARSE_OBJECT *Op); 267 268
|
218/* 219 * aslerror - error handling/reporting 220 */ 221void 222AslError ( 223 UINT8 Level, 224 UINT8 MessageId, 225 ACPI_PARSE_OBJECT *Op, 226 char *ExtraMessage); 227 228void 229AslCoreSubsystemError ( 230 ACPI_PARSE_OBJECT *Op, 231 ACPI_STATUS Status, 232 char *ExtraMessage, 233 BOOLEAN Abort); 234 235int 236AslCompilererror( 237 char *s); 238 239void 240AslCommonError ( 241 UINT8 Level, 242 UINT8 MessageId, 243 UINT32 CurrentLineNumber, 244 UINT32 LogicalLineNumber, 245 UINT32 LogicalByteOffset, 246 UINT32 Column, 247 char *Filename, 248 char *ExtraMessage); 249 250void 251AePrintException ( 252 UINT32 FileId, 253 ASL_ERROR_MSG *Enode, 254 char *Header); 255 256void 257AePrintErrorLog ( 258 UINT32 FileId); 259 260void 261AeClearErrorLog ( 262 void); 263 264ACPI_PHYSICAL_ADDRESS 265AeLocalGetRootPointer ( 266 void); 267 268 269/* 270 * asllisting - generate all "listing" type files 271 */ 272void 273LsDoListings ( 274 void); 275 276void 277LsWriteNodeToAsmListing ( 278 ACPI_PARSE_OBJECT *Op); 279 280void 281LsWriteNode ( 282 ACPI_PARSE_OBJECT *Op, 283 UINT32 FileId); 284 285void 286LsDoHexOutput ( 287 void); 288 289void 290LsDumpParseTree ( 291 void); 292 293/* 294 * aslfold - constant folding 295 */ 296ACPI_STATUS 297OpcAmlConstantWalk ( 298 ACPI_PARSE_OBJECT *Op, 299 UINT32 Level, 300 void *Context); 301 302 303/* 304 * aslopcodes - generate AML opcodes 305 */ 306ACPI_STATUS 307OpcAmlOpcodeWalk ( 308 ACPI_PARSE_OBJECT *Op, 309 UINT32 Level, 310 void *Context); 311 312ACPI_STATUS 313OpcAmlOpcodeUpdateWalk ( 314 ACPI_PARSE_OBJECT *Op, 315 UINT32 Level, 316 void *Context); 317 318void 319OpcGenerateAmlOpcode ( 320 ACPI_PARSE_OBJECT *Op); 321 322UINT32 323OpcSetOptimalIntegerSize ( 324 ACPI_PARSE_OBJECT *Op); 325 326void 327OpcGetIntegerWidth ( 328 ACPI_PARSE_OBJECT *Op); 329 330 331/* 332 * asloperands - generate AML operands for the AML opcodes 333 */ 334ACPI_PARSE_OBJECT * 335UtGetArg ( 336 ACPI_PARSE_OBJECT *Op, 337 UINT32 Argn); 338 339void 340OpnGenerateAmlOperands ( 341 ACPI_PARSE_OBJECT *Op); 342 343void 344OpnDoPackage ( 345 ACPI_PARSE_OBJECT *Op); 346 347 348/* 349 * aslopt - optmization 350 */ 351void 352OptOptimizeNamePath ( 353 ACPI_PARSE_OBJECT *Op, 354 UINT32 Flags, 355 ACPI_WALK_STATE *WalkState, 356 char *AmlNameString, 357 ACPI_NAMESPACE_NODE *TargetNode); 358 359 360/* 361 * aslcodegen - code generation 362 */ 363void 364CgGenerateAmlOutput ( 365 void); 366 367 368/* 369 * aslfile 370 */ 371void 372FlOpenFile ( 373 UINT32 FileId, 374 char *Filename, 375 char *Mode); 376 377 378/* 379 * asllength - calculate/adjust AML package lengths 380 */ 381ACPI_STATUS 382LnPackageLengthWalk ( 383 ACPI_PARSE_OBJECT *Op, 384 UINT32 Level, 385 void *Context); 386 387ACPI_STATUS 388LnInitLengthsWalk ( 389 ACPI_PARSE_OBJECT *Op, 390 UINT32 Level, 391 void *Context); 392 393void 394CgGenerateAmlLengths ( 395 ACPI_PARSE_OBJECT *Op); 396 397 398/* 399 * aslmap - opcode mappings and reserved method names 400 */ 401ACPI_OBJECT_TYPE 402AslMapNamedOpcodeToDataType ( 403 UINT16 Opcode); 404 405 406/* 407 * aslpredef - ACPI predefined names support 408 */ 409void 410ApCheckForPredefinedMethod ( 411 ACPI_PARSE_OBJECT *Op, 412 ASL_METHOD_INFO *MethodInfo); 413 414void 415ApCheckPredefinedReturnValue ( 416 ACPI_PARSE_OBJECT *Op, 417 ASL_METHOD_INFO *MethodInfo); 418 419UINT32 420ApCheckForPredefinedName ( 421 ACPI_PARSE_OBJECT *Op, 422 char *Name); 423 424void 425ApCheckForPredefinedObject ( 426 ACPI_PARSE_OBJECT *Op, 427 char *Name); 428 429void 430ApDisplayReservedNames ( 431 void); 432 433 434/* 435 * asltransform - parse tree transformations 436 */ 437ACPI_STATUS 438TrAmlTransformWalk ( 439 ACPI_PARSE_OBJECT *Op, 440 UINT32 Level, 441 void *Context); 442 443 444/* 445 * asltree - parse tree support 446 */ 447ACPI_STATUS 448TrWalkParseTree ( 449 ACPI_PARSE_OBJECT *Op, 450 UINT32 Visitation, 451 ASL_WALK_CALLBACK DescendingCallback, 452 ASL_WALK_CALLBACK AscendingCallback, 453 void *Context); 454 455/* Values for "Visitation" parameter above */ 456 457#define ASL_WALK_VISIT_DOWNWARD 0x01 458#define ASL_WALK_VISIT_UPWARD 0x02 459#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 460 461 462ACPI_PARSE_OBJECT * 463TrAllocateNode ( 464 UINT32 ParseOpcode); 465 466void 467TrReleaseNode ( 468 ACPI_PARSE_OBJECT *Op); 469 470ACPI_PARSE_OBJECT * 471TrUpdateNode ( 472 UINT32 ParseOpcode, 473 ACPI_PARSE_OBJECT *Op); 474 475ACPI_PARSE_OBJECT * 476TrCreateNode ( 477 UINT32 ParseOpcode, 478 UINT32 NumChildren, 479 ...); 480 481ACPI_PARSE_OBJECT * 482TrCreateLeafNode ( 483 UINT32 ParseOpcode); 484 485ACPI_PARSE_OBJECT * 486TrCreateValuedLeafNode ( 487 UINT32 ParseOpcode, 488 UINT64 Value); 489 490ACPI_PARSE_OBJECT *
| 269/* 270 * aslerror - error handling/reporting 271 */ 272void 273AslError ( 274 UINT8 Level, 275 UINT8 MessageId, 276 ACPI_PARSE_OBJECT *Op, 277 char *ExtraMessage); 278 279void 280AslCoreSubsystemError ( 281 ACPI_PARSE_OBJECT *Op, 282 ACPI_STATUS Status, 283 char *ExtraMessage, 284 BOOLEAN Abort); 285 286int 287AslCompilererror( 288 char *s); 289 290void 291AslCommonError ( 292 UINT8 Level, 293 UINT8 MessageId, 294 UINT32 CurrentLineNumber, 295 UINT32 LogicalLineNumber, 296 UINT32 LogicalByteOffset, 297 UINT32 Column, 298 char *Filename, 299 char *ExtraMessage); 300 301void 302AePrintException ( 303 UINT32 FileId, 304 ASL_ERROR_MSG *Enode, 305 char *Header); 306 307void 308AePrintErrorLog ( 309 UINT32 FileId); 310 311void 312AeClearErrorLog ( 313 void); 314 315ACPI_PHYSICAL_ADDRESS 316AeLocalGetRootPointer ( 317 void); 318 319 320/* 321 * asllisting - generate all "listing" type files 322 */ 323void 324LsDoListings ( 325 void); 326 327void 328LsWriteNodeToAsmListing ( 329 ACPI_PARSE_OBJECT *Op); 330 331void 332LsWriteNode ( 333 ACPI_PARSE_OBJECT *Op, 334 UINT32 FileId); 335 336void 337LsDoHexOutput ( 338 void); 339 340void 341LsDumpParseTree ( 342 void); 343 344/* 345 * aslfold - constant folding 346 */ 347ACPI_STATUS 348OpcAmlConstantWalk ( 349 ACPI_PARSE_OBJECT *Op, 350 UINT32 Level, 351 void *Context); 352 353 354/* 355 * aslopcodes - generate AML opcodes 356 */ 357ACPI_STATUS 358OpcAmlOpcodeWalk ( 359 ACPI_PARSE_OBJECT *Op, 360 UINT32 Level, 361 void *Context); 362 363ACPI_STATUS 364OpcAmlOpcodeUpdateWalk ( 365 ACPI_PARSE_OBJECT *Op, 366 UINT32 Level, 367 void *Context); 368 369void 370OpcGenerateAmlOpcode ( 371 ACPI_PARSE_OBJECT *Op); 372 373UINT32 374OpcSetOptimalIntegerSize ( 375 ACPI_PARSE_OBJECT *Op); 376 377void 378OpcGetIntegerWidth ( 379 ACPI_PARSE_OBJECT *Op); 380 381 382/* 383 * asloperands - generate AML operands for the AML opcodes 384 */ 385ACPI_PARSE_OBJECT * 386UtGetArg ( 387 ACPI_PARSE_OBJECT *Op, 388 UINT32 Argn); 389 390void 391OpnGenerateAmlOperands ( 392 ACPI_PARSE_OBJECT *Op); 393 394void 395OpnDoPackage ( 396 ACPI_PARSE_OBJECT *Op); 397 398 399/* 400 * aslopt - optmization 401 */ 402void 403OptOptimizeNamePath ( 404 ACPI_PARSE_OBJECT *Op, 405 UINT32 Flags, 406 ACPI_WALK_STATE *WalkState, 407 char *AmlNameString, 408 ACPI_NAMESPACE_NODE *TargetNode); 409 410 411/* 412 * aslcodegen - code generation 413 */ 414void 415CgGenerateAmlOutput ( 416 void); 417 418 419/* 420 * aslfile 421 */ 422void 423FlOpenFile ( 424 UINT32 FileId, 425 char *Filename, 426 char *Mode); 427 428 429/* 430 * asllength - calculate/adjust AML package lengths 431 */ 432ACPI_STATUS 433LnPackageLengthWalk ( 434 ACPI_PARSE_OBJECT *Op, 435 UINT32 Level, 436 void *Context); 437 438ACPI_STATUS 439LnInitLengthsWalk ( 440 ACPI_PARSE_OBJECT *Op, 441 UINT32 Level, 442 void *Context); 443 444void 445CgGenerateAmlLengths ( 446 ACPI_PARSE_OBJECT *Op); 447 448 449/* 450 * aslmap - opcode mappings and reserved method names 451 */ 452ACPI_OBJECT_TYPE 453AslMapNamedOpcodeToDataType ( 454 UINT16 Opcode); 455 456 457/* 458 * aslpredef - ACPI predefined names support 459 */ 460void 461ApCheckForPredefinedMethod ( 462 ACPI_PARSE_OBJECT *Op, 463 ASL_METHOD_INFO *MethodInfo); 464 465void 466ApCheckPredefinedReturnValue ( 467 ACPI_PARSE_OBJECT *Op, 468 ASL_METHOD_INFO *MethodInfo); 469 470UINT32 471ApCheckForPredefinedName ( 472 ACPI_PARSE_OBJECT *Op, 473 char *Name); 474 475void 476ApCheckForPredefinedObject ( 477 ACPI_PARSE_OBJECT *Op, 478 char *Name); 479 480void 481ApDisplayReservedNames ( 482 void); 483 484 485/* 486 * asltransform - parse tree transformations 487 */ 488ACPI_STATUS 489TrAmlTransformWalk ( 490 ACPI_PARSE_OBJECT *Op, 491 UINT32 Level, 492 void *Context); 493 494 495/* 496 * asltree - parse tree support 497 */ 498ACPI_STATUS 499TrWalkParseTree ( 500 ACPI_PARSE_OBJECT *Op, 501 UINT32 Visitation, 502 ASL_WALK_CALLBACK DescendingCallback, 503 ASL_WALK_CALLBACK AscendingCallback, 504 void *Context); 505 506/* Values for "Visitation" parameter above */ 507 508#define ASL_WALK_VISIT_DOWNWARD 0x01 509#define ASL_WALK_VISIT_UPWARD 0x02 510#define ASL_WALK_VISIT_TWICE (ASL_WALK_VISIT_DOWNWARD | ASL_WALK_VISIT_UPWARD) 511 512 513ACPI_PARSE_OBJECT * 514TrAllocateNode ( 515 UINT32 ParseOpcode); 516 517void 518TrReleaseNode ( 519 ACPI_PARSE_OBJECT *Op); 520 521ACPI_PARSE_OBJECT * 522TrUpdateNode ( 523 UINT32 ParseOpcode, 524 ACPI_PARSE_OBJECT *Op); 525 526ACPI_PARSE_OBJECT * 527TrCreateNode ( 528 UINT32 ParseOpcode, 529 UINT32 NumChildren, 530 ...); 531 532ACPI_PARSE_OBJECT * 533TrCreateLeafNode ( 534 UINT32 ParseOpcode); 535 536ACPI_PARSE_OBJECT * 537TrCreateValuedLeafNode ( 538 UINT32 ParseOpcode, 539 UINT64 Value); 540 541ACPI_PARSE_OBJECT *
|
| 542TrCreateConstantLeafNode ( 543 UINT32 ParseOpcode); 544 545ACPI_PARSE_OBJECT *
|
491TrLinkChildren ( 492 ACPI_PARSE_OBJECT *Op, 493 UINT32 NumChildren, 494 ...); 495 496void 497TrSetEndLineNumber ( 498 ACPI_PARSE_OBJECT *Op); 499 500void 501TrWalkTree ( 502 void); 503 504ACPI_PARSE_OBJECT * 505TrLinkPeerNode ( 506 ACPI_PARSE_OBJECT *Op1, 507 ACPI_PARSE_OBJECT *Op2); 508 509ACPI_PARSE_OBJECT * 510TrLinkChildNode ( 511 ACPI_PARSE_OBJECT *Op1, 512 ACPI_PARSE_OBJECT *Op2); 513 514ACPI_PARSE_OBJECT * 515TrSetNodeFlags ( 516 ACPI_PARSE_OBJECT *Op, 517 UINT32 Flags); 518 519ACPI_PARSE_OBJECT * 520TrLinkPeerNodes ( 521 UINT32 NumPeers, 522 ...); 523 524 525/* 526 * aslfiles - File I/O support 527 */ 528void 529AslAbort ( 530 void); 531 532void 533FlAddIncludeDirectory ( 534 char *Dir); 535 536void 537FlOpenIncludeFile ( 538 ACPI_PARSE_OBJECT *Op); 539 540void 541FlFileError ( 542 UINT32 FileId, 543 UINT8 ErrorId); 544 545UINT32 546FlGetFileSize ( 547 UINT32 FileId); 548 549ACPI_STATUS 550FlReadFile ( 551 UINT32 FileId, 552 void *Buffer, 553 UINT32 Length); 554 555void 556FlWriteFile ( 557 UINT32 FileId, 558 void *Buffer, 559 UINT32 Length); 560 561void 562FlSeekFile ( 563 UINT32 FileId, 564 long Offset); 565 566void 567FlCloseFile ( 568 UINT32 FileId); 569 570void 571FlPrintFile ( 572 UINT32 FileId, 573 char *Format, 574 ...); 575 576void 577FlSetLineNumber ( 578 ACPI_PARSE_OBJECT *Op); 579 580ACPI_STATUS 581FlOpenInputFile ( 582 char *InputFilename); 583 584ACPI_STATUS 585FlOpenAmlOutputFile ( 586 char *InputFilename); 587 588ACPI_STATUS 589FlOpenMiscOutputFiles ( 590 char *InputFilename); 591 592 593/* 594 * asload - load namespace in prep for cross reference 595 */ 596ACPI_STATUS 597LdLoadNamespace ( 598 ACPI_PARSE_OBJECT *RootOp); 599 600 601/* 602 * asllookup - namespace cross reference 603 */ 604ACPI_STATUS 605LkCrossReferenceNamespace ( 606 void); 607 608void 609LkFindUnreferencedObjects ( 610 void); 611 612ACPI_STATUS 613LsDisplayNamespace ( 614 void); 615 616void 617LsSetupNsList ( 618 void *Handle); 619 620 621/* 622 * aslutils - common compiler utilites 623 */ 624void 625DbgPrint ( 626 UINT32 Type, 627 char *Format, 628 ...); 629 630/* Type values for above */ 631 632#define ASL_DEBUG_OUTPUT 0 633#define ASL_PARSE_OUTPUT 1 634#define ASL_TREE_OUTPUT 2 635 636void 637UtDisplaySupportedTables ( 638 void); 639 640void 641UtDisplayConstantOpcodes ( 642 void); 643 644UINT8 645UtBeginEvent ( 646 char *Name); 647 648void 649UtEndEvent ( 650 UINT8 Event); 651 652void * 653UtLocalCalloc ( 654 UINT32 Size); 655 656void 657UtPrintFormattedName ( 658 UINT16 ParseOpcode, 659 UINT32 Level); 660 661void 662UtDisplaySummary ( 663 UINT32 FileId); 664 665UINT8 666UtHexCharToValue ( 667 int HexChar); 668 669void 670UtConvertByteToHex ( 671 UINT8 RawByte, 672 UINT8 *Buffer); 673 674void 675UtConvertByteToAsmHex ( 676 UINT8 RawByte, 677 UINT8 *Buffer); 678 679char * 680UtGetOpName ( 681 UINT32 ParseOpcode); 682 683void 684UtSetParseOpName ( 685 ACPI_PARSE_OBJECT *Op); 686 687char * 688UtGetStringBuffer ( 689 UINT32 Length); 690 691ACPI_STATUS 692UtInternalizeName ( 693 char *ExternalName, 694 char **ConvertedName); 695 696void 697UtAttachNamepathToOwner ( 698 ACPI_PARSE_OBJECT *Op, 699 ACPI_PARSE_OBJECT *NameNode); 700 701ACPI_PARSE_OBJECT * 702UtCheckIntegerRange ( 703 ACPI_PARSE_OBJECT *Op, 704 UINT32 LowValue, 705 UINT32 HighValue); 706 707UINT64 708UtDoConstant ( 709 char *String); 710 711/* 712 * asluuid - UUID support 713 */ 714ACPI_STATUS 715AuValidateUuid ( 716 char *InString); 717 718ACPI_STATUS 719AuConvertStringToUuid ( 720 char *InString, 721 char *UuIdBuffer); 722 723ACPI_STATUS 724AuConvertUuidToString ( 725 char *UuIdBuffer, 726 char *OutString); 727 728/* 729 * aslresource - Resource template generation utilities 730 */ 731void 732RsSmallAddressCheck ( 733 UINT8 Type, 734 UINT32 Minimum, 735 UINT32 Maximum, 736 UINT32 Length, 737 UINT32 Alignment, 738 ACPI_PARSE_OBJECT *MinOp, 739 ACPI_PARSE_OBJECT *MaxOp, 740 ACPI_PARSE_OBJECT *LengthOp, 741 ACPI_PARSE_OBJECT *AlignOp, 742 ACPI_PARSE_OBJECT *Op); 743 744void 745RsLargeAddressCheck ( 746 UINT64 Minimum, 747 UINT64 Maximum, 748 UINT64 Length, 749 UINT64 Granularity, 750 UINT8 Flags, 751 ACPI_PARSE_OBJECT *MinOp, 752 ACPI_PARSE_OBJECT *MaxOp, 753 ACPI_PARSE_OBJECT *LengthOp, 754 ACPI_PARSE_OBJECT *GranOp, 755 ACPI_PARSE_OBJECT *Op); 756 757UINT16 758RsGetStringDataLength ( 759 ACPI_PARSE_OBJECT *InitializerOp); 760 761ASL_RESOURCE_NODE * 762RsAllocateResourceNode ( 763 UINT32 Size); 764 765void 766RsCreateBitField ( 767 ACPI_PARSE_OBJECT *Op, 768 char *Name, 769 UINT32 ByteOffset, 770 UINT32 BitOffset); 771 772void 773RsCreateByteField ( 774 ACPI_PARSE_OBJECT *Op, 775 char *Name, 776 UINT32 ByteOffset); 777 778void 779RsSetFlagBits ( 780 UINT8 *Flags, 781 ACPI_PARSE_OBJECT *Op, 782 UINT8 Position, 783 UINT8 DefaultBit); 784 785ACPI_PARSE_OBJECT * 786RsCompleteNodeAndGetNext ( 787 ACPI_PARSE_OBJECT *Op); 788 789void 790RsCheckListForDuplicates ( 791 ACPI_PARSE_OBJECT *Op); 792 793ASL_RESOURCE_NODE * 794RsDoOneResourceDescriptor ( 795 ACPI_PARSE_OBJECT *DescriptorTypeOp, 796 UINT32 CurrentByteOffset, 797 UINT8 *State); 798 799/* Values for State above */ 800 801#define ACPI_RSTATE_NORMAL 0 802#define ACPI_RSTATE_START_DEPENDENT 1 803#define ACPI_RSTATE_DEPENDENT_LIST 2 804 805UINT32 806RsLinkDescriptorChain ( 807 ASL_RESOURCE_NODE **PreviousRnode, 808 ASL_RESOURCE_NODE *Rnode); 809 810void 811RsDoResourceTemplate ( 812 ACPI_PARSE_OBJECT *Op); 813 814 815/* 816 * aslrestype1 - Miscellaneous Small descriptors 817 */ 818ASL_RESOURCE_NODE * 819RsDoEndTagDescriptor ( 820 ACPI_PARSE_OBJECT *Op, 821 UINT32 CurrentByteOffset); 822 823ASL_RESOURCE_NODE * 824RsDoEndDependentDescriptor ( 825 ACPI_PARSE_OBJECT *Op, 826 UINT32 CurrentByteOffset); 827 828ASL_RESOURCE_NODE * 829RsDoMemory24Descriptor ( 830 ACPI_PARSE_OBJECT *Op, 831 UINT32 CurrentByteOffset); 832 833ASL_RESOURCE_NODE * 834RsDoMemory32Descriptor ( 835 ACPI_PARSE_OBJECT *Op, 836 UINT32 CurrentByteOffset); 837 838ASL_RESOURCE_NODE * 839RsDoMemory32FixedDescriptor ( 840 ACPI_PARSE_OBJECT *Op, 841 UINT32 CurrentByteOffset); 842 843ASL_RESOURCE_NODE * 844RsDoStartDependentDescriptor ( 845 ACPI_PARSE_OBJECT *Op, 846 UINT32 CurrentByteOffset); 847 848ASL_RESOURCE_NODE * 849RsDoStartDependentNoPriDescriptor ( 850 ACPI_PARSE_OBJECT *Op, 851 UINT32 CurrentByteOffset); 852 853ASL_RESOURCE_NODE * 854RsDoVendorSmallDescriptor ( 855 ACPI_PARSE_OBJECT *Op, 856 UINT32 CurrentByteOffset); 857 858 859/* 860 * aslrestype1i - I/O-related Small descriptors 861 */ 862ASL_RESOURCE_NODE * 863RsDoDmaDescriptor ( 864 ACPI_PARSE_OBJECT *Op, 865 UINT32 CurrentByteOffset); 866 867ASL_RESOURCE_NODE * 868RsDoFixedIoDescriptor ( 869 ACPI_PARSE_OBJECT *Op, 870 UINT32 CurrentByteOffset); 871 872ASL_RESOURCE_NODE * 873RsDoIoDescriptor ( 874 ACPI_PARSE_OBJECT *Op, 875 UINT32 CurrentByteOffset); 876 877ASL_RESOURCE_NODE * 878RsDoIrqDescriptor ( 879 ACPI_PARSE_OBJECT *Op, 880 UINT32 CurrentByteOffset); 881 882ASL_RESOURCE_NODE * 883RsDoIrqNoFlagsDescriptor ( 884 ACPI_PARSE_OBJECT *Op, 885 UINT32 CurrentByteOffset); 886 887 888/* 889 * aslrestype2 - Large resource descriptors 890 */ 891ASL_RESOURCE_NODE * 892RsDoInterruptDescriptor ( 893 ACPI_PARSE_OBJECT *Op, 894 UINT32 CurrentByteOffset); 895 896ASL_RESOURCE_NODE * 897RsDoVendorLargeDescriptor ( 898 ACPI_PARSE_OBJECT *Op, 899 UINT32 CurrentByteOffset); 900 901ASL_RESOURCE_NODE * 902RsDoGeneralRegisterDescriptor ( 903 ACPI_PARSE_OBJECT *Op, 904 UINT32 CurrentByteOffset); 905 906 907/* 908 * aslrestype2d - DWord address descriptors 909 */ 910ASL_RESOURCE_NODE * 911RsDoDwordIoDescriptor ( 912 ACPI_PARSE_OBJECT *Op, 913 UINT32 CurrentByteOffset); 914 915ASL_RESOURCE_NODE * 916RsDoDwordMemoryDescriptor ( 917 ACPI_PARSE_OBJECT *Op, 918 UINT32 CurrentByteOffset); 919 920ASL_RESOURCE_NODE * 921RsDoDwordSpaceDescriptor ( 922 ACPI_PARSE_OBJECT *Op, 923 UINT32 CurrentByteOffset); 924 925 926/* 927 * aslrestype2e - Extended address descriptors 928 */ 929ASL_RESOURCE_NODE * 930RsDoExtendedIoDescriptor ( 931 ACPI_PARSE_OBJECT *Op, 932 UINT32 CurrentByteOffset); 933 934ASL_RESOURCE_NODE * 935RsDoExtendedMemoryDescriptor ( 936 ACPI_PARSE_OBJECT *Op, 937 UINT32 CurrentByteOffset); 938 939ASL_RESOURCE_NODE * 940RsDoExtendedSpaceDescriptor ( 941 ACPI_PARSE_OBJECT *Op, 942 UINT32 CurrentByteOffset); 943 944 945/* 946 * aslrestype2q - QWord address descriptors 947 */ 948ASL_RESOURCE_NODE * 949RsDoQwordIoDescriptor ( 950 ACPI_PARSE_OBJECT *Op, 951 UINT32 CurrentByteOffset); 952 953ASL_RESOURCE_NODE * 954RsDoQwordMemoryDescriptor ( 955 ACPI_PARSE_OBJECT *Op, 956 UINT32 CurrentByteOffset); 957 958ASL_RESOURCE_NODE * 959RsDoQwordSpaceDescriptor ( 960 ACPI_PARSE_OBJECT *Op, 961 UINT32 CurrentByteOffset); 962 963 964/* 965 * aslrestype2w - Word address descriptors 966 */ 967ASL_RESOURCE_NODE * 968RsDoWordIoDescriptor ( 969 ACPI_PARSE_OBJECT *Op, 970 UINT32 CurrentByteOffset); 971 972ASL_RESOURCE_NODE * 973RsDoWordSpaceDescriptor ( 974 ACPI_PARSE_OBJECT *Op, 975 UINT32 CurrentByteOffset); 976 977ASL_RESOURCE_NODE * 978RsDoWordBusNumberDescriptor ( 979 ACPI_PARSE_OBJECT *Op, 980 UINT32 CurrentByteOffset); 981 982/* 983 * Entry to data table compiler subsystem 984 */ 985ACPI_STATUS 986DtDoCompile( 987 void); 988 989ACPI_STATUS 990DtCreateTemplates ( 991 char *Signature); 992 993#endif /* __ASLCOMPILER_H */ 994
| 546TrLinkChildren ( 547 ACPI_PARSE_OBJECT *Op, 548 UINT32 NumChildren, 549 ...); 550 551void 552TrSetEndLineNumber ( 553 ACPI_PARSE_OBJECT *Op); 554 555void 556TrWalkTree ( 557 void); 558 559ACPI_PARSE_OBJECT * 560TrLinkPeerNode ( 561 ACPI_PARSE_OBJECT *Op1, 562 ACPI_PARSE_OBJECT *Op2); 563 564ACPI_PARSE_OBJECT * 565TrLinkChildNode ( 566 ACPI_PARSE_OBJECT *Op1, 567 ACPI_PARSE_OBJECT *Op2); 568 569ACPI_PARSE_OBJECT * 570TrSetNodeFlags ( 571 ACPI_PARSE_OBJECT *Op, 572 UINT32 Flags); 573 574ACPI_PARSE_OBJECT * 575TrLinkPeerNodes ( 576 UINT32 NumPeers, 577 ...); 578 579 580/* 581 * aslfiles - File I/O support 582 */ 583void 584AslAbort ( 585 void); 586 587void 588FlAddIncludeDirectory ( 589 char *Dir); 590 591void 592FlOpenIncludeFile ( 593 ACPI_PARSE_OBJECT *Op); 594 595void 596FlFileError ( 597 UINT32 FileId, 598 UINT8 ErrorId); 599 600UINT32 601FlGetFileSize ( 602 UINT32 FileId); 603 604ACPI_STATUS 605FlReadFile ( 606 UINT32 FileId, 607 void *Buffer, 608 UINT32 Length); 609 610void 611FlWriteFile ( 612 UINT32 FileId, 613 void *Buffer, 614 UINT32 Length); 615 616void 617FlSeekFile ( 618 UINT32 FileId, 619 long Offset); 620 621void 622FlCloseFile ( 623 UINT32 FileId); 624 625void 626FlPrintFile ( 627 UINT32 FileId, 628 char *Format, 629 ...); 630 631void 632FlSetLineNumber ( 633 ACPI_PARSE_OBJECT *Op); 634 635ACPI_STATUS 636FlOpenInputFile ( 637 char *InputFilename); 638 639ACPI_STATUS 640FlOpenAmlOutputFile ( 641 char *InputFilename); 642 643ACPI_STATUS 644FlOpenMiscOutputFiles ( 645 char *InputFilename); 646 647 648/* 649 * asload - load namespace in prep for cross reference 650 */ 651ACPI_STATUS 652LdLoadNamespace ( 653 ACPI_PARSE_OBJECT *RootOp); 654 655 656/* 657 * asllookup - namespace cross reference 658 */ 659ACPI_STATUS 660LkCrossReferenceNamespace ( 661 void); 662 663void 664LkFindUnreferencedObjects ( 665 void); 666 667ACPI_STATUS 668LsDisplayNamespace ( 669 void); 670 671void 672LsSetupNsList ( 673 void *Handle); 674 675 676/* 677 * aslutils - common compiler utilites 678 */ 679void 680DbgPrint ( 681 UINT32 Type, 682 char *Format, 683 ...); 684 685/* Type values for above */ 686 687#define ASL_DEBUG_OUTPUT 0 688#define ASL_PARSE_OUTPUT 1 689#define ASL_TREE_OUTPUT 2 690 691void 692UtDisplaySupportedTables ( 693 void); 694 695void 696UtDisplayConstantOpcodes ( 697 void); 698 699UINT8 700UtBeginEvent ( 701 char *Name); 702 703void 704UtEndEvent ( 705 UINT8 Event); 706 707void * 708UtLocalCalloc ( 709 UINT32 Size); 710 711void 712UtPrintFormattedName ( 713 UINT16 ParseOpcode, 714 UINT32 Level); 715 716void 717UtDisplaySummary ( 718 UINT32 FileId); 719 720UINT8 721UtHexCharToValue ( 722 int HexChar); 723 724void 725UtConvertByteToHex ( 726 UINT8 RawByte, 727 UINT8 *Buffer); 728 729void 730UtConvertByteToAsmHex ( 731 UINT8 RawByte, 732 UINT8 *Buffer); 733 734char * 735UtGetOpName ( 736 UINT32 ParseOpcode); 737 738void 739UtSetParseOpName ( 740 ACPI_PARSE_OBJECT *Op); 741 742char * 743UtGetStringBuffer ( 744 UINT32 Length); 745 746ACPI_STATUS 747UtInternalizeName ( 748 char *ExternalName, 749 char **ConvertedName); 750 751void 752UtAttachNamepathToOwner ( 753 ACPI_PARSE_OBJECT *Op, 754 ACPI_PARSE_OBJECT *NameNode); 755 756ACPI_PARSE_OBJECT * 757UtCheckIntegerRange ( 758 ACPI_PARSE_OBJECT *Op, 759 UINT32 LowValue, 760 UINT32 HighValue); 761 762UINT64 763UtDoConstant ( 764 char *String); 765 766/* 767 * asluuid - UUID support 768 */ 769ACPI_STATUS 770AuValidateUuid ( 771 char *InString); 772 773ACPI_STATUS 774AuConvertStringToUuid ( 775 char *InString, 776 char *UuIdBuffer); 777 778ACPI_STATUS 779AuConvertUuidToString ( 780 char *UuIdBuffer, 781 char *OutString); 782 783/* 784 * aslresource - Resource template generation utilities 785 */ 786void 787RsSmallAddressCheck ( 788 UINT8 Type, 789 UINT32 Minimum, 790 UINT32 Maximum, 791 UINT32 Length, 792 UINT32 Alignment, 793 ACPI_PARSE_OBJECT *MinOp, 794 ACPI_PARSE_OBJECT *MaxOp, 795 ACPI_PARSE_OBJECT *LengthOp, 796 ACPI_PARSE_OBJECT *AlignOp, 797 ACPI_PARSE_OBJECT *Op); 798 799void 800RsLargeAddressCheck ( 801 UINT64 Minimum, 802 UINT64 Maximum, 803 UINT64 Length, 804 UINT64 Granularity, 805 UINT8 Flags, 806 ACPI_PARSE_OBJECT *MinOp, 807 ACPI_PARSE_OBJECT *MaxOp, 808 ACPI_PARSE_OBJECT *LengthOp, 809 ACPI_PARSE_OBJECT *GranOp, 810 ACPI_PARSE_OBJECT *Op); 811 812UINT16 813RsGetStringDataLength ( 814 ACPI_PARSE_OBJECT *InitializerOp); 815 816ASL_RESOURCE_NODE * 817RsAllocateResourceNode ( 818 UINT32 Size); 819 820void 821RsCreateBitField ( 822 ACPI_PARSE_OBJECT *Op, 823 char *Name, 824 UINT32 ByteOffset, 825 UINT32 BitOffset); 826 827void 828RsCreateByteField ( 829 ACPI_PARSE_OBJECT *Op, 830 char *Name, 831 UINT32 ByteOffset); 832 833void 834RsSetFlagBits ( 835 UINT8 *Flags, 836 ACPI_PARSE_OBJECT *Op, 837 UINT8 Position, 838 UINT8 DefaultBit); 839 840ACPI_PARSE_OBJECT * 841RsCompleteNodeAndGetNext ( 842 ACPI_PARSE_OBJECT *Op); 843 844void 845RsCheckListForDuplicates ( 846 ACPI_PARSE_OBJECT *Op); 847 848ASL_RESOURCE_NODE * 849RsDoOneResourceDescriptor ( 850 ACPI_PARSE_OBJECT *DescriptorTypeOp, 851 UINT32 CurrentByteOffset, 852 UINT8 *State); 853 854/* Values for State above */ 855 856#define ACPI_RSTATE_NORMAL 0 857#define ACPI_RSTATE_START_DEPENDENT 1 858#define ACPI_RSTATE_DEPENDENT_LIST 2 859 860UINT32 861RsLinkDescriptorChain ( 862 ASL_RESOURCE_NODE **PreviousRnode, 863 ASL_RESOURCE_NODE *Rnode); 864 865void 866RsDoResourceTemplate ( 867 ACPI_PARSE_OBJECT *Op); 868 869 870/* 871 * aslrestype1 - Miscellaneous Small descriptors 872 */ 873ASL_RESOURCE_NODE * 874RsDoEndTagDescriptor ( 875 ACPI_PARSE_OBJECT *Op, 876 UINT32 CurrentByteOffset); 877 878ASL_RESOURCE_NODE * 879RsDoEndDependentDescriptor ( 880 ACPI_PARSE_OBJECT *Op, 881 UINT32 CurrentByteOffset); 882 883ASL_RESOURCE_NODE * 884RsDoMemory24Descriptor ( 885 ACPI_PARSE_OBJECT *Op, 886 UINT32 CurrentByteOffset); 887 888ASL_RESOURCE_NODE * 889RsDoMemory32Descriptor ( 890 ACPI_PARSE_OBJECT *Op, 891 UINT32 CurrentByteOffset); 892 893ASL_RESOURCE_NODE * 894RsDoMemory32FixedDescriptor ( 895 ACPI_PARSE_OBJECT *Op, 896 UINT32 CurrentByteOffset); 897 898ASL_RESOURCE_NODE * 899RsDoStartDependentDescriptor ( 900 ACPI_PARSE_OBJECT *Op, 901 UINT32 CurrentByteOffset); 902 903ASL_RESOURCE_NODE * 904RsDoStartDependentNoPriDescriptor ( 905 ACPI_PARSE_OBJECT *Op, 906 UINT32 CurrentByteOffset); 907 908ASL_RESOURCE_NODE * 909RsDoVendorSmallDescriptor ( 910 ACPI_PARSE_OBJECT *Op, 911 UINT32 CurrentByteOffset); 912 913 914/* 915 * aslrestype1i - I/O-related Small descriptors 916 */ 917ASL_RESOURCE_NODE * 918RsDoDmaDescriptor ( 919 ACPI_PARSE_OBJECT *Op, 920 UINT32 CurrentByteOffset); 921 922ASL_RESOURCE_NODE * 923RsDoFixedIoDescriptor ( 924 ACPI_PARSE_OBJECT *Op, 925 UINT32 CurrentByteOffset); 926 927ASL_RESOURCE_NODE * 928RsDoIoDescriptor ( 929 ACPI_PARSE_OBJECT *Op, 930 UINT32 CurrentByteOffset); 931 932ASL_RESOURCE_NODE * 933RsDoIrqDescriptor ( 934 ACPI_PARSE_OBJECT *Op, 935 UINT32 CurrentByteOffset); 936 937ASL_RESOURCE_NODE * 938RsDoIrqNoFlagsDescriptor ( 939 ACPI_PARSE_OBJECT *Op, 940 UINT32 CurrentByteOffset); 941 942 943/* 944 * aslrestype2 - Large resource descriptors 945 */ 946ASL_RESOURCE_NODE * 947RsDoInterruptDescriptor ( 948 ACPI_PARSE_OBJECT *Op, 949 UINT32 CurrentByteOffset); 950 951ASL_RESOURCE_NODE * 952RsDoVendorLargeDescriptor ( 953 ACPI_PARSE_OBJECT *Op, 954 UINT32 CurrentByteOffset); 955 956ASL_RESOURCE_NODE * 957RsDoGeneralRegisterDescriptor ( 958 ACPI_PARSE_OBJECT *Op, 959 UINT32 CurrentByteOffset); 960 961 962/* 963 * aslrestype2d - DWord address descriptors 964 */ 965ASL_RESOURCE_NODE * 966RsDoDwordIoDescriptor ( 967 ACPI_PARSE_OBJECT *Op, 968 UINT32 CurrentByteOffset); 969 970ASL_RESOURCE_NODE * 971RsDoDwordMemoryDescriptor ( 972 ACPI_PARSE_OBJECT *Op, 973 UINT32 CurrentByteOffset); 974 975ASL_RESOURCE_NODE * 976RsDoDwordSpaceDescriptor ( 977 ACPI_PARSE_OBJECT *Op, 978 UINT32 CurrentByteOffset); 979 980 981/* 982 * aslrestype2e - Extended address descriptors 983 */ 984ASL_RESOURCE_NODE * 985RsDoExtendedIoDescriptor ( 986 ACPI_PARSE_OBJECT *Op, 987 UINT32 CurrentByteOffset); 988 989ASL_RESOURCE_NODE * 990RsDoExtendedMemoryDescriptor ( 991 ACPI_PARSE_OBJECT *Op, 992 UINT32 CurrentByteOffset); 993 994ASL_RESOURCE_NODE * 995RsDoExtendedSpaceDescriptor ( 996 ACPI_PARSE_OBJECT *Op, 997 UINT32 CurrentByteOffset); 998 999 1000/* 1001 * aslrestype2q - QWord address descriptors 1002 */ 1003ASL_RESOURCE_NODE * 1004RsDoQwordIoDescriptor ( 1005 ACPI_PARSE_OBJECT *Op, 1006 UINT32 CurrentByteOffset); 1007 1008ASL_RESOURCE_NODE * 1009RsDoQwordMemoryDescriptor ( 1010 ACPI_PARSE_OBJECT *Op, 1011 UINT32 CurrentByteOffset); 1012 1013ASL_RESOURCE_NODE * 1014RsDoQwordSpaceDescriptor ( 1015 ACPI_PARSE_OBJECT *Op, 1016 UINT32 CurrentByteOffset); 1017 1018 1019/* 1020 * aslrestype2w - Word address descriptors 1021 */ 1022ASL_RESOURCE_NODE * 1023RsDoWordIoDescriptor ( 1024 ACPI_PARSE_OBJECT *Op, 1025 UINT32 CurrentByteOffset); 1026 1027ASL_RESOURCE_NODE * 1028RsDoWordSpaceDescriptor ( 1029 ACPI_PARSE_OBJECT *Op, 1030 UINT32 CurrentByteOffset); 1031 1032ASL_RESOURCE_NODE * 1033RsDoWordBusNumberDescriptor ( 1034 ACPI_PARSE_OBJECT *Op, 1035 UINT32 CurrentByteOffset); 1036 1037/* 1038 * Entry to data table compiler subsystem 1039 */ 1040ACPI_STATUS 1041DtDoCompile( 1042 void); 1043 1044ACPI_STATUS 1045DtCreateTemplates ( 1046 char *Signature); 1047 1048#endif /* __ASLCOMPILER_H */ 1049
|