svn commit: r319363 - in vendor-sys/acpica/dist: generate/unix generate/unix/acpiexec generate/unix/iasl source/common source/compiler source/compiler/parsers source/compiler/preprocessor source/co...
Jung-uk Kim
jkim at FreeBSD.org
Wed May 31 22:40:27 UTC 2017
Author: jkim
Date: Wed May 31 22:40:24 2017
New Revision: 319363
URL: https://svnweb.freebsd.org/changeset/base/319363
Log:
Import ACPICA 20170531.
Added:
vendor-sys/acpica/dist/source/common/dmswitch.c (contents, props changed)
vendor-sys/acpica/dist/source/components/dispatcher/dspkginit.c (contents, props changed)
vendor-sys/acpica/dist/source/components/utilities/utresdecode.c (contents, props changed)
vendor-sys/acpica/dist/source/tools/acpiexec/aeexception.c (contents, props changed)
vendor-sys/acpica/dist/tests/misc/converterSample.asl
Deleted:
vendor-sys/acpica/dist/source/compiler/parsers/
vendor-sys/acpica/dist/source/compiler/preprocessor/
Modified:
vendor-sys/acpica/dist/generate/unix/Makefile.common
vendor-sys/acpica/dist/generate/unix/Makefile.config
vendor-sys/acpica/dist/generate/unix/Makefile.rules
vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile
vendor-sys/acpica/dist/generate/unix/iasl/Makefile
vendor-sys/acpica/dist/source/common/acfileio.c
vendor-sys/acpica/dist/source/common/adfile.c
vendor-sys/acpica/dist/source/common/adisasm.c
vendor-sys/acpica/dist/source/common/adwalk.c
vendor-sys/acpica/dist/source/common/ahids.c
vendor-sys/acpica/dist/source/common/ahpredef.c
vendor-sys/acpica/dist/source/common/ahtable.c
vendor-sys/acpica/dist/source/common/ahuuids.c
vendor-sys/acpica/dist/source/common/dmextern.c
vendor-sys/acpica/dist/source/common/dmrestag.c
vendor-sys/acpica/dist/source/common/dmtable.c
vendor-sys/acpica/dist/source/common/dmtbdump.c
vendor-sys/acpica/dist/source/common/dmtbinfo.c
vendor-sys/acpica/dist/source/compiler/aslascii.c
vendor-sys/acpica/dist/source/compiler/aslcompile.c
vendor-sys/acpica/dist/source/compiler/aslcompiler.h
vendor-sys/acpica/dist/source/compiler/aslcompiler.l
vendor-sys/acpica/dist/source/compiler/asldefine.h
vendor-sys/acpica/dist/source/compiler/aslexternal.c
vendor-sys/acpica/dist/source/compiler/aslglobal.h
vendor-sys/acpica/dist/source/compiler/aslhelp.c
vendor-sys/acpica/dist/source/compiler/aslhelpers.y
vendor-sys/acpica/dist/source/compiler/aslload.c
vendor-sys/acpica/dist/source/compiler/aslmain.c
vendor-sys/acpica/dist/source/compiler/aslmap.c
vendor-sys/acpica/dist/source/compiler/asloffset.c
vendor-sys/acpica/dist/source/compiler/asloptions.c
vendor-sys/acpica/dist/source/compiler/aslparser.y
vendor-sys/acpica/dist/source/compiler/aslresource.c
vendor-sys/acpica/dist/source/compiler/aslresources.y
vendor-sys/acpica/dist/source/compiler/aslrestype2s.c
vendor-sys/acpica/dist/source/compiler/aslrules.y
vendor-sys/acpica/dist/source/compiler/aslstartup.c
vendor-sys/acpica/dist/source/compiler/aslsupport.l
vendor-sys/acpica/dist/source/compiler/asltokens.y
vendor-sys/acpica/dist/source/compiler/asltree.c
vendor-sys/acpica/dist/source/compiler/asltypes.y
vendor-sys/acpica/dist/source/compiler/aslutils.c
vendor-sys/acpica/dist/source/compiler/aslxref.c
vendor-sys/acpica/dist/source/compiler/cvcompiler.c
vendor-sys/acpica/dist/source/compiler/cvdisasm.c
vendor-sys/acpica/dist/source/compiler/cvparser.c
vendor-sys/acpica/dist/source/compiler/dtcompiler.h
vendor-sys/acpica/dist/source/compiler/dtfield.c
vendor-sys/acpica/dist/source/compiler/dttable1.c
vendor-sys/acpica/dist/source/compiler/dttable2.c
vendor-sys/acpica/dist/source/compiler/dttemplate.h
vendor-sys/acpica/dist/source/compiler/dtutils.c
vendor-sys/acpica/dist/source/components/debugger/dbexec.c
vendor-sys/acpica/dist/source/components/debugger/dbobject.c
vendor-sys/acpica/dist/source/components/debugger/dbxface.c
vendor-sys/acpica/dist/source/components/disassembler/dmbuffer.c
vendor-sys/acpica/dist/source/components/disassembler/dmdeferred.c
vendor-sys/acpica/dist/source/components/disassembler/dmopcode.c
vendor-sys/acpica/dist/source/components/disassembler/dmresrc.c
vendor-sys/acpica/dist/source/components/disassembler/dmresrcl2.c
vendor-sys/acpica/dist/source/components/disassembler/dmwalk.c
vendor-sys/acpica/dist/source/components/dispatcher/dsargs.c
vendor-sys/acpica/dist/source/components/dispatcher/dsdebug.c
vendor-sys/acpica/dist/source/components/dispatcher/dsmethod.c
vendor-sys/acpica/dist/source/components/dispatcher/dsopcode.c
vendor-sys/acpica/dist/source/components/dispatcher/dsutils.c
vendor-sys/acpica/dist/source/components/dispatcher/dswexec.c
vendor-sys/acpica/dist/source/components/dispatcher/dswload.c
vendor-sys/acpica/dist/source/components/dispatcher/dswload2.c
vendor-sys/acpica/dist/source/components/events/evxfevnt.c
vendor-sys/acpica/dist/source/components/executer/exdebug.c
vendor-sys/acpica/dist/source/components/executer/exdump.c
vendor-sys/acpica/dist/source/components/executer/exoparg1.c
vendor-sys/acpica/dist/source/components/executer/exresolv.c
vendor-sys/acpica/dist/source/components/namespace/nsaccess.c
vendor-sys/acpica/dist/source/components/namespace/nsnames.c
vendor-sys/acpica/dist/source/components/namespace/nsutils.c
vendor-sys/acpica/dist/source/components/namespace/nsxfeval.c
vendor-sys/acpica/dist/source/components/parser/psobject.c
vendor-sys/acpica/dist/source/components/parser/psopcode.c
vendor-sys/acpica/dist/source/components/parser/psparse.c
vendor-sys/acpica/dist/source/components/resources/rscalc.c
vendor-sys/acpica/dist/source/components/resources/rsdump.c
vendor-sys/acpica/dist/source/components/resources/rsdumpinfo.c
vendor-sys/acpica/dist/source/components/resources/rsinfo.c
vendor-sys/acpica/dist/source/components/resources/rsmisc.c
vendor-sys/acpica/dist/source/components/resources/rsserial.c
vendor-sys/acpica/dist/source/components/tables/tbfadt.c
vendor-sys/acpica/dist/source/components/tables/tbutils.c
vendor-sys/acpica/dist/source/components/utilities/utdecode.c
vendor-sys/acpica/dist/source/components/utilities/utownerid.c
vendor-sys/acpica/dist/source/components/utilities/utresrc.c
vendor-sys/acpica/dist/source/components/utilities/utxfmutex.c
vendor-sys/acpica/dist/source/include/acapps.h
vendor-sys/acpica/dist/source/include/acdisasm.h
vendor-sys/acpica/dist/source/include/acglobal.h
vendor-sys/acpica/dist/source/include/aclocal.h
vendor-sys/acpica/dist/source/include/acopcode.h
vendor-sys/acpica/dist/source/include/acpixf.h
vendor-sys/acpica/dist/source/include/acpredef.h
vendor-sys/acpica/dist/source/include/acresrc.h
vendor-sys/acpica/dist/source/include/acrestyp.h
vendor-sys/acpica/dist/source/include/actbl1.h
vendor-sys/acpica/dist/source/include/actbl2.h
vendor-sys/acpica/dist/source/include/actbl3.h
vendor-sys/acpica/dist/source/include/actypes.h
vendor-sys/acpica/dist/source/include/acutils.h
vendor-sys/acpica/dist/source/include/acuuid.h
vendor-sys/acpica/dist/source/include/amlcode.h
vendor-sys/acpica/dist/source/include/amlresrc.h
vendor-sys/acpica/dist/source/include/platform/acgcc.h
vendor-sys/acpica/dist/source/include/platform/acintel.h
vendor-sys/acpica/dist/source/os_specific/service_layers/osunixxf.c
vendor-sys/acpica/dist/source/tools/acpidump/apmain.c
vendor-sys/acpica/dist/source/tools/acpiexec/aecommon.h
vendor-sys/acpica/dist/source/tools/acpiexec/aehandlers.c
vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c
vendor-sys/acpica/dist/source/tools/acpisrc/asremove.c
vendor-sys/acpica/dist/source/tools/acpisrc/astable.c
Modified: vendor-sys/acpica/dist/generate/unix/Makefile.common
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/Makefile.common Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/generate/unix/Makefile.common Wed May 31 22:40:24 2017 (r319363)
@@ -7,22 +7,36 @@ $(PROGS): FORCE
@cd $(BUILD_DIRECTORY_PATH)/$@; \
mkdir -p obj; \
$(MAKE) || exit "$$?"; \
- ls -al ../bin/$@; \
echo "";
#
+# List just shows the status of each tool
+#
+status: FORCE
+ @for toolname in $(PROGS); do \
+ (cd $(BUILD_DIRECTORY_PATH)/$$toolname; \
+ pwd; \
+ if [ -d "obj" ] ; then \
+ echo " `ls -1 obj | wc -l` files, `stat -c%s obj/$$toolname` bytes"; \
+ else \
+ echo " Clean"; \
+ fi; \
+ ); \
+ done;
+
+#
# Simple clean removes all .obj files, but leaves the executables
# in the local bin directory
#
clean: FORCE
@for toolname in $(PROGS); do \
(cd $(BUILD_DIRECTORY_PATH)/$$toolname; \
+ pwd; \
if [ -d "obj" ] ; then \
- echo "Removing $$toolname:"; \
- pwd; \
- $(MAKE) clean; \
- rmdir obj; \
- echo ""; \
+ echo " Removing `ls -1 obj | wc -l` files"; \
+ rm -r obj; \
+ else \
+ echo " Clean"; \
fi; \
); \
done;
@@ -53,7 +67,11 @@ install: FORCE
@for toolname in $(PROGS); do \
(cd $(BUILD_DIRECTORY_PATH)/$$toolname; \
pwd; \
- $(MAKE) PROG=$$toolname install; \
+ if [ -d "obj" ] ; then \
+ $(MAKE) PROG=$$toolname install; \
+ else \
+ echo " Clean"; \
+ fi; \
); \
done;
Modified: vendor-sys/acpica/dist/generate/unix/Makefile.config
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/Makefile.config Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/generate/unix/Makefile.config Wed May 31 22:40:24 2017 (r319363)
@@ -89,7 +89,7 @@ INSTALLPROG = \
RENAMEPROG = \
@if [ -e "$(PROG).exe" ] ; then \
mv $(PROG).exe $(PROG); \
- echo "Renamed $(PROG).exe to $(PROG)"; \
+ echo "- Rename $(PROG).exe to $(PROG)"; \
fi;
#
@@ -98,7 +98,7 @@ RENAMEPROG = \
COPYPROG = \
@mkdir -p ../$(BINDIR); \
cp -f $(PROG) ../$(BINDIR); \
- echo "Copied $(PROG) to $(FINAL_PROG)";
+ echo "- Copy $(PROG) to $(FINAL_PROG)";
#
# Main ACPICA source directories
Modified: vendor-sys/acpica/dist/generate/unix/Makefile.rules
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/Makefile.rules Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/generate/unix/Makefile.rules Wed May 31 22:40:24 2017 (r319363)
@@ -11,14 +11,16 @@ $(FINAL_PROG) : $(PROG)
$(COPYPROG)
$(PROG) : $(INTERMEDIATES) $(MISC) $(OBJECTS)
- $(LINKPROG)
+ @echo "- Link" $(PROG)
+ @$(LINKPROG)
$(RENAMEPROG)
$(OBJDIR)/%.o : %.c $(HEADERS) $(ACPICA_HEADERS)
- $(COMPILEOBJ)
+ @echo $(PROG) $<
+ @$(COMPILEOBJ)
clean :
- rm -f $(PROG) $(PROG).exe $(OBJECTS) $(OBJDIR)/*.o $(INTERMEDIATES) $(MISC)
+ @rm -f $(PROG) $(PROG).exe $(OBJECTS) $(OBJDIR)/*.o $(INTERMEDIATES) $(MISC)
install :
$(INSTALLPROG)
Modified: vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile Wed May 31 22:40:24 2017 (r319363)
@@ -42,6 +42,7 @@ OBJECTS = \
$(OBJDIR)/acgetline.o\
$(OBJDIR)/acfileio.o\
$(OBJDIR)/aeexec.o\
+ $(OBJDIR)/aeexception.o\
$(OBJDIR)/aehandlers.o\
$(OBJDIR)/aeinitfile.o\
$(OBJDIR)/aemain.o\
@@ -224,6 +225,7 @@ OBJECTS = \
$(OBJDIR)/utownerid.o\
$(OBJDIR)/utnonansi.o\
$(OBJDIR)/utpredef.o\
+ $(OBJDIR)/utresdecode.o\
$(OBJDIR)/utresrc.o\
$(OBJDIR)/utstate.o\
$(OBJDIR)/utstring.o\
Modified: vendor-sys/acpica/dist/generate/unix/iasl/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/iasl/Makefile Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/generate/unix/iasl/Makefile Wed May 31 22:40:24 2017 (r319363)
@@ -121,6 +121,7 @@ OBJECTS = \
$(OBJDIR)/dmresrcl2.o\
$(OBJDIR)/dmresrcs.o\
$(OBJDIR)/dmrestag.o\
+ $(OBJDIR)/dmswitch.o\
$(OBJDIR)/dmtable.o\
$(OBJDIR)/dmtables.o\
$(OBJDIR)/dmtbdump.o\
@@ -224,6 +225,7 @@ OBJECTS = \
$(OBJDIR)/utobject.o\
$(OBJDIR)/utownerid.o\
$(OBJDIR)/utpredef.o\
+ $(OBJDIR)/utresdecode.o\
$(OBJDIR)/utresrc.o\
$(OBJDIR)/utstate.o\
$(OBJDIR)/utstrtoul64.o\
@@ -277,13 +279,15 @@ CFLAGS += \
include ../Makefile.rules
#
-# Function to safely execute yacc
+# Function to safely execute yacc:
+# Generate the output files to a temporary directory,
+# move the file to $(OBJDIR), and discard the directory.
#
safe_yacc = \
_d=`mktemp -d $(OBJDIR)/$(1).XXXXXX` &&\
cd $$_d &&\
$(YACC) $(YFLAGS) -v -d -p$(1) $(abspath $(2)) &&\
- cd - &&\
+ cd - > /dev/null;\
mv $$_d/y.tab$(suffix $(3)) $(3);\
_r=$$?;\
rm -fr $$_d;\
@@ -293,28 +297,35 @@ safe_yacc = \
# Macro processing for iASL .y files
#
$(OBJDIR)/aslcompiler.y : $(ASL_PARSER)
- $(MACROPROC) $(MFLAGS) $(ASL_COMPILER)/aslparser.y > $@
+ @echo "- " $(MACROPROC) " Preprocess main iASL parser"
+ @$(MACROPROC) $(MFLAGS) $(ASL_COMPILER)/aslparser.y > $@
#
# Parser and Lexer - intermediate C files
#
$(OBJDIR)/aslcompilerlex.c : $(ASL_LEXER)
- $(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
+ @echo "- " $(LEX) " "$<
+ @$(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l
$(OBJDIR)/aslcompilerparse.c $(OBJDIR)/aslcompiler.y.h : $(OBJDIR)/aslcompiler.y
- $(call safe_yacc,AslCompiler,$<,$@)
+ @echo "- " $(YACC) " "$<
+ @$(call safe_yacc,AslCompiler,$<,$@)
$(OBJDIR)/dtparserlex.c : $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h
- $(LEX) $(LFLAGS) -PDtParser -o$@ $<
+ @echo "- " $(LEX) " "$<
+ @$(LEX) $(LFLAGS) -PDtParser -o$@ $<
$(OBJDIR)/dtparserparse.c $(OBJDIR)/dtparser.y.h : $(ASL_COMPILER)/dtparser.y
- $(call safe_yacc,DtParser,$<,$@)
+ @echo "- " $(YACC) " "$<
+ @$(call safe_yacc,DtParser,$<,$@)
$(OBJDIR)/prparserlex.c : $(ASL_COMPILER)/prparser.l $(OBJDIR)/prparser.y.h
- $(LEX) $(LFLAGS) -PPrParser -o$@ $<
+ @echo "- " $(LEX) " "$<
+ @$(LEX) $(LFLAGS) -PPrParser -o$@ $<
$(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparser.y
- $(call safe_yacc,PrParser,$<,$@)
+ @echo "- " $(YACC) " "$<
+ @$(call safe_yacc,PrParser,$<,$@)
#
# Parsers and Lexers - final object files
@@ -323,19 +334,25 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prparser.y.h :
# by the utilities above and they are not necessarily ANSI C, etc.
#
$(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ @echo "- " "Intermediate" $<
+ @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ @echo "- " "Intermediate" $<
+ @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ @echo "- " "Intermediate" $<
+ @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ @echo "- " "Intermediate" $<
+ @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ @echo "- " "Intermediate" $<
+ @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
$(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c
- $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
+ @echo "- " "Intermediate" $<
+ @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
Modified: vendor-sys/acpica/dist/source/common/acfileio.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/acfileio.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/acfileio.c Wed May 31 22:40:24 2017 (r319363)
@@ -531,8 +531,6 @@ AcValidateTableHeader (
if (!AcpiUtValidNameseg (TableHeader.Signature))
{
- fprintf (stderr, "Invalid table signature: 0x%8.8X\n",
- *ACPI_CAST_PTR (UINT32, TableHeader.Signature));
return (AE_BAD_SIGNATURE);
}
Modified: vendor-sys/acpica/dist/source/common/adfile.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/adfile.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/adfile.c Wed May 31 22:40:24 2017 (r319363)
@@ -316,11 +316,6 @@ FlGenerateFilename (
*/
NewFilename = UtStringCacheCalloc ((ACPI_SIZE)
strlen (InputFilename) + strlen (Suffix) + 2);
- if (!NewFilename)
- {
- return (NULL);
- }
-
strcpy (NewFilename, InputFilename);
/* Try to find the last dot in the filename */
@@ -364,11 +359,6 @@ FlStrdup (
NewString = UtStringCacheCalloc ((ACPI_SIZE) strlen (String) + 1);
- if (!NewString)
- {
- return (NULL);
- }
-
strcpy (NewString, String);
return (NewString);
}
Modified: vendor-sys/acpica/dist/source/common/adisasm.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/adisasm.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/adisasm.c Wed May 31 22:40:24 2017 (r319363)
@@ -537,7 +537,7 @@ AdDisassembleOneTable (
* the entire tree with the new information (namely, the
* number of arguments per method)
*/
- if (AcpiDmGetExternalMethodCount ())
+ if (AcpiDmGetUnresolvedExternalMethodCount ())
{
Status = AdReparseOneTable (Table, File, OwnerId);
if (ACPI_FAILURE (Status))
@@ -553,7 +553,7 @@ AdDisassembleOneTable (
* 1) Convert fixed-offset references to resource descriptors
* to symbolic references (Note: modifies namespace)
*/
- AcpiDmConvertResourceIndexes (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
+ AcpiDmConvertParseObjects (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
/* Optional displays */
@@ -616,7 +616,7 @@ AdReparseOneTable (
fprintf (stderr,
"\nFound %u external control methods, "
"reparsing with new information\n",
- AcpiDmGetExternalMethodCount ());
+ AcpiDmGetUnresolvedExternalMethodCount ());
/* Reparse, rebuild namespace */
@@ -642,7 +642,7 @@ AdReparseOneTable (
/* New namespace, add the external definitions first */
- AcpiDmAddExternalsToNamespace ();
+ AcpiDmAddExternalListToNamespace ();
/* For -ca option: clear the list of comment addresses. */
Modified: vendor-sys/acpica/dist/source/common/adwalk.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/adwalk.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/adwalk.c Wed May 31 22:40:24 2017 (r319363)
@@ -208,11 +208,16 @@ AcpiDmInspectPossibleArgs (
ACPI_PARSE_OBJECT *Op);
static ACPI_STATUS
-AcpiDmResourceDescendingOp (
+AcpiDmCommonDescendingOp (
ACPI_PARSE_OBJECT *Op,
UINT32 Level,
void *Context);
+static ACPI_STATUS
+AcpiDmProcessResourceDescriptors (
+ ACPI_PARSE_OBJECT *Op,
+ UINT32 Level,
+ void *Context);
/*******************************************************************************
*
@@ -395,21 +400,21 @@ AcpiDmCrossReferenceNamespace (
/*******************************************************************************
*
- * FUNCTION: AcpiDmConvertResourceIndexes
+ * FUNCTION: AcpiDmConvertParseObjects
*
* PARAMETERS: ParseTreeRoot - Root of the parse tree
* NamespaceRoot - Root of the internal namespace
*
* RETURN: None
*
- * DESCRIPTION: Convert fixed-offset references to resource descriptors to
- * symbolic references. Should only be called after namespace has
- * been cross referenced.
+ * DESCRIPTION: Begin parse tree walk to perform conversions needed for
+ * disassembly. These include resource descriptors and switch/case
+ * operations.
*
******************************************************************************/
void
-AcpiDmConvertResourceIndexes (
+AcpiDmConvertParseObjects (
ACPI_PARSE_OBJECT *ParseTreeRoot,
ACPI_NAMESPACE_NODE *NamespaceRoot)
{
@@ -443,9 +448,14 @@ AcpiDmConvertResourceIndexes (
Info.Level = 0;
Info.WalkState = WalkState;
- AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmResourceDescendingOp,
+ AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmCommonDescendingOp,
AcpiDmCommonAscendingOp, &Info);
ACPI_FREE (WalkState);
+
+ if (AcpiGbl_TempListHead) {
+ AcpiDmClearTempList();
+ }
+
return;
}
@@ -737,7 +747,6 @@ AcpiDmLoadDescendingOp (
WalkState = Info->WalkState;
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
/* Only interested in operators that create new names */
@@ -754,7 +763,7 @@ AcpiDmLoadDescendingOp (
{
/* For all named operators, get the new name */
- Path = (char *) Op->Named.Path;
+ Path = Op->Named.Path;
if (!Path && Op->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
{
@@ -875,7 +884,6 @@ AcpiDmXrefDescendingOp (
WalkState = Info->WalkState;
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
if ((!(OpInfo->Flags & AML_NAMED)) &&
@@ -885,26 +893,7 @@ AcpiDmXrefDescendingOp (
{
goto Exit;
}
- else if (Op->Common.Parent &&
- Op->Common.Parent->Common.AmlOpcode == AML_EXTERNAL_OP)
- {
- /* External() NamePath */
- Path = Op->Common.Value.String;
- ObjectType = (ACPI_OBJECT_TYPE) Op->Common.Next->Common.Value.Integer;
- if (ObjectType == ACPI_TYPE_METHOD)
- {
- ParamCount = (UINT32)
- Op->Common.Next->Common.Next->Common.Value.Integer;
- }
-
- Flags |= ACPI_EXT_RESOLVED_REFERENCE | ACPI_EXT_ORIGIN_FROM_OPCODE;
- AcpiDmAddOpToExternalList (Op, Path,
- (UINT8) ObjectType, ParamCount, Flags);
-
- goto Exit;
- }
-
/* Get the NamePath from the appropriate place */
if (OpInfo->Flags & AML_NAMED)
@@ -924,9 +913,10 @@ AcpiDmXrefDescendingOp (
Path = NextOp->Common.Value.String;
}
}
- else if (Op->Common.AmlOpcode == AML_SCOPE_OP)
+ else if (Op->Common.AmlOpcode == AML_SCOPE_OP ||
+ Op->Common.AmlOpcode == AML_EXTERNAL_OP)
{
- Path = (char *) Op->Named.Path;
+ Path = Op->Named.Path;
}
}
else if (OpInfo->Flags & AML_CREATE)
@@ -1060,21 +1050,59 @@ Exit:
return (AE_OK);
}
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmCommonDescendingOp
+ *
+ * PARAMETERS: ASL_WALK_CALLBACK
+ *
+ * RETURN: ACPI_STATUS
+ *
+ * DESCRIPTION: Perform parse tree preprocessing before main disassembly walk.
+ *
+ ******************************************************************************/
+static ACPI_STATUS
+AcpiDmCommonDescendingOp (
+ ACPI_PARSE_OBJECT *Op,
+ UINT32 Level,
+ void *Context)
+{
+ ACPI_STATUS Status;
+
+ /* Resource descriptor conversion */
+
+ Status = AcpiDmProcessResourceDescriptors (Op, Level, Context);
+
+ if (ACPI_FAILURE (Status))
+ {
+ return (Status);
+ }
+
+ /* Switch/Case conversion */
+
+ Status = AcpiDmProcessSwitch (Op);
+
+ return (AE_OK);
+}
+
+
/*******************************************************************************
*
- * FUNCTION: AcpiDmResourceDescendingOp
+ * FUNCTION: AcpiDmProcessResourceDescriptors
*
* PARAMETERS: ASL_WALK_CALLBACK
*
- * RETURN: None
+ * RETURN: ACPI_STATUS
*
- * DESCRIPTION: Process one parse op during symbolic resource index conversion.
+ * DESCRIPTION: Convert fixed-offset references to resource descriptors to
+ * symbolic references. Should only be called after namespace has
+ * been cross referenced.
*
******************************************************************************/
static ACPI_STATUS
-AcpiDmResourceDescendingOp (
+AcpiDmProcessResourceDescriptors (
ACPI_PARSE_OBJECT *Op,
UINT32 Level,
void *Context)
@@ -1085,7 +1113,6 @@ AcpiDmResourceDescendingOp (
ACPI_OBJECT_TYPE ObjectType;
ACPI_STATUS Status;
-
WalkState = Info->WalkState;
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
@@ -1111,10 +1138,10 @@ AcpiDmResourceDescendingOp (
* If so, convert the reference into a symbolic reference.
*/
AcpiDmCheckResourceReference (Op, WalkState);
+
return (AE_OK);
}
-
/*******************************************************************************
*
* FUNCTION: AcpiDmCommonAscendingOp
@@ -1135,14 +1162,11 @@ AcpiDmCommonAscendingOp (
void *Context)
{
ACPI_OP_WALK_INFO *Info = Context;
- const ACPI_OPCODE_INFO *OpInfo;
ACPI_OBJECT_TYPE ObjectType;
/* Close scope if necessary */
- OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
- ObjectType = OpInfo->ObjectType;
ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
if (AcpiNsOpensScope (ObjectType))
@@ -1152,7 +1176,6 @@ AcpiDmCommonAscendingOp (
return (AE_OK);
}
-
/*******************************************************************************
*
Modified: vendor-sys/acpica/dist/source/common/ahids.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/ahids.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/ahids.c Wed May 31 22:40:24 2017 (r319363)
@@ -187,6 +187,7 @@ const AH_DEVICE_ID AslDeviceIds[] =
{"ACPI0011", "Generic Buttons Device"},
{"ACPI0012", "NVDIMM Root Device"},
{"ACPI0013", "Generic Event Device"},
+ {"ACPI0014", "Wireless Power Calibration Device"},
{"ADMA0F28", "Intel Audio DMA"},
{"AMCR0F28", "Intel Audio Machine Driver"},
{"ATK4001", "Asus Radio Control Button"},
Modified: vendor-sys/acpica/dist/source/common/ahpredef.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/ahpredef.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/ahpredef.c Wed May 31 22:40:24 2017 (r319363)
@@ -254,6 +254,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_FPS", "Fan Performance States", "Returns a list of supported fan performance states"),
AH_PREDEF ("_FSL", "Fan Set Level", "Control method that sets the fan device's speed level (performance state)"),
AH_PREDEF ("_FST", "Fan Status", "Returns current status information for a fan device"),
+ AH_PREDEF ("_FUN", "Function Number", "Resource descriptor field"),
AH_PREDEF ("_GAI", "Get Averaging Interval", "Returns the power meter averaging interval"),
AH_PREDEF ("_GCP", "Get Capabilities", "Get device time capabilities"),
AH_PREDEF ("_GHL", "Get Hardware Limit", "Returns the hardware limit enforced by the power meter"),
@@ -270,6 +271,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_GWS", "Get Wake Status", "Return status of wake alarms"),
AH_PREDEF ("_HE_", "High-Edge", "Interrupt triggering, Resource Descriptor field"),
AH_PREDEF ("_HID", "Hardware ID", "Returns a device's Plug and Play Hardware ID"),
+ AH_PREDEF ("_HMA", "Heterogeneous Memory Attributes", "Returns a list of HMAT structures."),
AH_PREDEF ("_HOT", "Hot Temperature", "Returns the critical temperature for sleep (entry to S4)"),
AH_PREDEF ("_HPP", "Hot Plug Parameters", "Returns a list of hot-plug information for a PCI device"),
AH_PREDEF ("_HPX", "Hot Plug Parameter Extensions", "Returns a list of hot-plug information for a PCI device. Supersedes _HPP"),
@@ -287,6 +289,9 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_LL_", "Low Level", "Interrupt polarity, Resource Descriptor field"),
AH_PREDEF ("_LPD", "Low Power Dependencies", "Returns a list of dependencies for low power idle entry"),
AH_PREDEF ("_LPI", "Low Power Idle States", "Returns a list of supported low power idle states"),
+ AH_PREDEF ("_LSI", "Label Storage Information", "Returns information about the Label Storage Area associated with the NVDIMM object."),
+ AH_PREDEF ("_LSR", "Label Storage Read", "Returns label data from the Label Storage Area of the NVDIMM object."),
+ AH_PREDEF ("_LSW", "Label Storage Write", "Writes label data in to the Label Storage Area of the NVDIMM object."),
AH_PREDEF ("_MAF", "Maximum Address Fixed", "Resource Descriptor field"),
AH_PREDEF ("_MAT", "Multiple APIC Table Entry", "Returns a list of MADT APIC structure entries"),
AH_PREDEF ("_MAX", "Maximum Base Address", "Resource Descriptor field"),
@@ -439,6 +444,7 @@ const AH_PREDEFINED_NAME AslPredefinedInfo[] =
AH_PREDEF ("_UPC", "USB Port Capabilities", "Returns a list of USB port capabilities"),
AH_PREDEF ("_UPD", "User Presence Detect", "Returns user detection information"),
AH_PREDEF ("_UPP", "User Presence Polling", "Returns the recommended user presence polling interval"),
+ AH_PREDEF ("_VAL", "Pin Configuration Value", "Resource Descriptor field"),
AH_PREDEF ("_VEN", "Vendor Data", "Resource Descriptor field"),
AH_PREDEF ("_VPO", "Video Post Options", "Returns the implemented video post options"),
AH_PREDEF ("_Wxx", "Wake Event", "Method executed as a result of a wake event"),
Modified: vendor-sys/acpica/dist/source/common/ahtable.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/ahtable.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/ahtable.c Wed May 31 22:40:24 2017 (r319363)
@@ -218,6 +218,7 @@ const AH_TABLE Gbl_AcpiSupportedTables[] =
{ACPI_SIG_FPDT, "Firmware Performance Data Table"},
{ACPI_SIG_GTDT, "Generic Timer Description Table"},
{ACPI_SIG_HEST, "Hardware Error Source Table"},
+ {ACPI_SIG_HMAT, "Heterogeneous Memory Attributes Table"},
{ACPI_SIG_HPET, "High Precision Event Timer table"},
{ACPI_SIG_IORT, "IO Remapping Table"},
{ACPI_SIG_IVRS, "I/O Virtualization Reporting Structure"},
@@ -232,6 +233,7 @@ const AH_TABLE Gbl_AcpiSupportedTables[] =
{ACPI_SIG_NFIT, "NVDIMM Firmware Interface Table"},
{ACPI_SIG_PCCT, "Platform Communications Channel Table"},
{ACPI_SIG_PMTT, "Platform Memory Topology Table"},
+ {ACPI_SIG_PPTT, "Processor Properties Topology Table"},
{ACPI_SIG_RASF, "RAS Features Table"},
{ACPI_RSDP_NAME,"Root System Description Pointer"},
{ACPI_SIG_RSDT, "Root System Description Table"},
@@ -253,6 +255,7 @@ const AH_TABLE Gbl_AcpiSupportedTables[] =
{ACPI_SIG_WDDT, "Watchdog Description Table"},
{ACPI_SIG_WDRT, "Watchdog Resource Table"},
{ACPI_SIG_WPBT, "Windows Platform Binary Table"},
+ {ACPI_SIG_WSMT, "Windows SMM Security Migrations Table"},
{ACPI_SIG_XENV, "Xen Environment table"},
{ACPI_SIG_XSDT, "Extended System Description Table"},
{NULL, NULL}
Modified: vendor-sys/acpica/dist/source/common/ahuuids.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/ahuuids.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/ahuuids.c Wed May 31 22:40:24 2017 (r319363)
@@ -186,6 +186,10 @@ const AH_UUID Gbl_AcpiUuids[] =
{"Persistent Virtual Disk", UUID_PERSISTENT_VIRTUAL_DISK},
{"Persistent Virtual CD", UUID_PERSISTENT_VIRTUAL_CD},
+ {"[Processor Properties]", NULL},
+ {"Cache Properties", UUID_CACHE_PROPERTIES},
+ {"Physical Package Property", UUID_PHYSICAL_PROPERTY},
+
{"[Miscellaneous]", NULL},
{"Platform-wide Capabilities", UUID_PLATFORM_CAPABILITIES},
{"Dynamic Enumeration", UUID_DYNAMIC_ENUMERATION},
Modified: vendor-sys/acpica/dist/source/common/dmextern.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/dmextern.c Wed May 31 21:54:21 2017 (r319362)
+++ vendor-sys/acpica/dist/source/common/dmextern.c Wed May 31 22:40:24 2017 (r319363)
@@ -199,7 +199,10 @@ static const char *AcpiGbl_DmTypeNames[] =
#define METHOD_SEPARATORS " \t,()\n"
+static const char *ExternalConflictMessage =
+ " // Conflicts with a later declaration";
+
/* Local prototypes */
static const char *
@@ -211,6 +214,16 @@ AcpiDmNormalizeParentPrefix (
ACPI_PARSE_OBJECT *Op,
char *Path);
+static ACPI_STATUS
+AcpiDmGetExternalAndInternalPath (
+ ACPI_NAMESPACE_NODE *Node,
+ char **ExternalPath,
+ char **InternalPath);
+
+static ACPI_STATUS
+AcpiDmRemoveRootPrefix (
+ char **Path);
+
static void
AcpiDmAddPathToExternalList (
char *Path,
@@ -226,7 +239,22 @@ AcpiDmCreateNewExternal (
UINT32 Value,
UINT16 Flags);
+static void
+AcpiDmCheckForExternalConflict (
+ char *Path);
+static ACPI_STATUS
+AcpiDmResolveExternal (
+ char *Path,
+ UINT8 Type,
+ ACPI_NAMESPACE_NODE **Node);
+
+
+static void
+AcpiDmConflictingDeclaration (
+ char *Path);
+
+
/*******************************************************************************
*
* FUNCTION: AcpiDmGetObjectTypeName
@@ -582,7 +610,7 @@ AcpiDmGetExternalsFromFile (
{
/* Add the external(s) to the namespace */
- AcpiDmAddExternalsToNamespace ();
+ AcpiDmAddExternalListToNamespace ();
AcpiOsPrintf ("%s: Imported %u external method definitions\n",
Gbl_ExternalRefFilename, ImportCount);
@@ -698,6 +726,86 @@ AcpiDmAddOpToExternalList (
/*******************************************************************************
*
+ * FUNCTION: AcpiDmGetExternalAndInternalPath
+ *
+ * PARAMETERS: Node - Namespace node for object to be added
+ * ExternalPath - Will contain the external path of the node
+ * InternalPath - Will contain the internal path of the node
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Get the External and Internal path from the given node.
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiDmGetExternalAndInternalPath (
+ ACPI_NAMESPACE_NODE *Node,
+ char **ExternalPath,
+ char **InternalPath)
+{
+ ACPI_STATUS Status;
+
+
+ if (!Node)
+ {
+ return (AE_BAD_PARAMETER);
+ }
+
+ /* Get the full external and internal pathnames to the node */
+
+ *ExternalPath = AcpiNsGetExternalPathname (Node);
+ if (!*ExternalPath)
+ {
+ return (AE_BAD_PATHNAME);
+ }
+
+ Status = AcpiNsInternalizeName (*ExternalPath, InternalPath);
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_FREE (*ExternalPath);
+ return (Status);
+ }
+
+ return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmRemoveRootPrefix
+ *
+ * PARAMETERS: Path - Remove Root prefix from this Path
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Remove the root prefix character '\' from Path.
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiDmRemoveRootPrefix (
+ char **Path)
+{
+ char *InputPath = *Path;
+
+
+ if ((*InputPath == AML_ROOT_PREFIX) && (InputPath[1]))
+ {
+ if (!memmove(InputPath, InputPath+1, strlen(InputPath)))
+ {
+ return (AE_ERROR);
+ }
+
+ *Path = InputPath;
+ }
+
+ return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
* FUNCTION: AcpiDmAddNodeToExternalList
*
* PARAMETERS: Node - Namespace node for object to be added
@@ -727,46 +835,27 @@ AcpiDmAddNodeToExternalList (
{
char *ExternalPath;
char *InternalPath;
- char *Temp;
ACPI_STATUS Status;
ACPI_FUNCTION_TRACE (DmAddNodeToExternalList);
-
- if (!Node)
- {
- return_VOID;
- }
-
/* Get the full external and internal pathnames to the node */
- ExternalPath = AcpiNsGetExternalPathname (Node);
- if (!ExternalPath)
- {
- return_VOID;
- }
-
- Status = AcpiNsInternalizeName (ExternalPath, &InternalPath);
+ Status = AcpiDmGetExternalAndInternalPath (Node, &ExternalPath, &InternalPath);
if (ACPI_FAILURE (Status))
{
- ACPI_FREE (ExternalPath);
return_VOID;
}
/* Remove the root backslash */
- if ((*ExternalPath == AML_ROOT_PREFIX) && (ExternalPath[1]))
+ Status = AcpiDmRemoveRootPrefix (&ExternalPath);
+ if (ACPI_FAILURE (Status))
{
- Temp = ACPI_ALLOCATE_ZEROED (strlen (ExternalPath) + 1);
- if (!Temp)
- {
- return_VOID;
- }
-
- strcpy (Temp, &ExternalPath[1]);
ACPI_FREE (ExternalPath);
- ExternalPath = Temp;
+ ACPI_FREE (InternalPath);
+ return_VOID;
}
/* Create the new External() declaration node */
@@ -1013,68 +1102,171 @@ AcpiDmCreateNewExternal (
/*******************************************************************************
*
- * FUNCTION: AcpiDmAddExternalsToNamespace
+ * FUNCTION: AcpiDmResolveExternal
*
- * PARAMETERS: None
+ * PARAMETERS: Path - Path of the external
+ * Type - Type of the external
+ * Node - Input node for AcpiNsLookup
*
+ * RETURN: Status
+ *
+ * DESCRIPTION: Resolve the external within the namespace by AcpiNsLookup.
+ * If the returned node is an external and has the same type
+ * we assume that it was either an existing external or a
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiDmResolveExternal (
+ char *Path,
+ UINT8 Type,
+ ACPI_NAMESPACE_NODE **Node)
+{
+ ACPI_STATUS Status;
+
+
+ Status = AcpiNsLookup (NULL, Path, Type,
+ ACPI_IMODE_LOAD_PASS1,
+ ACPI_NS_ERROR_IF_FOUND | ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE,
+ NULL, Node);
+
+ if (!Node)
+ {
+ ACPI_EXCEPTION ((AE_INFO, Status,
+ "while adding external to namespace [%s]", Path));
+ }
+
+ /* Note the asl code "external(a) external(a)" is acceptable ASL */
+
+ else if ((*Node)->Type == Type &&
+ (*Node)->Flags & ANOBJ_IS_EXTERNAL)
+ {
+ return (AE_OK);
+ }
+ else
+ {
+ ACPI_EXCEPTION ((AE_INFO, AE_ERROR,
+ "[%s] has conflicting declarations", Path));
+ }
+
+ return (AE_ERROR);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmCreateSubobjectForExternal
+ *
+ * PARAMETERS: Type - Type of the external
+ * Node - Namespace node from AcpiNsLookup
+ * ParamCount - Value to be used for Method
+ *
* RETURN: None
*
- * DESCRIPTION: Add all externals to the namespace. Allows externals to be
+ * DESCRIPTION: Add one external to the namespace. Allows external to be
* "resolved".
*
******************************************************************************/
void
-AcpiDmAddExternalsToNamespace (
- void)
+AcpiDmCreateSubobjectForExternal (
+ UINT8 Type,
+ ACPI_NAMESPACE_NODE **Node,
+ UINT32 ParamCount)
{
- ACPI_STATUS Status;
- ACPI_NAMESPACE_NODE *Node;
ACPI_OPERAND_OBJECT *ObjDesc;
- ACPI_EXTERNAL_LIST *External = AcpiGbl_ExternalList;
- while (External)
+ switch (Type)
{
- /* Add the external name (object) into the namespace */
+ case ACPI_TYPE_METHOD:
- Status = AcpiNsLookup (NULL, External->InternalPath, External->Type,
- ACPI_IMODE_LOAD_PASS1,
- ACPI_NS_ERROR_IF_FOUND | ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE,
- NULL, &Node);
+ /* For methods, we need to save the argument count */
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, Status,
- "while adding external to namespace [%s]",
- External->Path));
- }
+ ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
+ ObjDesc->Method.ParamCount = (UINT8) ParamCount;
+ (*Node)->Object = ObjDesc;
+ break;
- else switch (External->Type)
- {
- case ACPI_TYPE_METHOD:
+ case ACPI_TYPE_REGION:
- /* For methods, we need to save the argument count */
+ /* Regions require a region sub-object */
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
- ObjDesc->Method.ParamCount = (UINT8) External->Value;
- Node->Object = ObjDesc;
- break;
+ ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_REGION);
+ ObjDesc->Region.Node = *Node;
+ (*Node)->Object = ObjDesc;
+ break;
- case ACPI_TYPE_REGION:
+ default:
- /* Regions require a region sub-object */
+ break;
+ }
+}
- ObjDesc = AcpiUtCreateInternalObject (ACPI_TYPE_REGION);
- ObjDesc->Region.Node = Node;
- Node->Object = ObjDesc;
- break;
- default:
+/*******************************************************************************
+ *
+ * FUNCTION: AcpiDmAddOneExternalToNamespace
+ *
+ * PARAMETERS: Path - External parse object
+ * Type - Type of parse object
+ * ParamCount - External method parameter count
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Add one external to the namespace by resolvign the external
+ * (by performing a namespace lookup) and annotating the resulting
+ * namespace node with the approperiate information if the type
+ * is ACPI_TYPE_REGION or ACPI_TYPE_METHOD.
+ *
+ ******************************************************************************/
- break;
- }
+void
+AcpiDmAddOneExternalToNamespace (
+ char *Path,
+ UINT8 Type,
+ UINT32 ParamCount)
+{
+ ACPI_STATUS Status;
+ ACPI_NAMESPACE_NODE *Node;
+
+ Status = AcpiDmResolveExternal (Path, Type, &Node);
+
+ if (ACPI_FAILURE (Status))
+ {
+ return;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-vendor
mailing list