1 /****************************************************************************** 2 * 3 * Name: acpredef - Information table for ACPI predefined methods and objects 4 * 5 *****************************************************************************/ 6 7 /* 8 * Copyright (C) 2000 - 2011, 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 * 50 * Return Package types 51 * 52 * 1) PTYPE1 packages do not contain sub-packages. 53 * 54 * ACPI_PTYPE1_FIXED: Fixed-length length, 1 or 2 object types: 55 * object type 56 * count 57 * object type 58 * count 59 * 60 * ACPI_PTYPE1_VAR: Variable-length 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-length 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 AcpiReturnPackageTypes 100 { 101 ACPI_PTYPE1_FIXED = 1, 102 ACPI_PTYPE1_VAR = 2, 103 ACPI_PTYPE1_OPTION = 3, 104 ACPI_PTYPE2 = 4, 105 ACPI_PTYPE2_COUNT = 5, 106 ACPI_PTYPE2_PKG_COUNT = 6, 107 ACPI_PTYPE2_FIXED = 7, 108 ACPI_PTYPE2_MIN = 8, 109 ACPI_PTYPE2_REV_FIXED = 9 110 }; 111 112 113 #ifdef ACPI_CREATE_PREDEFINED_TABLE 114 /* 115 * Predefined method/object information table. 116 * 117 * These are the names that can actually be evaluated via AcpiEvaluateObject. 118 * Not present in this table are the following: 119 * 120 * 1) Predefined/Reserved names that are never evaluated via 121 * AcpiEvaluateObject: 122 * _Lxx and _Exx GPE methods 123 * _Qxx EC methods 124 * _T_x compiler temporary variables 125 * 126 * 2) Predefined names that never actually exist within the AML code: 127 * Predefined resource descriptor field names 128 * 129 * 3) Predefined names that are implemented within ACPICA: 130 * _OSI 131 * 132 * 4) Some predefined names that are not documented within the ACPI spec. 133 * _WDG, _WED 134 * 135 * The main entries in the table each contain the following items: 136 * 137 * Name - The ACPI reserved name 138 * ParamCount - Number of arguments to the method 139 * ExpectedBtypes - Allowed type(s) for the return value. 140 * 0 means that no return value is expected. 141 * 142 * For methods that return packages, the next entry in the table contains 143 * information about the expected structure of the package. This information 144 * is saved here (rather than in a separate table) in order to minimize the 145 * overall size of the stored data. 146 * 147 * Note: The additional braces are intended to promote portability. 148 */ 149 static const ACPI_PREDEFINED_INFO PredefinedNames[] = 150 { 151 {{"_AC0", 0, ACPI_RTYPE_INTEGER}}, 152 {{"_AC1", 0, ACPI_RTYPE_INTEGER}}, 153 {{"_AC2", 0, ACPI_RTYPE_INTEGER}}, 154 {{"_AC3", 0, ACPI_RTYPE_INTEGER}}, 155 {{"_AC4", 0, ACPI_RTYPE_INTEGER}}, 156 {{"_AC5", 0, ACPI_RTYPE_INTEGER}}, 157 {{"_AC6", 0, ACPI_RTYPE_INTEGER}}, 158 {{"_AC7", 0, ACPI_RTYPE_INTEGER}}, 159 {{"_AC8", 0, ACPI_RTYPE_INTEGER}}, 160 {{"_AC9", 0, ACPI_RTYPE_INTEGER}}, 161 {{"_ADR", 0, ACPI_RTYPE_INTEGER}}, 162 {{"_AL0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 163 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 164 165 {{"_AL1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 166 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 167 168 {{"_AL2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 169 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 170 171 {{"_AL3", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 172 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 173 174 {{"_AL4", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 175 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 176 177 {{"_AL5", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 178 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 179 180 {{"_AL6", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 181 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 182 183 {{"_AL7", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 184 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 185 186 {{"_AL8", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 187 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 188 189 {{"_AL9", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 190 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 191 192 {{"_ALC", 0, ACPI_RTYPE_INTEGER}}, 193 {{"_ALI", 0, ACPI_RTYPE_INTEGER}}, 194 {{"_ALP", 0, ACPI_RTYPE_INTEGER}}, 195 {{"_ALR", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2 (Ints) */ 196 {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, 197 198 {{"_ALT", 0, ACPI_RTYPE_INTEGER}}, 199 {{"_ART", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(rev), n Pkg (2 Ref/11 Int) */ 200 {{{ACPI_PTYPE2_REV_FIXED,ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 11,0}}, 201 202 {{"_BBN", 0, ACPI_RTYPE_INTEGER}}, 203 {{"_BCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */ 204 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, 205 206 {{"_BCM", 1, 0}}, 207 {{"_BCT", 1, ACPI_RTYPE_INTEGER}}, 208 {{"_BDN", 0, ACPI_RTYPE_INTEGER}}, 209 {{"_BFS", 1, 0}}, 210 {{"_BIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (9 Int),(4 Str) */ 211 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9, ACPI_RTYPE_STRING}, 4,0}}, 212 213 {{"_BIX", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int),(4 Str) */ 214 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, ACPI_RTYPE_STRING}, 4,0}}, 215 216 {{"_BLT", 3, 0}}, 217 {{"_BMA", 1, ACPI_RTYPE_INTEGER}}, 218 {{"_BMC", 1, 0}}, 219 {{"_BMD", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (5 Int) */ 220 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, 221 222 {{"_BMS", 1, ACPI_RTYPE_INTEGER}}, 223 {{"_BQC", 0, ACPI_RTYPE_INTEGER}}, 224 {{"_BST", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ 225 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, 226 227 {{"_BTM", 1, ACPI_RTYPE_INTEGER}}, 228 {{"_BTP", 1, 0}}, 229 {{"_CBA", 0, ACPI_RTYPE_INTEGER}}, /* See PCI firmware spec 3.0 */ 230 {{"_CDM", 0, ACPI_RTYPE_INTEGER}}, 231 {{"_CID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints/Strs) */ 232 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,0}, 0,0}}, 233 234 {{"_CRS", 0, ACPI_RTYPE_BUFFER}}, 235 {{"_CRT", 0, ACPI_RTYPE_INTEGER}}, 236 {{"_CSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n-1 Int) */ 237 {{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, 238 239 {{"_CST", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */ 240 {{{ACPI_PTYPE2_PKG_COUNT,ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_INTEGER}, 3,0}}, 241 242 {{"_DCK", 1, ACPI_RTYPE_INTEGER}}, 243 {{"_DCS", 0, ACPI_RTYPE_INTEGER}}, 244 {{"_DDC", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER}}, 245 {{"_DDN", 0, ACPI_RTYPE_STRING}}, 246 {{"_DGS", 0, ACPI_RTYPE_INTEGER}}, 247 {{"_DIS", 0, 0}}, 248 {{"_DMA", 0, ACPI_RTYPE_BUFFER}}, 249 {{"_DOD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */ 250 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, 251 252 {{"_DOS", 1, 0}}, 253 {{"_DSM", 4, ACPI_RTYPE_ALL}}, /* Must return a type, but it can be of any type */ 254 {{"_DSS", 1, 0}}, 255 {{"_DSW", 3, 0}}, 256 {{"_DTI", 1, 0}}, 257 {{"_EC_", 0, ACPI_RTYPE_INTEGER}}, 258 {{"_EDL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs)*/ 259 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 260 261 {{"_EJ0", 1, 0}}, 262 {{"_EJ1", 1, 0}}, 263 {{"_EJ2", 1, 0}}, 264 {{"_EJ3", 1, 0}}, 265 {{"_EJ4", 1, 0}}, 266 {{"_EJD", 0, ACPI_RTYPE_STRING}}, 267 {{"_FDE", 0, ACPI_RTYPE_BUFFER}}, 268 {{"_FDI", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int) */ 269 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16,0}, 0,0}}, 270 271 {{"_FDM", 1, 0}}, 272 {{"_FIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ 273 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, 274 275 {{"_FIX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */ 276 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}}, 277 278 {{"_FPS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(rev), n Pkg (5 Int) */ 279 {{{ACPI_PTYPE2_REV_FIXED,ACPI_RTYPE_INTEGER, 5, 0}, 0,0}}, 280 281 {{"_FSL", 1, 0}}, 282 {{"_FST", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (3 Int) */ 283 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,0}, 0,0}}, 284 285 286 {{"_GAI", 0, ACPI_RTYPE_INTEGER}}, 287 {{"_GHL", 0, ACPI_RTYPE_INTEGER}}, 288 {{"_GLK", 0, ACPI_RTYPE_INTEGER}}, 289 {{"_GPD", 0, ACPI_RTYPE_INTEGER}}, 290 {{"_GPE", 0, ACPI_RTYPE_INTEGER}}, /* _GPE method, not _GPE scope */ 291 {{"_GSB", 0, ACPI_RTYPE_INTEGER}}, 292 {{"_GTF", 0, ACPI_RTYPE_BUFFER}}, 293 {{"_GTM", 0, ACPI_RTYPE_BUFFER}}, 294 {{"_GTS", 1, 0}}, 295 {{"_HID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}}, 296 {{"_HOT", 0, ACPI_RTYPE_INTEGER}}, 297 {{"_HPP", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ 298 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, 299 300 /* 301 * For _HPX, a single package is returned, containing a Variable-length number 302 * of sub-packages. Each sub-package contains a PCI record setting. 303 * There are several different type of record settings, of different 304 * lengths, but all elements of all settings are Integers. 305 */ 306 {{"_HPX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (var Ints) */ 307 {{{ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, 308 309 {{"_IFT", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */ 310 {{"_INI", 0, 0}}, 311 {{"_IRC", 0, 0}}, 312 {{"_LCK", 1, 0}}, 313 {{"_LID", 0, ACPI_RTYPE_INTEGER}}, 314 {{"_MAT", 0, ACPI_RTYPE_BUFFER}}, 315 {{"_MBM", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (8 Int) */ 316 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 8,0}, 0,0}}, 317 318 {{"_MLS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (2 Str) */ 319 {{{ACPI_PTYPE2, ACPI_RTYPE_STRING, 2,0}, 0,0}}, 320 321 {{"_MSG", 1, 0}}, 322 {{"_MSM", 4, ACPI_RTYPE_INTEGER}}, 323 {{"_NTT", 0, ACPI_RTYPE_INTEGER}}, 324 {{"_OFF", 0, 0}}, 325 {{"_ON_", 0, 0}}, 326 {{"_OS_", 0, ACPI_RTYPE_STRING}}, 327 {{"_OSC", 4, ACPI_RTYPE_BUFFER}}, 328 {{"_OST", 3, 0}}, 329 {{"_PAI", 1, ACPI_RTYPE_INTEGER}}, 330 {{"_PCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 331 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 332 333 {{"_PCT", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */ 334 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}}, 335 336 {{"_PDC", 1, 0}}, 337 {{"_PDL", 0, ACPI_RTYPE_INTEGER}}, 338 {{"_PIC", 1, 0}}, 339 {{"_PIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (3 Int),(3 Str) */ 340 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, ACPI_RTYPE_STRING}, 3,0}}, 341 342 {{"_PLD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Bufs) */ 343 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0,0}, 0,0}}, 344 345 {{"_PMC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (11 Int),(3 Str) */ 346 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 11, ACPI_RTYPE_STRING}, 3,0}}, 347 348 {{"_PMD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 349 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 350 351 {{"_PMM", 0, ACPI_RTYPE_INTEGER}}, 352 {{"_PPC", 0, ACPI_RTYPE_INTEGER}}, 353 {{"_PPE", 0, ACPI_RTYPE_INTEGER}}, /* See dig64 spec */ 354 {{"_PR0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 355 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 356 357 {{"_PR1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 358 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 359 360 {{"_PR2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 361 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 362 363 {{"_PR3", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 364 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 365 366 {{"_PRL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 367 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 368 369 {{"_PRS", 0, ACPI_RTYPE_BUFFER}}, 370 371 /* 372 * For _PRT, many BIOSs reverse the 3rd and 4th Package elements (Source 373 * and SourceIndex). This bug is so prevalent that there is code in the 374 * ACPICA Resource Manager to detect this and switch them back. For now, 375 * do not allow and issue a warning. To allow this and eliminate the 376 * warning, add the ACPI_RTYPE_REFERENCE type to the 4th element (index 3) 377 * in the statement below. 378 */ 379 {{"_PRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */ 380 {{{ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,ACPI_RTYPE_INTEGER}, 381 ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE, 382 ACPI_RTYPE_INTEGER}}, 383 384 {{"_PRW", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */ 385 {{{ACPI_PTYPE1_OPTION, 2, ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE, 386 ACPI_RTYPE_INTEGER}, ACPI_RTYPE_REFERENCE,0}}, 387 388 {{"_PS0", 0, 0}}, 389 {{"_PS1", 0, 0}}, 390 {{"_PS2", 0, 0}}, 391 {{"_PS3", 0, 0}}, 392 {{"_PSC", 0, ACPI_RTYPE_INTEGER}}, 393 {{"_PSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (5 Int) with count */ 394 {{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER,0,0}, 0,0}}, 395 396 {{"_PSL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 397 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 398 399 {{"_PSR", 0, ACPI_RTYPE_INTEGER}}, 400 {{"_PSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (6 Int) */ 401 {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6,0}, 0,0}}, 402 403 {{"_PSV", 0, ACPI_RTYPE_INTEGER}}, 404 {{"_PSW", 1, 0}}, 405 {{"_PTC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */ 406 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}}, 407 408 {{"_PTP", 2, ACPI_RTYPE_INTEGER}}, 409 {{"_PTS", 1, 0}}, 410 {{"_PUR", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Int) */ 411 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, 412 413 {{"_PXM", 0, ACPI_RTYPE_INTEGER}}, 414 {{"_REG", 2, 0}}, 415 {{"_REV", 0, ACPI_RTYPE_INTEGER}}, 416 {{"_RMV", 0, ACPI_RTYPE_INTEGER}}, 417 {{"_ROM", 2, ACPI_RTYPE_BUFFER}}, 418 {{"_RTV", 0, ACPI_RTYPE_INTEGER}}, 419 420 /* 421 * For _S0_ through _S5_, the ACPI spec defines a return Package 422 * containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers. 423 * Allow this by making the objects "Variable-length length", but all elements 424 * must be Integers. 425 */ 426 {{"_S0_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ 427 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, 428 429 {{"_S1_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ 430 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, 431 432 {{"_S2_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ 433 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, 434 435 {{"_S3_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ 436 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, 437 438 {{"_S4_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ 439 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, 440 441 {{"_S5_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */ 442 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}}, 443 444 {{"_S1D", 0, ACPI_RTYPE_INTEGER}}, 445 {{"_S2D", 0, ACPI_RTYPE_INTEGER}}, 446 {{"_S3D", 0, ACPI_RTYPE_INTEGER}}, 447 {{"_S4D", 0, ACPI_RTYPE_INTEGER}}, 448 {{"_S0W", 0, ACPI_RTYPE_INTEGER}}, 449 {{"_S1W", 0, ACPI_RTYPE_INTEGER}}, 450 {{"_S2W", 0, ACPI_RTYPE_INTEGER}}, 451 {{"_S3W", 0, ACPI_RTYPE_INTEGER}}, 452 {{"_S4W", 0, ACPI_RTYPE_INTEGER}}, 453 {{"_SBS", 0, ACPI_RTYPE_INTEGER}}, 454 {{"_SCP", 0x13, 0}}, /* Acpi 1.0 allowed 1 arg. Acpi 3.0 expanded to 3 args. Allow both. */ 455 /* Note: the 3-arg definition may be removed for ACPI 4.0 */ 456 {{"_SDD", 1, 0}}, 457 {{"_SEG", 0, ACPI_RTYPE_INTEGER}}, 458 {{"_SHL", 1, ACPI_RTYPE_INTEGER}}, 459 {{"_SLI", 0, ACPI_RTYPE_BUFFER}}, 460 {{"_SPD", 1, ACPI_RTYPE_INTEGER}}, 461 {{"_SRS", 1, 0}}, 462 {{"_SRV", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */ 463 {{"_SST", 1, 0}}, 464 {{"_STA", 0, ACPI_RTYPE_INTEGER}}, 465 {{"_STM", 3, 0}}, 466 {{"_STP", 2, ACPI_RTYPE_INTEGER}}, 467 {{"_STR", 0, ACPI_RTYPE_BUFFER}}, 468 {{"_STV", 2, ACPI_RTYPE_INTEGER}}, 469 {{"_SUN", 0, ACPI_RTYPE_INTEGER}}, 470 {{"_SWS", 0, ACPI_RTYPE_INTEGER}}, 471 {{"_TC1", 0, ACPI_RTYPE_INTEGER}}, 472 {{"_TC2", 0, ACPI_RTYPE_INTEGER}}, 473 {{"_TDL", 0, ACPI_RTYPE_INTEGER}}, 474 {{"_TIP", 1, ACPI_RTYPE_INTEGER}}, 475 {{"_TIV", 1, ACPI_RTYPE_INTEGER}}, 476 {{"_TMP", 0, ACPI_RTYPE_INTEGER}}, 477 {{"_TPC", 0, ACPI_RTYPE_INTEGER}}, 478 {{"_TPT", 1, 0}}, 479 {{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2Ref/6Int */ 480 {{{ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 6, 0}}, 481 482 {{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int with count */ 483 {{{ACPI_PTYPE2_COUNT,ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, 484 485 {{"_TSP", 0, ACPI_RTYPE_INTEGER}}, 486 {{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int */ 487 {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5,0}, 0,0}}, 488 489 {{"_TST", 0, ACPI_RTYPE_INTEGER}}, 490 {{"_TTS", 1, 0}}, 491 {{"_TZD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */ 492 {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}}, 493 494 {{"_TZM", 0, ACPI_RTYPE_REFERENCE}}, 495 {{"_TZP", 0, ACPI_RTYPE_INTEGER}}, 496 {{"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}}, 497 {{"_UPC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */ 498 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}}, 499 500 {{"_UPD", 0, ACPI_RTYPE_INTEGER}}, 501 {{"_UPP", 0, ACPI_RTYPE_INTEGER}}, 502 {{"_VPO", 0, ACPI_RTYPE_INTEGER}}, 503 504 /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */ 505 506 {{"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}}, 507 {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, /* Fixed-length (2 Int), but is optional */ 508 509 /* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */ 510 511 {{"_WDG", 0, ACPI_RTYPE_BUFFER}}, 512 {{"_WED", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER}}, 513 514 {{{0,0,0,0}, 0,0}} /* Table terminator */ 515 }; 516 517 #if 0 518 519 /* This is an internally implemented control method, no need to check */ 520 {{"_OSI", 1, ACPI_RTYPE_INTEGER}}, 521 522 /* TBD: */ 523 524 _PRT - currently ignore reversed entries. Attempt to fix here? 525 Think about possibly fixing package elements like _BIF, etc. 526 #endif 527 #endif 528 #endif 529