acdisasm.h 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091
  1. /******************************************************************************
  2. *
  3. * Name: acdisasm.h - AML disassembler
  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 __ACDISASM_H__
  43. #define __ACDISASM_H__
  44. #include "amlresrc.h"
  45. #define BLOCK_NONE 0
  46. #define BLOCK_PAREN 1
  47. #define BLOCK_BRACE 2
  48. #define BLOCK_COMMA_LIST 4
  49. #define ACPI_DEFAULT_RESNAME *(UINT32 *) "__RD"
  50. /*
  51. * Raw table data header. Used by disassembler and data table compiler.
  52. * Do not change.
  53. */
  54. #define ACPI_RAW_TABLE_DATA_HEADER "Raw Table Data"
  55. typedef struct acpi_dmtable_info
  56. {
  57. UINT8 Opcode;
  58. UINT16 Offset;
  59. char *Name;
  60. UINT8 Flags;
  61. } ACPI_DMTABLE_INFO;
  62. /* Values for Flags field above */
  63. #define DT_LENGTH 0x01 /* Field is a subtable length */
  64. #define DT_FLAG 0x02 /* Field is a flag value */
  65. #define DT_NON_ZERO 0x04 /* Field must be non-zero */
  66. #define DT_OPTIONAL 0x08 /* Field is optional */
  67. #define DT_DESCRIBES_OPTIONAL 0x10 /* Field describes an optional field (length, etc.) */
  68. #define DT_COUNT 0x20 /* Currently not used */
  69. /*
  70. * Values for Opcode above.
  71. * Note: 0-7 must not change, they are used as a flag shift value. Other
  72. * than those, new values can be added wherever appropriate.
  73. */
  74. typedef enum
  75. {
  76. /* Simple Data Types */
  77. ACPI_DMT_FLAG0 = 0,
  78. ACPI_DMT_FLAG1 = 1,
  79. ACPI_DMT_FLAG2 = 2,
  80. ACPI_DMT_FLAG3 = 3,
  81. ACPI_DMT_FLAG4 = 4,
  82. ACPI_DMT_FLAG5 = 5,
  83. ACPI_DMT_FLAG6 = 6,
  84. ACPI_DMT_FLAG7 = 7,
  85. ACPI_DMT_FLAGS0,
  86. ACPI_DMT_FLAGS1,
  87. ACPI_DMT_FLAGS2,
  88. ACPI_DMT_FLAGS4,
  89. ACPI_DMT_UINT8,
  90. ACPI_DMT_UINT16,
  91. ACPI_DMT_UINT24,
  92. ACPI_DMT_UINT32,
  93. ACPI_DMT_UINT40,
  94. ACPI_DMT_UINT48,
  95. ACPI_DMT_UINT56,
  96. ACPI_DMT_UINT64,
  97. ACPI_DMT_BUF7,
  98. ACPI_DMT_BUF10,
  99. ACPI_DMT_BUF16,
  100. ACPI_DMT_BUF128,
  101. ACPI_DMT_SIG,
  102. ACPI_DMT_STRING,
  103. ACPI_DMT_NAME4,
  104. ACPI_DMT_NAME6,
  105. ACPI_DMT_NAME8,
  106. /* Types that are decoded to strings and miscellaneous */
  107. ACPI_DMT_ACCWIDTH,
  108. ACPI_DMT_CHKSUM,
  109. ACPI_DMT_GAS,
  110. ACPI_DMT_SPACEID,
  111. ACPI_DMT_UNICODE,
  112. ACPI_DMT_UUID,
  113. /* Types used only for the Data Table Compiler */
  114. ACPI_DMT_BUFFER,
  115. ACPI_DMT_RAW_BUFFER, /* Large, multiple line buffer */
  116. ACPI_DMT_DEVICE_PATH,
  117. ACPI_DMT_LABEL,
  118. ACPI_DMT_PCI_PATH,
  119. /* Types that are specific to particular ACPI tables */
  120. ACPI_DMT_ASF,
  121. ACPI_DMT_DMAR,
  122. ACPI_DMT_DMAR_SCOPE,
  123. ACPI_DMT_EINJACT,
  124. ACPI_DMT_EINJINST,
  125. ACPI_DMT_ERSTACT,
  126. ACPI_DMT_ERSTINST,
  127. ACPI_DMT_FADTPM,
  128. ACPI_DMT_GTDT,
  129. ACPI_DMT_HEST,
  130. ACPI_DMT_HESTNTFY,
  131. ACPI_DMT_HESTNTYP,
  132. ACPI_DMT_IORTMEM,
  133. ACPI_DMT_IVRS,
  134. ACPI_DMT_LPIT,
  135. ACPI_DMT_MADT,
  136. ACPI_DMT_NFIT,
  137. ACPI_DMT_PCCT,
  138. ACPI_DMT_PMTT,
  139. ACPI_DMT_SLIC,
  140. ACPI_DMT_SRAT,
  141. /* Special opcodes */
  142. ACPI_DMT_EXTRA_TEXT,
  143. ACPI_DMT_EXIT
  144. } ACPI_ENTRY_TYPES;
  145. typedef
  146. void (*ACPI_DMTABLE_HANDLER) (
  147. ACPI_TABLE_HEADER *Table);
  148. typedef
  149. ACPI_STATUS (*ACPI_CMTABLE_HANDLER) (
  150. void **PFieldList);
  151. typedef struct acpi_dmtable_data
  152. {
  153. char *Signature;
  154. ACPI_DMTABLE_INFO *TableInfo;
  155. ACPI_DMTABLE_HANDLER TableHandler;
  156. ACPI_CMTABLE_HANDLER CmTableHandler;
  157. const unsigned char *Template;
  158. } ACPI_DMTABLE_DATA;
  159. typedef struct acpi_op_walk_info
  160. {
  161. ACPI_WALK_STATE *WalkState;
  162. ACPI_PARSE_OBJECT *MappingOp;
  163. UINT8 *PreviousAml;
  164. UINT8 *StartAml;
  165. UINT32 Level;
  166. UINT32 LastLevel;
  167. UINT32 Count;
  168. UINT32 BitOffset;
  169. UINT32 Flags;
  170. UINT32 AmlOffset;
  171. } ACPI_OP_WALK_INFO;
  172. /*
  173. * TBD - another copy of this is in asltypes.h, fix
  174. */
  175. #ifndef ASL_WALK_CALLBACK_DEFINED
  176. typedef
  177. ACPI_STATUS (*ASL_WALK_CALLBACK) (
  178. ACPI_PARSE_OBJECT *Op,
  179. UINT32 Level,
  180. void *Context);
  181. #define ASL_WALK_CALLBACK_DEFINED
  182. #endif
  183. typedef
  184. void (*ACPI_RESOURCE_HANDLER) (
  185. ACPI_OP_WALK_INFO *Info,
  186. AML_RESOURCE *Resource,
  187. UINT32 Length,
  188. UINT32 Level);
  189. typedef struct acpi_resource_tag
  190. {
  191. UINT32 BitIndex;
  192. char *Tag;
  193. } ACPI_RESOURCE_TAG;
  194. /* Strings used for decoding flags to ASL keywords */
  195. extern const char *AcpiGbl_WordDecode[];
  196. extern const char *AcpiGbl_IrqDecode[];
  197. extern const char *AcpiGbl_LockRule[];
  198. extern const char *AcpiGbl_AccessTypes[];
  199. extern const char *AcpiGbl_UpdateRules[];
  200. extern const char *AcpiGbl_MatchOps[];
  201. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
  202. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1[];
  203. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf1a[];
  204. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2[];
  205. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf2a[];
  206. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf3[];
  207. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf4[];
  208. extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsfHdr[];
  209. extern ACPI_DMTABLE_INFO AcpiDmTableInfoBoot[];
  210. extern ACPI_DMTABLE_INFO AcpiDmTableInfoBert[];
  211. extern ACPI_DMTABLE_INFO AcpiDmTableInfoBgrt[];
  212. extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
  213. extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
  214. extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
  215. extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt1[];
  216. extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2[];
  217. extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt2a[];
  218. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2[];
  219. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Device[];
  220. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Addr[];
  221. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Size[];
  222. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2Name[];
  223. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbg2OemData[];
  224. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDbgp[];
  225. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar[];
  226. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarHdr[];
  227. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmarScope[];
  228. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar0[];
  229. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar1[];
  230. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar2[];
  231. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar3[];
  232. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDmar4[];
  233. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm[];
  234. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0[];
  235. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm0a[];
  236. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1[];
  237. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm1a[];
  238. extern ACPI_DMTABLE_INFO AcpiDmTableInfoDrtm2[];
  239. extern ACPI_DMTABLE_INFO AcpiDmTableInfoEcdt[];
  240. extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj[];
  241. extern ACPI_DMTABLE_INFO AcpiDmTableInfoEinj0[];
  242. extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst[];
  243. extern ACPI_DMTABLE_INFO AcpiDmTableInfoErst0[];
  244. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[];
  245. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[];
  246. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt2[];
  247. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt3[];
  248. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt5[];
  249. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFadt6[];
  250. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt[];
  251. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdtHdr[];
  252. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt0[];
  253. extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[];
  254. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[];
  255. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[];
  256. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[];
  257. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[];
  258. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[];
  259. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[];
  260. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHeader[];
  261. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest[];
  262. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest0[];
  263. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest1[];
  264. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest2[];
  265. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest6[];
  266. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest7[];
  267. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest8[];
  268. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHest9[];
  269. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestNotify[];
  270. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHestBank[];
  271. extern ACPI_DMTABLE_INFO AcpiDmTableInfoHpet[];
  272. extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpitHdr[];
  273. extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit0[];
  274. extern ACPI_DMTABLE_INFO AcpiDmTableInfoLpit1[];
  275. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort[];
  276. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0[];
  277. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort0a[];
  278. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1[];
  279. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort1a[];
  280. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort2[];
  281. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3[];
  282. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3a[];
  283. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3b[];
  284. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort3c[];
  285. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[];
  286. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[];
  287. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[];
  288. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[];
  289. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[];
  290. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[];
  291. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[];
  292. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[];
  293. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[];
  294. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8b[];
  295. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8c[];
  296. extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHdr[];
  297. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt[];
  298. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt0[];
  299. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt1[];
  300. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt2[];
  301. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt3[];
  302. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt4[];
  303. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt5[];
  304. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt6[];
  305. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt7[];
  306. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt8[];
  307. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt9[];
  308. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt10[];
  309. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt11[];
  310. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[];
  311. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[];
  312. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[];
  313. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[];
  314. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[];
  315. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[];
  316. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[];
  317. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMchi[];
  318. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst[];
  319. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0[];
  320. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0A[];
  321. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst0B[];
  322. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst1[];
  323. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMpst2[];
  324. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct[];
  325. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMsct0[];
  326. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr[];
  327. extern ACPI_DMTABLE_INFO AcpiDmTableInfoMtmr0[];
  328. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit[];
  329. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfitHdr[];
  330. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit0[];
  331. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit1[];
  332. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2[];
  333. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit2a[];
  334. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3[];
  335. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit3a[];
  336. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit4[];
  337. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit5[];
  338. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6[];
  339. extern ACPI_DMTABLE_INFO AcpiDmTableInfoNfit6a[];
  340. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt[];
  341. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt0[];
  342. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1[];
  343. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt1a[];
  344. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmtt2[];
  345. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPmttHdr[];
  346. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct[];
  347. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcctHdr[];
  348. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct0[];
  349. extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[];
  350. extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp1[];
  351. extern ACPI_DMTABLE_INFO AcpiDmTableInfoRsdp2[];
  352. extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt[];
  353. extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3ptHdr[];
  354. extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt0[];
  355. extern ACPI_DMTABLE_INFO AcpiDmTableInfoS3pt1[];
  356. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSbst[];
  357. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlic[];
  358. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSlit[];
  359. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpcr[];
  360. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSpmi[];
  361. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat[];
  362. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSratHdr[];
  363. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat0[];
  364. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[];
  365. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[];
  366. extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[];
  367. extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[];
  368. extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[];
  369. extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[];
  370. extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[];
  371. extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[];
  372. extern ACPI_DMTABLE_INFO AcpiDmTableInfoTpm2[];
  373. extern ACPI_DMTABLE_INFO AcpiDmTableInfoUefi[];
  374. extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc[];
  375. extern ACPI_DMTABLE_INFO AcpiDmTableInfoVrtc0[];
  376. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWaet[];
  377. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat[];
  378. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdat0[];
  379. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWddt[];
  380. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWdrt[];
  381. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt[];
  382. extern ACPI_DMTABLE_INFO AcpiDmTableInfoWpbt0[];
  383. extern ACPI_DMTABLE_INFO AcpiDmTableInfoXenv[];
  384. extern ACPI_DMTABLE_INFO AcpiDmTableInfoGeneric[][2];
  385. /*
  386. * dmtable and ahtable
  387. */
  388. extern const ACPI_DMTABLE_DATA AcpiDmTableData[];
  389. extern const AH_TABLE AcpiSupportedTables[];
  390. UINT8
  391. AcpiDmGenerateChecksum (
  392. void *Table,
  393. UINT32 Length,
  394. UINT8 OriginalChecksum);
  395. const ACPI_DMTABLE_DATA *
  396. AcpiDmGetTableData (
  397. char *Signature);
  398. void
  399. AcpiDmDumpDataTable (
  400. ACPI_TABLE_HEADER *Table);
  401. ACPI_STATUS
  402. AcpiDmDumpTable (
  403. UINT32 TableLength,
  404. UINT32 TableOffset,
  405. void *Table,
  406. UINT32 SubTableLength,
  407. ACPI_DMTABLE_INFO *Info);
  408. void
  409. AcpiDmLineHeader (
  410. UINT32 Offset,
  411. UINT32 ByteLength,
  412. char *Name);
  413. void
  414. AcpiDmLineHeader2 (
  415. UINT32 Offset,
  416. UINT32 ByteLength,
  417. char *Name,
  418. UINT32 Value);
  419. /*
  420. * dmtbdump
  421. */
  422. void
  423. AcpiDmDumpBuffer (
  424. void *Table,
  425. UINT32 BufferOffset,
  426. UINT32 Length,
  427. UINT32 AbsoluteOffset,
  428. char *Header);
  429. void
  430. AcpiDmDumpUnicode (
  431. void *Table,
  432. UINT32 BufferOffset,
  433. UINT32 ByteLength);
  434. void
  435. AcpiDmDumpAsf (
  436. ACPI_TABLE_HEADER *Table);
  437. void
  438. AcpiDmDumpCpep (
  439. ACPI_TABLE_HEADER *Table);
  440. void
  441. AcpiDmDumpCsrt (
  442. ACPI_TABLE_HEADER *Table);
  443. void
  444. AcpiDmDumpDbg2 (
  445. ACPI_TABLE_HEADER *Table);
  446. void
  447. AcpiDmDumpDmar (
  448. ACPI_TABLE_HEADER *Table);
  449. void
  450. AcpiDmDumpDrtm (
  451. ACPI_TABLE_HEADER *Table);
  452. void
  453. AcpiDmDumpEinj (
  454. ACPI_TABLE_HEADER *Table);
  455. void
  456. AcpiDmDumpErst (
  457. ACPI_TABLE_HEADER *Table);
  458. void
  459. AcpiDmDumpFadt (
  460. ACPI_TABLE_HEADER *Table);
  461. void
  462. AcpiDmDumpFpdt (
  463. ACPI_TABLE_HEADER *Table);
  464. void
  465. AcpiDmDumpGtdt (
  466. ACPI_TABLE_HEADER *Table);
  467. void
  468. AcpiDmDumpHest (
  469. ACPI_TABLE_HEADER *Table);
  470. void
  471. AcpiDmDumpIort (
  472. ACPI_TABLE_HEADER *Table);
  473. void
  474. AcpiDmDumpIvrs (
  475. ACPI_TABLE_HEADER *Table);
  476. void
  477. AcpiDmDumpLpit (
  478. ACPI_TABLE_HEADER *Table);
  479. void
  480. AcpiDmDumpMadt (
  481. ACPI_TABLE_HEADER *Table);
  482. void
  483. AcpiDmDumpMcfg (
  484. ACPI_TABLE_HEADER *Table);
  485. void
  486. AcpiDmDumpMpst (
  487. ACPI_TABLE_HEADER *Table);
  488. void
  489. AcpiDmDumpMsct (
  490. ACPI_TABLE_HEADER *Table);
  491. void
  492. AcpiDmDumpMtmr (
  493. ACPI_TABLE_HEADER *Table);
  494. void
  495. AcpiDmDumpNfit (
  496. ACPI_TABLE_HEADER *Table);
  497. void
  498. AcpiDmDumpPcct (
  499. ACPI_TABLE_HEADER *Table);
  500. void
  501. AcpiDmDumpPmtt (
  502. ACPI_TABLE_HEADER *Table);
  503. UINT32
  504. AcpiDmDumpRsdp (
  505. ACPI_TABLE_HEADER *Table);
  506. void
  507. AcpiDmDumpRsdt (
  508. ACPI_TABLE_HEADER *Table);
  509. UINT32
  510. AcpiDmDumpS3pt (
  511. ACPI_TABLE_HEADER *Table);
  512. void
  513. AcpiDmDumpSlic (
  514. ACPI_TABLE_HEADER *Table);
  515. void
  516. AcpiDmDumpSlit (
  517. ACPI_TABLE_HEADER *Table);
  518. void
  519. AcpiDmDumpSrat (
  520. ACPI_TABLE_HEADER *Table);
  521. void
  522. AcpiDmDumpStao (
  523. ACPI_TABLE_HEADER *Table);
  524. void
  525. AcpiDmDumpTcpa (
  526. ACPI_TABLE_HEADER *Table);
  527. void
  528. AcpiDmDumpVrtc (
  529. ACPI_TABLE_HEADER *Table);
  530. void
  531. AcpiDmDumpWdat (
  532. ACPI_TABLE_HEADER *Table);
  533. void
  534. AcpiDmDumpWpbt (
  535. ACPI_TABLE_HEADER *Table);
  536. void
  537. AcpiDmDumpXsdt (
  538. ACPI_TABLE_HEADER *Table);
  539. /*
  540. * dmwalk
  541. */
  542. void
  543. AcpiDmDisassemble (
  544. ACPI_WALK_STATE *WalkState,
  545. ACPI_PARSE_OBJECT *Origin,
  546. UINT32 NumOpcodes);
  547. void
  548. AcpiDmWalkParseTree (
  549. ACPI_PARSE_OBJECT *Op,
  550. ASL_WALK_CALLBACK DescendingCallback,
  551. ASL_WALK_CALLBACK AscendingCallback,
  552. void *Context);
  553. /*
  554. * dmopcode
  555. */
  556. void
  557. AcpiDmDisassembleOneOp (
  558. ACPI_WALK_STATE *WalkState,
  559. ACPI_OP_WALK_INFO *Info,
  560. ACPI_PARSE_OBJECT *Op);
  561. UINT32
  562. AcpiDmListType (
  563. ACPI_PARSE_OBJECT *Op);
  564. void
  565. AcpiDmMethodFlags (
  566. ACPI_PARSE_OBJECT *Op);
  567. void
  568. AcpiDmDisplayTargetPathname (
  569. ACPI_PARSE_OBJECT *Op);
  570. void
  571. AcpiDmNotifyDescription (
  572. ACPI_PARSE_OBJECT *Op);
  573. void
  574. AcpiDmPredefinedDescription (
  575. ACPI_PARSE_OBJECT *Op);
  576. void
  577. AcpiDmFieldPredefinedDescription (
  578. ACPI_PARSE_OBJECT *Op);
  579. void
  580. AcpiDmFieldFlags (
  581. ACPI_PARSE_OBJECT *Op);
  582. void
  583. AcpiDmAddressSpace (
  584. UINT8 SpaceId);
  585. void
  586. AcpiDmRegionFlags (
  587. ACPI_PARSE_OBJECT *Op);
  588. void
  589. AcpiDmMatchOp (
  590. ACPI_PARSE_OBJECT *Op);
  591. /*
  592. * dmnames
  593. */
  594. UINT32
  595. AcpiDmDumpName (
  596. UINT32 Name);
  597. ACPI_STATUS
  598. AcpiPsDisplayObjectPathname (
  599. ACPI_WALK_STATE *WalkState,
  600. ACPI_PARSE_OBJECT *Op);
  601. void
  602. AcpiDmNamestring (
  603. char *Name);
  604. /*
  605. * dmbuffer
  606. */
  607. void
  608. AcpiDmDisasmByteList (
  609. UINT32 Level,
  610. UINT8 *ByteData,
  611. UINT32 ByteCount);
  612. void
  613. AcpiDmByteList (
  614. ACPI_OP_WALK_INFO *Info,
  615. ACPI_PARSE_OBJECT *Op);
  616. void
  617. AcpiDmCheckForHardwareId (
  618. ACPI_PARSE_OBJECT *Op);
  619. void
  620. AcpiDmDecompressEisaId (
  621. UINT32 EncodedId);
  622. BOOLEAN
  623. AcpiDmIsUuidBuffer (
  624. ACPI_PARSE_OBJECT *Op);
  625. BOOLEAN
  626. AcpiDmIsUnicodeBuffer (
  627. ACPI_PARSE_OBJECT *Op);
  628. BOOLEAN
  629. AcpiDmIsStringBuffer (
  630. ACPI_PARSE_OBJECT *Op);
  631. BOOLEAN
  632. AcpiDmIsPldBuffer (
  633. ACPI_PARSE_OBJECT *Op);
  634. /*
  635. * dmdeferred
  636. */
  637. ACPI_STATUS
  638. AcpiDmParseDeferredOps (
  639. ACPI_PARSE_OBJECT *Root);
  640. /*
  641. * dmextern
  642. */
  643. ACPI_STATUS
  644. AcpiDmAddToExternalFileList (
  645. char *PathList);
  646. void
  647. AcpiDmClearExternalFileList (
  648. void);
  649. void
  650. AcpiDmAddOpToExternalList (
  651. ACPI_PARSE_OBJECT *Op,
  652. char *Path,
  653. UINT8 Type,
  654. UINT32 Value,
  655. UINT16 Flags);
  656. void
  657. AcpiDmAddNodeToExternalList (
  658. ACPI_NAMESPACE_NODE *Node,
  659. UINT8 Type,
  660. UINT32 Value,
  661. UINT16 Flags);
  662. void
  663. AcpiDmAddExternalsToNamespace (
  664. void);
  665. UINT32
  666. AcpiDmGetExternalMethodCount (
  667. void);
  668. void
  669. AcpiDmClearExternalList (
  670. void);
  671. void
  672. AcpiDmEmitExternals (
  673. void);
  674. void
  675. AcpiDmUnresolvedWarning (
  676. UINT8 Type);
  677. void
  678. AcpiDmGetExternalsFromFile (
  679. void);
  680. /*
  681. * dmresrc
  682. */
  683. void
  684. AcpiDmDumpInteger8 (
  685. UINT8 Value,
  686. char *Name);
  687. void
  688. AcpiDmDumpInteger16 (
  689. UINT16 Value,
  690. char *Name);
  691. void
  692. AcpiDmDumpInteger32 (
  693. UINT32 Value,
  694. char *Name);
  695. void
  696. AcpiDmDumpInteger64 (
  697. UINT64 Value,
  698. char *Name);
  699. void
  700. AcpiDmResourceTemplate (
  701. ACPI_OP_WALK_INFO *Info,
  702. ACPI_PARSE_OBJECT *Op,
  703. UINT8 *ByteData,
  704. UINT32 ByteCount);
  705. ACPI_STATUS
  706. AcpiDmIsResourceTemplate (
  707. ACPI_WALK_STATE *WalkState,
  708. ACPI_PARSE_OBJECT *Op);
  709. void
  710. AcpiDmBitList (
  711. UINT16 Mask);
  712. void
  713. AcpiDmDescriptorName (
  714. void);
  715. /*
  716. * dmresrcl
  717. */
  718. void
  719. AcpiDmWordDescriptor (
  720. ACPI_OP_WALK_INFO *Info,
  721. AML_RESOURCE *Resource,
  722. UINT32 Length,
  723. UINT32 Level);
  724. void
  725. AcpiDmDwordDescriptor (
  726. ACPI_OP_WALK_INFO *Info,
  727. AML_RESOURCE *Resource,
  728. UINT32 Length,
  729. UINT32 Level);
  730. void
  731. AcpiDmExtendedDescriptor (
  732. ACPI_OP_WALK_INFO *Info,
  733. AML_RESOURCE *Resource,
  734. UINT32 Length,
  735. UINT32 Level);
  736. void
  737. AcpiDmQwordDescriptor (
  738. ACPI_OP_WALK_INFO *Info,
  739. AML_RESOURCE *Resource,
  740. UINT32 Length,
  741. UINT32 Level);
  742. void
  743. AcpiDmMemory24Descriptor (
  744. ACPI_OP_WALK_INFO *Info,
  745. AML_RESOURCE *Resource,
  746. UINT32 Length,
  747. UINT32 Level);
  748. void
  749. AcpiDmMemory32Descriptor (
  750. ACPI_OP_WALK_INFO *Info,
  751. AML_RESOURCE *Resource,
  752. UINT32 Length,
  753. UINT32 Level);
  754. void
  755. AcpiDmFixedMemory32Descriptor (
  756. ACPI_OP_WALK_INFO *Info,
  757. AML_RESOURCE *Resource,
  758. UINT32 Length,
  759. UINT32 Level);
  760. void
  761. AcpiDmGenericRegisterDescriptor (
  762. ACPI_OP_WALK_INFO *Info,
  763. AML_RESOURCE *Resource,
  764. UINT32 Length,
  765. UINT32 Level);
  766. void
  767. AcpiDmInterruptDescriptor (
  768. ACPI_OP_WALK_INFO *Info,
  769. AML_RESOURCE *Resource,
  770. UINT32 Length,
  771. UINT32 Level);
  772. void
  773. AcpiDmVendorLargeDescriptor (
  774. ACPI_OP_WALK_INFO *Info,
  775. AML_RESOURCE *Resource,
  776. UINT32 Length,
  777. UINT32 Level);
  778. void
  779. AcpiDmGpioDescriptor (
  780. ACPI_OP_WALK_INFO *Info,
  781. AML_RESOURCE *Resource,
  782. UINT32 Length,
  783. UINT32 Level);
  784. void
  785. AcpiDmSerialBusDescriptor (
  786. ACPI_OP_WALK_INFO *Info,
  787. AML_RESOURCE *Resource,
  788. UINT32 Length,
  789. UINT32 Level);
  790. void
  791. AcpiDmVendorCommon (
  792. char *Name,
  793. UINT8 *ByteData,
  794. UINT32 Length,
  795. UINT32 Level);
  796. /*
  797. * dmresrcs
  798. */
  799. void
  800. AcpiDmIrqDescriptor (
  801. ACPI_OP_WALK_INFO *Info,
  802. AML_RESOURCE *Resource,
  803. UINT32 Length,
  804. UINT32 Level);
  805. void
  806. AcpiDmDmaDescriptor (
  807. ACPI_OP_WALK_INFO *Info,
  808. AML_RESOURCE *Resource,
  809. UINT32 Length,
  810. UINT32 Level);
  811. void
  812. AcpiDmFixedDmaDescriptor (
  813. ACPI_OP_WALK_INFO *Info,
  814. AML_RESOURCE *Resource,
  815. UINT32 Length,
  816. UINT32 Level);
  817. void
  818. AcpiDmIoDescriptor (
  819. ACPI_OP_WALK_INFO *Info,
  820. AML_RESOURCE *Resource,
  821. UINT32 Length,
  822. UINT32 Level);
  823. void
  824. AcpiDmFixedIoDescriptor (
  825. ACPI_OP_WALK_INFO *Info,
  826. AML_RESOURCE *Resource,
  827. UINT32 Length,
  828. UINT32 Level);
  829. void
  830. AcpiDmStartDependentDescriptor (
  831. ACPI_OP_WALK_INFO *Info,
  832. AML_RESOURCE *Resource,
  833. UINT32 Length,
  834. UINT32 Level);
  835. void
  836. AcpiDmEndDependentDescriptor (
  837. ACPI_OP_WALK_INFO *Info,
  838. AML_RESOURCE *Resource,
  839. UINT32 Length,
  840. UINT32 Level);
  841. void
  842. AcpiDmVendorSmallDescriptor (
  843. ACPI_OP_WALK_INFO *Info,
  844. AML_RESOURCE *Resource,
  845. UINT32 Length,
  846. UINT32 Level);
  847. /*
  848. * dmutils
  849. */
  850. void
  851. AcpiDmDecodeAttribute (
  852. UINT8 Attribute);
  853. void
  854. AcpiDmIndent (
  855. UINT32 Level);
  856. BOOLEAN
  857. AcpiDmCommaIfListMember (
  858. ACPI_PARSE_OBJECT *Op);
  859. void
  860. AcpiDmCommaIfFieldMember (
  861. ACPI_PARSE_OBJECT *Op);
  862. /*
  863. * dmrestag
  864. */
  865. void
  866. AcpiDmFindResources (
  867. ACPI_PARSE_OBJECT *Root);
  868. void
  869. AcpiDmCheckResourceReference (
  870. ACPI_PARSE_OBJECT *Op,
  871. ACPI_WALK_STATE *WalkState);
  872. /*
  873. * dmcstyle
  874. */
  875. BOOLEAN
  876. AcpiDmCheckForSymbolicOpcode (
  877. ACPI_PARSE_OBJECT *Op,
  878. ACPI_OP_WALK_INFO *Info);
  879. void
  880. AcpiDmCloseOperator (
  881. ACPI_PARSE_OBJECT *Op);
  882. /*
  883. * dmtables
  884. */
  885. void
  886. AdDisassemblerHeader (
  887. char *Filename,
  888. UINT8 TableType);
  889. #define ACPI_IS_AML_TABLE 0
  890. #define ACPI_IS_DATA_TABLE 1
  891. /*
  892. * adisasm
  893. */
  894. ACPI_STATUS
  895. AdAmlDisassemble (
  896. BOOLEAN OutToFile,
  897. char *Filename,
  898. char *Prefix,
  899. char **OutFilename);
  900. ACPI_STATUS
  901. AdGetLocalTables (
  902. void);
  903. ACPI_STATUS
  904. AdParseTable (
  905. ACPI_TABLE_HEADER *Table,
  906. ACPI_OWNER_ID *OwnerId,
  907. BOOLEAN LoadTable,
  908. BOOLEAN External);
  909. ACPI_STATUS
  910. AdDisplayTables (
  911. char *Filename,
  912. ACPI_TABLE_HEADER *Table);
  913. ACPI_STATUS
  914. AdDisplayStatistics (
  915. void);
  916. #endif /* __ACDISASM_H__ */