/******************************************************************************
 *
 * Module Name: psopcode - Parser/Interpreter opcode information table
 *
 *****************************************************************************/

/*
 * Copyright (C) 2000 - 2017, Intel Corp.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions, and the following disclaimer,
 *    without modification.
 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
 *    substantially similar to the "NO WARRANTY" disclaimer below
 *    ("Disclaimer") and any redistribution must be conditioned upon
 *    including a substantially similar Disclaimer requirement for further
 *    binary redistribution.
 * 3. Neither the names of the above-listed copyright holders nor the names
 *    of any contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * Alternatively, this software may be distributed under the terms of the
 * GNU General Public License ("GPL") version 2 as published by the Free
 * Software Foundation.
 *
 * NO WARRANTY
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGES.
 */

#include <acpi/acpi.h>
#include "accommon.h"
#include "acopcode.h"
#include "amlcode.h"

#define _COMPONENT          ACPI_PARSER
ACPI_MODULE_NAME("psopcode")

/*******************************************************************************
 *
 * NAME:        acpi_gbl_aml_op_info
 *
 * DESCRIPTION: Opcode table. Each entry contains <opcode, type, name, operands>
 *              The name is a simple ascii string, the operand specifier is an
 *              ascii string with one letter per operand. The letter specifies
 *              the operand type.
 *
 ******************************************************************************/
/*
 * Summary of opcode types/flags
 *

 Opcodes that have associated namespace objects (AML_NSOBJECT flag)

	AML_SCOPE_OP
	AML_DEVICE_OP
	AML_THERMAL_ZONE_OP
	AML_METHOD_OP
	AML_POWER_RESOURCE_OP
	AML_PROCESSOR_OP
	AML_FIELD_OP
	AML_INDEX_FIELD_OP
	AML_BANK_FIELD_OP
	AML_NAME_OP
	AML_ALIAS_OP
	AML_MUTEX_OP
	AML_EVENT_OP
	AML_REGION_OP
	AML_CREATE_FIELD_OP
	AML_CREATE_BIT_FIELD_OP
	AML_CREATE_BYTE_FIELD_OP
	AML_CREATE_WORD_FIELD_OP
	AML_CREATE_DWORD_FIELD_OP
	AML_CREATE_QWORD_FIELD_OP
	AML_INT_NAMEDFIELD_OP
	AML_INT_METHODCALL_OP
	AML_INT_NAMEPATH_OP

  Opcodes that are "namespace" opcodes (AML_NSOPCODE flag)

	AML_SCOPE_OP
	AML_DEVICE_OP
	AML_THERMAL_ZONE_OP
	AML_METHOD_OP
	AML_POWER_RESOURCE_OP
	AML_PROCESSOR_OP
	AML_FIELD_OP
	AML_INDEX_FIELD_OP
	AML_BANK_FIELD_OP
	AML_NAME_OP
	AML_ALIAS_OP
	AML_MUTEX_OP
	AML_EVENT_OP
	AML_REGION_OP
	AML_INT_NAMEDFIELD_OP

  Opcodes that have an associated namespace node (AML_NSNODE flag)

	AML_SCOPE_OP
	AML_DEVICE_OP
	AML_THERMAL_ZONE_OP
	AML_METHOD_OP
	AML_POWER_RESOURCE_OP
	AML_PROCESSOR_OP
	AML_NAME_OP
	AML_ALIAS_OP
	AML_MUTEX_OP
	AML_EVENT_OP
	AML_REGION_OP
	AML_CREATE_FIELD_OP
	AML_CREATE_BIT_FIELD_OP
	AML_CREATE_BYTE_FIELD_OP
	AML_CREATE_WORD_FIELD_OP
	AML_CREATE_DWORD_FIELD_OP
	AML_CREATE_QWORD_FIELD_OP
	AML_INT_NAMEDFIELD_OP
	AML_INT_METHODCALL_OP
	AML_INT_NAMEPATH_OP

  Opcodes that define named ACPI objects (AML_NAMED flag)

	AML_SCOPE_OP
	AML_DEVICE_OP
	AML_THERMAL_ZONE_OP
	AML_METHOD_OP
	AML_POWER_RESOURCE_OP
	AML_PROCESSOR_OP
	AML_NAME_OP
	AML_ALIAS_OP
	AML_MUTEX_OP
	AML_EVENT_OP
	AML_REGION_OP
	AML_INT_NAMEDFIELD_OP

  Opcodes that contain executable AML as part of the definition that
  must be deferred until needed

	AML_METHOD_OP
	AML_VARIABLE_PACKAGE_OP
	AML_CREATE_FIELD_OP
	AML_CREATE_BIT_FIELD_OP
	AML_CREATE_BYTE_FIELD_OP
	AML_CREATE_WORD_FIELD_OP
	AML_CREATE_DWORD_FIELD_OP
	AML_CREATE_QWORD_FIELD_OP
	AML_REGION_OP
	AML_BUFFER_OP

  Field opcodes

	AML_CREATE_FIELD_OP
	AML_FIELD_OP
	AML_INDEX_FIELD_OP
	AML_BANK_FIELD_OP

  Field "Create" opcodes

	AML_CREATE_FIELD_OP
	AML_CREATE_BIT_FIELD_OP
	AML_CREATE_BYTE_FIELD_OP
	AML_CREATE_WORD_FIELD_OP
	AML_CREATE_DWORD_FIELD_OP
	AML_CREATE_QWORD_FIELD_OP

 ******************************************************************************/
