Subversion Repositories Kolibri OS

Rev

Rev 1498 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /******************************************************************************
  2.  *
  3.  * Name: acpredef - Information table for ACPI predefined methods and objects
  4.  *
  5.  *****************************************************************************/
  6.  
  7. /******************************************************************************
  8.  *
  9.  * 1. Copyright Notice
  10.  *
  11.  * Some or all of this work - Copyright (c) 1999 - 2011, Intel Corp.
  12.  * All rights reserved.
  13.  *
  14.  * 2. License
  15.  *
  16.  * 2.1. This is your license from Intel Corp. under its intellectual property
  17.  * rights.  You may have additional license terms from the party that provided
  18.  * you this software, covering your right to use that party's intellectual
  19.  * property rights.
  20.  *
  21.  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
  22.  * copy of the source code appearing in this file ("Covered Code") an
  23.  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
  24.  * base code distributed originally by Intel ("Original Intel Code") to copy,
  25.  * make derivatives, distribute, use and display any portion of the Covered
  26.  * Code in any form, with the right to sublicense such rights; and
  27.  *
  28.  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
  29.  * license (with the right to sublicense), under only those claims of Intel
  30.  * patents that are infringed by the Original Intel Code, to make, use, sell,
  31.  * offer to sell, and import the Covered Code and derivative works thereof
  32.  * solely to the minimum extent necessary to exercise the above copyright
  33.  * license, and in no event shall the patent license extend to any additions
  34.  * to or modifications of the Original Intel Code.  No other license or right
  35.  * is granted directly or by implication, estoppel or otherwise;
  36.  *
  37.  * The above copyright and patent license is granted only if the following
  38.  * conditions are met:
  39.  *
  40.  * 3. Conditions
  41.  *
  42.  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
  43.  * Redistribution of source code of any substantial portion of the Covered
  44.  * Code or modification with rights to further distribute source must include
  45.  * the above Copyright Notice, the above License, this list of Conditions,
  46.  * and the following Disclaimer and Export Compliance provision.  In addition,
  47.  * Licensee must cause all Covered Code to which Licensee contributes to
  48.  * contain a file documenting the changes Licensee made to create that Covered
  49.  * Code and the date of any change.  Licensee must include in that file the
  50.  * documentation of any changes made by any predecessor Licensee.  Licensee
  51.  * must include a prominent statement that the modification is derived,
  52.  * directly or indirectly, from Original Intel Code.
  53.  *
  54.  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
  55.  * Redistribution of source code of any substantial portion of the Covered
  56.  * Code or modification without rights to further distribute source must
  57.  * include the following Disclaimer and Export Compliance provision in the
  58.  * documentation and/or other materials provided with distribution.  In
  59.  * addition, Licensee may not authorize further sublicense of source of any
  60.  * portion of the Covered Code, and must include terms to the effect that the
  61.  * license from Licensee to its licensee is limited to the intellectual
  62.  * property embodied in the software Licensee provides to its licensee, and
  63.  * not to intellectual property embodied in modifications its licensee may
  64.  * make.
  65.  *
  66.  * 3.3. Redistribution of Executable. Redistribution in executable form of any
  67.  * substantial portion of the Covered Code or modification must reproduce the
  68.  * above Copyright Notice, and the following Disclaimer and Export Compliance
  69.  * provision in the documentation and/or other materials provided with the
  70.  * distribution.
  71.  *
  72.  * 3.4. Intel retains all right, title, and interest in and to the Original
  73.  * Intel Code.
  74.  *
  75.  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
  76.  * Intel shall be used in advertising or otherwise to promote the sale, use or
  77.  * other dealings in products derived from or relating to the Covered Code
  78.  * without prior written authorization from Intel.
  79.  *
  80.  * 4. Disclaimer and Export Compliance
  81.  *
  82.  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
  83.  * HERE.  ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
  84.  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
  85.  * INSTALLATION, TRAINING OR OTHER SERVICES.  INTEL WILL NOT PROVIDE ANY
  86.  * UPDATES, ENHANCEMENTS OR EXTENSIONS.  INTEL SPECIFICALLY DISCLAIMS ANY
  87.  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
  88.  * PARTICULAR PURPOSE.
  89.  *
  90.  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
  91.  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
  92.  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
  93.  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
  94.  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
  95.  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.  THESE LIMITATIONS
  96.  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
  97.  * LIMITED REMEDY.
  98.  *
  99.  * 4.3. Licensee shall not export, either directly or indirectly, any of this
  100.  * software or system incorporating such software without first obtaining any
  101.  * required license or other approval from the U. S. Department of Commerce or
  102.  * any other agency or department of the United States Government.  In the
  103.  * event Licensee exports any such software from the United States or
  104.  * re-exports any such software from a foreign destination, Licensee shall
  105.  * ensure that the distribution and export/re-export of the software is in
  106.  * compliance with all laws, regulations, orders, or other restrictions of the
  107.  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
  108.  * any of its subsidiaries will export/re-export any technical data, process,
  109.  * software, or service, directly or indirectly, to any country for which the
  110.  * United States government or any agency thereof requires an export license,
  111.  * other governmental approval, or letter of assurance, without first obtaining
  112.  * such license, approval or letter.
  113.  *
  114.  *****************************************************************************/
  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.  
  171. enum 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.  */
  221. static 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.     {{"_TDL", 0, ACPI_RTYPE_INTEGER}},
  546.     {{"_TIP", 1, ACPI_RTYPE_INTEGER}},
  547.     {{"_TIV", 1, ACPI_RTYPE_INTEGER}},
  548.     {{"_TMP", 0, ACPI_RTYPE_INTEGER}},
  549.     {{"_TPC", 0, ACPI_RTYPE_INTEGER}},
  550.     {{"_TPT", 1, 0}},
  551.     {{"_TRT", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 2Ref/6Int */
  552.                     {{{ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER}, 6, 0}},
  553.  
  554.     {{"_TSD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int with count */
  555.                     {{{ACPI_PTYPE2_COUNT,ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
  556.  
  557.     {{"_TSP", 0, ACPI_RTYPE_INTEGER}},
  558.     {{"_TSS", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Pkgs) each 5Int */
  559.                     {{{ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5,0}, 0,0}},
  560.  
  561.     {{"_TST", 0, ACPI_RTYPE_INTEGER}},
  562.     {{"_TTS", 1, 0}},
  563.     {{"_TZD", 0, ACPI_RTYPE_PACKAGE}}, /* Variable-length (Refs) */
  564.                     {{{ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0,0}, 0,0}},
  565.  
  566.     {{"_TZM", 0, ACPI_RTYPE_REFERENCE}},
  567.     {{"_TZP", 0, ACPI_RTYPE_INTEGER}},
  568.     {{"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
  569.     {{"_UPC", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (4 Int) */
  570.                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0}, 0,0}},
  571.  
  572.     {{"_UPD", 0, ACPI_RTYPE_INTEGER}},
  573.     {{"_UPP", 0, ACPI_RTYPE_INTEGER}},
  574.     {{"_VPO", 0, ACPI_RTYPE_INTEGER}},
  575.  
  576.     /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
  577.  
  578.     {{"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}},
  579.                     {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2,0}, 0,0}}, /* Fixed-length (2 Int), but is optional */
  580.  
  581.     /* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */
  582.  
  583.     {{"_WDG", 0, ACPI_RTYPE_BUFFER}},
  584.     {{"_WED", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER}},
  585.  
  586.     {{{0,0,0,0}, 0,0}} /* Table terminator */
  587. };
  588.  
  589. #if 0
  590.  
  591.     /* This is an internally implemented control method, no need to check */
  592.     {{"_OSI", 1, ACPI_RTYPE_INTEGER}},
  593.  
  594.     /* TBD: */
  595.  
  596.     _PRT - currently ignore reversed entries. Attempt to fix here?
  597.     Think about possibly fixing package elements like _BIF, etc.
  598. #endif
  599. #endif
  600. #endif
  601.