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