~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/acpi/acpica/acpredef.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************************************
 
2
 *
 
3
 * Name: acpredef - Information table for ACPI predefined methods and objects
 
4
 *              $Revision: 1.1 $
 
5
 *
 
6
 *****************************************************************************/
 
7
 
 
8
/*
 
9
 * Copyright (C) 2000 - 2011, Intel Corp.
 
10
 * All rights reserved.
 
11
 *
 
12
 * Redistribution and use in source and binary forms, with or without
 
13
 * modification, are permitted provided that the following conditions
 
14
 * are met:
 
15
 * 1. Redistributions of source code must retain the above copyright
 
16
 *    notice, this list of conditions, and the following disclaimer,
 
17
 *    without modification.
 
18
 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
 
19
 *    substantially similar to the "NO WARRANTY" disclaimer below
 
20
 *    ("Disclaimer") and any redistribution must be conditioned upon
 
21
 *    including a substantially similar Disclaimer requirement for further
 
22
 *    binary redistribution.
 
23
 * 3. Neither the names of the above-listed copyright holders nor the names
 
24
 *    of any contributors may be used to endorse or promote products derived
 
25
 *    from this software without specific prior written permission.
 
26
 *
 
27
 * Alternatively, this software may be distributed under the terms of the
 
28
 * GNU General Public License ("GPL") version 2 as published by the Free
 
29
 * Software Foundation.
 
30
 *
 
31
 * NO WARRANTY
 
32
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
33
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
34
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
 
35
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
36
 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
37
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 
38
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 
39
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 
40
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
 
41
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 
42
 * POSSIBILITY OF SUCH DAMAGES.
 
43
 */
 
44
 
 
45
#ifndef __ACPREDEF_H__
 
46
#define __ACPREDEF_H__
 
47
 
 
48
/******************************************************************************
 
49
 *
 
50
 * Return Package types
 
51
 *
 
52
 * 1) PTYPE1 packages do not contain sub-packages.
 
53
 *
 
54
 * ACPI_PTYPE1_FIXED: Fixed length, 1 or 2 object types:
 
55
 *      object type
 
56
 *      count
 
57
 *      object type
 
58
 *      count
 
59
 *
 
60
 * ACPI_PTYPE1_VAR: Variable length:
 
61
 *      object type (Int/Buf/Ref)
 
62
 *
 
63
 * ACPI_PTYPE1_OPTION: Package has some required and some optional elements
 
64
 *      (Used for _PRW)
 
65
 *
 
66
 *
 
67
 * 2) PTYPE2 packages contain a Variable-length number of sub-packages. Each
 
68
 *    of the different types describe the contents of each of the sub-packages.
 
69
 *
 
70
 * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types:
 
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
 *      object type
 
79
 *      (Used for _CSD,_PSD,_TSD)
 
80
 *
 
81
 * ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types:
 
82
 *      object type
 
83
 *      count
 
84
 *      object type
 
85
 *      count
 
86
 *      (Used for _CST)
 
87
 *
 
88
 * ACPI_PTYPE2_FIXED: Each subpackage is of fixed length
 
89
 *      (Used for _PRT)
 
90
 *
 
91
 * ACPI_PTYPE2_MIN: Each subpackage has a variable but minimum length
 
92
 *      (Used for _HPX)
 
93
 *
 
94
 * ACPI_PTYPE2_REV_FIXED: Revision at start, each subpackage is Fixed-length
 
95
 *      (Used for _ART, _FPS)
 
96
 *
 
97
 *****************************************************************************/
 
98
 
 
99
enum acpi_return_package_types {
 
100
        ACPI_PTYPE1_FIXED = 1,
 
101
        ACPI_PTYPE1_VAR = 2,
 
102
        ACPI_PTYPE1_OPTION = 3,
 
103
        ACPI_PTYPE2 = 4,
 
104
        ACPI_PTYPE2_COUNT = 5,
 
105
        ACPI_PTYPE2_PKG_COUNT = 6,
 
106
        ACPI_PTYPE2_FIXED = 7,
 
107
        ACPI_PTYPE2_MIN = 8,
 
108
        ACPI_PTYPE2_REV_FIXED = 9
 
109
};
 
110
 
 
111
#ifdef ACPI_CREATE_PREDEFINED_TABLE
 
