Home | History | Annotate | Line # | Download | only in parser
psopcode.c revision 1.1.1.2
      1      1.1  jruoho /******************************************************************************
      2      1.1  jruoho  *
      3      1.1  jruoho  * Module Name: psopcode - Parser/Interpreter opcode information table
      4      1.1  jruoho  *
      5      1.1  jruoho  *****************************************************************************/
      6      1.1  jruoho 
      7  1.1.1.2  jruoho /*
      8  1.1.1.2  jruoho  * Copyright (C) 2000 - 2011, Intel Corp.
      9      1.1  jruoho  * All rights reserved.
     10      1.1  jruoho  *
     11  1.1.1.2  jruoho  * Redistribution and use in source and binary forms, with or without
     12  1.1.1.2  jruoho  * modification, are permitted provided that the following conditions
     13  1.1.1.2  jruoho  * are met:
     14  1.1.1.2  jruoho  * 1. Redistributions of source code must retain the above copyright
     15  1.1.1.2  jruoho  *    notice, this list of conditions, and the following disclaimer,
     16  1.1.1.2  jruoho  *    without modification.
     17  1.1.1.2  jruoho  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18  1.1.1.2  jruoho  *    substantially similar to the "NO WARRANTY" disclaimer below
     19  1.1.1.2  jruoho  *    ("Disclaimer") and any redistribution must be conditioned upon
     20  1.1.1.2  jruoho  *    including a substantially similar Disclaimer requirement for further
     21  1.1.1.2  jruoho  *    binary redistribution.
     22  1.1.1.2  jruoho  * 3. Neither the names of the above-listed copyright holders nor the names
     23  1.1.1.2  jruoho  *    of any contributors may be used to endorse or promote products derived
     24  1.1.1.2  jruoho  *    from this software without specific prior written permission.
     25  1.1.1.2  jruoho  *
     26  1.1.1.2  jruoho  * Alternatively, this software may be distributed under the terms of the
     27  1.1.1.2  jruoho  * GNU General Public License ("GPL") version 2 as published by the Free
     28  1.1.1.2  jruoho  * Software Foundation.
     29  1.1.1.2  jruoho  *
     30  1.1.1.2  jruoho  * NO WARRANTY
     31  1.1.1.2  jruoho  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32  1.1.1.2  jruoho  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  1.1.1.2  jruoho  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     34  1.1.1.2  jruoho  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35  1.1.1.2  jruoho  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36  1.1.1.2  jruoho  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37  1.1.1.2  jruoho  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38  1.1.1.2  jruoho  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39  1.1.1.2  jruoho  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40  1.1.1.2  jruoho  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41  1.1.1.2  jruoho  * POSSIBILITY OF SUCH DAMAGES.
     42  1.1.1.2  jruoho  */
     43      1.1  jruoho 
     44      1.1  jruoho 
     45      1.1  jruoho #include "acpi.h"
     46      1.1  jruoho #include "accommon.h"
     47      1.1  jruoho #include "acparser.h"
     48      1.1  jruoho #include "acopcode.h"
     49      1.1  jruoho #include "amlcode.h"
     50      1.1  jruoho 
     51      1.1  jruoho 
     52      1.1  jruoho #define _COMPONENT          ACPI_PARSER
     53      1.1  jruoho         ACPI_MODULE_NAME    ("psopcode")
     54      1.1  jruoho 
     55      1.1  jruoho 
     56      1.1  jruoho static const UINT8          AcpiGbl_ArgumentCount[] = {0,1,1,1,1,2,2,2,2,3,3,6};
     57      1.1  jruoho 
     58      1.1  jruoho 
     59      1.1  jruoho /*******************************************************************************
     60      1.1  jruoho  *
     61      1.1  jruoho  * NAME:        AcpiGbl_AmlOpInfo
     62      1.1  jruoho  *
     63      1.1  jruoho  * DESCRIPTION: Opcode table. Each entry contains <opcode, type, name, operands>
     64      1.1  jruoho  *              The name is a simple ascii string, the operand specifier is an
     65      1.1  jruoho  *              ascii string with one letter per operand.  The letter specifies
     66      1.1  jruoho  *              the operand type.
     67      1.1  jruoho  *
     68      1.1  jruoho  ******************************************************************************/
     69      1.1  jruoho 
     70      1.1  jruoho /*
     71      1.1  jruoho  * Summary of opcode types/flags
     72      1.1  jruoho  *
     73      1.1  jruoho 
     74      1.1  jruoho  Opcodes that have associated namespace objects (AML_NSOBJECT flag)
     75      1.1  jruoho 
     76      1.1  jruoho     AML_SCOPE_OP
     77      1.1  jruoho     AML_DEVICE_OP
     78      1.1  jruoho     AML_THERMAL_ZONE_OP
     79      1.1  jruoho     AML_METHOD_OP
     80      1.1  jruoho     AML_POWER_RES_OP
     81      1.1  jruoho     AML_PROCESSOR_OP
     82      1.1  jruoho     AML_FIELD_OP
     83      1.1  jruoho     AML_INDEX_FIELD_OP
     84      1.1  jruoho     AML_BANK_FIELD_OP
     85      1.1  jruoho     AML_NAME_OP
     86      1.1  jruoho     AML_ALIAS_OP
     87      1.1  jruoho     AML_MUTEX_OP
     88      1.1  jruoho     AML_EVENT_OP
     89      1.1  jruoho     AML_REGION_OP
     90      1.1  jruoho     AML_CREATE_FIELD_OP
     91      1.1  jruoho     AML_CREATE_BIT_FIELD_OP
     92      1.1  jruoho     AML_CREATE_BYTE_FIELD_OP
     93      1.1  jruoho     AML_CREATE_WORD_FIELD_OP
     94      1.1  jruoho     AML_CREATE_DWORD_FIELD_OP
     95      1.1  jruoho     AML_CREATE_QWORD_FIELD_OP
     96      1.1  jruoho     AML_INT_NAMEDFIELD_OP
     97      1.1  jruoho     AML_INT_METHODCALL_OP
     98      1.1  jruoho     AML_INT_NAMEPATH_OP
     99      1.1  jruoho 
    100      1.1  jruoho   Opcodes that are "namespace" opcodes (AML_NSOPCODE flag)
    101      1.1  jruoho 
    102      1.1  jruoho     AML_SCOPE_OP
    103      1.1  jruoho     AML_DEVICE_OP
    104      1.1  jruoho     AML_THERMAL_ZONE_OP
    105      1.1  jruoho     AML_METHOD_OP
    106      1.1  jruoho     AML_POWER_RES_OP
    107      1.1  jruoho     AML_PROCESSOR_OP
    108      1.1  jruoho     AML_FIELD_OP
    109      1.1  jruoho     AML_INDEX_FIELD_OP
    110      1.1  jruoho     AML_BANK_FIELD_OP
    111      1.1  jruoho     AML_NAME_OP
    112      1.1  jruoho     AML_ALIAS_OP
    113      1.1  jruoho     AML_MUTEX_OP
    114      1.1  jruoho     AML_EVENT_OP
    115      1.1  jruoho     AML_REGION_OP
    116      1.1  jruoho     AML_INT_NAMEDFIELD_OP
    117      1.1  jruoho 
    118      1.1  jruoho   Opcodes that have an associated namespace node (AML_NSNODE flag)
    119      1.1  jruoho 
    120      1.1  jruoho     AML_SCOPE_OP
    121      1.1  jruoho     AML_DEVICE_OP
    122      1.1  jruoho     AML_THERMAL_ZONE_OP
    123      1.1  jruoho     AML_METHOD_OP
    124      1.1  jruoho     AML_POWER_RES_OP
    125      1.1  jruoho     AML_PROCESSOR_OP
    126      1.1  jruoho     AML_NAME_OP
    127      1.1  jruoho     AML_ALIAS_OP
    128      1.1  jruoho     AML_MUTEX_OP
    129      1.1  jruoho     AML_EVENT_OP
    130      1.1  jruoho     AML_REGION_OP
    131      1.1  jruoho     AML_CREATE_FIELD_OP
    132      1.1  jruoho     AML_CREATE_BIT_FIELD_OP
    133      1.1  jruoho     AML_CREATE_BYTE_FIELD_OP
    134      1.1  jruoho     AML_CREATE_WORD_FIELD_OP
    135      1.1  jruoho     AML_CREATE_DWORD_FIELD_OP
    136      1.1  jruoho     AML_CREATE_QWORD_FIELD_OP
    137      1.1  jruoho     AML_INT_NAMEDFIELD_OP
    138      1.1  jruoho     AML_INT_METHODCALL_OP
    139      1.1  jruoho     AML_INT_NAMEPATH_OP
    140      1.1  jruoho 
    141      1.1  jruoho   Opcodes that define named ACPI objects (AML_NAMED flag)
    142      1.1  jruoho 
    143      1.1  jruoho     AML_SCOPE_OP
    144      1.1  jruoho     AML_DEVICE_OP
    145      1.1  jruoho     AML_THERMAL_ZONE_OP
    146      1.1  jruoho     AML_METHOD_OP
    147      1.1  jruoho     AML_POWER_RES_OP
    148      1.1  jruoho     AML_PROCESSOR_OP
    149      1.1  jruoho     AML_NAME_OP
    150      1.1  jruoho     AML_ALIAS_OP
    151      1.1  jruoho     AML_MUTEX_OP
    152      1.1  jruoho     AML_EVENT_OP
    153      1.1  jruoho     AML_REGION_OP
    154      1.1  jruoho     AML_INT_NAMEDFIELD_OP
    155      1.1  jruoho 
    156      1.1  jruoho   Opcodes that contain executable AML as part of the definition that
    157      1.1  jruoho   must be deferred until needed
    158      1.1  jruoho 
    159      1.1  jruoho     AML_METHOD_OP
    160      1.1  jruoho     AML_VAR_PACKAGE_OP
    161      1.1  jruoho     AML_CREATE_FIELD_OP
    162      1.1  jruoho     AML_CREATE_BIT_FIELD_OP
    163      1.1  jruoho     AML_CREATE_BYTE_FIELD_OP
    164      1.1  jruoho     AML_CREATE_WORD_FIELD_OP
    165      1.1  jruoho     AML_CREATE_DWORD_FIELD_OP
    166      1.1  jruoho     AML_CREATE_QWORD_FIELD_OP
    167      1.1  jruoho     AML_REGION_OP
    168      1.1  jruoho     AML_BUFFER_OP
    169      1.1  jruoho 
    170      1.1  jruoho   Field opcodes
    171      1.1  jruoho 
    172      1.1  jruoho     AML_CREATE_FIELD_OP
    173      1.1  jruoho     AML_FIELD_OP
    174      1.1  jruoho     AML_INDEX_FIELD_OP
    175      1.1  jruoho     AML_BANK_FIELD_OP
    176      1.1  jruoho 
    177      1.1  jruoho   Field "Create" opcodes
    178      1.1  jruoho 
    179      1.1  jruoho     AML_CREATE_FIELD_OP
    180      1.1  jruoho     AML_CREATE_BIT_FIELD_OP
    181      1.1  jruoho     AML_CREATE_BYTE_FIELD_OP
    182      1.1  jruoho     AML_CREATE_WORD_FIELD_OP
    183      1.1  jruoho     AML_CREATE_DWORD_FIELD_OP
    184      1.1  jruoho     AML_CREATE_QWORD_FIELD_OP
    185      1.1  jruoho 
    186      1.1  jruoho  ******************************************************************************/
    187      1.1  jruoho 
    188      1.1  jruoho 
    189      1.1  jruoho /*
    190      1.1  jruoho  * Master Opcode information table.  A summary of everything we know about each
    191      1.1  jruoho  * opcode, all in one place.
    192      1.1  jruoho  */
    193      1.1  jruoho const ACPI_OPCODE_INFO    AcpiGbl_AmlOpInfo[AML_NUM_OPCODES] =
    194      1.1  jruoho {
    195      1.1  jruoho /*! [Begin] no source code translation */
    196      1.1  jruoho /* Index           Name                 Parser Args               Interpreter Args                ObjectType                    Class                      Type                  Flags */
    197      1.1  jruoho 
    198      1.1  jruoho /* 00 */ ACPI_OP ("Zero",               ARGP_ZERO_OP,              ARGI_ZERO_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        AML_CONSTANT),
    199      1.1  jruoho /* 01 */ ACPI_OP ("One",                ARGP_ONE_OP,               ARGI_ONE_OP,                ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        AML_CONSTANT),
    200      1.1  jruoho /* 02 */ ACPI_OP ("Alias",              ARGP_ALIAS_OP,             ARGI_ALIAS_OP,              ACPI_TYPE_LOCAL_ALIAS,       AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    201      1.1  jruoho /* 03 */ ACPI_OP ("Name",               ARGP_NAME_OP,              ARGI_NAME_OP,               ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,   AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    202      1.1  jruoho /* 04 */ ACPI_OP ("ByteConst",          ARGP_BYTE_OP,              ARGI_BYTE_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
    203      1.1  jruoho /* 05 */ ACPI_OP ("WordConst",          ARGP_WORD_OP,              ARGI_WORD_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
    204      1.1  jruoho /* 06 */ ACPI_OP ("DwordConst",         ARGP_DWORD_OP,             ARGI_DWORD_OP,              ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
    205      1.1  jruoho /* 07 */ ACPI_OP ("String",             ARGP_STRING_OP,            ARGI_STRING_OP,             ACPI_TYPE_STRING,            AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
    206      1.1  jruoho /* 08 */ ACPI_OP ("Scope",              ARGP_SCOPE_OP,             ARGI_SCOPE_OP,              ACPI_TYPE_LOCAL_SCOPE,       AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    207      1.1  jruoho /* 09 */ ACPI_OP ("Buffer",             ARGP_BUFFER_OP,            ARGI_BUFFER_OP,             ACPI_TYPE_BUFFER,            AML_CLASS_CREATE,          AML_TYPE_CREATE_OBJECT,   AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
    208      1.1  jruoho /* 0A */ ACPI_OP ("Package",            ARGP_PACKAGE_OP,           ARGI_PACKAGE_OP,            ACPI_TYPE_PACKAGE,           AML_CLASS_CREATE,          AML_TYPE_CREATE_OBJECT,   AML_HAS_ARGS | AML_DEFER | AML_CONSTANT),
    209      1.1  jruoho /* 0B */ ACPI_OP ("Method",             ARGP_METHOD_OP,            ARGI_METHOD_OP,             ACPI_TYPE_METHOD,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,   AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
    210      1.1  jruoho /* 0C */ ACPI_OP ("Local0",             ARGP_LOCAL0,               ARGI_LOCAL0,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    211      1.1  jruoho /* 0D */ ACPI_OP ("Local1",             ARGP_LOCAL1,               ARGI_LOCAL1,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    212      1.1  jruoho /* 0E */ ACPI_OP ("Local2",             ARGP_LOCAL2,               ARGI_LOCAL2,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    213      1.1  jruoho /* 0F */ ACPI_OP ("Local3",             ARGP_LOCAL3,               ARGI_LOCAL3,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    214      1.1  jruoho /* 10 */ ACPI_OP ("Local4",             ARGP_LOCAL4,               ARGI_LOCAL4,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    215      1.1  jruoho /* 11 */ ACPI_OP ("Local5",             ARGP_LOCAL5,               ARGI_LOCAL5,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    216      1.1  jruoho /* 12 */ ACPI_OP ("Local6",             ARGP_LOCAL6,               ARGI_LOCAL6,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    217      1.1  jruoho /* 13 */ ACPI_OP ("Local7",             ARGP_LOCAL7,               ARGI_LOCAL7,                ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LOCAL_VARIABLE,  0),
    218      1.1  jruoho /* 14 */ ACPI_OP ("Arg0",               ARGP_ARG0,                 ARGI_ARG0,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    219      1.1  jruoho /* 15 */ ACPI_OP ("Arg1",               ARGP_ARG1,                 ARGI_ARG1,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    220      1.1  jruoho /* 16 */ ACPI_OP ("Arg2",               ARGP_ARG2,                 ARGI_ARG2,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    221      1.1  jruoho /* 17 */ ACPI_OP ("Arg3",               ARGP_ARG3,                 ARGI_ARG3,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    222      1.1  jruoho /* 18 */ ACPI_OP ("Arg4",               ARGP_ARG4,                 ARGI_ARG4,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    223      1.1  jruoho /* 19 */ ACPI_OP ("Arg5",               ARGP_ARG5,                 ARGI_ARG5,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    224      1.1  jruoho /* 1A */ ACPI_OP ("Arg6",               ARGP_ARG6,                 ARGI_ARG6,                  ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_METHOD_ARGUMENT, 0),
    225      1.1  jruoho /* 1B */ ACPI_OP ("Store",              ARGP_STORE_OP,             ARGI_STORE_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R),
    226      1.1  jruoho /* 1C */ ACPI_OP ("RefOf",              ARGP_REF_OF_OP,            ARGI_REF_OF_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R),
    227      1.1  jruoho /* 1D */ ACPI_OP ("Add",                ARGP_ADD_OP,               ARGI_ADD_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    228      1.1  jruoho /* 1E */ ACPI_OP ("Concatenate",        ARGP_CONCAT_OP,            ARGI_CONCAT_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
    229      1.1  jruoho /* 1F */ ACPI_OP ("Subtract",           ARGP_SUBTRACT_OP,          ARGI_SUBTRACT_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    230      1.1  jruoho /* 20 */ ACPI_OP ("Increment",          ARGP_INCREMENT_OP,         ARGI_INCREMENT_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
    231      1.1  jruoho /* 21 */ ACPI_OP ("Decrement",          ARGP_DECREMENT_OP,         ARGI_DECREMENT_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
    232      1.1  jruoho /* 22 */ ACPI_OP ("Multiply",           ARGP_MULTIPLY_OP,          ARGI_MULTIPLY_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    233      1.1  jruoho /* 23 */ ACPI_OP ("Divide",             ARGP_DIVIDE_OP,            ARGI_DIVIDE_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_2T_1R,   AML_FLAGS_EXEC_2A_2T_1R | AML_CONSTANT),
    234      1.1  jruoho /* 24 */ ACPI_OP ("ShiftLeft",          ARGP_SHIFT_LEFT_OP,        ARGI_SHIFT_LEFT_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    235      1.1  jruoho /* 25 */ ACPI_OP ("ShiftRight",         ARGP_SHIFT_RIGHT_OP,       ARGI_SHIFT_RIGHT_OP,        ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    236      1.1  jruoho /* 26 */ ACPI_OP ("And",                ARGP_BIT_AND_OP,           ARGI_BIT_AND_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    237      1.1  jruoho /* 27 */ ACPI_OP ("NAnd",               ARGP_BIT_NAND_OP,          ARGI_BIT_NAND_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    238      1.1  jruoho /* 28 */ ACPI_OP ("Or",                 ARGP_BIT_OR_OP,            ARGI_BIT_OR_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    239      1.1  jruoho /* 29 */ ACPI_OP ("NOr",                ARGP_BIT_NOR_OP,           ARGI_BIT_NOR_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    240      1.1  jruoho /* 2A */ ACPI_OP ("XOr",                ARGP_BIT_XOR_OP,           ARGI_BIT_XOR_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_MATH | AML_CONSTANT),
    241      1.1  jruoho /* 2B */ ACPI_OP ("Not",                ARGP_BIT_NOT_OP,           ARGI_BIT_NOT_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    242      1.1  jruoho /* 2C */ ACPI_OP ("FindSetLeftBit",     ARGP_FIND_SET_LEFT_BIT_OP, ARGI_FIND_SET_LEFT_BIT_OP,  ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    243      1.1  jruoho /* 2D */ ACPI_OP ("FindSetRightBit",    ARGP_FIND_SET_RIGHT_BIT_OP,ARGI_FIND_SET_RIGHT_BIT_OP, ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    244      1.1  jruoho /* 2E */ ACPI_OP ("DerefOf",            ARGP_DEREF_OF_OP,          ARGI_DEREF_OF_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R),
    245      1.1  jruoho /* 2F */ ACPI_OP ("Notify",             ARGP_NOTIFY_OP,            ARGI_NOTIFY_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_0R,   AML_FLAGS_EXEC_2A_0T_0R),
    246      1.1  jruoho /* 30 */ ACPI_OP ("SizeOf",             ARGP_SIZE_OF_OP,           ARGI_SIZE_OF_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
    247      1.1  jruoho /* 31 */ ACPI_OP ("Index",              ARGP_INDEX_OP,             ARGI_INDEX_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R),
    248      1.1  jruoho /* 32 */ ACPI_OP ("Match",              ARGP_MATCH_OP,             ARGI_MATCH_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_6A_0T_1R,   AML_FLAGS_EXEC_6A_0T_1R | AML_CONSTANT),
    249      1.1  jruoho /* 33 */ ACPI_OP ("CreateDWordField",   ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
    250      1.1  jruoho /* 34 */ ACPI_OP ("CreateWordField",    ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP,  ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
    251      1.1  jruoho /* 35 */ ACPI_OP ("CreateByteField",    ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP,  ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
    252      1.1  jruoho /* 36 */ ACPI_OP ("CreateBitField",     ARGP_CREATE_BIT_FIELD_OP,  ARGI_CREATE_BIT_FIELD_OP,   ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
    253      1.1  jruoho /* 37 */ ACPI_OP ("ObjectType",         ARGP_TYPE_OP,              ARGI_TYPE_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
    254      1.1  jruoho /* 38 */ ACPI_OP ("LAnd",               ARGP_LAND_OP,              ARGI_LAND_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC | AML_CONSTANT),
    255      1.1  jruoho /* 39 */ ACPI_OP ("LOr",                ARGP_LOR_OP,               ARGI_LOR_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL_NUMERIC | AML_CONSTANT),
    256      1.1  jruoho /* 3A */ ACPI_OP ("LNot",               ARGP_LNOT_OP,              ARGI_LNOT_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_1R,   AML_FLAGS_EXEC_1A_0T_1R | AML_CONSTANT),
    257      1.1  jruoho /* 3B */ ACPI_OP ("LEqual",             ARGP_LEQUAL_OP,            ARGI_LEQUAL_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
    258      1.1  jruoho /* 3C */ ACPI_OP ("LGreater",           ARGP_LGREATER_OP,          ARGI_LGREATER_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
    259      1.1  jruoho /* 3D */ ACPI_OP ("LLess",              ARGP_LLESS_OP,             ARGI_LLESS_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R | AML_LOGICAL | AML_CONSTANT),
    260      1.1  jruoho /* 3E */ ACPI_OP ("If",                 ARGP_IF_OP,                ARGI_IF_OP,                 ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
    261      1.1  jruoho /* 3F */ ACPI_OP ("Else",               ARGP_ELSE_OP,              ARGI_ELSE_OP,               ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
    262      1.1  jruoho /* 40 */ ACPI_OP ("While",              ARGP_WHILE_OP,             ARGI_WHILE_OP,              ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
    263      1.1  jruoho /* 41 */ ACPI_OP ("Noop",               ARGP_NOOP_OP,              ARGI_NOOP_OP,               ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
    264      1.1  jruoho /* 42 */ ACPI_OP ("Return",             ARGP_RETURN_OP,            ARGI_RETURN_OP,             ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         AML_HAS_ARGS),
    265      1.1  jruoho /* 43 */ ACPI_OP ("Break",              ARGP_BREAK_OP,             ARGI_BREAK_OP,              ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
    266      1.1  jruoho /* 44 */ ACPI_OP ("BreakPoint",         ARGP_BREAK_POINT_OP,       ARGI_BREAK_POINT_OP,        ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
    267      1.1  jruoho /* 45 */ ACPI_OP ("Ones",               ARGP_ONES_OP,              ARGI_ONES_OP,               ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        AML_CONSTANT),
    268      1.1  jruoho 
    269      1.1  jruoho /* Prefixed opcodes (Two-byte opcodes with a prefix op) */
    270      1.1  jruoho 
    271      1.1  jruoho /* 46 */ ACPI_OP ("Mutex",              ARGP_MUTEX_OP,             ARGI_MUTEX_OP,              ACPI_TYPE_MUTEX,             AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    272      1.1  jruoho /* 47 */ ACPI_OP ("Event",              ARGP_EVENT_OP,             ARGI_EVENT_OP,              ACPI_TYPE_EVENT,             AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
    273      1.1  jruoho /* 48 */ ACPI_OP ("CondRefOf",          ARGP_COND_REF_OF_OP,       ARGI_COND_REF_OF_OP,        ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R),
    274      1.1  jruoho /* 49 */ ACPI_OP ("CreateField",        ARGP_CREATE_FIELD_OP,      ARGI_CREATE_FIELD_OP,       ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_FIELD | AML_CREATE),
    275      1.1  jruoho /* 4A */ ACPI_OP ("Load",               ARGP_LOAD_OP,              ARGI_LOAD_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_0R,   AML_FLAGS_EXEC_1A_1T_0R),
    276      1.1  jruoho /* 4B */ ACPI_OP ("Stall",              ARGP_STALL_OP,             ARGI_STALL_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
    277      1.1  jruoho /* 4C */ ACPI_OP ("Sleep",              ARGP_SLEEP_OP,             ARGI_SLEEP_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
    278      1.1  jruoho /* 4D */ ACPI_OP ("Acquire",            ARGP_ACQUIRE_OP,           ARGI_ACQUIRE_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R),
    279      1.1  jruoho /* 4E */ ACPI_OP ("Signal",             ARGP_SIGNAL_OP,            ARGI_SIGNAL_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
    280      1.1  jruoho /* 4F */ ACPI_OP ("Wait",               ARGP_WAIT_OP,              ARGI_WAIT_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_0T_1R,   AML_FLAGS_EXEC_2A_0T_1R),
    281      1.1  jruoho /* 50 */ ACPI_OP ("Reset",              ARGP_RESET_OP,             ARGI_RESET_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
    282      1.1  jruoho /* 51 */ ACPI_OP ("Release",            ARGP_RELEASE_OP,           ARGI_RELEASE_OP,            ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
    283      1.1  jruoho /* 52 */ ACPI_OP ("FromBCD",            ARGP_FROM_BCD_OP,          ARGI_FROM_BCD_OP,           ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    284      1.1  jruoho /* 53 */ ACPI_OP ("ToBCD",              ARGP_TO_BCD_OP,            ARGI_TO_BCD_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    285      1.1  jruoho /* 54 */ ACPI_OP ("Unload",             ARGP_UNLOAD_OP,            ARGI_UNLOAD_OP,             ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_0T_0R,   AML_FLAGS_EXEC_1A_0T_0R),
    286      1.1  jruoho /* 55 */ ACPI_OP ("Revision",           ARGP_REVISION_OP,          ARGI_REVISION_OP,           ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        0),
    287      1.1  jruoho /* 56 */ ACPI_OP ("Debug",              ARGP_DEBUG_OP,             ARGI_DEBUG_OP,              ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_CONSTANT,        0),
    288      1.1  jruoho /* 57 */ ACPI_OP ("Fatal",              ARGP_FATAL_OP,             ARGI_FATAL_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_3A_0T_0R,   AML_FLAGS_EXEC_3A_0T_0R),
    289      1.1  jruoho /* 58 */ ACPI_OP ("OperationRegion",    ARGP_REGION_OP,            ARGI_REGION_OP,             ACPI_TYPE_REGION,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,   AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
    290      1.1  jruoho /* 59 */ ACPI_OP ("Field",              ARGP_FIELD_OP,             ARGI_FIELD_OP,              ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_FIELD,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
    291      1.1  jruoho /* 5A */ ACPI_OP ("Device",             ARGP_DEVICE_OP,            ARGI_DEVICE_OP,             ACPI_TYPE_DEVICE,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    292      1.1  jruoho /* 5B */ ACPI_OP ("Processor",          ARGP_PROCESSOR_OP,         ARGI_PROCESSOR_OP,          ACPI_TYPE_PROCESSOR,         AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    293      1.1  jruoho /* 5C */ ACPI_OP ("PowerResource",      ARGP_POWER_RES_OP,         ARGI_POWER_RES_OP,          ACPI_TYPE_POWER,             AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_SIMPLE,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    294      1.1  jruoho /* 5D */ ACPI_OP ("ThermalZone",        ARGP_THERMAL_ZONE_OP,      ARGI_THERMAL_ZONE_OP,       ACPI_TYPE_THERMAL,           AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED),
    295      1.1  jruoho /* 5E */ ACPI_OP ("IndexField",         ARGP_INDEX_FIELD_OP,       ARGI_INDEX_FIELD_OP,        ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_FIELD,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD),
    296      1.1  jruoho /* 5F */ ACPI_OP ("BankField",          ARGP_BANK_FIELD_OP,        ARGI_BANK_FIELD_OP,         ACPI_TYPE_LOCAL_BANK_FIELD,  AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_FIELD,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_FIELD | AML_DEFER),
    297      1.1  jruoho 
    298      1.1  jruoho /* Internal opcodes that map to invalid AML opcodes */
    299      1.1  jruoho 
    300      1.1  jruoho /* 60 */ ACPI_OP ("LNotEqual",          ARGP_LNOTEQUAL_OP,         ARGI_LNOTEQUAL_OP,          ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_HAS_ARGS | AML_CONSTANT),
    301      1.1  jruoho /* 61 */ ACPI_OP ("LLessEqual",         ARGP_LLESSEQUAL_OP,        ARGI_LLESSEQUAL_OP,         ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_HAS_ARGS | AML_CONSTANT),
    302      1.1  jruoho /* 62 */ ACPI_OP ("LGreaterEqual",      ARGP_LGREATEREQUAL_OP,     ARGI_LGREATEREQUAL_OP,      ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_HAS_ARGS | AML_CONSTANT),
    303      1.1  jruoho /* 63 */ ACPI_OP ("-NamePath-",         ARGP_NAMEPATH_OP,          ARGI_NAMEPATH_OP,           ACPI_TYPE_LOCAL_REFERENCE,   AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_NSOBJECT | AML_NSNODE ),
    304      1.1  jruoho /* 64 */ ACPI_OP ("-MethodCall-",       ARGP_METHODCALL_OP,        ARGI_METHODCALL_OP,         ACPI_TYPE_METHOD,            AML_CLASS_METHOD_CALL,     AML_TYPE_METHOD_CALL,     AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE),
    305      1.1  jruoho /* 65 */ ACPI_OP ("-ByteList-",         ARGP_BYTELIST_OP,          ARGI_BYTELIST_OP,           ACPI_TYPE_ANY,               AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         0),
    306      1.1  jruoho /* 66 */ ACPI_OP ("-ReservedField-",    ARGP_RESERVEDFIELD_OP,     ARGI_RESERVEDFIELD_OP,      ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           0),
    307      1.1  jruoho /* 67 */ ACPI_OP ("-NamedField-",       ARGP_NAMEDFIELD_OP,        ARGI_NAMEDFIELD_OP,         ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED ),
    308      1.1  jruoho /* 68 */ ACPI_OP ("-AccessField-",      ARGP_ACCESSFIELD_OP,       ARGI_ACCESSFIELD_OP,        ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           0),
    309      1.1  jruoho /* 69 */ ACPI_OP ("-StaticString",      ARGP_STATICSTRING_OP,      ARGI_STATICSTRING_OP,       ACPI_TYPE_ANY,               AML_CLASS_INTERNAL,        AML_TYPE_BOGUS,           0),
    310      1.1  jruoho /* 6A */ ACPI_OP ("-Return Value-",     ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_ANY,               AML_CLASS_RETURN_VALUE,    AML_TYPE_RETURN,          AML_HAS_ARGS | AML_HAS_RETVAL),
    311      1.1  jruoho /* 6B */ ACPI_OP ("-UNKNOWN_OP-",       ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_INVALID,           AML_CLASS_UNKNOWN,         AML_TYPE_BOGUS,           AML_HAS_ARGS),
    312      1.1  jruoho /* 6C */ ACPI_OP ("-ASCII_ONLY-",       ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_ANY,               AML_CLASS_ASCII,           AML_TYPE_BOGUS,           AML_HAS_ARGS),
    313      1.1  jruoho /* 6D */ ACPI_OP ("-PREFIX_ONLY-",      ARG_NONE,                  ARG_NONE,                   ACPI_TYPE_ANY,               AML_CLASS_PREFIX,          AML_TYPE_BOGUS,           AML_HAS_ARGS),
    314      1.1  jruoho 
    315      1.1  jruoho /* ACPI 2.0 opcodes */
    316      1.1  jruoho 
    317      1.1  jruoho /* 6E */ ACPI_OP ("QwordConst",         ARGP_QWORD_OP,             ARGI_QWORD_OP,              ACPI_TYPE_INTEGER,           AML_CLASS_ARGUMENT,        AML_TYPE_LITERAL,         AML_CONSTANT),
    318      1.1  jruoho /* 6F */ ACPI_OP ("Package", /* Var */  ARGP_VAR_PACKAGE_OP,       ARGI_VAR_PACKAGE_OP,        ACPI_TYPE_PACKAGE,           AML_CLASS_CREATE,          AML_TYPE_CREATE_OBJECT,   AML_HAS_ARGS | AML_DEFER),
    319      1.1  jruoho /* 70 */ ACPI_OP ("ConcatenateResTemplate", ARGP_CONCAT_RES_OP,    ARGI_CONCAT_RES_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
    320      1.1  jruoho /* 71 */ ACPI_OP ("Mod",                ARGP_MOD_OP,               ARGI_MOD_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
    321      1.1  jruoho /* 72 */ ACPI_OP ("CreateQWordField",   ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP, ACPI_TYPE_BUFFER_FIELD,      AML_CLASS_CREATE,          AML_TYPE_CREATE_FIELD,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSNODE | AML_DEFER | AML_CREATE),
    322      1.1  jruoho /* 73 */ ACPI_OP ("ToBuffer",           ARGP_TO_BUFFER_OP,         ARGI_TO_BUFFER_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    323      1.1  jruoho /* 74 */ ACPI_OP ("ToDecimalString",    ARGP_TO_DEC_STR_OP,        ARGI_TO_DEC_STR_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    324      1.1  jruoho /* 75 */ ACPI_OP ("ToHexString",        ARGP_TO_HEX_STR_OP,        ARGI_TO_HEX_STR_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    325      1.1  jruoho /* 76 */ ACPI_OP ("ToInteger",          ARGP_TO_INTEGER_OP,        ARGI_TO_INTEGER_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R | AML_CONSTANT),
    326      1.1  jruoho /* 77 */ ACPI_OP ("ToString",           ARGP_TO_STRING_OP,         ARGI_TO_STRING_OP,          ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_2A_1T_1R,   AML_FLAGS_EXEC_2A_1T_1R | AML_CONSTANT),
    327      1.1  jruoho /* 78 */ ACPI_OP ("CopyObject",         ARGP_COPY_OP,              ARGI_COPY_OP,               ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_1A_1T_1R,   AML_FLAGS_EXEC_1A_1T_1R),
    328      1.1  jruoho /* 79 */ ACPI_OP ("Mid",                ARGP_MID_OP,               ARGI_MID_OP,                ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_3A_1T_1R,   AML_FLAGS_EXEC_3A_1T_1R | AML_CONSTANT),
    329      1.1  jruoho /* 7A */ ACPI_OP ("Continue",           ARGP_CONTINUE_OP,          ARGI_CONTINUE_OP,           ACPI_TYPE_ANY,               AML_CLASS_CONTROL,         AML_TYPE_CONTROL,         0),
    330      1.1  jruoho /* 7B */ ACPI_OP ("LoadTable",          ARGP_LOAD_TABLE_OP,        ARGI_LOAD_TABLE_OP,         ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_6A_0T_1R,   AML_FLAGS_EXEC_6A_0T_1R),
    331      1.1  jruoho /* 7C */ ACPI_OP ("DataTableRegion",    ARGP_DATA_REGION_OP,       ARGI_DATA_REGION_OP,        ACPI_TYPE_REGION,            AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_COMPLEX,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE | AML_NAMED | AML_DEFER),
    332      1.1  jruoho /* 7D */ ACPI_OP ("[EvalSubTree]",      ARGP_SCOPE_OP,             ARGI_SCOPE_OP,              ACPI_TYPE_ANY,               AML_CLASS_NAMED_OBJECT,    AML_TYPE_NAMED_NO_OBJ,    AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE | AML_NSNODE),
    333      1.1  jruoho 
    334      1.1  jruoho /* ACPI 3.0 opcodes */
    335      1.1  jruoho 
    336      1.1  jruoho /* 7E */ ACPI_OP ("Timer",              ARGP_TIMER_OP,             ARGI_TIMER_OP,              ACPI_TYPE_ANY,               AML_CLASS_EXECUTE,         AML_TYPE_EXEC_0A_0T_1R,   AML_FLAGS_EXEC_0A_0T_1R)
    337      1.1  jruoho 
    338      1.1  jruoho /*! [End] no source code translation !*/
    339      1.1  jruoho };
    340      1.1  jruoho 
    341      1.1  jruoho /*
    342      1.1  jruoho  * This table is directly indexed by the opcodes, and returns an
    343      1.1  jruoho  * index into the table above
    344      1.1  jruoho  */
    345      1.1  jruoho static const UINT8 AcpiGbl_ShortOpIndex[256] =
    346      1.1  jruoho {
    347      1.1  jruoho /*              0     1     2     3     4     5     6     7  */
    348      1.1  jruoho /*              8     9     A     B     C     D     E     F  */
    349      1.1  jruoho /* 0x00 */    0x00, 0x01, _UNK, _UNK, _UNK, _UNK, 0x02, _UNK,
    350      1.1  jruoho /* 0x08 */    0x03, _UNK, 0x04, 0x05, 0x06, 0x07, 0x6E, _UNK,
    351      1.1  jruoho /* 0x10 */    0x08, 0x09, 0x0a, 0x6F, 0x0b, _UNK, _UNK, _UNK,
    352      1.1  jruoho /* 0x18 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    353      1.1  jruoho /* 0x20 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    354      1.1  jruoho /* 0x28 */    _UNK, _UNK, _UNK, _UNK, _UNK, 0x63, _PFX, _PFX,
    355      1.1  jruoho /* 0x30 */    0x67, 0x66, 0x68, 0x65, 0x69, 0x64, 0x6A, 0x7D,
    356      1.1  jruoho /* 0x38 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    357      1.1  jruoho /* 0x40 */    _UNK, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
    358      1.1  jruoho /* 0x48 */    _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
    359      1.1  jruoho /* 0x50 */    _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC, _ASC,
    360      1.1  jruoho /* 0x58 */    _ASC, _ASC, _ASC, _UNK, _PFX, _UNK, _PFX, _ASC,
    361      1.1  jruoho /* 0x60 */    0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
    362      1.1  jruoho /* 0x68 */    0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, _UNK,
    363      1.1  jruoho /* 0x70 */    0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22,
    364      1.1  jruoho /* 0x78 */    0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a,
    365      1.1  jruoho /* 0x80 */    0x2b, 0x2c, 0x2d, 0x2e, 0x70, 0x71, 0x2f, 0x30,
    366      1.1  jruoho /* 0x88 */    0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x72,
    367      1.1  jruoho /* 0x90 */    0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x73, 0x74,
    368      1.1  jruoho /* 0x98 */    0x75, 0x76, _UNK, _UNK, 0x77, 0x78, 0x79, 0x7A,
    369      1.1  jruoho /* 0xA0 */    0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x60, 0x61,
    370      1.1  jruoho /* 0xA8 */    0x62, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    371      1.1  jruoho /* 0xB0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    372      1.1  jruoho /* 0xB8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    373      1.1  jruoho /* 0xC0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    374      1.1  jruoho /* 0xC8 */    _UNK, _UNK, _UNK, _UNK, 0x44, _UNK, _UNK, _UNK,
    375      1.1  jruoho /* 0xD0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    376      1.1  jruoho /* 0xD8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    377      1.1  jruoho /* 0xE0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    378      1.1  jruoho /* 0xE8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    379      1.1  jruoho /* 0xF0 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    380      1.1  jruoho /* 0xF8 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x45,
    381      1.1  jruoho };
    382      1.1  jruoho 
    383      1.1  jruoho /*
    384      1.1  jruoho  * This table is indexed by the second opcode of the extended opcode
    385      1.1  jruoho  * pair.  It returns an index into the opcode table (AcpiGbl_AmlOpInfo)
    386      1.1  jruoho  */
    387      1.1  jruoho static const UINT8 AcpiGbl_LongOpIndex[NUM_EXTENDED_OPCODE] =
    388      1.1  jruoho {
    389      1.1  jruoho /*              0     1     2     3     4     5     6     7  */
    390      1.1  jruoho /*              8     9     A     B     C     D     E     F  */
    391      1.1  jruoho /* 0x00 */    _UNK, 0x46, 0x47, _UNK, _UNK, _UNK, _UNK, _UNK,
    392      1.1  jruoho /* 0x08 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    393      1.1  jruoho /* 0x10 */    _UNK, _UNK, 0x48, 0x49, _UNK, _UNK, _UNK, _UNK,
    394      1.1  jruoho /* 0x18 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, 0x7B,
    395      1.1  jruoho /* 0x20 */    0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
    396      1.1  jruoho /* 0x28 */    0x52, 0x53, 0x54, _UNK, _UNK, _UNK, _UNK, _UNK,
    397      1.1  jruoho /* 0x30 */    0x55, 0x56, 0x57, 0x7e, _UNK, _UNK, _UNK, _UNK,
    398      1.1  jruoho /* 0x38 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    399      1.1  jruoho /* 0x40 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    400      1.1  jruoho /* 0x48 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    401      1.1  jruoho /* 0x50 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    402      1.1  jruoho /* 0x58 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    403      1.1  jruoho /* 0x60 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    404      1.1  jruoho /* 0x68 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    405      1.1  jruoho /* 0x70 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    406      1.1  jruoho /* 0x78 */    _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK, _UNK,
    407      1.1  jruoho /* 0x80 */    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
    408      1.1  jruoho /* 0x88 */    0x7C,
    409      1.1  jruoho };
    410      1.1  jruoho 
    411      1.1  jruoho 
    412      1.1  jruoho /*******************************************************************************
    413      1.1  jruoho  *
    414      1.1  jruoho  * FUNCTION:    AcpiPsGetOpcodeInfo
    415      1.1  jruoho  *
    416      1.1  jruoho  * PARAMETERS:  Opcode              - The AML opcode
    417      1.1  jruoho  *
    418      1.1  jruoho  * RETURN:      A pointer to the info about the opcode.
    419      1.1  jruoho  *
    420      1.1  jruoho  * DESCRIPTION: Find AML opcode description based on the opcode.
    421      1.1  jruoho  *              NOTE: This procedure must ALWAYS return a valid pointer!
    422      1.1  jruoho  *
    423      1.1  jruoho  ******************************************************************************/
    424      1.1  jruoho 
    425      1.1  jruoho const ACPI_OPCODE_INFO *
    426      1.1  jruoho AcpiPsGetOpcodeInfo (
    427      1.1  jruoho     UINT16                  Opcode)
    428      1.1  jruoho {
    429      1.1  jruoho     ACPI_FUNCTION_NAME (PsGetOpcodeInfo);
    430      1.1  jruoho 
    431      1.1  jruoho 
    432      1.1  jruoho     /*
    433      1.1  jruoho      * Detect normal 8-bit opcode or extended 16-bit opcode
    434      1.1  jruoho      */
    435      1.1  jruoho     if (!(Opcode & 0xFF00))
    436      1.1  jruoho     {
    437      1.1  jruoho         /* Simple (8-bit) opcode: 0-255, can't index beyond table  */
    438      1.1  jruoho 
    439      1.1  jruoho         return (&AcpiGbl_AmlOpInfo [AcpiGbl_ShortOpIndex [(UINT8) Opcode]]);
    440      1.1  jruoho     }
    441      1.1  jruoho 
    442      1.1  jruoho     if (((Opcode & 0xFF00) == AML_EXTENDED_OPCODE) &&
    443      1.1  jruoho         (((UINT8) Opcode) <= MAX_EXTENDED_OPCODE))
    444      1.1  jruoho     {
    445      1.1  jruoho         /* Valid extended (16-bit) opcode */
    446      1.1  jruoho 
    447      1.1  jruoho         return (&AcpiGbl_AmlOpInfo [AcpiGbl_LongOpIndex [(UINT8) Opcode]]);
    448      1.1  jruoho     }
    449      1.1  jruoho 
    450      1.1  jruoho     /* Unknown AML opcode */
    451      1.1  jruoho 
    452      1.1  jruoho     ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
    453      1.1  jruoho         "Unknown AML opcode [%4.4X]\n", Opcode));
    454      1.1  jruoho 
    455      1.1  jruoho     return (&AcpiGbl_AmlOpInfo [_UNK]);
    456      1.1  jruoho }
    457      1.1  jruoho 
    458      1.1  jruoho 
    459      1.1  jruoho /*******************************************************************************
    460      1.1  jruoho  *
    461      1.1  jruoho  * FUNCTION:    AcpiPsGetOpcodeName
    462      1.1  jruoho  *
    463      1.1  jruoho  * PARAMETERS:  Opcode              - The AML opcode
    464      1.1  jruoho  *
    465      1.1  jruoho  * RETURN:      A pointer to the name of the opcode (ASCII String)
    466      1.1  jruoho  *              Note: Never returns NULL.
    467      1.1  jruoho  *
    468      1.1  jruoho  * DESCRIPTION: Translate an opcode into a human-readable string
    469      1.1  jruoho  *
    470      1.1  jruoho  ******************************************************************************/
    471      1.1  jruoho 
    472      1.1  jruoho char *
    473      1.1  jruoho AcpiPsGetOpcodeName (
    474      1.1  jruoho     UINT16                  Opcode)
    475      1.1  jruoho {
    476      1.1  jruoho #if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
    477      1.1  jruoho 
    478      1.1  jruoho     const ACPI_OPCODE_INFO  *Op;
    479      1.1  jruoho 
    480      1.1  jruoho 
    481      1.1  jruoho     Op = AcpiPsGetOpcodeInfo (Opcode);
    482      1.1  jruoho 
    483      1.1  jruoho     /* Always guaranteed to return a valid pointer */
    484      1.1  jruoho 
    485      1.1  jruoho     return (Op->Name);
    486      1.1  jruoho 
    487      1.1  jruoho #else
    488      1.1  jruoho     return ("OpcodeName unavailable");
    489      1.1  jruoho 
    490      1.1  jruoho #endif
    491      1.1  jruoho }
    492      1.1  jruoho 
    493      1.1  jruoho 
    494      1.1  jruoho /*******************************************************************************
    495      1.1  jruoho  *
    496      1.1  jruoho  * FUNCTION:    AcpiPsGetArgumentCount
    497      1.1  jruoho  *
    498      1.1  jruoho  * PARAMETERS:  OpType              - Type associated with the AML opcode
    499      1.1  jruoho  *
    500      1.1  jruoho  * RETURN:      Argument count
    501      1.1  jruoho  *
    502      1.1  jruoho  * DESCRIPTION: Obtain the number of expected arguments for an AML opcode
    503      1.1  jruoho  *
    504      1.1  jruoho  ******************************************************************************/
    505      1.1  jruoho 
    506      1.1  jruoho UINT8
    507      1.1  jruoho AcpiPsGetArgumentCount (
    508      1.1  jruoho     UINT32                  OpType)
    509      1.1  jruoho {
    510      1.1  jruoho 
    511      1.1  jruoho     if (OpType <= AML_TYPE_EXEC_6A_0T_1R)
    512      1.1  jruoho     {
    513      1.1  jruoho         return (AcpiGbl_ArgumentCount[OpType]);
    514      1.1  jruoho     }
    515      1.1  jruoho 
    516      1.1  jruoho     return (0);
    517      1.1  jruoho }
    518