linux/drivers/acpi/acpica/psopcode.c

// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
/******************************************************************************
 *
 * Module Name: psopcode - Parser/Interpreter opcode information table
 *
 * Copyright (C) 2000 - 2023, Intel Corp.
 *
 *****************************************************************************/

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

#define _COMPONENT
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] =;