acpredef.h 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132
  1. /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
  2. /******************************************************************************
  3. *
  4. * Name: acpredef - Information table for ACPI predefined methods and objects
  5. *
  6. * Copyright (C) 2000 - 2018, Intel Corp.
  7. *
  8. *****************************************************************************/
  9. #ifndef __ACPREDEF_H__
  10. #define __ACPREDEF_H__
  11. /******************************************************************************
  12. *
  13. * Return Package types
  14. *
  15. * 1) PTYPE1 packages do not contain subpackages.
  16. *
  17. * ACPI_PTYPE1_FIXED: Fixed-length length, 1 or 2 object types:
  18. * object type
  19. * count
  20. * object type
  21. * count
  22. *
  23. * ACPI_PTYPE1_VAR: Variable-length length. Zero-length package is allowed:
  24. * object type (Int/Buf/Ref)
  25. *
  26. * ACPI_PTYPE1_OPTION: Package has some required and some optional elements
  27. * (Used for _PRW)
  28. *
  29. *
  30. * 2) PTYPE2 packages contain a Variable-length number of subpackages. Each
  31. * of the different types describe the contents of each of the subpackages.
  32. *
  33. * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types. Zero-length
  34. * parent package is allowed:
  35. * object type
  36. * count
  37. * object type
  38. * count
  39. * (Used for _ALR,_MLS,_PSS,_TRT,_TSS)
  40. *
  41. * ACPI_PTYPE2_COUNT: Each subpackage has a count as first element.
  42. * Zero-length parent package is allowed:
  43. * object type
  44. * (Used for _CSD,_PSD,_TSD)
  45. *
  46. * ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types:
  47. * object type
  48. * count
  49. * object type
  50. * count
  51. * (Used for _CST)
  52. *
  53. * ACPI_PTYPE2_FIXED: Each subpackage is of Fixed-length. Zero-length
  54. * parent package is allowed.
  55. * (Used for _PRT)
  56. *
  57. * ACPI_PTYPE2_MIN: Each subpackage has a Variable-length but minimum length.
  58. * Zero-length parent package is allowed:
  59. * (Used for _HPX)
  60. *
  61. * ACPI_PTYPE2_REV_FIXED: Revision at start, each subpackage is Fixed-length
  62. * (Used for _ART, _FPS)
  63. *
  64. * ACPI_PTYPE2_FIX_VAR: Each subpackage consists of some fixed-length elements
  65. * followed by an optional element. Zero-length parent package is allowed.
  66. * object type
  67. * count
  68. * object type
  69. * count = 0 (optional)
  70. * (Used for _DLM)
  71. *
  72. * ACPI_PTYPE2_VAR_VAR: Variable number of subpackages, each of either a
  73. * constant or variable length. The subpackages are preceded by a
  74. * constant number of objects.
  75. * (Used for _LPI, _RDI)
  76. *
  77. * ACPI_PTYPE2_UUID_PAIR: Each subpackage is preceded by a UUID Buffer. The UUID
  78. * defines the format of the package. Zero-length parent package is
  79. * allowed.
  80. * (Used for _DSD)
  81. *
  82. *****************************************************************************/
  83. enum acpi_return_package_types {
  84. ACPI_PTYPE1_FIXED = 1,
  85. ACPI_PTYPE1_VAR = 2,
  86. ACPI_PTYPE1_OPTION = 3,
  87. ACPI_PTYPE2 = 4,
  88. ACPI_PTYPE2_COUNT = 5,
  89. ACPI_PTYPE2_PKG_COUNT = 6,
  90. ACPI_PTYPE2_FIXED = 7,
  91. ACPI_PTYPE2_MIN = 8,
  92. ACPI_PTYPE2_REV_FIXED = 9,
  93. ACPI_PTYPE2_FIX_VAR = 10,
  94. ACPI_PTYPE2_VAR_VAR = 11,
  95. ACPI_PTYPE2_UUID_PAIR = 12,
  96. ACPI_PTYPE_CUSTOM = 13
  97. };
  98. /* Support macros for users of the predefined info table */
  99. #define METHOD_PREDEF_ARGS_MAX 4
  100. #define METHOD_ARG_BIT_WIDTH 3
  101. #define METHOD_ARG_MASK 0x0007
  102. #define ARG_COUNT_IS_MINIMUM 0x8000
  103. #define METHOD_MAX_ARG_TYPE ACPI_TYPE_PACKAGE
  104. #define METHOD_GET_ARG_COUNT(arg_list) ((arg_list) & METHOD_ARG_MASK)
  105. #define METHOD_GET_NEXT_TYPE(arg_list) (((arg_list) >>= METHOD_ARG_BIT_WIDTH) & METHOD_ARG_MASK)
  106. /* Macros used to build the predefined info table */
  107. #define METHOD_0ARGS 0
  108. #define METHOD_1ARGS(a1) (1 | (a1 << 3))
  109. #define METHOD_2ARGS(a1,a2) (2 | (a1 << 3) | (a2 << 6))
  110. #define METHOD_3ARGS(a1,a2,a3) (3 | (a1 << 3) | (a2 << 6) | (a3 << 9))
  111. #define METHOD_4ARGS(a1,a2,a3,a4) (4 | (a1 << 3) | (a2 << 6) | (a3 << 9) | (a4 << 12))
  112. #define METHOD_RETURNS(type) (type)
  113. #define METHOD_NO_RETURN_VALUE 0
  114. #define PACKAGE_INFO(a,b,c,d,e,f) {{{(a),(b),(c),(d)}, ((((u16)(f)) << 8) | (e)), 0}}
  115. /* Support macros for the resource descriptor info table */
  116. #define WIDTH_1 0x0001
  117. #define WIDTH_2 0x0002
  118. #define WIDTH_3 0x0004
  119. #define WIDTH_8 0x0008
  120. #define WIDTH_16 0x0010
  121. #define WIDTH_32 0x0020
  122. #define WIDTH_64 0x0040
  123. #define VARIABLE_DATA 0x0080
  124. #define NUM_RESOURCE_WIDTHS 8
  125. #define WIDTH_ADDRESS WIDTH_16 | WIDTH_32 | WIDTH_64
  126. #ifdef ACPI_CREATE_PREDEFINED_TABLE
  127. /******************************************************************************
  128. *
  129. * Predefined method/object information table.
  130. *
  131. * These are the names that can actually be evaluated via acpi_evaluate_object.
  132. * Not present in this table are the following:
  133. *
  134. * 1) Predefined/Reserved names that are not usually evaluated via
  135. * acpi_evaluate_object:
  136. * _Lxx and _Exx GPE methods
  137. * _Qxx EC methods
  138. * _T_x compiler temporary variables
  139. * _Wxx wake events
  140. *
  141. * 2) Predefined names that never actually exist within the AML code:
  142. * Predefined resource descriptor field names
  143. *
  144. * 3) Predefined names that are implemented within ACPICA:
  145. * _OSI
  146. *
  147. * The main entries in the table each contain the following items:
  148. *
  149. * name - The ACPI reserved name
  150. * argument_list - Contains (in 16 bits), the number of required
  151. * arguments to the method (3 bits), and a 3-bit type
  152. * field for each argument (up to 4 arguments). The
  153. * METHOD_?ARGS macros generate the correct packed data.
  154. * expected_btypes - Allowed type(s) for the return value.
  155. * 0 means that no return value is expected.
  156. *
  157. * For methods that return packages, the next entry in the table contains
  158. * information about the expected structure of the package. This information
  159. * is saved here (rather than in a separate table) in order to minimize the
  160. * overall size of the stored data.
  161. *
  162. * Note: The additional braces are intended to promote portability.
  163. *
  164. * Note2: Table is used by the kernel-resident subsystem, the iASL compiler,
  165. * and the acpi_help utility.
  166. *
  167. * TBD: _PRT - currently ignore reversed entries. Attempt to fix in nsrepair.
  168. * Possibly fixing package elements like _BIF, etc.
  169. *
  170. *****************************************************************************/
  171. const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
  172. {{"_AC0", METHOD_0ARGS,
  173. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  174. {{"_AC1", METHOD_0ARGS,
  175. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  176. {{"_AC2", METHOD_0ARGS,
  177. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  178. {{"_AC3", METHOD_0ARGS,
  179. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  180. {{"_AC4", METHOD_0ARGS,
  181. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  182. {{"_AC5", METHOD_0ARGS,
  183. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  184. {{"_AC6", METHOD_0ARGS,
  185. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  186. {{"_AC7", METHOD_0ARGS,
  187. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  188. {{"_AC8", METHOD_0ARGS,
  189. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  190. {{"_AC9", METHOD_0ARGS,
  191. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  192. {{"_ADR", METHOD_0ARGS,
  193. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  194. {{"_AEI", METHOD_0ARGS,
  195. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  196. {{"_AL0", METHOD_0ARGS,
  197. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  198. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  199. {{"_AL1", METHOD_0ARGS,
  200. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  201. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  202. {{"_AL2", METHOD_0ARGS,
  203. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  204. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  205. {{"_AL3", METHOD_0ARGS,
  206. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  207. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  208. {{"_AL4", METHOD_0ARGS,
  209. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  210. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  211. {{"_AL5", METHOD_0ARGS,
  212. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  213. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  214. {{"_AL6", METHOD_0ARGS,
  215. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  216. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  217. {{"_AL7", METHOD_0ARGS,
  218. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  219. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  220. {{"_AL8", METHOD_0ARGS,
  221. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  222. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  223. {{"_AL9", METHOD_0ARGS,
  224. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  225. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  226. {{"_ALC", METHOD_0ARGS,
  227. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  228. {{"_ALI", METHOD_0ARGS,
  229. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  230. {{"_ALP", METHOD_0ARGS,
  231. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  232. {{"_ALR", METHOD_0ARGS,
  233. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 2 (Ints) */
  234. PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
  235. {{"_ALT", METHOD_0ARGS,
  236. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  237. {{"_ART", METHOD_0ARGS,
  238. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Ref/11 Int) */
  239. PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_REFERENCE, 2,
  240. ACPI_RTYPE_INTEGER, 11, 0),
  241. {{"_BBN", METHOD_0ARGS,
  242. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  243. {{"_BCL", METHOD_0ARGS,
  244. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
  245. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  246. {{"_BCM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  247. METHOD_NO_RETURN_VALUE}},
  248. {{"_BCT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  249. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  250. {{"_BDN", METHOD_0ARGS,
  251. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  252. {{"_BFS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  253. METHOD_NO_RETURN_VALUE}},
  254. {{"_BIF", METHOD_0ARGS,
  255. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (9 Int),(4 Str) */
  256. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9,
  257. ACPI_RTYPE_STRING, 4, 0),
  258. {{"_BIX", METHOD_0ARGS,
  259. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (16 Int),(4 Str) */
  260. PACKAGE_INFO(ACPI_PTYPE_CUSTOM, ACPI_RTYPE_INTEGER, 16,
  261. ACPI_RTYPE_STRING, 4, 0),
  262. {{"_BLT",
  263. METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  264. METHOD_NO_RETURN_VALUE}},
  265. {{"_BMA", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  266. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  267. {{"_BMC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  268. METHOD_NO_RETURN_VALUE}},
  269. {{"_BMD", METHOD_0ARGS,
  270. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (5 Int) */
  271. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  272. {{"_BMS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  273. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  274. {{"_BQC", METHOD_0ARGS,
  275. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  276. {{"_BST", METHOD_0ARGS,
  277. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  278. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  279. {{"_BTH", METHOD_1ARGS(ACPI_TYPE_INTEGER), /* ACPI 6.0 */
  280. METHOD_NO_RETURN_VALUE}},
  281. {{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  282. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  283. {{"_BTP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  284. METHOD_NO_RETURN_VALUE}},
  285. {{"_CBA", METHOD_0ARGS,
  286. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See PCI firmware spec 3.0 */
  287. {{"_CCA", METHOD_0ARGS,
  288. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* ACPI 5.1 */
  289. {{"_CDM", METHOD_0ARGS,
  290. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  291. {{"_CID", METHOD_0ARGS,
  292. METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints/Strs) */
  293. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,
  294. 0, 0, 0),
  295. {{"_CLS", METHOD_0ARGS,
  296. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */
  297. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
  298. {{"_CPC", METHOD_0ARGS,
  299. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints/Bufs) */
  300. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0,
  301. 0, 0, 0),
  302. {{"_CR3", METHOD_0ARGS, /* ACPI 6.0 */
  303. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  304. {{"_CRS", METHOD_0ARGS,
  305. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  306. {{"_CRT", METHOD_0ARGS,
  307. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  308. {{"_CSD", METHOD_0ARGS,
  309. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(n), n-1 Int) */
  310. PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  311. {{"_CST", METHOD_0ARGS,
  312. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */
  313. PACKAGE_INFO(ACPI_PTYPE2_PKG_COUNT, ACPI_RTYPE_BUFFER, 1,
  314. ACPI_RTYPE_INTEGER, 3, 0),
  315. {{"_CWS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  316. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  317. {{"_DCK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  318. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  319. {{"_DCS", METHOD_0ARGS,
  320. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  321. {{"_DDC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  322. METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER)}},
  323. {{"_DDN", METHOD_0ARGS,
  324. METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  325. {{"_DEP", METHOD_0ARGS,
  326. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  327. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  328. {{"_DGS", METHOD_0ARGS,
  329. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  330. {{"_DIS", METHOD_0ARGS,
  331. METHOD_NO_RETURN_VALUE}},
  332. {{"_DLM", METHOD_0ARGS,
  333. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (1 Ref, 0/1 Optional Buf/Ref) */
  334. PACKAGE_INFO(ACPI_PTYPE2_FIX_VAR, ACPI_RTYPE_REFERENCE, 1,
  335. ACPI_RTYPE_REFERENCE | ACPI_RTYPE_BUFFER, 0, 0),
  336. {{"_DMA", METHOD_0ARGS,
  337. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  338. {{"_DOD", METHOD_0ARGS,
  339. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
  340. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  341. {{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  342. METHOD_NO_RETURN_VALUE}},
  343. {{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */
  344. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */
  345. PACKAGE_INFO(ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1,
  346. ACPI_RTYPE_PACKAGE, 1, 0),
  347. {{"_DSM",
  348. METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
  349. ACPI_TYPE_PACKAGE),
  350. METHOD_RETURNS(ACPI_RTYPE_ALL)}}, /* Must return a value, but it can be of any type */
  351. {{"_DSS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  352. METHOD_NO_RETURN_VALUE}},
  353. {{"_DSW",
  354. METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  355. METHOD_NO_RETURN_VALUE}},
  356. {{"_DTI", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  357. METHOD_NO_RETURN_VALUE}},
  358. {{"_EC_", METHOD_0ARGS,
  359. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  360. {{"_EDL", METHOD_0ARGS,
  361. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  362. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  363. {{"_EJ0", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  364. METHOD_NO_RETURN_VALUE}},
  365. {{"_EJ1", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  366. METHOD_NO_RETURN_VALUE}},
  367. {{"_EJ2", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  368. METHOD_NO_RETURN_VALUE}},
  369. {{"_EJ3", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  370. METHOD_NO_RETURN_VALUE}},
  371. {{"_EJ4", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  372. METHOD_NO_RETURN_VALUE}},
  373. {{"_EJD", METHOD_0ARGS,
  374. METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  375. {{"_ERR",
  376. METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_STRING, ACPI_TYPE_INTEGER),
  377. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* Internal use only, used by ACPICA test suites */
  378. {{"_EVT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  379. METHOD_NO_RETURN_VALUE}},
  380. {{"_FDE", METHOD_0ARGS,
  381. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  382. {{"_FDI", METHOD_0ARGS,
  383. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (16 Int) */
  384. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, 0, 0, 0),
  385. {{"_FDM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  386. METHOD_NO_RETURN_VALUE}},
  387. {{"_FIF", METHOD_0ARGS,
  388. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  389. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  390. {{"_FIT", METHOD_0ARGS,
  391. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, /* ACPI 6.0 */
  392. {{"_FIX", METHOD_0ARGS,
  393. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
  394. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  395. {{"_FPS", METHOD_0ARGS,
  396. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (5 Int) */
  397. PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  398. {{"_FSL", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  399. METHOD_NO_RETURN_VALUE}},
  400. {{"_FST", METHOD_0ARGS,
  401. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */
  402. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
  403. {{"_GAI", METHOD_0ARGS,
  404. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  405. {{"_GCP", METHOD_0ARGS,
  406. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  407. {{"_GHL", METHOD_0ARGS,
  408. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  409. {{"_GLK", METHOD_0ARGS,
  410. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  411. {{"_GPD", METHOD_0ARGS,
  412. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  413. {{"_GPE", METHOD_0ARGS,
  414. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* _GPE method, not _GPE scope */
  415. {{"_GRT", METHOD_0ARGS,
  416. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  417. {{"_GSB", METHOD_0ARGS,
  418. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  419. {{"_GTF", METHOD_0ARGS,
  420. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  421. {{"_GTM", METHOD_0ARGS,
  422. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  423. {{"_GTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  424. METHOD_NO_RETURN_VALUE}},
  425. {{"_GWS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  426. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  427. {{"_HID", METHOD_0ARGS,
  428. METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING)}},
  429. {{"_HMA", METHOD_0ARGS,
  430. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  431. {{"_HOT", METHOD_0ARGS,
  432. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  433. {{"_HPP", METHOD_0ARGS,
  434. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  435. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  436. /*
  437. * For _HPX, a single package is returned, containing a variable-length number
  438. * of subpackages. Each subpackage contains a PCI record setting.
  439. * There are several different type of record settings, of different
  440. * lengths, but all elements of all settings are Integers.
  441. */
  442. {{"_HPX", METHOD_0ARGS,
  443. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (var Ints) */
  444. PACKAGE_INFO(ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  445. {{"_HRV", METHOD_0ARGS,
  446. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  447. {{"_IFT", METHOD_0ARGS,
  448. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See IPMI spec */
  449. {{"_INI", METHOD_0ARGS,
  450. METHOD_NO_RETURN_VALUE}},
  451. {{"_IRC", METHOD_0ARGS,
  452. METHOD_NO_RETURN_VALUE}},
  453. {{"_LCK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  454. METHOD_NO_RETURN_VALUE}},
  455. {{"_LID", METHOD_0ARGS,
  456. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  457. {{"_LPD", METHOD_0ARGS,
  458. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */
  459. PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
  460. {{"_LPI", METHOD_0ARGS, /* ACPI 6.0 */
  461. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (3 Int, n Pkg (10 Int/Buf) */
  462. PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 3,
  463. ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER | ACPI_RTYPE_STRING,
  464. 10, 0),
  465. {{"_LSI", METHOD_0ARGS,
  466. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}},
  467. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
  468. {{"_LSR", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  469. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}},
  470. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 1,
  471. ACPI_RTYPE_BUFFER, 1, 0),
  472. {{"_LSW",
  473. METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_BUFFER),
  474. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  475. {{"_MAT", METHOD_0ARGS,
  476. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  477. {{"_MBM", METHOD_0ARGS,
  478. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (8 Int) */
  479. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 8, 0, 0, 0),
  480. {{"_MLS", METHOD_0ARGS,
  481. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (1 Str/1 Buf) */
  482. PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_STRING, 1, ACPI_RTYPE_BUFFER, 1,
  483. 0),
  484. {{"_MSG", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  485. METHOD_NO_RETURN_VALUE}},
  486. {{"_MSM",
  487. METHOD_4ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
  488. ACPI_TYPE_INTEGER),
  489. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  490. {{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */
  491. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  492. {{"_NTT", METHOD_0ARGS,
  493. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  494. {{"_OFF", METHOD_0ARGS,
  495. METHOD_NO_RETURN_VALUE}},
  496. {{"_ON_", METHOD_0ARGS,
  497. METHOD_NO_RETURN_VALUE}},
  498. {{"_OS_", METHOD_0ARGS,
  499. METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  500. {{"_OSC",
  501. METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
  502. ACPI_TYPE_BUFFER),
  503. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  504. {{"_OST",
  505. METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_BUFFER),
  506. METHOD_NO_RETURN_VALUE}},
  507. {{"_PAI", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  508. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  509. {{"_PCL", METHOD_0ARGS,
  510. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  511. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  512. {{"_PCT", METHOD_0ARGS,
  513. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Buf) */
  514. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0),
  515. {{"_PDC", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  516. METHOD_NO_RETURN_VALUE}},
  517. {{"_PDL", METHOD_0ARGS,
  518. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  519. {{"_PIC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  520. METHOD_NO_RETURN_VALUE}},
  521. {{"_PIF", METHOD_0ARGS,
  522. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int),(3 Str) */
  523. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,
  524. ACPI_RTYPE_STRING, 3, 0),
  525. {{"_PLD", METHOD_0ARGS,
  526. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Bufs) */
  527. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0, 0, 0, 0),
  528. {{"_PMC", METHOD_0ARGS,
  529. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (11 Int),(3 Str) */
  530. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 11,
  531. ACPI_RTYPE_STRING, 3, 0),
  532. {{"_PMD", METHOD_0ARGS,
  533. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  534. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  535. {{"_PMM", METHOD_0ARGS,
  536. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  537. {{"_PPC", METHOD_0ARGS,
  538. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  539. {{"_PPE", METHOD_0ARGS,
  540. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See dig64 spec */
  541. {{"_PR0", METHOD_0ARGS,
  542. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  543. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  544. {{"_PR1", METHOD_0ARGS,
  545. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  546. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  547. {{"_PR2", METHOD_0ARGS,
  548. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  549. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  550. {{"_PR3", METHOD_0ARGS,
  551. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  552. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  553. {{"_PRE", METHOD_0ARGS,
  554. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  555. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  556. {{"_PRL", METHOD_0ARGS,
  557. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  558. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  559. {{"_PRR", METHOD_0ARGS, /* ACPI 6.0 */
  560. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Ref) */
  561. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_REFERENCE, 1, 0, 0, 0),
  562. {{"_PRS", METHOD_0ARGS,
  563. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  564. /*
  565. * For _PRT, many BIOSs reverse the 3rd and 4th Package elements (Source
  566. * and source_index). This bug is so prevalent that there is code in the
  567. * ACPICA Resource Manager to detect this and switch them back. For now,
  568. * do not allow and issue a warning. To allow this and eliminate the
  569. * warning, add the ACPI_RTYPE_REFERENCE type to the 4th element (index 3)
  570. * in the statement below.
  571. */
  572. {{"_PRT", METHOD_0ARGS,
  573. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */
  574. PACKAGE_INFO(ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,
  575. ACPI_RTYPE_INTEGER,
  576. ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE,
  577. ACPI_RTYPE_INTEGER),
  578. {{"_PRW", METHOD_0ARGS,
  579. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */
  580. PACKAGE_INFO(ACPI_PTYPE1_OPTION, 2,
  581. ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE,
  582. ACPI_RTYPE_INTEGER, ACPI_RTYPE_REFERENCE, 0),
  583. {{"_PS0", METHOD_0ARGS,
  584. METHOD_NO_RETURN_VALUE}},
  585. {{"_PS1", METHOD_0ARGS,
  586. METHOD_NO_RETURN_VALUE}},
  587. {{"_PS2", METHOD_0ARGS,
  588. METHOD_NO_RETURN_VALUE}},
  589. {{"_PS3", METHOD_0ARGS,
  590. METHOD_NO_RETURN_VALUE}},
  591. {{"_PSC", METHOD_0ARGS,
  592. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  593. {{"_PSD", METHOD_0ARGS,
  594. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (5 Int) with count */
  595. PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  596. {{"_PSE", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  597. METHOD_NO_RETURN_VALUE}},
  598. {{"_PSL", METHOD_0ARGS,
  599. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  600. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  601. {{"_PSR", METHOD_0ARGS,
  602. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  603. {{"_PSS", METHOD_0ARGS,
  604. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (6 Int) */
  605. PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6, 0, 0, 0),
  606. {{"_PSV", METHOD_0ARGS,
  607. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  608. {{"_PSW", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  609. METHOD_NO_RETURN_VALUE}},
  610. {{"_PTC", METHOD_0ARGS,
  611. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Buf) */
  612. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0),
  613. {{"_PTP", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  614. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  615. {{"_PTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  616. METHOD_NO_RETURN_VALUE}},
  617. {{"_PUR", METHOD_0ARGS,
  618. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Int) */
  619. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
  620. {{"_PXM", METHOD_0ARGS,
  621. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  622. {{"_RDI", METHOD_0ARGS, /* ACPI 6.0 */
  623. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int, n Pkg (m Ref)) */
  624. PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 1,
  625. ACPI_RTYPE_REFERENCE, 0, 0),
  626. {{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  627. METHOD_NO_RETURN_VALUE}},
  628. {{"_REV", METHOD_0ARGS,
  629. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  630. {{"_RMV", METHOD_0ARGS,
  631. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  632. {{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  633. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  634. {{"_RST", METHOD_0ARGS, /* ACPI 6.0 */
  635. METHOD_NO_RETURN_VALUE}},
  636. {{"_RTV", METHOD_0ARGS,
  637. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  638. /*
  639. * For _S0_ through _S5_, the ACPI spec defines a return Package
  640. * containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers.
  641. * Allow this by making the objects "Variable-length length", but all elements
  642. * must be Integers.
  643. */
  644. {{"_S0_", METHOD_0ARGS,
  645. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  646. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  647. {{"_S1_", METHOD_0ARGS,
  648. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  649. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  650. {{"_S2_", METHOD_0ARGS,
  651. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  652. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  653. {{"_S3_", METHOD_0ARGS,
  654. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  655. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  656. {{"_S4_", METHOD_0ARGS,
  657. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  658. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  659. {{"_S5_", METHOD_0ARGS,
  660. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  661. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  662. {{"_S1D", METHOD_0ARGS,
  663. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  664. {{"_S2D", METHOD_0ARGS,
  665. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  666. {{"_S3D", METHOD_0ARGS,
  667. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  668. {{"_S4D", METHOD_0ARGS,
  669. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  670. {{"_S0W", METHOD_0ARGS,
  671. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  672. {{"_S1W", METHOD_0ARGS,
  673. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  674. {{"_S2W", METHOD_0ARGS,
  675. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  676. {{"_S3W", METHOD_0ARGS,
  677. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  678. {{"_S4W", METHOD_0ARGS,
  679. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  680. {{"_SBS", METHOD_0ARGS,
  681. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  682. {{"_SCP", METHOD_1ARGS(ACPI_TYPE_INTEGER) | ARG_COUNT_IS_MINIMUM,
  683. METHOD_NO_RETURN_VALUE}}, /* Acpi 1.0 allowed 1 integer arg. Acpi 3.0 expanded to 3 args. Allow both. */
  684. {{"_SDD", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  685. METHOD_NO_RETURN_VALUE}},
  686. {{"_SEG", METHOD_0ARGS,
  687. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  688. {{"_SHL", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  689. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  690. {{"_SLI", METHOD_0ARGS,
  691. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  692. {{"_SPD", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  693. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  694. {{"_SRS", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  695. METHOD_NO_RETURN_VALUE}},
  696. {{"_SRT", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  697. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  698. {{"_SRV", METHOD_0ARGS,
  699. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See IPMI spec */
  700. {{"_SST", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  701. METHOD_NO_RETURN_VALUE}},
  702. {{"_STA", METHOD_0ARGS,
  703. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  704. {{"_STM",
  705. METHOD_3ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_BUFFER, ACPI_TYPE_BUFFER),
  706. METHOD_NO_RETURN_VALUE}},
  707. {{"_STP", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  708. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  709. {{"_STR", METHOD_0ARGS,
  710. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  711. {{"_STV", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  712. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  713. {{"_SUB", METHOD_0ARGS,
  714. METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  715. {{"_SUN", METHOD_0ARGS,
  716. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  717. {{"_SWS", METHOD_0ARGS,
  718. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  719. {{"_TC1", METHOD_0ARGS,
  720. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  721. {{"_TC2", METHOD_0ARGS,
  722. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  723. {{"_TDL", METHOD_0ARGS,
  724. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  725. {{"_TFP", METHOD_0ARGS, /* ACPI 6.0 */
  726. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  727. {{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  728. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  729. {{"_TIV", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  730. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  731. {{"_TMP", METHOD_0ARGS,
  732. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  733. {{"_TPC", METHOD_0ARGS,
  734. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  735. {{"_TPT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  736. METHOD_NO_RETURN_VALUE}},
  737. {{"_TRT", METHOD_0ARGS,
  738. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 2 Ref/6 Int */
  739. PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER,
  740. 6, 0),
  741. {{"_TSD", METHOD_0ARGS,
  742. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */
  743. PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  744. {{"_TSN", METHOD_0ARGS, /* ACPI 6.0 */
  745. METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
  746. {{"_TSP", METHOD_0ARGS,
  747. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  748. {{"_TSS", METHOD_0ARGS,
  749. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int */
  750. PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  751. {{"_TST", METHOD_0ARGS,
  752. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  753. {{"_TTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  754. METHOD_NO_RETURN_VALUE}},
  755. {{"_TZD", METHOD_0ARGS,
  756. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  757. PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  758. {{"_TZM", METHOD_0ARGS,
  759. METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
  760. {{"_TZP", METHOD_0ARGS,
  761. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  762. {{"_UID", METHOD_0ARGS,
  763. METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING)}},
  764. {{"_UPC", METHOD_0ARGS,
  765. METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  766. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  767. {{"_UPD", METHOD_0ARGS,
  768. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  769. {{"_UPP", METHOD_0ARGS,
  770. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  771. {{"_VPO", METHOD_0ARGS,
  772. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  773. /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
  774. {{"_WAK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  775. METHOD_RETURNS(ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER |
  776. ACPI_RTYPE_PACKAGE)}},
  777. PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0), /* Fixed-length (2 Int), but is optional */
  778. /* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */
  779. {{"_WDG", METHOD_0ARGS,
  780. METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  781. {{"_WED", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  782. METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING |
  783. ACPI_RTYPE_BUFFER)}},
  784. {{"_WPC", METHOD_0ARGS,
  785. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* ACPI 6.1 */
  786. {{"_WPP", METHOD_0ARGS,
  787. METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* ACPI 6.1 */
  788. PACKAGE_INFO(0, 0, 0, 0, 0, 0) /* Table terminator */
  789. };
  790. #else
  791. extern const union acpi_predefined_info acpi_gbl_predefined_methods[];
  792. #endif
  793. #if (defined ACPI_CREATE_RESOURCE_TABLE && defined ACPI_APPLICATION)
  794. /******************************************************************************
  795. *
  796. * Predefined names for use in Resource Descriptors. These names do not
  797. * appear in the global Predefined Name table (since these names never
  798. * appear in actual AML byte code, only in the original ASL)
  799. *
  800. * Note: Used by iASL compiler and acpi_help utility only.
  801. *
  802. *****************************************************************************/
  803. const union acpi_predefined_info acpi_gbl_resource_names[] = {
  804. {{"_ADR", WIDTH_16 | WIDTH_64, 0}},
  805. {{"_ALN", WIDTH_8 | WIDTH_16 | WIDTH_32, 0}},
  806. {{"_ASI", WIDTH_8, 0}},
  807. {{"_ASZ", WIDTH_8, 0}},
  808. {{"_ATT", WIDTH_64, 0}},
  809. {{"_BAS", WIDTH_16 | WIDTH_32, 0}},
  810. {{"_BM_", WIDTH_1, 0}},
  811. {{"_DBT", WIDTH_16, 0}}, /* Acpi 5.0 */
  812. {{"_DEC", WIDTH_1, 0}},
  813. {{"_DMA", WIDTH_8, 0}},
  814. {{"_DPL", WIDTH_1, 0}}, /* Acpi 5.0 */
  815. {{"_DRS", WIDTH_16, 0}}, /* Acpi 5.0 */
  816. {{"_END", WIDTH_1, 0}}, /* Acpi 5.0 */
  817. {{"_FLC", WIDTH_2, 0}}, /* Acpi 5.0 */
  818. {{"_GRA", WIDTH_ADDRESS, 0}},
  819. {{"_HE_", WIDTH_1, 0}},
  820. {{"_INT", WIDTH_16 | WIDTH_32, 0}},
  821. {{"_IOR", WIDTH_2, 0}}, /* Acpi 5.0 */
  822. {{"_LEN", WIDTH_8 | WIDTH_ADDRESS, 0}},
  823. {{"_LIN", WIDTH_8, 0}}, /* Acpi 5.0 */
  824. {{"_LL_", WIDTH_1, 0}},
  825. {{"_MAF", WIDTH_1, 0}},
  826. {{"_MAX", WIDTH_ADDRESS, 0}},
  827. {{"_MEM", WIDTH_2, 0}},
  828. {{"_MIF", WIDTH_1, 0}},
  829. {{"_MIN", WIDTH_ADDRESS, 0}},
  830. {{"_MOD", WIDTH_1, 0}}, /* Acpi 5.0 */
  831. {{"_MTP", WIDTH_2, 0}},
  832. {{"_PAR", WIDTH_8, 0}}, /* Acpi 5.0 */
  833. {{"_PHA", WIDTH_1, 0}}, /* Acpi 5.0 */
  834. {{"_PIN", WIDTH_16, 0}}, /* Acpi 5.0 */
  835. {{"_PPI", WIDTH_8, 0}}, /* Acpi 5.0 */
  836. {{"_POL", WIDTH_1 | WIDTH_2, 0}}, /* Acpi 5.0 */
  837. {{"_RBO", WIDTH_8, 0}},
  838. {{"_RBW", WIDTH_8, 0}},
  839. {{"_RNG", WIDTH_1, 0}},
  840. {{"_RT_", WIDTH_8, 0}}, /* Acpi 3.0 */
  841. {{"_RW_", WIDTH_1, 0}},
  842. {{"_RXL", WIDTH_16, 0}}, /* Acpi 5.0 */
  843. {{"_SHR", WIDTH_2, 0}},
  844. {{"_SIZ", WIDTH_2, 0}},
  845. {{"_SLV", WIDTH_1, 0}}, /* Acpi 5.0 */
  846. {{"_SPE", WIDTH_32, 0}}, /* Acpi 5.0 */
  847. {{"_STB", WIDTH_2, 0}}, /* Acpi 5.0 */
  848. {{"_TRA", WIDTH_ADDRESS, 0}},
  849. {{"_TRS", WIDTH_1, 0}},
  850. {{"_TSF", WIDTH_8, 0}}, /* Acpi 3.0 */
  851. {{"_TTP", WIDTH_1, 0}},
  852. {{"_TXL", WIDTH_16, 0}}, /* Acpi 5.0 */
  853. {{"_TYP", WIDTH_2 | WIDTH_16, 0}},
  854. {{"_VEN", VARIABLE_DATA, 0}}, /* Acpi 5.0 */
  855. PACKAGE_INFO(0, 0, 0, 0, 0, 0) /* Table terminator */
  856. };
  857. const union acpi_predefined_info acpi_gbl_scope_names[] = {
  858. {{"_GPE", 0, 0}},
  859. {{"_PR_", 0, 0}},
  860. {{"_SB_", 0, 0}},
  861. {{"_SI_", 0, 0}},
  862. {{"_TZ_", 0, 0}},
  863. PACKAGE_INFO(0, 0, 0, 0, 0, 0) /* Table terminator */
  864. };
  865. #else
  866. extern const union acpi_predefined_info acpi_gbl_resource_names[];
  867. #endif
  868. #endif