svn commit: r291333 - in vendor-sys/acpica/dist: . generate/unix/acpiexamples generate/unix/acpiexec generate/unix/acpinames generate/unix/acpixtract generate/unix/iasl source/common source/compile...

Jung-uk Kim jkim at FreeBSD.org
Wed Nov 25 21:04:45 UTC 2015


Author: jkim
Date: Wed Nov 25 21:04:42 2015
New Revision: 291333
URL: https://svnweb.freebsd.org/changeset/base/291333

Log:
  Import ACPICA 20151124.

Added:
  vendor-sys/acpica/dist/source/common/acfileio.c   (contents, props changed)
  vendor-sys/acpica/dist/source/common/dmtables.c   (contents, props changed)
  vendor-sys/acpica/dist/source/compiler/dttable1.c   (contents, props changed)
  vendor-sys/acpica/dist/source/compiler/dttable2.c   (contents, props changed)
  vendor-sys/acpica/dist/source/components/executer/extrace.c   (contents, props changed)
  vendor-sys/acpica/dist/source/tools/acpixtract/acpixtract.h   (contents, props changed)
  vendor-sys/acpica/dist/source/tools/acpixtract/axutils.c   (contents, props changed)
Deleted:
  vendor-sys/acpica/dist/source/components/utilities/utfileio.c
