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