mirror of
https://github.com/acpica/acpica/
synced 2025-01-04 00:24:27 +03:00
Added 2003 copyright to the legal header
date 2003.01.06.17.32.00; author rmoore1; state Exp;
This commit is contained in:
parent
da8fec052b
commit
046b3446b7
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nsaccess - Top-level functions for accessing ACPI namespace
|
||||
* $Revision: 1.167 $
|
||||
* $Revision: 1.168 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nsalloc - Namespace allocation and deletion utilities
|
||||
* $Revision: 1.78 $
|
||||
* $Revision: 1.79 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsdump - table dumping routines for debug
|
||||
* $Revision: 1.142 $
|
||||
* $Revision: 1.151 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -186,16 +186,13 @@ AcpiNsPrintPathname (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
void
|
||||
AcpiNsDumpPathname (
|
||||
ACPI_HANDLE Handle,
|
||||
NATIVE_CHAR *Msg,
|
||||
char *Msg,
|
||||
UINT32 Level,
|
||||
UINT32 Component)
|
||||
{
|
||||
ACPI_BUFFER Buffer;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsDumpPathname");
|
||||
|
||||
@ -204,21 +201,14 @@ AcpiNsDumpPathname (
|
||||
|
||||
if (!(AcpiDbgLevel & Level) || !(AcpiDbgLayer & Component))
|
||||
{
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
/* Convert handle to a full pathname and print it (with supplied message) */
|
||||
|
||||
Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
|
||||
|
||||
Status = AcpiNsHandleToPathname (Handle, &Buffer);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
AcpiOsPrintf ("%s %s (Node %p)\n", Msg, (char *) Buffer.Pointer, Handle);
|
||||
ACPI_MEM_FREE (Buffer.Pointer);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
AcpiNsPrintNodePathname (Handle, Msg);
|
||||
AcpiOsPrintf ("\n");
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
|
||||
@ -248,22 +238,14 @@ AcpiNsDumpOneObject (
|
||||
ACPI_OBJECT_TYPE ObjType;
|
||||
ACPI_OBJECT_TYPE Type;
|
||||
UINT32 BytesToDump;
|
||||
UINT32 DownstreamSiblingMask = 0;
|
||||
UINT32 LevelTmp;
|
||||
UINT32 WhichBit;
|
||||
UINT32 i;
|
||||
UINT32 DbgLevel;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("NsDumpOneObject");
|
||||
|
||||
|
||||
ThisNode = AcpiNsMapHandleToNode (ObjHandle);
|
||||
|
||||
LevelTmp = Level;
|
||||
Type = ThisNode->Type;
|
||||
WhichBit = 1;
|
||||
|
||||
/* Is output enabled? */
|
||||
|
||||
if (!(AcpiDbgLevel & Info->DebugLevel))
|
||||
{
|
||||
@ -276,6 +258,9 @@ AcpiNsDumpOneObject (
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ThisNode = AcpiNsMapHandleToNode (ObjHandle);
|
||||
Type = ThisNode->Type;
|
||||
|
||||
/* Check if the owner matches */
|
||||
|
||||
if ((Info->OwnerId != ACPI_UINT32_MAX) &&
|
||||
@ -286,52 +271,9 @@ AcpiNsDumpOneObject (
|
||||
|
||||
/* Indent the object according to the level */
|
||||
|
||||
while (LevelTmp--)
|
||||
{
|
||||
/* Print appropriate characters to form tree structure */
|
||||
AcpiOsPrintf ("%2d%*s", (UINT32) Level - 1, (int) Level * 2, " ");
|
||||
|
||||
if (LevelTmp)
|
||||
{
|
||||
if (DownstreamSiblingMask & WhichBit)
|
||||
{
|
||||
AcpiOsPrintf ("|");
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf (" ");
|
||||
}
|
||||
|
||||
WhichBit <<= 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (AcpiNsExistDownstreamSibling (ThisNode + 1))
|
||||
{
|
||||
DownstreamSiblingMask |= ((UINT32) 1 << (Level - 1));
|
||||
AcpiOsPrintf ("+");
|
||||
}
|
||||
else
|
||||
{
|
||||
DownstreamSiblingMask &= ACPI_UINT32_MAX ^ ((UINT32) 1 << (Level - 1));
|
||||
AcpiOsPrintf ("+");
|
||||
}
|
||||
|
||||
if (ThisNode->Child == NULL)
|
||||
{
|
||||
AcpiOsPrintf ("-");
|
||||
}
|
||||
else if (AcpiNsExistDownstreamSibling (ThisNode->Child))
|
||||
{
|
||||
AcpiOsPrintf ("+");
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("-");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Check the integrity of our data */
|
||||
/* Check the node type and name */
|
||||
|
||||
if (Type > ACPI_TYPE_LOCAL_MAX)
|
||||
{
|
||||
@ -346,7 +288,7 @@ AcpiNsDumpOneObject (
|
||||
/*
|
||||
* Now we can print out the pertinent information
|
||||
*/
|
||||
AcpiOsPrintf (" %4.4s %-12s %p",
|
||||
AcpiOsPrintf ("%4.4s %-12s %p ",
|
||||
ThisNode->Name.Ascii, AcpiUtGetTypeName (Type), ThisNode);
|
||||
|
||||
DbgLevel = AcpiDbgLevel;
|
||||
@ -370,7 +312,7 @@ AcpiNsDumpOneObject (
|
||||
{
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
|
||||
AcpiOsPrintf (" ID %X Len %.4X Addr %p\n",
|
||||
AcpiOsPrintf ("ID %X Len %.4X Addr %p\n",
|
||||
ObjDesc->Processor.ProcId,
|
||||
ObjDesc->Processor.Length,
|
||||
(char *) ObjDesc->Processor.Address);
|
||||
@ -379,13 +321,13 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_DEVICE:
|
||||
|
||||
AcpiOsPrintf (" Notification object: %p", ObjDesc);
|
||||
AcpiOsPrintf ("Notify object: %p", ObjDesc);
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_METHOD:
|
||||
|
||||
AcpiOsPrintf (" Args %X Len %.4X Aml %p\n",
|
||||
AcpiOsPrintf ("Args %X Len %.4X Aml %p\n",
|
||||
(UINT32) ObjDesc->Method.ParamCount,
|
||||
ObjDesc->Method.AmlLength,
|
||||
ObjDesc->Method.AmlStart);
|
||||
@ -394,7 +336,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
AcpiOsPrintf (" = %8.8X%8.8X\n",
|
||||
AcpiOsPrintf ("= %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (ObjDesc->Integer.Value),
|
||||
ACPI_LODWORD (ObjDesc->Integer.Value));
|
||||
break;
|
||||
@ -404,12 +346,12 @@ AcpiNsDumpOneObject (
|
||||
|
||||
if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
|
||||
{
|
||||
AcpiOsPrintf (" Elements %.2X\n",
|
||||
AcpiOsPrintf ("Elements %.2X\n",
|
||||
ObjDesc->Package.Count);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf (" [Length not yet evaluated]\n");
|
||||
AcpiOsPrintf ("[Length not yet evaluated]\n");
|
||||
}
|
||||
break;
|
||||
|
||||
@ -418,7 +360,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
|
||||
{
|
||||
AcpiOsPrintf (" Len %.2X",
|
||||
AcpiOsPrintf ("Len %.2X",
|
||||
ObjDesc->Buffer.Length);
|
||||
|
||||
/* Dump some of the buffer */
|
||||
@ -435,30 +377,22 @@ AcpiNsDumpOneObject (
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf (" [Length not yet evaluated]\n");
|
||||
AcpiOsPrintf ("[Length not yet evaluated]\n");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
AcpiOsPrintf (" Len %.2X", ObjDesc->String.Length);
|
||||
|
||||
if (ObjDesc->String.Length > 0)
|
||||
{
|
||||
AcpiOsPrintf (" = \"%.32s\"", ObjDesc->String.Pointer);
|
||||
if (ObjDesc->String.Length > 32)
|
||||
{
|
||||
AcpiOsPrintf ("...");
|
||||
}
|
||||
}
|
||||
AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
|
||||
AcpiUtPrintString (ObjDesc->String.Pointer, 32);
|
||||
AcpiOsPrintf ("\n");
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_REGION:
|
||||
|
||||
AcpiOsPrintf (" [%s]", AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
|
||||
AcpiOsPrintf ("[%s]", AcpiUtGetRegionName (ObjDesc->Region.SpaceId));
|
||||
if (ObjDesc->Region.Flags & AOPOBJ_DATA_VALID)
|
||||
{
|
||||
AcpiOsPrintf (" Addr %8.8X%8.8X Len %.4X\n",
|
||||
@ -475,7 +409,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
AcpiOsPrintf (" [%s]\n",
|
||||
AcpiOsPrintf ("[%s]\n",
|
||||
AcpiPsGetOpcodeName (ObjDesc->Reference.Opcode));
|
||||
break;
|
||||
|
||||
@ -485,7 +419,7 @@ AcpiNsDumpOneObject (
|
||||
if (ObjDesc->BufferField.BufferObj &&
|
||||
ObjDesc->BufferField.BufferObj->Buffer.Node)
|
||||
{
|
||||
AcpiOsPrintf (" Buf [%4.4s]",
|
||||
AcpiOsPrintf ("Buf [%4.4s]",
|
||||
ObjDesc->BufferField.BufferObj->Buffer.Node->Name.Ascii);
|
||||
}
|
||||
break;
|
||||
@ -493,14 +427,14 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Rgn [%4.4s]",
|
||||
AcpiOsPrintf ("Rgn [%4.4s]",
|
||||
ObjDesc->CommonField.RegionObj->Region.Node->Name.Ascii);
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Rgn [%4.4s] Bnk [%4.4s]",
|
||||
AcpiOsPrintf ("Rgn [%4.4s] Bnk [%4.4s]",
|
||||
ObjDesc->CommonField.RegionObj->Region.Node->Name.Ascii,
|
||||
ObjDesc->BankField.BankObj->CommonField.Node->Name.Ascii);
|
||||
break;
|
||||
@ -508,7 +442,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
AcpiOsPrintf (" Idx [%4.4s] Dat [%4.4s]",
|
||||
AcpiOsPrintf ("Idx [%4.4s] Dat [%4.4s]",
|
||||
ObjDesc->IndexField.IndexObj->CommonField.Node->Name.Ascii,
|
||||
ObjDesc->IndexField.DataObj->CommonField.Node->Name.Ascii);
|
||||
break;
|
||||
@ -516,12 +450,12 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_TYPE_LOCAL_ALIAS:
|
||||
|
||||
AcpiOsPrintf (" Target %4.4s (%p)\n", ((ACPI_NAMESPACE_NODE *) ObjDesc)->Name.Ascii, ObjDesc);
|
||||
AcpiOsPrintf ("Target %4.4s (%p)\n", ((ACPI_NAMESPACE_NODE *) ObjDesc)->Name.Ascii, ObjDesc);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf (" Object %p\n", ObjDesc);
|
||||
AcpiOsPrintf ("Object %p\n", ObjDesc);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -549,9 +483,7 @@ AcpiNsDumpOneObject (
|
||||
|
||||
case ACPI_DISPLAY_OBJECTS:
|
||||
|
||||
AcpiOsPrintf ("%p O:%p",
|
||||
ThisNode, ObjDesc);
|
||||
|
||||
AcpiOsPrintf ("O:%p", ObjDesc);
|
||||
if (!ObjDesc)
|
||||
{
|
||||
/* No attached object, we are done */
|
||||
|
220
source/components/namespace/nsdumpdv.c
Normal file
220
source/components/namespace/nsdumpdv.c
Normal file
@ -0,0 +1,220 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsdump - table dumping routines for debug
|
||||
* $Revision: 1.5 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#define __NSDUMPDV_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acnamesp.h"
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsdumpdv")
|
||||
|
||||
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsDumpOneDevice
|
||||
*
|
||||
* PARAMETERS: Handle - Node to be dumped
|
||||
* Level - Nesting level of the handle
|
||||
* Context - Passed into WalkNamespace
|
||||
*
|
||||
* DESCRIPTION: Dump a single Node that represents a device
|
||||
* This procedure is a UserFunction called by AcpiNsWalkNamespace.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsDumpOneDevice (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 Level,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
ACPI_DEVICE_INFO Info;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("NsDumpOneDevice");
|
||||
|
||||
|
||||
Status = AcpiNsDumpOneObject (ObjHandle, Level, Context, ReturnValue);
|
||||
|
||||
Status = AcpiGetObjectInfo (ObjHandle, &Info);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
for (i = 0; i < Level; i++)
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " "));
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_TABLES, " HID: %s, ADR: %8.8X%8.8X, Status: %X\n",
|
||||
Info.HardwareId,
|
||||
ACPI_HIDWORD (Info.Address), ACPI_LODWORD (Info.Address),
|
||||
Info.CurrentStatus));
|
||||
}
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsDumpRootDevices
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* DESCRIPTION: Dump all objects of type "device"
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiNsDumpRootDevices (void)
|
||||
{
|
||||
ACPI_HANDLE SysBusHandle;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("NsDumpRootDevices");
|
||||
|
||||
|
||||
/* Only dump the table if tracing is enabled */
|
||||
|
||||
if (!(ACPI_LV_TABLES & AcpiDbgLevel))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Status = AcpiGetHandle (0, ACPI_NS_SYSTEM_BUS, &SysBusHandle);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "Display of all devices in the namespace:\n"));
|
||||
|
||||
Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle,
|
||||
ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
|
||||
AcpiNsDumpOneDevice, NULL, NULL);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nseval - Object evaluation interfaces -- includes control
|
||||
* method lookup and execution.
|
||||
* $Revision: 1.113 $
|
||||
* $Revision: 1.121 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -133,12 +133,12 @@
|
||||
* FUNCTION: AcpiNsEvaluateRelative
|
||||
*
|
||||
* PARAMETERS: Handle - The relative containing object
|
||||
* *Pathname - Name of method to execute, If NULL, the
|
||||
* Pathname - Name of method to execute, If NULL, the
|
||||
* handle is the object to execute
|
||||
* **Params - List of parameters to pass to the method,
|
||||
* Params - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* *ReturnObject - Where to put method's return value (if
|
||||
* ReturnObject - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
@ -153,14 +153,14 @@
|
||||
ACPI_STATUS
|
||||
AcpiNsEvaluateRelative (
|
||||
ACPI_NAMESPACE_NODE *Handle,
|
||||
NATIVE_CHAR *Pathname,
|
||||
char *Pathname,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObject)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *PrefixNode;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_NAMESPACE_NODE *Node = NULL;
|
||||
NATIVE_CHAR *InternalPath = NULL;
|
||||
char *InternalPath = NULL;
|
||||
ACPI_GENERIC_STATE ScopeInfo;
|
||||
|
||||
|
||||
@ -239,9 +239,9 @@ Cleanup:
|
||||
* FUNCTION: AcpiNsEvaluateByName
|
||||
*
|
||||
* PARAMETERS: Pathname - Fully qualified pathname to the object
|
||||
* *ReturnObject - Where to put method's return value (if
|
||||
* ReturnObject - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* **Params - List of parameters to pass to the method,
|
||||
* Params - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
*
|
||||
@ -256,13 +256,13 @@ Cleanup:
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsEvaluateByName (
|
||||
NATIVE_CHAR *Pathname,
|
||||
char *Pathname,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObject)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_NAMESPACE_NODE *Node = NULL;
|
||||
NATIVE_CHAR *InternalPath = NULL;
|
||||
char *InternalPath = NULL;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsEvaluateByName");
|
||||
@ -328,10 +328,10 @@ Cleanup:
|
||||
* FUNCTION: AcpiNsEvaluateByHandle
|
||||
*
|
||||
* PARAMETERS: Handle - Method Node to execute
|
||||
* **Params - List of parameters to pass to the method,
|
||||
* Params - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* *ReturnObject - Where to put method's return value (if
|
||||
* ReturnObject - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
@ -392,7 +392,6 @@ AcpiNsEvaluateByHandle (
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Two major cases here:
|
||||
* 1) The object is an actual control method -- execute it.
|
||||
@ -410,7 +409,6 @@ AcpiNsEvaluateByHandle (
|
||||
Status = AcpiNsExecuteControlMethod (Node, Params,
|
||||
&LocalReturnObject);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
/*
|
||||
@ -420,7 +418,6 @@ AcpiNsEvaluateByHandle (
|
||||
Status = AcpiNsGetObjectValue (Node, &LocalReturnObject);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Check if there is a return value on the stack that must
|
||||
* be dealt with
|
||||
@ -459,11 +456,11 @@ AcpiNsEvaluateByHandle (
|
||||
*
|
||||
* FUNCTION: AcpiNsExecuteControlMethod
|
||||
*
|
||||
* PARAMETERS: MethodNode - The object/method
|
||||
* **Params - List of parameters to pass to the method,
|
||||
* PARAMETERS: MethodNode - The method to execute
|
||||
* Params - List of parameters to pass to the method,
|
||||
* terminated by NULL. Params itself may be
|
||||
* NULL if no parameters are being passed.
|
||||
* **ReturnObjDesc - List of result objects to be returned
|
||||
* ReturnObjDesc - List of result objects to be returned
|
||||
* from the method.
|
||||
*
|
||||
* RETURN: Status
|
||||
@ -498,10 +495,10 @@ AcpiNsExecuteControlMethod (
|
||||
return_ACPI_STATUS (AE_NULL_OBJECT);
|
||||
}
|
||||
|
||||
ACPI_DUMP_PATHNAME (MethodNode, "NsExecuteControlMethod: Executing",
|
||||
ACPI_DUMP_PATHNAME (MethodNode, "Execute Method:",
|
||||
ACPI_LV_INFO, _COMPONENT);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Method at AML address %p Length %x\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Method at AML address %p Length %X\n",
|
||||
ObjDesc->Method.AmlStart + 1, ObjDesc->Method.AmlLength - 1));
|
||||
|
||||
/*
|
||||
@ -538,7 +535,8 @@ AcpiNsExecuteControlMethod (
|
||||
*
|
||||
* FUNCTION: AcpiNsGetObjectValue
|
||||
*
|
||||
* PARAMETERS: Node - The object
|
||||
* PARAMETERS: Node - The object
|
||||
* ReturnObjDesc - Where the objects value is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@ -604,7 +602,8 @@ AcpiNsGetObjectValue (
|
||||
{
|
||||
Status = AE_CTRL_RETURN_VALUE;
|
||||
*ReturnObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ResolvedNode);
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Returning obj %p\n", ResolvedNode));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Returning object %p [%s]\n",
|
||||
*ReturnObjDesc, AcpiUtGetObjectTypeName (*ReturnObjDesc)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsinit - namespace initialization
|
||||
* $Revision: 1.44 $
|
||||
* $Revision: 1.55 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -152,7 +152,7 @@ AcpiNsInitializeObjects (
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
|
||||
"**** Starting initialization of namespace objects ****\n"));
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK, "Completing Region/Field/Buffer/Package initialization:"));
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Completing Region/Field/Buffer/Package initialization:"));
|
||||
|
||||
/* Set all init info to zero */
|
||||
|
||||
@ -165,19 +165,21 @@ AcpiNsInitializeObjects (
|
||||
&Info, NULL);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %x\n", Status));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %s\n",
|
||||
AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK,
|
||||
"\n Initialized %d/%d Regions %d/%d Fields %d/%d Buffers %d/%d Packages (%d nodes)\n",
|
||||
Info.OpRegionInit, Info.OpRegionCount,
|
||||
Info.FieldInit, Info.FieldCount,
|
||||
Info.BufferInit, Info.BufferCount,
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
|
||||
"\nInitialized %hd/%hd Regions %hd/%hd Fields %hd/%hd Buffers %hd/%hd Packages (%hd nodes)\n",
|
||||
Info.OpRegionInit, Info.OpRegionCount,
|
||||
Info.FieldInit, Info.FieldCount,
|
||||
Info.BufferInit, Info.BufferCount,
|
||||
Info.PackageInit, Info.PackageCount, Info.ObjectCount));
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
|
||||
"%d Control Methods found\n", Info.MethodCount));
|
||||
"%hd Control Methods found\n", Info.MethodCount));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
|
||||
"%d Op Regions found\n", Info.OpRegionCount));
|
||||
"%hd Op Regions found\n", Info.OpRegionCount));
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
@ -216,7 +218,7 @@ AcpiNsInitializeDevices (
|
||||
Info.Num_STA = 0;
|
||||
Info.Num_INI = 0;
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK, "Executing all Device _STA and_INI methods:"));
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Executing all Device _STA and_INI methods:"));
|
||||
|
||||
/* Walk namespace for all objects of type Device */
|
||||
|
||||
@ -225,11 +227,12 @@ AcpiNsInitializeDevices (
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %x\n", Status));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "WalkNamespace failed! %s\n",
|
||||
AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK,
|
||||
"\n%d Devices found containing: %d _STA, %d _INI methods\n",
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
|
||||
"\n%hd Devices found containing: %hd _STA, %hd _INI methods\n",
|
||||
Info.DeviceCount, Info.Num_STA, Info.Num_INI));
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -329,7 +332,7 @@ AcpiNsInitOneObject (
|
||||
|
||||
/*
|
||||
* Each of these types can contain executable AML code within
|
||||
* the declaration.
|
||||
* the declaration.
|
||||
*/
|
||||
switch (Type)
|
||||
{
|
||||
@ -373,9 +376,11 @@ AcpiNsInitOneObject (
|
||||
Node->Name.Ascii, AcpiUtGetTypeName (Type), AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
if (!(AcpiDbgLevel & ACPI_LV_INIT))
|
||||
/* Print a dot for each object unless we are going to print the entire pathname */
|
||||
|
||||
if (!(AcpiDbgLevel & ACPI_LV_INIT_NAMES))
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK, "."));
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "."));
|
||||
}
|
||||
|
||||
/*
|
||||
@ -417,9 +422,9 @@ AcpiNsInitOneDevice (
|
||||
ACPI_FUNCTION_TRACE ("NsInitOneDevice");
|
||||
|
||||
|
||||
if (!(AcpiDbgLevel & ACPI_LV_INIT))
|
||||
if ((AcpiDbgLevel <= ACPI_LV_ALL_EXCEPTIONS) && (!(AcpiDbgLevel & ACPI_LV_INFO)))
|
||||
{
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK, "."));
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "."));
|
||||
}
|
||||
|
||||
Info->DeviceCount++;
|
||||
@ -446,7 +451,7 @@ AcpiNsInitOneDevice (
|
||||
/*
|
||||
* Run _STA to determine if we can run _INI on the device.
|
||||
*/
|
||||
ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (Node, "_STA [Method]"));
|
||||
ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, Node, "_STA"));
|
||||
Status = AcpiUtExecute_STA (Node, &Flags);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -467,29 +472,28 @@ AcpiNsInitOneDevice (
|
||||
/*
|
||||
* The device is present. Run _INI.
|
||||
*/
|
||||
ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ObjHandle, "_INI [Method]"));
|
||||
ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_METHOD, ObjHandle, "_INI"));
|
||||
Status = AcpiNsEvaluateRelative (ObjHandle, "_INI", NULL, NULL);
|
||||
if (AE_NOT_FOUND == Status)
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* No _INI means device requires no initialization */
|
||||
/* No _INI (AE_NOT_FOUND) means device requires no initialization */
|
||||
|
||||
if (Status != AE_NOT_FOUND)
|
||||
{
|
||||
/* Ignore error and move on to next device */
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
char *ScopeName = AcpiNsGetExternalPathname (ObjHandle);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "%s._INI failed: %s\n",
|
||||
ScopeName, AcpiFormatException (Status)));
|
||||
|
||||
ACPI_MEM_FREE (ScopeName);
|
||||
#endif
|
||||
}
|
||||
|
||||
Status = AE_OK;
|
||||
}
|
||||
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* Ignore error and move on to next device */
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
NATIVE_CHAR *ScopeName = AcpiNsGetExternalPathname (ObjHandle);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_WARN, "%s._INI failed: %s\n",
|
||||
ScopeName, AcpiFormatException (Status)));
|
||||
|
||||
ACPI_MEM_FREE (ScopeName);
|
||||
#endif
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
/* Count of successful INIs */
|
||||
@ -497,5 +501,13 @@ AcpiNsInitOneDevice (
|
||||
Info->Num_INI++;
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
if (AcpiGbl_InitHandler)
|
||||
{
|
||||
/* External initialization handler is present, call it */
|
||||
|
||||
Status = AcpiGbl_InitHandler (ObjHandle, ACPI_INIT_DEVICE_INI);
|
||||
}
|
||||
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsload - namespace loading/expanding/contracting procedures
|
||||
* $Revision: 1.55 $
|
||||
* $Revision: 1.63 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,8 +118,6 @@
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acnamesp.h"
|
||||
#include "amlcode.h"
|
||||
#include "acparser.h"
|
||||
#include "acdispat.h"
|
||||
|
||||
|
||||
@ -127,182 +125,7 @@
|
||||
ACPI_MODULE_NAME ("nsload")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiLoadNamespace
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Load the name space from what ever is pointed to by DSDT.
|
||||
* (DSDT points to either the BIOS or a buffer.)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsLoadNamespace (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiLoadNameSpace");
|
||||
|
||||
|
||||
/* There must be at least a DSDT installed */
|
||||
|
||||
if (AcpiGbl_DSDT == NULL)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "DSDT is not in memory\n"));
|
||||
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the namespace. The DSDT is required,
|
||||
* but the SSDT and PSDT tables are optional.
|
||||
*/
|
||||
Status = AcpiNsLoadTableByType (ACPI_TABLE_DSDT);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Ignore exceptions from these */
|
||||
|
||||
(void) AcpiNsLoadTableByType (ACPI_TABLE_SSDT);
|
||||
(void) AcpiNsLoadTableByType (ACPI_TABLE_PSDT);
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OK,
|
||||
"ACPI Namespace successfully loaded at root %p\n",
|
||||
AcpiGbl_RootNode));
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsOneParsePass
|
||||
*
|
||||
* PARAMETERS: PassNumber - 1 or 2
|
||||
* TableDesc - The table to be parsed.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Perform one complete parse of an ACPI/AML table.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsOneCompleteParse (
|
||||
UINT32 PassNumber,
|
||||
ACPI_TABLE_DESC *TableDesc)
|
||||
{
|
||||
ACPI_PARSE_OBJECT *ParseRoot;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_WALK_STATE *WalkState;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsOneCompleteParse");
|
||||
|
||||
|
||||
/* Create and init a Root Node */
|
||||
|
||||
ParseRoot = AcpiPsAllocOp (AML_SCOPE_OP);
|
||||
if (!ParseRoot)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
ParseRoot->Named.Name = ACPI_ROOT_NAME;
|
||||
|
||||
/* Create and initialize a new walk state */
|
||||
|
||||
WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT,
|
||||
NULL, NULL, NULL);
|
||||
if (!WalkState)
|
||||
{
|
||||
AcpiPsFreeOp (ParseRoot);
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
Status = AcpiDsInitAmlWalk (WalkState, ParseRoot, NULL, TableDesc->AmlStart,
|
||||
TableDesc->AmlLength, NULL, NULL, PassNumber);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiDsDeleteWalkState (WalkState);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Parse the AML */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %d parse\n", PassNumber));
|
||||
Status = AcpiPsParseAml (WalkState);
|
||||
|
||||
AcpiPsDeleteParseTree (ParseRoot);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsParseTable
|
||||
*
|
||||
* PARAMETERS: TableDesc - An ACPI table descriptor for table to parse
|
||||
* StartNode - Where to enter the table into the namespace
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Parse AML within an ACPI table and return a tree of ops
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsParseTable (
|
||||
ACPI_TABLE_DESC *TableDesc,
|
||||
ACPI_NAMESPACE_NODE *StartNode)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsParseTable");
|
||||
|
||||
|
||||
/*
|
||||
* AML Parse, pass 1
|
||||
*
|
||||
* In this pass, we load most of the namespace. Control methods
|
||||
* are not parsed until later. A parse tree is not created. Instead,
|
||||
* each Parser Op subtree is deleted when it is finished. This saves
|
||||
* a great deal of memory, and allows a small cache of parse objects
|
||||
* to service the entire parse. The second pass of the parse then
|
||||
* performs another complete parse of the AML..
|
||||
*/
|
||||
Status = AcpiNsOneCompleteParse (1, TableDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* AML Parse, pass 2
|
||||
*
|
||||
* In this pass, we resolve forward references and other things
|
||||
* that could not be completed during the first pass.
|
||||
* Another complete parse of the AML is performed, but the
|
||||
* overhead of this is compensated for by the fact that the
|
||||
* parse objects are all cached.
|
||||
*/
|
||||
Status = AcpiNsOneCompleteParse (2, TableDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
#ifndef ACPI_NO_METHOD_EXECUTION
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@ -534,6 +357,60 @@ UnlockAndExit:
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiLoadNamespace
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Load the name space from what ever is pointed to by DSDT.
|
||||
* (DSDT points to either the BIOS or a buffer.)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsLoadNamespace (
|
||||
void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiLoadNameSpace");
|
||||
|
||||
|
||||
/* There must be at least a DSDT installed */
|
||||
|
||||
if (AcpiGbl_DSDT == NULL)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "DSDT is not in memory\n"));
|
||||
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the namespace. The DSDT is required,
|
||||
* but the SSDT and PSDT tables are optional.
|
||||
*/
|
||||
Status = AcpiNsLoadTableByType (ACPI_TABLE_DSDT);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Ignore exceptions from these */
|
||||
|
||||
(void) AcpiNsLoadTableByType (ACPI_TABLE_SSDT);
|
||||
(void) AcpiNsLoadTableByType (ACPI_TABLE_PSDT);
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
|
||||
"ACPI Namespace successfully loaded at root %p\n",
|
||||
AcpiGbl_RootNode));
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsDeleteSubtree
|
||||
@ -672,4 +549,5 @@ AcpiNsUnloadNamespace (
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nsnames - Name manipulation and search
|
||||
* $Revision: 1.75 $
|
||||
* $Revision: 1.82 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -144,9 +144,9 @@ void
|
||||
AcpiNsBuildExternalPath (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_SIZE Size,
|
||||
NATIVE_CHAR *NameBuffer)
|
||||
char *NameBuffer)
|
||||
{
|
||||
UINT32 Index;
|
||||
ACPI_SIZE Index;
|
||||
ACPI_NAMESPACE_NODE *ParentNode;
|
||||
|
||||
|
||||
@ -180,7 +180,7 @@ AcpiNsBuildExternalPath (
|
||||
/* Prefix name with the path separator */
|
||||
|
||||
Index--;
|
||||
NameBuffer[Index] = PATH_SEPARATOR;
|
||||
NameBuffer[Index] = ACPI_PATH_SEPARATOR;
|
||||
}
|
||||
|
||||
/* Overwrite final separator with the root prefix character */
|
||||
@ -191,14 +191,14 @@ AcpiNsBuildExternalPath (
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Could not construct pathname; index=%X, size=%X, Path=%s\n",
|
||||
Index, Size, &NameBuffer[Size]));
|
||||
(UINT32) Index, (UINT32) Size, &NameBuffer[Size]));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsGetExternalPathname
|
||||
@ -213,11 +213,11 @@ AcpiNsBuildExternalPath (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiNsGetExternalPathname (
|
||||
ACPI_NAMESPACE_NODE *Node)
|
||||
{
|
||||
NATIVE_CHAR *NameBuffer;
|
||||
char *NameBuffer;
|
||||
ACPI_SIZE Size;
|
||||
|
||||
|
||||
@ -275,9 +275,9 @@ AcpiNsGetPathnameLength (
|
||||
Size = 0;
|
||||
NextNode = Node;
|
||||
|
||||
while (NextNode != AcpiGbl_RootNode)
|
||||
while (NextNode && (NextNode != AcpiGbl_RootNode))
|
||||
{
|
||||
Size += PATH_SEGMENT_LENGTH;
|
||||
Size += ACPI_PATH_SEGMENT_LENGTH;
|
||||
NextNode = AcpiNsGetParentNode (NextNode);
|
||||
}
|
||||
|
||||
@ -334,7 +334,7 @@ AcpiNsHandleToPathname (
|
||||
|
||||
AcpiNsBuildExternalPath (Node, RequiredSize, Buffer->Pointer);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s [%X] \n", (char *) Buffer->Pointer, RequiredSize));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s [%X] \n", (char *) Buffer->Pointer, (UINT32) RequiredSize));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsobject - Utilities for objects attached to namespace
|
||||
* table entries
|
||||
* $Revision: 1.81 $
|
||||
* $Revision: 1.87 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -227,16 +227,9 @@ AcpiNsAttachObject (
|
||||
{
|
||||
ObjDesc = (ACPI_OPERAND_OBJECT *) Object;
|
||||
|
||||
/* If a valid type (non-ANY) was given, just use it */
|
||||
/* Use the given type */
|
||||
|
||||
if (ACPI_TYPE_ANY != Type)
|
||||
{
|
||||
ObjectType = Type;
|
||||
}
|
||||
else
|
||||
{
|
||||
ObjectType = INTERNAL_TYPE_DEF_ANY;
|
||||
}
|
||||
ObjectType = Type;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Installing %p into Node %p [%4.4s]\n",
|
||||
@ -283,13 +276,13 @@ AcpiNsAttachObject (
|
||||
*
|
||||
* FUNCTION: AcpiNsDetachObject
|
||||
*
|
||||
* PARAMETERS: Node - An object whose Value will be deleted
|
||||
* PARAMETERS: Node - An node whose object will be detached
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Delete the Value associated with a namespace object. If the
|
||||
* Value is an allocated object, it is freed. Otherwise, the
|
||||
* field is simply cleared.
|
||||
* DESCRIPTION: Detach/delete an object associated with a namespace node.
|
||||
* if the object is an allocated object, it is freed.
|
||||
* Otherwise, the field is simply cleared.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -304,8 +297,9 @@ AcpiNsDetachObject (
|
||||
|
||||
|
||||
ObjDesc = Node->Object;
|
||||
if (!ObjDesc ||
|
||||
(ObjDesc->Common.Type == INTERNAL_TYPE_DATA))
|
||||
|
||||
if (!ObjDesc ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
return_VOID;
|
||||
}
|
||||
@ -313,11 +307,11 @@ AcpiNsDetachObject (
|
||||
/* Clear the entry in all cases */
|
||||
|
||||
Node->Object = NULL;
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_INTERNAL)
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND)
|
||||
{
|
||||
Node->Object = ObjDesc->Common.NextObject;
|
||||
if (Node->Object &&
|
||||
(Node->Object->Common.Type != INTERNAL_TYPE_DATA))
|
||||
(ACPI_GET_OBJECT_TYPE (Node->Object) != ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
Node->Object = Node->Object->Common.NextObject;
|
||||
}
|
||||
@ -346,6 +340,8 @@ AcpiNsDetachObject (
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed
|
||||
*
|
||||
* DESCRIPTION: Obtain the object attached to a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
@ -362,9 +358,9 @@ AcpiNsGetAttachedObject (
|
||||
}
|
||||
|
||||
if (!Node->Object ||
|
||||
((ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_INTERNAL) &&
|
||||
(ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_NAMED)) ||
|
||||
(Node->Object->Common.Type == INTERNAL_TYPE_DATA))
|
||||
((ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_OPERAND) &&
|
||||
(ACPI_GET_DESCRIPTOR_TYPE (Node->Object) != ACPI_DESC_TYPE_NAMED)) ||
|
||||
(ACPI_GET_OBJECT_TYPE (Node->Object) == ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
return_PTR (NULL);
|
||||
}
|
||||
@ -380,7 +376,9 @@ AcpiNsGetAttachedObject (
|
||||
* PARAMETERS: Node - Parent Node to be examined
|
||||
*
|
||||
* RETURN: Current value of the object field from the Node whose
|
||||
* handle is passed
|
||||
* handle is passed.
|
||||
*
|
||||
* DESCRIPTION: Obtain a secondary object associated with a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -391,10 +389,10 @@ AcpiNsGetSecondaryObject (
|
||||
ACPI_FUNCTION_TRACE_PTR ("NsGetSecondaryObject", ObjDesc);
|
||||
|
||||
|
||||
if ((!ObjDesc) ||
|
||||
(ObjDesc->Common.Type == INTERNAL_TYPE_DATA) ||
|
||||
(!ObjDesc->Common.NextObject) ||
|
||||
(ObjDesc->Common.NextObject->Common.Type == INTERNAL_TYPE_DATA))
|
||||
if ((!ObjDesc) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) ||
|
||||
(!ObjDesc->Common.NextObject) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ObjDesc->Common.NextObject) == ACPI_TYPE_LOCAL_DATA))
|
||||
{
|
||||
return_PTR (NULL);
|
||||
}
|
||||
@ -407,11 +405,13 @@ AcpiNsGetSecondaryObject (
|
||||
*
|
||||
* FUNCTION: AcpiNsAttachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler to be associated with the data
|
||||
* Data - Data to be attached
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Low-level attach data. Create and attach a Data object.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -426,12 +426,13 @@ AcpiNsAttachData (
|
||||
ACPI_OPERAND_OBJECT *DataDesc;
|
||||
|
||||
|
||||
/* */
|
||||
/* We only allow one attachment per handler */
|
||||
|
||||
PrevObjDesc = NULL;
|
||||
ObjDesc = Node->Object;
|
||||
while (ObjDesc)
|
||||
{
|
||||
if ((ObjDesc->Common.Type == INTERNAL_TYPE_DATA) &&
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
|
||||
(ObjDesc->Data.Handler == Handler))
|
||||
{
|
||||
return (AE_ALREADY_EXISTS);
|
||||
@ -441,10 +442,9 @@ AcpiNsAttachData (
|
||||
ObjDesc = ObjDesc->Common.NextObject;
|
||||
}
|
||||
|
||||
|
||||
/* Create an internal object for the data */
|
||||
|
||||
DataDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_DATA);
|
||||
DataDesc = AcpiUtCreateInternalObject (ACPI_TYPE_LOCAL_DATA);
|
||||
if (!DataDesc)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
@ -453,7 +453,6 @@ AcpiNsAttachData (
|
||||
DataDesc->Data.Handler = Handler;
|
||||
DataDesc->Data.Pointer = Data;
|
||||
|
||||
|
||||
/* Install the data object */
|
||||
|
||||
if (PrevObjDesc)
|
||||
@ -473,11 +472,13 @@ AcpiNsAttachData (
|
||||
*
|
||||
* FUNCTION: AcpiNsDetachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler associated with the data
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Low-level detach data. Delete the data node, but the caller
|
||||
* is responsible for the actual data.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -494,7 +495,7 @@ AcpiNsDetachData (
|
||||
ObjDesc = Node->Object;
|
||||
while (ObjDesc)
|
||||
{
|
||||
if ((ObjDesc->Common.Type == INTERNAL_TYPE_DATA) &&
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
|
||||
(ObjDesc->Data.Handler == Handler))
|
||||
{
|
||||
if (PrevObjDesc)
|
||||
@ -522,11 +523,14 @@ AcpiNsDetachData (
|
||||
*
|
||||
* FUNCTION: AcpiNsGetAttachedData
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Namespace node
|
||||
* Handler - Handler associated with the data
|
||||
* Data - Where the data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Low level interface to obtain data previously associated with
|
||||
* a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -542,7 +546,7 @@ AcpiNsGetAttachedData (
|
||||
ObjDesc = Node->Object;
|
||||
while (ObjDesc)
|
||||
{
|
||||
if ((ObjDesc->Common.Type == INTERNAL_TYPE_DATA) &&
|
||||
if ((ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_LOCAL_DATA) &&
|
||||
(ObjDesc->Data.Handler == Handler))
|
||||
{
|
||||
*Data = ObjDesc->Data.Pointer;
|
||||
|
250
source/components/namespace/nsparse.c
Normal file
250
source/components/namespace/nsparse.c
Normal file
@ -0,0 +1,250 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nsparse - namespace interface to AML parser
|
||||
* $Revision: 1.3 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#define __NSPARSE_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acparser.h"
|
||||
#include "acdispat.h"
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsparse")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: NsOneCompleteParse
|
||||
*
|
||||
* PARAMETERS: PassNumber - 1 or 2
|
||||
* TableDesc - The table to be parsed.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Perform one complete parse of an ACPI/AML table.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsOneCompleteParse (
|
||||
UINT32 PassNumber,
|
||||
ACPI_TABLE_DESC *TableDesc)
|
||||
{
|
||||
ACPI_PARSE_OBJECT *ParseRoot;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_WALK_STATE *WalkState;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsOneCompleteParse");
|
||||
|
||||
|
||||
/* Create and init a Root Node */
|
||||
|
||||
ParseRoot = AcpiPsCreateScopeOp ();
|
||||
if (!ParseRoot)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
|
||||
/* Create and initialize a new walk state */
|
||||
|
||||
WalkState = AcpiDsCreateWalkState (TABLE_ID_DSDT,
|
||||
NULL, NULL, NULL);
|
||||
if (!WalkState)
|
||||
{
|
||||
AcpiPsFreeOp (ParseRoot);
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
Status = AcpiDsInitAmlWalk (WalkState, ParseRoot, NULL, TableDesc->AmlStart,
|
||||
TableDesc->AmlLength, NULL, NULL, PassNumber);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiDsDeleteWalkState (WalkState);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Parse the AML */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %d parse\n", PassNumber));
|
||||
Status = AcpiPsParseAml (WalkState);
|
||||
|
||||
AcpiPsDeleteParseTree (ParseRoot);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsParseTable
|
||||
*
|
||||
* PARAMETERS: TableDesc - An ACPI table descriptor for table to parse
|
||||
* StartNode - Where to enter the table into the namespace
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Parse AML within an ACPI table and return a tree of ops
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsParseTable (
|
||||
ACPI_TABLE_DESC *TableDesc,
|
||||
ACPI_NAMESPACE_NODE *StartNode)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsParseTable");
|
||||
|
||||
|
||||
/*
|
||||
* AML Parse, pass 1
|
||||
*
|
||||
* In this pass, we load most of the namespace. Control methods
|
||||
* are not parsed until later. A parse tree is not created. Instead,
|
||||
* each Parser Op subtree is deleted when it is finished. This saves
|
||||
* a great deal of memory, and allows a small cache of parse objects
|
||||
* to service the entire parse. The second pass of the parse then
|
||||
* performs another complete parse of the AML..
|
||||
*/
|
||||
Status = AcpiNsOneCompleteParse (1, TableDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* AML Parse, pass 2
|
||||
*
|
||||
* In this pass, we resolve forward references and other things
|
||||
* that could not be completed during the first pass.
|
||||
* Another complete parse of the AML is performed, but the
|
||||
* overhead of this is compensated for by the fact that the
|
||||
* parse objects are all cached.
|
||||
*/
|
||||
Status = AcpiNsOneCompleteParse (2, TableDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nssearch - Namespace search
|
||||
* $Revision: 1.85 $
|
||||
* $Revision: 1.95 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -129,14 +129,15 @@
|
||||
* FUNCTION: AcpiNsSearchNode
|
||||
*
|
||||
* PARAMETERS: *TargetName - Ascii ACPI name to search for
|
||||
* *Node - Starting table where search will begin
|
||||
* *Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* **ReturnNode - Where the matched Named obj is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Search a single namespace table. Performs a simple search,
|
||||
* does not add entries or search parents.
|
||||
* DESCRIPTION: Search a single level of the namespace. Performs a
|
||||
* simple search of the specified level, and does not add
|
||||
* entries or search parents.
|
||||
*
|
||||
*
|
||||
* Named object lists are built (and subsequently dumped) in the
|
||||
@ -163,15 +164,15 @@ AcpiNsSearchNode (
|
||||
ACPI_FUNCTION_TRACE ("NsSearchNode");
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
if (ACPI_LV_NAMES & AcpiDbgLevel)
|
||||
{
|
||||
NATIVE_CHAR *ScopeName;
|
||||
char *ScopeName;
|
||||
|
||||
ScopeName = AcpiNsGetExternalPathname (Node);
|
||||
if (ScopeName)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching %s [%p] For %4.4s (type %s)\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Searching %s [%p] For %4.4s (%s)\n",
|
||||
ScopeName, Node, (char *) &TargetName, AcpiUtGetTypeName (Type)));
|
||||
|
||||
ACPI_MEM_FREE (ScopeName);
|
||||
@ -180,8 +181,8 @@ AcpiNsSearchNode (
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Search for name in this table, which is to say that we must search
|
||||
* for the name among the children of this object
|
||||
* Search for name at this namespace level, which is to say that we
|
||||
* must search for the name among the children of this object
|
||||
*/
|
||||
NextNode = Node->Child;
|
||||
while (NextNode)
|
||||
@ -191,32 +192,8 @@ AcpiNsSearchNode (
|
||||
if (NextNode->Name.Integer == TargetName)
|
||||
{
|
||||
/*
|
||||
* Found matching entry. Capture the type if appropriate, before
|
||||
* returning the entry.
|
||||
*
|
||||
* The DefFieldDefn and BankFieldDefn cases are actually looking up
|
||||
* the Region in which the field will be defined
|
||||
* Found matching entry.
|
||||
*/
|
||||
if ((INTERNAL_TYPE_FIELD_DEFN == Type) ||
|
||||
(INTERNAL_TYPE_BANK_FIELD_DEFN == Type))
|
||||
{
|
||||
Type = ACPI_TYPE_REGION;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scope, DefAny, and IndexFieldDefn are bogus "types" which do not
|
||||
* actually have anything to do with the type of the name being
|
||||
* looked up. For any other value of Type, if the type stored in
|
||||
* the entry is Any (i.e. unknown), save the actual type.
|
||||
*/
|
||||
if (Type != INTERNAL_TYPE_SCOPE &&
|
||||
Type != INTERNAL_TYPE_DEF_ANY &&
|
||||
Type != INTERNAL_TYPE_INDEX_FIELD_DEFN &&
|
||||
NextNode->Type == ACPI_TYPE_ANY)
|
||||
{
|
||||
NextNode->Type = (UINT8) Type;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"Name %4.4s Type [%s] found at %p\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (NextNode->Type), NextNode));
|
||||
@ -241,7 +218,7 @@ AcpiNsSearchNode (
|
||||
NextNode = NextNode->Peer;
|
||||
}
|
||||
|
||||
/* Searched entire table, not found */
|
||||
/* Searched entire namespace level, not found */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "Name %4.4s Type [%s] not found at %p\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (Type), NextNode));
|
||||
@ -255,14 +232,14 @@ AcpiNsSearchNode (
|
||||
* FUNCTION: AcpiNsSearchParentTree
|
||||
*
|
||||
* PARAMETERS: *TargetName - Ascii ACPI name to search for
|
||||
* *Node - Starting table where search will begin
|
||||
* *Node - Starting node where search will begin
|
||||
* Type - Object type to match
|
||||
* **ReturnNode - Where the matched Named Obj is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Called when a name has not been found in the current namespace
|
||||
* table. Before adding it or giving up, ACPI scope rules require
|
||||
* level. Before adding it or giving up, ACPI scope rules require
|
||||
* searching enclosing scopes in cases identified by AcpiNsLocal().
|
||||
*
|
||||
* "A name is located by finding the matching name in the current
|
||||
@ -292,24 +269,21 @@ AcpiNsSearchParentTree (
|
||||
ParentNode = AcpiNsGetParentNode (Node);
|
||||
|
||||
/*
|
||||
* If there is no parent (at the root) or type is "local", we won't be
|
||||
* searching the parent tree.
|
||||
* If there is no parent (i.e., we are at the root) or
|
||||
* type is "local", we won't be searching the parent tree.
|
||||
*/
|
||||
if ((AcpiNsLocal (Type)) ||
|
||||
(!ParentNode))
|
||||
if (!ParentNode)
|
||||
{
|
||||
if (!ParentNode)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] has no parent\n",
|
||||
(char *) &TargetName));
|
||||
}
|
||||
|
||||
if (AcpiNsLocal (Type))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] type [%s] must be local to this scope (no parent search)\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (Type)));
|
||||
}
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, "[%4.4s] has no parent\n",
|
||||
(char *) &TargetName));
|
||||
return_ACPI_STATUS (AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
if (AcpiNsLocal (Type))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"[%4.4s] type [%s] must be local to this scope (no parent search)\n",
|
||||
(char *) &TargetName, AcpiUtGetTypeName (Type)));
|
||||
return_ACPI_STATUS (AE_NOT_FOUND);
|
||||
}
|
||||
|
||||
@ -354,8 +328,8 @@ AcpiNsSearchParentTree (
|
||||
*
|
||||
* PARAMETERS: TargetName - Ascii ACPI name to search for (4 chars)
|
||||
* WalkState - Current state of the walk
|
||||
* *Node - Starting table where search will begin
|
||||
* InterpreterMode - Add names only in MODE_LoadPassX.
|
||||
* *Node - Starting node where search will begin
|
||||
* InterpreterMode - Add names only in ACPI_MODE_LOAD_PASS_x.
|
||||
* Otherwise,search only.
|
||||
* Type - Object type to match
|
||||
* Flags - Flags describing the search restrictions
|
||||
@ -363,12 +337,12 @@ AcpiNsSearchParentTree (
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Search for a name segment in a single name table,
|
||||
* DESCRIPTION: Search for a name segment in a single namespace level,
|
||||
* optionally adding it if it is not found. If the passed
|
||||
* Type is not Any and the type previously stored in the
|
||||
* entry was Any (i.e. unknown), update the stored type.
|
||||
*
|
||||
* In IMODE_EXECUTE, search only.
|
||||
* In ACPI_IMODE_EXECUTE, search only.
|
||||
* In other modes, search and add if not found.
|
||||
*
|
||||
******************************************************************************/
|
||||
@ -394,10 +368,10 @@ AcpiNsSearchAndEnter (
|
||||
|
||||
if (!Node || !TargetName || !ReturnNode)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null param- Table %p Name %X Return %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null param: Node %p Name %X ReturnNode %p\n",
|
||||
Node, TargetName, ReturnNode));
|
||||
|
||||
ACPI_REPORT_ERROR (("NsSearchAndEnter: bad (null) parameter\n"));
|
||||
ACPI_REPORT_ERROR (("NsSearchAndEnter: Null parameter\n"));
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
@ -405,14 +379,12 @@ AcpiNsSearchAndEnter (
|
||||
|
||||
if (!AcpiUtValidAcpiName (TargetName))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "*** Bad character in name: %08x *** \n",
|
||||
ACPI_REPORT_ERROR (("NsSearchAndEnter: Bad character in ACPI Name: %X\n",
|
||||
TargetName));
|
||||
|
||||
ACPI_REPORT_ERROR (("NsSearchAndEnter: Bad character in ACPI Name\n"));
|
||||
return_ACPI_STATUS (AE_BAD_CHARACTER);
|
||||
}
|
||||
|
||||
/* Try to find the name in the table specified by the caller */
|
||||
/* Try to find the name in the namespace level specified by the caller */
|
||||
|
||||
*ReturnNode = ACPI_ENTRY_NOT_FOUND;
|
||||
Status = AcpiNsSearchNode (TargetName, Node, Type, ReturnNode);
|
||||
@ -448,7 +420,7 @@ AcpiNsSearchAndEnter (
|
||||
(Flags & ACPI_NS_SEARCH_PARENT))
|
||||
{
|
||||
/*
|
||||
* Not found in table - search parent tree according
|
||||
* Not found at this level - search parent tree according
|
||||
* to ACPI specification
|
||||
*/
|
||||
Status = AcpiNsSearchParentTree (TargetName, Node,
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsutils - Utilities for accessing ACPI namespace, accessing
|
||||
* parents and siblings and Scope manipulation
|
||||
* $Revision: 1.106 $
|
||||
* $Revision: 1.122 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -126,6 +126,140 @@
|
||||
ACPI_MODULE_NAME ("nsutils")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsReportError
|
||||
*
|
||||
* PARAMETERS: ModuleName - Caller's module name (for error output)
|
||||
* LineNumber - Caller's line number (for error output)
|
||||
* ComponentId - Caller's component ID (for error output)
|
||||
* Message - Error message to use on failure
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print warning message with full pathname
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiNsReportError (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId,
|
||||
char *InternalName,
|
||||
ACPI_STATUS LookupStatus)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
char *Name;
|
||||
|
||||
|
||||
/* Convert path to external format */
|
||||
|
||||
Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, InternalName, NULL, &Name);
|
||||
|
||||
AcpiOsPrintf ("%8s-%04d: *** Error: Looking up ",
|
||||
ModuleName, LineNumber);
|
||||
|
||||
/* Print target name */
|
||||
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
AcpiOsPrintf ("[%s]", Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiOsPrintf ("[COULD NOT EXTERNALIZE NAME]");
|
||||
}
|
||||
|
||||
AcpiOsPrintf (" in namespace, %s\n",
|
||||
AcpiFormatException (LookupStatus));
|
||||
|
||||
if (Name)
|
||||
{
|
||||
ACPI_MEM_FREE (Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsReportMethodError
|
||||
*
|
||||
* PARAMETERS: ModuleName - Caller's module name (for error output)
|
||||
* LineNumber - Caller's line number (for error output)
|
||||
* ComponentId - Caller's component ID (for error output)
|
||||
* Message - Error message to use on failure
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print warning message with full pathname
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiNsReportMethodError (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId,
|
||||
char *Message,
|
||||
ACPI_NAMESPACE_NODE *PrefixNode,
|
||||
char *Path,
|
||||
ACPI_STATUS MethodStatus)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_NAMESPACE_NODE *Node = PrefixNode;
|
||||
|
||||
|
||||
if (Path)
|
||||
{
|
||||
Status = AcpiNsGetNodeByPath (Path, PrefixNode, ACPI_NS_NO_UPSEARCH, &Node);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiOsPrintf ("ReportMethodError: Could not get node\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("%8s-%04d: *** Error: ", ModuleName, LineNumber);
|
||||
AcpiNsPrintNodePathname (Node, Message);
|
||||
AcpiOsPrintf (", %s\n", AcpiFormatException (MethodStatus));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsPrintNodePathname
|
||||
*
|
||||
* PARAMETERS: Node - Object
|
||||
* Msg - Prefix message
|
||||
*
|
||||
* DESCRIPTION: Print an object's full namespace pathname
|
||||
* Manages allocation/freeing of a pathname buffer
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiNsPrintNodePathname (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
char *Msg)
|
||||
{
|
||||
ACPI_BUFFER Buffer;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Convert handle to a full pathname and print it (with supplied message) */
|
||||
|
||||
Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
|
||||
|
||||
Status = AcpiNsHandleToPathname (Node, &Buffer);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
AcpiOsPrintf ("%s [%s] (Node %p)", Msg, (char *) Buffer.Pointer, Node);
|
||||
ACPI_MEM_FREE (Buffer.Pointer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsValidRootPrefix
|
||||
@ -140,7 +274,7 @@
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsValidRootPrefix (
|
||||
NATIVE_CHAR Prefix)
|
||||
char Prefix)
|
||||
{
|
||||
|
||||
return ((BOOLEAN) (Prefix == '\\'));
|
||||
@ -161,7 +295,7 @@ AcpiNsValidRootPrefix (
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsValidPathSeparator (
|
||||
NATIVE_CHAR Sep)
|
||||
char Sep)
|
||||
{
|
||||
|
||||
return ((BOOLEAN) (Sep == '.'));
|
||||
@ -243,7 +377,7 @@ void
|
||||
AcpiNsGetInternalNameLength (
|
||||
ACPI_NAMESTRING_INFO *Info)
|
||||
{
|
||||
NATIVE_CHAR *NextExternalChar;
|
||||
char *NextExternalChar;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
@ -324,10 +458,10 @@ AcpiNsBuildInternalName (
|
||||
ACPI_NAMESTRING_INFO *Info)
|
||||
{
|
||||
UINT32 NumSegments = Info->NumSegments;
|
||||
NATIVE_CHAR *InternalName = Info->InternalName;
|
||||
NATIVE_CHAR *ExternalName = Info->NextExternalChar;
|
||||
NATIVE_CHAR *Result = NULL;
|
||||
UINT32 i;
|
||||
char *InternalName = Info->InternalName;
|
||||
char *ExternalName = Info->NextExternalChar;
|
||||
char *Result = NULL;
|
||||
ACPI_NATIVE_UINT i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsBuildInternalName");
|
||||
@ -377,13 +511,13 @@ AcpiNsBuildInternalName (
|
||||
else if (NumSegments == 2)
|
||||
{
|
||||
InternalName[i] = AML_DUAL_NAME_PREFIX;
|
||||
Result = &InternalName[i+1];
|
||||
Result = &InternalName[(ACPI_NATIVE_UINT) (i+1)];
|
||||
}
|
||||
else
|
||||
{
|
||||
InternalName[i] = AML_MULTI_NAME_PREFIX_OP;
|
||||
InternalName[i+1] = (char) NumSegments;
|
||||
Result = &InternalName[i+2];
|
||||
InternalName[(ACPI_NATIVE_UINT) (i+1)] = (char) NumSegments;
|
||||
Result = &InternalName[(ACPI_NATIVE_UINT) (i+2)];
|
||||
}
|
||||
}
|
||||
|
||||
@ -404,7 +538,7 @@ AcpiNsBuildInternalName (
|
||||
{
|
||||
/* Convert the character to uppercase and save it */
|
||||
|
||||
Result[i] = (char) ACPI_TOUPPER (*ExternalName);
|
||||
Result[i] = (char) ACPI_TOUPPER ((int) *ExternalName);
|
||||
ExternalName++;
|
||||
}
|
||||
}
|
||||
@ -459,10 +593,10 @@ AcpiNsBuildInternalName (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsInternalizeName (
|
||||
NATIVE_CHAR *ExternalName,
|
||||
NATIVE_CHAR **ConvertedName)
|
||||
char *ExternalName,
|
||||
char **ConvertedName)
|
||||
{
|
||||
NATIVE_CHAR *InternalName;
|
||||
char *InternalName;
|
||||
ACPI_NAMESTRING_INFO Info;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
@ -527,12 +661,12 @@ AcpiNsExternalizeName (
|
||||
UINT32 *ConvertedNameLength,
|
||||
char **ConvertedName)
|
||||
{
|
||||
UINT32 PrefixLength = 0;
|
||||
UINT32 NamesIndex = 0;
|
||||
UINT32 NumSegments = 0;
|
||||
UINT32 i = 0;
|
||||
UINT32 j = 0;
|
||||
UINT32 RequiredLength;
|
||||
ACPI_NATIVE_UINT NamesIndex = 0;
|
||||
ACPI_NATIVE_UINT NumSegments = 0;
|
||||
ACPI_NATIVE_UINT RequiredLength;
|
||||
ACPI_NATIVE_UINT PrefixLength = 0;
|
||||
ACPI_NATIVE_UINT i = 0;
|
||||
ACPI_NATIVE_UINT j = 0;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsExternalizeName");
|
||||
@ -557,10 +691,14 @@ AcpiNsExternalizeName (
|
||||
case '^':
|
||||
for (i = 0; i < InternalNameLength; i++)
|
||||
{
|
||||
if (InternalName[i] != '^')
|
||||
if (InternalName[i] == '^')
|
||||
{
|
||||
PrefixLength = i + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i == InternalNameLength)
|
||||
@ -587,7 +725,7 @@ AcpiNsExternalizeName (
|
||||
/* <count> 4-byte names */
|
||||
|
||||
NamesIndex = PrefixLength + 2;
|
||||
NumSegments = (UINT32) (UINT8) InternalName[PrefixLength + 1];
|
||||
NumSegments = (UINT32) (UINT8) InternalName[(ACPI_NATIVE_UINT) (PrefixLength + 1)];
|
||||
break;
|
||||
|
||||
case AML_DUAL_NAME_PREFIX:
|
||||
@ -668,7 +806,7 @@ AcpiNsExternalizeName (
|
||||
|
||||
if (ConvertedNameLength)
|
||||
{
|
||||
*ConvertedNameLength = RequiredLength;
|
||||
*ConvertedNameLength = (UINT32) RequiredLength;
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@ -781,7 +919,6 @@ AcpiNsTerminate (void)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *ObjDesc;
|
||||
ACPI_NAMESPACE_NODE *ThisNode;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("NsTerminate");
|
||||
@ -795,11 +932,7 @@ AcpiNsTerminate (void)
|
||||
* Delete all objects linked to the root
|
||||
* (additional table descriptors)
|
||||
*/
|
||||
Status = AcpiNsDeleteNamespaceSubtree (ThisNode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Could not delete namespace subtree\n"));
|
||||
}
|
||||
AcpiNsDeleteNamespaceSubtree (ThisNode);
|
||||
|
||||
/* Detach any object(s) attached to the root */
|
||||
|
||||
@ -839,7 +972,7 @@ UINT32
|
||||
AcpiNsOpensScope (
|
||||
ACPI_OBJECT_TYPE Type)
|
||||
{
|
||||
ACPI_FUNCTION_TRACE_U32 ("NsOpensScope", Type);
|
||||
ACPI_FUNCTION_TRACE_STR ("NsOpensScope", AcpiUtGetTypeName (Type));
|
||||
|
||||
|
||||
if (!AcpiUtValidObjectType (Type))
|
||||
@ -878,30 +1011,28 @@ AcpiNsOpensScope (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsGetNodeByPath (
|
||||
NATIVE_CHAR *Pathname,
|
||||
char *Pathname,
|
||||
ACPI_NAMESPACE_NODE *StartNode,
|
||||
UINT32 Flags,
|
||||
ACPI_NAMESPACE_NODE **ReturnNode)
|
||||
{
|
||||
ACPI_GENERIC_STATE ScopeInfo;
|
||||
ACPI_STATUS Status;
|
||||
NATIVE_CHAR *InternalPath = NULL;
|
||||
char *InternalPath = NULL;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("NsGetNodeByPath", Pathname);
|
||||
|
||||
|
||||
if (!Pathname)
|
||||
if (Pathname)
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
/* Convert path to internal representation */
|
||||
|
||||
/* Convert path to internal representation */
|
||||
|
||||
Status = AcpiNsInternalizeName (Pathname, &InternalPath);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
Status = AcpiNsInternalizeName (Pathname, &InternalPath);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
}
|
||||
|
||||
/* Must lock namespace during lookup */
|
||||
@ -931,7 +1062,11 @@ AcpiNsGetNodeByPath (
|
||||
/* Cleanup */
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
ACPI_MEM_FREE (InternalPath);
|
||||
|
||||
if (InternalPath)
|
||||
{
|
||||
ACPI_MEM_FREE (InternalPath);
|
||||
}
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -985,45 +1120,6 @@ AcpiNsFindParentName (
|
||||
}
|
||||
|
||||
|
||||
#if defined(ACPI_DEBUG) || defined(ENABLE_DEBUGGER)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsExistDownstreamSibling
|
||||
*
|
||||
* PARAMETERS: *Node - pointer to first Node to examine
|
||||
*
|
||||
* RETURN: TRUE if sibling is found, FALSE otherwise
|
||||
*
|
||||
* DESCRIPTION: Searches remainder of scope being processed to determine
|
||||
* whether there is a downstream sibling to the current
|
||||
* object. This function is used to determine what type of
|
||||
* line drawing character to use when displaying namespace
|
||||
* trees.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsExistDownstreamSibling (
|
||||
ACPI_NAMESPACE_NODE *Node)
|
||||
{
|
||||
|
||||
if (!Node)
|
||||
{
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
if (Node->Name.Integer)
|
||||
{
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
#endif /* ACPI_DEBUG */
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsGetParentNode
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: nswalk - Functions for walking the ACPI namespace
|
||||
* $Revision: 1.33 $
|
||||
* $Revision: 1.34 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
|
870
source/components/namespace/nsxfeval.c
Normal file
870
source/components/namespace/nsxfeval.c
Normal file
@ -0,0 +1,870 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: nsxfeval - Public interfaces to the ACPI subsystem
|
||||
* ACPI Object evaluation interfaces
|
||||
* $Revision: 1.7 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#define __NSXFEVAL_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acnamesp.h"
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsxfeval")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiEvaluateObjectTyped
|
||||
*
|
||||
* PARAMETERS: Handle - Object handle (optional)
|
||||
* *Pathname - Object pathname (optional)
|
||||
* **ExternalParams - List of parameters to pass to method,
|
||||
* terminated by NULL. May be NULL
|
||||
* if no parameters are being passed.
|
||||
* *ReturnBuffer - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
* ReturnType - Expected type of return object
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Find and evaluate the given object, passing the given
|
||||
* parameters if necessary. One of "Handle" or "Pathname" must
|
||||
* be valid (non-null)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvaluateObjectTyped (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_STRING Pathname,
|
||||
ACPI_OBJECT_LIST *ExternalParams,
|
||||
ACPI_BUFFER *ReturnBuffer,
|
||||
ACPI_OBJECT_TYPE ReturnType)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
BOOLEAN MustFree = FALSE;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiEvaluateObjectTyped");
|
||||
|
||||
|
||||
/* Return buffer must be valid */
|
||||
|
||||
if (!ReturnBuffer)
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
if (ReturnBuffer->Length == ACPI_ALLOCATE_BUFFER)
|
||||
{
|
||||
MustFree = TRUE;
|
||||
}
|
||||
|
||||
/* Evaluate the object */
|
||||
|
||||
Status = AcpiEvaluateObject (Handle, Pathname, ExternalParams, ReturnBuffer);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Type ANY means "don't care" */
|
||||
|
||||
if (ReturnType == ACPI_TYPE_ANY)
|
||||
{
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
if (ReturnBuffer->Length == 0)
|
||||
{
|
||||
/* Error because caller specifically asked for a return value */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"No return value\n"));
|
||||
|
||||
return_ACPI_STATUS (AE_NULL_OBJECT);
|
||||
}
|
||||
|
||||
/* Examine the object type returned from EvaluateObject */
|
||||
|
||||
if (((ACPI_OBJECT *) ReturnBuffer->Pointer)->Type == ReturnType)
|
||||
{
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
/* Return object type does not match requested type */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Incorrect return type [%s] requested [%s]\n",
|
||||
AcpiUtGetTypeName (((ACPI_OBJECT *) ReturnBuffer->Pointer)->Type),
|
||||
AcpiUtGetTypeName (ReturnType)));
|
||||
|
||||
if (MustFree)
|
||||
{
|
||||
/* Caller used ACPI_ALLOCATE_BUFFER, free the return buffer */
|
||||
|
||||
AcpiOsFree (ReturnBuffer->Pointer);
|
||||
ReturnBuffer->Pointer = NULL;
|
||||
}
|
||||
|
||||
ReturnBuffer->Length = 0;
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiEvaluateObject
|
||||
*
|
||||
* PARAMETERS: Handle - Object handle (optional)
|
||||
* *Pathname - Object pathname (optional)
|
||||
* **ExternalParams - List of parameters to pass to method,
|
||||
* terminated by NULL. May be NULL
|
||||
* if no parameters are being passed.
|
||||
* *ReturnBuffer - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Find and evaluate the given object, passing the given
|
||||
* parameters if necessary. One of "Handle" or "Pathname" must
|
||||
* be valid (non-null)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvaluateObject (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_STRING Pathname,
|
||||
ACPI_OBJECT_LIST *ExternalParams,
|
||||
ACPI_BUFFER *ReturnBuffer)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OPERAND_OBJECT **InternalParams = NULL;
|
||||
ACPI_OPERAND_OBJECT *InternalReturnObj = NULL;
|
||||
ACPI_SIZE BufferSpaceNeeded;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiEvaluateObject");
|
||||
|
||||
|
||||
/*
|
||||
* If there are parameters to be passed to the object
|
||||
* (which must be a control method), the external objects
|
||||
* must be converted to internal objects
|
||||
*/
|
||||
if (ExternalParams && ExternalParams->Count)
|
||||
{
|
||||
/*
|
||||
* Allocate a new parameter block for the internal objects
|
||||
* Add 1 to count to allow for null terminated internal list
|
||||
*/
|
||||
InternalParams = ACPI_MEM_CALLOCATE (((ACPI_SIZE) ExternalParams->Count + 1) *
|
||||
sizeof (void *));
|
||||
if (!InternalParams)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert each external object in the list to an
|
||||
* internal object
|
||||
*/
|
||||
for (i = 0; i < ExternalParams->Count; i++)
|
||||
{
|
||||
Status = AcpiUtCopyEobjectToIobject (&ExternalParams->Pointer[i],
|
||||
&InternalParams[i]);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiUtDeleteInternalObjectList (InternalParams);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
}
|
||||
InternalParams[ExternalParams->Count] = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Three major cases:
|
||||
* 1) Fully qualified pathname
|
||||
* 2) No handle, not fully qualified pathname (error)
|
||||
* 3) Valid handle
|
||||
*/
|
||||
if ((Pathname) &&
|
||||
(AcpiNsValidRootPrefix (Pathname[0])))
|
||||
{
|
||||
/*
|
||||
* The path is fully qualified, just evaluate by name
|
||||
*/
|
||||
Status = AcpiNsEvaluateByName (Pathname, InternalParams,
|
||||
&InternalReturnObj);
|
||||
}
|
||||
else if (!Handle)
|
||||
{
|
||||
/*
|
||||
* A handle is optional iff a fully qualified pathname
|
||||
* is specified. Since we've already handled fully
|
||||
* qualified names above, this is an error
|
||||
*/
|
||||
if (!Pathname)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Both Handle and Pathname are NULL\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Handle is NULL and Pathname is relative\n"));
|
||||
}
|
||||
|
||||
Status = AE_BAD_PARAMETER;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We get here if we have a handle -- and if we have a
|
||||
* pathname it is relative. The handle will be validated
|
||||
* in the lower procedures
|
||||
*/
|
||||
if (!Pathname)
|
||||
{
|
||||
/*
|
||||
* The null pathname case means the handle is for
|
||||
* the actual object to be evaluated
|
||||
*/
|
||||
Status = AcpiNsEvaluateByHandle (Handle, InternalParams,
|
||||
&InternalReturnObj);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Both a Handle and a relative Pathname
|
||||
*/
|
||||
Status = AcpiNsEvaluateRelative (Handle, Pathname, InternalParams,
|
||||
&InternalReturnObj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* If we are expecting a return value, and all went well above,
|
||||
* copy the return value to an external object.
|
||||
*/
|
||||
if (ReturnBuffer)
|
||||
{
|
||||
if (!InternalReturnObj)
|
||||
{
|
||||
ReturnBuffer->Length = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (InternalReturnObj) == ACPI_DESC_TYPE_NAMED)
|
||||
{
|
||||
/*
|
||||
* If we received a NS Node as a return object, this means that
|
||||
* the object we are evaluating has nothing interesting to
|
||||
* return (such as a mutex, etc.) We return an error because
|
||||
* these types are essentially unsupported by this interface.
|
||||
* We don't check up front because this makes it easier to add
|
||||
* support for various types at a later date if necessary.
|
||||
*/
|
||||
Status = AE_TYPE;
|
||||
InternalReturnObj = NULL; /* No need to delete a NS Node */
|
||||
ReturnBuffer->Length = 0;
|
||||
}
|
||||
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
/*
|
||||
* Find out how large a buffer is needed
|
||||
* to contain the returned object
|
||||
*/
|
||||
Status = AcpiUtGetObjectSize (InternalReturnObj,
|
||||
&BufferSpaceNeeded);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
/* Validate/Allocate/Clear caller buffer */
|
||||
|
||||
Status = AcpiUtInitializeBuffer (ReturnBuffer, BufferSpaceNeeded);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/*
|
||||
* Caller's buffer is too small or a new one can't be allocated
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Needed buffer size %X, %s\n",
|
||||
(UINT32) BufferSpaceNeeded, AcpiFormatException (Status)));
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We have enough space for the object, build it
|
||||
*/
|
||||
Status = AcpiUtCopyIobjectToEobject (InternalReturnObj,
|
||||
ReturnBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Delete the return and parameter objects */
|
||||
|
||||
if (InternalReturnObj)
|
||||
{
|
||||
/*
|
||||
* Delete the internal return object. (Or at least
|
||||
* decrement the reference count by one)
|
||||
*/
|
||||
AcpiUtRemoveReference (InternalReturnObj);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free the input parameter list (if we created one),
|
||||
*/
|
||||
if (InternalParams)
|
||||
{
|
||||
/* Free the allocated parameter block */
|
||||
|
||||
AcpiUtDeleteInternalObjectList (InternalParams);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiWalkNamespace
|
||||
*
|
||||
* PARAMETERS: Type - ACPI_OBJECT_TYPE to search for
|
||||
* StartObject - Handle in namespace where search begins
|
||||
* MaxDepth - Depth to which search is to reach
|
||||
* UserFunction - Called when an object of "Type" is found
|
||||
* Context - Passed to user function
|
||||
* ReturnValue - Location where return value of
|
||||
* UserFunction is put if terminated early
|
||||
*
|
||||
* RETURNS Return value from the UserFunction if terminated early.
|
||||
* Otherwise, returns NULL.
|
||||
*
|
||||
* DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
|
||||
* starting (and ending) at the object specified by StartHandle.
|
||||
* The UserFunction is called whenever an object that matches
|
||||
* the type parameter is found. If the user function returns
|
||||
* a non-zero value, the search is terminated immediately and this
|
||||
* value is returned to the caller.
|
||||
*
|
||||
* The point of this procedure is to provide a generic namespace
|
||||
* walk routine that can be called from multiple places to
|
||||
* provide multiple services; the User Function can be tailored
|
||||
* to each task, whether it is a print function, a compare
|
||||
* function, etc.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiWalkNamespace (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_HANDLE StartObject,
|
||||
UINT32 MaxDepth,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiWalkNamespace");
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if ((Type > ACPI_TYPE_EXTERNAL_MAX) ||
|
||||
(!MaxDepth) ||
|
||||
(!UserFunction))
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Lock the namespace around the walk.
|
||||
* The namespace will be unlocked/locked around each call
|
||||
* to the user function - since this function
|
||||
* must be allowed to make Acpi calls itself.
|
||||
*/
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiNsWalkNamespace (Type, StartObject, MaxDepth, ACPI_NS_WALK_UNLOCK,
|
||||
UserFunction, Context, ReturnValue);
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsGetDeviceCallback
|
||||
*
|
||||
* PARAMETERS: Callback from AcpiGetDevice
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Takes callbacks from WalkNamespace and filters out all non-
|
||||
* present devices, or if they specified a HID, it filters based
|
||||
* on that.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static ACPI_STATUS
|
||||
AcpiNsGetDeviceCallback (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
UINT32 Flags;
|
||||
ACPI_DEVICE_ID Hid;
|
||||
ACPI_DEVICE_ID Cid;
|
||||
ACPI_GET_DEVICES_INFO *Info;
|
||||
|
||||
|
||||
Info = Context;
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
if (!Node)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Run _STA to determine if device is present
|
||||
*/
|
||||
Status = AcpiUtExecute_STA (Node, &Flags);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
if (!(Flags & 0x01))
|
||||
{
|
||||
/* Don't return at the device or children of the device if not there */
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
/*
|
||||
* Filter based on device HID & CID
|
||||
*/
|
||||
if (Info->Hid != NULL)
|
||||
{
|
||||
Status = AcpiUtExecute_HID (Node, &Hid);
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
if (ACPI_STRNCMP (Hid.Buffer, Info->Hid, sizeof (Hid.Buffer)) != 0)
|
||||
{
|
||||
Status = AcpiUtExecute_CID (Node, &Cid);
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
/* TBD: Handle CID packages */
|
||||
|
||||
if (ACPI_STRNCMP (Cid.Buffer, Info->Hid, sizeof (Cid.Buffer)) != 0)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Status = Info->UserFunction (ObjHandle, NestingLevel, Info->Context, ReturnValue);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiGetDevices
|
||||
*
|
||||
* PARAMETERS: HID - HID to search for. Can be NULL.
|
||||
* UserFunction - Called when a matching object is found
|
||||
* Context - Passed to user function
|
||||
* ReturnValue - Location where return value of
|
||||
* UserFunction is put if terminated early
|
||||
*
|
||||
* RETURNS Return value from the UserFunction if terminated early.
|
||||
* Otherwise, returns NULL.
|
||||
*
|
||||
* DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
|
||||
* starting (and ending) at the object specified by StartHandle.
|
||||
* The UserFunction is called whenever an object that matches
|
||||
* the type parameter is found. If the user function returns
|
||||
* a non-zero value, the search is terminated immediately and this
|
||||
* value is returned to the caller.
|
||||
*
|
||||
* This is a wrapper for WalkNamespace, but the callback performs
|
||||
* additional filtering. Please see AcpiGetDeviceCallback.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetDevices (
|
||||
char *HID,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_GET_DEVICES_INFO Info;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiGetDevices");
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!UserFunction)
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* We're going to call their callback from OUR callback, so we need
|
||||
* to know what it is, and their context parameter.
|
||||
*/
|
||||
Info.Context = Context;
|
||||
Info.UserFunction = UserFunction;
|
||||
Info.Hid = HID;
|
||||
|
||||
/*
|
||||
* Lock the namespace around the walk.
|
||||
* The namespace will be unlocked/locked around each call
|
||||
* to the user function - since this function
|
||||
* must be allowed to make Acpi calls itself.
|
||||
*/
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE,
|
||||
ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
|
||||
ACPI_NS_WALK_UNLOCK,
|
||||
AcpiNsGetDeviceCallback, &Info,
|
||||
ReturnValue);
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiAttachData
|
||||
*
|
||||
* PARAMETERS: ObjHandle - Namespace node
|
||||
* Handler - Handler for this attachment
|
||||
* Data - Pointer to data to be attached
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Attach arbitrary data and handler to a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAttachData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void *Data)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!ObjHandle ||
|
||||
!Handler ||
|
||||
!Data)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Convert and validate the handle */
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Status = AcpiNsAttachData (Node, Handler, Data);
|
||||
|
||||
UnlockAndExit:
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDetachData
|
||||
*
|
||||
* PARAMETERS: ObjHandle - Namespace node handle
|
||||
* Handler - Handler used in call to AcpiAttachData
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Remove data that was previously attached to a node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDetachData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!ObjHandle ||
|
||||
!Handler)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Convert and validate the handle */
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Status = AcpiNsDetachData (Node, Handler);
|
||||
|
||||
UnlockAndExit:
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiGetData
|
||||
*
|
||||
* PARAMETERS: ObjHandle - Namespace node
|
||||
* Handler - Handler used in call to AttachData
|
||||
* Data - Where the data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Retrieve data that was previously attached to a namespace node.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void **Data)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!ObjHandle ||
|
||||
!Handler ||
|
||||
!Data)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Convert and validate the handle */
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Status = AcpiNsGetAttachedData (Node, Handler, Data);
|
||||
|
||||
UnlockAndExit:
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsxfname - Public interfaces to the ACPI subsystem
|
||||
* ACPI Namespace oriented interfaces
|
||||
* $Revision: 1.91 $
|
||||
* $Revision: 1.94 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -277,7 +277,7 @@ AcpiGetName (
|
||||
|
||||
/* Validate/Allocate/Clear caller buffer */
|
||||
|
||||
Status = AcpiUtInitializeBuffer (Buffer, PATH_SEGMENT_LENGTH);
|
||||
Status = AcpiUtInitializeBuffer (Buffer, ACPI_PATH_SEGMENT_LENGTH);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto UnlockAndExit;
|
||||
@ -287,7 +287,7 @@ AcpiGetName (
|
||||
|
||||
ACPI_STRNCPY (Buffer->Pointer, Node->Name.Ascii,
|
||||
ACPI_NAME_SIZE);
|
||||
((NATIVE_CHAR *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;
|
||||
((char *) Buffer->Pointer) [ACPI_NAME_SIZE] = 0;
|
||||
Status = AE_OK;
|
||||
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: nsxfobj - Public interfaces to the ACPI subsystem
|
||||
* ACPI Object oriented interfaces
|
||||
* $Revision: 1.109 $
|
||||
* $Revision: 1.115 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -125,320 +125,6 @@
|
||||
#define _COMPONENT ACPI_NAMESPACE
|
||||
ACPI_MODULE_NAME ("nsxfobj")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiEvaluateObject
|
||||
*
|
||||
* PARAMETERS: Handle - Object handle (optional)
|
||||
* *Pathname - Object pathname (optional)
|
||||
* **ExternalParams - List of parameters to pass to method,
|
||||
* terminated by NULL. May be NULL
|
||||
* if no parameters are being passed.
|
||||
* *ReturnBuffer - Where to put method's return value (if
|
||||
* any). If NULL, no value is returned.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Find and evaluate the given object, passing the given
|
||||
* parameters if necessary. One of "Handle" or "Pathname" must
|
||||
* be valid (non-null)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvaluateObject (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_STRING Pathname,
|
||||
ACPI_OBJECT_LIST *ExternalParams,
|
||||
ACPI_BUFFER *ReturnBuffer)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_OPERAND_OBJECT **InternalParams = NULL;
|
||||
ACPI_OPERAND_OBJECT *InternalReturnObj = NULL;
|
||||
ACPI_SIZE BufferSpaceNeeded;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiEvaluateObject");
|
||||
|
||||
|
||||
/*
|
||||
* If there are parameters to be passed to the object
|
||||
* (which must be a control method), the external objects
|
||||
* must be converted to internal objects
|
||||
*/
|
||||
if (ExternalParams && ExternalParams->Count)
|
||||
{
|
||||
/*
|
||||
* Allocate a new parameter block for the internal objects
|
||||
* Add 1 to count to allow for null terminated internal list
|
||||
*/
|
||||
InternalParams = ACPI_MEM_CALLOCATE ((ExternalParams->Count + 1) *
|
||||
sizeof (void *));
|
||||
if (!InternalParams)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert each external object in the list to an
|
||||
* internal object
|
||||
*/
|
||||
for (i = 0; i < ExternalParams->Count; i++)
|
||||
{
|
||||
Status = AcpiUtCopyEobjectToIobject (&ExternalParams->Pointer[i],
|
||||
&InternalParams[i]);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
AcpiUtDeleteInternalObjectList (InternalParams);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
}
|
||||
InternalParams[ExternalParams->Count] = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Three major cases:
|
||||
* 1) Fully qualified pathname
|
||||
* 2) No handle, not fully qualified pathname (error)
|
||||
* 3) Valid handle
|
||||
*/
|
||||
if ((Pathname) &&
|
||||
(AcpiNsValidRootPrefix (Pathname[0])))
|
||||
{
|
||||
/*
|
||||
* The path is fully qualified, just evaluate by name
|
||||
*/
|
||||
Status = AcpiNsEvaluateByName (Pathname, InternalParams,
|
||||
&InternalReturnObj);
|
||||
}
|
||||
else if (!Handle)
|
||||
{
|
||||
/*
|
||||
* A handle is optional iff a fully qualified pathname
|
||||
* is specified. Since we've already handled fully
|
||||
* qualified names above, this is an error
|
||||
*/
|
||||
if (!Pathname)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Both Handle and Pathname are NULL\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Handle is NULL and Pathname is relative\n"));
|
||||
}
|
||||
|
||||
Status = AE_BAD_PARAMETER;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We get here if we have a handle -- and if we have a
|
||||
* pathname it is relative. The handle will be validated
|
||||
* in the lower procedures
|
||||
*/
|
||||
if (!Pathname)
|
||||
{
|
||||
/*
|
||||
* The null pathname case means the handle is for
|
||||
* the actual object to be evaluated
|
||||
*/
|
||||
Status = AcpiNsEvaluateByHandle (Handle, InternalParams,
|
||||
&InternalReturnObj);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Both a Handle and a relative Pathname
|
||||
*/
|
||||
Status = AcpiNsEvaluateRelative (Handle, Pathname, InternalParams,
|
||||
&InternalReturnObj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* If we are expecting a return value, and all went well above,
|
||||
* copy the return value to an external object.
|
||||
*/
|
||||
if (ReturnBuffer)
|
||||
{
|
||||
if (!InternalReturnObj)
|
||||
{
|
||||
ReturnBuffer->Length = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (InternalReturnObj) == ACPI_DESC_TYPE_NAMED)
|
||||
{
|
||||
/*
|
||||
* If we received a NS Node as a return object, this means that
|
||||
* the object we are evaluating has nothing interesting to
|
||||
* return (such as a mutex, etc.) We return an error because
|
||||
* these types are essentially unsupported by this interface.
|
||||
* We don't check up front because this makes it easier to add
|
||||
* support for various types at a later date if necessary.
|
||||
*/
|
||||
Status = AE_TYPE;
|
||||
InternalReturnObj = NULL; /* No need to delete a NS Node */
|
||||
ReturnBuffer->Length = 0;
|
||||
}
|
||||
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
/*
|
||||
* Find out how large a buffer is needed
|
||||
* to contain the returned object
|
||||
*/
|
||||
Status = AcpiUtGetObjectSize (InternalReturnObj,
|
||||
&BufferSpaceNeeded);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
/* Validate/Allocate/Clear caller buffer */
|
||||
|
||||
Status = AcpiUtInitializeBuffer (ReturnBuffer, BufferSpaceNeeded);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/*
|
||||
* Caller's buffer is too small or a new one can't be allocated
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Needed buffer size %X, %s\n",
|
||||
BufferSpaceNeeded, AcpiFormatException (Status)));
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* We have enough space for the object, build it
|
||||
*/
|
||||
Status = AcpiUtCopyIobjectToEobject (InternalReturnObj,
|
||||
ReturnBuffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Delete the return and parameter objects */
|
||||
|
||||
if (InternalReturnObj)
|
||||
{
|
||||
/*
|
||||
* Delete the internal return object. (Or at least
|
||||
* decrement the reference count by one)
|
||||
*/
|
||||
AcpiUtRemoveReference (InternalReturnObj);
|
||||
}
|
||||
|
||||
/*
|
||||
* Free the input parameter list (if we created one),
|
||||
*/
|
||||
if (InternalParams)
|
||||
{
|
||||
/* Free the allocated parameter block */
|
||||
|
||||
AcpiUtDeleteInternalObjectList (InternalParams);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiGetNextObject
|
||||
*
|
||||
* PARAMETERS: Type - Type of object to be searched for
|
||||
* Parent - Parent object whose children we are getting
|
||||
* LastChild - Previous child that was found.
|
||||
* The NEXT child will be returned
|
||||
* RetHandle - Where handle to the next object is placed
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Return the next peer object within the namespace. If Handle is
|
||||
* valid, Scope is ignored. Otherwise, the first object within
|
||||
* Scope is returned.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetNextObject (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_HANDLE Parent,
|
||||
ACPI_HANDLE Child,
|
||||
ACPI_HANDLE *RetHandle)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_NAMESPACE_NODE *ParentNode = NULL;
|
||||
ACPI_NAMESPACE_NODE *ChildNode = NULL;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (Type > ACPI_TYPE_MAX)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* If null handle, use the parent */
|
||||
|
||||
if (!Child)
|
||||
{
|
||||
/* Start search at the beginning of the specified scope */
|
||||
|
||||
ParentNode = AcpiNsMapHandleToNode (Parent);
|
||||
if (!ParentNode)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Non-null handle, ignore the parent */
|
||||
/* Convert and validate the handle */
|
||||
|
||||
ChildNode = AcpiNsMapHandleToNode (Child);
|
||||
if (!ChildNode)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
}
|
||||
|
||||
/* Internal function does the real work */
|
||||
|
||||
Node = AcpiNsGetNextNode (Type, ParentNode, ChildNode);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_NOT_FOUND;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
if (RetHandle)
|
||||
{
|
||||
*RetHandle = AcpiNsConvertEntryToHandle (Node);
|
||||
}
|
||||
|
||||
|
||||
UnlockAndExit:
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiGetType
|
||||
@ -573,415 +259,91 @@ UnlockAndExit:
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiWalkNamespace
|
||||
* FUNCTION: AcpiGetNextObject
|
||||
*
|
||||
* PARAMETERS: Type - ACPI_OBJECT_TYPE to search for
|
||||
* StartObject - Handle in namespace where search begins
|
||||
* MaxDepth - Depth to which search is to reach
|
||||
* UserFunction - Called when an object of "Type" is found
|
||||
* Context - Passed to user function
|
||||
* ReturnValue - Location where return value of
|
||||
* UserFunction is put if terminated early
|
||||
* PARAMETERS: Type - Type of object to be searched for
|
||||
* Parent - Parent object whose children we are getting
|
||||
* LastChild - Previous child that was found.
|
||||
* The NEXT child will be returned
|
||||
* RetHandle - Where handle to the next object is placed
|
||||
*
|
||||
* RETURNS Return value from the UserFunction if terminated early.
|
||||
* Otherwise, returns NULL.
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
|
||||
* starting (and ending) at the object specified by StartHandle.
|
||||
* The UserFunction is called whenever an object that matches
|
||||
* the type parameter is found. If the user function returns
|
||||
* a non-zero value, the search is terminated immediately and this
|
||||
* value is returned to the caller.
|
||||
*
|
||||
* The point of this procedure is to provide a generic namespace
|
||||
* walk routine that can be called from multiple places to
|
||||
* provide multiple services; the User Function can be tailored
|
||||
* to each task, whether it is a print function, a compare
|
||||
* function, etc.
|
||||
* DESCRIPTION: Return the next peer object within the namespace. If Handle is
|
||||
* valid, Scope is ignored. Otherwise, the first object within
|
||||
* Scope is returned.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiWalkNamespace (
|
||||
AcpiGetNextObject (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_HANDLE StartObject,
|
||||
UINT32 MaxDepth,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
ACPI_HANDLE Parent,
|
||||
ACPI_HANDLE Child,
|
||||
ACPI_HANDLE *RetHandle)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiWalkNamespace");
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_NAMESPACE_NODE *ParentNode = NULL;
|
||||
ACPI_NAMESPACE_NODE *ChildNode = NULL;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if ((Type > ACPI_TYPE_MAX) ||
|
||||
(!MaxDepth) ||
|
||||
(!UserFunction))
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Lock the namespace around the walk.
|
||||
* The namespace will be unlocked/locked around each call
|
||||
* to the user function - since this function
|
||||
* must be allowed to make Acpi calls itself.
|
||||
*/
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiNsWalkNamespace (Type, StartObject, MaxDepth, ACPI_NS_WALK_UNLOCK,
|
||||
UserFunction, Context, ReturnValue);
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiNsGetDeviceCallback
|
||||
*
|
||||
* PARAMETERS: Callback from AcpiGetDevice
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Takes callbacks from WalkNamespace and filters out all non-
|
||||
* present devices, or if they specified a HID, it filters based
|
||||
* on that.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static ACPI_STATUS
|
||||
AcpiNsGetDeviceCallback (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
UINT32 Flags;
|
||||
ACPI_DEVICE_ID Hid;
|
||||
ACPI_DEVICE_ID Cid;
|
||||
ACPI_GET_DEVICES_INFO *Info;
|
||||
|
||||
|
||||
Info = Context;
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
if (!Node)
|
||||
if (Type > ACPI_TYPE_EXTERNAL_MAX)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* Run _STA to determine if device is present
|
||||
*/
|
||||
Status = AcpiUtExecute_STA (Node, &Flags);
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (AE_CTRL_DEPTH);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
if (!(Flags & 0x01))
|
||||
/* If null handle, use the parent */
|
||||
|
||||
if (!Child)
|
||||
{
|
||||
/* Don't return at the device or children of the device if not there */
|
||||
return (AE_CTRL_DEPTH);
|
||||
/* Start search at the beginning of the specified scope */
|
||||
|
||||
ParentNode = AcpiNsMapHandleToNode (Parent);
|
||||
if (!ParentNode)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Filter based on device HID & CID
|
||||
*/
|
||||
if (Info->Hid != NULL)
|
||||
else
|
||||
{
|
||||
Status = AcpiUtExecute_HID (Node, &Hid);
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
/* Non-null handle, ignore the parent */
|
||||
/* Convert and validate the handle */
|
||||
|
||||
if (ACPI_STRNCMP (Hid.Buffer, Info->Hid, sizeof (Hid.Buffer)) != 0)
|
||||
ChildNode = AcpiNsMapHandleToNode (Child);
|
||||
if (!ChildNode)
|
||||
{
|
||||
Status = AcpiUtExecute_CID (Node, &Cid);
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (AE_CTRL_DEPTH);
|
||||
}
|
||||
|
||||
/* TBD: Handle CID packages */
|
||||
|
||||
if (ACPI_STRNCMP (Cid.Buffer, Info->Hid, sizeof (Cid.Buffer)) != 0)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
}
|
||||
|
||||
Status = Info->UserFunction (ObjHandle, NestingLevel, Info->Context, ReturnValue);
|
||||
return (Status);
|
||||
}
|
||||
/* Internal function does the real work */
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiGetDevices
|
||||
*
|
||||
* PARAMETERS: HID - HID to search for. Can be NULL.
|
||||
* UserFunction - Called when a matching object is found
|
||||
* Context - Passed to user function
|
||||
* ReturnValue - Location where return value of
|
||||
* UserFunction is put if terminated early
|
||||
*
|
||||
* RETURNS Return value from the UserFunction if terminated early.
|
||||
* Otherwise, returns NULL.
|
||||
*
|
||||
* DESCRIPTION: Performs a modified depth-first walk of the namespace tree,
|
||||
* starting (and ending) at the object specified by StartHandle.
|
||||
* The UserFunction is called whenever an object that matches
|
||||
* the type parameter is found. If the user function returns
|
||||
* a non-zero value, the search is terminated immediately and this
|
||||
* value is returned to the caller.
|
||||
*
|
||||
* This is a wrapper for WalkNamespace, but the callback performs
|
||||
* additional filtering. Please see AcpiGetDeviceCallback.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetDevices (
|
||||
NATIVE_CHAR *HID,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void **ReturnValue)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_GET_DEVICES_INFO Info;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiGetDevices");
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!UserFunction)
|
||||
{
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* We're going to call their callback from OUR callback, so we need
|
||||
* to know what it is, and their context parameter.
|
||||
*/
|
||||
Info.Context = Context;
|
||||
Info.UserFunction = UserFunction;
|
||||
Info.Hid = HID;
|
||||
|
||||
/*
|
||||
* Lock the namespace around the walk.
|
||||
* The namespace will be unlocked/locked around each call
|
||||
* to the user function - since this function
|
||||
* must be allowed to make Acpi calls itself.
|
||||
*/
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE,
|
||||
ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
|
||||
ACPI_NS_WALK_UNLOCK,
|
||||
AcpiNsGetDeviceCallback, &Info,
|
||||
ReturnValue);
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiAttachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAttachData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void *Data)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!ObjHandle ||
|
||||
!Handler ||
|
||||
!Data)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Convert and validate the handle */
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
Node = AcpiNsGetNextNode (Type, ParentNode, ChildNode);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
Status = AE_NOT_FOUND;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Status = AcpiNsAttachData (Node, Handler, Data);
|
||||
|
||||
UnlockAndExit:
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiDetachData
|
||||
*
|
||||
* PARAMETERS:
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDetachData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!ObjHandle ||
|
||||
!Handler)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Convert and validate the handle */
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Status = AcpiNsDetachData (Node, Handler);
|
||||
|
||||
UnlockAndExit:
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiGetData
|
||||
*
|
||||
* PARAMETERS:
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION:
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void **Data)
|
||||
{
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
/* Parameter validation */
|
||||
|
||||
if (!ObjHandle ||
|
||||
!Handler ||
|
||||
!Data)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Convert and validate the handle */
|
||||
|
||||
Node = AcpiNsMapHandleToNode (ObjHandle);
|
||||
if (!Node)
|
||||
{
|
||||
Status = AE_BAD_PARAMETER;
|
||||
goto UnlockAndExit;
|
||||
}
|
||||
|
||||
Status = AcpiNsGetAttachedData (Node, Handler, Data);
|
||||
if (RetHandle)
|
||||
{
|
||||
*RetHandle = AcpiNsConvertEntryToHandle (Node);
|
||||
}
|
||||
|
||||
|
||||
UnlockAndExit:
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
|
||||
return (Status);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsaddr - Address resource descriptors (16/32/64)
|
||||
* $Revision: 1.23 $
|
||||
* $Revision: 1.28 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -152,8 +152,8 @@ AcpiRsAddress16Resource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
NATIVE_CHAR *TempPtr;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT8 *TempPtr;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_ADDRESS16);
|
||||
UINT32 Index;
|
||||
UINT16 Temp16;
|
||||
@ -296,9 +296,9 @@ AcpiRsAddress16Resource (
|
||||
/* Point the String pointer to the end of this structure */
|
||||
|
||||
OutputStruct->Data.Address16.ResourceSource.StringPtr =
|
||||
(NATIVE_CHAR *)((UINT8 * )OutputStruct + StructSize);
|
||||
(char *)((UINT8 * )OutputStruct + StructSize);
|
||||
|
||||
TempPtr = OutputStruct->Data.Address16.ResourceSource.StringPtr;
|
||||
TempPtr = (UINT8 *) OutputStruct->Data.Address16.ResourceSource.StringPtr;
|
||||
|
||||
/* Copy the string into the buffer */
|
||||
|
||||
@ -338,7 +338,7 @@ AcpiRsAddress16Resource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -373,7 +373,7 @@ AcpiRsAddress16Stream (
|
||||
UINT8 *Buffer = *OutputBuffer;
|
||||
UINT8 *LengthField;
|
||||
UINT8 Temp8;
|
||||
NATIVE_CHAR *TempPointer = NULL;
|
||||
char *TempPointer = NULL;
|
||||
ACPI_SIZE ActualBytes;
|
||||
|
||||
|
||||
@ -481,20 +481,19 @@ AcpiRsAddress16Stream (
|
||||
*Buffer = Temp8;
|
||||
Buffer += 1;
|
||||
|
||||
TempPointer = (NATIVE_CHAR *) Buffer;
|
||||
TempPointer = (char *) Buffer;
|
||||
|
||||
/*
|
||||
* Copy the string
|
||||
*/
|
||||
STRCPY (TempPointer,
|
||||
ACPI_STRCPY (TempPointer,
|
||||
LinkedList->Data.Address16.ResourceSource.StringPtr);
|
||||
|
||||
/*
|
||||
* Buffer needs to be set to the length of the sting + one for the
|
||||
* terminating null
|
||||
*/
|
||||
Buffer += (STRLEN (LinkedList->Data.Address16.ResourceSource.StringPtr)
|
||||
+ 1);
|
||||
Buffer += (ACPI_STRLEN (LinkedList->Data.Address16.ResourceSource.StringPtr) + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -542,10 +541,10 @@ AcpiRsAddress32Resource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer;
|
||||
ACPI_RESOURCE *OutputStruct;
|
||||
ACPI_RESOURCE *OutputStruct= (void *) *OutputBuffer;
|
||||
UINT16 Temp16;
|
||||
UINT8 Temp8;
|
||||
NATIVE_CHAR *TempPtr;
|
||||
UINT8 *TempPtr;
|
||||
ACPI_SIZE StructSize;
|
||||
UINT32 Index;
|
||||
|
||||
@ -554,8 +553,6 @@ AcpiRsAddress32Resource (
|
||||
|
||||
|
||||
Buffer = ByteStreamBuffer;
|
||||
OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
|
||||
StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_ADDRESS32);
|
||||
|
||||
/*
|
||||
@ -695,9 +692,9 @@ AcpiRsAddress32Resource (
|
||||
/* Point the String pointer to the end of this structure */
|
||||
|
||||
OutputStruct->Data.Address32.ResourceSource.StringPtr =
|
||||
(NATIVE_CHAR *)((UINT8 *)OutputStruct + StructSize);
|
||||
(char *)((UINT8 *)OutputStruct + StructSize);
|
||||
|
||||
TempPtr = OutputStruct->Data.Address32.ResourceSource.StringPtr;
|
||||
TempPtr = (UINT8 *) OutputStruct->Data.Address32.ResourceSource.StringPtr;
|
||||
|
||||
/* Copy the string into the buffer */
|
||||
|
||||
@ -735,7 +732,7 @@ AcpiRsAddress32Resource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -770,7 +767,7 @@ AcpiRsAddress32Stream (
|
||||
UINT8 *Buffer;
|
||||
UINT16 *LengthField;
|
||||
UINT8 Temp8;
|
||||
NATIVE_CHAR *TempPointer;
|
||||
char *TempPointer;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("RsAddress32Stream");
|
||||
@ -787,7 +784,7 @@ AcpiRsAddress32Stream (
|
||||
/*
|
||||
* Set a pointer to the Length field - to be filled in later
|
||||
*/
|
||||
LengthField = (UINT16 *) Buffer;
|
||||
LengthField = ACPI_CAST_PTR (UINT16, Buffer);
|
||||
Buffer += 2;
|
||||
|
||||
/*
|
||||
@ -879,19 +876,19 @@ AcpiRsAddress32Stream (
|
||||
*Buffer = Temp8;
|
||||
Buffer += 1;
|
||||
|
||||
TempPointer = (NATIVE_CHAR *) Buffer;
|
||||
TempPointer = (char *) Buffer;
|
||||
|
||||
/*
|
||||
* Copy the string
|
||||
*/
|
||||
STRCPY (TempPointer,
|
||||
ACPI_STRCPY (TempPointer,
|
||||
LinkedList->Data.Address32.ResourceSource.StringPtr);
|
||||
|
||||
/*
|
||||
* Buffer needs to be set to the length of the sting + one for the
|
||||
* terminating null
|
||||
*/
|
||||
Buffer += (STRLEN (LinkedList->Data.Address32.ResourceSource.StringPtr) + 1);
|
||||
Buffer += (ACPI_STRLEN (LinkedList->Data.Address32.ResourceSource.StringPtr) + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -937,10 +934,10 @@ AcpiRsAddress64Resource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer;
|
||||
ACPI_RESOURCE *OutputStruct;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16;
|
||||
UINT8 Temp8;
|
||||
NATIVE_CHAR *TempPtr;
|
||||
UINT8 *TempPtr;
|
||||
ACPI_SIZE StructSize;
|
||||
UINT32 Index;
|
||||
|
||||
@ -949,8 +946,6 @@ AcpiRsAddress64Resource (
|
||||
|
||||
|
||||
Buffer = ByteStreamBuffer;
|
||||
OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
|
||||
StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_ADDRESS64);
|
||||
|
||||
/*
|
||||
@ -1093,9 +1088,9 @@ AcpiRsAddress64Resource (
|
||||
/* Point the String pointer to the end of this structure */
|
||||
|
||||
OutputStruct->Data.Address64.ResourceSource.StringPtr =
|
||||
(NATIVE_CHAR *)((UINT8 *)OutputStruct + StructSize);
|
||||
(char *)((UINT8 *)OutputStruct + StructSize);
|
||||
|
||||
TempPtr = OutputStruct->Data.Address64.ResourceSource.StringPtr;
|
||||
TempPtr = (UINT8 *) OutputStruct->Data.Address64.ResourceSource.StringPtr;
|
||||
|
||||
/* Copy the string into the buffer */
|
||||
|
||||
@ -1134,7 +1129,7 @@ AcpiRsAddress64Resource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -1169,7 +1164,7 @@ AcpiRsAddress64Stream (
|
||||
UINT8 *Buffer;
|
||||
UINT16 *LengthField;
|
||||
UINT8 Temp8;
|
||||
NATIVE_CHAR *TempPointer;
|
||||
char *TempPointer;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("RsAddress64Stream");
|
||||
@ -1187,7 +1182,7 @@ AcpiRsAddress64Stream (
|
||||
* Set a pointer to the Length field - to be filled in later
|
||||
*/
|
||||
|
||||
LengthField = (UINT16 *)Buffer;
|
||||
LengthField = ACPI_CAST_PTR (UINT16, Buffer);
|
||||
Buffer += 2;
|
||||
|
||||
/*
|
||||
@ -1279,18 +1274,18 @@ AcpiRsAddress64Stream (
|
||||
*Buffer = Temp8;
|
||||
Buffer += 1;
|
||||
|
||||
TempPointer = (NATIVE_CHAR *) Buffer;
|
||||
TempPointer = (char *) Buffer;
|
||||
|
||||
/*
|
||||
* Copy the string
|
||||
*/
|
||||
STRCPY (TempPointer, LinkedList->Data.Address64.ResourceSource.StringPtr);
|
||||
ACPI_STRCPY (TempPointer, LinkedList->Data.Address64.ResourceSource.StringPtr);
|
||||
|
||||
/*
|
||||
* Buffer needs to be set to the length of the sting + one for the
|
||||
* terminating null
|
||||
*/
|
||||
Buffer += (STRLEN (LinkedList->Data.Address64.ResourceSource.StringPtr) + 1);
|
||||
Buffer += (ACPI_STRLEN (LinkedList->Data.Address64.ResourceSource.StringPtr) + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rscalc - Calculate stream and list lengths
|
||||
* $Revision: 1.39 $
|
||||
* $Revision: 1.46 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -127,7 +127,7 @@
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiRsCalculateByteStreamLength
|
||||
* FUNCTION: AcpiRsGetByteStreamLength
|
||||
*
|
||||
* PARAMETERS: LinkedList - Pointer to the resource linked list
|
||||
* SizeNeeded - UINT32 pointer of the size buffer needed
|
||||
@ -142,7 +142,7 @@
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsCalculateByteStreamLength (
|
||||
AcpiRsGetByteStreamLength (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
ACPI_SIZE *SizeNeeded)
|
||||
{
|
||||
@ -152,7 +152,7 @@ AcpiRsCalculateByteStreamLength (
|
||||
BOOLEAN Done = FALSE;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("RsCalculateByteStreamLength");
|
||||
ACPI_FUNCTION_TRACE ("RsGetByteStreamLength");
|
||||
|
||||
|
||||
while (!Done)
|
||||
@ -276,10 +276,10 @@ AcpiRsCalculateByteStreamLength (
|
||||
*/
|
||||
SegmentSize = 16;
|
||||
|
||||
if (NULL != LinkedList->Data.Address16.ResourceSource.StringPtr)
|
||||
if (LinkedList->Data.Address16.ResourceSource.StringPtr)
|
||||
{
|
||||
SegmentSize += (1 +
|
||||
LinkedList->Data.Address16.ResourceSource.StringLength);
|
||||
SegmentSize += LinkedList->Data.Address16.ResourceSource.StringLength;
|
||||
SegmentSize++;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -293,10 +293,10 @@ AcpiRsCalculateByteStreamLength (
|
||||
*/
|
||||
SegmentSize = 26;
|
||||
|
||||
if (NULL != LinkedList->Data.Address32.ResourceSource.StringPtr)
|
||||
if (LinkedList->Data.Address32.ResourceSource.StringPtr)
|
||||
{
|
||||
SegmentSize += (1 +
|
||||
LinkedList->Data.Address32.ResourceSource.StringLength);
|
||||
SegmentSize += LinkedList->Data.Address32.ResourceSource.StringLength;
|
||||
SegmentSize++;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -310,10 +310,10 @@ AcpiRsCalculateByteStreamLength (
|
||||
*/
|
||||
SegmentSize = 46;
|
||||
|
||||
if (NULL != LinkedList->Data.Address64.ResourceSource.StringPtr)
|
||||
if (LinkedList->Data.Address64.ResourceSource.StringPtr)
|
||||
{
|
||||
SegmentSize += (1 +
|
||||
LinkedList->Data.Address64.ResourceSource.StringLength);
|
||||
SegmentSize += LinkedList->Data.Address64.ResourceSource.StringLength;
|
||||
SegmentSize++;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -328,12 +328,12 @@ AcpiRsCalculateByteStreamLength (
|
||||
* Resource Source + 1 for the null.
|
||||
*/
|
||||
SegmentSize = 9 +
|
||||
((LinkedList->Data.ExtendedIrq.NumberOfInterrupts - 1) * 4);
|
||||
(((ACPI_SIZE) LinkedList->Data.ExtendedIrq.NumberOfInterrupts - 1) * 4);
|
||||
|
||||
if (NULL != ExIrq->ResourceSource.StringPtr)
|
||||
if (ExIrq && ExIrq->ResourceSource.StringPtr)
|
||||
{
|
||||
SegmentSize += (1 +
|
||||
LinkedList->Data.ExtendedIrq.ResourceSource.StringLength);
|
||||
SegmentSize += LinkedList->Data.ExtendedIrq.ResourceSource.StringLength;
|
||||
SegmentSize++;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -368,7 +368,7 @@ AcpiRsCalculateByteStreamLength (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiRsCalculateListLength
|
||||
* FUNCTION: AcpiRsGetListLength
|
||||
*
|
||||
* PARAMETERS: ByteStreamBuffer - Pointer to the resource byte stream
|
||||
* ByteStreamBufferLength - Size of ByteStreamBuffer
|
||||
@ -385,7 +385,7 @@ AcpiRsCalculateByteStreamLength (
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsCalculateListLength (
|
||||
AcpiRsGetListLength (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
UINT32 ByteStreamBufferLength,
|
||||
ACPI_SIZE *SizeNeeded)
|
||||
@ -404,7 +404,7 @@ AcpiRsCalculateListLength (
|
||||
UINT8 AdditionalBytes;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("RsCalculateListLength");
|
||||
ACPI_FUNCTION_TRACE ("RsGetListLength");
|
||||
|
||||
|
||||
while (BytesParsed < ByteStreamBufferLength)
|
||||
@ -823,7 +823,7 @@ AcpiRsCalculateListLength (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiRsCalculatePciRoutingTableLength
|
||||
* FUNCTION: AcpiRsGetPciRoutingTableLength
|
||||
*
|
||||
* PARAMETERS: PackageObject - Pointer to the package object
|
||||
* BufferSizeNeeded - UINT32 pointer of the size buffer
|
||||
@ -839,12 +839,12 @@ AcpiRsCalculateListLength (
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsCalculatePciRoutingTableLength (
|
||||
AcpiRsGetPciRoutingTableLength (
|
||||
ACPI_OPERAND_OBJECT *PackageObject,
|
||||
ACPI_SIZE *BufferSizeNeeded)
|
||||
{
|
||||
UINT32 NumberOfElements;
|
||||
UINT32 TempSizeNeeded = 0;
|
||||
ACPI_SIZE TempSizeNeeded = 0;
|
||||
ACPI_OPERAND_OBJECT **TopObjectList;
|
||||
UINT32 Index;
|
||||
ACPI_OPERAND_OBJECT *PackageElement;
|
||||
@ -853,7 +853,7 @@ AcpiRsCalculatePciRoutingTableLength (
|
||||
UINT32 TableIndex;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("RsCalculatePciRoutingTableLength");
|
||||
ACPI_FUNCTION_TRACE ("RsGetPciRoutingTableLength");
|
||||
|
||||
|
||||
NumberOfElements = PackageObject->Package.Count;
|
||||
@ -890,8 +890,8 @@ AcpiRsCalculatePciRoutingTableLength (
|
||||
|
||||
for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++)
|
||||
{
|
||||
if ((ACPI_TYPE_STRING == (*SubObjectList)->Common.Type) ||
|
||||
((INTERNAL_TYPE_REFERENCE == (*SubObjectList)->Common.Type) &&
|
||||
if ((ACPI_TYPE_STRING == ACPI_GET_OBJECT_TYPE (*SubObjectList)) ||
|
||||
((ACPI_TYPE_LOCAL_REFERENCE == ACPI_GET_OBJECT_TYPE (*SubObjectList)) &&
|
||||
((*SubObjectList)->Reference.Opcode == AML_INT_NAMEPATH_OP)))
|
||||
{
|
||||
NameFound = TRUE;
|
||||
@ -910,15 +910,15 @@ AcpiRsCalculatePciRoutingTableLength (
|
||||
/*
|
||||
* Was a String type found?
|
||||
*/
|
||||
if (TRUE == NameFound)
|
||||
if (NameFound)
|
||||
{
|
||||
if (ACPI_TYPE_STRING == (*SubObjectList)->Common.Type)
|
||||
if (ACPI_GET_OBJECT_TYPE (*SubObjectList) == ACPI_TYPE_STRING)
|
||||
{
|
||||
/*
|
||||
* The length String.Length field includes the
|
||||
* terminating NULL
|
||||
* The length String.Length field does not include the
|
||||
* terminating NULL, add 1
|
||||
*/
|
||||
TempSizeNeeded += (*SubObjectList)->String.Length;
|
||||
TempSizeNeeded += ((*SubObjectList)->String.Length + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rscreate - Create resource lists/tables
|
||||
* $Revision: 1.52 $
|
||||
* $Revision: 1.64 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -132,7 +132,6 @@
|
||||
*
|
||||
* PARAMETERS: ByteStreamBuffer - Pointer to the resource byte stream
|
||||
* OutputBuffer - Pointer to the user's buffer
|
||||
* OutputBufferLength - Pointer to the size of OutputBuffer
|
||||
*
|
||||
* RETURN: Status - AE_OK if okay, else a valid ACPI_STATUS code
|
||||
* If OutputBuffer is not large enough, OutputBufferLength
|
||||
@ -160,7 +159,8 @@ AcpiRsCreateResourceList (
|
||||
ACPI_FUNCTION_TRACE ("RsCreateResourceList");
|
||||
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ByteStreamBuffer = %p\n", ByteStreamBuffer));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ByteStreamBuffer = %p\n",
|
||||
ByteStreamBuffer));
|
||||
|
||||
/*
|
||||
* Params already validated, so we don't re-validate here
|
||||
@ -172,11 +172,11 @@ AcpiRsCreateResourceList (
|
||||
* Pass the ByteStreamBuffer into a module that can calculate
|
||||
* the buffer size needed for the linked list
|
||||
*/
|
||||
Status = AcpiRsCalculateListLength (ByteStreamStart, ByteStreamBufferLength,
|
||||
Status = AcpiRsGetListLength (ByteStreamStart, ByteStreamBufferLength,
|
||||
&ListSizeNeeded);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Status=%X ListSizeNeeded=%X\n",
|
||||
Status, ListSizeNeeded));
|
||||
Status, (UINT32) ListSizeNeeded));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -199,8 +199,8 @@ AcpiRsCreateResourceList (
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
|
||||
OutputBuffer->Pointer, OutputBuffer->Length));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
|
||||
OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -212,7 +212,6 @@ AcpiRsCreateResourceList (
|
||||
* PARAMETERS: PackageObject - Pointer to an ACPI_OPERAND_OBJECT
|
||||
* package
|
||||
* OutputBuffer - Pointer to the user's buffer
|
||||
* OutputBufferLength - Size of OutputBuffer
|
||||
*
|
||||
* RETURN: Status AE_OK if okay, else a valid ACPI_STATUS code.
|
||||
* If the OutputBuffer is too small, the error will be
|
||||
@ -233,13 +232,13 @@ AcpiRsCreatePciRoutingTable (
|
||||
ACPI_BUFFER *OutputBuffer)
|
||||
{
|
||||
UINT8 *Buffer;
|
||||
ACPI_OPERAND_OBJECT **TopObjectList = NULL;
|
||||
ACPI_OPERAND_OBJECT **SubObjectList = NULL;
|
||||
ACPI_OPERAND_OBJECT *PackageElement = NULL;
|
||||
ACPI_OPERAND_OBJECT **TopObjectList;
|
||||
ACPI_OPERAND_OBJECT **SubObjectList;
|
||||
ACPI_OPERAND_OBJECT *ObjDesc;
|
||||
ACPI_SIZE BufferSizeNeeded = 0;
|
||||
UINT32 NumberOfElements = 0;
|
||||
UINT32 Index = 0;
|
||||
ACPI_PCI_ROUTING_TABLE *UserPrt = NULL;
|
||||
UINT32 NumberOfElements;
|
||||
UINT32 Index;
|
||||
ACPI_PCI_ROUTING_TABLE *UserPrt;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_STATUS Status;
|
||||
ACPI_BUFFER PathBuffer;
|
||||
@ -253,14 +252,15 @@ AcpiRsCreatePciRoutingTable (
|
||||
/*
|
||||
* Get the required buffer length
|
||||
*/
|
||||
Status = AcpiRsCalculatePciRoutingTableLength (PackageObject,
|
||||
Status = AcpiRsGetPciRoutingTableLength (PackageObject,
|
||||
&BufferSizeNeeded);
|
||||
if (!ACPI_SUCCESS(Status))
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "BufferSizeNeeded = %X\n", BufferSizeNeeded));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "BufferSizeNeeded = %X\n",
|
||||
(UINT32) BufferSizeNeeded));
|
||||
|
||||
/* Validate/Allocate/Clear caller buffer */
|
||||
|
||||
@ -271,13 +271,14 @@ AcpiRsCreatePciRoutingTable (
|
||||
}
|
||||
|
||||
/*
|
||||
* Loop through the ACPI_INTERNAL_OBJECTS - Each object should contain an
|
||||
* Loop through the ACPI_INTERNAL_OBJECTS - Each object
|
||||
* should be a package that in turn contains an
|
||||
* ACPI_INTEGER Address, a UINT8 Pin, a Name and a UINT8 SourceIndex.
|
||||
*/
|
||||
TopObjectList = PackageObject->Package.Elements;
|
||||
NumberOfElements = PackageObject->Package.Count;
|
||||
Buffer = OutputBuffer->Pointer;
|
||||
UserPrt = (ACPI_PCI_ROUTING_TABLE *) Buffer;
|
||||
UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
|
||||
|
||||
for (Index = 0; Index < NumberOfElements; Index++)
|
||||
{
|
||||
@ -288,100 +289,119 @@ AcpiRsCreatePciRoutingTable (
|
||||
* be zero because we cleared the return buffer earlier
|
||||
*/
|
||||
Buffer += UserPrt->Length;
|
||||
UserPrt = (ACPI_PCI_ROUTING_TABLE *) Buffer;
|
||||
UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
|
||||
|
||||
/*
|
||||
* Fill in the Length field with the information we have at this point.
|
||||
* The minus four is to subtract the size of the UINT8 Source[4] member
|
||||
* The minus four is to subtract the size of the UINT8 Source[4] member
|
||||
* because it is added below.
|
||||
*/
|
||||
UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) -4);
|
||||
UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4);
|
||||
|
||||
/*
|
||||
* Dereference the sub-package
|
||||
* Each element of the top-level package must also be a package
|
||||
*/
|
||||
PackageElement = *TopObjectList;
|
||||
|
||||
/*
|
||||
* The SubObjectList will now point to an array of the four IRQ
|
||||
* elements: Address, Pin, Source and SourceIndex
|
||||
*/
|
||||
SubObjectList = PackageElement->Package.Elements;
|
||||
|
||||
/*
|
||||
* 1) First subobject: Dereference the Address
|
||||
*/
|
||||
if (ACPI_TYPE_INTEGER == (*SubObjectList)->Common.Type)
|
||||
if (ACPI_GET_OBJECT_TYPE (*TopObjectList) != ACPI_TYPE_PACKAGE)
|
||||
{
|
||||
UserPrt->Address = (*SubObjectList)->Integer.Value;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X]) Need sub-package, found %s\n",
|
||||
Index, AcpiUtGetObjectTypeName (*TopObjectList)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
|
||||
}
|
||||
|
||||
/* Each sub-package must be of length 4 */
|
||||
|
||||
if ((*TopObjectList)->Package.Count != 4)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X]) Need package of length 4, found length %d\n",
|
||||
Index, (*TopObjectList)->Package.Count));
|
||||
return_ACPI_STATUS (AE_AML_PACKAGE_LIMIT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Dereference the sub-package.
|
||||
* The SubObjectList will now point to an array of the four IRQ
|
||||
* elements: [Address, Pin, Source, SourceIndex]
|
||||
*/
|
||||
SubObjectList = (*TopObjectList)->Package.Elements;
|
||||
|
||||
/*
|
||||
* 1) First subobject: Dereference the PRT.Address
|
||||
*/
|
||||
ObjDesc = SubObjectList[0];
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
UserPrt->Address = ObjDesc->Integer.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Need Integer, found %s\n",
|
||||
AcpiUtGetTypeName ((*SubObjectList)->Common.Type)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X].Address) Need Integer, found %s\n",
|
||||
Index, AcpiUtGetObjectTypeName (ObjDesc)));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
|
||||
/*
|
||||
* 2) Second subobject: Dereference the Pin
|
||||
* 2) Second subobject: Dereference the PRT.Pin
|
||||
*/
|
||||
SubObjectList++;
|
||||
|
||||
if (ACPI_TYPE_INTEGER == (*SubObjectList)->Common.Type)
|
||||
ObjDesc = SubObjectList[1];
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
UserPrt->Pin = (UINT32) (*SubObjectList)->Integer.Value;
|
||||
UserPrt->Pin = (UINT32) ObjDesc->Integer.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Need Integer, found %s\n",
|
||||
AcpiUtGetTypeName ((*SubObjectList)->Common.Type)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X].Pin) Need Integer, found %s\n",
|
||||
Index, AcpiUtGetObjectTypeName (ObjDesc)));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
|
||||
/*
|
||||
* 3) Third subobject: Dereference the Source Name
|
||||
* 3) Third subobject: Dereference the PRT.SourceName
|
||||
*/
|
||||
SubObjectList++;
|
||||
|
||||
switch ((*SubObjectList)->Common.Type)
|
||||
ObjDesc = SubObjectList[2];
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
if ((*SubObjectList)->Reference.Opcode != AML_INT_NAMEPATH_OP)
|
||||
if (ObjDesc->Reference.Opcode != AML_INT_NAMEPATH_OP)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Need name, found reference op %X\n",
|
||||
(*SubObjectList)->Reference.Opcode));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X].Source) Need name, found reference op %X\n",
|
||||
Index, ObjDesc->Reference.Opcode));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
|
||||
Node = (*SubObjectList)->Reference.Node;
|
||||
Node = ObjDesc->Reference.Node;
|
||||
|
||||
/* Use *remaining* length of the buffer as max for pathname */
|
||||
|
||||
PathBuffer.Length = OutputBuffer->Length -
|
||||
(UINT32) ((UINT8 *) UserPrt->Source - (UINT8 *) OutputBuffer->Pointer);
|
||||
(UINT32) ((UINT8 *) UserPrt->Source -
|
||||
(UINT8 *) OutputBuffer->Pointer);
|
||||
PathBuffer.Pointer = UserPrt->Source;
|
||||
|
||||
Status = AcpiNsHandleToPathname ((ACPI_HANDLE *) Node, &PathBuffer);
|
||||
Status = AcpiNsHandleToPathname ((ACPI_HANDLE) Node, &PathBuffer);
|
||||
|
||||
UserPrt->Length += STRLEN (UserPrt->Source) + 1; /* include null terminator */
|
||||
UserPrt->Length += (UINT32) ACPI_STRLEN (UserPrt->Source) + 1; /* include null terminator */
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
STRCPY (UserPrt->Source,
|
||||
(*SubObjectList)->String.Pointer);
|
||||
ACPI_STRCPY (UserPrt->Source, ObjDesc->String.Pointer);
|
||||
|
||||
/* Add to the Length field the length of the string */
|
||||
/* Add to the Length field the length of the string (add 1 for terminator) */
|
||||
|
||||
UserPrt->Length += (*SubObjectList)->String.Length;
|
||||
UserPrt->Length += ObjDesc->String.Length + 1;
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_INTEGER:
|
||||
/*
|
||||
* If this is a number, then the Source Name is NULL, since the
|
||||
* If this is a number, then the Source Name is NULL, since the
|
||||
* entire buffer was zeroed out, we can leave this alone.
|
||||
*
|
||||
* Add to the Length field the length of the UINT32 NULL
|
||||
@ -392,8 +412,9 @@ AcpiRsCreatePciRoutingTable (
|
||||
|
||||
default:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Need Integer, found %s\n",
|
||||
AcpiUtGetTypeName ((*SubObjectList)->Common.Type)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X].Source) Need Ref/String/Integer, found %s\n",
|
||||
Index, AcpiUtGetObjectTypeName (ObjDesc)));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
|
||||
@ -402,28 +423,28 @@ AcpiRsCreatePciRoutingTable (
|
||||
UserPrt->Length = ACPI_ROUND_UP_TO_64BITS (UserPrt->Length);
|
||||
|
||||
/*
|
||||
* 4) Fourth subobject: Dereference the Source Index
|
||||
* 4) Fourth subobject: Dereference the PRT.SourceIndex
|
||||
*/
|
||||
SubObjectList++;
|
||||
|
||||
if (ACPI_TYPE_INTEGER == (*SubObjectList)->Common.Type)
|
||||
ObjDesc = SubObjectList[3];
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
UserPrt->SourceIndex = (UINT32) (*SubObjectList)->Integer.Value;
|
||||
UserPrt->SourceIndex = (UINT32) ObjDesc->Integer.Value;
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Need Integer, found %s\n",
|
||||
AcpiUtGetTypeName ((*SubObjectList)->Common.Type)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"(PRT[%X].SourceIndex) Need Integer, found %s\n",
|
||||
Index, AcpiUtGetObjectTypeName (ObjDesc)));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
|
||||
/* Point to the next ACPI_OPERAND_OBJECT */
|
||||
/* Point to the next ACPI_OPERAND_OBJECT in the top level package */
|
||||
|
||||
TopObjectList++;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
|
||||
OutputBuffer->Pointer, OutputBuffer->Length));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
|
||||
OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -458,7 +479,8 @@ AcpiRsCreateByteStream (
|
||||
ACPI_FUNCTION_TRACE ("RsCreateByteStream");
|
||||
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "LinkedListBuffer = %p\n", LinkedListBuffer));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "LinkedListBuffer = %p\n",
|
||||
LinkedListBuffer));
|
||||
|
||||
/*
|
||||
* Params already validated, so we don't re-validate here
|
||||
@ -466,11 +488,11 @@ AcpiRsCreateByteStream (
|
||||
* Pass the LinkedListBuffer into a module that calculates
|
||||
* the buffer size needed for the byte stream.
|
||||
*/
|
||||
Status = AcpiRsCalculateByteStreamLength (LinkedListBuffer,
|
||||
Status = AcpiRsGetByteStreamLength (LinkedListBuffer,
|
||||
&ByteStreamSizeNeeded);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ByteStreamSizeNeeded=%X, %s\n",
|
||||
ByteStreamSizeNeeded, AcpiFormatException (Status)));
|
||||
(UINT32) ByteStreamSizeNeeded, AcpiFormatException (Status)));
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -493,8 +515,8 @@ AcpiRsCreateByteStream (
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
|
||||
OutputBuffer->Pointer, OutputBuffer->Length));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n",
|
||||
OutputBuffer->Pointer, (UINT32) OutputBuffer->Length));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsdump - Functions to display the resource structures.
|
||||
* $Revision: 1.28 $
|
||||
* $Revision: 1.35 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -124,7 +124,7 @@
|
||||
ACPI_MODULE_NAME ("rsdump")
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@ -269,9 +269,9 @@ AcpiRsDumpDma (
|
||||
|
||||
void
|
||||
AcpiRsDumpStartDependFns (
|
||||
ACPI_RESOURCE_DATA *Data)
|
||||
ACPI_RESOURCE_DATA *Data)
|
||||
{
|
||||
ACPI_RESOURCE_START_DPF *SdfData = (ACPI_RESOURCE_START_DPF *) Data;
|
||||
ACPI_RESOURCE_START_DPF *SdfData = (ACPI_RESOURCE_START_DPF *) Data;
|
||||
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
@ -976,20 +976,25 @@ AcpiRsDumpAddress64 (
|
||||
ACPI_ADDRESS_FIXED == Address64Data->MaxAddressFixed ?
|
||||
"" : "not ");
|
||||
|
||||
AcpiOsPrintf (" Granularity: %16X\n",
|
||||
Address64Data->Granularity);
|
||||
AcpiOsPrintf (" Granularity: %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (Address64Data->Granularity),
|
||||
ACPI_LODWORD (Address64Data->Granularity));
|
||||
|
||||
AcpiOsPrintf (" Address range min: %16X\n",
|
||||
Address64Data->MinAddressRange);
|
||||
AcpiOsPrintf (" Address range min: %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (Address64Data->MinAddressRange),
|
||||
ACPI_HIDWORD (Address64Data->MinAddressRange));
|
||||
|
||||
AcpiOsPrintf (" Address range max: %16X\n",
|
||||
Address64Data->MaxAddressRange);
|
||||
AcpiOsPrintf (" Address range max: %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (Address64Data->MaxAddressRange),
|
||||
ACPI_HIDWORD (Address64Data->MaxAddressRange));
|
||||
|
||||
AcpiOsPrintf (" Address translation offset: %16X\n",
|
||||
Address64Data->AddressTranslationOffset);
|
||||
AcpiOsPrintf (" Address translation offset: %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (Address64Data->AddressTranslationOffset),
|
||||
ACPI_HIDWORD (Address64Data->AddressTranslationOffset));
|
||||
|
||||
AcpiOsPrintf (" Address Length: %16X\n",
|
||||
Address64Data->AddressLength);
|
||||
AcpiOsPrintf (" Address Length: %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (Address64Data->AddressLength),
|
||||
ACPI_HIDWORD (Address64Data->AddressLength));
|
||||
|
||||
if(0xFF != Address64Data->ResourceSource.Index)
|
||||
{
|
||||
@ -1093,7 +1098,7 @@ AcpiRsDumpResourceList (
|
||||
{
|
||||
while (!Done)
|
||||
{
|
||||
AcpiOsPrintf ("Resource structure %x.\n", Count++);
|
||||
AcpiOsPrintf ("Resource structure %X.\n", Count++);
|
||||
|
||||
switch (Resource->Id)
|
||||
{
|
||||
@ -1200,14 +1205,14 @@ AcpiRsDumpIrqList (
|
||||
|
||||
if (AcpiDbgLevel & ACPI_LV_RESOURCES && _COMPONENT & AcpiDbgLayer)
|
||||
{
|
||||
PrtElement = (ACPI_PCI_ROUTING_TABLE *) Buffer;
|
||||
PrtElement = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
|
||||
|
||||
while (!Done)
|
||||
{
|
||||
AcpiOsPrintf ("PCI IRQ Routing Table structure %X.\n", Count++);
|
||||
|
||||
AcpiOsPrintf (" Address: %8.8X%8.8X\n",
|
||||
ACPI_HIDWORD (PrtElement->Address),
|
||||
ACPI_HIDWORD (PrtElement->Address),
|
||||
ACPI_LODWORD (PrtElement->Address));
|
||||
|
||||
AcpiOsPrintf (" Pin: %X\n", PrtElement->Pin);
|
||||
@ -1219,7 +1224,7 @@ AcpiRsDumpIrqList (
|
||||
|
||||
Buffer += PrtElement->Length;
|
||||
|
||||
PrtElement = (ACPI_PCI_ROUTING_TABLE *) Buffer;
|
||||
PrtElement = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer);
|
||||
|
||||
if(0 == PrtElement->Length)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsio - IO and DMA resource descriptors
|
||||
* $Revision: 1.17 $
|
||||
* $Revision: 1.23 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -152,7 +152,7 @@ AcpiRsIoResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_IO);
|
||||
@ -211,7 +211,7 @@ AcpiRsIoResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -250,7 +250,7 @@ AcpiRsFixedIoResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_FIXED_IO);
|
||||
@ -285,7 +285,7 @@ AcpiRsFixedIoResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -469,7 +469,7 @@ AcpiRsDmaResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT8 Temp8 = 0;
|
||||
UINT8 Index;
|
||||
UINT8 i;
|
||||
@ -491,7 +491,7 @@ AcpiRsDmaResource (
|
||||
Buffer += 1;
|
||||
Temp8 = *Buffer;
|
||||
|
||||
/* Decode the IRQ bits */
|
||||
/* Decode the DMA channel bits */
|
||||
|
||||
for (i = 0, Index = 0; Index < 8; Index++)
|
||||
{
|
||||
@ -501,13 +501,17 @@ AcpiRsDmaResource (
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/* Zero DMA channels is valid */
|
||||
|
||||
OutputStruct->Data.Dma.NumberOfChannels = i;
|
||||
|
||||
|
||||
/*
|
||||
* Calculate the structure size based upon the number of interrupts
|
||||
*/
|
||||
StructSize += (OutputStruct->Data.Dma.NumberOfChannels - 1) * 4;
|
||||
if (i > 0)
|
||||
{
|
||||
/*
|
||||
* Calculate the structure size based upon the number of interrupts
|
||||
*/
|
||||
StructSize += ((ACPI_SIZE) i - 1) * 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* Point to Byte 2
|
||||
@ -522,6 +526,7 @@ AcpiRsDmaResource (
|
||||
|
||||
if (0x03 == OutputStruct->Data.Dma.Transfer)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid DMA.Transfer preference (3)\n"));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
|
||||
@ -538,7 +543,7 @@ AcpiRsDmaResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsirq - IRQ resource descriptors
|
||||
* $Revision: 1.23 $
|
||||
* $Revision: 1.32 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -152,7 +152,7 @@ AcpiRsIrqResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
UINT8 Index;
|
||||
@ -183,18 +183,23 @@ AcpiRsIrqResource (
|
||||
|
||||
for (i = 0, Index = 0; Index < 16; Index++)
|
||||
{
|
||||
if((Temp16 >> Index) & 0x01)
|
||||
if ((Temp16 >> Index) & 0x01)
|
||||
{
|
||||
OutputStruct->Data.Irq.Interrupts[i] = Index;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
OutputStruct->Data.Irq.NumberOfInterrupts = i;
|
||||
|
||||
/*
|
||||
* Calculate the structure size based upon the number of interrupts
|
||||
*/
|
||||
StructSize += (OutputStruct->Data.Irq.NumberOfInterrupts - 1) * 4;
|
||||
/* Zero interrupts is valid */
|
||||
|
||||
OutputStruct->Data.Irq.NumberOfInterrupts = i;
|
||||
if (i > 0)
|
||||
{
|
||||
/*
|
||||
* Calculate the structure size based upon the number of interrupts
|
||||
*/
|
||||
StructSize += ((ACPI_SIZE) i - 1) * 4;
|
||||
}
|
||||
|
||||
/*
|
||||
* Point to Byte 3 if it is used
|
||||
@ -226,6 +231,7 @@ AcpiRsIrqResource (
|
||||
* are allowed (ACPI spec v1.0b ection 6.4.2.1),
|
||||
* so an error will occur if we reach this point
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid interrupt polarity/trigger in resource list\n"));
|
||||
return_ACPI_STATUS (AE_BAD_DATA);
|
||||
}
|
||||
}
|
||||
@ -249,7 +255,7 @@ AcpiRsIrqResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -385,10 +391,10 @@ AcpiRsExtendedIrqResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
NATIVE_CHAR *TempPtr;
|
||||
UINT8 *TempPtr;
|
||||
UINT8 Index;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_EXT_IRQ);
|
||||
|
||||
@ -458,8 +464,8 @@ AcpiRsExtendedIrqResource (
|
||||
*/
|
||||
for (Index = 0; Index < Temp8; Index++)
|
||||
{
|
||||
OutputStruct->Data.ExtendedIrq.Interrupts[Index] =
|
||||
(UINT32)*Buffer;
|
||||
ACPI_MOVE_UNALIGNED32_TO_32 (
|
||||
&OutputStruct->Data.ExtendedIrq.Interrupts[Index], Buffer);
|
||||
|
||||
/* Point to the next IRQ */
|
||||
|
||||
@ -474,7 +480,7 @@ AcpiRsExtendedIrqResource (
|
||||
* stream that are default.
|
||||
*/
|
||||
if (*BytesConsumed >
|
||||
(UINT32)(OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * 4) + 5)
|
||||
((ACPI_SIZE) OutputStruct->Data.ExtendedIrq.NumberOfInterrupts * 4) + 5)
|
||||
{
|
||||
/* Dereference the Index */
|
||||
|
||||
@ -489,9 +495,9 @@ AcpiRsExtendedIrqResource (
|
||||
* Point the String pointer to the end of this structure.
|
||||
*/
|
||||
OutputStruct->Data.ExtendedIrq.ResourceSource.StringPtr =
|
||||
(NATIVE_CHAR *)(OutputStruct + StructSize);
|
||||
(char *)(OutputStruct + StructSize);
|
||||
|
||||
TempPtr = OutputStruct->Data.ExtendedIrq.ResourceSource.StringPtr;
|
||||
TempPtr = (UINT8 *) OutputStruct->Data.ExtendedIrq.ResourceSource.StringPtr;
|
||||
|
||||
/* Copy the string into the buffer */
|
||||
|
||||
@ -529,7 +535,7 @@ AcpiRsExtendedIrqResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -565,7 +571,7 @@ AcpiRsExtendedIrqStream (
|
||||
UINT16 *LengthField;
|
||||
UINT8 Temp8 = 0;
|
||||
UINT8 Index;
|
||||
NATIVE_CHAR *TempPointer = NULL;
|
||||
char *TempPointer = NULL;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("RsExtendedIrqStream");
|
||||
@ -580,7 +586,7 @@ AcpiRsExtendedIrqStream (
|
||||
/*
|
||||
* Set a pointer to the Length field - to be filled in later
|
||||
*/
|
||||
LengthField = (UINT16 *)Buffer;
|
||||
LengthField = ACPI_CAST_PTR (UINT16, Buffer);
|
||||
Buffer += 2;
|
||||
|
||||
/*
|
||||
@ -635,19 +641,19 @@ AcpiRsExtendedIrqStream (
|
||||
*Buffer = (UINT8) LinkedList->Data.ExtendedIrq.ResourceSource.Index;
|
||||
Buffer += 1;
|
||||
|
||||
TempPointer = (NATIVE_CHAR *) Buffer;
|
||||
TempPointer = (char *) Buffer;
|
||||
|
||||
/*
|
||||
* Copy the string
|
||||
*/
|
||||
STRCPY (TempPointer,
|
||||
ACPI_STRCPY (TempPointer,
|
||||
LinkedList->Data.ExtendedIrq.ResourceSource.StringPtr);
|
||||
|
||||
/*
|
||||
* Buffer needs to be set to the length of the sting + one for the
|
||||
* terminating null
|
||||
*/
|
||||
Buffer += (STRLEN (LinkedList->Data.ExtendedIrq.ResourceSource.StringPtr) + 1);
|
||||
Buffer += (ACPI_STRLEN (LinkedList->Data.ExtendedIrq.ResourceSource.StringPtr) + 1);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rslist - Linked list utilities
|
||||
* $Revision: 1.25 $
|
||||
* $Revision: 1.32 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -163,6 +163,11 @@ AcpiRsGetResourceType (
|
||||
* Large Resource Type -- All bits are valid
|
||||
*/
|
||||
return (ResourceStartByte);
|
||||
|
||||
|
||||
default:
|
||||
/* No other types of resource descriptor */
|
||||
break;
|
||||
}
|
||||
|
||||
return (0xFF);
|
||||
@ -192,7 +197,7 @@ AcpiRsByteStreamToList (
|
||||
UINT8 *OutputBuffer)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 BytesParsed = 0;
|
||||
ACPI_SIZE BytesParsed = 0;
|
||||
UINT8 ResourceType = 0;
|
||||
ACPI_SIZE BytesConsumed = 0;
|
||||
UINT8 *Buffer = OutputBuffer;
|
||||
@ -204,7 +209,7 @@ AcpiRsByteStreamToList (
|
||||
|
||||
|
||||
while (BytesParsed < ByteStreamBufferLength &&
|
||||
FALSE == EndTagProcessed)
|
||||
!EndTagProcessed)
|
||||
{
|
||||
/*
|
||||
* The next byte in the stream is the resource type
|
||||
@ -360,14 +365,13 @@ AcpiRsByteStreamToList (
|
||||
|
||||
default:
|
||||
/*
|
||||
* Invalid/Unknowns resource type
|
||||
* Invalid/Unknown resource type
|
||||
*/
|
||||
Status = AE_AML_ERROR;
|
||||
Status = AE_AML_INVALID_RESOURCE_TYPE;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (!ACPI_SUCCESS(Status))
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
@ -385,7 +389,7 @@ AcpiRsByteStreamToList (
|
||||
/*
|
||||
* Set the Buffer to the next structure
|
||||
*/
|
||||
Resource = (ACPI_RESOURCE *)Buffer;
|
||||
Resource = ACPI_CAST_PTR (ACPI_RESOURCE, Buffer);
|
||||
Resource->Length = ACPI_ALIGN_RESOURCE_SIZE(Resource->Length);
|
||||
Buffer += ACPI_ALIGN_RESOURCE_SIZE(StructureSize);
|
||||
|
||||
@ -394,9 +398,9 @@ AcpiRsByteStreamToList (
|
||||
/*
|
||||
* Check the reason for exiting the while loop
|
||||
*/
|
||||
if (TRUE != EndTagProcessed)
|
||||
if (!EndTagProcessed)
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_ERROR);
|
||||
return_ACPI_STATUS (AE_AML_NO_RESOURCE_END_TAG);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@ -410,7 +414,7 @@ AcpiRsByteStreamToList (
|
||||
* PARAMETERS: LinkedList - Pointer to the resource linked list
|
||||
* ByteSteamSizeNeeded - Calculated size of the byte stream
|
||||
* needed from calling
|
||||
* AcpiRsCalculateByteStreamLength()
|
||||
* AcpiRsGetByteStreamLength()
|
||||
* The size of the OutputBuffer is
|
||||
* guaranteed to be >=
|
||||
* ByteStreamSizeNeeded
|
||||
@ -427,7 +431,7 @@ AcpiRsByteStreamToList (
|
||||
ACPI_STATUS
|
||||
AcpiRsListToByteStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT32 ByteStreamSizeNeeded,
|
||||
ACPI_SIZE ByteStreamSizeNeeded,
|
||||
UINT8 *OutputBuffer)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
@ -566,13 +570,14 @@ AcpiRsListToByteStream (
|
||||
* If we get here, everything is out of sync,
|
||||
* so exit with an error
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid descriptor type (%X) in resource list\n",
|
||||
LinkedList->Id));
|
||||
Status = AE_BAD_DATA;
|
||||
break;
|
||||
|
||||
} /* switch (LinkedList->Id) */
|
||||
|
||||
|
||||
if (!ACPI_SUCCESS(Status))
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsmem24 - Memory resource descriptors
|
||||
* $Revision: 1.17 $
|
||||
* $Revision: 1.21 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -152,7 +152,7 @@ AcpiRsMemory24Resource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_MEM24);
|
||||
@ -168,7 +168,7 @@ AcpiRsMemory24Resource (
|
||||
|
||||
ACPI_MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer);
|
||||
Buffer += 2;
|
||||
*BytesConsumed = Temp16 + 3;
|
||||
*BytesConsumed = (ACPI_SIZE) Temp16 + 3;
|
||||
OutputStruct->Id = ACPI_RSTYPE_MEM24;
|
||||
|
||||
/*
|
||||
@ -208,7 +208,7 @@ AcpiRsMemory24Resource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -329,7 +329,7 @@ AcpiRsMemory32RangeResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_MEM32);
|
||||
@ -345,7 +345,7 @@ AcpiRsMemory32RangeResource (
|
||||
|
||||
ACPI_MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer);
|
||||
Buffer += 2;
|
||||
*BytesConsumed = Temp16 + 3;
|
||||
*BytesConsumed = (ACPI_SIZE) Temp16 + 3;
|
||||
|
||||
OutputStruct->Id = ACPI_RSTYPE_MEM32;
|
||||
|
||||
@ -395,7 +395,7 @@ AcpiRsMemory32RangeResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -434,7 +434,7 @@ AcpiRsFixedMemory32Resource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_FIXED_MEM32);
|
||||
@ -450,7 +450,7 @@ AcpiRsFixedMemory32Resource (
|
||||
ACPI_MOVE_UNALIGNED16_TO_16 (&Temp16, Buffer);
|
||||
|
||||
Buffer += 2;
|
||||
*BytesConsumed = Temp16 + 3;
|
||||
*BytesConsumed = (ACPI_SIZE) Temp16 + 3;
|
||||
|
||||
OutputStruct->Id = ACPI_RSTYPE_FIXED_MEM32;
|
||||
|
||||
@ -477,7 +477,7 @@ AcpiRsFixedMemory32Resource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsmisc - Miscellaneous resource descriptors
|
||||
* $Revision: 1.20 $
|
||||
* $Revision: 1.25 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -151,7 +151,7 @@ AcpiRsEndTagResource (
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
ACPI_SIZE StructSize = ACPI_RESOURCE_LENGTH;
|
||||
|
||||
|
||||
@ -262,7 +262,7 @@ AcpiRsVendorResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT16 Temp16 = 0;
|
||||
UINT8 Temp8 = 0;
|
||||
UINT8 Index;
|
||||
@ -290,7 +290,7 @@ AcpiRsVendorResource (
|
||||
|
||||
/* Calculate bytes consumed */
|
||||
|
||||
*BytesConsumed = Temp16 + 3;
|
||||
*BytesConsumed = (ACPI_SIZE) Temp16 + 3;
|
||||
|
||||
/* Point to the first vendor byte */
|
||||
|
||||
@ -305,7 +305,7 @@ AcpiRsVendorResource (
|
||||
|
||||
/* Calculate bytes consumed */
|
||||
|
||||
*BytesConsumed = Temp16 + 1;
|
||||
*BytesConsumed = (ACPI_SIZE) Temp16 + 1;
|
||||
|
||||
/* Point to the first vendor byte */
|
||||
|
||||
@ -331,7 +331,7 @@ AcpiRsVendorResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -394,7 +394,7 @@ AcpiRsVendorStream (
|
||||
* Small Item, Set the descriptor field
|
||||
*/
|
||||
Temp8 = 0x70;
|
||||
Temp8 |= LinkedList->Data.VendorSpecific.Length;
|
||||
Temp8 |= (UINT8) LinkedList->Data.VendorSpecific.Length;
|
||||
|
||||
*Buffer = Temp8;
|
||||
Buffer += 1;
|
||||
@ -448,7 +448,7 @@ AcpiRsStartDependFnsResource (
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
UINT8 *Buffer = ByteStreamBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
UINT8 Temp8 = 0;
|
||||
ACPI_SIZE StructSize = ACPI_SIZEOF_RESOURCE (ACPI_RESOURCE_START_DPF);
|
||||
|
||||
@ -480,7 +480,7 @@ AcpiRsStartDependFnsResource (
|
||||
|
||||
if (3 == OutputStruct->Data.StartDpf.CompatibilityPriority)
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_ERROR);
|
||||
return_ACPI_STATUS (AE_AML_BAD_RESOURCE_VALUE);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -490,7 +490,7 @@ AcpiRsStartDependFnsResource (
|
||||
|
||||
if (3 == OutputStruct->Data.StartDpf.PerformanceRobustness)
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_ERROR);
|
||||
return_ACPI_STATUS (AE_AML_BAD_RESOURCE_VALUE);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -505,7 +505,7 @@ AcpiRsStartDependFnsResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
@ -543,7 +543,7 @@ AcpiRsEndDependFnsResource (
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize)
|
||||
{
|
||||
ACPI_RESOURCE *OutputStruct = (ACPI_RESOURCE *) *OutputBuffer;
|
||||
ACPI_RESOURCE *OutputStruct = (void *) *OutputBuffer;
|
||||
ACPI_SIZE StructSize = ACPI_RESOURCE_LENGTH;
|
||||
|
||||
|
||||
@ -563,7 +563,7 @@ AcpiRsEndDependFnsResource (
|
||||
/*
|
||||
* Set the Length parameter
|
||||
*/
|
||||
OutputStruct->Length = StructSize;
|
||||
OutputStruct->Length = (UINT32) StructSize;
|
||||
|
||||
/*
|
||||
* Return the final size of the structure
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsutils - Utilities for the resource manager
|
||||
* $Revision: 1.28 $
|
||||
* $Revision: 1.35 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -149,7 +149,7 @@ AcpiRsGetPrtMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *RetObj;
|
||||
ACPI_OPERAND_OBJECT *ObjDesc;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
@ -159,46 +159,23 @@ AcpiRsGetPrtMethodData (
|
||||
/* Parameters guaranteed valid by caller */
|
||||
|
||||
/*
|
||||
* Execute the method, no parameters
|
||||
* Execute the method, no parameters
|
||||
*/
|
||||
Status = AcpiNsEvaluateRelative (Handle, "_PRT", NULL, &RetObj);
|
||||
Status = AcpiUtEvaluateObject (Handle, "_PRT", ACPI_BTYPE_PACKAGE, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
if (!RetObj)
|
||||
{
|
||||
/* Return object is required */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _PRT\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The return object will be a package, so check the parameters. If the
|
||||
* return object is not a package, then the underlying AML code is corrupt
|
||||
* or improperly written.
|
||||
*/
|
||||
if (ACPI_TYPE_PACKAGE != RetObj->Common.Type)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "_PRT did not return a Package, returned %s\n",
|
||||
AcpiUtGetTypeName (RetObj->Common.Type)));
|
||||
Status = AE_AML_OPERAND_TYPE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a resource linked list from the byte stream buffer that comes
|
||||
* Create a resource linked list from the byte stream buffer that comes
|
||||
* back from the _CRS method execution.
|
||||
*/
|
||||
Status = AcpiRsCreatePciRoutingTable (RetObj, RetBuffer);
|
||||
Status = AcpiRsCreatePciRoutingTable (ObjDesc, RetBuffer);
|
||||
|
||||
/* On exit, we must delete the object returned by EvaluateObject */
|
||||
|
||||
Cleanup:
|
||||
|
||||
AcpiUtRemoveReference (RetObj);
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -226,7 +203,7 @@ AcpiRsGetCrsMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *RetObj;
|
||||
ACPI_OPERAND_OBJECT *ObjDesc;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
@ -238,46 +215,22 @@ AcpiRsGetCrsMethodData (
|
||||
/*
|
||||
* Execute the method, no parameters
|
||||
*/
|
||||
Status = AcpiNsEvaluateRelative (Handle, "_CRS", NULL, &RetObj);
|
||||
Status = AcpiUtEvaluateObject (Handle, "_CRS", ACPI_BTYPE_BUFFER, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
if (!RetObj)
|
||||
{
|
||||
/* Return object is required */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _CRS\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The return object will be a buffer, but check the
|
||||
* parameters. If the return object is not a buffer,
|
||||
* then the underlying AML code is corrupt or improperly
|
||||
* written.
|
||||
*/
|
||||
if (ACPI_TYPE_BUFFER != RetObj->Common.Type)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "_CRS did not return a Buffer, returned %s\n",
|
||||
AcpiUtGetTypeName (RetObj->Common.Type)));
|
||||
Status = AE_AML_OPERAND_TYPE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make the call to create a resource linked list from the
|
||||
* byte stream buffer that comes back from the _CRS method
|
||||
* execution.
|
||||
*/
|
||||
Status = AcpiRsCreateResourceList (RetObj, RetBuffer);
|
||||
Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
|
||||
|
||||
/* On exit, we must delete the object returned by evaluateObject */
|
||||
|
||||
Cleanup:
|
||||
|
||||
AcpiUtRemoveReference (RetObj);
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -305,7 +258,7 @@ AcpiRsGetPrsMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *RetObj;
|
||||
ACPI_OPERAND_OBJECT *ObjDesc;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
@ -317,46 +270,22 @@ AcpiRsGetPrsMethodData (
|
||||
/*
|
||||
* Execute the method, no parameters
|
||||
*/
|
||||
Status = AcpiNsEvaluateRelative (Handle, "_PRS", NULL, &RetObj);
|
||||
Status = AcpiUtEvaluateObject (Handle, "_PRS", ACPI_BTYPE_BUFFER, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
if (!RetObj)
|
||||
{
|
||||
/* Return object is required */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _PRS\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
/*
|
||||
* The return object will be a buffer, but check the
|
||||
* parameters. If the return object is not a buffer,
|
||||
* then the underlying AML code is corrupt or improperly
|
||||
* written..
|
||||
*/
|
||||
if (ACPI_TYPE_BUFFER != RetObj->Common.Type)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "_PRS did not return a Buffer, returned %s\n",
|
||||
AcpiUtGetTypeName (RetObj->Common.Type)));
|
||||
Status = AE_AML_OPERAND_TYPE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make the call to create a resource linked list from the
|
||||
* byte stream buffer that comes back from the _CRS method
|
||||
* execution.
|
||||
*/
|
||||
Status = AcpiRsCreateResourceList (RetObj, RetBuffer);
|
||||
Status = AcpiRsCreateResourceList (ObjDesc, RetBuffer);
|
||||
|
||||
/* On exit, we must delete the object returned by evaluateObject */
|
||||
|
||||
Cleanup:
|
||||
|
||||
AcpiUtRemoveReference (RetObj);
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -421,8 +350,9 @@ AcpiRsSetSrsMethodData (
|
||||
/*
|
||||
* Set up the parameter object
|
||||
*/
|
||||
Params[0]->Buffer.Length = Buffer.Length;
|
||||
Params[0]->Buffer.Length = (UINT32) Buffer.Length;
|
||||
Params[0]->Buffer.Pointer = Buffer.Pointer;
|
||||
Params[0]->Common.Flags = AOPOBJ_DATA_VALID;
|
||||
Params[1] = NULL;
|
||||
|
||||
/*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: rsxface - Public interfaces to the resource manager
|
||||
* $Revision: 1.18 $
|
||||
* $Revision: 1.20 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,8 +118,6 @@
|
||||
#define __RSXFACE_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acresrc.h"
|
||||
|
||||
#define _COMPONENT ACPI_RESOURCES
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbinstal - ACPI table installation and removal
|
||||
* $Revision: 1.53 $
|
||||
* $Revision: 1.67 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -141,10 +141,11 @@
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbMatchSignature (
|
||||
NATIVE_CHAR *Signature,
|
||||
ACPI_TABLE_DESC *TableInfo)
|
||||
char *Signature,
|
||||
ACPI_TABLE_DESC *TableInfo,
|
||||
UINT8 SearchType)
|
||||
{
|
||||
NATIVE_UINT i;
|
||||
ACPI_NATIVE_UINT i;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("TbMatchSignature");
|
||||
@ -155,7 +156,12 @@ AcpiTbMatchSignature (
|
||||
*/
|
||||
for (i = 0; i < NUM_ACPI_TABLES; i++)
|
||||
{
|
||||
if (!STRNCMP (Signature, AcpiGbl_AcpiTableData[i].Signature,
|
||||
if ((AcpiGbl_AcpiTableData[i].Flags & ACPI_TABLE_TYPE_MASK) != SearchType)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!ACPI_STRNCMP (Signature, AcpiGbl_AcpiTableData[i].Signature,
|
||||
AcpiGbl_AcpiTableData[i].SigLength))
|
||||
{
|
||||
/* Found a signature match, return index if requested */
|
||||
@ -165,13 +171,18 @@ AcpiTbMatchSignature (
|
||||
TableInfo->Type = (UINT8) i;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "ACPI Signature match %4.4s\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Table [%4.4s] matched and is a required ACPI table\n",
|
||||
(char *) AcpiGbl_AcpiTableData[i].Signature));
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Table [%4.4s] is not a required ACPI table - ignored\n",
|
||||
(char *) Signature));
|
||||
|
||||
return_ACPI_STATUS (AE_TABLE_NOT_SUPPORTED);
|
||||
}
|
||||
|
||||
@ -180,8 +191,7 @@ AcpiTbMatchSignature (
|
||||
*
|
||||
* FUNCTION: AcpiTbInstallTable
|
||||
*
|
||||
* PARAMETERS: TablePtr - Input buffer pointer, optional
|
||||
* TableInfo - Return value from AcpiTbGetTable
|
||||
* PARAMETERS: TableInfo - Return value from AcpiTbGetTableBody
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@ -193,7 +203,6 @@ AcpiTbMatchSignature (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbInstallTable (
|
||||
ACPI_TABLE_HEADER *TablePtr,
|
||||
ACPI_TABLE_DESC *TableInfo)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
@ -201,28 +210,29 @@ AcpiTbInstallTable (
|
||||
ACPI_FUNCTION_TRACE ("TbInstallTable");
|
||||
|
||||
|
||||
/*
|
||||
* Check the table signature and make sure it is recognized
|
||||
* Also checks the header checksum
|
||||
*/
|
||||
Status = AcpiTbRecognizeTable (TablePtr, TableInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Lock tables while installing */
|
||||
|
||||
AcpiUtAcquireMutex (ACPI_MTX_TABLES);
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_TABLES);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Could not acquire table mutex for [%4.4s], %s\n",
|
||||
TableInfo->Pointer->Signature, AcpiFormatException (Status)));
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Install the table into the global data structure */
|
||||
|
||||
Status = AcpiTbInitTableDescriptor (TableInfo->Type, TableInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("Could not install ACPI table [%s], %s\n",
|
||||
TableInfo->Pointer->Signature, AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s located at %p\n",
|
||||
AcpiGbl_AcpiTableData[TableInfo->Type].Name, TableInfo->Pointer));
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_TABLES);
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -231,8 +241,7 @@ AcpiTbInstallTable (
|
||||
*
|
||||
* FUNCTION: AcpiTbRecognizeTable
|
||||
*
|
||||
* PARAMETERS: TablePtr - Input buffer pointer, optional
|
||||
* TableInfo - Return value from AcpiTbGetTable
|
||||
* PARAMETERS: TableInfo - Return value from AcpiTbGetTableBody
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@ -250,8 +259,8 @@ AcpiTbInstallTable (
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbRecognizeTable (
|
||||
ACPI_TABLE_HEADER *TablePtr,
|
||||
ACPI_TABLE_DESC *TableInfo)
|
||||
ACPI_TABLE_DESC *TableInfo,
|
||||
UINT8 SearchType)
|
||||
{
|
||||
ACPI_TABLE_HEADER *TableHeader;
|
||||
ACPI_STATUS Status;
|
||||
@ -272,34 +281,26 @@ AcpiTbRecognizeTable (
|
||||
* We only "recognize" a limited number of ACPI tables -- namely, the
|
||||
* ones that are used by the subsystem (DSDT, FADT, etc.)
|
||||
*
|
||||
* An AE_NOT_FOUND means that the table was not recognized.
|
||||
* An AE_TABLE_NOT_SUPPORTED means that the table was not recognized.
|
||||
* This can be any one of many valid ACPI tables, it just isn't one of
|
||||
* the tables that is consumed by the core subsystem
|
||||
*/
|
||||
Status = AcpiTbMatchSignature (TableHeader->Signature, TableInfo);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
Status = AcpiTbMatchSignature (TableHeader->Signature, TableInfo, SearchType);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* Return the table type and length via the info struct */
|
||||
|
||||
TableInfo->Length = TableHeader->Length;
|
||||
|
||||
/*
|
||||
* Validate checksum for _most_ tables,
|
||||
* even the ones whose signature we don't recognize
|
||||
*/
|
||||
if (TableInfo->Type != ACPI_TABLE_FACS)
|
||||
{
|
||||
Status = AcpiTbVerifyTableChecksum (TableHeader);
|
||||
if (ACPI_FAILURE (Status) &&
|
||||
(!ACPI_CHECKSUM_ABORT))
|
||||
{
|
||||
/* Ignore the error if configuration says so */
|
||||
|
||||
Status = AE_OK;
|
||||
}
|
||||
}
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiTbValidateTableHeader (TableHeader);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Return the table type and length via the info struct */
|
||||
|
||||
TableInfo->Length = (ACPI_SIZE) TableHeader->Length;
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -393,7 +394,6 @@ AcpiTbInitTableDescriptor (
|
||||
|
||||
TableDesc->Type = TableInfo->Type;
|
||||
TableDesc->Pointer = TableInfo->Pointer;
|
||||
TableDesc->BasePointer = TableInfo->BasePointer;
|
||||
TableDesc->Length = TableInfo->Length;
|
||||
TableDesc->Allocation = TableInfo->Allocation;
|
||||
TableDesc->AmlStart = (UINT8 *) (TableDesc->Pointer + 1),
|
||||
@ -475,11 +475,10 @@ AcpiTbDeleteAcpiTable (
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
AcpiUtAcquireMutex (ACPI_MTX_TABLES);
|
||||
|
||||
/* Free the table */
|
||||
|
||||
AcpiTbFreeAcpiTablesOfType (&AcpiGbl_AcpiTables[Type]);
|
||||
if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_TABLES)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Clear the appropriate "typed" global table pointer */
|
||||
|
||||
@ -511,7 +510,11 @@ AcpiTbDeleteAcpiTable (
|
||||
break;
|
||||
}
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_TABLES);
|
||||
/* Free the table */
|
||||
|
||||
AcpiTbFreeAcpiTablesOfType (&AcpiGbl_AcpiTables[Type]);
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
@ -593,12 +596,15 @@ AcpiTbDeleteSingleTable (
|
||||
|
||||
case ACPI_MEM_ALLOCATED:
|
||||
|
||||
ACPI_MEM_FREE (TableDesc->BasePointer);
|
||||
ACPI_MEM_FREE (TableDesc->Pointer);
|
||||
break;
|
||||
|
||||
case ACPI_MEM_MAPPED:
|
||||
|
||||
AcpiOsUnmapMemory (TableDesc->BasePointer, TableDesc->Length);
|
||||
AcpiOsUnmapMemory (TableDesc->Pointer, TableDesc->Length);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -611,7 +617,7 @@ AcpiTbDeleteSingleTable (
|
||||
*
|
||||
* PARAMETERS: TableInfo - A table info struct
|
||||
*
|
||||
* RETURN: None.
|
||||
* RETURN: Pointer to the next table in the list (of same type)
|
||||
*
|
||||
* DESCRIPTION: Free the memory associated with an internal ACPI table that
|
||||
* is either installed or has never been installed.
|
||||
@ -626,7 +632,7 @@ AcpiTbUninstallTable (
|
||||
ACPI_TABLE_DESC *NextDesc;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("TbDeleteSingleTable", TableDesc);
|
||||
ACPI_FUNCTION_TRACE_PTR ("AcpiTbUninstallTable", TableDesc);
|
||||
|
||||
|
||||
if (!TableDesc)
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbutils - Table manipulation utilities
|
||||
* $Revision: 1.48 $
|
||||
* $Revision: 1.58 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,7 +118,6 @@
|
||||
|
||||
#include "acpi.h"
|
||||
#include "actables.h"
|
||||
#include "acinterp.h"
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_TABLES
|
||||
@ -166,7 +165,6 @@ AcpiTbHandleToObject (
|
||||
} while (ListHead != &AcpiGbl_AcpiTables[i]);
|
||||
}
|
||||
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "TableId=%X does not exist\n", TableId));
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
@ -188,7 +186,7 @@ AcpiTbHandleToObject (
|
||||
* name
|
||||
* 3) Table must be readable for length specified in the header
|
||||
* 4) Table checksum must be valid (with the exception of the FACS
|
||||
* which has no checksum for some odd reason)
|
||||
* which has no checksum because it contains variable fields)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -211,22 +209,21 @@ AcpiTbValidateTableHeader (
|
||||
return (AE_BAD_ADDRESS);
|
||||
}
|
||||
|
||||
|
||||
/* Ensure that the signature is 4 ASCII characters */
|
||||
|
||||
ACPI_MOVE_UNALIGNED32_TO_32 (&Signature, &TableHeader->Signature);
|
||||
ACPI_MOVE_UNALIGNED32_TO_32 (&Signature, TableHeader->Signature);
|
||||
if (!AcpiUtValidAcpiName (Signature))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Table signature at %p [%p] has invalid characters\n",
|
||||
TableHeader, &Signature));
|
||||
|
||||
ACPI_REPORT_WARNING (("Invalid table signature %4.4s found\n", (char *) &Signature));
|
||||
ACPI_REPORT_WARNING (("Invalid table signature found: [%4.4s]\n",
|
||||
(char *) &Signature));
|
||||
ACPI_DUMP_BUFFER (TableHeader, sizeof (ACPI_TABLE_HEADER));
|
||||
return (AE_BAD_SIGNATURE);
|
||||
}
|
||||
|
||||
|
||||
/* Validate the table length */
|
||||
|
||||
if (TableHeader->Length < sizeof (ACPI_TABLE_HEADER))
|
||||
@ -235,7 +232,8 @@ AcpiTbValidateTableHeader (
|
||||
"Invalid length in table header %p name %4.4s\n",
|
||||
TableHeader, (char *) &Signature));
|
||||
|
||||
ACPI_REPORT_WARNING (("Invalid table header length (0x%X) found\n", TableHeader->Length));
|
||||
ACPI_REPORT_WARNING (("Invalid table header length (0x%X) found\n",
|
||||
(UINT32) TableHeader->Length));
|
||||
ACPI_DUMP_BUFFER (TableHeader, sizeof (ACPI_TABLE_HEADER));
|
||||
return (AE_BAD_HEADER);
|
||||
}
|
||||
@ -244,91 +242,6 @@ AcpiTbValidateTableHeader (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiTbMapAcpiTable
|
||||
*
|
||||
* PARAMETERS: PhysicalAddress - Physical address of table to map
|
||||
* *Size - Size of the table. If zero, the size
|
||||
* from the table header is used.
|
||||
* Actual size is returned here.
|
||||
* **LogicalAddress - Logical address of mapped table
|
||||
*
|
||||
* RETURN: Logical address of the mapped table.
|
||||
*
|
||||
* DESCRIPTION: Maps the physical address of table into a logical address
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbMapAcpiTable (
|
||||
ACPI_PHYSICAL_ADDRESS PhysicalAddress,
|
||||
UINT32 *Size,
|
||||
ACPI_TABLE_HEADER **LogicalAddress)
|
||||
{
|
||||
ACPI_TABLE_HEADER *Table;
|
||||
UINT32 TableSize = *Size;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("TbMapAcpiTable");
|
||||
|
||||
|
||||
/* If size is zero, look at the table header to get the actual size */
|
||||
|
||||
if ((*Size) == 0)
|
||||
{
|
||||
/* Get the table header so we can extract the table length */
|
||||
|
||||
Status = AcpiOsMapMemory (PhysicalAddress, sizeof (ACPI_TABLE_HEADER),
|
||||
(void **) &Table);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* Extract the full table length before we delete the mapping */
|
||||
|
||||
TableSize = Table->Length;
|
||||
|
||||
/*
|
||||
* Validate the header and delete the mapping.
|
||||
* We will create a mapping for the full table below.
|
||||
*/
|
||||
Status = AcpiTbValidateTableHeader (Table);
|
||||
|
||||
/* Always unmap the memory for the header */
|
||||
|
||||
AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER));
|
||||
|
||||
/* Exit if header invalid */
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Map the physical memory for the correct length */
|
||||
|
||||
Status = AcpiOsMapMemory (PhysicalAddress, TableSize, (void **) &Table);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Mapped memory for ACPI table, length=%d(%X) at %p\n",
|
||||
TableSize, TableSize, Table));
|
||||
|
||||
*Size = TableSize;
|
||||
*LogicalAddress = Table;
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiTbVerifyTableChecksum
|
||||
@ -361,13 +274,11 @@ AcpiTbVerifyTableChecksum (
|
||||
|
||||
if (Checksum)
|
||||
{
|
||||
ACPI_REPORT_WARNING (("Invalid checksum (%X) in table %4.4s\n",
|
||||
Checksum, (char *) &TableHeader->Signature));
|
||||
ACPI_REPORT_WARNING (("Invalid checksum in table [%4.4s] (%02X, sum %02X is not zero)\n",
|
||||
TableHeader->Signature, (UINT32) TableHeader->Checksum, (UINT32) Checksum));
|
||||
|
||||
Status = AE_BAD_CHECKSUM;
|
||||
}
|
||||
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -387,7 +298,7 @@ AcpiTbVerifyTableChecksum (
|
||||
|
||||
UINT8
|
||||
AcpiTbChecksum (
|
||||
const void *Buffer,
|
||||
void *Buffer,
|
||||
UINT32 Length)
|
||||
{
|
||||
const UINT8 *limit;
|
||||
@ -406,7 +317,6 @@ AcpiTbChecksum (
|
||||
sum = (UINT8) (sum + *rover);
|
||||
}
|
||||
}
|
||||
|
||||
return (sum);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
* Module Name: tbxface - Public interfaces to the ACPI subsystem
|
||||
* ACPI table oriented interfaces
|
||||
* $Revision: 1.50 $
|
||||
* $Revision: 1.61 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -119,7 +119,6 @@
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acinterp.h"
|
||||
#include "actables.h"
|
||||
|
||||
|
||||
@ -143,9 +142,8 @@
|
||||
ACPI_STATUS
|
||||
AcpiLoadTables (void)
|
||||
{
|
||||
ACPI_PHYSICAL_ADDRESS RsdpPhysicalAddress;
|
||||
ACPI_POINTER RsdpAddress;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 NumberOfTables = 0;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiLoadTables");
|
||||
@ -154,7 +152,7 @@ AcpiLoadTables (void)
|
||||
/* Get the RSDP */
|
||||
|
||||
Status = AcpiOsGetRootPointer (ACPI_LOGICAL_ADDRESSING,
|
||||
&RsdpPhysicalAddress);
|
||||
&RsdpAddress);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("AcpiLoadTables: Could not get RSDP, %s\n",
|
||||
@ -164,7 +162,9 @@ AcpiLoadTables (void)
|
||||
|
||||
/* Map and validate the RSDP */
|
||||
|
||||
Status = AcpiTbVerifyRsdp (RsdpPhysicalAddress);
|
||||
AcpiGbl_TableFlags = RsdpAddress.PointerType;
|
||||
|
||||
Status = AcpiTbVerifyRsdp (&RsdpAddress);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("AcpiLoadTables: RSDP Failed validation: %s\n",
|
||||
@ -174,7 +174,7 @@ AcpiLoadTables (void)
|
||||
|
||||
/* Get the RSDT via the RSDP */
|
||||
|
||||
Status = AcpiTbGetTableRsdt (&NumberOfTables);
|
||||
Status = AcpiTbGetTableRsdt ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("AcpiLoadTables: Could not load RSDT: %s\n",
|
||||
@ -182,9 +182,9 @@ AcpiLoadTables (void)
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
/* Now get the rest of the tables */
|
||||
/* Now get the tables needed by this subsystem (FADT, DSDT, etc.) */
|
||||
|
||||
Status = AcpiTbGetAllTables (NumberOfTables, NULL);
|
||||
Status = AcpiTbGetRequiredTables ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_REPORT_ERROR (("AcpiLoadTables: Error getting required tables (DSDT/FADT/FACS): %s\n",
|
||||
@ -192,7 +192,7 @@ AcpiLoadTables (void)
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_OK, "ACPI Tables successfully loaded\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI Tables successfully acquired\n"));
|
||||
|
||||
|
||||
/* Load the namespace from the tables */
|
||||
@ -238,6 +238,7 @@ AcpiLoadTable (
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_TABLE_DESC TableInfo;
|
||||
ACPI_POINTER Address;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiLoadTable");
|
||||
@ -250,7 +251,10 @@ AcpiLoadTable (
|
||||
|
||||
/* Copy the table to a local buffer */
|
||||
|
||||
Status = AcpiTbGetTable (0, TablePtr, &TableInfo);
|
||||
Address.PointerType = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING;
|
||||
Address.Pointer.Logical = TablePtr;
|
||||
|
||||
Status = AcpiTbGetTableBody (&Address, TablePtr, &TableInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -258,10 +262,10 @@ AcpiLoadTable (
|
||||
|
||||
/* Install the new table into the local data structures */
|
||||
|
||||
Status = AcpiTbInstallTable (NULL, &TableInfo);
|
||||
Status = AcpiTbInstallTable (&TableInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* Free table allocated by AcpiTbGetTable */
|
||||
/* Free table allocated by AcpiTbGetTableBody */
|
||||
|
||||
AcpiTbDeleteSingleTable (&TableInfo);
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -292,7 +296,7 @@ AcpiLoadTable (
|
||||
{
|
||||
/* Uninstall table and free the buffer */
|
||||
|
||||
AcpiTbUninstallTable (TableInfo.InstalledDesc);
|
||||
(void) AcpiTbUninstallTable (TableInfo.InstalledDesc);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -422,7 +426,7 @@ AcpiGetTableHeader (
|
||||
/*
|
||||
* Copy the header to the caller's buffer
|
||||
*/
|
||||
MEMCPY ((void *) OutTableHeader, (void *) TblPtr,
|
||||
ACPI_MEMCPY ((void *) OutTableHeader, (void *) TblPtr,
|
||||
sizeof (ACPI_TABLE_HEADER));
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -460,7 +464,7 @@ AcpiGetTable (
|
||||
{
|
||||
ACPI_TABLE_HEADER *TblPtr;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 TableLength;
|
||||
ACPI_SIZE TableLength;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiGetTable");
|
||||
@ -517,7 +521,7 @@ AcpiGetTable (
|
||||
}
|
||||
else
|
||||
{
|
||||
TableLength = TblPtr->Length;
|
||||
TableLength = (ACPI_SIZE) TblPtr->Length;
|
||||
}
|
||||
|
||||
/* Validate/Allocate/Clear caller buffer */
|
||||
@ -530,7 +534,7 @@ AcpiGetTable (
|
||||
|
||||
/* Copy the table to the buffer */
|
||||
|
||||
MEMCPY ((void *) RetBuffer->Pointer, (void *) TblPtr, TableLength);
|
||||
ACPI_MEMCPY ((void *) RetBuffer->Pointer, (void *) TblPtr, TableLength);
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: tbxfroot - Find the root ACPI table (RSDT)
|
||||
* $Revision: 1.57 $
|
||||
* $Revision: 1.68 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -141,9 +141,9 @@
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbFindTable (
|
||||
NATIVE_CHAR *Signature,
|
||||
NATIVE_CHAR *OemId,
|
||||
NATIVE_CHAR *OemTableId,
|
||||
char *Signature,
|
||||
char *OemId,
|
||||
char *OemTableId,
|
||||
ACPI_TABLE_HEADER **TablePtr)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
@ -155,9 +155,9 @@ AcpiTbFindTable (
|
||||
|
||||
/* Validate string lengths */
|
||||
|
||||
if ((STRLEN (Signature) > 4) ||
|
||||
(STRLEN (OemId) > 6) ||
|
||||
(STRLEN (OemTableId) > 8))
|
||||
if ((ACPI_STRLEN (Signature) > ACPI_NAME_SIZE) ||
|
||||
(ACPI_STRLEN (OemId) > sizeof (Table->OemId)) ||
|
||||
(ACPI_STRLEN (OemTableId) > sizeof (Table->OemTableId)))
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_STRING_LIMIT);
|
||||
}
|
||||
@ -173,8 +173,8 @@ AcpiTbFindTable (
|
||||
|
||||
/* Check OemId and OemTableId */
|
||||
|
||||
if ((OemId[0] && STRCMP (OemId, Table->OemId)) ||
|
||||
(OemTableId[0] && STRCMP (OemTableId, Table->OemTableId)))
|
||||
if ((OemId[0] && ACPI_STRCMP (OemId, Table->OemId)) ||
|
||||
(OemTableId[0] && ACPI_STRCMP (OemTableId, Table->OemTableId)))
|
||||
{
|
||||
return_ACPI_STATUS (AE_AML_NAME_NOT_FOUND);
|
||||
}
|
||||
@ -191,7 +191,7 @@ AcpiTbFindTable (
|
||||
* PARAMETERS: Signature - Any ACPI table signature
|
||||
* Instance - the non zero instance of the table, allows
|
||||
* support for multiple tables of the same type
|
||||
* Flags - 0: Physical/Virtual support
|
||||
* Flags - Physical/Virtual support
|
||||
* RetBuffer - pointer to a structure containing a buffer to
|
||||
* receive the table
|
||||
*
|
||||
@ -213,12 +213,12 @@ AcpiGetFirmwareTable (
|
||||
UINT32 Flags,
|
||||
ACPI_TABLE_HEADER **TablePointer)
|
||||
{
|
||||
ACPI_PHYSICAL_ADDRESS PhysicalAddress;
|
||||
ACPI_TABLE_HEADER *RsdtPtr = NULL;
|
||||
ACPI_TABLE_HEADER *TablePtr;
|
||||
ACPI_POINTER RsdpAddress;
|
||||
ACPI_POINTER Address;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 RsdtSize = 0;
|
||||
UINT32 TableSize;
|
||||
ACPI_TABLE_HEADER Header;
|
||||
ACPI_TABLE_DESC TableInfo;
|
||||
ACPI_TABLE_DESC RsdtInfo;
|
||||
UINT32 TableCount;
|
||||
UINT32 i;
|
||||
UINT32 j;
|
||||
@ -242,11 +242,13 @@ AcpiGetFirmwareTable (
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
RsdtInfo.Pointer = NULL;
|
||||
|
||||
if (!AcpiGbl_RSDP)
|
||||
{
|
||||
/* Get the RSDP */
|
||||
|
||||
Status = AcpiOsGetRootPointer (Flags, &PhysicalAddress);
|
||||
Status = AcpiOsGetRootPointer (Flags, &RsdpAddress);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "RSDP not found\n"));
|
||||
@ -257,7 +259,7 @@ AcpiGetFirmwareTable (
|
||||
|
||||
if ((Flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING)
|
||||
{
|
||||
Status = AcpiOsMapMemory (PhysicalAddress, sizeof (RSDP_DESCRIPTOR),
|
||||
Status = AcpiOsMapMemory (RsdpAddress.Pointer.Physical, sizeof (RSDP_DESCRIPTOR),
|
||||
(void **) &AcpiGbl_RSDP);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -266,45 +268,48 @@ AcpiGetFirmwareTable (
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiGbl_RSDP = ACPI_PHYSADDR_TO_PTR (PhysicalAddress);
|
||||
AcpiGbl_RSDP = RsdpAddress.Pointer.Logical;
|
||||
}
|
||||
|
||||
/*
|
||||
* The signature and checksum must both be correct
|
||||
*/
|
||||
if (STRNCMP ((NATIVE_CHAR *) AcpiGbl_RSDP, RSDP_SIG, sizeof (RSDP_SIG)-1) != 0)
|
||||
if (ACPI_STRNCMP ((char *) AcpiGbl_RSDP, RSDP_SIG, sizeof (RSDP_SIG)-1) != 0)
|
||||
{
|
||||
/* Nope, BAD Signature */
|
||||
|
||||
Status = AE_BAD_SIGNATURE;
|
||||
goto Cleanup;
|
||||
return_ACPI_STATUS (AE_BAD_SIGNATURE);
|
||||
}
|
||||
|
||||
if (AcpiTbChecksum (AcpiGbl_RSDP, ACPI_RSDP_CHECKSUM_LENGTH) != 0)
|
||||
{
|
||||
/* Nope, BAD Checksum */
|
||||
|
||||
Status = AE_BAD_CHECKSUM;
|
||||
goto Cleanup;
|
||||
return_ACPI_STATUS (AE_BAD_CHECKSUM);
|
||||
}
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"RSDP located at %p, RSDT physical=%8.8X%8.8X \n",
|
||||
AcpiGbl_RSDP,
|
||||
ACPI_HIDWORD (AcpiGbl_RSDP->RsdtPhysicalAddress),
|
||||
ACPI_LODWORD (AcpiGbl_RSDP->RsdtPhysicalAddress)));
|
||||
|
||||
/* Get the RSDT and validate it */
|
||||
|
||||
PhysicalAddress = AcpiTbGetRsdtAddress ();
|
||||
Status = AcpiTbGetTablePointer (PhysicalAddress, Flags, &RsdtSize, &RsdtPtr);
|
||||
AcpiTbGetRsdtAddress (&Address);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"RSDP located at %p, RSDT physical=%8.8X%8.8X \n",
|
||||
AcpiGbl_RSDP,
|
||||
ACPI_HIDWORD (Address.Pointer.Value),
|
||||
ACPI_LODWORD (Address.Pointer.Value)));
|
||||
|
||||
/* Insert ProcessorMode flags */
|
||||
|
||||
Address.PointerType |= Flags;
|
||||
|
||||
Status = AcpiTbGetTable (&Address, &RsdtInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
Status = AcpiTbValidateRsdt (RsdtPtr);
|
||||
Status = AcpiTbValidateRsdt (RsdtInfo.Pointer);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto Cleanup;
|
||||
@ -312,8 +317,9 @@ AcpiGetFirmwareTable (
|
||||
|
||||
/* Get the number of table pointers within the RSDT */
|
||||
|
||||
TableCount = AcpiTbGetTableCount (AcpiGbl_RSDP, RsdtPtr);
|
||||
TableCount = AcpiTbGetTableCount (AcpiGbl_RSDP, RsdtInfo.Pointer);
|
||||
|
||||
Address.PointerType = AcpiGbl_TableFlags | Flags;
|
||||
|
||||
/*
|
||||
* Search the RSDT/XSDT for the correct instance of the
|
||||
@ -321,22 +327,21 @@ AcpiGetFirmwareTable (
|
||||
*/
|
||||
for (i = 0, j = 0; i < TableCount; i++)
|
||||
{
|
||||
/* Get the next table pointer */
|
||||
/* Get the next table pointer, handle RSDT vs. XSDT */
|
||||
|
||||
if (AcpiGbl_RSDP->Revision < 2)
|
||||
{
|
||||
PhysicalAddress = (ACPI_PHYSICAL_ADDRESS)
|
||||
((RSDT_DESCRIPTOR *) RsdtPtr)->TableOffsetEntry[i];
|
||||
Address.Pointer.Value = ((RSDT_DESCRIPTOR *) RsdtInfo.Pointer)->TableOffsetEntry[i];
|
||||
}
|
||||
else
|
||||
{
|
||||
PhysicalAddress = (ACPI_PHYSICAL_ADDRESS)
|
||||
ACPI_GET_ADDRESS (((XSDT_DESCRIPTOR *) RsdtPtr)->TableOffsetEntry[i]);
|
||||
Address.Pointer.Value = ACPI_GET_ADDRESS (
|
||||
((XSDT_DESCRIPTOR *) RsdtInfo.Pointer)->TableOffsetEntry[i]);
|
||||
}
|
||||
|
||||
/* Get addressibility if necessary */
|
||||
/* Get the table header */
|
||||
|
||||
Status = AcpiTbGetTablePointer (PhysicalAddress, Flags, &TableSize, &TablePtr);
|
||||
Status = AcpiTbGetTableHeader (&Address, &Header);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto Cleanup;
|
||||
@ -344,27 +349,25 @@ AcpiGetFirmwareTable (
|
||||
|
||||
/* Compare table signatures and table instance */
|
||||
|
||||
if (!STRNCMP ((char *) TablePtr, Signature, STRLEN (Signature)))
|
||||
if (!ACPI_STRNCMP (Header.Signature, Signature, ACPI_NAME_SIZE))
|
||||
{
|
||||
/* An instance of the table was found */
|
||||
|
||||
j++;
|
||||
if (j >= Instance)
|
||||
{
|
||||
/* Found the correct instance */
|
||||
/* Found the correct instance, get the entire table */
|
||||
|
||||
*TablePointer = TablePtr;
|
||||
Status = AcpiTbGetTableBody (&Address, &Header, &TableInfo);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
*TablePointer = TableInfo.Pointer;
|
||||
goto Cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
/* Delete table mapping if using virtual addressing */
|
||||
|
||||
if ((TableSize) &&
|
||||
((Flags & ACPI_MEMORY_MODE) == ACPI_LOGICAL_ADDRESSING))
|
||||
{
|
||||
AcpiOsUnmapMemory (TablePtr, TableSize);
|
||||
}
|
||||
}
|
||||
|
||||
/* Did not find the table */
|
||||
@ -373,24 +376,21 @@ AcpiGetFirmwareTable (
|
||||
|
||||
|
||||
Cleanup:
|
||||
if (RsdtSize)
|
||||
{
|
||||
AcpiOsUnmapMemory (RsdtPtr, RsdtSize);
|
||||
}
|
||||
AcpiOsUnmapMemory (RsdtInfo.Pointer, (ACPI_SIZE) RsdtInfo.Pointer->Length);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/* TBD: Move to a new file */
|
||||
|
||||
#ifndef _IA16
|
||||
#if ACPI_MACHINE_WIDTH != 16
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiFindRootPointer
|
||||
*
|
||||
* PARAMETERS: **RsdpPhysicalAddress - Where to place the RSDP address
|
||||
* Flags - Logical/Physical addressing
|
||||
* PARAMETERS: **RsdpAddress - Where to place the RSDP address
|
||||
* Flags - Logical/Physical addressing
|
||||
*
|
||||
* RETURN: Status, Physical address of the RSDP
|
||||
*
|
||||
@ -401,7 +401,7 @@ Cleanup:
|
||||
ACPI_STATUS
|
||||
AcpiFindRootPointer (
|
||||
UINT32 Flags,
|
||||
ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress)
|
||||
ACPI_POINTER *RsdpAddress)
|
||||
{
|
||||
ACPI_TABLE_DESC TableInfo;
|
||||
ACPI_STATUS Status;
|
||||
@ -415,11 +415,13 @@ AcpiFindRootPointer (
|
||||
Status = AcpiTbFindRsdp (&TableInfo, Flags);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "RSDP structure not found\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "RSDP structure not found, %s Flags=%X\n",
|
||||
AcpiFormatException (Status), Flags));
|
||||
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
|
||||
}
|
||||
|
||||
*RsdpPhysicalAddress = TableInfo.PhysicalAddress;
|
||||
RsdpAddress->PointerType = ACPI_PHYSICAL_POINTER;
|
||||
RsdpAddress->Pointer.Physical = TableInfo.PhysicalAddress;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -453,12 +455,12 @@ AcpiTbScanMemoryForRsdp (
|
||||
|
||||
for (Offset = 0, MemRover = StartAddress;
|
||||
Offset < Length;
|
||||
Offset += RSDP_SCAN_STEP, MemRover += RSDP_SCAN_STEP)
|
||||
Offset += ACPI_RSDP_SCAN_STEP, MemRover += ACPI_RSDP_SCAN_STEP)
|
||||
{
|
||||
|
||||
/* The signature and checksum must both be correct */
|
||||
|
||||
if (STRNCMP ((NATIVE_CHAR *) MemRover,
|
||||
if (ACPI_STRNCMP ((char *) MemRover,
|
||||
RSDP_SIG, sizeof (RSDP_SIG)-1) == 0 &&
|
||||
AcpiTbChecksum (MemRover, ACPI_RSDP_CHECKSUM_LENGTH) == 0)
|
||||
{
|
||||
@ -518,22 +520,24 @@ AcpiTbFindRsdp (
|
||||
/*
|
||||
* 1) Search EBDA (low memory) paragraphs
|
||||
*/
|
||||
Status = AcpiOsMapMemory ((UINT64) LO_RSDP_WINDOW_BASE, LO_RSDP_WINDOW_SIZE,
|
||||
Status = AcpiOsMapMemory ((UINT64) ACPI_LO_RSDP_WINDOW_BASE, ACPI_LO_RSDP_WINDOW_SIZE,
|
||||
(void **) &TablePtr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X\n",
|
||||
ACPI_LO_RSDP_WINDOW_BASE, ACPI_LO_RSDP_WINDOW_SIZE));
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
MemRover = AcpiTbScanMemoryForRsdp (TablePtr, LO_RSDP_WINDOW_SIZE);
|
||||
AcpiOsUnmapMemory (TablePtr, LO_RSDP_WINDOW_SIZE);
|
||||
MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_LO_RSDP_WINDOW_SIZE);
|
||||
AcpiOsUnmapMemory (TablePtr, ACPI_LO_RSDP_WINDOW_SIZE);
|
||||
|
||||
if (MemRover)
|
||||
{
|
||||
/* Found it, return the physical address */
|
||||
|
||||
PhysAddr = LO_RSDP_WINDOW_BASE;
|
||||
PhysAddr += (MemRover - TablePtr);
|
||||
PhysAddr = ACPI_LO_RSDP_WINDOW_BASE;
|
||||
PhysAddr += ACPI_PTR_DIFF (MemRover,TablePtr);
|
||||
|
||||
TableInfo->PhysicalAddress = PhysAddr;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@ -542,22 +546,24 @@ AcpiTbFindRsdp (
|
||||
/*
|
||||
* 2) Search upper memory: 16-byte boundaries in E0000h-F0000h
|
||||
*/
|
||||
Status = AcpiOsMapMemory ((UINT64) HI_RSDP_WINDOW_BASE, HI_RSDP_WINDOW_SIZE,
|
||||
Status = AcpiOsMapMemory ((UINT64) ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE,
|
||||
(void **) &TablePtr);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not map memory at %X for length %X\n",
|
||||
ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
MemRover = AcpiTbScanMemoryForRsdp (TablePtr, HI_RSDP_WINDOW_SIZE);
|
||||
AcpiOsUnmapMemory (TablePtr, HI_RSDP_WINDOW_SIZE);
|
||||
MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);
|
||||
AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE);
|
||||
|
||||
if (MemRover)
|
||||
{
|
||||
/* Found it, return the physical address */
|
||||
|
||||
PhysAddr = HI_RSDP_WINDOW_BASE;
|
||||
PhysAddr += (MemRover - TablePtr);
|
||||
PhysAddr = ACPI_HI_RSDP_WINDOW_BASE;
|
||||
PhysAddr += ACPI_PTR_DIFF (MemRover, TablePtr);
|
||||
|
||||
TableInfo->PhysicalAddress = PhysAddr;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
@ -572,8 +578,8 @@ AcpiTbFindRsdp (
|
||||
/*
|
||||
* 1) Search EBDA (low memory) paragraphs
|
||||
*/
|
||||
MemRover = AcpiTbScanMemoryForRsdp (ACPI_PHYSADDR_TO_PTR (LO_RSDP_WINDOW_BASE),
|
||||
LO_RSDP_WINDOW_SIZE);
|
||||
MemRover = AcpiTbScanMemoryForRsdp (ACPI_PHYSADDR_TO_PTR (ACPI_LO_RSDP_WINDOW_BASE),
|
||||
ACPI_LO_RSDP_WINDOW_SIZE);
|
||||
if (MemRover)
|
||||
{
|
||||
/* Found it, return the physical address */
|
||||
@ -585,8 +591,8 @@ AcpiTbFindRsdp (
|
||||
/*
|
||||
* 2) Search upper memory: 16-byte boundaries in E0000h-F0000h
|
||||
*/
|
||||
MemRover = AcpiTbScanMemoryForRsdp (ACPI_PHYSADDR_TO_PTR (HI_RSDP_WINDOW_BASE),
|
||||
HI_RSDP_WINDOW_SIZE);
|
||||
MemRover = AcpiTbScanMemoryForRsdp (ACPI_PHYSADDR_TO_PTR (ACPI_HI_RSDP_WINDOW_BASE),
|
||||
ACPI_HI_RSDP_WINDOW_SIZE);
|
||||
if (MemRover)
|
||||
{
|
||||
/* Found it, return the physical address */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utalloc - local cache and memory allocation routines
|
||||
* $Revision: 1.118 $
|
||||
* $Revision: 1.131 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -117,10 +117,6 @@
|
||||
#define __UTALLOC_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acparser.h"
|
||||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acglobal.h"
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("utalloc")
|
||||
@ -164,20 +160,23 @@ AcpiUtReleaseToCache (
|
||||
|
||||
else
|
||||
{
|
||||
AcpiUtAcquireMutex (ACPI_MTX_CACHES);
|
||||
if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_CACHES)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Mark the object as cached */
|
||||
|
||||
MEMSET (Object, 0xCA, CacheInfo->ObjectSize);
|
||||
ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_CACHED_OBJECT);
|
||||
ACPI_MEMSET (Object, 0xCA, CacheInfo->ObjectSize);
|
||||
ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_CACHED);
|
||||
|
||||
/* Put the object at the head of the cache list */
|
||||
|
||||
* (char **) (((char *) Object) + CacheInfo->LinkOffset) = CacheInfo->ListHead;
|
||||
* (ACPI_CAST_INDIRECT_PTR (char, &(((char *) Object)[CacheInfo->LinkOffset]))) = CacheInfo->ListHead;
|
||||
CacheInfo->ListHead = Object;
|
||||
CacheInfo->CacheDepth++;
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
}
|
||||
}
|
||||
|
||||
@ -208,7 +207,11 @@ AcpiUtAcquireFromCache (
|
||||
|
||||
|
||||
CacheInfo = &AcpiGbl_MemoryLists[ListId];
|
||||
AcpiUtAcquireMutex (ACPI_MTX_CACHES);
|
||||
if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_CACHES)))
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
ACPI_MEM_TRACKING (CacheInfo->CacheRequests++);
|
||||
|
||||
/* Check the cache first */
|
||||
@ -218,7 +221,7 @@ AcpiUtAcquireFromCache (
|
||||
/* There is an object available, use it */
|
||||
|
||||
Object = CacheInfo->ListHead;
|
||||
CacheInfo->ListHead = * (char **) (((char *) Object) + CacheInfo->LinkOffset);
|
||||
CacheInfo->ListHead = *(ACPI_CAST_INDIRECT_PTR (char, &(((char *) Object)[CacheInfo->LinkOffset])));
|
||||
|
||||
ACPI_MEM_TRACKING (CacheInfo->CacheHits++);
|
||||
CacheInfo->CacheDepth--;
|
||||
@ -228,11 +231,14 @@ AcpiUtAcquireFromCache (
|
||||
Object, AcpiGbl_MemoryLists[ListId].ListName));
|
||||
#endif
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
if (ACPI_FAILURE (AcpiUtReleaseMutex (ACPI_MTX_CACHES)))
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/* Clear (zero) the previously used Object */
|
||||
|
||||
MEMSET (Object, 0, CacheInfo->ObjectSize);
|
||||
ACPI_MEMSET (Object, 0, CacheInfo->ObjectSize);
|
||||
}
|
||||
|
||||
else
|
||||
@ -241,7 +247,10 @@ AcpiUtAcquireFromCache (
|
||||
|
||||
/* Avoid deadlock with ACPI_MEM_CALLOCATE */
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
if (ACPI_FAILURE (AcpiUtReleaseMutex (ACPI_MTX_CACHES)))
|
||||
{
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
Object = ACPI_MEM_CALLOCATE (CacheInfo->ObjectSize);
|
||||
ACPI_MEM_TRACKING (CacheInfo->TotalAllocated++);
|
||||
@ -279,7 +288,7 @@ AcpiUtDeleteGenericCache (
|
||||
{
|
||||
/* Delete one cached state object */
|
||||
|
||||
Next = * (char **) (((char *) CacheInfo->ListHead) + CacheInfo->LinkOffset);
|
||||
Next = *(ACPI_CAST_INDIRECT_PTR (char, &(((char *) CacheInfo->ListHead)[CacheInfo->LinkOffset])));
|
||||
ACPI_MEM_FREE (CacheInfo->ListHead);
|
||||
|
||||
CacheInfo->ListHead = Next;
|
||||
@ -288,7 +297,6 @@ AcpiUtDeleteGenericCache (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtValidateBuffer
|
||||
@ -377,7 +385,7 @@ AcpiUtInitializeBuffer (
|
||||
|
||||
/* Clear the buffer */
|
||||
|
||||
MEMSET (Buffer->Pointer, 0, RequiredLength);
|
||||
ACPI_MEMSET (Buffer->Pointer, 0, RequiredLength);
|
||||
break;
|
||||
|
||||
|
||||
@ -393,7 +401,7 @@ AcpiUtInitializeBuffer (
|
||||
|
||||
/* Clear the buffer */
|
||||
|
||||
MEMSET (Buffer->Pointer, 0, RequiredLength);
|
||||
ACPI_MEMSET (Buffer->Pointer, 0, RequiredLength);
|
||||
break;
|
||||
|
||||
|
||||
@ -405,10 +413,6 @@ AcpiUtInitializeBuffer (
|
||||
{
|
||||
Status = AE_BUFFER_OVERFLOW;
|
||||
}
|
||||
|
||||
/* Clear the buffer */
|
||||
|
||||
MEMSET (Buffer->Pointer, 0, RequiredLength);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -436,7 +440,7 @@ void *
|
||||
AcpiUtAllocate (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
void *Allocation;
|
||||
@ -460,7 +464,7 @@ AcpiUtAllocate (
|
||||
/* Report allocation error */
|
||||
|
||||
_ACPI_REPORT_ERROR (Module, Line, Component,
|
||||
("UtAllocate: Could not allocate size %X\n", Size));
|
||||
("UtAllocate: Could not allocate size %X\n", (UINT32) Size));
|
||||
|
||||
return_PTR (NULL);
|
||||
}
|
||||
@ -488,7 +492,7 @@ void *
|
||||
AcpiUtCallocate (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
void *Allocation;
|
||||
@ -512,19 +516,17 @@ AcpiUtCallocate (
|
||||
/* Report allocation error */
|
||||
|
||||
_ACPI_REPORT_ERROR (Module, Line, Component,
|
||||
("UtCallocate: Could not allocate size %X\n", Size));
|
||||
("UtCallocate: Could not allocate size %X\n", (UINT32) Size));
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
/* Clear the memory block */
|
||||
|
||||
MEMSET (Allocation, 0, Size);
|
||||
|
||||
ACPI_MEMSET (Allocation, 0, Size);
|
||||
return_PTR (Allocation);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
/*
|
||||
* These procedures are used for tracking memory leaks in the subsystem, and
|
||||
@ -538,7 +540,6 @@ AcpiUtCallocate (
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtAllocateAndTrack
|
||||
@ -558,14 +559,13 @@ void *
|
||||
AcpiUtAllocateAndTrack (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
ACPI_DEBUG_MEM_BLOCK *Allocation;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
|
||||
Allocation = AcpiUtAllocate (Size + sizeof (ACPI_DEBUG_MEM_BLOCK), Component,
|
||||
Module, Line);
|
||||
if (!Allocation)
|
||||
@ -588,7 +588,6 @@ AcpiUtAllocateAndTrack (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtCallocateAndTrack
|
||||
@ -608,14 +607,13 @@ void *
|
||||
AcpiUtCallocateAndTrack (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
ACPI_DEBUG_MEM_BLOCK *Allocation;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
|
||||
Allocation = AcpiUtCallocate (Size + sizeof (ACPI_DEBUG_MEM_BLOCK), Component,
|
||||
Module, Line);
|
||||
if (!Allocation)
|
||||
@ -623,7 +621,7 @@ AcpiUtCallocateAndTrack (
|
||||
/* Report allocation error */
|
||||
|
||||
_ACPI_REPORT_ERROR (Module, Line, Component,
|
||||
("UtCallocate: Could not allocate size %X\n", Size));
|
||||
("UtCallocate: Could not allocate size %X\n", (UINT32) Size));
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@ -661,10 +659,11 @@ void
|
||||
AcpiUtFreeAndTrack (
|
||||
void *Allocation,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
ACPI_DEBUG_MEM_BLOCK *DebugBlock;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR ("UtFree", Allocation);
|
||||
@ -678,14 +677,20 @@ AcpiUtFreeAndTrack (
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
DebugBlock = (ACPI_DEBUG_MEM_BLOCK *)
|
||||
(((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER));
|
||||
DebugBlock = ACPI_CAST_PTR (ACPI_DEBUG_MEM_BLOCK,
|
||||
(((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER)));
|
||||
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].TotalFreed++;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].CurrentTotalSize -= DebugBlock->Size;
|
||||
|
||||
AcpiUtRemoveAllocation (ACPI_MEM_LIST_GLOBAL, DebugBlock,
|
||||
Component, Module, Line);
|
||||
Status = AcpiUtRemoveAllocation (ACPI_MEM_LIST_GLOBAL, DebugBlock,
|
||||
Component, Module, Line);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Could not free memory, %s\n",
|
||||
AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
AcpiOsFree (DebugBlock);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p freed\n", Allocation));
|
||||
@ -694,7 +699,6 @@ AcpiUtFreeAndTrack (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtFindAllocation
|
||||
@ -765,7 +769,7 @@ AcpiUtTrackAllocation (
|
||||
ACPI_SIZE Size,
|
||||
UINT8 AllocType,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
ACPI_MEMORY_LIST *MemList;
|
||||
@ -782,7 +786,11 @@ AcpiUtTrackAllocation (
|
||||
}
|
||||
|
||||
MemList = &AcpiGbl_MemoryLists[ListId];
|
||||
AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* Search list for this address to make sure it is not already on the list.
|
||||
@ -807,7 +815,7 @@ AcpiUtTrackAllocation (
|
||||
Allocation->Component = Component;
|
||||
Allocation->Line = Line;
|
||||
|
||||
STRNCPY (Allocation->Module, Module, ACPI_MAX_MODULE_NAME);
|
||||
ACPI_STRNCPY (Allocation->Module, Module, ACPI_MAX_MODULE_NAME);
|
||||
|
||||
/* Insert at list head */
|
||||
|
||||
@ -823,7 +831,7 @@ AcpiUtTrackAllocation (
|
||||
|
||||
|
||||
UnlockAndExit:
|
||||
AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
|
||||
Status = AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -848,10 +856,11 @@ AcpiUtRemoveAllocation (
|
||||
UINT32 ListId,
|
||||
ACPI_DEBUG_MEM_BLOCK *Allocation,
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module,
|
||||
char *Module,
|
||||
UINT32 Line)
|
||||
{
|
||||
ACPI_MEMORY_LIST *MemList;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("UtRemoveAllocation");
|
||||
@ -873,7 +882,11 @@ AcpiUtRemoveAllocation (
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
|
||||
Status = AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Unlink */
|
||||
|
||||
@ -893,12 +906,12 @@ AcpiUtRemoveAllocation (
|
||||
|
||||
/* Mark the segment as deleted */
|
||||
|
||||
MEMSET (&Allocation->UserSpace, 0xEA, Allocation->Size);
|
||||
ACPI_MEMSET (&Allocation->UserSpace, 0xEA, Allocation->Size);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Freeing size %X\n", Allocation->Size));
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
Status = AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -977,9 +990,10 @@ AcpiUtDumpAllocationInfo (
|
||||
void
|
||||
AcpiUtDumpAllocations (
|
||||
UINT32 Component,
|
||||
NATIVE_CHAR *Module)
|
||||
char *Module)
|
||||
{
|
||||
ACPI_DEBUG_MEM_BLOCK *Element;
|
||||
ACPI_DESCRIPTOR *Descriptor;
|
||||
UINT32 NumOutstanding = 0;
|
||||
|
||||
|
||||
@ -989,40 +1003,44 @@ AcpiUtDumpAllocations (
|
||||
/*
|
||||
* Walk the allocation list.
|
||||
*/
|
||||
AcpiUtAcquireMutex (ACPI_MTX_MEMORY);
|
||||
if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_MEMORY)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Element = AcpiGbl_MemoryLists[0].ListHead;
|
||||
while (Element)
|
||||
{
|
||||
if ((Element->Component & Component) &&
|
||||
((Module == NULL) || (0 == STRCMP (Module, Element->Module))))
|
||||
((Module == NULL) || (0 == ACPI_STRCMP (Module, Element->Module))))
|
||||
{
|
||||
/* Ignore allocated objects that are in a cache */
|
||||
|
||||
if (((ACPI_OPERAND_OBJECT *)(&Element->UserSpace))->Common.Type != ACPI_CACHED_OBJECT)
|
||||
Descriptor = ACPI_CAST_PTR (ACPI_DESCRIPTOR, &Element->UserSpace);
|
||||
if (Descriptor->DescriptorId != ACPI_DESC_TYPE_CACHED)
|
||||
{
|
||||
AcpiOsPrintf ("%p Len %04X %9.9s-%d ",
|
||||
&Element->UserSpace, Element->Size, Element->Module,
|
||||
Descriptor, Element->Size, Element->Module,
|
||||
Element->Line);
|
||||
|
||||
/* Most of the elements will be internal objects. */
|
||||
|
||||
switch (ACPI_GET_DESCRIPTOR_TYPE (&Element->UserSpace))
|
||||
switch (ACPI_GET_DESCRIPTOR_TYPE (Descriptor))
|
||||
{
|
||||
case ACPI_DESC_TYPE_INTERNAL:
|
||||
AcpiOsPrintf ("ObjType %12.12s R%d",
|
||||
AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *)(&Element->UserSpace))->Common.Type),
|
||||
((ACPI_OPERAND_OBJECT *)(&Element->UserSpace))->Common.ReferenceCount);
|
||||
case ACPI_DESC_TYPE_OPERAND:
|
||||
AcpiOsPrintf ("ObjType %12.12s R%hd",
|
||||
AcpiUtGetTypeName (Descriptor->Object.Common.Type),
|
||||
Descriptor->Object.Common.ReferenceCount);
|
||||
break;
|
||||
|
||||
case ACPI_DESC_TYPE_PARSER:
|
||||
AcpiOsPrintf ("ParseObj Opcode %04X",
|
||||
((ACPI_PARSE_OBJECT *)(&Element->UserSpace))->Opcode);
|
||||
AcpiOsPrintf ("ParseObj AmlOpcode %04hX",
|
||||
Descriptor->Op.Asl.AmlOpcode);
|
||||
break;
|
||||
|
||||
case ACPI_DESC_TYPE_NAMED:
|
||||
AcpiOsPrintf ("Node %4.4s",
|
||||
(char *) &((ACPI_NAMESPACE_NODE *)(&Element->UserSpace))->Name);
|
||||
Descriptor->Node.Name.Ascii);
|
||||
break;
|
||||
|
||||
case ACPI_DESC_TYPE_STATE:
|
||||
@ -1064,6 +1082,10 @@ AcpiUtDumpAllocations (
|
||||
case ACPI_DESC_TYPE_STATE_THREAD:
|
||||
AcpiOsPrintf ("THREAD StateObj");
|
||||
break;
|
||||
|
||||
default:
|
||||
/* All types should appear above */
|
||||
break;
|
||||
}
|
||||
|
||||
AcpiOsPrintf ( "\n");
|
||||
@ -1073,18 +1095,18 @@ AcpiUtDumpAllocations (
|
||||
Element = Element->Next;
|
||||
}
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
|
||||
|
||||
/* Print summary */
|
||||
|
||||
if (!NumOutstanding)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_OK,
|
||||
"No outstanding allocations.\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"No outstanding allocations.\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_OK,
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"%d(%X) Outstanding allocations\n",
|
||||
NumOutstanding, NumOutstanding));
|
||||
}
|
||||
@ -1093,6 +1115,5 @@ AcpiUtDumpAllocations (
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif /* #ifdef ACPI_DBG_TRACK_ALLOCATIONS */
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: cmclib - Local implementation of C library functions
|
||||
* $Revision: 1.43 $
|
||||
* $Revision: 1.51 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,11 +118,6 @@
|
||||
#define __CMCLIB_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acevents.h"
|
||||
#include "achware.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acinterp.h"
|
||||
#include "amlcode.h"
|
||||
|
||||
/*
|
||||
* These implementations of standard C Library routines can optionally be
|
||||
@ -130,7 +125,7 @@
|
||||
* than an inline or assembly implementation
|
||||
*/
|
||||
|
||||
#define _COMPONENT MISCELLANEOUS
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("cmclib")
|
||||
|
||||
|
||||
@ -149,9 +144,9 @@
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
UINT32
|
||||
ACPI_SIZE
|
||||
AcpiUtStrlen (
|
||||
const NATIVE_CHAR *String)
|
||||
const char *String)
|
||||
{
|
||||
UINT32 Length = 0;
|
||||
|
||||
@ -181,12 +176,12 @@ AcpiUtStrlen (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtStrcpy (
|
||||
NATIVE_CHAR *DstString,
|
||||
const NATIVE_CHAR *SrcString)
|
||||
char *DstString,
|
||||
const char *SrcString)
|
||||
{
|
||||
NATIVE_CHAR *String = DstString;
|
||||
char *String = DstString;
|
||||
|
||||
|
||||
/* Move bytes brute force */
|
||||
@ -220,13 +215,13 @@ AcpiUtStrcpy (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtStrncpy (
|
||||
NATIVE_CHAR *DstString,
|
||||
const NATIVE_CHAR *SrcString,
|
||||
NATIVE_UINT Count)
|
||||
char *DstString,
|
||||
const char *SrcString,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
NATIVE_CHAR *String = DstString;
|
||||
char *String = DstString;
|
||||
|
||||
|
||||
/* Copy the string */
|
||||
@ -262,10 +257,10 @@ AcpiUtStrncpy (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT32
|
||||
int
|
||||
AcpiUtStrcmp (
|
||||
const NATIVE_CHAR *String1,
|
||||
const NATIVE_CHAR *String2)
|
||||
const char *String1,
|
||||
const char *String2)
|
||||
{
|
||||
|
||||
|
||||
@ -295,11 +290,11 @@ AcpiUtStrcmp (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT32
|
||||
int
|
||||
AcpiUtStrncmp (
|
||||
const NATIVE_CHAR *String1,
|
||||
const NATIVE_CHAR *String2,
|
||||
NATIVE_UINT Count)
|
||||
const char *String1,
|
||||
const char *String2,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
|
||||
|
||||
@ -311,7 +306,7 @@ AcpiUtStrncmp (
|
||||
}
|
||||
}
|
||||
|
||||
return ((Count == ACPI_INTEGER_MAX) ? 0 : ((unsigned char) *String1 -
|
||||
return ((Count == ACPI_SIZE_MAX) ? 0 : ((unsigned char) *String1 -
|
||||
(unsigned char) *String2));
|
||||
}
|
||||
|
||||
@ -329,12 +324,12 @@ AcpiUtStrncmp (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtStrcat (
|
||||
NATIVE_CHAR *DstString,
|
||||
const NATIVE_CHAR *SrcString)
|
||||
char *DstString,
|
||||
const char *SrcString)
|
||||
{
|
||||
NATIVE_CHAR *String;
|
||||
char *String;
|
||||
|
||||
|
||||
/* Find end of the destination string */
|
||||
@ -366,13 +361,13 @@ AcpiUtStrcat (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtStrncat (
|
||||
NATIVE_CHAR *DstString,
|
||||
const NATIVE_CHAR *SrcString,
|
||||
NATIVE_UINT Count)
|
||||
char *DstString,
|
||||
const char *SrcString,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
NATIVE_CHAR *String;
|
||||
char *String;
|
||||
|
||||
|
||||
if (Count)
|
||||
@ -417,10 +412,10 @@ void *
|
||||
AcpiUtMemcpy (
|
||||
void *Dest,
|
||||
const void *Src,
|
||||
NATIVE_UINT Count)
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
NATIVE_CHAR *New = (NATIVE_CHAR *) Dest;
|
||||
NATIVE_CHAR *Old = (NATIVE_CHAR *) Src;
|
||||
char *New = (char *) Dest;
|
||||
char *Old = (char *) Src;
|
||||
|
||||
|
||||
while (Count)
|
||||
@ -452,10 +447,10 @@ AcpiUtMemcpy (
|
||||
void *
|
||||
AcpiUtMemset (
|
||||
void *Dest,
|
||||
NATIVE_UINT Value,
|
||||
NATIVE_UINT Count)
|
||||
ACPI_NATIVE_UINT Value,
|
||||
ACPI_SIZE Count)
|
||||
{
|
||||
NATIVE_CHAR *New = (NATIVE_CHAR *) Dest;
|
||||
char *New = (char *) Dest;
|
||||
|
||||
|
||||
while (Count)
|
||||
@ -472,19 +467,7 @@ AcpiUtMemset (
|
||||
#define NEGATIVE 1
|
||||
#define POSITIVE 0
|
||||
|
||||
|
||||
#define _ACPI_XA 0x00 /* extra alphabetic - not supported */
|
||||
#define _ACPI_XS 0x40 /* extra space */
|
||||
#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */
|
||||
#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */
|
||||
#define _ACPI_DI 0x04 /* '0'-'9' */
|
||||
#define _ACPI_LO 0x02 /* 'a'-'z' */
|
||||
#define _ACPI_PU 0x10 /* punctuation */
|
||||
#define _ACPI_SP 0x08 /* space */
|
||||
#define _ACPI_UP 0x01 /* 'A'-'Z' */
|
||||
#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */
|
||||
|
||||
static const UINT8 _acpi_ctype[257] = {
|
||||
const UINT8 _acpi_ctype[257] = {
|
||||
_ACPI_CN, /* 0x0 0. */
|
||||
_ACPI_CN, /* 0x1 1. */
|
||||
_ACPI_CN, /* 0x2 2. */
|
||||
@ -643,9 +626,9 @@ static const UINT8 _acpi_ctype[257] = {
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT32
|
||||
int
|
||||
AcpiUtToUpper (
|
||||
UINT32 c)
|
||||
int c)
|
||||
{
|
||||
|
||||
return (IS_LOWER(c) ? ((c)-0x20) : (c));
|
||||
@ -664,9 +647,9 @@ AcpiUtToUpper (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT32
|
||||
int
|
||||
AcpiUtToLower (
|
||||
UINT32 c)
|
||||
int c)
|
||||
{
|
||||
|
||||
return (IS_UPPER(c) ? ((c)+0x20) : (c));
|
||||
@ -688,12 +671,12 @@ AcpiUtToLower (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtStrstr (
|
||||
NATIVE_CHAR *String1,
|
||||
NATIVE_CHAR *String2)
|
||||
char *String1,
|
||||
char *String2)
|
||||
{
|
||||
NATIVE_CHAR *String;
|
||||
char *String;
|
||||
|
||||
|
||||
if (AcpiUtStrlen (String2) > AcpiUtStrlen (String1))
|
||||
@ -734,14 +717,14 @@ AcpiUtStrstr (
|
||||
|
||||
UINT32
|
||||
AcpiUtStrtoul (
|
||||
const NATIVE_CHAR *String,
|
||||
NATIVE_CHAR **Terminator,
|
||||
const char *String,
|
||||
char **Terminator,
|
||||
UINT32 Base)
|
||||
{
|
||||
UINT32 converted = 0;
|
||||
UINT32 index;
|
||||
UINT32 sign;
|
||||
const NATIVE_CHAR *StringStart;
|
||||
const char *StringStart;
|
||||
UINT32 ReturnValue = 0;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
@ -832,11 +815,11 @@ AcpiUtStrtoul (
|
||||
{
|
||||
if (IS_DIGIT (*String))
|
||||
{
|
||||
index = *String - '0';
|
||||
index = (UINT32) ((UINT8) *String - '0');
|
||||
}
|
||||
else
|
||||
{
|
||||
index = AcpiUtToUpper (*String);
|
||||
index = (UINT32) AcpiUtToUpper (*String);
|
||||
if (IS_UPPER (index))
|
||||
{
|
||||
index = index - 'A' + 10;
|
||||
@ -860,7 +843,7 @@ AcpiUtStrtoul (
|
||||
(UINT32) Base))
|
||||
{
|
||||
Status = AE_ERROR;
|
||||
ReturnValue = 0L; /* reset */
|
||||
ReturnValue = 0; /* reset */
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -879,13 +862,13 @@ done:
|
||||
*/
|
||||
if (Terminator)
|
||||
{
|
||||
if (converted == 0 && ReturnValue == 0L && String != NULL)
|
||||
if (converted == 0 && ReturnValue == 0 && String != NULL)
|
||||
{
|
||||
*Terminator = (NATIVE_CHAR *) StringStart;
|
||||
*Terminator = (char *) StringStart;
|
||||
}
|
||||
else
|
||||
{
|
||||
*Terminator = (NATIVE_CHAR *) String;
|
||||
*Terminator = (char *) String;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utcopy - Internal to external object translation utilities
|
||||
* $Revision: 1.93 $
|
||||
* $Revision: 1.110 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -117,8 +117,6 @@
|
||||
#define __UTCOPY_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "amlcode.h"
|
||||
|
||||
|
||||
@ -150,7 +148,6 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
UINT8 *DataSpace,
|
||||
ACPI_SIZE *BufferSpaceUsed)
|
||||
{
|
||||
ACPI_BUFFER Buffer;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
|
||||
@ -161,7 +158,7 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
|
||||
/*
|
||||
* Check for NULL object case (could be an uninitialized
|
||||
* package element
|
||||
* package element)
|
||||
*/
|
||||
if (!InternalObject)
|
||||
{
|
||||
@ -170,26 +167,26 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
|
||||
/* Always clear the external object */
|
||||
|
||||
MEMSET (ExternalObject, 0, sizeof (ACPI_OBJECT));
|
||||
ACPI_MEMSET (ExternalObject, 0, sizeof (ACPI_OBJECT));
|
||||
|
||||
/*
|
||||
* In general, the external object will be the same type as
|
||||
* the internal object
|
||||
*/
|
||||
ExternalObject->Type = InternalObject->Common.Type;
|
||||
ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
|
||||
|
||||
/* However, only a limited number of external types are supported */
|
||||
|
||||
switch (InternalObject->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (InternalObject))
|
||||
{
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
ExternalObject->String.Pointer = (NATIVE_CHAR *) DataSpace;
|
||||
ExternalObject->String.Pointer = (char *) DataSpace;
|
||||
ExternalObject->String.Length = InternalObject->String.Length;
|
||||
*BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (InternalObject->String.Length + 1);
|
||||
*BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD ((ACPI_SIZE) InternalObject->String.Length + 1);
|
||||
|
||||
MEMCPY ((void *) DataSpace, (void *) InternalObject->String.Pointer,
|
||||
InternalObject->String.Length + 1);
|
||||
ACPI_MEMCPY ((void *) DataSpace, (void *) InternalObject->String.Pointer,
|
||||
(ACPI_SIZE) InternalObject->String.Length + 1);
|
||||
break;
|
||||
|
||||
|
||||
@ -199,7 +196,7 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
ExternalObject->Buffer.Length = InternalObject->Buffer.Length;
|
||||
*BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (InternalObject->String.Length);
|
||||
|
||||
MEMCPY ((void *) DataSpace, (void *) InternalObject->Buffer.Pointer,
|
||||
ACPI_MEMCPY ((void *) DataSpace, (void *) InternalObject->Buffer.Pointer,
|
||||
InternalObject->Buffer.Length);
|
||||
break;
|
||||
|
||||
@ -210,52 +207,16 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
/*
|
||||
* This is an object reference. Attempt to dereference it.
|
||||
*/
|
||||
switch (InternalObject->Reference.Opcode)
|
||||
{
|
||||
case AML_ZERO_OP:
|
||||
ExternalObject->Type = ACPI_TYPE_INTEGER;
|
||||
ExternalObject->Integer.Value = 0;
|
||||
break;
|
||||
|
||||
case AML_ONE_OP:
|
||||
ExternalObject->Type = ACPI_TYPE_INTEGER;
|
||||
ExternalObject->Integer.Value = 1;
|
||||
break;
|
||||
|
||||
case AML_ONES_OP:
|
||||
ExternalObject->Type = ACPI_TYPE_INTEGER;
|
||||
ExternalObject->Integer.Value = ACPI_INTEGER_MAX;
|
||||
break;
|
||||
|
||||
case AML_REVISION_OP:
|
||||
ExternalObject->Type = ACPI_TYPE_INTEGER;
|
||||
ExternalObject->Integer.Value = ACPI_CA_SUPPORT_LEVEL;
|
||||
break;
|
||||
|
||||
case AML_INT_NAMEPATH_OP:
|
||||
/*
|
||||
* This is a named reference, get the string. We already know that
|
||||
* we have room for it, use max length
|
||||
*/
|
||||
ExternalObject->Type = ACPI_TYPE_STRING;
|
||||
ExternalObject->String.Pointer = (NATIVE_CHAR *) DataSpace;
|
||||
|
||||
Buffer.Length = MAX_STRING_LENGTH;
|
||||
Buffer.Pointer = DataSpace;
|
||||
|
||||
Status = AcpiNsHandleToPathname ((ACPI_HANDLE *) InternalObject->Reference.Node,
|
||||
&Buffer);
|
||||
|
||||
/* Converted (external) string length is returned from above */
|
||||
|
||||
ExternalObject->String.Length = Buffer.Length;
|
||||
*BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD (Buffer.Length);
|
||||
break;
|
||||
/* For namepath, return the object handle ("reference") */
|
||||
|
||||
default:
|
||||
/*
|
||||
@ -271,9 +232,9 @@ AcpiUtCopyIsimpleToEsimple (
|
||||
|
||||
case ACPI_TYPE_PROCESSOR:
|
||||
|
||||
ExternalObject->Processor.ProcId = InternalObject->Processor.ProcId;
|
||||
ExternalObject->Processor.ProcId = InternalObject->Processor.ProcId;
|
||||
ExternalObject->Processor.PblkAddress = InternalObject->Processor.Address;
|
||||
ExternalObject->Processor.PblkLength = InternalObject->Processor.Length;
|
||||
ExternalObject->Processor.PblkLength = InternalObject->Processor.Length;
|
||||
break;
|
||||
|
||||
|
||||
@ -354,7 +315,7 @@ AcpiUtCopyIelementToEelement (
|
||||
*/
|
||||
TargetObject->Type = ACPI_TYPE_PACKAGE;
|
||||
TargetObject->Package.Count = SourceObject->Package.Count;
|
||||
TargetObject->Package.Elements = (ACPI_OBJECT *) Info->FreeSpace;
|
||||
TargetObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace);
|
||||
|
||||
/*
|
||||
* Pass the new package object back to the package walk routine
|
||||
@ -366,7 +327,7 @@ AcpiUtCopyIelementToEelement (
|
||||
* update the buffer length counter
|
||||
*/
|
||||
ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD (
|
||||
TargetObject->Package.Count * sizeof (ACPI_OBJECT));
|
||||
(ACPI_SIZE) TargetObject->Package.Count * sizeof (ACPI_OBJECT));
|
||||
break;
|
||||
|
||||
|
||||
@ -416,26 +377,28 @@ AcpiUtCopyIpackageToEpackage (
|
||||
/*
|
||||
* First package at head of the buffer
|
||||
*/
|
||||
ExternalObject = (ACPI_OBJECT *) Buffer;
|
||||
ExternalObject = ACPI_CAST_PTR (ACPI_OBJECT, Buffer);
|
||||
|
||||
/*
|
||||
* Free space begins right after the first package
|
||||
*/
|
||||
Info.Length = 0;
|
||||
Info.Length = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
|
||||
Info.FreeSpace = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
|
||||
Info.ObjectSpace = 0;
|
||||
Info.NumPackages = 1;
|
||||
Info.FreeSpace = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
|
||||
|
||||
ExternalObject->Type = InternalObject->Common.Type;
|
||||
ExternalObject->Package.Count = InternalObject->Package.Count;
|
||||
ExternalObject->Package.Elements = (ACPI_OBJECT *) Info.FreeSpace;
|
||||
ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
|
||||
ExternalObject->Package.Count = InternalObject->Package.Count;
|
||||
ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, Info.FreeSpace);
|
||||
|
||||
/*
|
||||
* Build an array of ACPI_OBJECTS in the buffer
|
||||
* Leave room for an array of ACPI_OBJECTS in the buffer
|
||||
* and move the free space past it
|
||||
*/
|
||||
Info.Length += (ACPI_SIZE) ExternalObject->Package.Count *
|
||||
ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
|
||||
Info.FreeSpace += ExternalObject->Package.Count *
|
||||
ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
|
||||
ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT));
|
||||
|
||||
Status = AcpiUtWalkPackageTree (InternalObject, ExternalObject,
|
||||
AcpiUtCopyIelementToEelement, &Info);
|
||||
@ -470,7 +433,7 @@ AcpiUtCopyIobjectToEobject (
|
||||
ACPI_FUNCTION_TRACE ("UtCopyIobjectToEobject");
|
||||
|
||||
|
||||
if (InternalObject->Common.Type == ACPI_TYPE_PACKAGE)
|
||||
if (ACPI_GET_OBJECT_TYPE (InternalObject) == ACPI_TYPE_PACKAGE)
|
||||
{
|
||||
/*
|
||||
* Package object: Copy all subobjects (including
|
||||
@ -558,15 +521,16 @@ AcpiUtCopyEsimpleToIsimple (
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
InternalObject->String.Pointer = ACPI_MEM_CALLOCATE (ExternalObject->String.Length + 1);
|
||||
InternalObject->String.Pointer =
|
||||
ACPI_MEM_CALLOCATE ((ACPI_SIZE) ExternalObject->String.Length + 1);
|
||||
if (!InternalObject->String.Pointer)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
MEMCPY (InternalObject->String.Pointer,
|
||||
ExternalObject->String.Pointer,
|
||||
ExternalObject->String.Length);
|
||||
ACPI_MEMCPY (InternalObject->String.Pointer,
|
||||
ExternalObject->String.Pointer,
|
||||
ExternalObject->String.Length);
|
||||
|
||||
InternalObject->String.Length = ExternalObject->String.Length;
|
||||
break;
|
||||
@ -574,15 +538,16 @@ AcpiUtCopyEsimpleToIsimple (
|
||||
|
||||
case ACPI_TYPE_BUFFER:
|
||||
|
||||
InternalObject->Buffer.Pointer = ACPI_MEM_CALLOCATE (ExternalObject->Buffer.Length);
|
||||
InternalObject->Buffer.Pointer =
|
||||
ACPI_MEM_CALLOCATE (ExternalObject->Buffer.Length);
|
||||
if (!InternalObject->Buffer.Pointer)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
MEMCPY (InternalObject->Buffer.Pointer,
|
||||
ExternalObject->Buffer.Pointer,
|
||||
ExternalObject->Buffer.Length);
|
||||
ACPI_MEMCPY (InternalObject->Buffer.Pointer,
|
||||
ExternalObject->Buffer.Pointer,
|
||||
ExternalObject->Buffer.Length);
|
||||
|
||||
InternalObject->Buffer.Length = ExternalObject->Buffer.Length;
|
||||
break;
|
||||
@ -592,6 +557,10 @@ AcpiUtCopyEsimpleToIsimple (
|
||||
|
||||
InternalObject->Integer.Value = ExternalObject->Integer.Value;
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Other types can't get here */
|
||||
break;
|
||||
}
|
||||
|
||||
*RetInternalObject = InternalObject;
|
||||
@ -608,10 +577,10 @@ AcpiUtCopyEsimpleToIsimple (
|
||||
* FUNCTION: AcpiUtCopyEpackageToIpackage
|
||||
*
|
||||
* PARAMETERS: *InternalObject - Pointer to the object we are returning
|
||||
* *Buffer - Where the object is returned
|
||||
* *SpaceUsed - Where the length of the object is returned
|
||||
* *Buffer - Where the object is returned
|
||||
* *SpaceUsed - Where the length of the object is returned
|
||||
*
|
||||
* RETURN: Status - the status of the call
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: This function is called to place a package object in a user
|
||||
* buffer. A package object by definition contains other objects.
|
||||
@ -651,11 +620,10 @@ AcpiUtCopyEpackageToIpackage (
|
||||
FreeSpace = Buffer + sizeof(ACPI_OBJECT);
|
||||
|
||||
|
||||
ExternalObject->Type = InternalObject->Common.Type;
|
||||
ExternalObject->Type = ACPI_GET_OBJECT_TYPE (InternalObject);
|
||||
ExternalObject->Package.Count = InternalObject->Package.Count;
|
||||
ExternalObject->Package.Elements = (ACPI_OBJECT *)FreeSpace;
|
||||
|
||||
|
||||
/*
|
||||
* Build an array of ACPI_OBJECTS in the buffer
|
||||
* and move the free space past it
|
||||
@ -747,7 +715,8 @@ AcpiUtCopySimpleObject (
|
||||
|
||||
/* Copy the entire source object over the destination object*/
|
||||
|
||||
MEMCPY ((char *) DestDesc, (char *) SourceDesc, sizeof (ACPI_OPERAND_OBJECT));
|
||||
ACPI_MEMCPY ((char *) DestDesc, (char *) SourceDesc,
|
||||
sizeof (ACPI_OPERAND_OBJECT));
|
||||
|
||||
/* Restore the saved fields */
|
||||
|
||||
@ -756,11 +725,32 @@ AcpiUtCopySimpleObject (
|
||||
|
||||
/* Handle the objects with extra data */
|
||||
|
||||
switch (DestDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (DestDesc))
|
||||
{
|
||||
case ACPI_TYPE_BUFFER:
|
||||
|
||||
DestDesc->Buffer.Node = NULL;
|
||||
DestDesc->Common.Flags = SourceDesc->Common.Flags;
|
||||
|
||||
/*
|
||||
* Allocate and copy the actual buffer if and only if:
|
||||
* 1) There is a valid buffer (length > 0)
|
||||
* 2) The buffer is not static (not in an ACPI table) (in this case,
|
||||
* the actual pointer was already copied above)
|
||||
*/
|
||||
if ((SourceDesc->Buffer.Length) &&
|
||||
(!(SourceDesc->Common.Flags & AOPOBJ_STATIC_POINTER)))
|
||||
{
|
||||
DestDesc->Buffer.Pointer = ACPI_MEM_ALLOCATE (SourceDesc->Buffer.Length);
|
||||
if (!DestDesc->Buffer.Pointer)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
ACPI_MEMCPY (DestDesc->Buffer.Pointer, SourceDesc->Buffer.Pointer,
|
||||
SourceDesc->Buffer.Length);
|
||||
}
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
@ -773,16 +763,20 @@ AcpiUtCopySimpleObject (
|
||||
if ((SourceDesc->String.Length) &&
|
||||
(!(SourceDesc->Common.Flags & AOPOBJ_STATIC_POINTER)))
|
||||
{
|
||||
DestDesc->String.Pointer = ACPI_MEM_ALLOCATE (SourceDesc->String.Length);
|
||||
DestDesc->String.Pointer = ACPI_MEM_ALLOCATE (SourceDesc->String.Length + 1);
|
||||
if (!DestDesc->String.Pointer)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
MEMCPY (DestDesc->String.Pointer, SourceDesc->String.Pointer,
|
||||
SourceDesc->String.Length);
|
||||
ACPI_MEMCPY (DestDesc->String.Pointer, SourceDesc->String.Pointer,
|
||||
SourceDesc->String.Length + 1);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Nothing to do for other simple objects */
|
||||
break;
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
@ -823,28 +817,40 @@ AcpiUtCopyIelementToIelement (
|
||||
|
||||
switch (ObjectType)
|
||||
{
|
||||
case 0:
|
||||
case ACPI_COPY_TYPE_SIMPLE:
|
||||
|
||||
/*
|
||||
* This is a simple object, just copy it
|
||||
*/
|
||||
TargetObject = AcpiUtCreateInternalObject (SourceObject->Common.Type);
|
||||
if (!TargetObject)
|
||||
/* A null source object indicates a (legal) null package element */
|
||||
|
||||
if (SourceObject)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
/*
|
||||
* This is a simple object, just copy it
|
||||
*/
|
||||
TargetObject = AcpiUtCreateInternalObject (
|
||||
ACPI_GET_OBJECT_TYPE (SourceObject));
|
||||
if (!TargetObject)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
Status = AcpiUtCopySimpleObject (SourceObject, TargetObject);
|
||||
if (ACPI_FAILURE (Status))
|
||||
Status = AcpiUtCopySimpleObject (SourceObject, TargetObject);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
|
||||
*ThisTargetPtr = TargetObject;
|
||||
}
|
||||
else
|
||||
{
|
||||
return (Status);
|
||||
}
|
||||
/* Pass through a null element */
|
||||
|
||||
*ThisTargetPtr = TargetObject;
|
||||
*ThisTargetPtr = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 1:
|
||||
case ACPI_COPY_TYPE_PACKAGE:
|
||||
|
||||
/*
|
||||
* This object is a package - go down another nesting level
|
||||
@ -857,6 +863,19 @@ AcpiUtCopyIelementToIelement (
|
||||
}
|
||||
|
||||
TargetObject->Package.Count = SourceObject->Package.Count;
|
||||
TargetObject->Common.Flags = SourceObject->Common.Flags;
|
||||
|
||||
/*
|
||||
* Create the object array
|
||||
*/
|
||||
TargetObject->Package.Elements =
|
||||
ACPI_MEM_CALLOCATE (((ACPI_SIZE) SourceObject->Package.Count + 1) *
|
||||
sizeof (void *));
|
||||
if (!TargetObject->Package.Elements)
|
||||
{
|
||||
ACPI_MEM_FREE (TargetObject);
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/*
|
||||
* Pass the new package object back to the package walk routine
|
||||
@ -904,15 +923,16 @@ AcpiUtCopyIpackageToIpackage (
|
||||
ACPI_FUNCTION_TRACE ("UtCopyIpackageToIpackage");
|
||||
|
||||
|
||||
DestObj->Common.Type = SourceObj->Common.Type;
|
||||
DestObj->Common.Type = ACPI_GET_OBJECT_TYPE (SourceObj);
|
||||
DestObj->Common.Flags = SourceObj->Common.Flags;
|
||||
DestObj->Package.Count = SourceObj->Package.Count;
|
||||
|
||||
|
||||
/*
|
||||
* Create the object array and walk the source package tree
|
||||
*/
|
||||
DestObj->Package.Elements = ACPI_MEM_CALLOCATE ((SourceObj->Package.Count + 1) *
|
||||
sizeof (void *));
|
||||
DestObj->Package.Elements = ACPI_MEM_CALLOCATE (
|
||||
((ACPI_SIZE) SourceObj->Package.Count + 1) *
|
||||
sizeof (void *));
|
||||
if (!DestObj->Package.Elements)
|
||||
{
|
||||
ACPI_REPORT_ERROR (
|
||||
@ -920,10 +940,6 @@ AcpiUtCopyIpackageToIpackage (
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
/* Init */
|
||||
|
||||
DestObj->Package.NextElement = DestObj->Package.Elements;
|
||||
|
||||
/*
|
||||
* Copy the package element-by-element by walking the package "tree".
|
||||
* This handles nested packages of arbitrary depth.
|
||||
@ -969,7 +985,7 @@ AcpiUtCopyIobjectToIobject (
|
||||
|
||||
/* Create the top level object */
|
||||
|
||||
*DestDesc = AcpiUtCreateInternalObject (SourceDesc->Common.Type);
|
||||
*DestDesc = AcpiUtCreateInternalObject (ACPI_GET_OBJECT_TYPE (SourceDesc));
|
||||
if (!*DestDesc)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
@ -977,7 +993,7 @@ AcpiUtCopyIobjectToIobject (
|
||||
|
||||
/* Copy the object and possible subobjects */
|
||||
|
||||
if (SourceDesc->Common.Type == ACPI_TYPE_PACKAGE)
|
||||
if (ACPI_GET_OBJECT_TYPE (SourceDesc) == ACPI_TYPE_PACKAGE)
|
||||
{
|
||||
Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc,
|
||||
WalkState);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utdebug - Debug print routines
|
||||
* $Revision: 1.94 $
|
||||
* $Revision: 1.108 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -122,12 +122,11 @@
|
||||
ACPI_MODULE_NAME ("utdebug")
|
||||
|
||||
|
||||
UINT32 AcpiGbl_PrevThreadId = 0xFFFFFFFF;
|
||||
char *AcpiGbl_FnEntryStr = "----Entry";
|
||||
char *AcpiGbl_FnExitStr = "----Exit-";
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
static UINT32 AcpiGbl_PrevThreadId = 0xFFFFFFFF;
|
||||
static char *AcpiGbl_FnEntryStr = "----Entry";
|
||||
static char *AcpiGbl_FnExitStr = "----Exit-";
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
@ -206,7 +205,7 @@ AcpiUtTrackStackPtr (
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiUtDebugPrint (
|
||||
UINT32 RequestedDebugLevel,
|
||||
UINT32 LineNumber,
|
||||
@ -227,7 +226,6 @@ AcpiUtDebugPrint (
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Thread tracking and context switch notification
|
||||
*/
|
||||
@ -248,15 +246,14 @@ AcpiUtDebugPrint (
|
||||
* Display the module name, current line number, thread ID (if requested),
|
||||
* current procedure nesting level, and the current procedure name
|
||||
*/
|
||||
AcpiOsPrintf ("%8s-%04d ", DbgInfo->ModuleName, LineNumber);
|
||||
AcpiOsPrintf ("%8s-%04ld ", DbgInfo->ModuleName, LineNumber);
|
||||
|
||||
if (ACPI_LV_THREADS & AcpiDbgLevel)
|
||||
{
|
||||
AcpiOsPrintf ("[%04X] ", ThreadId, AcpiGbl_NestingLevel, DbgInfo->ProcName);
|
||||
AcpiOsPrintf ("[%04lX] ", ThreadId);
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("[%02d] %-22.22s: ", AcpiGbl_NestingLevel, DbgInfo->ProcName);
|
||||
|
||||
AcpiOsPrintf ("[%02ld] %-22.22s: ", AcpiGbl_NestingLevel, DbgInfo->ProcName);
|
||||
|
||||
va_start (args, Format);
|
||||
AcpiOsVprintf (Format, args);
|
||||
@ -283,7 +280,7 @@ AcpiUtDebugPrint (
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiUtDebugPrintRaw (
|
||||
UINT32 RequestedDebugLevel,
|
||||
UINT32 LineNumber,
|
||||
@ -301,7 +298,6 @@ AcpiUtDebugPrintRaw (
|
||||
}
|
||||
|
||||
va_start (args, Format);
|
||||
|
||||
AcpiOsVprintf (Format, args);
|
||||
}
|
||||
|
||||
@ -391,7 +387,7 @@ void
|
||||
AcpiUtTraceStr (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
NATIVE_CHAR *String)
|
||||
char *String)
|
||||
{
|
||||
|
||||
AcpiGbl_NestingLevel++;
|
||||
@ -533,7 +529,7 @@ AcpiUtValueExit (
|
||||
{
|
||||
|
||||
AcpiUtDebugPrint (ACPI_LV_FUNCTIONS, LineNumber, DbgInfo,
|
||||
"%s %8.8X%8.8X\n", AcpiGbl_FnExitStr,
|
||||
"%s %8.8X%8.8X\n", AcpiGbl_FnExitStr,
|
||||
ACPI_HIDWORD (Value), ACPI_LODWORD (Value));
|
||||
|
||||
AcpiGbl_NestingLevel--;
|
||||
@ -596,8 +592,8 @@ AcpiUtDumpBuffer (
|
||||
UINT32 Display,
|
||||
UINT32 ComponentId)
|
||||
{
|
||||
UINT32 i = 0;
|
||||
UINT32 j;
|
||||
ACPI_NATIVE_UINT i = 0;
|
||||
ACPI_NATIVE_UINT j;
|
||||
UINT32 Temp32;
|
||||
UINT8 BufChar;
|
||||
|
||||
@ -610,6 +606,12 @@ AcpiUtDumpBuffer (
|
||||
return;
|
||||
}
|
||||
|
||||
if ((Count < 4) || (Count & 0x01))
|
||||
{
|
||||
Display = DB_BYTE_DISPLAY;
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\nOffset Value\n");
|
||||
|
||||
/*
|
||||
* Nasty little dump buffer routine!
|
||||
@ -618,8 +620,7 @@ AcpiUtDumpBuffer (
|
||||
{
|
||||
/* Print current offset */
|
||||
|
||||
AcpiOsPrintf ("%05X ", i);
|
||||
|
||||
AcpiOsPrintf ("%05X ", (UINT32) i);
|
||||
|
||||
/* Print 16 hex chars */
|
||||
|
||||
@ -677,12 +678,10 @@ AcpiUtDumpBuffer (
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Print the ASCII equivalent characters
|
||||
* But watch out for the bad unprintable ones...
|
||||
*/
|
||||
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
if (i + j >= Count)
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: utdelete - object deletion and reference count utilities
|
||||
* $Revision: 1.87 $
|
||||
* $Revision: 1.95 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -119,8 +119,6 @@
|
||||
#include "acpi.h"
|
||||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "actables.h"
|
||||
#include "acparser.h"
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("utdelete")
|
||||
@ -160,18 +158,19 @@ AcpiUtDeleteInternalObj (
|
||||
* Must delete or free any pointers within the object that are not
|
||||
* actual ACPI objects (for example, a raw buffer pointer).
|
||||
*/
|
||||
switch (Object->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (Object))
|
||||
{
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** String %p, ptr %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** String %p, ptr %p\n",
|
||||
Object, Object->String.Pointer));
|
||||
|
||||
/* Free the actual string buffer */
|
||||
|
||||
if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER))
|
||||
{
|
||||
/* But only if it is NOT a pointer into an ACPI table */
|
||||
|
||||
ObjPointer = Object->String.Pointer;
|
||||
}
|
||||
break;
|
||||
@ -179,18 +178,23 @@ AcpiUtDeleteInternalObj (
|
||||
|
||||
case ACPI_TYPE_BUFFER:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Buffer %p, ptr %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** Buffer %p, ptr %p\n",
|
||||
Object, Object->Buffer.Pointer));
|
||||
|
||||
/* Free the actual buffer */
|
||||
|
||||
ObjPointer = Object->Buffer.Pointer;
|
||||
if (!(Object->Common.Flags & AOPOBJ_STATIC_POINTER))
|
||||
{
|
||||
/* But only if it is NOT a pointer into an ACPI table */
|
||||
|
||||
ObjPointer = Object->Buffer.Pointer;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, " **** Package of count %X\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, " **** Package of count %X\n",
|
||||
Object->Package.Count));
|
||||
|
||||
/*
|
||||
@ -206,33 +210,33 @@ AcpiUtDeleteInternalObj (
|
||||
|
||||
case ACPI_TYPE_MUTEX:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Mutex %p, Semaphore %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "***** Mutex %p, Semaphore %p\n",
|
||||
Object, Object->Mutex.Semaphore));
|
||||
|
||||
AcpiExUnlinkMutex (Object);
|
||||
AcpiOsDeleteSemaphore (Object->Mutex.Semaphore);
|
||||
(void) AcpiOsDeleteSemaphore (Object->Mutex.Semaphore);
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_EVENT:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Event %p, Semaphore %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "***** Event %p, Semaphore %p\n",
|
||||
Object, Object->Event.Semaphore));
|
||||
|
||||
AcpiOsDeleteSemaphore (Object->Event.Semaphore);
|
||||
(void) AcpiOsDeleteSemaphore (Object->Event.Semaphore);
|
||||
Object->Event.Semaphore = NULL;
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_METHOD:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Method %p\n", Object));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "***** Method %p\n", Object));
|
||||
|
||||
/* Delete the method semaphore if it exists */
|
||||
|
||||
if (Object->Method.Semaphore)
|
||||
{
|
||||
AcpiOsDeleteSemaphore (Object->Method.Semaphore);
|
||||
(void) AcpiOsDeleteSemaphore (Object->Method.Semaphore);
|
||||
Object->Method.Semaphore = NULL;
|
||||
}
|
||||
break;
|
||||
@ -240,7 +244,7 @@ AcpiUtDeleteInternalObj (
|
||||
|
||||
case ACPI_TYPE_REGION:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Region %p\n", Object));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "***** Region %p\n", Object));
|
||||
|
||||
SecondDesc = AcpiNsGetSecondaryObject (Object);
|
||||
if (SecondDesc)
|
||||
@ -266,7 +270,7 @@ AcpiUtDeleteInternalObj (
|
||||
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "***** Buffer Field %p\n", Object));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "***** Buffer Field %p\n", Object));
|
||||
|
||||
SecondDesc = AcpiNsGetSecondaryObject (Object);
|
||||
if (SecondDesc)
|
||||
@ -285,15 +289,15 @@ AcpiUtDeleteInternalObj (
|
||||
|
||||
if (ObjPointer)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Deleting Object Subptr %p\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Deleting Object Subptr %p\n",
|
||||
ObjPointer));
|
||||
ACPI_MEM_FREE (ObjPointer);
|
||||
}
|
||||
|
||||
/* Now the object can be safely deleted */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Deleting Object %p [%s]\n",
|
||||
Object, AcpiUtGetTypeName (Object->Common.Type)));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Deleting Object %p [%s]\n",
|
||||
Object, AcpiUtGetObjectTypeName (Object)));
|
||||
|
||||
AcpiUtDeleteObjectDesc (Object);
|
||||
return_VOID;
|
||||
@ -306,14 +310,14 @@ AcpiUtDeleteInternalObj (
|
||||
*
|
||||
* PARAMETERS: *ObjList - Pointer to the list to be deleted
|
||||
*
|
||||
* RETURN: Status - the status of the call
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: This function deletes an internal object list, including both
|
||||
* simple objects and package objects
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
void
|
||||
AcpiUtDeleteInternalObjectList (
|
||||
ACPI_OPERAND_OBJECT **ObjList)
|
||||
{
|
||||
@ -333,8 +337,7 @@ AcpiUtDeleteInternalObjectList (
|
||||
/* Free the combined parameter pointer list and object array */
|
||||
|
||||
ACPI_MEM_FREE (ObjList);
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
|
||||
@ -362,12 +365,12 @@ AcpiUtUpdateRefCount (
|
||||
|
||||
ACPI_FUNCTION_NAME ("UtUpdateRefCount");
|
||||
|
||||
|
||||
if (!Object)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Count = Object->Common.ReferenceCount;
|
||||
NewCount = Count;
|
||||
|
||||
@ -382,7 +385,7 @@ AcpiUtUpdateRefCount (
|
||||
NewCount++;
|
||||
Object->Common.ReferenceCount = NewCount;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Obj %p Refs=%X, [Incremented]\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Obj %p Refs=%X, [Incremented]\n",
|
||||
Object, NewCount));
|
||||
break;
|
||||
|
||||
@ -391,23 +394,22 @@ AcpiUtUpdateRefCount (
|
||||
|
||||
if (Count < 1)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Obj %p Refs=%X, can't decrement! (Set to 0)\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Obj %p Refs=%X, can't decrement! (Set to 0)\n",
|
||||
Object, NewCount));
|
||||
|
||||
NewCount = 0;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
NewCount--;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Obj %p Refs=%X, [Decremented]\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Obj %p Refs=%X, [Decremented]\n",
|
||||
Object, NewCount));
|
||||
}
|
||||
|
||||
if (Object->Common.Type == ACPI_TYPE_METHOD)
|
||||
if (ACPI_GET_OBJECT_TYPE (Object) == ACPI_TYPE_METHOD)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Method Obj %p Refs=%X, [Decremented]\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Method Obj %p Refs=%X, [Decremented]\n",
|
||||
Object, NewCount));
|
||||
}
|
||||
|
||||
@ -422,7 +424,7 @@ AcpiUtUpdateRefCount (
|
||||
|
||||
case REF_FORCE_DELETE:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Obj %p Refs=%X, Force delete! (Set to 0)\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Obj %p Refs=%X, Force delete! (Set to 0)\n",
|
||||
Object, Count));
|
||||
|
||||
NewCount = 0;
|
||||
@ -437,12 +439,11 @@ AcpiUtUpdateRefCount (
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Sanity check the reference count, for debug purposes only.
|
||||
* (A deleted object will have a huge reference count)
|
||||
*/
|
||||
if (Count > MAX_REFERENCE_COUNT)
|
||||
if (Count > ACPI_MAX_REFERENCE_COUNT)
|
||||
{
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_WARN,
|
||||
@ -504,7 +505,7 @@ AcpiUtUpdateObjectReference (
|
||||
*/
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (Object) == ACPI_DESC_TYPE_NAMED)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Object %p is NS handle\n", Object));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Object %p is NS handle\n", Object));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
@ -520,7 +521,7 @@ AcpiUtUpdateObjectReference (
|
||||
* All sub-objects must have their reference count incremented also.
|
||||
* Different object types have different subobjects.
|
||||
*/
|
||||
switch (Object->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (Object))
|
||||
{
|
||||
case ACPI_TYPE_DEVICE:
|
||||
|
||||
@ -528,7 +529,7 @@ AcpiUtUpdateObjectReference (
|
||||
Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
AcpiUtUpdateRefCount (Object->Device.SysHandler, Action);
|
||||
@ -536,7 +537,7 @@ AcpiUtUpdateObjectReference (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_ADDRESS_HANDLER:
|
||||
case ACPI_TYPE_LOCAL_ADDRESS_HANDLER:
|
||||
|
||||
/* Must walk list of address handlers */
|
||||
|
||||
@ -568,7 +569,7 @@ AcpiUtUpdateObjectReference (
|
||||
Object->Package.Elements[i], Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -578,63 +579,63 @@ AcpiUtUpdateObjectReference (
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->BufferField.BufferObj, Action, &StateList);
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REGION_FIELD:
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->Field.RegionObj, Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_BANK_FIELD:
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->BankField.BankObj, Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->BankField.RegionObj, Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_INDEX_FIELD:
|
||||
case ACPI_TYPE_LOCAL_INDEX_FIELD:
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->IndexField.IndexObj, Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
Status = AcpiUtCreateUpdateStateAndPush (
|
||||
Object->IndexField.DataObj, Action, &StateList);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
goto ErrorExit;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_REGION:
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
default:
|
||||
|
||||
/* No subobjects */
|
||||
break;
|
||||
@ -653,6 +654,14 @@ AcpiUtUpdateObjectReference (
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
|
||||
|
||||
ErrorExit:
|
||||
|
||||
ACPI_REPORT_ERROR (("Could not update object reference count, %s\n",
|
||||
AcpiFormatException (Status)));
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -688,8 +697,7 @@ AcpiUtAddReference (
|
||||
/*
|
||||
* We have a valid ACPI internal object, now increment the reference count
|
||||
*/
|
||||
AcpiUtUpdateObjectReference (Object, REF_INCREMENT);
|
||||
|
||||
(void) AcpiUtUpdateObjectReference (Object, REF_INCREMENT);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
@ -733,7 +741,7 @@ AcpiUtRemoveReference (
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Obj %p Refs=%X\n",
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Obj %p Refs=%X\n",
|
||||
Object, Object->Common.ReferenceCount));
|
||||
|
||||
/*
|
||||
@ -741,7 +749,7 @@ AcpiUtRemoveReference (
|
||||
* if the reference count becomes 0. (Must also decrement the ref count
|
||||
* of all subobjects!)
|
||||
*/
|
||||
AcpiUtUpdateObjectReference (Object, REF_DECREMENT);
|
||||
(void) AcpiUtUpdateObjectReference (Object, REF_DECREMENT);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: uteval - Object evaluation
|
||||
* $Revision: 1.36 $
|
||||
* $Revision: 1.45 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -125,6 +125,123 @@
|
||||
ACPI_MODULE_NAME ("uteval")
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtEvaluateObject
|
||||
*
|
||||
* PARAMETERS: PrefixNode - Starting node
|
||||
* Path - Path to object from starting node
|
||||
* ExpectedReturnTypes - Bitmap of allowed return types
|
||||
* ReturnDesc - Where a return value is stored
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Evaluates a namespace object and verifies the type of the
|
||||
* return object. Common code that simplifies accessing objects
|
||||
* that have required return objects of fixed types.
|
||||
*
|
||||
* NOTE: Internal function, no parameter validation
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtEvaluateObject (
|
||||
ACPI_NAMESPACE_NODE *PrefixNode,
|
||||
char *Path,
|
||||
UINT32 ExpectedReturnBtypes,
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *ObjDesc;
|
||||
ACPI_STATUS Status;
|
||||
UINT32 ReturnBtype;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("UtEvaluateObject");
|
||||
|
||||
|
||||
/* Evaluate the object/method */
|
||||
|
||||
Status = AcpiNsEvaluateRelative (PrefixNode, Path, NULL, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s.%s] was not found\n",
|
||||
PrefixNode->Name.Ascii, Path));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_REPORT_METHOD_ERROR ("Method execution failed",
|
||||
PrefixNode, Path, Status);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Did we get a return object? */
|
||||
|
||||
if (!ObjDesc)
|
||||
{
|
||||
if (ExpectedReturnBtypes)
|
||||
{
|
||||
ACPI_REPORT_METHOD_ERROR ("No object was returned from",
|
||||
PrefixNode, Path, AE_NOT_EXIST);
|
||||
|
||||
return_ACPI_STATUS (AE_NOT_EXIST);
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
/* Map the return object type to the bitmapped type */
|
||||
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
ReturnBtype = ACPI_BTYPE_INTEGER;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_BUFFER:
|
||||
ReturnBtype = ACPI_BTYPE_BUFFER;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
ReturnBtype = ACPI_BTYPE_STRING;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
ReturnBtype = ACPI_BTYPE_PACKAGE;
|
||||
break;
|
||||
|
||||
default:
|
||||
ReturnBtype = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Is the return object one of the expected types? */
|
||||
|
||||
if (!(ExpectedReturnBtypes & ReturnBtype))
|
||||
{
|
||||
ACPI_REPORT_METHOD_ERROR ("Return object type is incorrect",
|
||||
PrefixNode, Path, AE_TYPE);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Type returned from %s was incorrect: %X\n",
|
||||
Path, ACPI_GET_OBJECT_TYPE (ObjDesc)));
|
||||
|
||||
/* On error exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
/* Object type is OK, return it */
|
||||
|
||||
*ReturnDesc = ObjDesc;
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtEvaluateNumericObject
|
||||
@ -135,8 +252,8 @@
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: evaluates a numeric namespace object for a selected device
|
||||
* and stores results in *Address.
|
||||
* DESCRIPTION: Evaluates a numeric namespace object for a selected device
|
||||
* and stores result in *Address.
|
||||
*
|
||||
* NOTE: Internal function, no parameter validation
|
||||
*
|
||||
@ -144,7 +261,7 @@
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtEvaluateNumericObject (
|
||||
NATIVE_CHAR *ObjectName,
|
||||
char *ObjectName,
|
||||
ACPI_NAMESPACE_NODE *DeviceNode,
|
||||
ACPI_INTEGER *Address)
|
||||
{
|
||||
@ -155,58 +272,20 @@ AcpiUtEvaluateNumericObject (
|
||||
ACPI_FUNCTION_TRACE ("UtEvaluateNumericObject");
|
||||
|
||||
|
||||
/* Execute the method */
|
||||
|
||||
Status = AcpiNsEvaluateRelative (DeviceNode, ObjectName, NULL, &ObjDesc);
|
||||
Status = AcpiUtEvaluateObject (DeviceNode, ObjectName,
|
||||
ACPI_BTYPE_INTEGER, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "%s on %4.4s was not found\n",
|
||||
ObjectName, (char*)&DeviceNode->Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%s on %4.4s failed with status %s\n",
|
||||
ObjectName, (char*)&DeviceNode->Name,
|
||||
AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Get the returned Integer */
|
||||
|
||||
/* Did we get a return object? */
|
||||
|
||||
if (!ObjDesc)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from %s\n",
|
||||
ObjectName));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
/* Is the return object of the correct type? */
|
||||
|
||||
if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)
|
||||
{
|
||||
Status = AE_TYPE;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Type returned from %s was not a number: %X \n",
|
||||
ObjectName, ObjDesc->Common.Type));
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Since the structure is a union, setting any field will set all
|
||||
* of the variables in the union
|
||||
*/
|
||||
*Address = ObjDesc->Integer.Value;
|
||||
}
|
||||
*Address = ObjDesc->Integer.Value;
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -239,66 +318,29 @@ AcpiUtExecute_HID (
|
||||
ACPI_FUNCTION_TRACE ("UtExecute_HID");
|
||||
|
||||
|
||||
/* Execute the method */
|
||||
|
||||
Status = AcpiNsEvaluateRelative (DeviceNode,
|
||||
METHOD_NAME__HID, NULL, &ObjDesc);
|
||||
Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__HID,
|
||||
ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "_HID on %4.4s was not found\n",
|
||||
(char*)&DeviceNode->Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "_HID on %4.4s failed %s\n",
|
||||
(char*)&DeviceNode->Name, AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Did we get a return object? */
|
||||
|
||||
if (!ObjDesc)
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _HID\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
/* Convert the Numeric HID to string */
|
||||
|
||||
/*
|
||||
* A _HID can return either a Number (32 bit compressed EISA ID) or
|
||||
* a string
|
||||
*/
|
||||
if ((ObjDesc->Common.Type != ACPI_TYPE_INTEGER) &&
|
||||
(ObjDesc->Common.Type != ACPI_TYPE_STRING))
|
||||
{
|
||||
Status = AE_TYPE;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Type returned from _HID not a number or string: %s(%X) \n",
|
||||
AcpiUtGetTypeName (ObjDesc->Common.Type), ObjDesc->Common.Type));
|
||||
AcpiExEisaIdToString ((UINT32) ObjDesc->Integer.Value, Hid->Buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
/* Convert the Numeric HID to string */
|
||||
/* Copy the String HID from the returned object */
|
||||
|
||||
AcpiExEisaIdToString ((UINT32) ObjDesc->Integer.Value, Hid->Buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Copy the String HID from the returned object */
|
||||
|
||||
STRNCPY(Hid->Buffer, ObjDesc->String.Pointer, sizeof(Hid->Buffer));
|
||||
}
|
||||
ACPI_STRNCPY (Hid->Buffer, ObjDesc->String.Pointer, sizeof(Hid->Buffer));
|
||||
}
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -330,40 +372,20 @@ AcpiUtExecute_CID (
|
||||
|
||||
ACPI_FUNCTION_TRACE ("UtExecute_CID");
|
||||
|
||||
/* Execute the method */
|
||||
|
||||
Status = AcpiNsEvaluateRelative (DeviceNode,
|
||||
METHOD_NAME__CID, NULL, &ObjDesc);
|
||||
Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CID,
|
||||
ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "_CID on %4.4s was not found\n",
|
||||
(char *)&DeviceNode->Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "_CID on %4.4s failed %s\n",
|
||||
(char *)&DeviceNode->Name, AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Did we get a return object? */
|
||||
|
||||
if (!ObjDesc)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _CID\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
/*
|
||||
* A _CID can return either a single compatible ID or a package of compatible
|
||||
* IDs. Each compatible ID can be a Number (32 bit compressed EISA ID) or
|
||||
* string (PCI ID format, e.g. "PCI\VEN_vvvv&DEV_dddd&SUBSYS_ssssssss").
|
||||
*/
|
||||
switch (ObjDesc->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (ObjDesc))
|
||||
{
|
||||
case ACPI_TYPE_INTEGER:
|
||||
|
||||
@ -376,27 +398,25 @@ AcpiUtExecute_CID (
|
||||
|
||||
/* Copy the String CID from the returned object */
|
||||
|
||||
STRNCPY(Cid->Buffer, ObjDesc->String.Pointer, sizeof(Cid->Buffer));
|
||||
ACPI_STRNCPY (Cid->Buffer, ObjDesc->String.Pointer, sizeof (Cid->Buffer));
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_PACKAGE:
|
||||
|
||||
/* TBD: Parse package elements; need different return struct, etc. */
|
||||
|
||||
Status = AE_SUPPORT;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
Status = AE_TYPE;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Type returned from _CID not a number, string, or package: %s(%X) \n",
|
||||
AcpiUtGetTypeName (ObjDesc->Common.Type), ObjDesc->Common.Type));
|
||||
break;
|
||||
}
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
@ -426,72 +446,33 @@ AcpiUtExecute_UID (
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("UtExecute_UID");
|
||||
ACPI_FUNCTION_TRACE ("UtExecute_UID");
|
||||
|
||||
|
||||
/* Execute the method */
|
||||
|
||||
Status = AcpiNsEvaluateRelative (DeviceNode,
|
||||
METHOD_NAME__UID, NULL, &ObjDesc);
|
||||
Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__UID,
|
||||
ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "_UID on %4.4s was not found\n",
|
||||
(char*)&DeviceNode->Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"_UID on %4.4s failed %s\n",
|
||||
(char*)&DeviceNode->Name, AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
return (Status);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Did we get a return object? */
|
||||
|
||||
if (!ObjDesc)
|
||||
if (ACPI_GET_OBJECT_TYPE (ObjDesc) == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _UID\n"));
|
||||
return (AE_TYPE);
|
||||
}
|
||||
/* Convert the Numeric UID to string */
|
||||
|
||||
/*
|
||||
* A _UID can return either a Number (32 bit compressed EISA ID) or
|
||||
* a string
|
||||
*/
|
||||
if ((ObjDesc->Common.Type != ACPI_TYPE_INTEGER) &&
|
||||
(ObjDesc->Common.Type != ACPI_TYPE_STRING))
|
||||
{
|
||||
Status = AE_TYPE;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Type returned from _UID was not a number or string: %X \n",
|
||||
ObjDesc->Common.Type));
|
||||
AcpiExUnsignedIntegerToString (ObjDesc->Integer.Value, Uid->Buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ObjDesc->Common.Type == ACPI_TYPE_INTEGER)
|
||||
{
|
||||
/* Convert the Numeric UID to string */
|
||||
/* Copy the String UID from the returned object */
|
||||
|
||||
AcpiExUnsignedIntegerToString (ObjDesc->Integer.Value, Uid->Buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Copy the String UID from the returned object */
|
||||
|
||||
STRNCPY(Uid->Buffer, ObjDesc->String.Pointer, sizeof(Uid->Buffer));
|
||||
}
|
||||
ACPI_STRNCPY (Uid->Buffer, ObjDesc->String.Pointer, sizeof (Uid->Buffer));
|
||||
}
|
||||
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
|
||||
return (Status);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -523,57 +504,29 @@ AcpiUtExecute_STA (
|
||||
ACPI_FUNCTION_TRACE ("UtExecute_STA");
|
||||
|
||||
|
||||
/* Execute the method */
|
||||
|
||||
Status = AcpiNsEvaluateRelative (DeviceNode,
|
||||
METHOD_NAME__STA, NULL, &ObjDesc);
|
||||
if (AE_NOT_FOUND == Status)
|
||||
Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__STA,
|
||||
ACPI_BTYPE_INTEGER, &ObjDesc);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"_STA on %4.4s was not found, assuming present.\n",
|
||||
(char*)&DeviceNode->Name));
|
||||
|
||||
*Flags = 0x0F;
|
||||
Status = AE_OK;
|
||||
}
|
||||
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "_STA on %4.4s failed %s\n",
|
||||
(char*)&DeviceNode->Name,
|
||||
AcpiFormatException (Status)));
|
||||
}
|
||||
|
||||
else /* success */
|
||||
{
|
||||
/* Did we get a return object? */
|
||||
|
||||
if (!ObjDesc)
|
||||
if (AE_NOT_FOUND == Status)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No object was returned from _STA\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
"_STA on %4.4s was not found, assuming device is present\n",
|
||||
DeviceNode->Name.Ascii));
|
||||
|
||||
*Flags = 0x0F;
|
||||
Status = AE_OK;
|
||||
}
|
||||
|
||||
/* Is the return object of the correct type? */
|
||||
|
||||
if (ObjDesc->Common.Type != ACPI_TYPE_INTEGER)
|
||||
{
|
||||
Status = AE_TYPE;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Type returned from _STA was not a number: %X \n",
|
||||
ObjDesc->Common.Type));
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Extract the status flags */
|
||||
|
||||
*Flags = (UINT32) ObjDesc->Integer.Value;
|
||||
}
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/* Extract the status flags */
|
||||
|
||||
*Flags = (UINT32) ObjDesc->Integer.Value;
|
||||
|
||||
/* On exit, we must delete the return object */
|
||||
|
||||
AcpiUtRemoveReference (ObjDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utglobal - Global variables for the ACPI subsystem
|
||||
* $Revision: 1.151 $
|
||||
* $Revision: 1.178 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,11 +118,7 @@
|
||||
#define DEFINE_ACPI_GLOBALS
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acevents.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acinterp.h"
|
||||
#include "amlcode.h"
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("utglobal")
|
||||
@ -148,9 +144,11 @@ AcpiFormatException (
|
||||
ACPI_STATUS SubStatus;
|
||||
|
||||
|
||||
SubStatus = (Status & ~AE_CODE_MASK);
|
||||
ACPI_FUNCTION_NAME ("FormatException");
|
||||
|
||||
|
||||
SubStatus = (Status & ~AE_CODE_MASK);
|
||||
|
||||
switch (Status & AE_CODE_MASK)
|
||||
{
|
||||
case AE_CODE_ENVIRONMENTAL:
|
||||
@ -158,46 +156,56 @@ AcpiFormatException (
|
||||
if (SubStatus <= AE_CODE_ENV_MAX)
|
||||
{
|
||||
Exception = AcpiGbl_ExceptionNames_Env [SubStatus];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
goto Unknown;
|
||||
|
||||
case AE_CODE_PROGRAMMER:
|
||||
|
||||
if (SubStatus <= AE_CODE_PGM_MAX)
|
||||
{
|
||||
Exception = AcpiGbl_ExceptionNames_Pgm [SubStatus -1];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
goto Unknown;
|
||||
|
||||
case AE_CODE_ACPI_TABLES:
|
||||
|
||||
if (SubStatus <= AE_CODE_TBL_MAX)
|
||||
{
|
||||
Exception = AcpiGbl_ExceptionNames_Tbl [SubStatus -1];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
goto Unknown;
|
||||
|
||||
case AE_CODE_AML:
|
||||
|
||||
if (SubStatus <= AE_CODE_AML_MAX)
|
||||
{
|
||||
Exception = AcpiGbl_ExceptionNames_Aml [SubStatus -1];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
goto Unknown;
|
||||
|
||||
case AE_CODE_CONTROL:
|
||||
|
||||
if (SubStatus <= AE_CODE_CTRL_MAX)
|
||||
{
|
||||
Exception = AcpiGbl_ExceptionNames_Ctrl [SubStatus -1];
|
||||
break;
|
||||
}
|
||||
break;
|
||||
goto Unknown;
|
||||
|
||||
default:
|
||||
break;
|
||||
goto Unknown;
|
||||
}
|
||||
|
||||
|
||||
return ((const char *) Exception);
|
||||
|
||||
Unknown:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unknown exception code: 0x%8.8X\n", Status));
|
||||
return ((const char *) Exception);
|
||||
}
|
||||
|
||||
@ -215,10 +223,10 @@ AcpiFormatException (
|
||||
|
||||
/* Debug switch - level and trace mask */
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
UINT32 AcpiDbgLevel = DEBUG_DEFAULT;
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
UINT32 AcpiDbgLevel = ACPI_DEBUG_DEFAULT;
|
||||
#else
|
||||
UINT32 AcpiDbgLevel = NORMAL_DEFAULT;
|
||||
UINT32 AcpiDbgLevel = ACPI_NORMAL_DEFAULT;
|
||||
#endif
|
||||
|
||||
/* Debug switch - layer (component) mask */
|
||||
@ -230,6 +238,7 @@ UINT32 AcpiGbl_NestingLevel = 0;
|
||||
/* Debugger globals */
|
||||
|
||||
BOOLEAN AcpiGbl_DbTerminateThreads = FALSE;
|
||||
BOOLEAN AcpiGbl_AbortMethod = FALSE;
|
||||
BOOLEAN AcpiGbl_MethodExecuting = FALSE;
|
||||
|
||||
/* System flags */
|
||||
@ -242,9 +251,13 @@ BOOLEAN AcpiGbl_Shutdown = TRUE;
|
||||
|
||||
const UINT8 AcpiGbl_DecodeTo8bit [8] = {1,2,4,8,16,32,64,128};
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_DbSleepStates[ACPI_NUM_SLEEP_STATES] = {
|
||||
"\\_S0_","\\_S1_","\\_S2_","\\_S3_",
|
||||
"\\_S4_","\\_S5_","\\_S4B"};
|
||||
const char *AcpiGbl_DbSleepStates[ACPI_S_STATE_COUNT] = {
|
||||
"\\_S0_",
|
||||
"\\_S1_",
|
||||
"\\_S2_",
|
||||
"\\_S3_",
|
||||
"\\_S4_",
|
||||
"\\_S5_"};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
@ -255,10 +268,10 @@ const NATIVE_CHAR *AcpiGbl_DbSleepStates[ACPI_NUM_SLEEP_STATES] = {
|
||||
|
||||
|
||||
/*
|
||||
* Names built-in to the interpreter
|
||||
* Predefined ACPI Names (Built-in to the Interpreter)
|
||||
*
|
||||
* Initial values are currently supported only for types String and Number.
|
||||
* To avoid type punning, both are specified as strings in this table.
|
||||
* Both are specified as strings in this table.
|
||||
*
|
||||
* NOTES:
|
||||
* 1) _SB_ is defined to be a device to allow _SB_/_INI to be run
|
||||
@ -267,23 +280,25 @@ const NATIVE_CHAR *AcpiGbl_DbSleepStates[ACPI_NUM_SLEEP_STATES] = {
|
||||
|
||||
const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
|
||||
{
|
||||
{"_GPE", INTERNAL_TYPE_DEF_ANY},
|
||||
{"_PR_", INTERNAL_TYPE_DEF_ANY},
|
||||
{"_SB_", ACPI_TYPE_DEVICE},
|
||||
{"_SI_", INTERNAL_TYPE_DEF_ANY},
|
||||
{"_TZ_", INTERNAL_TYPE_DEF_ANY},
|
||||
{"_REV", ACPI_TYPE_INTEGER, "2"},
|
||||
{"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
|
||||
{"_GL_", ACPI_TYPE_MUTEX, "0"},
|
||||
{NULL, ACPI_TYPE_ANY} /* Table terminator */
|
||||
{"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL},
|
||||
{"_PR_", ACPI_TYPE_LOCAL_SCOPE, NULL},
|
||||
{"_SB_", ACPI_TYPE_DEVICE, NULL},
|
||||
{"_SI_", ACPI_TYPE_LOCAL_SCOPE, NULL},
|
||||
{"_TZ_", ACPI_TYPE_LOCAL_SCOPE, NULL},
|
||||
{"_REV", ACPI_TYPE_INTEGER, "2"},
|
||||
{"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
|
||||
{"_GL_", ACPI_TYPE_MUTEX, "0"},
|
||||
|
||||
#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
|
||||
{"_OSI", ACPI_TYPE_METHOD, "1"},
|
||||
#endif
|
||||
{NULL, ACPI_TYPE_ANY, NULL} /* Table terminator */
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Properties of the ACPI Object Types, both internal and external.
|
||||
*
|
||||
* Elements of AcpiNsProperties are bit significant
|
||||
* and the table is indexed by values of ACPI_OBJECT_TYPE
|
||||
* The table is indexed by values of ACPI_OBJECT_TYPE
|
||||
*/
|
||||
|
||||
const UINT8 AcpiGbl_NsProperties[] =
|
||||
@ -292,16 +307,16 @@ const UINT8 AcpiGbl_NsProperties[] =
|
||||
ACPI_NS_NORMAL, /* 01 Number */
|
||||
ACPI_NS_NORMAL, /* 02 String */
|
||||
ACPI_NS_NORMAL, /* 03 Buffer */
|
||||
ACPI_NS_LOCAL, /* 04 Package */
|
||||
ACPI_NS_NORMAL, /* 04 Package */
|
||||
ACPI_NS_NORMAL, /* 05 FieldUnit */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 06 Device */
|
||||
ACPI_NS_LOCAL, /* 07 AcpiEvent */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 08 Method */
|
||||
ACPI_NS_LOCAL, /* 09 Mutex */
|
||||
ACPI_NS_LOCAL, /* 10 Region */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 11 Power */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 12 Processor */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 13 Thermal */
|
||||
ACPI_NS_NEWSCOPE, /* 06 Device */
|
||||
ACPI_NS_NORMAL, /* 07 Event */
|
||||
ACPI_NS_NEWSCOPE, /* 08 Method */
|
||||
ACPI_NS_NORMAL, /* 09 Mutex */
|
||||
ACPI_NS_NORMAL, /* 10 Region */
|
||||
ACPI_NS_NEWSCOPE, /* 11 Power */
|
||||
ACPI_NS_NEWSCOPE, /* 12 Processor */
|
||||
ACPI_NS_NEWSCOPE, /* 13 Thermal */
|
||||
ACPI_NS_NORMAL, /* 14 BufferField */
|
||||
ACPI_NS_NORMAL, /* 15 DdbHandle */
|
||||
ACPI_NS_NORMAL, /* 16 Debug Object */
|
||||
@ -314,25 +329,18 @@ const UINT8 AcpiGbl_NsProperties[] =
|
||||
ACPI_NS_NORMAL, /* 23 Address Handler */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 24 Resource Desc */
|
||||
ACPI_NS_NEWSCOPE | ACPI_NS_LOCAL, /* 25 Resource Field */
|
||||
ACPI_NS_NORMAL, /* 26 DefFieldDefn */
|
||||
ACPI_NS_NORMAL, /* 27 BankFieldDefn */
|
||||
ACPI_NS_NORMAL, /* 28 IndexFieldDefn */
|
||||
ACPI_NS_NORMAL, /* 29 If */
|
||||
ACPI_NS_NORMAL, /* 30 Else */
|
||||
ACPI_NS_NORMAL, /* 31 While */
|
||||
ACPI_NS_NEWSCOPE, /* 32 Scope */
|
||||
ACPI_NS_LOCAL, /* 33 DefAny */
|
||||
ACPI_NS_NORMAL, /* 34 Extra */
|
||||
ACPI_NS_NORMAL, /* 35 Data */
|
||||
ACPI_NS_NORMAL /* 36 Invalid */
|
||||
ACPI_NS_NEWSCOPE, /* 26 Scope */
|
||||
ACPI_NS_NORMAL, /* 27 Extra */
|
||||
ACPI_NS_NORMAL, /* 28 Data */
|
||||
ACPI_NS_NORMAL /* 29 Invalid */
|
||||
};
|
||||
|
||||
|
||||
/* Hex to ASCII conversion table */
|
||||
|
||||
const NATIVE_CHAR AcpiGbl_HexToAscii[] =
|
||||
static const char AcpiGbl_HexToAscii[] =
|
||||
{'0','1','2','3','4','5','6','7',
|
||||
'8','9','A','B','C','D','E','F'};
|
||||
'8','9','A','B','C','D','E','F'};
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@ -348,7 +356,7 @@ const NATIVE_CHAR AcpiGbl_HexToAscii[] =
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
UINT8
|
||||
char
|
||||
AcpiUtHexToAsciiChar (
|
||||
ACPI_INTEGER Integer,
|
||||
UINT32 Position)
|
||||
@ -377,15 +385,15 @@ ACPI_TABLE_DESC AcpiGbl_AcpiTables[NUM_ACPI_TABLES];
|
||||
|
||||
ACPI_TABLE_SUPPORT AcpiGbl_AcpiTableData[NUM_ACPI_TABLES] =
|
||||
{
|
||||
/*********** Name, Signature, Global typed pointer Signature size, How many allowed?, Contains valid AML? */
|
||||
/*********** Name, Signature, Global typed pointer Signature size, Type How many allowed?, Contains valid AML? */
|
||||
|
||||
/* RSDP 0 */ {RSDP_NAME, RSDP_SIG, NULL, sizeof (RSDP_SIG)-1, ACPI_TABLE_SINGLE},
|
||||
/* DSDT 1 */ {DSDT_SIG, DSDT_SIG, (void **) &AcpiGbl_DSDT, sizeof (DSDT_SIG)-1, ACPI_TABLE_SINGLE | ACPI_TABLE_EXECUTABLE},
|
||||
/* FADT 2 */ {FADT_SIG, FADT_SIG, (void **) &AcpiGbl_FADT, sizeof (FADT_SIG)-1, ACPI_TABLE_SINGLE},
|
||||
/* FACS 3 */ {FACS_SIG, FACS_SIG, (void **) &AcpiGbl_FACS, sizeof (FACS_SIG)-1, ACPI_TABLE_SINGLE},
|
||||
/* PSDT 4 */ {PSDT_SIG, PSDT_SIG, NULL, sizeof (PSDT_SIG)-1, ACPI_TABLE_MULTIPLE | ACPI_TABLE_EXECUTABLE},
|
||||
/* SSDT 5 */ {SSDT_SIG, SSDT_SIG, NULL, sizeof (SSDT_SIG)-1, ACPI_TABLE_MULTIPLE | ACPI_TABLE_EXECUTABLE},
|
||||
/* XSDT 6 */ {XSDT_SIG, XSDT_SIG, NULL, sizeof (RSDT_SIG)-1, ACPI_TABLE_SINGLE},
|
||||
/* RSDP 0 */ {RSDP_NAME, RSDP_SIG, NULL, sizeof (RSDP_SIG)-1, ACPI_TABLE_ROOT | ACPI_TABLE_SINGLE},
|
||||
/* DSDT 1 */ {DSDT_SIG, DSDT_SIG, (void **) &AcpiGbl_DSDT, sizeof (DSDT_SIG)-1, ACPI_TABLE_SECONDARY| ACPI_TABLE_SINGLE | ACPI_TABLE_EXECUTABLE},
|
||||
/* FADT 2 */ {FADT_SIG, FADT_SIG, (void **) &AcpiGbl_FADT, sizeof (FADT_SIG)-1, ACPI_TABLE_PRIMARY | ACPI_TABLE_SINGLE},
|
||||
/* FACS 3 */ {FACS_SIG, FACS_SIG, (void **) &AcpiGbl_FACS, sizeof (FACS_SIG)-1, ACPI_TABLE_SECONDARY| ACPI_TABLE_SINGLE},
|
||||
/* PSDT 4 */ {PSDT_SIG, PSDT_SIG, NULL, sizeof (PSDT_SIG)-1, ACPI_TABLE_PRIMARY | ACPI_TABLE_MULTIPLE | ACPI_TABLE_EXECUTABLE},
|
||||
/* SSDT 5 */ {SSDT_SIG, SSDT_SIG, NULL, sizeof (SSDT_SIG)-1, ACPI_TABLE_PRIMARY | ACPI_TABLE_MULTIPLE | ACPI_TABLE_EXECUTABLE},
|
||||
/* XSDT 6 */ {XSDT_SIG, XSDT_SIG, NULL, sizeof (RSDT_SIG)-1, ACPI_TABLE_ROOT | ACPI_TABLE_SINGLE},
|
||||
};
|
||||
|
||||
|
||||
@ -448,20 +456,20 @@ ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS] =
|
||||
|
||||
/* Region type decoding */
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
|
||||
const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
|
||||
{
|
||||
"SystemMemory",
|
||||
"SystemIO",
|
||||
"PCIConfig",
|
||||
"PCI_Config",
|
||||
"EmbeddedControl",
|
||||
"SMBus",
|
||||
"CMOS",
|
||||
"PCIBarTarget",
|
||||
"PCIBARTarget",
|
||||
"DataTable",
|
||||
};
|
||||
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtGetRegionName (
|
||||
UINT8 SpaceId)
|
||||
{
|
||||
@ -476,7 +484,7 @@ AcpiUtGetRegionName (
|
||||
return ("InvalidSpaceID");
|
||||
}
|
||||
|
||||
return ((NATIVE_CHAR *) AcpiGbl_RegionTypes[SpaceId]);
|
||||
return ((char *) AcpiGbl_RegionTypes[SpaceId]);
|
||||
}
|
||||
|
||||
|
||||
@ -494,7 +502,7 @@ AcpiUtGetRegionName (
|
||||
|
||||
/* Event type decoding */
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] =
|
||||
static const char *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] =
|
||||
{
|
||||
"PM_Timer",
|
||||
"GlobalLock",
|
||||
@ -504,7 +512,7 @@ const NATIVE_CHAR *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] =
|
||||
};
|
||||
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtGetEventName (
|
||||
UINT32 EventId)
|
||||
{
|
||||
@ -514,43 +522,7 @@ AcpiUtGetEventName (
|
||||
return ("InvalidEventID");
|
||||
}
|
||||
|
||||
return ((NATIVE_CHAR *) AcpiGbl_EventTypes[EventId]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
|
||||
/*
|
||||
* Strings and procedures used for debug only
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtGetMutexName
|
||||
*
|
||||
* PARAMETERS: None.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Translate a mutex ID into a name string (Debug only)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
AcpiUtGetMutexName (
|
||||
UINT32 MutexId)
|
||||
{
|
||||
|
||||
if (MutexId > MAX_MTX)
|
||||
{
|
||||
return ("Invalid Mutex ID");
|
||||
}
|
||||
|
||||
return (AcpiGbl_MutexNames[MutexId]);
|
||||
return ((char *) AcpiGbl_EventTypes[EventId]);
|
||||
}
|
||||
|
||||
|
||||
@ -575,10 +547,10 @@ AcpiUtGetMutexName (
|
||||
* indicatewhat type is actually going to be stored for this entry.
|
||||
*/
|
||||
|
||||
static const NATIVE_CHAR AcpiGbl_BadType[] = "UNDEFINED";
|
||||
static const char AcpiGbl_BadType[] = "UNDEFINED";
|
||||
#define TYPE_NAME_LENGTH 12 /* Maximum length of each string */
|
||||
|
||||
static const NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of ACPI types */
|
||||
static const char *AcpiGbl_NsTypeNames[] = /* printable names of ACPI types */
|
||||
{
|
||||
/* 00 */ "Untyped",
|
||||
/* 01 */ "Integer",
|
||||
@ -606,77 +578,73 @@ static const NATIVE_CHAR *AcpiGbl_NsTypeNames[] = /* printable names of AC
|
||||
/* 23 */ "AddrHandler",
|
||||
/* 24 */ "ResourceDesc",
|
||||
/* 25 */ "ResourceFld",
|
||||
/* 26 */ "RegionFldDfn",
|
||||
/* 27 */ "BankFldDfn",
|
||||
/* 28 */ "IndexFldDfn",
|
||||
/* 29 */ "If",
|
||||
/* 30 */ "Else",
|
||||
/* 31 */ "While",
|
||||
/* 32 */ "Scope",
|
||||
/* 33 */ "DefAny",
|
||||
/* 34 */ "Extra",
|
||||
/* 35 */ "Data",
|
||||
/* 36 */ "Invalid"
|
||||
/* 26 */ "Scope",
|
||||
/* 27 */ "Extra",
|
||||
/* 28 */ "Data",
|
||||
/* 39 */ "Invalid"
|
||||
};
|
||||
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtGetTypeName (
|
||||
ACPI_OBJECT_TYPE Type)
|
||||
{
|
||||
|
||||
if (Type > INTERNAL_TYPE_INVALID)
|
||||
if (Type > ACPI_TYPE_INVALID)
|
||||
{
|
||||
return ((NATIVE_CHAR *) AcpiGbl_BadType);
|
||||
return ((char *) AcpiGbl_BadType);
|
||||
}
|
||||
|
||||
return ((NATIVE_CHAR *) AcpiGbl_NsTypeNames[Type]);
|
||||
return ((char *) AcpiGbl_NsTypeNames[Type]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Data used in keeping track of fields */
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_FENames[NUM_FIELD_NAMES] =
|
||||
char *
|
||||
AcpiUtGetObjectTypeName (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
"skip",
|
||||
"?access?"
|
||||
}; /* FE = Field Element */
|
||||
|
||||
if (!ObjDesc)
|
||||
{
|
||||
return ("[NULL Object Descriptor]");
|
||||
}
|
||||
|
||||
return (AcpiUtGetTypeName (ACPI_GET_OBJECT_TYPE (ObjDesc)));
|
||||
}
|
||||
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_MatchOps[NUM_MATCH_OPS] =
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
/*
|
||||
* Strings and procedures used for debug only
|
||||
*/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtGetMutexName
|
||||
*
|
||||
* PARAMETERS: None.
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Translate a mutex ID into a name string (Debug only)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
char *
|
||||
AcpiUtGetMutexName (
|
||||
UINT32 MutexId)
|
||||
{
|
||||
"Error",
|
||||
"MTR",
|
||||
"MEQ",
|
||||
"MLE",
|
||||
"MLT",
|
||||
"MGE",
|
||||
"MGT"
|
||||
};
|
||||
|
||||
if (MutexId > MAX_MTX)
|
||||
{
|
||||
return ("Invalid Mutex ID");
|
||||
}
|
||||
|
||||
/* Access type decoding */
|
||||
return (AcpiGbl_MutexNames[MutexId]);
|
||||
}
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_AccessTypes[NUM_ACCESS_TYPES] =
|
||||
{
|
||||
"AnyAcc",
|
||||
"ByteAcc",
|
||||
"WordAcc",
|
||||
"DWordAcc",
|
||||
"QWordAcc",
|
||||
"BufferAcc",
|
||||
};
|
||||
|
||||
|
||||
/* Update rule decoding */
|
||||
|
||||
const NATIVE_CHAR *AcpiGbl_UpdateRules[NUM_UPDATE_RULES] =
|
||||
{
|
||||
"Preserve",
|
||||
"WriteAsOnes",
|
||||
"WriteAsZeros"
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@ -685,7 +653,7 @@ const NATIVE_CHAR *AcpiGbl_UpdateRules[NUM_UPDATE_RULES] =
|
||||
*
|
||||
* FUNCTION: AcpiUtValidObjectType
|
||||
*
|
||||
* PARAMETERS: None.
|
||||
* PARAMETERS: Type - Object type to be validated
|
||||
*
|
||||
* RETURN: TRUE if valid object type
|
||||
*
|
||||
@ -698,13 +666,11 @@ AcpiUtValidObjectType (
|
||||
ACPI_OBJECT_TYPE Type)
|
||||
{
|
||||
|
||||
if (Type > ACPI_TYPE_MAX)
|
||||
if (Type > ACPI_TYPE_LOCAL_MAX)
|
||||
{
|
||||
if ((Type < INTERNAL_TYPE_BEGIN) ||
|
||||
(Type > INTERNAL_TYPE_MAX))
|
||||
{
|
||||
return (FALSE);
|
||||
}
|
||||
/* Note: Assumes all TYPEs are contiguous (external/local) */
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
return (TRUE);
|
||||
@ -731,7 +697,10 @@ AcpiUtAllocateOwnerId (
|
||||
ACPI_FUNCTION_TRACE ("UtAllocateOwnerId");
|
||||
|
||||
|
||||
AcpiUtAcquireMutex (ACPI_MTX_CACHES);
|
||||
if (ACPI_FAILURE (AcpiUtAcquireMutex (ACPI_MTX_CACHES)))
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
switch (IdType)
|
||||
{
|
||||
@ -757,11 +726,12 @@ AcpiUtAllocateOwnerId (
|
||||
AcpiGbl_NextMethodOwnerId = ACPI_FIRST_METHOD_ID;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
return_VALUE (OwnerId);
|
||||
}
|
||||
|
||||
@ -788,26 +758,26 @@ AcpiUtInitGlobals (
|
||||
|
||||
/* Memory allocation and cache lists */
|
||||
|
||||
MEMSET (AcpiGbl_MemoryLists, 0, sizeof (ACPI_MEMORY_LIST) * ACPI_NUM_MEM_LISTS);
|
||||
ACPI_MEMSET (AcpiGbl_MemoryLists, 0, sizeof (ACPI_MEMORY_LIST) * ACPI_NUM_MEM_LISTS);
|
||||
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_GENERIC_STATE *) NULL)->Common.Next), NULL);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_PARSE_OBJECT *) NULL)->Next), NULL);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_PARSE2_OBJECT *) NULL)->Next), NULL);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_PARSE_OBJECT *) NULL)->Common.Next), NULL);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_PARSE_OBJECT *) NULL)->Common.Next), NULL);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_OPERAND_OBJECT *) NULL)->Cache.Next), NULL);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].LinkOffset = (UINT16) ACPI_PTR_DIFF (&(((ACPI_WALK_STATE *) NULL)->Next), NULL);
|
||||
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_NSNODE].ObjectSize = sizeof (ACPI_NAMESPACE_NODE);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].ObjectSize = sizeof (ACPI_GENERIC_STATE);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].ObjectSize = sizeof (ACPI_PARSE_OBJECT);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].ObjectSize = sizeof (ACPI_PARSE2_OBJECT);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].ObjectSize = sizeof (ACPI_PARSE_OBJ_COMMON);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].ObjectSize = sizeof (ACPI_PARSE_OBJ_NAMED);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].ObjectSize = sizeof (ACPI_OPERAND_OBJECT);
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].ObjectSize = sizeof (ACPI_WALK_STATE);
|
||||
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].MaxCacheDepth = MAX_STATE_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].MaxCacheDepth = MAX_PARSE_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].MaxCacheDepth = MAX_EXTPARSE_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].MaxCacheDepth = MAX_OBJECT_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].MaxCacheDepth = MAX_WALK_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_STATE].MaxCacheDepth = ACPI_MAX_STATE_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE].MaxCacheDepth = ACPI_MAX_PARSE_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_PSNODE_EXT].MaxCacheDepth = ACPI_MAX_EXTPARSE_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_OPERAND].MaxCacheDepth = ACPI_MAX_OBJECT_CACHE_DEPTH;
|
||||
AcpiGbl_MemoryLists[ACPI_MEM_LIST_WALK].MaxCacheDepth = ACPI_MAX_WALK_CACHE_DEPTH;
|
||||
|
||||
ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_GLOBAL].ListName = "Global Memory Allocation");
|
||||
ACPI_MEM_TRACKING (AcpiGbl_MemoryLists[ACPI_MEM_LIST_NSNODE].ListName = "Namespace Nodes");
|
||||
@ -842,6 +812,7 @@ AcpiUtInitGlobals (
|
||||
|
||||
AcpiGbl_SysNotify.Handler = NULL;
|
||||
AcpiGbl_DrvNotify.Handler = NULL;
|
||||
AcpiGbl_InitHandler = NULL;
|
||||
|
||||
/* Global "typed" ACPI table pointers */
|
||||
|
||||
@ -859,6 +830,7 @@ AcpiUtInitGlobals (
|
||||
|
||||
/* Miscellaneous variables */
|
||||
|
||||
AcpiGbl_TableFlags = ACPI_PHYSICAL_POINTER;
|
||||
AcpiGbl_RsdpOriginalLocation = 0;
|
||||
AcpiGbl_CmSingleStep = FALSE;
|
||||
AcpiGbl_DbTerminateThreads = FALSE;
|
||||
@ -875,22 +847,23 @@ AcpiUtInitGlobals (
|
||||
|
||||
AcpiGbl_GpeRegisterInfo = NULL;
|
||||
AcpiGbl_GpeNumberInfo = NULL;
|
||||
AcpiGbl_EventsInitialized = FALSE;
|
||||
|
||||
/* Namespace */
|
||||
|
||||
AcpiGbl_RootNode = NULL;
|
||||
|
||||
AcpiGbl_RootNodeStruct.Name = ACPI_ROOT_NAME;
|
||||
AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
|
||||
AcpiGbl_RootNodeStruct.Descriptor = ACPI_DESC_TYPE_NAMED;
|
||||
AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_ANY;
|
||||
AcpiGbl_RootNodeStruct.Type = ACPI_TYPE_DEVICE;
|
||||
AcpiGbl_RootNodeStruct.Child = NULL;
|
||||
AcpiGbl_RootNodeStruct.Peer = NULL;
|
||||
AcpiGbl_RootNodeStruct.Object = NULL;
|
||||
AcpiGbl_RootNodeStruct.Flags = ANOBJ_END_OF_PEER_LIST;
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
AcpiGbl_LowestStackPointer = ACPI_UINT32_MAX;
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
AcpiGbl_LowestStackPointer = ACPI_SIZE_MAX;
|
||||
#endif
|
||||
|
||||
return_VOID;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utinit - Common ACPI subsystem initialization
|
||||
* $Revision: 1.108 $
|
||||
* $Revision: 1.116 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,7 +118,6 @@
|
||||
#define __UTINIT_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "achware.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acevents.h"
|
||||
|
||||
@ -126,7 +125,6 @@
|
||||
ACPI_MODULE_NAME ("utinit")
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtFadtRegisterError
|
||||
@ -144,14 +142,14 @@
|
||||
|
||||
static void
|
||||
AcpiUtFadtRegisterError (
|
||||
NATIVE_CHAR *RegisterName,
|
||||
char *RegisterName,
|
||||
UINT32 Value,
|
||||
ACPI_SIZE Offset)
|
||||
{
|
||||
|
||||
ACPI_REPORT_WARNING (
|
||||
("Invalid FADT value %s=%lX at offset %lX FADT=%p\n",
|
||||
RegisterName, Value, Offset, AcpiGbl_FADT));
|
||||
("Invalid FADT value %s=%X at offset %X FADT=%p\n",
|
||||
RegisterName, Value, (UINT32) Offset, AcpiGbl_FADT));
|
||||
}
|
||||
|
||||
|
||||
@ -284,7 +282,7 @@ AcpiUtTerminate (void)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
void
|
||||
AcpiUtSubsystemShutdown (void)
|
||||
{
|
||||
|
||||
@ -295,7 +293,7 @@ AcpiUtSubsystemShutdown (void)
|
||||
if (AcpiGbl_Shutdown)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "ACPI Subsystem is already terminated\n"));
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
/* Subsystem appears active, go ahead and shut it down */
|
||||
@ -303,21 +301,21 @@ AcpiUtSubsystemShutdown (void)
|
||||
AcpiGbl_Shutdown = TRUE;
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem...\n"));
|
||||
|
||||
/* Close the Namespace */
|
||||
|
||||
AcpiNsTerminate ();
|
||||
|
||||
/* Close the AcpiEvent Handling */
|
||||
|
||||
AcpiEvTerminate ();
|
||||
|
||||
/* Close the Namespace */
|
||||
|
||||
AcpiNsTerminate ();
|
||||
|
||||
/* Close the globals */
|
||||
|
||||
AcpiUtTerminate ();
|
||||
|
||||
/* Purge the local caches */
|
||||
|
||||
AcpiPurgeCachedObjects ();
|
||||
(void) AcpiPurgeCachedObjects ();
|
||||
|
||||
/* Debug only - display leftover memory allocation, if any */
|
||||
|
||||
@ -325,7 +323,7 @@ AcpiUtSubsystemShutdown (void)
|
||||
AcpiUtDumpAllocations (ACPI_UINT32_MAX, NULL);
|
||||
#endif
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: utmath - Integer math support routines
|
||||
* $Revision: 1.10 $
|
||||
* $Revision: 1.12 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -293,7 +293,7 @@ AcpiUtDivide (
|
||||
*/
|
||||
Partial1 = Quotient.Part.Lo * Divisor.Part.Hi;
|
||||
Partial2.Full = (ACPI_INTEGER) Quotient.Part.Lo * Divisor.Part.Lo;
|
||||
Partial3.Full = Partial2.Part.Hi + Partial1;
|
||||
Partial3.Full = (ACPI_INTEGER) Partial2.Part.Hi + Partial1;
|
||||
|
||||
Remainder.Part.Hi = Partial3.Part.Lo;
|
||||
Remainder.Part.Lo = Partial2.Part.Lo;
|
||||
@ -318,8 +318,8 @@ AcpiUtDivide (
|
||||
}
|
||||
|
||||
Remainder.Full = Remainder.Full - Dividend.Full;
|
||||
Remainder.Part.Hi = -((INT32) Remainder.Part.Hi);
|
||||
Remainder.Part.Lo = -((INT32) Remainder.Part.Lo);
|
||||
Remainder.Part.Hi = (UINT32) -((INT32) Remainder.Part.Hi);
|
||||
Remainder.Part.Lo = (UINT32) -((INT32) Remainder.Part.Lo);
|
||||
|
||||
if (Remainder.Part.Lo)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Module Name: utmisc - common utility procedures
|
||||
* $Revision: 1.65 $
|
||||
* $Revision: 1.93 $
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -118,60 +118,253 @@
|
||||
#define __UTMISC_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acevents.h"
|
||||
#include "achware.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acinterp.h"
|
||||
#include "amlcode.h"
|
||||
#include "acdebug.h"
|
||||
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("utmisc")
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtPrintString
|
||||
*
|
||||
* PARAMETERS: String - Null terminated ASCII string
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Dump an ASCII string with support for ACPI-defined escape
|
||||
* sequences.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiUtPrintString (
|
||||
char *String,
|
||||
UINT8 MaxLength)
|
||||
{
|
||||
UINT32 i;
|
||||
|
||||
|
||||
if (!String)
|
||||
{
|
||||
AcpiOsPrintf ("<\"NULL STRING PTR\">");
|
||||
return;
|
||||
}
|
||||
|
||||
AcpiOsPrintf ("\"");
|
||||
for (i = 0; String[i] && (i < MaxLength); i++)
|
||||
{
|
||||
/* Escape sequences */
|
||||
|
||||
switch (String[i])
|
||||
{
|
||||
case 0x07:
|
||||
AcpiOsPrintf ("\\a"); /* BELL */
|
||||
break;
|
||||
|
||||
case 0x08:
|
||||
AcpiOsPrintf ("\\b"); /* BACKSPACE */
|
||||
break;
|
||||
|
||||
case 0x0C:
|
||||
AcpiOsPrintf ("\\f"); /* FORMFEED */
|
||||
break;
|
||||
|
||||
case 0x0A:
|
||||
AcpiOsPrintf ("\\n"); /* LINEFEED */
|
||||
break;
|
||||
|
||||
case 0x0D:
|
||||
AcpiOsPrintf ("\\r"); /* CARRIAGE RETURN*/
|
||||
break;
|
||||
|
||||
case 0x09:
|
||||
AcpiOsPrintf ("\\t"); /* HORIZONTAL TAB */
|
||||
break;
|
||||
|
||||
case 0x0B:
|
||||
AcpiOsPrintf ("\\v"); /* VERTICAL TAB */
|
||||
break;
|
||||
|
||||
case '\'': /* Single Quote */
|
||||
case '\"': /* Double Quote */
|
||||
case '\\': /* Backslash */
|
||||
AcpiOsPrintf ("\\%c", (int) String[i]);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Check for printable character or hex escape */
|
||||
|
||||
if (ACPI_IS_PRINT (String[i]))
|
||||
{
|
||||
/* This is a normal character */
|
||||
|
||||
AcpiOsPrintf ("%c", (int) String[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All others will be Hex escapes */
|
||||
|
||||
AcpiOsPrintf ("\\x%2.2X", (INT32) String[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
AcpiOsPrintf ("\"");
|
||||
|
||||
if (i == MaxLength && String[i])
|
||||
{
|
||||
AcpiOsPrintf ("...");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtDwordByteSwap
|
||||
*
|
||||
* PARAMETERS: Value - Value to be converted
|
||||
*
|
||||
* DESCRIPTION: Convert a 32-bit value to big-endian (swap the bytes)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
UINT32
|
||||
AcpiUtDwordByteSwap (
|
||||
UINT32 Value)
|
||||
{
|
||||
union
|
||||
{
|
||||
UINT32 Value;
|
||||
UINT8 Bytes[4];
|
||||
} Out;
|
||||
|
||||
union
|
||||
{
|
||||
UINT32 Value;
|
||||
UINT8 Bytes[4];
|
||||
} In;
|
||||
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
In.Value = Value;
|
||||
|
||||
Out.Bytes[0] = In.Bytes[3];
|
||||
Out.Bytes[1] = In.Bytes[2];
|
||||
Out.Bytes[2] = In.Bytes[1];
|
||||
Out.Bytes[3] = In.Bytes[0];
|
||||
|
||||
return (Out.Value);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtSetIntegerWidth
|
||||
*
|
||||
* PARAMETERS: Revision From DSDT header
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Set the global integer bit width based upon the revision
|
||||
* of the DSDT. For Revision 1 and 0, Integers are 32 bits.
|
||||
* For Revision 2 and above, Integers are 64 bits. Yes, this
|
||||
* makes a difference.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiUtSetIntegerWidth (
|
||||
UINT8 Revision)
|
||||
{
|
||||
|
||||
if (Revision <= 1)
|
||||
{
|
||||
AcpiGbl_IntegerBitWidth = 32;
|
||||
AcpiGbl_IntegerByteWidth = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
AcpiGbl_IntegerBitWidth = 64;
|
||||
AcpiGbl_IntegerByteWidth = 8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtDisplayInitPathname
|
||||
*
|
||||
* PARAMETERS: ObjHandle - Handle whose pathname will be displayed
|
||||
* Path - Additional path string to be appended
|
||||
* Path - Additional path string to be appended.
|
||||
* (NULL if no extra path)
|
||||
*
|
||||
* RETURN: ACPI_STATUS
|
||||
*
|
||||
* DESCRIPTION: Display full pathnbame of an object, DEBUG ONLY
|
||||
* DESCRIPTION: Display full pathname of an object, DEBUG ONLY
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
AcpiUtDisplayInitPathname (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT8 Type,
|
||||
ACPI_NAMESPACE_NODE *ObjHandle,
|
||||
char *Path)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_BUFFER Buffer;
|
||||
|
||||
|
||||
ACPI_FUNCTION_NAME ("UtDisplayInitPathname");
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
/* Only print the path if the appropriate debug level is enabled */
|
||||
|
||||
if (!(AcpiDbgLevel & ACPI_LV_INIT_NAMES))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* Get the full pathname to the node */
|
||||
|
||||
Buffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER;
|
||||
|
||||
Status = AcpiNsHandleToPathname (ObjHandle, &Buffer);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Path)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "%s.%s\n", (char *) Buffer.Pointer, Path));
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "%s\n", (char *) Buffer.Pointer));
|
||||
}
|
||||
|
||||
ACPI_MEM_FREE (Buffer.Pointer);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Print what we're doing */
|
||||
|
||||
switch (Type)
|
||||
{
|
||||
case ACPI_TYPE_METHOD:
|
||||
AcpiOsPrintf ("Executing ");
|
||||
break;
|
||||
|
||||
default:
|
||||
AcpiOsPrintf ("Initializing ");
|
||||
break;
|
||||
}
|
||||
|
||||
/* Print the object type and pathname */
|
||||
|
||||
AcpiOsPrintf ("%-12s %s", AcpiUtGetTypeName (Type), (char *) Buffer.Pointer);
|
||||
|
||||
/* Extra path is used to append names like _STA, _INI, etc. */
|
||||
|
||||
if (Path)
|
||||
{
|
||||
AcpiOsPrintf (".%s", Path);
|
||||
}
|
||||
AcpiOsPrintf ("\n");
|
||||
|
||||
ACPI_MEM_FREE (Buffer.Pointer);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -195,7 +388,7 @@ BOOLEAN
|
||||
AcpiUtValidAcpiName (
|
||||
UINT32 Name)
|
||||
{
|
||||
NATIVE_CHAR *NamePtr = (NATIVE_CHAR *) &Name;
|
||||
char *NamePtr = (char *) &Name;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
@ -230,7 +423,7 @@ AcpiUtValidAcpiName (
|
||||
|
||||
BOOLEAN
|
||||
AcpiUtValidAcpiCharacter (
|
||||
NATIVE_CHAR Character)
|
||||
char Character)
|
||||
{
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
@ -241,6 +434,169 @@ AcpiUtValidAcpiCharacter (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrtoul64
|
||||
*
|
||||
* PARAMETERS: String - Null terminated string
|
||||
* Terminater - Where a pointer to the terminating byte is returned
|
||||
* Base - Radix of the string
|
||||
*
|
||||
* RETURN: Converted value
|
||||
*
|
||||
* DESCRIPTION: Convert a string into an unsigned value.
|
||||
*
|
||||
******************************************************************************/
|
||||
#define NEGATIVE 1
|
||||
#define POSITIVE 0
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtStrtoul64 (
|
||||
char *String,
|
||||
UINT32 Base,
|
||||
ACPI_INTEGER *RetInteger)
|
||||
{
|
||||
UINT32 Index;
|
||||
ACPI_INTEGER ReturnValue = 0;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
ACPI_INTEGER Dividend;
|
||||
ACPI_INTEGER Quotient;
|
||||
|
||||
|
||||
*RetInteger = 0;
|
||||
|
||||
switch (Base)
|
||||
{
|
||||
case 0:
|
||||
case 8:
|
||||
case 10:
|
||||
case 16:
|
||||
break;
|
||||
|
||||
default:
|
||||
/*
|
||||
* The specified Base parameter is not in the domain of
|
||||
* this function:
|
||||
*/
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
/*
|
||||
* skip over any white space in the buffer:
|
||||
*/
|
||||
while (ACPI_IS_SPACE (*String) || *String == '\t')
|
||||
{
|
||||
++String;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the input parameter Base is zero, then we need to
|
||||
* determine if it is octal, decimal, or hexadecimal:
|
||||
*/
|
||||
if (Base == 0)
|
||||
{
|
||||
if (*String == '0')
|
||||
{
|
||||
if (ACPI_TOLOWER (*(++String)) == 'x')
|
||||
{
|
||||
Base = 16;
|
||||
++String;
|
||||
}
|
||||
else
|
||||
{
|
||||
Base = 8;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Base = 10;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For octal and hexadecimal bases, skip over the leading
|
||||
* 0 or 0x, if they are present.
|
||||
*/
|
||||
if (Base == 8 && *String == '0')
|
||||
{
|
||||
String++;
|
||||
}
|
||||
|
||||
if (Base == 16 &&
|
||||
*String == '0' &&
|
||||
ACPI_TOLOWER (*(++String)) == 'x')
|
||||
{
|
||||
String++;
|
||||
}
|
||||
|
||||
/* Main loop: convert the string to an unsigned long */
|
||||
|
||||
while (*String)
|
||||
{
|
||||
if (ACPI_IS_DIGIT (*String))
|
||||
{
|
||||
Index = ((UINT8) *String) - '0';
|
||||
}
|
||||
else
|
||||
{
|
||||
Index = (UINT8) ACPI_TOUPPER (*String);
|
||||
if (ACPI_IS_UPPER ((char) Index))
|
||||
{
|
||||
Index = Index - 'A' + 10;
|
||||
}
|
||||
else
|
||||
{
|
||||
goto ErrorExit;
|
||||
}
|
||||
}
|
||||
|
||||
if (Index >= Base)
|
||||
{
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
/* Check to see if value is out of range: */
|
||||
|
||||
Dividend = ACPI_INTEGER_MAX - (ACPI_INTEGER) Index;
|
||||
(void) AcpiUtShortDivide (&Dividend, Base, &Quotient, NULL);
|
||||
if (ReturnValue > Quotient)
|
||||
{
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
ReturnValue *= Base;
|
||||
ReturnValue += Index;
|
||||
++String;
|
||||
}
|
||||
|
||||
*RetInteger = ReturnValue;
|
||||
return (Status);
|
||||
|
||||
|
||||
ErrorExit:
|
||||
switch (Base)
|
||||
{
|
||||
case 8:
|
||||
Status = AE_BAD_OCTAL_CONSTANT;
|
||||
break;
|
||||
|
||||
case 10:
|
||||
Status = AE_BAD_DECIMAL_CONSTANT;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
Status = AE_BAD_HEX_CONSTANT;
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Base validated above */
|
||||
break;
|
||||
}
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtStrupr
|
||||
@ -253,11 +609,11 @@ AcpiUtValidAcpiCharacter (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
NATIVE_CHAR *
|
||||
char *
|
||||
AcpiUtStrupr (
|
||||
NATIVE_CHAR *SrcString)
|
||||
char *SrcString)
|
||||
{
|
||||
NATIVE_CHAR *String;
|
||||
char *String;
|
||||
|
||||
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
@ -267,11 +623,10 @@ AcpiUtStrupr (
|
||||
|
||||
for (String = SrcString; *String; )
|
||||
{
|
||||
*String = (char) TOUPPER (*String);
|
||||
*String = (char) ACPI_TOUPPER (*String);
|
||||
String++;
|
||||
}
|
||||
|
||||
|
||||
return (SrcString);
|
||||
}
|
||||
|
||||
@ -341,7 +696,7 @@ AcpiUtMutexTerminate (
|
||||
*/
|
||||
for (i = 0; i < NUM_MTX; i++)
|
||||
{
|
||||
AcpiUtDeleteMutex (i);
|
||||
(void) AcpiUtDeleteMutex (i);
|
||||
}
|
||||
|
||||
return_VOID;
|
||||
@ -375,7 +730,6 @@ AcpiUtCreateMutex (
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
if (!AcpiGbl_AcpiMutexInfo[MutexId].Mutex)
|
||||
{
|
||||
Status = AcpiOsCreateSemaphore (1, 1,
|
||||
@ -415,7 +769,6 @@ AcpiUtDeleteMutex (
|
||||
return_ACPI_STATUS (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
Status = AcpiOsDeleteSemaphore (AcpiGbl_AcpiMutexInfo[MutexId].Mutex);
|
||||
|
||||
AcpiGbl_AcpiMutexInfo[MutexId].Mutex = NULL;
|
||||
@ -454,7 +807,6 @@ AcpiUtAcquireMutex (
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
ThisThreadId = AcpiOsGetThreadId ();
|
||||
|
||||
/*
|
||||
@ -485,14 +837,12 @@ AcpiUtAcquireMutex (
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX,
|
||||
"Thread %X attempting to acquire Mutex [%s]\n",
|
||||
ThisThreadId, AcpiUtGetMutexName (MutexId)));
|
||||
|
||||
Status = AcpiOsWaitSemaphore (AcpiGbl_AcpiMutexInfo[MutexId].Mutex,
|
||||
1, WAIT_FOREVER);
|
||||
|
||||
1, ACPI_WAIT_FOREVER);
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %X acquired Mutex [%s]\n",
|
||||
@ -501,7 +851,6 @@ AcpiUtAcquireMutex (
|
||||
AcpiGbl_AcpiMutexInfo[MutexId].UseCount++;
|
||||
AcpiGbl_AcpiMutexInfo[MutexId].OwnerId = ThisThreadId;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Thread %X could not acquire Mutex [%s] %s\n",
|
||||
@ -547,7 +896,6 @@ AcpiUtReleaseMutex (
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Mutex must be acquired in order to release it!
|
||||
*/
|
||||
@ -560,7 +908,6 @@ AcpiUtReleaseMutex (
|
||||
return (AE_NOT_ACQUIRED);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Deadlock prevention. Check if this thread owns any mutexes of value
|
||||
* greater than this one. If so, the thread has violated the mutex
|
||||
@ -584,7 +931,6 @@ AcpiUtReleaseMutex (
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Mark unlocked FIRST */
|
||||
|
||||
AcpiGbl_AcpiMutexInfo[MutexId].OwnerId = ACPI_MUTEX_NOT_ACQUIRED;
|
||||
@ -646,7 +992,6 @@ AcpiUtCreateUpdateStateAndPush (
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
|
||||
AcpiUtPushGenericState (StateList, State);
|
||||
return (AE_OK);
|
||||
}
|
||||
@ -685,7 +1030,6 @@ AcpiUtCreatePkgStateAndPush (
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
|
||||
AcpiUtPushGenericState (StateList, State);
|
||||
return (AE_OK);
|
||||
}
|
||||
@ -954,7 +1298,6 @@ AcpiUtCreateControlState (
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
|
||||
/* Init fields specific to the control struct */
|
||||
|
||||
State->Common.DataType = ACPI_DESC_TYPE_STATE_CONTROL;
|
||||
@ -1014,116 +1357,6 @@ AcpiUtDeleteGenericStateCache (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtResolveReference
|
||||
*
|
||||
* PARAMETERS: ACPI_PKG_CALLBACK
|
||||
*
|
||||
* RETURN: Status - the status of the call
|
||||
*
|
||||
* DESCRIPTION: Resolve a reference object to an actual value
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtResolveReference (
|
||||
UINT8 ObjectType,
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
ACPI_GENERIC_STATE *State,
|
||||
void *Context)
|
||||
{
|
||||
ACPI_PKG_INFO *Info = (ACPI_PKG_INFO *) Context;
|
||||
|
||||
|
||||
switch (ObjectType)
|
||||
{
|
||||
case ACPI_COPY_TYPE_SIMPLE:
|
||||
|
||||
/*
|
||||
* Simple object - check for a reference
|
||||
*/
|
||||
if (SourceObject->Common.Type == INTERNAL_TYPE_REFERENCE)
|
||||
{
|
||||
switch (SourceObject->Reference.Opcode)
|
||||
{
|
||||
case AML_ZERO_OP:
|
||||
|
||||
SourceObject->Common.Type = ACPI_TYPE_INTEGER;
|
||||
SourceObject->Integer.Value = 0;
|
||||
break;
|
||||
|
||||
case AML_ONE_OP:
|
||||
|
||||
SourceObject->Common.Type = ACPI_TYPE_INTEGER;
|
||||
SourceObject->Integer.Value = 1;
|
||||
break;
|
||||
|
||||
case AML_ONES_OP:
|
||||
|
||||
SourceObject->Common.Type = ACPI_TYPE_INTEGER;
|
||||
SourceObject->Integer.Value = ACPI_INTEGER_MAX;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_COPY_TYPE_PACKAGE:
|
||||
|
||||
/* Package object - nothing much to do here, let the walk handle it */
|
||||
|
||||
Info->NumPackages++;
|
||||
State->Pkg.ThisTargetObj = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtResolvePackageReferences
|
||||
*
|
||||
* PARAMETERS: ObjDesc - The Package object on which to resolve refs
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Walk through a package and turn internal references into values
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtResolvePackageReferences (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
ACPI_PKG_INFO Info;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("UtResolvePackageReferences");
|
||||
|
||||
|
||||
if (ObjDesc->Common.Type != ACPI_TYPE_PACKAGE)
|
||||
{
|
||||
/* The object must be a package */
|
||||
|
||||
ACPI_REPORT_ERROR (("Expecting a Package object\n"));
|
||||
return_ACPI_STATUS (AE_TYPE);
|
||||
}
|
||||
|
||||
Info.Length = 0;
|
||||
Info.ObjectSpace = 0;
|
||||
Info.NumPackages = 1;
|
||||
|
||||
Status = AcpiUtWalkPackageTree (ObjDesc, NULL,
|
||||
AcpiUtResolveReference, &Info);
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtWalkPackageTree
|
||||
@ -1161,6 +1394,8 @@ AcpiUtWalkPackageTree (
|
||||
|
||||
while (State)
|
||||
{
|
||||
/* Get one element of the package */
|
||||
|
||||
ThisIndex = State->Pkg.Index;
|
||||
ThisSourceObj = (ACPI_OPERAND_OBJECT *)
|
||||
State->Pkg.SourceObject->Package.Elements[ThisIndex];
|
||||
@ -1174,8 +1409,8 @@ AcpiUtWalkPackageTree (
|
||||
* case below.
|
||||
*/
|
||||
if ((!ThisSourceObj) ||
|
||||
(ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != ACPI_DESC_TYPE_INTERNAL) ||
|
||||
(ThisSourceObj->Common.Type != ACPI_TYPE_PACKAGE))
|
||||
(ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != ACPI_DESC_TYPE_OPERAND) ||
|
||||
(ACPI_GET_OBJECT_TYPE (ThisSourceObj) != ACPI_TYPE_PACKAGE))
|
||||
{
|
||||
Status = WalkCallback (ACPI_COPY_TYPE_SIMPLE, ThisSourceObj,
|
||||
State, Context);
|
||||
@ -1268,6 +1503,7 @@ AcpiUtGenerateChecksum (
|
||||
UINT32 i;
|
||||
signed char Sum = 0;
|
||||
|
||||
|
||||
for (i = 0; i < Length; i++)
|
||||
{
|
||||
Sum = (signed char) (Sum + Buffer[i]);
|
||||
@ -1351,7 +1587,7 @@ AcpiUtGetResourceEndTag (
|
||||
|
||||
void
|
||||
AcpiUtReportError (
|
||||
NATIVE_CHAR *ModuleName,
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId)
|
||||
{
|
||||
@ -1378,7 +1614,7 @@ AcpiUtReportError (
|
||||
|
||||
void
|
||||
AcpiUtReportWarning (
|
||||
NATIVE_CHAR *ModuleName,
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId)
|
||||
{
|
||||
@ -1404,7 +1640,7 @@ AcpiUtReportWarning (
|
||||
|
||||
void
|
||||
AcpiUtReportInfo (
|
||||
NATIVE_CHAR *ModuleName,
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId)
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utobject - ACPI object create/delete/size/cache routines
|
||||
* $Revision: 1.68 $
|
||||
* $Revision: 1.82 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -117,9 +117,7 @@
|
||||
#define __UTOBJECT_C__
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acinterp.h"
|
||||
#include "acnamesp.h"
|
||||
#include "actables.h"
|
||||
#include "amlcode.h"
|
||||
|
||||
|
||||
@ -131,10 +129,9 @@
|
||||
*
|
||||
* FUNCTION: AcpiUtCreateInternalObjectDbg
|
||||
*
|
||||
* PARAMETERS: Address - Address of the memory to deallocate
|
||||
* Component - Component type of caller
|
||||
* Module - Source file name of caller
|
||||
* Line - Line number of caller
|
||||
* PARAMETERS: ModuleName - Source file name of caller
|
||||
* LineNumber - Line number of caller
|
||||
* ComponentId - Component type of caller
|
||||
* Type - ACPI Type of the new object
|
||||
*
|
||||
* RETURN: Object - The new object. Null on failure
|
||||
@ -151,7 +148,7 @@
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiUtCreateInternalObjectDbg (
|
||||
NATIVE_CHAR *ModuleName,
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId,
|
||||
ACPI_OBJECT_TYPE Type)
|
||||
@ -185,13 +182,17 @@ AcpiUtCreateInternalObjectDbg (
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
SecondObject->Common.Type = INTERNAL_TYPE_EXTRA;
|
||||
SecondObject->Common.Type = ACPI_TYPE_LOCAL_EXTRA;
|
||||
SecondObject->Common.ReferenceCount = 1;
|
||||
|
||||
/* Link the second object to the first */
|
||||
|
||||
Object->Common.NextObject = SecondObject;
|
||||
break;
|
||||
|
||||
default:
|
||||
/* All others have no secondary object */
|
||||
break;
|
||||
}
|
||||
|
||||
/* Save the object type in the object descriptor */
|
||||
@ -208,11 +209,66 @@ AcpiUtCreateInternalObjectDbg (
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtCreateBufferObject
|
||||
*
|
||||
* PARAMETERS: BufferSize - Size of buffer to be created
|
||||
*
|
||||
* RETURN: Pointer to a new Buffer object
|
||||
*
|
||||
* DESCRIPTION: Create a fully initialized buffer object
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiUtCreateBufferObject (
|
||||
ACPI_SIZE BufferSize)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *BufferDesc;
|
||||
UINT8 *Buffer;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_U32 ("UtCreateBufferObject", BufferSize);
|
||||
|
||||
|
||||
/*
|
||||
* Create a new Buffer object
|
||||
*/
|
||||
BufferDesc = AcpiUtCreateInternalObject (ACPI_TYPE_BUFFER);
|
||||
if (!BufferDesc)
|
||||
{
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
/* Allocate the actual buffer */
|
||||
|
||||
Buffer = ACPI_MEM_CALLOCATE (BufferSize);
|
||||
if (!Buffer)
|
||||
{
|
||||
ACPI_REPORT_ERROR (("CreateBuffer: could not allocate size %X\n",
|
||||
(UINT32) BufferSize));
|
||||
AcpiUtRemoveReference (BufferDesc);
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
/* Complete buffer object initialization */
|
||||
|
||||
BufferDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
|
||||
BufferDesc->Buffer.Pointer = Buffer;
|
||||
BufferDesc->Buffer.Length = (UINT32) BufferSize;
|
||||
|
||||
/* Return the new buffer descriptor */
|
||||
|
||||
return_PTR (BufferDesc);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiUtValidInternalObject
|
||||
*
|
||||
* PARAMETERS: Operand - Object to be validated
|
||||
* PARAMETERS: Object - Object to be validated
|
||||
*
|
||||
* RETURN: Validate a pointer to be an ACPI_OPERAND_OBJECT
|
||||
*
|
||||
@ -230,8 +286,7 @@ AcpiUtValidInternalObject (
|
||||
|
||||
if (!Object)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"**** Null Object Ptr\n"));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "**** Null Object Ptr\n"));
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
@ -239,7 +294,7 @@ AcpiUtValidInternalObject (
|
||||
|
||||
switch (ACPI_GET_DESCRIPTOR_TYPE (Object))
|
||||
{
|
||||
case ACPI_DESC_TYPE_INTERNAL:
|
||||
case ACPI_DESC_TYPE_OPERAND:
|
||||
|
||||
/* The object appears to be a valid ACPI_OPERAND_OBJECT */
|
||||
|
||||
@ -257,10 +312,17 @@ AcpiUtValidInternalObject (
|
||||
"**** Obj %p is a parser obj, not ACPI obj\n", Object));
|
||||
break;
|
||||
|
||||
case ACPI_DESC_TYPE_CACHED:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"**** Obj %p has already been released to internal cache\n", Object));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"**** Obj %p is of unknown type\n", Object));
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"**** Obj %p has unknown descriptor type %X\n", Object,
|
||||
ACPI_GET_DESCRIPTOR_TYPE (Object)));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -275,7 +337,6 @@ AcpiUtValidInternalObject (
|
||||
* PARAMETERS: ModuleName - Caller's module name (for error output)
|
||||
* LineNumber - Caller's line number (for error output)
|
||||
* ComponentId - Caller's component ID (for error output)
|
||||
* Message - Error message to use on failure
|
||||
*
|
||||
* RETURN: Pointer to newly allocated object descriptor. Null on error
|
||||
*
|
||||
@ -286,7 +347,7 @@ AcpiUtValidInternalObject (
|
||||
|
||||
void *
|
||||
AcpiUtAllocateObjectDescDbg (
|
||||
NATIVE_CHAR *ModuleName,
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId)
|
||||
{
|
||||
@ -305,13 +366,12 @@ AcpiUtAllocateObjectDescDbg (
|
||||
return_PTR (NULL);
|
||||
}
|
||||
|
||||
|
||||
/* Mark the descriptor type */
|
||||
|
||||
ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_INTERNAL);
|
||||
ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_OPERAND);
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n",
|
||||
Object, sizeof (ACPI_OPERAND_OBJECT)));
|
||||
Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT)));
|
||||
|
||||
return_PTR (Object);
|
||||
}
|
||||
@ -321,7 +381,7 @@ AcpiUtAllocateObjectDescDbg (
|
||||
*
|
||||
* FUNCTION: AcpiUtDeleteObjectDesc
|
||||
*
|
||||
* PARAMETERS: Object - Acpi internal object to be deleted
|
||||
* PARAMETERS: Object - An Acpi internal object to be deleted
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
@ -338,7 +398,7 @@ AcpiUtDeleteObjectDesc (
|
||||
|
||||
/* Object must be an ACPI_OPERAND_OBJECT */
|
||||
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_INTERNAL)
|
||||
if (ACPI_GET_DESCRIPTOR_TYPE (Object) != ACPI_DESC_TYPE_OPERAND)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
"Obj %p is not an ACPI object\n", Object));
|
||||
@ -357,7 +417,7 @@ AcpiUtDeleteObjectDesc (
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Status
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Purge the global state object cache. Used during subsystem
|
||||
* termination.
|
||||
@ -381,12 +441,12 @@ AcpiUtDeleteObjectCache (
|
||||
* FUNCTION: AcpiUtGetSimpleObjectSize
|
||||
*
|
||||
* PARAMETERS: *InternalObject - Pointer to the object we are examining
|
||||
* *RetLength - Where the length is returned
|
||||
* *ObjLength - Where the length is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: This function is called to determine the space required to
|
||||
* contain a simple object for return to an API user.
|
||||
* contain a simple object for return to an external user.
|
||||
*
|
||||
* The length includes the object structure plus any additional
|
||||
* needed space.
|
||||
@ -413,7 +473,6 @@ AcpiUtGetSimpleObjectSize (
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/* Start with the length of the Acpi object */
|
||||
|
||||
Length = sizeof (ACPI_OBJECT);
|
||||
@ -426,26 +485,23 @@ AcpiUtGetSimpleObjectSize (
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* The final length depends on the object type
|
||||
* Strings and Buffers are packed right up against the parent object and
|
||||
* must be accessed bytewise or there may be alignment problems on
|
||||
* certain processors
|
||||
*/
|
||||
|
||||
switch (InternalObject->Common.Type)
|
||||
switch (ACPI_GET_OBJECT_TYPE (InternalObject))
|
||||
{
|
||||
|
||||
case ACPI_TYPE_STRING:
|
||||
|
||||
Length += InternalObject->String.Length + 1;
|
||||
Length += (ACPI_SIZE) InternalObject->String.Length + 1;
|
||||
break;
|
||||
|
||||
|
||||
case ACPI_TYPE_BUFFER:
|
||||
|
||||
Length += InternalObject->Buffer.Length;
|
||||
Length += (ACPI_SIZE) InternalObject->Buffer.Length;
|
||||
break;
|
||||
|
||||
|
||||
@ -459,19 +515,10 @@ AcpiUtGetSimpleObjectSize (
|
||||
break;
|
||||
|
||||
|
||||
case INTERNAL_TYPE_REFERENCE:
|
||||
case ACPI_TYPE_LOCAL_REFERENCE:
|
||||
|
||||
switch (InternalObject->Reference.Opcode)
|
||||
{
|
||||
case AML_ZERO_OP:
|
||||
case AML_ONE_OP:
|
||||
case AML_ONES_OP:
|
||||
case AML_REVISION_OP:
|
||||
|
||||
/* These Constant opcodes will be resolved to Integers */
|
||||
|
||||
break;
|
||||
|
||||
case AML_INT_NAMEPATH_OP:
|
||||
|
||||
/*
|
||||
@ -485,7 +532,7 @@ AcpiUtGetSimpleObjectSize (
|
||||
|
||||
/*
|
||||
* No other reference opcodes are supported.
|
||||
* Notably, Locals and Args are not supported, by this may be
|
||||
* Notably, Locals and Args are not supported, but this may be
|
||||
* required eventually.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
|
||||
@ -500,12 +547,11 @@ AcpiUtGetSimpleObjectSize (
|
||||
default:
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unsupported type=%X in object %p\n",
|
||||
InternalObject->Common.Type, InternalObject));
|
||||
ACPI_GET_OBJECT_TYPE (InternalObject), InternalObject));
|
||||
Status = AE_TYPE;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Account for the space required by the object rounded up to the next
|
||||
* multiple of the machine word size. This keeps each object aligned
|
||||
@ -523,7 +569,7 @@ AcpiUtGetSimpleObjectSize (
|
||||
*
|
||||
* PARAMETERS: ACPI_PKG_CALLBACK
|
||||
*
|
||||
* RETURN: Status - the status of the call
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Get the length of one package element.
|
||||
*
|
||||
@ -566,6 +612,13 @@ AcpiUtGetElementLength (
|
||||
Info->NumPackages++;
|
||||
State->Pkg.ThisTargetObj = NULL;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
|
||||
/* No other types allowed */
|
||||
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
return (Status);
|
||||
@ -577,12 +630,12 @@ AcpiUtGetElementLength (
|
||||
* FUNCTION: AcpiUtGetPackageObjectSize
|
||||
*
|
||||
* PARAMETERS: *InternalObject - Pointer to the object we are examining
|
||||
* *RetLength - Where the length is returned
|
||||
* *ObjLength - Where the length is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: This function is called to determine the space required to
|
||||
* contain a package object for return to an API user.
|
||||
* contain a package object for return to an external user.
|
||||
*
|
||||
* This is moderately complex since a package contains other
|
||||
* objects including packages.
|
||||
@ -618,7 +671,7 @@ AcpiUtGetPackageObjectSize (
|
||||
* Round up to the next machine word.
|
||||
*/
|
||||
Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)) *
|
||||
Info.NumPackages;
|
||||
(ACPI_SIZE) Info.NumPackages;
|
||||
|
||||
/* Return the total package length */
|
||||
|
||||
@ -632,7 +685,7 @@ AcpiUtGetPackageObjectSize (
|
||||
* FUNCTION: AcpiUtGetObjectSize
|
||||
*
|
||||
* PARAMETERS: *InternalObject - Pointer to the object we are examining
|
||||
* *RetLength - Where the length will be returned
|
||||
* *ObjLength - Where the length will be returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
@ -652,8 +705,8 @@ AcpiUtGetObjectSize(
|
||||
ACPI_FUNCTION_ENTRY ();
|
||||
|
||||
|
||||
if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_INTERNAL) &&
|
||||
(InternalObject->Common.Type == ACPI_TYPE_PACKAGE))
|
||||
if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_OPERAND) &&
|
||||
(ACPI_GET_OBJECT_TYPE (InternalObject) == ACPI_TYPE_PACKAGE))
|
||||
{
|
||||
Status = AcpiUtGetPackageObjectSize (InternalObject, ObjLength);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utxface - External interfaces for "global" ACPI functions
|
||||
* $Revision: 1.91 $
|
||||
* $Revision: 1.101 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
@ -119,15 +119,10 @@
|
||||
|
||||
#include "acpi.h"
|
||||
#include "acevents.h"
|
||||
#include "achware.h"
|
||||
#include "acnamesp.h"
|
||||
#include "acinterp.h"
|
||||
#include "amlcode.h"
|
||||
#include "acdebug.h"
|
||||
#include "acexcep.h"
|
||||
#include "acparser.h"
|
||||
#include "acdispat.h"
|
||||
|
||||
#include "acdebug.h"
|
||||
|
||||
#define _COMPONENT ACPI_UTILITIES
|
||||
ACPI_MODULE_NAME ("utxface")
|
||||
@ -198,7 +193,7 @@ AcpiInitializeSubsystem (
|
||||
|
||||
/* If configured, initialize the AML debugger */
|
||||
|
||||
ACPI_DEBUGGER_EXEC (AcpiDbInitialize ());
|
||||
ACPI_DEBUGGER_EXEC (Status = AcpiDbInitialize ());
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
@ -229,14 +224,14 @@ AcpiEnableSubsystem (
|
||||
|
||||
/*
|
||||
* Install the default OpRegion handlers. These are installed unless
|
||||
* other handlers have already been installed via the
|
||||
* other handlers have already been installed via the
|
||||
* InstallAddressSpaceHandler interface
|
||||
*/
|
||||
if (!(Flags & ACPI_NO_ADDRESS_SPACE_INIT))
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Installing default address space handlers\n"));
|
||||
|
||||
Status = AcpiEvInstallDefaultAddressSpaceHandlers ();
|
||||
Status = AcpiEvInitAddressSpaces ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
@ -265,6 +260,8 @@ AcpiEnableSubsystem (
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[Init] Going into ACPI mode\n"));
|
||||
|
||||
AcpiGbl_OriginalMode = AcpiHwGetMode();
|
||||
|
||||
Status = AcpiEnable ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
@ -303,6 +300,31 @@ AcpiEnableSubsystem (
|
||||
}
|
||||
}
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiInitializeObjects
|
||||
*
|
||||
* PARAMETERS: Flags - Init/enable Options
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Completes namespace initialization by initializing device
|
||||
* objects and executing AML code for Regions, buffers, etc.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInitializeObjects (
|
||||
UINT32 Flags)
|
||||
{
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiInitializeObjects");
|
||||
|
||||
/*
|
||||
* Initialize all device objects in the namespace
|
||||
* This runs the _STA and _INI methods.
|
||||
@ -361,6 +383,9 @@ AcpiEnableSubsystem (
|
||||
ACPI_STATUS
|
||||
AcpiTerminate (void)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE ("AcpiTerminate");
|
||||
|
||||
|
||||
@ -378,7 +403,7 @@ AcpiTerminate (void)
|
||||
AcpiUtMutexTerminate ();
|
||||
|
||||
|
||||
#ifdef ENABLE_DEBUGGER
|
||||
#ifdef ACPI_DEBUGGER
|
||||
|
||||
/* Shut down the debugger */
|
||||
|
||||
@ -387,10 +412,8 @@ AcpiTerminate (void)
|
||||
|
||||
/* Now we can shutdown the OS-dependent layer */
|
||||
|
||||
AcpiOsTerminate ();
|
||||
|
||||
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
Status = AcpiOsTerminate ();
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -517,6 +540,41 @@ AcpiGetSystemInfo (
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiInstallInitializationHandler
|
||||
*
|
||||
* PARAMETERS: Handler - Callback procedure
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Install an initialization handler
|
||||
*
|
||||
* TBD: When a second function is added, must save the Function also.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInstallInitializationHandler (
|
||||
ACPI_INIT_HANDLER Handler,
|
||||
UINT32 Function)
|
||||
{
|
||||
|
||||
if (!Handler)
|
||||
{
|
||||
return (AE_BAD_PARAMETER);
|
||||
}
|
||||
|
||||
if (AcpiGbl_InitHandler)
|
||||
{
|
||||
return (AE_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
AcpiGbl_InitHandler = Handler;
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiPurgeCachedObjects
|
||||
|
190
source/include/acapps.h
Normal file
190
source/include/acapps.h
Normal file
@ -0,0 +1,190 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: acapps - common include for ACPI applications/tools
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _ACAPPS
|
||||
#define _ACAPPS
|
||||
|
||||
|
||||
#ifdef _MSC_VER /* disable some level-4 warnings */
|
||||
#pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */
|
||||
#endif
|
||||
|
||||
extern UINT8 *DsdtPtr;
|
||||
extern UINT32 AcpiDsdtLength;
|
||||
extern UINT8 *AmlStart;
|
||||
extern UINT32 AmlLength;
|
||||
|
||||
|
||||
extern int AcpiGbl_Optind;
|
||||
extern char *AcpiGbl_Optarg;
|
||||
|
||||
int
|
||||
AcpiGetopt(
|
||||
int argc,
|
||||
char **argv,
|
||||
char *opts);
|
||||
|
||||
ACPI_STATUS
|
||||
AdInitialize (
|
||||
void);
|
||||
|
||||
char *
|
||||
FlGenerateFilename (
|
||||
char *InputFilename,
|
||||
char *Suffix);
|
||||
|
||||
ACPI_STATUS
|
||||
FlSplitInputPathname (
|
||||
char *InputPath,
|
||||
char **OutDirectoryPath,
|
||||
char **OutFilename);
|
||||
|
||||
ACPI_STATUS
|
||||
AdAmlDisassemble (
|
||||
BOOLEAN OutToFile,
|
||||
char *Filename,
|
||||
char *Prefix,
|
||||
char **OutFilename,
|
||||
BOOLEAN GetAllTables);
|
||||
|
||||
void
|
||||
AdPrintStatistics (void);
|
||||
|
||||
ACPI_STATUS
|
||||
AdFindDsdt(
|
||||
UINT8 **DsdtPtr,
|
||||
UINT32 *DsdtLength);
|
||||
|
||||
void
|
||||
AdDumpTables (void);
|
||||
|
||||
ACPI_STATUS
|
||||
AdGetTables (
|
||||
char *Filename,
|
||||
BOOLEAN GetAllTables);
|
||||
|
||||
ACPI_STATUS
|
||||
AdParseTables (void);
|
||||
|
||||
ACPI_STATUS
|
||||
AdDisplayTables (
|
||||
char *Filename);
|
||||
|
||||
ACPI_STATUS
|
||||
AdDisplayStatistics (void);
|
||||
|
||||
|
||||
#endif /* _ACAPPS */
|
||||
|
280
source/include/acconfig.h
Normal file
280
source/include/acconfig.h
Normal file
@ -0,0 +1,280 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acconfig.h - Global configuration constants
|
||||
* $Revision: 1.124 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _ACCONFIG_H
|
||||
#define _ACCONFIG_H
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Compile-time options
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
|
||||
* ACPI subsystem. This includes the DEBUG_PRINT output
|
||||
* statements. When disabled, all DEBUG_PRINT
|
||||
* statements are compiled out.
|
||||
*
|
||||
* ACPI_APPLICATION - Use this switch if the subsystem is going to be run
|
||||
* at the application level.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Subsystem Constants
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/* Version string */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20021217
|
||||
|
||||
/* Version of ACPI supported */
|
||||
|
||||
#define ACPI_CA_SUPPORT_LEVEL 2
|
||||
|
||||
/* Maximum objects in the various object caches */
|
||||
|
||||
#define ACPI_MAX_STATE_CACHE_DEPTH 64 /* State objects for stacks */
|
||||
#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
|
||||
#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 64 /* Parse tree objects */
|
||||
#define ACPI_MAX_OBJECT_CACHE_DEPTH 64 /* Interpreter operand objects */
|
||||
#define ACPI_MAX_WALK_CACHE_DEPTH 4 /* Objects for parse tree walks */
|
||||
|
||||
/* String size constants */
|
||||
|
||||
#define ACPI_MAX_STRING_LENGTH 512
|
||||
#define ACPI_PATHNAME_MAX 256 /* A full namespace pathname */
|
||||
|
||||
/* Maximum count for a semaphore object */
|
||||
|
||||
#define ACPI_MAX_SEMAPHORE_COUNT 256
|
||||
|
||||
/* Max reference count (for debug only) */
|
||||
|
||||
#define ACPI_MAX_REFERENCE_COUNT 0x400
|
||||
|
||||
/* Size of cached memory mapping for system memory operation region */
|
||||
|
||||
#define ACPI_SYSMEM_REGION_WINDOW_SIZE 4096
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Configuration of subsystem behavior
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Should the subystem abort the loading of an ACPI table if the
|
||||
* table checksum is incorrect?
|
||||
*/
|
||||
#define ACPI_CHECKSUM_ABORT FALSE
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI Specification constants (Do not change unless the specification changes)
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/* Number of distinct GPE register blocks and register width */
|
||||
|
||||
#define ACPI_MAX_GPE_BLOCKS 2
|
||||
#define ACPI_GPE_REGISTER_WIDTH 8
|
||||
|
||||
/*
|
||||
* Method info (in WALK_STATE), containing local variables and argumetns
|
||||
*/
|
||||
#define ACPI_METHOD_NUM_LOCALS 8
|
||||
#define ACPI_METHOD_MAX_LOCAL 7
|
||||
|
||||
#define ACPI_METHOD_NUM_ARGS 7
|
||||
#define ACPI_METHOD_MAX_ARG 6
|
||||
|
||||
/* Maximum length of resulting string when converting from a buffer */
|
||||
|
||||
#define ACPI_MAX_STRING_CONVERSION 200
|
||||
|
||||
/*
|
||||
* Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
|
||||
*/
|
||||
#define ACPI_OBJ_NUM_OPERANDS 8
|
||||
#define ACPI_OBJ_MAX_OPERAND 7
|
||||
|
||||
/* Names within the namespace are 4 bytes long */
|
||||
|
||||
#define ACPI_NAME_SIZE 4
|
||||
#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
|
||||
#define ACPI_PATH_SEPARATOR '.'
|
||||
|
||||
/* Constants used in searching for the RSDP in low memory */
|
||||
|
||||
#define ACPI_LO_RSDP_WINDOW_BASE 0 /* Physical Address */
|
||||
#define ACPI_HI_RSDP_WINDOW_BASE 0xE0000 /* Physical Address */
|
||||
#define ACPI_LO_RSDP_WINDOW_SIZE 0x400
|
||||
#define ACPI_HI_RSDP_WINDOW_SIZE 0x20000
|
||||
#define ACPI_RSDP_SCAN_STEP 16
|
||||
|
||||
/* Operation regions */
|
||||
|
||||
#define ACPI_NUM_PREDEFINED_REGIONS 8
|
||||
#define ACPI_USER_REGION_BEGIN 0x80
|
||||
|
||||
/* Maximum SpaceIds for Operation Regions */
|
||||
|
||||
#define ACPI_MAX_ADDRESS_SPACE 255
|
||||
|
||||
/* Array sizes. Used for range checking also */
|
||||
|
||||
#define ACPI_NUM_ACCESS_TYPES 6
|
||||
#define ACPI_NUM_UPDATE_RULES 3
|
||||
#define ACPI_NUM_LOCK_RULES 2
|
||||
#define ACPI_NUM_MATCH_OPS 6
|
||||
#define ACPI_NUM_OPCODES 256
|
||||
#define ACPI_NUM_FIELD_NAMES 2
|
||||
|
||||
/* RSDP checksums */
|
||||
|
||||
#define ACPI_RSDP_CHECKSUM_LENGTH 20
|
||||
#define ACPI_RSDP_XCHECKSUM_LENGTH 36
|
||||
|
||||
/* SMBus bidirectional buffer size */
|
||||
|
||||
#define ACPI_SMBUS_BUFFER_SIZE 34
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI AML Debugger
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#define ACPI_DEBUGGER_MAX_ARGS 8 /* Must be max method args + 1 */
|
||||
|
||||
#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
|
||||
#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
|
||||
|
||||
|
||||
#endif /* _ACCONFIG_H */
|
||||
|
524
source/include/acdebug.h
Normal file
524
source/include/acdebug.h
Normal file
@ -0,0 +1,524 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acdebug.h - ACPI/AML debugger
|
||||
* $Revision: 1.66 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACDEBUG_H__
|
||||
#define __ACDEBUG_H__
|
||||
|
||||
|
||||
#define ACPI_DEBUG_BUFFER_SIZE 4196
|
||||
|
||||
typedef struct CommandInfo
|
||||
{
|
||||
char *Name; /* Command Name */
|
||||
UINT8 MinArgs; /* Minimum arguments required */
|
||||
|
||||
} COMMAND_INFO;
|
||||
|
||||
|
||||
typedef struct ArgumentInfo
|
||||
{
|
||||
char *Name; /* Argument Name */
|
||||
|
||||
} ARGUMENT_INFO;
|
||||
|
||||
|
||||
#define PARAM_LIST(pl) pl
|
||||
|
||||
#define DBTEST_OUTPUT_LEVEL(lvl) if (AcpiGbl_DbOpt_verbose)
|
||||
|
||||
#define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\
|
||||
AcpiOsPrintf PARAM_LIST(fp);}
|
||||
|
||||
#define EX_NO_SINGLE_STEP 1
|
||||
#define EX_SINGLE_STEP 2
|
||||
|
||||
|
||||
/* Prototypes */
|
||||
|
||||
|
||||
/*
|
||||
* dbapi - external debugger interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbInitialize (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbTerminate (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbSingleStep (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT32 OpType);
|
||||
|
||||
|
||||
/*
|
||||
* dbcmds - debug commands and output routines
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDbDisplayTableInfo (
|
||||
char *TableArg);
|
||||
|
||||
void
|
||||
AcpiDbUnloadAcpiTable (
|
||||
char *TableArg,
|
||||
char *InstanceArg);
|
||||
|
||||
void
|
||||
AcpiDbSetMethodBreakpoint (
|
||||
char *Location,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDbSetMethodCallBreakpoint (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDbDisassembleAml (
|
||||
char *Statements,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDbDumpNamespace (
|
||||
char *StartArg,
|
||||
char *DepthArg);
|
||||
|
||||
void
|
||||
AcpiDbDumpNamespaceByOwner (
|
||||
char *OwnerArg,
|
||||
char *DepthArg);
|
||||
|
||||
void
|
||||
AcpiDbSendNotify (
|
||||
char *Name,
|
||||
UINT32 Value);
|
||||
|
||||
void
|
||||
AcpiDbSetMethodData (
|
||||
char *TypeArg,
|
||||
char *IndexArg,
|
||||
char *ValueArg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbDisplayObjects (
|
||||
char *ObjTypeArg,
|
||||
char *DisplayCountArg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbFindNameInNamespace (
|
||||
char *NameArg);
|
||||
|
||||
void
|
||||
AcpiDbSetScope (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AcpiDbFindReferences (
|
||||
char *ObjectArg);
|
||||
|
||||
void
|
||||
AcpiDbDisplayLocks (void);
|
||||
|
||||
|
||||
void
|
||||
AcpiDbDisplayResources (
|
||||
char *ObjectArg);
|
||||
|
||||
void
|
||||
AcpiDbCheckIntegrity (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbIntegrityWalk (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbWalkAndMatchName (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbWalkForReferences (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbWalkForSpecificObjects (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
|
||||
/*
|
||||
* dbdisply - debug display commands
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDbDisplayMethodInfo (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDbDecodeAndDisplayObject (
|
||||
char *Target,
|
||||
char *OutputType);
|
||||
|
||||
void
|
||||
AcpiDbDecodeNode (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
void
|
||||
AcpiDbDisplayResultObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbDisplayAllMethods (
|
||||
char *DisplayCountArg);
|
||||
|
||||
void
|
||||
AcpiDbDisplayInternalObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDbDisplayArguments (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbDisplayLocals (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbDisplayResults (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbDisplayCallingTree (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbDisplayArgumentObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDbDumpParserDescriptor (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void *
|
||||
AcpiDbGetPointer (
|
||||
void *Target);
|
||||
|
||||
void
|
||||
AcpiDbDecodeInternalObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
|
||||
/*
|
||||
* dbexec - debugger control method execution
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDbExecute (
|
||||
char *Name,
|
||||
char **Args,
|
||||
UINT32 Flags);
|
||||
|
||||
void
|
||||
AcpiDbCreateExecutionThreads (
|
||||
char *NumThreadsArg,
|
||||
char *NumLoopsArg,
|
||||
char *MethodNameArg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbExecuteMethod (
|
||||
ACPI_DB_METHOD_INFO *Info,
|
||||
ACPI_BUFFER *ReturnObj);
|
||||
|
||||
void
|
||||
AcpiDbExecuteSetup (
|
||||
ACPI_DB_METHOD_INFO *Info);
|
||||
|
||||
UINT32
|
||||
AcpiDbGetOutstandingAllocations (
|
||||
void);
|
||||
|
||||
void ACPI_SYSTEM_XFACE
|
||||
AcpiDbMethodThread (
|
||||
void *Context);
|
||||
|
||||
|
||||
/*
|
||||
* dbfileio - Debugger file I/O commands
|
||||
*/
|
||||
|
||||
ACPI_OBJECT_TYPE
|
||||
AcpiDbMatchArgument (
|
||||
char *UserArgument,
|
||||
ARGUMENT_INFO *Arguments);
|
||||
|
||||
ACPI_STATUS
|
||||
AeLocalLoadTable (
|
||||
ACPI_TABLE_HEADER *TablePtr);
|
||||
|
||||
void
|
||||
AcpiDbCloseDebugFile (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbOpenDebugFile (
|
||||
char *Name);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbLoadAcpiTable (
|
||||
char *Filename);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbGetAcpiTable (
|
||||
char *Filename);
|
||||
|
||||
/*
|
||||
* dbhistry - debugger HISTORY command
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDbAddToHistory (
|
||||
char *CommandLine);
|
||||
|
||||
void
|
||||
AcpiDbDisplayHistory (void);
|
||||
|
||||
char *
|
||||
AcpiDbGetFromHistory (
|
||||
char *CommandNumArg);
|
||||
|
||||
|
||||
/*
|
||||
* dbinput - user front-end to the AML debugger
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbCommandDispatch (
|
||||
char *InputBuffer,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void ACPI_SYSTEM_XFACE
|
||||
AcpiDbExecuteThread (
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbUserCommands (
|
||||
char Prompt,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDbDisplayHelp (
|
||||
char *HelpType);
|
||||
|
||||
char *
|
||||
AcpiDbGetNextToken (
|
||||
char *String,
|
||||
char **Next);
|
||||
|
||||
UINT32
|
||||
AcpiDbGetLine (
|
||||
char *InputBuffer);
|
||||
|
||||
UINT32
|
||||
AcpiDbMatchCommand (
|
||||
char *UserCommand);
|
||||
|
||||
void
|
||||
AcpiDbSingleThread (
|
||||
void);
|
||||
|
||||
|
||||
/*
|
||||
* dbstats - Generation and display of ACPI table statistics
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDbGenerateStatistics (
|
||||
ACPI_PARSE_OBJECT *Root,
|
||||
BOOLEAN IsMethod);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbDisplayStatistics (
|
||||
char *TypeArg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbClassifyOneObject (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
void
|
||||
AcpiDbCountNamespaceObjects (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiDbEnumerateObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
|
||||
/*
|
||||
* dbutils - AML debugger utilities
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDbSetOutputDestination (
|
||||
UINT32 Where);
|
||||
|
||||
void
|
||||
AcpiDbDumpBuffer (
|
||||
UINT32 Address);
|
||||
|
||||
void
|
||||
AcpiDbDumpObject (
|
||||
ACPI_OBJECT *ObjDesc,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDbPrepNamestring (
|
||||
char *Name);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDbSecondPassParse (
|
||||
ACPI_PARSE_OBJECT *Root);
|
||||
|
||||
ACPI_NAMESPACE_NODE *
|
||||
AcpiDbLocalNsLookup (
|
||||
char *Name);
|
||||
|
||||
|
||||
#endif /* __ACDEBUG_H__ */
|
452
source/include/acdisasm.h
Normal file
452
source/include/acdisasm.h
Normal file
@ -0,0 +1,452 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acdisasm.h - AML disassembler
|
||||
* $Revision: 1.8 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACDISASM_H__
|
||||
#define __ACDISASM_H__
|
||||
|
||||
#include "amlresrc.h"
|
||||
|
||||
|
||||
#define BLOCK_NONE 0
|
||||
#define BLOCK_PAREN 1
|
||||
#define BLOCK_BRACE 2
|
||||
#define BLOCK_COMMA_LIST 4
|
||||
|
||||
extern const char *AcpiGbl_IoDecode[2];
|
||||
extern const char *AcpiGbl_WordDecode[4];
|
||||
extern const char *AcpiGbl_ConsumeDecode[2];
|
||||
extern const char *AcpiGbl_MinDecode[2];
|
||||
extern const char *AcpiGbl_MaxDecode[2];
|
||||
extern const char *AcpiGbl_DECDecode[2];
|
||||
extern const char *AcpiGbl_RNGDecode[4];
|
||||
extern const char *AcpiGbl_MEMDecode[4];
|
||||
extern const char *AcpiGbl_RWDecode[2];
|
||||
extern const char *AcpiGbl_IrqDecode[2];
|
||||
extern const char *AcpiGbl_HEDecode[2];
|
||||
extern const char *AcpiGbl_LLDecode[2];
|
||||
extern const char *AcpiGbl_SHRDecode[2];
|
||||
extern const char *AcpiGbl_TYPDecode[4];
|
||||
extern const char *AcpiGbl_BMDecode[2];
|
||||
extern const char *AcpiGbl_SIZDecode[4];
|
||||
extern const char *AcpiGbl_LockRule[ACPI_NUM_LOCK_RULES];
|
||||
extern const char *AcpiGbl_AccessTypes[ACPI_NUM_ACCESS_TYPES];
|
||||
extern const char *AcpiGbl_UpdateRules[ACPI_NUM_UPDATE_RULES];
|
||||
extern const char *AcpiGbl_MatchOps[ACPI_NUM_MATCH_OPS];
|
||||
|
||||
|
||||
typedef struct acpi_op_walk_info
|
||||
{
|
||||
UINT32 Level;
|
||||
UINT32 BitOffset;
|
||||
|
||||
} ACPI_OP_WALK_INFO;
|
||||
|
||||
typedef
|
||||
ACPI_STATUS (*ASL_WALK_CALLBACK) (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT32 Level,
|
||||
void *Context);
|
||||
|
||||
|
||||
/*
|
||||
* dmwalk
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDmWalkParseTree (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ASL_WALK_CALLBACK DescendingCallback,
|
||||
ASL_WALK_CALLBACK AscendingCallback,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDmDescendingOp (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT32 Level,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDmAscendingOp (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT32 Level,
|
||||
void *Context);
|
||||
|
||||
|
||||
/*
|
||||
* dmopcode
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDmValidateName (
|
||||
char *Name,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
UINT32
|
||||
AcpiDmDumpName (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AcpiDmUnicode (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmDisassemble (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Origin,
|
||||
UINT32 NumOpcodes);
|
||||
|
||||
void
|
||||
AcpiDmNamestring (
|
||||
char *Name);
|
||||
|
||||
void
|
||||
AcpiDmDisplayPath (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmDisassembleOneOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OP_WALK_INFO *Info,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmDecodeInternalObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
void
|
||||
AcpiDmDecodeNode (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
UINT32
|
||||
AcpiDmBlockType (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
UINT32
|
||||
AcpiDmListType (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsDisplayObjectPathname (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmMethodFlags (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmFieldFlags (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmAddressSpace (
|
||||
UINT8 SpaceId);
|
||||
|
||||
void
|
||||
AcpiDmRegionFlags (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmMatchOp (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmMatchKeyword (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
BOOLEAN
|
||||
AcpiDmCommaIfListMember (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmCommaIfFieldMember (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/*
|
||||
* dmbuffer
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiIsEisaId (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmEisaId (
|
||||
UINT32 EncodedId);
|
||||
|
||||
BOOLEAN
|
||||
AcpiDmIsUnicodeBuffer (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
BOOLEAN
|
||||
AcpiDmIsStringBuffer (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/*
|
||||
* dmresrc
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDmDisasmByteList (
|
||||
UINT32 Level,
|
||||
UINT8 *ByteData,
|
||||
UINT32 ByteCount);
|
||||
|
||||
void
|
||||
AcpiDmByteList (
|
||||
ACPI_OP_WALK_INFO *Info,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmResourceDescriptor (
|
||||
ACPI_OP_WALK_INFO *Info,
|
||||
UINT8 *ByteData,
|
||||
UINT32 ByteCount);
|
||||
|
||||
BOOLEAN
|
||||
AcpiDmIsResourceDescriptor (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiDmIndent (
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmBitList (
|
||||
UINT16 Mask);
|
||||
|
||||
void
|
||||
AcpiDmDecodeAttribute (
|
||||
UINT8 Attribute);
|
||||
|
||||
/*
|
||||
* dmresrcl
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDmIoFlags (
|
||||
UINT8 Flags);
|
||||
|
||||
void
|
||||
AcpiDmMemoryFlags (
|
||||
UINT8 Flags,
|
||||
UINT8 SpecificFlags);
|
||||
|
||||
void
|
||||
AcpiDmWordDescriptor (
|
||||
ASL_WORD_ADDRESS_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmDwordDescriptor (
|
||||
ASL_DWORD_ADDRESS_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmQwordDescriptor (
|
||||
ASL_QWORD_ADDRESS_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmMemory24Descriptor (
|
||||
ASL_MEMORY_24_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmMemory32Descriptor (
|
||||
ASL_MEMORY_32_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmFixedMem32Descriptor (
|
||||
ASL_FIXED_MEMORY_32_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmGenericRegisterDescriptor (
|
||||
ASL_GENERAL_REGISTER_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmInterruptDescriptor (
|
||||
ASL_EXTENDED_XRUPT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmVendorLargeDescriptor (
|
||||
ASL_LARGE_VENDOR_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
|
||||
/*
|
||||
* dmresrcs
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiDmIrqDescriptor (
|
||||
ASL_IRQ_FORMAT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmDmaDescriptor (
|
||||
ASL_DMA_FORMAT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmIoDescriptor (
|
||||
ASL_IO_PORT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmFixedIoDescriptor (
|
||||
ASL_FIXED_IO_PORT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmStartDependentDescriptor (
|
||||
ASL_START_DEPENDENT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmEndDependentDescriptor (
|
||||
ASL_START_DEPENDENT_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
void
|
||||
AcpiDmVendorSmallDescriptor (
|
||||
ASL_SMALL_VENDOR_DESC *Resource,
|
||||
UINT32 Length,
|
||||
UINT32 Level);
|
||||
|
||||
|
||||
#endif /* __ACDISASM_H__ */
|
586
source/include/acdispat.h
Normal file
586
source/include/acdispat.h
Normal file
@ -0,0 +1,586 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acdispat.h - dispatcher (parser to interpreter interface)
|
||||
* $Revision: 1.56 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef _ACDISPAT_H_
|
||||
#define _ACDISPAT_H_
|
||||
|
||||
|
||||
#define NAMEOF_LOCAL_NTE "__L0"
|
||||
#define NAMEOF_ARG_NTE "__A0"
|
||||
|
||||
|
||||
/* Common interfaces */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsObjStackPush (
|
||||
void *Object,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsObjStackPop (
|
||||
UINT32 PopCount,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void *
|
||||
AcpiDsObjStackGetValue (
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsObjStackPopObject (
|
||||
ACPI_OPERAND_OBJECT **Object,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/* dsopcode - support for late evaluation */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecuteArguments (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_NAMESPACE_NODE *ScopeNode,
|
||||
UINT32 AmlLength,
|
||||
UINT8 *AmlStart);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetBufferFieldArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetRegionArguments (
|
||||
ACPI_OPERAND_OBJECT *RgnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetBufferArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetPackageArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitBufferField (
|
||||
UINT16 AmlOpcode,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *BufferDesc,
|
||||
ACPI_OPERAND_OBJECT *OffsetDesc,
|
||||
ACPI_OPERAND_OBJECT *LengthDesc,
|
||||
ACPI_OPERAND_OBJECT *ResultDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsEvalBufferFieldOperands (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsEvalRegionOperands (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsEvalDataObjectOperands (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitializeRegion (
|
||||
ACPI_HANDLE ObjHandle);
|
||||
|
||||
|
||||
/* dsctrl - Parser/Interpreter interface, control stack routines */
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecBeginControlOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecEndControlOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/* dsexec - Parser/Interpreter interface, method execution callbacks */
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetPredicateValue (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *ResultObj);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecBeginOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT **OutOp);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecEndOp (
|
||||
ACPI_WALK_STATE *State);
|
||||
|
||||
|
||||
/* dsfield - Parser/Interpreter interface for AML fields */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetFieldNames (
|
||||
ACPI_CREATE_FIELD_INFO *Info,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Arg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateField (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_NAMESPACE_NODE *RegionNode,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateBankField (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_NAMESPACE_NODE *RegionNode,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateIndexField (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_NAMESPACE_NODE *RegionNode,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateBufferField (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitFieldObjects (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/* dsload - Parser/Interpreter interface, namespace load callbacks */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsLoad1BeginOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT **OutOp);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsLoad1EndOp (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsLoad2BeginOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT **OutOp);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsLoad2EndOp (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitCallbacks (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
UINT32 PassNumber);
|
||||
|
||||
|
||||
/* dsmthdat - method data (locals/args) */
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsStoreObjectToLocal (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_OPERAND_OBJECT *SrcDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsMethodDataGetEntry (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT ***Node);
|
||||
|
||||
void
|
||||
AcpiDsMethodDataDeleteAll (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
BOOLEAN
|
||||
AcpiDsIsMethodValue (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_OBJECT_TYPE
|
||||
AcpiDsMethodDataGetType (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsMethodDataGetValue (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT **DestDesc);
|
||||
|
||||
void
|
||||
AcpiDsMethodDataDeleteValue (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsMethodDataInitArgs (
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
UINT32 MaxParamCount,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsMethodDataGetNode (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_NAMESPACE_NODE **Node);
|
||||
|
||||
void
|
||||
AcpiDsMethodDataInit (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsMethodDataSetValue (
|
||||
UINT16 Opcode,
|
||||
UINT32 Index,
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/* dsmethod - Parser/Interpreter interface - control method parsing */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsParseMethod (
|
||||
ACPI_HANDLE ObjHandle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCallControlMethod (
|
||||
ACPI_THREAD_STATE *Thread,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsRestartControlMethod (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsTerminateControlMethod (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsBeginMethodExecution (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_NAMESPACE_NODE *CallingMethodNode);
|
||||
|
||||
|
||||
/* dsobj - Parser/Interpreter interface - object initialization and conversion */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitOneObject (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 Level,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitializeObjects (
|
||||
ACPI_TABLE_DESC *TableDesc,
|
||||
ACPI_NAMESPACE_NODE *StartNode);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsBuildInternalBufferObj (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT32 BufferLength,
|
||||
ACPI_OPERAND_OBJECT **ObjDescPtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsBuildInternalPackageObj (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *op,
|
||||
UINT32 PackageLength,
|
||||
ACPI_OPERAND_OBJECT **ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsBuildInternalObject (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_OPERAND_OBJECT **ObjDescPtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitObjectFromOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT16 Opcode,
|
||||
ACPI_OPERAND_OBJECT **ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateNode (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/* dsutils - Parser/Interpreter interface utility routines */
|
||||
|
||||
BOOLEAN
|
||||
AcpiDsIsResultUsed (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDsDeleteResultIfNotUsed (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_OPERAND_OBJECT *ResultObj,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateOperand (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Arg,
|
||||
UINT32 ArgsRemaining);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCreateOperands (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *FirstArg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResolveOperands (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDsClearOperands (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* dswscope - Scope Stack manipulation
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsScopeStackPush (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsScopeStackPop (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDsScopeStackClear (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/* dswstate - parser WALK_STATE management routines */
|
||||
|
||||
ACPI_WALK_STATE *
|
||||
AcpiDsCreateWalkState (
|
||||
ACPI_OWNER_ID OwnerId,
|
||||
ACPI_PARSE_OBJECT *Origin,
|
||||
ACPI_OPERAND_OBJECT *MthDesc,
|
||||
ACPI_THREAD_STATE *Thread);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitAmlWalk (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
UINT8 *AmlStart,
|
||||
UINT32 AmlLength,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObjDesc,
|
||||
UINT32 PassNumber);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsObjStackDeleteAll (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsObjStackPopAndDelete (
|
||||
UINT32 PopCount,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiDsDeleteWalkState (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_WALK_STATE *
|
||||
AcpiDsPopWalkState (
|
||||
ACPI_THREAD_STATE *Thread);
|
||||
|
||||
void
|
||||
AcpiDsPushWalkState (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_THREAD_STATE *Thread);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultStackPop (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultStackPush (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultStackClear (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_WALK_STATE *
|
||||
AcpiDsGetCurrentWalkState (
|
||||
ACPI_THREAD_STATE *Thread);
|
||||
|
||||
void
|
||||
AcpiDsDeleteWalkStateCache (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultInsert (
|
||||
void *Object,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultRemove (
|
||||
ACPI_OPERAND_OBJECT **Object,
|
||||
UINT32 Index,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultPop (
|
||||
ACPI_OPERAND_OBJECT **Object,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultPush (
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsResultPopFromBottom (
|
||||
ACPI_OPERAND_OBJECT **Object,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
#endif /* _ACDISPAT_H_ */
|
313
source/include/acevents.h
Normal file
313
source/include/acevents.h
Normal file
@ -0,0 +1,313 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acevents.h - Event subcomponent prototypes and defines
|
||||
* $Revision: 1.81 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACEVENTS_H__
|
||||
#define __ACEVENTS_H__
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitialize (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvHandlerInitialize (
|
||||
void);
|
||||
|
||||
|
||||
/*
|
||||
* Evfixed - Fixed event handling
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvFixedEventInitialize (
|
||||
void);
|
||||
|
||||
UINT32
|
||||
AcpiEvFixedEventDetect (
|
||||
void);
|
||||
|
||||
UINT32
|
||||
AcpiEvFixedEventDispatch (
|
||||
UINT32 Event);
|
||||
|
||||
|
||||
/*
|
||||
* Evmisc
|
||||
*/
|
||||
|
||||
BOOLEAN
|
||||
AcpiEvIsNotifyObject (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvAcquireGlobalLock(
|
||||
UINT16 Timeout);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvReleaseGlobalLock(
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitGlobalLockHandler (
|
||||
void);
|
||||
|
||||
UINT32
|
||||
AcpiEvGetGpeRegisterIndex (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
UINT32
|
||||
AcpiEvGetGpeNumberIndex (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvQueueNotifyRequest (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
UINT32 NotifyValue);
|
||||
|
||||
void ACPI_SYSTEM_XFACE
|
||||
AcpiEvNotifyDispatch (
|
||||
void *Context);
|
||||
|
||||
|
||||
/*
|
||||
* Evgpe - GPE handling and dispatch
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvGpeInitialize (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitGpeControlMethods (
|
||||
void);
|
||||
|
||||
UINT32
|
||||
AcpiEvGpeDispatch (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
UINT32
|
||||
AcpiEvGpeDetect (
|
||||
void);
|
||||
|
||||
/*
|
||||
* Evregion - Address Space handling
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitAddressSpaces (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvAddressSpaceDispatch (
|
||||
ACPI_OPERAND_OBJECT *RegionObj,
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
void *Value);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvAddrHandlerHelper (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 Level,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvAttachRegion (
|
||||
ACPI_OPERAND_OBJECT *HandlerObj,
|
||||
ACPI_OPERAND_OBJECT *RegionObj,
|
||||
BOOLEAN AcpiNsIsLocked);
|
||||
|
||||
void
|
||||
AcpiEvDetachRegion (
|
||||
ACPI_OPERAND_OBJECT *RegionObj,
|
||||
BOOLEAN AcpiNsIsLocked);
|
||||
|
||||
|
||||
/*
|
||||
* Evregini - Region initialization and setup
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvSystemMemoryRegionSetup (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvIoSpaceRegionSetup (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvPciConfigRegionSetup (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvCmosRegionSetup (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvPciBarRegionSetup (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvDefaultRegionSetup (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Function,
|
||||
void *HandlerContext,
|
||||
void **RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitializeRegion (
|
||||
ACPI_OPERAND_OBJECT *RegionObj,
|
||||
BOOLEAN AcpiNsLocked);
|
||||
|
||||
|
||||
/*
|
||||
* Evsci - SCI (System Control Interrupt) handling/dispatch
|
||||
*/
|
||||
|
||||
UINT32
|
||||
AcpiEvInstallSciHandler (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvRemoveSciHandler (
|
||||
void);
|
||||
|
||||
UINT32
|
||||
AcpiEvInitializeSCI (
|
||||
UINT32 ProgramSCI);
|
||||
|
||||
void
|
||||
AcpiEvTerminate (
|
||||
void);
|
||||
|
||||
|
||||
#endif /* __ACEVENTS_H__ */
|
375
source/include/acexcep.h
Normal file
375
source/include/acexcep.h
Normal file
@ -0,0 +1,375 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acexcep.h - Exception codes returned by the ACPI subsystem
|
||||
* $Revision: 1.67 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACEXCEP_H__
|
||||
#define __ACEXCEP_H__
|
||||
|
||||
|
||||
/*
|
||||
* Exceptions returned by external ACPI interfaces
|
||||
*/
|
||||
|
||||
#define AE_CODE_ENVIRONMENTAL 0x0000
|
||||
#define AE_CODE_PROGRAMMER 0x1000
|
||||
#define AE_CODE_ACPI_TABLES 0x2000
|
||||
#define AE_CODE_AML 0x3000
|
||||
#define AE_CODE_CONTROL 0x4000
|
||||
#define AE_CODE_MASK 0xF000
|
||||
|
||||
|
||||
#define ACPI_SUCCESS(a) (!(a))
|
||||
#define ACPI_FAILURE(a) (a)
|
||||
|
||||
|
||||
#define AE_OK (ACPI_STATUS) 0x0000
|
||||
|
||||
/*
|
||||
* Environmental exceptions
|
||||
*/
|
||||
#define AE_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NO_ACPI_TABLES (ACPI_STATUS) (0x0002 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NO_NAMESPACE (ACPI_STATUS) (0x0003 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NO_MEMORY (ACPI_STATUS) (0x0004 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NOT_FOUND (ACPI_STATUS) (0x0005 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NOT_EXIST (ACPI_STATUS) (0x0006 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_ALREADY_EXISTS (ACPI_STATUS) (0x0007 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_TYPE (ACPI_STATUS) (0x0008 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NULL_OBJECT (ACPI_STATUS) (0x0009 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NULL_ENTRY (ACPI_STATUS) (0x000A | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_BUFFER_OVERFLOW (ACPI_STATUS) (0x000B | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_STACK_OVERFLOW (ACPI_STATUS) (0x000C | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_STACK_UNDERFLOW (ACPI_STATUS) (0x000D | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NOT_IMPLEMENTED (ACPI_STATUS) (0x000E | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_VERSION_MISMATCH (ACPI_STATUS) (0x000F | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_SUPPORT (ACPI_STATUS) (0x0010 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_SHARE (ACPI_STATUS) (0x0011 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_LIMIT (ACPI_STATUS) (0x0012 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_TIME (ACPI_STATUS) (0x0013 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_UNKNOWN_STATUS (ACPI_STATUS) (0x0014 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_ACQUIRE_DEADLOCK (ACPI_STATUS) (0x0015 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_RELEASE_DEADLOCK (ACPI_STATUS) (0x0016 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NOT_ACQUIRED (ACPI_STATUS) (0x0017 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_ALREADY_ACQUIRED (ACPI_STATUS) (0x0018 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NO_HARDWARE_RESPONSE (ACPI_STATUS) (0x0019 | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_NO_GLOBAL_LOCK (ACPI_STATUS) (0x001A | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_LOGICAL_ADDRESS (ACPI_STATUS) (0x001B | AE_CODE_ENVIRONMENTAL)
|
||||
#define AE_ABORT_METHOD (ACPI_STATUS) (0x001C | AE_CODE_ENVIRONMENTAL)
|
||||
|
||||
#define AE_CODE_ENV_MAX 0x001C
|
||||
|
||||
/*
|
||||
* Programmer exceptions
|
||||
*/
|
||||
#define AE_BAD_PARAMETER (ACPI_STATUS) (0x0001 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_CHARACTER (ACPI_STATUS) (0x0002 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_PATHNAME (ACPI_STATUS) (0x0003 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_DATA (ACPI_STATUS) (0x0004 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_ADDRESS (ACPI_STATUS) (0x0005 | AE_CODE_PROGRAMMER)
|
||||
#define AE_ALIGNMENT (ACPI_STATUS) (0x0006 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_HEX_CONSTANT (ACPI_STATUS) (0x0007 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_OCTAL_CONSTANT (ACPI_STATUS) (0x0008 | AE_CODE_PROGRAMMER)
|
||||
#define AE_BAD_DECIMAL_CONSTANT (ACPI_STATUS) (0x0009 | AE_CODE_PROGRAMMER)
|
||||
|
||||
#define AE_CODE_PGM_MAX 0x0009
|
||||
|
||||
|
||||
/*
|
||||
* Acpi table exceptions
|
||||
*/
|
||||
#define AE_BAD_SIGNATURE (ACPI_STATUS) (0x0001 | AE_CODE_ACPI_TABLES)
|
||||
#define AE_BAD_HEADER (ACPI_STATUS) (0x0002 | AE_CODE_ACPI_TABLES)
|
||||
#define AE_BAD_CHECKSUM (ACPI_STATUS) (0x0003 | AE_CODE_ACPI_TABLES)
|
||||
#define AE_BAD_VALUE (ACPI_STATUS) (0x0004 | AE_CODE_ACPI_TABLES)
|
||||
#define AE_TABLE_NOT_SUPPORTED (ACPI_STATUS) (0x0005 | AE_CODE_ACPI_TABLES)
|
||||
#define AE_INVALID_TABLE_LENGTH (ACPI_STATUS) (0x0006 | AE_CODE_ACPI_TABLES)
|
||||
|
||||
#define AE_CODE_TBL_MAX 0x0006
|
||||
|
||||
|
||||
/*
|
||||
* AML exceptions. These are caused by problems with
|
||||
* the actual AML byte stream
|
||||
*/
|
||||
#define AE_AML_ERROR (ACPI_STATUS) (0x0001 | AE_CODE_AML)
|
||||
#define AE_AML_PARSE (ACPI_STATUS) (0x0002 | AE_CODE_AML)
|
||||
#define AE_AML_BAD_OPCODE (ACPI_STATUS) (0x0003 | AE_CODE_AML)
|
||||
#define AE_AML_NO_OPERAND (ACPI_STATUS) (0x0004 | AE_CODE_AML)
|
||||
#define AE_AML_OPERAND_TYPE (ACPI_STATUS) (0x0005 | AE_CODE_AML)
|
||||
#define AE_AML_OPERAND_VALUE (ACPI_STATUS) (0x0006 | AE_CODE_AML)
|
||||
#define AE_AML_UNINITIALIZED_LOCAL (ACPI_STATUS) (0x0007 | AE_CODE_AML)
|
||||
#define AE_AML_UNINITIALIZED_ARG (ACPI_STATUS) (0x0008 | AE_CODE_AML)
|
||||
#define AE_AML_UNINITIALIZED_ELEMENT (ACPI_STATUS) (0x0009 | AE_CODE_AML)
|
||||
#define AE_AML_NUMERIC_OVERFLOW (ACPI_STATUS) (0x000A | AE_CODE_AML)
|
||||
#define AE_AML_REGION_LIMIT (ACPI_STATUS) (0x000B | AE_CODE_AML)
|
||||
#define AE_AML_BUFFER_LIMIT (ACPI_STATUS) (0x000C | AE_CODE_AML)
|
||||
#define AE_AML_PACKAGE_LIMIT (ACPI_STATUS) (0x000D | AE_CODE_AML)
|
||||
#define AE_AML_DIVIDE_BY_ZERO (ACPI_STATUS) (0x000E | AE_CODE_AML)
|
||||
#define AE_AML_BAD_NAME (ACPI_STATUS) (0x000F | AE_CODE_AML)
|
||||
#define AE_AML_NAME_NOT_FOUND (ACPI_STATUS) (0x0010 | AE_CODE_AML)
|
||||
#define AE_AML_INTERNAL (ACPI_STATUS) (0x0011 | AE_CODE_AML)
|
||||
#define AE_AML_INVALID_SPACE_ID (ACPI_STATUS) (0x0012 | AE_CODE_AML)
|
||||
#define AE_AML_STRING_LIMIT (ACPI_STATUS) (0x0013 | AE_CODE_AML)
|
||||
#define AE_AML_NO_RETURN_VALUE (ACPI_STATUS) (0x0014 | AE_CODE_AML)
|
||||
#define AE_AML_METHOD_LIMIT (ACPI_STATUS) (0x0015 | AE_CODE_AML)
|
||||
#define AE_AML_NOT_OWNER (ACPI_STATUS) (0x0016 | AE_CODE_AML)
|
||||
#define AE_AML_MUTEX_ORDER (ACPI_STATUS) (0x0017 | AE_CODE_AML)
|
||||
#define AE_AML_MUTEX_NOT_ACQUIRED (ACPI_STATUS) (0x0018 | AE_CODE_AML)
|
||||
#define AE_AML_INVALID_RESOURCE_TYPE (ACPI_STATUS) (0x0019 | AE_CODE_AML)
|
||||
#define AE_AML_INVALID_INDEX (ACPI_STATUS) (0x001A | AE_CODE_AML)
|
||||
#define AE_AML_REGISTER_LIMIT (ACPI_STATUS) (0x001B | AE_CODE_AML)
|
||||
#define AE_AML_NO_WHILE (ACPI_STATUS) (0x001C | AE_CODE_AML)
|
||||
#define AE_AML_ALIGNMENT (ACPI_STATUS) (0x001D | AE_CODE_AML)
|
||||
#define AE_AML_NO_RESOURCE_END_TAG (ACPI_STATUS) (0x001E | AE_CODE_AML)
|
||||
#define AE_AML_BAD_RESOURCE_VALUE (ACPI_STATUS) (0x001F | AE_CODE_AML)
|
||||
#define AE_AML_CIRCULAR_REFERENCE (ACPI_STATUS) (0x0020 | AE_CODE_AML)
|
||||
|
||||
#define AE_CODE_AML_MAX 0x0020
|
||||
|
||||
/*
|
||||
* Internal exceptions used for control
|
||||
*/
|
||||
#define AE_CTRL_RETURN_VALUE (ACPI_STATUS) (0x0001 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_PENDING (ACPI_STATUS) (0x0002 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_TERMINATE (ACPI_STATUS) (0x0003 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_TRUE (ACPI_STATUS) (0x0004 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_FALSE (ACPI_STATUS) (0x0005 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_DEPTH (ACPI_STATUS) (0x0006 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_END (ACPI_STATUS) (0x0007 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_TRANSFER (ACPI_STATUS) (0x0008 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_BREAK (ACPI_STATUS) (0x0009 | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_CONTINUE (ACPI_STATUS) (0x000A | AE_CODE_CONTROL)
|
||||
#define AE_CTRL_SKIP (ACPI_STATUS) (0x000B | AE_CODE_CONTROL)
|
||||
|
||||
#define AE_CODE_CTRL_MAX 0x000B
|
||||
|
||||
|
||||
#ifdef DEFINE_ACPI_GLOBALS
|
||||
|
||||
/*
|
||||
* String versions of the exception codes above
|
||||
* These strings must match the corresponding defines exactly
|
||||
*/
|
||||
char const *AcpiGbl_ExceptionNames_Env[] =
|
||||
{
|
||||
"AE_OK",
|
||||
"AE_ERROR",
|
||||
"AE_NO_ACPI_TABLES",
|
||||
"AE_NO_NAMESPACE",
|
||||
"AE_NO_MEMORY",
|
||||
"AE_NOT_FOUND",
|
||||
"AE_NOT_EXIST",
|
||||
"AE_ALREADY_EXISTS",
|
||||
"AE_TYPE",
|
||||
"AE_NULL_OBJECT",
|
||||
"AE_NULL_ENTRY",
|
||||
"AE_BUFFER_OVERFLOW",
|
||||
"AE_STACK_OVERFLOW",
|
||||
"AE_STACK_UNDERFLOW",
|
||||
"AE_NOT_IMPLEMENTED",
|
||||
"AE_VERSION_MISMATCH",
|
||||
"AE_SUPPORT",
|
||||
"AE_SHARE",
|
||||
"AE_LIMIT",
|
||||
"AE_TIME",
|
||||
"AE_UNKNOWN_STATUS",
|
||||
"AE_ACQUIRE_DEADLOCK",
|
||||
"AE_RELEASE_DEADLOCK",
|
||||
"AE_NOT_ACQUIRED",
|
||||
"AE_ALREADY_ACQUIRED",
|
||||
"AE_NO_HARDWARE_RESPONSE",
|
||||
"AE_NO_GLOBAL_LOCK",
|
||||
"AE_LOGICAL_ADDRESS",
|
||||
"AE_ABORT_METHOD"
|
||||
};
|
||||
|
||||
char const *AcpiGbl_ExceptionNames_Pgm[] =
|
||||
{
|
||||
"AE_BAD_PARAMETER",
|
||||
"AE_BAD_CHARACTER",
|
||||
"AE_BAD_PATHNAME",
|
||||
"AE_BAD_DATA",
|
||||
"AE_BAD_ADDRESS",
|
||||
"AE_ALIGNMENT",
|
||||
"AE_BAD_HEX_CONSTANT",
|
||||
"AE_BAD_OCTAL_CONSTANT",
|
||||
"AE_BAD_DECIMAL_CONSTANT"
|
||||
};
|
||||
|
||||
char const *AcpiGbl_ExceptionNames_Tbl[] =
|
||||
{
|
||||
"AE_BAD_SIGNATURE",
|
||||
"AE_BAD_HEADER",
|
||||
"AE_BAD_CHECKSUM",
|
||||
"AE_BAD_VALUE",
|
||||
"AE_TABLE_NOT_SUPPORTED",
|
||||
"AE_INVALID_TABLE_LENGTH"
|
||||
};
|
||||
|
||||
char const *AcpiGbl_ExceptionNames_Aml[] =
|
||||
{
|
||||
"AE_AML_ERROR",
|
||||
"AE_AML_PARSE",
|
||||
"AE_AML_BAD_OPCODE",
|
||||
"AE_AML_NO_OPERAND",
|
||||
"AE_AML_OPERAND_TYPE",
|
||||
"AE_AML_OPERAND_VALUE",
|
||||
"AE_AML_UNINITIALIZED_LOCAL",
|
||||
"AE_AML_UNINITIALIZED_ARG",
|
||||
"AE_AML_UNINITIALIZED_ELEMENT",
|
||||
"AE_AML_NUMERIC_OVERFLOW",
|
||||
"AE_AML_REGION_LIMIT",
|
||||
"AE_AML_BUFFER_LIMIT",
|
||||
"AE_AML_PACKAGE_LIMIT",
|
||||
"AE_AML_DIVIDE_BY_ZERO",
|
||||
"AE_AML_BAD_NAME",
|
||||
"AE_AML_NAME_NOT_FOUND",
|
||||
"AE_AML_INTERNAL",
|
||||
"AE_AML_INVALID_SPACE_ID",
|
||||
"AE_AML_STRING_LIMIT",
|
||||
"AE_AML_NO_RETURN_VALUE",
|
||||
"AE_AML_METHOD_LIMIT",
|
||||
"AE_AML_NOT_OWNER",
|
||||
"AE_AML_MUTEX_ORDER",
|
||||
"AE_AML_MUTEX_NOT_ACQUIRED",
|
||||
"AE_AML_INVALID_RESOURCE_TYPE",
|
||||
"AE_AML_INVALID_INDEX",
|
||||
"AE_AML_REGISTER_LIMIT",
|
||||
"AE_AML_NO_WHILE",
|
||||
"AE_AML_ALIGNMENT",
|
||||
"AE_AML_NO_RESOURCE_END_TAG",
|
||||
"AE_AML_BAD_RESOURCE_VALUE",
|
||||
"AE_AML_CIRCULAR_REFERENCE"
|
||||
};
|
||||
|
||||
char const *AcpiGbl_ExceptionNames_Ctrl[] =
|
||||
{
|
||||
"AE_CTRL_RETURN_VALUE",
|
||||
"AE_CTRL_PENDING",
|
||||
"AE_CTRL_TERMINATE",
|
||||
"AE_CTRL_TRUE",
|
||||
"AE_CTRL_FALSE",
|
||||
"AE_CTRL_DEPTH",
|
||||
"AE_CTRL_END",
|
||||
"AE_CTRL_TRANSFER",
|
||||
"AE_CTRL_BREAK",
|
||||
"AE_CTRL_CONTINUE",
|
||||
"AE_CTRL_SKIP"
|
||||
};
|
||||
|
||||
#endif /* ACPI GLOBALS */
|
||||
|
||||
|
||||
#endif /* __ACEXCEP_H__ */
|
390
source/include/acglobal.h
Normal file
390
source/include/acglobal.h
Normal file
@ -0,0 +1,390 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acglobal.h - Declarations for global variables
|
||||
* $Revision: 1.136 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACGLOBAL_H__
|
||||
#define __ACGLOBAL_H__
|
||||
|
||||
|
||||
/*
|
||||
* Ensure that the globals are actually defined only once.
|
||||
*
|
||||
* The use of these defines allows a single list of globals (here) in order
|
||||
* to simplify maintenance of the code.
|
||||
*/
|
||||
#ifdef DEFINE_ACPI_GLOBALS
|
||||
#define ACPI_EXTERN
|
||||
#else
|
||||
#define ACPI_EXTERN extern
|
||||
#endif
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Debug support
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* Runtime configuration of debug print levels */
|
||||
|
||||
extern UINT32 AcpiDbgLevel;
|
||||
extern UINT32 AcpiDbgLayer;
|
||||
|
||||
/* Procedure nesting level for debug output */
|
||||
|
||||
extern UINT32 AcpiGbl_NestingLevel;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* ACPI Table globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* Table pointers.
|
||||
* Although these pointers are somewhat redundant with the global AcpiTable,
|
||||
* they are convenient because they are typed pointers.
|
||||
*
|
||||
* These tables are single-table only; meaning that there can be at most one
|
||||
* of each in the system. Each global points to the actual table.
|
||||
*
|
||||
*/
|
||||
ACPI_EXTERN UINT32 AcpiGbl_TableFlags;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_RsdtTableCount;
|
||||
ACPI_EXTERN RSDP_DESCRIPTOR *AcpiGbl_RSDP;
|
||||
ACPI_EXTERN XSDT_DESCRIPTOR *AcpiGbl_XSDT;
|
||||
ACPI_EXTERN FADT_DESCRIPTOR *AcpiGbl_FADT;
|
||||
ACPI_EXTERN ACPI_TABLE_HEADER *AcpiGbl_DSDT;
|
||||
ACPI_EXTERN FACS_DESCRIPTOR *AcpiGbl_FACS;
|
||||
ACPI_EXTERN ACPI_COMMON_FACS AcpiGbl_CommonFACS;
|
||||
|
||||
/*
|
||||
* Handle both ACPI 1.0 and ACPI 2.0 Integer widths
|
||||
* If we are running a method that exists in a 32-bit ACPI table.
|
||||
* Use only 32 bits of the Integer for conversion.
|
||||
*/
|
||||
ACPI_EXTERN UINT8 AcpiGbl_IntegerBitWidth;
|
||||
ACPI_EXTERN UINT8 AcpiGbl_IntegerByteWidth;
|
||||
|
||||
/*
|
||||
* Since there may be multiple SSDTs and PSDTS, a single pointer is not
|
||||
* sufficient; Therefore, there isn't one!
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* ACPI Table info arrays
|
||||
*/
|
||||
extern ACPI_TABLE_DESC AcpiGbl_AcpiTables[NUM_ACPI_TABLES];
|
||||
extern ACPI_TABLE_SUPPORT AcpiGbl_AcpiTableData[NUM_ACPI_TABLES];
|
||||
|
||||
/*
|
||||
* Predefined mutex objects. This array contains the
|
||||
* actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
|
||||
* (The table maps local handles to the real OS handles)
|
||||
*/
|
||||
ACPI_EXTERN ACPI_MUTEX_INFO AcpiGbl_AcpiMutexInfo [NUM_MTX];
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Miscellaneous globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
ACPI_EXTERN ACPI_MEMORY_LIST AcpiGbl_MemoryLists[ACPI_NUM_MEM_LISTS];
|
||||
ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_DrvNotify;
|
||||
ACPI_EXTERN ACPI_OBJECT_NOTIFY_HANDLER AcpiGbl_SysNotify;
|
||||
ACPI_EXTERN ACPI_INIT_HANDLER AcpiGbl_InitHandler;
|
||||
ACPI_EXTERN ACPI_WALK_STATE *AcpiGbl_BreakpointWalk;
|
||||
ACPI_EXTERN ACPI_HANDLE AcpiGbl_GlobalLockSemaphore;
|
||||
|
||||
ACPI_EXTERN UINT32 AcpiGbl_GlobalLockThreadCount;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_OriginalMode;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_RsdpOriginalLocation;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_NsLookupCount;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_PsFindCount;
|
||||
ACPI_EXTERN UINT16 AcpiGbl_Pm1EnableRegisterSave;
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NextTableOwnerId;
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NextMethodOwnerId;
|
||||
ACPI_EXTERN UINT16 AcpiGbl_GlobalLockHandle;
|
||||
ACPI_EXTERN UINT8 AcpiGbl_DebuggerConfiguration;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockAcquired;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_StepToNextCall;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_AcpiHardwarePresent;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_GlobalLockPresent;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_EventsInitialized;
|
||||
|
||||
extern BOOLEAN AcpiGbl_Shutdown;
|
||||
extern UINT32 AcpiGbl_StartupFlags;
|
||||
extern const UINT8 AcpiGbl_DecodeTo8bit[8];
|
||||
extern const char *AcpiGbl_DbSleepStates[ACPI_S_STATE_COUNT];
|
||||
extern const ACPI_OPCODE_INFO AcpiGbl_AmlOpInfo[AML_NUM_OPCODES];
|
||||
extern const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS];
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Namespace globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define NUM_NS_TYPES ACPI_TYPE_INVALID+1
|
||||
|
||||
#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
|
||||
#define NUM_PREDEFINED_NAMES 10
|
||||
#else
|
||||
#define NUM_PREDEFINED_NAMES 9
|
||||
#endif
|
||||
|
||||
ACPI_EXTERN ACPI_NAMESPACE_NODE AcpiGbl_RootNodeStruct;
|
||||
ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_RootNode;
|
||||
|
||||
extern const UINT8 AcpiGbl_NsProperties[NUM_NS_TYPES];
|
||||
extern const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames [NUM_PREDEFINED_NAMES];
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeCount;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_CurrentNodeSize;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_MaxConcurrentNodeCount;
|
||||
ACPI_EXTERN ACPI_SIZE AcpiGbl_EntryStackPointer;
|
||||
ACPI_EXTERN ACPI_SIZE AcpiGbl_LowestStackPointer;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_DeepestNesting;
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Interpreter globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
ACPI_EXTERN ACPI_THREAD_STATE *AcpiGbl_CurrentWalkList;
|
||||
|
||||
/* Control method single step flag */
|
||||
|
||||
ACPI_EXTERN UINT8 AcpiGbl_CmSingleStep;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Parser globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
ACPI_EXTERN ACPI_PARSE_OBJECT *AcpiGbl_ParsedNamespaceRoot;
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Hardware globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
extern ACPI_BIT_REGISTER_INFO AcpiGbl_BitRegisterInfo[ACPI_NUM_BITREG];
|
||||
ACPI_EXTERN UINT8 AcpiGbl_SleepTypeA;
|
||||
ACPI_EXTERN UINT8 AcpiGbl_SleepTypeB;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Event and GPE globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
extern ACPI_FIXED_EVENT_INFO AcpiGbl_FixedEventInfo[ACPI_NUM_FIXED_EVENTS];
|
||||
ACPI_EXTERN ACPI_FIXED_EVENT_HANDLER AcpiGbl_FixedEventHandlers[ACPI_NUM_FIXED_EVENTS];
|
||||
|
||||
ACPI_EXTERN ACPI_HANDLE AcpiGbl_GpeObjHandle;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_GpeRegisterCount;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_GpeNumberMax;
|
||||
ACPI_EXTERN ACPI_GPE_REGISTER_INFO *AcpiGbl_GpeRegisterInfo;
|
||||
ACPI_EXTERN ACPI_GPE_NUMBER_INFO *AcpiGbl_GpeNumberInfo;
|
||||
ACPI_EXTERN ACPI_GPE_BLOCK_INFO AcpiGbl_GpeBlockInfo[ACPI_MAX_GPE_BLOCKS];
|
||||
|
||||
/*
|
||||
* GPE translation table
|
||||
* Indexed by the GPE number, returns a valid index into the global GPE tables.
|
||||
*
|
||||
* This table is needed because the GPE numbers supported by block 1 do not
|
||||
* have to be contiguous with the GPE numbers supported by block 0.
|
||||
*/
|
||||
ACPI_EXTERN ACPI_GPE_INDEX_INFO *AcpiGbl_GpeNumberToIndex;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Debugger globals
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
ACPI_EXTERN UINT8 AcpiGbl_DbOutputFlags;
|
||||
|
||||
#ifdef ACPI_DISASSEMBLER
|
||||
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_disasm;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_verbose;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUGGER
|
||||
|
||||
extern BOOLEAN AcpiGbl_MethodExecuting;
|
||||
extern BOOLEAN AcpiGbl_AbortMethod;
|
||||
extern BOOLEAN AcpiGbl_DbTerminateThreads;
|
||||
|
||||
ACPI_EXTERN int optind;
|
||||
ACPI_EXTERN char *optarg;
|
||||
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_tables;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_stats;
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_DbOpt_ini_methods;
|
||||
|
||||
|
||||
ACPI_EXTERN char *AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS];
|
||||
ACPI_EXTERN char AcpiGbl_DbLineBuf[80];
|
||||
ACPI_EXTERN char AcpiGbl_DbParsedBuf[80];
|
||||
ACPI_EXTERN char AcpiGbl_DbScopeBuf[40];
|
||||
ACPI_EXTERN char AcpiGbl_DbDebugFilename[40];
|
||||
ACPI_EXTERN BOOLEAN AcpiGbl_DbOutputToFile;
|
||||
ACPI_EXTERN char *AcpiGbl_DbBuffer;
|
||||
ACPI_EXTERN char *AcpiGbl_DbFilename;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_DbDebugLevel;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_DbConsoleDebugLevel;
|
||||
ACPI_EXTERN ACPI_TABLE_HEADER *AcpiGbl_DbTablePtr;
|
||||
ACPI_EXTERN ACPI_NAMESPACE_NODE *AcpiGbl_DbScopeNode;
|
||||
|
||||
/*
|
||||
* Statistic globals
|
||||
*/
|
||||
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCount[ACPI_TYPE_NS_NODE_MAX+1];
|
||||
ACPI_EXTERN UINT16 AcpiGbl_ObjTypeCountMisc;
|
||||
ACPI_EXTERN UINT16 AcpiGbl_NodeTypeCountMisc;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_NumNodes;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_NumObjects;
|
||||
|
||||
|
||||
ACPI_EXTERN UINT32 AcpiGbl_SizeOfParseTree;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_SizeOfMethodTrees;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_SizeOfNodeEntries;
|
||||
ACPI_EXTERN UINT32 AcpiGbl_SizeOfAcpiObjects;
|
||||
|
||||
#endif /* ACPI_DEBUGGER */
|
||||
|
||||
|
||||
#endif /* __ACGLOBAL_H__ */
|
246
source/include/achware.h
Normal file
246
source/include/achware.h
Normal file
@ -0,0 +1,246 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: achware.h -- hardware specific interfaces
|
||||
* $Revision: 1.61 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACHWARE_H__
|
||||
#define __ACHWARE_H__
|
||||
|
||||
|
||||
/* PM Timer ticks per second (HZ) */
|
||||
#define PM_TIMER_FREQUENCY 3579545
|
||||
|
||||
|
||||
/* Prototypes */
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwInitialize (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwShutdown (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwInitializeSystemInfo (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwSetMode (
|
||||
UINT32 Mode);
|
||||
|
||||
UINT32
|
||||
AcpiHwGetMode (
|
||||
void);
|
||||
|
||||
UINT32
|
||||
AcpiHwGetModeCapabilities (
|
||||
void);
|
||||
|
||||
/* Register I/O Prototypes */
|
||||
|
||||
ACPI_BIT_REGISTER_INFO *
|
||||
AcpiHwGetBitRegisterInfo (
|
||||
UINT32 RegisterId);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwRegisterRead (
|
||||
BOOLEAN UseLock,
|
||||
UINT32 RegisterId,
|
||||
UINT32 *ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwRegisterWrite (
|
||||
BOOLEAN UseLock,
|
||||
UINT32 RegisterId,
|
||||
UINT32 Value);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwLowLevelRead (
|
||||
UINT32 Width,
|
||||
UINT32 *Value,
|
||||
ACPI_GENERIC_ADDRESS *Reg,
|
||||
UINT32 Offset);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwLowLevelWrite (
|
||||
UINT32 Width,
|
||||
UINT32 Value,
|
||||
ACPI_GENERIC_ADDRESS *Reg,
|
||||
UINT32 Offset);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwClearAcpiStatus (
|
||||
void);
|
||||
|
||||
|
||||
/* GPE support */
|
||||
|
||||
UINT8
|
||||
AcpiHwGetGpeBitMask (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwEnableGpe (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
void
|
||||
AcpiHwEnableGpeForWakeup (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwDisableGpe (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
void
|
||||
AcpiHwDisableGpeForWakeup (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwClearGpe (
|
||||
UINT32 GpeNumber);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwGetGpeStatus (
|
||||
UINT32 GpeNumber,
|
||||
ACPI_EVENT_STATUS *EventStatus);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwDisableNonWakeupGpes (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiHwEnableNonWakeupGpes (
|
||||
void);
|
||||
|
||||
|
||||
/* ACPI Timer prototypes */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetTimerResolution (
|
||||
UINT32 *Resolution);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetTimer (
|
||||
UINT32 *Ticks);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetTimerDuration (
|
||||
UINT32 StartTicks,
|
||||
UINT32 EndTicks,
|
||||
UINT32 *TimeElapsed);
|
||||
|
||||
|
||||
#endif /* __ACHWARE_H__ */
|
809
source/include/acinterp.h
Normal file
809
source/include/acinterp.h
Normal file
@ -0,0 +1,809 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acinterp.h - Interpreter subcomponent prototypes and defines
|
||||
* $Revision: 1.145 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACINTERP_H__
|
||||
#define __ACINTERP_H__
|
||||
|
||||
|
||||
#define ACPI_WALK_OPERANDS (&(WalkState->Operands [WalkState->NumOperands -1]))
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExResolveOperands (
|
||||
UINT16 Opcode,
|
||||
ACPI_OPERAND_OBJECT **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCheckObjectType (
|
||||
ACPI_OBJECT_TYPE TypeNeeded,
|
||||
ACPI_OBJECT_TYPE ThisType,
|
||||
void *Object);
|
||||
|
||||
/*
|
||||
* exxface - External interpreter interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExLoadTable (
|
||||
ACPI_TABLE_TYPE TableId);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExExecuteMethod (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObjDesc);
|
||||
|
||||
|
||||
/*
|
||||
* exconvrt - object conversion
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExConvertToInteger (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExConvertToBuffer (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExConvertToString (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc,
|
||||
UINT32 Base,
|
||||
UINT32 MaxLength,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExConvertToTargetType (
|
||||
ACPI_OBJECT_TYPE DestinationType,
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
UINT32
|
||||
AcpiExConvertToAscii (
|
||||
ACPI_INTEGER Integer,
|
||||
UINT32 Base,
|
||||
UINT8 *String,
|
||||
UINT8 MaxLength);
|
||||
|
||||
/*
|
||||
* exfield - ACPI AML (p-code) execution - field manipulation
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExExtractFromField (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
void *Buffer,
|
||||
UINT32 BufferLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExInsertIntoField (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
void *Buffer,
|
||||
UINT32 BufferLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSetupRegion (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
UINT32 FieldDatumByteOffset);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExAccessRegion (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
UINT32 FieldDatumByteOffset,
|
||||
ACPI_INTEGER *Value,
|
||||
UINT32 ReadWrite);
|
||||
|
||||
BOOLEAN
|
||||
AcpiExRegisterOverflow (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_INTEGER Value);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExFieldDatumIo (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
UINT32 FieldDatumByteOffset,
|
||||
ACPI_INTEGER *Value,
|
||||
UINT32 ReadWrite);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExWriteWithUpdateRule (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_INTEGER Mask,
|
||||
ACPI_INTEGER FieldValue,
|
||||
UINT32 FieldDatumByteOffset);
|
||||
|
||||
void
|
||||
AcpiExGetBufferDatum(
|
||||
ACPI_INTEGER *Datum,
|
||||
void *Buffer,
|
||||
UINT32 ByteGranularity,
|
||||
UINT32 Offset);
|
||||
|
||||
void
|
||||
AcpiExSetBufferDatum (
|
||||
ACPI_INTEGER MergedDatum,
|
||||
void *Buffer,
|
||||
UINT32 ByteGranularity,
|
||||
UINT32 Offset);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExReadDataFromField (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **RetBufferDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExWriteDataToField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc);
|
||||
|
||||
/*
|
||||
* exmisc - ACPI AML (p-code) execution - specific opcodes
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_3A_0T_0R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_3A_1T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_6A_0T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
BOOLEAN
|
||||
AcpiExDoMatch (
|
||||
UINT32 MatchOp,
|
||||
ACPI_INTEGER PackageValue,
|
||||
ACPI_INTEGER MatchValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExGetObjectReference (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExResolveMultiple (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *Operand,
|
||||
ACPI_OBJECT_TYPE *ReturnType,
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExConcatTemplate (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc2,
|
||||
ACPI_OPERAND_OBJECT **ActualReturnDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExDoConcatenate (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc2,
|
||||
ACPI_OPERAND_OBJECT **ActualReturnDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
BOOLEAN
|
||||
AcpiExDoLogicalOp (
|
||||
UINT16 Opcode,
|
||||
ACPI_INTEGER Operand0,
|
||||
ACPI_INTEGER Operand1);
|
||||
|
||||
ACPI_INTEGER
|
||||
AcpiExDoMathOp (
|
||||
UINT16 Opcode,
|
||||
ACPI_INTEGER Operand0,
|
||||
ACPI_INTEGER Operand1);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateMutex (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateProcessor (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreatePowerResource (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateRegion (
|
||||
UINT8 *AmlStart,
|
||||
UINT32 AmlLength,
|
||||
UINT8 RegionSpace,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateTableRegion (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateEvent (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateAlias (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCreateMethod (
|
||||
UINT8 *AmlStart,
|
||||
UINT32 AmlLength,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* exconfig - dynamic table load/unload
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExAddTable (
|
||||
ACPI_TABLE_HEADER *Table,
|
||||
ACPI_NAMESPACE_NODE *ParentNode,
|
||||
ACPI_OPERAND_OBJECT **DdbHandle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExLoadOp (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT *Target,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExLoadTableOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExUnloadTable (
|
||||
ACPI_OPERAND_OBJECT *DdbHandle);
|
||||
|
||||
|
||||
/*
|
||||
* exmutex - mutex support
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExAcquireMutex (
|
||||
ACPI_OPERAND_OBJECT *TimeDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExReleaseMutex (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
void
|
||||
AcpiExReleaseAllMutexes (
|
||||
ACPI_THREAD_STATE *Thread);
|
||||
|
||||
void
|
||||
AcpiExUnlinkMutex (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
void
|
||||
AcpiExLinkMutex (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_THREAD_STATE *Thread);
|
||||
|
||||
/*
|
||||
* exprep - ACPI AML (p-code) execution - prep utilities
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExPrepCommonFieldObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
UINT8 FieldFlags,
|
||||
UINT8 FieldAttribute,
|
||||
UINT32 FieldBitPosition,
|
||||
UINT32 FieldBitLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExPrepFieldValue (
|
||||
ACPI_CREATE_FIELD_INFO *Info);
|
||||
|
||||
/*
|
||||
* exsystem - Interface to OS services
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemDoNotifyOp (
|
||||
ACPI_OPERAND_OBJECT *Value,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemDoSuspend(
|
||||
UINT32 Time);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemDoStall (
|
||||
UINT32 Time);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemAcquireMutex(
|
||||
ACPI_OPERAND_OBJECT *Time,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemReleaseMutex(
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemSignalEvent(
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemWaitEvent(
|
||||
ACPI_OPERAND_OBJECT *Time,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemResetEvent(
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemWaitSemaphore (
|
||||
ACPI_HANDLE Semaphore,
|
||||
UINT16 Timeout);
|
||||
|
||||
|
||||
/*
|
||||
* exmonadic - ACPI AML (p-code) execution, monadic operators
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_1A_0T_0R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_1A_0T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_1A_1T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_1A_1T_0R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
/*
|
||||
* exdyadic - ACPI AML (p-code) execution, dyadic operators
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_2A_0T_0R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_2A_0T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_2A_1T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExOpcode_2A_2T_1R (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* exresolv - Object resolution and get value functions
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExResolveToValue (
|
||||
ACPI_OPERAND_OBJECT **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExResolveNodeToValue (
|
||||
ACPI_NAMESPACE_NODE **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExResolveObjectToValue (
|
||||
ACPI_OPERAND_OBJECT **StackPtr,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* exdump - Scanner debug output routines
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiExDumpOperand (
|
||||
ACPI_OPERAND_OBJECT *EntryDesc);
|
||||
|
||||
void
|
||||
AcpiExDumpOperands (
|
||||
ACPI_OPERAND_OBJECT **Operands,
|
||||
ACPI_INTERPRETER_MODE InterpreterMode,
|
||||
char *Ident,
|
||||
UINT32 NumLevels,
|
||||
char *Note,
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber);
|
||||
|
||||
void
|
||||
AcpiExDumpObjectDescriptor (
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
UINT32 Flags);
|
||||
|
||||
void
|
||||
AcpiExDumpNode (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
UINT32 Flags);
|
||||
|
||||
void
|
||||
AcpiExOutString (
|
||||
char *Title,
|
||||
char *Value);
|
||||
|
||||
void
|
||||
AcpiExOutPointer (
|
||||
char *Title,
|
||||
void *Value);
|
||||
|
||||
void
|
||||
AcpiExOutInteger (
|
||||
char *Title,
|
||||
UINT32 Value);
|
||||
|
||||
void
|
||||
AcpiExOutAddress (
|
||||
char *Title,
|
||||
ACPI_PHYSICAL_ADDRESS Value);
|
||||
|
||||
|
||||
/*
|
||||
* exnames - interpreter/scanner name load/execute
|
||||
*/
|
||||
|
||||
char *
|
||||
AcpiExAllocateNameString (
|
||||
UINT32 PrefixCount,
|
||||
UINT32 NumNameSegs);
|
||||
|
||||
UINT32
|
||||
AcpiExGoodChar (
|
||||
UINT32 Character);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExNameSegment (
|
||||
UINT8 **InAmlAddress,
|
||||
char *NameString);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExGetNameString (
|
||||
ACPI_OBJECT_TYPE DataType,
|
||||
UINT8 *InAmlAddress,
|
||||
char **OutNameString,
|
||||
UINT32 *OutNameLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExDoName (
|
||||
ACPI_OBJECT_TYPE DataType,
|
||||
ACPI_INTERPRETER_MODE LoadExecMode);
|
||||
|
||||
|
||||
/*
|
||||
* exstore - Object store support
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStore (
|
||||
ACPI_OPERAND_OBJECT *ValDesc,
|
||||
ACPI_OPERAND_OBJECT *DestDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStoreObjectToIndex (
|
||||
ACPI_OPERAND_OBJECT *ValDesc,
|
||||
ACPI_OPERAND_OBJECT *DestDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStoreObjectToNode (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* exstoren
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExResolveObject (
|
||||
ACPI_OPERAND_OBJECT **SourceDescPtr,
|
||||
ACPI_OBJECT_TYPE TargetType,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStoreObjectToObject (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *DestDesc,
|
||||
ACPI_OPERAND_OBJECT **NewDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* excopy - object copy
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStoreBufferToBuffer (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *TargetDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStoreStringToString (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *TargetDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCopyIntegerToIndexField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *TargetDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCopyIntegerToBankField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *TargetDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCopyDataToNamedField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCopyIntegerToBufferField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *TargetDesc);
|
||||
|
||||
/*
|
||||
* exutils - interpreter/scanner utilities
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExEnterInterpreter (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiExExitInterpreter (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiExTruncateFor32bitTable (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
BOOLEAN
|
||||
AcpiExAcquireGlobalLock (
|
||||
UINT32 Rule);
|
||||
|
||||
void
|
||||
AcpiExReleaseGlobalLock (
|
||||
BOOLEAN Locked);
|
||||
|
||||
UINT32
|
||||
AcpiExDigitsNeeded (
|
||||
ACPI_INTEGER Value,
|
||||
UINT32 Base);
|
||||
|
||||
void
|
||||
AcpiExEisaIdToString (
|
||||
UINT32 NumericId,
|
||||
char *OutString);
|
||||
|
||||
void
|
||||
AcpiExUnsignedIntegerToString (
|
||||
ACPI_INTEGER Value,
|
||||
char *OutString);
|
||||
|
||||
|
||||
/*
|
||||
* exregion - default OpRegion handlers
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemMemorySpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSystemIoSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExPciConfigSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExCmosSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExPciBarSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExEmbeddedControllerSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExSmBusSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExDataTableSpaceHandler (
|
||||
UINT32 Function,
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
UINT32 BitWidth,
|
||||
ACPI_INTEGER *Value,
|
||||
void *HandlerContext,
|
||||
void *RegionContext);
|
||||
|
||||
#endif /* __INTERP_H__ */
|
1088
source/include/aclocal.h
Normal file
1088
source/include/aclocal.h
Normal file
File diff suppressed because it is too large
Load Diff
670
source/include/acmacros.h
Normal file
670
source/include/acmacros.h
Normal file
@ -0,0 +1,670 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acmacros.h - C macros for the entire subsystem.
|
||||
* $Revision: 1.137 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACMACROS_H__
|
||||
#define __ACMACROS_H__
|
||||
|
||||
|
||||
/*
|
||||
* Data manipulation macros
|
||||
*/
|
||||
|
||||
#define ACPI_LOWORD(l) ((UINT16)(UINT32)(l))
|
||||
#define ACPI_HIWORD(l) ((UINT16)((((UINT32)(l)) >> 16) & 0xFFFF))
|
||||
#define ACPI_LOBYTE(l) ((UINT8)(UINT16)(l))
|
||||
#define ACPI_HIBYTE(l) ((UINT8)((((UINT16)(l)) >> 8) & 0xFF))
|
||||
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 16
|
||||
|
||||
/*
|
||||
* For 16-bit addresses, we have to assume that the upper 32 bits
|
||||
* are zero.
|
||||
*/
|
||||
#define ACPI_LODWORD(l) ((UINT32)(l))
|
||||
#define ACPI_HIDWORD(l) ((UINT32)(0))
|
||||
|
||||
#define ACPI_GET_ADDRESS(a) ((a).Lo)
|
||||
#define ACPI_STORE_ADDRESS(a,b) {(a).Hi=0;(a).Lo=(UINT32)(b);}
|
||||
#define ACPI_VALID_ADDRESS(a) ((a).Hi | (a).Lo)
|
||||
|
||||
#else
|
||||
#ifdef ACPI_NO_INTEGER64_SUPPORT
|
||||
/*
|
||||
* ACPI_INTEGER is 32-bits, no 64-bit support on this platform
|
||||
*/
|
||||
#define ACPI_LODWORD(l) ((UINT32)(l))
|
||||
#define ACPI_HIDWORD(l) ((UINT32)(0))
|
||||
|
||||
#define ACPI_GET_ADDRESS(a) (a)
|
||||
#define ACPI_STORE_ADDRESS(a,b) ((a)=(b))
|
||||
#define ACPI_VALID_ADDRESS(a) (a)
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* Full 64-bit address/integer on both 32-bit and 64-bit platforms
|
||||
*/
|
||||
#define ACPI_LODWORD(l) ((UINT32)(UINT64)(l))
|
||||
#define ACPI_HIDWORD(l) ((UINT32)(((*(UINT64_STRUCT *)(void *)(&l))).Hi))
|
||||
|
||||
#define ACPI_GET_ADDRESS(a) (a)
|
||||
#define ACPI_STORE_ADDRESS(a,b) ((a)=(ACPI_PHYSICAL_ADDRESS)(b))
|
||||
#define ACPI_VALID_ADDRESS(a) (a)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Extract a byte of data using a pointer. Any more than a byte and we
|
||||
* get into potential aligment issues -- see the STORE macros below
|
||||
*/
|
||||
#define ACPI_GET8(addr) (*(UINT8*)(addr))
|
||||
|
||||
/* Pointer arithmetic */
|
||||
|
||||
#define ACPI_PTR_ADD(t,a,b) (t *) (void *)((char *)(a) + (ACPI_NATIVE_UINT)(b))
|
||||
#define ACPI_PTR_DIFF(a,b) (ACPI_NATIVE_UINT) ((char *)(a) - (char *)(b))
|
||||
|
||||
/* Pointer/Integer type conversions */
|
||||
|
||||
#define ACPI_TO_POINTER(i) ACPI_PTR_ADD (void, (void *) NULL,(ACPI_NATIVE_UINT)i)
|
||||
#define ACPI_TO_INTEGER(p) ACPI_PTR_DIFF (p,(void *) NULL)
|
||||
#define ACPI_OFFSET(d,f) (ACPI_SIZE) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
|
||||
#define ACPI_FADT_OFFSET(f) ACPI_OFFSET (FADT_DESCRIPTOR, f)
|
||||
|
||||
#define ACPI_CAST_PTR(t, p) ((t *)(void *)(p))
|
||||
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **)(void *)(p))
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 16
|
||||
#define ACPI_STORE_POINTER(d,s) ACPI_MOVE_UNALIGNED32_TO_32(d,s)
|
||||
#define ACPI_PHYSADDR_TO_PTR(i) (void *)(i)
|
||||
#define ACPI_PTR_TO_PHYSADDR(i) (UINT32) (char *)(i)
|
||||
#else
|
||||
#define ACPI_PHYSADDR_TO_PTR(i) ACPI_TO_POINTER(i)
|
||||
#define ACPI_PTR_TO_PHYSADDR(i) ACPI_TO_INTEGER(i)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Macros for moving data around to/from buffers that are possibly unaligned.
|
||||
* If the hardware supports the transfer of unaligned data, just do the store.
|
||||
* Otherwise, we have to move one byte at a time.
|
||||
*/
|
||||
|
||||
#ifdef _HW_ALIGNMENT_SUPPORT
|
||||
|
||||
/* The hardware supports unaligned transfers, just do the move */
|
||||
|
||||
#define ACPI_MOVE_UNALIGNED16_TO_16(d,s) *(UINT16 *)(void *)(d) = *(UINT16 *)(void *)(s)
|
||||
#define ACPI_MOVE_UNALIGNED32_TO_32(d,s) *(UINT32 *)(void *)(d) = *(UINT32 *)(void *)(s)
|
||||
#define ACPI_MOVE_UNALIGNED16_TO_32(d,s) *(UINT32 *)(void *)(d) = *(UINT16 *)(void *)(s)
|
||||
#define ACPI_MOVE_UNALIGNED64_TO_64(d,s) *(UINT64 *)(void *)(d) = *(UINT64 *)(void *)(s)
|
||||
|
||||
#else
|
||||
/*
|
||||
* The hardware does not support unaligned transfers. We must move the
|
||||
* data one byte at a time. These macros work whether the source or
|
||||
* the destination (or both) is/are unaligned.
|
||||
*/
|
||||
|
||||
#define ACPI_MOVE_UNALIGNED16_TO_16(d,s) {((UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
((UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];}
|
||||
|
||||
#define ACPI_MOVE_UNALIGNED32_TO_32(d,s) {((UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
((UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];\
|
||||
((UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[2];\
|
||||
((UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[3];}
|
||||
|
||||
#define ACPI_MOVE_UNALIGNED16_TO_32(d,s) {(*(UINT32*)(void *)(d)) = 0; ACPI_MOVE_UNALIGNED16_TO_16(d,s);}
|
||||
|
||||
#define ACPI_MOVE_UNALIGNED64_TO_64(d,s) {((UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
((UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];\
|
||||
((UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[2];\
|
||||
((UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[3];\
|
||||
((UINT8 *)(void *)(d))[4] = ((UINT8 *)(void *)(s))[4];\
|
||||
((UINT8 *)(void *)(d))[5] = ((UINT8 *)(void *)(s))[5];\
|
||||
((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[6];\
|
||||
((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[7];}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Fast power-of-two math macros for non-optimized compilers
|
||||
*/
|
||||
|
||||
#define _ACPI_DIV(value,PowerOf2) ((UINT32) ((value) >> (PowerOf2)))
|
||||
#define _ACPI_MUL(value,PowerOf2) ((UINT32) ((value) << (PowerOf2)))
|
||||
#define _ACPI_MOD(value,Divisor) ((UINT32) ((value) & ((Divisor) -1)))
|
||||
|
||||
#define ACPI_DIV_2(a) _ACPI_DIV(a,1)
|
||||
#define ACPI_MUL_2(a) _ACPI_MUL(a,1)
|
||||
#define ACPI_MOD_2(a) _ACPI_MOD(a,2)
|
||||
|
||||
#define ACPI_DIV_4(a) _ACPI_DIV(a,2)
|
||||
#define ACPI_MUL_4(a) _ACPI_MUL(a,2)
|
||||
#define ACPI_MOD_4(a) _ACPI_MOD(a,4)
|
||||
|
||||
#define ACPI_DIV_8(a) _ACPI_DIV(a,3)
|
||||
#define ACPI_MUL_8(a) _ACPI_MUL(a,3)
|
||||
#define ACPI_MOD_8(a) _ACPI_MOD(a,8)
|
||||
|
||||
#define ACPI_DIV_16(a) _ACPI_DIV(a,4)
|
||||
#define ACPI_MUL_16(a) _ACPI_MUL(a,4)
|
||||
#define ACPI_MOD_16(a) _ACPI_MOD(a,16)
|
||||
|
||||
|
||||
/*
|
||||
* Rounding macros (Power of two boundaries only)
|
||||
*/
|
||||
#define ACPI_ROUND_DOWN(value,boundary) (((ACPI_NATIVE_UINT)(value)) & (~(((ACPI_NATIVE_UINT) boundary)-1)))
|
||||
#define ACPI_ROUND_UP(value,boundary) ((((ACPI_NATIVE_UINT)(value)) + (((ACPI_NATIVE_UINT) boundary)-1)) & (~(((ACPI_NATIVE_UINT) boundary)-1)))
|
||||
|
||||
#define ACPI_ROUND_DOWN_TO_32_BITS(a) ACPI_ROUND_DOWN(a,4)
|
||||
#define ACPI_ROUND_DOWN_TO_64_BITS(a) ACPI_ROUND_DOWN(a,8)
|
||||
#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a) ACPI_ROUND_DOWN(a,ALIGNED_ADDRESS_BOUNDARY)
|
||||
|
||||
#define ACPI_ROUND_UP_TO_32BITS(a) ACPI_ROUND_UP(a,4)
|
||||
#define ACPI_ROUND_UP_TO_64BITS(a) ACPI_ROUND_UP(a,8)
|
||||
#define ACPI_ROUND_UP_TO_NATIVE_WORD(a) ACPI_ROUND_UP(a,ALIGNED_ADDRESS_BOUNDARY)
|
||||
|
||||
|
||||
#define ACPI_ROUND_BITS_UP_TO_BYTES(a) ACPI_DIV_8((a) + 7)
|
||||
#define ACPI_ROUND_BITS_DOWN_TO_BYTES(a) ACPI_DIV_8((a))
|
||||
|
||||
#define ACPI_ROUND_UP_TO_1K(a) (((a) + 1023) >> 10)
|
||||
|
||||
/* Generic (non-power-of-two) rounding */
|
||||
|
||||
#define ACPI_ROUND_UP_TO(value,boundary) (((value) + ((boundary)-1)) / (boundary))
|
||||
|
||||
/*
|
||||
* Bitmask creation
|
||||
* Bit positions start at zero.
|
||||
* MASK_BITS_ABOVE creates a mask starting AT the position and above
|
||||
* MASK_BITS_BELOW creates a mask starting one bit BELOW the position
|
||||
*/
|
||||
#define ACPI_MASK_BITS_ABOVE(position) (~((ACPI_INTEGER_MAX) << ((UINT32) (position))))
|
||||
#define ACPI_MASK_BITS_BELOW(position) ((ACPI_INTEGER_MAX) << ((UINT32) (position)))
|
||||
|
||||
#define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7'))
|
||||
|
||||
/* Macros for GAS addressing */
|
||||
|
||||
#if ACPI_MACHINE_WIDTH != 16
|
||||
|
||||
#define ACPI_PCI_DEVICE_MASK (UINT64) 0x0000FFFF00000000
|
||||
#define ACPI_PCI_FUNCTION_MASK (UINT64) 0x00000000FFFF0000
|
||||
#define ACPI_PCI_REGISTER_MASK (UINT64) 0x000000000000FFFF
|
||||
|
||||
/*
|
||||
* Obsolete
|
||||
*/
|
||||
|
||||
/*
|
||||
#define ACPI_PCI_FUNCTION(a) (UINT16) ((((UINT64)((UINT64)(a) & ACPI_PCI_FUNCTION_MASK)) >> 16))
|
||||
#define ACPI_PCI_DEVICE(a) (UINT16) ((((UINT64)((UINT64)(a) & ACPI_PCI_DEVICE_MASK)) >> 32))
|
||||
#define ACPI_PCI_REGISTER(a) (UINT16) (((UINT64)((UINT64)(a) & ACPI_PCI_REGISTER_MASK)))
|
||||
*/
|
||||
|
||||
|
||||
#define ACPI_PCI_DEVICE(a) (UINT16) ((ACPI_HIDWORD ((a))) & 0x0000FFFF)
|
||||
#define ACPI_PCI_FUNCTION(a) (UINT16) ((ACPI_LODWORD ((a))) >> 16)
|
||||
#define ACPI_PCI_REGISTER(a) (UINT16) ((ACPI_LODWORD ((a))) & 0x0000FFFF)
|
||||
|
||||
#else
|
||||
|
||||
/* No support for GAS and PCI IDs in 16-bit mode */
|
||||
|
||||
#define ACPI_PCI_FUNCTION(a) (UINT16) ((a) & 0xFFFF0000)
|
||||
#define ACPI_PCI_DEVICE(a) (UINT16) ((a) & 0x0000FFFF)
|
||||
#define ACPI_PCI_REGISTER(a) (UINT16) ((a) & 0x0000FFFF)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Bitfields within ACPI registers */
|
||||
|
||||
#define ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) ((Val << Pos) & Mask)
|
||||
#define ACPI_REGISTER_INSERT_VALUE(Reg, Pos, Mask, Val) Reg = (Reg & (~(Mask))) | ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask)
|
||||
|
||||
/*
|
||||
* An ACPI_NAMESPACE_NODE * can appear in some contexts,
|
||||
* where a pointer to an ACPI_OPERAND_OBJECT can also
|
||||
* appear. This macro is used to distinguish them.
|
||||
*
|
||||
* The "Descriptor" field is the first field in both structures.
|
||||
*/
|
||||
#define ACPI_GET_DESCRIPTOR_TYPE(d) (((ACPI_DESCRIPTOR *)(void *)(d))->DescriptorId)
|
||||
#define ACPI_SET_DESCRIPTOR_TYPE(d,t) (((ACPI_DESCRIPTOR *)(void *)(d))->DescriptorId = t)
|
||||
|
||||
|
||||
/* Macro to test the object type */
|
||||
|
||||
#define ACPI_GET_OBJECT_TYPE(d) (((ACPI_OPERAND_OBJECT *)(void *)(d))->Common.Type)
|
||||
|
||||
/* Macro to check the table flags for SINGLE or MULTIPLE tables are allowed */
|
||||
|
||||
#define ACPI_IS_SINGLE_TABLE(x) (((x) & 0x01) == ACPI_TABLE_SINGLE ? 1 : 0)
|
||||
|
||||
/*
|
||||
* Macros for the master AML opcode table
|
||||
*/
|
||||
#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
|
||||
#define ACPI_OP(Name,PArgs,IArgs,ObjType,Class,Type,Flags) {Name,(UINT32)(PArgs),(UINT32)(IArgs),(UINT32)(Flags),ObjType,Class,Type}
|
||||
#else
|
||||
#define ACPI_OP(Name,PArgs,IArgs,ObjType,Class,Type,Flags) {(UINT32)(PArgs),(UINT32)(IArgs),(UINT32)(Flags),ObjType,Class,Type}
|
||||
#endif
|
||||
|
||||
#ifdef ACPI_DISASSEMBLER
|
||||
#define ACPI_DISASM_ONLY_MEMBERS(a) a;
|
||||
#else
|
||||
#define ACPI_DISASM_ONLY_MEMBERS(a)
|
||||
#endif
|
||||
|
||||
#define ARG_TYPE_WIDTH 5
|
||||
#define ARG_1(x) ((UINT32)(x))
|
||||
#define ARG_2(x) ((UINT32)(x) << (1 * ARG_TYPE_WIDTH))
|
||||
#define ARG_3(x) ((UINT32)(x) << (2 * ARG_TYPE_WIDTH))
|
||||
#define ARG_4(x) ((UINT32)(x) << (3 * ARG_TYPE_WIDTH))
|
||||
#define ARG_5(x) ((UINT32)(x) << (4 * ARG_TYPE_WIDTH))
|
||||
#define ARG_6(x) ((UINT32)(x) << (5 * ARG_TYPE_WIDTH))
|
||||
|
||||
#define ARGI_LIST1(a) (ARG_1(a))
|
||||
#define ARGI_LIST2(a,b) (ARG_1(b)|ARG_2(a))
|
||||
#define ARGI_LIST3(a,b,c) (ARG_1(c)|ARG_2(b)|ARG_3(a))
|
||||
#define ARGI_LIST4(a,b,c,d) (ARG_1(d)|ARG_2(c)|ARG_3(b)|ARG_4(a))
|
||||
#define ARGI_LIST5(a,b,c,d,e) (ARG_1(e)|ARG_2(d)|ARG_3(c)|ARG_4(b)|ARG_5(a))
|
||||
#define ARGI_LIST6(a,b,c,d,e,f) (ARG_1(f)|ARG_2(e)|ARG_3(d)|ARG_4(c)|ARG_5(b)|ARG_6(a))
|
||||
|
||||
#define ARGP_LIST1(a) (ARG_1(a))
|
||||
#define ARGP_LIST2(a,b) (ARG_1(a)|ARG_2(b))
|
||||
#define ARGP_LIST3(a,b,c) (ARG_1(a)|ARG_2(b)|ARG_3(c))
|
||||
#define ARGP_LIST4(a,b,c,d) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d))
|
||||
#define ARGP_LIST5(a,b,c,d,e) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e))
|
||||
#define ARGP_LIST6(a,b,c,d,e,f) (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)|ARG_6(f))
|
||||
|
||||
#define GET_CURRENT_ARG_TYPE(List) (List & ((UINT32) 0x1F))
|
||||
#define INCREMENT_ARG_LIST(List) (List >>= ((UINT32) ARG_TYPE_WIDTH))
|
||||
|
||||
|
||||
/*
|
||||
* Build a GAS structure from earlier ACPI table entries (V1.0 and 0.71 extensions)
|
||||
*
|
||||
* 1) Address space
|
||||
* 2) Length in bytes -- convert to length in bits
|
||||
* 3) Bit offset is zero
|
||||
* 4) Reserved field is zero
|
||||
* 5) Expand address to 64 bits
|
||||
*/
|
||||
#define ASL_BUILD_GAS_FROM_ENTRY(a,b,c,d) do {a.AddressSpaceId = (UINT8) d;\
|
||||
a.RegisterBitWidth = (UINT8) ACPI_MUL_8 (b);\
|
||||
a.RegisterBitOffset = 0;\
|
||||
a.Reserved = 0;\
|
||||
ACPI_STORE_ADDRESS (a.Address,(ACPI_PHYSICAL_ADDRESS) c);} while (0)
|
||||
|
||||
/* ACPI V1.0 entries -- address space is always I/O */
|
||||
|
||||
#define ASL_BUILD_GAS_FROM_V1_ENTRY(a,b,c) ASL_BUILD_GAS_FROM_ENTRY(a,b,c,ACPI_ADR_SPACE_SYSTEM_IO)
|
||||
|
||||
|
||||
/*
|
||||
* Reporting macros that are never compiled out
|
||||
*/
|
||||
|
||||
#define ACPI_PARAM_LIST(pl) pl
|
||||
|
||||
/*
|
||||
* Error reporting. These versions add callers module and line#. Since
|
||||
* _THIS_MODULE gets compiled out when ACPI_DEBUG_OUTPUT isn't defined, only
|
||||
* use it in debug mode.
|
||||
*/
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
|
||||
#define ACPI_REPORT_INFO(fp) {AcpiUtReportInfo(_THIS_MODULE,__LINE__,_COMPONENT); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_ERROR(fp) {AcpiUtReportError(_THIS_MODULE,__LINE__,_COMPONENT); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_WARNING(fp) {AcpiUtReportWarning(_THIS_MODULE,__LINE__,_COMPONENT); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_NSERROR(s,e) AcpiNsReportError(_THIS_MODULE,__LINE__,_COMPONENT, s, e);
|
||||
|
||||
#define ACPI_REPORT_METHOD_ERROR(s,n,p,e) AcpiNsReportMethodError(_THIS_MODULE,__LINE__,_COMPONENT, s, n, p, e);
|
||||
|
||||
#else
|
||||
|
||||
#define ACPI_REPORT_INFO(fp) {AcpiUtReportInfo("ACPI",__LINE__,_COMPONENT); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_ERROR(fp) {AcpiUtReportError("ACPI",__LINE__,_COMPONENT); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_WARNING(fp) {AcpiUtReportWarning("ACPI",__LINE__,_COMPONENT); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define ACPI_REPORT_NSERROR(s,e) AcpiNsReportError("ACPI",__LINE__,_COMPONENT, s, e);
|
||||
|
||||
#define ACPI_REPORT_METHOD_ERROR(s,n,p,e) AcpiNsReportMethodError("ACPI",__LINE__,_COMPONENT, s, n, p, e);
|
||||
|
||||
#endif
|
||||
|
||||
/* Error reporting. These versions pass thru the module and line# */
|
||||
|
||||
#define _ACPI_REPORT_INFO(a,b,c,fp) {AcpiUtReportInfo(a,b,c); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define _ACPI_REPORT_ERROR(a,b,c,fp) {AcpiUtReportError(a,b,c); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
#define _ACPI_REPORT_WARNING(a,b,c,fp) {AcpiUtReportWarning(a,b,c); \
|
||||
AcpiOsPrintf ACPI_PARAM_LIST(fp);}
|
||||
|
||||
/*
|
||||
* Debug macros that are conditionally compiled
|
||||
*/
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
|
||||
#define ACPI_MODULE_NAME(name) static char ACPI_UNUSED_VAR *_THIS_MODULE = name;
|
||||
|
||||
/*
|
||||
* Function entry tracing.
|
||||
* The first parameter should be the procedure name as a quoted string. This is declared
|
||||
* as a local string ("_ProcName) so that it can be also used by the function exit macros below.
|
||||
*/
|
||||
|
||||
#define ACPI_FUNCTION_NAME(a) ACPI_DEBUG_PRINT_INFO _Dbg; \
|
||||
_Dbg.ComponentId = _COMPONENT; \
|
||||
_Dbg.ProcName = a; \
|
||||
_Dbg.ModuleName = _THIS_MODULE;
|
||||
|
||||
#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a)\
|
||||
AcpiUtTrace(__LINE__,&_Dbg)
|
||||
#define ACPI_FUNCTION_TRACE_PTR(a,b) ACPI_FUNCTION_NAME(a)\
|
||||
AcpiUtTracePtr(__LINE__,&_Dbg,(void *)b)
|
||||
#define ACPI_FUNCTION_TRACE_U32(a,b) ACPI_FUNCTION_NAME(a)\
|
||||
AcpiUtTraceU32(__LINE__,&_Dbg,(UINT32)b)
|
||||
#define ACPI_FUNCTION_TRACE_STR(a,b) ACPI_FUNCTION_NAME(a)\
|
||||
AcpiUtTraceStr(__LINE__,&_Dbg,(char *)b)
|
||||
|
||||
#define ACPI_FUNCTION_ENTRY() AcpiUtTrackStackPtr()
|
||||
|
||||
/*
|
||||
* Function exit tracing.
|
||||
* WARNING: These macros include a return statement. This is usually considered
|
||||
* bad form, but having a separate exit macro is very ugly and difficult to maintain.
|
||||
* One of the FUNCTION_TRACE macros above must be used in conjunction with these macros
|
||||
* so that "_ProcName" is defined.
|
||||
*/
|
||||
#ifdef ACPI_USE_DO_WHILE_0
|
||||
#define ACPI_DO_WHILE0(a) do a while(0)
|
||||
#else
|
||||
#define ACPI_DO_WHILE0(a) a
|
||||
#endif
|
||||
|
||||
#define return_VOID ACPI_DO_WHILE0 ({AcpiUtExit(__LINE__,&_Dbg);return;})
|
||||
#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({AcpiUtStatusExit(__LINE__,&_Dbg,(s));return((s));})
|
||||
#define return_VALUE(s) ACPI_DO_WHILE0 ({AcpiUtValueExit(__LINE__,&_Dbg,(ACPI_INTEGER)(s));return((s));})
|
||||
#define return_PTR(s) ACPI_DO_WHILE0 ({AcpiUtPtrExit(__LINE__,&_Dbg,(UINT8 *)(s));return((s));})
|
||||
|
||||
/* Conditional execution */
|
||||
|
||||
#define ACPI_DEBUG_EXEC(a) a
|
||||
#define ACPI_NORMAL_EXEC(a)
|
||||
|
||||
#define ACPI_DEBUG_DEFINE(a) a;
|
||||
#define ACPI_DEBUG_ONLY_MEMBERS(a) a;
|
||||
#define _VERBOSE_STRUCTURES
|
||||
|
||||
|
||||
/* Stack and buffer dumping */
|
||||
|
||||
#define ACPI_DUMP_STACK_ENTRY(a) AcpiExDumpOperand(a)
|
||||
#define ACPI_DUMP_OPERANDS(a,b,c,d,e) AcpiExDumpOperands(a,b,c,d,e,_THIS_MODULE,__LINE__)
|
||||
|
||||
|
||||
#define ACPI_DUMP_ENTRY(a,b) AcpiNsDumpEntry (a,b)
|
||||
#define ACPI_DUMP_TABLES(a,b) AcpiNsDumpTables(a,b)
|
||||
#define ACPI_DUMP_PATHNAME(a,b,c,d) AcpiNsDumpPathname(a,b,c,d)
|
||||
#define ACPI_DUMP_RESOURCE_LIST(a) AcpiRsDumpResourceList(a)
|
||||
#define ACPI_DUMP_BUFFER(a,b) AcpiUtDumpBuffer((UINT8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT)
|
||||
#define ACPI_BREAK_MSG(a) AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT,(a))
|
||||
|
||||
|
||||
/*
|
||||
* Generate INT3 on ACPI_ERROR (Debug only!)
|
||||
*/
|
||||
|
||||
#define ACPI_ERROR_BREAK
|
||||
#ifdef ACPI_ERROR_BREAK
|
||||
#define ACPI_BREAK_ON_ERROR(lvl) if ((lvl)&ACPI_ERROR) \
|
||||
AcpiOsSignal(ACPI_SIGNAL_BREAKPOINT,"Fatal error encountered\n")
|
||||
#else
|
||||
#define ACPI_BREAK_ON_ERROR(lvl)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Master debug print macros
|
||||
* Print iff:
|
||||
* 1) Debug print for the current component is enabled
|
||||
* 2) Debug error level or trace level for the print statement is enabled
|
||||
*/
|
||||
|
||||
#define ACPI_DEBUG_PRINT(pl) AcpiUtDebugPrint ACPI_PARAM_LIST(pl)
|
||||
#define ACPI_DEBUG_PRINT_RAW(pl) AcpiUtDebugPrintRaw ACPI_PARAM_LIST(pl)
|
||||
|
||||
|
||||
#else
|
||||
/*
|
||||
* This is the non-debug case -- make everything go away,
|
||||
* leaving no executable debug code!
|
||||
*/
|
||||
|
||||
#define ACPI_MODULE_NAME(name)
|
||||
#define _THIS_MODULE ""
|
||||
|
||||
#define ACPI_DEBUG_EXEC(a)
|
||||
#define ACPI_NORMAL_EXEC(a) a;
|
||||
|
||||
#define ACPI_DEBUG_DEFINE(a)
|
||||
#define ACPI_DEBUG_ONLY_MEMBERS(a)
|
||||
#define ACPI_FUNCTION_NAME(a)
|
||||
#define ACPI_FUNCTION_TRACE(a)
|
||||
#define ACPI_FUNCTION_TRACE_PTR(a,b)
|
||||
#define ACPI_FUNCTION_TRACE_U32(a,b)
|
||||
#define ACPI_FUNCTION_TRACE_STR(a,b)
|
||||
#define ACPI_FUNCTION_EXIT
|
||||
#define ACPI_FUNCTION_STATUS_EXIT(s)
|
||||
#define ACPI_FUNCTION_VALUE_EXIT(s)
|
||||
#define ACPI_FUNCTION_ENTRY()
|
||||
#define ACPI_DUMP_STACK_ENTRY(a)
|
||||
#define ACPI_DUMP_OPERANDS(a,b,c,d,e)
|
||||
#define ACPI_DUMP_ENTRY(a,b)
|
||||
#define ACPI_DUMP_TABLES(a,b)
|
||||
#define ACPI_DUMP_PATHNAME(a,b,c,d)
|
||||
#define ACPI_DUMP_RESOURCE_LIST(a)
|
||||
#define ACPI_DUMP_BUFFER(a,b)
|
||||
#define ACPI_DEBUG_PRINT(pl)
|
||||
#define ACPI_DEBUG_PRINT_RAW(pl)
|
||||
#define ACPI_BREAK_MSG(a)
|
||||
|
||||
#define return_VOID return
|
||||
#define return_ACPI_STATUS(s) return(s)
|
||||
#define return_VALUE(s) return(s)
|
||||
#define return_PTR(s) return(s)
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Some code only gets executed when the debugger is built in.
|
||||
* Note that this is entirely independent of whether the
|
||||
* DEBUG_PRINT stuff (set by ACPI_DEBUG_OUTPUT) is on, or not.
|
||||
*/
|
||||
#ifdef ACPI_DEBUGGER
|
||||
#define ACPI_DEBUGGER_EXEC(a) a
|
||||
#else
|
||||
#define ACPI_DEBUGGER_EXEC(a)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* For 16-bit code, we want to shrink some things even though
|
||||
* we are using ACPI_DEBUG_OUTPUT to get the debug output
|
||||
*/
|
||||
#if ACPI_MACHINE_WIDTH == 16
|
||||
#undef ACPI_DEBUG_ONLY_MEMBERS
|
||||
#undef _VERBOSE_STRUCTURES
|
||||
#define ACPI_DEBUG_ONLY_MEMBERS(a)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
/*
|
||||
* 1) Set name to blanks
|
||||
* 2) Copy the object name
|
||||
*/
|
||||
#define ACPI_ADD_OBJECT_NAME(a,b) ACPI_MEMSET (a->Common.Name, ' ', sizeof (a->Common.Name));\
|
||||
ACPI_STRNCPY (a->Common.Name, AcpiGbl_NsTypeNames[b], sizeof (a->Common.Name))
|
||||
#else
|
||||
|
||||
#define ACPI_ADD_OBJECT_NAME(a,b)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Memory allocation tracking (DEBUG ONLY)
|
||||
*/
|
||||
|
||||
#ifndef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
|
||||
/* Memory allocation */
|
||||
|
||||
#define ACPI_MEM_ALLOCATE(a) AcpiUtAllocate((ACPI_SIZE)(a),_COMPONENT,_THIS_MODULE,__LINE__)
|
||||
#define ACPI_MEM_CALLOCATE(a) AcpiUtCallocate((ACPI_SIZE)(a), _COMPONENT,_THIS_MODULE,__LINE__)
|
||||
#define ACPI_MEM_FREE(a) AcpiOsFree(a)
|
||||
#define ACPI_MEM_TRACKING(a)
|
||||
|
||||
|
||||
#else
|
||||
|
||||
/* Memory allocation */
|
||||
|
||||
#define ACPI_MEM_ALLOCATE(a) AcpiUtAllocateAndTrack((ACPI_SIZE)(a),_COMPONENT,_THIS_MODULE,__LINE__)
|
||||
#define ACPI_MEM_CALLOCATE(a) AcpiUtCallocateAndTrack((ACPI_SIZE)(a), _COMPONENT,_THIS_MODULE,__LINE__)
|
||||
#define ACPI_MEM_FREE(a) AcpiUtFreeAndTrack(a,_COMPONENT,_THIS_MODULE,__LINE__)
|
||||
#define ACPI_MEM_TRACKING(a) a
|
||||
|
||||
#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
|
||||
|
||||
|
||||
#define ACPI_GET_STACK_POINTER _asm {mov eax, ebx}
|
||||
|
||||
#endif /* ACMACROS_H */
|
581
source/include/acnamesp.h
Normal file
581
source/include/acnamesp.h
Normal file
@ -0,0 +1,581 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acnamesp.h - Namespace subcomponent prototypes and defines
|
||||
* $Revision: 1.133 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACNAMESP_H__
|
||||
#define __ACNAMESP_H__
|
||||
|
||||
|
||||
/* To search the entire name space, pass this as SearchBase */
|
||||
|
||||
#define ACPI_NS_ALL ((ACPI_HANDLE)0)
|
||||
|
||||
/*
|
||||
* Elements of AcpiNsProperties are bit significant
|
||||
* and should be one-to-one with values of ACPI_OBJECT_TYPE
|
||||
*/
|
||||
#define ACPI_NS_NORMAL 0
|
||||
#define ACPI_NS_NEWSCOPE 1 /* a definition of this type opens a name scope */
|
||||
#define ACPI_NS_LOCAL 2 /* suppress search of enclosing scopes */
|
||||
|
||||
|
||||
/* Definitions of the predefined namespace names */
|
||||
|
||||
#define ACPI_UNKNOWN_NAME (UINT32) 0x3F3F3F3F /* Unknown name is "????" */
|
||||
#define ACPI_ROOT_NAME (UINT32) 0x5F5F5F5C /* Root name is "\___" */
|
||||
#define ACPI_SYS_BUS_NAME (UINT32) 0x5F53425F /* Sys bus name is "_SB_" */
|
||||
|
||||
#define ACPI_NS_ROOT_PATH "\\"
|
||||
#define ACPI_NS_SYSTEM_BUS "_SB_"
|
||||
|
||||
|
||||
/* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
|
||||
|
||||
#define ACPI_NS_NO_UPSEARCH 0
|
||||
#define ACPI_NS_SEARCH_PARENT 0x01
|
||||
#define ACPI_NS_DONT_OPEN_SCOPE 0x02
|
||||
#define ACPI_NS_NO_PEER_SEARCH 0x04
|
||||
#define ACPI_NS_ERROR_IF_FOUND 0x08
|
||||
|
||||
#define ACPI_NS_WALK_UNLOCK TRUE
|
||||
#define ACPI_NS_WALK_NO_UNLOCK FALSE
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsLoadNamespace (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsInitializeObjects (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsInitializeDevices (
|
||||
void);
|
||||
|
||||
|
||||
/* Namespace init - nsxfinit */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsInitOneDevice (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 NestingLevel,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsInitOneObject (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 Level,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsWalkNamespace (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_HANDLE StartObject,
|
||||
UINT32 MaxDepth,
|
||||
BOOLEAN UnlockBeforeCallback,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_NAMESPACE_NODE *
|
||||
AcpiNsGetNextNode (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_NAMESPACE_NODE *Parent,
|
||||
ACPI_NAMESPACE_NODE *Child);
|
||||
|
||||
void
|
||||
AcpiNsDeleteNamespaceByOwner (
|
||||
UINT16 TableId);
|
||||
|
||||
|
||||
/* Namespace loading - nsload */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsOneCompleteParse (
|
||||
UINT32 PassNumber,
|
||||
ACPI_TABLE_DESC *TableDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsParseTable (
|
||||
ACPI_TABLE_DESC *TableDesc,
|
||||
ACPI_NAMESPACE_NODE *Scope);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsLoadTable (
|
||||
ACPI_TABLE_DESC *TableDesc,
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsLoadTableByType (
|
||||
ACPI_TABLE_TYPE TableType);
|
||||
|
||||
|
||||
/*
|
||||
* Top-level namespace access - nsaccess
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsRootInitialize (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsLookup (
|
||||
ACPI_GENERIC_STATE *ScopeInfo,
|
||||
char *Name,
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_INTERPRETER_MODE InterpreterMode,
|
||||
UINT32 Flags,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_NAMESPACE_NODE **RetNode);
|
||||
|
||||
|
||||
/*
|
||||
* Named object allocation/deallocation - nsalloc
|
||||
*/
|
||||
|
||||
ACPI_NAMESPACE_NODE *
|
||||
AcpiNsCreateNode (
|
||||
UINT32 Name);
|
||||
|
||||
void
|
||||
AcpiNsDeleteNode (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
void
|
||||
AcpiNsDeleteNamespaceSubtree (
|
||||
ACPI_NAMESPACE_NODE *ParentHandle);
|
||||
|
||||
void
|
||||
AcpiNsDetachObject (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
void
|
||||
AcpiNsDeleteChildren (
|
||||
ACPI_NAMESPACE_NODE *Parent);
|
||||
|
||||
int
|
||||
AcpiNsCompareNames (
|
||||
char *Name1,
|
||||
char *Name2);
|
||||
|
||||
/*
|
||||
* Namespace modification - nsmodify
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsUnloadNamespace (
|
||||
ACPI_HANDLE Handle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsDeleteSubtree (
|
||||
ACPI_HANDLE StartHandle);
|
||||
|
||||
|
||||
/*
|
||||
* Namespace dump/print utilities - nsdump
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiNsDumpTables (
|
||||
ACPI_HANDLE SearchBase,
|
||||
UINT32 MaxDepth);
|
||||
|
||||
void
|
||||
AcpiNsDumpEntry (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 DebugLevel);
|
||||
|
||||
void
|
||||
AcpiNsDumpPathname (
|
||||
ACPI_HANDLE Handle,
|
||||
char *Msg,
|
||||
UINT32 Level,
|
||||
UINT32 Component);
|
||||
|
||||
void
|
||||
AcpiNsPrintPathname (
|
||||
UINT32 NumSegments,
|
||||
char *Pathname);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsDumpOneDevice (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 Level,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
void
|
||||
AcpiNsDumpRootDevices (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsDumpOneObject (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
UINT32 Level,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
void
|
||||
AcpiNsDumpObjects (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
UINT8 DisplayType,
|
||||
UINT32 MaxDepth,
|
||||
UINT32 OwnderId,
|
||||
ACPI_HANDLE StartHandle);
|
||||
|
||||
|
||||
/*
|
||||
* Namespace evaluation functions - nseval
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsEvaluateByHandle (
|
||||
ACPI_NAMESPACE_NODE *PrefixNode,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObject);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsEvaluateByName (
|
||||
char *Pathname,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObject);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsEvaluateRelative (
|
||||
ACPI_NAMESPACE_NODE *PrefixNode,
|
||||
char *Pathname,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObject);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsExecuteControlMethod (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsGetObjectValue (
|
||||
ACPI_NAMESPACE_NODE *ObjectNode,
|
||||
ACPI_OPERAND_OBJECT **ReturnObjDesc);
|
||||
|
||||
|
||||
/*
|
||||
* Parent/Child/Peer utility functions
|
||||
*/
|
||||
|
||||
ACPI_NAME
|
||||
AcpiNsFindParentName (
|
||||
ACPI_NAMESPACE_NODE *NodeToSearch);
|
||||
|
||||
|
||||
/*
|
||||
* Name and Scope manipulation - nsnames
|
||||
*/
|
||||
|
||||
UINT32
|
||||
AcpiNsOpensScope (
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
void
|
||||
AcpiNsBuildExternalPath (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_SIZE Size,
|
||||
char *NameBuffer);
|
||||
|
||||
char *
|
||||
AcpiNsGetExternalPathname (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
char *
|
||||
AcpiNsNameOfCurrentScope (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsHandleToPathname (
|
||||
ACPI_HANDLE TargetHandle,
|
||||
ACPI_BUFFER *Buffer);
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsPatternMatch (
|
||||
ACPI_NAMESPACE_NODE *ObjNode,
|
||||
char *SearchFor);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsGetNodeByPath (
|
||||
char *ExternalPathname,
|
||||
ACPI_NAMESPACE_NODE *InPrefixNode,
|
||||
UINT32 Flags,
|
||||
ACPI_NAMESPACE_NODE **OutNode);
|
||||
|
||||
ACPI_SIZE
|
||||
AcpiNsGetPathnameLength (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
|
||||
/*
|
||||
* Object management for namespace nodes - nsobject
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsAttachObject (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiNsGetAttachedObject (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiNsGetSecondaryObject (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsAttachData (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void *Data);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsDetachData (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_HANDLER Handler);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsGetAttachedData (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void **Data);
|
||||
|
||||
|
||||
/*
|
||||
* Namespace searching and entry - nssearch
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsSearchAndEnter (
|
||||
UINT32 EntryName,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_INTERPRETER_MODE InterpreterMode,
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
UINT32 Flags,
|
||||
ACPI_NAMESPACE_NODE **RetNode);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsSearchNode (
|
||||
UINT32 EntryName,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_NAMESPACE_NODE **RetNode);
|
||||
|
||||
void
|
||||
AcpiNsInstallNode (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_NAMESPACE_NODE *ParentNode,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
|
||||
/*
|
||||
* Utility functions - nsutils
|
||||
*/
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsValidRootPrefix (
|
||||
char Prefix);
|
||||
|
||||
BOOLEAN
|
||||
AcpiNsValidPathSeparator (
|
||||
char Sep);
|
||||
|
||||
ACPI_OBJECT_TYPE
|
||||
AcpiNsGetType (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
UINT32
|
||||
AcpiNsLocal (
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
void
|
||||
AcpiNsReportError (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId,
|
||||
char *InternalName,
|
||||
ACPI_STATUS LookupStatus);
|
||||
|
||||
void
|
||||
AcpiNsReportMethodError (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId,
|
||||
char *Message,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
char *Path,
|
||||
ACPI_STATUS LookupStatus);
|
||||
|
||||
void
|
||||
AcpiNsPrintNodePathname (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
char *Msg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsBuildInternalName (
|
||||
ACPI_NAMESTRING_INFO *Info);
|
||||
|
||||
void
|
||||
AcpiNsGetInternalNameLength (
|
||||
ACPI_NAMESTRING_INFO *Info);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsInternalizeName (
|
||||
char *DottedName,
|
||||
char **ConvertedName);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsExternalizeName (
|
||||
UINT32 InternalNameLength,
|
||||
char *InternalName,
|
||||
UINT32 *ConvertedNameLength,
|
||||
char **ConvertedName);
|
||||
|
||||
ACPI_NAMESPACE_NODE *
|
||||
AcpiNsMapHandleToNode (
|
||||
ACPI_HANDLE Handle);
|
||||
|
||||
ACPI_HANDLE
|
||||
AcpiNsConvertEntryToHandle(
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
void
|
||||
AcpiNsTerminate (
|
||||
void);
|
||||
|
||||
ACPI_NAMESPACE_NODE *
|
||||
AcpiNsGetParentNode (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
|
||||
ACPI_NAMESPACE_NODE *
|
||||
AcpiNsGetNextValidNode (
|
||||
ACPI_NAMESPACE_NODE *Node);
|
||||
|
||||
|
||||
#endif /* __ACNAMESP_H__ */
|
591
source/include/acobject.h
Normal file
591
source/include/acobject.h
Normal file
@ -0,0 +1,591 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acobject.h - Definition of ACPI_OPERAND_OBJECT (Internal object only)
|
||||
* $Revision: 1.118 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _ACOBJECT_H
|
||||
#define _ACOBJECT_H
|
||||
|
||||
|
||||
/*
|
||||
* The ACPI_OPERAND_OBJECT is used to pass AML operands from the dispatcher
|
||||
* to the interpreter, and to keep track of the various handlers such as
|
||||
* address space handlers and notify handlers. The object is a constant
|
||||
* size in order to allow it to be cached and reused.
|
||||
*/
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* Common Descriptors
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/*
|
||||
* Common area for all objects.
|
||||
*
|
||||
* DataType is used to differentiate between internal descriptors, and MUST
|
||||
* be the first byte in this structure.
|
||||
*/
|
||||
#define ACPI_OBJECT_COMMON_HEADER /* SIZE/ALIGNMENT: 32 bits, one ptr plus trailing 8-bit flag */\
|
||||
UINT8 Descriptor; /* To differentiate various internal objs */\
|
||||
UINT8 Type; /* ACPI_OBJECT_TYPE */\
|
||||
UINT16 ReferenceCount; /* For object deletion management */\
|
||||
union acpi_operand_object *NextObject; /* Objects linked to parent NS node */\
|
||||
UINT8 Flags; \
|
||||
|
||||
/* Values for flag byte above */
|
||||
|
||||
#define AOPOBJ_AML_CONSTANT 0x01
|
||||
#define AOPOBJ_STATIC_POINTER 0x02
|
||||
#define AOPOBJ_DATA_VALID 0x04
|
||||
#define AOPOBJ_OBJECT_INITIALIZED 0x08
|
||||
#define AOPOBJ_SETUP_COMPLETE 0x10
|
||||
#define AOPOBJ_SINGLE_DATUM 0x20
|
||||
|
||||
|
||||
/*
|
||||
* Common bitfield for the field objects
|
||||
* "Field Datum" -- a datum from the actual field object
|
||||
* "Buffer Datum" -- a datum from a user buffer, read from or to be written to the field
|
||||
*/
|
||||
#define ACPI_COMMON_FIELD_INFO /* SIZE/ALIGNMENT: 24 bits + three 32-bit values */\
|
||||
UINT8 FieldFlags; /* Access, update, and lock bits */\
|
||||
UINT8 Attribute; /* From AccessAs keyword */\
|
||||
UINT8 AccessByteWidth; /* Read/Write size in bytes */\
|
||||
UINT32 BitLength; /* Length of field in bits */\
|
||||
UINT32 BaseByteOffset; /* Byte offset within containing object */\
|
||||
UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\
|
||||
UINT8 DatumValidBits; /* Valid bit in first "Field datum" */\
|
||||
UINT8 EndFieldValidBits; /* Valid bits in the last "field datum" */\
|
||||
UINT8 EndBufferValidBits; /* Valid bits in the last "buffer datum" */\
|
||||
UINT32 Value; /* Value to store into the Bank or Index register */\
|
||||
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
|
||||
|
||||
|
||||
/*
|
||||
* Fields common to both Strings and Buffers
|
||||
*/
|
||||
#define ACPI_COMMON_BUFFER_INFO \
|
||||
UINT32 Length;
|
||||
|
||||
|
||||
/*
|
||||
* Common fields for objects that support ASL notifications
|
||||
*/
|
||||
#define ACPI_COMMON_NOTIFY_INFO \
|
||||
union acpi_operand_object *SysHandler; /* Handler for system notifies */\
|
||||
union acpi_operand_object *DrvHandler; /* Handler for driver notifies */\
|
||||
union acpi_operand_object *AddrHandler; /* Handler for Address space */
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Basic data types
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct acpi_object_common
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
|
||||
} ACPI_OBJECT_COMMON;
|
||||
|
||||
|
||||
typedef struct acpi_object_integer
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_INTEGER Value;
|
||||
|
||||
} ACPI_OBJECT_INTEGER;
|
||||
|
||||
|
||||
typedef struct acpi_object_string /* Null terminated, ASCII characters only */
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_BUFFER_INFO
|
||||
char *Pointer; /* String in AML stream or allocated string */
|
||||
|
||||
} ACPI_OBJECT_STRING;
|
||||
|
||||
|
||||
typedef struct acpi_object_buffer
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_BUFFER_INFO
|
||||
UINT8 *Pointer; /* Buffer in AML stream or allocated buffer */
|
||||
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
|
||||
UINT8 *AmlStart;
|
||||
UINT32 AmlLength;
|
||||
|
||||
} ACPI_OBJECT_BUFFER;
|
||||
|
||||
|
||||
typedef struct acpi_object_package
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
|
||||
UINT32 Count; /* # of elements in package */
|
||||
UINT32 AmlLength;
|
||||
UINT8 *AmlStart;
|
||||
ACPI_NAMESPACE_NODE *Node; /* Link back to parent node */
|
||||
union acpi_operand_object **Elements; /* Array of pointers to AcpiObjects */
|
||||
|
||||
} ACPI_OBJECT_PACKAGE;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Complex data types
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct acpi_object_event
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
void *Semaphore;
|
||||
|
||||
} ACPI_OBJECT_EVENT;
|
||||
|
||||
|
||||
#define INFINITE_CONCURRENCY 0xFF
|
||||
|
||||
typedef struct acpi_object_method
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
UINT8 MethodFlags;
|
||||
UINT8 ParamCount;
|
||||
UINT32 AmlLength;
|
||||
void *Semaphore;
|
||||
UINT8 *AmlStart;
|
||||
UINT8 Concurrency;
|
||||
UINT8 ThreadCount;
|
||||
ACPI_OWNER_ID OwningId;
|
||||
|
||||
} ACPI_OBJECT_METHOD;
|
||||
|
||||
|
||||
typedef struct acpi_object_mutex
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
UINT16 SyncLevel;
|
||||
UINT16 AcquisitionDepth;
|
||||
struct acpi_thread_state *OwnerThread;
|
||||
void *Semaphore;
|
||||
union acpi_operand_object *Prev; /* Link for list of acquired mutexes */
|
||||
union acpi_operand_object *Next; /* Link for list of acquired mutexes */
|
||||
ACPI_NAMESPACE_NODE *Node; /* containing object */
|
||||
|
||||
} ACPI_OBJECT_MUTEX;
|
||||
|
||||
|
||||
typedef struct acpi_object_region
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
|
||||
UINT8 SpaceId;
|
||||
union acpi_operand_object *AddrHandler; /* Handler for system notifies */
|
||||
ACPI_NAMESPACE_NODE *Node; /* containing object */
|
||||
union acpi_operand_object *Next;
|
||||
UINT32 Length;
|
||||
ACPI_PHYSICAL_ADDRESS Address;
|
||||
|
||||
} ACPI_OBJECT_REGION;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Objects that can be notified. All share a common NotifyInfo area.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_NOTIFY_INFO
|
||||
|
||||
} ACPI_OBJECT_NOTIFY_COMMON;
|
||||
|
||||
|
||||
typedef struct acpi_object_device
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_NOTIFY_INFO
|
||||
|
||||
} ACPI_OBJECT_DEVICE;
|
||||
|
||||
|
||||
typedef struct acpi_object_power_resource
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_NOTIFY_INFO
|
||||
UINT32 SystemLevel;
|
||||
UINT32 ResourceOrder;
|
||||
|
||||
} ACPI_OBJECT_POWER_RESOURCE;
|
||||
|
||||
|
||||
typedef struct acpi_object_processor
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_NOTIFY_INFO
|
||||
UINT32 ProcId;
|
||||
UINT32 Length;
|
||||
ACPI_IO_ADDRESS Address;
|
||||
|
||||
} ACPI_OBJECT_PROCESSOR;
|
||||
|
||||
|
||||
typedef struct acpi_object_thermal_zone
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_NOTIFY_INFO
|
||||
|
||||
} ACPI_OBJECT_THERMAL_ZONE;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Fields. All share a common header/info field.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_FIELD_INFO
|
||||
union acpi_operand_object *RegionObj; /* Containing Operation Region object */
|
||||
/* (REGION/BANK fields only) */
|
||||
} ACPI_OBJECT_FIELD_COMMON;
|
||||
|
||||
|
||||
typedef struct acpi_object_region_field
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_FIELD_INFO
|
||||
union acpi_operand_object *RegionObj; /* Containing OpRegion object */
|
||||
|
||||
} ACPI_OBJECT_REGION_FIELD;
|
||||
|
||||
|
||||
typedef struct acpi_object_bank_field
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_FIELD_INFO
|
||||
union acpi_operand_object *RegionObj; /* Containing OpRegion object */
|
||||
union acpi_operand_object *BankObj; /* BankSelect Register object */
|
||||
|
||||
} ACPI_OBJECT_BANK_FIELD;
|
||||
|
||||
|
||||
typedef struct acpi_object_index_field
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_FIELD_INFO
|
||||
|
||||
/*
|
||||
* No "RegionObj" pointer needed since the Index and Data registers
|
||||
* are each field definitions unto themselves.
|
||||
*/
|
||||
union acpi_operand_object *IndexObj; /* Index register */
|
||||
union acpi_operand_object *DataObj; /* Data register */
|
||||
|
||||
} ACPI_OBJECT_INDEX_FIELD;
|
||||
|
||||
|
||||
/* The BufferField is different in that it is part of a Buffer, not an OpRegion */
|
||||
|
||||
typedef struct acpi_object_buffer_field
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_COMMON_FIELD_INFO
|
||||
union acpi_operand_object *BufferObj; /* Containing Buffer object */
|
||||
|
||||
} ACPI_OBJECT_BUFFER_FIELD;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Objects for handlers
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct acpi_object_notify_handler
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_NAMESPACE_NODE *Node; /* Parent device */
|
||||
ACPI_NOTIFY_HANDLER Handler;
|
||||
void *Context;
|
||||
|
||||
} ACPI_OBJECT_NOTIFY_HANDLER;
|
||||
|
||||
|
||||
/* Flags for address handler */
|
||||
|
||||
#define ACPI_ADDR_HANDLER_DEFAULT_INSTALLED 0x1
|
||||
|
||||
|
||||
typedef struct acpi_object_addr_handler
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
UINT8 SpaceId;
|
||||
UINT16 Hflags;
|
||||
ACPI_ADR_SPACE_HANDLER Handler;
|
||||
ACPI_NAMESPACE_NODE *Node; /* Parent device */
|
||||
void *Context;
|
||||
ACPI_ADR_SPACE_SETUP Setup;
|
||||
union acpi_operand_object *RegionList; /* regions using this handler */
|
||||
union acpi_operand_object *Next;
|
||||
|
||||
} ACPI_OBJECT_ADDR_HANDLER;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Special internal objects
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* The Reference object type is used for these opcodes:
|
||||
* Arg[0-6], Local[0-7], IndexOp, NameOp, ZeroOp, OneOp, OnesOp, DebugOp
|
||||
*/
|
||||
typedef struct acpi_object_reference
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
UINT8 TargetType; /* Used for IndexOp */
|
||||
UINT16 Opcode;
|
||||
UINT32 Offset; /* Used for ArgOp, LocalOp, and IndexOp */
|
||||
void *Object; /* NameOp=>HANDLE to obj, IndexOp=>ACPI_OPERAND_OBJECT */
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
union acpi_operand_object **Where;
|
||||
|
||||
} ACPI_OBJECT_REFERENCE;
|
||||
|
||||
|
||||
/*
|
||||
* Extra object is used as additional storage for types that
|
||||
* have AML code in their declarations (TermArgs) that must be
|
||||
* evaluated at run time.
|
||||
*
|
||||
* Currently: Region and FieldUnit types
|
||||
*/
|
||||
typedef struct acpi_object_extra
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
UINT8 ByteFill1;
|
||||
UINT16 WordFill1;
|
||||
UINT32 AmlLength;
|
||||
UINT8 *AmlStart;
|
||||
ACPI_NAMESPACE_NODE *Method_REG; /* _REG method for this region (if any) */
|
||||
void *RegionContext; /* Region-specific data */
|
||||
|
||||
} ACPI_OBJECT_EXTRA;
|
||||
|
||||
|
||||
/* Additional data that can be attached to namespace nodes */
|
||||
|
||||
typedef struct acpi_object_data
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
ACPI_OBJECT_HANDLER Handler;
|
||||
void *Pointer;
|
||||
|
||||
} ACPI_OBJECT_DATA;
|
||||
|
||||
|
||||
/* Structure used when objects are cached for reuse */
|
||||
|
||||
typedef struct acpi_object_cache_list
|
||||
{
|
||||
ACPI_OBJECT_COMMON_HEADER
|
||||
union acpi_operand_object *Next; /* Link for object cache and internal lists*/
|
||||
|
||||
} ACPI_OBJECT_CACHE_LIST;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI_OPERAND_OBJECT Descriptor - a giant union of all of the above
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
typedef union acpi_operand_object
|
||||
{
|
||||
ACPI_OBJECT_COMMON Common;
|
||||
ACPI_OBJECT_INTEGER Integer;
|
||||
ACPI_OBJECT_STRING String;
|
||||
ACPI_OBJECT_BUFFER Buffer;
|
||||
ACPI_OBJECT_PACKAGE Package;
|
||||
ACPI_OBJECT_EVENT Event;
|
||||
ACPI_OBJECT_METHOD Method;
|
||||
ACPI_OBJECT_MUTEX Mutex;
|
||||
ACPI_OBJECT_REGION Region;
|
||||
ACPI_OBJECT_NOTIFY_COMMON CommonNotify;
|
||||
ACPI_OBJECT_DEVICE Device;
|
||||
ACPI_OBJECT_POWER_RESOURCE PowerResource;
|
||||
ACPI_OBJECT_PROCESSOR Processor;
|
||||
ACPI_OBJECT_THERMAL_ZONE ThermalZone;
|
||||
ACPI_OBJECT_FIELD_COMMON CommonField;
|
||||
ACPI_OBJECT_REGION_FIELD Field;
|
||||
ACPI_OBJECT_BUFFER_FIELD BufferField;
|
||||
ACPI_OBJECT_BANK_FIELD BankField;
|
||||
ACPI_OBJECT_INDEX_FIELD IndexField;
|
||||
ACPI_OBJECT_NOTIFY_HANDLER NotifyHandler;
|
||||
ACPI_OBJECT_ADDR_HANDLER AddrHandler;
|
||||
ACPI_OBJECT_REFERENCE Reference;
|
||||
ACPI_OBJECT_EXTRA Extra;
|
||||
ACPI_OBJECT_DATA Data;
|
||||
ACPI_OBJECT_CACHE_LIST Cache;
|
||||
|
||||
} ACPI_OPERAND_OBJECT;
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* ACPI_DESCRIPTOR - objects that share a common descriptor identifier
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/* Object descriptor types */
|
||||
|
||||
#define ACPI_DESC_TYPE_CACHED 0x11 /* Used only when object is cached */
|
||||
#define ACPI_DESC_TYPE_STATE 0x20
|
||||
#define ACPI_DESC_TYPE_STATE_UPDATE 0x21
|
||||
#define ACPI_DESC_TYPE_STATE_PACKAGE 0x22
|
||||
#define ACPI_DESC_TYPE_STATE_CONTROL 0x23
|
||||
#define ACPI_DESC_TYPE_STATE_RPSCOPE 0x24
|
||||
#define ACPI_DESC_TYPE_STATE_PSCOPE 0x25
|
||||
#define ACPI_DESC_TYPE_STATE_WSCOPE 0x26
|
||||
#define ACPI_DESC_TYPE_STATE_RESULT 0x27
|
||||
#define ACPI_DESC_TYPE_STATE_NOTIFY 0x28
|
||||
#define ACPI_DESC_TYPE_STATE_THREAD 0x29
|
||||
#define ACPI_DESC_TYPE_WALK 0x44
|
||||
#define ACPI_DESC_TYPE_PARSER 0x66
|
||||
#define ACPI_DESC_TYPE_OPERAND 0x88
|
||||
#define ACPI_DESC_TYPE_NAMED 0xAA
|
||||
|
||||
|
||||
typedef union acpi_descriptor
|
||||
{
|
||||
UINT8 DescriptorId; /* To differentiate various internal objs */\
|
||||
ACPI_OPERAND_OBJECT Object;
|
||||
ACPI_NAMESPACE_NODE Node;
|
||||
ACPI_PARSE_OBJECT Op;
|
||||
|
||||
} ACPI_DESCRIPTOR;
|
||||
|
||||
|
||||
#endif /* _ACOBJECT_H */
|
258
source/include/acoutput.h
Normal file
258
source/include/acoutput.h
Normal file
@ -0,0 +1,258 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acoutput.h -- debug output
|
||||
* $Revision: 1.93 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACOUTPUT_H__
|
||||
#define __ACOUTPUT_H__
|
||||
|
||||
/*
|
||||
* Debug levels and component IDs. These are used to control the
|
||||
* granularity of the output of the DEBUG_PRINT macro -- on a per-
|
||||
* component basis and a per-exception-type basis.
|
||||
*/
|
||||
|
||||
/* Component IDs are used in the global "DebugLayer" */
|
||||
|
||||
#define ACPI_UTILITIES 0x00000001
|
||||
#define ACPI_HARDWARE 0x00000002
|
||||
#define ACPI_EVENTS 0x00000004
|
||||
#define ACPI_TABLES 0x00000008
|
||||
#define ACPI_NAMESPACE 0x00000010
|
||||
#define ACPI_PARSER 0x00000020
|
||||
#define ACPI_DISPATCHER 0x00000040
|
||||
#define ACPI_EXECUTER 0x00000080
|
||||
#define ACPI_RESOURCES 0x00000100
|
||||
#define ACPI_CA_DEBUGGER 0x00000200
|
||||
#define ACPI_OS_SERVICES 0x00000400
|
||||
#define ACPI_CA_DISASSEMBLER 0x00000800
|
||||
|
||||
/* Component IDs for ACPI tools and utilities */
|
||||
|
||||
#define ACPI_COMPILER 0x00001000
|
||||
#define ACPI_TOOLS 0x00002000
|
||||
|
||||
#define ACPI_ALL_COMPONENTS 0x00003FFF
|
||||
#define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS)
|
||||
|
||||
|
||||
/* Component IDs reserved for ACPI drivers */
|
||||
|
||||
#define ACPI_ALL_DRIVERS 0xFFFF0000
|
||||
|
||||
|
||||
/*
|
||||
* Raw debug output levels, do not use these in the DEBUG_PRINT macros
|
||||
*/
|
||||
#define ACPI_LV_ERROR 0x00000001
|
||||
#define ACPI_LV_WARN 0x00000002
|
||||
#define ACPI_LV_INIT 0x00000004
|
||||
#define ACPI_LV_DEBUG_OBJECT 0x00000008
|
||||
#define ACPI_LV_INFO 0x00000010
|
||||
#define ACPI_LV_ALL_EXCEPTIONS 0x0000001F
|
||||
|
||||
/* Trace verbosity level 1 [Standard Trace Level] */
|
||||
|
||||
#define ACPI_LV_INIT_NAMES 0x00000020
|
||||
#define ACPI_LV_PARSE 0x00000040
|
||||
#define ACPI_LV_LOAD 0x00000080
|
||||
#define ACPI_LV_DISPATCH 0x00000100
|
||||
#define ACPI_LV_EXEC 0x00000200
|
||||
#define ACPI_LV_NAMES 0x00000400
|
||||
#define ACPI_LV_OPREGION 0x00000800
|
||||
#define ACPI_LV_BFIELD 0x00001000
|
||||
#define ACPI_LV_TABLES 0x00002000
|
||||
#define ACPI_LV_VALUES 0x00004000
|
||||
#define ACPI_LV_OBJECTS 0x00008000
|
||||
#define ACPI_LV_RESOURCES 0x00010000
|
||||
#define ACPI_LV_USER_REQUESTS 0x00020000
|
||||
#define ACPI_LV_PACKAGE 0x00040000
|
||||
#define ACPI_LV_VERBOSITY1 0x0007FF40 | ACPI_LV_ALL_EXCEPTIONS
|
||||
|
||||
/* Trace verbosity level 2 [Function tracing and memory allocation] */
|
||||
|
||||
#define ACPI_LV_ALLOCATIONS 0x00100000
|
||||
#define ACPI_LV_FUNCTIONS 0x00200000
|
||||
#define ACPI_LV_OPTIMIZATIONS 0x00400000
|
||||
#define ACPI_LV_VERBOSITY2 0x00700000 | ACPI_LV_VERBOSITY1
|
||||
#define ACPI_LV_ALL ACPI_LV_VERBOSITY2
|
||||
|
||||
/* Trace verbosity level 3 [Threading, I/O, and Interrupts] */
|
||||
|
||||
#define ACPI_LV_MUTEX 0x01000000
|
||||
#define ACPI_LV_THREADS 0x02000000
|
||||
#define ACPI_LV_IO 0x04000000
|
||||
#define ACPI_LV_INTERRUPTS 0x08000000
|
||||
#define ACPI_LV_VERBOSITY3 0x0F000000 | ACPI_LV_VERBOSITY2
|
||||
|
||||
/* Exceptionally verbose output -- also used in the global "DebugLevel" */
|
||||
|
||||
#define ACPI_LV_AML_DISASSEMBLE 0x10000000
|
||||
#define ACPI_LV_VERBOSE_INFO 0x20000000
|
||||
#define ACPI_LV_FULL_TABLES 0x40000000
|
||||
#define ACPI_LV_EVENTS 0x80000000
|
||||
|
||||
#define ACPI_LV_VERBOSE 0xF0000000
|
||||
|
||||
|
||||
/*
|
||||
* Debug level macros that are used in the DEBUG_PRINT macros
|
||||
*/
|
||||
#define ACPI_DEBUG_LEVEL(dl) (UINT32) dl,__LINE__,&_Dbg
|
||||
|
||||
/* Exception level -- used in the global "DebugLevel" */
|
||||
|
||||
#define ACPI_DB_ERROR ACPI_DEBUG_LEVEL (ACPI_LV_ERROR)
|
||||
#define ACPI_DB_WARN ACPI_DEBUG_LEVEL (ACPI_LV_WARN)
|
||||
#define ACPI_DB_INIT ACPI_DEBUG_LEVEL (ACPI_LV_INIT)
|
||||
#define ACPI_DB_DEBUG_OBJECT ACPI_DEBUG_LEVEL (ACPI_LV_DEBUG_OBJECT)
|
||||
#define ACPI_DB_INFO ACPI_DEBUG_LEVEL (ACPI_LV_INFO)
|
||||
#define ACPI_DB_ALL_EXCEPTIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALL_EXCEPTIONS)
|
||||
|
||||
|
||||
/* Trace level -- also used in the global "DebugLevel" */
|
||||
|
||||
#define ACPI_DB_INIT_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_INIT_NAMES)
|
||||
#define ACPI_DB_THREADS ACPI_DEBUG_LEVEL (ACPI_LV_THREADS)
|
||||
#define ACPI_DB_PARSE ACPI_DEBUG_LEVEL (ACPI_LV_PARSE)
|
||||
#define ACPI_DB_DISPATCH ACPI_DEBUG_LEVEL (ACPI_LV_DISPATCH)
|
||||
#define ACPI_DB_LOAD ACPI_DEBUG_LEVEL (ACPI_LV_LOAD)
|
||||
#define ACPI_DB_EXEC ACPI_DEBUG_LEVEL (ACPI_LV_EXEC)
|
||||
#define ACPI_DB_NAMES ACPI_DEBUG_LEVEL (ACPI_LV_NAMES)
|
||||
#define ACPI_DB_OPREGION ACPI_DEBUG_LEVEL (ACPI_LV_OPREGION)
|
||||
#define ACPI_DB_BFIELD ACPI_DEBUG_LEVEL (ACPI_LV_BFIELD)
|
||||
#define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES)
|
||||
#define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS)
|
||||
#define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS)
|
||||
#define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES)
|
||||
#define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS)
|
||||
#define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS)
|
||||
#define ACPI_DB_RESOURCES ACPI_DEBUG_LEVEL (ACPI_LV_RESOURCES)
|
||||
#define ACPI_DB_IO ACPI_DEBUG_LEVEL (ACPI_LV_IO)
|
||||
#define ACPI_DB_INTERRUPTS ACPI_DEBUG_LEVEL (ACPI_LV_INTERRUPTS)
|
||||
#define ACPI_DB_USER_REQUESTS ACPI_DEBUG_LEVEL (ACPI_LV_USER_REQUESTS)
|
||||
#define ACPI_DB_PACKAGE ACPI_DEBUG_LEVEL (ACPI_LV_PACKAGE)
|
||||
#define ACPI_DB_MUTEX ACPI_DEBUG_LEVEL (ACPI_LV_MUTEX)
|
||||
|
||||
#define ACPI_DB_ALL ACPI_DEBUG_LEVEL (ACPI_LV_ALL)
|
||||
|
||||
|
||||
/* Defaults for DebugLevel, debug and normal */
|
||||
|
||||
#define ACPI_DEBUG_DEFAULT (ACPI_LV_INIT | ACPI_LV_WARN | ACPI_LV_ERROR | ACPI_LV_DEBUG_OBJECT)
|
||||
#define ACPI_NORMAL_DEFAULT (ACPI_LV_INIT | ACPI_LV_WARN | ACPI_LV_ERROR | ACPI_LV_DEBUG_OBJECT)
|
||||
#define ACPI_DEBUG_ALL (ACPI_LV_AML_DISASSEMBLE | ACPI_LV_ALL_EXCEPTIONS | ACPI_LV_ALL)
|
||||
|
||||
|
||||
#endif /* __ACOUTPUT_H__ */
|
420
source/include/acparser.h
Normal file
420
source/include/acparser.h
Normal file
@ -0,0 +1,420 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: acparser.h - AML Parser subcomponent prototypes and defines
|
||||
* $Revision: 1.65 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __ACPARSER_H__
|
||||
#define __ACPARSER_H__
|
||||
|
||||
|
||||
#define OP_HAS_RETURN_VALUE 1
|
||||
|
||||
/* variable # arguments */
|
||||
|
||||
#define ACPI_VAR_ARGS ACPI_UINT32_MAX
|
||||
|
||||
|
||||
#define ACPI_PARSE_DELETE_TREE 0x0001
|
||||
#define ACPI_PARSE_NO_TREE_DELETE 0x0000
|
||||
#define ACPI_PARSE_TREE_MASK 0x0001
|
||||
|
||||
#define ACPI_PARSE_LOAD_PASS1 0x0010
|
||||
#define ACPI_PARSE_LOAD_PASS2 0x0020
|
||||
#define ACPI_PARSE_EXECUTE 0x0030
|
||||
#define ACPI_PARSE_MODE_MASK 0x0030
|
||||
|
||||
#define ACPI_PARSE_DEFERRED_OP 0x0100
|
||||
|
||||
/* Parser external interfaces */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsxLoadTable (
|
||||
UINT8 *PcodeAddr,
|
||||
UINT32 PcodeLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsxExecute (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **ReturnObjDesc);
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Parser interfaces
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/* psargs - Parse AML opcode arguments */
|
||||
|
||||
UINT8 *
|
||||
AcpiPsGetNextPackageEnd (
|
||||
ACPI_PARSE_STATE *ParserState);
|
||||
|
||||
UINT32
|
||||
AcpiPsGetNextPackageLength (
|
||||
ACPI_PARSE_STATE *ParserState);
|
||||
|
||||
char *
|
||||
AcpiPsGetNextNamestring (
|
||||
ACPI_PARSE_STATE *ParserState);
|
||||
|
||||
void
|
||||
AcpiPsGetNextSimpleArg (
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
UINT32 ArgType,
|
||||
ACPI_PARSE_OBJECT *Arg);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextNamepath (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
ACPI_PARSE_OBJECT *Arg,
|
||||
BOOLEAN MethodCall);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsGetNextField (
|
||||
ACPI_PARSE_STATE *ParserState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextArg (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
UINT32 ArgType,
|
||||
ACPI_PARSE_OBJECT **ReturnArg);
|
||||
|
||||
|
||||
/* psfind */
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsFindName (
|
||||
ACPI_PARSE_OBJECT *Scope,
|
||||
UINT32 Name,
|
||||
UINT32 Opcode);
|
||||
|
||||
ACPI_PARSE_OBJECT*
|
||||
AcpiPsGetParent (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/* psopcode - AML Opcode information */
|
||||
|
||||
const ACPI_OPCODE_INFO *
|
||||
AcpiPsGetOpcodeInfo (
|
||||
UINT16 Opcode);
|
||||
|
||||
char *
|
||||
AcpiPsGetOpcodeName (
|
||||
UINT16 Opcode);
|
||||
|
||||
|
||||
/* psparse - top level parsing routines */
|
||||
|
||||
UINT32
|
||||
AcpiPsGetOpcodeSize (
|
||||
UINT32 Opcode);
|
||||
|
||||
void
|
||||
AcpiPsCompleteThisOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsNextParseState (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_STATUS CallbackStatus);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsFindObject (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT **OutOp);
|
||||
|
||||
void
|
||||
AcpiPsDeleteParseTree (
|
||||
ACPI_PARSE_OBJECT *root);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsParseLoop (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsParseAml (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsParseTable (
|
||||
UINT8 *aml,
|
||||
UINT32 amlSize,
|
||||
ACPI_PARSE_DOWNWARDS DescendingCallback,
|
||||
ACPI_PARSE_UPWARDS AscendingCallback,
|
||||
ACPI_PARSE_OBJECT **RootObject);
|
||||
|
||||
UINT16
|
||||
AcpiPsPeekOpcode (
|
||||
ACPI_PARSE_STATE *state);
|
||||
|
||||
|
||||
/* psscope - Scope stack management routines */
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsInitScope (
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
ACPI_PARSE_OBJECT *Root);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsGetParentScope (
|
||||
ACPI_PARSE_STATE *state);
|
||||
|
||||
BOOLEAN
|
||||
AcpiPsHasCompletedScope (
|
||||
ACPI_PARSE_STATE *ParserState);
|
||||
|
||||
void
|
||||
AcpiPsPopScope (
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
ACPI_PARSE_OBJECT **Op,
|
||||
UINT32 *ArgList,
|
||||
UINT32 *ArgCount);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsPushScope (
|
||||
ACPI_PARSE_STATE *ParserState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
UINT32 RemainingArgs,
|
||||
UINT32 ArgCount);
|
||||
|
||||
void
|
||||
AcpiPsCleanupScope (
|
||||
ACPI_PARSE_STATE *state);
|
||||
|
||||
|
||||
/* pstree - parse tree manipulation routines */
|
||||
|
||||
void
|
||||
AcpiPsAppendArg(
|
||||
ACPI_PARSE_OBJECT *op,
|
||||
ACPI_PARSE_OBJECT *arg);
|
||||
|
||||
ACPI_PARSE_OBJECT*
|
||||
AcpiPsFind (
|
||||
ACPI_PARSE_OBJECT *Scope,
|
||||
char *Path,
|
||||
UINT16 Opcode,
|
||||
UINT32 Create);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsGetArg(
|
||||
ACPI_PARSE_OBJECT *op,
|
||||
UINT32 argn);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsGetChild (
|
||||
ACPI_PARSE_OBJECT *op);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsGetDepthNext (
|
||||
ACPI_PARSE_OBJECT *Origin,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
|
||||
/* pswalk - parse tree walk routines */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsWalkParsedAml (
|
||||
ACPI_PARSE_OBJECT *StartOp,
|
||||
ACPI_PARSE_OBJECT *EndOp,
|
||||
ACPI_OPERAND_OBJECT *MthDesc,
|
||||
ACPI_NAMESPACE_NODE *StartNode,
|
||||
ACPI_OPERAND_OBJECT **Params,
|
||||
ACPI_OPERAND_OBJECT **CallerReturnDesc,
|
||||
ACPI_OWNER_ID OwnerId,
|
||||
ACPI_PARSE_DOWNWARDS DescendingCallback,
|
||||
ACPI_PARSE_UPWARDS AscendingCallback);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsGetNextWalkOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_PARSE_UPWARDS AscendingCallback);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPsDeleteCompletedOp (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/* psutils - parser utilities */
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsCreateScopeOp (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiPsInitOp (
|
||||
ACPI_PARSE_OBJECT *op,
|
||||
UINT16 opcode);
|
||||
|
||||
ACPI_PARSE_OBJECT *
|
||||
AcpiPsAllocOp (
|
||||
UINT16 opcode);
|
||||
|
||||
void
|
||||
AcpiPsFreeOp (
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiPsDeleteParseCache (
|
||||
void);
|
||||
|
||||
BOOLEAN
|
||||
AcpiPsIsLeadingChar (
|
||||
UINT32 c);
|
||||
|
||||
BOOLEAN
|
||||
AcpiPsIsPrefixChar (
|
||||
UINT32 c);
|
||||
|
||||
UINT32
|
||||
AcpiPsGetName(
|
||||
ACPI_PARSE_OBJECT *op);
|
||||
|
||||
void
|
||||
AcpiPsSetName(
|
||||
ACPI_PARSE_OBJECT *op,
|
||||
UINT32 name);
|
||||
|
||||
|
||||
/* psdump - display parser tree */
|
||||
|
||||
UINT32
|
||||
AcpiPsSprintPath (
|
||||
char *BufferStart,
|
||||
UINT32 BufferSize,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
UINT32
|
||||
AcpiPsSprintOp (
|
||||
char *BufferStart,
|
||||
UINT32 BufferSize,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
void
|
||||
AcpiPsShow (
|
||||
ACPI_PARSE_OBJECT *op);
|
||||
|
||||
|
||||
#endif /* __ACPARSER_H__ */
|
142
source/include/acpi.h
Normal file
142
source/include/acpi.h
Normal file
@ -0,0 +1,142 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acpi.h - Master include file, Publics and external data.
|
||||
* $Revision: 1.56 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACPI_H__
|
||||
#define __ACPI_H__
|
||||
|
||||
/*
|
||||
* Common includes for all ACPI driver files
|
||||
* We put them here because we don't want to duplicate them
|
||||
* in the rest of the source code again and again.
|
||||
*/
|
||||
#include "acconfig.h" /* Configuration constants */
|
||||
#include "platform/acenv.h" /* Target environment specific items */
|
||||
#include "actypes.h" /* Fundamental common data types */
|
||||
#include "acexcep.h" /* ACPI exception codes */
|
||||
#include "acmacros.h" /* C macros */
|
||||
#include "actbl.h" /* ACPI table definitions */
|
||||
#include "aclocal.h" /* Internal data types */
|
||||
#include "acoutput.h" /* Error output and Debug macros */
|
||||
#include "acpiosxf.h" /* Interfaces to the ACPI-to-OS layer*/
|
||||
#include "acpixf.h" /* ACPI core subsystem external interfaces */
|
||||
#include "acobject.h" /* ACPI internal object */
|
||||
#include "acstruct.h" /* Common structures */
|
||||
#include "acglobal.h" /* All global variables */
|
||||
#include "achware.h" /* Hardware defines and interfaces */
|
||||
#include "acutils.h" /* Utility interfaces */
|
||||
|
||||
|
||||
#endif /* __ACPI_H__ */
|
413
source/include/acpiosxf.h
Normal file
413
source/include/acpiosxf.h
Normal file
@ -0,0 +1,413 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acpiosxf.h - All interfaces to the OS Services Layer (OSL). These
|
||||
* interfaces must be implemented by OSL to interface the
|
||||
* ACPI components to the host operating system.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exer
|
||||
se the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACPIOSXF_H__
|
||||
#define __ACPIOSXF_H__
|
||||
|
||||
#include "platform/acenv.h"
|
||||
#include "actypes.h"
|
||||
|
||||
|
||||
/* Priorities for AcpiOsQueueForExecution */
|
||||
|
||||
#define OSD_PRIORITY_GPE 1
|
||||
#define OSD_PRIORITY_HIGH 2
|
||||
#define OSD_PRIORITY_MED 3
|
||||
#define OSD_PRIORITY_LO 4
|
||||
|
||||
#define ACPI_NO_UNIT_LIMIT ((UINT32) -1)
|
||||
#define ACPI_MUTEX_SEM 1
|
||||
|
||||
|
||||
/* Functions for AcpiOsSignal */
|
||||
|
||||
#define ACPI_SIGNAL_FATAL 0
|
||||
#define ACPI_SIGNAL_BREAKPOINT 1
|
||||
|
||||
typedef struct acpi_signal_fatal_info
|
||||
{
|
||||
UINT32 Type;
|
||||
UINT32 Code;
|
||||
UINT32 Argument;
|
||||
|
||||
} ACPI_SIGNAL_FATAL_INFO;
|
||||
|
||||
|
||||
/*
|
||||
* Types specific to the OS service interfaces
|
||||
*/
|
||||
|
||||
typedef UINT32
|
||||
(ACPI_SYSTEM_XFACE *OSD_HANDLER) (
|
||||
void *Context);
|
||||
|
||||
typedef void
|
||||
(ACPI_SYSTEM_XFACE *OSD_EXECUTION_CALLBACK) (
|
||||
void *Context);
|
||||
|
||||
|
||||
/*
|
||||
* OSL Initialization and shutdown primitives
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsInitialize (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsTerminate (
|
||||
void);
|
||||
|
||||
|
||||
/*
|
||||
* ACPI Table interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsGetRootPointer (
|
||||
UINT32 Flags,
|
||||
ACPI_POINTER *Address);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsTableOverride (
|
||||
ACPI_TABLE_HEADER *ExistingTable,
|
||||
ACPI_TABLE_HEADER **NewTable);
|
||||
|
||||
|
||||
/*
|
||||
* Synchronization primitives
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsCreateSemaphore (
|
||||
UINT32 MaxUnits,
|
||||
UINT32 InitialUnits,
|
||||
ACPI_HANDLE *OutHandle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsDeleteSemaphore (
|
||||
ACPI_HANDLE Handle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWaitSemaphore (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Units,
|
||||
UINT16 Timeout);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsSignalSemaphore (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 Units);
|
||||
|
||||
|
||||
/*
|
||||
* Memory allocation and mapping
|
||||
*/
|
||||
|
||||
void *
|
||||
AcpiOsAllocate (
|
||||
ACPI_SIZE Size);
|
||||
|
||||
void
|
||||
AcpiOsFree (
|
||||
void * Memory);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsMapMemory (
|
||||
ACPI_PHYSICAL_ADDRESS PhysicalAddress,
|
||||
ACPI_SIZE Size,
|
||||
void **LogicalAddress);
|
||||
|
||||
void
|
||||
AcpiOsUnmapMemory (
|
||||
void *LogicalAddress,
|
||||
ACPI_SIZE Size);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsGetPhysicalAddress (
|
||||
void *LogicalAddress,
|
||||
ACPI_PHYSICAL_ADDRESS *PhysicalAddress);
|
||||
|
||||
|
||||
/*
|
||||
* Interrupt handlers
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsInstallInterruptHandler (
|
||||
UINT32 InterruptNumber,
|
||||
OSD_HANDLER ServiceRoutine,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsRemoveInterruptHandler (
|
||||
UINT32 InterruptNumber,
|
||||
OSD_HANDLER ServiceRoutine);
|
||||
|
||||
|
||||
/*
|
||||
* Threads and Scheduling
|
||||
*/
|
||||
|
||||
UINT32
|
||||
AcpiOsGetThreadId (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsQueueForExecution (
|
||||
UINT32 Priority,
|
||||
OSD_EXECUTION_CALLBACK Function,
|
||||
void *Context);
|
||||
|
||||
void
|
||||
AcpiOsSleep (
|
||||
UINT32 Seconds,
|
||||
UINT32 Milliseconds);
|
||||
|
||||
void
|
||||
AcpiOsStall (
|
||||
UINT32 Microseconds);
|
||||
|
||||
|
||||
/*
|
||||
* Platform and hardware-independent I/O interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReadPort (
|
||||
ACPI_IO_ADDRESS Address,
|
||||
void *Value,
|
||||
UINT32 Width);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWritePort (
|
||||
ACPI_IO_ADDRESS Address,
|
||||
ACPI_INTEGER Value,
|
||||
UINT32 Width);
|
||||
|
||||
|
||||
/*
|
||||
* Platform and hardware-independent physical memory interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReadMemory (
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
void *Value,
|
||||
UINT32 Width);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWriteMemory (
|
||||
ACPI_PHYSICAL_ADDRESS Address,
|
||||
ACPI_INTEGER Value,
|
||||
UINT32 Width);
|
||||
|
||||
|
||||
/*
|
||||
* Platform and hardware-independent PCI configuration space access
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsReadPciConfiguration (
|
||||
ACPI_PCI_ID *PciId,
|
||||
UINT32 Register,
|
||||
void *Value,
|
||||
UINT32 Width);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsWritePciConfiguration (
|
||||
ACPI_PCI_ID *PciId,
|
||||
UINT32 Register,
|
||||
ACPI_INTEGER Value,
|
||||
UINT32 Width);
|
||||
|
||||
/*
|
||||
* Interim function needed for PCI IRQ routing
|
||||
*/
|
||||
void
|
||||
AcpiOsDerivePciId(
|
||||
ACPI_HANDLE rhandle,
|
||||
ACPI_HANDLE chandle,
|
||||
ACPI_PCI_ID **PciId);
|
||||
|
||||
/*
|
||||
* Miscellaneous
|
||||
*/
|
||||
|
||||
BOOLEAN
|
||||
AcpiOsReadable (
|
||||
void *Pointer,
|
||||
UINT32 Length);
|
||||
|
||||
BOOLEAN
|
||||
AcpiOsWritable (
|
||||
void *Pointer,
|
||||
UINT32 Length);
|
||||
|
||||
UINT32
|
||||
AcpiOsGetTimer (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiOsSignal (
|
||||
UINT32 Function,
|
||||
void *Info);
|
||||
|
||||
/*
|
||||
* Debug print routines
|
||||
*/
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiOsPrintf (
|
||||
const char *Format,
|
||||
...);
|
||||
|
||||
void
|
||||
AcpiOsVprintf (
|
||||
const char *Format,
|
||||
va_list Args);
|
||||
|
||||
void
|
||||
AcpiOsRedirectOutput (
|
||||
void *Destination);
|
||||
|
||||
|
||||
/*
|
||||
* Debug input
|
||||
*/
|
||||
|
||||
UINT32
|
||||
AcpiOsGetLine (
|
||||
char *Buffer);
|
||||
|
||||
|
||||
/*
|
||||
* Debug
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiOsDbgAssert(
|
||||
void *FailedAssertion,
|
||||
void *FileName,
|
||||
UINT32 LineNumber,
|
||||
char *Message);
|
||||
|
||||
|
||||
#endif /* __ACPIOSXF_H__ */
|
478
source/include/acpixf.h
Normal file
478
source/include/acpixf.h
Normal file
@ -0,0 +1,478 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acpixf.h - External interfaces to the ACPI subsystem
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __ACXFACE_H__
|
||||
#define __ACXFACE_H__
|
||||
|
||||
#include "actypes.h"
|
||||
#include "actbl.h"
|
||||
|
||||
|
||||
/*
|
||||
* Global interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInitializeSubsystem (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEnableSubsystem (
|
||||
UINT32 Flags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInitializeObjects (
|
||||
UINT32 Flags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTerminate (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiSubsystemStatus (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEnable (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDisable (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetSystemInfo (
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
const char *
|
||||
AcpiFormatException (
|
||||
ACPI_STATUS Exception);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiPurgeCachedObjects (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInstallInitializationHandler (
|
||||
ACPI_INIT_HANDLER Handler,
|
||||
UINT32 Function);
|
||||
|
||||
/*
|
||||
* ACPI Memory manager
|
||||
*/
|
||||
|
||||
void *
|
||||
AcpiAllocate (
|
||||
UINT32 Size);
|
||||
|
||||
void *
|
||||
AcpiCallocate (
|
||||
UINT32 Size);
|
||||
|
||||
void
|
||||
AcpiFree (
|
||||
void *Address);
|
||||
|
||||
|
||||
/*
|
||||
* ACPI table manipulation interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiFindRootPointer (
|
||||
UINT32 Flags,
|
||||
ACPI_POINTER *RsdpAddress);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiLoadTables (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiLoadTable (
|
||||
ACPI_TABLE_HEADER *TablePtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUnloadTable (
|
||||
ACPI_TABLE_TYPE TableType);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetTableHeader (
|
||||
ACPI_TABLE_TYPE TableType,
|
||||
UINT32 Instance,
|
||||
ACPI_TABLE_HEADER *OutTableHeader);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetTable (
|
||||
ACPI_TABLE_TYPE TableType,
|
||||
UINT32 Instance,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetFirmwareTable (
|
||||
ACPI_STRING Signature,
|
||||
UINT32 Instance,
|
||||
UINT32 Flags,
|
||||
ACPI_TABLE_HEADER **TablePointer);
|
||||
|
||||
|
||||
/*
|
||||
* Namespace and name interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiWalkNamespace (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_HANDLE StartObject,
|
||||
UINT32 MaxDepth,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void * *ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetDevices (
|
||||
char *HID,
|
||||
ACPI_WALK_CALLBACK UserFunction,
|
||||
void *Context,
|
||||
void **ReturnValue);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetName (
|
||||
ACPI_HANDLE Handle,
|
||||
UINT32 NameType,
|
||||
ACPI_BUFFER *RetPathPtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetHandle (
|
||||
ACPI_HANDLE Parent,
|
||||
ACPI_STRING Pathname,
|
||||
ACPI_HANDLE *RetHandle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAttachData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void *Data);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDetachData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetData (
|
||||
ACPI_HANDLE ObjHandle,
|
||||
ACPI_OBJECT_HANDLER Handler,
|
||||
void **Data);
|
||||
|
||||
|
||||
/*
|
||||
* Object manipulation and enumeration
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvaluateObject (
|
||||
ACPI_HANDLE Object,
|
||||
ACPI_STRING Pathname,
|
||||
ACPI_OBJECT_LIST *ParameterObjects,
|
||||
ACPI_BUFFER *ReturnObjectBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvaluateObjectTyped (
|
||||
ACPI_HANDLE Object,
|
||||
ACPI_STRING Pathname,
|
||||
ACPI_OBJECT_LIST *ExternalParams,
|
||||
ACPI_BUFFER *ReturnBuffer,
|
||||
ACPI_OBJECT_TYPE ReturnType);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetObjectInfo (
|
||||
ACPI_HANDLE Device,
|
||||
ACPI_DEVICE_INFO *Info);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetNextObject (
|
||||
ACPI_OBJECT_TYPE Type,
|
||||
ACPI_HANDLE Parent,
|
||||
ACPI_HANDLE Child,
|
||||
ACPI_HANDLE *OutHandle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetType (
|
||||
ACPI_HANDLE Object,
|
||||
ACPI_OBJECT_TYPE *OutType);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetParent (
|
||||
ACPI_HANDLE Object,
|
||||
ACPI_HANDLE *OutHandle);
|
||||
|
||||
|
||||
/*
|
||||
* Event handler interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInstallFixedEventHandler (
|
||||
UINT32 AcpiEvent,
|
||||
ACPI_EVENT_HANDLER Handler,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRemoveFixedEventHandler (
|
||||
UINT32 AcpiEvent,
|
||||
ACPI_EVENT_HANDLER Handler);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInstallNotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 HandlerType,
|
||||
ACPI_NOTIFY_HANDLER Handler,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRemoveNotifyHandler (
|
||||
ACPI_HANDLE Device,
|
||||
UINT32 HandlerType,
|
||||
ACPI_NOTIFY_HANDLER Handler);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInstallAddressSpaceHandler (
|
||||
ACPI_HANDLE Device,
|
||||
ACPI_ADR_SPACE_TYPE SpaceId,
|
||||
ACPI_ADR_SPACE_HANDLER Handler,
|
||||
ACPI_ADR_SPACE_SETUP Setup,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRemoveAddressSpaceHandler (
|
||||
ACPI_HANDLE Device,
|
||||
ACPI_ADR_SPACE_TYPE SpaceId,
|
||||
ACPI_ADR_SPACE_HANDLER Handler);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiInstallGpeHandler (
|
||||
UINT32 GpeNumber,
|
||||
UINT32 Type,
|
||||
ACPI_GPE_HANDLER Handler,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiAcquireGlobalLock (
|
||||
UINT16 Timeout,
|
||||
UINT32 *Handle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiReleaseGlobalLock (
|
||||
UINT32 Handle);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRemoveGpeHandler (
|
||||
UINT32 GpeNumber,
|
||||
ACPI_GPE_HANDLER Handler);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEnableEvent (
|
||||
UINT32 AcpiEvent,
|
||||
UINT32 Type,
|
||||
UINT32 Flags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDisableEvent (
|
||||
UINT32 AcpiEvent,
|
||||
UINT32 Type,
|
||||
UINT32 Flags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiClearEvent (
|
||||
UINT32 AcpiEvent,
|
||||
UINT32 Type);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetEventStatus (
|
||||
UINT32 AcpiEvent,
|
||||
UINT32 Type,
|
||||
ACPI_EVENT_STATUS *EventStatus);
|
||||
|
||||
/*
|
||||
* Resource interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetCurrentResources(
|
||||
ACPI_HANDLE DeviceHandle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetPossibleResources(
|
||||
ACPI_HANDLE DeviceHandle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiSetCurrentResources (
|
||||
ACPI_HANDLE DeviceHandle,
|
||||
ACPI_BUFFER *InBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetIrqRoutingTable (
|
||||
ACPI_HANDLE BusDeviceHandle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
|
||||
/*
|
||||
* Hardware (ACPI device) interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetRegister (
|
||||
UINT32 RegisterId,
|
||||
UINT32 *ReturnValue,
|
||||
UINT32 Flags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiSetRegister (
|
||||
UINT32 RegisterId,
|
||||
UINT32 Value,
|
||||
UINT32 Flags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiSetFirmwareWakingVector (
|
||||
ACPI_PHYSICAL_ADDRESS PhysicalAddress);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetFirmwareWakingVector (
|
||||
ACPI_PHYSICAL_ADDRESS *PhysicalAddress);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiGetSleepTypeData (
|
||||
UINT8 SleepState,
|
||||
UINT8 *Slp_TypA,
|
||||
UINT8 *Slp_TypB);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEnterSleepStatePrep (
|
||||
UINT8 SleepState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEnterSleepState (
|
||||
UINT8 SleepState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiLeaveSleepState (
|
||||
UINT8 SleepState);
|
||||
|
||||
|
||||
#endif /* __ACXFACE_H__ */
|
459
source/include/acresrc.h
Normal file
459
source/include/acresrc.h
Normal file
@ -0,0 +1,459 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acresrc.h - Resource Manager function prototypes
|
||||
* $Revision: 1.35 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACRESRC_H__
|
||||
#define __ACRESRC_H__
|
||||
|
||||
|
||||
/*
|
||||
* Function prototypes called from Acpi* APIs
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetPrtMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetCrsMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetPrsMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsSetSrsMethodData (
|
||||
ACPI_HANDLE Handle,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsCreateResourceList (
|
||||
ACPI_OPERAND_OBJECT *ByteStreamBuffer,
|
||||
ACPI_BUFFER *OutputBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsCreateByteStream (
|
||||
ACPI_RESOURCE *LinkedListBuffer,
|
||||
ACPI_BUFFER *OutputBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsCreatePciRoutingTable (
|
||||
ACPI_OPERAND_OBJECT *PackageObject,
|
||||
ACPI_BUFFER *OutputBuffer);
|
||||
|
||||
|
||||
/*
|
||||
* Function prototypes called from AcpiRsCreate*
|
||||
*/
|
||||
void
|
||||
AcpiRsDumpIrq (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpAddress16 (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpAddress32 (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpAddress64 (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpDma (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpIo (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpExtendedIrq (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpFixedIo (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpFixedMemory32 (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpMemory24 (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpMemory32 (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpStartDependFns (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpVendorSpecific (
|
||||
ACPI_RESOURCE_DATA *Data);
|
||||
|
||||
void
|
||||
AcpiRsDumpResourceList (
|
||||
ACPI_RESOURCE *Resource);
|
||||
|
||||
void
|
||||
AcpiRsDumpIrqList (
|
||||
UINT8 *RouteTable);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetByteStreamStart (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
UINT8 **ByteStreamStart,
|
||||
UINT32 *Size);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetListLength (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
UINT32 ByteStreamBufferLength,
|
||||
ACPI_SIZE *SizeNeeded);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetByteStreamLength (
|
||||
ACPI_RESOURCE *LinkedListBuffer,
|
||||
ACPI_SIZE *SizeNeeded);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsGetPciRoutingTableLength (
|
||||
ACPI_OPERAND_OBJECT *PackageObject,
|
||||
ACPI_SIZE *BufferSizeNeeded);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsByteStreamToList (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
UINT32 ByteStreamBufferLength,
|
||||
UINT8 *OutputBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsListToByteStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
ACPI_SIZE ByteStreamSizeNeeded,
|
||||
UINT8 *OutputBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsIoResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsFixedIoResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsIoStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsFixedIoStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsIrqResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsIrqStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsDmaResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsDmaStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsAddress16Resource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsAddress16Stream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsAddress32Resource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsAddress32Stream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsAddress64Resource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsAddress64Stream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsStartDependFnsResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsEndDependFnsResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsStartDependFnsStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsEndDependFnsStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsMemory24Resource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsMemory24Stream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsMemory32RangeResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsFixedMemory32Resource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsMemory32RangeStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsFixedMemory32Stream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsExtendedIrqResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsExtendedIrqStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsEndTagResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsEndTagStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsVendorResource (
|
||||
UINT8 *ByteStreamBuffer,
|
||||
ACPI_SIZE *BytesConsumed,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *StructureSize);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiRsVendorStream (
|
||||
ACPI_RESOURCE *LinkedList,
|
||||
UINT8 **OutputBuffer,
|
||||
ACPI_SIZE *BytesConsumed);
|
||||
|
||||
UINT8
|
||||
AcpiRsGetResourceType (
|
||||
UINT8 ResourceStartByte);
|
||||
|
||||
#endif /* __ACRESRC_H__ */
|
281
source/include/acstruct.h
Normal file
281
source/include/acstruct.h
Normal file
@ -0,0 +1,281 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acstruct.h - Internal structs
|
||||
* $Revision: 1.25 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACSTRUCT_H__
|
||||
#define __ACSTRUCT_H__
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Tree walking typedefs and structs
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Walk state - current state of a parse tree walk. Used for both a leisurely stroll through
|
||||
* the tree (for whatever reason), and for control method execution.
|
||||
*/
|
||||
|
||||
#define ACPI_NEXT_OP_DOWNWARD 1
|
||||
#define ACPI_NEXT_OP_UPWARD 2
|
||||
|
||||
#define ACPI_WALK_NON_METHOD 0
|
||||
#define ACPI_WALK_METHOD 1
|
||||
#define ACPI_WALK_METHOD_RESTART 2
|
||||
#define ACPI_WALK_CONST_REQUIRED 3
|
||||
#define ACPI_WALK_CONST_OPTIONAL 4
|
||||
|
||||
typedef struct acpi_walk_state
|
||||
{
|
||||
UINT8 DataType; /* To differentiate various internal objs MUST BE FIRST!*/\
|
||||
ACPI_OWNER_ID OwnerId; /* Owner of objects created during the walk */
|
||||
BOOLEAN LastPredicate; /* Result of last predicate */
|
||||
UINT8 CurrentResult; /* */
|
||||
UINT8 NextOpInfo; /* Info about NextOp */
|
||||
UINT8 NumOperands; /* Stack pointer for Operands[] array */
|
||||
UINT8 ReturnUsed;
|
||||
UINT8 WalkType;
|
||||
UINT16 Opcode; /* Current AML opcode */
|
||||
UINT8 ScopeDepth;
|
||||
UINT8 Reserved1;
|
||||
UINT32 ArgCount; /* push for fixed or var args */
|
||||
UINT32 AmlOffset;
|
||||
UINT32 ArgTypes;
|
||||
UINT32 MethodBreakpoint; /* For single stepping */
|
||||
UINT32 UserBreakpoint; /* User AML breakpoint */
|
||||
UINT32 ParseFlags;
|
||||
UINT32 PrevArgTypes;
|
||||
|
||||
UINT8 *AmlLastWhile;
|
||||
struct acpi_namespace_node Arguments[ACPI_METHOD_NUM_ARGS]; /* Control method arguments */
|
||||
union acpi_operand_object **CallerReturnDesc;
|
||||
ACPI_GENERIC_STATE *ControlState; /* List of control states (nested IFs) */
|
||||
struct acpi_namespace_node LocalVariables[ACPI_METHOD_NUM_LOCALS]; /* Control method locals */
|
||||
struct acpi_namespace_node *MethodCallNode; /* Called method Node*/
|
||||
ACPI_PARSE_OBJECT *MethodCallOp; /* MethodCall Op if running a method */
|
||||
union acpi_operand_object *MethodDesc; /* Method descriptor if running a method */
|
||||
struct acpi_namespace_node *MethodNode; /* Method Node if running a method */
|
||||
ACPI_PARSE_OBJECT *Op; /* Current parser op */
|
||||
union acpi_operand_object *Operands[ACPI_OBJ_NUM_OPERANDS+1]; /* Operands passed to the interpreter (+1 for NULL terminator) */
|
||||
const ACPI_OPCODE_INFO *OpInfo; /* Info on current opcode */
|
||||
ACPI_PARSE_OBJECT *Origin; /* Start of walk [Obsolete] */
|
||||
union acpi_operand_object **Params;
|
||||
ACPI_PARSE_STATE ParserState; /* Current state of parser */
|
||||
union acpi_operand_object *ResultObj;
|
||||
ACPI_GENERIC_STATE *Results; /* Stack of accumulated results */
|
||||
union acpi_operand_object *ReturnDesc; /* Return object, if any */
|
||||
ACPI_GENERIC_STATE *ScopeInfo; /* Stack of nested scopes */
|
||||
|
||||
ACPI_PARSE_OBJECT *PrevOp; /* Last op that was processed */
|
||||
ACPI_PARSE_OBJECT *NextOp; /* next op to be processed */
|
||||
ACPI_PARSE_DOWNWARDS DescendingCallback;
|
||||
ACPI_PARSE_UPWARDS AscendingCallback;
|
||||
ACPI_THREAD_STATE *Thread;
|
||||
struct acpi_walk_state *Next; /* Next WalkState in list */
|
||||
|
||||
} ACPI_WALK_STATE;
|
||||
|
||||
|
||||
/* Info used by AcpiPsInitObjects */
|
||||
|
||||
typedef struct acpi_init_walk_info
|
||||
{
|
||||
UINT16 MethodCount;
|
||||
UINT16 DeviceCount;
|
||||
UINT16 OpRegionCount;
|
||||
UINT16 FieldCount;
|
||||
UINT16 BufferCount;
|
||||
UINT16 PackageCount;
|
||||
UINT16 OpRegionInit;
|
||||
UINT16 FieldInit;
|
||||
UINT16 BufferInit;
|
||||
UINT16 PackageInit;
|
||||
UINT16 ObjectCount;
|
||||
ACPI_TABLE_DESC *TableDesc;
|
||||
|
||||
} ACPI_INIT_WALK_INFO;
|
||||
|
||||
|
||||
/* Info used by AcpiNsInitializeDevices */
|
||||
|
||||
typedef struct acpi_device_walk_info
|
||||
{
|
||||
UINT16 DeviceCount;
|
||||
UINT16 Num_STA;
|
||||
UINT16 Num_INI;
|
||||
ACPI_TABLE_DESC *TableDesc;
|
||||
|
||||
} ACPI_DEVICE_WALK_INFO;
|
||||
|
||||
|
||||
/* TBD: [Restructure] Merge with struct above */
|
||||
|
||||
typedef struct acpi_walk_info
|
||||
{
|
||||
UINT32 DebugLevel;
|
||||
UINT32 OwnerId;
|
||||
UINT8 DisplayType;
|
||||
|
||||
} ACPI_WALK_INFO;
|
||||
|
||||
/* Display Types */
|
||||
|
||||
#define ACPI_DISPLAY_SUMMARY 0
|
||||
#define ACPI_DISPLAY_OBJECTS 1
|
||||
|
||||
typedef struct acpi_get_devices_info
|
||||
{
|
||||
ACPI_WALK_CALLBACK UserFunction;
|
||||
void *Context;
|
||||
char *Hid;
|
||||
|
||||
} ACPI_GET_DEVICES_INFO;
|
||||
|
||||
|
||||
typedef union acpi_aml_operands
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *Operands[7];
|
||||
|
||||
struct
|
||||
{
|
||||
ACPI_OBJECT_INTEGER *Type;
|
||||
ACPI_OBJECT_INTEGER *Code;
|
||||
ACPI_OBJECT_INTEGER *Argument;
|
||||
|
||||
} Fatal;
|
||||
|
||||
struct
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *Source;
|
||||
ACPI_OBJECT_INTEGER *Index;
|
||||
ACPI_OPERAND_OBJECT *Target;
|
||||
|
||||
} Index;
|
||||
|
||||
struct
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *Source;
|
||||
ACPI_OBJECT_INTEGER *Index;
|
||||
ACPI_OBJECT_INTEGER *Length;
|
||||
ACPI_OPERAND_OBJECT *Target;
|
||||
|
||||
} Mid;
|
||||
|
||||
} ACPI_AML_OPERANDS;
|
||||
|
||||
|
||||
#endif
|
310
source/include/actables.h
Normal file
310
source/include/actables.h
Normal file
@ -0,0 +1,310 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: actables.h - ACPI table management
|
||||
* $Revision: 1.44 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACTABLES_H__
|
||||
#define __ACTABLES_H__
|
||||
|
||||
|
||||
/* Used in AcpiTbMapAcpiTable for size parameter if table header is to be used */
|
||||
|
||||
#define SIZE_IN_HEADER 0
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbHandleToObject (
|
||||
UINT16 TableId,
|
||||
ACPI_TABLE_DESC **TableDesc);
|
||||
|
||||
/*
|
||||
* tbconvrt - Table conversion routines
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbConvertToXsdt (
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbConvertTableFadt (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbBuildCommonFacs (
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
UINT32
|
||||
AcpiTbGetTableCount (
|
||||
RSDP_DESCRIPTOR *RSDP,
|
||||
ACPI_TABLE_HEADER *RSDT);
|
||||
|
||||
/*
|
||||
* tbget - Table "get" routines
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetTable (
|
||||
ACPI_POINTER *Address,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetTableHeader (
|
||||
ACPI_POINTER *Address,
|
||||
ACPI_TABLE_HEADER *ReturnHeader);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetTableBody (
|
||||
ACPI_POINTER *Address,
|
||||
ACPI_TABLE_HEADER *Header,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetThisTable (
|
||||
ACPI_POINTER *Address,
|
||||
ACPI_TABLE_HEADER *Header,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbTableOverride (
|
||||
ACPI_TABLE_HEADER *Header,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetTablePtr (
|
||||
ACPI_TABLE_TYPE TableType,
|
||||
UINT32 Instance,
|
||||
ACPI_TABLE_HEADER **TablePtrLoc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbVerifyRsdp (
|
||||
ACPI_POINTER *Address);
|
||||
|
||||
void
|
||||
AcpiTbGetRsdtAddress (
|
||||
ACPI_POINTER *OutAddress);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbValidateRsdt (
|
||||
ACPI_TABLE_HEADER *TablePtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetRequiredTables (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetPrimaryTable (
|
||||
ACPI_POINTER *Address,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetSecondaryTable (
|
||||
ACPI_POINTER *Address,
|
||||
ACPI_STRING Signature,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
/*
|
||||
* tbinstall - Table installation
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbInstallTable (
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbMatchSignature (
|
||||
char *Signature,
|
||||
ACPI_TABLE_DESC *TableInfo,
|
||||
UINT8 SearchType);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbRecognizeTable (
|
||||
ACPI_TABLE_DESC *TableInfo,
|
||||
UINT8 SearchType);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbInitTableDescriptor (
|
||||
ACPI_TABLE_TYPE TableType,
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
|
||||
/*
|
||||
* tbremove - Table removal and deletion
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiTbDeleteAcpiTables (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiTbDeleteAcpiTable (
|
||||
ACPI_TABLE_TYPE Type);
|
||||
|
||||
void
|
||||
AcpiTbDeleteSingleTable (
|
||||
ACPI_TABLE_DESC *TableDesc);
|
||||
|
||||
ACPI_TABLE_DESC *
|
||||
AcpiTbUninstallTable (
|
||||
ACPI_TABLE_DESC *TableDesc);
|
||||
|
||||
void
|
||||
AcpiTbFreeAcpiTablesOfType (
|
||||
ACPI_TABLE_DESC *TableInfo);
|
||||
|
||||
|
||||
/*
|
||||
* tbrsd - RSDP, RSDT utilities
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbGetTableRsdt (
|
||||
void);
|
||||
|
||||
UINT8 *
|
||||
AcpiTbScanMemoryForRsdp (
|
||||
UINT8 *StartAddress,
|
||||
UINT32 Length);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbFindRsdp (
|
||||
ACPI_TABLE_DESC *TableInfo,
|
||||
UINT32 Flags);
|
||||
|
||||
|
||||
/*
|
||||
* tbutils - common table utilities
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbFindTable (
|
||||
char *Signature,
|
||||
char *OemId,
|
||||
char *OemTableId,
|
||||
ACPI_TABLE_HEADER **TablePtr);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbVerifyTableChecksum (
|
||||
ACPI_TABLE_HEADER *TableHeader);
|
||||
|
||||
UINT8
|
||||
AcpiTbChecksum (
|
||||
void *Buffer,
|
||||
UINT32 Length);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiTbValidateTableHeader (
|
||||
ACPI_TABLE_HEADER *TableHeader);
|
||||
|
||||
|
||||
#endif /* __ACTABLES_H__ */
|
308
source/include/actbl.h
Normal file
308
source/include/actbl.h
Normal file
@ -0,0 +1,308 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: actbl.h - Table data structures defined in ACPI specification
|
||||
* $Revision: 1.56 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACTBL_H__
|
||||
#define __ACTBL_H__
|
||||
|
||||
|
||||
/*
|
||||
* Values for description table header signatures
|
||||
*/
|
||||
#define RSDP_NAME "RSDP"
|
||||
#define RSDP_SIG "RSD PTR " /* RSDT Pointer signature */
|
||||
#define APIC_SIG "APIC" /* Multiple APIC Description Table */
|
||||
#define DSDT_SIG "DSDT" /* Differentiated System Description Table */
|
||||
#define FADT_SIG "FACP" /* Fixed ACPI Description Table */
|
||||
#define FACS_SIG "FACS" /* Firmware ACPI Control Structure */
|
||||
#define PSDT_SIG "PSDT" /* Persistent System Description Table */
|
||||
#define RSDT_SIG "RSDT" /* Root System Description Table */
|
||||
#define XSDT_SIG "XSDT" /* Extended System Description Table */
|
||||
#define SSDT_SIG "SSDT" /* Secondary System Description Table */
|
||||
#define SBST_SIG "SBST" /* Smart Battery Specification Table */
|
||||
#define SPIC_SIG "SPIC" /* IOSAPIC table */
|
||||
#define BOOT_SIG "BOOT" /* Boot table */
|
||||
|
||||
|
||||
#define GL_OWNED 0x02 /* Ownership of global lock is bit 1 */
|
||||
|
||||
/* values of Mapic.Model */
|
||||
|
||||
#define DUAL_PIC 0
|
||||
#define MULTIPLE_APIC 1
|
||||
|
||||
/* values of Type in APIC_HEADER */
|
||||
|
||||
#define APIC_PROC 0
|
||||
#define APIC_IO 1
|
||||
|
||||
|
||||
/*
|
||||
* Common table types. The base code can remain
|
||||
* constant if the underlying tables are changed
|
||||
*/
|
||||
#define RSDT_DESCRIPTOR RSDT_DESCRIPTOR_REV2
|
||||
#define XSDT_DESCRIPTOR XSDT_DESCRIPTOR_REV2
|
||||
#define FACS_DESCRIPTOR FACS_DESCRIPTOR_REV2
|
||||
#define FADT_DESCRIPTOR FADT_DESCRIPTOR_REV2
|
||||
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/*
|
||||
* Architecture-independent tables
|
||||
* The architecture dependent tables are in separate files
|
||||
*/
|
||||
typedef struct rsdp_descriptor /* Root System Descriptor Pointer */
|
||||
{
|
||||
char Signature [8]; /* ACPI signature, contains "RSD PTR " */
|
||||
UINT8 Checksum; /* To make sum of struct == 0 */
|
||||
char OemId [6]; /* OEM identification */
|
||||
UINT8 Revision; /* Must be 0 for 1.0, 2 for 2.0 */
|
||||
UINT32 RsdtPhysicalAddress; /* 32-bit physical address of RSDT */
|
||||
UINT32 Length; /* XSDT Length in bytes including hdr */
|
||||
UINT64 XsdtPhysicalAddress; /* 64-bit physical address of XSDT */
|
||||
UINT8 ExtendedChecksum; /* Checksum of entire table */
|
||||
char Reserved [3]; /* Reserved field must be 0 */
|
||||
|
||||
} RSDP_DESCRIPTOR;
|
||||
|
||||
|
||||
typedef struct acpi_table_header /* ACPI common table header */
|
||||
{
|
||||
char Signature [4]; /* ACPI signature (4 ASCII characters) */
|
||||
UINT32 Length; /* Length of table, in bytes, including header */
|
||||
UINT8 Revision; /* ACPI Specification minor version # */
|
||||
UINT8 Checksum; /* To make sum of entire table == 0 */
|
||||
char OemId [6]; /* OEM identification */
|
||||
char OemTableId [8]; /* OEM table identification */
|
||||
UINT32 OemRevision; /* OEM revision number */
|
||||
char AslCompilerId [4]; /* ASL compiler vendor ID */
|
||||
UINT32 AslCompilerRevision; /* ASL compiler revision number */
|
||||
|
||||
} ACPI_TABLE_HEADER;
|
||||
|
||||
|
||||
typedef struct acpi_common_facs /* Common FACS for internal use */
|
||||
{
|
||||
UINT32 *GlobalLock;
|
||||
UINT64 *FirmwareWakingVector;
|
||||
UINT8 VectorWidth;
|
||||
|
||||
} ACPI_COMMON_FACS;
|
||||
|
||||
|
||||
typedef struct /* APIC Table */
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* ACPI table header */
|
||||
UINT32 LocalApicAddress; /* Physical address for accessing local APICs */
|
||||
UINT32_BIT PCATCompat : 1; /* a one indicates system also has dual 8259s */
|
||||
UINT32_BIT Reserved1 : 31;
|
||||
|
||||
} APIC_TABLE;
|
||||
|
||||
|
||||
typedef struct /* APIC Header */
|
||||
{
|
||||
UINT8 Type; /* APIC type. Either APIC_PROC or APIC_IO */
|
||||
UINT8 Length; /* Length of APIC structure */
|
||||
|
||||
} APIC_HEADER;
|
||||
|
||||
|
||||
typedef struct /* Processor APIC */
|
||||
{
|
||||
APIC_HEADER Header;
|
||||
UINT8 ProcessorApicId; /* ACPI processor id */
|
||||
UINT8 LocalApicId; /* Processor's local APIC id */
|
||||
UINT32_BIT ProcessorEnabled: 1; /* Processor is usable if set */
|
||||
UINT32_BIT Reserved1 : 31;
|
||||
|
||||
} PROCESSOR_APIC;
|
||||
|
||||
|
||||
typedef struct /* IO APIC */
|
||||
{
|
||||
APIC_HEADER Header;
|
||||
UINT8 IoApicId; /* I/O APIC ID */
|
||||
UINT8 Reserved; /* Reserved - must be zero */
|
||||
UINT32 IoApicAddress; /* APIC's physical address */
|
||||
UINT32 Vector; /* Interrupt vector index where INTI
|
||||
* lines start */
|
||||
} IO_APIC;
|
||||
|
||||
|
||||
/*
|
||||
* IA64 TBD: Add SAPIC Tables
|
||||
*/
|
||||
|
||||
/*
|
||||
* IA64 TBD: Modify Smart Battery Description to comply with ACPI IA64
|
||||
* extensions.
|
||||
*/
|
||||
typedef struct /* Smart Battery Description Table */
|
||||
{
|
||||
ACPI_TABLE_HEADER Header;
|
||||
UINT32 WarningLevel;
|
||||
UINT32 LowLevel;
|
||||
UINT32 CriticalLevel;
|
||||
|
||||
} SMART_BATTERY_DESCRIPTION_TABLE;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
/*
|
||||
* ACPI Table information. We save the table address, length,
|
||||
* and type of memory allocation (mapped or allocated) for each
|
||||
* table for 1) when we exit, and 2) if a new table is installed
|
||||
*/
|
||||
#define ACPI_MEM_NOT_ALLOCATED 0
|
||||
#define ACPI_MEM_ALLOCATED 1
|
||||
#define ACPI_MEM_MAPPED 2
|
||||
|
||||
/* Definitions for the Flags bitfield member of ACPI_TABLE_SUPPORT */
|
||||
|
||||
#define ACPI_TABLE_SINGLE 0x00
|
||||
#define ACPI_TABLE_MULTIPLE 0x01
|
||||
#define ACPI_TABLE_EXECUTABLE 0x02
|
||||
|
||||
#define ACPI_TABLE_ROOT 0x00
|
||||
#define ACPI_TABLE_PRIMARY 0x10
|
||||
#define ACPI_TABLE_SECONDARY 0x20
|
||||
#define ACPI_TABLE_OTHER 0x30
|
||||
#define ACPI_TABLE_TYPE_MASK 0x30
|
||||
|
||||
/* Data about each known table type */
|
||||
|
||||
typedef struct _AcpiTableSupport
|
||||
{
|
||||
char *Name;
|
||||
char *Signature;
|
||||
void **GlobalPtr;
|
||||
UINT8 SigLength;
|
||||
UINT8 Flags;
|
||||
|
||||
} ACPI_TABLE_SUPPORT;
|
||||
|
||||
|
||||
/*
|
||||
* Get the architecture-specific tables
|
||||
*/
|
||||
#include "actbl1.h" /* Acpi 1.0 table definitions */
|
||||
#include "actbl2.h" /* Acpi 2.0 table definitions */
|
||||
|
||||
#endif /* __ACTBL_H__ */
|
211
source/include/actbl1.h
Normal file
211
source/include/actbl1.h
Normal file
@ -0,0 +1,211 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: actbl1.h - ACPI 1.0 tables
|
||||
* $Revision: 1.26 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACTBL1_H__
|
||||
#define __ACTBL1_H__
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/*
|
||||
* ACPI 1.0 Root System Description Table (RSDT)
|
||||
*/
|
||||
typedef struct rsdt_descriptor_rev1
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* ACPI Table header */
|
||||
UINT32 TableOffsetEntry [1]; /* Array of pointers to other */
|
||||
/* ACPI tables */
|
||||
} RSDT_DESCRIPTOR_REV1;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 1.0 Firmware ACPI Control Structure (FACS)
|
||||
*/
|
||||
typedef struct facs_descriptor_rev1
|
||||
{
|
||||
char Signature[4]; /* ACPI Signature */
|
||||
UINT32 Length; /* Length of structure, in bytes */
|
||||
UINT32 HardwareSignature; /* Hardware configuration signature */
|
||||
UINT32 FirmwareWakingVector; /* ACPI OS waking vector */
|
||||
UINT32 GlobalLock; /* Global Lock */
|
||||
UINT32_BIT S4Bios_f : 1; /* Indicates if S4BIOS support is present */
|
||||
UINT32_BIT Reserved1 : 31; /* Must be 0 */
|
||||
UINT8 Resverved3 [40]; /* Reserved - must be zero */
|
||||
|
||||
} FACS_DESCRIPTOR_REV1;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 1.0 Fixed ACPI Description Table (FADT)
|
||||
*/
|
||||
typedef struct fadt_descriptor_rev1
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* ACPI Table header */
|
||||
UINT32 FirmwareCtrl; /* Physical address of FACS */
|
||||
UINT32 Dsdt; /* Physical address of DSDT */
|
||||
UINT8 Model; /* System Interrupt Model */
|
||||
UINT8 Reserved1; /* Reserved */
|
||||
UINT16 SciInt; /* System vector of SCI interrupt */
|
||||
UINT32 SmiCmd; /* Port address of SMI command port */
|
||||
UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */
|
||||
UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */
|
||||
UINT8 S4BiosReq; /* Value to write to SMI CMD to enter S4BIOS state */
|
||||
UINT8 Reserved2; /* Reserved - must be zero */
|
||||
UINT32 Pm1aEvtBlk; /* Port address of Power Mgt 1a AcpiEvent Reg Blk */
|
||||
UINT32 Pm1bEvtBlk; /* Port address of Power Mgt 1b AcpiEvent Reg Blk */
|
||||
UINT32 Pm1aCntBlk; /* Port address of Power Mgt 1a Control Reg Blk */
|
||||
UINT32 Pm1bCntBlk; /* Port address of Power Mgt 1b Control Reg Blk */
|
||||
UINT32 Pm2CntBlk; /* Port address of Power Mgt 2 Control Reg Blk */
|
||||
UINT32 PmTmrBlk; /* Port address of Power Mgt Timer Ctrl Reg Blk */
|
||||
UINT32 Gpe0Blk; /* Port addr of General Purpose AcpiEvent 0 Reg Blk */
|
||||
UINT32 Gpe1Blk; /* Port addr of General Purpose AcpiEvent 1 Reg Blk */
|
||||
UINT8 Pm1EvtLen; /* Byte Length of ports at pm1X_evt_blk */
|
||||
UINT8 Pm1CntLen; /* Byte Length of ports at pm1X_cnt_blk */
|
||||
UINT8 Pm2CntLen; /* Byte Length of ports at pm2_cnt_blk */
|
||||
UINT8 PmTmLen; /* Byte Length of ports at pm_tm_blk */
|
||||
UINT8 Gpe0BlkLen; /* Byte Length of ports at gpe0_blk */
|
||||
UINT8 Gpe1BlkLen; /* Byte Length of ports at gpe1_blk */
|
||||
UINT8 Gpe1Base; /* Offset in gpe model where gpe1 events start */
|
||||
UINT8 Reserved3; /* Reserved */
|
||||
UINT16 Plvl2Lat; /* Worst case HW latency to enter/exit C2 state */
|
||||
UINT16 Plvl3Lat; /* Worst case HW latency to enter/exit C3 state */
|
||||
UINT16 FlushSize; /* Size of area read to flush caches */
|
||||
UINT16 FlushStride; /* Stride used in flushing caches */
|
||||
UINT8 DutyOffset; /* Bit location of duty cycle field in p_cnt reg */
|
||||
UINT8 DutyWidth; /* Bit width of duty cycle field in p_cnt reg */
|
||||
UINT8 DayAlrm; /* Index to day-of-month alarm in RTC CMOS RAM */
|
||||
UINT8 MonAlrm; /* Index to month-of-year alarm in RTC CMOS RAM */
|
||||
UINT8 Century; /* Index to century in RTC CMOS RAM */
|
||||
UINT8 Reserved4; /* Reserved */
|
||||
UINT8 Reserved4a; /* Reserved */
|
||||
UINT8 Reserved4b; /* Reserved */
|
||||
UINT32_BIT WbInvd : 1; /* The wbinvd instruction works properly */
|
||||
UINT32_BIT WbInvdFlush : 1; /* The wbinvd flushes but does not invalidate */
|
||||
UINT32_BIT ProcC1 : 1; /* All processors support C1 state */
|
||||
UINT32_BIT Plvl2Up : 1; /* C2 state works on MP system */
|
||||
UINT32_BIT PwrButton : 1; /* Power button is handled as a generic feature */
|
||||
UINT32_BIT SleepButton : 1; /* Sleep button is handled as a generic feature, or not present */
|
||||
UINT32_BIT FixedRTC : 1; /* RTC wakeup stat not in fixed register space */
|
||||
UINT32_BIT Rtcs4 : 1; /* RTC wakeup stat not possible from S4 */
|
||||
UINT32_BIT TmrValExt : 1; /* The tmr_val width is 32 bits (0 = 24 bits) */
|
||||
UINT32_BIT Reserved5 : 23; /* Reserved - must be zero */
|
||||
|
||||
} FADT_DESCRIPTOR_REV1;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* __ACTBL1_H__ */
|
||||
|
||||
|
277
source/include/actbl2.h
Normal file
277
source/include/actbl2.h
Normal file
@ -0,0 +1,277 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: actbl2.h - ACPI Specification Revision 2.0 Tables
|
||||
* $Revision: 1.32 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACTBL2_H__
|
||||
#define __ACTBL2_H__
|
||||
|
||||
/*
|
||||
* Prefered Power Management Profiles
|
||||
*/
|
||||
#define PM_UNSPECIFIED 0
|
||||
#define PM_DESKTOP 1
|
||||
#define PM_MOBILE 2
|
||||
#define PM_WORKSTATION 3
|
||||
#define PM_ENTERPRISE_SERVER 4
|
||||
#define PM_SOHO_SERVER 5
|
||||
#define PM_APPLIANCE_PC 6
|
||||
|
||||
/*
|
||||
* ACPI Boot Arch Flags
|
||||
*/
|
||||
#define BAF_LEGACY_DEVICES 0x0001
|
||||
#define BAF_8042_KEYBOARD_CONTROLLER 0x0002
|
||||
|
||||
#define FADT2_REVISION_ID 3
|
||||
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/*
|
||||
* ACPI 2.0 Root System Description Table (RSDT)
|
||||
*/
|
||||
typedef struct rsdt_descriptor_rev2
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* ACPI table header */
|
||||
UINT32 TableOffsetEntry [1]; /* Array of pointers to */
|
||||
/* ACPI table headers */
|
||||
} RSDT_DESCRIPTOR_REV2;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 2.0 Extended System Description Table (XSDT)
|
||||
*/
|
||||
typedef struct xsdt_descriptor_rev2
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* ACPI table header */
|
||||
UINT64 TableOffsetEntry [1]; /* Array of pointers to */
|
||||
/* ACPI table headers */
|
||||
} XSDT_DESCRIPTOR_REV2;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 2.0 Firmware ACPI Control Structure (FACS)
|
||||
*/
|
||||
typedef struct facs_descriptor_rev2
|
||||
{
|
||||
char Signature[4]; /* ACPI signature */
|
||||
UINT32 Length; /* Length of structure, in bytes */
|
||||
UINT32 HardwareSignature; /* Hardware configuration signature */
|
||||
UINT32 FirmwareWakingVector; /* 32bit physical address of the Firmware Waking Vector. */
|
||||
UINT32 GlobalLock; /* Global Lock used to synchronize access to shared hardware resources */
|
||||
UINT32 S4Bios_f : 1; /* S4Bios_f - Indicates if S4BIOS support is present */
|
||||
UINT32_BIT Reserved1 : 31; /* Must be 0 */
|
||||
UINT64 XFirmwareWakingVector; /* 64bit physical address of the Firmware Waking Vector. */
|
||||
UINT8 Version; /* Version of this table */
|
||||
UINT8 Reserved3 [31]; /* Reserved - must be zero */
|
||||
|
||||
} FACS_DESCRIPTOR_REV2;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 2.0 Generic Address Structure (GAS)
|
||||
*/
|
||||
typedef struct acpi_generic_address
|
||||
{
|
||||
UINT8 AddressSpaceId; /* Address space where struct or register exists. */
|
||||
UINT8 RegisterBitWidth; /* Size in bits of given register */
|
||||
UINT8 RegisterBitOffset; /* Bit offset within the register */
|
||||
UINT8 Reserved; /* Must be 0 */
|
||||
UINT64 Address; /* 64-bit address of struct or register */
|
||||
|
||||
} ACPI_GENERIC_ADDRESS;
|
||||
|
||||
|
||||
/*
|
||||
* ACPI 2.0 Fixed ACPI Description Table (FADT)
|
||||
*/
|
||||
typedef struct fadt_descriptor_rev2
|
||||
{
|
||||
ACPI_TABLE_HEADER Header; /* ACPI table header */
|
||||
UINT32 V1_FirmwareCtrl; /* 32-bit physical address of FACS */
|
||||
UINT32 V1_Dsdt; /* 32-bit physical address of DSDT */
|
||||
UINT8 Reserved1; /* System Interrupt Model isn't used in ACPI 2.0*/
|
||||
UINT8 Prefer_PM_Profile; /* Conveys preferred power management profile to OSPM. */
|
||||
UINT16 SciInt; /* System vector of SCI interrupt */
|
||||
UINT32 SmiCmd; /* Port address of SMI command port */
|
||||
UINT8 AcpiEnable; /* Value to write to smi_cmd to enable ACPI */
|
||||
UINT8 AcpiDisable; /* Value to write to smi_cmd to disable ACPI */
|
||||
UINT8 S4BiosReq; /* Value to write to SMI CMD to enter S4BIOS state */
|
||||
UINT8 PstateCnt; /* Processor performance state control*/
|
||||
UINT32 V1_Pm1aEvtBlk; /* Port address of Power Mgt 1a AcpiEvent Reg Blk */
|
||||
UINT32 V1_Pm1bEvtBlk; /* Port address of Power Mgt 1b AcpiEvent Reg Blk */
|
||||
UINT32 V1_Pm1aCntBlk; /* Port address of Power Mgt 1a Control Reg Blk */
|
||||
UINT32 V1_Pm1bCntBlk; /* Port address of Power Mgt 1b Control Reg Blk */
|
||||
UINT32 V1_Pm2CntBlk; /* Port address of Power Mgt 2 Control Reg Blk */
|
||||
UINT32 V1_PmTmrBlk; /* Port address of Power Mgt Timer Ctrl Reg Blk */
|
||||
UINT32 V1_Gpe0Blk; /* Port addr of General Purpose AcpiEvent 0 Reg Blk */
|
||||
UINT32 V1_Gpe1Blk; /* Port addr of General Purpose AcpiEvent 1 Reg Blk */
|
||||
UINT8 Pm1EvtLen; /* Byte Length of ports at pm1X_evt_blk */
|
||||
UINT8 Pm1CntLen; /* Byte Length of ports at pm1X_cnt_blk */
|
||||
UINT8 Pm2CntLen; /* Byte Length of ports at pm2_cnt_blk */
|
||||
UINT8 PmTmLen; /* Byte Length of ports at pm_tm_blk */
|
||||
UINT8 Gpe0BlkLen; /* Byte Length of ports at gpe0_blk */
|
||||
UINT8 Gpe1BlkLen; /* Byte Length of ports at gpe1_blk */
|
||||
UINT8 Gpe1Base; /* Offset in gpe model where gpe1 events start */
|
||||
UINT8 CstCnt; /* Support for the _CST object and C States change notification.*/
|
||||
UINT16 Plvl2Lat; /* Worst case HW latency to enter/exit C2 state */
|
||||
UINT16 Plvl3Lat; /* Worst case HW latency to enter/exit C3 state */
|
||||
UINT16 FlushSize; /* Number of flush strides that need to be read */
|
||||
UINT16 FlushStride; /* Processor's memory cache line width, in bytes */
|
||||
UINT8 DutyOffset; /* Processor's duty cycle index in processor's P_CNT reg*/
|
||||
UINT8 DutyWidth; /* Processor's duty cycle value bit width in P_CNT register.*/
|
||||
UINT8 DayAlrm; /* Index to day-of-month alarm in RTC CMOS RAM */
|
||||
UINT8 MonAlrm; /* Index to month-of-year alarm in RTC CMOS RAM */
|
||||
UINT8 Century; /* Index to century in RTC CMOS RAM */
|
||||
UINT16 IapcBootArch; /* IA-PC Boot Architecture Flags. See Table 5-10 for description*/
|
||||
UINT8 Reserved2; /* Reserved */
|
||||
UINT32_BIT WbInvd : 1; /* The wbinvd instruction works properly */
|
||||
UINT32_BIT WbInvdFlush : 1; /* The wbinvd flushes but does not invalidate */
|
||||
UINT32_BIT ProcC1 : 1; /* All processors support C1 state */
|
||||
UINT32_BIT Plvl2Up : 1; /* C2 state works on MP system */
|
||||
UINT32_BIT PwrButton : 1; /* Power button is handled as a generic feature */
|
||||
UINT32_BIT SleepButton : 1; /* Sleep button is handled as a generic feature, or not present */
|
||||
UINT32_BIT FixedRTC : 1; /* RTC wakeup stat not in fixed register space */
|
||||
UINT32_BIT Rtcs4 : 1; /* RTC wakeup stat not possible from S4 */
|
||||
UINT32_BIT TmrValExt : 1; /* Indicates tmr_val is 32 bits 0=24-bits*/
|
||||
UINT32_BIT DockCap : 1; /* Supports Docking */
|
||||
UINT32_BIT ResetRegSup : 1; /* Indicates system supports system reset via the FADT RESET_REG*/
|
||||
UINT32_BIT SealedCase : 1; /* Indicates system has no internal expansion capabilities and case is sealed. */
|
||||
UINT32_BIT Headless : 1; /* Indicates system does not have local video capabilities or local input devices.*/
|
||||
UINT32_BIT CpuSwSleep : 1; /* Indicates to OSPM that a processor native instruction */
|
||||
/* Must be executed after writing the SLP_TYPx register. */
|
||||
UINT32_BIT Reserved6 : 18; /* Reserved - must be zero */
|
||||
|
||||
ACPI_GENERIC_ADDRESS ResetRegister; /* Reset register address in GAS format */
|
||||
UINT8 ResetValue; /* Value to write to the ResetRegister port to reset the system. */
|
||||
UINT8 Reserved7[3]; /* These three bytes must be zero */
|
||||
UINT64 XFirmwareCtrl; /* 64-bit physical address of FACS */
|
||||
UINT64 XDsdt; /* 64-bit physical address of DSDT */
|
||||
ACPI_GENERIC_ADDRESS XPm1aEvtBlk; /* Extended Power Mgt 1a AcpiEvent Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1bEvtBlk; /* Extended Power Mgt 1b AcpiEvent Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1aCntBlk; /* Extended Power Mgt 1a Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm1bCntBlk; /* Extended Power Mgt 1b Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPm2CntBlk; /* Extended Power Mgt 2 Control Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XPmTmrBlk; /* Extended Power Mgt Timer Ctrl Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XGpe0Blk; /* Extended General Purpose AcpiEvent 0 Reg Blk address */
|
||||
ACPI_GENERIC_ADDRESS XGpe1Blk; /* Extended General Purpose AcpiEvent 1 Reg Blk address */
|
||||
|
||||
} FADT_DESCRIPTOR_REV2;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* __ACTBL2_H__ */
|
||||
|
1317
source/include/actypes.h
Normal file
1317
source/include/actypes.h
Normal file
File diff suppressed because it is too large
Load Diff
908
source/include/acutils.h
Normal file
908
source/include/acutils.h
Normal file
@ -0,0 +1,908 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
|
||||
* $Revision: 1.153 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _ACUTILS_H
|
||||
#define _ACUTILS_H
|
||||
|
||||
|
||||
typedef
|
||||
ACPI_STATUS (*ACPI_PKG_CALLBACK) (
|
||||
UINT8 ObjectType,
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
ACPI_GENERIC_STATE *State,
|
||||
void *Context);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtWalkPackageTree (
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
void *TargetObject,
|
||||
ACPI_PKG_CALLBACK WalkCallback,
|
||||
void *Context);
|
||||
|
||||
|
||||
typedef struct acpi_pkg_info
|
||||
{
|
||||
UINT8 *FreeSpace;
|
||||
ACPI_SIZE Length;
|
||||
UINT32 ObjectSpace;
|
||||
UINT32 NumPackages;
|
||||
|
||||
} ACPI_PKG_INFO;
|
||||
|
||||
#define REF_INCREMENT (UINT16) 0
|
||||
#define REF_DECREMENT (UINT16) 1
|
||||
#define REF_FORCE_DELETE (UINT16) 2
|
||||
|
||||
/* AcpiUtDumpBuffer */
|
||||
|
||||
#define DB_BYTE_DISPLAY 1
|
||||
#define DB_WORD_DISPLAY 2
|
||||
#define DB_DWORD_DISPLAY 4
|
||||
#define DB_QWORD_DISPLAY 8
|
||||
|
||||
|
||||
/* Global initialization interfaces */
|
||||
|
||||
void
|
||||
AcpiUtInitGlobals (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtTerminate (
|
||||
void);
|
||||
|
||||
|
||||
/*
|
||||
* UtInit - miscellaneous initialization and shutdown
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtHardwareInitialize (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtSubsystemShutdown (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtValidateFadt (
|
||||
void);
|
||||
|
||||
/*
|
||||
* UtGlobal - Global data structures and procedures
|
||||
*/
|
||||
|
||||
#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
|
||||
|
||||
char *
|
||||
AcpiUtGetMutexName (
|
||||
UINT32 MutexId);
|
||||
|
||||
#endif
|
||||
|
||||
char *
|
||||
AcpiUtGetTypeName (
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
char *
|
||||
AcpiUtGetObjectTypeName (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
char *
|
||||
AcpiUtGetRegionName (
|
||||
UINT8 SpaceId);
|
||||
|
||||
char *
|
||||
AcpiUtGetEventName (
|
||||
UINT32 EventId);
|
||||
|
||||
char
|
||||
AcpiUtHexToAsciiChar (
|
||||
ACPI_INTEGER Integer,
|
||||
UINT32 Position);
|
||||
|
||||
BOOLEAN
|
||||
AcpiUtValidObjectType (
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
ACPI_OWNER_ID
|
||||
AcpiUtAllocateOwnerId (
|
||||
UINT32 IdType);
|
||||
|
||||
|
||||
/*
|
||||
* UtClib - Local implementations of C library functions
|
||||
*/
|
||||
|
||||
#ifndef ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
ACPI_SIZE
|
||||
AcpiUtStrlen (
|
||||
const char *String);
|
||||
|
||||
char *
|
||||
AcpiUtStrcpy (
|
||||
char *DstString,
|
||||
const char *SrcString);
|
||||
|
||||
char *
|
||||
AcpiUtStrncpy (
|
||||
char *DstString,
|
||||
const char *SrcString,
|
||||
ACPI_SIZE Count);
|
||||
|
||||
int
|
||||
AcpiUtStrncmp (
|
||||
const char *String1,
|
||||
const char *String2,
|
||||
ACPI_SIZE Count);
|
||||
|
||||
int
|
||||
AcpiUtStrcmp (
|
||||
const char *String1,
|
||||
const char *String2);
|
||||
|
||||
char *
|
||||
AcpiUtStrcat (
|
||||
char *DstString,
|
||||
const char *SrcString);
|
||||
|
||||
char *
|
||||
AcpiUtStrncat (
|
||||
char *DstString,
|
||||
const char *SrcString,
|
||||
ACPI_SIZE Count);
|
||||
|
||||
UINT32
|
||||
AcpiUtStrtoul (
|
||||
const char *String,
|
||||
char **Terminator,
|
||||
UINT32 Base);
|
||||
|
||||
char *
|
||||
AcpiUtStrstr (
|
||||
char *String1,
|
||||
char *String2);
|
||||
|
||||
void *
|
||||
AcpiUtMemcpy (
|
||||
void *Dest,
|
||||
const void *Src,
|
||||
ACPI_SIZE Count);
|
||||
|
||||
void *
|
||||
AcpiUtMemset (
|
||||
void *Dest,
|
||||
ACPI_NATIVE_UINT Value,
|
||||
ACPI_SIZE Count);
|
||||
|
||||
int
|
||||
AcpiUtToUpper (
|
||||
int c);
|
||||
|
||||
int
|
||||
AcpiUtToLower (
|
||||
int c);
|
||||
|
||||
extern const UINT8 _acpi_ctype[];
|
||||
|
||||
#define _ACPI_XA 0x00 /* extra alphabetic - not supported */
|
||||
#define _ACPI_XS 0x40 /* extra space */
|
||||
#define _ACPI_BB 0x00 /* BEL, BS, etc. - not supported */
|
||||
#define _ACPI_CN 0x20 /* CR, FF, HT, NL, VT */
|
||||
#define _ACPI_DI 0x04 /* '0'-'9' */
|
||||
#define _ACPI_LO 0x02 /* 'a'-'z' */
|
||||
#define _ACPI_PU 0x10 /* punctuation */
|
||||
#define _ACPI_SP 0x08 /* space */
|
||||
#define _ACPI_UP 0x01 /* 'A'-'Z' */
|
||||
#define _ACPI_XD 0x80 /* '0'-'9', 'A'-'F', 'a'-'f' */
|
||||
|
||||
#define ACPI_IS_DIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_DI))
|
||||
#define ACPI_IS_SPACE(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_SP))
|
||||
#define ACPI_IS_XDIGIT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_XD))
|
||||
#define ACPI_IS_UPPER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_UP))
|
||||
#define ACPI_IS_LOWER(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO))
|
||||
#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
|
||||
#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
|
||||
#define ACPI_IS_ASCII(c) ((c) < 0x80)
|
||||
|
||||
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
|
||||
|
||||
/*
|
||||
* UtCopy - Object construction and conversion interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtBuildSimpleObject(
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
ACPI_OBJECT *UserObj,
|
||||
UINT8 *DataSpace,
|
||||
UINT32 *BufferSpaceUsed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtBuildPackageObject (
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
UINT8 *Buffer,
|
||||
UINT32 *SpaceUsed);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIelementToEelement (
|
||||
UINT8 ObjectType,
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
ACPI_GENERIC_STATE *State,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIelementToIelement (
|
||||
UINT8 ObjectType,
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
ACPI_GENERIC_STATE *State,
|
||||
void *Context);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIobjectToEobject (
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
ACPI_BUFFER *RetBuffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyEsimpleToIsimple(
|
||||
ACPI_OBJECT *UserObj,
|
||||
ACPI_OPERAND_OBJECT **ReturnObj);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyEobjectToIobject (
|
||||
ACPI_OBJECT *Obj,
|
||||
ACPI_OPERAND_OBJECT **InternalObj);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyISimpleToIsimple (
|
||||
ACPI_OPERAND_OBJECT *SourceObj,
|
||||
ACPI_OPERAND_OBJECT *DestObj);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIpackageToIpackage (
|
||||
ACPI_OPERAND_OBJECT *SourceObj,
|
||||
ACPI_OPERAND_OBJECT *DestObj,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopySimpleObject (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *DestDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIobjectToIobject (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT **DestDesc,
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
|
||||
/*
|
||||
* UtCreate - Object creation
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtUpdateObjectReference (
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
UINT16 Action);
|
||||
|
||||
|
||||
/*
|
||||
* UtDebug - Debug interfaces
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiUtInitStackPtrTrace (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtTrackStackPtr (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtTrace (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo);
|
||||
|
||||
void
|
||||
AcpiUtTracePtr (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
void *Pointer);
|
||||
|
||||
void
|
||||
AcpiUtTraceU32 (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
UINT32 Integer);
|
||||
|
||||
void
|
||||
AcpiUtTraceStr (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
char *String);
|
||||
|
||||
void
|
||||
AcpiUtExit (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo);
|
||||
|
||||
void
|
||||
AcpiUtStatusExit (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
ACPI_STATUS Status);
|
||||
|
||||
void
|
||||
AcpiUtValueExit (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
ACPI_INTEGER Value);
|
||||
|
||||
void
|
||||
AcpiUtPtrExit (
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
UINT8 *Ptr);
|
||||
|
||||
void
|
||||
AcpiUtReportInfo (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId);
|
||||
|
||||
void
|
||||
AcpiUtReportError (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId);
|
||||
|
||||
void
|
||||
AcpiUtReportWarning (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId);
|
||||
|
||||
void
|
||||
AcpiUtDumpBuffer (
|
||||
UINT8 *Buffer,
|
||||
UINT32 Count,
|
||||
UINT32 Display,
|
||||
UINT32 componentId);
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiUtDebugPrint (
|
||||
UINT32 RequestedDebugLevel,
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
char *Format,
|
||||
...) ACPI_PRINTF_LIKE_FUNC;
|
||||
|
||||
void ACPI_INTERNAL_VAR_XFACE
|
||||
AcpiUtDebugPrintRaw (
|
||||
UINT32 RequestedDebugLevel,
|
||||
UINT32 LineNumber,
|
||||
ACPI_DEBUG_PRINT_INFO *DbgInfo,
|
||||
char *Format,
|
||||
...) ACPI_PRINTF_LIKE_FUNC;
|
||||
|
||||
|
||||
/*
|
||||
* UtDelete - Object deletion
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiUtDeleteInternalObj (
|
||||
ACPI_OPERAND_OBJECT *Object);
|
||||
|
||||
void
|
||||
AcpiUtDeleteInternalPackageObject (
|
||||
ACPI_OPERAND_OBJECT *Object);
|
||||
|
||||
void
|
||||
AcpiUtDeleteInternalSimpleObject (
|
||||
ACPI_OPERAND_OBJECT *Object);
|
||||
|
||||
void
|
||||
AcpiUtDeleteInternalObjectList (
|
||||
ACPI_OPERAND_OBJECT **ObjList);
|
||||
|
||||
|
||||
/*
|
||||
* UtEval - object evaluation
|
||||
*/
|
||||
|
||||
/* Method name strings */
|
||||
|
||||
#define METHOD_NAME__HID "_HID"
|
||||
#define METHOD_NAME__CID "_CID"
|
||||
#define METHOD_NAME__UID "_UID"
|
||||
#define METHOD_NAME__ADR "_ADR"
|
||||
#define METHOD_NAME__STA "_STA"
|
||||
#define METHOD_NAME__REG "_REG"
|
||||
#define METHOD_NAME__SEG "_SEG"
|
||||
#define METHOD_NAME__BBN "_BBN"
|
||||
#define METHOD_NAME__PRT "_PRT"
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtEvaluateObject (
|
||||
ACPI_NAMESPACE_NODE *PrefixNode,
|
||||
char *Path,
|
||||
UINT32 ExpectedReturnBtypes,
|
||||
ACPI_OPERAND_OBJECT **ReturnDesc);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtEvaluateNumericObject (
|
||||
char *ObjectName,
|
||||
ACPI_NAMESPACE_NODE *DeviceNode,
|
||||
ACPI_INTEGER *Address);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtExecute_HID (
|
||||
ACPI_NAMESPACE_NODE *DeviceNode,
|
||||
ACPI_DEVICE_ID *Hid);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtExecute_CID (
|
||||
ACPI_NAMESPACE_NODE *DeviceNode,
|
||||
ACPI_DEVICE_ID *Cid);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtExecute_STA (
|
||||
ACPI_NAMESPACE_NODE *DeviceNode,
|
||||
UINT32 *StatusFlags);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtExecute_UID (
|
||||
ACPI_NAMESPACE_NODE *DeviceNode,
|
||||
ACPI_DEVICE_ID *Uid);
|
||||
|
||||
|
||||
/*
|
||||
* UtMutex - mutual exclusion interfaces
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtMutexInitialize (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtMutexTerminate (
|
||||
void);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCreateMutex (
|
||||
ACPI_MUTEX_HANDLE MutexId);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtDeleteMutex (
|
||||
ACPI_MUTEX_HANDLE MutexId);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtAcquireMutex (
|
||||
ACPI_MUTEX_HANDLE MutexId);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtReleaseMutex (
|
||||
ACPI_MUTEX_HANDLE MutexId);
|
||||
|
||||
|
||||
/*
|
||||
* UtObject - internal object create/delete/cache routines
|
||||
*/
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiUtCreateInternalObjectDbg (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId,
|
||||
ACPI_OBJECT_TYPE Type);
|
||||
|
||||
void *
|
||||
AcpiUtAllocateObjectDescDbg (
|
||||
char *ModuleName,
|
||||
UINT32 LineNumber,
|
||||
UINT32 ComponentId);
|
||||
|
||||
#define AcpiUtCreateInternalObject(t) AcpiUtCreateInternalObjectDbg (_THIS_MODULE,__LINE__,_COMPONENT,t)
|
||||
#define AcpiUtAllocateObjectDesc() AcpiUtAllocateObjectDescDbg (_THIS_MODULE,__LINE__,_COMPONENT)
|
||||
|
||||
void
|
||||
AcpiUtDeleteObjectDesc (
|
||||
ACPI_OPERAND_OBJECT *Object);
|
||||
|
||||
BOOLEAN
|
||||
AcpiUtValidInternalObject (
|
||||
void *Object);
|
||||
|
||||
ACPI_OPERAND_OBJECT *
|
||||
AcpiUtCreateBufferObject (
|
||||
ACPI_SIZE BufferSize);
|
||||
|
||||
|
||||
/*
|
||||
* UtRefCnt - Object reference count management
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiUtAddReference (
|
||||
ACPI_OPERAND_OBJECT *Object);
|
||||
|
||||
void
|
||||
AcpiUtRemoveReference (
|
||||
ACPI_OPERAND_OBJECT *Object);
|
||||
|
||||
/*
|
||||
* UtSize - Object size routines
|
||||
*/
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtGetSimpleObjectSize (
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
ACPI_SIZE *ObjLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtGetPackageObjectSize (
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
ACPI_SIZE *ObjLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtGetObjectSize(
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
ACPI_SIZE *ObjLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtGetElementLength (
|
||||
UINT8 ObjectType,
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
ACPI_GENERIC_STATE *State,
|
||||
void *Context);
|
||||
|
||||
|
||||
/*
|
||||
* UtState - Generic state creation/cache routines
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiUtPushGenericState (
|
||||
ACPI_GENERIC_STATE **ListHead,
|
||||
ACPI_GENERIC_STATE *State);
|
||||
|
||||
ACPI_GENERIC_STATE *
|
||||
AcpiUtPopGenericState (
|
||||
ACPI_GENERIC_STATE **ListHead);
|
||||
|
||||
|
||||
ACPI_GENERIC_STATE *
|
||||
AcpiUtCreateGenericState (
|
||||
void);
|
||||
|
||||
ACPI_THREAD_STATE *
|
||||
AcpiUtCreateThreadState (
|
||||
void);
|
||||
|
||||
ACPI_GENERIC_STATE *
|
||||
AcpiUtCreateUpdateState (
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
UINT16 Action);
|
||||
|
||||
ACPI_GENERIC_STATE *
|
||||
AcpiUtCreatePkgState (
|
||||
void *InternalObject,
|
||||
void *ExternalObject,
|
||||
UINT16 Index);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCreateUpdateStateAndPush (
|
||||
ACPI_OPERAND_OBJECT *Object,
|
||||
UINT16 Action,
|
||||
ACPI_GENERIC_STATE **StateList);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCreatePkgStateAndPush (
|
||||
void *InternalObject,
|
||||
void *ExternalObject,
|
||||
UINT16 Index,
|
||||
ACPI_GENERIC_STATE **StateList);
|
||||
|
||||
ACPI_GENERIC_STATE *
|
||||
AcpiUtCreateControlState (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtDeleteGenericState (
|
||||
ACPI_GENERIC_STATE *State);
|
||||
|
||||
void
|
||||
AcpiUtDeleteGenericStateCache (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtDeleteObjectCache (
|
||||
void);
|
||||
|
||||
/*
|
||||
* utmisc
|
||||
*/
|
||||
|
||||
void
|
||||
AcpiUtPrintString (
|
||||
char *String,
|
||||
UINT8 MaxLength);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtDivide (
|
||||
ACPI_INTEGER *InDividend,
|
||||
ACPI_INTEGER *InDivisor,
|
||||
ACPI_INTEGER *OutQuotient,
|
||||
ACPI_INTEGER *OutRemainder);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtShortDivide (
|
||||
ACPI_INTEGER *InDividend,
|
||||
UINT32 Divisor,
|
||||
ACPI_INTEGER *OutQuotient,
|
||||
UINT32 *OutRemainder);
|
||||
|
||||
BOOLEAN
|
||||
AcpiUtValidAcpiName (
|
||||
UINT32 Name);
|
||||
|
||||
BOOLEAN
|
||||
AcpiUtValidAcpiCharacter (
|
||||
char Character);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtStrtoul64 (
|
||||
char *String,
|
||||
UINT32 Base,
|
||||
ACPI_INTEGER *RetInteger);
|
||||
|
||||
char *
|
||||
AcpiUtStrupr (
|
||||
char *SrcString);
|
||||
|
||||
UINT8 *
|
||||
AcpiUtGetResourceEndTag (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc);
|
||||
|
||||
UINT8
|
||||
AcpiUtGenerateChecksum (
|
||||
UINT8 *Buffer,
|
||||
UINT32 Length);
|
||||
|
||||
UINT32
|
||||
AcpiUtDwordByteSwap (
|
||||
UINT32 Value);
|
||||
|
||||
void
|
||||
AcpiUtSetIntegerWidth (
|
||||
UINT8 Revision);
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
void
|
||||
AcpiUtDisplayInitPathname (
|
||||
UINT8 Type,
|
||||
ACPI_NAMESPACE_NODE *ObjHandle,
|
||||
char *Path);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Utalloc - memory allocation and object caching
|
||||
*/
|
||||
|
||||
void *
|
||||
AcpiUtAcquireFromCache (
|
||||
UINT32 ListId);
|
||||
|
||||
void
|
||||
AcpiUtReleaseToCache (
|
||||
UINT32 ListId,
|
||||
void *Object);
|
||||
|
||||
void
|
||||
AcpiUtDeleteGenericCache (
|
||||
UINT32 ListId);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtValidateBuffer (
|
||||
ACPI_BUFFER *Buffer);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtInitializeBuffer (
|
||||
ACPI_BUFFER *Buffer,
|
||||
ACPI_SIZE RequiredLength);
|
||||
|
||||
|
||||
/* Memory allocation functions */
|
||||
|
||||
void *
|
||||
AcpiUtAllocate (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
void *
|
||||
AcpiUtCallocate (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
|
||||
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
||||
|
||||
void *
|
||||
AcpiUtAllocateAndTrack (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
void *
|
||||
AcpiUtCallocateAndTrack (
|
||||
ACPI_SIZE Size,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
void
|
||||
AcpiUtFreeAndTrack (
|
||||
void *Address,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
ACPI_DEBUG_MEM_BLOCK *
|
||||
AcpiUtFindAllocation (
|
||||
UINT32 ListId,
|
||||
void *Allocation);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtTrackAllocation (
|
||||
UINT32 ListId,
|
||||
ACPI_DEBUG_MEM_BLOCK *Address,
|
||||
ACPI_SIZE Size,
|
||||
UINT8 AllocType,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtRemoveAllocation (
|
||||
UINT32 ListId,
|
||||
ACPI_DEBUG_MEM_BLOCK *Address,
|
||||
UINT32 Component,
|
||||
char *Module,
|
||||
UINT32 Line);
|
||||
|
||||
void
|
||||
AcpiUtDumpAllocationInfo (
|
||||
void);
|
||||
|
||||
void
|
||||
AcpiUtDumpAllocations (
|
||||
UINT32 Component,
|
||||
char *Module);
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ACUTILS_H */
|
569
source/include/amlcode.h
Normal file
569
source/include/amlcode.h
Normal file
@ -0,0 +1,569 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: amlcode.h - Definitions for AML, as included in "definition blocks"
|
||||
* Declarations and definitions contained herein are derived
|
||||
* directly from the ACPI specification.
|
||||
* $Revision: 1.72 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __AMLCODE_H__
|
||||
#define __AMLCODE_H__
|
||||
|
||||
/* primary opcodes */
|
||||
|
||||
#define AML_NULL_CHAR (UINT16) 0x00
|
||||
|
||||
#define AML_ZERO_OP (UINT16) 0x00
|
||||
#define AML_ONE_OP (UINT16) 0x01
|
||||
#define AML_UNASSIGNED (UINT16) 0x02
|
||||
#define AML_ALIAS_OP (UINT16) 0x06
|
||||
#define AML_NAME_OP (UINT16) 0x08
|
||||
#define AML_BYTE_OP (UINT16) 0x0a
|
||||
#define AML_WORD_OP (UINT16) 0x0b
|
||||
#define AML_DWORD_OP (UINT16) 0x0c
|
||||
#define AML_STRING_OP (UINT16) 0x0d
|
||||
#define AML_QWORD_OP (UINT16) 0x0e /* ACPI 2.0 */
|
||||
#define AML_SCOPE_OP (UINT16) 0x10
|
||||
#define AML_BUFFER_OP (UINT16) 0x11
|
||||
#define AML_PACKAGE_OP (UINT16) 0x12
|
||||
#define AML_VAR_PACKAGE_OP (UINT16) 0x13 /* ACPI 2.0 */
|
||||
#define AML_METHOD_OP (UINT16) 0x14
|
||||
#define AML_DUAL_NAME_PREFIX (UINT16) 0x2e
|
||||
#define AML_MULTI_NAME_PREFIX_OP (UINT16) 0x2f
|
||||
#define AML_NAME_CHAR_SUBSEQ (UINT16) 0x30
|
||||
#define AML_NAME_CHAR_FIRST (UINT16) 0x41
|
||||
#define AML_OP_PREFIX (UINT16) 0x5b
|
||||
#define AML_ROOT_PREFIX (UINT16) 0x5c
|
||||
#define AML_PARENT_PREFIX (UINT16) 0x5e
|
||||
#define AML_LOCAL_OP (UINT16) 0x60
|
||||
#define AML_LOCAL0 (UINT16) 0x60
|
||||
#define AML_LOCAL1 (UINT16) 0x61
|
||||
#define AML_LOCAL2 (UINT16) 0x62
|
||||
#define AML_LOCAL3 (UINT16) 0x63
|
||||
#define AML_LOCAL4 (UINT16) 0x64
|
||||
#define AML_LOCAL5 (UINT16) 0x65
|
||||
#define AML_LOCAL6 (UINT16) 0x66
|
||||
#define AML_LOCAL7 (UINT16) 0x67
|
||||
#define AML_ARG_OP (UINT16) 0x68
|
||||
#define AML_ARG0 (UINT16) 0x68
|
||||
#define AML_ARG1 (UINT16) 0x69
|
||||
#define AML_ARG2 (UINT16) 0x6a
|
||||
#define AML_ARG3 (UINT16) 0x6b
|
||||
#define AML_ARG4 (UINT16) 0x6c
|
||||
#define AML_ARG5 (UINT16) 0x6d
|
||||
#define AML_ARG6 (UINT16) 0x6e
|
||||
#define AML_STORE_OP (UINT16) 0x70
|
||||
#define AML_REF_OF_OP (UINT16) 0x71
|
||||
#define AML_ADD_OP (UINT16) 0x72
|
||||
#define AML_CONCAT_OP (UINT16) 0x73
|
||||
#define AML_SUBTRACT_OP (UINT16) 0x74
|
||||
#define AML_INCREMENT_OP (UINT16) 0x75
|
||||
#define AML_DECREMENT_OP (UINT16) 0x76
|
||||
#define AML_MULTIPLY_OP (UINT16) 0x77
|
||||
#define AML_DIVIDE_OP (UINT16) 0x78
|
||||
#define AML_SHIFT_LEFT_OP (UINT16) 0x79
|
||||
#define AML_SHIFT_RIGHT_OP (UINT16) 0x7a
|
||||
#define AML_BIT_AND_OP (UINT16) 0x7b
|
||||
#define AML_BIT_NAND_OP (UINT16) 0x7c
|
||||
#define AML_BIT_OR_OP (UINT16) 0x7d
|
||||
#define AML_BIT_NOR_OP (UINT16) 0x7e
|
||||
#define AML_BIT_XOR_OP (UINT16) 0x7f
|
||||
#define AML_BIT_NOT_OP (UINT16) 0x80
|
||||
#define AML_FIND_SET_LEFT_BIT_OP (UINT16) 0x81
|
||||
#define AML_FIND_SET_RIGHT_BIT_OP (UINT16) 0x82
|
||||
#define AML_DEREF_OF_OP (UINT16) 0x83
|
||||
#define AML_CONCAT_RES_OP (UINT16) 0x84 /* ACPI 2.0 */
|
||||
#define AML_MOD_OP (UINT16) 0x85 /* ACPI 2.0 */
|
||||
#define AML_NOTIFY_OP (UINT16) 0x86
|
||||
#define AML_SIZE_OF_OP (UINT16) 0x87
|
||||
#define AML_INDEX_OP (UINT16) 0x88
|
||||
#define AML_MATCH_OP (UINT16) 0x89
|
||||
#define AML_CREATE_DWORD_FIELD_OP (UINT16) 0x8a
|
||||
#define AML_CREATE_WORD_FIELD_OP (UINT16) 0x8b
|
||||
#define AML_CREATE_BYTE_FIELD_OP (UINT16) 0x8c
|
||||
#define AML_CREATE_BIT_FIELD_OP (UINT16) 0x8d
|
||||
#define AML_TYPE_OP (UINT16) 0x8e
|
||||
#define AML_CREATE_QWORD_FIELD_OP (UINT16) 0x8f /* ACPI 2.0 */
|
||||
#define AML_LAND_OP (UINT16) 0x90
|
||||
#define AML_LOR_OP (UINT16) 0x91
|
||||
#define AML_LNOT_OP (UINT16) 0x92
|
||||
#define AML_LEQUAL_OP (UINT16) 0x93
|
||||
#define AML_LGREATER_OP (UINT16) 0x94
|
||||
#define AML_LLESS_OP (UINT16) 0x95
|
||||
#define AML_TO_BUFFER_OP (UINT16) 0x96 /* ACPI 2.0 */
|
||||
#define AML_TO_DECSTRING_OP (UINT16) 0x97 /* ACPI 2.0 */
|
||||
#define AML_TO_HEXSTRING_OP (UINT16) 0x98 /* ACPI 2.0 */
|
||||
#define AML_TO_INTEGER_OP (UINT16) 0x99 /* ACPI 2.0 */
|
||||
#define AML_TO_STRING_OP (UINT16) 0x9c /* ACPI 2.0 */
|
||||
#define AML_COPY_OP (UINT16) 0x9d /* ACPI 2.0 */
|
||||
#define AML_MID_OP (UINT16) 0x9e /* ACPI 2.0 */
|
||||
#define AML_CONTINUE_OP (UINT16) 0x9f /* ACPI 2.0 */
|
||||
#define AML_IF_OP (UINT16) 0xa0
|
||||
#define AML_ELSE_OP (UINT16) 0xa1
|
||||
#define AML_WHILE_OP (UINT16) 0xa2
|
||||
#define AML_NOOP_OP (UINT16) 0xa3
|
||||
#define AML_RETURN_OP (UINT16) 0xa4
|
||||
#define AML_BREAK_OP (UINT16) 0xa5
|
||||
#define AML_BREAK_POINT_OP (UINT16) 0xcc
|
||||
#define AML_ONES_OP (UINT16) 0xff
|
||||
|
||||
/* prefixed opcodes */
|
||||
|
||||
#define AML_EXTOP (UINT16) 0x005b
|
||||
|
||||
|
||||
#define AML_MUTEX_OP (UINT16) 0x5b01
|
||||
#define AML_EVENT_OP (UINT16) 0x5b02
|
||||
#define AML_SHIFT_RIGHT_BIT_OP (UINT16) 0x5b10
|
||||
#define AML_SHIFT_LEFT_BIT_OP (UINT16) 0x5b11
|
||||
#define AML_COND_REF_OF_OP (UINT16) 0x5b12
|
||||
#define AML_CREATE_FIELD_OP (UINT16) 0x5b13
|
||||
#define AML_LOAD_TABLE_OP (UINT16) 0x5b1f /* ACPI 2.0 */
|
||||
#define AML_LOAD_OP (UINT16) 0x5b20
|
||||
#define AML_STALL_OP (UINT16) 0x5b21
|
||||
#define AML_SLEEP_OP (UINT16) 0x5b22
|
||||
#define AML_ACQUIRE_OP (UINT16) 0x5b23
|
||||
#define AML_SIGNAL_OP (UINT16) 0x5b24
|
||||
#define AML_WAIT_OP (UINT16) 0x5b25
|
||||
#define AML_RESET_OP (UINT16) 0x5b26
|
||||
#define AML_RELEASE_OP (UINT16) 0x5b27
|
||||
#define AML_FROM_BCD_OP (UINT16) 0x5b28
|
||||
#define AML_TO_BCD_OP (UINT16) 0x5b29
|
||||
#define AML_UNLOAD_OP (UINT16) 0x5b2a
|
||||
#define AML_REVISION_OP (UINT16) 0x5b30
|
||||
#define AML_DEBUG_OP (UINT16) 0x5b31
|
||||
#define AML_FATAL_OP (UINT16) 0x5b32
|
||||
#define AML_REGION_OP (UINT16) 0x5b80
|
||||
#define AML_FIELD_OP (UINT16) 0x5b81
|
||||
#define AML_DEVICE_OP (UINT16) 0x5b82
|
||||
#define AML_PROCESSOR_OP (UINT16) 0x5b83
|
||||
#define AML_POWER_RES_OP (UINT16) 0x5b84
|
||||
#define AML_THERMAL_ZONE_OP (UINT16) 0x5b85
|
||||
#define AML_INDEX_FIELD_OP (UINT16) 0x5b86
|
||||
#define AML_BANK_FIELD_OP (UINT16) 0x5b87
|
||||
#define AML_DATA_REGION_OP (UINT16) 0x5b88 /* ACPI 2.0 */
|
||||
|
||||
|
||||
/* Bogus opcodes (they are actually two separate opcodes) */
|
||||
|
||||
#define AML_LGREATEREQUAL_OP (UINT16) 0x9295
|
||||
#define AML_LLESSEQUAL_OP (UINT16) 0x9294
|
||||
#define AML_LNOTEQUAL_OP (UINT16) 0x9293
|
||||
|
||||
|
||||
/*
|
||||
* Internal opcodes
|
||||
* Use only "Unknown" AML opcodes, don't attempt to use
|
||||
* any valid ACPI ASCII values (A-Z, 0-9, '-')
|
||||
*/
|
||||
|
||||
#define AML_INT_NAMEPATH_OP (UINT16) 0x002d
|
||||
#define AML_INT_NAMEDFIELD_OP (UINT16) 0x0030
|
||||
#define AML_INT_RESERVEDFIELD_OP (UINT16) 0x0031
|
||||
#define AML_INT_ACCESSFIELD_OP (UINT16) 0x0032
|
||||
#define AML_INT_BYTELIST_OP (UINT16) 0x0033
|
||||
#define AML_INT_STATICSTRING_OP (UINT16) 0x0034
|
||||
#define AML_INT_METHODCALL_OP (UINT16) 0x0035
|
||||
#define AML_INT_RETURN_VALUE_OP (UINT16) 0x0036
|
||||
#define AML_INT_EVAL_SUBTREE_OP (UINT16) 0x0037
|
||||
|
||||
|
||||
#define ARG_NONE 0x0
|
||||
|
||||
/*
|
||||
* Argument types for the AML Parser
|
||||
* Each field in the ArgTypes UINT32 is 5 bits, allowing for a maximum of 6 arguments.
|
||||
* There can be up to 31 unique argument types
|
||||
*/
|
||||
|
||||
#define ARGP_BYTEDATA 0x01
|
||||
#define ARGP_BYTELIST 0x02
|
||||
#define ARGP_CHARLIST 0x03
|
||||
#define ARGP_DATAOBJ 0x04
|
||||
#define ARGP_DATAOBJLIST 0x05
|
||||
#define ARGP_DWORDDATA 0x06
|
||||
#define ARGP_FIELDLIST 0x07
|
||||
#define ARGP_NAME 0x08
|
||||
#define ARGP_NAMESTRING 0x09
|
||||
#define ARGP_OBJLIST 0x0A
|
||||
#define ARGP_PKGLENGTH 0x0B
|
||||
#define ARGP_SUPERNAME 0x0C
|
||||
#define ARGP_TARGET 0x0D
|
||||
#define ARGP_TERMARG 0x0E
|
||||
#define ARGP_TERMLIST 0x0F
|
||||
#define ARGP_WORDDATA 0x10
|
||||
#define ARGP_QWORDDATA 0x11
|
||||
#define ARGP_SIMPLENAME 0x12
|
||||
|
||||
/*
|
||||
* Resolved argument types for the AML Interpreter
|
||||
* Each field in the ArgTypes UINT32 is 5 bits, allowing for a maximum of 6 arguments.
|
||||
* There can be up to 31 unique argument types (0 is end-of-arg-list indicator)
|
||||
*
|
||||
* Note: If and when 5 bits becomes insufficient, it would probably be best
|
||||
* to convert to a 6-byte array of argument types, allowing 8 bits per argument.
|
||||
*/
|
||||
|
||||
/* "Standard" ACPI types are 1-15 (0x0F) */
|
||||
|
||||
#define ARGI_INTEGER ACPI_TYPE_INTEGER /* 1 */
|
||||
#define ARGI_STRING ACPI_TYPE_STRING /* 2 */
|
||||
#define ARGI_BUFFER ACPI_TYPE_BUFFER /* 3 */
|
||||
#define ARGI_PACKAGE ACPI_TYPE_PACKAGE /* 4 */
|
||||
#define ARGI_EVENT ACPI_TYPE_EVENT
|
||||
#define ARGI_MUTEX ACPI_TYPE_MUTEX
|
||||
#define ARGI_REGION ACPI_TYPE_REGION
|
||||
#define ARGI_DDBHANDLE ACPI_TYPE_DDB_HANDLE
|
||||
|
||||
/* Custom types are 0x10 through 0x1F */
|
||||
|
||||
#define ARGI_IF 0x10
|
||||
#define ARGI_ANYOBJECT 0x11
|
||||
#define ARGI_ANYTYPE 0x12
|
||||
#define ARGI_COMPUTEDATA 0x13 /* Buffer, String, or Integer */
|
||||
#define ARGI_DATAOBJECT 0x14 /* Buffer, String, package or reference to a Node - Used only by SizeOf operator*/
|
||||
#define ARGI_COMPLEXOBJ 0x15 /* Buffer, String, or package (Used by INDEX op only) */
|
||||
#define ARGI_INTEGER_REF 0x16
|
||||
#define ARGI_OBJECT_REF 0x17
|
||||
#define ARGI_DEVICE_REF 0x18
|
||||
#define ARGI_REFERENCE 0x19
|
||||
#define ARGI_TARGETREF 0x1A /* Target, subject to implicit conversion */
|
||||
#define ARGI_FIXED_TARGET 0x1B /* Target, no implicit conversion */
|
||||
#define ARGI_SIMPLE_TARGET 0x1C /* Name, Local, Arg -- no implicit conversion */
|
||||
#define ARGI_BUFFERSTRING 0x1D
|
||||
#define ARGI_REF_OR_STRING 0x1E /* Reference or String (Used by DEREFOF op only) */
|
||||
|
||||
#define ARGI_INVALID_OPCODE 0xFFFFFFFF
|
||||
|
||||
|
||||
/*
|
||||
* hash offsets
|
||||
*/
|
||||
#define AML_EXTOP_HASH_OFFSET 22
|
||||
#define AML_LNOT_HASH_OFFSET 19
|
||||
|
||||
|
||||
/*
|
||||
* opcode groups and types
|
||||
*/
|
||||
|
||||
#define OPGRP_NAMED 0x01
|
||||
#define OPGRP_FIELD 0x02
|
||||
#define OPGRP_BYTELIST 0x04
|
||||
|
||||
|
||||
/*
|
||||
* Opcode information
|
||||
*/
|
||||
|
||||
/* Opcode flags */
|
||||
|
||||
#define AML_HAS_ARGS 0x0800
|
||||
#define AML_HAS_TARGET 0x0400
|
||||
#define AML_HAS_RETVAL 0x0200
|
||||
#define AML_NSOBJECT 0x0100
|
||||
#define AML_NSOPCODE 0x0080
|
||||
#define AML_NSNODE 0x0040
|
||||
#define AML_NAMED 0x0020
|
||||
#define AML_DEFER 0x0010
|
||||
#define AML_FIELD 0x0008
|
||||
#define AML_CREATE 0x0004
|
||||
#define AML_MATH 0x0002
|
||||
#define AML_LOGICAL 0x0001
|
||||
#define AML_CONSTANT 0x1000
|
||||
|
||||
/* Convenient flag groupings */
|
||||
|
||||
#define AML_FLAGS_EXEC_1A_0T_0R AML_HAS_ARGS /* Monadic1 */
|
||||
#define AML_FLAGS_EXEC_1A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Monadic2 */
|
||||
#define AML_FLAGS_EXEC_1A_1T_0R AML_HAS_ARGS | AML_HAS_TARGET
|
||||
#define AML_FLAGS_EXEC_1A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* Monadic2R */
|
||||
#define AML_FLAGS_EXEC_2A_0T_0R AML_HAS_ARGS /* Dyadic1 */
|
||||
#define AML_FLAGS_EXEC_2A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL /* Dyadic2 */
|
||||
#define AML_FLAGS_EXEC_2A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL /* Dyadic2R */
|
||||
#define AML_FLAGS_EXEC_2A_2T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
|
||||
#define AML_FLAGS_EXEC_3A_0T_0R AML_HAS_ARGS
|
||||
#define AML_FLAGS_EXEC_3A_1T_1R AML_HAS_ARGS | AML_HAS_TARGET | AML_HAS_RETVAL
|
||||
#define AML_FLAGS_EXEC_6A_0T_1R AML_HAS_ARGS | AML_HAS_RETVAL
|
||||
|
||||
|
||||
/*
|
||||
* The opcode Type is used in a dispatch table, do not change
|
||||
* without updating the table.
|
||||
*/
|
||||
#define AML_TYPE_EXEC_1A_0T_0R 0x00 /* Monadic1 */
|
||||
#define AML_TYPE_EXEC_1A_0T_1R 0x01 /* Monadic2 */
|
||||
#define AML_TYPE_EXEC_1A_1T_0R 0x02
|
||||
#define AML_TYPE_EXEC_1A_1T_1R 0x03 /* Monadic2R */
|
||||
#define AML_TYPE_EXEC_2A_0T_0R 0x04 /* Dyadic1 */
|
||||
#define AML_TYPE_EXEC_2A_0T_1R 0x05 /* Dyadic2 */
|
||||
#define AML_TYPE_EXEC_2A_1T_1R 0x06 /* Dyadic2R */
|
||||
#define AML_TYPE_EXEC_2A_2T_1R 0x07
|
||||
#define AML_TYPE_EXEC_3A_0T_0R 0x08
|
||||
#define AML_TYPE_EXEC_3A_1T_1R 0x09
|
||||
#define AML_TYPE_EXEC_6A_0T_1R 0x0A
|
||||
/* End of types used in dispatch table */
|
||||
|
||||
#define AML_TYPE_LITERAL 0x0B
|
||||
#define AML_TYPE_CONSTANT 0x0C
|
||||
#define AML_TYPE_METHOD_ARGUMENT 0x0D
|
||||
#define AML_TYPE_LOCAL_VARIABLE 0x0E
|
||||
#define AML_TYPE_DATA_TERM 0x0F
|
||||
|
||||
/* Generic for an op that returns a value */
|
||||
|
||||
#define AML_TYPE_METHOD_CALL 0x10
|
||||
|
||||
/* Misc */
|
||||
|
||||
#define AML_TYPE_CREATE_FIELD 0x11
|
||||
#define AML_TYPE_CREATE_OBJECT 0x12
|
||||
#define AML_TYPE_CONTROL 0x13
|
||||
#define AML_TYPE_NAMED_NO_OBJ 0x14
|
||||
#define AML_TYPE_NAMED_FIELD 0x15
|
||||
#define AML_TYPE_NAMED_SIMPLE 0x16
|
||||
#define AML_TYPE_NAMED_COMPLEX 0x17
|
||||
#define AML_TYPE_RETURN 0x18
|
||||
|
||||
#define AML_TYPE_UNDEFINED 0x19
|
||||
#define AML_TYPE_BOGUS 0x1A
|
||||
|
||||
|
||||
/*
|
||||
* Opcode classes
|
||||
*/
|
||||
#define AML_CLASS_EXECUTE 0x00
|
||||
#define AML_CLASS_CREATE 0x01
|
||||
#define AML_CLASS_ARGUMENT 0x02
|
||||
#define AML_CLASS_NAMED_OBJECT 0x03
|
||||
#define AML_CLASS_CONTROL 0x04
|
||||
#define AML_CLASS_ASCII 0x05
|
||||
#define AML_CLASS_PREFIX 0x06
|
||||
#define AML_CLASS_INTERNAL 0x07
|
||||
#define AML_CLASS_RETURN_VALUE 0x08
|
||||
#define AML_CLASS_METHOD_CALL 0x09
|
||||
#define AML_CLASS_UNKNOWN 0x0A
|
||||
|
||||
|
||||
/* Predefined Operation Region SpaceIDs */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
REGION_MEMORY = 0,
|
||||
REGION_IO,
|
||||
REGION_PCI_CONFIG,
|
||||
REGION_EC,
|
||||
REGION_SMBUS,
|
||||
REGION_CMOS,
|
||||
REGION_PCI_BAR,
|
||||
REGION_DATA_TABLE, /* Internal use only */
|
||||
REGION_FIXED_HW = 0x7F
|
||||
|
||||
} AML_REGION_TYPES;
|
||||
|
||||
|
||||
/* Comparison operation codes for MatchOp operator */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MATCH_MTR = 0,
|
||||
MATCH_MEQ = 1,
|
||||
MATCH_MLE = 2,
|
||||
MATCH_MLT = 3,
|
||||
MATCH_MGE = 4,
|
||||
MATCH_MGT = 5
|
||||
|
||||
} AML_MATCH_OPERATOR;
|
||||
|
||||
#define MAX_MATCH_OPERATOR 5
|
||||
|
||||
|
||||
/*
|
||||
* FieldFlags
|
||||
*
|
||||
* This byte is extracted from the AML and includes three separate
|
||||
* pieces of information about the field:
|
||||
* 1) The field access type
|
||||
* 2) The field update rule
|
||||
* 3) The lock rule for the field
|
||||
*
|
||||
* Bits 00 - 03 : AccessType (AnyAcc, ByteAcc, etc.)
|
||||
* 04 : LockRule (1 == Lock)
|
||||
* 05 - 06 : UpdateRule
|
||||
*/
|
||||
#define AML_FIELD_ACCESS_TYPE_MASK 0x0F
|
||||
#define AML_FIELD_LOCK_RULE_MASK 0x10
|
||||
#define AML_FIELD_UPDATE_RULE_MASK 0x60
|
||||
|
||||
|
||||
/* 1) Field Access Types */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AML_FIELD_ACCESS_ANY = 0x00,
|
||||
AML_FIELD_ACCESS_BYTE = 0x01,
|
||||
AML_FIELD_ACCESS_WORD = 0x02,
|
||||
AML_FIELD_ACCESS_DWORD = 0x03,
|
||||
AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */
|
||||
AML_FIELD_ACCESS_BUFFER = 0x05 /* ACPI 2.0 */
|
||||
|
||||
} AML_ACCESS_TYPE;
|
||||
|
||||
|
||||
/* 2) Field Lock Rules */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AML_FIELD_LOCK_NEVER = 0x00,
|
||||
AML_FIELD_LOCK_ALWAYS = 0x10
|
||||
|
||||
} AML_LOCK_RULE;
|
||||
|
||||
|
||||
/* 3) Field Update Rules */
|
||||
|
||||
typedef enum
|
||||
{
|
||||
AML_FIELD_UPDATE_PRESERVE = 0x00,
|
||||
AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20,
|
||||
AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40
|
||||
|
||||
} AML_UPDATE_RULE;
|
||||
|
||||
|
||||
/*
|
||||
* Field Access Attributes.
|
||||
* This byte is extracted from the AML via the
|
||||
* AccessAs keyword
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
AML_FIELD_ATTRIB_SMB_QUICK = 0x02,
|
||||
AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04,
|
||||
AML_FIELD_ATTRIB_SMB_BYTE = 0x06,
|
||||
AML_FIELD_ATTRIB_SMB_WORD = 0x08,
|
||||
AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A,
|
||||
AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C,
|
||||
AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D
|
||||
|
||||
} AML_ACCESS_ATTRIBUTE;
|
||||
|
||||
|
||||
/* bit fields in MethodFlags byte */
|
||||
|
||||
#define METHOD_FLAGS_ARG_COUNT 0x07
|
||||
#define METHOD_FLAGS_SERIALIZED 0x08
|
||||
#define METHOD_FLAGS_SYNCH_LEVEL 0xF0
|
||||
|
||||
|
||||
#endif /* __AMLCODE_H__ */
|
423
source/include/amlresrc.h
Normal file
423
source/include/amlresrc.h
Normal file
@ -0,0 +1,423 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: amlresrc.h - AML resource descriptors
|
||||
* $Revision: 1.23 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __AMLRESRC_H
|
||||
#define __AMLRESRC_H
|
||||
|
||||
|
||||
#define ASL_RESNAME_ADDRESS "_ADR"
|
||||
#define ASL_RESNAME_ALIGNMENT "_ALN"
|
||||
#define ASL_RESNAME_ADDRESSSPACE "_ASI"
|
||||
#define ASL_RESNAME_BASEADDRESS "_BAS"
|
||||
#define ASL_RESNAME_BUSMASTER "_BM_" /* Master(1), Slave(0) */
|
||||
#define ASL_RESNAME_DECODE "_DEC"
|
||||
#define ASL_RESNAME_DMA "_DMA"
|
||||
#define ASL_RESNAME_DMATYPE "_TYP" /* Compatible(0), A(1), B(2), F(3) */
|
||||
#define ASL_RESNAME_GRANULARITY "_GRA"
|
||||
#define ASL_RESNAME_INTERRUPT "_INT"
|
||||
#define ASL_RESNAME_INTERRUPTLEVEL "_LL_" /* ActiveLo(1), ActiveHi(0) */
|
||||
#define ASL_RESNAME_INTERRUPTSHARE "_SHR" /* Shareable(1), NoShare(0) */
|
||||
#define ASL_RESNAME_INTERRUPTTYPE "_HE_" /* Edge(1), Level(0) */
|
||||
#define ASL_RESNAME_LENGTH "_LEN"
|
||||
#define ASL_RESNAME_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */
|
||||
#define ASL_RESNAME_MEMTYPE "_MEM" /* NonCache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */
|
||||
#define ASL_RESNAME_MAXADDR "_MAX"
|
||||
#define ASL_RESNAME_MINADDR "_MIN"
|
||||
#define ASL_RESNAME_MAXTYPE "_MAF"
|
||||
#define ASL_RESNAME_MINTYPE "_MIF"
|
||||
#define ASL_RESNAME_REGISTERBITOFFSET "_RBO"
|
||||
#define ASL_RESNAME_REGISTERBITWIDTH "_RBW"
|
||||
#define ASL_RESNAME_RANGETYPE "_RNG"
|
||||
#define ASL_RESNAME_READWRITETYPE "_RW_" /* ReadOnly(0), Writeable (1) */
|
||||
#define ASL_RESNAME_TRANSLATION "_TRA"
|
||||
#define ASL_RESNAME_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */
|
||||
#define ASL_RESNAME_TYPE "_TTP" /* Translation(1), Static (0) */
|
||||
#define ASL_RESNAME_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */
|
||||
|
||||
|
||||
/* Default sizes for "small" resource descriptors */
|
||||
|
||||
#define ASL_RDESC_IRQ_SIZE 0x02
|
||||
#define ASL_RDESC_DMA_SIZE 0x02
|
||||
#define ASL_RDESC_ST_DEPEND_SIZE 0x00
|
||||
#define ASL_RDESC_END_DEPEND_SIZE 0x00
|
||||
#define ASL_RDESC_IO_SIZE 0x07
|
||||
#define ASL_RDESC_FIXED_IO_SIZE 0x03
|
||||
#define ASL_RDESC_END_TAG_SIZE 0x01
|
||||
|
||||
|
||||
typedef struct asl_resource_node
|
||||
{
|
||||
UINT32 BufferLength;
|
||||
void *Buffer;
|
||||
struct asl_resource_node *Next;
|
||||
|
||||
} ASL_RESOURCE_NODE;
|
||||
|
||||
|
||||
/*
|
||||
* Resource descriptors defined in the ACPI specification.
|
||||
*
|
||||
* Alignment must be BYTE because these descriptors
|
||||
* are used to overlay the AML byte stream.
|
||||
*/
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct asl_irq_format_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 IrqMask;
|
||||
UINT8 Flags;
|
||||
|
||||
} ASL_IRQ_FORMAT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_irq_noflags_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 IrqMask;
|
||||
|
||||
} ASL_IRQ_NOFLAGS_DESC;
|
||||
|
||||
|
||||
typedef struct asl_dma_format_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT8 DmaChannelMask;
|
||||
UINT8 Flags;
|
||||
|
||||
} ASL_DMA_FORMAT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_start_dependent_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT8 Flags;
|
||||
|
||||
} ASL_START_DEPENDENT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_start_dependent_noprio_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
|
||||
} ASL_START_DEPENDENT_NOPRIO_DESC;
|
||||
|
||||
|
||||
typedef struct asl_end_dependent_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
|
||||
} ASL_END_DEPENDENT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_io_port_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT8 Information;
|
||||
UINT16 AddressMin;
|
||||
UINT16 AddressMax;
|
||||
UINT8 Alignment;
|
||||
UINT8 Length;
|
||||
|
||||
} ASL_IO_PORT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_fixed_io_port_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 BaseAddress;
|
||||
UINT8 Length;
|
||||
|
||||
} ASL_FIXED_IO_PORT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_small_vendor_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT8 VendorDefined[7];
|
||||
|
||||
} ASL_SMALL_VENDOR_DESC;
|
||||
|
||||
|
||||
typedef struct asl_end_tag_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT8 Checksum;
|
||||
|
||||
} ASL_END_TAG_DESC;
|
||||
|
||||
|
||||
/* LARGE descriptors */
|
||||
|
||||
typedef struct asl_memory_24_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 Information;
|
||||
UINT16 AddressMin;
|
||||
UINT16 AddressMax;
|
||||
UINT16 Alignment;
|
||||
UINT16 RangeLength;
|
||||
|
||||
} ASL_MEMORY_24_DESC;
|
||||
|
||||
|
||||
typedef struct asl_large_vendor_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 VendorDefined[1];
|
||||
|
||||
} ASL_LARGE_VENDOR_DESC;
|
||||
|
||||
|
||||
typedef struct asl_memory_32_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 Information;
|
||||
UINT32 AddressMin;
|
||||
UINT32 AddressMax;
|
||||
UINT32 Alignment;
|
||||
UINT32 RangeLength;
|
||||
|
||||
} ASL_MEMORY_32_DESC;
|
||||
|
||||
|
||||
typedef struct asl_fixed_memory_32_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 Information;
|
||||
UINT32 BaseAddress;
|
||||
UINT32 RangeLength;
|
||||
|
||||
} ASL_FIXED_MEMORY_32_DESC;
|
||||
|
||||
|
||||
typedef struct asl_qword_address_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 ResourceType;
|
||||
UINT8 Flags;
|
||||
UINT8 SpecificFlags;
|
||||
UINT64 Granularity;
|
||||
UINT64 AddressMin;
|
||||
UINT64 AddressMax;
|
||||
UINT64 TranslationOffset;
|
||||
UINT64 AddressLength;
|
||||
UINT8 OptionalFields[2];
|
||||
|
||||
} ASL_QWORD_ADDRESS_DESC;
|
||||
|
||||
|
||||
typedef struct asl_dword_address_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 ResourceType;
|
||||
UINT8 Flags;
|
||||
UINT8 SpecificFlags;
|
||||
UINT32 Granularity;
|
||||
UINT32 AddressMin;
|
||||
UINT32 AddressMax;
|
||||
UINT32 TranslationOffset;
|
||||
UINT32 AddressLength;
|
||||
UINT8 OptionalFields[2];
|
||||
|
||||
} ASL_DWORD_ADDRESS_DESC;
|
||||
|
||||
|
||||
typedef struct asl_word_address_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 ResourceType;
|
||||
UINT8 Flags;
|
||||
UINT8 SpecificFlags;
|
||||
UINT16 Granularity;
|
||||
UINT16 AddressMin;
|
||||
UINT16 AddressMax;
|
||||
UINT16 TranslationOffset;
|
||||
UINT16 AddressLength;
|
||||
UINT8 OptionalFields[2];
|
||||
|
||||
} ASL_WORD_ADDRESS_DESC;
|
||||
|
||||
|
||||
typedef struct asl_extended_xrupt_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 Flags;
|
||||
UINT8 TableLength;
|
||||
UINT32 InterruptNumber[1];
|
||||
/* ResSourceIndex, ResSource optional fields follow */
|
||||
|
||||
} ASL_EXTENDED_XRUPT_DESC;
|
||||
|
||||
|
||||
typedef struct asl_general_register_desc
|
||||
{
|
||||
UINT8 DescriptorType;
|
||||
UINT16 Length;
|
||||
UINT8 AddressSpaceId;
|
||||
UINT8 BitWidth;
|
||||
UINT8 BitOffset;
|
||||
UINT8 Reserved;
|
||||
UINT64 Address;
|
||||
|
||||
} ASL_GENERAL_REGISTER_DESC;
|
||||
|
||||
/* restore default alignment */
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/* Union of all resource descriptors, sow we can allocate the worst case */
|
||||
|
||||
typedef union asl_resource_desc
|
||||
{
|
||||
ASL_IRQ_FORMAT_DESC Irq;
|
||||
ASL_DMA_FORMAT_DESC Dma;
|
||||
ASL_START_DEPENDENT_DESC Std;
|
||||
ASL_END_DEPENDENT_DESC End;
|
||||
ASL_IO_PORT_DESC Iop;
|
||||
ASL_FIXED_IO_PORT_DESC Fio;
|
||||
ASL_SMALL_VENDOR_DESC Smv;
|
||||
ASL_END_TAG_DESC Et;
|
||||
|
||||
ASL_MEMORY_24_DESC M24;
|
||||
ASL_LARGE_VENDOR_DESC Lgv;
|
||||
ASL_MEMORY_32_DESC M32;
|
||||
ASL_FIXED_MEMORY_32_DESC F32;
|
||||
ASL_QWORD_ADDRESS_DESC Qas;
|
||||
ASL_DWORD_ADDRESS_DESC Das;
|
||||
ASL_WORD_ADDRESS_DESC Was;
|
||||
ASL_EXTENDED_XRUPT_DESC Exx;
|
||||
ASL_GENERAL_REGISTER_DESC Grg;
|
||||
UINT32 U32Item;
|
||||
UINT16 U16Item;
|
||||
UINT8 U8Item;
|
||||
|
||||
} ASL_RESOURCE_DESC;
|
||||
|
||||
|
||||
#endif
|
||||
|
150
source/include/platform/acefi.h
Normal file
150
source/include/platform/acefi.h
Normal file
@ -0,0 +1,150 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acefi.h - OS specific defines, etc.
|
||||
* $Revision: 1.13 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACEFI_H__
|
||||
#define __ACEFI_H__
|
||||
|
||||
#define ACPI_OS_NAME "AED EFI"
|
||||
|
||||
#include <efi.h>
|
||||
#include <efistdarg.h>
|
||||
#include <efilib.h>
|
||||
|
||||
|
||||
/* _int64 works for both IA32 and IA64 */
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned __int64
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE
|
||||
|
||||
/* warn C4142: redefinition of type */
|
||||
|
||||
#pragma warning(disable:4142)
|
||||
|
||||
|
||||
#endif /* __ACEFI_H__ */
|
436
source/include/platform/acenv.h
Normal file
436
source/include/platform/acenv.h
Normal file
@ -0,0 +1,436 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acenv.h - Generation environment specific items
|
||||
* $Revision: 1.103 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACENV_H__
|
||||
#define __ACENV_H__
|
||||
|
||||
|
||||
/*
|
||||
* Configuration for ACPI tools and utilities
|
||||
*/
|
||||
|
||||
#ifdef _ACPI_DUMP_APP
|
||||
#ifndef MSDOS
|
||||
#define ACPI_DEBUG_OUTPUT
|
||||
#endif
|
||||
#define ACPI_APPLICATION
|
||||
#define ACPI_DISASSEMBLER
|
||||
#define ACPI_NO_METHOD_EXECUTION
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#endif
|
||||
|
||||
#ifdef _ACPI_EXEC_APP
|
||||
#undef DEBUGGER_THREADING
|
||||
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
|
||||
#define ACPI_DEBUG_OUTPUT
|
||||
#define ACPI_APPLICATION
|
||||
#define ACPI_DEBUGGER
|
||||
#define ACPI_DISASSEMBLER
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#endif
|
||||
|
||||
#ifdef _ACPI_ASL_COMPILER
|
||||
#define ACPI_DEBUG_OUTPUT
|
||||
#define ACPI_APPLICATION
|
||||
#define ACPI_DISASSEMBLER
|
||||
#define ACPI_CONSTANT_EVAL_ONLY
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Environment configuration. The purpose of this file is to interface to the
|
||||
* local generation environment.
|
||||
*
|
||||
* 1) ACPI_USE_SYSTEM_CLIBRARY - Define this if linking to an actual C library.
|
||||
* Otherwise, local versions of string/memory functions will be used.
|
||||
* 2) ACPI_USE_STANDARD_HEADERS - Define this if linking to a C library and
|
||||
* the standard header files may be used.
|
||||
*
|
||||
* The ACPI subsystem only uses low level C library functions that do not call
|
||||
* operating system services and may therefore be inlined in the code.
|
||||
*
|
||||
* It may be necessary to tailor these include files to the target
|
||||
* generation environment.
|
||||
*
|
||||
*
|
||||
* Functions and constants used from each header:
|
||||
*
|
||||
* string.h: memcpy
|
||||
* memset
|
||||
* strcat
|
||||
* strcmp
|
||||
* strcpy
|
||||
* strlen
|
||||
* strncmp
|
||||
* strncat
|
||||
* strncpy
|
||||
*
|
||||
* stdlib.h: strtoul
|
||||
*
|
||||
* stdarg.h: va_list
|
||||
* va_arg
|
||||
* va_start
|
||||
* va_end
|
||||
*
|
||||
*/
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
#if defined(_LINUX)
|
||||
#include "aclinux.h"
|
||||
|
||||
#elif defined(_AED_EFI)
|
||||
#include "acefi.h"
|
||||
|
||||
#elif defined(WIN32)
|
||||
#include "acwin.h"
|
||||
|
||||
#elif defined(WIN64)
|
||||
#include "acwin64.h"
|
||||
|
||||
#elif defined(MSDOS) /* Must appear after WIN32 and WIN64 check */
|
||||
#include "acdos16.h"
|
||||
|
||||
#elif defined(__FreeBSD__)
|
||||
#include "acfreebsd.h"
|
||||
|
||||
#elif defined(MODESTO)
|
||||
#include "acmodesto.h"
|
||||
|
||||
#elif defined(NETWARE)
|
||||
#include "acnetware.h"
|
||||
|
||||
#else
|
||||
|
||||
/* All other environments */
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 long long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long long
|
||||
|
||||
|
||||
/* Name of host operating system (returned by the _OS_ namespace object) */
|
||||
|
||||
#define ACPI_OS_NAME "Intel ACPI/CA Core Subsystem"
|
||||
|
||||
/* This macro is used to tag functions as "printf-like" because
|
||||
* some compilers can catch printf format string problems. MSVC
|
||||
* doesn't, so this is proprocessed away.
|
||||
*/
|
||||
#define ACPI_PRINTF_LIKE_FUNC
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Memory allocation tracking. Used only if
|
||||
* 1) This is the debug version
|
||||
* 2) This is NOT a 16-bit version of the code (not enough real-mode memory)
|
||||
*/
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
#if ACPI_MACHINE_WIDTH != 16
|
||||
#define ACPI_DBG_TRACK_ALLOCATIONS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
|
||||
/*
|
||||
* Debugger threading model
|
||||
* Use single threaded if the entire subsystem is contained in an application
|
||||
* Use multiple threaded when the subsystem is running in the kernel.
|
||||
*
|
||||
* By default the model is single threaded if ACPI_APPLICATION is set,
|
||||
* multi-threaded if ACPI_APPLICATION is not set.
|
||||
*/
|
||||
#define DEBUGGER_SINGLE_THREADED 0
|
||||
#define DEBUGGER_MULTI_THREADED 1
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
|
||||
|
||||
#else
|
||||
#define DEBUGGER_THREADING DEBUGGER_MULTI_THREADED
|
||||
#endif
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* C library configuration
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef ACPI_USE_SYSTEM_CLIBRARY
|
||||
/*
|
||||
* Use the standard C library headers.
|
||||
* We want to keep these to a minimum.
|
||||
*/
|
||||
|
||||
#ifdef ACPI_USE_STANDARD_HEADERS
|
||||
/*
|
||||
* Use the standard headers from the standard locations
|
||||
*/
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#endif /* ACPI_USE_STANDARD_HEADERS */
|
||||
|
||||
/*
|
||||
* We will be linking to the standard Clib functions
|
||||
*/
|
||||
|
||||
#define ACPI_STRSTR(s1,s2) strstr((s1), (s2))
|
||||
#define ACPI_STRUPR(s) (void) AcpiUtStrupr ((s))
|
||||
#define ACPI_STRLEN(s) (ACPI_SIZE) strlen((s))
|
||||
#define ACPI_STRCPY(d,s) (void) strcpy((d), (s))
|
||||
#define ACPI_STRNCPY(d,s,n) (void) strncpy((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_STRNCMP(d,s,n) strncmp((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_STRCMP(d,s) strcmp((d), (s))
|
||||
#define ACPI_STRCAT(d,s) (void) strcat((d), (s))
|
||||
#define ACPI_STRNCAT(d,s,n) strncat((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_STRTOUL(d,s,n) strtoul((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_MEMCPY(d,s,n) (void) memcpy((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_MEMSET(d,s,n) (void) memset((d), (s), (ACPI_SIZE)(n))
|
||||
|
||||
#define ACPI_TOUPPER toupper
|
||||
#define ACPI_TOLOWER tolower
|
||||
#define ACPI_IS_XDIGIT isxdigit
|
||||
#define ACPI_IS_DIGIT isdigit
|
||||
#define ACPI_IS_SPACE isspace
|
||||
#define ACPI_IS_UPPER isupper
|
||||
#define ACPI_IS_PRINT isprint
|
||||
#define ACPI_IS_ALPHA isalpha
|
||||
#define ACPI_IS_ASCII isascii
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Not using native C library, use local implementations
|
||||
*
|
||||
*****************************************************************************/
|
||||
#else
|
||||
|
||||
/*
|
||||
* Use local definitions of C library macros and functions
|
||||
* NOTE: The function implementations may not be as efficient
|
||||
* as an inline or assembly code implementation provided by a
|
||||
* native C library.
|
||||
*/
|
||||
|
||||
#ifndef va_arg
|
||||
|
||||
#ifndef _VALIST
|
||||
#define _VALIST
|
||||
typedef char *va_list;
|
||||
#endif /* _VALIST */
|
||||
|
||||
/*
|
||||
* Storage alignment properties
|
||||
*/
|
||||
|
||||
#define _AUPBND (sizeof (ACPI_NATIVE_INT) - 1)
|
||||
#define _ADNBND (sizeof (ACPI_NATIVE_INT) - 1)
|
||||
|
||||
/*
|
||||
* Variable argument list macro definitions
|
||||
*/
|
||||
|
||||
#define _Bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
|
||||
#define va_arg(ap, T) (*(T *)(((ap) += (_Bnd (T, _AUPBND))) - (_Bnd (T,_ADNBND))))
|
||||
#define va_end(ap) (void) 0
|
||||
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_Bnd (A,_AUPBND))))
|
||||
|
||||
#endif /* va_arg */
|
||||
|
||||
|
||||
#define ACPI_STRSTR(s1,s2) AcpiUtStrstr ((s1), (s2))
|
||||
#define ACPI_STRUPR(s) (void) AcpiUtStrupr ((s))
|
||||
#define ACPI_STRLEN(s) (ACPI_SIZE) AcpiUtStrlen ((s))
|
||||
#define ACPI_STRCPY(d,s) (void) AcpiUtStrcpy ((d), (s))
|
||||
#define ACPI_STRNCPY(d,s,n) (void) AcpiUtStrncpy ((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_STRNCMP(d,s,n) AcpiUtStrncmp ((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_STRCMP(d,s) AcpiUtStrcmp ((d), (s))
|
||||
#define ACPI_STRCAT(d,s) (void) AcpiUtStrcat ((d), (s))
|
||||
#define ACPI_STRNCAT(d,s,n) AcpiUtStrncat ((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_STRTOUL(d,s,n) AcpiUtStrtoul ((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_MEMCPY(d,s,n) (void) AcpiUtMemcpy ((d), (s), (ACPI_SIZE)(n))
|
||||
#define ACPI_MEMSET(d,v,n) (void) AcpiUtMemset ((d), (v), (ACPI_SIZE)(n))
|
||||
#define ACPI_TOUPPER AcpiUtToUpper
|
||||
#define ACPI_TOLOWER AcpiUtToLower
|
||||
|
||||
#endif /* ACPI_USE_SYSTEM_CLIBRARY */
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Assembly code macros
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Handle platform- and compiler-specific assembly language differences.
|
||||
* These should already have been defined by the platform includes above.
|
||||
*
|
||||
* Notes:
|
||||
* 1) Interrupt 3 is used to break into a debugger
|
||||
* 2) Interrupts are turned off during ACPI register setup
|
||||
*/
|
||||
|
||||
/* Unrecognized compiler, use defaults */
|
||||
|
||||
#ifndef ACPI_ASM_MACROS
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE
|
||||
|
||||
#define ACPI_ASM_MACROS
|
||||
#define BREAKPOINT3
|
||||
#define ACPI_DISABLE_IRQS()
|
||||
#define ACPI_ENABLE_IRQS()
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq)
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq)
|
||||
|
||||
#endif /* ACPI_ASM_MACROS */
|
||||
|
||||
|
||||
#ifdef ACPI_APPLICATION
|
||||
|
||||
/* Don't want software interrupts within a ring3 application */
|
||||
|
||||
#undef BREAKPOINT3
|
||||
#define BREAKPOINT3
|
||||
#endif
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Compiler-specific information is contained in the compiler-specific
|
||||
* headers.
|
||||
*
|
||||
*****************************************************************************/
|
||||
#endif /* __ACENV_H__ */
|
200
source/include/platform/acfreebsd.h
Normal file
200
source/include/platform/acfreebsd.h
Normal file
@ -0,0 +1,200 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acfreebsd.h - OS specific defines, etc.
|
||||
* $Revision: 1.11 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACFREEBSD_H__
|
||||
#define __ACFREEBSD_H__
|
||||
|
||||
/*
|
||||
* XXX this is technically correct, but will cause problems with some ASL
|
||||
* which only works if the string names a Microsoft operating system.
|
||||
*/
|
||||
#define ACPI_OS_NAME "FreeBSD"
|
||||
|
||||
/* FreeBSD uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
#include <machine/acpica_machdep.h>
|
||||
|
||||
#ifdef _KERNEL
|
||||
#include <sys/ctype.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/libkern.h>
|
||||
#include <machine/stdarg.h>
|
||||
|
||||
#define asm __asm
|
||||
#define __cli() disable_intr()
|
||||
#define __sti() enable_intr()
|
||||
|
||||
#ifdef ACPI_DEBUG_OUTPUT
|
||||
#ifdef DEBUGGER_THREADING
|
||||
#undef DEBUGGER_THREADING
|
||||
#endif /* DEBUGGER_THREADING */
|
||||
#define DEBUGGER_THREADING 0 /* integrated with DDB */
|
||||
#include "opt_ddb.h"
|
||||
#ifdef DDB
|
||||
#define ACPI_DEBUGGER
|
||||
#endif /* DDB */
|
||||
#endif /* ACPI_DEBUG_OUTPUT */
|
||||
|
||||
#else /* _KERNEL */
|
||||
|
||||
/* Not building kernel code, so use libc */
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
#define __cli()
|
||||
#define __sti()
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
/* Always use FreeBSD code over our local versions */
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
/* FreeBSD doesn't have strupr, should be fixed. (move to libkern) */
|
||||
static __inline char *
|
||||
strupr(char *str)
|
||||
{
|
||||
char *c = str;
|
||||
while(*c) {
|
||||
*c = toupper(*c);
|
||||
c++;
|
||||
}
|
||||
return(str);
|
||||
}
|
||||
|
||||
#ifdef _KERNEL
|
||||
/* Or strstr (used in debugging mode, also move to libkern) */
|
||||
static __inline char *
|
||||
strstr(char *s, char *find)
|
||||
{
|
||||
char c, sc;
|
||||
size_t len;
|
||||
|
||||
if ((c = *find++) != 0) {
|
||||
len = strlen(find);
|
||||
do {
|
||||
do {
|
||||
if ((sc = *s++) == 0)
|
||||
return (NULL);
|
||||
} while (sc != c);
|
||||
} while (strncmp(s, find, len) != 0);
|
||||
s--;
|
||||
}
|
||||
return ((char *)s);
|
||||
}
|
||||
#endif /* _KERNEL */
|
||||
|
||||
#endif /* __ACFREEBSD_H__ */
|
132
source/include/platform/acgcc.h
Normal file
132
source/include/platform/acgcc.h
Normal file
@ -0,0 +1,132 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acgcc.h - GCC specific defines, etc.
|
||||
* $Revision: 1.25 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACGCC_H__
|
||||
#define __ACGCC_H__
|
||||
|
||||
/* This macro is used to tag functions as "printf-like" because
|
||||
* some compilers (like GCC) can catch printf format string problems.
|
||||
*/
|
||||
#define ACPI_PRINTF_LIKE_FUNC __attribute__ ((__format__ (__printf__, 4, 5)))
|
||||
|
||||
/* Some compilers complain about unused variables. Sometimes we don't want to
|
||||
* use all the variables (most specifically for _THIS_MODULE). This allow us
|
||||
* to to tell the compiler warning in a per-variable manner that a variable
|
||||
* is unused.
|
||||
*/
|
||||
#define ACPI_UNUSED_VAR __attribute__ ((unused))
|
||||
|
||||
#endif /* __ACGCC_H__ */
|
176
source/include/platform/acintel.h
Normal file
176
source/include/platform/acintel.h
Normal file
@ -0,0 +1,176 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acintel.h - VC specific defines, etc.
|
||||
* $Revision: 1.10 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACINTEL_H__
|
||||
#define __ACINTEL_H__
|
||||
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned __int64
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE
|
||||
|
||||
/*
|
||||
* Math helper functions
|
||||
*/
|
||||
#define ACPI_DIV_64_BY_32(n, n_hi, n_lo, d32, q32, r32) \
|
||||
{ \
|
||||
q32 = n / d32; \
|
||||
r32 = n % d32; \
|
||||
}
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n, n_hi, n_lo) \
|
||||
{ \
|
||||
n <<= 1; \
|
||||
}
|
||||
|
||||
/* remark 981 - operands evaluated in no particular order */
|
||||
#pragma warning(disable:981)
|
||||
|
||||
/* warn C4100: unreferenced formal parameter */
|
||||
#pragma warning(disable:4100)
|
||||
|
||||
/* warn C4127: conditional expression is constant */
|
||||
#pragma warning(disable:4127)
|
||||
|
||||
/* warn C4706: assignment within conditional expression */
|
||||
#pragma warning(disable:4706)
|
||||
|
||||
/* This macro is used to tag functions as "printf-like" because
|
||||
* some compilers can catch printf format string problems. MSVC
|
||||
* doesn't, so this is proprocessed away.
|
||||
*/
|
||||
#define ACPI_PRINTF_LIKE_FUNC
|
||||
|
||||
/* Some compilers complain about unused variables. Sometimes we don't want to
|
||||
* use all the variables (most specifically for _THIS_MODULE). This allow us
|
||||
* to to tell the compiler warning in a per-variable manner that a variable
|
||||
* is unused. However, MSVC doesn't do this.
|
||||
*/
|
||||
#define ACPI_UNUSED_VAR
|
||||
|
||||
#endif /* __ACINTEL_H__ */
|
164
source/include/platform/aclinux.h
Normal file
164
source/include/platform/aclinux.h
Normal file
@ -0,0 +1,164 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: aclinux.h - OS specific defines, etc.
|
||||
* $Revision: 1.30 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACLINUX_H__
|
||||
#define __ACLINUX_H__
|
||||
|
||||
#define ACPI_OS_NAME "Linux"
|
||||
|
||||
#define ACPI_USE_SYSTEM_CLIBRARY
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/config.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/div64.h>
|
||||
#include <asm/acpi.h>
|
||||
|
||||
#define strtoul simple_strtoul
|
||||
|
||||
#define ACPI_MACHINE_WIDTH BITS_PER_LONG
|
||||
|
||||
#else /* !__KERNEL__ */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if defined(__ia64__) || defined(__x86_64__)
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
#define COMPILER_DEPENDENT_INT64 long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long
|
||||
#else
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
#define COMPILER_DEPENDENT_INT64 long long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long long
|
||||
#define ACPI_USE_NATIVE_DIVIDE
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/* Linux uses GCC */
|
||||
|
||||
#include "acgcc.h"
|
||||
|
||||
#endif /* __ACLINUX_H__ */
|
194
source/include/platform/acmsvc.h
Normal file
194
source/include/platform/acmsvc.h
Normal file
@ -0,0 +1,194 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acmsvc.h - VC specific defines, etc.
|
||||
* $Revision: 1.16 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACMSVC_H__
|
||||
#define __ACMSVC_H__
|
||||
|
||||
#define COMPILER_DEPENDENT_INT64 __int64
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned __int64
|
||||
|
||||
/*
|
||||
* Calling conventions:
|
||||
*
|
||||
* ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads)
|
||||
* ACPI_EXTERNAL_XFACE - External ACPI interfaces
|
||||
* ACPI_INTERNAL_XFACE - Internal ACPI interfaces
|
||||
* ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces
|
||||
*/
|
||||
#define ACPI_SYSTEM_XFACE __cdecl
|
||||
#define ACPI_EXTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_XFACE
|
||||
#define ACPI_INTERNAL_VAR_XFACE __cdecl
|
||||
|
||||
#ifndef _LINT
|
||||
/*
|
||||
* Math helper functions
|
||||
*/
|
||||
#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \
|
||||
{ \
|
||||
__asm mov edx, n_hi \
|
||||
__asm mov eax, n_lo \
|
||||
__asm div d32 \
|
||||
__asm mov q32, eax \
|
||||
__asm mov r32, edx \
|
||||
}
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
|
||||
{ \
|
||||
__asm shr n_hi, 1 \
|
||||
__asm rcr n_lo, 1 \
|
||||
}
|
||||
#else
|
||||
|
||||
/* Fake versions to make lint happy */
|
||||
|
||||
#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \
|
||||
{ \
|
||||
q32 = n_hi / d32; \
|
||||
r32 = n_lo / d32; \
|
||||
}
|
||||
|
||||
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
|
||||
{ \
|
||||
n_hi >>= 1; \
|
||||
n_lo >>= 1; \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* warn C4100: unreferenced formal parameter */
|
||||
#pragma warning(disable:4100)
|
||||
|
||||
/* warn C4127: conditional expression is constant */
|
||||
#pragma warning(disable:4127)
|
||||
|
||||
/* warn C4706: assignment within conditional expression */
|
||||
#pragma warning(disable:4706)
|
||||
|
||||
/* This macro is used to tag functions as "printf-like" because
|
||||
* some compilers can catch printf format string problems. MSVC
|
||||
* doesn't, so this is proprocessed away.
|
||||
*/
|
||||
#define ACPI_PRINTF_LIKE_FUNC
|
||||
|
||||
/* Some compilers complain about unused variables. Sometimes we don't want to
|
||||
* use all the variables (most specifically for _THIS_MODULE). This allow us
|
||||
* to to tell the compiler warning in a per-variable manner that a variable
|
||||
* is unused. However, MSVC doesn't do this.
|
||||
*/
|
||||
#define ACPI_UNUSED_VAR
|
||||
|
||||
|
||||
#endif /* __ACMSVC_H__ */
|
194
source/include/platform/acwin.h
Normal file
194
source/include/platform/acwin.h
Normal file
@ -0,0 +1,194 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acwin.h - OS specific defines, etc.
|
||||
* $Revision: 1.15 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACWIN_H__
|
||||
#define __ACWIN_H__
|
||||
|
||||
/*! [Begin] no source code translation (Keep the include) */
|
||||
|
||||
/* Windows uses VC */
|
||||
#ifdef _MSC_VER
|
||||
#include "acmsvc.h"
|
||||
#endif
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
#define ACPI_OS_NAME "Windows"
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 32
|
||||
|
||||
#define strupr _strupr
|
||||
#define isascii __isascii
|
||||
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
/*
|
||||
* Handle platform- and compiler-specific assembly language differences.
|
||||
*
|
||||
* Notes:
|
||||
* 1) Interrupt 3 is used to break into a debugger
|
||||
* 2) Interrupts are turned off during ACPI register setup
|
||||
*/
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
#define ACPI_ASM_MACROS
|
||||
#define BREAKPOINT3 __asm {int 3}
|
||||
#define ACPI_DISABLE_IRQS() __asm {cli}
|
||||
#define ACPI_ENABLE_IRQS() __asm {sti}
|
||||
#define ACPI_FLUSH_CPU_CACHE() __asm {WBINVD}
|
||||
|
||||
|
||||
/*
|
||||
* For Acpi applications, we don't want to try to access the global lock
|
||||
*/
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) if (AcpiGbl_GlobalLockPresent) Acq = TRUE;
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd) Pnd = 0;
|
||||
#else
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) __asm { \
|
||||
__asm mov ecx, GLptr \
|
||||
__asm acq10: \
|
||||
__asm mov eax, [ecx] \
|
||||
__asm mov edx, eax \
|
||||
__asm and edx, 0xFFFFFFFE \
|
||||
__asm bts edx, 1 \
|
||||
__asm adc edx, 0 \
|
||||
__asm lock cmpxchg dword ptr [ecx], edx \
|
||||
__asm jnz acq10 \
|
||||
\
|
||||
__asm cmp dl, 3 \
|
||||
__asm sbb eax, eax \
|
||||
__asm mov Acq, al \
|
||||
}
|
||||
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd) __asm { \
|
||||
__asm mov ecx, GLptr \
|
||||
__asm Rel10: \
|
||||
__asm mov eax, [ecx] \
|
||||
__asm mov edx, eax \
|
||||
__asm and edx, 0xFFFFFFFC \
|
||||
__asm lock cmpxchg dword ptr [ecx], edx \
|
||||
__asm jnz Rel10 \
|
||||
\
|
||||
__asm cmp dl, 3 \
|
||||
__asm and eax, 1 \
|
||||
__asm mov Pnd, al \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __ACWIN_H__ */
|
165
source/include/platform/acwin64.h
Normal file
165
source/include/platform/acwin64.h
Normal file
@ -0,0 +1,165 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acwin.h - OS specific defines, etc.
|
||||
* $Revision: 1.10 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* 1. Copyright Notice
|
||||
*
|
||||
* Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* 2. License
|
||||
*
|
||||
* 2.1. This is your license from Intel Corp. under its intellectual property
|
||||
* rights. You may have additional license terms from the party that provided
|
||||
* you this software, covering your right to use that party's intellectual
|
||||
* property rights.
|
||||
*
|
||||
* 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
|
||||
* copy of the source code appearing in this file ("Covered Code") an
|
||||
* irrevocable, perpetual, worldwide license under Intel's copyrights in the
|
||||
* base code distributed originally by Intel ("Original Intel Code") to copy,
|
||||
* make derivatives, distribute, use and display any portion of the Covered
|
||||
* Code in any form, with the right to sublicense such rights; and
|
||||
*
|
||||
* 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
|
||||
* license (with the right to sublicense), under only those claims of Intel
|
||||
* patents that are infringed by the Original Intel Code, to make, use, sell,
|
||||
* offer to sell, and import the Covered Code and derivative works thereof
|
||||
* solely to the minimum extent necessary to exercise the above copyright
|
||||
* license, and in no event shall the patent license extend to any additions
|
||||
* to or modifications of the Original Intel Code. No other license or right
|
||||
* is granted directly or by implication, estoppel or otherwise;
|
||||
*
|
||||
* The above copyright and patent license is granted only if the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 3. Conditions
|
||||
*
|
||||
* 3.1. Redistribution of Source with Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification with rights to further distribute source must include
|
||||
* the above Copyright Notice, the above License, this list of Conditions,
|
||||
* and the following Disclaimer and Export Compliance provision. In addition,
|
||||
* Licensee must cause all Covered Code to which Licensee contributes to
|
||||
* contain a file documenting the changes Licensee made to create that Covered
|
||||
* Code and the date of any change. Licensee must include in that file the
|
||||
* documentation of any changes made by any predecessor Licensee. Licensee
|
||||
* must include a prominent statement that the modification is derived,
|
||||
* directly or indirectly, from Original Intel Code.
|
||||
*
|
||||
* 3.2. Redistribution of Source with no Rights to Further Distribute Source.
|
||||
* Redistribution of source code of any substantial portion of the Covered
|
||||
* Code or modification without rights to further distribute source must
|
||||
* include the following Disclaimer and Export Compliance provision in the
|
||||
* documentation and/or other materials provided with distribution. In
|
||||
* addition, Licensee may not authorize further sublicense of source of any
|
||||
* portion of the Covered Code, and must include terms to the effect that the
|
||||
* license from Licensee to its licensee is limited to the intellectual
|
||||
* property embodied in the software Licensee provides to its licensee, and
|
||||
* not to intellectual property embodied in modifications its licensee may
|
||||
* make.
|
||||
*
|
||||
* 3.3. Redistribution of Executable. Redistribution in executable form of any
|
||||
* substantial portion of the Covered Code or modification must reproduce the
|
||||
* above Copyright Notice, and the following Disclaimer and Export Compliance
|
||||
* provision in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3.4. Intel retains all right, title, and interest in and to the Original
|
||||
* Intel Code.
|
||||
*
|
||||
* 3.5. Neither the name Intel nor any other trademark owned or controlled by
|
||||
* Intel shall be used in advertising or otherwise to promote the sale, use or
|
||||
* other dealings in products derived from or relating to the Covered Code
|
||||
* without prior written authorization from Intel.
|
||||
*
|
||||
* 4. Disclaimer and Export Compliance
|
||||
*
|
||||
* 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
|
||||
* HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
|
||||
* IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
|
||||
* INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
|
||||
* UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE.
|
||||
*
|
||||
* 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
|
||||
* OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
|
||||
* COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
|
||||
* SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
|
||||
* CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
|
||||
* HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
|
||||
* SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
|
||||
* LIMITED REMEDY.
|
||||
*
|
||||
* 4.3. Licensee shall not export, either directly or indirectly, any of this
|
||||
* software or system incorporating such software without first obtaining any
|
||||
* required license or other approval from the U. S. Department of Commerce or
|
||||
* any other agency or department of the United States Government. In the
|
||||
* event Licensee exports any such software from the United States or
|
||||
* re-exports any such software from a foreign destination, Licensee shall
|
||||
* ensure that the distribution and export/re-export of the software is in
|
||||
* compliance with all laws, regulations, orders, or other restrictions of the
|
||||
* U.S. Export Administration Regulations. Licensee agrees that neither it nor
|
||||
* any of its subsidiaries will export/re-export any technical data, process,
|
||||
* software, or service, directly or indirectly, to any country for which the
|
||||
* United States government or any agency thereof requires an export license,
|
||||
* other governmental approval, or letter of assurance, without first obtaining
|
||||
* such license, approval or letter.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef __ACWIN64_H__
|
||||
#define __ACWIN64_H__
|
||||
|
||||
/*! [Begin] no source code translation (Keep the include) */
|
||||
|
||||
#include "acintel.h"
|
||||
/*! [End] no source code translation !*/
|
||||
|
||||
#define ACPI_OS_NAME "Windows"
|
||||
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
|
||||
#define strupr _strupr
|
||||
#define ACPI_USE_STANDARD_HEADERS
|
||||
|
||||
/*
|
||||
* Handle platform- and compiler-specific assembly language differences.
|
||||
*
|
||||
* Notes:
|
||||
* 1) Interrupt 3 is used to break into a debugger
|
||||
* 2) Interrupts are turned off during ACPI register setup
|
||||
*/
|
||||
|
||||
/*! [Begin] no source code translation */
|
||||
|
||||
#define ACPI_ASM_MACROS
|
||||
#define causeinterrupt(level)
|
||||
#define BREAKPOINT3
|
||||
#define ACPI_DISABLE_IRQS()
|
||||
#define ACPI_ENABLE_IRQS()
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
|
||||
|
||||
/*
|
||||
* For Acpi applications, we don't want to try to access the global lock
|
||||
*/
|
||||
#ifdef ACPI_APPLICATION
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) if (AcpiGbl_GlobalLockPresent) {Acq = 0xFF;} else {Acq = 0;}
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd) if (AcpiGbl_GlobalLockPresent) {Pnd = 0xFF;} else {Pnd = 0;}
|
||||
#else
|
||||
|
||||
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq)
|
||||
|
||||
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pnd)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __ACWIN_H__ */
|
Loading…
Reference in New Issue
Block a user