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