112
/*
 
113
 * Predefined method/object information table.
 
114
 *
 
115
 * These are the names that can actually be evaluated via acpi_evaluate_object.
 
116
 * Not present in this table are the following:
 
117
 *
 
118
 *      1) Predefined/Reserved names that are never evaluated via acpi_evaluate_object:
 
119
 *          _Lxx and _Exx GPE methods
 
120
 *          _Qxx EC methods
 
121
 *          _T_x compiler temporary variables
 
122
 *
 
123
 *      2) Predefined names that never actually exist within the AML code:
 
124
 *          Predefined resource descriptor field names
 
125
 *
 
126
 *      3) Predefined names that are implemented within ACPICA:
 
127
 *          _OSI
 
128
 *
 
129
 *      4) Some predefined names that are not documented within the ACPI spec.
 
130
 *          _WDG, _WED
 
131
 *
 
132
 * The main entries in the table each contain the following items:
 
133
 *
 
134
 * Name                 - The ACPI reserved name
 
135
 * param_count          - Number of arguments to the method
 
136
 * expected_btypes      - Allowed type(s) for the return value.
 
137
 *                        0 means that no return value is expected.
 
138
 *
 
139
 * For methods that return packages, the next entry in the table contains
 
140
 * information about the expected structure of the package. This information
 
141
 * is saved here (rather than in a separate table) in order to minimize the
 
142
 * overall size of the stored data.
 
143
 */
 
144
static const union acpi_predefined_info predefined_names[] =
 