Modified:
  vendor-sys/acpica/dist/changes.txt
  vendor-sys/acpica/dist/generate/unix/acpiexamples/Makefile
  vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile
  vendor-sys/acpica/dist/generate/unix/acpinames/Makefile
  vendor-sys/acpica/dist/generate/unix/acpixtract/Makefile
  vendor-sys/acpica/dist/generate/unix/iasl/Makefile
  vendor-sys/acpica/dist/source/common/acgetline.c
  vendor-sys/acpica/dist/source/common/adisasm.c
  vendor-sys/acpica/dist/source/common/adwalk.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/getopt.c
  vendor-sys/acpica/dist/source/compiler/aslanalyze.c
  vendor-sys/acpica/dist/source/compiler/aslbtypes.c
  vendor-sys/acpica/dist/source/compiler/aslcodegen.c
  vendor-sys/acpica/dist/source/compiler/aslcompile.c
  vendor-sys/acpica/dist/source/compiler/aslcompiler.l
  vendor-sys/acpica/dist/source/compiler/aslerror.c
  vendor-sys/acpica/dist/source/compiler/aslfileio.c
  vendor-sys/acpica/dist/source/compiler/aslfiles.c
  vendor-sys/acpica/dist/source/compiler/aslfold.c
  vendor-sys/acpica/dist/source/compiler/aslhex.c
  vendor-sys/acpica/dist/source/compiler/asllength.c
  vendor-sys/acpica/dist/source/compiler/asllisting.c
  vendor-sys/acpica/dist/source/compiler/asllistsup.c
  vendor-sys/acpica/dist/source/compiler/aslload.c
  vendor-sys/acpica/dist/source/compiler/aslmap.c
  vendor-sys/acpica/dist/source/compiler/aslmapenter.c
  vendor-sys/acpica/dist/source/compiler/aslmapoutput.c
  vendor-sys/acpica/dist/source/compiler/aslmessages.c
  vendor-sys/acpica/dist/source/compiler/aslmessages.h
  vendor-sys/acpica/dist/source/compiler/aslmethod.c
  vendor-sys/acpica/dist/source/compiler/aslnamesp.c
  vendor-sys/acpica/dist/source/compiler/aslopcodes.c
  vendor-sys/acpica/dist/source/compiler/asloperands.c
  vendor-sys/acpica/dist/source/compiler/aslopt.c
  vendor-sys/acpica/dist/source/compiler/asloptions.c
  vendor-sys/acpica/dist/source/compiler/aslpredef.c
  vendor-sys/acpica/dist/source/compiler/aslprepkg.c
  vendor-sys/acpica/dist/source/compiler/aslprune.c
  vendor-sys/acpica/dist/source/compiler/aslresource.c
  vendor-sys/acpica/dist/source/compiler/aslrestype1.c
  vendor-sys/acpica/dist/source/compiler/aslrestype1i.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2d.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2e.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2q.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2s.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2w.c
  vendor-sys/acpica/dist/source/compiler/aslrules.y
  vendor-sys/acpica/dist/source/compiler/aslstubs.c
  vendor-sys/acpica/dist/source/compiler/asltokens.y
  vendor-sys/acpica/dist/source/compiler/asltransform.c
  vendor-sys/acpica/dist/source/compiler/asltree.c
  vendor-sys/acpica/dist/source/compiler/asltypes.h
  vendor-sys/acpica/dist/source/compiler/asltypes.y
  vendor-sys/acpica/dist/source/compiler/aslutils.c
  vendor-sys/acpica/dist/source/compiler/asluuid.c
  vendor-sys/acpica/dist/source/compiler/aslxref.c
  vendor-sys/acpica/dist/source/compiler/dtcompile.c
  vendor-sys/acpica/dist/source/compiler/dtcompiler.h
  vendor-sys/acpica/dist/source/compiler/dtexpress.c
  vendor-sys/acpica/dist/source/compiler/dtfield.c
  vendor-sys/acpica/dist/source/compiler/dtio.c
  vendor-sys/acpica/dist/source/compiler/dttable.c
  vendor-sys/acpica/dist/source/compiler/dttemplate.c
  vendor-sys/acpica/dist/source/compiler/prexpress.c
  vendor-sys/acpica/dist/source/compiler/prmacros.c
  vendor-sys/acpica/dist/source/compiler/prscan.c
  vendor-sys/acpica/dist/source/compiler/prutils.c
  vendor-sys/acpica/dist/source/components/debugger/dbcmds.c
  vendor-sys/acpica/dist/source/components/debugger/dbconvert.c
  vendor-sys/acpica/dist/source/components/debugger/dbdisply.c
  vendor-sys/acpica/dist/source/components/debugger/dbexec.c
  vendor-sys/acpica/dist/source/components/debugger/dbfileio.c
  vendor-sys/acpica/dist/source/components/debugger/dbinput.c
  vendor-sys/acpica/dist/source/components/debugger/dbmethod.c
  vendor-sys/acpica/dist/source/components/debugger/dbnames.c
  vendor-sys/acpica/dist/source/components/debugger/dbobject.c
  vendor-sys/acpica/dist/source/components/debugger/dbstats.c
  vendor-sys/acpica/dist/source/components/debugger/dbtest.c
  vendor-sys/acpica/dist/source/components/debugger/dbutils.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/dmcstyle.c
  vendor-sys/acpica/dist/source/components/disassembler/dmdeferred.c
  vendor-sys/acpica/dist/source/components/disassembler/dmnames.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/dmresrcl.c
  vendor-sys/acpica/dist/source/components/disassembler/dmresrcl2.c
  vendor-sys/acpica/dist/source/components/disassembler/dmresrcs.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/dscontrol.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsdebug.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsinit.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsmethod.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsmthdat.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsobject.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/dispatcher/dswscope.c
  vendor-sys/acpica/dist/source/components/dispatcher/dswstate.c
  vendor-sys/acpica/dist/source/components/events/evevent.c
  vendor-sys/acpica/dist/source/components/events/evglock.c
  vendor-sys/acpica/dist/source/components/events/evgpe.c
  vendor-sys/acpica/dist/source/components/events/evgpeblk.c
  vendor-sys/acpica/dist/source/components/events/evgpeinit.c
  vendor-sys/acpica/dist/source/components/events/evgpeutil.c
  vendor-sys/acpica/dist/source/components/events/evhandler.c
  vendor-sys/acpica/dist/source/components/events/evmisc.c
  vendor-sys/acpica/dist/source/components/events/evregion.c
  vendor-sys/acpica/dist/source/components/events/evrgnini.c
  vendor-sys/acpica/dist/source/components/events/evsci.c
  vendor-sys/acpica/dist/source/components/events/evxface.c
  vendor-sys/acpica/dist/source/components/events/evxfevnt.c
  vendor-sys/acpica/dist/source/components/events/evxfgpe.c
  vendor-sys/acpica/dist/source/components/events/evxfregn.c
  vendor-sys/acpica/dist/source/components/executer/exconfig.c
  vendor-sys/acpica/dist/source/components/executer/exconvrt.c
  vendor-sys/acpica/dist/source/components/executer/excreate.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/exfield.c
  vendor-sys/acpica/dist/source/components/executer/exfldio.c
  vendor-sys/acpica/dist/source/components/executer/exmisc.c
  vendor-sys/acpica/dist/source/components/executer/exmutex.c
  vendor-sys/acpica/dist/source/components/executer/exnames.c
  vendor-sys/acpica/dist/source/components/executer/exoparg1.c
  vendor-sys/acpica/dist/source/components/executer/exoparg2.c
  vendor-sys/acpica/dist/source/components/executer/exoparg3.c
  vendor-sys/acpica/dist/source/components/executer/exoparg6.c
  vendor-sys/acpica/dist/source/components/executer/exprep.c
  vendor-sys/acpica/dist/source/components/executer/exregion.c
  vendor-sys/acpica/dist/source/components/executer/exresnte.c
  vendor-sys/acpica/dist/source/components/executer/exresolv.c
  vendor-sys/acpica/dist/source/components/executer/exresop.c
  vendor-sys/acpica/dist/source/components/executer/exstore.c
  vendor-sys/acpica/dist/source/components/executer/exstoren.c
  vendor-sys/acpica/dist/source/components/executer/exstorob.c
  vendor-sys/acpica/dist/source/components/executer/exsystem.c
  vendor-sys/acpica/dist/source/components/executer/exutils.c
  vendor-sys/acpica/dist/source/components/hardware/hwacpi.c
  vendor-sys/acpica/dist/source/components/hardware/hwesleep.c
  vendor-sys/acpica/dist/source/components/hardware/hwgpe.c
  vendor-sys/acpica/dist/source/components/hardware/hwregs.c
  vendor-sys/acpica/dist/source/components/hardware/hwsleep.c
  vendor-sys/acpica/dist/source/components/hardware/hwxface.c
  vendor-sys/acpica/dist/source/components/hardware/hwxfsleep.c
  vendor-sys/acpica/dist/source/components/namespace/nsaccess.c
  vendor-sys/acpica/dist/source/components/namespace/nsalloc.c
  vendor-sys/acpica/dist/source/components/namespace/nsarguments.c
  vendor-sys/acpica/dist/source/components/namespace/nsconvert.c
  vendor-sys/acpica/dist/source/components/namespace/nsdump.c
  vendor-sys/acpica/dist/source/components/namespace/nsdumpdv.c
  vendor-sys/acpica/dist/source/components/namespace/nseval.c
  vendor-sys/acpica/dist/source/components/namespace/nsinit.c
  vendor-sys/acpica/dist/source/components/namespace/nsload.c
  vendor-sys/acpica/dist/source/components/namespace/nsnames.c
  vendor-sys/acpica/dist/source/components/namespace/nsobject.c
  vendor-sys/acpica/dist/source/components/namespace/nsparse.c
  vendor-sys/acpica/dist/source/components/namespace/nsprepkg.c
  vendor-sys/acpica/dist/source/components/namespace/nsrepair.c
  vendor-sys/acpica/dist/source/components/namespace/nsrepair2.c
  vendor-sys/acpica/dist/source/components/namespace/nssearch.c
  vendor-sys/acpica/dist/source/components/namespace/nsutils.c
  vendor-sys/acpica/dist/source/components/namespace/nswalk.c
  vendor-sys/acpica/dist/source/components/namespace/nsxfeval.c
  vendor-sys/acpica/dist/source/components/namespace/nsxfname.c
  vendor-sys/acpica/dist/source/components/namespace/nsxfobj.c
  vendor-sys/acpica/dist/source/components/parser/psargs.c
  vendor-sys/acpica/dist/source/components/parser/psloop.c
  vendor-sys/acpica/dist/source/components/parser/psobject.c
  vendor-sys/acpica/dist/source/components/parser/psparse.c
  vendor-sys/acpica/dist/source/components/parser/psscope.c
  vendor-sys/acpica/dist/source/components/parser/psutils.c
  vendor-sys/acpica/dist/source/components/parser/pswalk.c
  vendor-sys/acpica/dist/source/components/parser/psxface.c
  vendor-sys/acpica/dist/source/components/resources/rsaddr.c
  vendor-sys/acpica/dist/source/components/resources/rscalc.c
  vendor-sys/acpica/dist/source/components/resources/rscreate.c
  vendor-sys/acpica/dist/source/components/resources/rsdump.c
  vendor-sys/acpica/dist/source/components/resources/rslist.c
  vendor-sys/acpica/dist/source/components/resources/rsmisc.c
  vendor-sys/acpica/dist/source/components/resources/rsutils.c
  vendor-sys/acpica/dist/source/components/resources/rsxface.c
  vendor-sys/acpica/dist/source/components/tables/tbdata.c
  vendor-sys/acpica/dist/source/components/tables/tbfadt.c
  vendor-sys/acpica/dist/source/components/tables/tbfind.c
  vendor-sys/acpica/dist/source/components/tables/tbinstal.c
  vendor-sys/acpica/dist/source/components/tables/tbprint.c
  vendor-sys/acpica/dist/source/components/tables/tbutils.c
  vendor-sys/acpica/dist/source/components/tables/tbxface.c
  vendor-sys/acpica/dist/source/components/tables/tbxfload.c
  vendor-sys/acpica/dist/source/components/tables/tbxfroot.c
  vendor-sys/acpica/dist/source/components/utilities/utaddress.c
  vendor-sys/acpica/dist/source/components/utilities/utalloc.c
  vendor-sys/acpica/dist/source/components/utilities/utcache.c
  vendor-sys/acpica/dist/source/components/utilities/utcopy.c
  vendor-sys/acpica/dist/source/components/utilities/utdecode.c
  vendor-sys/acpica/dist/source/components/utilities/utdelete.c
  vendor-sys/acpica/dist/source/components/utilities/uterror.c
  vendor-sys/acpica/dist/source/components/utilities/uteval.c
  vendor-sys/acpica/dist/source/components/utilities/uthex.c
  vendor-sys/acpica/dist/source/components/utilities/utids.c
  vendor-sys/acpica/dist/source/components/utilities/utinit.c
  vendor-sys/acpica/dist/source/components/utilities/utmath.c
  vendor-sys/acpica/dist/source/components/utilities/utmisc.c
  vendor-sys/acpica/dist/source/components/utilities/utmutex.c
  vendor-sys/acpica/dist/source/components/utilities/utnonansi.c
  vendor-sys/acpica/dist/source/components/utilities/utobject.c
  vendor-sys/acpica/dist/source/components/utilities/utosi.c
  vendor-sys/acpica/dist/source/components/utilities/utownerid.c
  vendor-sys/acpica/dist/source/components/utilities/utpredef.c
  vendor-sys/acpica/dist/source/components/utilities/utprint.c
  vendor-sys/acpica/dist/source/components/utilities/utresrc.c
  vendor-sys/acpica/dist/source/components/utilities/utstate.c
  vendor-sys/acpica/dist/source/components/utilities/utstring.c
  vendor-sys/acpica/dist/source/components/utilities/uttrack.c
  vendor-sys/acpica/dist/source/components/utilities/utuuid.c
  vendor-sys/acpica/dist/source/components/utilities/utxface.c
  vendor-sys/acpica/dist/source/components/utilities/utxferror.c
  vendor-sys/acpica/dist/source/components/utilities/utxfmutex.c
  vendor-sys/acpica/dist/source/include/acapps.h
  vendor-sys/acpica/dist/source/include/acdebug.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/acmacros.h
  vendor-sys/acpica/dist/source/include/acpiosxf.h
  vendor-sys/acpica/dist/source/include/acpixf.h
  vendor-sys/acpica/dist/source/include/actables.h
  vendor-sys/acpica/dist/source/include/actypes.h
  vendor-sys/acpica/dist/source/include/acutils.h
  vendor-sys/acpica/dist/source/include/platform/aclinux.h
  vendor-sys/acpica/dist/source/include/platform/aclinuxex.h
  vendor-sys/acpica/dist/source/os_specific/service_layers/oslibcfs.c
  vendor-sys/acpica/dist/source/os_specific/service_layers/oswindir.c
  vendor-sys/acpica/dist/source/os_specific/service_layers/oswinxf.c
  vendor-sys/acpica/dist/source/tools/acpibin/abcompare.c
  vendor-sys/acpica/dist/source/tools/acpidump/apfiles.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aecommon.h
  vendor-sys/acpica/dist/source/tools/acpiexec/aeexec.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aehandlers.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aeregion.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aetables.c
  vendor-sys/acpica/dist/source/tools/acpihelp/ahdecode.c
  vendor-sys/acpica/dist/source/tools/acpinames/acpinames.h
  vendor-sys/acpica/dist/source/tools/acpinames/anmain.c
  vendor-sys/acpica/dist/source/tools/acpinames/antables.c
  vendor-sys/acpica/dist/source/tools/acpisrc/ascase.c
  vendor-sys/acpica/dist/source/tools/acpisrc/asconvrt.c
  vendor-sys/acpica/dist/source/tools/acpisrc/asfile.c
  vendor-sys/acpica/dist/source/tools/acpisrc/asmain.c
  vendor-sys/acpica/dist/source/tools/acpisrc/asremove.c
  vendor-sys/acpica/dist/source/tools/acpisrc/astable.c
  vendor-sys/acpica/dist/source/tools/acpixtract/acpixtract.c
  vendor-sys/acpica/dist/source/tools/acpixtract/axmain.c
  vendor-sys/acpica/dist/source/tools/examples/examples.c

