/* * $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 == '^'); } }