dmopcode.c revision 107325
178064Sume/******************************************************************************* 262587Sitojun * 3139823Simp * Module Name: dmopcode - AML disassembler, specific AML opcodes 454263Sshin * $Revision: 79 $ 554263Sshin * 654263Sshin ******************************************************************************/ 754263Sshin 854263Sshin/****************************************************************************** 954263Sshin * 1054263Sshin * 1. Copyright Notice 1154263Sshin * 1254263Sshin * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp. 1354263Sshin * All rights reserved. 1454263Sshin * 1554263Sshin * 2. License 1654263Sshin * 1754263Sshin * 2.1. This is your license from Intel Corp. under its intellectual property 1854263Sshin * rights. You may have additional license terms from the party that provided 1954263Sshin * you this software, covering your right to use that party's intellectual 2054263Sshin * property rights. 2154263Sshin * 2254263Sshin * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 2354263Sshin * copy of the source code appearing in this file ("Covered Code") an 2454263Sshin * irrevocable, perpetual, worldwide license under Intel's copyrights in the 2554263Sshin * base code distributed originally by Intel ("Original Intel Code") to copy, 2654263Sshin * make derivatives, distribute, use and display any portion of the Covered 2754263Sshin * Code in any form, with the right to sublicense such rights; and 2854263Sshin * 2954263Sshin * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 3054263Sshin * license (with the right to sublicense), under only those claims of Intel 3154263Sshin * patents that are infringed by the Original Intel Code, to make, use, sell, 32172467Ssilby * offer to sell, and import the Covered Code and derivative works thereof 33172467Ssilby * solely to the minimum extent necessary to exercise the above copyright 34172467Ssilby * license, and in no event shall the patent license extend to any additions 3554263Sshin * to or modifications of the Original Intel Code. No other license or right 3662587Sitojun * is granted directly or by implication, estoppel or otherwise; 3754263Sshin * 3854263Sshin * The above copyright and patent license is granted only if the following 3954263Sshin * conditions are met: 4054263Sshin * 4154263Sshin * 3. Conditions 4254263Sshin * 4354263Sshin * 3.1. Redistribution of Source with Rights to Further Distribute Source. 4454263Sshin * Redistribution of source code of any substantial portion of the Covered 4554263Sshin * Code or modification with rights to further distribute source must include 4654263Sshin * the above Copyright Notice, the above License, this list of Conditions, 47105293Sume * and the following Disclaimer and Export Compliance provision. In addition, 4862587Sitojun * Licensee must cause all Covered Code to which Licensee contributes to 4962587Sitojun * contain a file documenting the changes Licensee made to create that Covered 5054263Sshin * Code and the date of any change. Licensee must include in that file the 5154263Sshin * documentation of any changes made by any predecessor Licensee. Licensee 52196019Srwatson * must include a prominent statement that the modification is derived, 5354263Sshin * directly or indirectly, from Original Intel Code. 5454263Sshin * 5554263Sshin * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 5654263Sshin * Redistribution of source code of any substantial portion of the Covered 5754263Sshin * Code or modification without rights to further distribute source must 5854263Sshin * include the following Disclaimer and Export Compliance provision in the 5962587Sitojun * documentation and/or other materials provided with distribution. In 6062587Sitojun * addition, Licensee may not authorize further sublicense of source of any 6155009Sshin * portion of the Covered Code, and must include terms to the effect that the 6262587Sitojun * license from Licensee to its licensee is limited to the intellectual 6354263Sshin * property embodied in the software Licensee provides to its licensee, and 6462587Sitojun * not to intellectual property embodied in modifications its licensee may 6554263Sshin * make. 6654263Sshin * 6754263Sshin * 3.3. Redistribution of Executable. Redistribution in executable form of any 6854263Sshin * substantial portion of the Covered Code or modification must reproduce the 6954263Sshin * above Copyright Notice, and the following Disclaimer and Export Compliance 7054263Sshin * provision in the documentation and/or other materials provided with the 7162587Sitojun * distribution. 7254263Sshin * 73105293Sume * 3.4. Intel retains all right, title, and interest in and to the Original 74105293Sume * Intel Code. 75105293Sume * 76105293Sume * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77152242Sru * Intel shall be used in advertising or otherwise to promote the sale, use or 78152242Sru * other dealings in products derived from or relating to the Covered Code 79152242Sru * without prior written authorization from Intel. 80152242Sru * 81152242Sru * 4. Disclaimer and Export Compliance 82152242Sru * 83152242Sru * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84152242Sru * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85152242Sru * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86105293Sume * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87105293Sume * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88207369Sbz * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89207369Sbz * PARTICULAR PURPOSE. 90195699Srwatson * 91195699Srwatson * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 9254263Sshin * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 9354263Sshin * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94169454Srwatson * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 9554263Sshin * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96147256Sbrooks * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 9754263Sshin * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 9854263Sshin * LIMITED REMEDY. 9954263Sshin * 10054263Sshin * 4.3. Licensee shall not export, either directly or indirectly, any of this 101153621Sthompsa * software or system incorporating such software without first obtaining any 102189494Smarius * required license or other approval from the U. S. Department of Commerce or 10354263Sshin * any other agency or department of the United States Government. In the 10454263Sshin * event Licensee exports any such software from the United States or 105155037Sglebius * re-exports any such software from a foreign destination, Licensee shall 106155037Sglebius * ensure that the distribution and export/re-export of the software is in 10754263Sshin * compliance with all laws, regulations, orders, or other restrictions of the 10854263Sshin * U.S. Export Administration Regulations. Licensee agrees that neither it nor 10954263Sshin * any of its subsidiaries will export/re-export any technical data, process, 11054263Sshin * software, or service, directly or indirectly, to any country for which the 11154263Sshin * United States government or any agency thereof requires an export license, 11254263Sshin * other governmental approval, or letter of assurance, without first obtaining 11354263Sshin * such license, approval or letter. 11454263Sshin * 11562587Sitojun *****************************************************************************/ 11654263Sshin 11754263Sshin#include "acpi.h" 11854263Sshin#include "acparser.h" 11954263Sshin#include "amlcode.h" 12054263Sshin#include "acdisasm.h" 12154263Sshin#include "acdebug.h" 12254263Sshin 12354263Sshin#ifdef ACPI_DISASSEMBLER 12454263Sshin 12554263Sshin#define _COMPONENT ACPI_CA_DEBUGGER 12654263Sshin ACPI_MODULE_NAME ("dmopcode") 12754263Sshin 12854263Sshin 12954263Sshin/******************************************************************************* 13095023Ssuz * 13154263Sshin * FUNCTION: AcpiDmMethodFlags 13254263Sshin * 13354263Sshin * PARAMETERS: Op - Method Object to be examined 13462587Sitojun * 13554263Sshin * RETURN: None 13654263Sshin * 13754263Sshin * DESCRIPTION: Decode control method flags 13854263Sshin * 13954263Sshin ******************************************************************************/ 14054263Sshin 14154263Sshinvoid 14254263SshinAcpiDmMethodFlags ( 14354263Sshin ACPI_PARSE_OBJECT *Op) 14454263Sshin{ 14595023Ssuz UINT32 Flags; 146153621Sthompsa UINT32 Args; 147153621Sthompsa 148193664Shrs 149193664Shrs /* The next Op contains the flags */ 150193664Shrs 151193664Shrs Op = AcpiPsGetDepthNext (NULL, Op); 152193664Shrs Flags = Op->Common.Value.Integer8; 153193664Shrs Args = Flags & 0x07; 154193664Shrs 155193664Shrs /* Mark the Op as completed */ 156193664Shrs 157193664Shrs Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; 158193664Shrs 159193664Shrs /* 1) Method argument count */ 160193664Shrs 161193664Shrs AcpiOsPrintf (", %d, ", Args); 162193664Shrs 163193664Shrs /* 2) Serialize rule */ 164153621Sthompsa 165243882Sglebius if (!(Flags & 0x08)) 166153621Sthompsa { 167153621Sthompsa AcpiOsPrintf ("Not"); 168153621Sthompsa } 169153621Sthompsa 170153621Sthompsa AcpiOsPrintf ("Serialized"); 171153621Sthompsa 172153621Sthompsa /* 3) SyncLevel */ 173153621Sthompsa 17454263Sshin if (Flags & 0xF0) 17562587Sitojun { 17654263Sshin AcpiOsPrintf (", %d", Flags >> 4); 17754263Sshin } 17854263Sshin} 17954263Sshin 18054263Sshin 18154263Sshin/******************************************************************************* 18254263Sshin * 18354263Sshin * FUNCTION: AcpiDmFieldFlags 18454263Sshin * 18578064Sume * PARAMETERS: Op - Field Object to be examined 18678064Sume * 18778064Sume * RETURN: None 18878064Sume * 18978064Sume * DESCRIPTION: Decode Field definition flags 19078064Sume * 19154263Sshin ******************************************************************************/ 19254263Sshin 19354263Sshinvoid 194181803SbzAcpiDmFieldFlags ( 195241913Sglebius ACPI_PARSE_OBJECT *Op) 196121684Sume{ 197121684Sume UINT32 Flags; 19854263Sshin 19954263Sshin 200189494Smarius /* The next Op contains the flags */ 201189494Smarius 202189494Smarius Op = AcpiPsGetDepthNext (NULL, Op); 203189494Smarius Flags = Op->Common.Value.Integer8; 204189494Smarius 205243882Sglebius /* Mark the Op as completed */ 206189494Smarius 207189494Smarius Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; 20854263Sshin 20954263Sshin AcpiOsPrintf ("%s, ", AcpiGbl_AccessTypes [Flags & 0x0F]); 21054263Sshin AcpiOsPrintf ("%s, ", AcpiGbl_LockRule [(Flags & 0x10) >> 4]); 21154263Sshin AcpiOsPrintf ("%s)", AcpiGbl_UpdateRules [(Flags & 0x60) >> 5]); 212189494Smarius} 213189494Smarius 214189494Smarius 215189494Smarius/******************************************************************************* 216189494Smarius * 217189494Smarius * FUNCTION: AcpiDmAddressSpace 218189494Smarius * 219189494Smarius * PARAMETERS: SpaceId - ID to be translated 220189494Smarius * 22162587Sitojun * RETURN: None 22254263Sshin * 223178888Sjulian * DESCRIPTION: Decode a SpaceId to an AddressSpaceKeyword 224178888Sjulian * 22554263Sshin ******************************************************************************/ 22654263Sshin 22754263Sshinvoid 228130662SbmsAcpiDmAddressSpace ( 22954263Sshin UINT8 SpaceId) 23054263Sshin{ 23154263Sshin 23254263Sshin if (SpaceId >= ACPI_NUM_PREDEFINED_REGIONS) 23354263Sshin { 23454263Sshin if (SpaceId == 0x7F) 23554263Sshin { 23662587Sitojun AcpiOsPrintf ("FFixedHW, "); 237147256Sbrooks } 23862587Sitojun else 23954263Sshin { 24054263Sshin AcpiOsPrintf ("0x%.2X, ", SpaceId); 24154263Sshin } 242178888Sjulian } 24354263Sshin else 24454263Sshin { 24554263Sshin AcpiOsPrintf ("%s, ", AcpiGbl_RegionTypes [SpaceId]); 24654263Sshin } 24762587Sitojun} 24862587Sitojun 24962587Sitojun 25062587Sitojun/******************************************************************************* 25195023Ssuz * 25262587Sitojun * FUNCTION: AcpiDmRegionFlags 25362587Sitojun * 25462587Sitojun * PARAMETERS: Op - Object to be examined 25562587Sitojun * 25662587Sitojun * RETURN: None 25754263Sshin * 25854263Sshin * DESCRIPTION: Decode OperationRegion flags 259105194Ssam * 260138470Sglebius ******************************************************************************/ 261147256Sbrooks 262138653Sglebiusvoid 263138470SglebiusAcpiDmRegionFlags ( 264138470Sglebius ACPI_PARSE_OBJECT *Op) 265138470Sglebius{ 266138470Sglebius 267120885Sume 26854263Sshin /* The next Op contains the SpaceId */ 26954263Sshin 27054263Sshin Op = AcpiPsGetDepthNext (NULL, Op); 271169454Srwatson 27254263Sshin /* Mark the Op as completed */ 27354263Sshin 274147503Sbz Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; 27554263Sshin 27662587Sitojun AcpiOsPrintf (", "); 27755009Sshin AcpiDmAddressSpace (Op->Common.Value.Integer8); 27882884Sjulian} 27954263Sshin 28054263Sshin 28182884Sjulian/******************************************************************************* 28254263Sshin * 283147503Sbz * FUNCTION: AcpiDmMatchOp 284147503Sbz * 285147503Sbz * PARAMETERS: Op - Match Object to be examined 286196039Srwatson * 287147503Sbz * RETURN: None 288147503Sbz * 28954263Sshin * DESCRIPTION: Decode Match opcode operands 290147503Sbz * 29162587Sitojun ******************************************************************************/ 29254263Sshin 293196039Srwatsonvoid 29454263SshinAcpiDmMatchOp ( 29554263Sshin ACPI_PARSE_OBJECT *Op) 29654263Sshin{ 29755009Sshin ACPI_PARSE_OBJECT *NextOp; 29854263Sshin 29954263Sshin 30054263Sshin NextOp = AcpiPsGetDepthNext (NULL, Op); 30162587Sitojun NextOp = NextOp->Common.Next; 30254263Sshin 30354263Sshin if (!NextOp) 30454263Sshin { 30554263Sshin /* Handle partial tree during single-step */ 30654263Sshin 30754263Sshin return; 30854263Sshin } 30954263Sshin 31054263Sshin /* Mark the two nodes that contain the encoding for the match keywords */ 31154263Sshin 312121684Sume NextOp->Common.DisasmOpcode = ACPI_DASM_MATCHOP; 313121684Sume 314121684Sume NextOp = NextOp->Common.Next; 315121684Sume NextOp = NextOp->Common.Next; 316121684Sume NextOp->Common.DisasmOpcode = ACPI_DASM_MATCHOP; 317121684Sume} 31854263Sshin 31954263Sshin 32062587Sitojun/******************************************************************************* 32154263Sshin * 32254263Sshin * FUNCTION: AcpiDmMatchKeyword 32354263Sshin * 32454263Sshin * PARAMETERS: Op - Match Object to be examined 325121684Sume * 326121684Sume * RETURN: None 32754263Sshin * 32854263Sshin * DESCRIPTION: Decode Match opcode operands 32954263Sshin * 33054263Sshin ******************************************************************************/ 33154263Sshin 33254263Sshinvoid 33354263SshinAcpiDmMatchKeyword ( 334121684Sume ACPI_PARSE_OBJECT *Op) 335121684Sume{ 336121684Sume 337121684Sume 338121684Sume if (Op->Common.Value.Integer32 >= NUM_MATCH_OPS) 339121684Sume { 340121684Sume AcpiOsPrintf ("/* Unknown Match Keyword encoding */"); 341121684Sume } 342121684Sume else 343121684Sume { 344121684Sume AcpiOsPrintf ("%s", (char *) AcpiGbl_MatchOps[Op->Common.Value.Integer32]); 34554263Sshin } 34654263Sshin} 34754263Sshin 348153621Sthompsa 349153621Sthompsa/******************************************************************************* 350153621Sthompsa * 351153621Sthompsa * FUNCTION: AcpiDmDisassembleOneOp 35254263Sshin * 353196039Srwatson * PARAMETERS: WalkState - Current walk info 35454263Sshin * Info - Parse tree walk info 35554263Sshin * Op - Op that is to be printed 35654263Sshin * 35754263Sshin * RETURN: None 35854263Sshin * 35954263Sshin * DESCRIPTION: Disassemble a single AML opcode 36062587Sitojun * 36162587Sitojun ******************************************************************************/ 362105293Sume 36362587Sitojunvoid 364105293SumeAcpiDmDisassembleOneOp ( 365169454Srwatson ACPI_WALK_STATE *WalkState, 36662587Sitojun ACPI_OP_WALK_INFO *Info, 36762587Sitojun ACPI_PARSE_OBJECT *Op) 36862587Sitojun{ 36962587Sitojun const ACPI_OPCODE_INFO *OpInfo = NULL; 37062587Sitojun UINT32 Offset; 37162587Sitojun UINT32 Length; 37262587Sitojun 37362587Sitojun 374105293Sume if (!Op) 375105293Sume { 37662587Sitojun AcpiOsPrintf ("<NULL OP PTR>"); 37762587Sitojun return; 37862587Sitojun } 379105293Sume 38062587Sitojun switch (Op->Common.DisasmOpcode) 381105293Sume { 38262587Sitojun case ACPI_DASM_MATCHOP: 38362587Sitojun 38462587Sitojun AcpiDmMatchKeyword (Op); 385194951Srwatson return; 38662587Sitojun 387194951Srwatson default: 388194951Srwatson break; 389181803Sbz } 39062587Sitojun 39162587Sitojun 392194951Srwatson /* op and arguments */ 393194951Srwatson 39462587Sitojun switch (Op->Common.AmlOpcode) 395194951Srwatson { 39662587Sitojun case AML_ZERO_OP: 397194951Srwatson 39862587Sitojun AcpiOsPrintf ("Zero"); 39962587Sitojun break; 400147256Sbrooks 40162587Sitojun 40262587Sitojun case AML_ONE_OP: 40362587Sitojun 40462587Sitojun AcpiOsPrintf ("One"); 40562587Sitojun break; 40662587Sitojun 407105293Sume 408178888Sjulian case AML_ONES_OP: 409178888Sjulian 410178888Sjulian AcpiOsPrintf ("Ones"); 411105293Sume break; 41278064Sume 41378064Sume 414147256Sbrooks case AML_REVISION_OP: 41578064Sume 41678064Sume AcpiOsPrintf ("Revision"); 41778064Sume break; 418172307Scsjp 41962587Sitojun 42062587Sitojun case AML_BYTE_OP: 421172307Scsjp 42262587Sitojun AcpiOsPrintf ("0x%2.2X", (UINT32) Op->Common.Value.Integer8); 42362587Sitojun break; 42478064Sume 42562587Sitojun 426105293Sume case AML_WORD_OP: 427105293Sume 428105293Sume if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID) 429105293Sume { 430105293Sume AcpiDmEisaId (Op->Common.Value.Integer32); 431105293Sume } 432169454Srwatson else 433105293Sume { 434105293Sume AcpiOsPrintf ("0x%4.4X", (UINT32) Op->Common.Value.Integer16); 435105293Sume } 436105293Sume break; 437105293Sume 438105293Sume 439105293Sume case AML_DWORD_OP: 440105293Sume 441105293Sume if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID) 442105293Sume { 443105293Sume AcpiDmEisaId (Op->Common.Value.Integer32); 444105293Sume } 445105293Sume else 446105293Sume { 447105293Sume AcpiOsPrintf ("0x%8.8X", Op->Common.Value.Integer32); 448105293Sume } 449169454Srwatson break; 450105293Sume 451105293Sume 452105293Sume case AML_QWORD_OP: 453105293Sume 454105293Sume AcpiOsPrintf ("0x%8.8X%8.8X", Op->Common.Value.Integer64.Hi, 455105293Sume Op->Common.Value.Integer64.Lo); 456105293Sume break; 457105293Sume 458105293Sume 459169454Srwatson case AML_STRING_OP: 460105293Sume 461105293Sume AcpiUtPrintString (Op->Common.Value.String, ACPI_UINT8_MAX); 462105293Sume break; 463105293Sume 464105293Sume 465105293Sume case AML_BUFFER_OP: 466105293Sume 467105293Sume /* 468 * Determine the type of buffer. We can have one of the following: 469 * 470 * 1) ResourceTemplate containing Resource Descriptors. 471 * 2) Unicode String buffer 472 * 3) ASCII String buffer 473 * 4) Raw data buffer (if none of the above) 474 * 475 * Since there are no special AML opcodes to differentiate these 476 * types of buffers, we have to closely look at the data in the 477 * buffer to determine the type. 478 */ 479 if (AcpiDmIsResourceDescriptor (Op)) 480 { 481 Op->Common.DisasmOpcode = ACPI_DASM_RESOURCE; 482 AcpiOsPrintf ("ResourceTemplate"); 483 } 484 else if (AcpiDmIsUnicodeBuffer (Op)) 485 { 486 Op->Common.DisasmOpcode = ACPI_DASM_UNICODE; 487 AcpiOsPrintf ("Unicode ("); 488 } 489 else if (AcpiDmIsStringBuffer (Op)) 490 { 491 Op->Common.DisasmOpcode = ACPI_DASM_STRING; 492 AcpiOsPrintf ("Buffer"); 493 } 494 else 495 { 496 Op->Common.DisasmOpcode = ACPI_DASM_BUFFER; 497 AcpiOsPrintf ("Buffer"); 498 } 499 break; 500 501 502 case AML_INT_STATICSTRING_OP: 503 504 if (Op->Common.Value.String) 505 { 506 AcpiOsPrintf ("%s", Op->Common.Value.String); 507 } 508 else 509 { 510 AcpiOsPrintf ("\"<NULL STATIC STRING PTR>\""); 511 } 512 break; 513 514 515 case AML_INT_NAMEPATH_OP: 516 517 AcpiDmNamestring (Op->Common.Value.Name); 518 AcpiDmValidateName (Op->Common.Value.Name, Op); 519 break; 520 521 522 case AML_INT_NAMEDFIELD_OP: 523 524 Length = AcpiDmDumpName ((char *) &Op->Named.Name); 525 AcpiOsPrintf (",%*.s %d", (int) (5 - Length), " ", Op->Common.Value.Integer32); 526 AcpiDmCommaIfFieldMember (Op); 527 528 Info->BitOffset += Op->Common.Value.Integer32; 529 break; 530 531 532 case AML_INT_RESERVEDFIELD_OP: 533 534 /* Offset() -- Must account for previous offsets */ 535 536 Offset = Op->Common.Value.Integer32; 537 Info->BitOffset += Offset; 538 539 if (Info->BitOffset % 8 == 0) 540 { 541 AcpiOsPrintf ("Offset (0x%.2X)", ACPI_DIV_8 (Info->BitOffset)); 542 } 543 else 544 { 545 AcpiOsPrintf (" , %d", Offset); 546 } 547 548 AcpiDmCommaIfFieldMember (Op); 549 break; 550 551 552 case AML_INT_ACCESSFIELD_OP: 553 554 AcpiOsPrintf ("AccessAs (%s, ", 555 AcpiGbl_AccessTypes [Op->Common.Value.Integer32 >> 8]); 556 557 AcpiDmDecodeAttribute ((UINT8) Op->Common.Value.Integer32); 558 AcpiOsPrintf (")"); 559 AcpiDmCommaIfFieldMember (Op); 560 break; 561 562 563 case AML_INT_BYTELIST_OP: 564 565 AcpiDmByteList (Info, Op); 566 break; 567 568 569 case AML_INT_METHODCALL_OP: 570 571 OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode); 572 Op = AcpiPsGetDepthNext (NULL, Op); 573 Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; 574 575 AcpiDmNamestring (Op->Common.Value.Name); 576 break; 577 578 579 default: 580 581 /* Just get the opcode name and print it */ 582 583 OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode); 584 AcpiOsPrintf ("%s", OpInfo->Name); 585 586 587#ifdef ACPI_DEBUGGER 588 589 if ((Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) && 590 (WalkState) && 591 (WalkState->Results) && 592 (WalkState->Results->Results.NumResults)) 593 { 594 AcpiDbDecodeInternalObject ( 595 WalkState->Results->Results.ObjDesc [WalkState->Results->Results.NumResults-1]); 596 } 597#endif 598 break; 599 } 600} 601 602#endif /* ACPI_DISASSEMBLER */ 603