Modified: vendor-sys/acpica/dist/changes.txt
==============================================================================
--- vendor-sys/acpica/dist/changes.txt	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/changes.txt	Wed Nov 25 21:04:42 2015	(r291333)
@@ -1,4 +1,85 @@
 ----------------------------------------
+24 November 2015. Summary of changes for version 20151124:
+
+This release is available at https://acpica.org/downloads
+
+
+1) ACPICA kernel-resident subsystem:
+
+Fixed a possible regression for a previous update to FADT handling. The 
+FADT no longer has a fixed table ID, causing some issues with code that 
+was hardwired to a specific ID. Lv Zheng.
+
+Fixed a problem where the method auto-serialization could interfere with 
+the current SyncLevel. This change makes the auto-serialization support 
+transparent to the SyncLevel support and management.
+
+Removed support for the _SUB predefined name in AcpiGetObjectInfo. This 
+interface is intended for early access to the namespace during the 
+initial namespace device discovery walk. The _SUB method has been seen to 
+access operation regions in some cases, causing errors because the 
+operation regions are not fully initialized.
+
+AML Debugger: Fixed some issues with the terminate/quit/exit commands 
+that can cause faults. Lv Zheng.
+
+AML Debugger: Add thread ID support so that single-step mode only applies 
+to the AML Debugger thread. This prevents runtime errors within some 
+kernels. Lv Zheng. 
+
+Eliminated extraneous warnings from AcpiGetSleepTypeData. Since the _Sx 
+methods that are invoked by this interface are optional, removed warnings 
+emitted for the case where one or more of these methods do not exist. 
+ACPICA BZ 1208, original change by Prarit Bhargava.
+
+Made a major pass through the entire ACPICA source code base to 
+standardize formatting that has diverged a bit over time. There are no 
+functional changes, but this will of course cause quite a few code 
+differences from the previous ACPICA release.
+
+Example Code and Data Size: These are the sizes for the OS-independent 
+acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
+debug version of the code includes the debug output trace mechanism and 
+has a much larger code and data size.
+
+  Current Release:
+    Non-Debug Version: 102.0K Code, 28.3K Data, 130.3K Total
+    Debug Version:     199.6K Code, 81.8K Data, 281.4K Total
+  Previous Release:
+    Non-Debug Version: 101.7K Code, 27.9K Data, 129.6K Total
+    Debug Version:     199.3K Code, 81.4K Data, 280.7K Total
+
+
+2) iASL Compiler/Disassembler and Tools:
+
+iASL/acpiexec/acpixtract/disassembler: Added support to allow multiple 
+definition blocks within a single ASL file and the resulting AML file. 
+Support for this type of file was also added to the various tools that 
+use binary AML files: acpiexec, acpixtract, and the AML disassembler. The 
+example code below shows two definition blocks within the same file:
+
+    DefinitionBlock ("dsdt.aml", "DSDT", 2, "Intel", "Template", 
+0x12345678)
+    {
+    }
+    DefinitionBlock ("", "SSDT", 2, "Intel", "Template", 0xABCDEF01)
+    {
+    }
+
+iASL: Enhanced typechecking for the Name() operator. All expressions for 
+the value of the named object must be reduced/folded to a single constant 
+at compile time, as per the ACPI specification (the AML definition of 
+Name()).
+
+iASL: Fixed some code indentation issues for the -ic and -ia options (C 
+and assembly headers). Now all emitted code correctly begins in column 1.
+
+iASL: Added an error message for an attempt to open a Scope() on an 
+object defined in an SSDT. The DSDT is always loaded into the namespace 
+first, so any attempt to open a Scope on an SSDT object will fail at 
+runtime.
+
+----------------------------------------
 30 September 2015. Summary of changes for version 20150930:
 
 1) ACPICA kernel-resident subsystem:

