xref: /minix3/minix/drivers/power/acpi/include/acopcode.h (revision 29492bb71c7148a089a5afafa0c99409161218df)
1433d6423SLionel Sambuc /******************************************************************************
2433d6423SLionel Sambuc  *
3433d6423SLionel Sambuc  * Name: acopcode.h - AML opcode information for the AML parser and interpreter
4433d6423SLionel Sambuc  *
5433d6423SLionel Sambuc  *****************************************************************************/
6433d6423SLionel Sambuc 
7*29492bb7SDavid van Moolenbroek /*
8*29492bb7SDavid van Moolenbroek  * Copyright (C) 2000 - 2014, Intel Corp.
9433d6423SLionel Sambuc  * All rights reserved.
10433d6423SLionel Sambuc  *
11*29492bb7SDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
12*29492bb7SDavid van Moolenbroek  * modification, are permitted provided that the following conditions
13*29492bb7SDavid van Moolenbroek  * are met:
14*29492bb7SDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
15*29492bb7SDavid van Moolenbroek  *    notice, this list of conditions, and the following disclaimer,
16*29492bb7SDavid van Moolenbroek  *    without modification.
17*29492bb7SDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18*29492bb7SDavid van Moolenbroek  *    substantially similar to the "NO WARRANTY" disclaimer below
19*29492bb7SDavid van Moolenbroek  *    ("Disclaimer") and any redistribution must be conditioned upon
20*29492bb7SDavid van Moolenbroek  *    including a substantially similar Disclaimer requirement for further
21*29492bb7SDavid van Moolenbroek  *    binary redistribution.
22*29492bb7SDavid van Moolenbroek  * 3. Neither the names of the above-listed copyright holders nor the names
23*29492bb7SDavid van Moolenbroek  *    of any contributors may be used to endorse or promote products derived
24*29492bb7SDavid van Moolenbroek  *    from this software without specific prior written permission.
25433d6423SLionel Sambuc  *
26*29492bb7SDavid van Moolenbroek  * Alternatively, this software may be distributed under the terms of the
27*29492bb7SDavid van Moolenbroek  * GNU General Public License ("GPL") version 2 as published by the Free
28*29492bb7SDavid van Moolenbroek  * Software Foundation.
29433d6423SLionel Sambuc  *
30*29492bb7SDavid van Moolenbroek  * NO WARRANTY
31*29492bb7SDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32*29492bb7SDavid van Moolenbroek  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33*29492bb7SDavid van Moolenbroek  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34*29492bb7SDavid van Moolenbroek  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35*29492bb7SDavid van Moolenbroek  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36*29492bb7SDavid van Moolenbroek  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37*29492bb7SDavid van Moolenbroek  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38*29492bb7SDavid van Moolenbroek  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39*29492bb7SDavid van Moolenbroek  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40*29492bb7SDavid van Moolenbroek  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41*29492bb7SDavid van Moolenbroek  * POSSIBILITY OF SUCH DAMAGES.
42*29492bb7SDavid van Moolenbroek  */
43433d6423SLionel Sambuc 
44433d6423SLionel Sambuc #ifndef __ACOPCODE_H__
45433d6423SLionel Sambuc #define __ACOPCODE_H__
46433d6423SLionel Sambuc 
47433d6423SLionel Sambuc #define MAX_EXTENDED_OPCODE         0x88
48433d6423SLionel Sambuc #define NUM_EXTENDED_OPCODE         (MAX_EXTENDED_OPCODE + 1)
49433d6423SLionel Sambuc #define MAX_INTERNAL_OPCODE
50433d6423SLionel Sambuc #define NUM_INTERNAL_OPCODE         (MAX_INTERNAL_OPCODE + 1)
51433d6423SLionel Sambuc 
52433d6423SLionel Sambuc /* Used for non-assigned opcodes */
53433d6423SLionel Sambuc 
54433d6423SLionel Sambuc #define _UNK                        0x6B
55433d6423SLionel Sambuc 
56433d6423SLionel Sambuc /*
57433d6423SLionel Sambuc  * Reserved ASCII characters. Do not use any of these for
58433d6423SLionel Sambuc  * internal opcodes, since they are used to differentiate
59433d6423SLionel Sambuc  * name strings from AML opcodes
60433d6423SLionel Sambuc  */
61433d6423SLionel Sambuc #define _ASC                        0x6C
62433d6423SLionel Sambuc #define _NAM                        0x6C
63433d6423SLionel Sambuc #define _PFX                        0x6D
64433d6423SLionel Sambuc 
65433d6423SLionel Sambuc 
66433d6423SLionel Sambuc /*
67433d6423SLionel Sambuc  * All AML opcodes and the parse-time arguments for each. Used by the AML
68433d6423SLionel Sambuc  * parser  Each list is compressed into a 32-bit number and stored in the
69433d6423SLionel Sambuc  * master opcode table (in psopcode.c).
70433d6423SLionel Sambuc  */
71433d6423SLionel Sambuc #define ARGP_ACCESSFIELD_OP             ARGP_LIST1 (ARGP_NAMESTRING)
72433d6423SLionel Sambuc #define ARGP_ACQUIRE_OP                 ARGP_LIST2 (ARGP_SUPERNAME,  ARGP_WORDDATA)
73433d6423SLionel Sambuc #define ARGP_ADD_OP                     ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
74433d6423SLionel Sambuc #define ARGP_ALIAS_OP                   ARGP_LIST2 (ARGP_NAMESTRING, ARGP_NAME)
75433d6423SLionel Sambuc #define ARGP_ARG0                       ARG_NONE
76433d6423SLionel Sambuc #define ARGP_ARG1                       ARG_NONE
77433d6423SLionel Sambuc #define ARGP_ARG2                       ARG_NONE
78433d6423SLionel Sambuc #define ARGP_ARG3                       ARG_NONE
79433d6423SLionel Sambuc #define ARGP_ARG4                       ARG_NONE
80433d6423SLionel Sambuc #define ARGP_ARG5                       ARG_NONE
81433d6423SLionel Sambuc #define ARGP_ARG6                       ARG_NONE
82433d6423SLionel Sambuc #define ARGP_BANK_FIELD_OP              ARGP_LIST6 (ARGP_PKGLENGTH,  ARGP_NAMESTRING,    ARGP_NAMESTRING,ARGP_TERMARG,   ARGP_BYTEDATA,  ARGP_FIELDLIST)
83433d6423SLionel Sambuc #define ARGP_BIT_AND_OP                 ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
84433d6423SLionel Sambuc #define ARGP_BIT_NAND_OP                ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
85433d6423SLionel Sambuc #define ARGP_BIT_NOR_OP                 ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
86433d6423SLionel Sambuc #define ARGP_BIT_NOT_OP                 ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
87433d6423SLionel Sambuc #define ARGP_BIT_OR_OP                  ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
88433d6423SLionel Sambuc #define ARGP_BIT_XOR_OP                 ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
89433d6423SLionel Sambuc #define ARGP_BREAK_OP                   ARG_NONE
90433d6423SLionel Sambuc #define ARGP_BREAK_POINT_OP             ARG_NONE
91433d6423SLionel Sambuc #define ARGP_BUFFER_OP                  ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_TERMARG,       ARGP_BYTELIST)
92433d6423SLionel Sambuc #define ARGP_BYTE_OP                    ARGP_LIST1 (ARGP_BYTEDATA)
93433d6423SLionel Sambuc #define ARGP_BYTELIST_OP                ARGP_LIST1 (ARGP_NAMESTRING)
94433d6423SLionel Sambuc #define ARGP_CONCAT_OP                  ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
95433d6423SLionel Sambuc #define ARGP_CONCAT_RES_OP              ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
96433d6423SLionel Sambuc #define ARGP_COND_REF_OF_OP             ARGP_LIST2 (ARGP_SUPERNAME,  ARGP_SUPERNAME)
97*29492bb7SDavid van Moolenbroek #define ARGP_CONNECTFIELD_OP            ARGP_LIST1 (ARGP_NAMESTRING)
98433d6423SLionel Sambuc #define ARGP_CONTINUE_OP                ARG_NONE
99433d6423SLionel Sambuc #define ARGP_COPY_OP                    ARGP_LIST2 (ARGP_TERMARG,    ARGP_SIMPLENAME)
100433d6423SLionel Sambuc #define ARGP_CREATE_BIT_FIELD_OP        ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_NAME)
101433d6423SLionel Sambuc #define ARGP_CREATE_BYTE_FIELD_OP       ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_NAME)
102433d6423SLionel Sambuc #define ARGP_CREATE_DWORD_FIELD_OP      ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_NAME)
103433d6423SLionel Sambuc #define ARGP_CREATE_FIELD_OP            ARGP_LIST4 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TERMARG,   ARGP_NAME)
104433d6423SLionel Sambuc #define ARGP_CREATE_QWORD_FIELD_OP      ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_NAME)
105433d6423SLionel Sambuc #define ARGP_CREATE_WORD_FIELD_OP       ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_NAME)
106433d6423SLionel Sambuc #define ARGP_DATA_REGION_OP             ARGP_LIST4 (ARGP_NAME,       ARGP_TERMARG,       ARGP_TERMARG,   ARGP_TERMARG)
107433d6423SLionel Sambuc #define ARGP_DEBUG_OP                   ARG_NONE
108433d6423SLionel Sambuc #define ARGP_DECREMENT_OP               ARGP_LIST1 (ARGP_SUPERNAME)
109433d6423SLionel Sambuc #define ARGP_DEREF_OF_OP                ARGP_LIST1 (ARGP_TERMARG)
110433d6423SLionel Sambuc #define ARGP_DEVICE_OP                  ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_NAME,          ARGP_OBJLIST)
111433d6423SLionel Sambuc #define ARGP_DIVIDE_OP                  ARGP_LIST4 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET,    ARGP_TARGET)
112433d6423SLionel Sambuc #define ARGP_DWORD_OP                   ARGP_LIST1 (ARGP_DWORDDATA)
113433d6423SLionel Sambuc #define ARGP_ELSE_OP                    ARGP_LIST2 (ARGP_PKGLENGTH,  ARGP_TERMLIST)
114433d6423SLionel Sambuc #define ARGP_EVENT_OP                   ARGP_LIST1 (ARGP_NAME)
115433d6423SLionel Sambuc #define ARGP_FATAL_OP                   ARGP_LIST3 (ARGP_BYTEDATA,   ARGP_DWORDDATA,     ARGP_TERMARG)
116433d6423SLionel Sambuc #define ARGP_FIELD_OP                   ARGP_LIST4 (ARGP_PKGLENGTH,  ARGP_NAMESTRING,    ARGP_BYTEDATA,  ARGP_FIELDLIST)
117433d6423SLionel Sambuc #define ARGP_FIND_SET_LEFT_BIT_OP       ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
118433d6423SLionel Sambuc #define ARGP_FIND_SET_RIGHT_BIT_OP      ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
119433d6423SLionel Sambuc #define ARGP_FROM_BCD_OP                ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
120433d6423SLionel Sambuc #define ARGP_IF_OP                      ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_TERMARG,       ARGP_TERMLIST)
121433d6423SLionel Sambuc #define ARGP_INCREMENT_OP               ARGP_LIST1 (ARGP_SUPERNAME)
122433d6423SLionel Sambuc #define ARGP_INDEX_FIELD_OP             ARGP_LIST5 (ARGP_PKGLENGTH,  ARGP_NAMESTRING,    ARGP_NAMESTRING,ARGP_BYTEDATA,  ARGP_FIELDLIST)
123433d6423SLionel Sambuc #define ARGP_INDEX_OP                   ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
124433d6423SLionel Sambuc #define ARGP_LAND_OP                    ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
125433d6423SLionel Sambuc #define ARGP_LEQUAL_OP                  ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
126433d6423SLionel Sambuc #define ARGP_LGREATER_OP                ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
127433d6423SLionel Sambuc #define ARGP_LGREATEREQUAL_OP           ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
128433d6423SLionel Sambuc #define ARGP_LLESS_OP                   ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
129433d6423SLionel Sambuc #define ARGP_LLESSEQUAL_OP              ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
130433d6423SLionel Sambuc #define ARGP_LNOT_OP                    ARGP_LIST1 (ARGP_TERMARG)
131433d6423SLionel Sambuc #define ARGP_LNOTEQUAL_OP               ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
132433d6423SLionel Sambuc #define ARGP_LOAD_OP                    ARGP_LIST2 (ARGP_NAMESTRING, ARGP_SUPERNAME)
133433d6423SLionel Sambuc #define ARGP_LOAD_TABLE_OP              ARGP_LIST6 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TERMARG,   ARGP_TERMARG,  ARGP_TERMARG,   ARGP_TERMARG)
134433d6423SLionel Sambuc #define ARGP_LOCAL0                     ARG_NONE
135433d6423SLionel Sambuc #define ARGP_LOCAL1                     ARG_NONE
136433d6423SLionel Sambuc #define ARGP_LOCAL2                     ARG_NONE
137433d6423SLionel Sambuc #define ARGP_LOCAL3                     ARG_NONE
138433d6423SLionel Sambuc #define ARGP_LOCAL4                     ARG_NONE
139433d6423SLionel Sambuc #define ARGP_LOCAL5                     ARG_NONE
140433d6423SLionel Sambuc #define ARGP_LOCAL6                     ARG_NONE
141433d6423SLionel Sambuc #define ARGP_LOCAL7                     ARG_NONE
142433d6423SLionel Sambuc #define ARGP_LOR_OP                     ARGP_LIST2 (ARGP_TERMARG,    ARGP_TERMARG)
143433d6423SLionel Sambuc #define ARGP_MATCH_OP                   ARGP_LIST6 (ARGP_TERMARG,    ARGP_BYTEDATA,      ARGP_TERMARG,   ARGP_BYTEDATA,  ARGP_TERMARG,   ARGP_TERMARG)
144433d6423SLionel Sambuc #define ARGP_METHOD_OP                  ARGP_LIST4 (ARGP_PKGLENGTH,  ARGP_NAME,          ARGP_BYTEDATA,  ARGP_TERMLIST)
145433d6423SLionel Sambuc #define ARGP_METHODCALL_OP              ARGP_LIST1 (ARGP_NAMESTRING)
146433d6423SLionel Sambuc #define ARGP_MID_OP                     ARGP_LIST4 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TERMARG,   ARGP_TARGET)
147433d6423SLionel Sambuc #define ARGP_MOD_OP                     ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
148433d6423SLionel Sambuc #define ARGP_MULTIPLY_OP                ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
149433d6423SLionel Sambuc #define ARGP_MUTEX_OP                   ARGP_LIST2 (ARGP_NAME,       ARGP_BYTEDATA)
150433d6423SLionel Sambuc #define ARGP_NAME_OP                    ARGP_LIST2 (ARGP_NAME,       ARGP_DATAOBJ)
151433d6423SLionel Sambuc #define ARGP_NAMEDFIELD_OP              ARGP_LIST1 (ARGP_NAMESTRING)
152433d6423SLionel Sambuc #define ARGP_NAMEPATH_OP                ARGP_LIST1 (ARGP_NAMESTRING)
153433d6423SLionel Sambuc #define ARGP_NOOP_OP                    ARG_NONE
154433d6423SLionel Sambuc #define ARGP_NOTIFY_OP                  ARGP_LIST2 (ARGP_SUPERNAME,  ARGP_TERMARG)
155433d6423SLionel Sambuc #define ARGP_ONE_OP                     ARG_NONE
156433d6423SLionel Sambuc #define ARGP_ONES_OP                    ARG_NONE
157433d6423SLionel Sambuc #define ARGP_PACKAGE_OP                 ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_BYTEDATA,      ARGP_DATAOBJLIST)
158433d6423SLionel Sambuc #define ARGP_POWER_RES_OP               ARGP_LIST5 (ARGP_PKGLENGTH,  ARGP_NAME,          ARGP_BYTEDATA,  ARGP_WORDDATA,  ARGP_OBJLIST)
159433d6423SLionel Sambuc #define ARGP_PROCESSOR_OP               ARGP_LIST6 (ARGP_PKGLENGTH,  ARGP_NAME,          ARGP_BYTEDATA,  ARGP_DWORDDATA, ARGP_BYTEDATA,  ARGP_OBJLIST)
160433d6423SLionel Sambuc #define ARGP_QWORD_OP                   ARGP_LIST1 (ARGP_QWORDDATA)
161433d6423SLionel Sambuc #define ARGP_REF_OF_OP                  ARGP_LIST1 (ARGP_SUPERNAME)
162433d6423SLionel Sambuc #define ARGP_REGION_OP                  ARGP_LIST4 (ARGP_NAME,       ARGP_BYTEDATA,      ARGP_TERMARG,   ARGP_TERMARG)
163433d6423SLionel Sambuc #define ARGP_RELEASE_OP                 ARGP_LIST1 (ARGP_SUPERNAME)
164433d6423SLionel Sambuc #define ARGP_RESERVEDFIELD_OP           ARGP_LIST1 (ARGP_NAMESTRING)
165433d6423SLionel Sambuc #define ARGP_RESET_OP                   ARGP_LIST1 (ARGP_SUPERNAME)
166433d6423SLionel Sambuc #define ARGP_RETURN_OP                  ARGP_LIST1 (ARGP_TERMARG)
167433d6423SLionel Sambuc #define ARGP_REVISION_OP                ARG_NONE
168433d6423SLionel Sambuc #define ARGP_SCOPE_OP                   ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_NAME,          ARGP_TERMLIST)
169*29492bb7SDavid van Moolenbroek #define ARGP_SERIALFIELD_OP             ARGP_LIST1 (ARGP_NAMESTRING)
170433d6423SLionel Sambuc #define ARGP_SHIFT_LEFT_OP              ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
171433d6423SLionel Sambuc #define ARGP_SHIFT_RIGHT_OP             ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
172433d6423SLionel Sambuc #define ARGP_SIGNAL_OP                  ARGP_LIST1 (ARGP_SUPERNAME)
173433d6423SLionel Sambuc #define ARGP_SIZE_OF_OP                 ARGP_LIST1 (ARGP_SUPERNAME)
174433d6423SLionel Sambuc #define ARGP_SLEEP_OP                   ARGP_LIST1 (ARGP_TERMARG)
175433d6423SLionel Sambuc #define ARGP_STALL_OP                   ARGP_LIST1 (ARGP_TERMARG)
176433d6423SLionel Sambuc #define ARGP_STATICSTRING_OP            ARGP_LIST1 (ARGP_NAMESTRING)
177433d6423SLionel Sambuc #define ARGP_STORE_OP                   ARGP_LIST2 (ARGP_TERMARG,    ARGP_SUPERNAME)
178433d6423SLionel Sambuc #define ARGP_STRING_OP                  ARGP_LIST1 (ARGP_CHARLIST)
179433d6423SLionel Sambuc #define ARGP_SUBTRACT_OP                ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
180433d6423SLionel Sambuc #define ARGP_THERMAL_ZONE_OP            ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_NAME,          ARGP_OBJLIST)
181433d6423SLionel Sambuc #define ARGP_TIMER_OP                   ARG_NONE
182433d6423SLionel Sambuc #define ARGP_TO_BCD_OP                  ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
183433d6423SLionel Sambuc #define ARGP_TO_BUFFER_OP               ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
184433d6423SLionel Sambuc #define ARGP_TO_DEC_STR_OP              ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
185433d6423SLionel Sambuc #define ARGP_TO_HEX_STR_OP              ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
186433d6423SLionel Sambuc #define ARGP_TO_INTEGER_OP              ARGP_LIST2 (ARGP_TERMARG,    ARGP_TARGET)
187433d6423SLionel Sambuc #define ARGP_TO_STRING_OP               ARGP_LIST3 (ARGP_TERMARG,    ARGP_TERMARG,       ARGP_TARGET)
188433d6423SLionel Sambuc #define ARGP_TYPE_OP                    ARGP_LIST1 (ARGP_SUPERNAME)
189433d6423SLionel Sambuc #define ARGP_UNLOAD_OP                  ARGP_LIST1 (ARGP_SUPERNAME)
190433d6423SLionel Sambuc #define ARGP_VAR_PACKAGE_OP             ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_TERMARG,       ARGP_DATAOBJLIST)
191433d6423SLionel Sambuc #define ARGP_WAIT_OP                    ARGP_LIST2 (ARGP_SUPERNAME,  ARGP_TERMARG)
192433d6423SLionel Sambuc #define ARGP_WHILE_OP                   ARGP_LIST3 (ARGP_PKGLENGTH,  ARGP_TERMARG,       ARGP_TERMLIST)
193433d6423SLionel Sambuc #define ARGP_WORD_OP                    ARGP_LIST1 (ARGP_WORDDATA)
194433d6423SLionel Sambuc #define ARGP_ZERO_OP                    ARG_NONE
195433d6423SLionel Sambuc 
196433d6423SLionel Sambuc 
197433d6423SLionel Sambuc /*
198433d6423SLionel Sambuc  * All AML opcodes and the runtime arguments for each. Used by the AML
199433d6423SLionel Sambuc  * interpreter  Each list is compressed into a 32-bit number and stored
200433d6423SLionel Sambuc  * in the master opcode table (in psopcode.c).
201433d6423SLionel Sambuc  *
202433d6423SLionel Sambuc  * (Used by PrepOperands procedure and the ASL Compiler)
203433d6423SLionel Sambuc  */
204433d6423SLionel Sambuc #define ARGI_ACCESSFIELD_OP             ARGI_INVALID_OPCODE
205433d6423SLionel Sambuc #define ARGI_ACQUIRE_OP                 ARGI_LIST2 (ARGI_MUTEX,      ARGI_INTEGER)
206433d6423SLionel Sambuc #define ARGI_ADD_OP                     ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
207433d6423SLionel Sambuc #define ARGI_ALIAS_OP                   ARGI_INVALID_OPCODE
208433d6423SLionel Sambuc #define ARGI_ARG0                       ARG_NONE
209433d6423SLionel Sambuc #define ARGI_ARG1                       ARG_NONE
210433d6423SLionel Sambuc #define ARGI_ARG2                       ARG_NONE
211433d6423SLionel Sambuc #define ARGI_ARG3                       ARG_NONE
212433d6423SLionel Sambuc #define ARGI_ARG4                       ARG_NONE
213433d6423SLionel Sambuc #define ARGI_ARG5                       ARG_NONE
214433d6423SLionel Sambuc #define ARGI_ARG6                       ARG_NONE
215433d6423SLionel Sambuc #define ARGI_BANK_FIELD_OP              ARGI_INVALID_OPCODE
216433d6423SLionel Sambuc #define ARGI_BIT_AND_OP                 ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
217433d6423SLionel Sambuc #define ARGI_BIT_NAND_OP                ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
218433d6423SLionel Sambuc #define ARGI_BIT_NOR_OP                 ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
219433d6423SLionel Sambuc #define ARGI_BIT_NOT_OP                 ARGI_LIST2 (ARGI_INTEGER,    ARGI_TARGETREF)
220433d6423SLionel Sambuc #define ARGI_BIT_OR_OP                  ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
221433d6423SLionel Sambuc #define ARGI_BIT_XOR_OP                 ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
222433d6423SLionel Sambuc #define ARGI_BREAK_OP                   ARG_NONE
223433d6423SLionel Sambuc #define ARGI_BREAK_POINT_OP             ARG_NONE
224433d6423SLionel Sambuc #define ARGI_BUFFER_OP                  ARGI_LIST1 (ARGI_INTEGER)
225433d6423SLionel Sambuc #define ARGI_BYTE_OP                    ARGI_INVALID_OPCODE
226433d6423SLionel Sambuc #define ARGI_BYTELIST_OP                ARGI_INVALID_OPCODE
227433d6423SLionel Sambuc #define ARGI_CONCAT_OP                  ARGI_LIST3 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA,   ARGI_TARGETREF)
228433d6423SLionel Sambuc #define ARGI_CONCAT_RES_OP              ARGI_LIST3 (ARGI_BUFFER,     ARGI_BUFFER,        ARGI_TARGETREF)
229433d6423SLionel Sambuc #define ARGI_COND_REF_OF_OP             ARGI_LIST2 (ARGI_OBJECT_REF, ARGI_TARGETREF)
230*29492bb7SDavid van Moolenbroek #define ARGI_CONNECTFIELD_OP            ARGI_INVALID_OPCODE
231433d6423SLionel Sambuc #define ARGI_CONTINUE_OP                ARGI_INVALID_OPCODE
232433d6423SLionel Sambuc #define ARGI_COPY_OP                    ARGI_LIST2 (ARGI_ANYTYPE,    ARGI_SIMPLE_TARGET)
233433d6423SLionel Sambuc #define ARGI_CREATE_BIT_FIELD_OP        ARGI_LIST3 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_REFERENCE)
234433d6423SLionel Sambuc #define ARGI_CREATE_BYTE_FIELD_OP       ARGI_LIST3 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_REFERENCE)
235433d6423SLionel Sambuc #define ARGI_CREATE_DWORD_FIELD_OP      ARGI_LIST3 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_REFERENCE)
236433d6423SLionel Sambuc #define ARGI_CREATE_FIELD_OP            ARGI_LIST4 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_INTEGER,      ARGI_REFERENCE)
237433d6423SLionel Sambuc #define ARGI_CREATE_QWORD_FIELD_OP      ARGI_LIST3 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_REFERENCE)
238433d6423SLionel Sambuc #define ARGI_CREATE_WORD_FIELD_OP       ARGI_LIST3 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_REFERENCE)
239433d6423SLionel Sambuc #define ARGI_DATA_REGION_OP             ARGI_LIST3 (ARGI_STRING,     ARGI_STRING,        ARGI_STRING)
240433d6423SLionel Sambuc #define ARGI_DEBUG_OP                   ARG_NONE
241433d6423SLionel Sambuc #define ARGI_DECREMENT_OP               ARGI_LIST1 (ARGI_TARGETREF)
242433d6423SLionel Sambuc #define ARGI_DEREF_OF_OP                ARGI_LIST1 (ARGI_REF_OR_STRING)
243433d6423SLionel Sambuc #define ARGI_DEVICE_OP                  ARGI_INVALID_OPCODE
244433d6423SLionel Sambuc #define ARGI_DIVIDE_OP                  ARGI_LIST4 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF,    ARGI_TARGETREF)
245433d6423SLionel Sambuc #define ARGI_DWORD_OP                   ARGI_INVALID_OPCODE
246433d6423SLionel Sambuc #define ARGI_ELSE_OP                    ARGI_INVALID_OPCODE
247433d6423SLionel Sambuc #define ARGI_EVENT_OP                   ARGI_INVALID_OPCODE
248433d6423SLionel Sambuc #define ARGI_FATAL_OP                   ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_INTEGER)
249433d6423SLionel Sambuc #define ARGI_FIELD_OP                   ARGI_INVALID_OPCODE
250433d6423SLionel Sambuc #define ARGI_FIND_SET_LEFT_BIT_OP       ARGI_LIST2 (ARGI_INTEGER,    ARGI_TARGETREF)
251433d6423SLionel Sambuc #define ARGI_FIND_SET_RIGHT_BIT_OP      ARGI_LIST2 (ARGI_INTEGER,    ARGI_TARGETREF)
252433d6423SLionel Sambuc #define ARGI_FROM_BCD_OP                ARGI_LIST2 (ARGI_INTEGER,    ARGI_FIXED_TARGET)
253433d6423SLionel Sambuc #define ARGI_IF_OP                      ARGI_INVALID_OPCODE
254433d6423SLionel Sambuc #define ARGI_INCREMENT_OP               ARGI_LIST1 (ARGI_TARGETREF)
255433d6423SLionel Sambuc #define ARGI_INDEX_FIELD_OP             ARGI_INVALID_OPCODE
256433d6423SLionel Sambuc #define ARGI_INDEX_OP                   ARGI_LIST3 (ARGI_COMPLEXOBJ, ARGI_INTEGER,       ARGI_TARGETREF)
257433d6423SLionel Sambuc #define ARGI_LAND_OP                    ARGI_LIST2 (ARGI_INTEGER,    ARGI_INTEGER)
258433d6423SLionel Sambuc #define ARGI_LEQUAL_OP                  ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
259433d6423SLionel Sambuc #define ARGI_LGREATER_OP                ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
260433d6423SLionel Sambuc #define ARGI_LGREATEREQUAL_OP           ARGI_INVALID_OPCODE
261433d6423SLionel Sambuc #define ARGI_LLESS_OP                   ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
262433d6423SLionel Sambuc #define ARGI_LLESSEQUAL_OP              ARGI_INVALID_OPCODE
263433d6423SLionel Sambuc #define ARGI_LNOT_OP                    ARGI_LIST1 (ARGI_INTEGER)
264433d6423SLionel Sambuc #define ARGI_LNOTEQUAL_OP               ARGI_INVALID_OPCODE
265433d6423SLionel Sambuc #define ARGI_LOAD_OP                    ARGI_LIST2 (ARGI_REGION_OR_BUFFER,ARGI_TARGETREF)
266433d6423SLionel Sambuc #define ARGI_LOAD_TABLE_OP              ARGI_LIST6 (ARGI_STRING,     ARGI_STRING,        ARGI_STRING,       ARGI_STRING,    ARGI_STRING, ARGI_ANYTYPE)
267433d6423SLionel Sambuc #define ARGI_LOCAL0                     ARG_NONE
268433d6423SLionel Sambuc #define ARGI_LOCAL1                     ARG_NONE
269433d6423SLionel Sambuc #define ARGI_LOCAL2                     ARG_NONE
270433d6423SLionel Sambuc #define ARGI_LOCAL3                     ARG_NONE
271433d6423SLionel Sambuc #define ARGI_LOCAL4                     ARG_NONE
272433d6423SLionel Sambuc #define ARGI_LOCAL5                     ARG_NONE
273433d6423SLionel Sambuc #define ARGI_LOCAL6                     ARG_NONE
274433d6423SLionel Sambuc #define ARGI_LOCAL7                     ARG_NONE
275433d6423SLionel Sambuc #define ARGI_LOR_OP                     ARGI_LIST2 (ARGI_INTEGER,    ARGI_INTEGER)
276433d6423SLionel Sambuc #define ARGI_MATCH_OP                   ARGI_LIST6 (ARGI_PACKAGE,    ARGI_INTEGER,   ARGI_COMPUTEDATA,      ARGI_INTEGER,ARGI_COMPUTEDATA,ARGI_INTEGER)
277433d6423SLionel Sambuc #define ARGI_METHOD_OP                  ARGI_INVALID_OPCODE
278433d6423SLionel Sambuc #define ARGI_METHODCALL_OP              ARGI_INVALID_OPCODE
279433d6423SLionel Sambuc #define ARGI_MID_OP                     ARGI_LIST4 (ARGI_BUFFER_OR_STRING,ARGI_INTEGER,  ARGI_INTEGER,      ARGI_TARGETREF)
280433d6423SLionel Sambuc #define ARGI_MOD_OP                     ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
281433d6423SLionel Sambuc #define ARGI_MULTIPLY_OP                ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
282433d6423SLionel Sambuc #define ARGI_MUTEX_OP                   ARGI_INVALID_OPCODE
283433d6423SLionel Sambuc #define ARGI_NAME_OP                    ARGI_INVALID_OPCODE
284433d6423SLionel Sambuc #define ARGI_NAMEDFIELD_OP              ARGI_INVALID_OPCODE
285433d6423SLionel Sambuc #define ARGI_NAMEPATH_OP                ARGI_INVALID_OPCODE
286433d6423SLionel Sambuc #define ARGI_NOOP_OP                    ARG_NONE
287433d6423SLionel Sambuc #define ARGI_NOTIFY_OP                  ARGI_LIST2 (ARGI_DEVICE_REF, ARGI_INTEGER)
288433d6423SLionel Sambuc #define ARGI_ONE_OP                     ARG_NONE
289433d6423SLionel Sambuc #define ARGI_ONES_OP                    ARG_NONE
290433d6423SLionel Sambuc #define ARGI_PACKAGE_OP                 ARGI_LIST1 (ARGI_INTEGER)
291433d6423SLionel Sambuc #define ARGI_POWER_RES_OP               ARGI_INVALID_OPCODE
292433d6423SLionel Sambuc #define ARGI_PROCESSOR_OP               ARGI_INVALID_OPCODE
293433d6423SLionel Sambuc #define ARGI_QWORD_OP                   ARGI_INVALID_OPCODE
294433d6423SLionel Sambuc #define ARGI_REF_OF_OP                  ARGI_LIST1 (ARGI_OBJECT_REF)
295433d6423SLionel Sambuc #define ARGI_REGION_OP                  ARGI_LIST2 (ARGI_INTEGER,    ARGI_INTEGER)
296433d6423SLionel Sambuc #define ARGI_RELEASE_OP                 ARGI_LIST1 (ARGI_MUTEX)
297433d6423SLionel Sambuc #define ARGI_RESERVEDFIELD_OP           ARGI_INVALID_OPCODE
298433d6423SLionel Sambuc #define ARGI_RESET_OP                   ARGI_LIST1 (ARGI_EVENT)
299433d6423SLionel Sambuc #define ARGI_RETURN_OP                  ARGI_INVALID_OPCODE
300433d6423SLionel Sambuc #define ARGI_REVISION_OP                ARG_NONE
301433d6423SLionel Sambuc #define ARGI_SCOPE_OP                   ARGI_INVALID_OPCODE
302*29492bb7SDavid van Moolenbroek #define ARGI_SERIALFIELD_OP             ARGI_INVALID_OPCODE
303433d6423SLionel Sambuc #define ARGI_SHIFT_LEFT_OP              ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
304433d6423SLionel Sambuc #define ARGI_SHIFT_RIGHT_OP             ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
305433d6423SLionel Sambuc #define ARGI_SIGNAL_OP                  ARGI_LIST1 (ARGI_EVENT)
306433d6423SLionel Sambuc #define ARGI_SIZE_OF_OP                 ARGI_LIST1 (ARGI_DATAOBJECT)
307433d6423SLionel Sambuc #define ARGI_SLEEP_OP                   ARGI_LIST1 (ARGI_INTEGER)
308433d6423SLionel Sambuc #define ARGI_STALL_OP                   ARGI_LIST1 (ARGI_INTEGER)
309433d6423SLionel Sambuc #define ARGI_STATICSTRING_OP            ARGI_INVALID_OPCODE
310433d6423SLionel Sambuc #define ARGI_STORE_OP                   ARGI_LIST2 (ARGI_DATAREFOBJ, ARGI_TARGETREF)
311433d6423SLionel Sambuc #define ARGI_STRING_OP                  ARGI_INVALID_OPCODE
312433d6423SLionel Sambuc #define ARGI_SUBTRACT_OP                ARGI_LIST3 (ARGI_INTEGER,    ARGI_INTEGER,       ARGI_TARGETREF)
313433d6423SLionel Sambuc #define ARGI_THERMAL_ZONE_OP            ARGI_INVALID_OPCODE
314433d6423SLionel Sambuc #define ARGI_TIMER_OP                   ARG_NONE
315433d6423SLionel Sambuc #define ARGI_TO_BCD_OP                  ARGI_LIST2 (ARGI_INTEGER,    ARGI_FIXED_TARGET)
316433d6423SLionel Sambuc #define ARGI_TO_BUFFER_OP               ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
317433d6423SLionel Sambuc #define ARGI_TO_DEC_STR_OP              ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
318433d6423SLionel Sambuc #define ARGI_TO_HEX_STR_OP              ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
319433d6423SLionel Sambuc #define ARGI_TO_INTEGER_OP              ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
320433d6423SLionel Sambuc #define ARGI_TO_STRING_OP               ARGI_LIST3 (ARGI_BUFFER,     ARGI_INTEGER,       ARGI_FIXED_TARGET)
321433d6423SLionel Sambuc #define ARGI_TYPE_OP                    ARGI_LIST1 (ARGI_ANYTYPE)
322433d6423SLionel Sambuc #define ARGI_UNLOAD_OP                  ARGI_LIST1 (ARGI_DDBHANDLE)
323433d6423SLionel Sambuc #define ARGI_VAR_PACKAGE_OP             ARGI_LIST1 (ARGI_INTEGER)
324433d6423SLionel Sambuc #define ARGI_WAIT_OP                    ARGI_LIST2 (ARGI_EVENT,      ARGI_INTEGER)
325433d6423SLionel Sambuc #define ARGI_WHILE_OP                   ARGI_INVALID_OPCODE
326433d6423SLionel Sambuc #define ARGI_WORD_OP                    ARGI_INVALID_OPCODE
327433d6423SLionel Sambuc #define ARGI_ZERO_OP                    ARG_NONE
328433d6423SLionel Sambuc 
329433d6423SLionel Sambuc #endif /* __ACOPCODE_H__ */
330