/*
 * Master Opcode information table. A summary of everything we know about each
 * opcode, all in one place.
 */
const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES] = {
/*! [Begin] no source code translation */
/* Index           Name                 Parser Args               Interpreter Args                ObjectType                    Class                      Type                  Flags */

/* 00 */ ACPI_OP("Zero", ARGP_ZERO_OP, ARGI_ZERO_OP, ACPI_TYPE_INTEGER,
			 AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
/* 01 */ ACPI_OP("One", ARGP_ONE_OP, ARGI_ONE_OP, ACPI_TYPE_INTEGER,
			 AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),
/* 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),
/* 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),
/* 04 */ ACPI_OP("ByteConst", ARGP_BYTE_OP, ARGI_BYTE_OP,
			 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_CONSTANT),
/* 05 */ ACPI_OP("WordConst", ARGP_WORD_OP, ARGI_WORD_OP,
			 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_CONSTANT),
/* 06 */ ACPI_OP("DwordConst", ARGP_DWORD_OP, ARGI_DWORD_OP,
			 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_CONSTANT),
/* 07 */ ACPI_OP("String", ARGP_STRING_OP, ARGI_STRING_OP,
			 ACPI_TYPE_STRING, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_CONSTANT),
/* 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),
/* 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),
/* 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),
/* 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),
/* 0C */ ACPI_OP("Local0", ARGP_LOCAL0, ARGI_LOCAL0,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 0D */ ACPI_OP("Local1", ARGP_LOCAL1, ARGI_LOCAL1,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 0E */ ACPI_OP("Local2", ARGP_LOCAL2, ARGI_LOCAL2,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 0F */ ACPI_OP("Local3", ARGP_LOCAL3, ARGI_LOCAL3,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 10 */ ACPI_OP("Local4", ARGP_LOCAL4, ARGI_LOCAL4,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 11 */ ACPI_OP("Local5", ARGP_LOCAL5, ARGI_LOCAL5,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 12 */ ACPI_OP("Local6", ARGP_LOCAL6, ARGI_LOCAL6,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 13 */ ACPI_OP("Local7", ARGP_LOCAL7, ARGI_LOCAL7,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LOCAL_VARIABLE, 0),
/* 14 */ ACPI_OP("Arg0", ARGP_ARG0, ARGI_ARG0,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 15 */ ACPI_OP("Arg1", ARGP_ARG1, ARGI_ARG1,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 16 */ ACPI_OP("Arg2", ARGP_ARG2, ARGI_ARG2,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 17 */ ACPI_OP("Arg3", ARGP_ARG3, ARGI_ARG3,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 18 */ ACPI_OP("Arg4", ARGP_ARG4, ARGI_ARG4,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 19 */ ACPI_OP("Arg5", ARGP_ARG5, ARGI_ARG5,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 1A */ ACPI_OP("Arg6", ARGP_ARG6, ARGI_ARG6,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_METHOD_ARGUMENT, 0),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 37 */ ACPI_OP("ObjectType", ARGP_OBJECT_TYPE_OP, ARGI_OBJECT_TYPE_OP,
			 ACPI_TYPE_ANY, AML_CLASS_EXECUTE,
			 AML_TYPE_EXEC_1A_0T_1R,
			 AML_FLAGS_EXEC_1A_0T_1R | AML_NO_OPERAND_RESOLVE),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 3E */ ACPI_OP("If", ARGP_IF_OP, ARGI_IF_OP, ACPI_TYPE_ANY,
			 AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
/* 3F */ ACPI_OP("Else", ARGP_ELSE_OP, ARGI_ELSE_OP, ACPI_TYPE_ANY,
			 AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
/* 40 */ ACPI_OP("While", ARGP_WHILE_OP, ARGI_WHILE_OP, ACPI_TYPE_ANY,
			 AML_CLASS_CONTROL, AML_TYPE_CONTROL, AML_HAS_ARGS),
/* 41 */ ACPI_OP("Noop", ARGP_NOOP_OP, ARGI_NOOP_OP, ACPI_TYPE_ANY,
			 AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
/* 42 */ ACPI_OP("Return", ARGP_RETURN_OP, ARGI_RETURN_OP,
			 ACPI_TYPE_ANY, AML_CLASS_CONTROL,
			 AML_TYPE_CONTROL, AML_HAS_ARGS),
/* 43 */ ACPI_OP("Break", ARGP_BREAK_OP, ARGI_BREAK_OP, ACPI_TYPE_ANY,
			 AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
/* 44 */ ACPI_OP("BreakPoint", ARGP_BREAK_POINT_OP, ARGI_BREAK_POINT_OP,
			 ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
/* 45 */ ACPI_OP("Ones", ARGP_ONES_OP, ARGI_ONES_OP, ACPI_TYPE_INTEGER,
			 AML_CLASS_ARGUMENT, AML_TYPE_CONSTANT, AML_CONSTANT),

/* Prefixed opcodes (Two-byte opcodes with a prefix op) */

/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 55 */ ACPI_OP("Revision", ARGP_REVISION_OP, ARGI_REVISION_OP,
			 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
			 AML_TYPE_CONSTANT, 0),
/* 56 */ ACPI_OP("Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_CONSTANT, 0),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),

/* Internal opcodes that map to invalid AML opcodes */

/* 60 */ ACPI_OP("LNotEqual", ARGP_LNOTEQUAL_OP, ARGI_LNOTEQUAL_OP,
			 ACPI_TYPE_ANY, AML_CLASS_INTERNAL,
			 AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
/* 61 */ ACPI_OP("LLessEqual", ARGP_LLESSEQUAL_OP, ARGI_LLESSEQUAL_OP,
			 ACPI_TYPE_ANY, AML_CLASS_INTERNAL,
			 AML_TYPE_BOGUS, AML_HAS_ARGS | AML_CONSTANT),
/* 62 */ ACPI_OP("LGreaterEqual", ARGP_LGREATEREQUAL_OP,
			 ARGI_LGREATEREQUAL_OP, ACPI_TYPE_ANY,
			 AML_CLASS_INTERNAL, AML_TYPE_BOGUS,
			 AML_HAS_ARGS | AML_CONSTANT),
/* 63 */ ACPI_OP("-NamePath-", ARGP_NAMEPATH_OP, ARGI_NAMEPATH_OP,
			 ACPI_TYPE_LOCAL_REFERENCE, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_NSOBJECT | AML_NSNODE),
/* 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),
/* 65 */ ACPI_OP("-ByteList-", ARGP_BYTELIST_OP, ARGI_BYTELIST_OP,
			 ACPI_TYPE_ANY, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, 0),
/* 66 */ ACPI_OP("-ReservedField-", ARGP_RESERVEDFIELD_OP,
			 ARGI_RESERVEDFIELD_OP, ACPI_TYPE_ANY,
			 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
/* 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),
/* 68 */ ACPI_OP("-AccessField-", ARGP_ACCESSFIELD_OP,
			 ARGI_ACCESSFIELD_OP, ACPI_TYPE_ANY,
			 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
/* 69 */ ACPI_OP("-StaticString", ARGP_STATICSTRING_OP,
			 ARGI_STATICSTRING_OP, ACPI_TYPE_ANY,
			 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),
/* 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),
/* 6B */ ACPI_OP("-UNKNOWN_OP-", ARG_NONE, ARG_NONE, ACPI_TYPE_INVALID,
			 AML_CLASS_UNKNOWN, AML_TYPE_BOGUS, AML_HAS_ARGS),
/* 6C */ ACPI_OP("-ASCII_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY,
			 AML_CLASS_ASCII, AML_TYPE_BOGUS, AML_HAS_ARGS),
/* 6D */ ACPI_OP("-PREFIX_ONLY-", ARG_NONE, ARG_NONE, ACPI_TYPE_ANY,
			 AML_CLASS_PREFIX, AML_TYPE_BOGUS, AML_HAS_ARGS),

/* ACPI 2.0 opcodes */

/* 6E */ ACPI_OP("QwordConst", ARGP_QWORD_OP, ARGI_QWORD_OP,
			 ACPI_TYPE_INTEGER, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_CONSTANT),
	/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 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),
/* 7A */ ACPI_OP("Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP,
			 ACPI_TYPE_ANY, AML_CLASS_CONTROL, AML_TYPE_CONTROL, 0),
/* 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),
/* 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),
/* 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),

/* ACPI 3.0 opcodes */

/* 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 | AML_NO_OPERAND_RESOLVE),

/* ACPI 5.0 opcodes */

/* 7F */ ACPI_OP("-ConnectField-", ARGP_CONNECTFIELD_OP,
			 ARGI_CONNECTFIELD_OP, ACPI_TYPE_ANY,
			 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, AML_HAS_ARGS),
/* 80 */ ACPI_OP("-ExtAccessField-", ARGP_CONNECTFIELD_OP,
			 ARGI_CONNECTFIELD_OP, ACPI_TYPE_ANY,
			 AML_CLASS_INTERNAL, AML_TYPE_BOGUS, 0),

/* ACPI 6.0 opcodes */

/* 81 */ ACPI_OP("External", ARGP_EXTERNAL_OP, ARGI_EXTERNAL_OP,
			 ACPI_TYPE_ANY, AML_CLASS_NAMED_OBJECT,
			 AML_TYPE_NAMED_SIMPLE,
			 AML_HAS_ARGS | AML_NSOBJECT | AML_NSOPCODE |
			 AML_NSNODE | AML_NAMED),
/* 82 */ ACPI_OP("Comment", ARGP_COMMENT_OP, ARGI_COMMENT_OP,
			 ACPI_TYPE_STRING, AML_CLASS_ARGUMENT,
			 AML_TYPE_LITERAL, AML_CONSTANT)

/*! [End] no source code translation !*/
};