Modified: vendor-sys/acpica/dist/generate/unix/acpiexamples/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/acpiexamples/Makefile	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/generate/unix/acpiexamples/Makefile	Wed Nov 25 21:04:42 2015	(r291333)
@@ -82,6 +82,7 @@ OBJECTS = \
 	$(OBJDIR)/exstoren.o\
 	$(OBJDIR)/exstorob.o\
 	$(OBJDIR)/exsystem.o\
+	$(OBJDIR)/extrace.o\
 	$(OBJDIR)/exutils.o\
 	$(OBJDIR)/hwpci.o\
 	$(OBJDIR)/nsaccess.o\

Modified: vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile	Wed Nov 25 21:04:42 2015	(r291333)
@@ -40,6 +40,7 @@ HEADERS = \
 
 OBJECTS = \
 	$(OBJDIR)/acgetline.o\
+	$(OBJDIR)/acfileio.o\
 	$(OBJDIR)/aeexec.o\
 	$(OBJDIR)/aehandlers.o\
 	$(OBJDIR)/aeinitfile.o\
@@ -127,6 +128,7 @@ OBJECTS = \
 	$(OBJDIR)/exstoren.o\
 	$(OBJDIR)/exstorob.o\
 	$(OBJDIR)/exsystem.o\
+	$(OBJDIR)/extrace.o\
 	$(OBJDIR)/exutils.o\
 	$(OBJDIR)/getopt.o\
 	$(OBJDIR)/hwacpi.o\
@@ -207,7 +209,6 @@ OBJECTS = \
 	$(OBJDIR)/uterror.o\
 	$(OBJDIR)/uteval.o\
 	$(OBJDIR)/utexcep.o\
-	$(OBJDIR)/utfileio.o\
 	$(OBJDIR)/utglobal.o\
 	$(OBJDIR)/uthex.o\
 	$(OBJDIR)/utids.o\

