acopcode.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. /******************************************************************************
  2. *
  3. * Name: acopcode.h - AML opcode information for the AML parser and interpreter
  4. *
  5. *****************************************************************************/
  6. /*
  7. * Copyright (C) 2000 - 2015, Intel Corp.
  8. * All rights reserved.
  9. *
  10. * Redistribution and use in source and binary forms, with or without
  11. * modification, are permitted provided that the following conditions
  12. * are met:
  13. * 1. Redistributions of source code must retain the above copyright
  14. * notice, this list of conditions, and the following disclaimer,
  15. * without modification.
  16. * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  17. * substantially similar to the "NO WARRANTY" disclaimer below
  18. * ("Disclaimer") and any redistribution must be conditioned upon
  19. * including a substantially similar Disclaimer requirement for further
  20. * binary redistribution.
  21. * 3. Neither the names of the above-listed copyright holders nor the names
  22. * of any contributors may be used to endorse or promote products derived
  23. * from this software without specific prior written permission.
  24. *
  25. * Alternatively, this software may be distributed under the terms of the
  26. * GNU General Public License ("GPL") version 2 as published by the Free
  27. * Software Foundation.
  28. *
  29. * NO WARRANTY
  30. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  31. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  32. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  33. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  34. * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  35. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  36. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  37. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  38. * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  39. * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  40. * POSSIBILITY OF SUCH DAMAGES.
  41. */
  42. #ifndef __ACOPCODE_H__
  43. #define __ACOPCODE_H__
  44. #define MAX_EXTENDED_OPCODE 0x88
  45. #define NUM_EXTENDED_OPCODE (MAX_EXTENDED_OPCODE + 1)
  46. #define MAX_INTERNAL_OPCODE
  47. #define NUM_INTERNAL_OPCODE (MAX_INTERNAL_OPCODE + 1)
  48. /* Used for non-assigned opcodes */
  49. #define _UNK 0x6B
  50. /*
  51. * Reserved ASCII characters. Do not use any of these for
  52. * internal opcodes, since they are used to differentiate
  53. * name strings from AML opcodes
  54. */
  55. #define _ASC 0x6C
  56. #define _NAM 0x6C
  57. #define _PFX 0x6D
  58. /*
  59. * All AML opcodes and the parse-time arguments for each. Used by the AML
  60. * parser Each list is compressed into a 32-bit number and stored in the
  61. * master opcode table (in psopcode.c).
  62. */
  63. #define ARGP_ACCESSFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
  64. #define ARGP_ACQUIRE_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_WORDDATA)
  65. #define ARGP_ADD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  66. #define ARGP_ALIAS_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_NAME)
  67. #define ARGP_ARG0 ARG_NONE
  68. #define ARGP_ARG1 ARG_NONE
  69. #define ARGP_ARG2 ARG_NONE
  70. #define ARGP_ARG3 ARG_NONE
  71. #define ARGP_ARG4 ARG_NONE
  72. #define ARGP_ARG5 ARG_NONE
  73. #define ARGP_ARG6 ARG_NONE
  74. #define ARGP_BANK_FIELD_OP ARGP_LIST6 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_NAMESTRING,ARGP_TERMARG, ARGP_BYTEDATA, ARGP_FIELDLIST)
  75. #define ARGP_BIT_AND_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  76. #define ARGP_BIT_NAND_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  77. #define ARGP_BIT_NOR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  78. #define ARGP_BIT_NOT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  79. #define ARGP_BIT_OR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  80. #define ARGP_BIT_XOR_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  81. #define ARGP_BREAK_OP ARG_NONE
  82. #define ARGP_BREAK_POINT_OP ARG_NONE
  83. #define ARGP_BUFFER_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_BYTELIST)
  84. #define ARGP_BYTE_OP ARGP_LIST1 (ARGP_BYTEDATA)
  85. #define ARGP_BYTELIST_OP ARGP_LIST1 (ARGP_NAMESTRING)
  86. #define ARGP_CONCAT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  87. #define ARGP_CONCAT_RES_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  88. #define ARGP_COND_REF_OF_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_SUPERNAME)
  89. #define ARGP_CONNECTFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
  90. #define ARGP_CONTINUE_OP ARG_NONE
  91. #define ARGP_COPY_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SIMPLENAME)
  92. #define ARGP_CREATE_BIT_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
  93. #define ARGP_CREATE_BYTE_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
  94. #define ARGP_CREATE_DWORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
  95. #define ARGP_CREATE_FIELD_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
  96. #define ARGP_CREATE_QWORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
  97. #define ARGP_CREATE_WORD_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
  98. #define ARGP_DATA_REGION_OP ARGP_LIST4 (ARGP_NAME, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG)
  99. #define ARGP_DEBUG_OP ARG_NONE
  100. #define ARGP_DECREMENT_OP ARGP_LIST1 (ARGP_SUPERNAME)
  101. #define ARGP_DEREF_OF_OP ARGP_LIST1 (ARGP_TERMARG)
  102. #define ARGP_DEVICE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_OBJLIST)
  103. #define ARGP_DIVIDE_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET, ARGP_TARGET)
  104. #define ARGP_DWORD_OP ARGP_LIST1 (ARGP_DWORDDATA)
  105. #define ARGP_ELSE_OP ARGP_LIST2 (ARGP_PKGLENGTH, ARGP_TERMLIST)
  106. #define ARGP_EVENT_OP ARGP_LIST1 (ARGP_NAME)
  107. #define ARGP_EXTERNAL_OP ARGP_LIST3 (ARGP_NAMESTRING, ARGP_BYTEDATA, ARGP_BYTEDATA)
  108. #define ARGP_FATAL_OP ARGP_LIST3 (ARGP_BYTEDATA, ARGP_DWORDDATA, ARGP_TERMARG)
  109. #define ARGP_FIELD_OP ARGP_LIST4 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_BYTEDATA, ARGP_FIELDLIST)
  110. #define ARGP_FIND_SET_LEFT_BIT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  111. #define ARGP_FIND_SET_RIGHT_BIT_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  112. #define ARGP_FROM_BCD_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  113. #define ARGP_IF_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_TERMLIST)
  114. #define ARGP_INCREMENT_OP ARGP_LIST1 (ARGP_SUPERNAME)
  115. #define ARGP_INDEX_FIELD_OP ARGP_LIST5 (ARGP_PKGLENGTH, ARGP_NAMESTRING, ARGP_NAMESTRING,ARGP_BYTEDATA, ARGP_FIELDLIST)
  116. #define ARGP_INDEX_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  117. #define ARGP_LAND_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  118. #define ARGP_LEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  119. #define ARGP_LGREATER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  120. #define ARGP_LGREATEREQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  121. #define ARGP_LLESS_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  122. #define ARGP_LLESSEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  123. #define ARGP_LNOT_OP ARGP_LIST1 (ARGP_TERMARG)
  124. #define ARGP_LNOTEQUAL_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  125. #define ARGP_LOAD_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_SUPERNAME)
  126. #define ARGP_LOAD_TABLE_OP ARGP_LIST6 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG)
  127. #define ARGP_LOCAL0 ARG_NONE
  128. #define ARGP_LOCAL1 ARG_NONE
  129. #define ARGP_LOCAL2 ARG_NONE
  130. #define ARGP_LOCAL3 ARG_NONE
  131. #define ARGP_LOCAL4 ARG_NONE
  132. #define ARGP_LOCAL5 ARG_NONE
  133. #define ARGP_LOCAL6 ARG_NONE
  134. #define ARGP_LOCAL7 ARG_NONE
  135. #define ARGP_LOR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TERMARG)
  136. #define ARGP_MATCH_OP ARGP_LIST6 (ARGP_TERMARG, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_TERMARG)
  137. #define ARGP_METHOD_OP ARGP_LIST4 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_TERMLIST)
  138. #define ARGP_METHODCALL_OP ARGP_LIST1 (ARGP_NAMESTRING)
  139. #define ARGP_MID_OP ARGP_LIST4 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  140. #define ARGP_MOD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  141. #define ARGP_MULTIPLY_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  142. #define ARGP_MUTEX_OP ARGP_LIST2 (ARGP_NAME, ARGP_BYTEDATA)
  143. #define ARGP_NAME_OP ARGP_LIST2 (ARGP_NAME, ARGP_DATAOBJ)
  144. #define ARGP_NAMEDFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
  145. #define ARGP_NAMEPATH_OP ARGP_LIST1 (ARGP_NAMESTRING)
  146. #define ARGP_NOOP_OP ARG_NONE
  147. #define ARGP_NOTIFY_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_TERMARG)
  148. #define ARGP_ONE_OP ARG_NONE
  149. #define ARGP_ONES_OP ARG_NONE
  150. #define ARGP_PACKAGE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_BYTEDATA, ARGP_DATAOBJLIST)
  151. #define ARGP_POWER_RES_OP ARGP_LIST5 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_WORDDATA, ARGP_OBJLIST)
  152. #define ARGP_PROCESSOR_OP ARGP_LIST6 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_BYTEDATA, ARGP_DWORDDATA, ARGP_BYTEDATA, ARGP_OBJLIST)
  153. #define ARGP_QWORD_OP ARGP_LIST1 (ARGP_QWORDDATA)
  154. #define ARGP_REF_OF_OP ARGP_LIST1 (ARGP_SUPERNAME)
  155. #define ARGP_REGION_OP ARGP_LIST4 (ARGP_NAME, ARGP_BYTEDATA, ARGP_TERMARG, ARGP_TERMARG)
  156. #define ARGP_RELEASE_OP ARGP_LIST1 (ARGP_SUPERNAME)
  157. #define ARGP_RESERVEDFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
  158. #define ARGP_RESET_OP ARGP_LIST1 (ARGP_SUPERNAME)
  159. #define ARGP_RETURN_OP ARGP_LIST1 (ARGP_TERMARG)
  160. #define ARGP_REVISION_OP ARG_NONE
  161. #define ARGP_SCOPE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_TERMLIST)
  162. #define ARGP_SERIALFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
  163. #define ARGP_SHIFT_LEFT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  164. #define ARGP_SHIFT_RIGHT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  165. #define ARGP_SIGNAL_OP ARGP_LIST1 (ARGP_SUPERNAME)
  166. #define ARGP_SIZE_OF_OP ARGP_LIST1 (ARGP_SUPERNAME)
  167. #define ARGP_SLEEP_OP ARGP_LIST1 (ARGP_TERMARG)
  168. #define ARGP_STALL_OP ARGP_LIST1 (ARGP_TERMARG)
  169. #define ARGP_STATICSTRING_OP ARGP_LIST1 (ARGP_NAMESTRING)
  170. #define ARGP_STORE_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SUPERNAME)
  171. #define ARGP_STRING_OP ARGP_LIST1 (ARGP_CHARLIST)
  172. #define ARGP_SUBTRACT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  173. #define ARGP_THERMAL_ZONE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_OBJLIST)
  174. #define ARGP_TIMER_OP ARG_NONE
  175. #define ARGP_TO_BCD_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  176. #define ARGP_TO_BUFFER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  177. #define ARGP_TO_DEC_STR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  178. #define ARGP_TO_HEX_STR_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  179. #define ARGP_TO_INTEGER_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_TARGET)
  180. #define ARGP_TO_STRING_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
  181. #define ARGP_TYPE_OP ARGP_LIST1 (ARGP_SUPERNAME)
  182. #define ARGP_UNLOAD_OP ARGP_LIST1 (ARGP_SUPERNAME)
  183. #define ARGP_VAR_PACKAGE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_DATAOBJLIST)
  184. #define ARGP_WAIT_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_TERMARG)
  185. #define ARGP_WHILE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_TERMARG, ARGP_TERMLIST)
  186. #define ARGP_WORD_OP ARGP_LIST1 (ARGP_WORDDATA)
  187. #define ARGP_ZERO_OP ARG_NONE
  188. /*
  189. * All AML opcodes and the runtime arguments for each. Used by the AML
  190. * interpreter Each list is compressed into a 32-bit number and stored
  191. * in the master opcode table (in psopcode.c).
  192. *
  193. * (Used by prep_operands procedure and the ASL Compiler)
  194. */
  195. #define ARGI_ACCESSFIELD_OP ARGI_INVALID_OPCODE
  196. #define ARGI_ACQUIRE_OP ARGI_LIST2 (ARGI_MUTEX, ARGI_INTEGER)
  197. #define ARGI_ADD_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  198. #define ARGI_ALIAS_OP ARGI_INVALID_OPCODE
  199. #define ARGI_ARG0 ARG_NONE
  200. #define ARGI_ARG1 ARG_NONE
  201. #define ARGI_ARG2 ARG_NONE
  202. #define ARGI_ARG3 ARG_NONE
  203. #define ARGI_ARG4 ARG_NONE
  204. #define ARGI_ARG5 ARG_NONE
  205. #define ARGI_ARG6 ARG_NONE
  206. #define ARGI_BANK_FIELD_OP ARGI_LIST1 (ARGI_INTEGER)
  207. #define ARGI_BIT_AND_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  208. #define ARGI_BIT_NAND_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  209. #define ARGI_BIT_NOR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  210. #define ARGI_BIT_NOT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
  211. #define ARGI_BIT_OR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  212. #define ARGI_BIT_XOR_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  213. #define ARGI_BREAK_OP ARG_NONE
  214. #define ARGI_BREAK_POINT_OP ARG_NONE
  215. #define ARGI_BUFFER_OP ARGI_LIST1 (ARGI_INTEGER)
  216. #define ARGI_BYTE_OP ARGI_INVALID_OPCODE
  217. #define ARGI_BYTELIST_OP ARGI_INVALID_OPCODE
  218. #define ARGI_CONCAT_OP ARGI_LIST3 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA, ARGI_TARGETREF)
  219. #define ARGI_CONCAT_RES_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_BUFFER, ARGI_TARGETREF)
  220. #define ARGI_COND_REF_OF_OP ARGI_LIST2 (ARGI_OBJECT_REF, ARGI_TARGETREF)
  221. #define ARGI_CONNECTFIELD_OP ARGI_INVALID_OPCODE
  222. #define ARGI_CONTINUE_OP ARGI_INVALID_OPCODE
  223. #define ARGI_COPY_OP ARGI_LIST2 (ARGI_ANYTYPE, ARGI_SIMPLE_TARGET)
  224. #define ARGI_CREATE_BIT_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
  225. #define ARGI_CREATE_BYTE_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
  226. #define ARGI_CREATE_DWORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
  227. #define ARGI_CREATE_FIELD_OP ARGI_LIST4 (ARGI_BUFFER, ARGI_INTEGER, ARGI_INTEGER, ARGI_REFERENCE)
  228. #define ARGI_CREATE_QWORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
  229. #define ARGI_CREATE_WORD_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
  230. #define ARGI_DATA_REGION_OP ARGI_LIST3 (ARGI_STRING, ARGI_STRING, ARGI_STRING)
  231. #define ARGI_DEBUG_OP ARG_NONE
  232. #define ARGI_DECREMENT_OP ARGI_LIST1 (ARGI_TARGETREF)
  233. #define ARGI_DEREF_OF_OP ARGI_LIST1 (ARGI_REF_OR_STRING)
  234. #define ARGI_DEVICE_OP ARGI_INVALID_OPCODE
  235. #define ARGI_DIVIDE_OP ARGI_LIST4 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF, ARGI_TARGETREF)
  236. #define ARGI_DWORD_OP ARGI_INVALID_OPCODE
  237. #define ARGI_ELSE_OP ARGI_INVALID_OPCODE
  238. #define ARGI_EVENT_OP ARGI_INVALID_OPCODE
  239. #define ARGI_EXTERNAL_OP ARGI_LIST3 (ARGI_STRING, ARGI_INTEGER, ARGI_INTEGER)
  240. #define ARGI_FATAL_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_INTEGER)
  241. #define ARGI_FIELD_OP ARGI_INVALID_OPCODE
  242. #define ARGI_FIND_SET_LEFT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
  243. #define ARGI_FIND_SET_RIGHT_BIT_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_TARGETREF)
  244. #define ARGI_FROM_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET)
  245. #define ARGI_IF_OP ARGI_INVALID_OPCODE
  246. #define ARGI_INCREMENT_OP ARGI_LIST1 (ARGI_TARGETREF)
  247. #define ARGI_INDEX_FIELD_OP ARGI_INVALID_OPCODE
  248. #define ARGI_INDEX_OP ARGI_LIST3 (ARGI_COMPLEXOBJ, ARGI_INTEGER, ARGI_TARGETREF)
  249. #define ARGI_LAND_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
  250. #define ARGI_LEQUAL_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
  251. #define ARGI_LGREATER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
  252. #define ARGI_LGREATEREQUAL_OP ARGI_INVALID_OPCODE
  253. #define ARGI_LLESS_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA)
  254. #define ARGI_LLESSEQUAL_OP ARGI_INVALID_OPCODE
  255. #define ARGI_LNOT_OP ARGI_LIST1 (ARGI_INTEGER)
  256. #define ARGI_LNOTEQUAL_OP ARGI_INVALID_OPCODE
  257. #define ARGI_LOAD_OP ARGI_LIST2 (ARGI_REGION_OR_BUFFER,ARGI_TARGETREF)
  258. #define ARGI_LOAD_TABLE_OP ARGI_LIST6 (ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_STRING, ARGI_ANYTYPE)
  259. #define ARGI_LOCAL0 ARG_NONE
  260. #define ARGI_LOCAL1 ARG_NONE
  261. #define ARGI_LOCAL2 ARG_NONE
  262. #define ARGI_LOCAL3 ARG_NONE
  263. #define ARGI_LOCAL4 ARG_NONE
  264. #define ARGI_LOCAL5 ARG_NONE
  265. #define ARGI_LOCAL6 ARG_NONE
  266. #define ARGI_LOCAL7 ARG_NONE
  267. #define ARGI_LOR_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
  268. #define ARGI_MATCH_OP ARGI_LIST6 (ARGI_PACKAGE, ARGI_INTEGER, ARGI_COMPUTEDATA, ARGI_INTEGER,ARGI_COMPUTEDATA,ARGI_INTEGER)
  269. #define ARGI_METHOD_OP ARGI_INVALID_OPCODE
  270. #define ARGI_METHODCALL_OP ARGI_INVALID_OPCODE
  271. #define ARGI_MID_OP ARGI_LIST4 (ARGI_BUFFER_OR_STRING,ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  272. #define ARGI_MOD_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  273. #define ARGI_MULTIPLY_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  274. #define ARGI_MUTEX_OP ARGI_INVALID_OPCODE
  275. #define ARGI_NAME_OP ARGI_INVALID_OPCODE
  276. #define ARGI_NAMEDFIELD_OP ARGI_INVALID_OPCODE
  277. #define ARGI_NAMEPATH_OP ARGI_INVALID_OPCODE
  278. #define ARGI_NOOP_OP ARG_NONE
  279. #define ARGI_NOTIFY_OP ARGI_LIST2 (ARGI_DEVICE_REF, ARGI_INTEGER)
  280. #define ARGI_ONE_OP ARG_NONE
  281. #define ARGI_ONES_OP ARG_NONE
  282. #define ARGI_PACKAGE_OP ARGI_LIST1 (ARGI_INTEGER)
  283. #define ARGI_POWER_RES_OP ARGI_INVALID_OPCODE
  284. #define ARGI_PROCESSOR_OP ARGI_INVALID_OPCODE
  285. #define ARGI_QWORD_OP ARGI_INVALID_OPCODE
  286. #define ARGI_REF_OF_OP ARGI_LIST1 (ARGI_OBJECT_REF)
  287. #define ARGI_REGION_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_INTEGER)
  288. #define ARGI_RELEASE_OP ARGI_LIST1 (ARGI_MUTEX)
  289. #define ARGI_RESERVEDFIELD_OP ARGI_INVALID_OPCODE
  290. #define ARGI_RESET_OP ARGI_LIST1 (ARGI_EVENT)
  291. #define ARGI_RETURN_OP ARGI_INVALID_OPCODE
  292. #define ARGI_REVISION_OP ARG_NONE
  293. #define ARGI_SCOPE_OP ARGI_INVALID_OPCODE
  294. #define ARGI_SERIALFIELD_OP ARGI_INVALID_OPCODE
  295. #define ARGI_SHIFT_LEFT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  296. #define ARGI_SHIFT_RIGHT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  297. #define ARGI_SIGNAL_OP ARGI_LIST1 (ARGI_EVENT)
  298. #define ARGI_SIZE_OF_OP ARGI_LIST1 (ARGI_DATAOBJECT)
  299. #define ARGI_SLEEP_OP ARGI_LIST1 (ARGI_INTEGER)
  300. #define ARGI_STALL_OP ARGI_LIST1 (ARGI_INTEGER)
  301. #define ARGI_STATICSTRING_OP ARGI_INVALID_OPCODE
  302. #define ARGI_STORE_OP ARGI_LIST2 (ARGI_DATAREFOBJ, ARGI_STORE_TARGET)
  303. #define ARGI_STRING_OP ARGI_INVALID_OPCODE
  304. #define ARGI_SUBTRACT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
  305. #define ARGI_THERMAL_ZONE_OP ARGI_INVALID_OPCODE
  306. #define ARGI_TIMER_OP ARG_NONE
  307. #define ARGI_TO_BCD_OP ARGI_LIST2 (ARGI_INTEGER, ARGI_FIXED_TARGET)
  308. #define ARGI_TO_BUFFER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
  309. #define ARGI_TO_DEC_STR_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
  310. #define ARGI_TO_HEX_STR_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
  311. #define ARGI_TO_INTEGER_OP ARGI_LIST2 (ARGI_COMPUTEDATA,ARGI_FIXED_TARGET)
  312. #define ARGI_TO_STRING_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_FIXED_TARGET)
  313. #define ARGI_TYPE_OP ARGI_LIST1 (ARGI_ANYTYPE)
  314. #define ARGI_UNLOAD_OP ARGI_LIST1 (ARGI_DDBHANDLE)
  315. #define ARGI_VAR_PACKAGE_OP ARGI_LIST1 (ARGI_INTEGER)
  316. #define ARGI_WAIT_OP ARGI_LIST2 (ARGI_EVENT, ARGI_INTEGER)
  317. #define ARGI_WHILE_OP ARGI_INVALID_OPCODE
  318. #define ARGI_WORD_OP ARGI_INVALID_OPCODE
  319. #define ARGI_ZERO_OP ARG_NONE
  320. #endif /* __ACOPCODE_H__ */