Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | 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.  * Copyright (C) 2000 - 2015, Intel Corp.
  9.  * All rights reserved.
  10.  *
  11.  * Redistribution and use in source and binary forms, with or without
  12.  * modification, are permitted provided that the following conditions
  13.  * are met:
  14.  * 1. Redistributions of source code must retain the above copyright
  15.  *    notice, this list of conditions, and the following disclaimer,
  16.  *    without modification.
  17.  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  18.  *    substantially similar to the "NO WARRANTY" disclaimer below
  19.  *    ("Disclaimer") and any redistribution must be conditioned upon
  20.  *    including a substantially similar Disclaimer requirement for further
  21.  *    binary redistribution.
  22.  * 3. Neither the names of the above-listed copyright holders nor the names
  23.  *    of any contributors may be used to endorse or promote products derived
  24.  *    from this software without specific prior written permission.
  25.  *
  26.  * Alternatively, this software may be distributed under the terms of the
  27.  * GNU General Public License ("GPL") version 2 as published by the Free
  28.  * Software Foundation.
  29.  *
  30.  * NO WARRANTY
  31.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  32.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  33.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  34.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  35.  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  36.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  37.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  38.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  39.  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  40.  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  41.  * POSSIBILITY OF SUCH DAMAGES.
  42.  */
  43.  
  44. #ifndef __ACPREDEF_H__
  45. #define __ACPREDEF_H__
  46.  
  47. /******************************************************************************
  48.  *
  49.  * Return Package types
  50.  *
  51.  * 1) PTYPE1 packages do not contain subpackages.
  52.  *
  53.  * ACPI_PTYPE1_FIXED: Fixed-length length, 1 or 2 object types:
  54.  *      object type
  55.  *      count
  56.  *      object type
  57.  *      count
  58.  *
  59.  * ACPI_PTYPE1_VAR: Variable-length length. Zero-length package is allowed:
  60.  *      object type (Int/Buf/Ref)
  61.  *
  62.  * ACPI_PTYPE1_OPTION: Package has some required and some optional elements
  63.  *      (Used for _PRW)
  64.  *
  65.  *
  66.  * 2) PTYPE2 packages contain a Variable-length number of subpackages. Each
  67.  *    of the different types describe the contents of each of the subpackages.
  68.  *
  69.  * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types. Zero-length
  70.  *      parent package is allowed:
  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.  *      Zero-length parent package is allowed:
  79.  *      object type
  80.  *      (Used for _CSD,_PSD,_TSD)
  81.  *
  82.  * ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types:
  83.  *      object type
  84.  *      count
  85.  *      object type
  86.  *      count
  87.  *      (Used for _CST)
  88.  *
  89.  * ACPI_PTYPE2_FIXED: Each subpackage is of Fixed-length. Zero-length
  90.  *      parent package is allowed.
  91.  *      (Used for _PRT)
  92.  *
  93.  * ACPI_PTYPE2_MIN: Each subpackage has a Variable-length but minimum length.
  94.  *      Zero-length parent package is allowed:
  95.  *      (Used for _HPX)
  96.  *
  97.  * ACPI_PTYPE2_REV_FIXED: Revision at start, each subpackage is Fixed-length
  98.  *      (Used for _ART, _FPS)
  99.  *
  100.  * ACPI_PTYPE2_FIX_VAR: Each subpackage consists of some fixed-length elements
  101.  *      followed by an optional element. Zero-length parent package is allowed.
  102.  *      object type
  103.  *      count
  104.  *      object type
  105.  *      count = 0 (optional)
  106.  *      (Used for _DLM)
  107.  *
  108.  * ACPI_PTYPE2_VAR_VAR: Variable number of subpackages, each of either a
  109.  *      constant or variable length. The subpackages are preceded by a
  110.  *      constant number of objects.
  111.  *      (Used for _LPI, _RDI)
  112.  *
  113.  * ACPI_PTYPE2_UUID_PAIR: Each subpackage is preceded by a UUID Buffer. The UUID
  114.  *      defines the format of the package. Zero-length parent package is
  115.  *      allowed.
  116.  *      (Used for _DSD)
  117.  *
  118.  *****************************************************************************/
  119.  
  120. enum acpi_return_package_types {
  121.         ACPI_PTYPE1_FIXED = 1,
  122.         ACPI_PTYPE1_VAR = 2,
  123.         ACPI_PTYPE1_OPTION = 3,
  124.         ACPI_PTYPE2 = 4,
  125.         ACPI_PTYPE2_COUNT = 5,
  126.         ACPI_PTYPE2_PKG_COUNT = 6,
  127.         ACPI_PTYPE2_FIXED = 7,
  128.         ACPI_PTYPE2_MIN = 8,
  129.         ACPI_PTYPE2_REV_FIXED = 9,
  130.         ACPI_PTYPE2_FIX_VAR = 10,
  131.         ACPI_PTYPE2_VAR_VAR = 11,
  132.         ACPI_PTYPE2_UUID_PAIR = 12
  133. };
  134.  
  135. /* Support macros for users of the predefined info table */
  136.  
  137. #define METHOD_PREDEF_ARGS_MAX          4
  138. #define METHOD_ARG_BIT_WIDTH            3
  139. #define METHOD_ARG_MASK                 0x0007
  140. #define ARG_COUNT_IS_MINIMUM            0x8000
  141. #define METHOD_MAX_ARG_TYPE             ACPI_TYPE_PACKAGE
  142.  
  143. #define METHOD_GET_ARG_COUNT(arg_list)  ((arg_list) & METHOD_ARG_MASK)
  144. #define METHOD_GET_NEXT_TYPE(arg_list)  (((arg_list) >>= METHOD_ARG_BIT_WIDTH) & METHOD_ARG_MASK)
  145.  
  146. /* Macros used to build the predefined info table */
  147.  
  148. #define METHOD_0ARGS                    0
  149. #define METHOD_1ARGS(a1)                (1 | (a1 << 3))
  150. #define METHOD_2ARGS(a1,a2)             (2 | (a1 << 3) | (a2 << 6))
  151. #define METHOD_3ARGS(a1,a2,a3)          (3 | (a1 << 3) | (a2 << 6) | (a3 << 9))
  152. #define METHOD_4ARGS(a1,a2,a3,a4)       (4 | (a1 << 3) | (a2 << 6) | (a3 << 9) | (a4 << 12))
  153.  
  154. #define METHOD_RETURNS(type)            (type)
  155. #define METHOD_NO_RETURN_VALUE          0
  156.  
  157. #define PACKAGE_INFO(a,b,c,d,e,f)       {{{(a),(b),(c),(d)}, ((((u16)(f)) << 8) | (e)), 0}}
  158.  
  159. /* Support macros for the resource descriptor info table */
  160.  
  161. #define WIDTH_1                         0x0001
  162. #define WIDTH_2                         0x0002
  163. #define WIDTH_3                         0x0004
  164. #define WIDTH_8                         0x0008
  165. #define WIDTH_16                        0x0010
  166. #define WIDTH_32                        0x0020
  167. #define WIDTH_64                        0x0040
  168. #define VARIABLE_DATA                   0x0080
  169. #define NUM_RESOURCE_WIDTHS             8
  170.  
  171. #define WIDTH_ADDRESS                   WIDTH_16 | WIDTH_32 | WIDTH_64
  172.  
  173. #ifdef ACPI_CREATE_PREDEFINED_TABLE
  174. /******************************************************************************
  175.  *
  176.  * Predefined method/object information table.
  177.  *
  178.  * These are the names that can actually be evaluated via acpi_evaluate_object.
  179.  * Not present in this table are the following:
  180.  *
  181.  *      1) Predefined/Reserved names that are not usually evaluated via
  182.  *         acpi_evaluate_object:
  183.  *              _Lxx and _Exx GPE methods
  184.  *              _Qxx EC methods
  185.  *              _T_x compiler temporary variables
  186.  *              _Wxx wake events
  187.  *
  188.  *      2) Predefined names that never actually exist within the AML code:
  189.  *              Predefined resource descriptor field names
  190.  *
  191.  *      3) Predefined names that are implemented within ACPICA:
  192.  *              _OSI
  193.  *
  194.  * The main entries in the table each contain the following items:
  195.  *
  196.  * name                 - The ACPI reserved name
  197.  * argument_list        - Contains (in 16 bits), the number of required
  198.  *                        arguments to the method (3 bits), and a 3-bit type
  199.  *                        field for each argument (up to 4 arguments). The
  200.  *                        METHOD_?ARGS macros generate the correct packed data.
  201.  * expected_btypes      - Allowed type(s) for the return value.
  202.  *                        0 means that no return value is expected.
  203.  *
  204.  * For methods that return packages, the next entry in the table contains
  205.  * information about the expected structure of the package. This information
  206.  * is saved here (rather than in a separate table) in order to minimize the
  207.  * overall size of the stored data.
  208.  *
  209.  * Note: The additional braces are intended to promote portability.
  210.  *
  211.  * Note2: Table is used by the kernel-resident subsystem, the iASL compiler,
  212.  * and the acpi_help utility.
  213.  *
  214.  * TBD: _PRT - currently ignore reversed entries. Attempt to fix in nsrepair.
  215.  * Possibly fixing package elements like _BIF, etc.
  216.  *
  217.  *****************************************************************************/
  218.  
  219. const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
  220.         {{"_AC0", METHOD_0ARGS,
  221.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  222.  
  223.         {{"_AC1", METHOD_0ARGS,
  224.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  225.  
  226.         {{"_AC2", METHOD_0ARGS,
  227.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  228.  
  229.         {{"_AC3", METHOD_0ARGS,
  230.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  231.  
  232.         {{"_AC4", METHOD_0ARGS,
  233.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  234.  
  235.         {{"_AC5", METHOD_0ARGS,
  236.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  237.  
  238.         {{"_AC6", METHOD_0ARGS,
  239.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  240.  
  241.         {{"_AC7", METHOD_0ARGS,
  242.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  243.  
  244.         {{"_AC8", METHOD_0ARGS,
  245.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  246.  
  247.         {{"_AC9", METHOD_0ARGS,
  248.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  249.  
  250.         {{"_ADR", METHOD_0ARGS,
  251.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  252.  
  253.         {{"_AEI", METHOD_0ARGS,
  254.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  255.  
  256.         {{"_AL0", METHOD_0ARGS,
  257.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  258.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  259.  
  260.         {{"_AL1", METHOD_0ARGS,
  261.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  262.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  263.  
  264.         {{"_AL2", METHOD_0ARGS,
  265.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  266.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  267.  
  268.         {{"_AL3", METHOD_0ARGS,
  269.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  270.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  271.  
  272.         {{"_AL4", METHOD_0ARGS,
  273.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  274.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  275.  
  276.         {{"_AL5", METHOD_0ARGS,
  277.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  278.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  279.  
  280.         {{"_AL6", METHOD_0ARGS,
  281.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  282.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  283.  
  284.         {{"_AL7", METHOD_0ARGS,
  285.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  286.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  287.  
  288.         {{"_AL8", METHOD_0ARGS,
  289.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  290.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  291.  
  292.         {{"_AL9", METHOD_0ARGS,
  293.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  294.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  295.  
  296.         {{"_ALC", METHOD_0ARGS,
  297.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  298.  
  299.         {{"_ALI", METHOD_0ARGS,
  300.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  301.  
  302.         {{"_ALP", METHOD_0ARGS,
  303.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  304.  
  305.         {{"_ALR", METHOD_0ARGS,
  306.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 2 (Ints) */
  307.         PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
  308.  
  309.         {{"_ALT", METHOD_0ARGS,
  310.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  311.  
  312.         {{"_ART", METHOD_0ARGS,
  313.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Ref/11 Int) */
  314.         PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_REFERENCE, 2,
  315.                      ACPI_RTYPE_INTEGER, 11, 0),
  316.  
  317.         {{"_BBN", METHOD_0ARGS,
  318.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  319.  
  320.         {{"_BCL", METHOD_0ARGS,
  321.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
  322.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  323.  
  324.         {{"_BCM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  325.           METHOD_NO_RETURN_VALUE}},
  326.  
  327.         {{"_BCT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  328.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  329.  
  330.         {{"_BDN", METHOD_0ARGS,
  331.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  332.  
  333.         {{"_BFS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  334.           METHOD_NO_RETURN_VALUE}},
  335.  
  336.         {{"_BIF", METHOD_0ARGS,
  337.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (9 Int),(4 Str) */
  338.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9,
  339.                      ACPI_RTYPE_STRING, 4, 0),
  340.  
  341.         {{"_BIX", METHOD_0ARGS,
  342.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (16 Int),(4 Str) */
  343.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16,
  344.                      ACPI_RTYPE_STRING, 4, 0),
  345.  
  346.         {{"_BLT",
  347.           METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  348.           METHOD_NO_RETURN_VALUE}},
  349.  
  350.         {{"_BMA", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  351.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  352.  
  353.         {{"_BMC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  354.           METHOD_NO_RETURN_VALUE}},
  355.  
  356.         {{"_BMD", METHOD_0ARGS,
  357.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (5 Int) */
  358.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  359.  
  360.         {{"_BMS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  361.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  362.  
  363.         {{"_BQC", METHOD_0ARGS,
  364.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  365.  
  366.         {{"_BST", METHOD_0ARGS,
  367.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  368.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  369.  
  370.         {{"_BTH", METHOD_1ARGS(ACPI_TYPE_INTEGER),      /* ACPI 6.0 */
  371.           METHOD_NO_RETURN_VALUE}},
  372.  
  373.         {{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  374.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  375.  
  376.         {{"_BTP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  377.           METHOD_NO_RETURN_VALUE}},
  378.  
  379.         {{"_CBA", METHOD_0ARGS,
  380.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See PCI firmware spec 3.0 */
  381.  
  382.         {{"_CCA", METHOD_0ARGS,
  383.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* ACPI 5.1 */
  384.  
  385.         {{"_CDM", METHOD_0ARGS,
  386.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  387.  
  388.         {{"_CID", METHOD_0ARGS,
  389.           METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE)}},        /* Variable-length (Ints/Strs) */
  390.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,
  391.                      0, 0, 0),
  392.  
  393.         {{"_CLS", METHOD_0ARGS,
  394.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */
  395.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
  396.  
  397.         {{"_CPC", METHOD_0ARGS,
  398.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints/Bufs) */
  399.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0,
  400.                      0, 0, 0),
  401.  
  402.         {{"_CR3", METHOD_0ARGS, /* ACPI 6.0 */
  403.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  404.  
  405.         {{"_CRS", METHOD_0ARGS,
  406.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  407.  
  408.         {{"_CRT", METHOD_0ARGS,
  409.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  410.  
  411.         {{"_CSD", METHOD_0ARGS,
  412.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(n), n-1 Int) */
  413.         PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  414.  
  415.         {{"_CST", METHOD_0ARGS,
  416.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */
  417.         PACKAGE_INFO(ACPI_PTYPE2_PKG_COUNT, ACPI_RTYPE_BUFFER, 1,
  418.                      ACPI_RTYPE_INTEGER, 3, 0),
  419.  
  420.         {{"_CWS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  421.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  422.  
  423.         {{"_DCK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  424.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  425.  
  426.         {{"_DCS", METHOD_0ARGS,
  427.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  428.  
  429.         {{"_DDC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  430.           METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER)}},
  431.  
  432.         {{"_DDN", METHOD_0ARGS,
  433.           METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  434.  
  435.         {{"_DEP", METHOD_0ARGS,
  436.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  437.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  438.  
  439.         {{"_DGS", METHOD_0ARGS,
  440.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  441.  
  442.         {{"_DIS", METHOD_0ARGS,
  443.           METHOD_NO_RETURN_VALUE}},
  444.  
  445.         {{"_DLM", METHOD_0ARGS,
  446.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (1 Ref, 0/1 Optional Buf/Ref) */
  447.         PACKAGE_INFO(ACPI_PTYPE2_FIX_VAR, ACPI_RTYPE_REFERENCE, 1,
  448.                      ACPI_RTYPE_REFERENCE | ACPI_RTYPE_BUFFER, 0, 0),
  449.  
  450.         {{"_DMA", METHOD_0ARGS,
  451.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  452.  
  453.         {{"_DOD", METHOD_0ARGS,
  454.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
  455.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  456.  
  457.         {{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  458.           METHOD_NO_RETURN_VALUE}},
  459.  
  460.         {{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */
  461.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */
  462.         PACKAGE_INFO(ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1,
  463.                      ACPI_RTYPE_PACKAGE, 1, 0),
  464.  
  465.         {{"_DSM",
  466.           METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
  467.                        ACPI_TYPE_PACKAGE),
  468.           METHOD_RETURNS(ACPI_RTYPE_ALL)}},     /* Must return a value, but it can be of any type */
  469.  
  470.         {{"_DSS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  471.           METHOD_NO_RETURN_VALUE}},
  472.  
  473.         {{"_DSW",
  474.           METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  475.           METHOD_NO_RETURN_VALUE}},
  476.  
  477.         {{"_DTI", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  478.           METHOD_NO_RETURN_VALUE}},
  479.  
  480.         {{"_EC_", METHOD_0ARGS,
  481.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  482.  
  483.         {{"_EDL", METHOD_0ARGS,
  484.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  485.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  486.  
  487.         {{"_EJ0", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  488.           METHOD_NO_RETURN_VALUE}},
  489.  
  490.         {{"_EJ1", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  491.           METHOD_NO_RETURN_VALUE}},
  492.  
  493.         {{"_EJ2", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  494.           METHOD_NO_RETURN_VALUE}},
  495.  
  496.         {{"_EJ3", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  497.           METHOD_NO_RETURN_VALUE}},
  498.  
  499.         {{"_EJ4", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  500.           METHOD_NO_RETURN_VALUE}},
  501.  
  502.         {{"_EJD", METHOD_0ARGS,
  503.           METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  504.  
  505.         {{"_ERR",
  506.           METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_STRING, ACPI_TYPE_INTEGER),
  507.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* Internal use only, used by ACPICA test suites */
  508.  
  509.         {{"_EVT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  510.           METHOD_NO_RETURN_VALUE}},
  511.  
  512.         {{"_FDE", METHOD_0ARGS,
  513.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  514.  
  515.         {{"_FDI", METHOD_0ARGS,
  516.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (16 Int) */
  517.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, 0, 0, 0),
  518.  
  519.         {{"_FDM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  520.           METHOD_NO_RETURN_VALUE}},
  521.  
  522.         {{"_FIF", METHOD_0ARGS,
  523.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  524.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  525.  
  526.         {{"_FIX", METHOD_0ARGS,
  527.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
  528.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  529.  
  530.         {{"_FPS", METHOD_0ARGS,
  531.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (5 Int) */
  532.         PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  533.  
  534.         {{"_FSL", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  535.           METHOD_NO_RETURN_VALUE}},
  536.  
  537.         {{"_FST", METHOD_0ARGS,
  538.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */
  539.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
  540.  
  541.         {{"_GAI", METHOD_0ARGS,
  542.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  543.  
  544.         {{"_GCP", METHOD_0ARGS,
  545.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  546.  
  547.         {{"_GHL", METHOD_0ARGS,
  548.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  549.  
  550.         {{"_GLK", METHOD_0ARGS,
  551.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  552.  
  553.         {{"_GPD", METHOD_0ARGS,
  554.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  555.  
  556.         {{"_GPE", METHOD_0ARGS,
  557.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* _GPE method, not _GPE scope */
  558.  
  559.         {{"_GRT", METHOD_0ARGS,
  560.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  561.  
  562.         {{"_GSB", METHOD_0ARGS,
  563.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  564.  
  565.         {{"_GTF", METHOD_0ARGS,
  566.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  567.  
  568.         {{"_GTM", METHOD_0ARGS,
  569.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  570.  
  571.         {{"_GTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  572.           METHOD_NO_RETURN_VALUE}},
  573.  
  574.         {{"_GWS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  575.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  576.  
  577.         {{"_HID", METHOD_0ARGS,
  578.           METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING)}},
  579.  
  580.         {{"_HOT", METHOD_0ARGS,
  581.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  582.  
  583.         {{"_HPP", METHOD_0ARGS,
  584.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  585.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  586.  
  587.         /*
  588.          * For _HPX, a single package is returned, containing a variable-length number
  589.          * of subpackages. Each subpackage contains a PCI record setting.
  590.          * There are several different type of record settings, of different
  591.          * lengths, but all elements of all settings are Integers.
  592.          */
  593.         {{"_HPX", METHOD_0ARGS,
  594.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (var Ints) */
  595.         PACKAGE_INFO(ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  596.  
  597.         {{"_HRV", METHOD_0ARGS,
  598.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  599.  
  600.         {{"_IFT", METHOD_0ARGS,
  601.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See IPMI spec */
  602.  
  603.         {{"_INI", METHOD_0ARGS,
  604.           METHOD_NO_RETURN_VALUE}},
  605.  
  606.         {{"_IRC", METHOD_0ARGS,
  607.           METHOD_NO_RETURN_VALUE}},
  608.  
  609.         {{"_LCK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  610.           METHOD_NO_RETURN_VALUE}},
  611.  
  612.         {{"_LID", METHOD_0ARGS,
  613.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  614.  
  615.         {{"_LPD", METHOD_0ARGS,
  616.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */
  617.         PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
  618.  
  619.         {{"_LPI", METHOD_0ARGS, /* ACPI 6.0 */
  620.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (3 Int, n Pkg (10 Int/Buf) */
  621.         PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 3,
  622.                      ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER | ACPI_RTYPE_STRING,
  623.                      10, 0),
  624.  
  625.         {{"_MAT", METHOD_0ARGS,
  626.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  627.  
  628.         {{"_MBM", METHOD_0ARGS,
  629.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (8 Int) */
  630.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 8, 0, 0, 0),
  631.  
  632.         {{"_MLS", METHOD_0ARGS,
  633.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (1 Str/1 Buf) */
  634.         PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_STRING, 1, ACPI_RTYPE_BUFFER, 1,
  635.                      0),
  636.  
  637.         {{"_MSG", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  638.           METHOD_NO_RETURN_VALUE}},
  639.  
  640.         {{"_MSM",
  641.           METHOD_4ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
  642.                        ACPI_TYPE_INTEGER),
  643.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  644.  
  645.         {{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */
  646.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  647.  
  648.         {{"_NTT", METHOD_0ARGS,
  649.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  650.  
  651.         {{"_OFF", METHOD_0ARGS,
  652.           METHOD_NO_RETURN_VALUE}},
  653.  
  654.         {{"_ON_", METHOD_0ARGS,
  655.           METHOD_NO_RETURN_VALUE}},
  656.  
  657.         {{"_OS_", METHOD_0ARGS,
  658.           METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  659.  
  660.         {{"_OSC",
  661.           METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
  662.                        ACPI_TYPE_BUFFER),
  663.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  664.  
  665.         {{"_OST",
  666.           METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_BUFFER),
  667.           METHOD_NO_RETURN_VALUE}},
  668.  
  669.         {{"_PAI", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  670.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  671.  
  672.         {{"_PCL", METHOD_0ARGS,
  673.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  674.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  675.  
  676.         {{"_PCT", METHOD_0ARGS,
  677.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Buf) */
  678.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0),
  679.  
  680.         {{"_PDC", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  681.           METHOD_NO_RETURN_VALUE}},
  682.  
  683.         {{"_PDL", METHOD_0ARGS,
  684.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  685.  
  686.         {{"_PIC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  687.           METHOD_NO_RETURN_VALUE}},
  688.  
  689.         {{"_PIF", METHOD_0ARGS,
  690.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int),(3 Str) */
  691.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,
  692.                      ACPI_RTYPE_STRING, 3, 0),
  693.  
  694.         {{"_PLD", METHOD_0ARGS,
  695.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Bufs) */
  696.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0, 0, 0, 0),
  697.  
  698.         {{"_PMC", METHOD_0ARGS,
  699.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (11 Int),(3 Str) */
  700.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 11,
  701.                      ACPI_RTYPE_STRING, 3, 0),
  702.  
  703.         {{"_PMD", METHOD_0ARGS,
  704.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  705.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  706.  
  707.         {{"_PMM", METHOD_0ARGS,
  708.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  709.  
  710.         {{"_PPC", METHOD_0ARGS,
  711.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  712.  
  713.         {{"_PPE", METHOD_0ARGS,
  714.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See dig64 spec */
  715.  
  716.         {{"_PR0", METHOD_0ARGS,
  717.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  718.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  719.  
  720.         {{"_PR1", METHOD_0ARGS,
  721.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  722.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  723.  
  724.         {{"_PR2", METHOD_0ARGS,
  725.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  726.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  727.  
  728.         {{"_PR3", METHOD_0ARGS,
  729.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  730.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  731.  
  732.         {{"_PRE", METHOD_0ARGS,
  733.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  734.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  735.  
  736.         {{"_PRL", METHOD_0ARGS,
  737.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  738.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  739.  
  740.         {{"_PRR", METHOD_0ARGS, /* ACPI 6.0 */
  741.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Ref) */
  742.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_REFERENCE, 1, 0, 0, 0),
  743.  
  744.         {{"_PRS", METHOD_0ARGS,
  745.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  746.  
  747.         /*
  748.          * For _PRT, many BIOSs reverse the 3rd and 4th Package elements (Source
  749.          * and source_index). This bug is so prevalent that there is code in the
  750.          * ACPICA Resource Manager to detect this and switch them back. For now,
  751.          * do not allow and issue a warning. To allow this and eliminate the
  752.          * warning, add the ACPI_RTYPE_REFERENCE type to the 4th element (index 3)
  753.          * in the statement below.
  754.          */
  755.         {{"_PRT", METHOD_0ARGS,
  756.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */
  757.         PACKAGE_INFO(ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,
  758.                      ACPI_RTYPE_INTEGER,
  759.                      ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE,
  760.                      ACPI_RTYPE_INTEGER),
  761.  
  762.         {{"_PRW", METHOD_0ARGS,
  763.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */
  764.         PACKAGE_INFO(ACPI_PTYPE1_OPTION, 2,
  765.                      ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE,
  766.                      ACPI_RTYPE_INTEGER, ACPI_RTYPE_REFERENCE, 0),
  767.  
  768.         {{"_PS0", METHOD_0ARGS,
  769.           METHOD_NO_RETURN_VALUE}},
  770.  
  771.         {{"_PS1", METHOD_0ARGS,
  772.           METHOD_NO_RETURN_VALUE}},
  773.  
  774.         {{"_PS2", METHOD_0ARGS,
  775.           METHOD_NO_RETURN_VALUE}},
  776.  
  777.         {{"_PS3", METHOD_0ARGS,
  778.           METHOD_NO_RETURN_VALUE}},
  779.  
  780.         {{"_PSC", METHOD_0ARGS,
  781.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  782.  
  783.         {{"_PSD", METHOD_0ARGS,
  784.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (5 Int) with count */
  785.         PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
  786.  
  787.         {{"_PSE", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  788.           METHOD_NO_RETURN_VALUE}},
  789.  
  790.         {{"_PSL", METHOD_0ARGS,
  791.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  792.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  793.  
  794.         {{"_PSR", METHOD_0ARGS,
  795.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  796.  
  797.         {{"_PSS", METHOD_0ARGS,
  798.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (6 Int) */
  799.         PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6, 0, 0, 0),
  800.  
  801.         {{"_PSV", METHOD_0ARGS,
  802.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  803.  
  804.         {{"_PSW", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  805.           METHOD_NO_RETURN_VALUE}},
  806.  
  807.         {{"_PTC", METHOD_0ARGS,
  808.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Buf) */
  809.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0),
  810.  
  811.         {{"_PTP", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  812.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  813.  
  814.         {{"_PTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  815.           METHOD_NO_RETURN_VALUE}},
  816.  
  817.         {{"_PUR", METHOD_0ARGS,
  818.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Int) */
  819.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
  820.  
  821.         {{"_PXM", METHOD_0ARGS,
  822.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  823.  
  824.         {{"_RDI", METHOD_0ARGS, /* ACPI 6.0 */
  825.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int, n Pkg (m Ref)) */
  826.         PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 1,
  827.                      ACPI_RTYPE_REFERENCE, 0, 0),
  828.  
  829.         {{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  830.           METHOD_NO_RETURN_VALUE}},
  831.  
  832.         {{"_REV", METHOD_0ARGS,
  833.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  834.  
  835.         {{"_RMV", METHOD_0ARGS,
  836.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  837.  
  838.         {{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  839.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  840.  
  841.         {{"_RST", METHOD_0ARGS, /* ACPI 6.0 */
  842.           METHOD_NO_RETURN_VALUE}},
  843.  
  844.         {{"_RTV", METHOD_0ARGS,
  845.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  846.  
  847.         /*
  848.          * For _S0_ through _S5_, the ACPI spec defines a return Package
  849.          * containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers.
  850.          * Allow this by making the objects "Variable-length length", but all elements
  851.          * must be Integers.
  852.          */
  853.         {{"_S0_", METHOD_0ARGS,
  854.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  855.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  856.  
  857.         {{"_S1_", METHOD_0ARGS,
  858.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  859.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  860.  
  861.         {{"_S2_", METHOD_0ARGS,
  862.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  863.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  864.  
  865.         {{"_S3_", METHOD_0ARGS,
  866.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  867.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  868.  
  869.         {{"_S4_", METHOD_0ARGS,
  870.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  871.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  872.  
  873.         {{"_S5_", METHOD_0ARGS,
  874.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
  875.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
  876.  
  877.         {{"_S1D", METHOD_0ARGS,
  878.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  879.  
  880.         {{"_S2D", METHOD_0ARGS,
  881.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  882.  
  883.         {{"_S3D", METHOD_0ARGS,
  884.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  885.  
  886.         {{"_S4D", METHOD_0ARGS,
  887.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  888.  
  889.         {{"_S0W", METHOD_0ARGS,
  890.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  891.  
  892.         {{"_S1W", METHOD_0ARGS,
  893.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  894.  
  895.         {{"_S2W", METHOD_0ARGS,
  896.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  897.  
  898.         {{"_S3W", METHOD_0ARGS,
  899.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  900.  
  901.         {{"_S4W", METHOD_0ARGS,
  902.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  903.  
  904.         {{"_SBS", METHOD_0ARGS,
  905.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  906.  
  907.         {{"_SCP", METHOD_1ARGS(ACPI_TYPE_INTEGER) | ARG_COUNT_IS_MINIMUM,
  908.           METHOD_NO_RETURN_VALUE}},     /* Acpi 1.0 allowed 1 integer arg. Acpi 3.0 expanded to 3 args. Allow both. */
  909.  
  910.         {{"_SDD", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  911.           METHOD_NO_RETURN_VALUE}},
  912.  
  913.         {{"_SEG", METHOD_0ARGS,
  914.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  915.  
  916.         {{"_SHL", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  917.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  918.  
  919.         {{"_SLI", METHOD_0ARGS,
  920.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  921.  
  922.         {{"_SPD", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  923.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  924.  
  925.         {{"_SRS", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  926.           METHOD_NO_RETURN_VALUE}},
  927.  
  928.         {{"_SRT", METHOD_1ARGS(ACPI_TYPE_BUFFER),
  929.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  930.  
  931.         {{"_SRV", METHOD_0ARGS,
  932.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See IPMI spec */
  933.  
  934.         {{"_SST", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  935.           METHOD_NO_RETURN_VALUE}},
  936.  
  937.         {{"_STA", METHOD_0ARGS,
  938.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  939.  
  940.         {{"_STM",
  941.           METHOD_3ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_BUFFER, ACPI_TYPE_BUFFER),
  942.           METHOD_NO_RETURN_VALUE}},
  943.  
  944.         {{"_STP", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  945.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  946.  
  947.         {{"_STR", METHOD_0ARGS,
  948.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  949.  
  950.         {{"_STV", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
  951.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  952.  
  953.         {{"_SUB", METHOD_0ARGS,
  954.           METHOD_RETURNS(ACPI_RTYPE_STRING)}},
  955.  
  956.         {{"_SUN", METHOD_0ARGS,
  957.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  958.  
  959.         {{"_SWS", METHOD_0ARGS,
  960.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  961.  
  962.         {{"_TC1", METHOD_0ARGS,
  963.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  964.  
  965.         {{"_TC2", METHOD_0ARGS,
  966.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  967.  
  968.         {{"_TDL", METHOD_0ARGS,
  969.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  970.  
  971.         {{"_TFP", METHOD_0ARGS, /* ACPI 6.0 */
  972.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  973.  
  974.         {{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  975.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  976.  
  977.         {{"_TIV", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  978.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  979.  
  980.         {{"_TMP", METHOD_0ARGS,
  981.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  982.  
  983.         {{"_TPC", METHOD_0ARGS,
  984.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  985.  
  986.         {{"_TPT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  987.           METHOD_NO_RETURN_VALUE}},
  988.  
  989.         {{"_TRT", METHOD_0ARGS,
  990.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 2 Ref/6 Int */
  991.         PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER,
  992.                      6, 0),
  993.  
  994.         {{"_TSD", METHOD_0ARGS,
  995.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */
  996.         PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  997.  
  998.         {{"_TSN", METHOD_0ARGS, /* ACPI 6.0 */
  999.           METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
  1000.  
  1001.         {{"_TSP", METHOD_0ARGS,
  1002.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  1003.  
  1004.         {{"_TSS", METHOD_0ARGS,
  1005.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int */
  1006.         PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
  1007.  
  1008.         {{"_TST", METHOD_0ARGS,
  1009.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  1010.  
  1011.         {{"_TTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  1012.           METHOD_NO_RETURN_VALUE}},
  1013.  
  1014.         {{"_TZD", METHOD_0ARGS,
  1015.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
  1016.         PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
  1017.  
  1018.         {{"_TZM", METHOD_0ARGS,
  1019.           METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
  1020.  
  1021.         {{"_TZP", METHOD_0ARGS,
  1022.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  1023.  
  1024.         {{"_UID", METHOD_0ARGS,
  1025.           METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING)}},
  1026.  
  1027.         {{"_UPC", METHOD_0ARGS,
  1028.           METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
  1029.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
  1030.  
  1031.         {{"_UPD", METHOD_0ARGS,
  1032.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  1033.  
  1034.         {{"_UPP", METHOD_0ARGS,
  1035.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  1036.  
  1037.         {{"_VPO", METHOD_0ARGS,
  1038.           METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
  1039.  
  1040.         /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
  1041.  
  1042.         {{"_WAK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  1043.           METHOD_RETURNS(ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER |
  1044.                          ACPI_RTYPE_PACKAGE)}},
  1045.         PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),        /* Fixed-length (2 Int), but is optional */
  1046.  
  1047.         /* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */
  1048.  
  1049.         {{"_WDG", METHOD_0ARGS,
  1050.           METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
  1051.  
  1052.         {{"_WED", METHOD_1ARGS(ACPI_TYPE_INTEGER),
  1053.           METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING |
  1054.                          ACPI_RTYPE_BUFFER)}},
  1055.  
  1056.         PACKAGE_INFO(0, 0, 0, 0, 0, 0)  /* Table terminator */
  1057. };
  1058. #else
  1059. extern const union acpi_predefined_info acpi_gbl_predefined_methods[];
  1060. #endif
  1061.  
  1062. #if (defined ACPI_CREATE_RESOURCE_TABLE && defined ACPI_APPLICATION)
  1063. /******************************************************************************
  1064.  *
  1065.  * Predefined names for use in Resource Descriptors. These names do not
  1066.  * appear in the global Predefined Name table (since these names never
  1067.  * appear in actual AML byte code, only in the original ASL)
  1068.  *
  1069.  * Note: Used by iASL compiler and acpi_help utility only.
  1070.  *
  1071.  *****************************************************************************/
  1072.  
  1073. const union acpi_predefined_info acpi_gbl_resource_names[] = {
  1074.         {{"_ADR", WIDTH_16 | WIDTH_64, 0}},
  1075.         {{"_ALN", WIDTH_8 | WIDTH_16 | WIDTH_32, 0}},
  1076.         {{"_ASI", WIDTH_8, 0}},
  1077.         {{"_ASZ", WIDTH_8, 0}},
  1078.         {{"_ATT", WIDTH_64, 0}},
  1079.         {{"_BAS", WIDTH_16 | WIDTH_32, 0}},
  1080.         {{"_BM_", WIDTH_1, 0}},
  1081.         {{"_DBT", WIDTH_16, 0}},        /* Acpi 5.0 */
  1082.         {{"_DEC", WIDTH_1, 0}},
  1083.         {{"_DMA", WIDTH_8, 0}},
  1084.         {{"_DPL", WIDTH_1, 0}}, /* Acpi 5.0 */
  1085.         {{"_DRS", WIDTH_16, 0}},        /* Acpi 5.0 */
  1086.         {{"_END", WIDTH_1, 0}}, /* Acpi 5.0 */
  1087.         {{"_FLC", WIDTH_2, 0}}, /* Acpi 5.0 */
  1088.         {{"_GRA", WIDTH_ADDRESS, 0}},
  1089.         {{"_HE_", WIDTH_1, 0}},
  1090.         {{"_INT", WIDTH_16 | WIDTH_32, 0}},
  1091.         {{"_IOR", WIDTH_2, 0}}, /* Acpi 5.0 */
  1092.         {{"_LEN", WIDTH_8 | WIDTH_ADDRESS, 0}},
  1093.         {{"_LIN", WIDTH_8, 0}}, /* Acpi 5.0 */
  1094.         {{"_LL_", WIDTH_1, 0}},
  1095.         {{"_MAF", WIDTH_1, 0}},
  1096.         {{"_MAX", WIDTH_ADDRESS, 0}},
  1097.         {{"_MEM", WIDTH_2, 0}},
  1098.         {{"_MIF", WIDTH_1, 0}},
  1099.         {{"_MIN", WIDTH_ADDRESS, 0}},
  1100.         {{"_MOD", WIDTH_1, 0}}, /* Acpi 5.0 */
  1101.         {{"_MTP", WIDTH_2, 0}},
  1102.         {{"_PAR", WIDTH_8, 0}}, /* Acpi 5.0 */
  1103.         {{"_PHA", WIDTH_1, 0}}, /* Acpi 5.0 */
  1104.         {{"_PIN", WIDTH_16, 0}},        /* Acpi 5.0 */
  1105.         {{"_PPI", WIDTH_8, 0}}, /* Acpi 5.0 */
  1106.         {{"_POL", WIDTH_1 | WIDTH_2, 0}},       /* Acpi 5.0 */
  1107.         {{"_RBO", WIDTH_8, 0}},
  1108.         {{"_RBW", WIDTH_8, 0}},
  1109.         {{"_RNG", WIDTH_1, 0}},
  1110.         {{"_RT_", WIDTH_8, 0}}, /* Acpi 3.0 */
  1111.         {{"_RW_", WIDTH_1, 0}},
  1112.         {{"_RXL", WIDTH_16, 0}},        /* Acpi 5.0 */
  1113.         {{"_SHR", WIDTH_2, 0}},
  1114.         {{"_SIZ", WIDTH_2, 0}},
  1115.         {{"_SLV", WIDTH_1, 0}}, /* Acpi 5.0 */
  1116.         {{"_SPE", WIDTH_32, 0}},        /* Acpi 5.0 */
  1117.         {{"_STB", WIDTH_2, 0}}, /* Acpi 5.0 */
  1118.         {{"_TRA", WIDTH_ADDRESS, 0}},
  1119.         {{"_TRS", WIDTH_1, 0}},
  1120.         {{"_TSF", WIDTH_8, 0}}, /* Acpi 3.0 */
  1121.         {{"_TTP", WIDTH_1, 0}},
  1122.         {{"_TXL", WIDTH_16, 0}},        /* Acpi 5.0 */
  1123.         {{"_TYP", WIDTH_2 | WIDTH_16, 0}},
  1124.         {{"_VEN", VARIABLE_DATA, 0}},   /* Acpi 5.0 */
  1125.         PACKAGE_INFO(0, 0, 0, 0, 0, 0)  /* Table terminator */
  1126. };
  1127.  
  1128. static const union acpi_predefined_info acpi_gbl_scope_names[] = {
  1129.         {{"_GPE", 0, 0}},
  1130.         {{"_PR_", 0, 0}},
  1131.         {{"_SB_", 0, 0}},
  1132.         {{"_SI_", 0, 0}},
  1133.         {{"_TZ_", 0, 0}},
  1134.         PACKAGE_INFO(0, 0, 0, 0, 0, 0)  /* Table terminator */
  1135. };
  1136. #else
  1137. extern const union acpi_predefined_info acpi_gbl_resource_names[];
  1138. #endif
  1139.  
  1140. #endif
  1141.