Modified: vendor-sys/acpica/dist/generate/unix/acpinames/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/acpinames/Makefile	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/generate/unix/acpinames/Makefile	Wed Nov 25 21:04:42 2015	(r291333)
@@ -34,6 +34,7 @@ HEADERS = \
     $(wildcard $(ACPINAMES)/*.h)
 
 OBJECTS = \
+	$(OBJDIR)/acfileio.o\
 	$(OBJDIR)/anmain.o\
 	$(OBJDIR)/anstubs.o\
 	$(OBJDIR)/antables.o\
@@ -103,7 +104,6 @@ OBJECTS = \
 	$(OBJDIR)/uterror.o\
 	$(OBJDIR)/uteval.o\
 	$(OBJDIR)/utexcep.o\
-	$(OBJDIR)/utfileio.o\
 	$(OBJDIR)/utglobal.o\
 	$(OBJDIR)/uthex.o\
 	$(OBJDIR)/utids.o\

Modified: vendor-sys/acpica/dist/generate/unix/acpixtract/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/acpixtract/Makefile	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/generate/unix/acpixtract/Makefile	Wed Nov 25 21:04:42 2015	(r291333)
@@ -29,6 +29,7 @@ HEADERS = \
 OBJECTS = \
     $(OBJDIR)/acpixtract.o\
     $(OBJDIR)/axmain.o\
+    $(OBJDIR)/axutils.o\
     $(OBJDIR)/getopt.o\
     $(OBJDIR)/oslibcfs.o\
     $(OBJDIR)/osunixxf.o\

Modified: vendor-sys/acpica/dist/generate/unix/iasl/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/iasl/Makefile	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/generate/unix/iasl/Makefile	Wed Nov 25 21:04:42 2015	(r291333)
@@ -43,6 +43,7 @@ OBJECTS = \
 	$(OBJDIR)/dtparserparse.o\
 	$(OBJDIR)/prparserlex.o\
 	$(OBJDIR)/prparserparse.o\
+	$(OBJDIR)/acfileio.o\
 	$(OBJDIR)/adfile.o\
 	$(OBJDIR)/adisasm.o\
 	$(OBJDIR)/adwalk.o\
@@ -113,6 +114,7 @@ OBJECTS = \
 	$(OBJDIR)/dmresrcs.o\
 	$(OBJDIR)/dmrestag.o\
 	$(OBJDIR)/dmtable.o\
+	$(OBJDIR)/dmtables.o\
 	$(OBJDIR)/dmtbdump.o\
 	$(OBJDIR)/dmtbinfo.o\
 	$(OBJDIR)/dmutils.o\
@@ -134,6 +136,8 @@ OBJECTS = \
 	$(OBJDIR)/dtio.o\
 	$(OBJDIR)/dtsubtable.o\
 	$(OBJDIR)/dttable.o\
+	$(OBJDIR)/dttable1.o\
+	$(OBJDIR)/dttable2.o\
 	$(OBJDIR)/dttemplate.o\
 	$(OBJDIR)/dtutils.o\
 	$(OBJDIR)/exconvrt.o\
@@ -189,6 +193,7 @@ OBJECTS = \
 	$(OBJDIR)/tbprint.o\
 	$(OBJDIR)/tbutils.o\
 	$(OBJDIR)/tbxface.o\
+	$(OBJDIR)/tbxfload.o\
 	$(OBJDIR)/utaddress.o\
 	$(OBJDIR)/utalloc.o\
 	$(OBJDIR)/utbuffer.o\
@@ -199,7 +204,6 @@ OBJECTS = \
 	$(OBJDIR)/utdelete.o\
 	$(OBJDIR)/uterror.o\
 	$(OBJDIR)/utexcep.o\
-	$(OBJDIR)/utfileio.o\
 	$(OBJDIR)/utglobal.o\
 	$(OBJDIR)/uthex.o\
 	$(OBJDIR)/utinit.o\

Added: vendor-sys/acpica/dist/source/common/acfileio.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor-sys/acpica/dist/source/common/acfileio.c	Wed Nov 25 21:04:42 2015	(r291333)
@@ -0,0 +1,357 @@
+/******************************************************************************
+ *
+ * Module Name: acfileio - Get ACPI tables from file
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2015, 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 "acpi.h"
+#include "accommon.h"
+#include "acapps.h"
+#include "actables.h"
+#include "acutils.h"
+#include <errno.h>
+
+#define _COMPONENT          ACPI_UTILITIES
+        ACPI_MODULE_NAME    ("acfileio")
+
+
+/* Local prototypes */
+
+static ACPI_STATUS
+AcpiAcGetOneTableFromFile (
+    char                    *Filename,
+    FILE                    *File,
+    UINT8                   GetOnlyAmlTables,
+    ACPI_TABLE_HEADER       **Table);
+
+static ACPI_STATUS
+AcpiAcCheckTextModeCorruption (
+    ACPI_TABLE_HEADER       *Table);
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiAcGetAllTablesFromFile
+ *
+ * PARAMETERS:  Filename            - Table filename
+ *              GetOnlyAmlTables    - TRUE if the tables must be AML tables
+ *              ReturnListHead      - Where table list is returned
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Get all ACPI tables from within a single file.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiAcGetAllTablesFromFile (
+    char                    *Filename,
+    UINT8                   GetOnlyAmlTables,
+    ACPI_NEW_TABLE_DESC     **ReturnListHead)
+{
+    ACPI_NEW_TABLE_DESC     *ListHead = NULL;
+    ACPI_NEW_TABLE_DESC     *ListTail = NULL;
+    ACPI_NEW_TABLE_DESC     *TableDesc;
+    FILE                    *File;
+    ACPI_TABLE_HEADER       *Table = NULL;
+    UINT32                  FileSize;
+    ACPI_STATUS             Status = AE_OK;
+
+
+    File = fopen (Filename, "rb");
+    if (!File)
+    {
+        perror ("Could not open input file");
+        if (errno == ENOENT)
+        {
+            return (AE_NOT_EXIST);
+        }
+
+        return (AE_ERROR);
+    }
+
+    /* Get the file size */
+
+    FileSize = CmGetFileSize (File);
+    if (FileSize == ACPI_UINT32_MAX)
+    {
+        return (AE_ERROR);
+    }
+
+    if (FileSize < 4)
+    {
+        return (AE_BAD_HEADER);
+    }
+
+    /* Read all tables within the file */
+
+    while (ACPI_SUCCESS (Status))
+    {
+        /* Get one entire ACPI table */
+
+        Status = AcpiAcGetOneTableFromFile (
+            Filename, File, GetOnlyAmlTables, &Table);
+        if (Status == AE_CTRL_TERMINATE)
+        {
+            Status = AE_OK;
+            break;
+        }
+        else if (Status == AE_TYPE)
+        {
+            continue;
+        }
+        else if (ACPI_FAILURE (Status))
+        {
+            return (Status);
+        }
+
+        /* Allocate and link a table descriptor */
+
+        TableDesc = AcpiOsAllocate (sizeof (ACPI_NEW_TABLE_DESC));
+        TableDesc->Table = Table;
+        TableDesc->Next = NULL;
+
+        /* Link at the end of the local table list */
+
+        if (!ListHead)
+        {
+            ListHead = TableDesc;
+            ListTail = TableDesc;
+        }
+        else
+        {
+            ListTail->Next = TableDesc;
+            ListTail = TableDesc;
+        }
+    }
+
+    /* Add the local table list to the end of the global list */
+
+    if (*ReturnListHead)
+    {
+        ListTail = *ReturnListHead;
+        while (ListTail->Next)
+        {
+            ListTail = ListTail->Next;
+        }
+
+        ListTail->Next = ListHead;
+    }
+    else
+    {
+        *ReturnListHead = ListHead;
+    }
+
+    fclose(File);
+    return (Status);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiAcGetOneTableFromFile
+ *
+ * PARAMETERS:  Filename            - File where table is located
+ *              File                - Open FILE pointer to Filename
+ *              GetOnlyAmlTables    - TRUE if the tables must be AML tables.
+ *              ReturnTable         - Where a pointer to the table is returned
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Read the next ACPI table from a file. Implements support
+ *              for multiple tables within a single file. File must already
+ *              be open.
+ *
+ * Note: Loading an RSDP is not supported.
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiAcGetOneTableFromFile (
+    char                    *Filename,
+    FILE                    *File,
+    UINT8                   GetOnlyAmlTables,
+    ACPI_TABLE_HEADER       **ReturnTable)
+{
+    ACPI_STATUS             Status = AE_OK;
+    ACPI_TABLE_HEADER       TableHeader;
+    ACPI_TABLE_HEADER       *Table;
+    INT32                   Count;
+    long                    Position;
+
+
+    *ReturnTable = NULL;
+
+
+    /* Get just the table header to get signature and length */
+
+    Position = ftell (File);
+    Count = fread (&TableHeader, 1, sizeof (ACPI_TABLE_HEADER), File);
+    if (Count != sizeof (ACPI_TABLE_HEADER))
+    {
+        return (AE_CTRL_TERMINATE);
+    }
+
+    if (GetOnlyAmlTables)
+    {
+        /* Table must be an AML table (DSDT/SSDT) or FADT */
+
+        if (!ACPI_COMPARE_NAME (TableHeader.Signature, ACPI_SIG_FADT) &&
+            !AcpiUtIsAmlTable (&TableHeader))
+        {
+            fprintf (stderr,
+                "    %s: [%4.4s] is not an AML table - ignoring\n",
+                Filename, TableHeader.Signature);
+
+            return (AE_TYPE);
+        }
+    }
+
+    /* Allocate a buffer for the entire table */
+
+    Table = AcpiOsAllocate ((size_t) TableHeader.Length);
+    if (!Table)
+    {
+        return (AE_NO_MEMORY);
+    }
+
+    /* Now read the entire table */
+
+    fseek (File, Position, SEEK_SET);
+
+    Count = fread (Table, 1, TableHeader.Length, File);
+    if (Count != (INT32) TableHeader.Length)
+    {
+        Status = AE_ERROR;
+        goto ErrorExit;
+    }
+
+    /* Validate the checksum (just issue a warning) */
+
+    Status = AcpiTbVerifyChecksum (Table, TableHeader.Length);
+    if (ACPI_FAILURE (Status))
+    {
+        Status = AcpiAcCheckTextModeCorruption (Table);
+        if (ACPI_FAILURE (Status))
+        {
+            goto ErrorExit;
+        }
+    }
+
+    fprintf (stderr,
+        "Loading ACPI table [%4.4s] from file %12s - Length 0x%06X (%u)\n",
+        TableHeader.Signature, Filename,
+        TableHeader.Length, TableHeader.Length);
+
+    *ReturnTable = Table;
+    return (AE_OK);
+
+
+ErrorExit:
+    AcpiOsFree (Table);
+    return (Status);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AcpiAcCheckTextModeCorruption
+ *
+ * PARAMETERS:  Table           - Table buffer starting with table header
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Check table for text mode file corruption where all linefeed
+ *              characters (LF) have been replaced by carriage return linefeed
+ *              pairs (CR/LF).
+ *
+ ******************************************************************************/
+
+static ACPI_STATUS
+AcpiAcCheckTextModeCorruption (
+    ACPI_TABLE_HEADER       *Table)
+{
+    UINT32                  i;
+    UINT32                  Pairs = 0;
+    UINT8                   *Buffer = ACPI_CAST_PTR (UINT8, Table);
+
+
+    /* Scan entire table to determine if each LF has been prefixed with a CR */
+
+    for (i = 1; i < Table->Length; i++)
+    {
+        if (Buffer[i] == 0x0A)
+        {
+            if (Buffer[i - 1] != 0x0D)
+            {
+                /* The LF does not have a preceding CR, table not corrupted */
+
+                return (AE_OK);
+            }
+            else
+            {
+                /* Found a CR/LF pair */
+
+                Pairs++;
+            }
+
+            i++;
+        }
+    }
+
+    if (!Pairs)
+    {
+        return (AE_OK);
+    }
+
+    /*
+     * Entire table scanned, each CR is part of a CR/LF pair --
+     * meaning that the table was treated as a text file somewhere.
+     *
+     * NOTE: We can't "fix" the table, because any existing CR/LF pairs in the
+     * original table are left untouched by the text conversion process --
+     * meaning that we cannot simply replace CR/LF pairs with LFs.
+     */
+    AcpiOsPrintf ("Table has been corrupted by text mode conversion\n");
+    AcpiOsPrintf ("All LFs (%u) were changed to CR/LF pairs\n", Pairs);
+    AcpiOsPrintf ("Table cannot be repaired!\n");
+
+    return (AE_BAD_VALUE);
+}

Modified: vendor-sys/acpica/dist/source/common/acgetline.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/acgetline.c	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/source/common/acgetline.c	Wed Nov 25 21:04:42 2015	(r291333)
@@ -262,6 +262,7 @@ AcpiOsGetLine (
 
             ACPI_BACKUP_CURSOR (i, EndOfLine - CursorPosition + 1);
             EndOfLine--;
+
             if (CursorPosition > 0)
             {
                 CursorPosition--;

Modified: vendor-sys/acpica/dist/source/common/adisasm.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/adisasm.c	Wed Nov 25 20:43:45 2015	(r291332)
+++ vendor-sys/acpica/dist/source/common/adisasm.c	Wed Nov 25 21:04:42 2015	(r291333)
@@ -42,16 +42,14 @@
  */
 
 #include "aslcompiler.h"
-#include "acparser.h"
 #include "amlcode.h"
 #include "acdisasm.h"
 #include "acdispat.h"
 #include "acnamesp.h"
-#include "actables.h"
+#include "acparser.h"
 #include "acapps.h"
 
 #include <stdio.h>
-#include <time.h>
 
 
 #define _COMPONENT          ACPI_TOOLS
@@ -59,17 +57,29 @@
 
 /* Local prototypes */
 
-static void
-AdCreateTableHeader (
+static ACPI_STATUS
+AdDoExternalFileList (
+    char                    *Filename);
+
+static ACPI_STATUS
+AdDisassembleOneTable (
+    ACPI_TABLE_HEADER       *Table,
+    FILE                    *File,
     char                    *Filename,
-    ACPI_TABLE_HEADER       *Table);
+    char                    *DisasmFilename);
 
 static ACPI_STATUS
-AdStoreTable (
+AdReparseOneTable (
     ACPI_TABLE_HEADER       *Table,
-    UINT32                  *TableIndex);
+    FILE                    *File,
+    ACPI_OWNER_ID           OwnerId);
 
-/* Stubs for ASL compiler */
+
+ACPI_TABLE_DESC             LocalTables[1];
+ACPI_PARSE_OBJECT           *AcpiGbl_ParseOpRoot;
+
+
+/* Stubs for everything except ASL compiler */
 
 #ifndef ACPI_ASL_COMPILER
 BOOLEAN
@@ -77,7 +87,7 @@ AcpiDsIsResultUsed (
     ACPI_PARSE_OBJECT       *Op,
     ACPI_WALK_STATE         *WalkState)
 {
-    return TRUE;
+    return (TRUE);
 }
 
 ACPI_STATUS
@@ -89,52 +99,6 @@ AcpiDsMethodError (
 }
 #endif
 
-ACPI_STATUS
-AcpiNsLoadTable (
-    UINT32                  TableIndex,
-    ACPI_NAMESPACE_NODE     *Node)
-{
-    return (AE_NOT_IMPLEMENTED);
-}
-
-ACPI_STATUS
-AcpiDsRestartControlMethod (
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_OPERAND_OBJECT     *ReturnDesc)
-{
-    return (AE_OK);
-}
-
-void
-AcpiDsTerminateControlMethod (
-    ACPI_OPERAND_OBJECT     *MethodDesc,
-    ACPI_WALK_STATE         *WalkState)
-{
-    return;
-}
-
-ACPI_STATUS
-AcpiDsCallControlMethod (
-    ACPI_THREAD_STATE       *Thread,
-    ACPI_WALK_STATE         *WalkState,
-    ACPI_PARSE_OBJECT       *Op)
-{
-    return (AE_OK);
-}
-
-ACPI_STATUS
-AcpiDsMethodDataInitArgs (
-    ACPI_OPERAND_OBJECT     **Params,
-    UINT32                  MaxParamCount,
-    ACPI_WALK_STATE         *WalkState)
-{
-    return (AE_OK);
-}
-
-
-static ACPI_TABLE_DESC      LocalTables[1];
-static ACPI_PARSE_OBJECT    *AcpiGbl_ParseOpRoot;
-
 
 /*******************************************************************************
  *
@@ -202,7 +166,7 @@ AdInitialize (
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Disassemble an entire ACPI table
+ * DESCRIPTION: Disassembler entry point. Disassemble an entire ACPI table.
  *
  *****************************************************************************/
 
@@ -214,14 +178,10 @@ AdAmlDisassemble (
     char                    **OutFilename)
 {
     ACPI_STATUS             Status;
-    ACPI_STATUS             GlobalStatus = AE_OK;
     char                    *DisasmFilename = NULL;
-    char                    *ExternalFilename;
-    ACPI_EXTERNAL_FILE      *ExternalFileList = AcpiGbl_ExternalFileList;
     FILE                    *File = NULL;
     ACPI_TABLE_HEADER       *Table = NULL;
-    ACPI_TABLE_HEADER       *ExternalTable;
-    ACPI_OWNER_ID           OwnerId;
+    ACPI_NEW_TABLE_DESC     *ListHead = NULL;
 
 
     /*
@@ -230,81 +190,22 @@ AdAmlDisassemble (
      */
     if (Filename)
     {
-        Status = AcpiDbGetTableFromFile (Filename, &Table, FALSE);
+        /* Get the list of all AML tables in the file */
+
+        Status = AcpiAcGetAllTablesFromFile (Filename,
+            ACPI_GET_ALL_TABLES, &ListHead);
         if (ACPI_FAILURE (Status))
         {
             return (Status);
         }
 
-        /*
-         * External filenames separated by commas
-         * Example: iasl -e file1,file2,file3 -d xxx.aml
-         */
-        while (ExternalFileList)
-        {
-            ExternalFilename = ExternalFileList->Path;
-            if (!strcmp (ExternalFilename, Filename))
-            {
-                /* Next external file */
-
-                ExternalFileList = ExternalFileList->Next;
-                continue;
-            }
+        /* Process any user-specified files for external objects */
 
-            Status = AcpiDbGetTableFromFile (ExternalFilename, &ExternalTable, TRUE);
-            if (ACPI_FAILURE (Status))
-            {
-                if (Status == AE_TYPE)
-                {
-                    ExternalFileList = ExternalFileList->Next;
-                    GlobalStatus = AE_TYPE;
-                    Status = AE_OK;
-                    continue;
-                }
-                return (Status);
-            }
-
-            /* Load external table for symbol resolution */
-
-            if (ExternalTable)
-            {
-                Status = AdParseTable (ExternalTable, &OwnerId, TRUE, TRUE);
-                if (ACPI_FAILURE (Status))
-                {
-                    AcpiOsPrintf ("Could not parse external ACPI tables, %s\n",
-                        AcpiFormatException (Status));
-                    return (Status);
-                }
-
-                /*
-                 * Load namespace from names created within control methods
-                 * Set owner id of nodes in external table
-                 */
-                AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
-                    AcpiGbl_RootNode, OwnerId);
-                AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
-            }
-
-            /* Next external file */
-
-            ExternalFileList = ExternalFileList->Next;
-        }
-
-        if (ACPI_FAILURE (GlobalStatus))
-        {
-            return (GlobalStatus);
-        }
-
-        /* Clear external list generated by Scope in external tables */
-
-        if (AcpiGbl_ExternalFileList)
+        Status = AdDoExternalFileList (Filename);
+        if (ACPI_FAILURE (Status))
         {
-            AcpiDmClearExternalList ();
+            return (Status);
         }
-
-        /* Load any externals defined in the optional external ref file */
-
-        AcpiDmGetExternalsFromFile ();
     }
     else
     {
@@ -353,7 +254,8 @@ AdAmlDisassemble (
         File = fopen (DisasmFilename, "w+");
         if (!File)
         {
-            fprintf (stderr, "Could not open output file %s\n", DisasmFilename);
+            fprintf (stderr, "Could not open output file %s\n",
+                DisasmFilename);
             Status = AE_ERROR;
             goto Cleanup;
         }
@@ -363,190 +265,32 @@ AdAmlDisassemble (
 
     *OutFilename = DisasmFilename;
 
-    /* ForceAmlDisassembly means to assume the table contains valid AML */
-
-    if (!AcpiGbl_ForceAmlDisassembly && !AcpiUtIsAmlTable (Table))
-    {
-        AdDisassemblerHeader (Filename, ACPI_IS_DATA_TABLE);
-        AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n",
-            Table->Signature);
-        AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength]  "
-            "FieldName : FieldValue\n */\n\n");
-
-        AcpiDmDumpDataTable (Table);
-        fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n",
-            Table->Signature);
+    /* Disassemble all AML tables within the file */
 
-        if (File)
-        {
-            fprintf (stderr, "Formatted output:  %s - %u bytes\n",
-                DisasmFilename, CmGetFileSize (File));
-        }
-    }
-    else
+    while (ListHead)
     {
-        /* Always parse the tables, only option is what to display */
-
-        Status = AdParseTable (Table, &OwnerId, TRUE, FALSE);
+        Status = AdDisassembleOneTable (ListHead->Table,
+            File, Filename, DisasmFilename);
         if (ACPI_FAILURE (Status))
         {
-            AcpiOsPrintf ("Could not parse ACPI tables, %s\n",
-                AcpiFormatException (Status));
-            goto Cleanup;
-        }
-
-        if (AslCompilerdebug)
-        {
-            AcpiOsPrintf ("/**** Before second load\n");
-
-            if (File)
-            {
-                NsSetupNamespaceListing (File);
-                NsDisplayNamespace ();
-            }
-            AcpiOsPrintf ("*****/\n");
-        }
-
-        /* Load namespace from names created within control methods */
-
-        AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
-            AcpiGbl_RootNode, OwnerId);
-
-        /*
-         * Cross reference the namespace here, in order to
-         * generate External() statements
-         */
-        AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot,
-            AcpiGbl_RootNode, OwnerId);
-
-        if (AslCompilerdebug)
-        {
-            AcpiDmDumpTree (AcpiGbl_ParseOpRoot);
-        }
-
-        /* Find possible calls to external control methods */
-
-        AcpiDmFindOrphanMethods (AcpiGbl_ParseOpRoot);
-
-        /*
-         * If we found any external control methods, we must reparse
-         * the entire tree with the new information (namely, the
-         * number of arguments per method)
-         */
-        if (AcpiDmGetExternalMethodCount ())
-        {
-            fprintf (stderr,
-                "\nFound %u external control methods, "
-                "reparsing with new information\n",
-                AcpiDmGetExternalMethodCount ());
-
-            /* Reparse, rebuild namespace */
-
-            AcpiPsDeleteParseTree (AcpiGbl_ParseOpRoot);
-            AcpiGbl_ParseOpRoot = NULL;
-            AcpiNsDeleteNamespaceSubtree (AcpiGbl_RootNode);
-
-            AcpiGbl_RootNode                    = NULL;
-            AcpiGbl_RootNodeStruct.Name.Integer = ACPI_ROOT_NAME;
-            AcpiGbl_RootNodeStruct.DescriptorType = ACPI_DESC_TYPE_NAMED;
-            AcpiGbl_RootNodeStruct.Type         = ACPI_TYPE_DEVICE;
-            AcpiGbl_RootNodeStruct.Parent       = NULL;
-            AcpiGbl_RootNodeStruct.Child        = NULL;
-            AcpiGbl_RootNodeStruct.Peer         = NULL;
-            AcpiGbl_RootNodeStruct.Object       = NULL;
-            AcpiGbl_RootNodeStruct.Flags        = 0;
-
-            Status = AcpiNsRootInitialize ();
-
-            /* New namespace, add the external definitions first */
-
-            AcpiDmAddExternalsToNamespace ();
-
-            /* Parse the table again. No need to reload it, however */
-
-            Status = AdParseTable (Table, NULL, FALSE, FALSE);
-            if (ACPI_FAILURE (Status))
-            {
-                AcpiOsPrintf ("Could not parse ACPI tables, %s\n",
-                    AcpiFormatException (Status));
-                goto Cleanup;
-            }
-
-            /* Cross reference the namespace again */
-
-            AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot,
-                AcpiGbl_RootNode, OwnerId);
-
-            AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot,
-                AcpiGbl_RootNode, OwnerId);
-
-            if (AslCompilerdebug)
-            {
-                AcpiOsPrintf ("/**** After second load and resource conversion\n");
-                if (File)
-                {
-                    NsSetupNamespaceListing (File);
-                    NsDisplayNamespace ();
-                }
-                AcpiOsPrintf ("*****/\n");
-
-                AcpiDmDumpTree (AcpiGbl_ParseOpRoot);
-            }
+            break;
         }
 
-        /*
-         * Now that the namespace is finalized, we can perform namespace
-         * transforms.
-         *
-         * 1) Convert fixed-offset references to resource descriptors
-         *    to symbolic references (Note: modifies namespace)
-         */
-        AcpiDmConvertResourceIndexes (AcpiGbl_ParseOpRoot, AcpiGbl_RootNode);
-
-        /* Optional displays */
-
-        if (AcpiGbl_DmOpt_Disasm)
-        {
-            /* This is the real disassembly */
-
-            AdDisplayTables (Filename, Table);
-
-            /* Dump hex table if requested (-vt) */
-
-            AcpiDmDumpDataTable (Table);
-
-            fprintf (stderr, "Disassembly completed\n");
-            if (File)
-            {
-                fprintf (stderr, "ASL Output:    %s - %u bytes\n",
-                    DisasmFilename, CmGetFileSize (File));
-            }
-
-            if (Gbl_MapfileFlag)
-            {
-                fprintf (stderr, "%14s %s - %u bytes\n",
-                    Gbl_Files[ASL_FILE_MAP_OUTPUT].ShortDescription,
-                    Gbl_Files[ASL_FILE_MAP_OUTPUT].Filename,
-                    FlGetFileSize (ASL_FILE_MAP_OUTPUT));
-            }
-        }
+        ListHead = ListHead->Next;
     }
 
 Cleanup:
 
-    if (Table && !AcpiGbl_ForceAmlDisassembly &&!AcpiUtIsAmlTable (Table))
+// check!
+#if 0
+    if (Table && !AcpiGbl_ForceAmlDisassembly && !AcpiUtIsAmlTable (Table))
     {
         ACPI_FREE (Table);
     }
+#endif
 
     if (File)
     {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list