acobject.h revision 67754
11258Smlf 21258Smlf/****************************************************************************** 31258Smlf * 41258Smlf * Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only) 51258Smlf * $Revision: 74 $ 61258Smlf * 71258Smlf *****************************************************************************/ 81258Smlf 91258Smlf/****************************************************************************** 101258Smlf * 111258Smlf * 1. Copyright Notice 121258Smlf * 131258Smlf * Some or all of this work - Copyright (c) 1999, Intel Corp. All rights 141258Smlf * reserved. 151258Smlf * 161258Smlf * 2. License 171258Smlf * 181258Smlf * 2.1. This is your license from Intel Corp. under its intellectual property 191258Smlf * rights. You may have additional license terms from the party that provided 201258Smlf * you this software, covering your right to use that party's intellectual 211258Smlf * property rights. 221258Smlf * 2310082SFred.Herard@Sun.COM * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 241258Smlf * copy of the source code appearing in this file ("Covered Code") an 251258Smlf * irrevocable, perpetual, worldwide license under Intel's copyrights in the 261258Smlf * base code distributed originally by Intel ("Original Intel Code") to copy, 271258Smlf * make derivatives, distribute, use and display any portion of the Covered 281258Smlf * Code in any form, with the right to sublicense such rights; and 291258Smlf * 301258Smlf * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 311258Smlf * license (with the right to sublicense), under only those claims of Intel 321258Smlf * patents that are infringed by the Original Intel Code, to make, use, sell, 331258Smlf * offer to sell, and import the Covered Code and derivative works thereof 341258Smlf * solely to the minimum extent necessary to exercise the above copyright 351258Smlf * license, and in no event shall the patent license extend to any additions 361258Smlf * to or modifications of the Original Intel Code. No other license or right 371258Smlf * is granted directly or by implication, estoppel or otherwise; 381258Smlf * 391258Smlf * The above copyright and patent license is granted only if the following 401258Smlf * conditions are met: 411258Smlf * 421258Smlf * 3. Conditions 431258Smlf * 441258Smlf * 3.1. Redistribution of Source with Rights to Further Distribute Source. 451258Smlf * Redistribution of source code of any substantial portion of the Covered 461258Smlf * Code or modification with rights to further distribute source must include 471258Smlf * the above Copyright Notice, the above License, this list of Conditions, 484014Sls24207 * and the following Disclaimer and Export Compliance provision. In addition, 491258Smlf * Licensee must cause all Covered Code to which Licensee contributes to 501258Smlf * contain a file documenting the changes Licensee made to create that Covered 511258Smlf * Code and the date of any change. Licensee must include in that file the 521258Smlf * documentation of any changes made by any predecessor Licensee. Licensee 531258Smlf * must include a prominent statement that the modification is derived, 541258Smlf * directly or indirectly, from Original Intel Code. 551258Smlf * 561258Smlf * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 571258Smlf * Redistribution of source code of any substantial portion of the Covered 581258Smlf * Code or modification without rights to further distribute source must 591258Smlf * include the following Disclaimer and Export Compliance provision in the 601258Smlf * documentation and/or other materials provided with distribution. In 611258Smlf * addition, Licensee may not authorize further sublicense of source of any 621258Smlf * portion of the Covered Code, and must include terms to the effect that the 631258Smlf * license from Licensee to its licensee is limited to the intellectual 641258Smlf * property embodied in the software Licensee provides to its licensee, and 651258Smlf * not to intellectual property embodied in modifications its licensee may 661258Smlf * make. 671258Smlf * 681258Smlf * 3.3. Redistribution of Executable. Redistribution in executable form of any 691258Smlf * substantial portion of the Covered Code or modification must reproduce the 701258Smlf * above Copyright Notice, and the following Disclaimer and Export Compliance 711258Smlf * provision in the documentation and/or other materials provided with the 721258Smlf * distribution. 731258Smlf * 741258Smlf * 3.4. Intel retains all right, title, and interest in and to the Original 751258Smlf * Intel Code. 761258Smlf * 771258Smlf * 3.5. Neither the name Intel nor any other trademark owned or controlled by 781258Smlf * Intel shall be used in advertising or otherwise to promote the sale, use or 791258Smlf * other dealings in products derived from or relating to the Covered Code 801258Smlf * without prior written authorization from Intel. 811258Smlf * 821258Smlf * 4. Disclaimer and Export Compliance 831258Smlf * 841258Smlf * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 851258Smlf * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 8610663SXiao-Yu.Zhang@Sun.COM * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 871258Smlf * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 881258Smlf * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 891258Smlf * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 901258Smlf * PARTICULAR PURPOSE. 911258Smlf * 921258Smlf * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 931258Smlf * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 941258Smlf * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 951258Smlf * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 961258Smlf * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 971258Smlf * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 981258Smlf * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 991258Smlf * LIMITED REMEDY. 1001258Smlf * 1011258Smlf * 4.3. Licensee shall not export, either directly or indirectly, any of this 1021258Smlf * software or system incorporating such software without first obtaining any 1031258Smlf * required license or other approval from the U. S. Department of Commerce or 1041258Smlf * any other agency or department of the United States Government. In the 1051258Smlf * event Licensee exports any such software from the United States or 1061258Smlf * re-exports any such software from a foreign destination, Licensee shall 1071258Smlf * ensure that the distribution and export/re-export of the software is in 10810318SXiao-Yu.Zhang@Sun.COM * compliance with all laws, regulations, orders, or other restrictions of the 10910318SXiao-Yu.Zhang@Sun.COM * U.S. Export Administration Regulations. Licensee agrees that neither it nor 11010318SXiao-Yu.Zhang@Sun.COM * any of its subsidiaries will export/re-export any technical data, process, 11110318SXiao-Yu.Zhang@Sun.COM * software, or service, directly or indirectly, to any country for which the 11210318SXiao-Yu.Zhang@Sun.COM * United States government or any agency thereof requires an export license, 11310318SXiao-Yu.Zhang@Sun.COM * other governmental approval, or letter of assurance, without first obtaining 11410318SXiao-Yu.Zhang@Sun.COM * such license, approval or letter. 11510318SXiao-Yu.Zhang@Sun.COM * 11610318SXiao-Yu.Zhang@Sun.COM *****************************************************************************/ 11710318SXiao-Yu.Zhang@Sun.COM 11810663SXiao-Yu.Zhang@Sun.COM#ifndef _ACOBJECT_H 11910318SXiao-Yu.Zhang@Sun.COM#define _ACOBJECT_H 12010318SXiao-Yu.Zhang@Sun.COM 12110318SXiao-Yu.Zhang@Sun.COM 12210318SXiao-Yu.Zhang@Sun.COM/* 12310318SXiao-Yu.Zhang@Sun.COM * The ACPI_OPERAND_OBJECT is used to pass AML operands from the dispatcher 1241258Smlf * to the interpreter, and to keep track of the various handlers such as 1251258Smlf * address space handlers and notify handlers. The object is a constant 1261258Smlf * size in order to allow them to be cached and reused. 1271258Smlf * 1281258Smlf * All variants of the ACPI_OPERAND_OBJECT are defined with the same 1291258Smlf * sequence of field types, with fields that are not used in a particular 1301258Smlf * variant being named "Reserved". This is not strictly necessary, but 1311258Smlf * may in some circumstances simplify understanding if these structures 1321258Smlf * need to be displayed in a debugger having limited (or no) support for 1331258Smlf * union types. It also simplifies some debug code in DumpTable() which 1341258Smlf * dumps multi-level values: fetching Buffer.Pointer suffices to pick up 1351258Smlf * the value or next level for any of several types. 1361258Smlf */ 1371258Smlf 1381258Smlf/****************************************************************************** 1391258Smlf * 1401258Smlf * Common Descriptors 14110663SXiao-Yu.Zhang@Sun.COM * 1421258Smlf *****************************************************************************/ 1431258Smlf 1441258Smlf/* 1451258Smlf * Common area for all objects. 1461258Smlf * 1471258Smlf * DataType is used to differentiate between internal descriptors, and MUST 1481258Smlf * be the first byte in this structure. 1491258Smlf */ 1501258Smlf 1511258Smlf 1521258Smlf#define ACPI_OBJECT_COMMON_HEADER /* 32-bits plus 8-bit flag */\ 1531258Smlf UINT8 DataType; /* To differentiate various internal objs */\ 1541258Smlf UINT8 Type; /* ACPI_OBJECT_TYPE */\ 1551258Smlf UINT16 ReferenceCount; /* For object deletion management */\ 1561258Smlf UINT8 Flags; \ 1571258Smlf 1581258Smlf/* Defines for flag byte above */ 1591258Smlf 1601258Smlf#define AOPOBJ_STATIC_ALLOCATION 0x1 1611258Smlf#define AOPOBJ_DATA_VALID 0x2 1626539Spawelw#define AOPOBJ_INITIALIZED 0x4 1631258Smlf 1641258Smlf 1651258Smlf/* 1661258Smlf * Common bitfield for the field objects 1671258Smlf */ 1681258Smlf#define ACPI_COMMON_FIELD_INFO /* Three 32-bit values plus 8*/\ 1691258Smlf UINT8 Granularity;\ 1701258Smlf UINT16 Length; \ 1711258Smlf UINT32 Offset; /* Byte offset within containing object */\ 1721258Smlf UINT8 BitOffset; /* Bit offset within min read/write data unit */\ 1731258Smlf UINT8 Access; /* AccessType */\ 1741258Smlf UINT8 LockRule;\ 1751258Smlf UINT8 UpdateRule;\ 1761258Smlf UINT8 AccessAttribute; 1771258Smlf 1781258Smlf 1791258Smlf/****************************************************************************** 1801258Smlf * 18110318SXiao-Yu.Zhang@Sun.COM * Individual Object Descriptors 1821258Smlf * 1831258Smlf *****************************************************************************/ 1841258Smlf 1851258Smlf 1861258Smlftypedef struct /* COMMON */ 1871258Smlf{ 1881258Smlf ACPI_OBJECT_COMMON_HEADER 1891258Smlf 1901258Smlf} ACPI_OBJECT_COMMON; 1911258Smlf 1921258Smlf 1931258Smlftypedef struct /* CACHE_LIST */ 1941258Smlf{ 1951258Smlf ACPI_OBJECT_COMMON_HEADER 1961258Smlf union acpi_operand_obj *Next; /* Link for object cache and internal lists*/ 1971258Smlf 1981258Smlf} ACPI_OBJECT_CACHE_LIST; 1991258Smlf 2001258Smlf 2011258Smlftypedef struct /* NUMBER - has value */ 2021258Smlf{ 2031258Smlf ACPI_OBJECT_COMMON_HEADER 2041258Smlf 2051258Smlf ACPI_INTEGER Value; 2061258Smlf 2071258Smlf} ACPI_OBJECT_NUMBER; 2081258Smlf 2091258Smlf 2101258Smlftypedef struct /* STRING - has length and pointer */ 2111258Smlf{ 2121258Smlf ACPI_OBJECT_COMMON_HEADER 2131258Smlf 2141258Smlf UINT32 Length; 2151258Smlf NATIVE_CHAR *Pointer; /* String value in AML stream or in allocated space */ 2161258Smlf 2178010SYing.Tian@Sun.COM} ACPI_OBJECT_STRING; 2188010SYing.Tian@Sun.COM 2198010SYing.Tian@Sun.COM 2208010SYing.Tian@Sun.COMtypedef struct /* BUFFER - has length, sequence, and pointer */ 2218010SYing.Tian@Sun.COM{ 2228010SYing.Tian@Sun.COM ACPI_OBJECT_COMMON_HEADER 2238010SYing.Tian@Sun.COM 2248010SYing.Tian@Sun.COM UINT32 Length; 2251258Smlf UINT32 Sequence; /* Sequential count of buffers created */ 2261258Smlf 2271258Smlf UINT8 *Pointer; /* points to the buffer in allocated space */ 2281258Smlf 2291258Smlf} ACPI_OBJECT_BUFFER; 2301258Smlf 2311258Smlf 2321258Smlftypedef struct /* PACKAGE - has count, elements, next element */ 2331258Smlf{ 2341258Smlf ACPI_OBJECT_COMMON_HEADER 2351258Smlf 2361258Smlf UINT32 Count; /* # of elements in package */ 2371258Smlf 2381258Smlf union acpi_operand_obj **Elements; /* Array of pointers to AcpiObjects */ 2391258Smlf union acpi_operand_obj **NextElement; /* used only while initializing */ 2401258Smlf 2411258Smlf} ACPI_OBJECT_PACKAGE; 2421258Smlf 2431258Smlf 2441258Smlftypedef struct /* FIELD UNIT */ 2451258Smlf{ 2461258Smlf ACPI_OBJECT_COMMON_HEADER 2471258Smlf 2481258Smlf ACPI_COMMON_FIELD_INFO 2491258Smlf 2501258Smlf union acpi_operand_obj *Extra; /* Pointer to executable AML (in field definition) */ 2511258Smlf ACPI_NAMESPACE_NODE *Node; /* containing object */ 2521258Smlf union acpi_operand_obj *Container; /* Containing object (Buffer) */ 2531258Smlf 2541258Smlf} ACPI_OBJECT_FIELD_UNIT; 2551258Smlf 2561258Smlf 2571258Smlftypedef struct /* DEVICE - has handle and notification handler/context */ 2581258Smlf{ 2591258Smlf ACPI_OBJECT_COMMON_HEADER 2601258Smlf 2611258Smlf union acpi_operand_obj *SysHandler; /* Handler for system notifies */ 2621258Smlf union acpi_operand_obj *DrvHandler; /* Handler for driver notifies */ 2631258Smlf union acpi_operand_obj *AddrHandler; /* Handler for Address space */ 2641258Smlf 2651258Smlf} ACPI_OBJECT_DEVICE; 2661258Smlf 2671258Smlf 2681258Smlftypedef struct /* EVENT */ 2691258Smlf{ 2701258Smlf ACPI_OBJECT_COMMON_HEADER 2711258Smlf 2721258Smlf void *Semaphore; 2731258Smlf 2741258Smlf} ACPI_OBJECT_EVENT; 2751258Smlf 2761258Smlf 2771258Smlf#define INFINITE_CONCURRENCY 0xFF 2781258Smlf 2791258Smlftypedef struct /* METHOD */ 2805014Spawelw{ 2815014Spawelw ACPI_OBJECT_COMMON_HEADER 2821258Smlf UINT8 MethodFlags; 2831258Smlf UINT8 ParamCount; 2841258Smlf 2851258Smlf UINT32 PcodeLength; 2861258Smlf 2871258Smlf void *Semaphore; 2881258Smlf UINT8 *Pcode; 2891258Smlf 2901258Smlf UINT8 Concurrency; 2911258Smlf UINT8 ThreadCount; 2921258Smlf ACPI_OWNER_ID OwningId; 2931258Smlf 2941258Smlf} ACPI_OBJECT_METHOD; 2955014Spawelw 2965014Spawelw 2975014Spawelwtypedef struct /* MUTEX */ 2981258Smlf{ 2991258Smlf ACPI_OBJECT_COMMON_HEADER 3001258Smlf UINT16 SyncLevel; 3011258Smlf 3021258Smlf void *Semaphore; 3031258Smlf 3041258Smlf} ACPI_OBJECT_MUTEX; 3051258Smlf 3061258Smlf 3071258Smlftypedef struct /* REGION */ 3081258Smlf{ 3091258Smlf ACPI_OBJECT_COMMON_HEADER 3101612Sls24207 3114862SUnknown UINT8 SpaceId; 3124862SUnknown UINT32 Length; 3131258Smlf ACPI_INTEGER Address; 3141258Smlf union acpi_operand_obj *Extra; /* Pointer to executable AML (in region definition) */ 3154862SUnknown 3164862SUnknown union acpi_operand_obj *AddrHandler; /* Handler for system notifies */ 3175014Spawelw ACPI_NAMESPACE_NODE *Node; /* containing object */ 3184862SUnknown union acpi_operand_obj *Next; 3195014Spawelw 3201258Smlf} ACPI_OBJECT_REGION; 3211258Smlf 3221258Smlf 3231258Smlftypedef struct /* POWER RESOURCE - has Handle and notification handler/context*/ 3241612Sls24207{ 3251612Sls24207 ACPI_OBJECT_COMMON_HEADER 3261612Sls24207 3271612Sls24207 UINT32 SystemLevel; 3281612Sls24207 UINT32 ResourceOrder; 3291612Sls24207 3301612Sls24207 union acpi_operand_obj *SysHandler; /* Handler for system notifies */ 3311612Sls24207 union acpi_operand_obj *DrvHandler; /* Handler for driver notifies */ 3321612Sls24207 3331612Sls24207} ACPI_OBJECT_POWER_RESOURCE; 3341612Sls24207 3351612Sls24207 3361612Sls24207typedef struct /* PROCESSOR - has Handle and notification handler/context*/ 3371612Sls24207{ 3381612Sls24207 ACPI_OBJECT_COMMON_HEADER 3391612Sls24207 3401612Sls24207 UINT32 ProcId; 3411612Sls24207 UINT32 Length; 3421612Sls24207 ACPI_IO_ADDRESS Address; 3431612Sls24207 3441612Sls24207 union acpi_operand_obj *SysHandler; /* Handler for system notifies */ 3451612Sls24207 union acpi_operand_obj *DrvHandler; /* Handler for driver notifies */ 3464862SUnknown union acpi_operand_obj *AddrHandler; /* Handler for Address space */ 3471612Sls24207 3481258Smlf} ACPI_OBJECT_PROCESSOR; 3491258Smlf 3501258Smlf 3511258Smlftypedef struct /* THERMAL ZONE - has Handle and Handler/Context */ 3521258Smlf{ 3531258Smlf ACPI_OBJECT_COMMON_HEADER 3541258Smlf 3551258Smlf union acpi_operand_obj *SysHandler; /* Handler for system notifies */ 3561258Smlf union acpi_operand_obj *DrvHandler; /* Handler for driver notifies */ 3571258Smlf union acpi_operand_obj *AddrHandler; /* Handler for Address space */ 3581258Smlf 3591258Smlf} ACPI_OBJECT_THERMAL_ZONE; 3601258Smlf 3611258Smlf 3621258Smlf/* 3631258Smlf * Internal types 3641258Smlf */ 3651258Smlf 3664862SUnknown 3674862SUnknowntypedef struct /* FIELD */ 3681258Smlf{ 3691258Smlf ACPI_OBJECT_COMMON_HEADER 3701258Smlf 3714862SUnknown ACPI_COMMON_FIELD_INFO 3724862SUnknown 3734862SUnknown union acpi_operand_obj *Container; /* Containing object */ 3744862SUnknown 3754862SUnknown} ACPI_OBJECT_FIELD; 3761258Smlf 3774862SUnknown 3781258Smlftypedef struct /* BANK FIELD */ 3791258Smlf{ 3801258Smlf ACPI_OBJECT_COMMON_HEADER 3811258Smlf 3821258Smlf ACPI_COMMON_FIELD_INFO 3831258Smlf UINT32 Value; /* Value to store into BankSelect */ 3841258Smlf 3851258Smlf ACPI_HANDLE BankSelect; /* Bank select register */ 3861258Smlf union acpi_operand_obj *Container; /* Containing object */ 3871258Smlf 3881258Smlf} ACPI_OBJECT_BANK_FIELD; 3891258Smlf 3901258Smlf 3911258Smlftypedef struct /* INDEX FIELD */ 3921258Smlf{ 3931258Smlf /* 3941258Smlf * No container pointer needed since the index and data register definitions 3951258Smlf * will define how to access the respective registers 3961258Smlf */ 3971258Smlf ACPI_OBJECT_COMMON_HEADER 3981258Smlf 3991258Smlf ACPI_COMMON_FIELD_INFO 4001258Smlf UINT32 Value; /* Value to store into Index register */ 4011612Sls24207 4021258Smlf ACPI_HANDLE Index; /* Index register */ 4031258Smlf ACPI_HANDLE Data; /* Data register */ 4041258Smlf 4051258Smlf} ACPI_OBJECT_INDEX_FIELD; 4061258Smlf 4071258Smlf 4081258Smlftypedef struct /* NOTIFY HANDLER */ 4092553Sls24207{ 4102553Sls24207 ACPI_OBJECT_COMMON_HEADER 4112553Sls24207 4122553Sls24207 ACPI_NAMESPACE_NODE *Node; /* Parent device */ 4131258Smlf NOTIFY_HANDLER Handler; 4141258Smlf void *Context; 4152553Sls24207 4161258Smlf} ACPI_OBJECT_NOTIFY_HANDLER; 4171258Smlf 4182553Sls24207 4191258Smlf/* Flags for address handler */ 4201258Smlf 4211258Smlf#define ADDR_HANDLER_DEFAULT_INSTALLED 0x1 4221258Smlf 4231258Smlf 4245279Sls24207typedef struct /* ADDRESS HANDLER */ 4251258Smlf{ 4261258Smlf ACPI_OBJECT_COMMON_HEADER 4271258Smlf 4281258Smlf UINT8 SpaceId; 4291258Smlf UINT16 Hflags; 4302553Sls24207 ADDRESS_SPACE_HANDLER Handler; 4311258Smlf 4321258Smlf ACPI_NAMESPACE_NODE *Node; /* Parent device */ 4331258Smlf void *Context; 4341258Smlf ADDRESS_SPACE_SETUP Setup; 4351258Smlf union acpi_operand_obj *RegionList; /* regions using this handler */ 4361258Smlf union acpi_operand_obj *Next; 4371258Smlf 4381258Smlf} ACPI_OBJECT_ADDR_HANDLER; 4391258Smlf 4401258Smlf 4411258Smlf/* 4422553Sls24207 * The Reference object type is used for these opcodes: 4432553Sls24207 * Arg[0-6], Local[0-7], IndexOp, NameOp, ZeroOp, OneOp, OnesOp, DebugOp 4442553Sls24207 */ 4452553Sls24207 4461258Smlftypedef struct /* Reference - Local object type */ 4471258Smlf{ 4481258Smlf ACPI_OBJECT_COMMON_HEADER 4491258Smlf 4502553Sls24207 UINT8 TargetType; /* Used for IndexOp */ 4511258Smlf UINT16 OpCode; 4521258Smlf UINT32 Offset; /* Used for ArgOp, LocalOp, and IndexOp */ 4531258Smlf 4541258Smlf void *Object; /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT */ 4551258Smlf ACPI_NAMESPACE_NODE *Node; 4561258Smlf union acpi_operand_obj **Where; 4571258Smlf 4581258Smlf} ACPI_OBJECT_REFERENCE; 4591258Smlf 4601258Smlf 4611258Smlf/* 4621258Smlf * Extra object is used as additional storage for types that 4631258Smlf * have AML code in their declarations (TermArgs) that must be 4641258Smlf * evaluated at run time. 4651258Smlf * 4661258Smlf * Currently: Region and FieldUnit types 4671258Smlf */ 4681258Smlf 4691258Smlftypedef struct /* EXTRA */ 4701258Smlf{ 4711258Smlf ACPI_OBJECT_COMMON_HEADER 4721258Smlf UINT8 ByteFill1; 4731258Smlf UINT16 WordFill1; 4741258Smlf UINT32 PcodeLength; 4751258Smlf UINT8 *Pcode; 4761258Smlf ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */ 4771258Smlf void *RegionContext; /* Region-specific data */ 4781258Smlf 4791258Smlf} ACPI_OBJECT_EXTRA; 4801258Smlf 4811258Smlf 4821258Smlf/****************************************************************************** 4831258Smlf * 4841258Smlf * ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above 4851258Smlf * 4861258Smlf *****************************************************************************/ 4871258Smlf 4881258Smlftypedef union acpi_operand_obj 4891258Smlf{ 4901258Smlf ACPI_OBJECT_COMMON Common; 4911258Smlf ACPI_OBJECT_CACHE_LIST Cache; 4921258Smlf ACPI_OBJECT_NUMBER Number; 4931258Smlf ACPI_OBJECT_STRING String; 4941258Smlf ACPI_OBJECT_BUFFER Buffer; 4951258Smlf ACPI_OBJECT_PACKAGE Package; 4961258Smlf ACPI_OBJECT_FIELD_UNIT FieldUnit; 4971258Smlf ACPI_OBJECT_DEVICE Device; 4981258Smlf ACPI_OBJECT_EVENT Event; 4991258Smlf ACPI_OBJECT_METHOD Method; 5001258Smlf ACPI_OBJECT_MUTEX Mutex; 5011258Smlf ACPI_OBJECT_REGION Region; 5021258Smlf ACPI_OBJECT_POWER_RESOURCE PowerResource; 5031258Smlf ACPI_OBJECT_PROCESSOR Processor; 5041258Smlf ACPI_OBJECT_THERMAL_ZONE ThermalZone; 5051258Smlf ACPI_OBJECT_FIELD Field; 5061258Smlf ACPI_OBJECT_BANK_FIELD BankField; 5071258Smlf ACPI_OBJECT_INDEX_FIELD IndexField; 5081258Smlf ACPI_OBJECT_REFERENCE Reference; 5091258Smlf ACPI_OBJECT_NOTIFY_HANDLER NotifyHandler; 5101258Smlf ACPI_OBJECT_ADDR_HANDLER AddrHandler; 5111258Smlf ACPI_OBJECT_EXTRA Extra; 5121258Smlf 5131258Smlf} ACPI_OPERAND_OBJECT; 5141258Smlf 5151258Smlf#endif /* _ACOBJECT_H */ 5161258Smlf