145
{
 
146
        {{"_AC0", 0, ACPI_RTYPE_INTEGER}},
 
147
        {{"_AC1", 0, ACPI_RTYPE_INTEGER}},
 
148
        {{"_AC2", 0, ACPI_RTYPE_INTEGER}},
 
149
        {{"_AC3", 0, ACPI_RTYPE_INTEGER}},
 
150
        {{"_AC4", 0, ACPI_RTYPE_INTEGER}},
 
151
        {{"_AC5", 0, ACPI_RTYPE_INTEGER}},
 
152
        {{"_AC6", 0, ACPI_RTYPE_INTEGER}},
 
153
        {{"_AC7", 0, ACPI_RTYPE_INTEGER}},
 
154
        {{"_AC8", 0, ACPI_RTYPE_INTEGER}},
 
155
        {{"_AC9", 0, ACPI_RTYPE_INTEGER}},
 
156
        {{"_ADR", 0, ACPI_RTYPE_INTEGER}},
 
157
        {{"_AL0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
158
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
159
 
 
160
        {{"_AL1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
161
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
162
 
 
163
        {{"_AL2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
164
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
165
 
 
166
        {{"_AL3", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
167
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
168
 
 
169
        {{"_AL4", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
170
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
171
 
 
172
        {{"_AL5", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
173
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
174
 
 
175
        {{"_AL6", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
176
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
177
 
 
178
        {{"_AL7", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
179
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
180
 
 
181
        {{"_AL8", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
182
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
183
 
 
184
        {{"_AL9", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
185
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
186
 
 
187
        {{"_ALC", 0, ACPI_RTYPE_INTEGER}},
 
188
        {{"_ALI", 0, ACPI_RTYPE_INTEGER}},
 
189
        {{"_ALP", 0, ACPI_RTYPE_INTEGER}},
 
190
        {{"_ALR", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2 (Ints) */
 
191
                          {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2,0}, 0,0}},
 
192
 
 
193
        {{"_ALT", 0, ACPI_RTYPE_INTEGER}},
 
194
        {{"_ART", 0, ACPI_RTYPE_PACKAGE}},      /* Variable-length (1 Int(rev), n Pkg (2 Ref/11 Int) */
 
195
        {{{ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER},
 
196
          11, 0}},
 
197
 
 
198
        {{"_BBN", 0, ACPI_RTYPE_INTEGER}},
 
199
        {{"_BCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */
 
200
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
 
201
 
 
202
        {{"_BCM", 1, 0}},
 
203
        {{"_BCT", 1, ACPI_RTYPE_INTEGER}},
 
204
        {{"_BDN", 0, ACPI_RTYPE_INTEGER}},
 
205
        {{"_BFS", 1, 0}},
 
206
        {{"_BIF", 0, ACPI_RTYPE_PACKAGE} }, /* Fixed-length (9 Int),(4 Str/Buf) */
 
207
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9,
 
208
                             ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER}, 4, 0} },
 
209
 
 
210
        {{"_BIX", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (16 Int),(4 Str) */
 
211
        {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, ACPI_RTYPE_STRING}, 4,
 
212
          0}},
 
213
 
 
214
        {{"_BLT", 3, 0}},
 
215
        {{"_BMA", 1, ACPI_RTYPE_INTEGER}},
 
216
        {{"_BMC", 1, 0}},
 
217
        {{"_BMD", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (5 Int) */
 
218
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
 
219
 
 
220
        {{"_BMS", 1, ACPI_RTYPE_INTEGER}},
 
221
        {{"_BQC", 0, ACPI_RTYPE_INTEGER}},
 
222
        {{"_BST", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
 
223
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
 
224
 
 
225
        {{"_BTM", 1, ACPI_RTYPE_INTEGER}},
 
226
        {{"_BTP", 1, 0}},
 
227
        {{"_CBA", 0, ACPI_RTYPE_INTEGER}}, /* See PCI firmware spec 3.0 */
 
228
        {{"_CDM", 0, ACPI_RTYPE_INTEGER}},
 
229
        {{"_CID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints/Strs) */
 
230
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,0}, 0,0}},
 
231
 
 
232
        {{"_CRS", 0, ACPI_RTYPE_BUFFER}},
 
233
        {{"_CRT", 0, ACPI_RTYPE_INTEGER}},
 
234
        {{"_CSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n-1 Int) */
 
235
                          {{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
 
236
 
 
237
        {{"_CST", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */
 
238
                          {{{ACPI_PTYPE2_PKG_COUNT,ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_INTEGER}, 3,0}},
 
239
 
 
240
        {{"_DCK", 1, ACPI_RTYPE_INTEGER}},
 
241
        {{"_DCS", 0, ACPI_RTYPE_INTEGER}},
 
242
        {{"_DDC", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER}},
 
243
        {{"_DDN", 0, ACPI_RTYPE_STRING}},
 
244
        {{"_DGS", 0, ACPI_RTYPE_INTEGER}},
 
245
        {{"_DIS", 0, 0}},
 
246
        {{"_DMA", 0, ACPI_RTYPE_BUFFER}},
 
247
        {{"_DOD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */
 
248
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
 
249
 
 
250
        {{"_DOS", 1, 0}},
 
251
        {{"_DSM", 4, ACPI_RTYPE_ALL}},     /* Must return a type, but it can be of any type */
 
252
        {{"_DSS", 1, 0}},
 
253
        {{"_DSW", 3, 0}},
 
254
        {{"_DTI", 1, 0}},
 
255
        {{"_EC_", 0, ACPI_RTYPE_INTEGER}},
 
256
        {{"_EDL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs)*/
 
257
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
258
 
 
259
        {{"_EJ0", 1, 0}},
 
260
        {{"_EJ1", 1, 0}},
 
261
        {{"_EJ2", 1, 0}},
 
262
        {{"_EJ3", 1, 0}},
 
263
        {{"_EJ4", 1, 0}},
 
264
        {{"_EJD", 0, ACPI_RTYPE_STRING}},
 
265
        {{"_FDE", 0, ACPI_RTYPE_BUFFER}},
 
266
        {{"_FDI", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int) */
 
267
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16,0}, 0,0}},
 
268
 
 
269
        {{"_FDM", 1, 0}},
 
270
        {{"_FIF", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (4 Int) */
 
271
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0}, 0, 0}},
 
272
 
 
273
        {{"_FIX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */
 
274
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
 
275
 
 
276
        {{"_FPS", 0, ACPI_RTYPE_PACKAGE}},      /* Variable-length (1 Int(rev), n Pkg (5 Int) */
 
277
        {{{ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 5, 0}, 0, 0}},
 
278
 
 
279
        {{"_FSL", 1, 0}},
 
280
        {{"_FST", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (3 Int) */
 
281
        {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0}, 0, 0}},
 
282
 
 
283
        {{"_GAI", 0, ACPI_RTYPE_INTEGER}},
 
284
        {{"_GHL", 0, ACPI_RTYPE_INTEGER}},
 
285
        {{"_GLK", 0, ACPI_RTYPE_INTEGER}},
 
286
        {{"_GPD", 0, ACPI_RTYPE_INTEGER}},
 
287
        {{"_GPE", 0, ACPI_RTYPE_INTEGER}}, /* _GPE method, not _GPE scope */
 
288
        {{"_GSB", 0, ACPI_RTYPE_INTEGER}},
 
289
        {{"_GTF", 0, ACPI_RTYPE_BUFFER}},
 
290
        {{"_GTM", 0, ACPI_RTYPE_BUFFER}},
 
291
        {{"_GTS", 1, 0}},
 
292
        {{"_HID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
 
293
        {{"_HOT", 0, ACPI_RTYPE_INTEGER}},
 
294
        {{"_HPP", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
 
295
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
 
296
 
 
297
        /*
 
298
         * For _HPX, a single package is returned, containing a Variable-length number
 
299
         * of sub-packages. Each sub-package contains a PCI record setting.
 
300
         * There are several different type of record settings, of different
 
301
         * lengths, but all elements of all settings are Integers.
 
302
         */
 
303
        {{"_HPX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (var Ints) */
 
304
                          {{{ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
 
305
 
 
306
        {{"_IFT", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */
 
307
        {{"_INI", 0, 0}},
 
308
        {{"_IRC", 0, 0}},
 
309
        {{"_LCK", 1, 0}},
 
310
        {{"_LID", 0, ACPI_RTYPE_INTEGER}},
 
311
        {{"_MAT", 0, ACPI_RTYPE_BUFFER}},
 
312
        {{"_MBM", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (8 Int) */
 
313
        {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 8, 0}, 0, 0}},
 
314
 
 
315
        {{"_MLS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (2 Str) */
 
316
                          {{{ACPI_PTYPE2, ACPI_RTYPE_STRING, 2,0}, 0,0}},
 
317
 
 
318
        {{"_MSG", 1, 0}},
 
319
        {{"_MSM", 4, ACPI_RTYPE_INTEGER}},
 
320
        {{"_NTT", 0, ACPI_RTYPE_INTEGER}},
 
321
        {{"_OFF", 0, 0}},
 
322
        {{"_ON_", 0, 0}},
 
323
        {{"_OS_", 0, ACPI_RTYPE_STRING}},
 
324
        {{"_OSC", 4, ACPI_RTYPE_BUFFER}},
 
325
        {{"_OST", 3, 0}},
 
326
        {{"_PAI", 1, ACPI_RTYPE_INTEGER}},
 
327
        {{"_PCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
328
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
329
 
 
330
        {{"_PCT", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */
 
331
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}},
 
332
 
 
333
        {{"_PDC", 1, 0}},
 
334
        {{"_PDL", 0, ACPI_RTYPE_INTEGER}},
 
335
        {{"_PIC", 1, 0}},
 
336
        {{"_PIF", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (3 Int),(3 Str) */
 
337
        {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, ACPI_RTYPE_STRING}, 3, 0}},
 
338
 
 
339
        {{"_PLD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Bufs) */
 
340
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0,0}, 0,0}},
 
341
 
 
342
        {{"_PMC", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (11 Int),(3 Str) */
 
343
        {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 11, ACPI_RTYPE_STRING}, 3,
 
344
          0}},
 
345
 
 
346
        {{"_PMD", 0, ACPI_RTYPE_PACKAGE}},      /* Variable-length (Refs) */
 
347
        {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0}, 0, 0}},
 
348
 
 
349
        {{"_PMM", 0, ACPI_RTYPE_INTEGER}},
 
350
        {{"_PPC", 0, ACPI_RTYPE_INTEGER}},
 
351
        {{"_PPE", 0, ACPI_RTYPE_INTEGER}}, /* See dig64 spec */
 
352
        {{"_PR0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
353
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
354
 
 
355
        {{"_PR1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
356
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
357
 
 
358
        {{"_PR2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
359
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
360
 
 
361
        {{"_PR3", 0, ACPI_RTYPE_PACKAGE}},      /* Variable-length (Refs) */
 
362
        {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0}, 0, 0}},
 
363
 
 
364
        {{"_PRL", 0, ACPI_RTYPE_PACKAGE}},      /* Variable-length (Refs) */
 
365
        {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0}, 0, 0}},
 
366
 
 
367
        {{"_PRS", 0, ACPI_RTYPE_BUFFER}},
 
368
 
 
369
        /*
 
370
         * For _PRT, many BIOSs reverse the 3rd and 4th Package elements (Source
 
371
         * and source_index). This bug is so prevalent that there is code in the
 
372
         * ACPICA Resource Manager to detect this and switch them back. For now,
 
373
         * do not allow and issue a warning. To allow this and eliminate the
 
374
         * warning, add the ACPI_RTYPE_REFERENCE type to the 4th element (index 3)
 
375
         * in the statement below.
 
376
         */
 
377
        {{"_PRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */
 
378
                          {{{ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,ACPI_RTYPE_INTEGER},
 
379
                          ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE,
 
380
                          ACPI_RTYPE_INTEGER}},
 
381
 
 
382
        {{"_PRW", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */
 
383
                          {{{ACPI_PTYPE1_OPTION, 2, ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE,
 
384
                          ACPI_RTYPE_INTEGER}, ACPI_RTYPE_REFERENCE,0}},
 
385
 
 
386
        {{"_PS0", 0, 0}},
 
387
        {{"_PS1", 0, 0}},
 
388
        {{"_PS2", 0, 0}},
 
389
        {{"_PS3", 0, 0}},
 
390
        {{"_PSC", 0, ACPI_RTYPE_INTEGER}},
 
391
        {{"_PSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (5 Int) with count */
 
392
                          {{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER,0,0}, 0,0}},
 
393
 
 
394
        {{"_PSL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
395
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
396
 
 
397
        {{"_PSR", 0, ACPI_RTYPE_INTEGER}},
 
398
        {{"_PSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (6 Int) */
 
399
                          {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6,0}, 0,0}},
 
400
 
 
401
        {{"_PSV", 0, ACPI_RTYPE_INTEGER}},
 
402
        {{"_PSW", 1, 0}},
 
403
        {{"_PTC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */
 
404
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}},
 
405
 
 
406
        {{"_PTP", 2, ACPI_RTYPE_INTEGER}},
 
407
        {{"_PTS", 1, 0}},
 
408
        {{"_PUR", 0, ACPI_RTYPE_PACKAGE}},      /* Fixed-length (2 Int) */
 
409
        {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0}, 0, 0}},
 
410
 
 
411
        {{"_PXM", 0, ACPI_RTYPE_INTEGER}},
 
412
        {{"_REG", 2, 0}},
 
413
        {{"_REV", 0, ACPI_RTYPE_INTEGER}},
 
414
        {{"_RMV", 0, ACPI_RTYPE_INTEGER}},
 
415
        {{"_ROM", 2, ACPI_RTYPE_BUFFER}},
 
416
        {{"_RTV", 0, ACPI_RTYPE_INTEGER}},
 
417
 
 
418
        /*
 
419
         * For _S0_ through _S5_, the ACPI spec defines a return Package
 
420
         * containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers.
 
421
         * Allow this by making the objects "Variable-length length", but all elements
 
422
         * must be Integers.
 
423
         */
 
424
        {{"_S0_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
 
425
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
 
426
 
 
427
        {{"_S1_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
 
428
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
 
429
 
 
430
        {{"_S2_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
 
431
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
 
432
 
 
433
        {{"_S3_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
 
434
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
 
435
 
 
436
        {{"_S4_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
 
437
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
 
438
 
 
439
        {{"_S5_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
 
440
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
 
441
 
 
442
        {{"_S1D", 0, ACPI_RTYPE_INTEGER}},
 
443
        {{"_S2D", 0, ACPI_RTYPE_INTEGER}},
 
444
        {{"_S3D", 0, ACPI_RTYPE_INTEGER}},
 
445
        {{"_S4D", 0, ACPI_RTYPE_INTEGER}},
 
446
        {{"_S0W", 0, ACPI_RTYPE_INTEGER}},
 
447
        {{"_S1W", 0, ACPI_RTYPE_INTEGER}},
 
448
        {{"_S2W", 0, ACPI_RTYPE_INTEGER}},
 
449
        {{"_S3W", 0, ACPI_RTYPE_INTEGER}},
 
450
        {{"_S4W", 0, ACPI_RTYPE_INTEGER}},
 
451
        {{"_SBS", 0, ACPI_RTYPE_INTEGER}},
 
452
        {{"_SCP", 0x13, 0}},               /* Acpi 1.0 allowed 1 arg. Acpi 3.0 expanded to 3 args. Allow both. */
 
453
                           /* Note: the 3-arg definition may be removed for ACPI 4.0 */
 
454
        {{"_SDD", 1, 0}},
 
455
        {{"_SEG", 0, ACPI_RTYPE_INTEGER}},
 
456
        {{"_SHL", 1, ACPI_RTYPE_INTEGER}},
 
457
        {{"_SLI", 0, ACPI_RTYPE_BUFFER}},
 
458
        {{"_SPD", 1, ACPI_RTYPE_INTEGER}},
 
459
        {{"_SRS", 1, 0}},
 
460
        {{"_SRV", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */
 
461
        {{"_SST", 1, 0}},
 
462
        {{"_STA", 0, ACPI_RTYPE_INTEGER}},
 
463
        {{"_STM", 3, 0}},
 
464
        {{"_STP", 2, ACPI_RTYPE_INTEGER}},
 
465
        {{"_STR", 0, ACPI_RTYPE_BUFFER}},
 
466
        {{"_STV", 2, ACPI_RTYPE_INTEGER}},
 
467
        {{"_SUN", 0, ACPI_RTYPE_INTEGER}},
 
468
        {{"_SWS", 0, ACPI_RTYPE_INTEGER}},
 
469
        {{"_TC1", 0, ACPI_RTYPE_INTEGER}},
 
470
        {{"_TC2", 0, ACPI_RTYPE_INTEGER}},
 
471
        {{"_TDL", 0, ACPI_RTYPE_INTEGER}},
 
472
        {{"_TIP", 1, ACPI_RTYPE_INTEGER}},
 
473
        {{"_TIV", 1, ACPI_RTYPE_INTEGER}},
 
474
        {{"_TMP", 0, ACPI_RTYPE_INTEGER}},
 
475
        {{"_TPC", 0, ACPI_RTYPE_INTEGER}},
 
476
        {{"_TPT", 1, 0}},
 
477
        {{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2_ref/6_int */
 
478
                          {{{ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 6, 0}},
 
479
 
 
480
        {{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5_int with count */
 
481
                          {{{ACPI_PTYPE2_COUNT,ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
 
482
 
 
483
        {{"_TSP", 0, ACPI_RTYPE_INTEGER}},
 
484
        {{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5_int */
 
485
                          {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
 
486
 
 
487
        {{"_TST", 0, ACPI_RTYPE_INTEGER}},
 
488
        {{"_TTS", 1, 0}},
 
489
        {{"_TZD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
 
490
                          {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
 
491
 
 
492
        {{"_TZM", 0, ACPI_RTYPE_REFERENCE}},
 
493
        {{"_TZP", 0, ACPI_RTYPE_INTEGER}},
 
494
        {{"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
 
495
        {{"_UPC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
 
496
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
 
497
 
 
498
        {{"_UPD", 0, ACPI_RTYPE_INTEGER}},
 
499
        {{"_UPP", 0, ACPI_RTYPE_INTEGER}},
 
500
        {{"_VPO", 0, ACPI_RTYPE_INTEGER}},
 
501
 
 
502
        /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
 
503
 
 
504
        {{"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}},
 
505
                          {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, /* Fixed-length (2 Int), but is optional */
 
506
 
 
507
        /* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */
 
508
 
 
509
        {{"_WDG", 0, ACPI_RTYPE_BUFFER}},
 
510
        {{"_WED", 1,
 
511
          ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER}},
 
512
 
 
513
        {{{0, 0, 0, 0}, 0, 0}}  /* Table terminator */
 
514
};
 
515
 
 
516
#if 0
 
517
        /* This is an internally implemented control method, no need to check */
 
518
        {{"_OSI", 1, ACPI_RTYPE_INTEGER}},
 
519
 
 
520
        /* TBD: */
 
521
 
 
522
        _PRT - currently ignore reversed entries. attempt to fix here?
 
523
        think about possibly fixing package elements like _BIF, etc.
 
524
#endif
 
525
 
 
526
#endif
 
527
#endif