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