Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

759 lines
42 KiB

  1. /*++
  2. Copyright (c) 1997 Microsoft Corporation
  3. Module Name:
  4. data.c
  5. Abstract:
  6. This file contains all of the data required by the unassembler
  7. Author:
  8. Based on code by Mike Tsang (MikeTs)
  9. Stephane Plante (Splante)
  10. Environment:
  11. User mode only
  12. Revision History:
  13. --*/
  14. #include "pch.h"
  15. //
  16. // N: NameStr
  17. // O: DataObj (num, string, buffer, package)
  18. // K: Keyword (e.g. NoLock, ByteAcc etc.)
  19. // D: DWord integer
  20. // W: Word integer
  21. // B: Byte integer
  22. // U: Numeric (any size integer)
  23. // S: SuperName (NameStr + Localx + Argx + Ret)
  24. // C: Opcode
  25. // Z: ASCIIZ string
  26. //
  27. #define AF TF_ACTION_FLIST //process after fixed list is parsed
  28. #define AV TF_ACTION_VLIST //process after variable list is parsed
  29. #define LN TF_PACKAGE_LEN //term requires package length
  30. #define NE TF_CHECKNAME_EXIST //check if name exists
  31. #define DL TF_DATA_LIST //term expects buffer data list
  32. #define PL TF_PACKAGE_LIST //term expects package list
  33. #define FL TF_FIELD_LIST //term expects FieldList
  34. #define OL TF_OBJECT_LIST //term expects ObjectList
  35. #define LL TF_COMPILER_DIRECTIVE //term expects compiler directives
  36. #define CL TF_CODE_LIST //term expects CodeList
  37. #define AL TF_ALL_LISTS //term expects anything
  38. #define ML TF_PNP_MACRO //term expects PNPMacro
  39. #define BL TF_BYTE_LIST //term expects ByteList
  40. #define DD TF_DWORD_LIST //term expects DWordList
  41. #define CD TC_COMPILER_DIRECTIVE
  42. #define FM TC_FIELD_MACRO
  43. #define CN TC_CONST_NAME
  44. #define SN TC_SHORT_NAME
  45. #define NS TC_NAMESPACE_MODIFIER
  46. #define DO TC_DATA_OBJECT
  47. #define KW TC_KEYWORD
  48. #define NO TC_NAMED_OBJECT
  49. #define C1 TC_OPCODE_TYPE1
  50. #define C2 TC_OPCODE_TYPE2
  51. #define RO TC_REF_OBJECT
  52. #define PM TC_PNP_MACRO
  53. #define UNK OBJTYPE_UNKNOWN
  54. #define INT OBJTYPE_INTDATA
  55. #define STR OBJTYPE_STRDATA
  56. #define BUF OBJTYPE_BUFFDATA
  57. #define PKG OBJTYPE_PKGDATA
  58. #define FDU OBJTYPE_FIELDUNIT
  59. #define DEV OBJTYPE_DEVICE
  60. #define EVT OBJTYPE_EVENT
  61. #define MET OBJTYPE_METHOD
  62. #define MUT OBJTYPE_MUTEX
  63. #define OPR OBJTYPE_OPREGION
  64. #define PWR OBJTYPE_POWERRES
  65. #define THM OBJTYPE_THERMALZONE
  66. #define BFD OBJTYPE_BUFFFIELD
  67. #define DDB OBJTYPE_DDBHANDLE
  68. //
  69. // Field flags
  70. //
  71. #define AANY (ACCTYPE_ANY | (ACCTYPE_MASK << 8))
  72. #define AB (ACCTYPE_BYTE | (ACCTYPE_MASK << 8))
  73. #define AW (ACCTYPE_WORD | (ACCTYPE_MASK << 8))
  74. #define ADW (ACCTYPE_DWORD | (ACCTYPE_MASK << 8))
  75. #define ABLK (ACCTYPE_BLOCK | (ACCTYPE_MASK << 8))
  76. #define ASSR (ACCTYPE_SMBSENDRECV | (ACCTYPE_MASK << 8))
  77. #define ASQ (ACCTYPE_SMBQUICK | (ACCTYPE_MASK << 8))
  78. #define LK (LOCKRULE_LOCK | (LOCKRULE_MASK << 8))
  79. #define NOLK (LOCKRULE_NOLOCK | (LOCKRULE_MASK << 8))
  80. #define PSRV (UPDATERULE_PRESERVE | (UPDATERULE_MASK << 8))
  81. #define WA1S (UPDATERULE_WRITEASONES | (UPDATERULE_MASK << 8))
  82. #define WA0S (UPDATERULE_WRITEASZEROS | (UPDATERULE_MASK << 8))
  83. //
  84. // Ids
  85. //
  86. // Identifier token values
  87. #define ID_LANG 0
  88. #define ID_DEFBLK (ID_LANG + 0)
  89. #define ID_INCLUDE (ID_LANG + 1)
  90. #define ID_EXTERNAL (ID_LANG + 2)
  91. #define ID_ZERO (ID_LANG + 100)
  92. #define ID_ONE (ID_LANG + 101)
  93. #define ID_ONES (ID_LANG + 102)
  94. #define ID_REVISION (ID_LANG + 103)
  95. #define ID_ARG0 (ID_LANG + 104)
  96. #define ID_ARG1 (ID_LANG + 105)
  97. #define ID_ARG2 (ID_LANG + 106)
  98. #define ID_ARG3 (ID_LANG + 107)
  99. #define ID_ARG4 (ID_LANG + 108)
  100. #define ID_ARG5 (ID_LANG + 109)
  101. #define ID_ARG6 (ID_LANG + 110)
  102. #define ID_LOCAL0 (ID_LANG + 111)
  103. #define ID_LOCAL1 (ID_LANG + 112)
  104. #define ID_LOCAL2 (ID_LANG + 113)
  105. #define ID_LOCAL3 (ID_LANG + 114)
  106. #define ID_LOCAL4 (ID_LANG + 115)
  107. #define ID_LOCAL5 (ID_LANG + 116)
  108. #define ID_LOCAL6 (ID_LANG + 117)
  109. #define ID_LOCAL7 (ID_LANG + 118)
  110. #define ID_DEBUG (ID_LANG + 119)
  111. #define ID_ALIAS (ID_LANG + 200)
  112. #define ID_NAME (ID_LANG + 201)
  113. #define ID_SCOPE (ID_LANG + 202)
  114. #define ID_BUFFER (ID_LANG + 300)
  115. #define ID_PACKAGE (ID_LANG + 301)
  116. #define ID_EISAID (ID_LANG + 302)
  117. #define ID_ANYACC (ID_LANG + 400)
  118. #define ID_BYTEACC (ID_LANG + 401)
  119. #define ID_WORDACC (ID_LANG + 402)
  120. #define ID_DWORDACC (ID_LANG + 403)
  121. #define ID_BLOCKACC (ID_LANG + 404)
  122. #define ID_SMBSENDRCVACC (ID_LANG + 405)
  123. #define ID_SMBQUICKACC (ID_LANG + 406)
  124. #define ID_LOCK (ID_LANG + 407)
  125. #define ID_NOLOCK (ID_LANG + 408)
  126. #define ID_PRESERVE (ID_LANG + 409)
  127. #define ID_WRONES (ID_LANG + 410)
  128. #define ID_WRZEROS (ID_LANG + 411)
  129. #define ID_SYSMEM (ID_LANG + 412)
  130. #define ID_SYSIO (ID_LANG + 413)
  131. #define ID_PCICFG (ID_LANG + 414)
  132. #define ID_EMBCTRL (ID_LANG + 415)
  133. #define ID_SMBUS (ID_LANG + 416)
  134. #define ID_SERIALIZED (ID_LANG + 417)
  135. #define ID_NOTSERIALIZED (ID_LANG + 418)
  136. #define ID_MTR (ID_LANG + 419)
  137. #define ID_MEQ (ID_LANG + 420)
  138. #define ID_MLE (ID_LANG + 421)
  139. #define ID_MLT (ID_LANG + 422)
  140. #define ID_MGE (ID_LANG + 423)
  141. #define ID_MGT (ID_LANG + 424)
  142. #define ID_EDGE (ID_LANG + 425)
  143. #define ID_LEVEL (ID_LANG + 426)
  144. #define ID_ACTIVEHI (ID_LANG + 427)
  145. #define ID_ACTIVELO (ID_LANG + 428)
  146. #define ID_SHARED (ID_LANG + 429)
  147. #define ID_EXCLUSIVE (ID_LANG + 430)
  148. #define ID_COMPAT (ID_LANG + 431)
  149. #define ID_TYPEA (ID_LANG + 432)
  150. #define ID_TYPEB (ID_LANG + 433)
  151. #define ID_TYPEF (ID_LANG + 434)
  152. #define ID_BUSMASTER (ID_LANG + 435)
  153. #define ID_NOTBUSMASTER (ID_LANG + 436)
  154. #define ID_TRANSFER8 (ID_LANG + 437)
  155. #define ID_TRANSFER8_16 (ID_LANG + 438)
  156. #define ID_TRANSFER16 (ID_LANG + 439)
  157. #define ID_DECODE16 (ID_LANG + 440)
  158. #define ID_DECODE10 (ID_LANG + 441)
  159. #define ID_READWRITE (ID_LANG + 442)
  160. #define ID_READONLY (ID_LANG + 443)
  161. #define ID_RESCONSUMER (ID_LANG + 444)
  162. #define ID_RESPRODUCER (ID_LANG + 445)
  163. #define ID_SUBDECODE (ID_LANG + 446)
  164. #define ID_POSDECODE (ID_LANG + 447)
  165. #define ID_MINFIXED (ID_LANG + 448)
  166. #define ID_MINNOTFIXED (ID_LANG + 449)
  167. #define ID_MAXFIXED (ID_LANG + 450)
  168. #define ID_MAXNOTFIXED (ID_LANG + 451)
  169. #define ID_CACHEABLE (ID_LANG + 452)
  170. #define ID_WRCOMBINING (ID_LANG + 453)
  171. #define ID_PREFETCHABLE (ID_LANG + 454)
  172. #define ID_NONCACHEABLE (ID_LANG + 455)
  173. #define ID_ISAONLYRNG (ID_LANG + 456)
  174. #define ID_NONISAONLYRNG (ID_LANG + 457)
  175. #define ID_ENTIRERNG (ID_LANG + 458)
  176. #define ID_EXT_EDGE (ID_LANG + 459)
  177. #define ID_EXT_LEVEL (ID_LANG + 460)
  178. #define ID_EXT_ACTIVEHI (ID_LANG + 461)
  179. #define ID_EXT_ACTIVELO (ID_LANG + 462)
  180. #define ID_EXT_SHARED (ID_LANG + 463)
  181. #define ID_EXT_EXCLUSIVE (ID_LANG + 464)
  182. #define ID_UNKNOWN_OBJ (ID_LANG + 465)
  183. #define ID_INT_OBJ (ID_LANG + 466)
  184. #define ID_STR_OBJ (ID_LANG + 467)
  185. #define ID_BUFF_OBJ (ID_LANG + 468)
  186. #define ID_PKG_OBJ (ID_LANG + 469)
  187. #define ID_FIELDUNIT_OBJ (ID_LANG + 470)
  188. #define ID_DEV_OBJ (ID_LANG + 471)
  189. #define ID_EVENT_OBJ (ID_LANG + 472)
  190. #define ID_METHOD_OBJ (ID_LANG + 473)
  191. #define ID_MUTEX_OBJ (ID_LANG + 474)
  192. #define ID_OPREGION_OBJ (ID_LANG + 475)
  193. #define ID_POWERRES_OBJ (ID_LANG + 476)
  194. #define ID_THERMAL_OBJ (ID_LANG + 477)
  195. #define ID_BUFFFIELD_OBJ (ID_LANG + 478)
  196. #define ID_DDBHANDLE_OBJ (ID_LANG + 479)
  197. #define ID_OFFSET (ID_LANG + 500)
  198. #define ID_ACCESSAS (ID_LANG + 501)
  199. #define ID_BANKFIELD (ID_LANG + 600)
  200. #define ID_DEVICE (ID_LANG + 601)
  201. #define ID_EVENT (ID_LANG + 602)
  202. #define ID_FIELD (ID_LANG + 603)
  203. #define ID_IDXFIELD (ID_LANG + 604)
  204. #define ID_METHOD (ID_LANG + 605)
  205. #define ID_MUTEX (ID_LANG + 606)
  206. #define ID_OPREGION (ID_LANG + 607)
  207. #define ID_POWERRES (ID_LANG + 608)
  208. #define ID_PROCESSOR (ID_LANG + 609)
  209. #define ID_THERMALZONE (ID_LANG + 610)
  210. #define ID_BREAK (ID_LANG + 700)
  211. #define ID_BREAKPOINT (ID_LANG + 701)
  212. #define ID_BITFIELD (ID_LANG + 702)
  213. #define ID_BYTEFIELD (ID_LANG + 703)
  214. #define ID_DWORDFIELD (ID_LANG + 704)
  215. #define ID_CREATEFIELD (ID_LANG + 705)
  216. #define ID_WORDFIELD (ID_LANG + 706)
  217. #define ID_ELSE (ID_LANG + 707)
  218. #define ID_FATAL (ID_LANG + 708)
  219. #define ID_IF (ID_LANG + 709)
  220. #define ID_LOAD (ID_LANG + 710)
  221. #define ID_NOP (ID_LANG + 711)
  222. #define ID_NOTIFY (ID_LANG + 712)
  223. #define ID_RELEASE (ID_LANG + 713)
  224. #define ID_RESET (ID_LANG + 714)
  225. #define ID_RETURN (ID_LANG + 715)
  226. #define ID_SIGNAL (ID_LANG + 716)
  227. #define ID_SLEEP (ID_LANG + 717)
  228. #define ID_STALL (ID_LANG + 718)
  229. #define ID_UNLOAD (ID_LANG + 719)
  230. #define ID_WHILE (ID_LANG + 720)
  231. #define ID_ACQUIRE (ID_LANG + 800)
  232. #define ID_ADD (ID_LANG + 801)
  233. #define ID_AND (ID_LANG + 802)
  234. #define ID_CONCAT (ID_LANG + 803)
  235. #define ID_CONDREFOF (ID_LANG + 804)
  236. #define ID_DECREMENT (ID_LANG + 805)
  237. #define ID_DEREFOF (ID_LANG + 806)
  238. #define ID_DIVIDE (ID_LANG + 807)
  239. #define ID_FINDSETLBIT (ID_LANG + 808)
  240. #define ID_FINDSETRBIT (ID_LANG + 809)
  241. #define ID_FROMBCD (ID_LANG + 810)
  242. #define ID_INCREMENT (ID_LANG + 811)
  243. #define ID_INDEX (ID_LANG + 812)
  244. #define ID_LAND (ID_LANG + 813)
  245. #define ID_LEQ (ID_LANG + 814)
  246. #define ID_LG (ID_LANG + 815)
  247. #define ID_LGEQ (ID_LANG + 816)
  248. #define ID_LL (ID_LANG + 817)
  249. #define ID_LLEQ (ID_LANG + 818)
  250. #define ID_LNOT (ID_LANG + 819)
  251. #define ID_LNOTEQ (ID_LANG + 820)
  252. #define ID_LOR (ID_LANG + 821)
  253. #define ID_MATCH (ID_LANG + 822)
  254. #define ID_MULTIPLY (ID_LANG + 823)
  255. #define ID_NAND (ID_LANG + 824)
  256. #define ID_NOR (ID_LANG + 825)
  257. #define ID_NOT (ID_LANG + 826)
  258. #define ID_OBJTYPE (ID_LANG + 827)
  259. #define ID_OR (ID_LANG + 828)
  260. #define ID_REFOF (ID_LANG + 829)
  261. #define ID_SHIFTL (ID_LANG + 830)
  262. #define ID_SHIFTR (ID_LANG + 831)
  263. #define ID_SIZEOF (ID_LANG + 832)
  264. #define ID_STORE (ID_LANG + 833)
  265. #define ID_SUBTRACT (ID_LANG + 834)
  266. #define ID_TOBCD (ID_LANG + 835)
  267. #define ID_WAIT (ID_LANG + 836)
  268. #define ID_XOR (ID_LANG + 837)
  269. #define ID_RESTEMP (ID_LANG + 1000)
  270. #define ID_STARTDEPFNNOPRI (ID_LANG + 1001)
  271. #define ID_STARTDEPFN (ID_LANG + 1002)
  272. #define ID_ENDDEPFN (ID_LANG + 1003)
  273. #define ID_IRQNOFLAGS (ID_LANG + 1004)
  274. #define ID_IRQ (ID_LANG + 1005)
  275. #define ID_DMA (ID_LANG + 1006)
  276. #define ID_IO (ID_LANG + 1007)
  277. #define ID_FIXEDIO (ID_LANG + 1008)
  278. #define ID_VENDORSHORT (ID_LANG + 1009)
  279. #define ID_MEMORY24 (ID_LANG + 1010)
  280. #define ID_VENDORLONG (ID_LANG + 1011)
  281. #define ID_MEMORY32 (ID_LANG + 1012)
  282. #define ID_MEMORY32FIXED (ID_LANG + 1013)
  283. #define ID_DWORDMEMORY (ID_LANG + 1014)
  284. #define ID_DWORDIO (ID_LANG + 1015)
  285. #define ID_WORDIO (ID_LANG + 1016)
  286. #define ID_WORDBUSNUMBER (ID_LANG + 1017)
  287. #define ID_INTERRUPT (ID_LANG + 1018)
  288. #define ID_QWORDMEMORY (ID_LANG + 1019)
  289. #define ID_QWORDIO (ID_LANG + 1020)
  290. //
  291. // Operation region space
  292. //
  293. #define MEM (REGSPACE_MEM | 0xff00)
  294. #define IO (REGSPACE_IO | 0xff00)
  295. #define CFG (REGSPACE_PCICFG | 0xff00)
  296. #define EC (REGSPACE_EC | 0xff00)
  297. #define SMB (REGSPACE_SMB | 0xff00)
  298. //
  299. // Method flags
  300. //
  301. #define SER (METHOD_SERIALIZED | (METHOD_SYNCMASK << 8))
  302. #define NOSER (METHOD_NOTSERIALIZED | (METHOD_SYNCMASK << 8))
  303. //
  304. // Match operation values
  305. //
  306. #define OMTR (MTR | 0xff00)
  307. #define OMEQ (MEQ | 0xff00)
  308. #define OMLE (MLE | 0xff00)
  309. #define OMLT (MLT | 0xff00)
  310. #define OMGE (MGE | 0xff00)
  311. #define OMGT (MGT | 0xff00)
  312. ASLTERM TermTable[] =
  313. {
  314. "DefinitionBlock", ID_DEFBLK, CD, 0, OP_NONE, NULL, "ZZBZZD", NULL, OL|CL|LL|AF|AV, NULL,
  315. "Include", ID_INCLUDE, CD, 0, OP_NONE, NULL, "Z", NULL, AF, NULL,
  316. "External", ID_EXTERNAL, CD, 0, OP_NONE, NULL, "Nk", "uX", AF, NULL,
  317. // Short Objects
  318. "Zero", ID_ZERO, CN, 0, OP_ZERO, NULL, NULL, NULL, 0, NULL,
  319. "One", ID_ONE, CN, 0, OP_ONE, NULL, NULL, NULL, 0, NULL,
  320. "Ones", ID_ONES, CN, 0, OP_ONES, NULL, NULL, NULL, 0, NULL,
  321. "Revision", ID_REVISION, CN, 0, OP_REVISION, NULL, NULL, NULL, 0, NULL,
  322. "Arg0", ID_ARG0, SN, 0, OP_ARG0, NULL, NULL, NULL, 0, NULL,
  323. "Arg1", ID_ARG1, SN, 0, OP_ARG1, NULL, NULL, NULL, 0, NULL,
  324. "Arg2", ID_ARG2, SN, 0, OP_ARG2, NULL, NULL, NULL, 0, NULL,
  325. "Arg3", ID_ARG3, SN, 0, OP_ARG3, NULL, NULL, NULL, 0, NULL,
  326. "Arg4", ID_ARG4, SN, 0, OP_ARG4, NULL, NULL, NULL, 0, NULL,
  327. "Arg5", ID_ARG5, SN, 0, OP_ARG5, NULL, NULL, NULL, 0, NULL,
  328. "Arg6", ID_ARG6, SN, 0, OP_ARG6, NULL, NULL, NULL, 0, NULL,
  329. "Local0", ID_LOCAL0, SN, 0, OP_LOCAL0, NULL, NULL, NULL, 0, NULL,
  330. "Local1", ID_LOCAL1, SN, 0, OP_LOCAL1, NULL, NULL, NULL, 0, NULL,
  331. "Local2", ID_LOCAL2, SN, 0, OP_LOCAL2, NULL, NULL, NULL, 0, NULL,
  332. "Local3", ID_LOCAL3, SN, 0, OP_LOCAL3, NULL, NULL, NULL, 0, NULL,
  333. "Local4", ID_LOCAL4, SN, 0, OP_LOCAL4, NULL, NULL, NULL, 0, NULL,
  334. "Local5", ID_LOCAL5, SN, 0, OP_LOCAL5, NULL, NULL, NULL, 0, NULL,
  335. "Local6", ID_LOCAL6, SN, 0, OP_LOCAL6, NULL, NULL, NULL, 0, NULL,
  336. "Local7", ID_LOCAL7, SN, 0, OP_LOCAL7, NULL, NULL, NULL, 0, NULL,
  337. "Debug", ID_DEBUG, SN, 0, OP_DEBUG, NULL, NULL, NULL, 0, NULL,
  338. // Named Terms
  339. "Alias", ID_ALIAS, NS, 0, OP_ALIAS, "NN", "NN", "Ua", 0, NULL,
  340. "Name", ID_NAME, NS, 0, OP_NAME, "NO", "NO", "u", 0, NULL,
  341. "Scope", ID_SCOPE, NS, 0, OP_SCOPE, "N", "N", "S", OL|LN, NULL,
  342. // Data Objects
  343. "Buffer", ID_BUFFER, DO, 0, OP_BUFFER, "C", "c", "U", DL|LN, NULL,
  344. "Package", ID_PACKAGE, DO, 0, OP_PACKAGE, "B", "b", NULL, PL|LN, NULL,
  345. "EISAID", ID_EISAID, DO, 0, OP_DWORD, NULL,"Z", NULL, AF, NULL,
  346. // Argument Keywords
  347. "AnyAcc", ID_ANYACC, KW, AANY, OP_NONE, NULL, NULL, "A", 0, NULL,
  348. "ByteAcc", ID_BYTEACC, KW, AB, OP_NONE, NULL, NULL, "A", 0, NULL,
  349. "WordAcc", ID_WORDACC, KW, AW, OP_NONE, NULL, NULL, "A", 0, NULL,
  350. "DWordAcc", ID_DWORDACC, KW, ADW, OP_NONE, NULL, NULL, "A", 0, NULL,
  351. "BlockAcc", ID_BLOCKACC, KW, ABLK, OP_NONE, NULL, NULL, "A", 0, NULL,
  352. "SMBSendRecvAcc", ID_SMBSENDRCVACC,KW, ASSR, OP_NONE, NULL, NULL, "A", 0, NULL,
  353. "SMBQuickAcc", ID_SMBQUICKACC, KW, ASQ, OP_NONE, NULL, NULL, "A", 0, NULL,
  354. "Lock", ID_LOCK, KW, LK, OP_NONE, NULL, NULL, "B", 0, NULL,
  355. "NoLock", ID_NOLOCK, KW, NOLK, OP_NONE, NULL, NULL, "B", 0, NULL,
  356. "Preserve", ID_PRESERVE, KW, PSRV, OP_NONE, NULL, NULL, "C", 0, NULL,
  357. "WriteAsOnes", ID_WRONES, KW, WA1S, OP_NONE, NULL, NULL, "C", 0, NULL,
  358. "WriteAsZeros", ID_WRZEROS, KW, WA0S, OP_NONE, NULL, NULL, "C", 0, NULL,
  359. "SystemMemory", ID_SYSMEM, KW, MEM, OP_NONE, NULL, NULL, "D", 0, NULL,
  360. "SystemIO", ID_SYSIO, KW, IO, OP_NONE, NULL, NULL, "D", 0, NULL,
  361. "PCI_Config", ID_PCICFG, KW, CFG, OP_NONE, NULL, NULL, "D", 0, NULL,
  362. "EmbeddedControl", ID_EMBCTRL, KW, EC, OP_NONE, NULL, NULL, "D", 0, NULL,
  363. "SMBus", ID_SMBUS, KW, SMB, OP_NONE, NULL, NULL, "D", 0, NULL,
  364. "Serialized", ID_SERIALIZED, KW, SER, OP_NONE, NULL, NULL, "E", 0, NULL,
  365. "NotSerialized", ID_NOTSERIALIZED,KW, NOSER,OP_NONE, NULL, NULL, "E", 0, NULL,
  366. "MTR", ID_MTR, KW, OMTR, OP_NONE, NULL, NULL, "F", 0, NULL,
  367. "MEQ", ID_MEQ, KW, OMEQ, OP_NONE, NULL, NULL, "F", 0, NULL,
  368. "MLE", ID_MLE, KW, OMLE, OP_NONE, NULL, NULL, "F", 0, NULL,
  369. "MLT", ID_MLT, KW, OMLT, OP_NONE, NULL, NULL, "F", 0, NULL,
  370. "MGE", ID_MGE, KW, OMGE, OP_NONE, NULL, NULL, "F", 0, NULL,
  371. "MGT", ID_MGT, KW, OMGT, OP_NONE, NULL, NULL, "F", 0, NULL,
  372. "Edge", ID_EDGE, KW, _HE, OP_NONE, NULL, NULL, "G", 0, NULL,
  373. "Level", ID_LEVEL, KW, _LL, OP_NONE, NULL, NULL, "G", 0, NULL,
  374. "ActiveHigh", ID_ACTIVEHI, KW, _HE, OP_NONE, NULL, NULL, "H", 0, NULL,
  375. "ActiveLow", ID_ACTIVELO, KW, _LL, OP_NONE, NULL, NULL, "H", 0, NULL,
  376. "Shared", ID_SHARED, KW, _SHR, OP_NONE, NULL, NULL, "I", 0, NULL,
  377. "Exclusive", ID_EXCLUSIVE, KW, _EXC, OP_NONE, NULL, NULL, "I", 0, NULL,
  378. "Compatibility", ID_COMPAT, KW, COMP, OP_NONE, NULL, NULL, "J", 0, NULL,
  379. "TypeA", ID_TYPEA, KW, TYPA, OP_NONE, NULL, NULL, "J", 0, NULL,
  380. "TypeB", ID_TYPEB, KW, TYPB, OP_NONE, NULL, NULL, "J", 0, NULL,
  381. "TypeF", ID_TYPEF, KW, TYPF, OP_NONE, NULL, NULL, "J", 0, NULL,
  382. "BusMaster", ID_BUSMASTER, KW, BM, OP_NONE, NULL, NULL, "K", 0, NULL,
  383. "NotBusMaster", ID_NOTBUSMASTER, KW, NOBM, OP_NONE, NULL, NULL, "K", 0, NULL,
  384. "Transfer8", ID_TRANSFER8, KW, X8, OP_NONE, NULL, NULL, "L", 0, NULL,
  385. "Transfer8_16", ID_TRANSFER8_16, KW, X816, OP_NONE, NULL, NULL, "L", 0, NULL,
  386. "Transfer16", ID_TRANSFER16, KW, X16, OP_NONE, NULL, NULL, "L", 0, NULL,
  387. "Decode16", ID_DECODE16, KW, DC16, OP_NONE, NULL, NULL, "M", 0, NULL,
  388. "Decode10", ID_DECODE10, KW, DC10, OP_NONE, NULL, NULL, "M", 0, NULL,
  389. "ReadWrite", ID_READWRITE, KW, _RW, OP_NONE, NULL, NULL, "N", 0, NULL,
  390. "ReadOnly", ID_READONLY, KW, _ROM, OP_NONE, NULL, NULL, "N", 0, NULL,
  391. "ResourceConsumer", ID_RESCONSUMER, KW, RCS, OP_NONE, NULL, NULL, "O", 0, NULL,
  392. "ResourceProducer", ID_RESPRODUCER, KW, RPD, OP_NONE, NULL, NULL, "O", 0, NULL,
  393. "SubDecode", ID_SUBDECODE, KW, BSD, OP_NONE, NULL, NULL, "P", 0, NULL,
  394. "PosDecode", ID_POSDECODE, KW, BPD, OP_NONE, NULL, NULL, "P", 0, NULL,
  395. "MinFixed", ID_MINFIXED, KW, MIF, OP_NONE, NULL, NULL, "Q", 0, NULL,
  396. "MinNotFixed", ID_MINNOTFIXED, KW, NMIF, OP_NONE, NULL, NULL, "Q", 0, NULL,
  397. "MaxFixed", ID_MAXFIXED, KW, MAF, OP_NONE, NULL, NULL, "R", 0, NULL,
  398. "MaxNotFixed", ID_MAXNOTFIXED, KW, NMAF, OP_NONE, NULL, NULL, "R", 0, NULL,
  399. "Cacheable", ID_CACHEABLE, KW, CACH, OP_NONE, NULL, NULL, "S", 0, NULL,
  400. "WriteCombining", ID_WRCOMBINING, KW, WRCB, OP_NONE, NULL, NULL, "S", 0, NULL,
  401. "Prefetchable", ID_PREFETCHABLE, KW, PREF, OP_NONE, NULL, NULL, "S", 0, NULL,
  402. "NonCacheable", ID_NONCACHEABLE, KW, NCAC, OP_NONE, NULL, NULL, "S", 0, NULL,
  403. "ISAOnlyRanges", ID_ISAONLYRNG, KW, ISA, OP_NONE, NULL, NULL, "T", 0, NULL,
  404. "NonISAOnlyRanges", ID_NONISAONLYRNG,KW, NISA, OP_NONE, NULL, NULL, "T", 0, NULL,
  405. "EntireRange", ID_ENTIRERNG, KW, ERNG, OP_NONE, NULL, NULL, "T", 0, NULL,
  406. "ExtEdge", ID_EXT_EDGE, KW, ($HGH | $EDG), OP_NONE, NULL, NULL, "U", 0, NULL,
  407. "ExtLevel", ID_EXT_LEVEL, KW, ($LOW | $LVL), OP_NONE, NULL, NULL, "U", 0, NULL,
  408. "ExtActiveHigh", ID_EXT_ACTIVEHI, KW, ($HGH | $EDG), OP_NONE, NULL, NULL, "V", 0, NULL,
  409. "ExtActiveLow", ID_EXT_ACTIVELO, KW, ($LOW | $LVL), OP_NONE, NULL, NULL, "V", 0, NULL,
  410. "ExtShared", ID_EXT_SHARED, KW, $SHR, OP_NONE, NULL, NULL, "W", 0, NULL,
  411. "ExtExclusive", ID_EXT_EXCLUSIVE,KW, $EXC, OP_NONE, NULL, NULL, "W", 0, NULL,
  412. "UnknownObj", ID_UNKNOWN_OBJ, KW, UNK, OP_NONE, NULL, NULL, "X", 0, NULL,
  413. "IntObj", ID_INT_OBJ, KW, INT, OP_NONE, NULL, NULL, "X", 0, NULL,
  414. "StrObj", ID_STR_OBJ, KW, STR, OP_NONE, NULL, NULL, "X", 0, NULL,
  415. "BuffObj", ID_BUFF_OBJ, KW, BUF, OP_NONE, NULL, NULL, "X", 0, NULL,
  416. "PkgObj", ID_PKG_OBJ, KW, PKG, OP_NONE, NULL, NULL, "X", 0, NULL,
  417. "FieldUnitObj", ID_FIELDUNIT_OBJ,KW, FDU, OP_NONE, NULL, NULL, "X", 0, NULL,
  418. "DeviceObj", ID_DEV_OBJ, KW, DEV, OP_NONE, NULL, NULL, "X", 0, NULL,
  419. "EventObj", ID_EVENT_OBJ, KW, EVT, OP_NONE, NULL, NULL, "X", 0, NULL,
  420. "MethodObj", ID_METHOD_OBJ, KW, MET, OP_NONE, NULL, NULL, "X", 0, NULL,
  421. "MutexObj", ID_MUTEX_OBJ, KW, MUT, OP_NONE, NULL, NULL, "X", 0, NULL,
  422. "OpRegionObj", ID_OPREGION_OBJ, KW, OPR, OP_NONE, NULL, NULL, "X", 0, NULL,
  423. "PowerResObj", ID_POWERRES_OBJ, KW, PWR, OP_NONE, NULL, NULL, "X", 0, NULL,
  424. "ThermalZoneObj", ID_THERMAL_OBJ, KW, THM, OP_NONE, NULL, NULL, "X", 0, NULL,
  425. "BuffFieldObj", ID_BUFFFIELD_OBJ,KW, BFD, OP_NONE, NULL, NULL, "X", 0, NULL,
  426. "DDBHandleObj", ID_DDBHANDLE_OBJ,KW, DDB, OP_NONE, NULL, NULL, "X", 0, NULL,
  427. // Field Macros
  428. "Offset", ID_OFFSET, FM, 0, OP_NONE, NULL, "B", NULL, 0, NULL,
  429. "AccessAs", ID_ACCESSAS, FM, 0, 0x01, NULL, "Kb", "A", AF, NULL,
  430. // Named Object Creators
  431. "BankField", ID_BANKFIELD, NO, 0, OP_BANKFIELD, "NNCKkk","NNCKKK","OFUABC", FL|FM|LN|AF, NULL,
  432. "Device", ID_DEVICE, NO, 0, OP_DEVICE, "N", "N", "d", OL|LN, NULL,
  433. "Event", ID_EVENT, NO, 0, OP_EVENT, "N", "N", "e", 0, NULL,
  434. "Field", ID_FIELD, NO, 0, OP_FIELD, "NKkk", "NKKK", "OABC", FL|FM|LN|AF, NULL,
  435. "IndexField", ID_IDXFIELD, NO, 0, OP_IDXFIELD, "NNKkk","NNKKK", "FFABC", FL|FM|LN|AF, NULL,
  436. "Method", ID_METHOD, NO, 0, OP_METHOD, "NKk", "Nbk", "m!E", CL|OL|LN|AF, NULL,
  437. "Mutex", ID_MUTEX, NO, 0, OP_MUTEX, "NB", "NB", "x", 0, NULL,
  438. "OperationRegion", ID_OPREGION, NO, 0, OP_OPREGION, "NKCC", "NKCC", "oDUU", AF, NULL,
  439. "PowerResource", ID_POWERRES, NO, 0, OP_POWERRES, "NBW", "NBW", "p", OL|LN, NULL,
  440. "Processor", ID_PROCESSOR, NO, 0, OP_PROCESSOR, "NBDB", "NBDB", "c", OL|LN, NULL,
  441. "ThermalZone", ID_THERMALZONE, NO, 0, OP_THERMALZONE,"N", "N", "t", OL|LN, NULL,
  442. // Type 1 Opcode Terms
  443. "Break", ID_BREAK, C1, 0, OP_BREAK, NULL, NULL, NULL, 0, NULL,
  444. "BreakPoint", ID_BREAKPOINT, C1, 0, OP_BREAKPOINT, NULL, NULL, NULL, 0, NULL,
  445. "CreateBitField", ID_BITFIELD, C1, 0, OP_BITFIELD, "CCN", "CPN", "UUb",0, NULL,
  446. "CreateByteField", ID_BYTEFIELD, C1, 0, OP_BYTEFIELD, "CCN", "CMN", "UUb",0, NULL,
  447. "CreateDWordField", ID_DWORDFIELD, C1, 0, OP_DWORDFIELD, "CCN", "CMN", "UUb",0, NULL,
  448. "CreateField", ID_CREATEFIELD, C1, 0, OP_CREATEFIELD, "CCCN","CPCN","UUUb",0,NULL,
  449. "CreateWordField", ID_WORDFIELD, C1, 0, OP_WORDFIELD, "CCN", "CMN", "UUb",0, NULL,
  450. "Else", ID_ELSE, C1, 0, OP_ELSE, NULL, NULL, NULL, AF|CL|LN, NULL,
  451. "Fatal", ID_FATAL, C1, 0, OP_FATAL, "BDC", "BDC", " U",0, NULL,
  452. "If", ID_IF, C1, 0, OP_IF, "C", "C", "U", CL|LN, NULL,
  453. "Load", ID_LOAD, C1, 0, OP_LOAD, "NS", "NS", "UU", 0, NULL,
  454. "Noop", ID_NOP, C1, 0, OP_NOP, NULL, NULL, NULL, 0, NULL,
  455. "Notify", ID_NOTIFY, C1, 0, OP_NOTIFY, "SC", "SC", "UU", 0, NULL,
  456. "Release", ID_RELEASE, C1, 0, OP_RELEASE, "S", "S", "X", 0, NULL,
  457. "Reset", ID_RESET, C1, 0, OP_RESET, "S", "S", "E", 0, NULL,
  458. "Return", ID_RETURN, C1, 0, OP_RETURN, "C", "C", "U", 0, NULL,
  459. "Signal", ID_SIGNAL, C1, 0, OP_SIGNAL, "S", "S", "E", 0, NULL,
  460. "Sleep", ID_SLEEP, C1, 0, OP_SLEEP, "C", "C", "U", 0, NULL,
  461. "Stall", ID_STALL, C1, 0, OP_STALL, "C", "C", "U", 0, NULL,
  462. "Unload", ID_UNLOAD, C1, 0, OP_UNLOAD, "S", "S", "U", 0, NULL,
  463. "While", ID_WHILE, C1, 0, OP_WHILE, "C", "C", "U", CL|LN, NULL,
  464. // Type 2 Opcode Terms
  465. "Acquire", ID_ACQUIRE, C2, 0, OP_ACQUIRE, "SW", "SW", "X", 0, NULL,
  466. "Add", ID_ADD, C2, 0, OP_ADD, "CCS", "CCs", "UUU",0, NULL,
  467. "And", ID_AND, C2, 0, OP_AND, "CCS", "CCs", "UUU",0, NULL,
  468. "Concatenate", ID_CONCAT, C2, 0, OP_CONCAT, "CCS", "CCS", "UUU",0, NULL,
  469. "CondRefOf", ID_CONDREFOF, C2, 0, OP_CONDREFOF, "SS", "SS", "UU", 0, NULL,
  470. "Decrement", ID_DECREMENT, C2, 0, OP_DECREMENT, "S", "S", "U", 0, NULL,
  471. "DerefOf", ID_DEREFOF, C2, 0, OP_DEREFOF, "C", "C", "U", 0, NULL,
  472. "Divide", ID_DIVIDE, C2, 0, OP_DIVIDE, "CCSS", "CCss", "UUUU",0,NULL,
  473. "FindSetLeftBit", ID_FINDSETLBIT, C2, 0, OP_FINDSETLBIT, "CS", "Cs", "UU", 0, NULL,
  474. "FindSetRightBit", ID_FINDSETRBIT, C2, 0, OP_FINDSETRBIT, "CS", "Cs", "UU", 0, NULL,
  475. "FromBCD", ID_FROMBCD, C2, 0, OP_FROMBCD, "CS", "Cs", "UU", 0, NULL,
  476. "Increment", ID_INCREMENT, C2, 0, OP_INCREMENT, "S", "S", "U", 0, NULL,
  477. "Index", ID_INDEX, RO|C2, 0, OP_INDEX, "CCS", "CMs", "UUU",0, NULL,
  478. "LAnd", ID_LAND, C2, 0, OP_LAND, "CC", "CC", "UU", 0, NULL,
  479. "LEqual", ID_LEQ, C2, 0, OP_LEQ, "CC", "CC", "UU", 0, NULL,
  480. "LGreater", ID_LG, C2, 0, OP_LG, "CC", "CC", "UU", 0, NULL,
  481. "LGreaterEqual", ID_LGEQ, C2, 0, OP_LGEQ, "CC", "CC", "UU", 0, NULL,
  482. "LLess", ID_LL, C2, 0, OP_LL, "CC", "CC", "UU", 0, NULL,
  483. "LLessEqual", ID_LLEQ, C2, 0, OP_LLEQ, "CC", "CC", "UU", 0, NULL,
  484. "LNot", ID_LNOT, C2, 0, OP_LNOT, "C", "C", "U", 0, NULL,
  485. "LNotEqual", ID_LNOTEQ, C2, 0, OP_LNOTEQ, "CC", "CC", "UU", 0, NULL,
  486. "LOr", ID_LOR, C2, 0, OP_LOR, "CC", "CC", "UU", 0, NULL,
  487. "Match", ID_MATCH, C2, 0, OP_MATCH, "CKCKCC", "CKCKCC", "UFUFUU",AF,NULL,
  488. "Multiply", ID_MULTIPLY, C2, 0, OP_MULTIPLY, "CCS", "CCs", "UUU",0, NULL,
  489. "NAnd", ID_NAND, C2, 0, OP_NAND, "CCS", "CCs", "UUU",0, NULL,
  490. "NOr", ID_NOR, C2, 0, OP_NOR, "CCS", "CCs", "UUU",0, NULL,
  491. "Not", ID_NOT, C2, 0, OP_NOT, "CS", "Cs", "UU", 0, NULL,
  492. "ObjectType", ID_OBJTYPE, C2, 0, OP_OBJTYPE, "S", "S", "U", 0, NULL,
  493. "Or", ID_OR, C2, 0, OP_OR, "CCS", "CCs", "UUU",0, NULL,
  494. "RefOf", ID_REFOF, C2, 0, OP_REFOF, "S", "S", "U", 0, NULL,
  495. "ShiftLeft", ID_SHIFTL, C2, 0, OP_SHIFTL, "CCS", "CCs", "UUU",0, NULL,
  496. "ShiftRight", ID_SHIFTR, C2, 0, OP_SHIFTR, "CCS", "CCs", "UUU",0, NULL,
  497. "SizeOf", ID_SIZEOF, C2, 0, OP_SIZEOF, "S", "S", "U", 0, NULL,
  498. "Store", ID_STORE, C2, 0, OP_STORE, "CS", "CS", "UU", 0, NULL,
  499. "Subtract", ID_SUBTRACT, C2, 0, OP_SUBTRACT, "CCS", "CCs", "UUU",0, NULL,
  500. "ToBCD", ID_TOBCD, C2, 0, OP_TOBCD, "CS", "Cs", "UU", 0, NULL,
  501. "Wait", ID_WAIT, C2, 0, OP_WAIT, "SC", "SC", "E", 0, NULL,
  502. "XOr", ID_XOR, C2, 0, OP_XOR, "CCS", "CCs", "UUU",0, NULL,
  503. // PNP Macros
  504. "ResourceTemplate", ID_RESTEMP, DO, 0, OP_BUFFER, NULL, "", NULL, ML|AF|AV|LN,NULL,
  505. "StartDependentFnNoPri",ID_STARTDEPFNNOPRI,PM,0,0x30, NULL, "", NULL, ML|AF, NULL,
  506. "StartDependentFn", ID_STARTDEPFN, PM, 0, 0x31, NULL, "BB", NULL, ML|AF, NULL,
  507. "EndDependentFn", ID_ENDDEPFN, PM, 0, 0x38, NULL, "", NULL, AF, NULL,
  508. "IRQNoFlags", ID_IRQNOFLAGS, PM, 0, 0x22, NULL, "r", NULL, BL|AV, NULL,
  509. "IRQ", ID_IRQ, PM, 0, 0x23, NULL, "KKkr", "GHI",BL|AV, NULL,
  510. "DMA", ID_DMA, PM, 0, 0x2a, NULL, "KKKr", "JKL",BL|AV, NULL,
  511. "IO", ID_IO, PM, 0, 0x47, NULL, "KWWBBr", "M", AF, NULL,
  512. "FixedIO", ID_FIXEDIO, PM, 0, 0x4b, NULL, "WBr", NULL, AF, NULL,
  513. "VendorShort", ID_VENDORSHORT, PM, 0, OP_NONE, NULL, "r", NULL, BL|AV, NULL,
  514. "Memory24", ID_MEMORY24, PM, 0, 0x81, NULL, "KWWWWr", "N", AF, NULL,
  515. "VendorLong", ID_VENDORLONG, PM, 0, 0x84, NULL, "r", NULL, BL|AV, NULL,
  516. "Memory32", ID_MEMORY32, PM, 0, 0x85, NULL, "KDDDDr", "N", AF, NULL,
  517. "Memory32Fixed", ID_MEMORY32FIXED,PM, 0, 0x86, NULL, "KDDr", "N", AF, NULL,
  518. "DWORDMemory", ID_DWORDMEMORY, PM, 0, 0x87, NULL, "kkkkkKDDDDDbzr","OPQRSN",AF, NULL,
  519. "DWORDIO", ID_DWORDIO, PM, 0, 0x87, NULL, "kkkkkDDDDDbzr", "OQRPT", AF, NULL,
  520. "WORDIO", ID_WORDIO, PM, 0, 0x88, NULL, "kkkkkWWWWWbzr", "OQRPT", AF, NULL,
  521. "WORDBusNumber", ID_WORDBUSNUMBER,PM, 0, 0x88, NULL, "kkkkWWWWWbzr", "OQRP", AF, NULL,
  522. "Interrupt", ID_INTERRUPT, PM, 0, 0x89, NULL, "kKKkbzr", "OGHI",DD|AV, NULL,
  523. "QWORDMemory", ID_QWORDMEMORY, PM, 0, 0x8a, NULL, "kkkkkKQQQQQbzr","OPQRSN",AF, NULL,
  524. "QWORDIO", ID_QWORDIO, PM, 0, 0x8a, NULL, "kkkkkQQQQQbzr", "OQRPT", AF, NULL,
  525. NULL, 0, 0, 0, OP_NONE, NULL, NULL, NULL, 0, NULL
  526. };
  527. #define INVALID OPCLASS_INVALID
  528. #define DATAOBJ OPCLASS_DATA_OBJ
  529. #define NAMEOBJ OPCLASS_NAME_OBJ
  530. #define CONSTOBJ OPCLASS_CONST_OBJ
  531. #define CODEOBJ OPCLASS_CODE_OBJ
  532. #define ARGOBJ OPCLASS_ARG_OBJ
  533. #define LOCALOBJ OPCLASS_LOCAL_OBJ
  534. UCHAR OpClassTable[256] =
  535. { //0x00 0x01 0x02 0x03
  536. CONSTOBJ, CONSTOBJ, INVALID, INVALID,
  537. //0x04 0x05 0x06 0x07
  538. INVALID, INVALID, CODEOBJ, INVALID,
  539. //0x08 0x09 0x0a 0x0b
  540. CODEOBJ, INVALID, DATAOBJ, DATAOBJ,
  541. //0x0c 0x0d 0x0e 0x0f
  542. DATAOBJ, DATAOBJ, INVALID, INVALID,
  543. //0x10 0x11 0x12 0x13
  544. CODEOBJ, CODEOBJ, CODEOBJ, INVALID,
  545. //0x14 0x15 0x16 0x17
  546. CODEOBJ, INVALID, INVALID, INVALID,
  547. //0x18 0x19 0x1a 0x1b
  548. INVALID, INVALID, INVALID, INVALID,
  549. //0x1c 0x1d 0x1e 0x1f
  550. INVALID, INVALID, INVALID, INVALID,
  551. //0x20 0x21 0x22 0x23
  552. INVALID, INVALID, INVALID, INVALID,
  553. //0x24 0x25 0x26 0x27
  554. INVALID, INVALID, INVALID, INVALID,
  555. //0x28 0x29 0x2a 0x2b
  556. INVALID, INVALID, INVALID, INVALID,
  557. //0x2c 0x2d 0x2e 0x2f
  558. INVALID, INVALID, NAMEOBJ, NAMEOBJ,
  559. //0x30 0x31 0x32 0x33
  560. INVALID, INVALID, INVALID, INVALID,
  561. //0x34 0x35 0x36 0x37
  562. INVALID, INVALID, INVALID, INVALID,
  563. //0x38 0x39 0x3a 0x3b
  564. INVALID, INVALID, INVALID, INVALID,
  565. //0x3c 0x3d 0x3e 0x3f
  566. INVALID, INVALID, INVALID, INVALID,
  567. //0x40 0x41 0x42 0x43
  568. INVALID, NAMEOBJ, NAMEOBJ, NAMEOBJ,
  569. //0x44 0x45 0x46 0x47
  570. NAMEOBJ, NAMEOBJ, NAMEOBJ, NAMEOBJ,
  571. //0x48 0x49 0x4a 0x4b
  572. NAMEOBJ, NAMEOBJ, NAMEOBJ, NAMEOBJ,
  573. //0x4c 0x4d 0x4e 0x4f
  574. NAMEOBJ, NAMEOBJ, NAMEOBJ, NAMEOBJ,
  575. //0x50 0x51 0x52 0x53
  576. NAMEOBJ, NAMEOBJ, NAMEOBJ, NAMEOBJ,
  577. //0x54 0x55 0x56 0x57
  578. NAMEOBJ, NAMEOBJ, NAMEOBJ, NAMEOBJ,
  579. //0x58 0x59 0x5a 0x5b
  580. NAMEOBJ, NAMEOBJ, NAMEOBJ, INVALID,
  581. //0x5c 0x5d 0x5e 0x5f
  582. NAMEOBJ, INVALID, NAMEOBJ, NAMEOBJ,
  583. //0x60 0x61 0x62 0x63
  584. LOCALOBJ, LOCALOBJ, LOCALOBJ, LOCALOBJ,
  585. //0x64 0x65 0x66 0x67
  586. LOCALOBJ, LOCALOBJ, LOCALOBJ, LOCALOBJ,
  587. //0x68 0x69 0x6a 0x6b
  588. ARGOBJ, ARGOBJ, ARGOBJ, ARGOBJ,
  589. //0x6c 0x6d 0x6e 0x6f
  590. ARGOBJ, ARGOBJ, ARGOBJ, INVALID,
  591. //0x70 0x71 0x72 0x73
  592. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  593. //0x74 0x75 0x76 0x77
  594. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  595. //0x78 0x79 0x7a 0x7b
  596. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  597. //0x7c 0x7d 0x7e 0x7f
  598. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  599. //0x80 0x81 0x82 0x83
  600. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  601. //0x84 0x85 0x86 0x87
  602. INVALID, INVALID, CODEOBJ, CODEOBJ,
  603. //0x88 0x89 0x8a 0x8b
  604. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  605. //0x8c 0x8d 0x8e 0x8f
  606. CODEOBJ, CODEOBJ, CODEOBJ, INVALID,
  607. //0x90 0x91 0x92 0x93
  608. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  609. //0x94 0x95 0x96 0x97
  610. CODEOBJ, CODEOBJ, INVALID, INVALID,
  611. //0x98 0x99 0x9a 0x9b
  612. INVALID, INVALID, INVALID, INVALID,
  613. //0x9c 0x9d 0x9e 0x9f
  614. INVALID, INVALID, INVALID, INVALID,
  615. //0xa0 0xa1 0xa2 0xa3
  616. CODEOBJ, CODEOBJ, CODEOBJ, CODEOBJ,
  617. //0xa4 0xa5 0xa6 0xa7
  618. CODEOBJ, CODEOBJ, INVALID, INVALID,
  619. //0xa8 0xa9 0xaa 0xab
  620. INVALID, INVALID, INVALID, INVALID,
  621. //0xac 0xad 0xae 0xaf
  622. INVALID, INVALID, INVALID, INVALID,
  623. //0xb0 0xb1 0xb2 0xb3
  624. INVALID, INVALID, INVALID, INVALID,
  625. //0xb4 0xb5 0xb6 0xb7
  626. INVALID, INVALID, INVALID, INVALID,
  627. //0xb8 0xb9 0xba 0xbb
  628. INVALID, INVALID, INVALID, INVALID,
  629. //0xbc 0xbd 0xbe 0xbf
  630. INVALID, INVALID, INVALID, INVALID,
  631. //0xc0 0xc1 0xc2 0xc3
  632. INVALID, INVALID, INVALID, INVALID,
  633. //0xc4 0xc5 0xc6 0xc7
  634. INVALID, INVALID, INVALID, INVALID,
  635. //0xc8 0xc9 0xca 0xcb
  636. INVALID, INVALID, INVALID, INVALID,
  637. //0xcc 0xcd 0xce 0xcf
  638. CODEOBJ, INVALID, INVALID, INVALID,
  639. //0xd0 0xd1 0xd2 0xd3
  640. INVALID, INVALID, INVALID, INVALID,
  641. //0xd4 0xd5 0xd6 0xd7
  642. INVALID, INVALID, INVALID, INVALID,
  643. //0xd8 0xd9 0xda 0xdb
  644. INVALID, INVALID, INVALID, INVALID,
  645. //0xdc 0xdd 0xde 0xdf
  646. INVALID, INVALID, INVALID, INVALID,
  647. //0xe0 0xe1 0xe2 0xe3
  648. INVALID, INVALID, INVALID, INVALID,
  649. //0xe4 0xe5 0xe6 0xe7
  650. INVALID, INVALID, INVALID, INVALID,
  651. //0xe8 0xe9 0xea 0xeb
  652. INVALID, INVALID, INVALID, INVALID,
  653. //0xec 0xed 0xee 0xef
  654. INVALID, INVALID, INVALID, INVALID,
  655. //0xf0 0xf1 0xf2 0xf3
  656. INVALID, INVALID, INVALID, INVALID,
  657. //0xf4 0xf5 0xf6 0xf7
  658. INVALID, INVALID, INVALID, INVALID,
  659. //0xf8 0xf9 0xfa 0xfb
  660. INVALID, INVALID, INVALID, INVALID,
  661. //0xfc 0xfd 0xfe 0xff
  662. INVALID, INVALID, INVALID, CONSTOBJ
  663. };
  664. OPMAP ExOpClassTable[] =
  665. {
  666. EXOP_MUTEX, CODEOBJ,
  667. EXOP_EVENT, CODEOBJ,
  668. EXOP_CONDREFOF, CODEOBJ,
  669. EXOP_CREATEFIELD, CODEOBJ,
  670. EXOP_LOAD, CODEOBJ,
  671. EXOP_STALL, CODEOBJ,
  672. EXOP_SLEEP, CODEOBJ,
  673. EXOP_ACQUIRE, CODEOBJ,
  674. EXOP_SIGNAL, CODEOBJ,
  675. EXOP_WAIT, CODEOBJ,
  676. EXOP_RESET, CODEOBJ,
  677. EXOP_RELEASE, CODEOBJ,
  678. EXOP_FROMBCD, CODEOBJ,
  679. EXOP_TOBCD, CODEOBJ,
  680. EXOP_UNLOAD, CODEOBJ,
  681. EXOP_REVISION, CODEOBJ,
  682. EXOP_DEBUG, CODEOBJ,
  683. EXOP_FATAL, CODEOBJ,
  684. EXOP_OPREGION, CODEOBJ,
  685. EXOP_FIELD, CODEOBJ,
  686. EXOP_DEVICE, CODEOBJ,
  687. EXOP_PROCESSOR, CODEOBJ,
  688. EXOP_POWERRES, CODEOBJ,
  689. EXOP_THERMALZONE, CODEOBJ,
  690. EXOP_IDXFIELD, CODEOBJ,
  691. EXOP_BANKFIELD, CODEOBJ,
  692. 0, 0
  693. };