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