linux/include/acpi/acpredef.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Name: acpredef - Information table for ACPI predefined methods and objects
   4 *              $Revision: 1.1 $
   5 *
   6 *****************************************************************************/
   7
   8/*
   9 * Copyright (C) 2000 - 2008, Intel Corp.
  10 * All rights reserved.
  11 *
  12 * Redistribution and use in source and binary forms, with or without
  13 * modification, are permitted provided that the following conditions
  14 * are met:
  15 * 1. Redistributions of source code must retain the above copyright
  16 *    notice, this list of conditions, and the following disclaimer,
  17 *    without modification.
  18 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  19 *    substantially similar to the "NO WARRANTY" disclaimer below
  20 *    ("Disclaimer") and any redistribution must be conditioned upon
  21 *    including a substantially similar Disclaimer requirement for further
  22 *    binary redistribution.
  23 * 3. Neither the names of the above-listed copyright holders nor the names
  24 *    of any contributors may be used to endorse or promote products derived
  25 *    from this software without specific prior written permission.
  26 *
  27 * Alternatively, this software may be distributed under the terms of the
  28 * GNU General Public License ("GPL") version 2 as published by the Free
  29 * Software Foundation.
  30 *
  31 * NO WARRANTY
  32 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  33 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  34 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  35 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  36 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  37 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  38 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  39 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  40 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  41 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  42 * POSSIBILITY OF SUCH DAMAGES.
  43 */
  44
  45#ifndef __ACPREDEF_H__
  46#define __ACPREDEF_H__
  47
  48/******************************************************************************
  49 *
  50 * Return Package types
  51 *
  52 * 1) PTYPE1 packages do not contain sub-packages.
  53 *
  54 * ACPI_PTYPE1_FIXED: Fixed length, 1 or 2 object types:
  55 *     object type
  56 *     count
  57 *     object type
  58 *     count
  59 *
  60 * ACPI_PTYPE1_VAR: Variable length:
  61 *    object type (Int/Buf/Ref)
  62 *
  63 * ACPI_PTYPE1_OPTION: Package has some required and some optional elements:
  64 *      Used for _PRW
  65 *
  66 *
  67 * 2) PTYPE2 packages contain a variable number of sub-packages. Each of the
  68 *    different types describe the contents of each of the sub-packages.
  69 *
  70 * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types:
  71 *     object type
  72 *     count
  73 *     object type
  74 *     count
  75 *
  76 * ACPI_PTYPE2_COUNT: Each subpackage has a count as first element:
  77 *     object type
  78 *
  79 * ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types:
  80 *     object type
  81 *     count
  82 *     object type
  83 *     count
  84 *
  85 * ACPI_PTYPE2_FIXED: Each subpackage is of fixed length:
  86 *      Used for _PRT
  87 *
  88 * ACPI_PTYPE2_MIN: Each subpackage has a variable but minimum length
  89 *      Used for _HPX
  90 *
  91 *****************************************************************************/
  92
  93enum acpi_return_package_types {
  94        ACPI_PTYPE1_FIXED = 1,
  95        ACPI_PTYPE1_VAR = 2,
  96        ACPI_PTYPE1_OPTION = 3,
  97        ACPI_PTYPE2 = 4,
  98        ACPI_PTYPE2_COUNT = 5,
  99        ACPI_PTYPE2_PKG_COUNT = 6,
 100        ACPI_PTYPE2_FIXED = 7,
 101        ACPI_PTYPE2_MIN = 8
 102};
 103
 104/*
 105 * Predefined method/object information table.
 106 *
 107 * These are the names that can actually be evaluated via acpi_evaluate_object.
 108 * Not present in this table are the following:
 109 *
 110 *      1) Predefined/Reserved names that are never evaluated via acpi_evaluate_object:
 111 *          _Lxx and _Exx GPE methods
 112 *          _Qxx EC methods
 113 *          _T_x compiler temporary variables
 114 *
 115 *      2) Predefined names that never actually exist within the AML code:
 116 *          Predefined resource descriptor field names
 117 *
 118 *      3) Predefined names that are implemented within ACPICA:
 119 *          _OSI
 120 *
 121 *      4) Some predefined names that are not documented within the ACPI spec.
 122 *          _WDG, _WED
 123 *
 124 * The main entries in the table each contain the following items:
 125 *
 126 * Name                 - The ACPI reserved name
 127 * param_count          - Number of arguments to the method
 128 * expected_btypes      - Allowed type(s) for the return value.
 129 *                        0 means that no return value is expected.
 130 *
 131 * For methods that return packages, the next entry in the table contains
 132 * information about the expected structure of the package. This information
 133 * is saved here (rather than in a separate table) in order to minimize the
 134 * overall size of the stored data.
 135 */
 136static const union acpi_predefined_info predefined_names[] = {
 137        {.info = {"_AC0", 0, ACPI_RTYPE_INTEGER}},
 138        {.info = {"_AC1", 0, ACPI_RTYPE_INTEGER}},
 139        {.info = {"_AC2", 0, ACPI_RTYPE_INTEGER}},
 140        {.info = {"_AC3", 0, ACPI_RTYPE_INTEGER}},
 141        {.info = {"_AC4", 0, ACPI_RTYPE_INTEGER}},
 142        {.info = {"_AC5", 0, ACPI_RTYPE_INTEGER}},
 143        {.info = {"_AC6", 0, ACPI_RTYPE_INTEGER}},
 144        {.info = {"_AC7", 0, ACPI_RTYPE_INTEGER}},
 145        {.info = {"_AC8", 0, ACPI_RTYPE_INTEGER}},
 146        {.info = {"_AC9", 0, ACPI_RTYPE_INTEGER}},
 147        {.info = {"_ADR", 0, ACPI_RTYPE_INTEGER}},
 148        {.info = {"_AL0", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 149        {.info = {"_AL1", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 150        {.info = {"_AL2", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 151        {.info = {"_AL3", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 152        {.info = {"_AL4", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 153        {.info = {"_AL5", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 154        {.info = {"_AL6", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 155        {.info = {"_AL7", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 156        {.info = {"_AL8", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 157        {.info = {"_AL9", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 158        {.info = {"_ALC", 0, ACPI_RTYPE_INTEGER}},
 159        {.info = {"_ALI", 0, ACPI_RTYPE_INTEGER}},
 160        {.info = {"_ALP", 0, ACPI_RTYPE_INTEGER}},
 161        {.info = {"_ALR", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* variable (Pkgs) each 2 (Ints) */
 162        {.info = {"_ALT", 0, ACPI_RTYPE_INTEGER}},
 163        {.info = {"_BBN", 0, ACPI_RTYPE_INTEGER}},
 164        {.info = {"_BCL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}},     /* variable (Ints) */
 165        {.info = {"_BCM", 1, 0}},
 166        {.info = {"_BDN", 0, ACPI_RTYPE_INTEGER}},
 167        {.info = {"_BFS", 1, 0}},
 168        {.info = {"_BIF", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER,
 169                                          9,
 170                                          ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER, 4, 0}},        /* fixed (9 Int),(4 Str) */
 171        {.info = {"_BLT", 3, 0}},
 172        {.info = {"_BMC", 1, 0}},
 173        {.info = {"_BMD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}},   /* fixed (5 Int) */
 174        {.info = {"_BQC", 0, ACPI_RTYPE_INTEGER}},
 175        {.info = {"_BST", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0}},   /* fixed (4 Int) */
 176        {.info = {"_BTM", 1, ACPI_RTYPE_INTEGER}},
 177        {.info = {"_BTP", 1, 0}},
 178        {.info = {"_CBA", 0, ACPI_RTYPE_INTEGER}},      /* see PCI firmware spec 3.0 */
 179        {.info = {"_CID", 0,
 180         ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE}},
 181        {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0, 0, 0, 0}},    /* variable (Ints/Strs) */
 182        {.info = {"_CRS", 0, ACPI_RTYPE_BUFFER}},
 183        {.info = {"_CRT", 0, ACPI_RTYPE_INTEGER}},
 184        {.info = {"_CSD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}},   /* variable (1 Int(n), n-1 Int) */
 185        {.info = {"_CST", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_PKG_COUNT,
 186                                          ACPI_RTYPE_BUFFER, 1,
 187                                          ACPI_RTYPE_INTEGER, 3, 0}},   /* variable (1 Int(n), n Pkg (1 Buf/3 Int) */
 188        {.info = {"_DCK", 1, ACPI_RTYPE_INTEGER}},
 189        {.info = {"_DCS", 0, ACPI_RTYPE_INTEGER}},
 190        {.info = {"_DDC", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER}},
 191        {.info = {"_DDN", 0, ACPI_RTYPE_STRING}},
 192        {.info = {"_DGS", 0, ACPI_RTYPE_INTEGER}},
 193        {.info = {"_DIS", 0, 0}},
 194        {.info = {"_DMA", 0, ACPI_RTYPE_BUFFER}},
 195        {.info = {"_DOD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}},     /* variable (Ints) */
 196        {.info = {"_DOS", 1, 0}},
 197        {.info = {"_DSM", 4, ACPI_RTYPE_ALL}},  /* Must return a type, but it can be of any type */
 198        {.info = {"_DSS", 1, 0}},
 199        {.info = {"_DSW", 3, 0}},
 200        {.info = {"_EC_", 0, ACPI_RTYPE_INTEGER}},
 201        {.info = {"_EDL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 202        {.info = {"_EJ0", 1, 0}},
 203        {.info = {"_EJ1", 1, 0}},
 204        {.info = {"_EJ2", 1, 0}},
 205        {.info = {"_EJ3", 1, 0}},
 206        {.info = {"_EJ4", 1, 0}},
 207        {.info = {"_EJD", 0, ACPI_RTYPE_STRING}},
 208        {.info = {"_FDE", 0, ACPI_RTYPE_BUFFER}},
 209        {.info = {"_FDI", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, 0, 0, 0}},  /* fixed (16 Int) */
 210        {.info = {"_FDM", 1, 0}},
 211        {.info = {"_FIX", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}},     /* variable (Ints) */
 212        {.info = {"_GLK", 0, ACPI_RTYPE_INTEGER}},
 213        {.info = {"_GPD", 0, ACPI_RTYPE_INTEGER}},
 214        {.info = {"_GPE", 0, ACPI_RTYPE_INTEGER}},      /* _GPE method, not _GPE scope */
 215        {.info = {"_GSB", 0, ACPI_RTYPE_INTEGER}},
 216        {.info = {"_GTF", 0, ACPI_RTYPE_BUFFER}},
 217        {.info = {"_GTM", 0, ACPI_RTYPE_BUFFER}},
 218        {.info = {"_GTS", 1, 0}},
 219        {.info = {"_HID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
 220        {.info = {"_HOT", 0, ACPI_RTYPE_INTEGER}},
 221        {.info = {"_HPP", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0}},   /* fixed (4 Int) */
 222
 223        /*
 224         * For _HPX, a single package is returned, containing a variable number of sub-packages.
 225         * Each sub-package contains a PCI record setting. There are several different type of
 226         * record settings, of different lengths, but all elements of all settings are Integers.
 227         */
 228        {.info = {"_HPX", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}},     /* variable (Pkgs) each (var Ints) */
 229        {.info = {"_IFT", 0, ACPI_RTYPE_INTEGER}},      /* see IPMI spec */
 230        {.info = {"_INI", 0, 0}},
 231        {.info = {"_IRC", 0, 0}},
 232        {.info = {"_LCK", 1, 0}},
 233        {.info = {"_LID", 0, ACPI_RTYPE_INTEGER}},
 234        {.info = {"_MAT", 0, ACPI_RTYPE_BUFFER}},
 235        {.info = {"_MLS", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_STRING, 2, 0, 0, 0}},  /* variable (Pkgs) each (2 Str) */
 236        {.info = {"_MSG", 1, 0}},
 237        {.info = {"_OFF", 0, 0}},
 238        {.info = {"_ON_", 0, 0}},
 239        {.info = {"_OS_", 0, ACPI_RTYPE_STRING}},
 240        {.info = {"_OSC", 4, ACPI_RTYPE_BUFFER}},
 241        {.info = {"_OST", 3, 0}},
 242        {.info = {"_PCL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 243        {.info = {"_PCT", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0}},    /* fixed (2 Buf) */
 244        {.info = {"_PDC", 1, 0}},
 245        {.info = {"_PIC", 1, 0}},
 246        {.info = {"_PLD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0, 0, 0, 0}},      /* variable (Bufs) */
 247        {.info = {"_PPC", 0, ACPI_RTYPE_INTEGER}},
 248        {.info = {"_PPE", 0, ACPI_RTYPE_INTEGER}},      /* see dig64 spec */
 249        {.info = {"_PR0", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 250        {.info = {"_PR1", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 251        {.info = {"_PR2", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 252        {.info = {"_PRS", 0, ACPI_RTYPE_BUFFER}},
 253
 254        /*
 255         * For _PRT, many BIOSs reverse the 2nd and 3rd Package elements. This bug is so prevalent that there
 256         * is code in the ACPICA Resource Manager to detect this and switch them back. For now, do not allow
 257         * and issue a warning. To allow this and eliminate the warning, add the ACPI_RTYPE_REFERENCE
 258         * type to the 2nd element (index 1) in the statement below.
 259         */
 260        {.info = {"_PRT", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_FIXED, 4,
 261                                          ACPI_RTYPE_INTEGER,
 262                                          ACPI_RTYPE_INTEGER,
 263                                          ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE, ACPI_RTYPE_INTEGER}},      /* variable (Pkgs) each (4): Int,Int,Int/Ref,Int */
 264
 265        {.info = {"_PRW", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_OPTION, 2,
 266                                          ACPI_RTYPE_INTEGER |
 267                                          ACPI_RTYPE_PACKAGE,
 268                                          ACPI_RTYPE_INTEGER, ACPI_RTYPE_REFERENCE, 0}},        /* variable (Pkgs) each: Pkg/Int,Int,[variable Refs] (Pkg is Ref/Int) */
 269
 270        {.info = {"_PS0", 0, 0}},
 271        {.info = {"_PS1", 0, 0}},
 272        {.info = {"_PS2", 0, 0}},
 273        {.info = {"_PS3", 0, 0}},
 274        {.info = {"_PSC", 0, ACPI_RTYPE_INTEGER}},
 275        {.info = {"_PSD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}},   /* variable (Pkgs) each (5 Int) with count */
 276        {.info = {"_PSL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 277        {.info = {"_PSR", 0, ACPI_RTYPE_INTEGER}},
 278        {.info = {"_PSS", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6, 0, 0, 0}}, /* variable (Pkgs) each (6 Int) */
 279        {.info = {"_PSV", 0, ACPI_RTYPE_INTEGER}},
 280        {.info = {"_PSW", 1, 0}},
 281        {.info = {"_PTC", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0}},    /* fixed (2 Buf) */
 282        {.info = {"_PTS", 1, 0}},
 283        {.info = {"_PXM", 0, ACPI_RTYPE_INTEGER}},
 284        {.info = {"_REG", 2, 0}},
 285        {.info = {"_REV", 0, ACPI_RTYPE_INTEGER}},
 286        {.info = {"_RMV", 0, ACPI_RTYPE_INTEGER}},
 287        {.info = {"_ROM", 2, ACPI_RTYPE_BUFFER}},
 288        {.info = {"_RTV", 0, ACPI_RTYPE_INTEGER}},
 289
 290        /*
 291         * For _S0_ through _S5_, the ACPI spec defines a return Package containing 1 Integer,
 292         * but most DSDTs have it wrong - 2,3, or 4 integers. Allow this by making the objects "variable length",
 293         * but all elements must be Integers.
 294         */
 295        {.info = {"_S0_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}},     /* fixed (1 Int) */
 296        {.info = {"_S1_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}},     /* fixed (1 Int) */
 297        {.info = {"_S2_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}},     /* fixed (1 Int) */
 298        {.info = {"_S3_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}},     /* fixed (1 Int) */
 299        {.info = {"_S4_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}},     /* fixed (1 Int) */
 300        {.info = {"_S5_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}},     /* fixed (1 Int) */
 301
 302        {.info = {"_S1D", 0, ACPI_RTYPE_INTEGER}},
 303        {.info = {"_S2D", 0, ACPI_RTYPE_INTEGER}},
 304        {.info = {"_S3D", 0, ACPI_RTYPE_INTEGER}},
 305        {.info = {"_S4D", 0, ACPI_RTYPE_INTEGER}},
 306        {.info = {"_S0W", 0, ACPI_RTYPE_INTEGER}},
 307        {.info = {"_S1W", 0, ACPI_RTYPE_INTEGER}},
 308        {.info = {"_S2W", 0, ACPI_RTYPE_INTEGER}},
 309        {.info = {"_S3W", 0, ACPI_RTYPE_INTEGER}},
 310        {.info = {"_S4W", 0, ACPI_RTYPE_INTEGER}},
 311        {.info = {"_SBS", 0, ACPI_RTYPE_INTEGER}},
 312        {.info = {"_SCP", 0x13, 0}},    /* Acpi 1.0 allowed 1 arg. Acpi 3.0 expanded to 3 args. Allow both. */
 313        /* Note: the 3-arg definition may be removed for ACPI 4.0 */
 314        {.info = {"_SDD", 1, 0}},
 315        {.info = {"_SEG", 0, ACPI_RTYPE_INTEGER}},
 316        {.info = {"_SLI", 0, ACPI_RTYPE_BUFFER}},
 317        {.info = {"_SPD", 1, ACPI_RTYPE_INTEGER}},
 318        {.info = {"_SRS", 1, 0}},
 319        {.info = {"_SRV", 0, ACPI_RTYPE_INTEGER}},      /* see IPMI spec */
 320        {.info = {"_SST", 1, 0}},
 321        {.info = {"_STA", 0, ACPI_RTYPE_INTEGER}},
 322        {.info = {"_STM", 3, 0}},
 323        {.info = {"_STR", 0, ACPI_RTYPE_BUFFER}},
 324        {.info = {"_SUN", 0, ACPI_RTYPE_INTEGER}},
 325        {.info = {"_SWS", 0, ACPI_RTYPE_INTEGER}},
 326        {.info = {"_TC1", 0, ACPI_RTYPE_INTEGER}},
 327        {.info = {"_TC2", 0, ACPI_RTYPE_INTEGER}},
 328        {.info = {"_TMP", 0, ACPI_RTYPE_INTEGER}},
 329        {.info = {"_TPC", 0, ACPI_RTYPE_INTEGER}},
 330        {.info = {"_TPT", 1, 0}},
 331        {.info = {"_TRT", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2,
 332                                          ACPI_RTYPE_INTEGER, 6, 0}},   /* variable (Pkgs) each 2_ref/6_int */
 333        {.info = {"_TSD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}},   /* variable (Pkgs) each 5_int with count */
 334        {.info = {"_TSP", 0, ACPI_RTYPE_INTEGER}},
 335        {.info = {"_TSS", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* variable (Pkgs) each 5_int */
 336        {.info = {"_TST", 0, ACPI_RTYPE_INTEGER}},
 337        {.info = {"_TTS", 1, 0}},
 338        {.info = {"_TZD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}},   /* variable (Refs) */
 339        {.info = {"_TZM", 0, ACPI_RTYPE_REFERENCE}},
 340        {.info = {"_TZP", 0, ACPI_RTYPE_INTEGER}},
 341        {.info = {"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
 342        {.info = {"_UPC", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0}},   /* fixed (4 Int) */
 343        {.info = {"_UPD", 0, ACPI_RTYPE_INTEGER}},
 344        {.info = {"_UPP", 0, ACPI_RTYPE_INTEGER}},
 345        {.info = {"_VPO", 0, ACPI_RTYPE_INTEGER}},
 346
 347        /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
 348
 349        {.info = {"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}},
 350        {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}},      /* fixed (2 Int), but is optional */
 351        {.ret_info = {0, 0, 0, 0, 0, 0}}        /* Table terminator */
 352};
 353
 354#if 0
 355        /* Not implemented */
 356
 357{
 358"_WDG", 0, ACPI_RTYPE_BUFFER},  /* MS Extension */
 359
 360{
 361"_WED", 1, ACPI_RTYPE_PACKAGE}, /* MS Extension */
 362
 363    /* This is an internally implemented control method, no need to check */
 364{
 365"_OSI", 1, ACPI_RTYPE_INTEGER},
 366
 367    /* TBD: */
 368    _PRT - currently ignore reversed entries.attempt to fix here ?
 369    think about code that attempts to fix package elements like _BIF, etc.
 370#endif
 371#endif
 372
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.