/*
* $Id$
*
* Copyright (C) 2003-2015 JNode.org
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; If not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jnode.driver.system.acpi.aml;
/**
* AML opcodes and argument types.
* <p/>
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Aml {
/*
* amlop.h - AML opcodes and argument types
*
* This file is auto-generated by "mkaml" from "amlop.txt"
*/
/*
* opcodes
*/
public static final int AML_ACCESSFIELD = 0x0032;
public static final int AML_ACQUIRE = 0x5b23;
public static final int AML_ADD = 0x0072;
public static final int AML_ALIAS = 0x0006;
public static final int AML_AND = 0x007b;
public static final int AML_ARG0 = 0x0068;
public static final int AML_ARG1 = 0x0069;
public static final int AML_ARG2 = 0x006a;
public static final int AML_ARG3 = 0x006b;
public static final int AML_ARG4 = 0x006c;
public static final int AML_ARG5 = 0x006d;
public static final int AML_ARG6 = 0x006e;
public static final int AML_BANKFIELD = 0x5b87;
public static final int AML_BREAK = 0x00a5;
public static final int AML_BREAKPOINT = 0x00cc;
public static final int AML_BUFFER = 0x0011;
public static final int AML_BYTECONST = 0x000a;
public static final int AML_BYTELIST = 0x0033;
public static final int AML_CONCAT = 0x0073;
public static final int AML_CONDREFOF = 0x5b12;
public static final int AML_CREATEBITFIELD = 0x008d;
public static final int AML_CREATEBYTEFIELD = 0x008c;
public static final int AML_CREATEDWORDFIELD = 0x008a;
public static final int AML_CREATEFIELD = 0x5b13;
public static final int AML_CREATEWORDFIELD = 0x008b;
public static final int AML_DEBUG = 0x5b31;
public static final int AML_DECREMENT = 0x0076;
public static final int AML_DEREFOF = 0x0083;
public static final int AML_DEVICE = 0x5b82;
public static final int AML_DIVIDE = 0x0078;
public static final int AML_DUALNAMEPATH = 0x002e;
public static final int AML_DWORDCONST = 0x000c;
public static final int AML_ELSE = 0x00a1;
public static final int AML_EVENT = 0x5b02;
public static final int AML_EXTOP = 0x005b;
public static final int AML_FATAL = 0x5b32;
public static final int AML_FIELD = 0x5b81;
public static final int AML_FIELDFLAGS = 0x004c;
public static final int AML_FINDSETLEFTBIT = 0x0081;
public static final int AML_FINDSETRIGHTBIT = 0x0082;
public static final int AML_FROMBCD = 0x5b28;
public static final int AML_IF = 0x00a0;
public static final int AML_INCREMENT = 0x0075;
public static final int AML_INDEX = 0x0088;
public static final int AML_INDEXFIELD = 0x5b86;
public static final int AML_LAND = 0x0090;
public static final int AML_LEQUAL = 0x0093;
public static final int AML_LGREATER = 0x0094;
public static final int AML_LGREATEREQUAL = 0x9295;
public static final int AML_LLESS = 0x0095;
public static final int AML_LLESSEQUAL = 0x9294;
public static final int AML_LNOT = 0x0092;
public static final int AML_LNOTEQUAL = 0x9293;
public static final int AML_LOR = 0x0091;
public static final int AML_LOAD = 0x5b20;
public static final int AML_LOCAL0 = 0x0060;
public static final int AML_LOCAL1 = 0x0061;
public static final int AML_LOCAL2 = 0x0062;
public static final int AML_LOCAL3 = 0x0063;
public static final int AML_LOCAL4 = 0x0064;
public static final int AML_LOCAL5 = 0x0065;
public static final int AML_LOCAL6 = 0x0066;
public static final int AML_LOCAL7 = 0x0067;
public static final int AML_MATCH = 0x0089;
public static final int AML_METHOD = 0x0014;
public static final int AML_METHODCALL = 0x0035;
public static final int AML_METHODFLAGS = 0x004d;
public static final int AML_MULTINAMEPATH = 0x002f;
public static final int AML_MULTIPLY = 0x0077;
public static final int AML_MUTEX = 0x5b01;
public static final int AML_NAND = 0x007c;
public static final int AML_NOR = 0x007e;
public static final int AML_NAME = 0x0008;
public static final int AML_NAMEPATH = 0x002d;
public static final int AML_NAMEDFIELD = 0x0030;
public static final int AML_NOOP = 0x00a3;
public static final int AML_NOT = 0x0080;
public static final int AML_NOTIFY = 0x0086;
public static final int AML_OBJECTTYPE = 0x008e;
public static final int AML_ONEOP = 0x0001;
public static final int AML_ONESOP = 0x00ff;
public static final int AML_OPREGION = 0x5b80;
public static final int AML_OR = 0x007d;
public static final int AML_PACKAGE = 0x0012;
public static final int AML_POWERRES = 0x5b84;
public static final int AML_PROCESSOR = 0x5b83;
public static final int AML_REFOF = 0x0071;
public static final int AML_REGIONSPACE = 0x0052;
public static final int AML_RELEASE = 0x5b27;
public static final int AML_RESERVEDFIELD = 0x0031;
public static final int AML_RESET = 0x5b26;
public static final int AML_RETURN = 0x00a4;
public static final int AML_REVISION = 0x5b30;
public static final int AML_SCOPE = 0x0010;
public static final int AML_SHIFTLEFT = 0x0079;
public static final int AML_SHIFTRIGHT = 0x007a;
public static final int AML_SIGNAL = 0x5b24;
public static final int AML_SIZEOF = 0x0087;
public static final int AML_SLEEP = 0x5b22;
public static final int AML_STALL = 0x5b21;
public static final int AML_STATICSTRING = 0x0034;
public static final int AML_STORE = 0x0070;
public static final int AML_STRING = 0x000d;
public static final int AML_SUBTRACT = 0x0074;
public static final int AML_SYNCFLAGS = 0x0053;
public static final int AML_THERMALZONE = 0x5b85;
public static final int AML_TOBCD = 0x5b29;
public static final int AML_UNLOAD = 0x5b2a;
public static final int AML_WAIT = 0x5b25;
public static final int AML_WHILE = 0x00a2;
public static final int AML_WORDCONST = 0x000b;
public static final int AML_XOR = 0x007f;
public static final int AML_ZEROOP = 0x0000;
/*
* argument types
*/
public static final int AML_ASCIICHARLIST_ARG = 'A';
public static final int AML_BYTEDATA_ARG = 'b';
public static final int AML_BYTELIST_ARG = 'B';
public static final int AML_DWORDDATA_ARG = 'd';
public static final int AML_DATAOBJECT_ARG = 'o';
public static final int AML_DATAOBJECTLIST_ARG = 'O';
public static final int AML_FIELDFLAGS_ARG = 'L';
public static final int AML_FIELDLIST_ARG = 'F';
public static final int AML_METHODFLAGS_ARG = 'M';
public static final int AML_NAME_ARG = 'N';
public static final int AML_NAMESTRING_ARG = 'n';
public static final int AML_OBJECTLIST_ARG = 'P';
public static final int AML_PKGLENGTH_ARG = 'p';
public static final int AML_REGIONSPACE_ARG = 'R';
public static final int AML_SUPERNAME_ARG = 's';
public static final int AML_SYNCFLAGS_ARG = 'S';
public static final int AML_TARGET_ARG = 'l';
public static final int AML_TERMARG_ARG = 't';
public static final int AML_TERMLIST_ARG = 'T';
public static final int AML_WORDDATA_ARG = 'w';
/*
* hash offsets
*/
public static final int AML_EXTOP_HASH_OFFSET = 22;
public static final int AML_LNOT_HASH_OFFSET = 19;
/*
* Is opcode for a named op?
*/
public static boolean isNamedOpcode(int opcode) {
return (opcode == AML_SCOPE
|| opcode == AML_DEVICE
|| opcode == AML_THERMALZONE
|| opcode == AML_METHOD
|| opcode == AML_POWERRES
|| opcode == AML_PROCESSOR
|| opcode == AML_NAMEDFIELD
|| opcode == AML_NAME
|| opcode == AML_ALIAS
|| opcode == AML_MUTEX
|| opcode == AML_EVENT
|| opcode == AML_OPREGION);
}
/*
* Is opcode for a Field, IndexField, or BankField
*/
public static boolean isFieldOpcode(int opcode) {
return (opcode == AML_FIELD
|| opcode == AML_INDEXFIELD
|| opcode == AML_BANKFIELD);
}
// variable # arguments
public static final int ACPI_VAR_ARGS = ~0;
// mask argument count from method declaration
public static final int ACPI_METHOD_ARG_MASK = 0x7;
// maximum virtual address
public static final int ACPI_MAX_AML = Integer.MAX_VALUE;
/*
* Is "c" a namestring lead character?
*/
public static boolean isLeadChar(byte c) {
return (c == '_' || (c >= 'A' && c <= 'Z'));
}
/*
* Is "c" a namestring prefix character?
*/
public static boolean isPrefixChar(byte c) {
return (c == '\\' || c == '^');
}
}