merge conflicts
This commit is contained in:
parent
67c34082e3
commit
531a0538c6
@ -585,6 +585,7 @@ NamePathTail [.]{NameSeg}
|
||||
"GeneralPurposeIo" { count (0); return (PARSEOP_REGIONSPACE_GPIO); } /* ACPI 5.0 */
|
||||
"GenericSerialBus" { count (0); return (PARSEOP_REGIONSPACE_GSBUS); } /* ACPI 5.0 */
|
||||
"PCC" { count (0); return (PARSEOP_REGIONSPACE_PCC); } /* ACPI 5.0 */
|
||||
"PlatformRtMechanism" { count (0); return (PARSEOP_REGIONSPACE_PRM); }
|
||||
"FFixedHW" { count (0); return (PARSEOP_REGIONSPACE_FFIXEDHW); }
|
||||
|
||||
/* ResourceTypeKeyword: Resource Usage - Resource Descriptors */
|
||||
|
@ -948,7 +948,7 @@ GetModifiedLevel (
|
||||
UINT8 Level,
|
||||
UINT16 MessageId)
|
||||
{
|
||||
UINT16 i;
|
||||
UINT32 i;
|
||||
UINT16 ExceptionCode;
|
||||
|
||||
|
||||
|
10
sys/external/bsd/acpica/dist/compiler/aslload.c
vendored
10
sys/external/bsd/acpica/dist/compiler/aslload.c
vendored
@ -1069,13 +1069,13 @@ LdAnalyzeExternals (
|
||||
* previously declared External
|
||||
*/
|
||||
Node->Flags &= ~ANOBJ_IS_EXTERNAL;
|
||||
Node->Type = (UINT8) ExternalOpType;
|
||||
Node->Type = (UINT8) ActualOpType;
|
||||
|
||||
/* Just retyped a node, probably will need to open a scope */
|
||||
|
||||
if (AcpiNsOpensScope (ExternalOpType))
|
||||
if (AcpiNsOpensScope (ActualOpType))
|
||||
{
|
||||
Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState);
|
||||
Status = AcpiDsScopeStackPush (Node, ActualOpType, WalkState);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (Status);
|
||||
@ -1096,11 +1096,11 @@ LdAnalyzeExternals (
|
||||
}
|
||||
else if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
|
||||
(Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
|
||||
(ExternalOpType == ACPI_TYPE_ANY))
|
||||
(ActualOpType == ACPI_TYPE_ANY))
|
||||
{
|
||||
/* Allow update of externals of unknown type. */
|
||||
|
||||
Node->Type = (UINT8) ExternalOpType;
|
||||
Node->Type = (UINT8) ActualExternalOpType;
|
||||
Status = AE_OK;
|
||||
}
|
||||
|
||||
|
25
sys/external/bsd/acpica/dist/compiler/aslxref.c
vendored
25
sys/external/bsd/acpica/dist/compiler/aslxref.c
vendored
@ -713,9 +713,24 @@ XfNamespaceLocateBegin (
|
||||
Node->Flags |= ANOBJ_IS_REFERENCED;
|
||||
}
|
||||
|
||||
/* Attempt to optimize the NamePath */
|
||||
|
||||
OptOptimizeNamePath (Op, OpInfo->Flags, WalkState, Path, Node);
|
||||
/*
|
||||
* Attempt to optimize the NamePath
|
||||
*
|
||||
* One special case: CondRefOf operator - not all AML interpreter
|
||||
* implementations expect optimized namepaths as a parameter to this
|
||||
* operator. They require relative name paths with prefix operators or
|
||||
* namepaths starting with the root scope.
|
||||
*
|
||||
* Other AML interpreter implementations do not perform the namespace
|
||||
* search that starts at the current scope and recursively searching the
|
||||
* parent scope until the root scope. The lack of search is only known to
|
||||
* occur for the namestring parameter for the CondRefOf operator.
|
||||
*/
|
||||
if ((Op->Asl.Parent) &&
|
||||
(Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_CONDREFOF))
|
||||
{
|
||||
OptOptimizeNamePath (Op, OpInfo->Flags, WalkState, Path, Node);
|
||||
}
|
||||
|
||||
/*
|
||||
* 1) Dereference an alias (A name reference that is an alias)
|
||||
@ -871,12 +886,14 @@ XfNamespaceLocateBegin (
|
||||
* invocation of the method, it is simply a reference to the method.
|
||||
*
|
||||
* September 2016: Removed DeRefOf from this list
|
||||
* July 2020: Added Alias to this list
|
||||
*/
|
||||
if ((Op->Asl.Parent) &&
|
||||
((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_REFOF) ||
|
||||
(Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_PACKAGE) ||
|
||||
(Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE)||
|
||||
(Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE)))
|
||||
(Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE) ||
|
||||
(Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_ALIAS)))
|
||||
{
|
||||
return_ACPI_STATUS (AE_OK);
|
||||
}
|
||||
|
@ -96,6 +96,8 @@ static ACPI_ADR_SPACE_TYPE AcpiGbl_SpaceIdList[] =
|
||||
ACPI_ADR_SPACE_IPMI,
|
||||
ACPI_ADR_SPACE_GPIO,
|
||||
ACPI_ADR_SPACE_GSBUS,
|
||||
ACPI_ADR_SPACE_PLATFORM_COMM,
|
||||
ACPI_ADR_SPACE_PLATFORM_RT,
|
||||
ACPI_ADR_SPACE_DATA_TABLE,
|
||||
ACPI_ADR_SPACE_FIXED_HARDWARE
|
||||
};
|
||||
|
@ -1,178 +0,0 @@
|
||||
#
|
||||
# acpinames - Load ACPI table and dump namespace. This is a subset
|
||||
# of the AcpiExec functionality, it is intended to demonstrate
|
||||
# the configurability of ACPICA.
|
||||
#
|
||||
|
||||
#
|
||||
# Note: This makefile is intended to be used from within the native
|
||||
# ACPICA directory structure, from under generate/unix. It specifically
|
||||
# places all object files in a generate/unix subdirectory, not within
|
||||
# the various ACPICA source directories. This prevents collisions
|
||||
# between different compilations of the same source file with different
|
||||
# compile options, and prevents pollution of the source code.
|
||||
#
|
||||
include ../Makefile.config
|
||||
FINAL_PROG = ../$(BINDIR)/acpinames
|
||||
PROG = $(OBJDIR)/acpinames
|
||||
|
||||
#
|
||||
# Search paths for source files
|
||||
#
|
||||
vpath %.c \
|
||||
$(ACPINAMES)\
|
||||
$(ACPICA_DISPATCHER)\
|
||||
$(ACPICA_EVENTS)\
|
||||
$(ACPICA_EXECUTER)\
|
||||
$(ACPICA_HARDWARE)\
|
||||
$(ACPICA_NAMESPACE)\
|
||||
$(ACPICA_PARSER)\
|
||||
$(ACPICA_TABLES)\
|
||||
$(ACPICA_UTILITIES)\
|
||||
$(ACPICA_COMMON)\
|
||||
$(ACPICA_OSL)
|
||||
|
||||
HEADERS = \
|
||||
$(wildcard $(ACPINAMES)/*.h)
|
||||
|
||||
OBJECTS = \
|
||||
$(OBJDIR)/acfileio.o\
|
||||
$(OBJDIR)/anmain.o\
|
||||
$(OBJDIR)/anstubs.o\
|
||||
$(OBJDIR)/antables.o\
|
||||
$(OBJDIR)/cmfsize.o\
|
||||
$(OBJDIR)/dscontrol.o\
|
||||
$(OBJDIR)/dsdebug.o\
|
||||
$(OBJDIR)/dsfield.o\
|
||||
$(OBJDIR)/dsinit.o\
|
||||
$(OBJDIR)/dsmethod.o\
|
||||
$(OBJDIR)/dsmthdat.o\
|
||||
$(OBJDIR)/dsobject.o\
|
||||
$(OBJDIR)/dsopcode.o\
|
||||
$(OBJDIR)/dspkginit.o\
|
||||
$(OBJDIR)/dsutils.o\
|
||||
$(OBJDIR)/dswexec.o\
|
||||
$(OBJDIR)/dswload.o\
|
||||
$(OBJDIR)/dswload2.o\
|
||||
$(OBJDIR)/dswscope.o\
|
||||
$(OBJDIR)/dswstate.o\
|
||||
$(OBJDIR)/evhandler.o\
|
||||
$(OBJDIR)/evmisc.o\
|
||||
$(OBJDIR)/evregion.o\
|
||||
$(OBJDIR)/evrgnini.o\
|
||||
$(OBJDIR)/evxfregn.o\
|
||||
$(OBJDIR)/exconcat.o\
|
||||
$(OBJDIR)/exconfig.o\
|
||||
$(OBJDIR)/exconvrt.o\
|
||||
$(OBJDIR)/excreate.o\
|
||||
$(OBJDIR)/exdump.o\
|
||||
$(OBJDIR)/exfield.o\
|
||||
$(OBJDIR)/exfldio.o\
|
||||
$(OBJDIR)/exmisc.o\
|
||||
$(OBJDIR)/exmutex.o\
|
||||
$(OBJDIR)/exnames.o\
|
||||
$(OBJDIR)/exoparg1.o\
|
||||
$(OBJDIR)/exoparg2.o\
|
||||
$(OBJDIR)/exoparg3.o\
|
||||
$(OBJDIR)/exoparg6.o\
|
||||
$(OBJDIR)/exprep.o\
|
||||
$(OBJDIR)/exregion.o\
|
||||
$(OBJDIR)/exresnte.o\
|
||||
$(OBJDIR)/exresolv.o\
|
||||
$(OBJDIR)/exresop.o\
|
||||
$(OBJDIR)/exserial.o\
|
||||
$(OBJDIR)/exstore.o\
|
||||
$(OBJDIR)/exstoren.o\
|
||||
$(OBJDIR)/exstorob.o\
|
||||
$(OBJDIR)/exsystem.o\
|
||||
$(OBJDIR)/exutils.o\
|
||||
$(OBJDIR)/getopt.o\
|
||||
$(OBJDIR)/hwpci.o\
|
||||
$(OBJDIR)/hwvalid.o\
|
||||
$(OBJDIR)/nsaccess.o\
|
||||
$(OBJDIR)/nsalloc.o\
|
||||
$(OBJDIR)/nsarguments.o\
|
||||
$(OBJDIR)/nsconvert.o\
|
||||
$(OBJDIR)/nsdump.o\
|
||||
$(OBJDIR)/nseval.o\
|
||||
$(OBJDIR)/nsinit.o\
|
||||
$(OBJDIR)/nsload.o\
|
||||
$(OBJDIR)/nsnames.o\
|
||||
$(OBJDIR)/nsobject.o\
|
||||
$(OBJDIR)/nsparse.o\
|
||||
$(OBJDIR)/nspredef.o\
|
||||
$(OBJDIR)/nsprepkg.o\
|
||||
$(OBJDIR)/nsrepair.o\
|
||||
$(OBJDIR)/nsrepair2.o\
|
||||
$(OBJDIR)/nssearch.o\
|
||||
$(OBJDIR)/nsutils.o\
|
||||
$(OBJDIR)/nswalk.o\
|
||||
$(OBJDIR)/nsxfeval.o\
|
||||
$(OBJDIR)/nsxfname.o\
|
||||
$(OBJDIR)/nsxfobj.o\
|
||||
$(OBJDIR)/osunixxf.o\
|
||||
$(OBJDIR)/psargs.o\
|
||||
$(OBJDIR)/psloop.o\
|
||||
$(OBJDIR)/psobject.o\
|
||||
$(OBJDIR)/psopcode.o\
|
||||
$(OBJDIR)/psopinfo.o\
|
||||
$(OBJDIR)/psparse.o\
|
||||
$(OBJDIR)/psscope.o\
|
||||
$(OBJDIR)/pstree.o\
|
||||
$(OBJDIR)/psutils.o\
|
||||
$(OBJDIR)/pswalk.o\
|
||||
$(OBJDIR)/psxface.o\
|
||||
$(OBJDIR)/tbdata.o\
|
||||
$(OBJDIR)/tbfadt.o\
|
||||
$(OBJDIR)/tbfind.o\
|
||||
$(OBJDIR)/tbinstal.o\
|
||||
$(OBJDIR)/tbprint.o\
|
||||
$(OBJDIR)/tbutils.o\
|
||||
$(OBJDIR)/tbxface.o\
|
||||
$(OBJDIR)/tbxfload.o\
|
||||
$(OBJDIR)/tbxfroot.o\
|
||||
$(OBJDIR)/utaddress.o\
|
||||
$(OBJDIR)/utalloc.o\
|
||||
$(OBJDIR)/utascii.o\
|
||||
$(OBJDIR)/utbuffer.o\
|
||||
$(OBJDIR)/utcache.o\
|
||||
$(OBJDIR)/utcopy.o\
|
||||
$(OBJDIR)/utdebug.o\
|
||||
$(OBJDIR)/utdecode.o\
|
||||
$(OBJDIR)/utdelete.o\
|
||||
$(OBJDIR)/uterror.o\
|
||||
$(OBJDIR)/uteval.o\
|
||||
$(OBJDIR)/utexcep.o\
|
||||
$(OBJDIR)/utglobal.o\
|
||||
$(OBJDIR)/uthex.o\
|
||||
$(OBJDIR)/utids.o\
|
||||
$(OBJDIR)/utinit.o\
|
||||
$(OBJDIR)/utlock.o\
|
||||
$(OBJDIR)/utmath.o\
|
||||
$(OBJDIR)/utmisc.o\
|
||||
$(OBJDIR)/utmutex.o\
|
||||
$(OBJDIR)/utnonansi.o\
|
||||
$(OBJDIR)/utobject.o\
|
||||
$(OBJDIR)/utosi.o\
|
||||
$(OBJDIR)/utownerid.o\
|
||||
$(OBJDIR)/utpredef.o\
|
||||
$(OBJDIR)/utresrc.o\
|
||||
$(OBJDIR)/utstate.o\
|
||||
$(OBJDIR)/utstring.o\
|
||||
$(OBJDIR)/utstrsuppt.o\
|
||||
$(OBJDIR)/utstrtoul64.o\
|
||||
$(OBJDIR)/utxface.o\
|
||||
$(OBJDIR)/utxferror.o\
|
||||
$(OBJDIR)/utxfinit.o
|
||||
|
||||
#
|
||||
# Flags specific to acpinames utility
|
||||
#
|
||||
CFLAGS += \
|
||||
-DACPI_NAMES_APP\
|
||||
-I$(ACPINAMES)
|
||||
|
||||
#
|
||||
# Common Rules
|
||||
#
|
||||
include ../Makefile.rules
|
@ -46,7 +46,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20200430
|
||||
#define ACPI_CA_VERSION 0x20200717
|
||||
|
||||
#include "acconfig.h"
|
||||
#include "actypes.h"
|
||||
|
@ -865,8 +865,9 @@ typedef UINT8 ACPI_ADR_SPACE_TYPE;
|
||||
#define ACPI_ADR_SPACE_GPIO (ACPI_ADR_SPACE_TYPE) 8
|
||||
#define ACPI_ADR_SPACE_GSBUS (ACPI_ADR_SPACE_TYPE) 9
|
||||
#define ACPI_ADR_SPACE_PLATFORM_COMM (ACPI_ADR_SPACE_TYPE) 10
|
||||
#define ACPI_ADR_SPACE_PLATFORM_RT (ACPI_ADR_SPACE_TYPE) 11
|
||||
|
||||
#define ACPI_NUM_PREDEFINED_REGIONS 11
|
||||
#define ACPI_NUM_PREDEFINED_REGIONS 12
|
||||
|
||||
/*
|
||||
* Special Address Spaces
|
||||
@ -1275,7 +1276,7 @@ typedef struct acpi_pnp_device_id_list
|
||||
{
|
||||
UINT32 Count; /* Number of IDs in Ids array */
|
||||
UINT32 ListSize; /* Size of list, including ID strings */
|
||||
ACPI_PNP_DEVICE_ID Ids[1]; /* ID array */
|
||||
ACPI_PNP_DEVICE_ID Ids[]; /* ID array */
|
||||
|
||||
} ACPI_PNP_DEVICE_ID_LIST;
|
||||
|
||||
|
@ -84,7 +84,6 @@ static ACPI_STATUS
|
||||
OslReadTableFromFile (
|
||||
char *Filename,
|
||||
ACPI_SIZE FileOffset,
|
||||
char *Signature,
|
||||
ACPI_TABLE_HEADER **Table);
|
||||
|
||||
static ACPI_STATUS
|
||||
@ -1382,8 +1381,6 @@ OslTableNameFromFile (
|
||||
*
|
||||
* PARAMETERS: Filename - File that contains the desired table
|
||||
* FileOffset - Offset of the table in file
|
||||
* Signature - Optional ACPI Signature for desired table.
|
||||
* A null terminated 4-character string.
|
||||
* Table - Where a pointer to the table is returned
|
||||
*
|
||||
* RETURN: Status; Table buffer is returned if AE_OK.
|
||||
@ -1396,7 +1393,6 @@ static ACPI_STATUS
|
||||
OslReadTableFromFile (
|
||||
char *Filename,
|
||||
ACPI_SIZE FileOffset,
|
||||
char *Signature,
|
||||
ACPI_TABLE_HEADER **Table)
|
||||
{
|
||||
FILE *TableFile;
|
||||
@ -1428,6 +1424,8 @@ OslReadTableFromFile (
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
|
||||
/* If signature is specified, it must match the table */
|
||||
|
||||
if (Signature)
|
||||
@ -1449,6 +1447,7 @@ OslReadTableFromFile (
|
||||
goto Exit;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
TableLength = ApGetTableLength (&Header);
|
||||
if (TableLength == 0)
|
||||
@ -1582,7 +1581,7 @@ OslGetCustomizedTable (
|
||||
/* There is no physical address saved for customized tables, use zero */
|
||||
|
||||
*Address = 0;
|
||||
Status = OslReadTableFromFile (TableFilename, 0, NULL, Table);
|
||||
Status = OslReadTableFromFile (TableFilename, 0, Table);
|
||||
|
||||
return (Status);
|
||||
}
|
||||
|
@ -1,66 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: acpinames.h - Common include for AcpiNames utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2020, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#ifndef _ACPINAMES_H
|
||||
#define _ACPINAMES_H
|
||||
|
||||
#include "acpi.h"
|
||||
#include "accommon.h"
|
||||
#include "acapps.h"
|
||||
#include "acutils.h"
|
||||
#include "acnamesp.h"
|
||||
#include "actables.h"
|
||||
#include "acinterp.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#define ACPI_MAX_INIT_TABLES (32)
|
||||
|
||||
extern BOOLEAN AcpiGbl_NsLoadOnly;
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AnBuildLocalTables (
|
||||
ACPI_NEW_TABLE_DESC *TableList);
|
||||
|
||||
#endif
|
@ -1,308 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: anmain - Main routine for the AcpiNames utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2020, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include "acpinames.h"
|
||||
#include "actables.h"
|
||||
#include "errno.h"
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("anmain")
|
||||
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static int
|
||||
AnDumpEntireNamespace (
|
||||
ACPI_NEW_TABLE_DESC *ListHead);
|
||||
|
||||
|
||||
/*
|
||||
* Main routine for the ACPI user-space namespace utility.
|
||||
*
|
||||
* Portability note: The utility depends upon the host for command-line
|
||||
* wildcard support - it is not implemented locally. For example:
|
||||
*
|
||||
* Linux/Unix systems: Shell expands wildcards automatically.
|
||||
*
|
||||
* Windows: The setargv.obj module must be linked in to automatically
|
||||
* expand wildcards.
|
||||
*/
|
||||
BOOLEAN AcpiGbl_NsLoadOnly = FALSE;
|
||||
|
||||
|
||||
#define AN_UTILITY_NAME "ACPI Namespace Dump Utility"
|
||||
#define AN_SUPPORTED_OPTIONS "?hlv^x:"
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: usage
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Print a usage message
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
static void
|
||||
usage (
|
||||
void)
|
||||
{
|
||||
|
||||
ACPI_USAGE_HEADER ("AcpiNames [options] AMLfile");
|
||||
ACPI_OPTION ("-?", "Display this message");
|
||||
ACPI_OPTION ("-l", "Load namespace only, no display");
|
||||
ACPI_OPTION ("-v", "Display version information");
|
||||
ACPI_OPTION ("-vd", "Display build date and time");
|
||||
ACPI_OPTION ("-x <DebugLevel>", "Debug output level");
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: main
|
||||
*
|
||||
* PARAMETERS: argc, argv
|
||||
*
|
||||
* RETURN: Status (pass/fail)
|
||||
*
|
||||
* DESCRIPTION: Main routine for NsDump utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
int ACPI_SYSTEM_XFACE
|
||||
main (
|
||||
int argc,
|
||||
char **argv)
|
||||
{
|
||||
ACPI_NEW_TABLE_DESC *ListHead = NULL;
|
||||
ACPI_STATUS Status;
|
||||
int j;
|
||||
|
||||
|
||||
ACPI_DEBUG_INITIALIZE (); /* For debug version only */
|
||||
|
||||
/* Init debug globals and ACPICA */
|
||||
|
||||
AcpiDbgLevel = ACPI_NORMAL_DEFAULT | ACPI_LV_TABLES;
|
||||
AcpiDbgLayer = 0xFFFFFFFF;
|
||||
|
||||
/* Set flags so that the interpreter is not used */
|
||||
|
||||
Status = AcpiInitializeSubsystem ();
|
||||
ACPI_CHECK_OK (AcpiInitializeSubsystem, Status);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (-1);
|
||||
}
|
||||
|
||||
printf (ACPI_COMMON_SIGNON (AN_UTILITY_NAME));
|
||||
if (argc < 2)
|
||||
{
|
||||
usage ();
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Get the command line options */
|
||||
|
||||
while ((j = AcpiGetopt (argc, argv, AN_SUPPORTED_OPTIONS)) != ACPI_OPT_END) switch(j)
|
||||
{
|
||||
case 'l':
|
||||
|
||||
AcpiGbl_NsLoadOnly = TRUE;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
|
||||
switch (AcpiGbl_Optarg[0])
|
||||
{
|
||||
case '^': /* -v: (Version): signon already emitted, just exit */
|
||||
|
||||
exit (0);
|
||||
|
||||
case 'd':
|
||||
|
||||
printf (ACPI_COMMON_BUILD_TIME);
|
||||
return (0);
|
||||
|
||||
default:
|
||||
|
||||
printf ("Unknown option: -v%s\n", AcpiGbl_Optarg);
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
|
||||
AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 0);
|
||||
printf ("Debug Level: 0x%8.8X\n", AcpiDbgLevel);
|
||||
break;
|
||||
|
||||
case '?':
|
||||
case 'h':
|
||||
default:
|
||||
|
||||
usage();
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Get each of the ACPI table files on the command line */
|
||||
|
||||
while (argv[AcpiGbl_Optind])
|
||||
{
|
||||
/* Get all ACPI AML tables in this file */
|
||||
|
||||
Status = AcGetAllTablesFromFile (argv[AcpiGbl_Optind],
|
||||
ACPI_GET_ALL_TABLES, &ListHead);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (-1);
|
||||
}
|
||||
|
||||
AcpiGbl_Optind++;
|
||||
}
|
||||
|
||||
printf ("\n");
|
||||
|
||||
/*
|
||||
* The next argument is the filename for the DSDT or SSDT.
|
||||
* Open the file, build namespace and dump it.
|
||||
*/
|
||||
return (AnDumpEntireNamespace (ListHead));
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AnDumpEntireNamespace
|
||||
*
|
||||
* PARAMETERS: AmlFilename - Filename for DSDT or SSDT AML table
|
||||
*
|
||||
* RETURN: Status (pass/fail)
|
||||
*
|
||||
* DESCRIPTION: Build an ACPI namespace for the input AML table, and dump the
|
||||
* formatted namespace contents.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
static int
|
||||
AnDumpEntireNamespace (
|
||||
ACPI_NEW_TABLE_DESC *ListHead)
|
||||
{
|
||||
ACPI_STATUS Status;
|
||||
ACPI_HANDLE Handle;
|
||||
|
||||
|
||||
/*
|
||||
* Build a local XSDT with all tables. Normally, here is where the
|
||||
* RSDP search is performed to find the ACPI tables
|
||||
*/
|
||||
Status = AnBuildLocalTables (ListHead);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/* Initialize table manager, get XSDT */
|
||||
|
||||
Status = AcpiInitializeTables (NULL, ACPI_MAX_INIT_TABLES, TRUE);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** Could not initialize ACPI table manager, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/* Build the namespace from the tables */
|
||||
|
||||
Status = AcpiLoadTables ();
|
||||
if (Status == AE_CTRL_TERMINATE)
|
||||
{
|
||||
/* At least one table load failed -- terminate with error */
|
||||
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
printf ("**** While creating namespace, %s\n",
|
||||
AcpiFormatException (Status));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (AcpiGbl_NsLoadOnly)
|
||||
{
|
||||
printf ("**** Namespace successfully loaded\n");
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* NOTE:
|
||||
* We don't need to do any further ACPICA initialization, since we don't
|
||||
* have any hardware, nor is the interpreter configured.
|
||||
*
|
||||
* Namely, we don't need these calls:
|
||||
* AcpiEnableSubsystem
|
||||
* AcpiInitializeObjects
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Perform a namespace walk to dump the contents
|
||||
*/
|
||||
AcpiOsPrintf ("\nACPI Namespace:\n");
|
||||
|
||||
AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_SUMMARY,
|
||||
ACPI_UINT32_MAX, ACPI_OWNER_ID_MAX, AcpiGbl_RootNode);
|
||||
|
||||
|
||||
/* Example: get a handle to the _GPE scope */
|
||||
|
||||
Status = AcpiGetHandle (NULL, "\\_GPE", &Handle);
|
||||
ACPI_CHECK_OK (AcpiGetHandle, Status);
|
||||
|
||||
AcDeleteTableList (ListHead);
|
||||
return (0);
|
||||
}
|
@ -1,400 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: anstubs - Stub routines for the AcpiNames utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2020, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include "acpinames.h"
|
||||
|
||||
#include <acutils.h>
|
||||
#include <acevents.h>
|
||||
#include <acdispat.h>
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("anstubs")
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* DESCRIPTION: Stubs used to facilitate linkage of the NsDump utility.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/* Utilities */
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIobjectToEobject (
|
||||
ACPI_OPERAND_OBJECT *Obj,
|
||||
ACPI_BUFFER *RetBuffer)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyEobjectToIobject (
|
||||
ACPI_OBJECT *Obj,
|
||||
ACPI_OPERAND_OBJECT **InternalObj)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtCopyIobjectToIobject (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT **DestDesc,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Hardware */
|
||||
|
||||
UINT32
|
||||
AcpiHwGetMode (
|
||||
void)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Event manager */
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInstallRegionHandlers (
|
||||
void)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitializeOpRegions (
|
||||
void)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitializeRegion (
|
||||
ACPI_OPERAND_OBJECT *RegionObj)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
#endif
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInstallXruptHandlers (
|
||||
void)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiEvInitializeEvents (
|
||||
void)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/* AML Interpreter */
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExReadDataFromField (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **RetBufferDesc)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExWriteDataToField (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_OPERAND_OBJECT **ResultDesc)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiExStoreObjectToNode (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
UINT8 ImplicitConversion)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
/* Namespace manager */
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiNsEvaluate (
|
||||
ACPI_EVALUATE_INFO *Info)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
AcpiExDoDebugObject (
|
||||
ACPI_OPERAND_OBJECT *SourceDesc,
|
||||
UINT32 Level,
|
||||
UINT32 Index)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiExStartTraceMethod (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiExStopTraceMethod (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiExStartTraceOpcode (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiExStopTraceOpcode (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
AcpiExTracePoint (
|
||||
ACPI_TRACE_EVENT_TYPE Type,
|
||||
BOOLEAN Begin,
|
||||
UINT8 *Aml,
|
||||
char *Pathname)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* Dispatcher */
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsAutoSerializeMethod (
|
||||
ACPI_NAMESPACE_NODE *Node,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsInitializeRegion (
|
||||
ACPI_HANDLE ObjHandle)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsCallControlMethod (
|
||||
ACPI_THREAD_STATE *Thread,
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT *Op)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsRestartControlMethod (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
void
|
||||
AcpiDsTerminateControlMethod (
|
||||
ACPI_OPERAND_OBJECT *MethodDesc,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsMethodError (
|
||||
ACPI_STATUS Status,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsBeginMethodExecution (
|
||||
ACPI_NAMESPACE_NODE *MethodNode,
|
||||
ACPI_OPERAND_OBJECT *ObjDesc,
|
||||
ACPI_WALK_STATE *WalkState)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetPredicateValue (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_OPERAND_OBJECT *ResultObj)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
#endif
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetBufferFieldArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetBankFieldArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetRegionArguments (
|
||||
ACPI_OPERAND_OBJECT *RgnDesc)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetBufferArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsGetPackageArguments (
|
||||
ACPI_OPERAND_OBJECT *ObjDesc)
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
#ifdef ACPI_OBSOLETE_FUNCTIONS
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecBeginOp (
|
||||
ACPI_WALK_STATE *WalkState,
|
||||
ACPI_PARSE_OBJECT **OutOp)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiDsExecEndOp (
|
||||
ACPI_WALK_STATE *State)
|
||||
{
|
||||
ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
|
||||
"Stubbed function"));
|
||||
|
||||
return (AE_NOT_IMPLEMENTED);
|
||||
}
|
||||
#endif
|
@ -1,356 +0,0 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: antables - ACPI table setup/install for AcpiNames utility
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 - 2020, Intel Corp.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification.
|
||||
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
|
||||
* substantially similar to the "NO WARRANTY" disclaimer below
|
||||
* ("Disclaimer") and any redistribution must be conditioned upon
|
||||
* including a substantially similar Disclaimer requirement for further
|
||||
* binary redistribution.
|
||||
* 3. Neither the names of the above-listed copyright holders nor the names
|
||||
* of any contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* Alternatively, this software may be distributed under the terms of the
|
||||
* GNU General Public License ("GPL") version 2 as published by the Free
|
||||
* Software Foundation.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGES.
|
||||
*/
|
||||
|
||||
#include "acpinames.h"
|
||||
|
||||
#define _COMPONENT ACPI_TOOLS
|
||||
ACPI_MODULE_NAME ("antables")
|
||||
|
||||
/* Local prototypes */
|
||||
|
||||
static void
|
||||
AnInitializeTableHeader (
|
||||
ACPI_TABLE_HEADER *Header,
|
||||
char *Signature,
|
||||
UINT32 Length);
|
||||
|
||||
|
||||
/* Non-AML tables that are constructed locally and installed */
|
||||
|
||||
static ACPI_TABLE_RSDP LocalRSDP;
|
||||
static ACPI_TABLE_FACS LocalFACS;
|
||||
|
||||
/*
|
||||
* We need a local FADT so that the hardware subcomponent will function,
|
||||
* even though the underlying OSD HW access functions don't do anything.
|
||||
*/
|
||||
static ACPI_TABLE_FADT LocalFADT;
|
||||
|
||||
/*
|
||||
* Use XSDT so that both 32- and 64-bit versions of this utility will
|
||||
* function automatically.
|
||||
*/
|
||||
static ACPI_TABLE_XSDT *LocalXSDT;
|
||||
|
||||
#define BASE_XSDT_TABLES 1
|
||||
#define BASE_XSDT_SIZE (sizeof (ACPI_TABLE_XSDT) + \
|
||||
((BASE_XSDT_TABLES -1) * sizeof (UINT64)))
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AnInitializeTableHeader
|
||||
*
|
||||
* PARAMETERS: Header - A valid standard ACPI table header
|
||||
* Signature - Signature to insert
|
||||
* Length - Length of the table
|
||||
*
|
||||
* RETURN: None. Header is modified.
|
||||
*
|
||||
* DESCRIPTION: Initialize the table header for a local ACPI table.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
static void
|
||||
AnInitializeTableHeader (
|
||||
ACPI_TABLE_HEADER *Header,
|
||||
char *Signature,
|
||||
UINT32 Length)
|
||||
{
|
||||
|
||||
ACPI_COPY_NAMESEG (Header->Signature, Signature);
|
||||
Header->Length = Length;
|
||||
|
||||
Header->OemRevision = 0x1001;
|
||||
memcpy (Header->OemId, "Intel ", ACPI_OEM_ID_SIZE);
|
||||
memcpy (Header->OemTableId, "AcpiExec", ACPI_OEM_TABLE_ID_SIZE);
|
||||
ACPI_COPY_NAMESEG (Header->AslCompilerId, "INTL");
|
||||
Header->AslCompilerRevision = ACPI_CA_VERSION;
|
||||
|
||||
/* Set the checksum, must set to zero first */
|
||||
|
||||
Header->Checksum = 0;
|
||||
Header->Checksum = (UINT8) -AcpiTbChecksum (
|
||||
(void *) Header, Header->Length);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AnBuildLocalTables
|
||||
*
|
||||
* PARAMETERS: TableCount - Number of tables on the command line
|
||||
* TableList - List of actual tables from files
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Build a complete ACPI table chain, with a local RSDP, XSDT,
|
||||
* FADT, FACS, and the input DSDT/SSDT.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_STATUS
|
||||
AnBuildLocalTables (
|
||||
ACPI_NEW_TABLE_DESC *TableList)
|
||||
{
|
||||
UINT32 TableCount = 0;
|
||||
ACPI_PHYSICAL_ADDRESS DsdtAddress = 0;
|
||||
UINT32 XsdtSize;
|
||||
ACPI_NEW_TABLE_DESC *NextTable;
|
||||
UINT32 NextIndex;
|
||||
ACPI_TABLE_FADT *ExternalFadt = NULL;
|
||||
|
||||
|
||||
/*
|
||||
* Update the table count. For the DSDT, it is not put into the XSDT.
|
||||
* For the FADT, this table is already accounted for since we usually
|
||||
* install a local FADT.
|
||||
*/
|
||||
NextTable = TableList;
|
||||
while (NextTable)
|
||||
{
|
||||
if (!ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_DSDT) &&
|
||||
!ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_FADT))
|
||||
{
|
||||
TableCount++;
|
||||
}
|
||||
|
||||
NextTable = NextTable->Next;
|
||||
}
|
||||
|
||||
XsdtSize = BASE_XSDT_SIZE + (TableCount * sizeof (UINT64));
|
||||
|
||||
/* Build an XSDT */
|
||||
|
||||
LocalXSDT = AcpiOsAllocate (XsdtSize);
|
||||
if (!LocalXSDT)
|
||||
{
|
||||
return (AE_NO_MEMORY);
|
||||
}
|
||||
|
||||
memset (LocalXSDT, 0, XsdtSize);
|
||||
LocalXSDT->TableOffsetEntry[0] = ACPI_PTR_TO_PHYSADDR (&LocalFADT);
|
||||
|
||||
/*
|
||||
* Install the user tables. The DSDT must be installed in the FADT.
|
||||
* All other tables are installed directly into the XSDT.
|
||||
*
|
||||
* Note: The tables are loaded in reverse order from the incoming
|
||||
* input, which makes it match the command line order.
|
||||
*/
|
||||
NextIndex = BASE_XSDT_TABLES;
|
||||
NextTable = TableList;
|
||||
while (NextTable)
|
||||
{
|
||||
/*
|
||||
* Incoming DSDT or FADT are special cases. All other tables are
|
||||
* just immediately installed into the XSDT.
|
||||
*/
|
||||
if (ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_DSDT))
|
||||
{
|
||||
if (DsdtAddress)
|
||||
{
|
||||
printf ("Already found a DSDT, only one allowed\n");
|
||||
return (AE_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
/* The incoming user table is a DSDT */
|
||||
|
||||
DsdtAddress = ACPI_PTR_TO_PHYSADDR (NextTable->Table);
|
||||
}
|
||||
else if (ACPI_COMPARE_NAMESEG (NextTable->Table->Signature, ACPI_SIG_FADT))
|
||||
{
|
||||
ExternalFadt =
|
||||
ACPI_CAST_PTR (ACPI_TABLE_FADT, NextTable->Table);
|
||||
LocalXSDT->TableOffsetEntry[0] =
|
||||
ACPI_PTR_TO_PHYSADDR (NextTable->Table);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Install the table in the XSDT */
|
||||
|
||||
LocalXSDT->TableOffsetEntry[TableCount - NextIndex + 1] =
|
||||
ACPI_PTR_TO_PHYSADDR (NextTable->Table);
|
||||
NextIndex++;
|
||||
}
|
||||
|
||||
NextTable = NextTable->Next;
|
||||
}
|
||||
|
||||
/* Build an RSDP. Contains a valid XSDT only, no RSDT */
|
||||
|
||||
memset (&LocalRSDP, 0, sizeof (ACPI_TABLE_RSDP));
|
||||
ACPI_MAKE_RSDP_SIG (LocalRSDP.Signature);
|
||||
memcpy (LocalRSDP.OemId, "Intel", 6);
|
||||
|
||||
LocalRSDP.Revision = 2;
|
||||
LocalRSDP.XsdtPhysicalAddress = ACPI_PTR_TO_PHYSADDR (LocalXSDT);
|
||||
LocalRSDP.Length = sizeof (ACPI_TABLE_XSDT);
|
||||
|
||||
/* Set checksums for both XSDT and RSDP */
|
||||
|
||||
AnInitializeTableHeader ((void *) LocalXSDT, ACPI_SIG_XSDT, XsdtSize);
|
||||
|
||||
LocalRSDP.Checksum = 0;
|
||||
LocalRSDP.Checksum = (UINT8) -AcpiTbChecksum (
|
||||
(void *) &LocalRSDP, ACPI_RSDP_CHECKSUM_LENGTH);
|
||||
|
||||
if (!DsdtAddress)
|
||||
{
|
||||
return (AE_SUPPORT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Build an FADT. There are two options for the FADT:
|
||||
* 1) Incoming external FADT specified on the command line
|
||||
* 2) A fully featured local FADT
|
||||
*/
|
||||
memset (&LocalFADT, 0, sizeof (ACPI_TABLE_FADT));
|
||||
|
||||
if (ExternalFadt)
|
||||
{
|
||||
/*
|
||||
* Use the external FADT, but we must update the DSDT/FACS
|
||||
* addresses as well as the checksum
|
||||
*/
|
||||
ExternalFadt->Dsdt = (UINT32) DsdtAddress;
|
||||
ExternalFadt->Facs = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
|
||||
|
||||
/*
|
||||
* If there room in the FADT for the XDsdt and XFacs 64-bit
|
||||
* pointers, use them.
|
||||
*/
|
||||
if (ExternalFadt->Header.Length > ACPI_PTR_DIFF (
|
||||
&ExternalFadt->XDsdt, ExternalFadt))
|
||||
{
|
||||
ExternalFadt->Dsdt = 0;
|
||||
ExternalFadt->Facs = 0;
|
||||
ExternalFadt->XDsdt = DsdtAddress;
|
||||
ExternalFadt->XFacs = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
|
||||
}
|
||||
|
||||
/* Complete the external FADT with the checksum */
|
||||
|
||||
ExternalFadt->Header.Checksum = 0;
|
||||
ExternalFadt->Header.Checksum = (UINT8) -AcpiTbChecksum (
|
||||
(void *) ExternalFadt, ExternalFadt->Header.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Build a local FADT so we can test the hardware/event init
|
||||
*/
|
||||
LocalFADT.Header.Revision = 5;
|
||||
|
||||
/* Setup FADT header and DSDT/FACS addresses */
|
||||
|
||||
LocalFADT.Dsdt = 0;
|
||||
LocalFADT.Facs = 0;
|
||||
|
||||
LocalFADT.XDsdt = DsdtAddress;
|
||||
LocalFADT.XFacs = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
|
||||
|
||||
/* Miscellaneous FADT fields */
|
||||
|
||||
LocalFADT.Gpe0BlockLength = 16;
|
||||
LocalFADT.Gpe0Block = 0x00001234;
|
||||
|
||||
LocalFADT.Gpe1BlockLength = 6;
|
||||
LocalFADT.Gpe1Block = 0x00005678;
|
||||
LocalFADT.Gpe1Base = 96;
|
||||
|
||||
LocalFADT.Pm1EventLength = 4;
|
||||
LocalFADT.Pm1aEventBlock = 0x00001aaa;
|
||||
LocalFADT.Pm1bEventBlock = 0x00001bbb;
|
||||
|
||||
LocalFADT.Pm1ControlLength = 2;
|
||||
LocalFADT.Pm1aControlBlock = 0xB0;
|
||||
|
||||
LocalFADT.PmTimerLength = 4;
|
||||
LocalFADT.PmTimerBlock = 0xA0;
|
||||
|
||||
LocalFADT.Pm2ControlBlock = 0xC0;
|
||||
LocalFADT.Pm2ControlLength = 1;
|
||||
|
||||
/* Setup one example X-64 field */
|
||||
|
||||
LocalFADT.XPm1bEventBlock.SpaceId = ACPI_ADR_SPACE_SYSTEM_IO;
|
||||
LocalFADT.XPm1bEventBlock.Address = LocalFADT.Pm1bEventBlock;
|
||||
LocalFADT.XPm1bEventBlock.BitWidth = (UINT8)
|
||||
ACPI_MUL_8 (LocalFADT.Pm1EventLength);
|
||||
}
|
||||
|
||||
AnInitializeTableHeader ((void *) &LocalFADT,
|
||||
ACPI_SIG_FADT, sizeof (ACPI_TABLE_FADT));
|
||||
|
||||
/* Build a FACS */
|
||||
|
||||
memset (&LocalFACS, 0, sizeof (ACPI_TABLE_FACS));
|
||||
ACPI_COPY_NAMESEG (LocalFACS.Signature, ACPI_SIG_FACS);
|
||||
|
||||
LocalFACS.Length = sizeof (ACPI_TABLE_FACS);
|
||||
LocalFACS.GlobalLock = 0x11AA0011;
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiOsGetRootPointer
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: Address of the RSDP
|
||||
*
|
||||
* DESCRIPTION: Return a local RSDP, used to dynamically load tables via the
|
||||
* standard ACPI mechanism.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
ACPI_PHYSICAL_ADDRESS
|
||||
AcpiOsGetRootPointer (
|
||||
void)
|
||||
{
|
||||
|
||||
return (ACPI_PTR_TO_PHYSADDR (&LocalRSDP));
|
||||
}
|
@ -106,17 +106,18 @@ const UINT8 AcpiGbl_NsProperties[ACPI_NUM_NS_TYPES] =
|
||||
|
||||
const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
|
||||
{
|
||||
"SystemMemory", /* 0x00 */
|
||||
"SystemIO", /* 0x01 */
|
||||
"PCI_Config", /* 0x02 */
|
||||
"EmbeddedControl", /* 0x03 */
|
||||
"SMBus", /* 0x04 */
|
||||
"SystemCMOS", /* 0x05 */
|
||||
"PCIBARTarget", /* 0x06 */
|
||||
"IPMI", /* 0x07 */
|
||||
"GeneralPurposeIo", /* 0x08 */
|
||||
"GenericSerialBus", /* 0x09 */
|
||||
"PCC" /* 0x0A */
|
||||
"SystemMemory", /* 0x00 */
|
||||
"SystemIO", /* 0x01 */
|
||||
"PCI_Config", /* 0x02 */
|
||||
"EmbeddedControl", /* 0x03 */
|
||||
"SMBus", /* 0x04 */
|
||||
"SystemCMOS", /* 0x05 */
|
||||
"PCIBARTarget", /* 0x06 */
|
||||
"IPMI", /* 0x07 */
|
||||
"GeneralPurposeIo", /* 0x08 */
|
||||
"GenericSerialBus", /* 0x09 */
|
||||
"PCC", /* 0x0A */
|
||||
"PlatformRtMechanism" /* 0x0B */
|
||||
};
|
||||
|
||||
|
||||
|
@ -641,11 +641,6 @@ AcpiUtUpdateObjectReference (
|
||||
NextObject = Object->BufferField.BufferObj;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
|
||||
NextObject = Object->Field.RegionObj;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_LOCAL_BANK_FIELD:
|
||||
|
||||
NextObject = Object->BankField.BankObj;
|
||||
@ -681,6 +676,7 @@ AcpiUtUpdateObjectReference (
|
||||
}
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_LOCAL_REGION_FIELD:
|
||||
case ACPI_TYPE_REGION:
|
||||
default:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user