Back to home page

Quest Cross Reference

 
 

    


Warning, cross-references for /kernel/include/drivers/acpi/acpredef.h need to be fixed.

0001 /******************************************************************************
0002  *
0003  * Name: acpredef - Information table for ACPI predefined methods and objects
0004  *
0005  *****************************************************************************/
0006 
0007 /******************************************************************************
0008  *
0009  * 1. Copyright Notice
0010  *
0011  * Some or all of this work - Copyright (c) 1999 - 2009, Intel Corp.
0012  * All rights reserved.
0013  *
0014  * 2. License
0015  *
0016  * 2.1. This is your license from Intel Corp. under its intellectual property
0017  * rights.  You may have additional license terms from the party that provided
0018  * you this software, covering your right to use that party's intellectual
0019  * property rights.
0020  *
0021  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
0022  * copy of the source code appearing in this file ("Covered Code") an
0023  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
0024  * base code distributed originally by Intel ("Original Intel Code") to copy,
0025  * make derivatives, distribute, use and display any portion of the Covered
0026  * Code in any form, with the right to sublicense such rights; and
0027  *
0028  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
0029  * license (with the right to sublicense), under only those claims of Intel
0030  * patents that are infringed by the Original Intel Code, to make, use, sell,
0031  * offer to sell, and import the Covered Code and derivative works thereof
0032  * solely to the minimum extent necessary to exercise the above copyright
0033  * license, and in no event shall the patent license extend to any additions
0034  * to or modifications of the Original Intel Code.  No other license or right
0035  * is granted directly or by implication, estoppel or otherwise;
0036  *
0037  * The above copyright and patent license is granted only if the following
0038  * conditions are met:
0039  *
0040  * 3. Conditions
0041  *
0042  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
0043  * Redistribution of source code of any substantial portion of the Covered
0044  * Code or modification with rights to further distribute source must include
0045  * the above Copyright Notice, the above License, this list of Conditions,
0046  * and the following Disclaimer and Export Compliance provision.  In addition,
0047  * Licensee must cause all Covered Code to which Licensee contributes to
0048  * contain a file documenting the changes Licensee made to create that Covered
0049  * Code and the date of any change.  Licensee must include in that file the
0050  * documentation of any changes made by any predecessor Licensee.  Licensee
0051  * must include a prominent statement that the modification is derived,
0052  * directly or indirectly, from Original Intel Code.
0053  *
0054  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
0055  * Redistribution of source code of any substantial portion of the Covered
0056  * Code or modification without rights to further distribute source must
0057  * include the following Disclaimer and Export Compliance provision in the
0058  * documentation and/or other materials provided with distribution.  In
0059  * addition, Licensee may not authorize further sublicense of source of any
0060  * portion of the Covered Code, and must include terms to the effect that the
0061  * license from Licensee to its licensee is limited to the intellectual
0062  * property embodied in the software Licensee provides to its licensee, and
0063  * not to intellectual property embodied in modifications its licensee may
0064  * make.
0065  *
0066  * 3.3. Redistribution of Executable. Redistribution in executable form of any
0067  * substantial portion of the Covered Code or modification must reproduce the
0068  * above Copyright Notice, and the following Disclaimer and Export Compliance
0069  * provision in the documentation and/or other materials provided with the
0070  * distribution.
0071  *
0072  * 3.4. Intel retains all right, title, and interest in and to the Original
0073  * Intel Code.
0074  *
0075  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
0076  * Intel shall be used in advertising or otherwise to promote the sale, use or
0077  * other dealings in products derived from or relating to the Covered Code
0078  * without prior written authorization from Intel.
0079  *
0080  * 4. Disclaimer and Export Compliance
0081  *
0082  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
0083  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
0084  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
0085  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
0086  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
0087  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
0088  * PARTICULAR PURPOSE.
0089  *
0090  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
0091  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
0092  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
0093  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
0094  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
0095  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
0096  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
0097  * LIMITED REMEDY.
0098  *
0099  * 4.3. Licensee shall not export, either directly or indirectly, any of this
0100  * software or system incorporating such software without first obtaining any
0101  * required license or other approval from the U. S. Department of Commerce or
0102  * any other agency or department of the United States Government.  In the
0103  * event Licensee exports any such software from the United States or
0104  * re-exports any such software from a foreign destination, Licensee shall
0105  * ensure that the distribution and export/re-export of the software is in
0106  * compliance with all laws, regulations, orders, or other restrictions of the
0107  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
0108  * any of its subsidiaries will export/re-export any technical data, process,
0109  * software, or service, directly or indirectly, to any country for which the
0110  * United States government or any agency thereof requires an export license,
0111  * other governmental approval, or letter of assurance, without first obtaining
0112  * such license, approval or letter.
0113  *
0114  *****************************************************************************/
0115 
0116 #ifndef __ACPREDEF_H__
0117 #define __ACPREDEF_H__
0118 
0119 
0120 /******************************************************************************
0121  *
0122  * Return Package types
0123  *
0124  * 1) PTYPE1 packages do not contain sub-packages.
0125  *
0126  * ACPI_PTYPE1_FIXED: Fixed-length length, 1 or 2 object types:
0127  *      object type
0128  *      count
0129  *      object type
0130  *      count
0131  *
0132  * ACPI_PTYPE1_VAR: Variable-length length:
0133  *      object type (Int/Buf/Ref)
0134  *
0135  * ACPI_PTYPE1_OPTION: Package has some required and some optional elements
0136  *      (Used for _PRW)
0137  *
0138  *
0139  * 2) PTYPE2 packages contain a Variable-length number of sub-packages. Each of the
0140  *    different types describe the contents of each of the sub-packages.
0141  *
0142  * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types:
0143  *      object type
0144  *      count
0145  *      object type
0146  *      count
0147  *      (Used for _ALR,_MLS,_PSS,_TRT,_TSS)
0148  *
0149  * ACPI_PTYPE2_COUNT: Each subpackage has a count as first element:
0150  *      object type
0151  *      (Used for _CSD,_PSD,_TSD)
0152  *
0153  * ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types:
0154  *      object type
0155  *      count
0156  *      object type
0157  *      count
0158  *      (Used for _CST)
0159  *
0160  * ACPI_PTYPE2_Fixed-length: Each subpackage is of Fixed-length length
0161  *      (Used for _PRT)
0162  *
0163  * ACPI_PTYPE2_MIN: Each subpackage has a Variable-length but minimum length
0164  *      (Used for _HPX)
0165  *
0166  *****************************************************************************/
0167 
0168 enum AcpiReturnPackageTypes
0169 {
0170     ACPI_PTYPE1_FIXED       = 1,
0171     ACPI_PTYPE1_VAR         = 2,
0172     ACPI_PTYPE1_OPTION      = 3,
0173     ACPI_PTYPE2             = 4,
0174     ACPI_PTYPE2_COUNT       = 5,
0175     ACPI_PTYPE2_PKG_COUNT   = 6,
0176     ACPI_PTYPE2_FIXED       = 7,
0177     ACPI_PTYPE2_MIN         = 8
0178 };
0179 
0180 
0181 /*
0182  * Predefined method/object information table.
0183  *
0184  * These are the names that can actually be evaluated via AcpiEvaluateObject.
0185  * Not present in this table are the following:
0186  *
0187  *      1) Predefined/Reserved names that are never evaluated via
0188  *         AcpiEvaluateObject:
0189  *              _Lxx and _Exx GPE methods
0190  *              _Qxx EC methods
0191  *              _T_x compiler temporary Variable-lengths
0192  *
0193  *      2) Predefined names that never actually exist within the AML code:
0194  *              Predefined resource descriptor field names
0195  *
0196  *      3) Predefined names that are implemented within ACPICA:
0197  *              _OSI
0198  *
0199  *      4) Some predefined names that are not documented within the ACPI spec.
0200  *              _WDG, _WED
0201  *
0202  * The main entries in the table each contain the following items:
0203  *
0204  * Name                 - The ACPI reserved name
0205  * ParamCount           - Number of arguments to the method
0206  * ExpectedBtypes       - Allowed type(s) for the return value.
0207  *                        0 means that no return value is expected.
0208  *
0209  * For methods that return packages, the next entry in the table contains
0210  * information about the expected structure of the package. This information
0211  * is saved here (rather than in a separate table) in order to minimize the
0212  * overall size of the stored data.
0213  *
0214  * Note: The additional braces are intended to promote portability.
0215  */
0216 static const ACPI_PREDEFINED_INFO     PredefinedNames[] =
0217 {
0218     {{"_AC0", 0, ACPI_RTYPE_INTEGER}},
0219     {{"_AC1", 0, ACPI_RTYPE_INTEGER}},
0220     {{"_AC2", 0, ACPI_RTYPE_INTEGER}},
0221     {{"_AC3", 0, ACPI_RTYPE_INTEGER}},
0222     {{"_AC4", 0, ACPI_RTYPE_INTEGER}},
0223     {{"_AC5", 0, ACPI_RTYPE_INTEGER}},
0224     {{"_AC6", 0, ACPI_RTYPE_INTEGER}},
0225     {{"_AC7", 0, ACPI_RTYPE_INTEGER}},
0226     {{"_AC8", 0, ACPI_RTYPE_INTEGER}},
0227     {{"_AC9", 0, ACPI_RTYPE_INTEGER}},
0228     {{"_ADR", 0, ACPI_RTYPE_INTEGER}},
0229     {{"_AL0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0230                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0231 
0232     {{"_AL1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0233                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0234 
0235     {{"_AL2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0236                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0237 
0238     {{"_AL3", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0239                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0240 
0241     {{"_AL4", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0242                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0243 
0244     {{"_AL5", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0245                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0246 
0247     {{"_AL6", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0248                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0249 
0250     {{"_AL7", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0251                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0252 
0253     {{"_AL8", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0254                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0255 
0256     {{"_AL9", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0257                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0258 
0259     {{"_ALC", 0, ACPI_RTYPE_INTEGER}},
0260     {{"_ALI", 0, ACPI_RTYPE_INTEGER}},
0261     {{"_ALP", 0, ACPI_RTYPE_INTEGER}},
0262     {{"_ALR", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2 (Ints) */
0263                     {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2,0}, 0,0}},
0264 
0265     {{"_ALT", 0, ACPI_RTYPE_INTEGER}},
0266     {{"_BBN", 0, ACPI_RTYPE_INTEGER}},
0267     {{"_BCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */
0268                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
0269 
0270     {{"_BCM", 1, 0}},
0271     {{"_BDN", 0, ACPI_RTYPE_INTEGER}},
0272     {{"_BFS", 1, 0}},
0273     {{"_BIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (9 Int),(4 Str) */
0274                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9, ACPI_RTYPE_STRING}, 4,0}},
0275 
0276     {{"_BLT", 3, 0}},
0277     {{"_BMC", 1, 0}},
0278     {{"_BMD", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (5 Int) */
0279                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
0280 
0281     {{"_BQC", 0, ACPI_RTYPE_INTEGER}},
0282     {{"_BST", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
0283                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
0284 
0285     {{"_BTM", 1, ACPI_RTYPE_INTEGER}},
0286     {{"_BTP", 1, 0}},
0287     {{"_CBA", 0, ACPI_RTYPE_INTEGER}}, /* See PCI firmware spec 3.0 */
0288     {{"_CID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints/Strs) */
0289                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,0}, 0,0}},
0290 
0291     {{"_CRS", 0, ACPI_RTYPE_BUFFER}},
0292     {{"_CRT", 0, ACPI_RTYPE_INTEGER}},
0293     {{"_CSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n-1 Int) */
0294                     {{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
0295 
0296     {{"_CST", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */
0297                     {{{ACPI_PTYPE2_PKG_COUNT,ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_INTEGER}, 3,0}},
0298 
0299     {{"_DCK", 1, ACPI_RTYPE_INTEGER}},
0300     {{"_DCS", 0, ACPI_RTYPE_INTEGER}},
0301     {{"_DDC", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER}},
0302     {{"_DDN", 0, ACPI_RTYPE_STRING}},
0303     {{"_DGS", 0, ACPI_RTYPE_INTEGER}},
0304     {{"_DIS", 0, 0}},
0305     {{"_DMA", 0, ACPI_RTYPE_BUFFER}},
0306     {{"_DOD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */
0307                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
0308 
0309     {{"_DOS", 1, 0}},
0310     {{"_DSM", 4, ACPI_RTYPE_ALL}},     /* Must return a type, but it can be of any type */
0311     {{"_DSS", 1, 0}},
0312     {{"_DSW", 3, 0}},
0313     {{"_EC_", 0, ACPI_RTYPE_INTEGER}},
0314     {{"_EDL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs)*/
0315                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0316 
0317     {{"_EJ0", 1, 0}},
0318     {{"_EJ1", 1, 0}},
0319     {{"_EJ2", 1, 0}},
0320     {{"_EJ3", 1, 0}},
0321     {{"_EJ4", 1, 0}},
0322     {{"_EJD", 0, ACPI_RTYPE_STRING}},
0323     {{"_FDE", 0, ACPI_RTYPE_BUFFER}},
0324     {{"_FDI", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int) */
0325                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16,0}, 0,0}},
0326 
0327     {{"_FDM", 1, 0}},
0328     {{"_FIX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Ints) */
0329                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0,0}, 0,0}},
0330 
0331     {{"_GLK", 0, ACPI_RTYPE_INTEGER}},
0332     {{"_GPD", 0, ACPI_RTYPE_INTEGER}},
0333     {{"_GPE", 0, ACPI_RTYPE_INTEGER}}, /* _GPE method, not _GPE scope */
0334     {{"_GSB", 0, ACPI_RTYPE_INTEGER}},
0335     {{"_GTF", 0, ACPI_RTYPE_BUFFER}},
0336     {{"_GTM", 0, ACPI_RTYPE_BUFFER}},
0337     {{"_GTS", 1, 0}},
0338     {{"_HID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
0339     {{"_HOT", 0, ACPI_RTYPE_INTEGER}},
0340     {{"_HPP", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
0341                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
0342 
0343     /*
0344      * For _HPX, a single package is returned, containing a Variable-length number
0345      * of sub-packages. Each sub-package contains a PCI record setting.
0346      * There are several different type of record settings, of different
0347      * lengths, but all elements of all settings are Integers.
0348      */
0349     {{"_HPX", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (var Ints) */
0350                     {{{ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
0351 
0352     {{"_IFT", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */
0353     {{"_INI", 0, 0}},
0354     {{"_IRC", 0, 0}},
0355     {{"_LCK", 1, 0}},
0356     {{"_LID", 0, ACPI_RTYPE_INTEGER}},
0357     {{"_MAT", 0, ACPI_RTYPE_BUFFER}},
0358     {{"_MLS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (2 Str) */
0359                     {{{ACPI_PTYPE2, ACPI_RTYPE_STRING, 2,0}, 0,0}},
0360 
0361     {{"_MSG", 1, 0}},
0362     {{"_OFF", 0, 0}},
0363     {{"_ON_", 0, 0}},
0364     {{"_OS_", 0, ACPI_RTYPE_STRING}},
0365     {{"_OSC", 4, ACPI_RTYPE_BUFFER}},
0366     {{"_OST", 3, 0}},
0367     {{"_PCL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0368                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0369 
0370     {{"_PCT", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */
0371                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}},
0372 
0373     {{"_PDC", 1, 0}},
0374     {{"_PIC", 1, 0}},
0375     {{"_PLD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Bufs) */
0376                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0,0}, 0,0}},
0377 
0378     {{"_PPC", 0, ACPI_RTYPE_INTEGER}},
0379     {{"_PPE", 0, ACPI_RTYPE_INTEGER}}, /* See dig64 spec */
0380     {{"_PR0", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0381                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0382 
0383     {{"_PR1", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0384                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0385 
0386     {{"_PR2", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0387                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0388 
0389     {{"_PRS", 0, ACPI_RTYPE_BUFFER}},
0390 
0391     /*
0392      * For _PRT, many BIOSs reverse the 2nd and 3rd Package elements. This bug is so prevalent that there
0393      * is code in the ACPICA Resource Manager to detect this and switch them back. For now, do not allow
0394      * and issue a warning. To allow this and eliminate the warning, add the ACPI_RTYPE_REFERENCE
0395      * type to the 2nd element (index 1) in the statement below.
0396      */
0397     {{"_PRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */
0398                     {{{ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,ACPI_RTYPE_INTEGER},
0399                     ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE,ACPI_RTYPE_INTEGER}},
0400 
0401     {{"_PRW", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */
0402                     {{{ACPI_PTYPE1_OPTION, 2, ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE,
0403                     ACPI_RTYPE_INTEGER}, ACPI_RTYPE_REFERENCE,0}},
0404 
0405     {{"_PS0", 0, 0}},
0406     {{"_PS1", 0, 0}},
0407     {{"_PS2", 0, 0}},
0408     {{"_PS3", 0, 0}},
0409     {{"_PSC", 0, ACPI_RTYPE_INTEGER}},
0410     {{"_PSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (5 Int) with count */
0411                     {{{ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER,0,0}, 0,0}},
0412 
0413     {{"_PSL", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0414                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0415 
0416     {{"_PSR", 0, ACPI_RTYPE_INTEGER}},
0417     {{"_PSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each (6 Int) */
0418                     {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6,0}, 0,0}},
0419 
0420     {{"_PSV", 0, ACPI_RTYPE_INTEGER}},
0421     {{"_PSW", 1, 0}},
0422     {{"_PTC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (2 Buf) */
0423                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2,0}, 0,0}},
0424 
0425     {{"_PTS", 1, 0}},
0426     {{"_PXM", 0, ACPI_RTYPE_INTEGER}},
0427     {{"_REG", 2, 0}},
0428     {{"_REV", 0, ACPI_RTYPE_INTEGER}},
0429     {{"_RMV", 0, ACPI_RTYPE_INTEGER}},
0430     {{"_ROM", 2, ACPI_RTYPE_BUFFER}},
0431     {{"_RTV", 0, ACPI_RTYPE_INTEGER}},
0432 
0433     /*
0434      * For _S0_ through _S5_, the ACPI spec defines a return Package
0435      * containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers.
0436      * Allow this by making the objects "Variable-length length", but all elements
0437      * must be Integers.
0438      */
0439     {{"_S0_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
0440                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
0441 
0442     {{"_S1_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
0443                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
0444 
0445     {{"_S2_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
0446                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
0447 
0448     {{"_S3_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
0449                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
0450 
0451     {{"_S4_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
0452                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
0453 
0454     {{"_S5_", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (1 Int) */
0455                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1,0}, 0,0}},
0456 
0457     {{"_S1D", 0, ACPI_RTYPE_INTEGER}},
0458     {{"_S2D", 0, ACPI_RTYPE_INTEGER}},
0459     {{"_S3D", 0, ACPI_RTYPE_INTEGER}},
0460     {{"_S4D", 0, ACPI_RTYPE_INTEGER}},
0461     {{"_S0W", 0, ACPI_RTYPE_INTEGER}},
0462     {{"_S1W", 0, ACPI_RTYPE_INTEGER}},
0463     {{"_S2W", 0, ACPI_RTYPE_INTEGER}},
0464     {{"_S3W", 0, ACPI_RTYPE_INTEGER}},
0465     {{"_S4W", 0, ACPI_RTYPE_INTEGER}},
0466     {{"_SBS", 0, ACPI_RTYPE_INTEGER}},
0467     {{"_SCP", 0x13, 0}},               /* Acpi 1.0 allowed 1 arg. Acpi 3.0 expanded to 3 args. Allow both. */
0468                                        /* Note: the 3-arg definition may be removed for ACPI 4.0 */
0469     {{"_SDD", 1, 0}},
0470     {{"_SEG", 0, ACPI_RTYPE_INTEGER}},
0471     {{"_SLI", 0, ACPI_RTYPE_BUFFER}},
0472     {{"_SPD", 1, ACPI_RTYPE_INTEGER}},
0473     {{"_SRS", 1, 0}},
0474     {{"_SRV", 0, ACPI_RTYPE_INTEGER}}, /* See IPMI spec */
0475     {{"_SST", 1, 0}},
0476     {{"_STA", 0, ACPI_RTYPE_INTEGER}},
0477     {{"_STM", 3, 0}},
0478     {{"_STR", 0, ACPI_RTYPE_BUFFER}},
0479     {{"_SUN", 0, ACPI_RTYPE_INTEGER}},
0480     {{"_SWS", 0, ACPI_RTYPE_INTEGER}},
0481     {{"_TC1", 0, ACPI_RTYPE_INTEGER}},
0482     {{"_TC2", 0, ACPI_RTYPE_INTEGER}},
0483     {{"_TMP", 0, ACPI_RTYPE_INTEGER}},
0484     {{"_TPC", 0, ACPI_RTYPE_INTEGER}},
0485     {{"_TPT", 1, 0}},
0486     {{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2Ref/6Int */
0487                     {{{ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 6, 0}},
0488 
0489     {{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int with count */
0490                     {{{ACPI_PTYPE2_COUNT,ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
0491 
0492     {{"_TSP", 0, ACPI_RTYPE_INTEGER}},
0493     {{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int */
0494                     {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
0495 
0496     {{"_TST", 0, ACPI_RTYPE_INTEGER}},
0497     {{"_TTS", 1, 0}},
0498     {{"_TZD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
0499                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
0500 
0501     {{"_TZM", 0, ACPI_RTYPE_REFERENCE}},
0502     {{"_TZP", 0, ACPI_RTYPE_INTEGER}},
0503     {{"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
0504     {{"_UPC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
0505                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
0506 
0507     {{"_UPD", 0, ACPI_RTYPE_INTEGER}},
0508     {{"_UPP", 0, ACPI_RTYPE_INTEGER}},
0509     {{"_VPO", 0, ACPI_RTYPE_INTEGER}},
0510 
0511     /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
0512 
0513     {{"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}},
0514                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, /* Fixed-length (2 Int), but is optional */
0515 
0516     {{{0,0,0,0}, 0,0}} /* Table terminator */
0517 };
0518 
0519 #if 0
0520     /* Not implemented */
0521 
0522     {{"_WDG", 0, ACPI_RTYPE_BUFFER}},  /* MS Extension */
0523     {{"_WED", 1, ACPI_RTYPE_PACKAGE}}, /* MS Extension */
0524 
0525     /* This is an internally implemented control method, no need to check */
0526     {{"_OSI", 1, ACPI_RTYPE_INTEGER}},
0527 
0528     /* TBD: */
0529 
0530     _PRT - currently ignore reversed entries. Attempt to fix here?
0531     Think about possibly fixing package elements like _BIF, etc.
0532 #endif
0533 
0534 #endif