Message ID | 1448385321-9333-1-git-send-email-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
Hi Colin, I got compilation errors after I applied this patch as below: aslcodegen.c: In function 'CgWriteNode': aslcodegen.c:714:10: error: 'PARSEOP_DEFINITION_BLOCK' undeclared (first use in this function) case PARSEOP_DEFINITION_BLOCK: ^ aslcodegen.c:714:10: note: each undeclared identifier is reported only once for each function it appears in Makefile:1408: recipe for target 'libfwtsiasl_la-aslcodegen.lo' failed make[4]: *** [libfwtsiasl_la-aslcodegen.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... aslanalyze.c: In function 'AnIsResultUsed': aslanalyze.c:481:10: error: 'PARSEOP_DEFINITION_BLOCK' undeclared (first use in this function) case PARSEOP_DEFINITION_BLOCK: ^ aslanalyze.c:481:10: note: each undeclared identifier is reported only once for each function it appears in Makefile:1401: recipe for target 'libfwtsiasl_la-aslanalyze.lo' failed make[4]: *** [libfwtsiasl_la-aslanalyze.lo] Error 1 aslcompiler.l: In function 'AslCompilerlex': aslcompiler.l:285:22: error: 'PARSEOP_DEFINITION_BLOCK' undeclared (first use in this function) "DefinitionBlock" { count (1); return (PARSEOP_DEFINITION_BLOCK); } This is done on Ubuntu Wily (15.10) On 2015-11-25 01:15 AM, Colin King wrote: > From: Colin Ian King<colin.king@canonical.com> > > Changes in this release of ACPICA are detailed at the following > link on the ACPICA developer mailing list: > > https://lists.acpica.org/pipermail/devel/2015-November/000856.html > > Signed-off-by: Colin Ian King<colin.king@canonical.com>
On 11/25/2015 12:06 PM, Alex Hung wrote: > Hi Colin, > > I got compilation errors after I applied this patch as below: > > > aslcodegen.c: In function 'CgWriteNode': > aslcodegen.c:714:10: error: 'PARSEOP_DEFINITION_BLOCK' undeclared (first > use in this function) > case PARSEOP_DEFINITION_BLOCK: > ^ > aslcodegen.c:714:10: note: each undeclared identifier is reported only > once for each function it appears in > Makefile:1408: recipe for target 'libfwtsiasl_la-aslcodegen.lo' failed > make[4]: *** [libfwtsiasl_la-aslcodegen.lo] Error 1 > make[4]: *** Waiting for unfinished jobs.... > aslanalyze.c: In function 'AnIsResultUsed': > aslanalyze.c:481:10: error: 'PARSEOP_DEFINITION_BLOCK' undeclared (first > use in this function) > case PARSEOP_DEFINITION_BLOCK: > ^ > aslanalyze.c:481:10: note: each undeclared identifier is reported only > once for each function it appears in > Makefile:1401: recipe for target 'libfwtsiasl_la-aslanalyze.lo' failed > make[4]: *** [libfwtsiasl_la-aslanalyze.lo] Error 1 > aslcompiler.l: In function 'AslCompilerlex': > aslcompiler.l:285:22: error: 'PARSEOP_DEFINITION_BLOCK' undeclared > (first use in this function) > "DefinitionBlock" { count (1); return > (PARSEOP_DEFINITION_BLOCK); } > > > This is done on Ubuntu Wily (15.10) > > > On 2015-11-25 01:15 AM, Colin King wrote: >> From: Colin Ian King<colin.king@canonical.com> >> >> Changes in this release of ACPICA are detailed at the following >> link on the ACPICA developer mailing list: >> >> https://lists.acpica.org/pipermail/devel/2015-November/000856.html >> >> Signed-off-by: Colin Ian King<colin.king@canonical.com> > My mistake: I found the errors went away after running "make clean" before "make". Acked-by: Alex Hung <alex.hung@canonical.com>
On 2015年11月25日 01:15, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Changes in this release of ACPICA are detailed at the following > link on the ACPICA developer mailing list: > > https://lists.acpica.org/pipermail/devel/2015-November/000856.html > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/acpica/Makefile.am | 2 + > src/acpica/source/common/acfileio.c | 429 +++ > src/acpica/source/common/acgetline.c | 1 + > src/acpica/source/common/adisasm.c | 863 ++--- > src/acpica/source/common/adwalk.c | 34 +- > src/acpica/source/common/ahuuids.c | 1 + > src/acpica/source/common/dmextern.c | 15 +- > src/acpica/source/common/dmrestag.c | 19 +- > src/acpica/source/common/dmtable.c | 6 + > src/acpica/source/common/dmtables.c | 571 ++++ > src/acpica/source/common/dmtbdump.c | 339 +- > src/acpica/source/compiler/Makefile.am | 3 + > src/acpica/source/compiler/aslanalyze.c | 15 +- > src/acpica/source/compiler/aslbtypes.c | 10 +- > src/acpica/source/compiler/aslcodegen.c | 133 +- > src/acpica/source/compiler/aslcompile.c | 31 +- > src/acpica/source/compiler/aslcompiler.l | 2 +- > src/acpica/source/compiler/aslcompiler.y | 21 +- > src/acpica/source/compiler/aslerror.c | 35 +- > src/acpica/source/compiler/aslfileio.c | 5 +- > src/acpica/source/compiler/aslfiles.c | 10 +- > src/acpica/source/compiler/aslfold.c | 134 +- > src/acpica/source/compiler/aslhex.c | 4 +- > src/acpica/source/compiler/asllength.c | 19 +- > src/acpica/source/compiler/asllisting.c | 71 +- > src/acpica/source/compiler/asllistsup.c | 3 +- > src/acpica/source/compiler/aslload.c | 96 +- > src/acpica/source/compiler/aslmap.c | 1 + > src/acpica/source/compiler/aslmapoutput.c | 2 +- > src/acpica/source/compiler/aslmessages.c | 5 +- > src/acpica/source/compiler/aslmessages.h | 2 + > src/acpica/source/compiler/aslmethod.c | 26 +- > src/acpica/source/compiler/aslnamesp.c | 21 +- > src/acpica/source/compiler/aslopcodes.c | 61 +- > src/acpica/source/compiler/asloperands.c | 45 +- > src/acpica/source/compiler/aslopt.c | 45 +- > src/acpica/source/compiler/aslpredef.c | 9 +- > src/acpica/source/compiler/aslprepkg.c | 1 + > src/acpica/source/compiler/aslprune.c | 2 + > src/acpica/source/compiler/aslresource.c | 8 +- > src/acpica/source/compiler/aslrestype1.c | 25 +- > src/acpica/source/compiler/aslrestype1i.c | 20 +- > src/acpica/source/compiler/aslrestype2.c | 14 +- > src/acpica/source/compiler/aslrestype2d.c | 8 +- > src/acpica/source/compiler/aslrestype2e.c | 26 +- > src/acpica/source/compiler/aslrestype2q.c | 14 +- > src/acpica/source/compiler/aslrestype2s.c | 92 +- > src/acpica/source/compiler/aslrestype2w.c | 16 +- > src/acpica/source/compiler/aslrules.y | 13 +- > src/acpica/source/compiler/aslstubs.c | 42 + > src/acpica/source/compiler/asltokens.y | 5 +- > src/acpica/source/compiler/asltransform.c | 36 +- > src/acpica/source/compiler/asltree.c | 33 +- > src/acpica/source/compiler/asltypes.h | 2 +- > src/acpica/source/compiler/asltypes.y | 3 +- > src/acpica/source/compiler/aslutils.c | 4 +- > src/acpica/source/compiler/asluuid.c | 7 +- > src/acpica/source/compiler/aslxref.c | 30 +- > src/acpica/source/compiler/dtcompile.c | 55 +- > src/acpica/source/compiler/dtcompiler.h | 6 + > src/acpica/source/compiler/dtexpress.c | 3 + > src/acpica/source/compiler/dtfield.c | 1 + > src/acpica/source/compiler/dtio.c | 11 +- > src/acpica/source/compiler/dttable.c | 3394 +------------------- > src/acpica/source/compiler/dttable1.c | 1743 ++++++++++ > src/acpica/source/compiler/dttable2.c | 1758 ++++++++++ > src/acpica/source/compiler/dttemplate.c | 3 +- > src/acpica/source/compiler/prexpress.c | 1 + > src/acpica/source/compiler/prmacros.c | 3 +- > src/acpica/source/compiler/prscan.c | 9 +- > src/acpica/source/compiler/prutils.c | 2 + > src/acpica/source/components/debugger/dbcmds.c | 30 +- > src/acpica/source/components/debugger/dbconvert.c | 2 +- > src/acpica/source/components/debugger/dbdisply.c | 77 +- > src/acpica/source/components/debugger/dbexec.c | 11 +- > src/acpica/source/components/debugger/dbfileio.c | 136 +- > src/acpica/source/components/debugger/dbinput.c | 45 +- > src/acpica/source/components/debugger/dbmethod.c | 2 +- > src/acpica/source/components/debugger/dbnames.c | 9 +- > src/acpica/source/components/debugger/dbobject.c | 6 +- > src/acpica/source/components/debugger/dbstats.c | 3 +- > src/acpica/source/components/debugger/dbtest.c | 5 +- > src/acpica/source/components/debugger/dbutils.c | 1 + > src/acpica/source/components/debugger/dbxface.c | 91 +- > .../source/components/disassembler/dmbuffer.c | 7 +- > .../source/components/disassembler/dmcstyle.c | 1 + > .../source/components/disassembler/dmdeferred.c | 3 +- > .../source/components/disassembler/dmnames.c | 13 +- > .../source/components/disassembler/dmopcode.c | 7 +- > .../source/components/disassembler/dmresrc.c | 7 +- > .../source/components/disassembler/dmresrcl.c | 18 +- > .../source/components/disassembler/dmresrcl2.c | 10 +- > .../source/components/disassembler/dmresrcs.c | 3 +- > src/acpica/source/components/disassembler/dmwalk.c | 14 +- > src/acpica/source/components/dispatcher/dsargs.c | 34 +- > .../source/components/dispatcher/dscontrol.c | 49 +- > src/acpica/source/components/dispatcher/dsdebug.c | 9 +- > src/acpica/source/components/dispatcher/dsfield.c | 83 +- > src/acpica/source/components/dispatcher/dsinit.c | 12 +- > src/acpica/source/components/dispatcher/dsmethod.c | 73 +- > src/acpica/source/components/dispatcher/dsmthdat.c | 39 +- > src/acpica/source/components/dispatcher/dsobject.c | 66 +- > src/acpica/source/components/dispatcher/dsopcode.c | 46 +- > src/acpica/source/components/dispatcher/dsutils.c | 45 +- > src/acpica/source/components/dispatcher/dswexec.c | 51 +- > src/acpica/source/components/dispatcher/dswload.c | 32 +- > src/acpica/source/components/dispatcher/dswload2.c | 40 +- > src/acpica/source/components/dispatcher/dswscope.c | 1 + > src/acpica/source/components/dispatcher/dswstate.c | 9 +- > src/acpica/source/components/events/evevent.c | 14 +- > src/acpica/source/components/events/evglock.c | 11 +- > src/acpica/source/components/events/evgpe.c | 16 +- > src/acpica/source/components/events/evgpeblk.c | 15 +- > src/acpica/source/components/events/evgpeinit.c | 28 +- > src/acpica/source/components/events/evgpeutil.c | 7 +- > src/acpica/source/components/events/evhandler.c | 12 +- > src/acpica/source/components/events/evmisc.c | 5 +- > src/acpica/source/components/events/evregion.c | 8 +- > src/acpica/source/components/events/evrgnini.c | 16 +- > src/acpica/source/components/events/evsci.c | 4 +- > src/acpica/source/components/events/evxface.c | 10 +- > src/acpica/source/components/events/evxfevnt.c | 28 +- > src/acpica/source/components/events/evxfgpe.c | 8 +- > src/acpica/source/components/events/evxfregn.c | 4 +- > src/acpica/source/components/executer/exconfig.c | 43 +- > src/acpica/source/components/executer/exconvrt.c | 26 +- > src/acpica/source/components/executer/excreate.c | 24 +- > src/acpica/source/components/executer/exdebug.c | 384 +-- > src/acpica/source/components/executer/exdump.c | 43 +- > src/acpica/source/components/executer/exfield.c | 82 +- > src/acpica/source/components/executer/exfldio.c | 63 +- > src/acpica/source/components/executer/exmisc.c | 37 +- > src/acpica/source/components/executer/exmutex.c | 75 +- > src/acpica/source/components/executer/exnames.c | 8 +- > src/acpica/source/components/executer/exoparg1.c | 69 +- > src/acpica/source/components/executer/exoparg2.c | 41 +- > src/acpica/source/components/executer/exoparg3.c | 25 +- > src/acpica/source/components/executer/exoparg6.c | 25 +- > src/acpica/source/components/executer/exprep.c | 60 +- > src/acpica/source/components/executer/exregion.c | 11 +- > src/acpica/source/components/executer/exresnte.c | 10 +- > src/acpica/source/components/executer/exresolv.c | 25 +- > src/acpica/source/components/executer/exresop.c | 36 +- > src/acpica/source/components/executer/exstore.c | 26 +- > src/acpica/source/components/executer/exstoren.c | 4 +- > src/acpica/source/components/executer/exstorob.c | 7 +- > src/acpica/source/components/executer/exsystem.c | 8 +- > src/acpica/source/components/executer/extrace.c | 499 +++ > src/acpica/source/components/executer/exutils.c | 10 +- > src/acpica/source/components/hardware/hwacpi.c | 10 +- > src/acpica/source/components/hardware/hwesleep.c | 5 +- > src/acpica/source/components/hardware/hwgpe.c | 12 +- > src/acpica/source/components/hardware/hwregs.c | 39 +- > src/acpica/source/components/hardware/hwsleep.c | 16 +- > src/acpica/source/components/hardware/hwxface.c | 48 +- > src/acpica/source/components/hardware/hwxfsleep.c | 7 +- > src/acpica/source/components/namespace/nsaccess.c | 12 +- > src/acpica/source/components/namespace/nsalloc.c | 5 +- > .../source/components/namespace/nsarguments.c | 6 +- > src/acpica/source/components/namespace/nsconvert.c | 12 +- > src/acpica/source/components/namespace/nsdump.c | 41 +- > src/acpica/source/components/namespace/nsdumpdv.c | 4 +- > src/acpica/source/components/namespace/nseval.c | 6 +- > src/acpica/source/components/namespace/nsinit.c | 10 +- > src/acpica/source/components/namespace/nsload.c | 9 +- > src/acpica/source/components/namespace/nsnames.c | 15 +- > src/acpica/source/components/namespace/nsobject.c | 6 +- > src/acpica/source/components/namespace/nsparse.c | 13 +- > src/acpica/source/components/namespace/nsprepkg.c | 21 +- > src/acpica/source/components/namespace/nsrepair.c | 14 +- > src/acpica/source/components/namespace/nsrepair2.c | 33 +- > src/acpica/source/components/namespace/nssearch.c | 4 +- > src/acpica/source/components/namespace/nsutils.c | 21 +- > src/acpica/source/components/namespace/nswalk.c | 12 +- > src/acpica/source/components/namespace/nsxfeval.c | 24 +- > src/acpica/source/components/namespace/nsxfname.c | 56 +- > src/acpica/source/components/namespace/nsxfobj.c | 7 +- > src/acpica/source/components/parser/psargs.c | 11 +- > src/acpica/source/components/parser/psloop.c | 10 +- > src/acpica/source/components/parser/psobject.c | 7 +- > src/acpica/source/components/parser/psparse.c | 47 +- > src/acpica/source/components/parser/psscope.c | 10 +- > src/acpica/source/components/parser/psutils.c | 7 +- > src/acpica/source/components/parser/pswalk.c | 1 + > src/acpica/source/components/parser/psxface.c | 9 +- > src/acpica/source/components/resources/rsaddr.c | 27 +- > src/acpica/source/components/resources/rscalc.c | 63 +- > src/acpica/source/components/resources/rscreate.c | 49 +- > src/acpica/source/components/resources/rsdump.c | 15 +- > src/acpica/source/components/resources/rslist.c | 25 +- > src/acpica/source/components/resources/rsmisc.c | 51 +- > src/acpica/source/components/resources/rsutils.c | 65 +- > src/acpica/source/components/resources/rsxface.c | 15 +- > src/acpica/source/components/tables/tbdata.c | 9 +- > src/acpica/source/components/tables/tbfadt.c | 8 +- > src/acpica/source/components/tables/tbfind.c | 8 +- > src/acpica/source/components/tables/tbinstal.c | 13 +- > src/acpica/source/components/tables/tbprint.c | 5 +- > src/acpica/source/components/tables/tbutils.c | 48 +- > src/acpica/source/components/tables/tbxface.c | 18 +- > src/acpica/source/components/tables/tbxfload.c | 20 +- > src/acpica/source/components/tables/tbxfroot.c | 24 +- > src/acpica/source/components/utilities/utaddress.c | 2 +- > src/acpica/source/components/utilities/utalloc.c | 15 +- > src/acpica/source/components/utilities/utcache.c | 4 +- > src/acpica/source/components/utilities/utcopy.c | 120 +- > src/acpica/source/components/utilities/utdecode.c | 31 +- > src/acpica/source/components/utilities/utdelete.c | 11 +- > src/acpica/source/components/utilities/uterror.c | 8 +- > src/acpica/source/components/utilities/uteval.c | 8 +- > src/acpica/source/components/utilities/uthex.c | 2 +- > src/acpica/source/components/utilities/utids.c | 93 +- > src/acpica/source/components/utilities/utinit.c | 16 +- > src/acpica/source/components/utilities/utmath.c | 33 +- > src/acpica/source/components/utilities/utmisc.c | 30 +- > src/acpica/source/components/utilities/utmutex.c | 7 +- > src/acpica/source/components/utilities/utnonansi.c | 4 +- > src/acpica/source/components/utilities/utobject.c | 30 +- > src/acpica/source/components/utilities/utosi.c | 14 +- > src/acpica/source/components/utilities/utownerid.c | 11 +- > src/acpica/source/components/utilities/utpredef.c | 6 +- > src/acpica/source/components/utilities/utprint.c | 16 +- > src/acpica/source/components/utilities/utresrc.c | 17 +- > src/acpica/source/components/utilities/utstate.c | 3 + > src/acpica/source/components/utilities/utstring.c | 1 + > src/acpica/source/components/utilities/uttrack.c | 81 +- > src/acpica/source/components/utilities/utuuid.c | 8 +- > src/acpica/source/components/utilities/utxface.c | 21 - > src/acpica/source/components/utilities/utxferror.c | 4 +- > src/acpica/source/include/acapps.h | 75 +- > src/acpica/source/include/acdebug.h | 20 +- > src/acpica/source/include/acdisasm.h | 33 +- > src/acpica/source/include/acglobal.h | 5 +- > src/acpica/source/include/aclocal.h | 18 + > src/acpica/source/include/acmacros.h | 12 - > src/acpica/source/include/acpiosxf.h | 3 +- > src/acpica/source/include/acpixf.h | 30 +- > src/acpica/source/include/actables.h | 6 +- > src/acpica/source/include/actypes.h | 6 +- > src/acpica/source/include/acutils.h | 30 +- > src/acpica/source/include/platform/aclinux.h | 7 +- > src/acpica/source/include/platform/aclinuxex.h | 9 + > .../source/os_specific/service_layers/oslibcfs.c | 3 + > src/acpica/source/tools/acpiexec/aecommon.h | 41 +- > src/acpica/source/tools/acpiexec/aehandlers.c | 35 +- > src/acpica/source/tools/acpiexec/aeregion.c | 32 +- > 246 files changed, 8587 insertions(+), 6803 deletions(-) > create mode 100644 src/acpica/source/common/acfileio.c > create mode 100644 src/acpica/source/common/dmtables.c > create mode 100644 src/acpica/source/compiler/dttable1.c > create mode 100644 src/acpica/source/compiler/dttable2.c > create mode 100644 src/acpica/source/components/executer/extrace.c > > diff --git a/src/acpica/Makefile.am b/src/acpica/Makefile.am > index 4fd897a..9b1c435 100644 > --- a/src/acpica/Makefile.am > +++ b/src/acpica/Makefile.am > @@ -140,6 +140,7 @@ libfwtsacpica_la_SOURCES = \ > source/components/executer/exstoren.c \ > source/components/executer/exstorob.c \ > source/components/executer/exsystem.c \ > + source/components/executer/extrace.c \ > source/components/executer/exutils.c \ > source/components/executer/exconvrt.c \ > source/components/executer/excreate.c \ > @@ -245,6 +246,7 @@ libfwtsacpica_la_SOURCES = \ > source/components/utilities/uterror.c \ > source/components/utilities/utbuffer.c \ > source/components/utilities/utuuid.c \ > + source/common/acfileio.c \ > source/common/acgetline.c \ > source/common/ahids.c \ > source/common/cmfsize.c \ > diff --git a/src/acpica/source/common/acfileio.c b/src/acpica/source/common/acfileio.c > new file mode 100644 > index 0000000..7d6cc23 > --- /dev/null > +++ b/src/acpica/source/common/acfileio.c > @@ -0,0 +1,429 @@ > +/****************************************************************************** > + * > + * Module Name: acfileio - Get ACPI tables from file > + * > + *****************************************************************************/ > + > +/****************************************************************************** > + * > + * 1. Copyright Notice > + * > + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. > + * All rights reserved. > + * > + * 2. License > + * > + * 2.1. This is your license from Intel Corp. under its intellectual property > + * rights. You may have additional license terms from the party that provided > + * you this software, covering your right to use that party's intellectual > + * property rights. > + * > + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a > + * copy of the source code appearing in this file ("Covered Code") an > + * irrevocable, perpetual, worldwide license under Intel's copyrights in the > + * base code distributed originally by Intel ("Original Intel Code") to copy, > + * make derivatives, distribute, use and display any portion of the Covered > + * Code in any form, with the right to sublicense such rights; and > + * > + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent > + * license (with the right to sublicense), under only those claims of Intel > + * patents that are infringed by the Original Intel Code, to make, use, sell, > + * offer to sell, and import the Covered Code and derivative works thereof > + * solely to the minimum extent necessary to exercise the above copyright > + * license, and in no event shall the patent license extend to any additions > + * to or modifications of the Original Intel Code. No other license or right > + * is granted directly or by implication, estoppel or otherwise; > + * > + * The above copyright and patent license is granted only if the following > + * conditions are met: > + * > + * 3. Conditions > + * > + * 3.1. Redistribution of Source with Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification with rights to further distribute source must include > + * the above Copyright Notice, the above License, this list of Conditions, > + * and the following Disclaimer and Export Compliance provision. In addition, > + * Licensee must cause all Covered Code to which Licensee contributes to > + * contain a file documenting the changes Licensee made to create that Covered > + * Code and the date of any change. Licensee must include in that file the > + * documentation of any changes made by any predecessor Licensee. Licensee > + * must include a prominent statement that the modification is derived, > + * directly or indirectly, from Original Intel Code. > + * > + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification without rights to further distribute source must > + * include the following Disclaimer and Export Compliance provision in the > + * documentation and/or other materials provided with distribution. In > + * addition, Licensee may not authorize further sublicense of source of any > + * portion of the Covered Code, and must include terms to the effect that the > + * license from Licensee to its licensee is limited to the intellectual > + * property embodied in the software Licensee provides to its licensee, and > + * not to intellectual property embodied in modifications its licensee may > + * make. > + * > + * 3.3. Redistribution of Executable. Redistribution in executable form of any > + * substantial portion of the Covered Code or modification must reproduce the > + * above Copyright Notice, and the following Disclaimer and Export Compliance > + * provision in the documentation and/or other materials provided with the > + * distribution. > + * > + * 3.4. Intel retains all right, title, and interest in and to the Original > + * Intel Code. > + * > + * 3.5. Neither the name Intel nor any other trademark owned or controlled by > + * Intel shall be used in advertising or otherwise to promote the sale, use or > + * other dealings in products derived from or relating to the Covered Code > + * without prior written authorization from Intel. > + * > + * 4. Disclaimer and Export Compliance > + * > + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED > + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE > + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, > + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY > + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY > + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A > + * PARTICULAR PURPOSE. > + * > + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES > + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR > + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, > + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY > + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL > + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS > + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY > + * LIMITED REMEDY. > + * > + * 4.3. Licensee shall not export, either directly or indirectly, any of this > + * software or system incorporating such software without first obtaining any > + * required license or other approval from the U. S. Department of Commerce or > + * any other agency or department of the United States Government. In the > + * event Licensee exports any such software from the United States or > + * re-exports any such software from a foreign destination, Licensee shall > + * ensure that the distribution and export/re-export of the software is in > + * compliance with all laws, regulations, orders, or other restrictions of the > + * U.S. Export Administration Regulations. Licensee agrees that neither it nor > + * any of its subsidiaries will export/re-export any technical data, process, > + * software, or service, directly or indirectly, to any country for which the > + * United States government or any agency thereof requires an export license, > + * other governmental approval, or letter of assurance, without first obtaining > + * such license, approval or letter. > + * > + *****************************************************************************/ > + > +#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); > +} > diff --git a/src/acpica/source/common/acgetline.c b/src/acpica/source/common/acgetline.c > index 2a2232a..804ff30 100644 > --- a/src/acpica/source/common/acgetline.c > +++ b/src/acpica/source/common/acgetline.c > @@ -334,6 +334,7 @@ AcpiOsGetLine ( > > ACPI_BACKUP_CURSOR (i, EndOfLine - CursorPosition + 1); > EndOfLine--; > + > if (CursorPosition > 0) > { > CursorPosition--; > diff --git a/src/acpica/source/common/adisasm.c b/src/acpica/source/common/adisasm.c > index 44a052e..071649a 100644 > --- a/src/acpica/source/common/adisasm.c > +++ b/src/acpica/source/common/adisasm.c > @@ -114,16 +114,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 > @@ -131,17 +129,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 > @@ -149,7 +159,7 @@ AcpiDsIsResultUsed ( > ACPI_PARSE_OBJECT *Op, > ACPI_WALK_STATE *WalkState) > { > - return TRUE; > + return (TRUE); > } > > ACPI_STATUS > @@ -161,52 +171,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; > - > > /******************************************************************************* > * > @@ -274,7 +238,7 @@ AdInitialize ( > * > * RETURN: Status > * > - * DESCRIPTION: Disassemble an entire ACPI table > + * DESCRIPTION: Disassembler entry point. Disassemble an entire ACPI table. > * > *****************************************************************************/ > > @@ -286,14 +250,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; > > > /* > @@ -302,81 +262,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; > - } > - > - 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 */ > + /* Process any user-specified files for external objects */ > > - 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 > { > @@ -425,7 +326,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; > } > @@ -435,190 +337,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) > { > - if (AslCompilerdebug) /* Display final namespace, with transforms */ > - { > - NsSetupNamespaceListing (File); > - NsDisplayNamespace (); > - } > - > fclose (File); > AcpiOsRedirectOutput (stdout); > } > @@ -631,290 +375,243 @@ Cleanup: > > /****************************************************************************** > * > - * FUNCTION: AdDisassemblerHeader > + * FUNCTION: AdDisassembleOneTable > * > - * PARAMETERS: Filename - Input file for the table > - * TableType - Either AML or DataTable > + * PARAMETERS: Table - Raw AML table > + * File - Pointer for the input file > + * Filename - AML input filename > + * DisasmFilename - Output filename > * > - * RETURN: None > + * RETURN: Status > * > - * DESCRIPTION: Create the disassembler header, including ACPICA signon with > - * current time and date. > + * DESCRIPTION: Disassemble a single ACPI table. AML or data table. > * > *****************************************************************************/ > > -void > -AdDisassemblerHeader ( > +static ACPI_STATUS > +AdDisassembleOneTable ( > + ACPI_TABLE_HEADER *Table, > + FILE *File, > char *Filename, > - UINT8 TableType) > + char *DisasmFilename) > { > - time_t Timer; > - > - > - time (&Timer); > + ACPI_STATUS Status; > + ACPI_OWNER_ID OwnerId; > > - /* Header and input table info */ > > - AcpiOsPrintf ("/*\n"); > - AcpiOsPrintf (ACPI_COMMON_HEADER (AML_DISASSEMBLER_NAME, " * ")); > + /* ForceAmlDisassembly means to assume the table contains valid AML */ > > - if (TableType == ACPI_IS_AML_TABLE) > + if (!AcpiGbl_ForceAmlDisassembly && !AcpiUtIsAmlTable (Table)) > { > - if (AcpiGbl_CstyleDisassembly) > - { > - AcpiOsPrintf ( > - " * Disassembling to symbolic ASL+ operators\n" > - " *\n"); > - } > - else > - { > - AcpiOsPrintf ( > - " * Disassembling to non-symbolic legacy ASL operators\n" > - " *\n"); > - } > - } > + AdDisassemblerHeader (Filename, ACPI_IS_DATA_TABLE); > > - AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer)); > - AcpiOsPrintf (" *\n"); > -} > + /* This is a "Data Table" (non-AML table) */ > > + AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n", > + Table->Signature); > + AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] " > + "FieldName : FieldValue\n */\n\n"); > > -/****************************************************************************** > - * > - * FUNCTION: AdCreateTableHeader > - * > - * PARAMETERS: Filename - Input file for the table > - * Table - Pointer to the raw table > - * > - * RETURN: None > - * > - * DESCRIPTION: Create the ASL table header, including ACPICA signon with > - * current time and date. > - * > - *****************************************************************************/ > + AcpiDmDumpDataTable (Table); > + fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n", > + Table->Signature); > > -static void > -AdCreateTableHeader ( > - char *Filename, > - ACPI_TABLE_HEADER *Table) > -{ > - char *NewFilename; > - UINT8 Checksum; > + if (File) > + { > + fprintf (stderr, "Formatted output: %s - %u bytes\n", > + DisasmFilename, CmGetFileSize (File)); > + } > > + return (AE_OK); > + } > > /* > - * Print file header and dump original table header > + * This is an AML table (DSDT or SSDT). > + * Always parse the tables, only option is what to display > */ > - AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE); > - > - AcpiOsPrintf (" * Original Table Header:\n"); > - AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature); > - AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length); > - > - /* Print and validate the revision */ > + Status = AdParseTable (Table, &OwnerId, TRUE, FALSE); > + if (ACPI_FAILURE (Status)) > + { > + AcpiOsPrintf ("Could not parse ACPI tables, %s\n", > + AcpiFormatException (Status)); > + return (Status); > + } > > - AcpiOsPrintf (" * Revision 0x%2.2X", Table->Revision); > + /* Debug output, namespace and parse tree */ > > - switch (Table->Revision) > + if (AslCompilerdebug && File) > { > - case 0: > + AcpiOsPrintf ("/**** Before second load\n"); > > - AcpiOsPrintf (" **** Invalid Revision"); > - break; > + NsSetupNamespaceListing (File); > + NsDisplayNamespace (); > > - case 1: > + AcpiOsPrintf ("*****/\n"); > + } > > - /* Revision of DSDT controls the ACPI integer width */ > + /* Load namespace from names created within control methods */ > > - if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) > - { > - AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support"); > - } > - break; > + AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, > + AcpiGbl_RootNode, OwnerId); > > - default: > + /* > + * Cross reference the namespace here, in order to > + * generate External() statements > + */ > + AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot, > + AcpiGbl_RootNode, OwnerId); > > - break; > + if (AslCompilerdebug) > + { > + AcpiDmDumpTree (AcpiGbl_ParseOpRoot); > } > - AcpiOsPrintf ("\n"); > > - /* Print and validate the table checksum */ > + /* Find possible calls to external control methods */ > > - AcpiOsPrintf (" * Checksum 0x%2.2X", Table->Checksum); > + AcpiDmFindOrphanMethods (AcpiGbl_ParseOpRoot); > > - Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); > - if (Checksum) > + /* > + * 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 ()) > { > - AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X", > - (UINT8) (Table->Checksum - Checksum)); > + Status = AdReparseOneTable (Table, File, OwnerId); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > } > - AcpiOsPrintf ("\n"); > > - AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId); > - AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId); > - AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision); > - AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId); > - AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision); > - AcpiOsPrintf (" */\n"); > + /* > + * 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); > > - /* Create AML output filename based on input filename */ > + /* Optional displays */ > > - if (Filename) > - { > - NewFilename = FlGenerateFilename (Filename, "aml"); > - } > - else > + if (AcpiGbl_DmOpt_Disasm) > { > - NewFilename = UtStringCacheCalloc (9); > - if (NewFilename) > + /* This is the real disassembly */ > + > + AdDisplayTables (Filename, Table); > + > + /* Dump hex table if requested (-vt) */ > + > + AcpiDmDumpDataTable (Table); > + > + fprintf (stderr, "Disassembly completed\n"); > + if (File) > { > - strncat (NewFilename, Table->Signature, 4); > - strcat (NewFilename, ".aml"); > + fprintf (stderr, "ASL Output: %s - %u bytes\n", > + DisasmFilename, CmGetFileSize (File)); > } > - } > > - if (!NewFilename) > - { > - AcpiOsPrintf (" **** Could not generate AML output filename\n"); > - return; > + 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)); > + } > } > > - /* Open the ASL definition block */ > - > - AcpiOsPrintf ( > - "DefinitionBlock (\"%s\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n", > - NewFilename, Table->Signature, Table->Revision, > - Table->OemId, Table->OemTableId, Table->OemRevision); > + return (AE_OK); > } > > > /****************************************************************************** > * > - * FUNCTION: AdDisplayTables > + * FUNCTION: AdReparseOneTable > * > - * PARAMETERS: Filename - Input file for the table > - * Table - Pointer to the raw table > + * PARAMETERS: Table - Raw AML table > + * File - Pointer for the input file > + * OwnerId - ID for this table > * > * RETURN: Status > * > - * DESCRIPTION: Display (disassemble) loaded tables and dump raw tables > + * DESCRIPTION: Reparse a table that has already been loaded. Used to > + * integrate information about external control methods. > + * These methods may have been previously parsed incorrectly. > * > *****************************************************************************/ > > -ACPI_STATUS > -AdDisplayTables ( > - char *Filename, > - ACPI_TABLE_HEADER *Table) > +static ACPI_STATUS > +AdReparseOneTable ( > + ACPI_TABLE_HEADER *Table, > + FILE *File, > + ACPI_OWNER_ID OwnerId) > { > + ACPI_STATUS Status; > > > - if (!AcpiGbl_ParseOpRoot) > - { > - return (AE_NOT_EXIST); > - } > + fprintf (stderr, > + "\nFound %u external control methods, " > + "reparsing with new information\n", > + AcpiDmGetExternalMethodCount ()); > > - if (!AcpiGbl_DmOpt_Listing) > - { > - AdCreateTableHeader (Filename, Table); > - } > + /* Reparse, rebuild namespace */ > > - AcpiDmDisassemble (NULL, AcpiGbl_ParseOpRoot, ACPI_UINT32_MAX); > - MpEmitMappingInfo (); > + 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; > > - if (AcpiGbl_DmOpt_Listing) > + Status = AcpiNsRootInitialize (); > + if (ACPI_FAILURE (Status)) > { > - AcpiOsPrintf ("\n\nTable Header:\n"); > - AcpiUtDebugDumpBuffer ((UINT8 *) Table, sizeof (ACPI_TABLE_HEADER), > - DB_BYTE_DISPLAY, ACPI_UINT32_MAX); > - > - AcpiOsPrintf ("Table Body (Length 0x%X)\n", Table->Length); > - AcpiUtDebugDumpBuffer (((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)), > - Table->Length, DB_BYTE_DISPLAY, ACPI_UINT32_MAX); > + return (Status); > } > > - return (AE_OK); > -} > - > - > -/******************************************************************************* > - * > - * FUNCTION: AdStoreTable > - * > - * PARAMETERS: Table - Table header > - * TableIndex - Where the table index is returned > - * > - * RETURN: Status and table index. > - * > - * DESCRIPTION: Add an ACPI table to the global table list > - * > - ******************************************************************************/ > + /* New namespace, add the external definitions first */ > > -static ACPI_STATUS > -AdStoreTable ( > - ACPI_TABLE_HEADER *Table, > - UINT32 *TableIndex) > -{ > - ACPI_STATUS Status; > - ACPI_TABLE_DESC *TableDesc; > + AcpiDmAddExternalsToNamespace (); > > + /* Parse the table again. No need to reload it, however */ > > - Status = AcpiTbGetNextTableDescriptor (TableIndex, &TableDesc); > + Status = AdParseTable (Table, NULL, FALSE, FALSE); > if (ACPI_FAILURE (Status)) > { > + AcpiOsPrintf ("Could not parse ACPI tables, %s\n", > + AcpiFormatException (Status)); > return (Status); > } > > - /* Initialize added table */ > + /* Cross reference the namespace again */ > > - AcpiTbInitTableDescriptor (TableDesc, ACPI_PTR_TO_PHYSADDR (Table), > - ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, Table); > - Status = AcpiTbValidateTable (TableDesc); > - return (Status); > -} > + AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, > + AcpiGbl_RootNode, OwnerId); > > + AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot, > + AcpiGbl_RootNode, OwnerId); > > -/****************************************************************************** > - * > - * FUNCTION: AdGetLocalTables > - * > - * PARAMETERS: None > - * > - * RETURN: Status > - * > - * DESCRIPTION: Get the ACPI tables from either memory or a file > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -AdGetLocalTables ( > - void) > -{ > - ACPI_STATUS Status; > - ACPI_TABLE_HEADER TableHeader; > - ACPI_TABLE_HEADER *NewTable; > - UINT32 TableIndex; > - > + /* Debug output - namespace and parse tree */ > > - /* Get the DSDT via table override */ > - > - ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT); > - AcpiOsTableOverride (&TableHeader, &NewTable); > - if (!NewTable) > + if (AslCompilerdebug) > { > - fprintf (stderr, "Could not obtain DSDT\n"); > - return (AE_NO_ACPI_TABLES); > - } > - > - AdWriteTable (NewTable, NewTable->Length, > - ACPI_SIG_DSDT, NewTable->OemTableId); > - > - /* Store DSDT in the Table Manager */ > + AcpiOsPrintf ("/**** After second load and resource conversion\n"); > + if (File) > + { > + NsSetupNamespaceListing (File); > + NsDisplayNamespace (); > + } > > - Status = AdStoreTable (NewTable, &TableIndex); > - if (ACPI_FAILURE (Status)) > - { > - fprintf (stderr, "Could not store DSDT\n"); > - return (AE_NO_ACPI_TABLES); > + AcpiOsPrintf ("*****/\n"); > + AcpiDmDumpTree (AcpiGbl_ParseOpRoot); > } > > return (AE_OK); > @@ -923,134 +620,108 @@ AdGetLocalTables ( > > /****************************************************************************** > * > - * FUNCTION: AdParseTable > + * FUNCTION: AdDoExternalFileList > * > - * PARAMETERS: Table - Pointer to the raw table > - * OwnerId - Returned OwnerId of the table > - * LoadTable - If add table to the global table list > - * External - If this is an external table > + * PARAMETERS: Filename - Input file for the table > * > * RETURN: Status > * > - * DESCRIPTION: Parse the DSDT. > + * DESCRIPTION: Process all tables found in the -e external files list > * > *****************************************************************************/ > > -ACPI_STATUS > -AdParseTable ( > - ACPI_TABLE_HEADER *Table, > - ACPI_OWNER_ID *OwnerId, > - BOOLEAN LoadTable, > - BOOLEAN External) > +static ACPI_STATUS > +AdDoExternalFileList ( > + char *Filename) > { > - ACPI_STATUS Status = AE_OK; > - ACPI_WALK_STATE *WalkState; > - UINT8 *AmlStart; > - UINT32 AmlLength; > - UINT32 TableIndex; > - > - > - if (!Table) > - { > - return (AE_NOT_EXIST); > - } > - > - /* Pass 1: Parse everything except control method bodies */ > - > - fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature); > - > - AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); > - AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); > - > - /* Create the root object */ > - > - AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp (AmlStart); > - if (!AcpiGbl_ParseOpRoot) > - { > - return (AE_NO_MEMORY); > - } > - > - /* Create and initialize a new walk state */ > + ACPI_EXTERNAL_FILE *ExternalFileList; > + char *ExternalFilename; > + ACPI_NEW_TABLE_DESC *ExternalListHead = NULL; > + ACPI_STATUS Status; > + ACPI_STATUS GlobalStatus = AE_OK; > + ACPI_OWNER_ID OwnerId; > > - WalkState = AcpiDsCreateWalkState (0, > - AcpiGbl_ParseOpRoot, NULL, NULL); > - if (!WalkState) > - { > - return (AE_NO_MEMORY); > - } > > - Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParseOpRoot, > - NULL, AmlStart, AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > + /* > + * External filenames are specified on the command line like this: > + * Example: iasl -e file1,file2,file3 -d xxx.aml > + */ > + ExternalFileList = AcpiGbl_ExternalFileList; > > - WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE; > - WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE; > + /* Process each external file */ > > - Status = AcpiPsParseAml (WalkState); > - if (ACPI_FAILURE (Status)) > + while (ExternalFileList) > { > - return (Status); > - } > - > - /* If LoadTable is FALSE, we are parsing the last loaded table */ > + ExternalFilename = ExternalFileList->Path; > + if (!strcmp (ExternalFilename, Filename)) > + { > + /* Next external file */ > > - TableIndex = AcpiGbl_RootTableList.CurrentTableCount - 1; > + ExternalFileList = ExternalFileList->Next; > + continue; > + } > > - /* Pass 2 */ > + AcpiOsPrintf ("External object resolution file %16s\n", > + ExternalFilename); > > - if (LoadTable) > - { > - Status = AdStoreTable (Table, &TableIndex); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - Status = AcpiTbAllocateOwnerId (TableIndex); > + Status = AcpiAcGetAllTablesFromFile ( > + ExternalFilename, ACPI_GET_ONLY_AML_TABLES, &ExternalListHead); > if (ACPI_FAILURE (Status)) > { > + if (Status == AE_TYPE) > + { > + ExternalFileList = ExternalFileList->Next; > + GlobalStatus = AE_TYPE; > + Status = AE_OK; > + continue; > + } > + > return (Status); > } > - if (OwnerId) > + > + /* Load external tables for symbol resolution */ > + > + while (ExternalListHead) > { > - Status = AcpiTbGetOwnerId (TableIndex, OwnerId); > + Status = AdParseTable ( > + ExternalListHead->Table, &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); > + > + ExternalListHead = ExternalListHead->Next; > } > - } > > - fprintf (stderr, "Pass 2 parse of [%4.4s]\n", (char *) Table->Signature); > + /* Next external file */ > > - Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, TableIndex, NULL); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > + ExternalFileList = ExternalFileList->Next; > } > > - /* No need to parse control methods of external table */ > - > - if (External) > + if (ACPI_FAILURE (GlobalStatus)) > { > - return (AE_OK); > + return (GlobalStatus); > } > > - /* > - * Pass 3: Parse control methods and link their parse trees > - * into the main parse tree > - */ > - fprintf (stderr, > - "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n"); > - Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); > - fprintf (stderr, "\n"); > + /* Clear external list generated by Scope in external tables */ > > - /* Process Resource Templates */ > + if (AcpiGbl_ExternalFileList) > + { > + AcpiDmClearExternalList (); > + } > > - AcpiDmFindResources (AcpiGbl_ParseOpRoot); > + /* Load any externals defined in the optional external ref file */ > > - fprintf (stderr, "Parsing completed\n"); > + AcpiDmGetExternalsFromFile (); > return (AE_OK); > } > diff --git a/src/acpica/source/common/adwalk.c b/src/acpica/source/common/adwalk.c > index fe07c07..92cec74 100644 > --- a/src/acpica/source/common/adwalk.c > +++ b/src/acpica/source/common/adwalk.c > @@ -207,6 +207,7 @@ AcpiDmDumpTree ( > Info.Count = 0; > Info.Level = 0; > Info.WalkState = NULL; > + > AcpiDmWalkParseTree (Origin, AcpiDmDumpDescending, NULL, &Info); > AcpiOsPrintf ("*/\n\n"); > } > @@ -240,6 +241,7 @@ AcpiDmFindOrphanMethods ( > Info.Flags = 0; > Info.Level = 0; > Info.WalkState = NULL; > + > AcpiDmWalkParseTree (Origin, AcpiDmFindOrphanDescending, NULL, &Info); > } > > @@ -283,7 +285,8 @@ AcpiDmFinishNamespaceLoad ( > return; > } > > - Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState); > + Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, > + WalkState); > if (ACPI_FAILURE (Status)) > { > return; > @@ -292,6 +295,7 @@ AcpiDmFinishNamespaceLoad ( > Info.Flags = 0; > Info.Level = 0; > Info.WalkState = WalkState; > + > AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmLoadDescendingOp, > AcpiDmCommonAscendingOp, &Info); > ACPI_FREE (WalkState); > @@ -336,7 +340,8 @@ AcpiDmCrossReferenceNamespace ( > return; > } > > - Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState); > + Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, > + WalkState); > if (ACPI_FAILURE (Status)) > { > return; > @@ -345,6 +350,7 @@ AcpiDmCrossReferenceNamespace ( > Info.Flags = 0; > Info.Level = 0; > Info.WalkState = WalkState; > + > AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmXrefDescendingOp, > AcpiDmCommonAscendingOp, &Info); > ACPI_FREE (WalkState); > @@ -389,7 +395,8 @@ AcpiDmConvertResourceIndexes ( > return; > } > > - Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState); > + Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, > + WalkState); > if (ACPI_FAILURE (Status)) > { > return; > @@ -398,6 +405,7 @@ AcpiDmConvertResourceIndexes ( > Info.Flags = 0; > Info.Level = 0; > Info.WalkState = WalkState; > + > AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmResourceDescendingOp, > AcpiDmCommonAscendingOp, &Info); > ACPI_FREE (WalkState); > @@ -468,7 +476,7 @@ AcpiDmDumpDescending ( > if (Op->Common.Value.String) > { > AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String, > - NULL, &Path); > + NULL, &Path); > AcpiOsPrintf ("%s %p", Path, Op->Common.Node); > ACPI_FREE (Path); > } > @@ -727,6 +735,7 @@ AcpiDmLoadDescendingOp ( > { > NextOp = NextOp->Common.Next; > } > + > Path = NextOp->Common.Value.String; > } > > @@ -738,8 +747,8 @@ AcpiDmLoadDescendingOp ( > /* Insert the name into the namespace */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, > - ACPI_IMODE_LOAD_PASS2, ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &Node); > + ACPI_IMODE_LOAD_PASS2, ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &Node); > > Op->Common.Node = Node; > > @@ -780,7 +789,8 @@ Exit: > { > if (Op->Common.Node) > { > - Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState); > + Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, > + WalkState); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -897,8 +907,8 @@ AcpiDmXrefDescendingOp ( > */ > Node = NULL; > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &Node); > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &Node); > if (ACPI_SUCCESS (Status) && (Node->Flags & ANOBJ_IS_EXTERNAL)) > { > /* Node was created by an External() statement */ > @@ -980,7 +990,8 @@ Exit: > { > if (Op->Common.Node) > { > - Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState); > + Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, > + WalkState); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -1028,7 +1039,8 @@ AcpiDmResourceDescendingOp ( > if (Op->Common.Node) > { > > - Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState); > + Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, > + WalkState); > if (ACPI_FAILURE (Status)) > { > return (Status); > diff --git a/src/acpica/source/common/ahuuids.c b/src/acpica/source/common/ahuuids.c > index 118473d..499dbb4 100644 > --- a/src/acpica/source/common/ahuuids.c > +++ b/src/acpica/source/common/ahuuids.c > @@ -120,6 +120,7 @@ > #define _COMPONENT ACPI_UTILITIES > ACPI_MODULE_NAME ("ahuuids") > > + > /* > * Table of "known" (ACPI-related) UUIDs > */ > diff --git a/src/acpica/source/common/dmextern.c b/src/acpica/source/common/dmextern.c > index 832379e..7335168 100644 > --- a/src/acpica/source/common/dmextern.c > +++ b/src/acpica/source/common/dmextern.c > @@ -212,7 +212,6 @@ AcpiDmGetObjectTypeName ( > { > Type = ACPI_TYPE_DEVICE; > } > - > else if (Type > ACPI_TYPE_LOCAL_INDEX_FIELD) > { > return (""); > @@ -482,6 +481,7 @@ AcpiDmGetExternalsFromFile ( > { > continue; > } > + > if (strcmp (Token, "External")) > { > continue; > @@ -519,6 +519,7 @@ AcpiDmGetExternalsFromFile ( > fprintf (stderr, "Invalid argument count (%s)\n", Token); > continue; > } > + > if (ArgCount > 7) > { > fprintf (stderr, "Invalid argument count (%u)\n", ArgCount); > @@ -537,7 +538,8 @@ AcpiDmGetExternalsFromFile ( > > if (!ImportCount) > { > - fprintf (stderr, "Did not find any external methods in reference file \"%s\"\n", > + fprintf (stderr, > + "Did not find any external methods in reference file \"%s\"\n", > Gbl_ExternalRefFilename); > } > else > @@ -887,7 +889,8 @@ AcpiDmCreateNewExternal ( > (Value > 0)) > { > ACPI_ERROR ((AE_INFO, > - "External method arg count mismatch %s: Current %u, attempted %u", > + "External method arg count mismatch %s: " > + "Current %u, attempted %u", > NextExternal->Path, NextExternal->Value, Value)); > } > > @@ -989,9 +992,9 @@ AcpiDmAddExternalsToNamespace ( > /* Add the external name (object) into the namespace */ > > Status = AcpiNsLookup (NULL, External->InternalPath, External->Type, > - ACPI_IMODE_LOAD_PASS1, > - ACPI_NS_ERROR_IF_FOUND | ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE, > - NULL, &Node); > + ACPI_IMODE_LOAD_PASS1, > + ACPI_NS_ERROR_IF_FOUND | ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE, > + NULL, &Node); > > if (ACPI_FAILURE (Status)) > { > diff --git a/src/acpica/source/common/dmrestag.c b/src/acpica/source/common/dmrestag.c > index 5041f88..c87a025 100644 > --- a/src/acpica/source/common/dmrestag.c > +++ b/src/acpica/source/common/dmrestag.c > @@ -570,9 +570,9 @@ AcpiDmCheckResourceReference ( > /* Lookup the buffer in the namespace */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, > - BufferNameOp->Common.Value.String, ACPI_TYPE_BUFFER, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, > - &BufferNode); > + BufferNameOp->Common.Value.String, ACPI_TYPE_BUFFER, > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, > + &BufferNode); > if (ACPI_FAILURE (Status)) > { > return; > @@ -693,8 +693,8 @@ AcpiGetTagPathname ( > > /* Get the individual resource descriptor and validate it */ > > - Aml = ACPI_CAST_PTR (AML_RESOURCE, > - &Op->Named.Data[ResourceNode->Value]); > + Aml = ACPI_CAST_PTR ( > + AML_RESOURCE, &Op->Named.Data[ResourceNode->Value]); > > Status = AcpiUtValidateResource (NULL, Aml, &ResourceTableIndex); > if (ACPI_FAILURE (Status)) > @@ -735,7 +735,7 @@ AcpiGetTagPathname ( > } > > (void) AcpiNsBuildNormalizedPath (BufferNode, Pathname, > - RequiredSize, FALSE); > + RequiredSize, FALSE); > > /* > * Create the full path to the resource and tag by: remove the buffer name, > @@ -814,6 +814,7 @@ AcpiDmUpdateResourceName ( > { > AcpiGbl_NextResourceId = 0; > AcpiGbl_NextPrefix++; > + > if (AcpiGbl_NextPrefix > ACPI_NUM_RES_PREFIX) > { > AcpiGbl_NextPrefix = 0; > @@ -1100,9 +1101,9 @@ AcpiDmAddResourceToNamespace ( > > ScopeInfo.Scope.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Context); > Status = AcpiNsLookup (&ScopeInfo, "_TMP", ACPI_TYPE_LOCAL_RESOURCE, > - ACPI_IMODE_LOAD_PASS2, > - ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_PREFIX_IS_SCOPE, > - NULL, &Node); > + ACPI_IMODE_LOAD_PASS2, > + ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_PREFIX_IS_SCOPE, > + NULL, &Node); > if (ACPI_FAILURE (Status)) > { > return (AE_OK); > diff --git a/src/acpica/source/common/dmtable.c b/src/acpica/source/common/dmtable.c > index c301da1..35e01f3 100644 > --- a/src/acpica/source/common/dmtable.c > +++ b/src/acpica/source/common/dmtable.c > @@ -947,6 +947,7 @@ AcpiDmDumpTable ( > AcpiOsPrintf ("\n"); > LastOutputBlankLine = TRUE; > } > + > ByteLength = sizeof (ACPI_GENERIC_ADDRESS); > break; > > @@ -957,6 +958,7 @@ AcpiDmDumpTable ( > AcpiOsPrintf ("\n"); > LastOutputBlankLine = TRUE; > } > + > ByteLength = sizeof (ACPI_HEST_NOTIFY); > break; > > @@ -966,6 +968,7 @@ AcpiDmDumpTable ( > { > LastOutputBlankLine = FALSE; > } > + > ByteLength = sizeof (ACPI_IORT_MEMORY_ACCESS); > break; > > @@ -1099,6 +1102,7 @@ AcpiDmDumpTable ( > } > } > } > + > AcpiOsPrintf ("\n"); > break; > > @@ -1122,6 +1126,7 @@ AcpiDmDumpTable ( > > AcpiDmCheckAscii (Target, RepairedName, 4); > AcpiOsPrintf ("\"%.4s\" ", RepairedName); > + > TableData = AcpiAhGetTableInfo (ACPI_CAST_PTR (char, Target)); > if (TableData) > { > @@ -1167,6 +1172,7 @@ AcpiDmDumpTable ( > AcpiOsPrintf ( > " /* Incorrect checksum, should be %2.2X */", Temp8); > } > + > AcpiOsPrintf ("\n"); > break; > > diff --git a/src/acpica/source/common/dmtables.c b/src/acpica/source/common/dmtables.c > new file mode 100644 > index 0000000..4ec8470 > --- /dev/null > +++ b/src/acpica/source/common/dmtables.c > @@ -0,0 +1,571 @@ > +/****************************************************************************** > + * > + * Module Name: dmtables - disassembler ACPI table support > + * > + *****************************************************************************/ > + > +/****************************************************************************** > + * > + * 1. Copyright Notice > + * > + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. > + * All rights reserved. > + * > + * 2. License > + * > + * 2.1. This is your license from Intel Corp. under its intellectual property > + * rights. You may have additional license terms from the party that provided > + * you this software, covering your right to use that party's intellectual > + * property rights. > + * > + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a > + * copy of the source code appearing in this file ("Covered Code") an > + * irrevocable, perpetual, worldwide license under Intel's copyrights in the > + * base code distributed originally by Intel ("Original Intel Code") to copy, > + * make derivatives, distribute, use and display any portion of the Covered > + * Code in any form, with the right to sublicense such rights; and > + * > + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent > + * license (with the right to sublicense), under only those claims of Intel > + * patents that are infringed by the Original Intel Code, to make, use, sell, > + * offer to sell, and import the Covered Code and derivative works thereof > + * solely to the minimum extent necessary to exercise the above copyright > + * license, and in no event shall the patent license extend to any additions > + * to or modifications of the Original Intel Code. No other license or right > + * is granted directly or by implication, estoppel or otherwise; > + * > + * The above copyright and patent license is granted only if the following > + * conditions are met: > + * > + * 3. Conditions > + * > + * 3.1. Redistribution of Source with Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification with rights to further distribute source must include > + * the above Copyright Notice, the above License, this list of Conditions, > + * and the following Disclaimer and Export Compliance provision. In addition, > + * Licensee must cause all Covered Code to which Licensee contributes to > + * contain a file documenting the changes Licensee made to create that Covered > + * Code and the date of any change. Licensee must include in that file the > + * documentation of any changes made by any predecessor Licensee. Licensee > + * must include a prominent statement that the modification is derived, > + * directly or indirectly, from Original Intel Code. > + * > + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification without rights to further distribute source must > + * include the following Disclaimer and Export Compliance provision in the > + * documentation and/or other materials provided with distribution. In > + * addition, Licensee may not authorize further sublicense of source of any > + * portion of the Covered Code, and must include terms to the effect that the > + * license from Licensee to its licensee is limited to the intellectual > + * property embodied in the software Licensee provides to its licensee, and > + * not to intellectual property embodied in modifications its licensee may > + * make. > + * > + * 3.3. Redistribution of Executable. Redistribution in executable form of any > + * substantial portion of the Covered Code or modification must reproduce the > + * above Copyright Notice, and the following Disclaimer and Export Compliance > + * provision in the documentation and/or other materials provided with the > + * distribution. > + * > + * 3.4. Intel retains all right, title, and interest in and to the Original > + * Intel Code. > + * > + * 3.5. Neither the name Intel nor any other trademark owned or controlled by > + * Intel shall be used in advertising or otherwise to promote the sale, use or > + * other dealings in products derived from or relating to the Covered Code > + * without prior written authorization from Intel. > + * > + * 4. Disclaimer and Export Compliance > + * > + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED > + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE > + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, > + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY > + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY > + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A > + * PARTICULAR PURPOSE. > + * > + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES > + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR > + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, > + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY > + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL > + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS > + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY > + * LIMITED REMEDY. > + * > + * 4.3. Licensee shall not export, either directly or indirectly, any of this > + * software or system incorporating such software without first obtaining any > + * required license or other approval from the U. S. Department of Commerce or > + * any other agency or department of the United States Government. In the > + * event Licensee exports any such software from the United States or > + * re-exports any such software from a foreign destination, Licensee shall > + * ensure that the distribution and export/re-export of the software is in > + * compliance with all laws, regulations, orders, or other restrictions of the > + * U.S. Export Administration Regulations. Licensee agrees that neither it nor > + * any of its subsidiaries will export/re-export any technical data, process, > + * software, or service, directly or indirectly, to any country for which the > + * United States government or any agency thereof requires an export license, > + * other governmental approval, or letter of assurance, without first obtaining > + * such license, approval or letter. > + * > + *****************************************************************************/ > + > +#include "aslcompiler.h" > +#include "acapps.h" > +#include "acdispat.h" > +#include "acnamesp.h" > +#include "actables.h" > +#include "acparser.h" > + > +#include <stdio.h> > +#include <time.h> > + > +#define _COMPONENT ACPI_TOOLS > + ACPI_MODULE_NAME ("dmtables") > + > + > +/* Local prototypes */ > + > +static void > +AdCreateTableHeader ( > + char *Filename, > + ACPI_TABLE_HEADER *Table); > + > +static ACPI_STATUS > +AdStoreTable ( > + ACPI_TABLE_HEADER *Table, > + UINT32 *TableIndex); > + > + > +extern ACPI_TABLE_DESC LocalTables[1]; > +extern ACPI_PARSE_OBJECT *AcpiGbl_ParseOpRoot; > + > + > +/****************************************************************************** > + * > + * FUNCTION: AdDisassemblerHeader > + * > + * PARAMETERS: Filename - Input file for the table > + * TableType - Either AML or DataTable > + * > + * RETURN: None > + * > + * DESCRIPTION: Create the disassembler header, including ACPICA signon with > + * current time and date. > + * > + *****************************************************************************/ > + > +void > +AdDisassemblerHeader ( > + char *Filename, > + UINT8 TableType) > +{ > + time_t Timer; > + > + > + time (&Timer); > + > + /* Header and input table info */ > + > + AcpiOsPrintf ("/*\n"); > + AcpiOsPrintf (ACPI_COMMON_HEADER (AML_DISASSEMBLER_NAME, " * ")); > + > + if (TableType == ACPI_IS_AML_TABLE) > + { > + if (AcpiGbl_CstyleDisassembly) > + { > + AcpiOsPrintf ( > + " * Disassembling to symbolic ASL+ operators\n" > + " *\n"); > + } > + else > + { > + AcpiOsPrintf ( > + " * Disassembling to non-symbolic legacy ASL operators\n" > + " *\n"); > + } > + } > + > + AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer)); > + AcpiOsPrintf (" *\n"); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: AdCreateTableHeader > + * > + * PARAMETERS: Filename - Input file for the table > + * Table - Pointer to the raw table > + * > + * RETURN: None > + * > + * DESCRIPTION: Create the ASL table header, including ACPICA signon with > + * current time and date. > + * > + *****************************************************************************/ > + > +static void > +AdCreateTableHeader ( > + char *Filename, > + ACPI_TABLE_HEADER *Table) > +{ > + char *NewFilename; > + UINT8 Checksum; > + > + > + /* > + * Print file header and dump original table header > + */ > + AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE); > + > + AcpiOsPrintf (" * Original Table Header:\n"); > + AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature); > + AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length); > + > + /* Print and validate the revision */ > + > + AcpiOsPrintf (" * Revision 0x%2.2X", Table->Revision); > + > + switch (Table->Revision) > + { > + case 0: > + > + AcpiOsPrintf (" **** Invalid Revision"); > + break; > + > + case 1: > + > + /* Revision of DSDT controls the ACPI integer width */ > + > + if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) > + { > + AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support"); > + } > + break; > + > + default: > + > + break; > + } > + AcpiOsPrintf ("\n"); > + > + /* Print and validate the table checksum */ > + > + AcpiOsPrintf (" * Checksum 0x%2.2X", Table->Checksum); > + > + Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); > + if (Checksum) > + { > + AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X", > + (UINT8) (Table->Checksum - Checksum)); > + } > + > + AcpiOsPrintf ("\n"); > + AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId); > + AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId); > + AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision); > + AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId); > + AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision); > + AcpiOsPrintf (" */\n"); > + > + /* Create AML output filename based on input filename */ > + > + if (Filename) > + { > + NewFilename = FlGenerateFilename (Filename, "aml"); > + } > + else > + { > + NewFilename = UtStringCacheCalloc (9); > + if (NewFilename) > + { > + strncat (NewFilename, Table->Signature, 4); > + strcat (NewFilename, ".aml"); > + } > + } > + > + if (!NewFilename) > + { > + AcpiOsPrintf (" **** Could not generate AML output filename\n"); > + return; > + } > + > + /* Open the ASL definition block */ > + > + AcpiOsPrintf ( > + "DefinitionBlock (\"%s\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n", > + NewFilename, Table->Signature, Table->Revision, > + Table->OemId, Table->OemTableId, Table->OemRevision); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: AdDisplayTables > + * > + * PARAMETERS: Filename - Input file for the table > + * Table - Pointer to the raw table > + * > + * RETURN: Status > + * > + * DESCRIPTION: Display (disassemble) loaded tables and dump raw tables > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +AdDisplayTables ( > + char *Filename, > + ACPI_TABLE_HEADER *Table) > +{ > + > + > + if (!AcpiGbl_ParseOpRoot) > + { > + return (AE_NOT_EXIST); > + } > + > + if (!AcpiGbl_DmOpt_Listing) > + { > + AdCreateTableHeader (Filename, Table); > + } > + > + AcpiDmDisassemble (NULL, AcpiGbl_ParseOpRoot, ACPI_UINT32_MAX); > + MpEmitMappingInfo (); > + > + if (AcpiGbl_DmOpt_Listing) > + { > + AcpiOsPrintf ("\n\nTable Header:\n"); > + AcpiUtDebugDumpBuffer ((UINT8 *) Table, sizeof (ACPI_TABLE_HEADER), > + DB_BYTE_DISPLAY, ACPI_UINT32_MAX); > + > + AcpiOsPrintf ("Table Body (Length 0x%X)\n", Table->Length); > + AcpiUtDebugDumpBuffer (((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)), > + Table->Length, DB_BYTE_DISPLAY, ACPI_UINT32_MAX); > + } > + > + return (AE_OK); > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: AdStoreTable > + * > + * PARAMETERS: Table - Table header > + * TableIndex - Where the table index is returned > + * > + * RETURN: Status and table index. > + * > + * DESCRIPTION: Add an ACPI table to the global table list > + * > + ******************************************************************************/ > + > +static ACPI_STATUS > +AdStoreTable ( > + ACPI_TABLE_HEADER *Table, > + UINT32 *TableIndex) > +{ > + ACPI_STATUS Status; > + ACPI_TABLE_DESC *TableDesc; > + > + > + Status = AcpiTbGetNextTableDescriptor (TableIndex, &TableDesc); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* Initialize added table */ > + > + AcpiTbInitTableDescriptor (TableDesc, ACPI_PTR_TO_PHYSADDR (Table), > + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, Table); > + Status = AcpiTbValidateTable (TableDesc); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: AdGetLocalTables > + * > + * PARAMETERS: None > + * > + * RETURN: Status > + * > + * DESCRIPTION: Get the ACPI tables from either memory or a file > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +AdGetLocalTables ( > + void) > +{ > + ACPI_STATUS Status; > + ACPI_TABLE_HEADER TableHeader; > + ACPI_TABLE_HEADER *NewTable; > + UINT32 TableIndex; > + > + > + /* Get the DSDT via table override */ > + > + ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT); > + AcpiOsTableOverride (&TableHeader, &NewTable); > + if (!NewTable) > + { > + fprintf (stderr, "Could not obtain DSDT\n"); > + return (AE_NO_ACPI_TABLES); > + } > + > + AdWriteTable (NewTable, NewTable->Length, > + ACPI_SIG_DSDT, NewTable->OemTableId); > + > + /* Store DSDT in the Table Manager */ > + > + Status = AdStoreTable (NewTable, &TableIndex); > + if (ACPI_FAILURE (Status)) > + { > + fprintf (stderr, "Could not store DSDT\n"); > + return (AE_NO_ACPI_TABLES); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: AdParseTable > + * > + * PARAMETERS: Table - Pointer to the raw table > + * OwnerId - Returned OwnerId of the table > + * LoadTable - If add table to the global table list > + * External - If this is an external table > + * > + * RETURN: Status > + * > + * DESCRIPTION: Parse an ACPI AML table > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +AdParseTable ( > + ACPI_TABLE_HEADER *Table, > + ACPI_OWNER_ID *OwnerId, > + BOOLEAN LoadTable, > + BOOLEAN External) > +{ > + ACPI_STATUS Status = AE_OK; > + ACPI_WALK_STATE *WalkState; > + UINT8 *AmlStart; > + UINT32 AmlLength; > + UINT32 TableIndex; > + > + > + if (!Table) > + { > + return (AE_NOT_EXIST); > + } > + > + /* Pass 1: Parse everything except control method bodies */ > + > + fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature); > + > + AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); > + AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); > + > + /* Create the root object */ > + > + AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp (AmlStart); > + if (!AcpiGbl_ParseOpRoot) > + { > + return (AE_NO_MEMORY); > + } > + > + /* Create and initialize a new walk state */ > + > + WalkState = AcpiDsCreateWalkState (0, AcpiGbl_ParseOpRoot, NULL, NULL); > + if (!WalkState) > + { > + return (AE_NO_MEMORY); > + } > + > + Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParseOpRoot, > + NULL, AmlStart, AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE; > + WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE; > + > + Status = AcpiPsParseAml (WalkState); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* If LoadTable is FALSE, we are parsing the last loaded table */ > + > + TableIndex = AcpiGbl_RootTableList.CurrentTableCount - 1; > + > + /* Pass 2 */ > + > + if (LoadTable) > + { > + Status = AdStoreTable (Table, &TableIndex); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + Status = AcpiTbAllocateOwnerId (TableIndex); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + if (OwnerId) > + { > + Status = AcpiTbGetOwnerId (TableIndex, OwnerId); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + } > + } > + > + fprintf (stderr, "Pass 2 parse of [%4.4s]\n", (char *) Table->Signature); > + > + Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, TableIndex, NULL); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* No need to parse control methods of external table */ > + > + if (External) > + { > + return (AE_OK); > + } > + > + /* > + * Pass 3: Parse control methods and link their parse trees > + * into the main parse tree > + */ > + fprintf (stderr, > + "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n"); > + > + Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); > + fprintf (stderr, "\n"); > + > + /* Process Resource Templates */ > + > + AcpiDmFindResources (AcpiGbl_ParseOpRoot); > + > + fprintf (stderr, "Parsing completed\n"); > + return (AE_OK); > +} > diff --git a/src/acpica/source/common/dmtbdump.c b/src/acpica/source/common/dmtbdump.c > index f1b5512..b22d9bd 100644 > --- a/src/acpica/source/common/dmtbdump.c > +++ b/src/acpica/source/common/dmtbdump.c > @@ -250,6 +250,7 @@ AcpiDmDumpUnicode ( > { > AcpiOsPrintf ("%c", Buffer[i]); > } > + > AcpiOsPrintf ("\"\n"); > return; > > @@ -294,7 +295,7 @@ AcpiDmDumpRsdp ( > /* Validate the first checksum */ > > Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON), > - Rsdp->Checksum); > + Rsdp->Checksum); > if (Checksum != Rsdp->Checksum) > { > AcpiOsPrintf ("/* Incorrect Checksum above, should be 0x%2.2X */\n", > @@ -315,7 +316,7 @@ AcpiDmDumpRsdp ( > /* Validate the extended checksum over entire RSDP */ > > Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP), > - Rsdp->ExtendedChecksum); > + Rsdp->ExtendedChecksum); > if (Checksum != Rsdp->ExtendedChecksum) > { > AcpiOsPrintf ( > @@ -433,7 +434,8 @@ AcpiDmDumpFadt ( > > /* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */ > > - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt1); > + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, > + AcpiDmTableInfoFadt1); > if (ACPI_FAILURE (Status)) > { > return; > @@ -444,7 +446,8 @@ AcpiDmDumpFadt ( > if ((Table->Length > ACPI_FADT_V1_SIZE) && > (Table->Length <= ACPI_FADT_V2_SIZE)) > { > - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt2); > + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, > + AcpiDmTableInfoFadt2); > if (ACPI_FAILURE (Status)) > { > return; > @@ -455,7 +458,8 @@ AcpiDmDumpFadt ( > > else if (Table->Length > ACPI_FADT_V2_SIZE) > { > - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt3); > + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, > + AcpiDmTableInfoFadt3); > if (ACPI_FAILURE (Status)) > { > return; > @@ -465,7 +469,8 @@ AcpiDmDumpFadt ( > > if (Table->Length > ACPI_FADT_V3_SIZE) > { > - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt5); > + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, > + AcpiDmTableInfoFadt5); > if (ACPI_FAILURE (Status)) > { > return; > @@ -476,7 +481,8 @@ AcpiDmDumpFadt ( > > if (Table->Length > ACPI_FADT_V3_SIZE) > { > - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt6); > + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, > + AcpiDmTableInfoFadt6); > if (ACPI_FAILURE (Status)) > { > return; > @@ -557,7 +563,8 @@ AcpiDmValidateFadtLength ( > } > > AcpiOsPrintf ( > - "\n// ACPI Warning: FADT revision %X does not match length: found %X expected %X\n", > + "\n// ACPI Warning: FADT revision %X does not match length: " > + "found %X expected %X\n", > Revision, Length, ExpectedLength); > } > > @@ -599,7 +606,7 @@ AcpiDmDumpAsf ( > /* Common subtable header */ > > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Header.Length, AcpiDmTableInfoAsfHdr); > + SubTable->Header.Length, AcpiDmTableInfoAsfHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -651,12 +658,13 @@ AcpiDmDumpAsf ( > > default: > > - AcpiOsPrintf ("\n**** Unknown ASF subtable type 0x%X\n", SubTable->Header.Type); > + AcpiOsPrintf ("\n**** Unknown ASF subtable type 0x%X\n", > + SubTable->Header.Type); > return; > } > > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Header.Length, InfoTable); > + SubTable->Header.Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -673,7 +681,7 @@ AcpiDmDumpAsf ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, DataOffset, > - DataTable, DataLength, DataInfoTable); > + DataTable, DataLength, DataInfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -696,9 +704,12 @@ AcpiDmDumpAsf ( > AcpiOsPrintf ("%2.2X ", *DataTable); > DataTable++; > DataOffset++; > + > if (DataOffset > Table->Length) > { > - AcpiOsPrintf ("**** ACPI table terminates in the middle of a data structure! (ASF! table)\n"); > + AcpiOsPrintf ( > + "**** ACPI table terminates in the middle of a " > + "data structure! (ASF! table)\n"); > return; > } > } > @@ -722,7 +733,8 @@ AcpiDmDumpAsf ( > } > > Offset += SubTable->Header.Length; > - SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, SubTable->Header.Length); > + SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, > + SubTable->Header.Length); > } > } > > @@ -765,7 +777,7 @@ AcpiDmDumpCpep ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Header.Length, AcpiDmTableInfoCpep0); > + SubTable->Header.Length, AcpiDmTableInfoCpep0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -775,7 +787,7 @@ AcpiDmDumpCpep ( > > Offset += SubTable->Header.Length; > SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, SubTable, > - SubTable->Header.Length); > + SubTable->Header.Length); > } > } > > @@ -819,7 +831,7 @@ AcpiDmDumpCsrt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoCsrt0); > + SubTable->Length, AcpiDmTableInfoCsrt0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -833,7 +845,7 @@ AcpiDmDumpCsrt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset + SubOffset, SharedInfoTable, > - sizeof (ACPI_CSRT_SHARED_INFO), AcpiDmTableInfoCsrt1); > + sizeof (ACPI_CSRT_SHARED_INFO), AcpiDmTableInfoCsrt1); > if (ACPI_FAILURE (Status)) > { > return; > @@ -851,7 +863,7 @@ AcpiDmDumpCsrt ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubTable, > - SubSubTable->Length, AcpiDmTableInfoCsrt2); > + SubSubTable->Length, AcpiDmTableInfoCsrt2); > if (ACPI_FAILURE (Status)) > { > return; > @@ -865,8 +877,8 @@ AcpiDmDumpCsrt ( > if (InfoLength) > { > Status = AcpiDmDumpTable (Length, > - Offset + SubOffset + SubSubOffset, Table, > - InfoLength, AcpiDmTableInfoCsrt2a); > + Offset + SubOffset + SubSubOffset, Table, > + InfoLength, AcpiDmTableInfoCsrt2a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -878,14 +890,14 @@ AcpiDmDumpCsrt ( > > SubOffset += SubSubTable->Length; > SubSubTable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, SubSubTable, > - SubSubTable->Length); > + SubSubTable->Length); > } > > /* Point to next subtable */ > > Offset += SubTable->Length; > SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, SubTable, > - SubTable->Length); > + SubTable->Length); > } > } > > @@ -932,7 +944,7 @@ AcpiDmDumpDbg2 ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoDbg2Device); > + SubTable->Length, AcpiDmTableInfoDbg2Device); > if (ACPI_FAILURE (Status)) > { > return; > @@ -948,7 +960,7 @@ AcpiDmDumpDbg2 ( > Array = (UINT8 *) SubTable + ArrayOffset; > > Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, > - SubTable->Length, AcpiDmTableInfoDbg2Addr); > + SubTable->Length, AcpiDmTableInfoDbg2Addr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -965,7 +977,7 @@ AcpiDmDumpDbg2 ( > Array = (UINT8 *) SubTable + ArrayOffset; > > Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, > - SubTable->Length, AcpiDmTableInfoDbg2Size); > + SubTable->Length, AcpiDmTableInfoDbg2Size); > if (ACPI_FAILURE (Status)) > { > return; > @@ -980,7 +992,7 @@ AcpiDmDumpDbg2 ( > Array = (UINT8 *) SubTable + ArrayOffset; > > Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, > - SubTable->Length, AcpiDmTableInfoDbg2Name); > + SubTable->Length, AcpiDmTableInfoDbg2Name); > if (ACPI_FAILURE (Status)) > { > return; > @@ -991,8 +1003,8 @@ AcpiDmDumpDbg2 ( > if (SubTable->OemDataOffset) > { > Status = AcpiDmDumpTable (Length, Offset + SubTable->OemDataOffset, > - Table, SubTable->OemDataLength, > - AcpiDmTableInfoDbg2OemData); > + Table, SubTable->OemDataLength, > + AcpiDmTableInfoDbg2OemData); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1003,7 +1015,7 @@ AcpiDmDumpDbg2 ( > > Offset += SubTable->Length; > SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, SubTable, > - SubTable->Length); > + SubTable->Length); > } > } > > @@ -1053,11 +1065,12 @@ AcpiDmDumpDmar ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoDmarHdr); > + SubTable->Length, AcpiDmTableInfoDmarHdr); > if (ACPI_FAILURE (Status)) > { > return; > } > + > AcpiOsPrintf ("\n"); > > switch (SubTable->Type) > @@ -1094,12 +1107,13 @@ AcpiDmDumpDmar ( > > default: > > - AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", > + SubTable->Type); > return; > } > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1121,7 +1135,7 @@ AcpiDmDumpDmar ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable, > - ScopeTable->Length, AcpiDmTableInfoDmarScope); > + ScopeTable->Length, AcpiDmTableInfoDmarScope); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1137,7 +1151,8 @@ AcpiDmDumpDmar ( > > while (PathOffset < ScopeTable->Length) > { > - AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, "PCI Path"); > + AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, > + "PCI Path"); > AcpiOsPrintf ("%2.2X,%2.2X\n", PciPath[0], PciPath[1]); > > /* Point to next PCI Path entry */ > @@ -1158,7 +1173,8 @@ NextSubtable: > /* Point to next subtable */ > > Offset += SubTable->Length; > - SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, SubTable->Length); > + SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, > + SubTable->Length); > } > } > > @@ -1190,7 +1206,7 @@ AcpiDmDumpDrtm ( > /* Main table */ > > Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, > - AcpiDmTableInfoDrtm); > + AcpiDmTableInfoDrtm); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1205,12 +1221,13 @@ AcpiDmDumpDrtm ( > DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset); > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, > - DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), > - AcpiDmTableInfoDrtm0); > + DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), > + AcpiDmTableInfoDrtm0); > if (ACPI_FAILURE (Status)) > { > return; > } > + > Offset += ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables); > > /* Dump Validated table addresses */ > @@ -1220,12 +1237,13 @@ AcpiDmDumpDrtm ( > (DrtmVtl->ValidatedTableCount > Count)) > { > Status = AcpiDmDumpTable (Table->Length, Offset, > - ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), > - AcpiDmTableInfoDrtm0a); > + ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), > + AcpiDmTableInfoDrtm0a); > if (ACPI_FAILURE (Status)) > { > return; > } > + > Offset += sizeof (UINT64); > Count++; > } > @@ -1235,8 +1253,8 @@ AcpiDmDumpDrtm ( > DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset); > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, > - DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), > - AcpiDmTableInfoDrtm1); > + DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), > + AcpiDmTableInfoDrtm1); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1251,9 +1269,8 @@ AcpiDmDumpDrtm ( > (DrtmRl->ResourceCount > Count)) > { > Status = AcpiDmDumpTable (Table->Length, Offset, > - ACPI_ADD_PTR (void, Table, Offset), > - sizeof (ACPI_DRTM_RESOURCE), > - AcpiDmTableInfoDrtm1a); > + ACPI_ADD_PTR (void, Table, Offset), > + sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1268,8 +1285,7 @@ AcpiDmDumpDrtm ( > DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset); > AcpiOsPrintf ("\n"); > (void) AcpiDmDumpTable (Table->Length, Offset, > - DrtmDps, sizeof (ACPI_DRTM_DPS_ID), > - AcpiDmTableInfoDrtm2); > + DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2); > } > > > @@ -1311,7 +1327,7 @@ AcpiDmDumpEinj ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoEinj0); > + sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoEinj0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1321,7 +1337,7 @@ AcpiDmDumpEinj ( > > Offset += sizeof (ACPI_WHEA_HEADER); > SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, SubTable, > - sizeof (ACPI_WHEA_HEADER)); > + sizeof (ACPI_WHEA_HEADER)); > } > } > > @@ -1364,7 +1380,7 @@ AcpiDmDumpErst ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoErst0); > + sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoErst0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1374,7 +1390,7 @@ AcpiDmDumpErst ( > > Offset += sizeof (ACPI_WHEA_HEADER); > SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, SubTable, > - sizeof (ACPI_WHEA_HEADER)); > + sizeof (ACPI_WHEA_HEADER)); > } > } > > @@ -1414,7 +1430,7 @@ AcpiDmDumpFpdt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoFpdtHdr); > + SubTable->Length, AcpiDmTableInfoFpdtHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1434,7 +1450,8 @@ AcpiDmDumpFpdt ( > > default: > > - AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", > + SubTable->Type); > > /* Attempt to continue */ > > @@ -1447,7 +1464,7 @@ AcpiDmDumpFpdt ( > } > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1457,7 +1474,8 @@ NextSubTable: > /* Point to next subtable */ > > Offset += SubTable->Length; > - SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, SubTable, SubTable->Length); > + SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, SubTable, > + SubTable->Length); > } > } > > @@ -1506,7 +1524,7 @@ AcpiDmDumpGtdt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoGtdtHdr); > + SubTable->Length, AcpiDmTableInfoGtdtHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1519,7 +1537,7 @@ AcpiDmDumpGtdt ( > > SubTableLength = sizeof (ACPI_GTDT_TIMER_BLOCK); > GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, > - SubTable))->TimerCount; > + SubTable))->TimerCount; > > InfoTable = AcpiDmTableInfoGtdt0; > break; > @@ -1535,12 +1553,13 @@ AcpiDmDumpGtdt ( > > /* Cannot continue on unknown type - no length */ > > - AcpiOsPrintf ("\n**** Unknown GTDT subtable type 0x%X\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown GTDT subtable type 0x%X\n", > + SubTable->Type); > return; > } > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1554,14 +1573,15 @@ AcpiDmDumpGtdt ( > > if (GtCount) > { > - GtxTable = ACPI_ADD_PTR (ACPI_GTDT_TIMER_ENTRY, SubTable, SubTableLength); > + GtxTable = ACPI_ADD_PTR ( > + ACPI_GTDT_TIMER_ENTRY, SubTable, SubTableLength); > SubTableLength += GtCount * sizeof (ACPI_GTDT_TIMER_ENTRY); > > while (GtCount) > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, GtxTable, > - sizeof (ACPI_GTDT_TIMER_ENTRY), AcpiDmTableInfoGtdt0a); > + sizeof (ACPI_GTDT_TIMER_ENTRY), AcpiDmTableInfoGtdt0a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1627,7 +1647,7 @@ AcpiDmDumpHest ( > InfoTable = AcpiDmTableInfoHest0; > SubTableLength = sizeof (ACPI_HEST_IA_MACHINE_CHECK); > BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, > - SubTable))->NumHardwareBanks; > + SubTable))->NumHardwareBanks; > break; > > case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: > @@ -1635,7 +1655,7 @@ AcpiDmDumpHest ( > InfoTable = AcpiDmTableInfoHest1; > SubTableLength = sizeof (ACPI_HEST_IA_CORRECTED); > BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, > - SubTable))->NumHardwareBanks; > + SubTable))->NumHardwareBanks; > break; > > case ACPI_HEST_TYPE_IA32_NMI: > @@ -1672,13 +1692,14 @@ AcpiDmDumpHest ( > > /* Cannot continue on unknown type - no length */ > > - AcpiOsPrintf ("\n**** Unknown HEST subtable type 0x%X\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown HEST subtable type 0x%X\n", > + SubTable->Type); > return; > } > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTableLength, InfoTable); > + SubTableLength, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1692,18 +1713,20 @@ AcpiDmDumpHest ( > > if (BankCount) > { > - BankTable = ACPI_ADD_PTR (ACPI_HEST_IA_ERROR_BANK, SubTable, SubTableLength); > + BankTable = ACPI_ADD_PTR (ACPI_HEST_IA_ERROR_BANK, SubTable, > + SubTableLength); > SubTableLength += BankCount * sizeof (ACPI_HEST_IA_ERROR_BANK); > > while (BankCount) > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, BankTable, > - sizeof (ACPI_HEST_IA_ERROR_BANK), AcpiDmTableInfoHestBank); > + sizeof (ACPI_HEST_IA_ERROR_BANK), AcpiDmTableInfoHestBank); > if (ACPI_FAILURE (Status)) > { > return; > } > + > Offset += sizeof (ACPI_HEST_IA_ERROR_BANK); > BankTable++; > BankCount--; > @@ -1762,7 +1785,7 @@ AcpiDmDumpIort ( > if (Iort->NodeOffset > Offset) > { > Status = AcpiDmDumpTable (Table->Length, Offset, Table, > - Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad); > + Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1778,7 +1801,7 @@ AcpiDmDumpIort ( > AcpiOsPrintf ("\n"); > Length = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); > Status = AcpiDmDumpTable (Table->Length, Offset, > - IortNode, Length, AcpiDmTableInfoIortHdr); > + IortNode, Length, AcpiDmTableInfoIortHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1835,8 +1858,8 @@ AcpiDmDumpIort ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > - Length, InfoTable); > + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > + Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1857,8 +1880,8 @@ AcpiDmDumpIort ( > for (i = 0; i < IortItsGroup->ItsCount; i++) > { > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > - 4, AcpiDmTableInfoIort0a); > + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > + 4, AcpiDmTableInfoIort0a); > NodeOffset += 4; > } > } > @@ -1871,8 +1894,8 @@ AcpiDmDumpIort ( > if (IortNode->Length > NodeOffset) > { > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - Table, IortNode->Length - NodeOffset, > - AcpiDmTableInfoIort1a); > + Table, IortNode->Length - NodeOffset, > + AcpiDmTableInfoIort1a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1891,8 +1914,8 @@ AcpiDmDumpIort ( > Length = 2 * sizeof (UINT64); > NodeOffset = IortSmmu->GlobalInterruptOffset; > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > - Length, AcpiDmTableInfoIort3a); > + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > + Length, AcpiDmTableInfoIort3a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -1902,12 +1925,13 @@ AcpiDmDumpIort ( > for (i = 0; i < IortSmmu->ContextInterruptCount; i++) > { > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > - 8, AcpiDmTableInfoIort3b); > + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > + 8, AcpiDmTableInfoIort3b); > if (ACPI_FAILURE (Status)) > { > return; > } > + > NodeOffset += 8; > } > > @@ -1915,12 +1939,13 @@ AcpiDmDumpIort ( > for (i = 0; i < IortSmmu->PmuInterruptCount; i++) > { > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > - 8, AcpiDmTableInfoIort3c); > + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > + 8, AcpiDmTableInfoIort3c); > if (ACPI_FAILURE (Status)) > { > return; > } > + > NodeOffset += 8; > } > } > @@ -1939,12 +1964,13 @@ AcpiDmDumpIort ( > AcpiOsPrintf ("\n"); > Length = sizeof (ACPI_IORT_ID_MAPPING); > Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, > - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > - Length, AcpiDmTableInfoIortMap); > + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), > + Length, AcpiDmTableInfoIortMap); > if (ACPI_FAILURE (Status)) > { > return; > } > + > NodeOffset += Length; > } > > @@ -2002,7 +2028,7 @@ AcpiDmDumpIvrs ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoIvrsHdr); > + SubTable->Length, AcpiDmTableInfoIvrsHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2041,7 +2067,7 @@ AcpiDmDumpIvrs ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2053,7 +2079,7 @@ AcpiDmDumpIvrs ( > { > EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE); > DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable, > - sizeof (ACPI_IVRS_HARDWARE)); > + sizeof (ACPI_IVRS_HARDWARE)); > > while (EntryOffset < (Offset + SubTable->Length)) > { > @@ -2118,7 +2144,7 @@ AcpiDmDumpIvrs ( > /* Dump the Device Entry */ > > Status = AcpiDmDumpTable (Table->Length, EntryOffset, > - DeviceEntry, EntryLength, InfoTable); > + DeviceEntry, EntryLength, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2126,7 +2152,7 @@ AcpiDmDumpIvrs ( > > EntryOffset += EntryLength; > DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, DeviceEntry, > - EntryLength); > + EntryLength); > } > } > > @@ -2174,7 +2200,7 @@ AcpiDmDumpLpit ( > /* Common subtable header */ > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - sizeof (ACPI_LPIT_HEADER), AcpiDmTableInfoLpitHdr); > + sizeof (ACPI_LPIT_HEADER), AcpiDmTableInfoLpitHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2192,16 +2218,18 @@ AcpiDmDumpLpit ( > > /* Cannot continue on unknown type - no length */ > > - AcpiOsPrintf ("\n**** Unknown LPIT subtable type 0x%X\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown LPIT subtable type 0x%X\n", > + SubTable->Type); > return; > } > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTableLength, InfoTable); > + SubTableLength, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > } > + > AcpiOsPrintf ("\n"); > > /* Point to next subtable */ > @@ -2253,7 +2281,7 @@ AcpiDmDumpMadt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoMadtHdr); > + SubTable->Length, AcpiDmTableInfoMadtHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2343,7 +2371,8 @@ AcpiDmDumpMadt ( > > default: > > - AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", > + SubTable->Type); > > /* Attempt to continue */ > > @@ -2352,11 +2381,12 @@ AcpiDmDumpMadt ( > AcpiOsPrintf ("Invalid zero length subtable\n"); > return; > } > + > goto NextSubTable; > } > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2366,7 +2396,8 @@ NextSubTable: > /* Point to next subtable */ > > Offset += SubTable->Length; > - SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length); > + SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, > + SubTable->Length); > } > } > > @@ -2414,7 +2445,7 @@ AcpiDmDumpMcfg ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); > + sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2424,7 +2455,7 @@ AcpiDmDumpMcfg ( > > Offset += sizeof (ACPI_MCFG_ALLOCATION); > SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, SubTable, > - sizeof (ACPI_MCFG_ALLOCATION)); > + sizeof (ACPI_MCFG_ALLOCATION)); > } > } > > @@ -2474,7 +2505,7 @@ AcpiDmDumpMpst ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0, > - sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); > + sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2495,7 +2526,7 @@ AcpiDmDumpMpst ( > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0A, > - sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); > + sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2518,7 +2549,7 @@ AcpiDmDumpMpst ( > while (ComponentCount) > { > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0B, > - sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); > + sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2543,7 +2574,7 @@ AcpiDmDumpMpst ( > AcpiOsPrintf ("\n"); > SubTable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, SubTable0); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable1, > - sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); > + sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2554,13 +2585,14 @@ AcpiDmDumpMpst ( > > /* Subtable: Memory Power State Characteristics structure(s) */ > > - SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, sizeof (ACPI_MPST_DATA_HDR)); > + SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, > + sizeof (ACPI_MPST_DATA_HDR)); > > while ((Offset < Table->Length) && SubtableCount) > { > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable2, > - sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); > + sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2611,7 +2643,7 @@ AcpiDmDumpMsct ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); > + sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2620,7 +2652,8 @@ AcpiDmDumpMsct ( > /* Point to next subtable */ > > Offset += sizeof (ACPI_MSCT_PROXIMITY); > - SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, SubTable, sizeof (ACPI_MSCT_PROXIMITY)); > + SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, SubTable, > + sizeof (ACPI_MSCT_PROXIMITY)); > } > } > > @@ -2663,7 +2696,7 @@ AcpiDmDumpMtmr ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); > + sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2672,7 +2705,8 @@ AcpiDmDumpMtmr ( > /* Point to next subtable */ > > Offset += sizeof (ACPI_MTMR_ENTRY); > - SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, SubTable, sizeof (ACPI_MTMR_ENTRY)); > + SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, SubTable, > + sizeof (ACPI_MTMR_ENTRY)); > } > } > > @@ -2722,7 +2756,7 @@ AcpiDmDumpNfit ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoNfitHdr); > + SubTable->Length, AcpiDmTableInfoNfitHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2775,7 +2809,8 @@ AcpiDmDumpNfit ( > break; > > default: > - AcpiOsPrintf ("\n**** Unknown NFIT subtable type 0x%X\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown NFIT subtable type 0x%X\n", > + SubTable->Type); > > /* Attempt to continue */ > > @@ -2789,7 +2824,7 @@ AcpiDmDumpNfit ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2804,8 +2839,8 @@ AcpiDmDumpNfit ( > for (i = 0; i < Interleave->LineCount; i++) > { > Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, > - &Interleave->LineOffset[i], > - sizeof (UINT32), AcpiDmTableInfoNfit2a); > + &Interleave->LineOffset[i], > + sizeof (UINT32), AcpiDmTableInfoNfit2a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2817,13 +2852,15 @@ AcpiDmDumpNfit ( > > case ACPI_NFIT_TYPE_SMBIOS: > > - Length = SubTable->Length - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); > + Length = SubTable->Length - > + sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); > + > if (Length) > { > Status = AcpiDmDumpTable (Table->Length, > - sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), > - SmbiosInfo, > - Length, AcpiDmTableInfoNfit3a); > + sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), > + SmbiosInfo, > + Length, AcpiDmTableInfoNfit3a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2837,8 +2874,8 @@ AcpiDmDumpNfit ( > for (i = 0; i < Hint->HintCount; i++) > { > Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, > - &Hint->HintAddress[i], > - sizeof (UINT64), AcpiDmTableInfoNfit6a); > + &Hint->HintAddress[i], > + sizeof (UINT64), AcpiDmTableInfoNfit6a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2902,7 +2939,7 @@ AcpiDmDumpPcct ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Header.Length, AcpiDmTableInfoPcctHdr); > + SubTable->Header.Length, AcpiDmTableInfoPcctHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2930,7 +2967,7 @@ AcpiDmDumpPcct ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Header.Length, InfoTable); > + SubTable->Header.Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -2940,7 +2977,7 @@ AcpiDmDumpPcct ( > > Offset += SubTable->Header.Length; > SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, SubTable, > - SubTable->Header.Length); > + SubTable->Header.Length); > } > } > > @@ -2992,7 +3029,7 @@ AcpiDmDumpPmtt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoPmttHdr); > + SubTable->Length, AcpiDmTableInfoPmttHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3011,7 +3048,7 @@ AcpiDmDumpPmtt ( > /* Dump the fixed-length portion of the subtable */ > > Status = AcpiDmDumpTable (Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoPmtt0); > + SubTable->Length, AcpiDmTableInfoPmtt0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3030,8 +3067,8 @@ AcpiDmDumpPmtt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, > - Offset + MemOffset, MemSubTable, > - MemSubTable->Length, AcpiDmTableInfoPmttHdr); > + Offset + MemOffset, MemSubTable, > + MemSubTable->Length, AcpiDmTableInfoPmttHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3050,8 +3087,8 @@ AcpiDmDumpPmtt ( > /* Dump the fixed-length portion of the controller subtable */ > > Status = AcpiDmDumpTable (Length, > - Offset + MemOffset, MemSubTable, > - MemSubTable->Length, AcpiDmTableInfoPmtt1); > + Offset + MemOffset, MemSubTable, > + MemSubTable->Length, AcpiDmTableInfoPmtt1); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3069,8 +3106,8 @@ AcpiDmDumpPmtt ( > DomainCount) > { > Status = AcpiDmDumpTable (Length, > - Offset + MemOffset + DomainOffset, DomainArray, > - sizeof (ACPI_PMTT_DOMAIN), AcpiDmTableInfoPmtt1a); > + Offset + MemOffset + DomainOffset, DomainArray, > + sizeof (ACPI_PMTT_DOMAIN), AcpiDmTableInfoPmtt1a); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3100,8 +3137,8 @@ AcpiDmDumpPmtt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Length, > - Offset + MemOffset + DimmOffset, DimmSubTable, > - DimmSubTable->Length, AcpiDmTableInfoPmttHdr); > + Offset + MemOffset + DimmOffset, DimmSubTable, > + DimmSubTable->Length, AcpiDmTableInfoPmttHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3120,8 +3157,8 @@ AcpiDmDumpPmtt ( > /* Dump the fixed-length DIMM subtable */ > > Status = AcpiDmDumpTable (Length, > - Offset + MemOffset + DimmOffset, DimmSubTable, > - DimmSubTable->Length, AcpiDmTableInfoPmtt2); > + Offset + MemOffset + DimmOffset, DimmSubTable, > + DimmSubTable->Length, AcpiDmTableInfoPmtt2); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3188,7 +3225,7 @@ AcpiDmDumpS3pt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoS3ptHdr); > + SubTable->Length, AcpiDmTableInfoS3ptHdr); > if (ACPI_FAILURE (Status)) > { > return 0; > @@ -3208,7 +3245,8 @@ AcpiDmDumpS3pt ( > > default: > > - AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", > + SubTable->Type); > > /* Attempt to continue */ > > @@ -3222,7 +3260,7 @@ AcpiDmDumpS3pt ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return 0; > @@ -3255,8 +3293,9 @@ void > AcpiDmDumpSlic ( > ACPI_TABLE_HEADER *Table) > { > + > (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table, > - Table->Length - sizeof (*Table), AcpiDmTableInfoSlic); > + Table->Length - sizeof (*Table), AcpiDmTableInfoSlic); > } > > > @@ -3309,7 +3348,8 @@ AcpiDmDumpSlit ( > > if (Offset >= Table->Length) > { > - AcpiOsPrintf ("\n**** Not enough room in table for all localities\n"); > + AcpiOsPrintf ( > + "\n**** Not enough room in table for all localities\n"); > return; > } > > @@ -3377,7 +3417,7 @@ AcpiDmDumpSrat ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Length, AcpiDmTableInfoSratHdr); > + SubTable->Length, AcpiDmTableInfoSratHdr); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3406,7 +3446,8 @@ AcpiDmDumpSrat ( > break; > > default: > - AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n", SubTable->Type); > + AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n", > + SubTable->Type); > > /* Attempt to continue */ > > @@ -3420,7 +3461,7 @@ AcpiDmDumpSrat ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - SubTable->Length, InfoTable); > + SubTable->Length, InfoTable); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3430,7 +3471,8 @@ NextSubTable: > /* Point to next subtable */ > > Offset += SubTable->Length; > - SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length); > + SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, > + SubTable->Length); > } > } > > @@ -3594,7 +3636,7 @@ AcpiDmDumpVrtc ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); > + sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3603,7 +3645,8 @@ AcpiDmDumpVrtc ( > /* Point to next subtable */ > > Offset += sizeof (ACPI_VRTC_ENTRY); > - SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, SubTable, sizeof (ACPI_VRTC_ENTRY)); > + SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, SubTable, > + sizeof (ACPI_VRTC_ENTRY)); > } > } > > @@ -3646,7 +3689,7 @@ AcpiDmDumpWdat ( > > AcpiOsPrintf ("\n"); > Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, > - sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); > + sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); > if (ACPI_FAILURE (Status)) > { > return; > @@ -3655,10 +3698,12 @@ AcpiDmDumpWdat ( > /* Point to next subtable */ > > Offset += sizeof (ACPI_WDAT_ENTRY); > - SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, SubTable, sizeof (ACPI_WDAT_ENTRY)); > + SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, SubTable, > + sizeof (ACPI_WDAT_ENTRY)); > } > } > > + > /******************************************************************************* > * > * FUNCTION: AcpiDmDumpWpbt > diff --git a/src/acpica/source/compiler/Makefile.am b/src/acpica/source/compiler/Makefile.am > index f0c48b1..d71068c 100644 > --- a/src/acpica/source/compiler/Makefile.am > +++ b/src/acpica/source/compiler/Makefile.am > @@ -110,6 +110,8 @@ libfwtsiasl_la_SOURCES = \ > dtsubtable.c \ > dttemplate.c \ > dttable.c \ > + dttable1.c \ > + dttable2.c \ > dtutils.c \ > dtexpress.c \ > dtcompile.c \ > @@ -207,6 +209,7 @@ libfwtsiasl_la_SOURCES = \ > ../common/dmextern.c \ > ../common/dmrestag.c \ > ../common/dmtable.c \ > + ../common/dmtables.c \ > ../common/dmtbinfo.c \ > ../common/dmtbdump.c \ > ../components/debugger/dbfileio.c \ > diff --git a/src/acpica/source/compiler/aslanalyze.c b/src/acpica/source/compiler/aslanalyze.c > index dde91ba..0182605 100644 > --- a/src/acpica/source/compiler/aslanalyze.c > +++ b/src/acpica/source/compiler/aslanalyze.c > @@ -211,8 +211,7 @@ AnCheckId ( > Length = strlen (Op->Asl.Value.String); > if (!Length) > { > - AslError (ASL_ERROR, ASL_MSG_NULL_STRING, > - Op, NULL); > + AslError (ASL_ERROR, ASL_MSG_NULL_STRING, Op, NULL); > return; > } > > @@ -263,7 +262,7 @@ AnCheckId ( > return; > } > > - /* _HID Length is valid (7 or 8), now check the prefix (first 3 or 4 chars) */ > + /* _HID Length is valid (7 or 8), now check prefix (first 3 or 4 chars) */ > > if (Length == 7) > { > @@ -303,8 +302,8 @@ AnCheckId ( > { > if (!isxdigit ((int) Op->Asl.Value.String[i])) > { > - AslError (ASL_ERROR, ASL_MSG_HID_SUFFIX, > - Op, &Op->Asl.Value.String[i]); > + AslError (ASL_ERROR, ASL_MSG_HID_SUFFIX, > + Op, &Op->Asl.Value.String[i]); > break; > } > } > @@ -395,7 +394,8 @@ AnCheckMethodReturnValue ( > { > /* Method SOMETIMES returns a value, SOMETIMES not */ > > - AslError (ASL_WARNING, ASL_MSG_SOME_NO_RETVAL, Op, Op->Asl.ExternalName); > + AslError (ASL_WARNING, ASL_MSG_SOME_NO_RETVAL, > + Op, Op->Asl.ExternalName); > } > else if (!(ThisNodeBtype & RequiredBtypes)) > { > @@ -472,12 +472,13 @@ AnIsResultUsed ( > { > return (TRUE); > } > + > return (FALSE); > > /* Not used if one of these is the parent */ > > case PARSEOP_METHOD: > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > case PARSEOP_ELSE: > > return (FALSE); > diff --git a/src/acpica/source/compiler/aslbtypes.c b/src/acpica/source/compiler/aslbtypes.c > index 96f234a..7328ad5 100644 > --- a/src/acpica/source/compiler/aslbtypes.c > +++ b/src/acpica/source/compiler/aslbtypes.c > @@ -150,7 +150,6 @@ AnMapArgTypeToBtype ( > > switch (ArgType) > { > - > /* Simple types */ > > case ARGI_ANYTYPE: > @@ -293,7 +292,6 @@ AnMapEtypeToBtype ( > UINT32 Etype) > { > > - > if (Etype == ACPI_TYPE_ANY) > { > return (ACPI_BTYPE_OBJECTS_AND_REFS); > @@ -400,7 +398,6 @@ AnFormatBtype ( > > > *Buffer = 0; > - > if (Btype == 0) > { > strcat (Buffer, "NoReturnValue"); > @@ -415,6 +412,7 @@ AnFormatBtype ( > { > strcat (Buffer, "|"); > } > + > First = FALSE; > strcat (Buffer, AcpiUtGetTypeName (Type)); > } > @@ -427,6 +425,7 @@ AnFormatBtype ( > { > strcat (Buffer, "|"); > } > + > First = FALSE; > strcat (Buffer, "Reference"); > } > @@ -438,6 +437,7 @@ AnFormatBtype ( > { > strcat (Buffer, "|"); > } > + > First = FALSE; > strcat (Buffer, "Resource"); > } > @@ -481,7 +481,8 @@ AnGetBtype ( > if (!Node) > { > DbgPrint (ASL_DEBUG_OUTPUT, > - "No attached Nsnode: [%s] at line %u name [%s], ignoring typecheck\n", > + "No attached Nsnode: [%s] at line %u name [%s], " > + "ignoring typecheck\n", > Op->Asl.ParseOpName, Op->Asl.LineNumber, > Op->Asl.ExternalName); > return (ACPI_UINT32_MAX); > @@ -529,6 +530,7 @@ AnGetBtype ( > return (ThisNodeBtype); > } > > + > /******************************************************************************* > * > * FUNCTION: AnMapObjTypeToBtype > diff --git a/src/acpica/source/compiler/aslcodegen.c b/src/acpica/source/compiler/aslcodegen.c > index 1508231..864aca7 100644 > --- a/src/acpica/source/compiler/aslcodegen.c > +++ b/src/acpica/source/compiler/aslcodegen.c > @@ -240,28 +240,28 @@ CgAmlWriteWalk ( > } > > DbgPrint (ASL_TREE_OUTPUT, > - "%08X %04X %04X %01X %04X %04X %04X %04X " > - "%08X %08X %08X %08X %08X %08X %04X %02d %02d %02d %02d %02d\n", > - /* 1 */ (UINT32) Op->Asl.Value.Integer, > - /* 2 */ Op->Asl.ParseOpcode, > - /* 3 */ Op->Asl.AmlOpcode, > - /* 4 */ Op->Asl.AmlOpcodeLength, > - /* 5 */ Op->Asl.AmlPkgLenBytes, > - /* 6 */ Op->Asl.AmlLength, > - /* 7 */ Op->Asl.AmlSubtreeLength, > - /* 8 */ Op->Asl.Parent ? Op->Asl.Parent->Asl.AmlSubtreeLength : 0, > - /* 9 */ Op, > - /* 10 */ Op->Asl.Parent, > - /* 11 */ Op->Asl.Child, > - /* 12 */ Op->Asl.Next, > - /* 13 */ Op->Asl.CompileFlags, > - /* 14 */ Op->Asl.AcpiBtype, > - /* 15 */ Op->Asl.FinalAmlLength, > - /* 16 */ Op->Asl.Column, > - /* 17 */ Op->Asl.LineNumber, > - /* 18 */ Op->Asl.EndLine, > - /* 19 */ Op->Asl.LogicalLineNumber, > - /* 20 */ Op->Asl.EndLogicalLine); > + "%08X %04X %04X %01X %04X %04X %04X %04X " > + "%08X %08X %08X %08X %08X %08X %04X %02d %02d %02d %02d %02d\n", > + /* 1 */ (UINT32) Op->Asl.Value.Integer, > + /* 2 */ Op->Asl.ParseOpcode, > + /* 3 */ Op->Asl.AmlOpcode, > + /* 4 */ Op->Asl.AmlOpcodeLength, > + /* 5 */ Op->Asl.AmlPkgLenBytes, > + /* 6 */ Op->Asl.AmlLength, > + /* 7 */ Op->Asl.AmlSubtreeLength, > + /* 8 */ Op->Asl.Parent ? Op->Asl.Parent->Asl.AmlSubtreeLength : 0, > + /* 9 */ Op, > + /* 10 */ Op->Asl.Parent, > + /* 11 */ Op->Asl.Child, > + /* 12 */ Op->Asl.Next, > + /* 13 */ Op->Asl.CompileFlags, > + /* 14 */ Op->Asl.AcpiBtype, > + /* 15 */ Op->Asl.FinalAmlLength, > + /* 16 */ Op->Asl.Column, > + /* 17 */ Op->Asl.LineNumber, > + /* 18 */ Op->Asl.EndLine, > + /* 19 */ Op->Asl.LogicalLineNumber, > + /* 20 */ Op->Asl.EndLogicalLine); > > /* Generate the AML for this node */ > > @@ -346,7 +346,8 @@ CgWriteAmlOpcode ( > /* These opcodes should not get here */ > > printf ("Found a node with an unassigned AML opcode\n"); > - FlPrintFile (ASL_FILE_STDERR, "Found a node with an unassigned AML opcode\n"); > + FlPrintFile (ASL_FILE_STDERR, > + "Found a node with an unassigned AML opcode\n"); > return; > > case AML_INT_RESERVEDFIELD_OP: > @@ -429,8 +430,10 @@ CgWriteAmlOpcode ( > */ > PkgLen.Len >>= 4; > > - /* Now we can write the remaining bytes - either 1, 2, or 3 bytes */ > - > + /* > + * Now we can write the remaining bytes - > + * either 1, 2, or 3 bytes > + */ > for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++) > { > CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1); > @@ -539,50 +542,100 @@ CgWriteTableHeader ( > > /* Table length. Checksum zero for now, will rewrite later */ > > - TableHeader.Length = Gbl_TableLength; > + TableHeader.Length = sizeof (ACPI_TABLE_HEADER) + > + Op->Asl.AmlSubtreeLength; > TableHeader.Checksum = 0; > > + Op->Asl.FinalAmlOffset = ftell (Gbl_Files[ASL_FILE_AML_OUTPUT].Handle); > + > + /* Write entire header and clear the table header global */ > + > CgLocalWriteAmlData (Op, &TableHeader, sizeof (ACPI_TABLE_HEADER)); > + memset (&TableHeader, 0, sizeof (ACPI_TABLE_HEADER)); > } > > > /******************************************************************************* > * > - * FUNCTION: CgCloseTable > + * FUNCTION: CgUpdateHeader > * > - * PARAMETERS: None. > + * PARAMETERS: Op - Op for the Definition Block > * > * RETURN: None. > * > * DESCRIPTION: Complete the ACPI table by calculating the checksum and > - * re-writing the header. > + * re-writing the header for the input definition block > * > ******************************************************************************/ > > static void > -CgCloseTable ( > - void) > +CgUpdateHeader ( > + ACPI_PARSE_OBJECT *Op) > { > signed char Sum; > + UINT32 i; > + UINT32 Length; > UINT8 FileByte; > + UINT8 Checksum; > > > - FlSeekFile (ASL_FILE_AML_OUTPUT, 0); > - Sum = 0; > + /* Calculate the checksum over the entire definition block */ > > - /* Calculate the checksum over the entire file */ > + Sum = 0; > + Length = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength; > + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset); > > - while (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) == AE_OK) > + for (i = 0; i < Length; i++) > { > + if (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) != AE_OK) > + { > + printf ("EOF while reading checksum bytes\n"); > + return; > + } > + > Sum = (signed char) (Sum + FileByte); > } > > - /* Re-write the table header with the checksum */ > + Checksum = (UINT8) (0 - Sum); > + > + /* Re-write the the checksum byte */ > > - TableHeader.Checksum = (UINT8) (0 - Sum); > + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + > + ACPI_OFFSET (ACPI_TABLE_HEADER, Checksum)); > > - FlSeekFile (ASL_FILE_AML_OUTPUT, 0); > - CgLocalWriteAmlData (NULL, &TableHeader, sizeof (ACPI_TABLE_HEADER)); > + FlWriteFile (ASL_FILE_AML_OUTPUT, &Checksum, 1); > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: CgCloseTable > + * > + * PARAMETERS: None. > + * > + * RETURN: None. > + * > + * DESCRIPTION: Complete the ACPI table by calculating the checksum and > + * re-writing each table header. This allows support for > + * multiple definition blocks in a single source file. > + * > + ******************************************************************************/ > + > +static void > +CgCloseTable ( > + void) > +{ > + ACPI_PARSE_OBJECT *Op; > + > + > + /* Process all definition blocks */ > + > + Op = RootNode->Asl.Child; > + while (Op) > + { > + CgUpdateHeader (Op); > + Op = Op->Asl.Next; > + } > } > > > @@ -658,7 +711,7 @@ CgWriteNode ( > > break; > > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > > CgWriteTableHeader (Op); > break; > diff --git a/src/acpica/source/compiler/aslcompile.c b/src/acpica/source/compiler/aslcompile.c > index c76178c..e9575c7 100644 > --- a/src/acpica/source/compiler/aslcompile.c > +++ b/src/acpica/source/compiler/aslcompile.c > @@ -202,7 +202,8 @@ CmDoCompile ( > > if (Gbl_SyntaxError) > { > - fprintf (stderr, "Compiler aborting due to parser-detected syntax error(s)\n"); > + fprintf (stderr, > + "Compiler aborting due to parser-detected syntax error(s)\n"); > LsDumpParseTree (); > goto ErrorExit; > } > @@ -237,7 +238,7 @@ CmDoCompile ( > > LsDumpParseTree (); > > - OpcGetIntegerWidth (RootNode); > + OpcGetIntegerWidth (RootNode->Asl.Child); > UtEndEvent (Event); > > /* Pre-process parse tree for any operator transforms */ > @@ -258,8 +259,8 @@ CmDoCompile ( > > /* > * Now that the input is parsed, we can open the AML output file. > - * Note: by default, the name of this file comes from the table descriptor > - * within the input file. > + * Note: by default, the name of this file comes from the table > + * descriptor within the input file. > */ > Event = UtBeginEvent ("Open AML output file"); > Status = FlOpenAmlOutputFile (Gbl_OutputFilenamePrefix); > @@ -335,7 +336,8 @@ CmDoCompile ( > > /* Namespace cross-reference */ > > - AslGbl_NamespaceEvent = UtBeginEvent ("Cross reference parse tree and Namespace"); > + AslGbl_NamespaceEvent = UtBeginEvent ( > + "Cross reference parse tree and Namespace"); > Status = XfCrossReferenceNamespace (); > if (ACPI_FAILURE (Status)) > { > @@ -373,7 +375,8 @@ CmDoCompile ( > /* Semantic error checking part three - operand type checking */ > > Event = UtBeginEvent ("Analyze AML operand types"); > - DbgPrint (ASL_DEBUG_OUTPUT, "\nSemantic analysis - Operand type checking\n\n"); > + DbgPrint (ASL_DEBUG_OUTPUT, > + "\nSemantic analysis - Operand type checking\n\n"); > if (Gbl_DoTypechecking) > { > TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, > @@ -662,8 +665,8 @@ CmDumpAllEvents ( > { > ASL_EVENT_INFO *Event; > UINT32 Delta; > - UINT32 USec; > - UINT32 MSec; > + UINT32 MicroSeconds; > + UINT32 MilliSeconds; > UINT32 i; > > > @@ -683,23 +686,23 @@ CmDumpAllEvents ( > > Delta = (UINT32) (Event->EndTime - Event->StartTime); > > - USec = Delta / ACPI_100NSEC_PER_USEC; > - MSec = Delta / ACPI_100NSEC_PER_MSEC; > + MicroSeconds = Delta / ACPI_100NSEC_PER_USEC; > + MilliSeconds = Delta / ACPI_100NSEC_PER_MSEC; > > /* Round milliseconds up */ > > - if ((USec - (MSec * ACPI_USEC_PER_MSEC)) >= 500) > + if ((MicroSeconds - (MilliSeconds * ACPI_USEC_PER_MSEC)) >= 500) > { > - MSec++; > + MilliSeconds++; > } > > DbgPrint (ASL_DEBUG_OUTPUT, "%8u usec %8u msec - %s\n", > - USec, MSec, Event->EventName); > + MicroSeconds, MilliSeconds, Event->EventName); > > if (Gbl_CompileTimesFlag) > { > printf ("%8u usec %8u msec - %s\n", > - USec, MSec, Event->EventName); > + MicroSeconds, MilliSeconds, Event->EventName); > } > } > > diff --git a/src/acpica/source/compiler/aslcompiler.l b/src/acpica/source/compiler/aslcompiler.l > index 0fc3535..dcfc9ab 100644 > --- a/src/acpica/source/compiler/aslcompiler.l > +++ b/src/acpica/source/compiler/aslcompiler.l > @@ -282,7 +282,7 @@ NamePathTail [.]{NameSeg} > "Debug" { count (1); return (PARSEOP_DEBUG); } > "Decrement" { count (3); return (PARSEOP_DECREMENT); } > "Default" { count (3); return (PARSEOP_DEFAULT); } > -"DefinitionBlock" { count (1); return (PARSEOP_DEFINITIONBLOCK); } > +"DefinitionBlock" { count (1); return (PARSEOP_DEFINITION_BLOCK); } > "DeRefOf" { count (3); return (PARSEOP_DEREFOF); } > "Device" { count (2); return (PARSEOP_DEVICE); } > "Divide" { count (3); return (PARSEOP_DIVIDE); } > diff --git a/src/acpica/source/compiler/aslcompiler.y b/src/acpica/source/compiler/aslcompiler.y > index 20b728a..3a2b191 100644 > --- a/src/acpica/source/compiler/aslcompiler.y > +++ b/src/acpica/source/compiler/aslcompiler.y > @@ -266,7 +266,7 @@ AslLocalAllocate ( > %token <i> PARSEOP_DECREMENT > %token <i> PARSEOP_DEFAULT > %token <i> PARSEOP_DEFAULT_ARG > -%token <i> PARSEOP_DEFINITIONBLOCK > +%token <i> PARSEOP_DEFINITION_BLOCK > %token <i> PARSEOP_DEREFOF > %token <i> PARSEOP_DEVICE > %token <i> PARSEOP_DEVICEPOLARITY_HIGH > @@ -606,6 +606,9 @@ AslLocalAllocate ( > /* PARSEOP_EXP_PAREN_OPEN */ > /* PARSEOP_EXP_PAREN_CLOSE */ > > + > +%token <i> PARSEOP_ASL_CODE > + > /* > * Special functions. These should probably stay at the end of this > * table. > @@ -627,12 +630,13 @@ AslLocalAllocate ( > *****************************************************************************/ > > %type <n> ArgList > -%type <n> ASLCode > +%type <n> AslCode > %type <n> BufferData > %type <n> BufferTermData > %type <n> CompilerDirective > %type <n> DataObject > %type <n> DefinitionBlockTerm > +%type <n> DefinitionBlockList > %type <n> IntegerData > %type <n> NamedObject > %type <n> NameSpaceModifier > @@ -985,11 +989,12 @@ AslLocalAllocate ( > * Root term. Allow multiple #line directives before the definition block > * to handle output from preprocessors > */ > -ASLCode > - : DefinitionBlockTerm > +AslCode > + : DefinitionBlockList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);} > | error {YYABORT; $$ = NULL;} > ; > > + > /* > * Note concerning support for "module-level code". > * > @@ -1006,7 +1011,7 @@ ASLCode > * of Type1 and Type2 opcodes at module level. > */ > DefinitionBlockTerm > - : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);} > + : PARSEOP_DEFINITION_BLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);} > String ',' > String ',' > ByteConst ',' > @@ -1017,6 +1022,12 @@ DefinitionBlockTerm > '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);} > ; > > +DefinitionBlockList > + : DefinitionBlockTerm > + | DefinitionBlockTerm > + DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);} > + ; > + > SuperName > : NameString {} > | ArgTerm {} > diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c > index c9df5d8..0b2631d 100644 > --- a/src/acpica/source/compiler/aslerror.c > +++ b/src/acpica/source/compiler/aslerror.c > @@ -339,8 +339,10 @@ AePrintException ( > > if (!Enode->SourceLine) > { > - /* Use the merged header/source file if present, otherwise use input file */ > - > + /* > + * Use the merged header/source file if present, otherwise > + * use input file > + */ > SourceFile = Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle; > if (!SourceFile) > { > @@ -386,18 +388,18 @@ AePrintException ( > fprintf (OutputFile, " %6u: ", Enode->LineNumber); > > /* > - * If not at EOF, get the corresponding source code line and > - * display it. Don't attempt this if we have a premature EOF > - * condition. > + * If not at EOF, get the corresponding source code line > + * and display it. Don't attempt this if we have a > + * premature EOF condition. > */ > if (!PrematureEOF) > { > /* > - * Seek to the offset in the combined source file, read > - * the source line, and write it to the output. > + * Seek to the offset in the combined source file, > + * read the source line, and write it to the output. > */ > - Actual = fseek (SourceFile, (long) Enode->LogicalByteOffset, > - (int) SEEK_SET); > + Actual = fseek (SourceFile, > + (long) Enode->LogicalByteOffset, (int) SEEK_SET); > if (Actual) > { > fprintf (OutputFile, > @@ -952,16 +954,17 @@ AslCoreSubsystemError ( > > if (Op) > { > - AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, Op->Asl.LineNumber, > - Op->Asl.LogicalLineNumber, > - Op->Asl.LogicalByteOffset, > - Op->Asl.Column, > - Op->Asl.Filename, MsgBuffer); > + AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, > + Op->Asl.LineNumber, > + Op->Asl.LogicalLineNumber, > + Op->Asl.LogicalByteOffset, > + Op->Asl.Column, > + Op->Asl.Filename, MsgBuffer); > } > else > { > - AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, 0, > - 0, 0, 0, NULL, MsgBuffer); > + AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, > + 0, 0, 0, 0, NULL, MsgBuffer); > } > > if (Abort) > diff --git a/src/acpica/source/compiler/aslfileio.c b/src/acpica/source/compiler/aslfileio.c > index 9588528..7872396 100644 > --- a/src/acpica/source/compiler/aslfileio.c > +++ b/src/acpica/source/compiler/aslfileio.c > @@ -142,6 +142,7 @@ FlFileError ( > > sprintf (MsgBuffer, "\"%s\" (%s) - %s", Gbl_Files[FileId].Filename, > Gbl_Files[FileId].Description, strerror (errno)); > + > AslCommonError (ASL_ERROR, ErrorId, 0, 0, 0, 0, NULL, MsgBuffer); > } > > @@ -341,7 +342,8 @@ FlPrintFile ( > AslAbort (); > } > > - if ((FileId == ASL_FILE_PREPROCESSOR) && Gbl_PreprocessorOutputFlag) > + if ((FileId == ASL_FILE_PREPROCESSOR) && > + Gbl_PreprocessorOutputFlag) > { > /* > * Duplicate the output to the user preprocessor (.i) file, > @@ -363,7 +365,6 @@ FlPrintFile ( > AslAbort (); > } > } > - > } > > > diff --git a/src/acpica/source/compiler/aslfiles.c b/src/acpica/source/compiler/aslfiles.c > index 234e9b4..1c1b1d8 100644 > --- a/src/acpica/source/compiler/aslfiles.c > +++ b/src/acpica/source/compiler/aslfiles.c > @@ -128,7 +128,6 @@ FlOpenIncludeWithPrefix ( > ACPI_PARSE_OBJECT *Op, > char *Filename); > > - > #ifdef ACPI_OBSOLETE_FUNCTIONS > ACPI_STATUS > FlParseInputPathname ( > @@ -334,7 +333,8 @@ FlMergePathnames ( > /* Build the final merged pathname */ > > ConcatenatePaths: > - Pathname = UtStringCacheCalloc (strlen (CommonPath) + strlen (FilePathname) + 2); > + Pathname = UtStringCacheCalloc ( > + strlen (CommonPath) + strlen (FilePathname) + 2); > if (LastElement && *CommonPath) > { > strcpy (Pathname, CommonPath); > @@ -494,7 +494,8 @@ FlOpenIncludeFile ( > * > * Construct the file pathname from the global directory name. > */ > - IncludeFile = FlOpenIncludeWithPrefix (Gbl_DirectoryPath, Op, Op->Asl.Value.String); > + IncludeFile = FlOpenIncludeWithPrefix ( > + Gbl_DirectoryPath, Op, Op->Asl.Value.String); > if (IncludeFile) > { > return; > @@ -507,7 +508,8 @@ FlOpenIncludeFile ( > NextDir = Gbl_IncludeDirList; > while (NextDir) > { > - IncludeFile = FlOpenIncludeWithPrefix (NextDir->Dir, Op, Op->Asl.Value.String); > + IncludeFile = FlOpenIncludeWithPrefix ( > + NextDir->Dir, Op, Op->Asl.Value.String); > if (IncludeFile) > { > return; > diff --git a/src/acpica/source/compiler/aslfold.c b/src/acpica/source/compiler/aslfold.c > index 7812907..d7a7bc1 100644 > --- a/src/acpica/source/compiler/aslfold.c > +++ b/src/acpica/source/compiler/aslfold.c > @@ -172,7 +172,7 @@ TrInstallReducedConstant ( > * > * RETURN: Status > * > - * DESCRIPTION: Reduce an Op and its subtree to a constant if possible > + * DESCRIPTION: Reduce an Op and its subtree to a constant if possible. > * > ******************************************************************************/ > > @@ -278,7 +278,8 @@ OpcAmlConstantWalk ( > * > * RETURN: Status > * > - * DESCRIPTION: Check one Op for a type 3/4/5 AML opcode > + * DESCRIPTION: Check one Op for a reducible type 3/4/5 AML opcode. > + * This is performed via a downward walk of the parse subtree. > * > ******************************************************************************/ > > @@ -290,6 +291,8 @@ OpcAmlCheckForConstant ( > { > ACPI_WALK_STATE *WalkState = Context; > ACPI_STATUS Status = AE_OK; > + ACPI_PARSE_OBJECT *NextOp; > + const ACPI_OPCODE_INFO *OpInfo; > > > WalkState->Op = Op; > @@ -300,21 +303,6 @@ OpcAmlCheckForConstant ( > Op->Asl.LogicalLineNumber, Op->Asl.ParseOpName); > > /* > - * TBD: Ignore buffer constants for now. The problem is that these > - * constants have been transformed into RAW_DATA at this point, from > - * the parse tree transform process which currently happens before > - * the constant folding process. We may need to defer this transform > - * for buffer until after the constant folding. > - */ > - if (WalkState->Opcode == AML_BUFFER_OP) > - { > - DbgPrint (ASL_PARSE_OUTPUT, > - "\nBuffer+Buffer->Buffer constant reduction is not supported yet"); > - Status = AE_TYPE; > - goto CleanupAndExit; > - } > - > - /* > * These opcodes do not appear in the OpcodeInfo table, but > * they represent constants, so abort the constant walk now. > */ > @@ -328,11 +316,95 @@ OpcAmlCheckForConstant ( > goto CleanupAndExit; > } > > + /* > + * Search upwards for a possible Name() operator. This is done > + * because a type 3/4/5 opcode within a Name() expression > + * MUST be reduced to a simple constant. > + */ > + NextOp = Op->Asl.Parent; > + while (NextOp) > + { > + /* Finished if we find a Name() opcode */ > + > + if (NextOp->Asl.AmlOpcode == AML_NAME_OP) > + { > + break; > + } > + > + /* > + * Any "deferred" opcodes contain one or more TermArg parameters, > + * and thus are not required to be folded to constants at compile > + * time. This affects things like Buffer() and Package() objects. > + * We just ignore them here. However, any sub-expressions can and > + * will still be typechecked. Note: These are called the > + * "deferred" opcodes in the AML interpreter. > + */ > + OpInfo = AcpiPsGetOpcodeInfo (NextOp->Common.AmlOpcode); > + if (OpInfo->Flags & AML_DEFER) > + { > + NextOp = NULL; > + break; > + } > + > + NextOp = NextOp->Asl.Parent; > + } > + > /* Type 3/4/5 opcodes have the AML_CONSTANT flag set */ > > if (!(WalkState->OpInfo->Flags & AML_CONSTANT)) > { > - /* Not 3/4/5 opcode, but maybe can convert to STORE */ > + /* > + * From the ACPI specification: > + * > + * "The Type 3/4/5 opcodes return a value and can be used in an > + * expression that evaluates to a constant. These opcodes may be > + * evaluated at ASL compile-time. To ensure that these opcodes > + * will evaluate to a constant, the following rules apply: The > + * term cannot have a destination (target) operand, and must have > + * either a Type3Opcode, Type4Opcode, Type5Opcode, ConstExprTerm, > + * Integer, BufferTerm, Package, or String for all arguments." > + */ > + > + /* > + * The value (second) operand for the Name() operator MUST > + * reduce to a single constant, as per the ACPI specification > + * (the operand is a DataObject). This also implies that there > + * can be no target operand. Name() is the only ASL operator > + * with a "DataObject" as an operand and is thus special- > + * cased here. > + */ > + if (NextOp) /* Inspect a Name() operator */ > + { > + /* Error if there is a target operand */ > + > + if (Op->Asl.CompileFlags & NODE_IS_TARGET) > + { > + AslError (ASL_ERROR, ASL_MSG_INVALID_TARGET, Op, NULL); > + Status = AE_TYPE; > + } > + > + /* Error if expression cannot be reduced (folded) */ > + > + if (!(NextOp->Asl.CompileFlags & NODE_COULD_NOT_REDUCE)) > + { > + /* Ensure only one error message per statement */ > + > + NextOp->Asl.CompileFlags |= NODE_COULD_NOT_REDUCE; > + DbgPrint (ASL_PARSE_OUTPUT, > + "**** Could not reduce operands for NAME opcode ****\n"); > + > + AslError (ASL_ERROR, ASL_MSG_CONSTANT_REQUIRED, Op, > + "Constant is required for Name operator"); > + Status = AE_TYPE; > + } > + } > + > + if (ACPI_FAILURE (Status)) > + { > + goto CleanupAndExit; > + } > + > + /* This is not a 3/4/5 opcode, but maybe can convert to STORE */ > > if (Op->Asl.CompileFlags & NODE_IS_TARGET) > { > @@ -344,13 +416,36 @@ OpcAmlCheckForConstant ( > /* Expression cannot be reduced */ > > DbgPrint (ASL_PARSE_OUTPUT, > - "**** Not a Type 3/4/5 opcode (%s) ****", > + "**** Not a Type 3/4/5 opcode or cannot reduce/fold (%s) ****\n", > Op->Asl.ParseOpName); > > Status = AE_TYPE; > goto CleanupAndExit; > } > > + /* > + * TBD: Ignore buffer constants for now. The problem is that these > + * constants have been transformed into RAW_DATA at this point, from > + * the parse tree transform process which currently happens before > + * the constant folding process. We may need to defer this transform > + * for buffer until after the constant folding. > + */ > + if (WalkState->Opcode == AML_BUFFER_OP) > + { > + DbgPrint (ASL_PARSE_OUTPUT, > + "\nBuffer constant reduction is not supported yet\n"); > + > + if (NextOp) /* Found a Name() operator, error */ > + { > + AslError (ASL_ERROR, ASL_MSG_UNSUPPORTED, Op, > + "Buffer expression cannot be reduced"); > + } > + > + Status = AE_TYPE; > + goto CleanupAndExit; > + } > + > + > /* Debug output */ > > DbgPrint (ASL_PARSE_OUTPUT, "TYPE_345"); > @@ -366,6 +461,7 @@ OpcAmlCheckForConstant ( > DbgPrint (ASL_PARSE_OUTPUT, "%-16s", " VALID TARGET"); > } > } > + > if (Op->Asl.CompileFlags & NODE_IS_TERM_ARG) > { > DbgPrint (ASL_PARSE_OUTPUT, "%-16s", " TERMARG"); > diff --git a/src/acpica/source/compiler/aslhex.c b/src/acpica/source/compiler/aslhex.c > index 39825c8..c7d53a9 100644 > --- a/src/acpica/source/compiler/aslhex.c > +++ b/src/acpica/source/compiler/aslhex.c > @@ -122,7 +122,6 @@ > * This module emits ASCII hex output files in either C, ASM, or ASL format > */ > > - > /* Local prototypes */ > > static void > @@ -295,6 +294,7 @@ HxDoHexOutputC ( > > FlPrintFile (ASL_FILE_HEX_OUTPUT, " /* %8.8X", Offset); > LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT, LineLength, FileData); > + > FlPrintFile (ASL_FILE_HEX_OUTPUT, "%*s*/\n", > HEX_TABLE_LINE_SIZE - LineLength + 1, " "); > > @@ -382,6 +382,7 @@ HxDoHexOutputAsl ( > > FlPrintFile (ASL_FILE_HEX_OUTPUT, " /* %8.8X", Offset); > LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT, LineLength, FileData); > + > FlPrintFile (ASL_FILE_HEX_OUTPUT, "%*s*/\n", > HEX_TABLE_LINE_SIZE - LineLength + 1, " "); > > @@ -465,6 +466,7 @@ HxDoHexOutputAsm ( > > FlPrintFile (ASL_FILE_HEX_OUTPUT, " ; %8.8X", Offset); > LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT, LineLength, FileData); > + > FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n"); > > Offset += LineLength; > diff --git a/src/acpica/source/compiler/asllength.c b/src/acpica/source/compiler/asllength.c > index 3fbf896..87dc874 100644 > --- a/src/acpica/source/compiler/asllength.c > +++ b/src/acpica/source/compiler/asllength.c > @@ -204,10 +204,11 @@ LnPackageLengthWalk ( > if ((Op->Asl.Parent) && > (Op->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)) > { > - Op->Asl.Parent->Asl.AmlSubtreeLength += (Op->Asl.AmlLength + > - Op->Asl.AmlOpcodeLength + > - Op->Asl.AmlPkgLenBytes + > - Op->Asl.AmlSubtreeLength); > + Op->Asl.Parent->Asl.AmlSubtreeLength += ( > + Op->Asl.AmlLength + > + Op->Asl.AmlOpcodeLength + > + Op->Asl.AmlPkgLenBytes + > + Op->Asl.AmlSubtreeLength); > } > return (AE_OK); > } > @@ -301,7 +302,7 @@ CgGenerateAmlOpcodeLength ( > if (Op->Asl.CompileFlags & NODE_AML_PACKAGE) > { > Op->Asl.AmlPkgLenBytes = CgGetPackageLenByteCount ( > - Op, Op->Asl.AmlSubtreeLength); > + Op, Op->Asl.AmlSubtreeLength); > } > > /* Data opcode lengths are easy */ > @@ -404,10 +405,9 @@ CgGenerateAmlLengths ( > > switch (Op->Asl.ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > > - Gbl_TableLength = sizeof (ACPI_TABLE_HEADER) + > - Op->Asl.AmlSubtreeLength; > + Gbl_TableLength = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength; > break; > > case PARSEOP_NAMESEG: > @@ -437,7 +437,6 @@ CgGenerateAmlLengths ( > Op->Asl.ExternalName = Op->Asl.Value.String; > Op->Asl.Value.String = Buffer; > Op->Asl.CompileFlags |= NODE_NAME_INTERNALIZED; > - > Op->Asl.AmlLength = strlen (Buffer); > > /* > @@ -463,7 +462,7 @@ CgGenerateAmlLengths ( > > Op->Asl.AmlOpcodeLength = 0; > Op->Asl.AmlPkgLenBytes = CgGetPackageLenByteCount (Op, > - (UINT32) Op->Asl.Value.Integer); > + (UINT32) Op->Asl.Value.Integer); > break; > > case PARSEOP_RAW_DATA: > diff --git a/src/acpica/source/compiler/asllisting.c b/src/acpica/source/compiler/asllisting.c > index 8131cf4..6f76133 100644 > --- a/src/acpica/source/compiler/asllisting.c > +++ b/src/acpica/source/compiler/asllisting.c > @@ -284,6 +284,12 @@ LsAmlListingWalk ( > return (AE_OK); > } > > + if ((FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) || > + (FileId == ASL_FILE_C_INCLUDE_OUTPUT)) > + { > + return (AE_OK); > + } > + > /* Write the hex bytes to the listing file(s) (if requested) */ > > for (i = 0; i < Op->Asl.FinalAmlLength; i++) > @@ -293,6 +299,7 @@ LsAmlListingWalk ( > FlFileError (ASL_FILE_AML_OUTPUT, ASL_MSG_READ); > AslAbort (); > } > + > LsWriteListingHexBytes (&FileByte, 1, FileId); > } > > @@ -388,7 +395,7 @@ LsWriteNodeToListing ( > { > switch (Op->Asl.ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > case PARSEOP_METHODCALL: > case PARSEOP_INCLUDE: > case PARSEOP_INCLUDE_END: > @@ -434,36 +441,46 @@ LsWriteNodeToListing ( > > switch (Op->Asl.ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > > LsWriteSourceLines (Op->Asl.EndLine, Op->Asl.EndLogicalLine, FileId); > > /* Use the table Signature and TableId to build a unique name */ > > - if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT) > + switch (FileId) > { > + case ASL_FILE_ASM_SOURCE_OUTPUT: > + > FlPrintFile (FileId, > "%s_%s_Header \\\n", > Gbl_TableSignature, Gbl_TableId); > - } > - if (FileId == ASL_FILE_C_SOURCE_OUTPUT) > - { > + break; > + > + case ASL_FILE_C_SOURCE_OUTPUT: > + > FlPrintFile (FileId, > " unsigned char %s_%s_Header [] =\n {\n", > Gbl_TableSignature, Gbl_TableId); > - } > - if (FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) > - { > + break; > + > + case ASL_FILE_ASM_INCLUDE_OUTPUT: > + > FlPrintFile (FileId, > "extrn %s_%s_Header : byte\n", > Gbl_TableSignature, Gbl_TableId); > - } > - if (FileId == ASL_FILE_C_INCLUDE_OUTPUT) > - { > + break; > + > + case ASL_FILE_C_INCLUDE_OUTPUT: > + > FlPrintFile (FileId, > "extern unsigned char %s_%s_Header [];\n", > Gbl_TableSignature, Gbl_TableId); > + break; > + > + default: > + break; > } > + > return; > > > @@ -612,31 +629,41 @@ LsWriteNodeToListing ( > > /* Create the appropriate symbol in the output file */ > > - if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT) > + switch (FileId) > { > + case ASL_FILE_ASM_SOURCE_OUTPUT: > + > FlPrintFile (FileId, > "%s_%s_%s \\\n", > Gbl_TableSignature, Gbl_TableId, &Pathname[1]); > - } > - if (FileId == ASL_FILE_C_SOURCE_OUTPUT) > - { > + break; > + > + case ASL_FILE_C_SOURCE_OUTPUT: > + > FlPrintFile (FileId, > " unsigned char %s_%s_%s [] =\n {\n", > Gbl_TableSignature, Gbl_TableId, &Pathname[1]); > - } > - if (FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) > - { > + break; > + > + case ASL_FILE_ASM_INCLUDE_OUTPUT: > + > FlPrintFile (FileId, > "extrn %s_%s_%s : byte\n", > Gbl_TableSignature, Gbl_TableId, &Pathname[1]); > - } > - if (FileId == ASL_FILE_C_INCLUDE_OUTPUT) > - { > + break; > + > + case ASL_FILE_C_INCLUDE_OUTPUT: > + > FlPrintFile (FileId, > "extern unsigned char %s_%s_%s [];\n", > Gbl_TableSignature, Gbl_TableId, &Pathname[1]); > + break; > + > + default: > + break; > } > } > + > ACPI_FREE (Pathname); > } > break; > diff --git a/src/acpica/source/compiler/asllistsup.c b/src/acpica/source/compiler/asllistsup.c > index c71ace0..815a204 100644 > --- a/src/acpica/source/compiler/asllistsup.c > +++ b/src/acpica/source/compiler/asllistsup.c > @@ -160,6 +160,7 @@ LsDumpAscii ( > FlPrintFile (FileId, "."); > } > } > + > FlPrintFile (FileId, "\""); > } > > @@ -257,7 +258,6 @@ LsCheckException ( > (LineNumber >= Gbl_NextError->LogicalLineNumber)) > { > AePrintException (FileId, Gbl_NextError, "\n[****iasl****]\n"); > - > Gbl_NextError = Gbl_NextError->Next; > } > > @@ -648,6 +648,7 @@ LsFlushListingBuffer ( > { > FlPrintFile (FileId, ","); > } > + > FlPrintFile (FileId, "0%2.2Xh", Gbl_AmlBuffer[i]); > } > > diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c > index e6c1f85..9607679 100644 > --- a/src/acpica/source/compiler/aslload.c > +++ b/src/acpica/source/compiler/aslload.c > @@ -268,12 +268,11 @@ LdLoadFieldElements ( > default: > > Status = AcpiNsLookup (WalkState->ScopeInfo, > - Child->Asl.Value.String, > - ACPI_TYPE_LOCAL_REGION_FIELD, > - ACPI_IMODE_LOAD_PASS1, > - ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | > - ACPI_NS_ERROR_IF_FOUND, > - NULL, &Node); > + Child->Asl.Value.String, > + ACPI_TYPE_LOCAL_REGION_FIELD, > + ACPI_IMODE_LOAD_PASS1, > + ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | > + ACPI_NS_ERROR_IF_FOUND, NULL, &Node); > if (ACPI_FAILURE (Status)) > { > if (Status != AE_ALREADY_EXISTS) > @@ -338,9 +337,9 @@ LdLoadResourceElements ( > * This opens a scope, so later field names are guaranteed to be new/unique. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Asl.Namepath, > - ACPI_TYPE_LOCAL_RESOURCE, ACPI_IMODE_LOAD_PASS1, > - ACPI_NS_NO_UPSEARCH | ACPI_NS_ERROR_IF_FOUND, > - WalkState, &Node); > + ACPI_TYPE_LOCAL_RESOURCE, ACPI_IMODE_LOAD_PASS1, > + ACPI_NS_NO_UPSEARCH | ACPI_NS_ERROR_IF_FOUND, > + WalkState, &Node); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_ALREADY_EXISTS) > @@ -368,11 +367,11 @@ LdLoadResourceElements ( > if (InitializerOp->Asl.ExternalName) > { > Status = AcpiNsLookup (WalkState->ScopeInfo, > - InitializerOp->Asl.ExternalName, > - ACPI_TYPE_LOCAL_RESOURCE_FIELD, > - ACPI_IMODE_LOAD_PASS1, > - ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE, > - NULL, &Node); > + InitializerOp->Asl.ExternalName, > + ACPI_TYPE_LOCAL_RESOURCE_FIELD, > + ACPI_IMODE_LOAD_PASS1, > + ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE, > + NULL, &Node); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -416,6 +415,7 @@ LdNamespace1Begin ( > { > ACPI_WALK_STATE *WalkState = (ACPI_WALK_STATE *) Context; > ACPI_NAMESPACE_NODE *Node; > + ACPI_PARSE_OBJECT *MethodOp; > ACPI_STATUS Status; > ACPI_OBJECT_TYPE ObjectType; > ACPI_OBJECT_TYPE ActualObjectType = ACPI_TYPE_ANY; > @@ -572,8 +572,8 @@ LdNamespace1Begin ( > * handle this case. Perhaps someday this case can go away. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > - WalkState, &(Node)); > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > + WalkState, &(Node)); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_NOT_FOUND) > @@ -581,9 +581,9 @@ LdNamespace1Begin ( > /* The name was not found, go ahead and create it */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, > - ACPI_TYPE_LOCAL_SCOPE, > - ACPI_IMODE_LOAD_PASS1, Flags, > - WalkState, &(Node)); > + ACPI_TYPE_LOCAL_SCOPE, > + ACPI_IMODE_LOAD_PASS1, Flags, > + WalkState, &(Node)); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -606,6 +606,35 @@ LdNamespace1Begin ( > > return_ACPI_STATUS (Status); > } > + else /* Status AE_OK */ > + { > + /* > + * Do not allow references to external scopes from the DSDT. > + * This is because the DSDT is always loaded first, and the > + * external reference cannot be resolved -- causing a runtime > + * error because Scope() must be resolved immediately. > + * 10/2015. > + */ > + if ((Node->Flags & ANOBJ_IS_EXTERNAL) && > + (ACPI_COMPARE_NAME (Gbl_TableSignature, "DSDT"))) > + { > + /* However, allowed if the reference is within a method */ > + > + MethodOp = Op->Asl.Parent; > + while (MethodOp && > + (MethodOp->Asl.ParseOpcode != PARSEOP_METHOD)) > + { > + MethodOp = MethodOp->Asl.Parent; > + } > + > + if (!MethodOp) > + { > + /* Not in a control method, error */ > + > + AslError (ASL_ERROR, ASL_MSG_CROSS_TABLE_SCOPE, Op, NULL); > + } > + } > + } > > /* We found a node with this name, now check the type */ > > @@ -641,7 +670,7 @@ LdNamespace1Begin ( > > Node->Type = ACPI_TYPE_LOCAL_SCOPE; > Status = AcpiDsScopeStackPush (Node, ACPI_TYPE_LOCAL_SCOPE, > - WalkState); > + WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -663,7 +692,7 @@ LdNamespace1Begin ( > */ > Node->Type = ACPI_TYPE_LOCAL_SCOPE; > Status = AcpiDsScopeStackPush (Node, ACPI_TYPE_LOCAL_SCOPE, > - WalkState); > + WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -683,7 +712,7 @@ LdNamespace1Begin ( > > > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Loading name: %s, (%s)\n", > - Op->Asl.ExternalName, AcpiUtGetTypeName (ObjectType))); > + Op->Asl.ExternalName, AcpiUtGetTypeName (ObjectType))); > > /* The name must not already exist */ > > @@ -696,7 +725,7 @@ LdNamespace1Begin ( > * parse tree later. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, > - ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); > + ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_ALREADY_EXISTS) > @@ -730,6 +759,17 @@ LdNamespace1Begin ( > return_ACPI_STATUS (Status); > } > } > + > + Status = AE_OK; > + } > + else if (!(Node->Flags & ANOBJ_IS_EXTERNAL) && > + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) > + { > + /* > + * Allow externals in same scope as the definition of the > + * actual object. Similar to C. Allows multiple definition > + * blocks that refer to each other in the same file. > + */ > Status = AE_OK; > } > else > @@ -890,8 +930,8 @@ LdNamespace2Begin ( > /* Get the NS node associated with the target. It must exist. */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &TargetNode); > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &TargetNode); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_NOT_FOUND) > @@ -904,9 +944,9 @@ LdNamespace2Begin ( > * This prevents more errors later. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, > - ACPI_TYPE_ANY, > - ACPI_IMODE_LOAD_PASS1, ACPI_NS_NO_UPSEARCH, > - WalkState, &(Node)); > + ACPI_TYPE_ANY, > + ACPI_IMODE_LOAD_PASS1, ACPI_NS_NO_UPSEARCH, > + WalkState, &(Node)); > return (AE_OK); > } > > diff --git a/src/acpica/source/compiler/aslmap.c b/src/acpica/source/compiler/aslmap.c > index a06c246..50b84d1 100644 > --- a/src/acpica/source/compiler/aslmap.c > +++ b/src/acpica/source/compiler/aslmap.c > @@ -551,6 +551,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = > /* HORIZONTALOFFSET */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), > /* PRINTF */ OP_TABLE_ENTRY (AML_STORE_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE), > /* FPRINTF */ OP_TABLE_ENTRY (AML_STORE_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE), > +/* ASLCODE */ OP_TABLE_ENTRY (0, 0, 0, 0) > /*! [End] no source code translation !*/ > > }; > diff --git a/src/acpica/source/compiler/aslmapoutput.c b/src/acpica/source/compiler/aslmapoutput.c > index ef85594..d6234ab 100644 > --- a/src/acpica/source/compiler/aslmapoutput.c > +++ b/src/acpica/source/compiler/aslmapoutput.c > @@ -525,7 +525,7 @@ MpEmitDeviceTree ( > /* Walk the namespace from the root */ > > (void) AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, FALSE, MpEmitOneDevice, NULL, NULL, NULL); > + ACPI_UINT32_MAX, FALSE, MpEmitOneDevice, NULL, NULL, NULL); > } > > > diff --git a/src/acpica/source/compiler/aslmessages.c b/src/acpica/source/compiler/aslmessages.c > index 5373c2d..2245edd 100644 > --- a/src/acpica/source/compiler/aslmessages.c > +++ b/src/acpica/source/compiler/aslmessages.c > @@ -310,8 +310,9 @@ const char *AslCompilerMsgs [] = > /* ASL_MSG_ILLEGAL_METHOD_REF */ "Illegal reference across two methods", > /* ASL_MSG_LOCAL_NOT_USED */ "Method Local is set but never used", > /* ASL_MSG_ARG_AS_LOCAL_NOT_USED */ "Method Argument (as a local) is set but never used", > -/* ASL_MSG_ARG_NOT_USED */ "Method Argument is never used" > - > +/* ASL_MSG_ARG_NOT_USED */ "Method Argument is never used", > +/* ASL_MSG_CONSTANT_REQUIRED */ "Non-reducible expression", > +/* ASL_MSG_CROSS_TABLE_SCOPE */ "Illegal open scope on external object from within DSDT" > }; > > /* Table compiler */ > diff --git a/src/acpica/source/compiler/aslmessages.h b/src/acpica/source/compiler/aslmessages.h > index 0e5469d..aa00cf8 100644 > --- a/src/acpica/source/compiler/aslmessages.h > +++ b/src/acpica/source/compiler/aslmessages.h > @@ -313,6 +313,8 @@ typedef enum > ASL_MSG_LOCAL_NOT_USED, > ASL_MSG_ARG_AS_LOCAL_NOT_USED, > ASL_MSG_ARG_NOT_USED, > + ASL_MSG_CONSTANT_REQUIRED, > + ASL_MSG_CROSS_TABLE_SCOPE, > > /* These messages are used by the Data Table compiler only */ > > diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c > index 8ffb837..d4f20e8 100644 > --- a/src/acpica/source/compiler/aslmethod.c > +++ b/src/acpica/source/compiler/aslmethod.c > @@ -173,7 +173,7 @@ MtMethodAnalysisWalkBegin ( > > /* Create and init method info */ > > - MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO)); > + MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO)); > MethodInfo->Next = WalkInfo->MethodStack; > MethodInfo->Op = Op; > > @@ -258,7 +258,9 @@ MtMethodAnalysisWalkBegin ( > NextParamType = NextType->Asl.Child; > while (NextParamType) > { > - MethodInfo->ValidArgTypes[ActualArgs] |= AnMapObjTypeToBtype (NextParamType); > + MethodInfo->ValidArgTypes[ActualArgs] |= > + AnMapObjTypeToBtype (NextParamType); > + > NextParamType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; > NextParamType = NextParamType->Asl.Next; > } > @@ -267,6 +269,7 @@ MtMethodAnalysisWalkBegin ( > { > MethodInfo->ValidArgTypes[ActualArgs] = > AnMapObjTypeToBtype (NextType); > + > NextType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; > ActualArgs++; > } > @@ -323,7 +326,8 @@ MtMethodAnalysisWalkBegin ( > * Local was used outside a control method, or there was an error > * in the method declaration. > */ > - AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName); > + AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, > + Op, Op->Asl.ExternalName); > return (AE_ERROR); > } > > @@ -366,7 +370,8 @@ MtMethodAnalysisWalkBegin ( > * Arg was used outside a control method, or there was an error > * in the method declaration. > */ > - AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName); > + AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, > + Op, Op->Asl.ExternalName); > return (AE_ERROR); > } > > @@ -389,7 +394,7 @@ MtMethodAnalysisWalkBegin ( > * The only operator that accepts an uninitialized value is ObjectType() > */ > else if ((!MethodInfo->ArgInitialized[RegisterNumber]) && > - (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE)) > + (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE)) > { > AslError (ASL_ERROR, ASL_MSG_ARG_INIT, Op, ArgName); > } > @@ -490,7 +495,8 @@ MtMethodAnalysisWalkBegin ( > i = ApCheckForPredefinedName (Op, Op->Asl.NameSeg); > if (i < ACPI_VALID_RESERVED_NAME_MAX) > { > - AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, Op, Op->Asl.ExternalName); > + AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, > + Op, Op->Asl.ExternalName); > } > break; > > @@ -567,9 +573,10 @@ MtCheckNamedObjectInMethod ( > const ACPI_OPCODE_INFO *OpInfo; > > > - /* We don't care about actual method declarations */ > + /* We don't care about actual method declarations or scopes */ > > - if (Op->Asl.AmlOpcode == AML_METHOD_OP) > + if ((Op->Asl.AmlOpcode == AML_METHOD_OP) || > + (Op->Asl.AmlOpcode == AML_SCOPE_OP)) > { > return; > } > @@ -749,7 +756,8 @@ MtMethodAnalysisWalkEnd ( > */ > if (Op->Asl.Next) > { > - AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, Op->Asl.Next, NULL); > + AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, > + Op->Asl.Next, NULL); > } > break; > > diff --git a/src/acpica/source/compiler/aslnamesp.c b/src/acpica/source/compiler/aslnamesp.c > index c5a6fbd..cdec53b 100644 > --- a/src/acpica/source/compiler/aslnamesp.c > +++ b/src/acpica/source/compiler/aslnamesp.c > @@ -196,16 +196,16 @@ NsDisplayNamespace ( > /* Walk entire namespace from the root */ > > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, FALSE, NsDoOneNamespaceObject, NULL, > - NULL, NULL); > + ACPI_UINT32_MAX, FALSE, NsDoOneNamespaceObject, NULL, > + NULL, NULL); > > /* Print the full pathname for each namespace node */ > > FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "\nNamespace pathnames\n\n"); > > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, FALSE, NsDoOnePathname, NULL, > - NULL, NULL); > + ACPI_UINT32_MAX, FALSE, NsDoOnePathname, NULL, > + NULL, NULL); > > return (Status); > } > @@ -240,8 +240,7 @@ NsDoOneNamespaceObject ( > > FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "%5u [%u] %*s %4.4s - %s", > Gbl_NumNamespaceObjects, Level, (Level * 3), " ", > - &Node->Name, > - AcpiUtGetTypeName (Node->Type)); > + &Node->Name, AcpiUtGetTypeName (Node->Type)); > > Op = Node->Op; > ObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node->Object); > @@ -290,11 +289,13 @@ NsDoOneNamespaceObject ( > { > Op = Op->Asl.Child; > } > + > if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || > (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) > { > Op = Op->Asl.Next; > } > + > FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, > " [Initial Value 0x%8.8X%8.8X]", > ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer)); > @@ -306,11 +307,13 @@ NsDoOneNamespaceObject ( > { > Op = Op->Asl.Child; > } > + > if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || > (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) > { > Op = Op->Asl.Next; > } > + > FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, > " [Initial Value \"%s\"]", > Op->Asl.Value.String); > @@ -323,6 +326,7 @@ NsDoOneNamespaceObject ( > { > Op = Op->Asl.Child; > } > + > FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, > " [Offset 0x%04X Length 0x%04X bits]", > Op->Asl.Parent->Asl.ExtraValue, (UINT32) Op->Asl.Value.Integer); > @@ -375,11 +379,13 @@ NsDoOneNamespaceObject ( > { > Op = Op->Asl.Child; > } > + > if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || > (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) > { > Op = Op->Asl.Next; > } > + > Op = Op->Asl.Child; > > if ((Op->Asl.ParseOpcode == PARSEOP_BYTECONST) || > @@ -397,11 +403,13 @@ NsDoOneNamespaceObject ( > { > Op = Op->Asl.Child; > } > + > if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || > (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) > { > Op = Op->Asl.Next; > } > + > Op = Op->Asl.Child; > > if (Op && (Op->Asl.ParseOpcode == PARSEOP_INTEGER)) > @@ -489,6 +497,5 @@ NsDoOnePathname ( > > FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "%s\n", TargetPath.Pointer); > ACPI_FREE (TargetPath.Pointer); > - > return (AE_OK); > } > diff --git a/src/acpica/source/compiler/aslopcodes.c b/src/acpica/source/compiler/aslopcodes.c > index 4a00b74..08dc4a4 100644 > --- a/src/acpica/source/compiler/aslopcodes.c > +++ b/src/acpica/source/compiler/aslopcodes.c > @@ -332,7 +332,7 @@ OpcSetOptimalIntegerSize ( > */ > if (Op->Asl.Parent && > Op->Asl.Parent->Asl.Parent && > - (Op->Asl.Parent->Asl.Parent->Asl.ParseOpcode == PARSEOP_DEFINITIONBLOCK)) > + (Op->Asl.Parent->Asl.Parent->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)) > { > return (0); > } > @@ -402,11 +402,13 @@ OpcSetOptimalIntegerSize ( > Op->Asl.AmlOpcode = AML_BYTE_OP; > return (1); > } > + > if (Op->Asl.Value.Integer <= ACPI_UINT16_MAX) > { > Op->Asl.AmlOpcode = AML_WORD_OP; > return (2); > } > + > if (Op->Asl.Value.Integer <= ACPI_UINT32_MAX) > { > Op->Asl.AmlOpcode = AML_DWORD_OP; > @@ -470,6 +472,7 @@ OpcDoAccessAs ( > { > AttribOp->Asl.Value.Integer = 0; > } > + > AttribOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE; > AttribOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > > @@ -558,21 +561,21 @@ OpcDoConnection ( > * First Child -> BufferLength > * Second Child -> Descriptor Buffer (raw byte data) > */ > - BufferOp->Asl.ParseOpcode = PARSEOP_BUFFER; > - BufferOp->Asl.AmlOpcode = AML_BUFFER_OP; > - BufferOp->Asl.CompileFlags = NODE_AML_PACKAGE | NODE_IS_RESOURCE_DESC; > + BufferOp->Asl.ParseOpcode = PARSEOP_BUFFER; > + BufferOp->Asl.AmlOpcode = AML_BUFFER_OP; > + BufferOp->Asl.CompileFlags = NODE_AML_PACKAGE | NODE_IS_RESOURCE_DESC; > UtSetParseOpName (BufferOp); > > - BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; > + BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; > BufferLengthOp->Asl.Value.Integer = Rnode->BufferLength; > (void) OpcSetOptimalIntegerSize (BufferLengthOp); > UtSetParseOpName (BufferLengthOp); > > - BufferDataOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > - BufferDataOp->Asl.AmlOpcode = AML_RAW_DATA_CHAIN; > - BufferDataOp->Asl.AmlOpcodeLength = 0; > - BufferDataOp->Asl.AmlLength = Rnode->BufferLength; > - BufferDataOp->Asl.Value.Buffer = (UINT8 *) Rnode; > + BufferDataOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > + BufferDataOp->Asl.AmlOpcode = AML_RAW_DATA_CHAIN; > + BufferDataOp->Asl.AmlOpcodeLength = 0; > + BufferDataOp->Asl.AmlLength = Rnode->BufferLength; > + BufferDataOp->Asl.Value.Buffer = (UINT8 *) Rnode; > UtSetParseOpName (BufferDataOp); > } > > @@ -636,8 +639,8 @@ OpcDoUnicode ( > * Just set the buffer size node to be the buffer length, regardless > * of whether it was previously an integer or a default_arg placeholder > */ > - BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; > - BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; > + BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; > + BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; > BufferLengthOp->Asl.Value.Integer = Length; > UtSetParseOpName (BufferLengthOp); > > @@ -645,11 +648,11 @@ OpcDoUnicode ( > > /* The Unicode string is a raw data buffer */ > > - InitializerOp->Asl.Value.Buffer = (UINT8 *) UnicodeString; > - InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > - InitializerOp->Asl.AmlLength = Length; > - InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > - InitializerOp->Asl.Child = NULL; > + InitializerOp->Asl.Value.Buffer = (UINT8 *) UnicodeString; > + InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > + InitializerOp->Asl.AmlLength = Length; > + InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > + InitializerOp->Asl.Child = NULL; > UtSetParseOpName (InitializerOp); > } > > @@ -1402,9 +1405,9 @@ OpcDoPld ( > > NewOp = TrAllocateNode (PARSEOP_INTEGER); > > - NewOp->Asl.AmlOpcode = AML_BYTE_OP; > + NewOp->Asl.AmlOpcode = AML_BYTE_OP; > NewOp->Asl.Value.Integer = 20; > - NewOp->Asl.Parent = Op; > + NewOp->Asl.Parent = Op; > > Op->Asl.Child = NewOp; > Op = NewOp; > @@ -1412,10 +1415,10 @@ OpcDoPld ( > /* Peer to the child is the raw buffer data */ > > NewOp = TrAllocateNode (PARSEOP_RAW_DATA); > - NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > - NewOp->Asl.AmlLength = 20; > - NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); > - NewOp->Asl.Parent = Op->Asl.Parent; > + NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > + NewOp->Asl.AmlLength = 20; > + NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); > + NewOp->Asl.Parent = Op->Asl.Parent; > > Op->Asl.Next = NewOp; > } > @@ -1470,9 +1473,9 @@ OpcDoUuId ( > > NewOp = TrAllocateNode (PARSEOP_INTEGER); > > - NewOp->Asl.AmlOpcode = AML_BYTE_OP; > + NewOp->Asl.AmlOpcode = AML_BYTE_OP; > NewOp->Asl.Value.Integer = 16; > - NewOp->Asl.Parent = Op; > + NewOp->Asl.Parent = Op; > > Op->Asl.Child = NewOp; > Op = NewOp; > @@ -1480,10 +1483,10 @@ OpcDoUuId ( > /* Peer to the child is the raw buffer data */ > > NewOp = TrAllocateNode (PARSEOP_RAW_DATA); > - NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > - NewOp->Asl.AmlLength = 16; > - NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); > - NewOp->Asl.Parent = Op->Asl.Parent; > + NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > + NewOp->Asl.AmlLength = 16; > + NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); > + NewOp->Asl.Parent = Op->Asl.Parent; > > Op->Asl.Next = NewOp; > } > diff --git a/src/acpica/source/compiler/asloperands.c b/src/acpica/source/compiler/asloperands.c > index 8a7382a..ee9c9d9 100644 > --- a/src/acpica/source/compiler/asloperands.c > +++ b/src/acpica/source/compiler/asloperands.c > @@ -260,14 +260,16 @@ OpnDoMethod ( > { > AslError (ASL_ERROR, ASL_MSG_SYNC_LEVEL, Next, NULL); > } > + > Concurrency = (UINT8) Next->Asl.Value.Integer; > } > > /* Put the bits in their proper places */ > > - MethodFlags = (UINT8) ((NumArgs & 0x7) | > - ((Serialized & 0x1) << 3) | > - ((Concurrency & 0xF) << 4)); > + MethodFlags = (UINT8) > + ((NumArgs & 0x7) | > + ((Serialized & 0x1) << 3) | > + ((Concurrency & 0xF) << 4)); > > /* Use the last node for the combined flags byte */ > > @@ -344,9 +346,9 @@ OpnDoFieldCommon ( > /* Set the node to RAW_DATA */ > > Next->Asl.Value.Integer = FieldFlags; > - Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE; > - Next->Asl.AmlLength = 1; > - Next->Asl.ParseOpcode = PARSEOP_RAW_DATA; > + Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE; > + Next->Asl.AmlLength = 1; > + Next->Asl.ParseOpcode = PARSEOP_RAW_DATA; > > /* Process the FieldUnitList */ > > @@ -417,8 +419,8 @@ OpnDoFieldCommon ( > > /* Named or reserved field entry */ > > - PkgLengthNode = Next->Asl.Child; > - NewBitOffset = (UINT32) PkgLengthNode->Asl.Value.Integer; > + PkgLengthNode = Next->Asl.Child; > + NewBitOffset = (UINT32) PkgLengthNode->Asl.Value.Integer; > CurrentBitOffset += NewBitOffset; > > /* Save the current AccessAs value for error checking later */ > @@ -673,9 +675,9 @@ OpnDoBuffer ( > { > /* For buffers, this is a list of raw bytes */ > > - InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE; > - InitializerOp->Asl.AmlLength = 1; > - InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > + InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE; > + InitializerOp->Asl.AmlLength = 1; > + InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > > BufferLength++; > InitializerOp = ASL_GET_PEER_NODE (InitializerOp); > @@ -690,9 +692,9 @@ OpnDoBuffer ( > */ > BufferLength = strlen (InitializerOp->Asl.Value.String) + 1; > > - InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > - InitializerOp->Asl.AmlLength = BufferLength; > - InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > + InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; > + InitializerOp->Asl.AmlLength = BufferLength; > + InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; > break; > > case PARSEOP_RAW_DATA: > @@ -708,7 +710,7 @@ OpnDoBuffer ( > AslError (ASL_ERROR, ASL_MSG_INVALID_OPERAND, InitializerOp, > "Unknown buffer initializer opcode"); > printf ("Unknown buffer initializer opcode [%s]\n", > - UtGetOpName (InitializerOp->Asl.ParseOpcode)); > + UtGetOpName (InitializerOp->Asl.ParseOpcode)); > return; > } > > @@ -732,8 +734,8 @@ OpnDoBuffer ( > * Just set the buffer size node to be the buffer length, regardless > * of whether it was previously an integer or a default_arg placeholder > */ > - BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; > - BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; > + BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; > + BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; > BufferLengthOp->Asl.Value.Integer = BufferLength; > > (void) OpcSetOptimalIntegerSize (BufferLengthOp); > @@ -911,9 +913,9 @@ OpnDoLoadTable ( > Next = Next->Asl.Next; > if (Next->Asl.ParseOpcode == PARSEOP_ZERO) > { > - Next->Asl.ParseOpcode = PARSEOP_STRING_LITERAL; > - Next->Asl.Value.String = "\\"; > - Next->Asl.AmlLength = 2; > + Next->Asl.ParseOpcode = PARSEOP_STRING_LITERAL; > + Next->Asl.Value.String = "\\"; > + Next->Asl.AmlLength = 2; > OpcGenerateAmlOpcode (Next); > } > > @@ -995,6 +997,7 @@ OpnDoDefinitionBlock ( > Gbl_OutputFilenamePrefix = Filename; > UtConvertBackslashes (Gbl_OutputFilenamePrefix); > } > + > Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; > > /* Signature */ > @@ -1203,7 +1206,7 @@ OpnGenerateAmlOperands ( > > switch (Op->Asl.ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > > OpnDoDefinitionBlock (Op); > break; > diff --git a/src/acpica/source/compiler/aslopt.c b/src/acpica/source/compiler/aslopt.c > index ae8cbb3..62f3138 100644 > --- a/src/acpica/source/compiler/aslopt.c > +++ b/src/acpica/source/compiler/aslopt.c > @@ -125,7 +125,7 @@ > ACPI_MODULE_NAME ("aslopt") > > > -static UINT32 OptTotal = 0; > +static UINT32 OptTotal = 0; > > /* Local prototypes */ > > @@ -204,15 +204,15 @@ OptSearchToRoot ( > * name in the search path before the one we want, the nodes will > * not match, and we cannot use this optimization. > */ > - Path = &(((char *) TargetPath->Pointer)[TargetPath->Length - > - ACPI_NAME_SIZE]), > + Path = &(((char *) TargetPath->Pointer)[ > + TargetPath->Length - ACPI_NAME_SIZE]), > ScopeInfo.Scope.Node = CurrentNode; > > /* Lookup the NameSeg using SEARCH_PARENT (search-to-root) */ > > Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &(Node)); > + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &(Node)); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -244,8 +244,8 @@ OptSearchToRoot ( > > if (strncmp (*NewPath, "_T_", 3)) > { > - AslError (ASL_OPTIMIZATION, ASL_MSG_SINGLE_NAME_OPTIMIZATION, Op, > - *NewPath); > + AslError (ASL_OPTIMIZATION, ASL_MSG_SINGLE_NAME_OPTIMIZATION, > + Op, *NewPath); > } > > return (AE_OK); > @@ -364,7 +364,7 @@ OptBuildShortestPath ( > /* Determine how many prefix Carats are required */ > > NumCarats = (CurrentPath->Length / ACPI_PATH_SEGMENT_LENGTH) - > - NumCommonSegments; > + NumCommonSegments; > > /* > * Construct a new target string > @@ -445,8 +445,8 @@ OptBuildShortestPath ( > * path that has been created. > */ > Status = AcpiNsLookup (&ScopeInfo, NewPath, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); > if (ACPI_SUCCESS (Status)) > { > /* Found the namepath, but make sure the node is correct */ > @@ -518,7 +518,7 @@ OptOptimizeNameDeclaration ( > > > if (((CurrentNode == AcpiGbl_RootNode) || > - (Op->Common.Parent->Asl.ParseOpcode == PARSEOP_DEFINITIONBLOCK)) && > + (Op->Common.Parent->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)) && > (ACPI_IS_ROOT_PREFIX (AmlNameString[0]))) > { > /* > @@ -530,7 +530,7 @@ OptOptimizeNameDeclaration ( > /* Debug output */ > > Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, *NewPath, > - NULL, &NewPathExternal); > + NULL, &NewPathExternal); > if (ACPI_FAILURE (Status)) > { > AslCoreSubsystemError (Op, Status, "Externalizing NamePath", > @@ -546,8 +546,8 @@ OptOptimizeNameDeclaration ( > * We know that we are at the root, so NULL is used for the scope. > */ > Status = AcpiNsLookup (NULL, *NewPath, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); > if (ACPI_SUCCESS (Status)) > { > /* Found the namepath, but make sure the node is correct */ > @@ -705,6 +705,7 @@ OptOptimizeNamePath ( > { > NextOp = NextOp->Asl.Parent; > } > + > if (NextOp && NextOp->Asl.Node) > { > CurrentNode = NextOp->Asl.Node; > @@ -734,6 +735,7 @@ OptOptimizeNamePath ( > ASL_NO_ABORT); > return_VOID; > } > + > TargetPath.Length--; /* Subtract one for null terminator */ > > /* CurrentPath is the path to this scope (where we are in the namespace) */ > @@ -746,12 +748,13 @@ OptOptimizeNamePath ( > ASL_NO_ABORT); > return_VOID; > } > + > CurrentPath.Length--; /* Subtract one for null terminator */ > > /* Debug output only */ > > Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, AmlNameString, > - NULL, &ExternalNameString); > + NULL, &ExternalNameString); > if (ACPI_FAILURE (Status)) > { > AslCoreSubsystemError (Op, Status, "Externalizing NamePath", > @@ -777,7 +780,7 @@ OptOptimizeNamePath ( > * a reference. > */ > Status = OptOptimizeNameDeclaration (Op, WalkState, CurrentNode, > - TargetNode, AmlNameString, &NewPath); > + TargetNode, AmlNameString, &NewPath); > if (ACPI_FAILURE (Status)) > { > /* > @@ -785,8 +788,8 @@ OptOptimizeNamePath ( > * optimize the namestring with carats (up-arrow) > */ > Status = OptBuildShortestPath (Op, WalkState, CurrentNode, > - TargetNode, &CurrentPath, &TargetPath, > - AmlNameStringLength, 1, &NewPath); > + TargetNode, &CurrentPath, &TargetPath, > + AmlNameStringLength, 1, &NewPath); > } > } > else > @@ -798,7 +801,7 @@ OptOptimizeNamePath ( > * NameSeg of the NamePath > */ > Status = OptSearchToRoot (Op, WalkState, CurrentNode, > - TargetNode, &TargetPath, &NewPath); > + TargetNode, &TargetPath, &NewPath); > if (ACPI_FAILURE (Status)) > { > /* > @@ -806,8 +809,8 @@ OptOptimizeNamePath ( > * optimize the namestring with carats (up-arrow) > */ > Status = OptBuildShortestPath (Op, WalkState, CurrentNode, > - TargetNode, &CurrentPath, &TargetPath, > - AmlNameStringLength, 0, &NewPath); > + TargetNode, &CurrentPath, &TargetPath, > + AmlNameStringLength, 0, &NewPath); > } > } > > diff --git a/src/acpica/source/compiler/aslpredef.c b/src/acpica/source/compiler/aslpredef.c > index c39483b..680cb62 100644 > --- a/src/acpica/source/compiler/aslpredef.c > +++ b/src/acpica/source/compiler/aslpredef.c > @@ -331,7 +331,7 @@ ApCheckPredefinedReturnValue ( > */ > Gbl_AllExceptionsDisabled = TRUE; > Index = ApCheckForPredefinedName (MethodInfo->Op, > - MethodInfo->Op->Asl.NameSeg); > + MethodInfo->Op->Asl.NameSeg); > Gbl_AllExceptionsDisabled = FALSE; > > switch (Index) > @@ -643,7 +643,8 @@ ApCheckForSpecialName ( > * warning and force the user to manually change the names. So, we > * will issue a remark instead. > */ > - AslError (ASL_REMARK, ASL_MSG_COMPILER_RESERVED, Op, Op->Asl.ExternalName); > + AslError (ASL_REMARK, ASL_MSG_COMPILER_RESERVED, > + Op, Op->Asl.ExternalName); > return (ACPI_COMPILER_RESERVED_NAME); > } > > @@ -652,8 +653,8 @@ ApCheckForSpecialName ( > * warning, since the entire namespace starting with an underscore is > * reserved by the ACPI spec. > */ > - AslError (ASL_WARNING, ASL_MSG_UNKNOWN_RESERVED_NAME, Op, > - Op->Asl.ExternalName); > + AslError (ASL_WARNING, ASL_MSG_UNKNOWN_RESERVED_NAME, > + Op, Op->Asl.ExternalName); > > return (ACPI_NOT_RESERVED_NAME); > } > diff --git a/src/acpica/source/compiler/aslprepkg.c b/src/acpica/source/compiler/aslprepkg.c > index 6a74e88..4f6163f 100644 > --- a/src/acpica/source/compiler/aslprepkg.c > +++ b/src/acpica/source/compiler/aslprepkg.c > @@ -310,6 +310,7 @@ ApCheckPackage ( > ApCheckObjectType (Predefined->Info.Name, Op, > Package->RetInfo3.TailObjectType, i); > } > + > Op = Op->Asl.Next; > } > break; > diff --git a/src/acpica/source/compiler/aslprune.c b/src/acpica/source/compiler/aslprune.c > index 44221bb..7f0074f 100644 > --- a/src/acpica/source/compiler/aslprune.c > +++ b/src/acpica/source/compiler/aslprune.c > @@ -135,6 +135,8 @@ PrPrintObjectAtLevel ( > const char *ObjectName); > > > +/* Structure used for the pruning parse tree walk */ > + > typedef struct acpi_prune_info > { > UINT32 PruneLevel; > diff --git a/src/acpica/source/compiler/aslresource.c b/src/acpica/source/compiler/aslresource.c > index 2abc7dd..4ae38b3 100644 > --- a/src/acpica/source/compiler/aslresource.c > +++ b/src/acpica/source/compiler/aslresource.c > @@ -468,6 +468,7 @@ RsGetStringDataLength ( > { > return ((UINT16) (strlen (InitializerOp->Asl.Value.String) + 1)); > } > + > InitializerOp = ASL_GET_PEER_NODE (InitializerOp); > } > > @@ -503,7 +504,6 @@ RsAllocateResourceNode ( > > Rnode->Buffer = UtLocalCalloc (Size); > Rnode->BufferLength = Size; > - > return (Rnode); > } > > @@ -539,7 +539,6 @@ RsCreateResourceField ( > Op->Asl.ExternalName = Name; > Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD; > > - > Op->Asl.Value.Tag.BitOffset = (ByteOffset * 8) + BitOffset; > Op->Asl.Value.Tag.BitLength = BitLength; > } > @@ -960,7 +959,7 @@ RsDoOneResourceDescriptor ( > default: > > printf ("Unknown resource descriptor type [%s]\n", > - Info->DescriptorTypeOp->Asl.ParseOpName); > + Info->DescriptorTypeOp->Asl.ParseOpName); > break; > } > > @@ -976,7 +975,8 @@ RsDoOneResourceDescriptor ( > if (Rnode) > { > Info->DescriptorTypeOp->Asl.FinalAmlLength = Rnode->BufferLength; > - Info->DescriptorTypeOp->Asl.Extra = ((AML_RESOURCE *) Rnode->Buffer)->DescriptorType; > + Info->DescriptorTypeOp->Asl.Extra = > + ((AML_RESOURCE *) Rnode->Buffer)->DescriptorType; > } > > return (Rnode); > diff --git a/src/acpica/source/compiler/aslrestype1.c b/src/acpica/source/compiler/aslrestype1.c > index 945f1bf..a00b4e9 100644 > --- a/src/acpica/source/compiler/aslrestype1.c > +++ b/src/acpica/source/compiler/aslrestype1.c > @@ -158,7 +158,6 @@ RsDoEndTagDescriptor ( > Descriptor->EndTag.DescriptorType = ACPI_RESOURCE_NAME_END_TAG | > ASL_RDESC_END_TAG_SIZE; > Descriptor->EndTag.Checksum = 0; > - > return (Rnode); > } > > @@ -186,8 +185,8 @@ RsDoEndDependentDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_END_DEPENDENT)); > > Descriptor = Rnode->Buffer; > - Descriptor->EndDpf.DescriptorType = ACPI_RESOURCE_NAME_END_DEPENDENT | > - ASL_RDESC_END_DEPEND_SIZE; > + Descriptor->EndDpf.DescriptorType = > + ACPI_RESOURCE_NAME_END_DEPENDENT | ASL_RDESC_END_DEPEND_SIZE; > return (Rnode); > } > > @@ -223,7 +222,7 @@ RsDoMemory24Descriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_MEMORY24)); > > Descriptor = Rnode->Buffer; > - Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24; > + Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24; > Descriptor->Memory24.ResourceLength = 9; > > /* Process all child initialization nodes */ > @@ -329,7 +328,7 @@ RsDoMemory32Descriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_MEMORY32)); > > Descriptor = Rnode->Buffer; > - Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32; > + Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32; > Descriptor->Memory32.ResourceLength = 17; > > /* Process all child initialization nodes */ > @@ -432,7 +431,7 @@ RsDoMemory32FixedDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_FIXED_MEMORY32)); > > Descriptor = Rnode->Buffer; > - Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32; > + Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32; > Descriptor->FixedMemory32.ResourceLength = 9; > > /* Process all child initialization nodes */ > @@ -520,8 +519,8 @@ RsDoStartDependentDescriptor ( > > /* Descriptor has priority byte */ > > - Descriptor->StartDpf.DescriptorType = ACPI_RESOURCE_NAME_START_DEPENDENT | > - (ASL_RDESC_ST_DEPEND_SIZE + 0x01); > + Descriptor->StartDpf.DescriptorType = > + ACPI_RESOURCE_NAME_START_DEPENDENT | (ASL_RDESC_ST_DEPEND_SIZE + 0x01); > > /* Process all child initialization nodes */ > > @@ -565,8 +564,8 @@ RsDoStartDependentDescriptor ( > * must keep track of the offset of not only each descriptor, but each > * element (field) within each descriptor as well. > */ > - CurrentByteOffset += RsLinkDescriptorChain (&PreviousRnode, > - NextRnode); > + CurrentByteOffset += RsLinkDescriptorChain ( > + &PreviousRnode, NextRnode); > break; > } > > @@ -608,8 +607,8 @@ RsDoStartDependentNoPriDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO)); > > Descriptor = Rnode->Buffer; > - Descriptor->StartDpf.DescriptorType = ACPI_RESOURCE_NAME_START_DEPENDENT | > - ASL_RDESC_ST_DEPEND_SIZE; > + Descriptor->StartDpf.DescriptorType = > + ACPI_RESOURCE_NAME_START_DEPENDENT | ASL_RDESC_ST_DEPEND_SIZE; > PreviousRnode = Rnode; > > /* Increment offset past StartDependentNoPri descriptor */ > @@ -671,7 +670,7 @@ RsDoVendorSmallDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_VENDOR_SMALL) + 7); > > Descriptor = Rnode->Buffer; > - Descriptor->VendorSmall.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_SMALL; > + Descriptor->VendorSmall.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_SMALL; > VendorData = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_SMALL_HEADER); > > /* Process all child initialization nodes */ > diff --git a/src/acpica/source/compiler/aslrestype1i.c b/src/acpica/source/compiler/aslrestype1i.c > index 1394580..a974aa6 100644 > --- a/src/acpica/source/compiler/aslrestype1i.c > +++ b/src/acpica/source/compiler/aslrestype1i.c > @@ -160,8 +160,8 @@ RsDoDmaDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_DMA)); > > Descriptor = Rnode->Buffer; > - Descriptor->Dma.DescriptorType = ACPI_RESOURCE_NAME_DMA | > - ASL_RDESC_DMA_SIZE; > + Descriptor->Dma.DescriptorType = > + ACPI_RESOURCE_NAME_DMA | ASL_RDESC_DMA_SIZE; > > /* Process all child initialization nodes */ > > @@ -354,8 +354,8 @@ RsDoFixedIoDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_FIXED_IO)); > > Descriptor = Rnode->Buffer; > - Descriptor->Io.DescriptorType = ACPI_RESOURCE_NAME_FIXED_IO | > - ASL_RDESC_FIXED_IO_SIZE; > + Descriptor->Io.DescriptorType = > + ACPI_RESOURCE_NAME_FIXED_IO | ASL_RDESC_FIXED_IO_SIZE; > > /* Process all child initialization nodes */ > > @@ -437,8 +437,8 @@ RsDoIoDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IO)); > > Descriptor = Rnode->Buffer; > - Descriptor->Io.DescriptorType = ACPI_RESOURCE_NAME_IO | > - ASL_RDESC_IO_SIZE; > + Descriptor->Io.DescriptorType = > + ACPI_RESOURCE_NAME_IO | ASL_RDESC_IO_SIZE; > > /* Process all child initialization nodes */ > > @@ -548,8 +548,8 @@ RsDoIrqDescriptor ( > /* Length = 3 (with flag byte) */ > > Descriptor = Rnode->Buffer; > - Descriptor->Irq.DescriptorType = ACPI_RESOURCE_NAME_IRQ | > - (ASL_RDESC_IRQ_SIZE + 0x01); > + Descriptor->Irq.DescriptorType = > + ACPI_RESOURCE_NAME_IRQ | (ASL_RDESC_IRQ_SIZE + 0x01); > > /* Process all child initialization nodes */ > > @@ -668,8 +668,8 @@ RsDoIrqNoFlagsDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IRQ_NOFLAGS)); > > Descriptor = Rnode->Buffer; > - Descriptor->Irq.DescriptorType = ACPI_RESOURCE_NAME_IRQ | > - ASL_RDESC_IRQ_SIZE; > + Descriptor->Irq.DescriptorType = > + ACPI_RESOURCE_NAME_IRQ | ASL_RDESC_IRQ_SIZE; > > /* Process all child initialization nodes */ > > diff --git a/src/acpica/source/compiler/aslrestype2.c b/src/acpica/source/compiler/aslrestype2.c > index 1cbca10..7e62a76 100644 > --- a/src/acpica/source/compiler/aslrestype2.c > +++ b/src/acpica/source/compiler/aslrestype2.c > @@ -219,6 +219,7 @@ RsDoGeneralRegisterDescriptor ( > > InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); > } > + > return (Rnode); > } > > @@ -285,7 +286,7 @@ RsDoInterruptDescriptor ( > 1 + OptionIndex + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->ExtendedIrq.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_IRQ; > + Descriptor->ExtendedIrq.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_IRQ; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -295,7 +296,7 @@ RsDoInterruptDescriptor ( > Descriptor->ExtendedIrq.InterruptCount = 0; > > Rover = ACPI_CAST_PTR (AML_RESOURCE, > - (&(Descriptor->ExtendedIrq.Interrupts[0]))); > + (&(Descriptor->ExtendedIrq.Interrupts[0]))); > > /* Process all child initialization nodes */ > > @@ -454,9 +455,10 @@ RsDoInterruptDescriptor ( > (Descriptor->ExtendedIrq.ResourceLength + StringLength); > } > > - Rnode->BufferLength = (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - > - ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) > - + OptionIndex + StringLength; > + Rnode->BufferLength = > + (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - > + ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) > + + OptionIndex + StringLength; > return (Rnode); > } > > @@ -503,7 +505,7 @@ RsDoVendorLargeDescriptor ( > Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_VENDOR_LARGE) + i); > > Descriptor = Rnode->Buffer; > - Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE; > + Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE; > Descriptor->VendorLarge.ResourceLength = (UINT16) i; > > /* Point to end-of-descriptor for vendor data */ > diff --git a/src/acpica/source/compiler/aslrestype2d.c b/src/acpica/source/compiler/aslrestype2d.c > index 083751f..c1fc003 100644 > --- a/src/acpica/source/compiler/aslrestype2d.c > +++ b/src/acpica/source/compiler/aslrestype2d.c > @@ -163,11 +163,11 @@ RsDoDwordIoDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32; > - Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > + Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -397,7 +397,7 @@ RsDoDwordMemoryDescriptor ( > > Descriptor = Rnode->Buffer; > Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32; > - Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; > + Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -628,7 +628,7 @@ RsDoDwordSpaceDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32; > diff --git a/src/acpica/source/compiler/aslrestype2e.c b/src/acpica/source/compiler/aslrestype2e.c > index 2a24589..1f2cc95 100644 > --- a/src/acpica/source/compiler/aslrestype2e.c > +++ b/src/acpica/source/compiler/aslrestype2e.c > @@ -159,14 +159,14 @@ RsDoExtendedIoDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); > + sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; > - Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > - Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; > + Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; > + Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > + Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; > > - Descriptor->ExtAddress64.ResourceLength = (UINT16) > + Descriptor->ExtAddress64.ResourceLength = (UINT16) > (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) - > sizeof (AML_RESOURCE_LARGE_HEADER)); > > @@ -335,11 +335,11 @@ RsDoExtendedMemoryDescriptor ( > sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; > - Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; > - Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; > + Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; > + Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; > + Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; > > - Descriptor->ExtAddress64.ResourceLength = (UINT16) > + Descriptor->ExtAddress64.ResourceLength = (UINT16) > (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) - > sizeof (AML_RESOURCE_LARGE_HEADER)); > > @@ -513,13 +513,13 @@ RsDoExtendedSpaceDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); > + sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; > - Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; > + Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; > + Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; > > - Descriptor->ExtAddress64.ResourceLength = (UINT16) > + Descriptor->ExtAddress64.ResourceLength = (UINT16) > (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) - > sizeof (AML_RESOURCE_LARGE_HEADER)); > > diff --git a/src/acpica/source/compiler/aslrestype2q.c b/src/acpica/source/compiler/aslrestype2q.c > index cfb0405..a24d554 100644 > --- a/src/acpica/source/compiler/aslrestype2q.c > +++ b/src/acpica/source/compiler/aslrestype2q.c > @@ -163,11 +163,11 @@ RsDoQwordIoDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; > - Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > + Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; > + Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -384,11 +384,11 @@ RsDoQwordMemoryDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; > - Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; > + Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; > + Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -613,7 +613,7 @@ RsDoQwordSpaceDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; > diff --git a/src/acpica/source/compiler/aslrestype2s.c b/src/acpica/source/compiler/aslrestype2s.c > index 779edd0..469f06e 100644 > --- a/src/acpica/source/compiler/aslrestype2s.c > +++ b/src/acpica/source/compiler/aslrestype2s.c > @@ -385,17 +385,19 @@ RsDoGpioIntDescriptor ( > > /* Allocate the local resource node and initialize */ > > - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); > + Rnode = RsAllocateResourceNode (DescriptorSize + > + sizeof (AML_RESOURCE_LARGE_HEADER)); > > Descriptor = Rnode->Buffer; > - Descriptor->Gpio.ResourceLength = DescriptorSize; > - Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; > - Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; > - Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT; > + Descriptor->Gpio.ResourceLength = DescriptorSize; > + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; > + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; > + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT; > > /* Build pointers to optional areas */ > > - InterruptList = ACPI_ADD_PTR (UINT16, Descriptor, sizeof (AML_RESOURCE_GPIO)); > + InterruptList = ACPI_ADD_PTR (UINT16, Descriptor, > + sizeof (AML_RESOURCE_GPIO)); > PinList = InterruptList; > ResourceSource = ACPI_ADD_PTR (char, InterruptList, InterruptLength); > VendorData = ACPI_ADD_PTR (UINT8, ResourceSource, ResSourceLength); > @@ -409,8 +411,10 @@ RsDoGpioIntDescriptor ( > ACPI_PTR_DIFF (ResourceSource, Descriptor); > > DbgPrint (ASL_DEBUG_OUTPUT, > - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, IntLen: %.2X\n", > - "GpioInt", Descriptor->Gpio.ResourceLength, (UINT16) sizeof (AML_RESOURCE_GPIO), > + "%16s - Actual: %.2X, Base: %.2X, ResLen: " > + "%.2X, VendLen: %.2X, IntLen: %.2X\n", > + "GpioInt", Descriptor->Gpio.ResourceLength, > + (UINT16) sizeof (AML_RESOURCE_GPIO), > ResSourceLength, VendorLength, InterruptLength); > > /* Process all child initialization nodes */ > @@ -469,7 +473,8 @@ RsDoGpioIntDescriptor ( > > if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) > { > - Descriptor->Gpio.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; > + Descriptor->Gpio.ResSourceIndex = > + (UINT8) InitializerOp->Asl.Value.Integer; > } > break; > > @@ -494,7 +499,7 @@ RsDoGpioIntDescriptor ( > ACPI_PTR_DIFF (VendorData, Descriptor); > > if (RsGetVendorData (InitializerOp, VendorData, > - (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) > + (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) > { > Descriptor->Gpio.VendorLength = VendorLength; > } > @@ -540,7 +545,8 @@ RsDoGpioIntDescriptor ( > InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); > } > > - MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); > + MpSaveGpioInfo (Info->MappingOp, Descriptor, > + PinCount, PinList, ResourceSource); > return (Rnode); > } > > @@ -596,13 +602,14 @@ RsDoGpioIoDescriptor ( > > /* Allocate the local resource node and initialize */ > > - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); > + Rnode = RsAllocateResourceNode (DescriptorSize + > + sizeof (AML_RESOURCE_LARGE_HEADER)); > > Descriptor = Rnode->Buffer; > - Descriptor->Gpio.ResourceLength = DescriptorSize; > - Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; > - Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; > - Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO; > + Descriptor->Gpio.ResourceLength = DescriptorSize; > + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; > + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; > + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO; > > /* Build pointers to optional areas */ > > @@ -620,8 +627,10 @@ RsDoGpioIoDescriptor ( > ACPI_PTR_DIFF (ResourceSource, Descriptor); > > DbgPrint (ASL_DEBUG_OUTPUT, > - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, IntLen: %.2X\n", > - "GpioIo", Descriptor->Gpio.ResourceLength, (UINT16) sizeof (AML_RESOURCE_GPIO), > + "%16s - Actual: %.2X, Base: %.2X, ResLen: " > + "%.2X, VendLen: %.2X, IntLen: %.2X\n", > + "GpioIo", Descriptor->Gpio.ResourceLength, > + (UINT16) sizeof (AML_RESOURCE_GPIO), > ResSourceLength, VendorLength, InterruptLength); > > /* Process all child initialization nodes */ > @@ -704,7 +713,7 @@ RsDoGpioIoDescriptor ( > ACPI_PTR_DIFF (VendorData, Descriptor); > > if (RsGetVendorData (InitializerOp, VendorData, > - (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) > + (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) > { > Descriptor->Gpio.VendorLength = VendorLength; > } > @@ -750,7 +759,8 @@ RsDoGpioIoDescriptor ( > InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); > } > > - MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); > + MpSaveGpioInfo (Info->MappingOp, Descriptor, > + PinCount, PinList, ResourceSource); > return (Rnode); > } > > @@ -799,14 +809,15 @@ RsDoI2cSerialBusDescriptor ( > > /* Allocate the local resource node and initialize */ > > - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); > + Rnode = RsAllocateResourceNode (DescriptorSize + > + sizeof (AML_RESOURCE_LARGE_HEADER)); > > Descriptor = Rnode->Buffer; > Descriptor->I2cSerialBus.ResourceLength = DescriptorSize; > Descriptor->I2cSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; > - Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION; > + Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION; > Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION; > - Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE; > + Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE; > Descriptor->I2cSerialBus.TypeDataLength = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength; > > /* Build pointers to optional areas */ > @@ -815,7 +826,8 @@ RsDoI2cSerialBusDescriptor ( > ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); > > DbgPrint (ASL_DEBUG_OUTPUT, > - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, TypLen: %.2X\n", > + "%16s - Actual: %.2X, Base: %.2X, ResLen: " > + "%.2X, VendLen: %.2X, TypLen: %.2X\n", > "I2cSerialBus", Descriptor->I2cSerialBus.ResourceLength, > (UINT16) sizeof (AML_RESOURCE_I2C_SERIALBUS), ResSourceLength, > VendorLength, Descriptor->I2cSerialBus.TypeDataLength); > @@ -869,7 +881,8 @@ RsDoI2cSerialBusDescriptor ( > > if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) > { > - Descriptor->I2cSerialBus.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; > + Descriptor->I2cSerialBus.ResSourceIndex = > + (UINT8) InitializerOp->Asl.Value.Integer; > } > break; > > @@ -946,23 +959,26 @@ RsDoSpiSerialBusDescriptor ( > > /* Allocate the local resource node and initialize */ > > - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); > + Rnode = RsAllocateResourceNode (DescriptorSize + > + sizeof (AML_RESOURCE_LARGE_HEADER)); > > Descriptor = Rnode->Buffer; > Descriptor->SpiSerialBus.ResourceLength = DescriptorSize; > Descriptor->SpiSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; > - Descriptor->SpiSerialBus.RevisionId = AML_RESOURCE_SPI_REVISION; > + Descriptor->SpiSerialBus.RevisionId = AML_RESOURCE_SPI_REVISION; > Descriptor->SpiSerialBus.TypeRevisionId = AML_RESOURCE_SPI_TYPE_REVISION; > - Descriptor->SpiSerialBus.Type = AML_RESOURCE_SPI_SERIALBUSTYPE; > + Descriptor->SpiSerialBus.Type = AML_RESOURCE_SPI_SERIALBUSTYPE; > Descriptor->SpiSerialBus.TypeDataLength = AML_RESOURCE_SPI_MIN_DATA_LEN + VendorLength; > > /* Build pointers to optional areas */ > > - VendorData = ACPI_ADD_PTR (UINT8, Descriptor, sizeof (AML_RESOURCE_SPI_SERIALBUS)); > + VendorData = ACPI_ADD_PTR (UINT8, Descriptor, > + sizeof (AML_RESOURCE_SPI_SERIALBUS)); > ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); > > DbgPrint (ASL_DEBUG_OUTPUT, > - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, TypLen: %.2X\n", > + "%16s - Actual: %.2X, Base: %.2X, ResLen: " > + "%.2X, VendLen: %.2X, TypLen: %.2X\n", > "SpiSerialBus", Descriptor->SpiSerialBus.ResourceLength, > (UINT16) sizeof (AML_RESOURCE_SPI_SERIALBUS), ResSourceLength, > VendorLength, Descriptor->SpiSerialBus.TypeDataLength); > @@ -1044,7 +1060,8 @@ RsDoSpiSerialBusDescriptor ( > > if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) > { > - Descriptor->SpiSerialBus.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; > + Descriptor->SpiSerialBus.ResSourceIndex = > + (UINT8) InitializerOp->Asl.Value.Integer; > } > break; > > @@ -1121,14 +1138,15 @@ RsDoUartSerialBusDescriptor ( > > /* Allocate the local resource node and initialize */ > > - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); > + Rnode = RsAllocateResourceNode (DescriptorSize + > + sizeof (AML_RESOURCE_LARGE_HEADER)); > > Descriptor = Rnode->Buffer; > Descriptor->UartSerialBus.ResourceLength = DescriptorSize; > Descriptor->UartSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; > - Descriptor->UartSerialBus.RevisionId = AML_RESOURCE_UART_REVISION; > + Descriptor->UartSerialBus.RevisionId = AML_RESOURCE_UART_REVISION; > Descriptor->UartSerialBus.TypeRevisionId = AML_RESOURCE_UART_TYPE_REVISION; > - Descriptor->UartSerialBus.Type = AML_RESOURCE_UART_SERIALBUSTYPE; > + Descriptor->UartSerialBus.Type = AML_RESOURCE_UART_SERIALBUSTYPE; > Descriptor->UartSerialBus.TypeDataLength = AML_RESOURCE_UART_MIN_DATA_LEN + VendorLength; > > /* Build pointers to optional areas */ > @@ -1137,7 +1155,8 @@ RsDoUartSerialBusDescriptor ( > ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); > > DbgPrint (ASL_DEBUG_OUTPUT, > - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, TypLen: %.2X\n", > + "%16s - Actual: %.2X, Base: %.2X, ResLen: " > + "%.2X, VendLen: %.2X, TypLen: %.2X\n", > "UartSerialBus", Descriptor->UartSerialBus.ResourceLength, > (UINT16) sizeof (AML_RESOURCE_UART_SERIALBUS), ResSourceLength, > VendorLength, Descriptor->UartSerialBus.TypeDataLength); > @@ -1226,7 +1245,8 @@ RsDoUartSerialBusDescriptor ( > > if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) > { > - Descriptor->UartSerialBus.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; > + Descriptor->UartSerialBus.ResSourceIndex = > + (UINT8) InitializerOp->Asl.Value.Integer; > } > break; > > diff --git a/src/acpica/source/compiler/aslrestype2w.c b/src/acpica/source/compiler/aslrestype2w.c > index d00a979..1103ac4 100644 > --- a/src/acpica/source/compiler/aslrestype2w.c > +++ b/src/acpica/source/compiler/aslrestype2w.c > @@ -163,11 +163,11 @@ RsDoWordIoDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; > - Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > + Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; > + Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -384,11 +384,11 @@ RsDoWordBusNumberDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; > - Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE; > + Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; > + Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE; > > /* > * Initial descriptor length -- may be enlarged if there are > @@ -589,10 +589,10 @@ RsDoWordSpaceDescriptor ( > CurrentByteOffset = Info->CurrentByteOffset; > > Rnode = RsAllocateResourceNode ( > - sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); > + sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); > > Descriptor = Rnode->Buffer; > - Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; > + Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; > > /* > * Initial descriptor length -- may be enlarged if there are > diff --git a/src/acpica/source/compiler/aslrules.y b/src/acpica/source/compiler/aslrules.y > index 789df32..4608f8d 100644 > --- a/src/acpica/source/compiler/aslrules.y > +++ b/src/acpica/source/compiler/aslrules.y > @@ -126,11 +126,12 @@ NoEcho(' > * Root term. Allow multiple #line directives before the definition block > * to handle output from preprocessors > */ > -ASLCode > - : DefinitionBlockTerm > +AslCode > + : DefinitionBlockList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);} > | error {YYABORT; $$ = NULL;} > ; > > + > /* > * Note concerning support for "module-level code". > * > @@ -147,7 +148,7 @@ ASLCode > * of Type1 and Type2 opcodes at module level. > */ > DefinitionBlockTerm > - : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);} > + : PARSEOP_DEFINITION_BLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);} > String ',' > String ',' > ByteConst ',' > @@ -158,6 +159,12 @@ DefinitionBlockTerm > '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);} > ; > > +DefinitionBlockList > + : DefinitionBlockTerm > + | DefinitionBlockTerm > + DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);} > + ; > + > SuperName > : NameString {} > | ArgTerm {} > diff --git a/src/acpica/source/compiler/aslstubs.c b/src/acpica/source/compiler/aslstubs.c > index bdb94c1..6c61421 100644 > --- a/src/acpica/source/compiler/aslstubs.c > +++ b/src/acpica/source/compiler/aslstubs.c > @@ -342,3 +342,45 @@ AcpiTbFindTable ( > { > return (AE_SUPPORT); > } > + > +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); > +} > diff --git a/src/acpica/source/compiler/asltokens.y b/src/acpica/source/compiler/asltokens.y > index 89ce095..8dfd567 100644 > --- a/src/acpica/source/compiler/asltokens.y > +++ b/src/acpica/source/compiler/asltokens.y > @@ -196,7 +196,7 @@ NoEcho(' > %token <i> PARSEOP_DECREMENT > %token <i> PARSEOP_DEFAULT > %token <i> PARSEOP_DEFAULT_ARG > -%token <i> PARSEOP_DEFINITIONBLOCK > +%token <i> PARSEOP_DEFINITION_BLOCK > %token <i> PARSEOP_DEREFOF > %token <i> PARSEOP_DEVICE > %token <i> PARSEOP_DEVICEPOLARITY_HIGH > @@ -536,6 +536,9 @@ NoEcho(' > /* PARSEOP_EXP_PAREN_OPEN */ > /* PARSEOP_EXP_PAREN_CLOSE */ > > + > +%token <i> PARSEOP_ASL_CODE > + > /* > * Special functions. These should probably stay at the end of this > * table. > diff --git a/src/acpica/source/compiler/asltransform.c b/src/acpica/source/compiler/asltransform.c > index df5d994..fd91965 100644 > --- a/src/acpica/source/compiler/asltransform.c > +++ b/src/acpica/source/compiler/asltransform.c > @@ -183,7 +183,7 @@ TrAmlGetNextTempName ( > char *TempName; > > > - if (*TempCount >= (10+26)) /* 0-35 valid: 0-9 and A-Z for TempName[3] */ > + if (*TempCount >= (10 + 26)) /* 0-35 valid: 0-9 and A-Z for TempName[3] */ > { > /* Too many temps */ > > @@ -201,6 +201,7 @@ TrAmlGetNextTempName ( > { > TempName[3] = (char) (*TempCount + ('A' - 10)); > } > + > (*TempCount)++; > > /* First three characters are always "_T_" */ > @@ -289,7 +290,7 @@ TrAmlSetSubtreeParent ( > while (Next) > { > Next->Asl.Parent = Parent; > - Next = Next->Asl.Next; > + Next = Next->Asl.Next; > } > } > > @@ -314,7 +315,7 @@ TrAmlInsertPeer ( > { > > NewPeer->Asl.Next = Op->Asl.Next; > - Op->Asl.Next = NewPeer; > + Op->Asl.Next = NewPeer; > } > > > @@ -369,7 +370,7 @@ TrTransformSubtree ( > > switch (Op->Asl.ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_DEFINITION_BLOCK: > > TrDoDefinitionBlock (Op); > break; > @@ -520,7 +521,7 @@ TrDoSwitch ( > { > /* Add an ELSE to complete the previous CASE */ > > - NewOp = TrCreateLeafNode (PARSEOP_ELSE); > + NewOp = TrCreateLeafNode (PARSEOP_ELSE); > NewOp->Asl.Parent = Conditional->Asl.Parent; > TrAmlInitLineNumbers (NewOp, NewOp->Asl.Parent); > > @@ -530,9 +531,9 @@ TrDoSwitch ( > CurrentParentNode = NewOp; > } > > - CaseOp = Next; > + CaseOp = Next; > Conditional = CaseOp; > - CaseBlock = CaseOp->Asl.Child->Asl.Next; > + CaseBlock = CaseOp->Asl.Child->Asl.Next; > Conditional->Asl.Child->Asl.Next = NULL; > Predicate = CaseOp->Asl.Child; > > @@ -609,7 +610,7 @@ TrDoSwitch ( > * CaseOp->Child->Peer is the beginning of the case block > */ > NewOp = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, > - (UINT64) ACPI_TO_INTEGER (PredicateValueName)); > + (UINT64) ACPI_TO_INTEGER (PredicateValueName)); > NewOp->Asl.Next = Predicate; > TrAmlInitLineNumbers (NewOp, Predicate); > > @@ -672,7 +673,7 @@ TrDoSwitch ( > /* Unknown peer opcode */ > > AcpiOsPrintf ("Unknown parse opcode for switch statement: %s (%u)\n", > - Next->Asl.ParseOpName, Next->Asl.ParseOpcode); > + Next->Asl.ParseOpName, Next->Asl.ParseOpcode); > } > } > > @@ -717,7 +718,7 @@ TrDoSwitch ( > > Next = StartNode; > while ((Next->Asl.ParseOpcode != PARSEOP_METHOD) && > - (Next->Asl.ParseOpcode != PARSEOP_DEFINITIONBLOCK)) > + (Next->Asl.ParseOpcode != PARSEOP_DEFINITION_BLOCK)) > { > Next = Next->Asl.Parent; > } > @@ -740,7 +741,8 @@ TrDoSwitch ( > */ > if (Next->Asl.ParseOpcode != PARSEOP_SERIALIZERULE_SERIAL) > { > - AslError (ASL_REMARK, ASL_MSG_SERIALIZED, MethodOp, "Due to use of Switch operator"); > + AslError (ASL_REMARK, ASL_MSG_SERIALIZED, MethodOp, > + "Due to use of Switch operator"); > Next->Asl.ParseOpcode = PARSEOP_SERIALIZERULE_SERIAL; > } > > @@ -754,7 +756,7 @@ TrDoSwitch ( > /* Create the NameSeg child for the Name node */ > > NewOp2 = TrCreateValuedLeafNode (PARSEOP_NAMESEG, > - (UINT64) ACPI_TO_INTEGER (PredicateValueName)); > + (UINT64) ACPI_TO_INTEGER (PredicateValueName)); > TrAmlInitLineNumbers (NewOp2, NewOp); > NewOp2->Asl.CompileFlags |= NODE_IS_NAME_DECLARATION; > NewOp->Asl.Child = NewOp2; > @@ -766,25 +768,25 @@ TrDoSwitch ( > case ACPI_BTYPE_INTEGER: > > NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_ZERO, > - (UINT64) 0); > + (UINT64) 0); > TrAmlInitLineNumbers (NewOp2->Asl.Next, NewOp); > break; > > case ACPI_BTYPE_STRING: > > NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, > - (UINT64) ACPI_TO_INTEGER ("")); > + (UINT64) ACPI_TO_INTEGER ("")); > TrAmlInitLineNumbers (NewOp2->Asl.Next, NewOp); > break; > > case ACPI_BTYPE_BUFFER: > > (void) TrLinkPeerNode (NewOp2, TrCreateValuedLeafNode (PARSEOP_BUFFER, > - (UINT64) 0)); > + (UINT64) 0)); > Next = NewOp2->Asl.Next; > TrAmlInitLineNumbers (Next, NewOp2); > (void) TrLinkChildren (Next, 1, TrCreateValuedLeafNode (PARSEOP_ZERO, > - (UINT64) 1)); > + (UINT64) 1)); > TrAmlInitLineNumbers (Next->Asl.Child, Next); > > BufferOp = TrCreateValuedLeafNode (PARSEOP_DEFAULT_ARG, (UINT64) 0); > @@ -827,7 +829,7 @@ TrDoSwitch ( > Predicate->Asl.Parent = StoreOp; > > NewOp = TrCreateValuedLeafNode (PARSEOP_NAMESEG, > - (UINT64) ACPI_TO_INTEGER (PredicateValueName)); > + (UINT64) ACPI_TO_INTEGER (PredicateValueName)); > TrAmlInitLineNumbers (NewOp, StoreOp); > NewOp->Asl.Parent = StoreOp; > Predicate->Asl.Next = NewOp; > diff --git a/src/acpica/source/compiler/asltree.c b/src/acpica/source/compiler/asltree.c > index e54a690..6948b5d 100644 > --- a/src/acpica/source/compiler/asltree.c > +++ b/src/acpica/source/compiler/asltree.c > @@ -412,6 +412,11 @@ TrPrintNodeCompileFlags ( > FlagName = "NODE_METHOD_TYPED"; > break; > > + case NODE_COULD_NOT_REDUCE: > + > + FlagName = "NODE_COULD_NOT_REDUCE"; > + break; > + > case NODE_COMPILE_TIME_CONST: > > FlagName = "NODE_COMPILE_TIME_CONST"; > @@ -561,7 +566,7 @@ TrSetEndLineNumber ( > return; > } > > - Op->Asl.EndLine = Gbl_CurrentLineNumber; > + Op->Asl.EndLine = Gbl_CurrentLineNumber; > Op->Asl.EndLogicalLine = Gbl_LogicalLineNumber; > } > > @@ -825,7 +830,8 @@ TrCreateConstantLeafNode ( > } > > DbgPrint (ASL_PARSE_OUTPUT, > - "\nCreateConstantLeafNode Ln/Col %u/%u NewNode %p Op %s Value %8.8X%8.8X \n", > + "\nCreateConstantLeafNode Ln/Col %u/%u NewNode %p " > + "Op %s Value %8.8X%8.8X \n", > Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName (ParseOpcode), > ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer)); > return (Op); > @@ -932,7 +938,8 @@ TrCreateValuedLeafNode ( > Op = TrAllocateNode (ParseOpcode); > > DbgPrint (ASL_PARSE_OUTPUT, > - "\nCreateValuedLeafNode Ln/Col %u/%u NewNode %p Op %s Value %8.8X%8.8X ", > + "\nCreateValuedLeafNode Ln/Col %u/%u NewNode %p " > + "Op %s Value %8.8X%8.8X ", > Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName(ParseOpcode), > ACPI_FORMAT_UINT64 (Value)); > Op->Asl.Value.Integer = Value; > @@ -1018,15 +1025,22 @@ TrCreateNode ( > > DbgPrint (ASL_PARSE_OUTPUT, > "\nCreateNode Ln/Col %u/%u NewParent %p Child %u Op %s ", > - Op->Asl.LineNumber, Op->Asl.Column, Op, NumChildren, UtGetOpName(ParseOpcode)); > + Op->Asl.LineNumber, Op->Asl.Column, Op, > + NumChildren, UtGetOpName(ParseOpcode)); > > /* Some extra debug output based on the parse opcode */ > > switch (ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_ASL_CODE: > > RootNode = Op; > + Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; > + DbgPrint (ASL_PARSE_OUTPUT, "ASLCODE (Tree Completed)->"); > + break; > + > + case PARSEOP_DEFINITION_BLOCK: > + > DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->"); > break; > > @@ -1147,9 +1161,15 @@ TrLinkChildren ( > > switch (Op->Asl.ParseOpcode) > { > - case PARSEOP_DEFINITIONBLOCK: > + case PARSEOP_ASL_CODE: > > RootNode = Op; > + Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; > + DbgPrint (ASL_PARSE_OUTPUT, "ASLCODE (Tree Completed)->"); > + break; > + > + case PARSEOP_DEFINITION_BLOCK: > + > DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->"); > break; > > @@ -1227,6 +1247,7 @@ TrLinkChildren ( > Child = Child->Asl.Next; > Child->Asl.Parent = Op; > } > + > PrevChild = Child; > } > > diff --git a/src/acpica/source/compiler/asltypes.h b/src/acpica/source/compiler/asltypes.h > index b08c5df..34340a5 100644 > --- a/src/acpica/source/compiler/asltypes.h > +++ b/src/acpica/source/compiler/asltypes.h > @@ -138,7 +138,7 @@ > #define NODE_METHOD_SOME_NO_RETVAL 0x00000200 > #define NODE_RESULT_NOT_USED 0x00000400 > #define NODE_METHOD_TYPED 0x00000800 > -#define NODE_UNUSED_FLAG 0x00001000 > +#define NODE_COULD_NOT_REDUCE 0x00001000 > #define NODE_COMPILE_TIME_CONST 0x00002000 > #define NODE_IS_TERM_ARG 0x00004000 > #define NODE_WAS_ONES_OP 0x00008000 > diff --git a/src/acpica/source/compiler/asltypes.y b/src/acpica/source/compiler/asltypes.y > index 832d67c..52ea9c3 100644 > --- a/src/acpica/source/compiler/asltypes.y > +++ b/src/acpica/source/compiler/asltypes.y > @@ -123,12 +123,13 @@ NoEcho(' > *****************************************************************************/ > > %type <n> ArgList > -%type <n> ASLCode > +%type <n> AslCode > %type <n> BufferData > %type <n> BufferTermData > %type <n> CompilerDirective > %type <n> DataObject > %type <n> DefinitionBlockTerm > +%type <n> DefinitionBlockList > %type <n> IntegerData > %type <n> NamedObject > %type <n> NameSpaceModifier > diff --git a/src/acpica/source/compiler/aslutils.c b/src/acpica/source/compiler/aslutils.c > index 6c0e757..374fe50 100644 > --- a/src/acpica/source/compiler/aslutils.c > +++ b/src/acpica/source/compiler/aslutils.c > @@ -271,7 +271,6 @@ UtBeginEvent ( > AslGbl_Events[AslGbl_NextEvent].StartTime = AcpiOsGetTimer (); > AslGbl_Events[AslGbl_NextEvent].EventName = Name; > AslGbl_Events[AslGbl_NextEvent].Valid = TRUE; > - > return (AslGbl_NextEvent++); > } > > @@ -878,6 +877,7 @@ UtPadNameWithUnderscores ( > { > *PaddedNameSeg = '_'; > } > + > PaddedNameSeg++; > } > } > @@ -1162,7 +1162,7 @@ stroul64 ( > /* Check to see if value is out of range: */ > > if (ReturnValue > ((ACPI_UINT64_MAX - (UINT64) Index) / > - (UINT64) Base)) > + (UINT64) Base)) > { > goto ErrorExit; > } > diff --git a/src/acpica/source/compiler/asluuid.c b/src/acpica/source/compiler/asluuid.c > index b9854b9..f1c47fe 100644 > --- a/src/acpica/source/compiler/asluuid.c > +++ b/src/acpica/source/compiler/asluuid.c > @@ -119,7 +119,7 @@ > ACPI_MODULE_NAME ("asluuid") > > > -extern UINT8 AcpiGbl_MapToUuidOffset[UUID_BUFFER_LENGTH]; > +extern UINT8 AcpiGbl_MapToUuidOffset[UUID_BUFFER_LENGTH]; > > > /******************************************************************************* > @@ -162,11 +162,10 @@ AuValidateUuid ( > return (AE_BAD_PARAMETER); > } > } > - > - /* All other positions must contain hex digits */ > - > else > { > + /* All other positions must contain hex digits */ > + > if (!isxdigit ((int) InString[i])) > { > return (AE_BAD_PARAMETER); > diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c > index 200abf3..82e053b 100644 > --- a/src/acpica/source/compiler/aslxref.c > +++ b/src/acpica/source/compiler/aslxref.c > @@ -220,7 +220,7 @@ XfCrossReferenceNamespace ( > /* Walk the entire parse tree */ > > TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE, XfNamespaceLocateBegin, > - XfNamespaceLocateEnd, WalkState); > + XfNamespaceLocateEnd, WalkState); > > ACPI_FREE (WalkState); > return (AE_OK); > @@ -249,8 +249,8 @@ XfObjectExists ( > /* Walk entire namespace from the supplied root */ > > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, FALSE, XfCompareOneNamespaceObject, NULL, > - Name, NULL); > + ACPI_UINT32_MAX, FALSE, XfCompareOneNamespaceObject, NULL, > + Name, NULL); > if (Status == AE_CTRL_TRUE) > { > /* At least one instance of the name was found */ > @@ -647,6 +647,7 @@ XfNamespaceLocateBegin ( > { > NextOp = NextOp->Asl.Next; > } > + > Path = NextOp->Asl.Value.String; > } > else > @@ -668,7 +669,7 @@ XfNamespaceLocateBegin ( > Gbl_NsLookupCount++; > > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, > - ACPI_IMODE_EXECUTE, Flags, WalkState, &(Node)); > + ACPI_IMODE_EXECUTE, Flags, WalkState, &(Node)); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_NOT_FOUND) > @@ -850,7 +851,8 @@ XfNamespaceLocateBegin ( > > if (Message) > { > - sprintf (MsgBuffer, "Size mismatch, Tag: %u bit%s, Field: %u bit%s", > + sprintf (MsgBuffer, > + "Size mismatch, Tag: %u bit%s, Field: %u bit%s", > TagBitLength, (TagBitLength > 1) ? "s" : "", > FieldBitLength, (FieldBitLength > 1) ? "s" : ""); > > @@ -919,7 +921,7 @@ XfNamespaceLocateBegin ( > if (Node->Type != ACPI_TYPE_METHOD) > { > sprintf (MsgBuffer, "%s is a %s", > - Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type)); > + Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type)); > > AslError (ASL_ERROR, ASL_MSG_NOT_METHOD, Op, MsgBuffer); > return_ACPI_STATUS (AE_OK); > @@ -942,7 +944,7 @@ XfNamespaceLocateBegin ( > UtSetParseOpName (Op); > > PassedArgs = 0; > - NextOp = Op->Asl.Child; > + NextOp = Op->Asl.Child; > > while (NextOp) > { > @@ -1048,7 +1050,8 @@ XfNamespaceLocateBegin ( > case ACPI_ADR_SPACE_CMOS: > case ACPI_ADR_SPACE_GPIO: > > - if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != AML_FIELD_ACCESS_BYTE) > + if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != > + AML_FIELD_ACCESS_BYTE) > { > AslError (ASL_ERROR, ASL_MSG_REGION_BYTE_ACCESS, Op, NULL); > } > @@ -1058,7 +1061,8 @@ XfNamespaceLocateBegin ( > case ACPI_ADR_SPACE_IPMI: > case ACPI_ADR_SPACE_GSBUS: > > - if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != AML_FIELD_ACCESS_BUFFER) > + if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != > + AML_FIELD_ACCESS_BUFFER) > { > AslError (ASL_ERROR, ASL_MSG_REGION_BUFFER_ACCESS, Op, NULL); > } > @@ -1086,10 +1090,10 @@ XfNamespaceLocateBegin ( > if (Op->Asl.Parent->Asl.ExtraValue && Op->Asl.Child) > { > XfCheckFieldRange (Op, > - Op->Asl.Parent->Asl.ExtraValue, > - Op->Asl.ExtraValue, > - (UINT32) Op->Asl.Child->Asl.Value.Integer, > - Op->Asl.Child->Asl.ExtraValue); > + Op->Asl.Parent->Asl.ExtraValue, > + Op->Asl.ExtraValue, > + (UINT32) Op->Asl.Child->Asl.Value.Integer, > + Op->Asl.Child->Asl.ExtraValue); > } > } > } > diff --git a/src/acpica/source/compiler/dtcompile.c b/src/acpica/source/compiler/dtcompile.c > index 98d663e..a863b48 100644 > --- a/src/acpica/source/compiler/dtcompile.c > +++ b/src/acpica/source/compiler/dtcompile.c > @@ -417,7 +417,7 @@ DtCompileDataTable ( > DtInsertCompilerIds (*FieldList); > > Status = DtCompileTable (FieldList, AcpiDmTableInfoHeader, > - &Gbl_RootTable, TRUE); > + &Gbl_RootTable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -454,7 +454,7 @@ DtCompileDataTable ( > > Subtable = NULL; > Status = DtCompileTable (FieldList, TableData->TableInfo, > - &Subtable, TRUE); > + &Subtable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -711,6 +711,57 @@ Error: > > /****************************************************************************** > * > + * FUNCTION: DtCompileTwoSubtables > + * > + * PARAMETERS: List - Current field list pointer > + * TableInfo1 - Info table 1 > + * TableInfo1 - Info table 2 > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile tables with a header and one or more same subtables. > + * Include CPEP, EINJ, ERST, MCFG, MSCT, WDAT > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileTwoSubtables ( > + void **List, > + ACPI_DMTABLE_INFO *TableInfo1, > + ACPI_DMTABLE_INFO *TableInfo2) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + > + > + Status = DtCompileTable (PFieldList, TableInfo1, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, TableInfo2, &Subtable, FALSE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > * FUNCTION: DtCompilePadding > * > * PARAMETERS: Length - Padding field size > diff --git a/src/acpica/source/compiler/dtcompiler.h b/src/acpica/source/compiler/dtcompiler.h > index b40f371..8a74c23 100644 > --- a/src/acpica/source/compiler/dtcompiler.h > +++ b/src/acpica/source/compiler/dtcompiler.h > @@ -244,6 +244,12 @@ DtCompileTable ( > BOOLEAN Required); > > ACPI_STATUS > +DtCompileTwoSubtables ( > + void **List, > + ACPI_DMTABLE_INFO *TableInfo1, > + ACPI_DMTABLE_INFO *TableInfo2); > + > +ACPI_STATUS > DtCompilePadding ( > UINT32 Length, > DT_SUBTABLE **RetSubtable); > diff --git a/src/acpica/source/compiler/dtexpress.c b/src/acpica/source/compiler/dtexpress.c > index e5af53b..6e0858a 100644 > --- a/src/acpica/source/compiler/dtexpress.c > +++ b/src/acpica/source/compiler/dtexpress.c > @@ -219,6 +219,7 @@ DtDoOperator ( > Gbl_CurrentField, NULL); > return (0); > } > + > Result = LeftValue / RightValue; > break; > > @@ -230,6 +231,7 @@ DtDoOperator ( > Gbl_CurrentField, NULL); > return (0); > } > + > Result = LeftValue % RightValue; > break; > > @@ -489,6 +491,7 @@ DtLookupLabel ( > { > return (LabelField); > } > + > LabelField = LabelField->NextLabel; > } > > diff --git a/src/acpica/source/compiler/dtfield.c b/src/acpica/source/compiler/dtfield.c > index adde63d..06be3bf 100644 > --- a/src/acpica/source/compiler/dtfield.c > +++ b/src/acpica/source/compiler/dtfield.c > @@ -171,6 +171,7 @@ DtCompileOneField ( > { > ACPI_STATUS Status; > > + > switch (Type) > { > case DT_FIELD_TYPE_INTEGER: > diff --git a/src/acpica/source/compiler/dtio.c b/src/acpica/source/compiler/dtio.c > index 5881ea6..3cdf1f3 100644 > --- a/src/acpica/source/compiler/dtio.c > +++ b/src/acpica/source/compiler/dtio.c > @@ -174,7 +174,7 @@ DtDumpSubtableTree ( > #define DT_MERGE_LINES 6 > #define DT_ESCAPE_SEQUENCE 7 > > -static UINT32 Gbl_NextLineOffset; > +static UINT32 Gbl_NextLineOffset; > > > /****************************************************************************** > @@ -426,6 +426,7 @@ DtParseLine ( > End--; > break; > } > + > End++; > } > > @@ -625,7 +626,8 @@ DtGetNextLine ( > > if (!(Flags & DT_ALLOW_MULTILINE_QUOTES)) > { > - AcpiOsPrintf ("ERROR at line %u: Unterminated quoted string\n", > + AcpiOsPrintf ( > + "ERROR at line %u: Unterminated quoted string\n", > Gbl_CurrentLineNumber++); > State = DT_NORMAL_TEXT; > } > @@ -827,7 +829,8 @@ DtScanFile ( > ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Line %2.2u/%4.4X - %s", > Gbl_CurrentLineNumber, Offset, Gbl_CurrentLineBuffer)); > > - Status = DtParseLine (Gbl_CurrentLineBuffer, Gbl_CurrentLineNumber, Offset); > + Status = DtParseLine (Gbl_CurrentLineBuffer, > + Gbl_CurrentLineNumber, Offset); > if (Status == AE_NOT_FOUND) > { > break; > @@ -1018,6 +1021,7 @@ DtDumpFieldList ( > DbgPrint (ASL_DEBUG_OUTPUT, "\nField List:\n" > "LineNo ByteOff NameCol Column TableOff " > "Flags %32s : %s\n\n", "Name", "Value"); > + > while (Field) > { > DbgPrint (ASL_DEBUG_OUTPUT, > @@ -1164,6 +1168,7 @@ DtWriteFieldToListing ( > FlPrintFile (ASL_FILE_LISTING_OUTPUT, "...Additional data, length 0x%X\n", > strlen (Field->Value)); > } > + > FlPrintFile (ASL_FILE_LISTING_OUTPUT, "\n"); > > /* Dump the hex data that will be output for this field */ > diff --git a/src/acpica/source/compiler/dttable.c b/src/acpica/source/compiler/dttable.c > index 312c53f..f7a45fe 100644 > --- a/src/acpica/source/compiler/dttable.c > +++ b/src/acpica/source/compiler/dttable.c > @@ -113,7 +113,7 @@ > * > *****************************************************************************/ > > -/* Compile all complex data tables */ > +/* Compile routines for the basic ACPI tables */ > > #include "aslcompiler.h" > #include "dtcompiler.h" > @@ -122,123 +122,6 @@ > ACPI_MODULE_NAME ("dttable") > > > -/* TBD: merge these into dmtbinfo.c? */ > - > -static ACPI_DMTABLE_INFO TableInfoAsfAddress[] = > -{ > - {ACPI_DMT_BUFFER, 0, "Addresses", 0}, > - {ACPI_DMT_EXIT, 0, NULL, 0} > -}; > - > -static ACPI_DMTABLE_INFO TableInfoDmarPciPath[] = > -{ > - {ACPI_DMT_PCI_PATH, 0, "PCI Path", 0}, > - {ACPI_DMT_EXIT, 0, NULL, 0} > -}; > - > - > -/* Local prototypes */ > - > -static ACPI_STATUS > -DtCompileTwoSubtables ( > - void **List, > - ACPI_DMTABLE_INFO *TableInfo1, > - ACPI_DMTABLE_INFO *TableInfo2); > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileTwoSubtables > - * > - * PARAMETERS: List - Current field list pointer > - * TableInfo1 - Info table 1 > - * TableInfo1 - Info table 2 > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile tables with a header and one or more same subtables. > - * Include CPEP, EINJ, ERST, MCFG, MSCT, WDAT > - * > - *****************************************************************************/ > - > -static ACPI_STATUS > -DtCompileTwoSubtables ( > - void **List, > - ACPI_DMTABLE_INFO *TableInfo1, > - ACPI_DMTABLE_INFO *TableInfo2) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - > - > - Status = DtCompileTable (PFieldList, TableInfo1, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, TableInfo2, &Subtable, FALSE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileFacs > - * > - * PARAMETERS: PFieldList - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile FACS. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileFacs ( > - DT_FIELD **PFieldList) > -{ > - DT_SUBTABLE *Subtable; > - UINT8 *ReservedBuffer; > - ACPI_STATUS Status; > - UINT32 ReservedSize; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFacs, > - &Gbl_RootTable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - /* Large FACS reserved area at the end of the table */ > - > - ReservedSize = (UINT32) sizeof (((ACPI_TABLE_FACS *) NULL)->Reserved1); > - ReservedBuffer = UtLocalCalloc (ReservedSize); > - > - DtCreateSubtable (ReservedBuffer, ReservedSize, &Subtable); > - > - ACPI_FREE (ReservedBuffer); > - DtInsertSubtable (Gbl_RootTable, Subtable); > - return (AE_OK); > -} > - > - > /****************************************************************************** > * > * FUNCTION: DtCompileRsdp > @@ -264,7 +147,7 @@ DtCompileRsdp ( > /* Compile the "common" RSDP (ACPI 1.0) */ > > Status = DtCompileTable (PFieldList, AcpiDmTableInfoRsdp1, > - &Gbl_RootTable, TRUE); > + &Gbl_RootTable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -278,7 +161,7 @@ DtCompileRsdp ( > /* Compile the "extended" part of the RSDP as a subtable */ > > Status = DtCompileTable (PFieldList, AcpiDmTableInfoRsdp2, > - &Subtable, TRUE); > + &Subtable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -299,259 +182,56 @@ DtCompileRsdp ( > > /****************************************************************************** > * > - * FUNCTION: DtCompileAsf > + * FUNCTION: DtCompileFadt > * > * PARAMETERS: List - Current field list pointer > * > * RETURN: Status > * > - * DESCRIPTION: Compile ASF!. > + * DESCRIPTION: Compile FADT. > * > *****************************************************************************/ > > ACPI_STATUS > -DtCompileAsf ( > +DtCompileFadt ( > void **List) > { > - ACPI_ASF_INFO *AsfTable; > + ACPI_STATUS Status; > DT_SUBTABLE *Subtable; > DT_SUBTABLE *ParentTable; > - ACPI_DMTABLE_INFO *InfoTable; > - ACPI_DMTABLE_INFO *DataInfoTable = NULL; > - UINT32 DataCount = 0; > - ACPI_STATUS Status; > - UINT32 i; > DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > + ACPI_TABLE_HEADER *Table; > + UINT8 Revision; > > > - while (*PFieldList) > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt1, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsfHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - AsfTable = ACPI_CAST_PTR (ACPI_ASF_INFO, Subtable->Buffer); > - > - switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ > - { > - case ACPI_ASF_TYPE_INFO: > - > - InfoTable = AcpiDmTableInfoAsf0; > - break; > - > - case ACPI_ASF_TYPE_ALERT: > - > - InfoTable = AcpiDmTableInfoAsf1; > - break; > - > - case ACPI_ASF_TYPE_CONTROL: > - > - InfoTable = AcpiDmTableInfoAsf2; > - break; > - > - case ACPI_ASF_TYPE_BOOT: > - > - InfoTable = AcpiDmTableInfoAsf3; > - break; > - > - case ACPI_ASF_TYPE_ADDRESS: > - > - InfoTable = AcpiDmTableInfoAsf4; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ > - { > - case ACPI_ASF_TYPE_INFO: > - > - DataInfoTable = NULL; > - break; > - > - case ACPI_ASF_TYPE_ALERT: > - > - DataInfoTable = AcpiDmTableInfoAsf1a; > - DataCount = ACPI_CAST_PTR (ACPI_ASF_ALERT, > - ACPI_SUB_PTR (UINT8, Subtable->Buffer, > - sizeof (ACPI_ASF_HEADER)))->Alerts; > - break; > - > - case ACPI_ASF_TYPE_CONTROL: > - > - DataInfoTable = AcpiDmTableInfoAsf2a; > - DataCount = ACPI_CAST_PTR (ACPI_ASF_REMOTE, > - ACPI_SUB_PTR (UINT8, Subtable->Buffer, > - sizeof (ACPI_ASF_HEADER)))->Controls; > - break; > - > - case ACPI_ASF_TYPE_BOOT: > - > - DataInfoTable = NULL; > - break; > - > - case ACPI_ASF_TYPE_ADDRESS: > - > - DataInfoTable = TableInfoAsfAddress; > - DataCount = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, > - ACPI_SUB_PTR (UINT8, Subtable->Buffer, > - sizeof (ACPI_ASF_HEADER)))->Devices; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); > - return (AE_ERROR); > - } > - > - if (DataInfoTable) > - { > - switch (AsfTable->Header.Type & 0x7F) > - { > - case ACPI_ASF_TYPE_ADDRESS: > - > - while (DataCount > 0) > - { > - Status = DtCompileTable (PFieldList, DataInfoTable, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - DataCount = DataCount - Subtable->Length; > - } > - break; > - > - default: > - > - for (i = 0; i < DataCount; i++) > - { > - Status = DtCompileTable (PFieldList, DataInfoTable, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - break; > - } > - } > - > - DtPopSubtable (); > + return (Status); > } > > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileCpep > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile CPEP. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileCpep ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoCpep, AcpiDmTableInfoCpep0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileCsrt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile CSRT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileCsrt ( > - void **List) > -{ > - ACPI_STATUS Status = AE_OK; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - UINT32 DescriptorCount; > - UINT32 GroupLength; > - > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > > - /* Subtables (Resource Groups) */ > + Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); > + Revision = Table->Revision; > > - ParentTable = DtPeekSubtable (); > - while (*PFieldList) > + if (Revision == 2) > { > - /* Resource group subtable */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt0, > - &Subtable, TRUE); > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt2, > + &Subtable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > - /* Compute the number of resource descriptors */ > - > - GroupLength = > - (ACPI_CAST_PTR (ACPI_CSRT_GROUP, > - Subtable->Buffer))->Length - > - (ACPI_CAST_PTR (ACPI_CSRT_GROUP, > - Subtable->Buffer))->SharedInfoLength - > - sizeof (ACPI_CSRT_GROUP); > - > - DescriptorCount = (GroupLength / > - sizeof (ACPI_CSRT_DESCRIPTOR)); > - > DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - ParentTable = DtPeekSubtable (); > - > - /* Shared info subtable (One per resource group) */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt1, > - &Subtable, TRUE); > + } > + else if (Revision >= 2) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt3, > + &Subtable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -559,3038 +239,72 @@ DtCompileCsrt ( > > DtInsertSubtable (ParentTable, Subtable); > > - /* Sub-Subtables (Resource Descriptors) */ > - > - while (*PFieldList && DescriptorCount) > + if (Revision >= 5) > { > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2, > - &Subtable, TRUE); > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt5, > + &Subtable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > + > DtInsertSubtable (ParentTable, Subtable); > + } > > - DtPushSubtable (Subtable); > - ParentTable = DtPeekSubtable (); > - if (*PFieldList) > + if (Revision >= 6) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (Subtable) > - { > - DtInsertSubtable (ParentTable, Subtable); > - } > + return (Status); > } > - DtPopSubtable (); > - ParentTable = DtPeekSubtable (); > > - DescriptorCount--; > + DtInsertSubtable (ParentTable, Subtable); > } > - > - DtPopSubtable (); > - ParentTable = DtPeekSubtable (); > } > > - return (Status); > + return (AE_OK); > } > > > /****************************************************************************** > * > - * FUNCTION: DtCompileDbg2 > + * FUNCTION: DtCompileFacs > * > - * PARAMETERS: List - Current field list pointer > + * PARAMETERS: PFieldList - Current field list pointer > * > * RETURN: Status > * > - * DESCRIPTION: Compile DBG2. > + * DESCRIPTION: Compile FACS. > * > *****************************************************************************/ > > ACPI_STATUS > -DtCompileDbg2 ( > - void **List) > +DtCompileFacs ( > + DT_FIELD **PFieldList) > { > - ACPI_STATUS Status; > DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - UINT32 SubtableCount; > - ACPI_DBG2_HEADER *Dbg2Header; > - ACPI_DBG2_DEVICE *DeviceInfo; > - UINT16 CurrentOffset; > - UINT32 i; > - > + UINT8 *ReservedBuffer; > + ACPI_STATUS Status; > + UINT32 ReservedSize; > > - /* Main table */ > > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2, &Subtable, TRUE); > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFacs, > + &Gbl_RootTable, TRUE); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* Main table fields */ > - > - Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer); > - Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF ( > - ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header); > - > - SubtableCount = Dbg2Header->InfoCount; > - DtPushSubtable (Subtable); > + /* Large FACS reserved area at the end of the table */ > > - /* Process all Device Information subtables (Count = InfoCount) */ > + ReservedSize = (UINT32) sizeof (((ACPI_TABLE_FACS *) NULL)->Reserved1); > + ReservedBuffer = UtLocalCalloc (ReservedSize); > > - while (*PFieldList && SubtableCount) > - { > - /* Subtable: Debug Device Information */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Device, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DeviceInfo = ACPI_CAST_PTR (ACPI_DBG2_DEVICE, Subtable->Buffer); > - CurrentOffset = (UINT16) sizeof (ACPI_DBG2_DEVICE); > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - ParentTable = DtPeekSubtable (); > - > - /* BaseAddressRegister GAS array (Required, size is RegisterCount) */ > - > - DeviceInfo->BaseAddressOffset = CurrentOffset; > - for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - CurrentOffset += (UINT16) sizeof (ACPI_GENERIC_ADDRESS); > - DtInsertSubtable (ParentTable, Subtable); > - } > - > - /* AddressSize array (Required, size = RegisterCount) */ > - > - DeviceInfo->AddressSizeOffset = CurrentOffset; > - for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - CurrentOffset += (UINT16) sizeof (UINT32); > - DtInsertSubtable (ParentTable, Subtable); > - } > - > - /* NamespaceString device identifier (Required, size = NamePathLength) */ > - > - DeviceInfo->NamepathOffset = CurrentOffset; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - /* Update the device info header */ > - > - DeviceInfo->NamepathLength = (UINT16) Subtable->Length; > - CurrentOffset += (UINT16) DeviceInfo->NamepathLength; > - DtInsertSubtable (ParentTable, Subtable); > - > - /* OemData - Variable-length data (Optional, size = OemDataLength) */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2OemData, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - /* Update the device info header (zeros if no OEM data present) */ > - > - DeviceInfo->OemDataOffset = 0; > - DeviceInfo->OemDataLength = 0; > - > - /* Optional subtable (OemData) */ > - > - if (Subtable && Subtable->Length) > - { > - DeviceInfo->OemDataOffset = CurrentOffset; > - DeviceInfo->OemDataLength = (UINT16) Subtable->Length; > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - > - SubtableCount--; > - DtPopSubtable (); /* Get next Device Information subtable */ > - } > - > - DtPopSubtable (); > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileDmar > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile DMAR. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileDmar ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_DMTABLE_INFO *InfoTable; > - ACPI_DMAR_HEADER *DmarHeader; > - ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope; > - UINT32 DeviceScopeLength; > - UINT32 PciPathLength; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - while (*PFieldList) > - { > - /* DMAR Header */ > - > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer); > - > - switch (DmarHeader->Type) > - { > - case ACPI_DMAR_TYPE_HARDWARE_UNIT: > - > - InfoTable = AcpiDmTableInfoDmar0; > - break; > - > - case ACPI_DMAR_TYPE_RESERVED_MEMORY: > - > - InfoTable = AcpiDmTableInfoDmar1; > - break; > - > - case ACPI_DMAR_TYPE_ROOT_ATS: > - > - InfoTable = AcpiDmTableInfoDmar2; > - break; > - > - case ACPI_DMAR_TYPE_HARDWARE_AFFINITY: > - > - InfoTable = AcpiDmTableInfoDmar3; > - break; > - > - case ACPI_DMAR_TYPE_NAMESPACE: > - > - InfoTable = AcpiDmTableInfoDmar4; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR"); > - return (AE_ERROR); > - } > - > - /* DMAR Subtable */ > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Optional Device Scope subtables > - */ > - if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || > - (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE)) > - { > - /* These types do not support device scopes */ > - > - DtPopSubtable (); > - continue; > - } > - > - DtPushSubtable (Subtable); > - DeviceScopeLength = DmarHeader->Length - Subtable->Length - > - ParentTable->Length; > - while (DeviceScopeLength) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope, > - &Subtable, FALSE); > - if (Status == AE_NOT_FOUND) > - { > - break; > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - DmarDeviceScope = ACPI_CAST_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable->Buffer); > - > - /* Optional PCI Paths */ > - > - PciPathLength = DmarDeviceScope->Length - Subtable->Length; > - while (PciPathLength) > - { > - Status = DtCompileTable (PFieldList, TableInfoDmarPciPath, > - &Subtable, FALSE); > - if (Status == AE_NOT_FOUND) > - { > - DtPopSubtable (); > - break; > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - PciPathLength -= Subtable->Length; > - } > - > - DtPopSubtable (); > - DeviceScopeLength -= DmarDeviceScope->Length; > - } > - > - DtPopSubtable (); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileDrtm > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile DRTM. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileDrtm ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - UINT32 Count; > - /* ACPI_TABLE_DRTM *Drtm; */ > - ACPI_DRTM_VTABLE_LIST *DrtmVtl; > - ACPI_DRTM_RESOURCE_LIST *DrtmRl; > - /* ACPI_DRTM_DPS_ID *DrtmDps; */ > - > - > - ParentTable = DtPeekSubtable (); > - > - /* Compile DRTM header */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care > - * should be taken to avoid accessing ACPI_TABLE_HADER fields. > - */ > -#if 0 > - Drtm = ACPI_SUB_PTR (ACPI_TABLE_DRTM, > - Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); > -#endif > - /* Compile VTL */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - DrtmVtl = ACPI_CAST_PTR (ACPI_DRTM_VTABLE_LIST, Subtable->Buffer); > - > - DtPushSubtable (Subtable); > - ParentTable = DtPeekSubtable (); > - Count = 0; > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - break; > - } > - DtInsertSubtable (ParentTable, Subtable); > - Count++; > - } > - DrtmVtl->ValidatedTableCount = Count; > - DtPopSubtable (); > - ParentTable = DtPeekSubtable (); > - > - /* Compile RL */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - DrtmRl = ACPI_CAST_PTR (ACPI_DRTM_RESOURCE_LIST, Subtable->Buffer); > - > - DtPushSubtable (Subtable); > - ParentTable = DtPeekSubtable (); > - Count = 0; > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - break; > - } > - DtInsertSubtable (ParentTable, Subtable); > - Count++; > - } > - DrtmRl->ResourceCount = Count; > - DtPopSubtable (); > - ParentTable = DtPeekSubtable (); > - > - /* Compile DPS */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm2, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - /* DrtmDps = ACPI_CAST_PTR (ACPI_DRTM_DPS_ID, Subtable->Buffer);*/ > - > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileEinj > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile EINJ. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileEinj ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoEinj, AcpiDmTableInfoEinj0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileErst > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile ERST. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileErst ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoErst, AcpiDmTableInfoEinj0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileFadt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile FADT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileFadt ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - ACPI_TABLE_HEADER *Table; > - UINT8 Revision; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt1, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); > - Revision = Table->Revision; > - > - if (Revision == 2) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt2, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - else if (Revision >= 2) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt3, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - > - if (Revision >= 5) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt5, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - > - if (Revision >= 6) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - } > - > - return (AE_OK); > -} > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileGtdt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile GTDT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileGtdt ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_SUBTABLE_HEADER *GtdtHeader; > - ACPI_DMTABLE_INFO *InfoTable; > - UINT32 GtCount; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdtHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - GtdtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > - > - switch (GtdtHeader->Type) > - { > - case ACPI_GTDT_TYPE_TIMER_BLOCK: > - > - InfoTable = AcpiDmTableInfoGtdt0; > - break; > - > - case ACPI_GTDT_TYPE_WATCHDOG: > - > - InfoTable = AcpiDmTableInfoGtdt1; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "GTDT"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Additional GT block subtable data > - */ > - > - switch (GtdtHeader->Type) > - { > - case ACPI_GTDT_TYPE_TIMER_BLOCK: > - > - DtPushSubtable (Subtable); > - ParentTable = DtPeekSubtable (); > - > - GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, > - Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount; > - while (GtCount) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt0a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - > - DtInsertSubtable (ParentTable, Subtable); > - GtCount--; > - } > - DtPopSubtable (); > - break; > - > - default: > - > - break; > - } > - > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileFpdt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile FPDT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileFpdt ( > - void **List) > -{ > - ACPI_STATUS Status; > - ACPI_FPDT_HEADER *FpdtHeader; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - ACPI_DMTABLE_INFO *InfoTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFpdtHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer); > - > - switch (FpdtHeader->Type) > - { > - case ACPI_FPDT_TYPE_BOOT: > - > - InfoTable = AcpiDmTableInfoFpdt0; > - break; > - > - case ACPI_FPDT_TYPE_S3PERF: > - > - InfoTable = AcpiDmTableInfoFpdt1; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "FPDT"); > - return (AE_ERROR); > - break; > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileHest > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile HEST. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileHest ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_DMTABLE_INFO *InfoTable; > - UINT16 Type; > - UINT32 BankCount; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoHest, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - while (*PFieldList) > - { > - /* Get subtable type */ > - > - SubtableStart = *PFieldList; > - DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0); > - > - switch (Type) > - { > - case ACPI_HEST_TYPE_IA32_CHECK: > - > - InfoTable = AcpiDmTableInfoHest0; > - break; > - > - case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: > - > - InfoTable = AcpiDmTableInfoHest1; > - break; > - > - case ACPI_HEST_TYPE_IA32_NMI: > - > - InfoTable = AcpiDmTableInfoHest2; > - break; > - > - case ACPI_HEST_TYPE_AER_ROOT_PORT: > - > - InfoTable = AcpiDmTableInfoHest6; > - break; > - > - case ACPI_HEST_TYPE_AER_ENDPOINT: > - > - InfoTable = AcpiDmTableInfoHest7; > - break; > - > - case ACPI_HEST_TYPE_AER_BRIDGE: > - > - InfoTable = AcpiDmTableInfoHest8; > - break; > - > - case ACPI_HEST_TYPE_GENERIC_ERROR: > - > - InfoTable = AcpiDmTableInfoHest9; > - break; > - > - default: > - > - /* Cannot continue on unknown type */ > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "HEST"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Additional subtable data - IA32 Error Bank(s) > - */ > - BankCount = 0; > - switch (Type) > - { > - case ACPI_HEST_TYPE_IA32_CHECK: > - > - BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, > - Subtable->Buffer))->NumHardwareBanks; > - break; > - > - case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: > - > - BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, > - Subtable->Buffer))->NumHardwareBanks; > - break; > - > - default: > - > - break; > - } > - > - while (BankCount) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoHestBank, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - BankCount--; > - } > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileIort > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile IORT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileIort ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_TABLE_IORT *Iort; > - ACPI_IORT_NODE *IortNode; > - ACPI_IORT_ITS_GROUP *IortItsGroup; > - ACPI_IORT_SMMU *IortSmmu; > - UINT32 NodeNumber; > - UINT32 NodeLength; > - UINT32 IdMappingNumber; > - UINT32 ItsNumber; > - UINT32 ContextIrptNumber; > - UINT32 PmuIrptNumber; > - UINT32 PaddingLength; > - > - > - ParentTable = DtPeekSubtable (); > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care > - * should be taken to avoid accessing ACPI_TABLE_HADER fields. > - */ > - Iort = ACPI_SUB_PTR (ACPI_TABLE_IORT, > - Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); > - > - /* > - * OptionalPadding - Variable-length data > - * (Optional, size = OffsetToNodes - sizeof (ACPI_TABLE_IORT)) > - * Optionally allows the generic data types to be used for filling > - * this field. > - */ > - Iort->NodeOffset = sizeof (ACPI_TABLE_IORT); > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (Subtable) > - { > - DtInsertSubtable (ParentTable, Subtable); > - Iort->NodeOffset += Subtable->Length; > - } > - else > - { > - Status = DtCompileGeneric (ACPI_CAST_PTR (void *, PFieldList), > - AcpiDmTableInfoIortHdr[0].Name, &PaddingLength); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - Iort->NodeOffset += PaddingLength; > - } > - > - NodeNumber = 0; > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - IortNode = ACPI_CAST_PTR (ACPI_IORT_NODE, Subtable->Buffer); > - NodeLength = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); > - > - DtPushSubtable (Subtable); > - ParentTable = DtPeekSubtable (); > - > - switch (IortNode->Type) > - { > - case ACPI_IORT_NODE_ITS_GROUP: > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - IortItsGroup = ACPI_CAST_PTR (ACPI_IORT_ITS_GROUP, Subtable->Buffer); > - NodeLength += Subtable->Length; > - > - ItsNumber = 0; > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - break; > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - ItsNumber++; > - } > - > - IortItsGroup->ItsCount = ItsNumber; > - break; > - > - case ACPI_IORT_NODE_NAMED_COMPONENT: > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - > - /* > - * Padding - Variable-length data > - * Optionally allows the offset of the ID mappings to be used > - * for filling this field. > - */ > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (Subtable) > - { > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - } > - else > - { > - if (NodeLength > IortNode->MappingOffset) > - { > - return (AE_BAD_DATA); > - } > - if (NodeLength < IortNode->MappingOffset) > - { > - Status = DtCompilePadding ( > - IortNode->MappingOffset - NodeLength, > - &Subtable); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength = IortNode->MappingOffset; > - } > - } > - break; > - > - case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort2, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - break; > - > - case ACPI_IORT_NODE_SMMU: > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - IortSmmu = ACPI_CAST_PTR (ACPI_IORT_SMMU, Subtable->Buffer); > - NodeLength += Subtable->Length; > - > - /* Compile global interrupt array */ > - > - IortSmmu->GlobalInterruptOffset = NodeLength; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - > - /* Compile context interrupt array */ > - > - ContextIrptNumber = 0; > - IortSmmu->ContextInterruptOffset = NodeLength; > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - break; > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - ContextIrptNumber++; > - } > - IortSmmu->ContextInterruptCount = ContextIrptNumber; > - > - /* Compile PMU interrupt array */ > - > - PmuIrptNumber = 0; > - IortSmmu->PmuInterruptOffset = NodeLength; > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - break; > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += Subtable->Length; > - PmuIrptNumber++; > - } > - IortSmmu->PmuInterruptCount = PmuIrptNumber; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); > - return (AE_ERROR); > - } > - > - /* Compile Array of ID mappings */ > - > - IortNode->MappingOffset = NodeLength; > - IdMappingNumber = 0; > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortMap, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - break; > - } > - DtInsertSubtable (ParentTable, Subtable); > - NodeLength += sizeof (ACPI_IORT_ID_MAPPING); > - IdMappingNumber++; > - } > - IortNode->MappingCount = IdMappingNumber; > - > - /* > - * Node length can be determined by DT_LENGTH option > - * IortNode->Length = NodeLength; > - */ > - DtPopSubtable (); > - ParentTable = DtPeekSubtable (); > - NodeNumber++; > - } > - Iort->NodeCount = NodeNumber; > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileIvrs > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile IVRS. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileIvrs ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_DMTABLE_INFO *InfoTable; > - ACPI_IVRS_HEADER *IvrsHeader; > - UINT8 EntryType; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrs, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - IvrsHeader = ACPI_CAST_PTR (ACPI_IVRS_HEADER, Subtable->Buffer); > - > - switch (IvrsHeader->Type) > - { > - case ACPI_IVRS_TYPE_HARDWARE: > - > - InfoTable = AcpiDmTableInfoIvrs0; > - break; > - > - case ACPI_IVRS_TYPE_MEMORY1: > - case ACPI_IVRS_TYPE_MEMORY2: > - case ACPI_IVRS_TYPE_MEMORY3: > - > - InfoTable = AcpiDmTableInfoIvrs1; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IVRS"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE) > - { > - while (*PFieldList && > - !strcmp ((*PFieldList)->Name, "Entry Type")) > - { > - SubtableStart = *PFieldList; > - DtCompileInteger (&EntryType, *PFieldList, 1, 0); > - > - switch (EntryType) > - { > - /* 4-byte device entries */ > - > - case ACPI_IVRS_TYPE_PAD4: > - case ACPI_IVRS_TYPE_ALL: > - case ACPI_IVRS_TYPE_SELECT: > - case ACPI_IVRS_TYPE_START: > - case ACPI_IVRS_TYPE_END: > - > - InfoTable = AcpiDmTableInfoIvrs4; > - break; > - > - /* 8-byte entries, type A */ > - > - case ACPI_IVRS_TYPE_ALIAS_SELECT: > - case ACPI_IVRS_TYPE_ALIAS_START: > - > - InfoTable = AcpiDmTableInfoIvrs8a; > - break; > - > - /* 8-byte entries, type B */ > - > - case ACPI_IVRS_TYPE_PAD8: > - case ACPI_IVRS_TYPE_EXT_SELECT: > - case ACPI_IVRS_TYPE_EXT_START: > - > - InfoTable = AcpiDmTableInfoIvrs8b; > - break; > - > - /* 8-byte entries, type C */ > - > - case ACPI_IVRS_TYPE_SPECIAL: > - > - InfoTable = AcpiDmTableInfoIvrs8c; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, > - "IVRS Device Entry"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - } > - } > - > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileLpit > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile LPIT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileLpit ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_DMTABLE_INFO *InfoTable; > - ACPI_LPIT_HEADER *LpitHeader; > - > - > - /* Note: Main table consists only of the standard ACPI table header */ > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - > - /* LPIT Subtable header */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoLpitHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - LpitHeader = ACPI_CAST_PTR (ACPI_LPIT_HEADER, Subtable->Buffer); > - > - switch (LpitHeader->Type) > - { > - case ACPI_LPIT_TYPE_NATIVE_CSTATE: > - > - InfoTable = AcpiDmTableInfoLpit0; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "LPIT"); > - return (AE_ERROR); > - } > - > - /* LPIT Subtable */ > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileMadt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile MADT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileMadt ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_SUBTABLE_HEADER *MadtHeader; > - ACPI_DMTABLE_INFO *InfoTable; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadt, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadtHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - MadtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > - > - switch (MadtHeader->Type) > - { > - case ACPI_MADT_TYPE_LOCAL_APIC: > - > - InfoTable = AcpiDmTableInfoMadt0; > - break; > - > - case ACPI_MADT_TYPE_IO_APIC: > - > - InfoTable = AcpiDmTableInfoMadt1; > - break; > - > - case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE: > - > - InfoTable = AcpiDmTableInfoMadt2; > - break; > - > - case ACPI_MADT_TYPE_NMI_SOURCE: > - > - InfoTable = AcpiDmTableInfoMadt3; > - break; > - > - case ACPI_MADT_TYPE_LOCAL_APIC_NMI: > - > - InfoTable = AcpiDmTableInfoMadt4; > - break; > - > - case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE: > - > - InfoTable = AcpiDmTableInfoMadt5; > - break; > - > - case ACPI_MADT_TYPE_IO_SAPIC: > - > - InfoTable = AcpiDmTableInfoMadt6; > - break; > - > - case ACPI_MADT_TYPE_LOCAL_SAPIC: > - > - InfoTable = AcpiDmTableInfoMadt7; > - break; > - > - case ACPI_MADT_TYPE_INTERRUPT_SOURCE: > - > - InfoTable = AcpiDmTableInfoMadt8; > - break; > - > - case ACPI_MADT_TYPE_LOCAL_X2APIC: > - > - InfoTable = AcpiDmTableInfoMadt9; > - break; > - > - case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI: > - > - InfoTable = AcpiDmTableInfoMadt10; > - break; > - > - case ACPI_MADT_TYPE_GENERIC_INTERRUPT: > - > - InfoTable = AcpiDmTableInfoMadt11; > - break; > - > - case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR: > - > - InfoTable = AcpiDmTableInfoMadt12; > - break; > - > - case ACPI_MADT_TYPE_GENERIC_MSI_FRAME: > - > - InfoTable = AcpiDmTableInfoMadt13; > - break; > - > - case ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR: > - > - InfoTable = AcpiDmTableInfoMadt14; > - break; > - > - case ACPI_MADT_TYPE_GENERIC_TRANSLATOR: > - > - InfoTable = AcpiDmTableInfoMadt15; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileMcfg > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile MCFG. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileMcfg ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoMcfg, AcpiDmTableInfoMcfg0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileMpst > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile MPST. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileMpst ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - ACPI_MPST_CHANNEL *MpstChannelInfo; > - ACPI_MPST_POWER_NODE *MpstPowerNode; > - ACPI_MPST_DATA_HDR *MpstDataHeader; > - UINT16 SubtableCount; > - UINT32 PowerStateCount; > - UINT32 ComponentCount; > - > - > - /* Main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer); > - SubtableCount = MpstChannelInfo->PowerNodeCount; > - > - while (*PFieldList && SubtableCount) > - { > - /* Subtable: Memory Power Node(s) */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer); > - PowerStateCount = MpstPowerNode->NumPowerStates; > - ComponentCount = MpstPowerNode->NumPhysicalComponents; > - > - ParentTable = DtPeekSubtable (); > - > - /* Sub-subtables - Memory Power State Structure(s) */ > - > - while (*PFieldList && PowerStateCount) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0A, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - PowerStateCount--; > - } > - > - /* Sub-subtables - Physical Component ID Structure(s) */ > - > - while (*PFieldList && ComponentCount) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0B, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - ComponentCount--; > - } > - > - SubtableCount--; > - DtPopSubtable (); > - } > - > - /* Subtable: Count of Memory Power State Characteristic structures */ > - > - DtPopSubtable (); > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst1, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - MpstDataHeader = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable->Buffer); > - SubtableCount = MpstDataHeader->CharacteristicsCount; > - > - ParentTable = DtPeekSubtable (); > - > - /* Subtable: Memory Power State Characteristics structure(s) */ > - > - while (*PFieldList && SubtableCount) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst2, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - SubtableCount--; > - } > - > - DtPopSubtable (); > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileMsct > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile MSCT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileMsct ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoMsct, AcpiDmTableInfoMsct0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileMtmr > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile MTMR. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileMtmr ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoMtmr, AcpiDmTableInfoMtmr0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileNfit > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile NFIT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileNfit ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_NFIT_HEADER *NfitHeader; > - ACPI_DMTABLE_INFO *InfoTable; > - UINT32 Count; > - ACPI_NFIT_INTERLEAVE *Interleave = NULL; > - ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; > - > - /* Main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - /* Subtables */ > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfitHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer); > - > - switch (NfitHeader->Type) > - { > - case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: > - > - InfoTable = AcpiDmTableInfoNfit0; > - break; > - > - case ACPI_NFIT_TYPE_MEMORY_MAP: > - > - InfoTable = AcpiDmTableInfoNfit1; > - break; > - > - case ACPI_NFIT_TYPE_INTERLEAVE: > - > - Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable->Buffer); > - InfoTable = AcpiDmTableInfoNfit2; > - break; > - > - case ACPI_NFIT_TYPE_SMBIOS: > - > - InfoTable = AcpiDmTableInfoNfit3; > - break; > - > - case ACPI_NFIT_TYPE_CONTROL_REGION: > - > - InfoTable = AcpiDmTableInfoNfit4; > - break; > - > - case ACPI_NFIT_TYPE_DATA_REGION: > - > - InfoTable = AcpiDmTableInfoNfit5; > - break; > - > - case ACPI_NFIT_TYPE_FLUSH_ADDRESS: > - > - Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable->Buffer); > - InfoTable = AcpiDmTableInfoNfit6; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "NFIT"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - > - switch (NfitHeader->Type) > - { > - case ACPI_NFIT_TYPE_INTERLEAVE: > - > - Count = 0; > - DtPushSubtable (Subtable); > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit2a, > - &Subtable, FALSE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - DtPopSubtable (); > - break; > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - Count++; > - } > - > - Interleave->LineCount = Count; > - DtPopSubtable (); > - break; > - > - case ACPI_NFIT_TYPE_SMBIOS: > - > - if (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit3a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (Subtable) > - { > - DtInsertSubtable (ParentTable, Subtable); > - } > - } > - break; > - > - case ACPI_NFIT_TYPE_FLUSH_ADDRESS: > - > - Count = 0; > - DtPushSubtable (Subtable); > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit6a, > - &Subtable, FALSE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - if (!Subtable) > - { > - DtPopSubtable (); > - break; > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - Count++; > - } > - > - Hint->HintCount = (UINT16) Count; > - DtPopSubtable (); > - break; > - > - default: > - break; > - } > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompilePcct > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile PCCT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompilePcct ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_SUBTABLE_HEADER *PcctHeader; > - ACPI_DMTABLE_INFO *InfoTable; > - > - > - /* Main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcct, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* Subtables */ > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcctHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - PcctHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > - > - switch (PcctHeader->Type) > - { > - case ACPI_PCCT_TYPE_GENERIC_SUBSPACE: > - > - InfoTable = AcpiDmTableInfoPcct0; > - break; > - > - case ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE: > - > - InfoTable = AcpiDmTableInfoPcct1; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PCCT"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompilePmtt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile PMTT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompilePmtt ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_PMTT_HEADER *PmttHeader; > - ACPI_PMTT_CONTROLLER *PmttController; > - UINT16 DomainCount; > - UINT8 PrevType = ACPI_PMTT_TYPE_SOCKET; > - > - > - /* Main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - PmttHeader = ACPI_CAST_PTR (ACPI_PMTT_HEADER, Subtable->Buffer); > - while (PrevType >= PmttHeader->Type) > - { > - DtPopSubtable (); > - > - if (PrevType == ACPI_PMTT_TYPE_SOCKET) > - { > - break; > - } > - PrevType--; > - } > - PrevType = PmttHeader->Type; > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - switch (PmttHeader->Type) > - { > - case ACPI_PMTT_TYPE_SOCKET: > - > - /* Subtable: Socket Structure */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt0, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - break; > - > - case ACPI_PMTT_TYPE_CONTROLLER: > - > - /* Subtable: Memory Controller Structure */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER, > - (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER))); > - DomainCount = PmttController->DomainCount; > - > - while (DomainCount) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1a, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtInsertSubtable (ParentTable, Subtable); > - DomainCount--; > - } > - break; > - > - case ACPI_PMTT_TYPE_DIMM: > - > - /* Subtable: Physical Component Structure */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PMTT"); > - return (AE_ERROR); > - } > - } > - > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileRsdt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile RSDT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileRsdt ( > - void **List) > -{ > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD *FieldList = *(DT_FIELD **) List; > - UINT32 Address; > - > - > - ParentTable = DtPeekSubtable (); > - > - while (FieldList) > - { > - DtCompileInteger ((UINT8 *) &Address, FieldList, 4, DT_NON_ZERO); > - > - DtCreateSubtable ((UINT8 *) &Address, 4, &Subtable); > - DtInsertSubtable (ParentTable, Subtable); > - FieldList = FieldList->Next; > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileS3pt > - * > - * PARAMETERS: PFieldList - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile S3PT (Pointed to by FPDT) > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileS3pt ( > - DT_FIELD **PFieldList) > -{ > - ACPI_STATUS Status; > - ACPI_S3PT_HEADER *S3ptHeader; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - ACPI_DMTABLE_INFO *InfoTable; > - DT_FIELD *SubtableStart; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt, > - &Gbl_RootTable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DtPushSubtable (Gbl_RootTable); > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3ptHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - S3ptHeader = ACPI_CAST_PTR (ACPI_S3PT_HEADER, Subtable->Buffer); > - > - switch (S3ptHeader->Type) > - { > - case ACPI_S3PT_TYPE_RESUME: > - > - InfoTable = AcpiDmTableInfoS3pt0; > - break; > - > - case ACPI_S3PT_TYPE_SUSPEND: > - > - InfoTable = AcpiDmTableInfoS3pt1; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "S3PT"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileSlic > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile SLIC. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileSlic ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - > - > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlic, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileSlit > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile SLIT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileSlit ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *FieldList; > - UINT32 Localities; > - UINT8 *LocalityBuffer; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlit, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); > - LocalityBuffer = UtLocalCalloc (Localities); > - > - /* Compile each locality buffer */ > - > - FieldList = *PFieldList; > - while (FieldList) > - { > - DtCompileBuffer (LocalityBuffer, > - FieldList->Value, FieldList, Localities); > - > - DtCreateSubtable (LocalityBuffer, Localities, &Subtable); > - DtInsertSubtable (ParentTable, Subtable); > - FieldList = FieldList->Next; > - } > - > - ACPI_FREE (LocalityBuffer); > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileSrat > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile SRAT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileSrat ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_FIELD *SubtableStart; > - ACPI_SUBTABLE_HEADER *SratHeader; > - ACPI_DMTABLE_INFO *InfoTable; > - > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSrat, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - while (*PFieldList) > - { > - SubtableStart = *PFieldList; > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSratHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPushSubtable (Subtable); > - > - SratHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > - > - switch (SratHeader->Type) > - { > - case ACPI_SRAT_TYPE_CPU_AFFINITY: > - > - InfoTable = AcpiDmTableInfoSrat0; > - break; > - > - case ACPI_SRAT_TYPE_MEMORY_AFFINITY: > - > - InfoTable = AcpiDmTableInfoSrat1; > - break; > - > - case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY: > - > - InfoTable = AcpiDmTableInfoSrat2; > - break; > - > - case ACPI_SRAT_TYPE_GICC_AFFINITY: > - > - InfoTable = AcpiDmTableInfoSrat3; > - break; > - > - default: > - > - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT"); > - return (AE_ERROR); > - } > - > - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - DtPopSubtable (); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileStao > - * > - * PARAMETERS: PFieldList - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile STAO. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileStao ( > - void **List) > -{ > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - ACPI_STATUS Status; > - > - > - /* Compile the main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoStao, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* Compile each ASCII namestring as a subtable */ > - > - while (*PFieldList) > - { > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoStaoStr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileTcpa > - * > - * PARAMETERS: PFieldList - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile TCPA. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileTcpa ( > - void **List) > -{ > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_SUBTABLE *Subtable; > - ACPI_TABLE_TCPA_HDR *TcpaHeader; > - DT_SUBTABLE *ParentTable; > - ACPI_STATUS Status; > - > - > - /* Compile the main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaHdr, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Examine the PlatformClass field to determine the table type. > - * Either a client or server table. Only one. > - */ > - TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer); > - > - switch (TcpaHeader->PlatformClass) > - { > - case ACPI_TCPA_CLIENT_TABLE: > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaClient, > - &Subtable, TRUE); > - break; > - > - case ACPI_TCPA_SERVER_TABLE: > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaServer, > - &Subtable, TRUE); > - break; > - > - default: > - > - AcpiOsPrintf ("\n**** Unknown TCPA Platform Class 0x%X\n", > - TcpaHeader->PlatformClass); > - Status = AE_ERROR; > - break; > - } > - > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtGetGenericTableInfo > - * > - * PARAMETERS: Name - Generic type name > - * > - * RETURN: Info entry > - * > - * DESCRIPTION: Obtain table info for a generic name entry > - * > - *****************************************************************************/ > - > -ACPI_DMTABLE_INFO * > -DtGetGenericTableInfo ( > - char *Name) > -{ > - ACPI_DMTABLE_INFO *Info; > - UINT32 i; > - > - > - if (!Name) > - { > - return (NULL); > - } > - > - /* Search info table for name match */ > - > - for (i = 0; ; i++) > - { > - Info = AcpiDmTableInfoGeneric[i]; > - if (Info->Opcode == ACPI_DMT_EXIT) > - { > - Info = NULL; > - break; > - } > - > - /* Use caseless compare for generic keywords */ > - > - if (!AcpiUtStricmp (Name, Info->Name)) > - { > - break; > - } > - } > - > - return (Info); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileUefi > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile UEFI. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileUefi ( > - void **List) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - UINT16 *DataOffset; > - > - > - /* Compile the predefined portion of the UEFI table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoUefi, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - DataOffset = (UINT16 *) (Subtable->Buffer + 16); > - *DataOffset = sizeof (ACPI_TABLE_UEFI); > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* > - * Compile the "generic" portion of the UEFI table. This > - * part of the table is not predefined and any of the generic > - * operators may be used. > - */ > - > - DtCompileGeneric ((void **) PFieldList, NULL, NULL); > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileVrtc > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile VRTC. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileVrtc ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoVrtc, AcpiDmTableInfoVrtc0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileWdat > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile WDAT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileWdat ( > - void **List) > -{ > - ACPI_STATUS Status; > - > - > - Status = DtCompileTwoSubtables (List, > - AcpiDmTableInfoWdat, AcpiDmTableInfoWdat0); > - return (Status); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileWpbt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile WPBT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileWpbt ( > - void **List) > -{ > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - ACPI_TABLE_WPBT *Table; > - ACPI_STATUS Status; > - UINT16 Length; > - > - > - /* Compile the main table */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - > - /* Compile the argument list subtable */ > - > - Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt0, > - &Subtable, TRUE); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - /* Extract the length of the Arguments buffer, insert into main table */ > - > - Length = (UINT16) Subtable->TotalLength; > - Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); > - Table->ArgumentsLength = Length; > - > - ParentTable = DtPeekSubtable (); > - DtInsertSubtable (ParentTable, Subtable); > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileXsdt > - * > - * PARAMETERS: List - Current field list pointer > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile XSDT. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileXsdt ( > - void **List) > -{ > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD *FieldList = *(DT_FIELD **) List; > - UINT64 Address; > - > - > - ParentTable = DtPeekSubtable (); > - > - while (FieldList) > - { > - DtCompileInteger ((UINT8 *) &Address, FieldList, 8, DT_NON_ZERO); > - > - DtCreateSubtable ((UINT8 *) &Address, 8, &Subtable); > - DtInsertSubtable (ParentTable, Subtable); > - FieldList = FieldList->Next; > - } > - > - return (AE_OK); > -} > - > - > -/****************************************************************************** > - * > - * FUNCTION: DtCompileGeneric > - * > - * PARAMETERS: List - Current field list pointer > - * Name - Field name to end generic compiling > - * Length - Compiled table length to return > - * > - * RETURN: Status > - * > - * DESCRIPTION: Compile generic unknown table. > - * > - *****************************************************************************/ > - > -ACPI_STATUS > -DtCompileGeneric ( > - void **List, > - char *Name, > - UINT32 *Length) > -{ > - ACPI_STATUS Status; > - DT_SUBTABLE *Subtable; > - DT_SUBTABLE *ParentTable; > - DT_FIELD **PFieldList = (DT_FIELD **) List; > - ACPI_DMTABLE_INFO *Info; > - > - > - ParentTable = DtPeekSubtable (); > - > - /* > - * Compile the "generic" portion of the table. This > - * part of the table is not predefined and any of the generic > - * operators may be used. > - */ > - > - /* Find any and all labels in the entire generic portion */ > - > - DtDetectAllLabels (*PFieldList); > - > - /* Now we can actually compile the parse tree */ > - > - if (Length && *Length) > - { > - *Length = 0; > - } > - while (*PFieldList) > - { > - if (Name && !strcmp ((*PFieldList)->Name, Name)) > - { > - break; > - } > - Info = DtGetGenericTableInfo ((*PFieldList)->Name); > - if (!Info) > - { > - sprintf (MsgBuffer, "Generic data type \"%s\" not found", > - (*PFieldList)->Name); > - DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, > - (*PFieldList), MsgBuffer); > - > - *PFieldList = (*PFieldList)->Next; > - continue; > - } > - > - Status = DtCompileTable (PFieldList, Info, > - &Subtable, TRUE); > - if (ACPI_SUCCESS (Status)) > - { > - DtInsertSubtable (ParentTable, Subtable); > - if (Length) > - { > - *Length += Subtable->Length; > - } > - } > - else > - { > - *PFieldList = (*PFieldList)->Next; > - > - if (Status == AE_NOT_FOUND) > - { > - sprintf (MsgBuffer, "Generic data type \"%s\" not found", > - (*PFieldList)->Name); > - DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, > - (*PFieldList), MsgBuffer); > - } > - } > - } > + DtCreateSubtable (ReservedBuffer, ReservedSize, &Subtable); > > + ACPI_FREE (ReservedBuffer); > + DtInsertSubtable (Gbl_RootTable, Subtable); > return (AE_OK); > } > diff --git a/src/acpica/source/compiler/dttable1.c b/src/acpica/source/compiler/dttable1.c > new file mode 100644 > index 0000000..3db4b93 > --- /dev/null > +++ b/src/acpica/source/compiler/dttable1.c > @@ -0,0 +1,1743 @@ > +/****************************************************************************** > + * > + * Module Name: dttable1.c - handling for specific ACPI tables > + * > + *****************************************************************************/ > + > +/****************************************************************************** > + * > + * 1. Copyright Notice > + * > + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. > + * All rights reserved. > + * > + * 2. License > + * > + * 2.1. This is your license from Intel Corp. under its intellectual property > + * rights. You may have additional license terms from the party that provided > + * you this software, covering your right to use that party's intellectual > + * property rights. > + * > + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a > + * copy of the source code appearing in this file ("Covered Code") an > + * irrevocable, perpetual, worldwide license under Intel's copyrights in the > + * base code distributed originally by Intel ("Original Intel Code") to copy, > + * make derivatives, distribute, use and display any portion of the Covered > + * Code in any form, with the right to sublicense such rights; and > + * > + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent > + * license (with the right to sublicense), under only those claims of Intel > + * patents that are infringed by the Original Intel Code, to make, use, sell, > + * offer to sell, and import the Covered Code and derivative works thereof > + * solely to the minimum extent necessary to exercise the above copyright > + * license, and in no event shall the patent license extend to any additions > + * to or modifications of the Original Intel Code. No other license or right > + * is granted directly or by implication, estoppel or otherwise; > + * > + * The above copyright and patent license is granted only if the following > + * conditions are met: > + * > + * 3. Conditions > + * > + * 3.1. Redistribution of Source with Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification with rights to further distribute source must include > + * the above Copyright Notice, the above License, this list of Conditions, > + * and the following Disclaimer and Export Compliance provision. In addition, > + * Licensee must cause all Covered Code to which Licensee contributes to > + * contain a file documenting the changes Licensee made to create that Covered > + * Code and the date of any change. Licensee must include in that file the > + * documentation of any changes made by any predecessor Licensee. Licensee > + * must include a prominent statement that the modification is derived, > + * directly or indirectly, from Original Intel Code. > + * > + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification without rights to further distribute source must > + * include the following Disclaimer and Export Compliance provision in the > + * documentation and/or other materials provided with distribution. In > + * addition, Licensee may not authorize further sublicense of source of any > + * portion of the Covered Code, and must include terms to the effect that the > + * license from Licensee to its licensee is limited to the intellectual > + * property embodied in the software Licensee provides to its licensee, and > + * not to intellectual property embodied in modifications its licensee may > + * make. > + * > + * 3.3. Redistribution of Executable. Redistribution in executable form of any > + * substantial portion of the Covered Code or modification must reproduce the > + * above Copyright Notice, and the following Disclaimer and Export Compliance > + * provision in the documentation and/or other materials provided with the > + * distribution. > + * > + * 3.4. Intel retains all right, title, and interest in and to the Original > + * Intel Code. > + * > + * 3.5. Neither the name Intel nor any other trademark owned or controlled by > + * Intel shall be used in advertising or otherwise to promote the sale, use or > + * other dealings in products derived from or relating to the Covered Code > + * without prior written authorization from Intel. > + * > + * 4. Disclaimer and Export Compliance > + * > + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED > + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE > + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, > + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY > + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY > + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A > + * PARTICULAR PURPOSE. > + * > + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES > + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR > + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, > + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY > + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL > + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS > + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY > + * LIMITED REMEDY. > + * > + * 4.3. Licensee shall not export, either directly or indirectly, any of this > + * software or system incorporating such software without first obtaining any > + * required license or other approval from the U. S. Department of Commerce or > + * any other agency or department of the United States Government. In the > + * event Licensee exports any such software from the United States or > + * re-exports any such software from a foreign destination, Licensee shall > + * ensure that the distribution and export/re-export of the software is in > + * compliance with all laws, regulations, orders, or other restrictions of the > + * U.S. Export Administration Regulations. Licensee agrees that neither it nor > + * any of its subsidiaries will export/re-export any technical data, process, > + * software, or service, directly or indirectly, to any country for which the > + * United States government or any agency thereof requires an export license, > + * other governmental approval, or letter of assurance, without first obtaining > + * such license, approval or letter. > + * > + *****************************************************************************/ > + > +/* Compile all complex data tables, signatures starting with A-I */ > + > +#include "aslcompiler.h" > +#include "dtcompiler.h" > + > +#define _COMPONENT DT_COMPILER > + ACPI_MODULE_NAME ("dttable1") > + > + > +static ACPI_DMTABLE_INFO TableInfoAsfAddress[] = > +{ > + {ACPI_DMT_BUFFER, 0, "Addresses", 0}, > + {ACPI_DMT_EXIT, 0, NULL, 0} > +}; > + > +static ACPI_DMTABLE_INFO TableInfoDmarPciPath[] = > +{ > + {ACPI_DMT_PCI_PATH, 0, "PCI Path", 0}, > + {ACPI_DMT_EXIT, 0, NULL, 0} > +}; > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileAsf > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile ASF!. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileAsf ( > + void **List) > +{ > + ACPI_ASF_INFO *AsfTable; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + ACPI_DMTABLE_INFO *InfoTable; > + ACPI_DMTABLE_INFO *DataInfoTable = NULL; > + UINT32 DataCount = 0; > + ACPI_STATUS Status; > + UINT32 i; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsfHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + AsfTable = ACPI_CAST_PTR (ACPI_ASF_INFO, Subtable->Buffer); > + > + switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ > + { > + case ACPI_ASF_TYPE_INFO: > + > + InfoTable = AcpiDmTableInfoAsf0; > + break; > + > + case ACPI_ASF_TYPE_ALERT: > + > + InfoTable = AcpiDmTableInfoAsf1; > + break; > + > + case ACPI_ASF_TYPE_CONTROL: > + > + InfoTable = AcpiDmTableInfoAsf2; > + break; > + > + case ACPI_ASF_TYPE_BOOT: > + > + InfoTable = AcpiDmTableInfoAsf3; > + break; > + > + case ACPI_ASF_TYPE_ADDRESS: > + > + InfoTable = AcpiDmTableInfoAsf4; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ > + { > + case ACPI_ASF_TYPE_INFO: > + > + DataInfoTable = NULL; > + break; > + > + case ACPI_ASF_TYPE_ALERT: > + > + DataInfoTable = AcpiDmTableInfoAsf1a; > + DataCount = ACPI_CAST_PTR (ACPI_ASF_ALERT, > + ACPI_SUB_PTR (UINT8, Subtable->Buffer, > + sizeof (ACPI_ASF_HEADER)))->Alerts; > + break; > + > + case ACPI_ASF_TYPE_CONTROL: > + > + DataInfoTable = AcpiDmTableInfoAsf2a; > + DataCount = ACPI_CAST_PTR (ACPI_ASF_REMOTE, > + ACPI_SUB_PTR (UINT8, Subtable->Buffer, > + sizeof (ACPI_ASF_HEADER)))->Controls; > + break; > + > + case ACPI_ASF_TYPE_BOOT: > + > + DataInfoTable = NULL; > + break; > + > + case ACPI_ASF_TYPE_ADDRESS: > + > + DataInfoTable = TableInfoAsfAddress; > + DataCount = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, > + ACPI_SUB_PTR (UINT8, Subtable->Buffer, > + sizeof (ACPI_ASF_HEADER)))->Devices; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); > + return (AE_ERROR); > + } > + > + if (DataInfoTable) > + { > + switch (AsfTable->Header.Type & 0x7F) > + { > + case ACPI_ASF_TYPE_ADDRESS: > + > + while (DataCount > 0) > + { > + Status = DtCompileTable (PFieldList, DataInfoTable, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + DataCount = DataCount - Subtable->Length; > + } > + break; > + > + default: > + > + for (i = 0; i < DataCount; i++) > + { > + Status = DtCompileTable (PFieldList, DataInfoTable, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + } > + break; > + } > + } > + > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileCpep > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile CPEP. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileCpep ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoCpep, AcpiDmTableInfoCpep0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileCsrt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile CSRT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileCsrt ( > + void **List) > +{ > + ACPI_STATUS Status = AE_OK; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + UINT32 DescriptorCount; > + UINT32 GroupLength; > + > + > + /* Subtables (Resource Groups) */ > + > + ParentTable = DtPeekSubtable (); > + while (*PFieldList) > + { > + /* Resource group subtable */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt0, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* Compute the number of resource descriptors */ > + > + GroupLength = > + (ACPI_CAST_PTR (ACPI_CSRT_GROUP, > + Subtable->Buffer))->Length - > + (ACPI_CAST_PTR (ACPI_CSRT_GROUP, > + Subtable->Buffer))->SharedInfoLength - > + sizeof (ACPI_CSRT_GROUP); > + > + DescriptorCount = (GroupLength / > + sizeof (ACPI_CSRT_DESCRIPTOR)); > + > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + ParentTable = DtPeekSubtable (); > + > + /* Shared info subtable (One per resource group) */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt1, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + > + /* Sub-Subtables (Resource Descriptors) */ > + > + while (*PFieldList && DescriptorCount) > + { > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + > + DtPushSubtable (Subtable); > + ParentTable = DtPeekSubtable (); > + if (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + if (Subtable) > + { > + DtInsertSubtable (ParentTable, Subtable); > + } > + } > + > + DtPopSubtable (); > + ParentTable = DtPeekSubtable (); > + DescriptorCount--; > + } > + > + DtPopSubtable (); > + ParentTable = DtPeekSubtable (); > + } > + > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileDbg2 > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile DBG2. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileDbg2 ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + UINT32 SubtableCount; > + ACPI_DBG2_HEADER *Dbg2Header; > + ACPI_DBG2_DEVICE *DeviceInfo; > + UINT16 CurrentOffset; > + UINT32 i; > + > + > + /* Main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* Main table fields */ > + > + Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer); > + Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF ( > + ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header); > + > + SubtableCount = Dbg2Header->InfoCount; > + DtPushSubtable (Subtable); > + > + /* Process all Device Information subtables (Count = InfoCount) */ > + > + while (*PFieldList && SubtableCount) > + { > + /* Subtable: Debug Device Information */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Device, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DeviceInfo = ACPI_CAST_PTR (ACPI_DBG2_DEVICE, Subtable->Buffer); > + CurrentOffset = (UINT16) sizeof (ACPI_DBG2_DEVICE); > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + ParentTable = DtPeekSubtable (); > + > + /* BaseAddressRegister GAS array (Required, size is RegisterCount) */ > + > + DeviceInfo->BaseAddressOffset = CurrentOffset; > + for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + CurrentOffset += (UINT16) sizeof (ACPI_GENERIC_ADDRESS); > + DtInsertSubtable (ParentTable, Subtable); > + } > + > + /* AddressSize array (Required, size = RegisterCount) */ > + > + DeviceInfo->AddressSizeOffset = CurrentOffset; > + for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + CurrentOffset += (UINT16) sizeof (UINT32); > + DtInsertSubtable (ParentTable, Subtable); > + } > + > + /* NamespaceString device identifier (Required, size = NamePathLength) */ > + > + DeviceInfo->NamepathOffset = CurrentOffset; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* Update the device info header */ > + > + DeviceInfo->NamepathLength = (UINT16) Subtable->Length; > + CurrentOffset += (UINT16) DeviceInfo->NamepathLength; > + DtInsertSubtable (ParentTable, Subtable); > + > + /* OemData - Variable-length data (Optional, size = OemDataLength) */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2OemData, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* Update the device info header (zeros if no OEM data present) */ > + > + DeviceInfo->OemDataOffset = 0; > + DeviceInfo->OemDataLength = 0; > + > + /* Optional subtable (OemData) */ > + > + if (Subtable && Subtable->Length) > + { > + DeviceInfo->OemDataOffset = CurrentOffset; > + DeviceInfo->OemDataLength = (UINT16) Subtable->Length; > + > + DtInsertSubtable (ParentTable, Subtable); > + } > + > + SubtableCount--; > + DtPopSubtable (); /* Get next Device Information subtable */ > + } > + > + DtPopSubtable (); > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileDmar > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile DMAR. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileDmar ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_DMTABLE_INFO *InfoTable; > + ACPI_DMAR_HEADER *DmarHeader; > + ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope; > + UINT32 DeviceScopeLength; > + UINT32 PciPathLength; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + while (*PFieldList) > + { > + /* DMAR Header */ > + > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer); > + > + switch (DmarHeader->Type) > + { > + case ACPI_DMAR_TYPE_HARDWARE_UNIT: > + > + InfoTable = AcpiDmTableInfoDmar0; > + break; > + > + case ACPI_DMAR_TYPE_RESERVED_MEMORY: > + > + InfoTable = AcpiDmTableInfoDmar1; > + break; > + > + case ACPI_DMAR_TYPE_ROOT_ATS: > + > + InfoTable = AcpiDmTableInfoDmar2; > + break; > + > + case ACPI_DMAR_TYPE_HARDWARE_AFFINITY: > + > + InfoTable = AcpiDmTableInfoDmar3; > + break; > + > + case ACPI_DMAR_TYPE_NAMESPACE: > + > + InfoTable = AcpiDmTableInfoDmar4; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR"); > + return (AE_ERROR); > + } > + > + /* DMAR Subtable */ > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Optional Device Scope subtables > + */ > + if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || > + (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE)) > + { > + /* These types do not support device scopes */ > + > + DtPopSubtable (); > + continue; > + } > + > + DtPushSubtable (Subtable); > + DeviceScopeLength = DmarHeader->Length - Subtable->Length - > + ParentTable->Length; > + while (DeviceScopeLength) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope, > + &Subtable, FALSE); > + if (Status == AE_NOT_FOUND) > + { > + break; > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + DmarDeviceScope = ACPI_CAST_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable->Buffer); > + > + /* Optional PCI Paths */ > + > + PciPathLength = DmarDeviceScope->Length - Subtable->Length; > + while (PciPathLength) > + { > + Status = DtCompileTable (PFieldList, TableInfoDmarPciPath, > + &Subtable, FALSE); > + if (Status == AE_NOT_FOUND) > + { > + DtPopSubtable (); > + break; > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + PciPathLength -= Subtable->Length; > + } > + > + DtPopSubtable (); > + DeviceScopeLength -= DmarDeviceScope->Length; > + } > + > + DtPopSubtable (); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileDrtm > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile DRTM. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileDrtm ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + UINT32 Count; > + /* ACPI_TABLE_DRTM *Drtm; */ > + ACPI_DRTM_VTABLE_LIST *DrtmVtl; > + ACPI_DRTM_RESOURCE_LIST *DrtmRl; > + /* ACPI_DRTM_DPS_ID *DrtmDps; */ > + > + > + ParentTable = DtPeekSubtable (); > + > + /* Compile DRTM header */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care > + * should be taken to avoid accessing ACPI_TABLE_HADER fields. > + */ > +#if 0 > + Drtm = ACPI_SUB_PTR (ACPI_TABLE_DRTM, > + Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); > +#endif > + /* Compile VTL */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + DrtmVtl = ACPI_CAST_PTR (ACPI_DRTM_VTABLE_LIST, Subtable->Buffer); > + > + DtPushSubtable (Subtable); > + ParentTable = DtPeekSubtable (); > + Count = 0; > + > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + if (!Subtable) > + { > + break; > + } > + DtInsertSubtable (ParentTable, Subtable); > + Count++; > + } > + > + DrtmVtl->ValidatedTableCount = Count; > + DtPopSubtable (); > + ParentTable = DtPeekSubtable (); > + > + /* Compile RL */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + DrtmRl = ACPI_CAST_PTR (ACPI_DRTM_RESOURCE_LIST, Subtable->Buffer); > + > + DtPushSubtable (Subtable); > + ParentTable = DtPeekSubtable (); > + Count = 0; > + > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (!Subtable) > + { > + break; > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + Count++; > + } > + > + DrtmRl->ResourceCount = Count; > + DtPopSubtable (); > + ParentTable = DtPeekSubtable (); > + > + /* Compile DPS */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm2, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + DtInsertSubtable (ParentTable, Subtable); > + /* DrtmDps = ACPI_CAST_PTR (ACPI_DRTM_DPS_ID, Subtable->Buffer);*/ > + > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileEinj > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile EINJ. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileEinj ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoEinj, AcpiDmTableInfoEinj0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileErst > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile ERST. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileErst ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoErst, AcpiDmTableInfoEinj0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileGtdt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile GTDT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileGtdt ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_SUBTABLE_HEADER *GtdtHeader; > + ACPI_DMTABLE_INFO *InfoTable; > + UINT32 GtCount; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdtHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + GtdtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > + > + switch (GtdtHeader->Type) > + { > + case ACPI_GTDT_TYPE_TIMER_BLOCK: > + > + InfoTable = AcpiDmTableInfoGtdt0; > + break; > + > + case ACPI_GTDT_TYPE_WATCHDOG: > + > + InfoTable = AcpiDmTableInfoGtdt1; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "GTDT"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Additional GT block subtable data > + */ > + > + switch (GtdtHeader->Type) > + { > + case ACPI_GTDT_TYPE_TIMER_BLOCK: > + > + DtPushSubtable (Subtable); > + ParentTable = DtPeekSubtable (); > + > + GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, > + Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount; > + > + while (GtCount) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt0a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + GtCount--; > + } > + > + DtPopSubtable (); > + break; > + > + default: > + > + break; > + } > + > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileFpdt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile FPDT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileFpdt ( > + void **List) > +{ > + ACPI_STATUS Status; > + ACPI_FPDT_HEADER *FpdtHeader; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + ACPI_DMTABLE_INFO *InfoTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFpdtHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer); > + > + switch (FpdtHeader->Type) > + { > + case ACPI_FPDT_TYPE_BOOT: > + > + InfoTable = AcpiDmTableInfoFpdt0; > + break; > + > + case ACPI_FPDT_TYPE_S3PERF: > + > + InfoTable = AcpiDmTableInfoFpdt1; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "FPDT"); > + return (AE_ERROR); > + break; > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileHest > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile HEST. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileHest ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_DMTABLE_INFO *InfoTable; > + UINT16 Type; > + UINT32 BankCount; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoHest, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + while (*PFieldList) > + { > + /* Get subtable type */ > + > + SubtableStart = *PFieldList; > + DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0); > + > + switch (Type) > + { > + case ACPI_HEST_TYPE_IA32_CHECK: > + > + InfoTable = AcpiDmTableInfoHest0; > + break; > + > + case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: > + > + InfoTable = AcpiDmTableInfoHest1; > + break; > + > + case ACPI_HEST_TYPE_IA32_NMI: > + > + InfoTable = AcpiDmTableInfoHest2; > + break; > + > + case ACPI_HEST_TYPE_AER_ROOT_PORT: > + > + InfoTable = AcpiDmTableInfoHest6; > + break; > + > + case ACPI_HEST_TYPE_AER_ENDPOINT: > + > + InfoTable = AcpiDmTableInfoHest7; > + break; > + > + case ACPI_HEST_TYPE_AER_BRIDGE: > + > + InfoTable = AcpiDmTableInfoHest8; > + break; > + > + case ACPI_HEST_TYPE_GENERIC_ERROR: > + > + InfoTable = AcpiDmTableInfoHest9; > + break; > + > + default: > + > + /* Cannot continue on unknown type */ > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "HEST"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Additional subtable data - IA32 Error Bank(s) > + */ > + BankCount = 0; > + switch (Type) > + { > + case ACPI_HEST_TYPE_IA32_CHECK: > + > + BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, > + Subtable->Buffer))->NumHardwareBanks; > + break; > + > + case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: > + > + BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, > + Subtable->Buffer))->NumHardwareBanks; > + break; > + > + default: > + > + break; > + } > + > + while (BankCount) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoHestBank, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + BankCount--; > + } > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileIort > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile IORT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileIort ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_TABLE_IORT *Iort; > + ACPI_IORT_NODE *IortNode; > + ACPI_IORT_ITS_GROUP *IortItsGroup; > + ACPI_IORT_SMMU *IortSmmu; > + UINT32 NodeNumber; > + UINT32 NodeLength; > + UINT32 IdMappingNumber; > + UINT32 ItsNumber; > + UINT32 ContextIrptNumber; > + UINT32 PmuIrptNumber; > + UINT32 PaddingLength; > + > + > + ParentTable = DtPeekSubtable (); > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care > + * should be taken to avoid accessing ACPI_TABLE_HADER fields. > + */ > + Iort = ACPI_SUB_PTR (ACPI_TABLE_IORT, > + Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); > + > + /* > + * OptionalPadding - Variable-length data > + * (Optional, size = OffsetToNodes - sizeof (ACPI_TABLE_IORT)) > + * Optionally allows the generic data types to be used for filling > + * this field. > + */ > + Iort->NodeOffset = sizeof (ACPI_TABLE_IORT); > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + if (Subtable) > + { > + DtInsertSubtable (ParentTable, Subtable); > + Iort->NodeOffset += Subtable->Length; > + } > + else > + { > + Status = DtCompileGeneric (ACPI_CAST_PTR (void *, PFieldList), > + AcpiDmTableInfoIortHdr[0].Name, &PaddingLength); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + Iort->NodeOffset += PaddingLength; > + } > + > + NodeNumber = 0; > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + IortNode = ACPI_CAST_PTR (ACPI_IORT_NODE, Subtable->Buffer); > + NodeLength = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); > + > + DtPushSubtable (Subtable); > + ParentTable = DtPeekSubtable (); > + > + switch (IortNode->Type) > + { > + case ACPI_IORT_NODE_ITS_GROUP: > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + IortItsGroup = ACPI_CAST_PTR (ACPI_IORT_ITS_GROUP, Subtable->Buffer); > + NodeLength += Subtable->Length; > + > + ItsNumber = 0; > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + if (!Subtable) > + { > + break; > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + ItsNumber++; > + } > + > + IortItsGroup->ItsCount = ItsNumber; > + break; > + > + case ACPI_IORT_NODE_NAMED_COMPONENT: > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + > + /* > + * Padding - Variable-length data > + * Optionally allows the offset of the ID mappings to be used > + * for filling this field. > + */ > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (Subtable) > + { > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + } > + else > + { > + if (NodeLength > IortNode->MappingOffset) > + { > + return (AE_BAD_DATA); > + } > + > + if (NodeLength < IortNode->MappingOffset) > + { > + Status = DtCompilePadding ( > + IortNode->MappingOffset - NodeLength, > + &Subtable); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength = IortNode->MappingOffset; > + } > + } > + break; > + > + case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort2, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + break; > + > + case ACPI_IORT_NODE_SMMU: > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + IortSmmu = ACPI_CAST_PTR (ACPI_IORT_SMMU, Subtable->Buffer); > + NodeLength += Subtable->Length; > + > + /* Compile global interrupt array */ > + > + IortSmmu->GlobalInterruptOffset = NodeLength; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + > + /* Compile context interrupt array */ > + > + ContextIrptNumber = 0; > + IortSmmu->ContextInterruptOffset = NodeLength; > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (!Subtable) > + { > + break; > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + ContextIrptNumber++; > + } > + > + IortSmmu->ContextInterruptCount = ContextIrptNumber; > + > + /* Compile PMU interrupt array */ > + > + PmuIrptNumber = 0; > + IortSmmu->PmuInterruptOffset = NodeLength; > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (!Subtable) > + { > + break; > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += Subtable->Length; > + PmuIrptNumber++; > + } > + > + IortSmmu->PmuInterruptCount = PmuIrptNumber; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); > + return (AE_ERROR); > + } > + > + /* Compile Array of ID mappings */ > + > + IortNode->MappingOffset = NodeLength; > + IdMappingNumber = 0; > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortMap, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (!Subtable) > + { > + break; > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + NodeLength += sizeof (ACPI_IORT_ID_MAPPING); > + IdMappingNumber++; > + } > + > + IortNode->MappingCount = IdMappingNumber; > + > + /* > + * Node length can be determined by DT_LENGTH option > + * IortNode->Length = NodeLength; > + */ > + DtPopSubtable (); > + ParentTable = DtPeekSubtable (); > + NodeNumber++; > + } > + > + Iort->NodeCount = NodeNumber; > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileIvrs > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile IVRS. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileIvrs ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_DMTABLE_INFO *InfoTable; > + ACPI_IVRS_HEADER *IvrsHeader; > + UINT8 EntryType; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrs, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + IvrsHeader = ACPI_CAST_PTR (ACPI_IVRS_HEADER, Subtable->Buffer); > + > + switch (IvrsHeader->Type) > + { > + case ACPI_IVRS_TYPE_HARDWARE: > + > + InfoTable = AcpiDmTableInfoIvrs0; > + break; > + > + case ACPI_IVRS_TYPE_MEMORY1: > + case ACPI_IVRS_TYPE_MEMORY2: > + case ACPI_IVRS_TYPE_MEMORY3: > + > + InfoTable = AcpiDmTableInfoIvrs1; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IVRS"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE) > + { > + while (*PFieldList && > + !strcmp ((*PFieldList)->Name, "Entry Type")) > + { > + SubtableStart = *PFieldList; > + DtCompileInteger (&EntryType, *PFieldList, 1, 0); > + > + switch (EntryType) > + { > + /* 4-byte device entries */ > + > + case ACPI_IVRS_TYPE_PAD4: > + case ACPI_IVRS_TYPE_ALL: > + case ACPI_IVRS_TYPE_SELECT: > + case ACPI_IVRS_TYPE_START: > + case ACPI_IVRS_TYPE_END: > + > + InfoTable = AcpiDmTableInfoIvrs4; > + break; > + > + /* 8-byte entries, type A */ > + > + case ACPI_IVRS_TYPE_ALIAS_SELECT: > + case ACPI_IVRS_TYPE_ALIAS_START: > + > + InfoTable = AcpiDmTableInfoIvrs8a; > + break; > + > + /* 8-byte entries, type B */ > + > + case ACPI_IVRS_TYPE_PAD8: > + case ACPI_IVRS_TYPE_EXT_SELECT: > + case ACPI_IVRS_TYPE_EXT_START: > + > + InfoTable = AcpiDmTableInfoIvrs8b; > + break; > + > + /* 8-byte entries, type C */ > + > + case ACPI_IVRS_TYPE_SPECIAL: > + > + InfoTable = AcpiDmTableInfoIvrs8c; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, > + "IVRS Device Entry"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + } > + } > + > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > diff --git a/src/acpica/source/compiler/dttable2.c b/src/acpica/source/compiler/dttable2.c > new file mode 100644 > index 0000000..0632ffe > --- /dev/null > +++ b/src/acpica/source/compiler/dttable2.c > @@ -0,0 +1,1758 @@ > +/****************************************************************************** > + * > + * Module Name: dttable2.c - handling for specific ACPI tables > + * > + *****************************************************************************/ > + > +/****************************************************************************** > + * > + * 1. Copyright Notice > + * > + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. > + * All rights reserved. > + * > + * 2. License > + * > + * 2.1. This is your license from Intel Corp. under its intellectual property > + * rights. You may have additional license terms from the party that provided > + * you this software, covering your right to use that party's intellectual > + * property rights. > + * > + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a > + * copy of the source code appearing in this file ("Covered Code") an > + * irrevocable, perpetual, worldwide license under Intel's copyrights in the > + * base code distributed originally by Intel ("Original Intel Code") to copy, > + * make derivatives, distribute, use and display any portion of the Covered > + * Code in any form, with the right to sublicense such rights; and > + * > + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent > + * license (with the right to sublicense), under only those claims of Intel > + * patents that are infringed by the Original Intel Code, to make, use, sell, > + * offer to sell, and import the Covered Code and derivative works thereof > + * solely to the minimum extent necessary to exercise the above copyright > + * license, and in no event shall the patent license extend to any additions > + * to or modifications of the Original Intel Code. No other license or right > + * is granted directly or by implication, estoppel or otherwise; > + * > + * The above copyright and patent license is granted only if the following > + * conditions are met: > + * > + * 3. Conditions > + * > + * 3.1. Redistribution of Source with Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification with rights to further distribute source must include > + * the above Copyright Notice, the above License, this list of Conditions, > + * and the following Disclaimer and Export Compliance provision. In addition, > + * Licensee must cause all Covered Code to which Licensee contributes to > + * contain a file documenting the changes Licensee made to create that Covered > + * Code and the date of any change. Licensee must include in that file the > + * documentation of any changes made by any predecessor Licensee. Licensee > + * must include a prominent statement that the modification is derived, > + * directly or indirectly, from Original Intel Code. > + * > + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification without rights to further distribute source must > + * include the following Disclaimer and Export Compliance provision in the > + * documentation and/or other materials provided with distribution. In > + * addition, Licensee may not authorize further sublicense of source of any > + * portion of the Covered Code, and must include terms to the effect that the > + * license from Licensee to its licensee is limited to the intellectual > + * property embodied in the software Licensee provides to its licensee, and > + * not to intellectual property embodied in modifications its licensee may > + * make. > + * > + * 3.3. Redistribution of Executable. Redistribution in executable form of any > + * substantial portion of the Covered Code or modification must reproduce the > + * above Copyright Notice, and the following Disclaimer and Export Compliance > + * provision in the documentation and/or other materials provided with the > + * distribution. > + * > + * 3.4. Intel retains all right, title, and interest in and to the Original > + * Intel Code. > + * > + * 3.5. Neither the name Intel nor any other trademark owned or controlled by > + * Intel shall be used in advertising or otherwise to promote the sale, use or > + * other dealings in products derived from or relating to the Covered Code > + * without prior written authorization from Intel. > + * > + * 4. Disclaimer and Export Compliance > + * > + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED > + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE > + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, > + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY > + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY > + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A > + * PARTICULAR PURPOSE. > + * > + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES > + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR > + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, > + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY > + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL > + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS > + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY > + * LIMITED REMEDY. > + * > + * 4.3. Licensee shall not export, either directly or indirectly, any of this > + * software or system incorporating such software without first obtaining any > + * required license or other approval from the U. S. Department of Commerce or > + * any other agency or department of the United States Government. In the > + * event Licensee exports any such software from the United States or > + * re-exports any such software from a foreign destination, Licensee shall > + * ensure that the distribution and export/re-export of the software is in > + * compliance with all laws, regulations, orders, or other restrictions of the > + * U.S. Export Administration Regulations. Licensee agrees that neither it nor > + * any of its subsidiaries will export/re-export any technical data, process, > + * software, or service, directly or indirectly, to any country for which the > + * United States government or any agency thereof requires an export license, > + * other governmental approval, or letter of assurance, without first obtaining > + * such license, approval or letter. > + * > + *****************************************************************************/ > + > +/* Compile all complex data tables, signatures starting with L-Z */ > + > +#include "aslcompiler.h" > +#include "dtcompiler.h" > + > +#define _COMPONENT DT_COMPILER > + ACPI_MODULE_NAME ("dttable2") > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileLpit > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile LPIT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileLpit ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_DMTABLE_INFO *InfoTable; > + ACPI_LPIT_HEADER *LpitHeader; > + > + > + /* Note: Main table consists only of the standard ACPI table header */ > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + > + /* LPIT Subtable header */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoLpitHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + LpitHeader = ACPI_CAST_PTR (ACPI_LPIT_HEADER, Subtable->Buffer); > + > + switch (LpitHeader->Type) > + { > + case ACPI_LPIT_TYPE_NATIVE_CSTATE: > + > + InfoTable = AcpiDmTableInfoLpit0; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "LPIT"); > + return (AE_ERROR); > + } > + > + /* LPIT Subtable */ > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileMadt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile MADT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileMadt ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_SUBTABLE_HEADER *MadtHeader; > + ACPI_DMTABLE_INFO *InfoTable; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadt, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadtHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + MadtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > + > + switch (MadtHeader->Type) > + { > + case ACPI_MADT_TYPE_LOCAL_APIC: > + > + InfoTable = AcpiDmTableInfoMadt0; > + break; > + > + case ACPI_MADT_TYPE_IO_APIC: > + > + InfoTable = AcpiDmTableInfoMadt1; > + break; > + > + case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE: > + > + InfoTable = AcpiDmTableInfoMadt2; > + break; > + > + case ACPI_MADT_TYPE_NMI_SOURCE: > + > + InfoTable = AcpiDmTableInfoMadt3; > + break; > + > + case ACPI_MADT_TYPE_LOCAL_APIC_NMI: > + > + InfoTable = AcpiDmTableInfoMadt4; > + break; > + > + case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE: > + > + InfoTable = AcpiDmTableInfoMadt5; > + break; > + > + case ACPI_MADT_TYPE_IO_SAPIC: > + > + InfoTable = AcpiDmTableInfoMadt6; > + break; > + > + case ACPI_MADT_TYPE_LOCAL_SAPIC: > + > + InfoTable = AcpiDmTableInfoMadt7; > + break; > + > + case ACPI_MADT_TYPE_INTERRUPT_SOURCE: > + > + InfoTable = AcpiDmTableInfoMadt8; > + break; > + > + case ACPI_MADT_TYPE_LOCAL_X2APIC: > + > + InfoTable = AcpiDmTableInfoMadt9; > + break; > + > + case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI: > + > + InfoTable = AcpiDmTableInfoMadt10; > + break; > + > + case ACPI_MADT_TYPE_GENERIC_INTERRUPT: > + > + InfoTable = AcpiDmTableInfoMadt11; > + break; > + > + case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR: > + > + InfoTable = AcpiDmTableInfoMadt12; > + break; > + > + case ACPI_MADT_TYPE_GENERIC_MSI_FRAME: > + > + InfoTable = AcpiDmTableInfoMadt13; > + break; > + > + case ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR: > + > + InfoTable = AcpiDmTableInfoMadt14; > + break; > + > + case ACPI_MADT_TYPE_GENERIC_TRANSLATOR: > + > + InfoTable = AcpiDmTableInfoMadt15; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileMcfg > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile MCFG. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileMcfg ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoMcfg, AcpiDmTableInfoMcfg0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileMpst > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile MPST. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileMpst ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + ACPI_MPST_CHANNEL *MpstChannelInfo; > + ACPI_MPST_POWER_NODE *MpstPowerNode; > + ACPI_MPST_DATA_HDR *MpstDataHeader; > + UINT16 SubtableCount; > + UINT32 PowerStateCount; > + UINT32 ComponentCount; > + > + > + /* Main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer); > + SubtableCount = MpstChannelInfo->PowerNodeCount; > + > + while (*PFieldList && SubtableCount) > + { > + /* Subtable: Memory Power Node(s) */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer); > + PowerStateCount = MpstPowerNode->NumPowerStates; > + ComponentCount = MpstPowerNode->NumPhysicalComponents; > + > + ParentTable = DtPeekSubtable (); > + > + /* Sub-subtables - Memory Power State Structure(s) */ > + > + while (*PFieldList && PowerStateCount) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0A, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + PowerStateCount--; > + } > + > + /* Sub-subtables - Physical Component ID Structure(s) */ > + > + while (*PFieldList && ComponentCount) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0B, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + ComponentCount--; > + } > + > + SubtableCount--; > + DtPopSubtable (); > + } > + > + /* Subtable: Count of Memory Power State Characteristic structures */ > + > + DtPopSubtable (); > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst1, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + MpstDataHeader = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable->Buffer); > + SubtableCount = MpstDataHeader->CharacteristicsCount; > + > + ParentTable = DtPeekSubtable (); > + > + /* Subtable: Memory Power State Characteristics structure(s) */ > + > + while (*PFieldList && SubtableCount) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst2, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + SubtableCount--; > + } > + > + DtPopSubtable (); > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileMsct > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile MSCT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileMsct ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoMsct, AcpiDmTableInfoMsct0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileMtmr > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile MTMR. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileMtmr ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoMtmr, AcpiDmTableInfoMtmr0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileNfit > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile NFIT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileNfit ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_NFIT_HEADER *NfitHeader; > + ACPI_DMTABLE_INFO *InfoTable; > + UINT32 Count; > + ACPI_NFIT_INTERLEAVE *Interleave = NULL; > + ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; > + > + > + /* Main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + /* Subtables */ > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfitHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer); > + > + switch (NfitHeader->Type) > + { > + case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: > + > + InfoTable = AcpiDmTableInfoNfit0; > + break; > + > + case ACPI_NFIT_TYPE_MEMORY_MAP: > + > + InfoTable = AcpiDmTableInfoNfit1; > + break; > + > + case ACPI_NFIT_TYPE_INTERLEAVE: > + > + Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable->Buffer); > + InfoTable = AcpiDmTableInfoNfit2; > + break; > + > + case ACPI_NFIT_TYPE_SMBIOS: > + > + InfoTable = AcpiDmTableInfoNfit3; > + break; > + > + case ACPI_NFIT_TYPE_CONTROL_REGION: > + > + InfoTable = AcpiDmTableInfoNfit4; > + break; > + > + case ACPI_NFIT_TYPE_DATA_REGION: > + > + InfoTable = AcpiDmTableInfoNfit5; > + break; > + > + case ACPI_NFIT_TYPE_FLUSH_ADDRESS: > + > + Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable->Buffer); > + InfoTable = AcpiDmTableInfoNfit6; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "NFIT"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + > + switch (NfitHeader->Type) > + { > + case ACPI_NFIT_TYPE_INTERLEAVE: > + > + Count = 0; > + DtPushSubtable (Subtable); > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit2a, > + &Subtable, FALSE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (!Subtable) > + { > + DtPopSubtable (); > + break; > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + Count++; > + } > + > + Interleave->LineCount = Count; > + DtPopSubtable (); > + break; > + > + case ACPI_NFIT_TYPE_SMBIOS: > + > + if (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit3a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (Subtable) > + { > + DtInsertSubtable (ParentTable, Subtable); > + } > + } > + break; > + > + case ACPI_NFIT_TYPE_FLUSH_ADDRESS: > + > + Count = 0; > + DtPushSubtable (Subtable); > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit6a, > + &Subtable, FALSE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + if (!Subtable) > + { > + DtPopSubtable (); > + break; > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + Count++; > + } > + > + Hint->HintCount = (UINT16) Count; > + DtPopSubtable (); > + break; > + > + default: > + break; > + } > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompilePcct > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile PCCT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompilePcct ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_SUBTABLE_HEADER *PcctHeader; > + ACPI_DMTABLE_INFO *InfoTable; > + > + > + /* Main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcct, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* Subtables */ > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcctHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + PcctHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > + > + switch (PcctHeader->Type) > + { > + case ACPI_PCCT_TYPE_GENERIC_SUBSPACE: > + > + InfoTable = AcpiDmTableInfoPcct0; > + break; > + > + case ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE: > + > + InfoTable = AcpiDmTableInfoPcct1; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PCCT"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompilePmtt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile PMTT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompilePmtt ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_PMTT_HEADER *PmttHeader; > + ACPI_PMTT_CONTROLLER *PmttController; > + UINT16 DomainCount; > + UINT8 PrevType = ACPI_PMTT_TYPE_SOCKET; > + > + > + /* Main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + PmttHeader = ACPI_CAST_PTR (ACPI_PMTT_HEADER, Subtable->Buffer); > + while (PrevType >= PmttHeader->Type) > + { > + DtPopSubtable (); > + > + if (PrevType == ACPI_PMTT_TYPE_SOCKET) > + { > + break; > + } > + > + PrevType--; > + } > + > + PrevType = PmttHeader->Type; > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + switch (PmttHeader->Type) > + { > + case ACPI_PMTT_TYPE_SOCKET: > + > + /* Subtable: Socket Structure */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt0, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + break; > + > + case ACPI_PMTT_TYPE_CONTROLLER: > + > + /* Subtable: Memory Controller Structure */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER, > + (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER))); > + DomainCount = PmttController->DomainCount; > + > + while (DomainCount) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1a, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtInsertSubtable (ParentTable, Subtable); > + DomainCount--; > + } > + break; > + > + case ACPI_PMTT_TYPE_DIMM: > + > + /* Subtable: Physical Component Structure */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PMTT"); > + return (AE_ERROR); > + } > + } > + > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileRsdt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile RSDT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileRsdt ( > + void **List) > +{ > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD *FieldList = *(DT_FIELD **) List; > + UINT32 Address; > + > + > + ParentTable = DtPeekSubtable (); > + > + while (FieldList) > + { > + DtCompileInteger ((UINT8 *) &Address, FieldList, 4, DT_NON_ZERO); > + > + DtCreateSubtable ((UINT8 *) &Address, 4, &Subtable); > + DtInsertSubtable (ParentTable, Subtable); > + FieldList = FieldList->Next; > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileS3pt > + * > + * PARAMETERS: PFieldList - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile S3PT (Pointed to by FPDT) > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileS3pt ( > + DT_FIELD **PFieldList) > +{ > + ACPI_STATUS Status; > + ACPI_S3PT_HEADER *S3ptHeader; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + ACPI_DMTABLE_INFO *InfoTable; > + DT_FIELD *SubtableStart; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt, > + &Gbl_RootTable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DtPushSubtable (Gbl_RootTable); > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3ptHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + S3ptHeader = ACPI_CAST_PTR (ACPI_S3PT_HEADER, Subtable->Buffer); > + > + switch (S3ptHeader->Type) > + { > + case ACPI_S3PT_TYPE_RESUME: > + > + InfoTable = AcpiDmTableInfoS3pt0; > + break; > + > + case ACPI_S3PT_TYPE_SUSPEND: > + > + InfoTable = AcpiDmTableInfoS3pt1; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "S3PT"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileSlic > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile SLIC. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileSlic ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + > + > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlic, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileSlit > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile SLIT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileSlit ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *FieldList; > + UINT32 Localities; > + UINT8 *LocalityBuffer; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlit, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); > + LocalityBuffer = UtLocalCalloc (Localities); > + > + /* Compile each locality buffer */ > + > + FieldList = *PFieldList; > + while (FieldList) > + { > + DtCompileBuffer (LocalityBuffer, > + FieldList->Value, FieldList, Localities); > + > + DtCreateSubtable (LocalityBuffer, Localities, &Subtable); > + DtInsertSubtable (ParentTable, Subtable); > + FieldList = FieldList->Next; > + } > + > + ACPI_FREE (LocalityBuffer); > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileSrat > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile SRAT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileSrat ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_FIELD *SubtableStart; > + ACPI_SUBTABLE_HEADER *SratHeader; > + ACPI_DMTABLE_INFO *InfoTable; > + > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSrat, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + while (*PFieldList) > + { > + SubtableStart = *PFieldList; > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSratHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPushSubtable (Subtable); > + > + SratHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); > + > + switch (SratHeader->Type) > + { > + case ACPI_SRAT_TYPE_CPU_AFFINITY: > + > + InfoTable = AcpiDmTableInfoSrat0; > + break; > + > + case ACPI_SRAT_TYPE_MEMORY_AFFINITY: > + > + InfoTable = AcpiDmTableInfoSrat1; > + break; > + > + case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY: > + > + InfoTable = AcpiDmTableInfoSrat2; > + break; > + > + case ACPI_SRAT_TYPE_GICC_AFFINITY: > + > + InfoTable = AcpiDmTableInfoSrat3; > + break; > + > + default: > + > + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT"); > + return (AE_ERROR); > + } > + > + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + DtPopSubtable (); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileStao > + * > + * PARAMETERS: PFieldList - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile STAO. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileStao ( > + void **List) > +{ > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + ACPI_STATUS Status; > + > + > + /* Compile the main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoStao, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* Compile each ASCII namestring as a subtable */ > + > + while (*PFieldList) > + { > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoStaoStr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileTcpa > + * > + * PARAMETERS: PFieldList - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile TCPA. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileTcpa ( > + void **List) > +{ > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_SUBTABLE *Subtable; > + ACPI_TABLE_TCPA_HDR *TcpaHeader; > + DT_SUBTABLE *ParentTable; > + ACPI_STATUS Status; > + > + > + /* Compile the main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaHdr, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Examine the PlatformClass field to determine the table type. > + * Either a client or server table. Only one. > + */ > + TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer); > + > + switch (TcpaHeader->PlatformClass) > + { > + case ACPI_TCPA_CLIENT_TABLE: > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaClient, > + &Subtable, TRUE); > + break; > + > + case ACPI_TCPA_SERVER_TABLE: > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaServer, > + &Subtable, TRUE); > + break; > + > + default: > + > + AcpiOsPrintf ("\n**** Unknown TCPA Platform Class 0x%X\n", > + TcpaHeader->PlatformClass); > + Status = AE_ERROR; > + break; > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtGetGenericTableInfo > + * > + * PARAMETERS: Name - Generic type name > + * > + * RETURN: Info entry > + * > + * DESCRIPTION: Obtain table info for a generic name entry > + * > + *****************************************************************************/ > + > +ACPI_DMTABLE_INFO * > +DtGetGenericTableInfo ( > + char *Name) > +{ > + ACPI_DMTABLE_INFO *Info; > + UINT32 i; > + > + > + if (!Name) > + { > + return (NULL); > + } > + > + /* Search info table for name match */ > + > + for (i = 0; ; i++) > + { > + Info = AcpiDmTableInfoGeneric[i]; > + if (Info->Opcode == ACPI_DMT_EXIT) > + { > + Info = NULL; > + break; > + } > + > + /* Use caseless compare for generic keywords */ > + > + if (!AcpiUtStricmp (Name, Info->Name)) > + { > + break; > + } > + } > + > + return (Info); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileUefi > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile UEFI. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileUefi ( > + void **List) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + UINT16 *DataOffset; > + > + > + /* Compile the predefined portion of the UEFI table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoUefi, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + DataOffset = (UINT16 *) (Subtable->Buffer + 16); > + *DataOffset = sizeof (ACPI_TABLE_UEFI); > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* > + * Compile the "generic" portion of the UEFI table. This > + * part of the table is not predefined and any of the generic > + * operators may be used. > + */ > + DtCompileGeneric ((void **) PFieldList, NULL, NULL); > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileVrtc > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile VRTC. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileVrtc ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoVrtc, AcpiDmTableInfoVrtc0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileWdat > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile WDAT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileWdat ( > + void **List) > +{ > + ACPI_STATUS Status; > + > + > + Status = DtCompileTwoSubtables (List, > + AcpiDmTableInfoWdat, AcpiDmTableInfoWdat0); > + return (Status); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileWpbt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile WPBT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileWpbt ( > + void **List) > +{ > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + ACPI_TABLE_WPBT *Table; > + ACPI_STATUS Status; > + UINT16 Length; > + > + > + /* Compile the main table */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + > + /* Compile the argument list subtable */ > + > + Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt0, > + &Subtable, TRUE); > + if (ACPI_FAILURE (Status)) > + { > + return (Status); > + } > + > + /* Extract the length of the Arguments buffer, insert into main table */ > + > + Length = (UINT16) Subtable->TotalLength; > + Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); > + Table->ArgumentsLength = Length; > + > + ParentTable = DtPeekSubtable (); > + DtInsertSubtable (ParentTable, Subtable); > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileXsdt > + * > + * PARAMETERS: List - Current field list pointer > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile XSDT. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileXsdt ( > + void **List) > +{ > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD *FieldList = *(DT_FIELD **) List; > + UINT64 Address; > + > + > + ParentTable = DtPeekSubtable (); > + > + while (FieldList) > + { > + DtCompileInteger ((UINT8 *) &Address, FieldList, 8, DT_NON_ZERO); > + > + DtCreateSubtable ((UINT8 *) &Address, 8, &Subtable); > + DtInsertSubtable (ParentTable, Subtable); > + FieldList = FieldList->Next; > + } > + > + return (AE_OK); > +} > + > + > +/****************************************************************************** > + * > + * FUNCTION: DtCompileGeneric > + * > + * PARAMETERS: List - Current field list pointer > + * Name - Field name to end generic compiling > + * Length - Compiled table length to return > + * > + * RETURN: Status > + * > + * DESCRIPTION: Compile generic unknown table. > + * > + *****************************************************************************/ > + > +ACPI_STATUS > +DtCompileGeneric ( > + void **List, > + char *Name, > + UINT32 *Length) > +{ > + ACPI_STATUS Status; > + DT_SUBTABLE *Subtable; > + DT_SUBTABLE *ParentTable; > + DT_FIELD **PFieldList = (DT_FIELD **) List; > + ACPI_DMTABLE_INFO *Info; > + > + > + ParentTable = DtPeekSubtable (); > + > + /* > + * Compile the "generic" portion of the table. This > + * part of the table is not predefined and any of the generic > + * operators may be used. > + */ > + > + /* Find any and all labels in the entire generic portion */ > + > + DtDetectAllLabels (*PFieldList); > + > + /* Now we can actually compile the parse tree */ > + > + if (Length && *Length) > + { > + *Length = 0; > + } > + while (*PFieldList) > + { > + if (Name && !strcmp ((*PFieldList)->Name, Name)) > + { > + break; > + } > + > + Info = DtGetGenericTableInfo ((*PFieldList)->Name); > + if (!Info) > + { > + sprintf (MsgBuffer, "Generic data type \"%s\" not found", > + (*PFieldList)->Name); > + DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, > + (*PFieldList), MsgBuffer); > + > + *PFieldList = (*PFieldList)->Next; > + continue; > + } > + > + Status = DtCompileTable (PFieldList, Info, > + &Subtable, TRUE); > + if (ACPI_SUCCESS (Status)) > + { > + DtInsertSubtable (ParentTable, Subtable); > + if (Length) > + { > + *Length += Subtable->Length; > + } > + } > + else > + { > + *PFieldList = (*PFieldList)->Next; > + > + if (Status == AE_NOT_FOUND) > + { > + sprintf (MsgBuffer, "Generic data type \"%s\" not found", > + (*PFieldList)->Name); > + DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, > + (*PFieldList), MsgBuffer); > + } > + } > + } > + > + return (AE_OK); > +} > diff --git a/src/acpica/source/compiler/dttemplate.c b/src/acpica/source/compiler/dttemplate.c > index 8c2f8b2..6e4c9f9 100644 > --- a/src/acpica/source/compiler/dttemplate.c > +++ b/src/acpica/source/compiler/dttemplate.c > @@ -261,7 +261,6 @@ GetTemplate: > > Status = DtCreateOneTemplate (Signature, TableData); > > - > /* Shutdown ACPICA subsystem */ > > (void) AcpiTerminate (); > @@ -307,7 +306,7 @@ DtCreateAllTemplates ( > if (TableData->Template) > { > Status = DtCreateOneTemplate (TableData->Signature, > - TableData); > + TableData); > if (ACPI_FAILURE (Status)) > { > return (Status); > diff --git a/src/acpica/source/compiler/prexpress.c b/src/acpica/source/compiler/prexpress.c > index 513a443..b54b7e0 100644 > --- a/src/acpica/source/compiler/prexpress.c > +++ b/src/acpica/source/compiler/prexpress.c > @@ -156,6 +156,7 @@ PrUnTokenize ( > { > return; > } > + > if (Buffer[Length] != '\n') > { > Buffer[strlen(Buffer)] = ' '; > diff --git a/src/acpica/source/compiler/prmacros.c b/src/acpica/source/compiler/prmacros.c > index 798e29b..1770803 100644 > --- a/src/acpica/source/compiler/prmacros.c > +++ b/src/acpica/source/compiler/prmacros.c > @@ -459,7 +459,8 @@ PrAddMacro ( > { > UseCount = Args[i].UseCount; > > - Args[i].Offset[UseCount] = (Token - Gbl_MainTokenBuffer) - MacroBodyOffset; > + Args[i].Offset[UseCount] = > + (Token - Gbl_MainTokenBuffer) - MacroBodyOffset; > > DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID > "Macro Arg #%u: %s UseCount %u Offset %u \n", > diff --git a/src/acpica/source/compiler/prscan.c b/src/acpica/source/compiler/prscan.c > index bc88f76..ceffadc 100644 > --- a/src/acpica/source/compiler/prscan.c > +++ b/src/acpica/source/compiler/prscan.c > @@ -571,7 +571,8 @@ PrDoDirective ( > case PR_DIRECTIVE_ELSE: > case PR_DIRECTIVE_ELIF: > > - if (Gbl_DirectiveStack && Gbl_DirectiveStack->IgnoringThisCodeBlock) > + if (Gbl_DirectiveStack && > + Gbl_DirectiveStack->IgnoringThisCodeBlock) > { > PrDbgPrint ("Ignoring", Gbl_DirectiveInfo[Directive].Name); > return; > @@ -746,7 +747,8 @@ PrDoDirective ( > if (*(&Gbl_CurrentLineBuffer[TokenOffset]) == '(') > { > #ifndef MACROS_SUPPORTED > - AcpiOsPrintf ("%s ERROR - line %u: #define macros are not supported yet\n", > + AcpiOsPrintf ( > + "%s ERROR - line %u: #define macros are not supported yet\n", > Gbl_CurrentLineBuffer, Gbl_LogicalLineNumber); > exit(1); > #else > @@ -764,11 +766,13 @@ PrDoDirective ( > { > Token2++; > } > + > End = Token2; > while (*End != '\n') > { > End++; > } > + > *End = 0; > } > else > @@ -1071,6 +1075,7 @@ PrGetNextLine ( > { > return (ASL_BLANK_LINE); > } > + > return (AE_OK); > } > } > diff --git a/src/acpica/source/compiler/prutils.c b/src/acpica/source/compiler/prutils.c > index b367650..fc6bece 100644 > --- a/src/acpica/source/compiler/prutils.c > +++ b/src/acpica/source/compiler/prutils.c > @@ -194,8 +194,10 @@ PrGetNextToken ( > { > *Next = NULL; > } > + > return (TokenStart); > } > + > Buffer++; > } > > diff --git a/src/acpica/source/components/debugger/dbcmds.c b/src/acpica/source/components/debugger/dbcmds.c > index 17e1265..280e135 100644 > --- a/src/acpica/source/components/debugger/dbcmds.c > +++ b/src/acpica/source/components/debugger/dbcmds.c > @@ -189,8 +189,7 @@ AcpiDbConvertToNode ( > Node = ACPI_TO_POINTER (Address); > if (!AcpiOsReadable (Node, sizeof (ACPI_NAMESPACE_NODE))) > { > - AcpiOsPrintf ("Address %p is invalid", > - Node); > + AcpiOsPrintf ("Address %p is invalid", Node); > return (NULL); > } > > @@ -199,7 +198,7 @@ AcpiDbConvertToNode ( > if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED) > { > AcpiOsPrintf ("Address %p is not a valid namespace node [%s]\n", > - Node, AcpiUtGetDescriptorName (Node)); > + Node, AcpiUtGetDescriptorName (Node)); > return (NULL); > } > } > @@ -986,7 +985,7 @@ AcpiDbDeviceResources ( > > > Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle); > - ParentPath = AcpiNsGetExternalPathname (Node); > + ParentPath = AcpiNsGetNormalizedPathname (Node, TRUE); > if (!ParentPath) > { > return (AE_NO_MEMORY); > @@ -1077,7 +1076,7 @@ GetCrs: > /* Get the _CRS resource list (test ALLOCATE buffer) */ > > ReturnBuffer.Pointer = NULL; > - ReturnBuffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER; > + ReturnBuffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER; > > Status = AcpiGetCurrentResources (Node, &ReturnBuffer); > if (ACPI_FAILURE (Status)) > @@ -1146,7 +1145,7 @@ GetPrs: > } > > ReturnBuffer.Pointer = AcpiGbl_DbBuffer; > - ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; > + ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; > > Status = AcpiGetPossibleResources (Node, &ReturnBuffer); > if (ACPI_FAILURE (Status)) > @@ -1169,7 +1168,7 @@ GetAei: > AcpiOsPrintf ("Evaluating _AEI\n"); > > ReturnBuffer.Pointer = AcpiGbl_DbBuffer; > - ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; > + ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; > > Status = AcpiEvaluateObject (AeiNode, NULL, NULL, &ReturnBuffer); > if (ACPI_FAILURE (Status)) > @@ -1180,7 +1179,7 @@ GetAei: > } > > ReturnBuffer.Pointer = AcpiGbl_DbBuffer; > - ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; > + ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; > > Status = AcpiGetEventResources (Node, &ReturnBuffer); > if (ACPI_FAILURE (Status)) > @@ -1296,8 +1295,8 @@ AcpiDbGenerateGpe ( > } > } > > - GpeEventInfo = AcpiEvGetGpeEventInfo (ACPI_TO_POINTER (BlockNumber), > - GpeNumber); > + GpeEventInfo = AcpiEvGetGpeEventInfo ( > + ACPI_TO_POINTER (BlockNumber), GpeNumber); > if (!GpeEventInfo) > { > AcpiOsPrintf ("Invalid GPE\n"); > @@ -1356,15 +1355,8 @@ AcpiDbTrace ( > UINT32 Flags = 0; > > > - if (EnableArg) > - { > - AcpiUtStrupr (EnableArg); > - } > - > - if (OnceArg) > - { > - AcpiUtStrupr (OnceArg); > - } > + AcpiUtStrupr (EnableArg); > + AcpiUtStrupr (OnceArg); > > if (MethodArg) > { > diff --git a/src/acpica/source/components/debugger/dbconvert.c b/src/acpica/source/components/debugger/dbconvert.c > index d1201f3..034a204 100644 > --- a/src/acpica/source/components/debugger/dbconvert.c > +++ b/src/acpica/source/components/debugger/dbconvert.c > @@ -270,7 +270,7 @@ AcpiDbConvertToBuffer ( > } > > j++; > - i+=2; > + i += 2; > while (String[i] && > ((String[i] == ',') || (String[i] == ' '))) > { > diff --git a/src/acpica/source/components/debugger/dbdisply.c b/src/acpica/source/components/debugger/dbdisply.c > index 3a3ca15..1fa02a1 100644 > --- a/src/acpica/source/components/debugger/dbdisply.c > +++ b/src/acpica/source/components/debugger/dbdisply.c > @@ -485,14 +485,13 @@ AcpiDbDisplayMethodInfo ( > } > > ObjDesc = WalkState->MethodDesc; > - Node = WalkState->MethodNode; > + Node = WalkState->MethodNode; > > AcpiOsPrintf ("Currently executing control method is [%4.4s]\n", > - AcpiUtGetNodeName (Node)); > + AcpiUtGetNodeName (Node)); > AcpiOsPrintf ("%X Arguments, SyncLevel = %X\n", > - (UINT32) ObjDesc->Method.ParamCount, > - (UINT32) ObjDesc->Method.SyncLevel); > - > + (UINT32) ObjDesc->Method.ParamCount, > + (UINT32) ObjDesc->Method.SyncLevel); > > RootOp = StartOp; > while (RootOp->Common.Parent) > @@ -653,7 +652,7 @@ AcpiDbDisplayResults ( > } > > ObjDesc = WalkState->MethodDesc; > - Node = WalkState->MethodNode; > + Node = WalkState->MethodNode; > > if (WalkState->Results) > { > @@ -729,7 +728,7 @@ AcpiDbDisplayCallingTree ( > * > * FUNCTION: AcpiDbDisplayObjectType > * > - * PARAMETERS: Name - User entered NS node handle or name > + * PARAMETERS: ObjectArg - User entered NS node handle > * > * RETURN: None > * > @@ -739,21 +738,17 @@ AcpiDbDisplayCallingTree ( > > void > AcpiDbDisplayObjectType ( > - char *Name) > + char *ObjectArg) > { > - ACPI_NAMESPACE_NODE *Node; > + ACPI_HANDLE Handle; > ACPI_DEVICE_INFO *Info; > ACPI_STATUS Status; > UINT32 i; > > > - Node = AcpiDbConvertToNode (Name); > - if (!Node) > - { > - return; > - } > + Handle = ACPI_TO_POINTER (strtoul (ObjectArg, NULL, 16)); > > - Status = AcpiGetObjectInfo (ACPI_CAST_PTR (ACPI_HANDLE, Node), &Info); > + Status = AcpiGetObjectInfo (Handle, &Info); > if (ACPI_FAILURE (Status)) > { > AcpiOsPrintf ("Could not get object info, %s\n", > @@ -761,25 +756,18 @@ AcpiDbDisplayObjectType ( > return; > } > > - if (Info->Valid & ACPI_VALID_ADR) > - { > - AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n", > - ACPI_FORMAT_UINT64 (Info->Address), > - Info->CurrentStatus, Info->Flags); > - } > - if (Info->Valid & ACPI_VALID_SXDS) > - { > - AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n", > - Info->HighestDstates[0], Info->HighestDstates[1], > - Info->HighestDstates[2], Info->HighestDstates[3]); > - } > - if (Info->Valid & ACPI_VALID_SXWS) > - { > - AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n", > - Info->LowestDstates[0], Info->LowestDstates[1], > - Info->LowestDstates[2], Info->LowestDstates[3], > - Info->LowestDstates[4]); > - } > + AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n", > + ACPI_FORMAT_UINT64 (Info->Address), > + Info->CurrentStatus, Info->Flags); > + > + AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n", > + Info->HighestDstates[0], Info->HighestDstates[1], > + Info->HighestDstates[2], Info->HighestDstates[3]); > + > + AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n", > + Info->LowestDstates[0], Info->LowestDstates[1], > + Info->LowestDstates[2], Info->LowestDstates[3], > + Info->LowestDstates[4]); > > if (Info->Valid & ACPI_VALID_HID) > { > @@ -791,11 +779,6 @@ AcpiDbDisplayObjectType ( > AcpiOsPrintf ("UID: %s\n", Info->UniqueId.String); > } > > - if (Info->Valid & ACPI_VALID_SUB) > - { > - AcpiOsPrintf ("SUB: %s\n", Info->SubsystemId.String); > - } > - > if (Info->Valid & ACPI_VALID_CID) > { > for (i = 0; i < Info->CompatibleIdList.Count; i++) > @@ -832,6 +815,13 @@ AcpiDbDisplayResultObject ( > ACPI_WALK_STATE *WalkState) > { > > +#ifndef ACPI_APPLICATION > + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId()) > + { > + return; > + } > +#endif > + > /* Only display if single stepping */ > > if (!AcpiGbl_CmSingleStep) > @@ -864,6 +854,13 @@ AcpiDbDisplayArgumentObject ( > ACPI_WALK_STATE *WalkState) > { > > +#ifndef ACPI_APPLICATION > + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId()) > + { > + return; > + } > +#endif > + > if (!AcpiGbl_CmSingleStep) > { > return; > @@ -1243,7 +1240,7 @@ AcpiDbDisplayNonRootHandlers ( > return (AE_OK); > } > > - Pathname = AcpiNsGetExternalPathname (Node); > + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); > if (!Pathname) > { > return (AE_OK); > diff --git a/src/acpica/source/components/debugger/dbexec.c b/src/acpica/source/components/debugger/dbexec.c > index c2b02d2..f69e27a 100644 > --- a/src/acpica/source/components/debugger/dbexec.c > +++ b/src/acpica/source/components/debugger/dbexec.c > @@ -600,8 +600,8 @@ AcpiDbExecute ( > /* Dump a _PLD buffer if present */ > > if (ACPI_COMPARE_NAME ((ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, > - AcpiGbl_DbMethodInfo.Method)->Name.Ascii), > - METHOD_NAME__PLD)) > + AcpiGbl_DbMethodInfo.Method)->Name.Ascii), > + METHOD_NAME__PLD)) > { > AcpiDbDumpPldBuffer (ReturnObj.Pointer); > } > @@ -699,7 +699,8 @@ AcpiDbMethodThread ( > if (ReturnObj.Length) > { > AcpiOsPrintf ("Evaluation of %s returned object %p Buflen %X\n", > - Info->Pathname, ReturnObj.Pointer, (UINT32) ReturnObj.Length); > + Info->Pathname, ReturnObj.Pointer, > + (UINT32) ReturnObj.Length); > AcpiDbDumpExternalObject (ReturnObj.Pointer, 1); > } > #endif > @@ -766,7 +767,7 @@ AcpiDbCreateExecutionThreads ( > /* Get the arguments */ > > NumThreads = strtoul (NumThreadsArg, NULL, 0); > - NumLoops = strtoul (NumLoopsArg, NULL, 0); > + NumLoops = strtoul (NumLoopsArg, NULL, 0); > > if (!NumThreads || !NumLoops) > { > @@ -882,7 +883,7 @@ AcpiDbCreateExecutionThreads ( > > for (i = 0; i < (NumThreads); i++) > { > - Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbMethodThread, > + Status = AcpiOsExecute (OSL_DEBUGGER_EXEC_THREAD, AcpiDbMethodThread, > &AcpiGbl_DbMethodInfo); > if (ACPI_FAILURE (Status)) > { > diff --git a/src/acpica/source/components/debugger/dbfileio.c b/src/acpica/source/components/debugger/dbfileio.c > index 4cdbc01..eaae9a0 100644 > --- a/src/acpica/source/components/debugger/dbfileio.c > +++ b/src/acpica/source/components/debugger/dbfileio.c > @@ -118,7 +118,10 @@ > #include "accommon.h" > #include "acdebug.h" > #include "actables.h" > - > +#include <stdio.h> > +#ifdef ACPI_APPLICATION > +#include "acapps.h" > +#endif > > #define _COMPONENT ACPI_CA_DEBUGGER > ACPI_MODULE_NAME ("dbfileio") > @@ -193,134 +196,35 @@ AcpiDbOpenDebugFile ( > #endif > > > -#ifdef ACPI_APPLICATION > -#include "acapps.h" > - > /******************************************************************************* > * > - * FUNCTION: AeLocalLoadTable > + * FUNCTION: AcpiDbLoadTables > * > - * PARAMETERS: Table - pointer to a buffer containing the entire > - * table to be loaded > + * PARAMETERS: ListHead - List of ACPI tables to load > * > * RETURN: Status > * > - * DESCRIPTION: This function is called to load a table from the caller's > - * buffer. The buffer must contain an entire ACPI Table including > - * a valid header. The header fields will be verified, and if it > - * is determined that the table is invalid, the call will fail. > - * > - ******************************************************************************/ > - > -static ACPI_STATUS > -AeLocalLoadTable ( > - ACPI_TABLE_HEADER *Table) > -{ > - ACPI_STATUS Status = AE_OK; > - > - > - ACPI_FUNCTION_TRACE (AeLocalLoadTable); > - > -#if 0 > -/* ACPI_TABLE_DESC TableInfo; */ > - > - if (!Table) > - { > - return_ACPI_STATUS (AE_BAD_PARAMETER); > - } > - > - TableInfo.Pointer = Table; > - Status = AcpiTbRecognizeTable (&TableInfo, ACPI_TABLE_ALL); > - if (ACPI_FAILURE (Status)) > - { > - return_ACPI_STATUS (Status); > - } > - > - /* Install the new table into the local data structures */ > - > - Status = AcpiTbInitTableDescriptor (&TableInfo); > - if (ACPI_FAILURE (Status)) > - { > - if (Status == AE_ALREADY_EXISTS) > - { > - /* Table already exists, no error */ > - > - Status = AE_OK; > - } > - > - /* Free table allocated by AcpiTbGetTable */ > - > - AcpiTbDeleteSingleTable (&TableInfo); > - return_ACPI_STATUS (Status); > - } > - > -#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY)) > - > - Status = AcpiNsLoadTable (TableInfo.InstalledDesc, AcpiGbl_RootNode); > - if (ACPI_FAILURE (Status)) > - { > - /* Uninstall table and free the buffer */ > - > - AcpiTbDeleteTablesByType (ACPI_TABLE_ID_DSDT); > - return_ACPI_STATUS (Status); > - } > -#endif > -#endif > - > - return_ACPI_STATUS (Status); > -} > -#endif > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiDbGetTableFromFile > - * > - * PARAMETERS: Filename - File where table is located > - * ReturnTable - Where a pointer to the table is returned > - * > - * RETURN: Status > - * > - * DESCRIPTION: Load an ACPI table from a file > + * DESCRIPTION: Load ACPI tables from a previously constructed table list. > * > ******************************************************************************/ > > ACPI_STATUS > -AcpiDbGetTableFromFile ( > - char *Filename, > - ACPI_TABLE_HEADER **ReturnTable, > - BOOLEAN MustBeAmlFile) > +AcpiDbLoadTables ( > + ACPI_NEW_TABLE_DESC *ListHead) > { > -#ifdef ACPI_APPLICATION > ACPI_STATUS Status; > + ACPI_NEW_TABLE_DESC *TableListHead; > ACPI_TABLE_HEADER *Table; > - BOOLEAN IsAmlTable = TRUE; > > > - Status = AcpiUtReadTableFromFile (Filename, &Table); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > - > - if (MustBeAmlFile) > - { > - IsAmlTable = AcpiUtIsAmlTable (Table); > - if (!IsAmlTable) > - { > - ACPI_EXCEPTION ((AE_INFO, AE_OK, > - "Input for -e is not an AML table: " > - "\"%4.4s\" (must be DSDT/SSDT)", > - Table->Signature)); > - return (AE_TYPE); > - } > - } > + /* Load all ACPI tables in the list */ > > - if (IsAmlTable) > + TableListHead = ListHead; > + while (TableListHead) > { > - /* Attempt to recognize and install the table */ > + Table = TableListHead->Table; > > - Status = AeLocalLoadTable (Table); > + Status = AcpiLoadTable (Table); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_ALREADY_EXISTS) > @@ -337,20 +241,12 @@ AcpiDbGetTableFromFile ( > return (Status); > } > > - AcpiTbPrintTableHeader (0, Table); > - > fprintf (stderr, > "Acpi table [%4.4s] successfully installed and loaded\n", > Table->Signature); > - } > > - AcpiGbl_AcpiHardwarePresent = FALSE; > - if (ReturnTable) > - { > - *ReturnTable = Table; > + TableListHead = TableListHead->Next; > } > > - > -#endif /* ACPI_APPLICATION */ > return (AE_OK); > } > diff --git a/src/acpica/source/components/debugger/dbinput.c b/src/acpica/source/components/debugger/dbinput.c > index b3ee71f..a051e78 100644 > --- a/src/acpica/source/components/debugger/dbinput.c > +++ b/src/acpica/source/components/debugger/dbinput.c > @@ -117,6 +117,9 @@ > #include "accommon.h" > #include "acdebug.h" > > +#ifdef ACPI_APPLICATION > +#include "acapps.h" > +#endif > > #define _COMPONENT ACPI_CA_DEBUGGER > ACPI_MODULE_NAME ("dbinput") > @@ -751,10 +754,7 @@ AcpiDbGetLine ( > > /* Uppercase the actual command */ > > - if (AcpiGbl_DbArgs[0]) > - { > - AcpiUtStrupr (AcpiGbl_DbArgs[0]); > - } > + AcpiUtStrupr (AcpiGbl_DbArgs[0]); > > Count = i; > if (Count) > @@ -834,7 +834,7 @@ AcpiDbCommandDispatch ( > > /* If AcpiTerminate has been called, terminate this thread */ > > - if (AcpiGbl_DbTerminateThreads) > + if (AcpiGbl_DbTerminateLoop) > { > return (AE_CTRL_TERMINATE); > } > @@ -1014,8 +1014,8 @@ AcpiDbCommandDispatch ( > else if (ParamCount == 2) > { > Temp = AcpiGbl_DbConsoleDebugLevel; > - AcpiGbl_DbConsoleDebugLevel = strtoul (AcpiGbl_DbArgs[1], > - NULL, 16); > + AcpiGbl_DbConsoleDebugLevel = > + strtoul (AcpiGbl_DbArgs[1], NULL, 16); > AcpiOsPrintf ( > "Debug Level for console output was %8.8lX, now %8.8lX\n", > Temp, AcpiGbl_DbConsoleDebugLevel); > @@ -1191,8 +1191,16 @@ AcpiDbCommandDispatch ( > break; > > case CMD_LOAD: > + { > + ACPI_NEW_TABLE_DESC *ListHead = NULL; > > - Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL, FALSE); > + Status = AcpiAcGetAllTablesFromFile (AcpiGbl_DbArgs[1], > + ACPI_GET_ALL_TABLES, &ListHead); > + if (ACPI_SUCCESS (Status)) > + { > + AcpiDbLoadTables (ListHead); > + } > + } > break; > > case CMD_OPEN: > @@ -1212,6 +1220,7 @@ AcpiDbCommandDispatch ( > * re-creating the semaphores! > */ > > + AcpiGbl_DbTerminateLoop = TRUE; > /* AcpiInitialize (NULL); */ > break; > > @@ -1256,7 +1265,7 @@ AcpiDbCommandDispatch ( > #ifdef ACPI_APPLICATION > AcpiDbCloseDebugFile (); > #endif > - AcpiGbl_DbTerminateThreads = TRUE; > + AcpiGbl_DbTerminateLoop = TRUE; > return (AE_CTRL_TERMINATE); > > case CMD_NOT_FOUND: > @@ -1296,7 +1305,7 @@ AcpiDbExecuteThread ( > ACPI_STATUS MStatus; > > > - while (Status != AE_CTRL_TERMINATE) > + while (Status != AE_CTRL_TERMINATE && !AcpiGbl_DbTerminateLoop) > { > AcpiGbl_MethodExecuting = FALSE; > AcpiGbl_StepToNextCall = FALSE; > @@ -1312,6 +1321,7 @@ AcpiDbExecuteThread ( > > AcpiOsReleaseMutex (AcpiGbl_DbCommandComplete); > } > + AcpiGbl_DbThreadsTerminated = TRUE; > } > > > @@ -1366,7 +1376,7 @@ AcpiDbUserCommands ( > > /* TBD: [Restructure] Need a separate command line buffer for step mode */ > > - while (!AcpiGbl_DbTerminateThreads) > + while (!AcpiGbl_DbTerminateLoop) > { > /* Force output to console until a command is entered */ > > @@ -1402,10 +1412,6 @@ AcpiDbUserCommands ( > * and wait for the command to complete. > */ > AcpiOsReleaseMutex (AcpiGbl_DbCommandReady); > - if (ACPI_FAILURE (Status)) > - { > - return (Status); > - } > > Status = AcpiOsAcquireMutex (AcpiGbl_DbCommandComplete, > ACPI_WAIT_FOREVER); > @@ -1422,14 +1428,5 @@ AcpiDbUserCommands ( > } > } > > - /* Shut down the debugger */ > - > - AcpiTerminateDebugger (); > - > - /* > - * Only this thread (the original thread) should actually terminate the > - * subsystem, because all the semaphores are deleted during termination > - */ > - Status = AcpiTerminate (); > return (Status); > } > diff --git a/src/acpica/source/components/debugger/dbmethod.c b/src/acpica/source/components/debugger/dbmethod.c > index 92f53a2..455656e 100644 > --- a/src/acpica/source/components/debugger/dbmethod.c > +++ b/src/acpica/source/components/debugger/dbmethod.c > @@ -161,7 +161,7 @@ AcpiDbSetMethodBreakpoint ( > > Address = strtoul (Location, NULL, 16); > AmlOffset = (UINT32) ACPI_PTR_DIFF (Op->Common.Aml, > - WalkState->ParserState.AmlStart); > + WalkState->ParserState.AmlStart); > if (Address <= AmlOffset) > { > AcpiOsPrintf ("Breakpoint %X is beyond current address %X\n", > diff --git a/src/acpica/source/components/debugger/dbnames.c b/src/acpica/source/components/debugger/dbnames.c > index 0af1b1f..88e8e77 100644 > --- a/src/acpica/source/components/debugger/dbnames.c > +++ b/src/acpica/source/components/debugger/dbnames.c > @@ -270,7 +270,7 @@ AcpiDbSetScope ( > /* Build the final pathname */ > > if (AcpiUtSafeStrcat (AcpiGbl_DbScopeBuf, sizeof (AcpiGbl_DbScopeBuf), > - Name)) > + Name)) > { > Status = AE_BUFFER_OVERFLOW; > goto ErrorExit; > @@ -571,7 +571,7 @@ AcpiDbWalkForPredefinedNames ( > return (AE_OK); > } > > - Pathname = AcpiNsGetExternalPathname (Node); > + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); > if (!Pathname) > { > return (AE_OK); > @@ -632,7 +632,8 @@ AcpiDbCheckPredefinedNames ( > /* Search all nodes in namespace */ > > (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, AcpiDbWalkForPredefinedNames, NULL, (void *) &Count, NULL); > + ACPI_UINT32_MAX, AcpiDbWalkForPredefinedNames, > + NULL, (void *) &Count, NULL); > > AcpiOsPrintf ("Found %u predefined names in the namespace\n", Count); > } > @@ -1034,7 +1035,7 @@ AcpiDbBusWalk ( > /* Exit if there is no _PRT under this device */ > > Status = AcpiGetHandle (Node, METHOD_NAME__PRT, > - ACPI_CAST_PTR (ACPI_HANDLE, &TempNode)); > + ACPI_CAST_PTR (ACPI_HANDLE, &TempNode)); > if (ACPI_FAILURE (Status)) > { > return (AE_OK); > diff --git a/src/acpica/source/components/debugger/dbobject.c b/src/acpica/source/components/debugger/dbobject.c > index e52d1ca..32c71b1 100644 > --- a/src/acpica/source/components/debugger/dbobject.c > +++ b/src/acpica/source/components/debugger/dbobject.c > @@ -567,7 +567,8 @@ AcpiDbDecodeLocals ( > } > else > { > - AcpiOsPrintf ("No Local Variables are initialized for method [%4.4s]\n", > + AcpiOsPrintf ( > + "No Local Variables are initialized for method [%4.4s]\n", > AcpiUtGetNodeName (Node)); > } > } > @@ -644,7 +645,8 @@ AcpiDbDecodeArguments ( > } > else > { > - AcpiOsPrintf ("No Arguments are initialized for method [%4.4s]\n", > + AcpiOsPrintf ( > + "No Arguments are initialized for method [%4.4s]\n", > AcpiUtGetNodeName (Node)); > } > } > diff --git a/src/acpica/source/components/debugger/dbstats.c b/src/acpica/source/components/debugger/dbstats.c > index 1b757a4..d00e295 100644 > --- a/src/acpica/source/components/debugger/dbstats.c > +++ b/src/acpica/source/components/debugger/dbstats.c > @@ -411,7 +411,7 @@ AcpiDbClassifyOneObject ( > Op = AcpiPsGetDepthNext (Root, Op); > > SizeOfParseTree = (NumGrammarElements - NumMethodElements) * > - (UINT32) sizeof (ACPI_PARSE_OBJECT); > + (UINT32) sizeof (ACPI_PARSE_OBJECT); > SizeOfMethodTrees = NumMethodElements * (UINT32) sizeof (ACPI_PARSE_OBJECT); > SizeOfNodeEntries = NumNodes * (UINT32) sizeof (ACPI_NAMESPACE_NODE); > SizeOfAcpiObjects = NumNodes * (UINT32) sizeof (ACPI_OPERAND_OBJECT); > @@ -511,6 +511,7 @@ AcpiDbDisplayStatistics ( > AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", AcpiUtGetTypeName (i), > AcpiGbl_NodeTypeCount [i], AcpiGbl_ObjTypeCount [i]); > } > + > AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "Misc/Unknown", > AcpiGbl_NodeTypeCountMisc, AcpiGbl_ObjTypeCountMisc); > > diff --git a/src/acpica/source/components/debugger/dbtest.c b/src/acpica/source/components/debugger/dbtest.c > index 679a9d6..2e3332e 100644 > --- a/src/acpica/source/components/debugger/dbtest.c > +++ b/src/acpica/source/components/debugger/dbtest.c > @@ -1052,7 +1052,8 @@ AcpiDbEvaluateAllPredefinedNames ( > ACPI_UINT32_MAX, AcpiDbEvaluateOnePredefinedName, NULL, > (void *) &Info, NULL); > > - AcpiOsPrintf ("Evaluated %u predefined names in the namespace\n", Info.Count); > + AcpiOsPrintf ( > + "Evaluated %u predefined names in the namespace\n", Info.Count); > } > > > @@ -1105,7 +1106,7 @@ AcpiDbEvaluateOnePredefinedName ( > return (AE_OK); > } > > - Pathname = AcpiNsGetExternalPathname (Node); > + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); > if (!Pathname) > { > return (AE_OK); > diff --git a/src/acpica/source/components/debugger/dbutils.c b/src/acpica/source/components/debugger/dbutils.c > index a52a201..6cdb683 100644 > --- a/src/acpica/source/components/debugger/dbutils.c > +++ b/src/acpica/source/components/debugger/dbutils.c > @@ -271,6 +271,7 @@ AcpiDbDumpExternalObject ( > { > AcpiOsPrintf ("\n"); > } > + > AcpiUtDebugDumpBuffer ( > ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), > ObjDesc->Buffer.Length, DB_BYTE_DISPLAY, _COMPONENT); > diff --git a/src/acpica/source/components/debugger/dbxface.c b/src/acpica/source/components/debugger/dbxface.c > index 0004665..ad99ad1 100644 > --- a/src/acpica/source/components/debugger/dbxface.c > +++ b/src/acpica/source/components/debugger/dbxface.c > @@ -224,6 +224,40 @@ AcpiDbStartCommand ( > > /******************************************************************************* > * > + * FUNCTION: AcpiDbSignalBreakPoint > + * > + * PARAMETERS: WalkState - Current walk > + * > + * RETURN: Status > + * > + * DESCRIPTION: Called for AML_BREAK_POINT_OP > + * > + ******************************************************************************/ > + > +void > +AcpiDbSignalBreakPoint ( > + ACPI_WALK_STATE *WalkState) > +{ > + > +#ifndef ACPI_APPLICATION > + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId ()) > + { > + return; > + } > +#endif > + > + /* > + * Set the single-step flag. This will cause the debugger (if present) > + * to break to the console within the AML debugger at the start of the > + * next AML instruction. > + */ > + AcpiGbl_CmSingleStep = TRUE; > + AcpiOsPrintf ("**break** Executed AML BreakPoint opcode\n"); > +} > + > + > +/******************************************************************************* > + * > * FUNCTION: AcpiDbSingleStep > * > * PARAMETERS: WalkState - Current walk > @@ -253,6 +287,13 @@ AcpiDbSingleStep ( > ACPI_FUNCTION_ENTRY (); > > > +#ifndef ACPI_APPLICATION > + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId ()) > + { > + return (AE_OK); > + } > +#endif > + > /* Check the abort flag */ > > if (AcpiGbl_AbortMethod) > @@ -511,6 +552,10 @@ AcpiInitializeDebugger ( > AcpiGbl_DbScopeBuf [1] = 0; > AcpiGbl_DbScopeNode = AcpiGbl_RootNode; > > + /* Initialize user commands loop */ > + > + AcpiGbl_DbTerminateLoop = FALSE; > + > /* > * If configured for multi-thread support, the debug executor runs in > * a separate thread so that the front end can be in another address > @@ -538,15 +583,21 @@ AcpiInitializeDebugger ( > > /* Create the debug execution thread to execute commands */ > > - Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, > + AcpiGbl_DbThreadsTerminated = FALSE; > + Status = AcpiOsExecute (OSL_DEBUGGER_MAIN_THREAD, > AcpiDbExecuteThread, NULL); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > "Could not start debugger thread")); > + AcpiGbl_DbThreadsTerminated = TRUE; > return_ACPI_STATUS (Status); > } > } > + else > + { > + AcpiGbl_DbThreadId = AcpiOsGetThreadId (); > + } > > return_ACPI_STATUS (AE_OK); > } > @@ -571,6 +622,22 @@ AcpiTerminateDebugger ( > void) > { > > + /* Terminate the AML Debugger */ > + > + AcpiGbl_DbTerminateLoop = TRUE; > + > + if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED) > + { > + AcpiOsReleaseMutex (AcpiGbl_DbCommandReady); > + > + /* Wait the AML Debugger threads */ > + > + while (!AcpiGbl_DbThreadsTerminated) > + { > + AcpiOsSleep (100); > + } > + } > + > if (AcpiGbl_DbBuffer) > { > AcpiOsFree (AcpiGbl_DbBuffer); > @@ -583,3 +650,25 @@ AcpiTerminateDebugger ( > } > > ACPI_EXPORT_SYMBOL (AcpiTerminateDebugger) > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiSetDebuggerThreadId > + * > + * PARAMETERS: ThreadId - Debugger thread ID > + * > + * RETURN: None > + * > + * DESCRIPTION: Set debugger thread ID > + * > + ******************************************************************************/ > + > +void > +AcpiSetDebuggerThreadId ( > + ACPI_THREAD_ID ThreadId) > +{ > + AcpiGbl_DbThreadId = ThreadId; > +} > + > +ACPI_EXPORT_SYMBOL (AcpiSetDebuggerThreadId) > diff --git a/src/acpica/source/components/disassembler/dmbuffer.c b/src/acpica/source/components/disassembler/dmbuffer.c > index d6985ef..4ad8be9 100644 > --- a/src/acpica/source/components/disassembler/dmbuffer.c > +++ b/src/acpica/source/components/disassembler/dmbuffer.c > @@ -326,7 +326,8 @@ AcpiDmByteList ( > { > case ACPI_DASM_RESOURCE: > > - AcpiDmResourceTemplate (Info, Op->Common.Parent, ByteData, ByteCount); > + AcpiDmResourceTemplate ( > + Info, Op->Common.Parent, ByteData, ByteCount); > break; > > case ACPI_DASM_STRING: > @@ -823,13 +824,17 @@ AcpiDmPldBuffer ( > AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_Lid", PldInfo->Lid); > AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_Panel", > AcpiDmFindNameByIndex(PldInfo->Panel, DmPanelList)); > + > AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_VerticalPosition", > AcpiDmFindNameByIndex(PldInfo->VerticalPosition, DmVerticalPositionList)); > + > AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_HorizontalPosition", > AcpiDmFindNameByIndex(PldInfo->HorizontalPosition, DmHorizontalPositionList)); > + > AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_Shape", > AcpiDmFindNameByIndex(PldInfo->Shape, DmShapeList)); > AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_GroupOrientation", PldInfo->GroupOrientation); > + > AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_GroupToken", PldInfo->GroupToken); > AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_GroupPosition", PldInfo->GroupPosition); > AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_Bay", PldInfo->Bay); > diff --git a/src/acpica/source/components/disassembler/dmcstyle.c b/src/acpica/source/components/disassembler/dmcstyle.c > index 0dbbb60..0e23133 100644 > --- a/src/acpica/source/components/disassembler/dmcstyle.c > +++ b/src/acpica/source/components/disassembler/dmcstyle.c > @@ -757,6 +757,7 @@ AcpiDmGetCompoundSymbol ( > default: > > /* No operator string for all other opcodes */ > + > return (NULL); > } > > diff --git a/src/acpica/source/components/disassembler/dmdeferred.c b/src/acpica/source/components/disassembler/dmdeferred.c > index 6599c04..b6db169 100644 > --- a/src/acpica/source/components/disassembler/dmdeferred.c > +++ b/src/acpica/source/components/disassembler/dmdeferred.c > @@ -177,7 +177,8 @@ AcpiDmParseDeferredOps ( > case AML_PACKAGE_OP: > case AML_VAR_PACKAGE_OP: > > - Status = AcpiDmDeferredParse (Op, Op->Named.Data, Op->Named.Length); > + Status = AcpiDmDeferredParse ( > + Op, Op->Named.Data, Op->Named.Length); > if (ACPI_FAILURE (Status)) > { > return (Status); > diff --git a/src/acpica/source/components/disassembler/dmnames.c b/src/acpica/source/components/disassembler/dmnames.c > index 673d726..9409e21 100644 > --- a/src/acpica/source/components/disassembler/dmnames.c > +++ b/src/acpica/source/components/disassembler/dmnames.c > @@ -227,15 +227,15 @@ AcpiPsDisplayObjectPathname ( > /* Node not defined in this scope, look it up */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > - WalkState, &(Node)); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > + WalkState, &(Node)); > > if (ACPI_FAILURE (Status)) > { > /* > - * We can't get the pathname since the object > - * is not in the namespace. This can happen during single > - * stepping where a dynamic named object is *about* to be created. > + * We can't get the pathname since the object is not in the > + * namespace. This can happen during single stepping > + * where a dynamic named object is *about* to be created. > */ > AcpiOsPrintf (" [Path not found]"); > goto Exit; > @@ -341,6 +341,7 @@ AcpiDmNamestring ( > > AcpiOsPrintf ("."); > } > + > Name += ACPI_NAME_SIZE; > } > } > @@ -404,7 +405,6 @@ AcpiDmDisplayPath ( > } > > Prev = NULL; /* Start with Root Node */ > - > while (Prev != Op) > { > /* Search upwards in the tree to find scope with "prev" as its parent */ > @@ -462,6 +462,7 @@ AcpiDmDisplayPath ( > DoDot = TRUE; > } > } > + > Prev = Search; > } > } > diff --git a/src/acpica/source/components/disassembler/dmopcode.c b/src/acpica/source/components/disassembler/dmopcode.c > index 866da38..68dda89 100644 > --- a/src/acpica/source/components/disassembler/dmopcode.c > +++ b/src/acpica/source/components/disassembler/dmopcode.c > @@ -892,7 +892,9 @@ AcpiDmDisassembleOneOp ( > } > else if (Status == AE_AML_NO_RESOURCE_END_TAG) > { > - AcpiOsPrintf ("/**** Is ResourceTemplate, but EndTag not at buffer end ****/ "); > + AcpiOsPrintf ( > + "/**** Is ResourceTemplate, " > + "but EndTag not at buffer end ****/ "); > } > } > > @@ -967,7 +969,8 @@ AcpiDmDisassembleOneOp ( > > if (Op->Common.AmlOpcode == AML_INT_EXTACCESSFIELD_OP) > { > - AcpiOsPrintf (" (0x%2.2X)", (unsigned) ((Op->Common.Value.Integer >> 16) & 0xFF)); > + AcpiOsPrintf (" (0x%2.2X)", (unsigned) > + ((Op->Common.Value.Integer >> 16) & 0xFF)); > } > > AcpiOsPrintf (")"); > diff --git a/src/acpica/source/components/disassembler/dmresrc.c b/src/acpica/source/components/disassembler/dmresrc.c > index 5c9e7b9..923d5da 100644 > --- a/src/acpica/source/components/disassembler/dmresrc.c > +++ b/src/acpica/source/components/disassembler/dmresrc.c > @@ -284,6 +284,7 @@ AcpiDmBitList ( > { > AcpiOsPrintf (","); > } > + > Previous = TRUE; > AcpiOsPrintf ("%u", i); > } > @@ -357,7 +358,8 @@ AcpiDmResourceTemplate ( > Status = AcpiUtValidateResource (NULL, Aml, &ResourceIndex); > if (ACPI_FAILURE (Status)) > { > - AcpiOsPrintf ("/*** Could not validate Resource, type (%X) %s***/\n", > + AcpiOsPrintf ( > + "/*** Could not validate Resource, type (%X) %s***/\n", > ResourceType, AcpiFormatException (Status)); > return; > } > @@ -407,7 +409,8 @@ AcpiDmResourceTemplate ( > > AcpiDmIndent (Level); > AcpiOsPrintf ( > - "/*** Disassembler: inserted missing EndDependentFn () ***/\n"); > + "/*** Disassembler: inserted " > + "missing EndDependentFn () ***/\n"); > } > return; > > diff --git a/src/acpica/source/components/disassembler/dmresrcl.c b/src/acpica/source/components/disassembler/dmresrcl.c > index 155f01c..ab68cdb 100644 > --- a/src/acpica/source/components/disassembler/dmresrcl.c > +++ b/src/acpica/source/components/disassembler/dmresrcl.c > @@ -379,7 +379,8 @@ AcpiDmAddressCommon ( > > if ((ResourceType > 2) && (ResourceType < 0xC0)) > { > - AcpiOsPrintf ("/**** Invalid Resource Type: 0x%X ****/", ResourceType); > + AcpiOsPrintf ( > + "/**** Invalid Resource Type: 0x%X ****/", ResourceType); > return; > } > > @@ -399,7 +400,8 @@ AcpiDmAddressCommon ( > > /* This is either a Memory, IO, or BusNumber descriptor (0,1,2) */ > > - AcpiOsPrintf ("%s (", AcpiGbl_WordDecode [ACPI_GET_2BIT_FLAG (ResourceType)]); > + AcpiOsPrintf ("%s (", > + AcpiGbl_WordDecode [ACPI_GET_2BIT_FLAG (ResourceType)]); > > /* Decode the general and type-specific flags */ > > @@ -412,7 +414,8 @@ AcpiDmAddressCommon ( > AcpiDmIoFlags (Flags); > if (ResourceType == ACPI_IO_RANGE) > { > - AcpiOsPrintf (" %s,", AcpiGbl_RngDecode [ACPI_GET_2BIT_FLAG (SpecificFlags)]); > + AcpiOsPrintf (" %s,", > + AcpiGbl_RngDecode [ACPI_GET_2BIT_FLAG (SpecificFlags)]); > } > } > } > @@ -807,7 +810,8 @@ AcpiDmExtendedDescriptor ( > > /* Dump resource name and flags */ > > - AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64, Level); > + AcpiDmAddressCommon ( > + Resource, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64, Level); > > /* Dump the 5 contiguous QWORD values */ > > @@ -943,10 +947,12 @@ AcpiDmFixedMemory32Descriptor ( > AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]); > > AcpiDmIndent (Level + 1); > - AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, "Address Base"); > + AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, > + "Address Base"); > > AcpiDmIndent (Level + 1); > - AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, "Address Length"); > + AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, > + "Address Length"); > > /* Insert a descriptor name */ > > diff --git a/src/acpica/source/components/disassembler/dmresrcl2.c b/src/acpica/source/components/disassembler/dmresrcl2.c > index 8006458..8a972ff 100644 > --- a/src/acpica/source/components/disassembler/dmresrcl2.c > +++ b/src/acpica/source/components/disassembler/dmresrcl2.c > @@ -224,6 +224,7 @@ AcpiDmDumpRawDataBuffer ( > > AcpiOsPrintf (", "); > } > + > AcpiOsPrintf ("\n"); > AcpiDmIndent (Level + 2); > > @@ -269,7 +270,8 @@ AcpiDmGpioCommon ( > AcpiDmIndent (Level + 1); > if (Resource->Gpio.ResSourceOffset) > { > - DeviceName = ACPI_ADD_PTR (char, Resource, Resource->Gpio.ResSourceOffset), > + DeviceName = ACPI_ADD_PTR (char, > + Resource, Resource->Gpio.ResSourceOffset), > AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); > } > > @@ -313,13 +315,15 @@ AcpiDmGpioCommon ( > for (i = 0; i < PinCount; i++) > { > AcpiDmIndent (Level + 2); > - AcpiOsPrintf ("0x%4.4X%s\n", PinList[i], ((i + 1) < PinCount) ? "," : ""); > + AcpiOsPrintf ("0x%4.4X%s\n", PinList[i], > + ((i + 1) < PinCount) ? "," : ""); > } > > AcpiDmIndent (Level + 1); > AcpiOsPrintf ("}\n"); > > - MpSaveGpioInfo (Info->MappingOp, Resource, PinCount, PinList, DeviceName); > + MpSaveGpioInfo (Info->MappingOp, Resource, > + PinCount, PinList, DeviceName); > } > > > diff --git a/src/acpica/source/components/disassembler/dmresrcs.c b/src/acpica/source/components/disassembler/dmresrcs.c > index 99d0dfc..670ee48 100644 > --- a/src/acpica/source/components/disassembler/dmresrcs.c > +++ b/src/acpica/source/components/disassembler/dmresrcs.c > @@ -243,7 +243,8 @@ AcpiDmFixedDmaDescriptor ( > } > else > { > - AcpiOsPrintf ("%X /* INVALID DMA WIDTH */, ", Resource->FixedDma.Width); > + AcpiOsPrintf ("%X /* INVALID DMA WIDTH */, ", > + Resource->FixedDma.Width); > } > > /* Insert a descriptor name */ > diff --git a/src/acpica/source/components/disassembler/dmwalk.c b/src/acpica/source/components/disassembler/dmwalk.c > index a2a5c51..ccc1200 100644 > --- a/src/acpica/source/components/disassembler/dmwalk.c > +++ b/src/acpica/source/components/disassembler/dmwalk.c > @@ -536,7 +536,7 @@ AcpiDmDescendingOp ( > if (Info->WalkState) > { > AmlOffset = (UINT32) ACPI_PTR_DIFF (Op->Common.Aml, > - Info->WalkState->ParserState.AmlStart); > + Info->WalkState->ParserState.AmlStart); > if (AcpiGbl_DmOpt_Verbose) > { > AcpiOsPrintf (DB_FULL_OP_INFO, > @@ -559,8 +559,8 @@ AcpiDmDescendingOp ( > } > } > else if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) && > - (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && > - (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) > + (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && > + (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) > { > /* > * This is a first-level element of a term list, > @@ -978,8 +978,8 @@ AcpiDmAscendingOp ( > if (!AcpiDmCommaIfListMember (Op)) > { > if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) && > - (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && > - (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) > + (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && > + (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) > { > /* > * This is a first-level element of a term list > @@ -1040,8 +1040,8 @@ AcpiDmAscendingOp ( > if (!AcpiDmCommaIfListMember (Op)) > { > if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) && > - (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && > - (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) > + (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && > + (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) > { > /* > * This is a first-level element of a term list > diff --git a/src/acpica/source/components/dispatcher/dsargs.c b/src/acpica/source/components/dispatcher/dsargs.c > index 344e55e..6343d32 100644 > --- a/src/acpica/source/components/dispatcher/dsargs.c > +++ b/src/acpica/source/components/dispatcher/dsargs.c > @@ -186,7 +186,7 @@ AcpiDsExecuteArguments ( > } > > Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart, > - AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); > + AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); > if (ACPI_FAILURE (Status)) > { > AcpiDsDeleteWalkState (WalkState); > @@ -233,7 +233,7 @@ AcpiDsExecuteArguments ( > /* Execute the opcode and arguments */ > > Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart, > - AmlLength, NULL, ACPI_IMODE_EXECUTE); > + AmlLength, NULL, ACPI_IMODE_EXECUTE); > if (ACPI_FAILURE (Status)) > { > AcpiDsDeleteWalkState (WalkState); > @@ -286,8 +286,8 @@ AcpiDsGetBufferFieldArguments ( > ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc); > Node = ObjDesc->BufferField.Node; > > - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_BUFFER_FIELD, > - Node, NULL)); > + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname ( > + ACPI_TYPE_BUFFER_FIELD, Node, NULL)); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n", > AcpiUtGetNodeName (Node))); > @@ -295,7 +295,7 @@ AcpiDsGetBufferFieldArguments ( > /* Execute the AML code for the TermArg arguments */ > > Status = AcpiDsExecuteArguments (Node, Node->Parent, > - ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); > + ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); > return_ACPI_STATUS (Status); > } > > @@ -335,8 +335,8 @@ AcpiDsGetBankFieldArguments ( > ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc); > Node = ObjDesc->BankField.Node; > > - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_LOCAL_BANK_FIELD, > - Node, NULL)); > + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname ( > + ACPI_TYPE_LOCAL_BANK_FIELD, Node, NULL)); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BankField Arg Init\n", > AcpiUtGetNodeName (Node))); > @@ -344,7 +344,7 @@ AcpiDsGetBankFieldArguments ( > /* Execute the AML code for the TermArg arguments */ > > Status = AcpiDsExecuteArguments (Node, Node->Parent, > - ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); > + ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); > return_ACPI_STATUS (Status); > } > > @@ -384,7 +384,8 @@ AcpiDsGetBufferArguments ( > if (!Node) > { > ACPI_ERROR ((AE_INFO, > - "No pointer back to namespace node in buffer object %p", ObjDesc)); > + "No pointer back to namespace node in buffer object %p", > + ObjDesc)); > return_ACPI_STATUS (AE_AML_INTERNAL); > } > > @@ -393,7 +394,7 @@ AcpiDsGetBufferArguments ( > /* Execute the AML code for the TermArg arguments */ > > Status = AcpiDsExecuteArguments (Node, Node, > - ObjDesc->Buffer.AmlLength, ObjDesc->Buffer.AmlStart); > + ObjDesc->Buffer.AmlLength, ObjDesc->Buffer.AmlStart); > return_ACPI_STATUS (Status); > } > > @@ -442,7 +443,7 @@ AcpiDsGetPackageArguments ( > /* Execute the AML code for the TermArg arguments */ > > Status = AcpiDsExecuteArguments (Node, Node, > - ObjDesc->Package.AmlLength, ObjDesc->Package.AmlStart); > + ObjDesc->Package.AmlLength, ObjDesc->Package.AmlStart); > return_ACPI_STATUS (Status); > } > > @@ -487,22 +488,23 @@ AcpiDsGetRegionArguments ( > > Node = ObjDesc->Region.Node; > > - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_REGION, Node, NULL)); > + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname ( > + ACPI_TYPE_REGION, Node, NULL)); > > - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n", > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "[%4.4s] OpRegion Arg Init at AML %p\n", > AcpiUtGetNodeName (Node), ExtraDesc->Extra.AmlStart)); > > /* Execute the argument AML */ > > Status = AcpiDsExecuteArguments (Node, ExtraDesc->Extra.ScopeNode, > - ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); > + ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > } > > Status = AcpiUtAddAddressRange (ObjDesc->Region.SpaceId, > - ObjDesc->Region.Address, ObjDesc->Region.Length, > - Node); > + ObjDesc->Region.Address, ObjDesc->Region.Length, Node); > return_ACPI_STATUS (Status); > } > diff --git a/src/acpica/source/components/dispatcher/dscontrol.c b/src/acpica/source/components/dispatcher/dscontrol.c > index a069ed5..270cf0e 100644 > --- a/src/acpica/source/components/dispatcher/dscontrol.c > +++ b/src/acpica/source/components/dispatcher/dscontrol.c > @@ -119,6 +119,7 @@ > #include "amlcode.h" > #include "acdispat.h" > #include "acinterp.h" > +#include "acdebug.h" > > #define _COMPONENT ACPI_DISPATCHER > ACPI_MODULE_NAME ("dscontrol") > @@ -191,9 +192,12 @@ AcpiDsExecBeginControlOp ( > * Save a pointer to the predicate for multiple executions > * of a loop > */ > - ControlState->Control.AmlPredicateStart = WalkState->ParserState.Aml - 1; > - ControlState->Control.PackageEnd = WalkState->ParserState.PkgEnd; > - ControlState->Control.Opcode = Op->Common.AmlOpcode; > + ControlState->Control.AmlPredicateStart = > + WalkState->ParserState.Aml - 1; > + ControlState->Control.PackageEnd = > + WalkState->ParserState.PkgEnd; > + ControlState->Control.Opcode = > + Op->Common.AmlOpcode; > > > /* Push the control state on this walk's control stack */ > @@ -304,7 +308,8 @@ AcpiDsExecEndControlOp ( > * another time > */ > Status = AE_CTRL_PENDING; > - WalkState->AmlLastWhile = ControlState->Control.AmlPredicateStart; > + WalkState->AmlLastWhile = > + ControlState->Control.AmlPredicateStart; > break; > } > > @@ -348,7 +353,8 @@ AcpiDsExecEndControlOp ( > * an arg or local), resolve it now because it may > * cease to exist at the end of the method. > */ > - Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState); > + Status = AcpiExResolveToValue ( > + &WalkState->Operands [0], WalkState); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -377,11 +383,15 @@ AcpiDsExecEndControlOp ( > * Allow references created by the Index operator to return > * unchanged. > */ > - if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == ACPI_DESC_TYPE_OPERAND) && > - ((WalkState->Results->Results.ObjDesc [0])->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && > - ((WalkState->Results->Results.ObjDesc [0])->Reference.Class != ACPI_REFCLASS_INDEX)) > + if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == > + ACPI_DESC_TYPE_OPERAND) && > + ((WalkState->Results->Results.ObjDesc [0])->Common.Type == > + ACPI_TYPE_LOCAL_REFERENCE) && > + ((WalkState->Results->Results.ObjDesc [0])->Reference.Class != > + ACPI_REFCLASS_INDEX)) > { > - Status = AcpiExResolveToValue (&WalkState->Results->Results.ObjDesc [0], WalkState); > + Status = AcpiExResolveToValue ( > + &WalkState->Results->Results.ObjDesc [0], WalkState); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -399,9 +409,9 @@ AcpiDsExecEndControlOp ( > AcpiUtRemoveReference (WalkState->Operands [0]); > } > > - WalkState->Operands [0] = NULL; > - WalkState->NumOperands = 0; > - WalkState->ReturnDesc = NULL; > + WalkState->Operands[0] = NULL; > + WalkState->NumOperands = 0; > + WalkState->ReturnDesc = NULL; > } > > > @@ -422,20 +432,12 @@ AcpiDsExecEndControlOp ( > > case AML_BREAK_POINT_OP: > > - /* > - * Set the single-step flag. This will cause the debugger (if present) > - * to break to the console within the AML debugger at the start of the > - * next AML instruction. > - */ > - ACPI_DEBUGGER_EXEC ( > - AcpiGbl_CmSingleStep = TRUE); > - ACPI_DEBUGGER_EXEC ( > - AcpiOsPrintf ("**break** Executed AML BreakPoint opcode\n")); > + AcpiDbSignalBreakPoint (WalkState); > > /* Call to the OSL in case OS wants a piece of the action */ > > Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT, > - "Executed AML Breakpoint opcode"); > + "Executed AML Breakpoint opcode"); > break; > > case AML_BREAK_OP: > @@ -459,7 +461,8 @@ AcpiDsExecEndControlOp ( > > /* Was: WalkState->AmlLastWhile = WalkState->ControlState->Control.AmlPredicateStart; */ > > - WalkState->AmlLastWhile = WalkState->ControlState->Control.PackageEnd; > + WalkState->AmlLastWhile = > + WalkState->ControlState->Control.PackageEnd; > > /* Return status depending on opcode */ > > diff --git a/src/acpica/source/components/dispatcher/dsdebug.c b/src/acpica/source/components/dispatcher/dsdebug.c > index 80b3e0c..02fdebc 100644 > --- a/src/acpica/source/components/dispatcher/dsdebug.c > +++ b/src/acpica/source/components/dispatcher/dsdebug.c > @@ -247,6 +247,7 @@ AcpiDsDumpMethodStack ( > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > "\n**** Exception %s during execution of method ", > AcpiFormatException (Status))); > + > AcpiDsPrintNodePathname (WalkState->MethodNode, NULL); > > /* Display stack of executing methods */ > @@ -263,8 +264,8 @@ AcpiDsDumpMethodStack ( > if (MethodDesc) > { > AcpiExStopTraceMethod ( > - (ACPI_NAMESPACE_NODE *) MethodDesc->Method.Node, > - MethodDesc, WalkState); > + (ACPI_NAMESPACE_NODE *) MethodDesc->Method.Node, > + MethodDesc, WalkState); > } > > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > @@ -292,8 +293,8 @@ AcpiDsDumpMethodStack ( > { > /* > * This method has called another method > - * NOTE: the method call parse subtree is already deleted at this > - * point, so we cannot disassemble the method invocation. > + * NOTE: the method call parse subtree is already deleted at > + * this point, so we cannot disassemble the method invocation. > */ > ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Call to method ")); > AcpiDsPrintNodePathname (PreviousMethod, NULL); > diff --git a/src/acpica/source/components/dispatcher/dsfield.c b/src/acpica/source/components/dispatcher/dsfield.c > index cf8c189..b2d5cfd 100644 > --- a/src/acpica/source/components/dispatcher/dsfield.c > +++ b/src/acpica/source/components/dispatcher/dsfield.c > @@ -187,6 +187,7 @@ AcpiDsCreateExternalRegion ( > * insert the name into the namespace. > */ > AcpiDmAddOpToExternalList (Op, Path, ACPI_TYPE_REGION, 0, 0); > + > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_REGION, > ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT, WalkState, Node); > if (ACPI_FAILURE (Status)) > @@ -282,7 +283,7 @@ AcpiDsCreateBufferField ( > /* Creating new namespace node, should not already exist */ > > Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | > - ACPI_NS_ERROR_IF_FOUND; > + ACPI_NS_ERROR_IF_FOUND; > > /* > * Mark node temporary if we are executing a normal control > @@ -296,9 +297,9 @@ AcpiDsCreateBufferField ( > > /* Enter the NameString into the namespace */ > > - Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1, > - Flags, WalkState, &Node); > + Status = AcpiNsLookup (WalkState->ScopeInfo, > + Arg->Common.Value.String, ACPI_TYPE_ANY, > + ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); > @@ -339,13 +340,13 @@ AcpiDsCreateBufferField ( > } > > /* > - * Remember location in AML stream of the field unit opcode and operands -- > - * since the buffer and index operands must be evaluated. > + * Remember location in AML stream of the field unit opcode and operands > + * -- since the buffer and index operands must be evaluated. > */ > - SecondDesc = ObjDesc->Common.NextObject; > - SecondDesc->Extra.AmlStart = Op->Named.Data; > + SecondDesc = ObjDesc->Common.NextObject; > + SecondDesc->Extra.AmlStart = Op->Named.Data; > SecondDesc->Extra.AmlLength = Op->Named.Length; > - ObjDesc->BufferField.Node = Node; > + ObjDesc->BufferField.Node = Node; > > /* Attach constructed field descriptors to parent node */ > > @@ -413,8 +414,8 @@ AcpiDsGetFieldNames ( > { > case AML_INT_RESERVEDFIELD_OP: > > - Position = (UINT64) Info->FieldBitPosition > - + (UINT64) Arg->Common.Value.Size; > + Position = (UINT64) Info->FieldBitPosition + > + (UINT64) Arg->Common.Value.Size; > > if (Position > ACPI_UINT32_MAX) > { > @@ -447,11 +448,13 @@ AcpiDsGetFieldNames ( > > /* AccessAttribute (AttribQuick, AttribByte, etc.) */ > > - Info->Attribute = (UINT8) ((Arg->Common.Value.Integer >> 8) & 0xFF); > + Info->Attribute = (UINT8) > + ((Arg->Common.Value.Integer >> 8) & 0xFF); > > /* AccessLength (for serial/buffer protocols) */ > > - Info->AccessLength = (UINT8) ((Arg->Common.Value.Integer >> 16) & 0xFF); > + Info->AccessLength = (UINT8) > + ((Arg->Common.Value.Integer >> 16) & 0xFF); > break; > > case AML_INT_CONNECTION_OP: > @@ -478,9 +481,9 @@ AcpiDsGetFieldNames ( > /* Lookup the Connection() namepath, it should already exist */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, > - Child->Common.Value.Name, ACPI_TYPE_ANY, > - ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &Info->ConnectionNode); > + Child->Common.Value.Name, ACPI_TYPE_ANY, > + ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &Info->ConnectionNode); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE (Child->Common.Value.Name, Status); > @@ -494,9 +497,9 @@ AcpiDsGetFieldNames ( > /* Lookup the name, it should already exist */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, > - (char *) &Arg->Named.Name, Info->FieldType, > - ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &Info->FieldNode); > + (char *) &Arg->Named.Name, Info->FieldType, > + ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &Info->FieldNode); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status); > @@ -525,8 +528,8 @@ AcpiDsGetFieldNames ( > > /* Keep track of bit position for the next field */ > > - Position = (UINT64) Info->FieldBitPosition > - + (UINT64) Arg->Common.Value.Size; > + Position = (UINT64) Info->FieldBitPosition + > + (UINT64) Arg->Common.Value.Size; > > if (Position > ACPI_UINT32_MAX) > { > @@ -543,7 +546,8 @@ AcpiDsGetFieldNames ( > default: > > ACPI_ERROR ((AE_INFO, > - "Invalid opcode in field list: 0x%X", Arg->Common.AmlOpcode)); > + "Invalid opcode in field list: 0x%X", > + Arg->Common.AmlOpcode)); > return_ACPI_STATUS (AE_AML_BAD_OPCODE); > } > > @@ -589,8 +593,8 @@ AcpiDsCreateField ( > if (!RegionNode) > { > Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name, > - ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); > + ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); > #ifdef ACPI_ASL_COMPILER > Status = AcpiDsCreateExternalRegion (Status, Arg, > Arg->Common.Value.Name, WalkState, &RegionNode); > @@ -696,7 +700,7 @@ AcpiDsInitFieldObjects ( > /* Creating new namespace node(s), should not already exist */ > > Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | > - ACPI_NS_ERROR_IF_FOUND; > + ACPI_NS_ERROR_IF_FOUND; > > /* > * Mark node(s) temporary if we are executing a normal control > @@ -721,8 +725,8 @@ AcpiDsInitFieldObjects ( > if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP) > { > Status = AcpiNsLookup (WalkState->ScopeInfo, > - (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1, > - Flags, WalkState, &Node); > + (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1, > + Flags, WalkState, &Node); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status); > @@ -782,8 +786,8 @@ AcpiDsCreateBankField ( > if (!RegionNode) > { > Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name, > - ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); > + ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); > #ifdef ACPI_ASL_COMPILER > Status = AcpiDsCreateExternalRegion (Status, Arg, > Arg->Common.Value.Name, WalkState, &RegionNode); > @@ -799,8 +803,8 @@ AcpiDsCreateBankField ( > > Arg = Arg->Common.Next; > Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); > @@ -826,11 +830,12 @@ AcpiDsCreateBankField ( > > /* > * Use Info.DataRegisterNode to store BankField Op > - * It's safe because DataRegisterNode will never be used when create bank field > - * We store AmlStart and AmlLength in the BankField Op for late evaluation > - * Used in AcpiExPrepFieldValue(Info) > + * It's safe because DataRegisterNode will never be used when create > + * bank field \we store AmlStart and AmlLength in the BankField Op for > + * late evaluation. Used in AcpiExPrepFieldValue(Info) > * > - * TBD: Or, should we add a field in ACPI_CREATE_FIELD_INFO, like "void *ParentOp"? > + * TBD: Or, should we add a field in ACPI_CREATE_FIELD_INFO, like > + * "void *ParentOp"? > */ > Info.DataRegisterNode = (ACPI_NAMESPACE_NODE*) Op; > > @@ -871,8 +876,8 @@ AcpiDsCreateIndexField ( > > Arg = Op->Common.Value.Arg; > Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); > @@ -883,8 +888,8 @@ AcpiDsCreateIndexField ( > > Arg = Arg->Common.Next; > Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); > diff --git a/src/acpica/source/components/dispatcher/dsinit.c b/src/acpica/source/components/dispatcher/dsinit.c > index d24cc01..4d30879 100644 > --- a/src/acpica/source/components/dispatcher/dsinit.c > +++ b/src/acpica/source/components/dispatcher/dsinit.c > @@ -314,7 +314,7 @@ AcpiDsInitializeObjects ( > * the namespace reader lock. > */ > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, StartNode, ACPI_UINT32_MAX, > - ACPI_NS_WALK_UNLOCK, AcpiDsInitOneObject, NULL, &Info, NULL); > + ACPI_NS_WALK_UNLOCK, AcpiDsInitOneObject, NULL, &Info, NULL); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace")); > @@ -331,7 +331,8 @@ AcpiDsInitializeObjects ( > > if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) > { > - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "\nInitializing Namespace objects:\n")); > + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, > + "\nInitializing Namespace objects:\n")); > } > > /* Summary of objects initialized */ > @@ -339,9 +340,10 @@ AcpiDsInitializeObjects ( > ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, > "Table [%4.4s:%8.8s] (id %.2X) - %4u Objects with %3u Devices, " > "%3u Regions, %4u Methods (%u/%u/%u Serial/Non/Cvt)\n", > - Table->Signature, Table->OemTableId, OwnerId, Info.ObjectCount, Info.DeviceCount, > - Info.OpRegionCount, Info.MethodCount, Info.SerialMethodCount, > - Info.NonSerialMethodCount, Info.SerializedMethodCount)); > + Table->Signature, Table->OemTableId, OwnerId, Info.ObjectCount, > + Info.DeviceCount,Info.OpRegionCount, Info.MethodCount, > + Info.SerialMethodCount, Info.NonSerialMethodCount, > + Info.SerializedMethodCount)); > > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "%u Methods, %u Regions\n", > Info.MethodCount, Info.OpRegionCount)); > diff --git a/src/acpica/source/components/dispatcher/dsmethod.c b/src/acpica/source/components/dispatcher/dsmethod.c > index 10c3548..0436ee1 100644 > --- a/src/acpica/source/components/dispatcher/dsmethod.c > +++ b/src/acpica/source/components/dispatcher/dsmethod.c > @@ -199,8 +199,8 @@ AcpiDsAutoSerializeMethod ( > return_ACPI_STATUS (AE_NO_MEMORY); > } > > - Status = AcpiDsInitAmlWalk (WalkState, Op, Node, ObjDesc->Method.AmlStart, > - ObjDesc->Method.AmlLength, NULL, 0); > + Status = AcpiDsInitAmlWalk (WalkState, Op, Node, > + ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength, NULL, 0); > if (ACPI_FAILURE (Status)) > { > AcpiDsDeleteWalkState (WalkState); > @@ -323,12 +323,12 @@ AcpiDsMethodError ( > * AE_OK, in which case the executing method will not be aborted. > */ > AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->Aml, > - WalkState->ParserState.AmlStart); > + WalkState->ParserState.AmlStart); > > Status = AcpiGbl_ExceptionHandler (Status, > - WalkState->MethodNode ? > - WalkState->MethodNode->Name.Integer : 0, > - WalkState->Opcode, AmlOffset, NULL); > + WalkState->MethodNode ? > + WalkState->MethodNode->Name.Integer : 0, > + WalkState->Opcode, AmlOffset, NULL); > AcpiExEnterInterpreter (); > } > > @@ -472,10 +472,12 @@ AcpiDsBeginMethodExecution ( > */ > if (WalkState && > (!(ObjDesc->Method.InfoFlags & ACPI_METHOD_IGNORE_SYNC_LEVEL)) && > - (WalkState->Thread->CurrentSyncLevel > ObjDesc->Method.Mutex->Mutex.SyncLevel)) > + (WalkState->Thread->CurrentSyncLevel > > + ObjDesc->Method.Mutex->Mutex.SyncLevel)) > { > ACPI_ERROR ((AE_INFO, > - "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%u)", > + "Cannot acquire Mutex for method [%4.4s]" > + ", current SyncLevel is too large (%u)", > AcpiUtGetNodeName (MethodNode), > WalkState->Thread->CurrentSyncLevel)); > > @@ -488,14 +490,15 @@ AcpiDsBeginMethodExecution ( > */ > if (!WalkState || > !ObjDesc->Method.Mutex->Mutex.ThreadId || > - (WalkState->Thread->ThreadId != ObjDesc->Method.Mutex->Mutex.ThreadId)) > + (WalkState->Thread->ThreadId != > + ObjDesc->Method.Mutex->Mutex.ThreadId)) > { > /* > * Acquire the method mutex. This releases the interpreter if we > * block (and reacquires it before it returns) > */ > - Status = AcpiExSystemWaitMutex (ObjDesc->Method.Mutex->Mutex.OsMutex, > - ACPI_WAIT_FOREVER); > + Status = AcpiExSystemWaitMutex ( > + ObjDesc->Method.Mutex->Mutex.OsMutex, ACPI_WAIT_FOREVER); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -508,8 +511,22 @@ AcpiDsBeginMethodExecution ( > ObjDesc->Method.Mutex->Mutex.OriginalSyncLevel = > WalkState->Thread->CurrentSyncLevel; > > - ObjDesc->Method.Mutex->Mutex.ThreadId = WalkState->Thread->ThreadId; > - WalkState->Thread->CurrentSyncLevel = ObjDesc->Method.SyncLevel; > + ObjDesc->Method.Mutex->Mutex.ThreadId = > + WalkState->Thread->ThreadId; > + > + /* > + * Update the current SyncLevel only if this is not an auto- > + * serialized method. In the auto case, we have to ignore > + * the sync level for the method mutex (created for the > + * auto-serialization) because we have no idea of what the > + * sync level should be. Therefore, just ignore it. > + */ > + if (!(ObjDesc->Method.InfoFlags & > + ACPI_METHOD_IGNORE_SYNC_LEVEL)) > + { > + WalkState->Thread->CurrentSyncLevel = > + ObjDesc->Method.SyncLevel; > + } > } > else > { > @@ -587,7 +604,8 @@ AcpiDsCallControlMethod ( > > ACPI_FUNCTION_TRACE_PTR (DsCallControlMethod, ThisWalkState); > > - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Calling method %p, currentstate=%p\n", > + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > + "Calling method %p, currentstate=%p\n", > ThisWalkState->PrevOp, ThisWalkState)); > > /* > @@ -607,8 +625,8 @@ AcpiDsCallControlMethod ( > > /* Init for new method, possibly wait on method mutex */ > > - Status = AcpiDsBeginMethodExecution (MethodNode, ObjDesc, > - ThisWalkState); > + Status = AcpiDsBeginMethodExecution ( > + MethodNode, ObjDesc, ThisWalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -616,8 +634,8 @@ AcpiDsCallControlMethod ( > > /* Begin method parse/execution. Create a new walk state */ > > - NextWalkState = AcpiDsCreateWalkState (ObjDesc->Method.OwnerId, > - NULL, ObjDesc, Thread); > + NextWalkState = AcpiDsCreateWalkState ( > + ObjDesc->Method.OwnerId, NULL, ObjDesc, Thread); > if (!NextWalkState) > { > Status = AE_NO_MEMORY; > @@ -646,8 +664,8 @@ AcpiDsCallControlMethod ( > Info->Parameters = &ThisWalkState->Operands[0]; > > Status = AcpiDsInitAmlWalk (NextWalkState, NULL, MethodNode, > - ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength, > - Info, ACPI_IMODE_EXECUTE); > + ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength, > + Info, ACPI_IMODE_EXECUTE); > > ACPI_FREE (Info); > if (ACPI_FAILURE (Status)) > @@ -842,7 +860,8 @@ AcpiDsTerminateControlMethod ( > WalkState->Thread->CurrentSyncLevel = > MethodDesc->Method.Mutex->Mutex.OriginalSyncLevel; > > - AcpiOsReleaseMutex (MethodDesc->Method.Mutex->Mutex.OsMutex); > + AcpiOsReleaseMutex ( > + MethodDesc->Method.Mutex->Mutex.OsMutex); > MethodDesc->Method.Mutex->Mutex.ThreadId = 0; > } > } > @@ -872,7 +891,8 @@ AcpiDsTerminateControlMethod ( > if (MethodDesc->Method.InfoFlags & ACPI_METHOD_MODIFIED_NAMESPACE) > { > AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId); > - MethodDesc->Method.InfoFlags &= ~ACPI_METHOD_MODIFIED_NAMESPACE; > + MethodDesc->Method.InfoFlags &= > + ~ACPI_METHOD_MODIFIED_NAMESPACE; > } > } > } > @@ -920,7 +940,8 @@ AcpiDsTerminateControlMethod ( > if (WalkState) > { > ACPI_INFO ((AE_INFO, > - "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error", > + "Marking method %4.4s as Serialized " > + "because of AE_ALREADY_EXISTS error", > WalkState->MethodNode->Name.Ascii)); > } > > @@ -935,7 +956,9 @@ AcpiDsTerminateControlMethod ( > * marking the method permanently as Serialized when the last > * thread exits here. > */ > - MethodDesc->Method.InfoFlags &= ~ACPI_METHOD_SERIALIZED_PENDING; > + MethodDesc->Method.InfoFlags &= > + ~ACPI_METHOD_SERIALIZED_PENDING; > + > MethodDesc->Method.InfoFlags |= > (ACPI_METHOD_SERIALIZED | ACPI_METHOD_IGNORE_SYNC_LEVEL); > MethodDesc->Method.SyncLevel = 0; > @@ -950,7 +973,7 @@ AcpiDsTerminateControlMethod ( > } > > AcpiExStopTraceMethod ((ACPI_NAMESPACE_NODE *) MethodDesc->Method.Node, > - MethodDesc, WalkState); > + MethodDesc, WalkState); > > return_VOID; > } > diff --git a/src/acpica/source/components/dispatcher/dsmthdat.c b/src/acpica/source/components/dispatcher/dsmthdat.c > index 2b7fce2..04892a6 100644 > --- a/src/acpica/source/components/dispatcher/dsmthdat.c > +++ b/src/acpica/source/components/dispatcher/dsmthdat.c > @@ -182,7 +182,9 @@ AcpiDsMethodDataInit ( > > for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++) > { > - ACPI_MOVE_32_TO_32 (&WalkState->Arguments[i].Name, NAMEOF_ARG_NTE); > + ACPI_MOVE_32_TO_32 (&WalkState->Arguments[i].Name, > + NAMEOF_ARG_NTE); > + > WalkState->Arguments[i].Name.Integer |= (i << 24); > WalkState->Arguments[i].DescriptorType = ACPI_DESC_TYPE_NAMED; > WalkState->Arguments[i].Type = ACPI_TYPE_ANY; > @@ -193,7 +195,8 @@ AcpiDsMethodDataInit ( > > for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++) > { > - ACPI_MOVE_32_TO_32 (&WalkState->LocalVariables[i].Name, NAMEOF_LOCAL_NTE); > + ACPI_MOVE_32_TO_32 (&WalkState->LocalVariables[i].Name, > + NAMEOF_LOCAL_NTE); > > WalkState->LocalVariables[i].Name.Integer |= (i << 24); > WalkState->LocalVariables[i].DescriptorType = ACPI_DESC_TYPE_NAMED; > @@ -235,7 +238,7 @@ AcpiDsMethodDataDeleteAll ( > if (WalkState->LocalVariables[Index].Object) > { > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Local%u=%p\n", > - Index, WalkState->LocalVariables[Index].Object)); > + Index, WalkState->LocalVariables[Index].Object)); > > /* Detach object (if present) and remove a reference */ > > @@ -250,7 +253,7 @@ AcpiDsMethodDataDeleteAll ( > if (WalkState->Arguments[Index].Object) > { > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Arg%u=%p\n", > - Index, WalkState->Arguments[Index].Object)); > + Index, WalkState->Arguments[Index].Object)); > > /* Detach object (if present) and remove a reference */ > > @@ -293,7 +296,8 @@ AcpiDsMethodDataInitArgs ( > > if (!Params) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "No param list passed to method\n")); > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "No parameter list passed to method\n")); > return_ACPI_STATUS (AE_OK); > } > > @@ -308,8 +312,8 @@ AcpiDsMethodDataInitArgs ( > * Store the argument in the method/walk descriptor. > * Do not copy the arg in order to implement call by reference > */ > - Status = AcpiDsMethodDataSetValue (ACPI_REFCLASS_ARG, Index, > - Params[Index], WalkState); > + Status = AcpiDsMethodDataSetValue ( > + ACPI_REFCLASS_ARG, Index, Params[Index], WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -699,7 +703,8 @@ AcpiDsStoreObjectToLocal ( > NewObjDesc = ObjDesc; > if (ObjDesc->Common.ReferenceCount > 1) > { > - Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState); > + Status = AcpiUtCopyIobjectToIobject ( > + ObjDesc, &NewObjDesc, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -736,13 +741,16 @@ AcpiDsStoreObjectToLocal ( > * If we have a valid reference object that came from RefOf(), > * do the indirect store > */ > - if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == ACPI_DESC_TYPE_OPERAND) && > - (CurrentObjDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && > - (CurrentObjDesc->Reference.Class == ACPI_REFCLASS_REFOF)) > + if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == > + ACPI_DESC_TYPE_OPERAND) && > + (CurrentObjDesc->Common.Type == > + ACPI_TYPE_LOCAL_REFERENCE) && > + (CurrentObjDesc->Reference.Class == > + ACPI_REFCLASS_REFOF)) > { > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > - "Arg (%p) is an ObjRef(Node), storing in node %p\n", > - NewObjDesc, CurrentObjDesc)); > + "Arg (%p) is an ObjRef(Node), storing in node %p\n", > + NewObjDesc, CurrentObjDesc)); > > /* > * Store this object to the Node (perform the indirect store) > @@ -750,8 +758,8 @@ AcpiDsStoreObjectToLocal ( > * specification rules on storing to Locals/Args. > */ > Status = AcpiExStoreObjectToNode (NewObjDesc, > - CurrentObjDesc->Reference.Object, WalkState, > - ACPI_NO_IMPLICIT_CONVERSION); > + CurrentObjDesc->Reference.Object, WalkState, > + ACPI_NO_IMPLICIT_CONVERSION); > > /* Remove local reference if we copied the object above */ > > @@ -759,6 +767,7 @@ AcpiDsStoreObjectToLocal ( > { > AcpiUtRemoveReference (NewObjDesc); > } > + > return_ACPI_STATUS (Status); > } > } > diff --git a/src/acpica/source/components/dispatcher/dsobject.c b/src/acpica/source/components/dispatcher/dsobject.c > index 0eb2f44..d448aaf 100644 > --- a/src/acpica/source/components/dispatcher/dsobject.c > +++ b/src/acpica/source/components/dispatcher/dsobject.c > @@ -174,10 +174,10 @@ AcpiDsBuildInternalObject ( > if (!Op->Common.Node) > { > Status = AcpiNsLookup (WalkState->ScopeInfo, > - Op->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, > - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &(Op->Common.Node))); > + Op->Common.Value.String, > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, > + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &(Op->Common.Node))); > if (ACPI_FAILURE (Status)) > { > /* Check if we are resolving a named reference within a package */ > @@ -233,8 +233,8 @@ AcpiDsBuildInternalObject ( > ObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Op->Common.Node); > > Status = AcpiExResolveNodeToValue ( > - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc), > - WalkState); > + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc), > + WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -294,14 +294,14 @@ AcpiDsBuildInternalObject ( > /* Create and init a new internal ACPI object */ > > ObjDesc = AcpiUtCreateInternalObject ( > - (AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode))->ObjectType); > + (AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode))->ObjectType); > if (!ObjDesc) > { > return_ACPI_STATUS (AE_NO_MEMORY); > } > > - Status = AcpiDsInitObjectFromOp (WalkState, Op, Op->Common.AmlOpcode, > - &ObjDesc); > + Status = AcpiDsInitObjectFromOp ( > + WalkState, Op, Op->Common.AmlOpcode, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > AcpiUtRemoveReference (ObjDesc); > @@ -408,8 +408,8 @@ AcpiDsBuildInternalBufferObj ( > } > else > { > - ObjDesc->Buffer.Pointer = ACPI_ALLOCATE_ZEROED ( > - ObjDesc->Buffer.Length); > + ObjDesc->Buffer.Pointer = > + ACPI_ALLOCATE_ZEROED (ObjDesc->Buffer.Length); > if (!ObjDesc->Buffer.Pointer) > { > AcpiUtDeleteObjectDesc (ObjDesc); > @@ -421,7 +421,7 @@ AcpiDsBuildInternalBufferObj ( > if (ByteList) > { > memcpy (ObjDesc->Buffer.Pointer, ByteList->Named.Data, > - ByteListLength); > + ByteListLength); > } > } > > @@ -540,8 +540,8 @@ AcpiDsBuildInternalPackageObj ( > * invocation, so we special case it here > */ > Arg->Common.AmlOpcode = AML_INT_NAMEPATH_OP; > - Status = AcpiDsBuildInternalObject (WalkState, Arg, > - &ObjDesc->Package.Elements[i]); > + Status = AcpiDsBuildInternalObject ( > + WalkState, Arg, &ObjDesc->Package.Elements[i]); > } > else > { > @@ -553,8 +553,8 @@ AcpiDsBuildInternalPackageObj ( > } > else > { > - Status = AcpiDsBuildInternalObject (WalkState, Arg, > - &ObjDesc->Package.Elements[i]); > + Status = AcpiDsBuildInternalObject ( > + WalkState, Arg, &ObjDesc->Package.Elements[i]); > } > > if (*ObjDescPtr) > @@ -611,7 +611,8 @@ AcpiDsBuildInternalPackageObj ( > } > > ACPI_INFO ((AE_INFO, > - "Actual Package length (%u) is larger than NumElements field (%u), truncated", > + "Actual Package length (%u) is larger than " > + "NumElements field (%u), truncated", > i, ElementCount)); > } > else if (i < ElementCount) > @@ -621,7 +622,8 @@ AcpiDsBuildInternalPackageObj ( > * Note: this is not an error, the package is padded out with NULLs. > */ > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, > - "Package List length (%u) smaller than NumElements count (%u), padded with null elements\n", > + "Package List length (%u) smaller than NumElements " > + "count (%u), padded with null elements\n", > i, ElementCount)); > } > > @@ -677,8 +679,8 @@ AcpiDsCreateNode ( > > /* Build an internal object for the argument(s) */ > > - Status = AcpiDsBuildInternalObject (WalkState, Op->Common.Value.Arg, > - &ObjDesc); > + Status = AcpiDsBuildInternalObject ( > + WalkState, Op->Common.Value.Arg, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -750,9 +752,9 @@ AcpiDsInitObjectFromOp ( > /* > * Defer evaluation of Buffer TermArg operand > */ > - ObjDesc->Buffer.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, > - WalkState->Operands[0]); > - ObjDesc->Buffer.AmlStart = Op->Named.Data; > + ObjDesc->Buffer.Node = ACPI_CAST_PTR ( > + ACPI_NAMESPACE_NODE, WalkState->Operands[0]); > + ObjDesc->Buffer.AmlStart = Op->Named.Data; > ObjDesc->Buffer.AmlLength = Op->Named.Length; > break; > > @@ -760,9 +762,9 @@ AcpiDsInitObjectFromOp ( > /* > * Defer evaluation of Package TermArg operand > */ > - ObjDesc->Package.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, > - WalkState->Operands[0]); > - ObjDesc->Package.AmlStart = Op->Named.Data; > + ObjDesc->Package.Node = ACPI_CAST_PTR ( > + ACPI_NAMESPACE_NODE, WalkState->Operands[0]); > + ObjDesc->Package.AmlStart = Op->Named.Data; > ObjDesc->Package.AmlLength = Op->Named.Length; > break; > > @@ -872,9 +874,9 @@ AcpiDsInitObjectFromOp ( > > #ifndef ACPI_NO_METHOD_EXECUTION > Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL, > - ObjDesc->Reference.Value, WalkState, > - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, > - &ObjDesc->Reference.Object)); > + ObjDesc->Reference.Value, WalkState, > + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, > + &ObjDesc->Reference.Object)); > #endif > break; > > @@ -887,9 +889,9 @@ AcpiDsInitObjectFromOp ( > > #ifndef ACPI_NO_METHOD_EXECUTION > Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG, > - ObjDesc->Reference.Value, WalkState, > - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, > - &ObjDesc->Reference.Object)); > + ObjDesc->Reference.Value, WalkState, > + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, > + &ObjDesc->Reference.Object)); > #endif > break; > > diff --git a/src/acpica/source/components/dispatcher/dsopcode.c b/src/acpica/source/components/dispatcher/dsopcode.c > index 6e2c784..45a7e7a 100644 > --- a/src/acpica/source/components/dispatcher/dsopcode.c > +++ b/src/acpica/source/components/dispatcher/dsopcode.c > @@ -331,8 +331,8 @@ AcpiDsInitBufferField ( > * For FieldFlags, use LOCK_RULE = 0 (NO_LOCK), > * UPDATE_RULE = 0 (UPDATE_PRESERVE) > */ > - Status = AcpiExPrepCommonFieldObject (ObjDesc, FieldFlags, 0, > - BitOffset, BitCount); > + Status = AcpiExPrepCommonFieldObject ( > + ObjDesc, FieldFlags, 0, BitOffset, BitCount); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -429,8 +429,8 @@ AcpiDsEvalBufferFieldOperands ( > > /* Resolve the operands */ > > - Status = AcpiExResolveOperands (Op->Common.AmlOpcode, > - ACPI_WALK_OPERANDS, WalkState); > + Status = AcpiExResolveOperands ( > + Op->Common.AmlOpcode, ACPI_WALK_OPERANDS, WalkState); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR ((AE_INFO, "(%s) bad operand(s), status 0x%X", > @@ -446,16 +446,16 @@ AcpiDsEvalBufferFieldOperands ( > /* NOTE: Slightly different operands for this opcode */ > > Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc, > - WalkState->Operands[0], WalkState->Operands[1], > - WalkState->Operands[2], WalkState->Operands[3]); > + WalkState->Operands[0], WalkState->Operands[1], > + WalkState->Operands[2], WalkState->Operands[3]); > } > else > { > /* All other, CreateXxxField opcodes */ > > Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc, > - WalkState->Operands[0], WalkState->Operands[1], > - NULL, WalkState->Operands[2]); > + WalkState->Operands[0], WalkState->Operands[1], > + NULL, WalkState->Operands[2]); > } > > return_ACPI_STATUS (Status); > @@ -515,8 +515,8 @@ AcpiDsEvalRegionOperands ( > > /* Resolve the length and address operands to numbers */ > > - Status = AcpiExResolveOperands (Op->Common.AmlOpcode, > - ACPI_WALK_OPERANDS, WalkState); > + Status = AcpiExResolveOperands ( > + Op->Common.AmlOpcode, ACPI_WALK_OPERANDS, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -544,18 +544,16 @@ AcpiDsEvalRegionOperands ( > OperandDesc = WalkState->Operands[WalkState->NumOperands - 2]; > > ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS) > - OperandDesc->Integer.Value; > + OperandDesc->Integer.Value; > AcpiUtRemoveReference (OperandDesc); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n", > - ObjDesc, > - ACPI_FORMAT_UINT64 (ObjDesc->Region.Address), > + ObjDesc, ACPI_FORMAT_UINT64 (ObjDesc->Region.Address), > ObjDesc->Region.Length)); > > /* Now the address and length are valid for this opregion */ > > ObjDesc->Region.Flags |= AOPOBJ_DATA_VALID; > - > return_ACPI_STATUS (Status); > } > > @@ -618,8 +616,8 @@ AcpiDsEvalTableRegionOperands ( > * Resolve the Signature string, OemId string, > * and OemTableId string operands > */ > - Status = AcpiExResolveOperands (Op->Common.AmlOpcode, > - ACPI_WALK_OPERANDS, WalkState); > + Status = AcpiExResolveOperands ( > + Op->Common.AmlOpcode, ACPI_WALK_OPERANDS, WalkState); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -628,9 +626,9 @@ AcpiDsEvalTableRegionOperands ( > /* Find the ACPI table */ > > Status = AcpiTbFindTable ( > - Operand[0]->String.Pointer, > - Operand[1]->String.Pointer, > - Operand[2]->String.Pointer, &TableIndex); > + Operand[0]->String.Pointer, > + Operand[1]->String.Pointer, > + Operand[2]->String.Pointer, &TableIndex); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_NOT_FOUND) > @@ -721,8 +719,8 @@ AcpiDsEvalDataObjectOperands ( > } > > Status = AcpiExResolveOperands (WalkState->Opcode, > - &(WalkState->Operands [WalkState->NumOperands -1]), > - WalkState); > + &(WalkState->Operands [WalkState->NumOperands -1]), > + WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -750,13 +748,15 @@ AcpiDsEvalDataObjectOperands ( > { > case AML_BUFFER_OP: > > - Status = AcpiDsBuildInternalBufferObj (WalkState, Op, Length, &ObjDesc); > + Status = AcpiDsBuildInternalBufferObj ( > + WalkState, Op, Length, &ObjDesc); > break; > > case AML_PACKAGE_OP: > case AML_VAR_PACKAGE_OP: > > - Status = AcpiDsBuildInternalPackageObj (WalkState, Op, Length, &ObjDesc); > + Status = AcpiDsBuildInternalPackageObj ( > + WalkState, Op, Length, &ObjDesc); > break; > > default: > diff --git a/src/acpica/source/components/dispatcher/dsutils.c b/src/acpica/source/components/dispatcher/dsutils.c > index 0ba26fa..35611d7 100644 > --- a/src/acpica/source/components/dispatcher/dsutils.c > +++ b/src/acpica/source/components/dispatcher/dsutils.c > @@ -212,9 +212,9 @@ AcpiDsDoImplicitReturn ( > } > > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > - "Result %p will be implicitly returned; Prev=%p\n", > - ReturnDesc, > - WalkState->ImplicitReturnObj)); > + "Result %p will be implicitly returned; Prev=%p\n", > + ReturnDesc, > + WalkState->ImplicitReturnObj)); > > /* > * Delete any "stale" implicit return value first. However, in > @@ -338,7 +338,8 @@ AcpiDsIsResultUsed ( > * If we are executing the predicate AND this is the predicate op, > * we will use the return value > */ > - if ((WalkState->ControlState->Common.State == ACPI_CONTROL_PREDICATE_EXECUTING) && > + if ((WalkState->ControlState->Common.State == > + ACPI_CONTROL_PREDICATE_EXECUTING) && > (WalkState->ControlState->Control.PredicateOp == Op)) > { > goto ResultUsed; > @@ -595,8 +596,8 @@ AcpiDsCreateOperand ( > > /* Get the entire name string from the AML stream */ > > - Status = AcpiExGetNameString (ACPI_TYPE_ANY, Arg->Common.Value.Buffer, > - &NameString, &NameLength); > + Status = AcpiExGetNameString (ACPI_TYPE_ANY, > + Arg->Common.Value.Buffer, &NameString, &NameLength); > > if (ACPI_FAILURE (Status)) > { > @@ -616,10 +617,11 @@ AcpiDsCreateOperand ( > */ > if ((WalkState->DeferredNode) && > (WalkState->DeferredNode->Type == ACPI_TYPE_BUFFER_FIELD) && > - (ArgIndex == (UINT32) ((WalkState->Opcode == AML_CREATE_FIELD_OP) ? 3 : 2))) > + (ArgIndex == (UINT32) > + ((WalkState->Opcode == AML_CREATE_FIELD_OP) ? 3 : 2))) > { > ObjDesc = ACPI_CAST_PTR ( > - ACPI_OPERAND_OBJECT, WalkState->DeferredNode); > + ACPI_OPERAND_OBJECT, WalkState->DeferredNode); > Status = AE_OK; > } > else /* All other opcodes */ > @@ -632,6 +634,7 @@ AcpiDsCreateOperand ( > */ > ParentOp = Arg->Common.Parent; > OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Common.AmlOpcode); > + > if ((OpInfo->Flags & AML_NSNODE) && > (ParentOp->Common.AmlOpcode != AML_INT_METHODCALL_OP) && > (ParentOp->Common.AmlOpcode != AML_REGION_OP) && > @@ -649,10 +652,9 @@ AcpiDsCreateOperand ( > } > > Status = AcpiNsLookup (WalkState->ScopeInfo, NameString, > - ACPI_TYPE_ANY, InterpreterMode, > - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, > - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc)); > + ACPI_TYPE_ANY, InterpreterMode, > + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, WalkState, > + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc)); > /* > * The only case where we pass through (ignore) a NOT_FOUND > * error is for the CondRefOf opcode. > @@ -668,7 +670,7 @@ AcpiDsCreateOperand ( > * object to the root > */ > ObjDesc = ACPI_CAST_PTR ( > - ACPI_OPERAND_OBJECT, AcpiGbl_RootNode); > + ACPI_OPERAND_OBJECT, AcpiGbl_RootNode); > Status = AE_OK; > } > else if (ParentOp->Common.AmlOpcode == AML_EXTERNAL_OP) > @@ -714,7 +716,8 @@ AcpiDsCreateOperand ( > { > return_ACPI_STATUS (Status); > } > - ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState)); > + > + AcpiDbDisplayArgumentObject (ObjDesc, WalkState); > } > else > { > @@ -747,13 +750,14 @@ AcpiDsCreateOperand ( > return_ACPI_STATUS (AE_NOT_IMPLEMENTED); > } > > - if ((OpInfo->Flags & AML_HAS_RETVAL) || (Arg->Common.Flags & ACPI_PARSEOP_IN_STACK)) > + if ((OpInfo->Flags & AML_HAS_RETVAL) || > + (Arg->Common.Flags & ACPI_PARSEOP_IN_STACK)) > { > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > "Argument previously created, already stacked\n")); > > - ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject ( > - WalkState->Operands [WalkState->NumOperands - 1], WalkState)); > + AcpiDbDisplayArgumentObject ( > + WalkState->Operands [WalkState->NumOperands - 1], WalkState); > > /* > * Use value that was already previously returned > @@ -784,7 +788,7 @@ AcpiDsCreateOperand ( > /* Initialize the new object */ > > Status = AcpiDsInitObjectFromOp ( > - WalkState, Arg, Opcode, &ObjDesc); > + WalkState, Arg, Opcode, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > AcpiUtDeleteObjectDesc (ObjDesc); > @@ -800,7 +804,7 @@ AcpiDsCreateOperand ( > return_ACPI_STATUS (Status); > } > > - ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState)); > + AcpiDbDisplayArgumentObject (ObjDesc, WalkState); > } > > return_ACPI_STATUS (AE_OK); > @@ -970,7 +974,8 @@ AcpiDsEvaluateNamePath ( > > AcpiUtRemoveReference (*Operand); > > - Status = AcpiUtCopyIobjectToIobject (*Operand, &NewObjDesc, WalkState); > + Status = AcpiUtCopyIobjectToIobject ( > + *Operand, &NewObjDesc, WalkState); > if (ACPI_FAILURE (Status)) > { > goto Exit; > diff --git a/src/acpica/source/components/dispatcher/dswexec.c b/src/acpica/source/components/dispatcher/dswexec.c > index f650ced..4cdc53d 100644 > --- a/src/acpica/source/components/dispatcher/dswexec.c > +++ b/src/acpica/source/components/dispatcher/dswexec.c > @@ -261,12 +261,13 @@ AcpiDsGetPredicateValue ( > > Cleanup: > > - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Completed a predicate eval=%X Op=%p\n", > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Completed a predicate eval=%X Op=%p\n", > WalkState->ControlState->Common.Value, WalkState->Op)); > > - /* Break to debugger to display result */ > + /* Break to debugger to display result */ > > - ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (LocalObjDesc, WalkState)); > + AcpiDbDisplayResultObject (LocalObjDesc, WalkState); > > /* > * Delete the predicate result object (we know that > @@ -358,10 +359,12 @@ AcpiDsExecBeginOp ( > (WalkState->ControlState->Common.State == > ACPI_CONTROL_CONDITIONAL_EXECUTING)) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Exec predicate Op=%p State=%p\n", > - Op, WalkState)); > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Exec predicate Op=%p State=%p\n", > + Op, WalkState)); > > - WalkState->ControlState->Common.State = ACPI_CONTROL_PREDICATE_EXECUTING; > + WalkState->ControlState->Common.State = > + ACPI_CONTROL_PREDICATE_EXECUTING; > > /* Save start of predicate */ > > @@ -409,8 +412,8 @@ AcpiDsExecBeginOp ( > } > else > { > - Status = AcpiDsScopeStackPush (Op->Named.Node, > - Op->Named.Node->Type, WalkState); > + Status = AcpiDsScopeStackPush ( > + Op->Named.Node, Op->Named.Node->Type, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -469,8 +472,8 @@ AcpiDsExecEndOp ( > ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState); > > > - Op = WalkState->Op; > - OpType = WalkState->OpInfo->Type; > + Op = WalkState->Op; > + OpType = WalkState->OpInfo->Type; > OpClass = WalkState->OpInfo->Class; > > if (OpClass == AML_CLASS_UNKNOWN) > @@ -490,8 +493,11 @@ AcpiDsExecEndOp ( > > /* Call debugger for single step support (DEBUG build only) */ > > - ACPI_DEBUGGER_EXEC (Status = AcpiDbSingleStep (WalkState, Op, OpClass)); > - ACPI_DEBUGGER_EXEC (if (ACPI_FAILURE (Status)) {return_ACPI_STATUS (Status);}); > + Status = AcpiDbSingleStep (WalkState, Op, OpClass); > + if (ACPI_FAILURE (Status)) > + { > + return_ACPI_STATUS (Status); > + } > > /* Decode the Opcode Class */ > > @@ -528,8 +534,8 @@ AcpiDsExecEndOp ( > /* Resolve all operands */ > > Status = AcpiExResolveOperands (WalkState->Opcode, > - &(WalkState->Operands [WalkState->NumOperands -1]), > - WalkState); > + &(WalkState->Operands [WalkState->NumOperands -1]), > + WalkState); > } > > if (ACPI_SUCCESS (Status)) > @@ -606,7 +612,8 @@ AcpiDsExecEndOp ( > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > "Method Reference in a Package, Op=%p\n", Op)); > > - Op->Common.Node = (ACPI_NAMESPACE_NODE *) Op->Asl.Value.Arg->Asl.Node; > + Op->Common.Node = (ACPI_NAMESPACE_NODE *) > + Op->Asl.Value.Arg->Asl.Node; > AcpiUtAddReference (Op->Asl.Value.Arg->Asl.Node->Object); > return_ACPI_STATUS (AE_OK); > } > @@ -688,12 +695,12 @@ AcpiDsExecEndOp ( > * Put the Node on the object stack (Contains the ACPI Name > * of this object) > */ > - WalkState->Operands[0] = (void *) Op->Common.Parent->Common.Node; > + WalkState->Operands[0] = (void *) > + Op->Common.Parent->Common.Node; > WalkState->NumOperands = 1; > > Status = AcpiDsCreateNode (WalkState, > - Op->Common.Parent->Common.Node, > - Op->Common.Parent); > + Op->Common.Parent->Common.Node, Op->Common.Parent); > if (ACPI_FAILURE (Status)) > { > break; > @@ -705,7 +712,7 @@ AcpiDsExecEndOp ( > case AML_INT_EVAL_SUBTREE_OP: > > Status = AcpiDsEvalDataObjectOperands (WalkState, Op, > - AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node)); > + AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node)); > break; > > default: > @@ -786,7 +793,8 @@ AcpiDsExecEndOp ( > default: > > ACPI_ERROR ((AE_INFO, > - "Unimplemented opcode, class=0x%X type=0x%X Opcode=0x%X Op=%p", > + "Unimplemented opcode, class=0x%X " > + "type=0x%X Opcode=0x%X Op=%p", > OpClass, OpType, Op->Common.AmlOpcode, Op)); > > Status = AE_NOT_IMPLEMENTED; > @@ -821,8 +829,7 @@ Cleanup: > { > /* Break to debugger to display result */ > > - ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (WalkState->ResultObj, > - WalkState)); > + AcpiDbDisplayResultObject (WalkState->ResultObj,WalkState); > > /* > * Delete the result op if and only if: > diff --git a/src/acpica/source/components/dispatcher/dswload.c b/src/acpica/source/components/dispatcher/dswload.c > index a984075..765102d 100644 > --- a/src/acpica/source/components/dispatcher/dswload.c > +++ b/src/acpica/source/components/dispatcher/dswload.c > @@ -260,7 +260,8 @@ AcpiDsLoad1BeginOp ( > ObjectType = WalkState->OpInfo->ObjectType; > > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > - "State=%p Op=%p [%s]\n", WalkState, Op, AcpiUtGetTypeName (ObjectType))); > + "State=%p Op=%p [%s]\n", WalkState, Op, > + AcpiUtGetTypeName (ObjectType))); > > switch (WalkState->Opcode) > { > @@ -271,7 +272,7 @@ AcpiDsLoad1BeginOp ( > * Allow search-to-root for single namesegs. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node)); > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node)); > #ifdef ACPI_ASL_COMPILER > if (Status == AE_NOT_FOUND) > { > @@ -282,8 +283,8 @@ AcpiDsLoad1BeginOp ( > */ > AcpiDmAddOpToExternalList (Op, Path, ACPI_TYPE_DEVICE, 0, 0); > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, > - ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT, > - WalkState, &Node); > + ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT, > + WalkState, &Node); > } > #endif > if (ACPI_FAILURE (Status)) > @@ -401,20 +402,20 @@ AcpiDsLoad1BeginOp ( > { > Flags |= ACPI_NS_OVERRIDE_IF_FOUND; > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Override allowed\n", > - AcpiUtGetTypeName (ObjectType))); > + AcpiUtGetTypeName (ObjectType))); > } > else > { > Flags |= ACPI_NS_ERROR_IF_FOUND; > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Cannot already exist\n", > - AcpiUtGetTypeName (ObjectType))); > + AcpiUtGetTypeName (ObjectType))); > } > } > else > { > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, > "[%s] Both Find or Create allowed\n", > - AcpiUtGetTypeName (ObjectType))); > + AcpiUtGetTypeName (ObjectType))); > } > > /* > @@ -424,7 +425,7 @@ AcpiDsLoad1BeginOp ( > * parse tree later. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, > - ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); > + ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_ALREADY_EXISTS) > @@ -444,7 +445,8 @@ AcpiDsLoad1BeginOp ( > > if (AcpiNsOpensScope (ObjectType)) > { > - Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState); > + Status = AcpiDsScopeStackPush ( > + Node, ObjectType, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -566,8 +568,9 @@ AcpiDsLoad1EndOp ( > if (Op->Common.AmlOpcode == AML_REGION_OP) > { > Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, > - (ACPI_ADR_SPACE_TYPE) ((Op->Common.Value.Arg)->Common.Value.Integer), > - WalkState); > + (ACPI_ADR_SPACE_TYPE) > + ((Op->Common.Value.Arg)->Common.Value.Integer), > + WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -576,7 +579,7 @@ AcpiDsLoad1EndOp ( > else if (Op->Common.AmlOpcode == AML_DATA_REGION_OP) > { > Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, > - ACPI_ADR_SPACE_DATA_TABLE, WalkState); > + ACPI_ADR_SPACE_DATA_TABLE, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -628,11 +631,12 @@ AcpiDsLoad1EndOp ( > WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node); > WalkState->NumOperands = 1; > > - Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg); > + Status = AcpiDsCreateOperands ( > + WalkState, Op->Common.Value.Arg); > if (ACPI_SUCCESS (Status)) > { > Status = AcpiExCreateMethod (Op->Named.Data, > - Op->Named.Length, WalkState); > + Op->Named.Length, WalkState); > } > > WalkState->Operands[0] = NULL; > diff --git a/src/acpica/source/components/dispatcher/dswload2.c b/src/acpica/source/components/dispatcher/dswload2.c > index d5f9b1c..1a01a43 100644 > --- a/src/acpica/source/components/dispatcher/dswload2.c > +++ b/src/acpica/source/components/dispatcher/dswload2.c > @@ -231,8 +231,8 @@ AcpiDsLoad2BeginOp ( > * for use later. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > - WalkState, &(Node)); > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > + WalkState, &(Node)); > break; > > case AML_SCOPE_OP: > @@ -257,8 +257,8 @@ AcpiDsLoad2BeginOp ( > * for use later. > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType, > - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > - WalkState, &(Node)); > + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, > + WalkState, &(Node)); > if (ACPI_FAILURE (Status)) > { > #ifdef ACPI_ASL_COMPILER > @@ -395,7 +395,7 @@ AcpiDsLoad2BeginOp ( > /* Add new entry or lookup existing entry */ > > Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType, > - ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node); > + ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node); > > if (ACPI_SUCCESS (Status) && (Flags & ACPI_NS_TEMPORARY)) > { > @@ -473,7 +473,7 @@ AcpiDsLoad2EndOp ( > > Op = WalkState->Op; > ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n", > - WalkState->OpInfo->Name, Op, WalkState)); > + WalkState->OpInfo->Name, Op, WalkState)); > > /* Check if opcode had an associated namespace object */ > > @@ -579,8 +579,8 @@ AcpiDsLoad2EndOp ( > { > case AML_INDEX_FIELD_OP: > > - Status = AcpiDsCreateIndexField (Op, (ACPI_HANDLE) Arg->Common.Node, > - WalkState); > + Status = AcpiDsCreateIndexField ( > + Op, (ACPI_HANDLE) Arg->Common.Node, WalkState); > break; > > case AML_BANK_FIELD_OP: > @@ -665,7 +665,7 @@ AcpiDsLoad2EndOp ( > if (Op->Common.AmlOpcode == AML_REGION_OP) > { > RegionSpace = (ACPI_ADR_SPACE_TYPE) > - ((Op->Common.Value.Arg)->Common.Value.Integer); > + ((Op->Common.Value.Arg)->Common.Value.Integer); > } > else > { > @@ -690,8 +690,8 @@ AcpiDsLoad2EndOp ( > * Executing a method: initialize the region and unlock > * the interpreter > */ > - Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, > - RegionSpace, WalkState); > + Status = AcpiExCreateRegion (Op->Named.Data, > + Op->Named.Length, RegionSpace, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -700,8 +700,8 @@ AcpiDsLoad2EndOp ( > AcpiExExitInterpreter (); > } > > - Status = AcpiEvInitializeRegion (AcpiNsGetAttachedObject (Node), > - FALSE); > + Status = AcpiEvInitializeRegion ( > + AcpiNsGetAttachedObject (Node), FALSE); > if (WalkState->MethodNode) > { > AcpiExEnterInterpreter (); > @@ -744,12 +744,14 @@ AcpiDsLoad2EndOp ( > WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node); > WalkState->NumOperands = 1; > > - Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg); > + Status = AcpiDsCreateOperands ( > + WalkState, Op->Common.Value.Arg); > if (ACPI_SUCCESS (Status)) > { > - Status = AcpiExCreateMethod (Op->Named.Data, > - Op->Named.Length, WalkState); > + Status = AcpiExCreateMethod ( > + Op->Named.Data, Op->Named.Length, WalkState); > } > + > WalkState->Operands[0] = NULL; > WalkState->NumOperands = 0; > > @@ -784,9 +786,9 @@ AcpiDsLoad2EndOp ( > * Lookup the method name and save the Node > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, > - ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS2, > - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > - WalkState, &(NewNode)); > + ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS2, > + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, > + WalkState, &(NewNode)); > if (ACPI_SUCCESS (Status)) > { > /* > diff --git a/src/acpica/source/components/dispatcher/dswscope.c b/src/acpica/source/components/dispatcher/dswscope.c > index 9865dcd..1ce2ed9 100644 > --- a/src/acpica/source/components/dispatcher/dswscope.c > +++ b/src/acpica/source/components/dispatcher/dswscope.c > @@ -154,6 +154,7 @@ AcpiDsScopeStackClear ( > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > "Popped object type (%s)\n", > AcpiUtGetTypeName (ScopeInfo->Common.Value))); > + > AcpiUtDeleteGenericState (ScopeInfo); > } > } > diff --git a/src/acpica/source/components/dispatcher/dswstate.c b/src/acpica/source/components/dispatcher/dswstate.c > index e5ea508..faf6a2b 100644 > --- a/src/acpica/source/components/dispatcher/dswstate.c > +++ b/src/acpica/source/components/dispatcher/dswstate.c > @@ -371,8 +371,8 @@ AcpiDsResultStackPop ( > > if (WalkState->Results == NULL) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Result stack underflow - State=%p\n", > - WalkState)); > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Result stack underflow - State=%p\n", WalkState)); > return (AE_AML_NO_OPERAND); > } > > @@ -779,7 +779,8 @@ AcpiDsInitAmlWalk ( > > /* Push start scope on scope stack and make it current */ > > - Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState); > + Status = AcpiDsScopeStackPush ( > + MethodNode, ACPI_TYPE_METHOD, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -822,7 +823,7 @@ AcpiDsInitAmlWalk ( > /* Push start scope on scope stack and make it current */ > > Status = AcpiDsScopeStackPush (ParserState->StartNode, > - ParserState->StartNode->Type, WalkState); > + ParserState->StartNode->Type, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/events/evevent.c b/src/acpica/source/components/events/evevent.c > index e447356..eda09eb 100644 > --- a/src/acpica/source/components/events/evevent.c > +++ b/src/acpica/source/components/events/evevent.c > @@ -275,8 +275,8 @@ AcpiEvFixedEventInitialize ( > if (AcpiGbl_FixedEventInfo[i].EnableRegisterId != 0xFF) > { > Status = AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[i].EnableRegisterId, > - ACPI_DISABLE_EVENT); > + AcpiGbl_FixedEventInfo[i].EnableRegisterId, > + ACPI_DISABLE_EVENT); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -379,8 +379,8 @@ AcpiEvFixedEventDispatch ( > /* Clear the status bit */ > > (void) AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[Event].StatusRegisterId, > - ACPI_CLEAR_STATUS); > + AcpiGbl_FixedEventInfo[Event].StatusRegisterId, > + ACPI_CLEAR_STATUS); > > /* > * Make sure that a handler exists. If not, report an error > @@ -389,8 +389,8 @@ AcpiEvFixedEventDispatch ( > if (!AcpiGbl_FixedEventHandlers[Event].Handler) > { > (void) AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > - ACPI_DISABLE_EVENT); > + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > + ACPI_DISABLE_EVENT); > > ACPI_ERROR ((AE_INFO, > "No installed handler for fixed event - %s (%u), disabling", > @@ -402,7 +402,7 @@ AcpiEvFixedEventDispatch ( > /* Invoke the Fixed Event handler */ > > return ((AcpiGbl_FixedEventHandlers[Event].Handler)( > - AcpiGbl_FixedEventHandlers[Event].Context)); > + AcpiGbl_FixedEventHandlers[Event].Context)); > } > > #endif /* !ACPI_REDUCED_HARDWARE */ > diff --git a/src/acpica/source/components/events/evglock.c b/src/acpica/source/components/events/evglock.c > index e1ebf19..8353ffb 100644 > --- a/src/acpica/source/components/events/evglock.c > +++ b/src/acpica/source/components/events/evglock.c > @@ -162,7 +162,7 @@ AcpiEvInitGlobalLockHandler ( > /* Attempt installation of the global lock handler */ > > Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL, > - AcpiEvGlobalLockHandler, NULL); > + AcpiEvGlobalLockHandler, NULL); > > /* > * If the global lock does not exist on this platform, the attempt to > @@ -212,9 +212,10 @@ AcpiEvRemoveGlobalLockHandler ( > > ACPI_FUNCTION_TRACE (EvRemoveGlobalLockHandler); > > + > AcpiGbl_GlobalLockPresent = FALSE; > Status = AcpiRemoveFixedEventHandler (ACPI_EVENT_GLOBAL, > - AcpiEvGlobalLockHandler); > + AcpiEvGlobalLockHandler); > > AcpiOsDeleteLock (AcpiGbl_GlobalLockPendingLock); > return_ACPI_STATUS (Status); > @@ -374,8 +375,8 @@ AcpiEvAcquireGlobalLock ( > * Wait for handshake with the global lock interrupt handler. > * This interface releases the interpreter if we must wait. > */ > - Status = AcpiExSystemWaitSemaphore (AcpiGbl_GlobalLockSemaphore, > - ACPI_WAIT_FOREVER); > + Status = AcpiExSystemWaitSemaphore ( > + AcpiGbl_GlobalLockSemaphore, ACPI_WAIT_FOREVER); > > Flags = AcpiOsAcquireLock (AcpiGbl_GlobalLockPendingLock); > > @@ -433,7 +434,7 @@ AcpiEvReleaseGlobalLock ( > if (Pending) > { > Status = AcpiWriteBitRegister ( > - ACPI_BITREG_GLOBAL_LOCK_RELEASE, ACPI_ENABLE_EVENT); > + ACPI_BITREG_GLOBAL_LOCK_RELEASE, ACPI_ENABLE_EVENT); > } > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Released hardware Global Lock\n")); > diff --git a/src/acpica/source/components/events/evgpe.c b/src/acpica/source/components/events/evgpe.c > index 4dceaa4..54316fe 100644 > --- a/src/acpica/source/components/events/evgpe.c > +++ b/src/acpica/source/components/events/evgpe.c > @@ -176,8 +176,8 @@ AcpiEvUpdateGpeEnableMask ( > { > ACPI_SET_BIT (GpeRegisterInfo->EnableForRun, (UINT8) RegisterBit); > } > - GpeRegisterInfo->EnableMask = GpeRegisterInfo->EnableForRun; > > + GpeRegisterInfo->EnableMask = GpeRegisterInfo->EnableForRun; > return_ACPI_STATUS (AE_OK); > } > > @@ -399,7 +399,7 @@ AcpiEvGetGpeEventInfo ( > for (i = 0; i < ACPI_MAX_GPE_BLOCKS; i++) > { > GpeInfo = AcpiEvLowGetGpeInfo (GpeNumber, > - AcpiGbl_GpeFadtBlocks[i]); > + AcpiGbl_GpeFadtBlocks[i]); > if (GpeInfo) > { > return (GpeInfo); > @@ -660,8 +660,8 @@ AcpiEvAsynchExecuteGpeMethod ( > Notify = GpeEventInfo->Dispatch.NotifyList; > while (ACPI_SUCCESS (Status) && Notify) > { > - Status = AcpiEvQueueNotifyRequest (Notify->DeviceNode, > - ACPI_NOTIFY_DEVICE_WAKE); > + Status = AcpiEvQueueNotifyRequest ( > + Notify->DeviceNode, ACPI_NOTIFY_DEVICE_WAKE); > > Notify = Notify->Next; > } > @@ -705,7 +705,7 @@ AcpiEvAsynchExecuteGpeMethod ( > /* Defer enabling of GPE until all notify handlers are done */ > > Status = AcpiOsExecute (OSL_NOTIFY_HANDLER, > - AcpiEvAsynchEnableGpe, GpeEventInfo); > + AcpiEvAsynchEnableGpe, GpeEventInfo); > if (ACPI_SUCCESS (Status)) > { > return_VOID; > @@ -850,8 +850,8 @@ AcpiEvGpeDispatch ( > { > ACPI_EXCEPTION ((AE_INFO, Status, > "Unable to clear GPE %02X", GpeNumber)); > - (void) AcpiHwLowSetGpe (GpeEventInfo, > - ACPI_GPE_CONDITIONAL_ENABLE); > + (void) AcpiHwLowSetGpe ( > + GpeEventInfo, ACPI_GPE_CONDITIONAL_ENABLE); > return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED); > } > } > @@ -888,7 +888,7 @@ AcpiEvGpeDispatch ( > * NOTE: Level-triggered GPEs are cleared after the method completes. > */ > Status = AcpiOsExecute (OSL_GPE_HANDLER, > - AcpiEvAsynchExecuteGpeMethod, GpeEventInfo); > + AcpiEvAsynchExecuteGpeMethod, GpeEventInfo); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > diff --git a/src/acpica/source/components/events/evgpeblk.c b/src/acpica/source/components/events/evgpeblk.c > index e067457..7a3c15d 100644 > --- a/src/acpica/source/components/events/evgpeblk.c > +++ b/src/acpica/source/components/events/evgpeblk.c > @@ -265,6 +265,7 @@ AcpiEvDeleteGpeBlock ( > { > GpeBlock->Next->Previous = GpeBlock->Previous; > } > + > AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags); > } > > @@ -313,8 +314,8 @@ AcpiEvCreateGpeInfoBlocks ( > /* Allocate the GPE register information block */ > > GpeRegisterInfo = ACPI_ALLOCATE_ZEROED ( > - (ACPI_SIZE) GpeBlock->RegisterCount * > - sizeof (ACPI_GPE_REGISTER_INFO)); > + (ACPI_SIZE) GpeBlock->RegisterCount * > + sizeof (ACPI_GPE_REGISTER_INFO)); > if (!GpeRegisterInfo) > { > ACPI_ERROR ((AE_INFO, > @@ -327,7 +328,7 @@ AcpiEvCreateGpeInfoBlocks ( > * per register. Initialization to zeros is sufficient. > */ > GpeEventInfo = ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) GpeBlock->GpeCount * > - sizeof (ACPI_GPE_EVENT_INFO)); > + sizeof (ACPI_GPE_EVENT_INFO)); > if (!GpeEventInfo) > { > ACPI_ERROR ((AE_INFO, > @@ -339,7 +340,7 @@ AcpiEvCreateGpeInfoBlocks ( > /* Save the new Info arrays in the GPE block */ > > GpeBlock->RegisterInfo = GpeRegisterInfo; > - GpeBlock->EventInfo = GpeEventInfo; > + GpeBlock->EventInfo = GpeEventInfo; > > /* > * Initialize the GPE Register and Event structures. A goal of these > @@ -348,7 +349,7 @@ AcpiEvCreateGpeInfoBlocks ( > * first half, and the enable registers occupy the second half. > */ > ThisRegister = GpeRegisterInfo; > - ThisEvent = GpeEventInfo; > + ThisEvent = GpeEventInfo; > > for (i = 0; i < GpeBlock->RegisterCount; i++) > { > @@ -506,8 +507,8 @@ AcpiEvCreateGpeBlock ( > WalkInfo.ExecuteByOwnerId = FALSE; > > Status = AcpiNsWalkNamespace (ACPI_TYPE_METHOD, GpeDevice, > - ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, > - AcpiEvMatchGpeMethod, NULL, &WalkInfo, NULL); > + ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, > + AcpiEvMatchGpeMethod, NULL, &WalkInfo, NULL); > > /* Return the new block */ > > diff --git a/src/acpica/source/components/events/evgpeinit.c b/src/acpica/source/components/events/evgpeinit.c > index bf3c6e5..d8e4ee9 100644 > --- a/src/acpica/source/components/events/evgpeinit.c > +++ b/src/acpica/source/components/events/evgpeinit.c > @@ -210,10 +210,10 @@ AcpiEvGpeInitialize ( > /* Install GPE Block 0 */ > > Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice, > - AcpiGbl_FADT.XGpe0Block.Address, > - AcpiGbl_FADT.XGpe0Block.SpaceId, > - RegisterCount0, 0, > - AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]); > + AcpiGbl_FADT.XGpe0Block.Address, > + AcpiGbl_FADT.XGpe0Block.SpaceId, > + RegisterCount0, 0, > + AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]); > > if (ACPI_FAILURE (Status)) > { > @@ -250,11 +250,11 @@ AcpiEvGpeInitialize ( > /* Install GPE Block 1 */ > > Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice, > - AcpiGbl_FADT.XGpe1Block.Address, > - AcpiGbl_FADT.XGpe1Block.SpaceId, > - RegisterCount1, > - AcpiGbl_FADT.Gpe1Base, > - AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]); > + AcpiGbl_FADT.XGpe1Block.Address, > + AcpiGbl_FADT.XGpe1Block.SpaceId, > + RegisterCount1, > + AcpiGbl_FADT.Gpe1Base, > + AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]); > > if (ACPI_FAILURE (Status)) > { > @@ -267,7 +267,7 @@ AcpiEvGpeInitialize ( > * space. However, GPE0 always starts at GPE number zero. > */ > GpeNumberMax = AcpiGbl_FADT.Gpe1Base + > - ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1); > + ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1); > } > } > > @@ -347,9 +347,9 @@ AcpiEvUpdateGpes ( > WalkInfo.GpeDevice = GpeBlock->Node; > > Status = AcpiNsWalkNamespace (ACPI_TYPE_METHOD, > - WalkInfo.GpeDevice, ACPI_UINT32_MAX, > - ACPI_NS_WALK_NO_UNLOCK, AcpiEvMatchGpeMethod, > - NULL, &WalkInfo, NULL); > + WalkInfo.GpeDevice, ACPI_UINT32_MAX, > + ACPI_NS_WALK_NO_UNLOCK, AcpiEvMatchGpeMethod, > + NULL, &WalkInfo, NULL); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > @@ -502,7 +502,7 @@ AcpiEvMatchGpeMethod ( > } > > if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == > - ACPI_GPE_DISPATCH_METHOD) > + ACPI_GPE_DISPATCH_METHOD) > { > /* > * If there is already a method, ignore this method. But check > diff --git a/src/acpica/source/components/events/evgpeutil.c b/src/acpica/source/components/events/evgpeutil.c > index f204bba..aafbac9 100644 > --- a/src/acpica/source/components/events/evgpeutil.c > +++ b/src/acpica/source/components/events/evgpeutil.c > @@ -310,7 +310,7 @@ AcpiEvGetGpeXruptBlock ( > if (InterruptNumber != AcpiGbl_FADT.SciInterrupt) > { > Status = AcpiOsInstallInterruptHandler (InterruptNumber, > - AcpiEvGpeXruptHandler, GpeXrupt); > + AcpiEvGpeXruptHandler, GpeXrupt); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > @@ -360,7 +360,7 @@ AcpiEvDeleteGpeXrupt ( > /* Disable this interrupt */ > > Status = AcpiOsRemoveInterruptHandler ( > - GpeXrupt->InterruptNumber, AcpiEvGpeXruptHandler); > + GpeXrupt->InterruptNumber, AcpiEvGpeXruptHandler); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -446,7 +446,7 @@ AcpiEvDeleteGpeHandlers ( > GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK; > } > else if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == > - ACPI_GPE_DISPATCH_NOTIFY) > + ACPI_GPE_DISPATCH_NOTIFY) > { > /* Delete the implicit notification device list */ > > @@ -457,6 +457,7 @@ AcpiEvDeleteGpeHandlers ( > ACPI_FREE (Notify); > Notify = Next; > } > + > GpeEventInfo->Dispatch.NotifyList = NULL; > GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK; > } > diff --git a/src/acpica/source/components/events/evhandler.c b/src/acpica/source/components/events/evhandler.c > index d02ea53..4375e7c 100644 > --- a/src/acpica/source/components/events/evhandler.c > +++ b/src/acpica/source/components/events/evhandler.c > @@ -194,8 +194,8 @@ AcpiEvInstallRegionHandlers ( > for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++) > { > Status = AcpiEvInstallSpaceHandler (AcpiGbl_RootNode, > - AcpiGbl_DefaultAddressSpaces[i], > - ACPI_DEFAULT_HANDLER, NULL, NULL); > + AcpiGbl_DefaultAddressSpaces[i], > + ACPI_DEFAULT_HANDLER, NULL, NULL); > switch (Status) > { > case AE_OK: > @@ -256,7 +256,7 @@ AcpiEvHasDefaultHandler ( > if (HandlerObj->AddressSpace.SpaceId == SpaceId) > { > if (HandlerObj->AddressSpace.HandlerFlags & > - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) > + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) > { > return (TRUE); > } > @@ -354,7 +354,7 @@ AcpiEvInstallHandler ( > /* Found a handler, is it for the same address space? */ > > if (NextHandlerObj->AddressSpace.SpaceId == > - HandlerObj->AddressSpace.SpaceId) > + HandlerObj->AddressSpace.SpaceId) > { > ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, > "Found handler for region [%s] in device %p(%p) " > @@ -646,8 +646,8 @@ AcpiEvInstallSpaceHandler ( > * of the branch > */ > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, Node, ACPI_UINT32_MAX, > - ACPI_NS_WALK_UNLOCK, AcpiEvInstallHandler, NULL, > - HandlerObj, NULL); > + ACPI_NS_WALK_UNLOCK, AcpiEvInstallHandler, NULL, > + HandlerObj, NULL); > > UnlockAndExit: > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/events/evmisc.c b/src/acpica/source/components/events/evmisc.c > index 1735038..0d6492f 100644 > --- a/src/acpica/source/components/events/evmisc.c > +++ b/src/acpica/source/components/events/evmisc.c > @@ -147,6 +147,7 @@ BOOLEAN > AcpiEvIsNotifyObject ( > ACPI_NAMESPACE_NODE *Node) > { > + > switch (Node->Type) > { > case ACPI_TYPE_DEVICE: > @@ -255,8 +256,8 @@ AcpiEvQueueNotifyRequest ( > AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type), > NotifyValue, AcpiUtGetNotifyName (NotifyValue, ACPI_TYPE_ANY), Node)); > > - Status = AcpiOsExecute (OSL_NOTIFY_HANDLER, AcpiEvNotifyDispatch, > - Info); > + Status = AcpiOsExecute (OSL_NOTIFY_HANDLER, > + AcpiEvNotifyDispatch, Info); > if (ACPI_FAILURE (Status)) > { > AcpiUtDeleteGenericState (Info); > diff --git a/src/acpica/source/components/events/evregion.c b/src/acpica/source/components/events/evregion.c > index 24848db..2b00616 100644 > --- a/src/acpica/source/components/events/evregion.c > +++ b/src/acpica/source/components/events/evregion.c > @@ -182,7 +182,7 @@ AcpiEvInitializeOpRegions ( > AcpiGbl_DefaultAddressSpaces[i])) > { > Status = AcpiEvExecuteRegMethods (AcpiGbl_RootNode, > - AcpiGbl_DefaultAddressSpaces[i]); > + AcpiGbl_DefaultAddressSpaces[i]); > } > } > > @@ -282,7 +282,7 @@ AcpiEvAddressSpaceDispatch ( > AcpiExExitInterpreter (); > > Status = RegionSetup (RegionObj, ACPI_REGION_ACTIVATE, > - Context, &RegionContext); > + Context, &RegionContext); > > /* Re-enter the interpreter */ > > @@ -364,7 +364,7 @@ AcpiEvAddressSpaceDispatch ( > AcpiUtGetRegionName (RegionObj->Region.SpaceId))); > > if (!(HandlerDesc->AddressSpace.HandlerFlags & > - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) > + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) > { > /* > * For handlers other than the default (supplied) handlers, we must > @@ -386,7 +386,7 @@ AcpiEvAddressSpaceDispatch ( > } > > if (!(HandlerDesc->AddressSpace.HandlerFlags & > - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) > + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) > { > /* > * We just returned from a non-default handler, we must re-enter the > diff --git a/src/acpica/source/components/events/evrgnini.c b/src/acpica/source/components/events/evrgnini.c > index 405af22..ebc3b59 100644 > --- a/src/acpica/source/components/events/evrgnini.c > +++ b/src/acpica/source/components/events/evrgnini.c > @@ -320,9 +320,9 @@ AcpiEvPciConfigRegionSetup ( > /* Install a handler for this PCI root bridge */ > > Status = AcpiInstallAddressSpaceHandler ( > - (ACPI_HANDLE) PciRootNode, > - ACPI_ADR_SPACE_PCI_CONFIG, > - ACPI_DEFAULT_HANDLER, NULL, NULL); > + (ACPI_HANDLE) PciRootNode, > + ACPI_ADR_SPACE_PCI_CONFIG, > + ACPI_DEFAULT_HANDLER, NULL, NULL); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_SAME_HANDLER) > @@ -396,7 +396,7 @@ AcpiEvPciConfigRegionSetup ( > * contained in the parent's scope. > */ > Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, > - PciDeviceNode, &PciValue); > + PciDeviceNode, &PciValue); > > /* > * The default is zero, and since the allocation above zeroed the data, > @@ -411,7 +411,7 @@ AcpiEvPciConfigRegionSetup ( > /* The PCI segment number comes from the _SEG method */ > > Status = AcpiUtEvaluateNumericObject (METHOD_NAME__SEG, > - PciRootNode, &PciValue); > + PciRootNode, &PciValue); > if (ACPI_SUCCESS (Status)) > { > PciId->Segment = ACPI_LOWORD (PciValue); > @@ -420,7 +420,7 @@ AcpiEvPciConfigRegionSetup ( > /* The PCI bus number comes from the _BBN method */ > > Status = AcpiUtEvaluateNumericObject (METHOD_NAME__BBN, > - PciRootNode, &PciValue); > + PciRootNode, &PciValue); > if (ACPI_SUCCESS (Status)) > { > PciId->Bus = ACPI_LOWORD (PciValue); > @@ -676,7 +676,7 @@ AcpiEvInitializeRegion ( > /* Find any "_REG" method associated with this region definition */ > > Status = AcpiNsSearchOneScope ( > - *RegNamePtr, Node, ACPI_TYPE_METHOD, &MethodNode); > + *RegNamePtr, Node, ACPI_TYPE_METHOD, &MethodNode); > if (ACPI_SUCCESS (Status)) > { > /* > @@ -752,7 +752,7 @@ AcpiEvInitializeRegion ( > HandlerObj, RegionObj, ObjDesc)); > > Status = AcpiEvAttachRegion (HandlerObj, RegionObj, > - AcpiNsLocked); > + AcpiNsLocked); > > /* > * Tell all users that this region is usable by > diff --git a/src/acpica/source/components/events/evsci.c b/src/acpica/source/components/events/evsci.c > index 987b03c..f021ab8 100644 > --- a/src/acpica/source/components/events/evsci.c > +++ b/src/acpica/source/components/events/evsci.c > @@ -291,7 +291,7 @@ AcpiEvInstallSciHandler ( > > > Status = AcpiOsInstallInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt, > - AcpiEvSciXruptHandler, AcpiGbl_GpeXruptListHead); > + AcpiEvSciXruptHandler, AcpiGbl_GpeXruptListHead); > return_ACPI_STATUS (Status); > } > > @@ -330,7 +330,7 @@ AcpiEvRemoveAllSciHandlers ( > /* Just let the OS remove the handler and disable the level */ > > Status = AcpiOsRemoveInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt, > - AcpiEvSciXruptHandler); > + AcpiEvSciXruptHandler); > > if (!AcpiGbl_SciHandlerList) > { > diff --git a/src/acpica/source/components/events/evxface.c b/src/acpica/source/components/events/evxface.c > index 5e3391d..5469a22 100644 > --- a/src/acpica/source/components/events/evxface.c > +++ b/src/acpica/source/components/events/evxface.c > @@ -1074,8 +1074,8 @@ AcpiInstallGpeHandler ( > ACPI_FUNCTION_TRACE (AcpiInstallGpeHandler); > > > - Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, FALSE, > - Address, Context); > + Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, > + FALSE, Address, Context); > > return_ACPI_STATUS (Status); > } > @@ -1115,8 +1115,8 @@ AcpiInstallGpeRawHandler ( > ACPI_FUNCTION_TRACE (AcpiInstallGpeRawHandler); > > > - Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, TRUE, > - Address, Context); > + Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, > + TRUE, Address, Context); > > return_ACPI_STATUS (Status); > } > @@ -1282,7 +1282,7 @@ AcpiAcquireGlobalLock ( > AcpiExEnterInterpreter (); > > Status = AcpiExAcquireMutexObject (Timeout, > - AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); > + AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); > > if (ACPI_SUCCESS (Status)) > { > diff --git a/src/acpica/source/components/events/evxfevnt.c b/src/acpica/source/components/events/evxfevnt.c > index 271aacc..b4fd27e 100644 > --- a/src/acpica/source/components/events/evxfevnt.c > +++ b/src/acpica/source/components/events/evxfevnt.c > @@ -148,7 +148,7 @@ AcpiEnable ( > > /* ACPI tables must be present */ > > - if (!AcpiTbTablesLoaded ()) > + if (AcpiGbl_FadtIndex == ACPI_INVALID_TABLE_INDEX) > { > return_ACPI_STATUS (AE_NO_ACPI_TABLES); > } > @@ -164,7 +164,8 @@ AcpiEnable ( > > if (AcpiHwGetMode() == ACPI_SYS_MODE_ACPI) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "System is already in ACPI mode\n")); > + ACPI_DEBUG_PRINT ((ACPI_DB_INIT, > + "System is already in ACPI mode\n")); > } > else > { > @@ -234,7 +235,8 @@ AcpiDisable ( > return_ACPI_STATUS (Status); > } > > - ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI mode disabled\n")); > + ACPI_DEBUG_PRINT ((ACPI_DB_INIT, > + "ACPI mode disabled\n")); > } > > return_ACPI_STATUS (Status); > @@ -280,8 +282,8 @@ AcpiEnableEvent ( > * register bit) > */ > Status = AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > - ACPI_ENABLE_EVENT); > + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > + ACPI_ENABLE_EVENT); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -290,7 +292,7 @@ AcpiEnableEvent ( > /* Make sure that the hardware responded */ > > Status = AcpiReadBitRegister ( > - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); > + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -346,15 +348,15 @@ AcpiDisableEvent ( > * register bit) > */ > Status = AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > - ACPI_DISABLE_EVENT); > + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, > + ACPI_DISABLE_EVENT); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > } > > Status = AcpiReadBitRegister ( > - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); > + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -407,8 +409,8 @@ AcpiClearEvent ( > * register bit) > */ > Status = AcpiWriteBitRegister ( > - AcpiGbl_FixedEventInfo[Event].StatusRegisterId, > - ACPI_CLEAR_STATUS); > + AcpiGbl_FixedEventInfo[Event].StatusRegisterId, > + ACPI_CLEAR_STATUS); > > return_ACPI_STATUS (Status); > } > @@ -465,7 +467,7 @@ AcpiGetEventStatus ( > /* Fixed event currently enabled? */ > > Status = AcpiReadBitRegister ( > - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &InByte); > + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &InByte); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -480,7 +482,7 @@ AcpiGetEventStatus ( > /* Fixed event currently active? */ > > Status = AcpiReadBitRegister ( > - AcpiGbl_FixedEventInfo[Event].StatusRegisterId, &InByte); > + AcpiGbl_FixedEventInfo[Event].StatusRegisterId, &InByte); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/events/evxfgpe.c b/src/acpica/source/components/events/evxfgpe.c > index f4f0da1..f55261f 100644 > --- a/src/acpica/source/components/events/evxfgpe.c > +++ b/src/acpica/source/components/events/evxfgpe.c > @@ -512,7 +512,7 @@ AcpiSetupGpeForWake ( > * level-triggered (for windows compatibility). > */ > if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == > - ACPI_GPE_DISPATCH_NONE) > + ACPI_GPE_DISPATCH_NONE) > { > /* > * This is the first device for implicit notify on this GPE. > @@ -527,7 +527,7 @@ AcpiSetupGpeForWake ( > * this device to the notify list. > */ > if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == > - ACPI_GPE_DISPATCH_NOTIFY) > + ACPI_GPE_DISPATCH_NOTIFY) > { > /* Ensure that the device is not already in the list */ > > @@ -992,8 +992,8 @@ AcpiInstallGpeBlock ( > * is always zero > */ > Status = AcpiEvCreateGpeBlock (Node, GpeBlockAddress->Address, > - GpeBlockAddress->SpaceId, RegisterCount, > - 0, InterruptNumber, &GpeBlock); > + GpeBlockAddress->SpaceId, RegisterCount, > + 0, InterruptNumber, &GpeBlock); > if (ACPI_FAILURE (Status)) > { > goto UnlockAndExit; > diff --git a/src/acpica/source/components/events/evxfregn.c b/src/acpica/source/components/events/evxfregn.c > index e220676..4b70d09 100644 > --- a/src/acpica/source/components/events/evxfregn.c > +++ b/src/acpica/source/components/events/evxfregn.c > @@ -186,7 +186,8 @@ AcpiInstallAddressSpaceHandler ( > > /* Install the handler for all Regions for this Space ID */ > > - Status = AcpiEvInstallSpaceHandler (Node, SpaceId, Handler, Setup, Context); > + Status = AcpiEvInstallSpaceHandler ( > + Node, SpaceId, Handler, Setup, Context); > if (ACPI_FAILURE (Status)) > { > goto UnlockAndExit; > @@ -216,6 +217,7 @@ AcpiInstallAddressSpaceHandler ( > if (!AcpiGbl_RegMethodsExecuted) > { > /* We will defer execution of the _REG methods for this space */ > + > goto UnlockAndExit; > } > break; > diff --git a/src/acpica/source/components/executer/exconfig.c b/src/acpica/source/components/executer/exconfig.c > index d4f7087..06aca94 100644 > --- a/src/acpica/source/components/executer/exconfig.c > +++ b/src/acpica/source/components/executer/exconfig.c > @@ -254,9 +254,9 @@ AcpiExLoadTableOp ( > /* Find the ACPI table in the RSDT/XSDT */ > > Status = AcpiTbFindTable ( > - Operand[0]->String.Pointer, > - Operand[1]->String.Pointer, > - Operand[2]->String.Pointer, &TableIndex); > + Operand[0]->String.Pointer, > + Operand[1]->String.Pointer, > + Operand[2]->String.Pointer, &TableIndex); > if (ACPI_FAILURE (Status)) > { > if (Status != AE_NOT_FOUND) > @@ -290,7 +290,7 @@ AcpiExLoadTableOp ( > * location within the namespace where the table will be loaded. > */ > Status = AcpiNsGetNode (StartNode, Operand[3]->String.Pointer, > - ACPI_NS_SEARCH_PARENT, &ParentNode); > + ACPI_NS_SEARCH_PARENT, &ParentNode); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -314,7 +314,7 @@ AcpiExLoadTableOp ( > /* Find the node referenced by the ParameterPathString */ > > Status = AcpiNsGetNode (StartNode, Operand[4]->String.Pointer, > - ACPI_NS_SEARCH_PARENT, &ParameterNode); > + ACPI_NS_SEARCH_PARENT, &ParameterNode); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -336,8 +336,7 @@ AcpiExLoadTableOp ( > /* Store the parameter data into the optional parameter object */ > > Status = AcpiExStore (Operand[5], > - ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParameterNode), > - WalkState); > + ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParameterNode), WalkState); > if (ACPI_FAILURE (Status)) > { > (void) AcpiExUnloadTable (DdbHandle); > @@ -359,7 +358,7 @@ AcpiExLoadTableOp ( > if (AcpiGbl_TableHandler) > { > (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, > - AcpiGbl_TableHandlerContext); > + AcpiGbl_TableHandlerContext); > } > > *ReturnDesc = DdbHandle; > @@ -399,7 +398,7 @@ AcpiExRegionRead ( > for (i = 0; i < Length; i++) > { > Status = AcpiEvAddressSpaceDispatch (ObjDesc, NULL, ACPI_READ, > - RegionOffset, 8, &Value); > + RegionOffset, 8, &Value); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -469,8 +468,8 @@ AcpiExLoadOp ( > } > > /* > - * If the Region Address and Length have not been previously evaluated, > - * evaluate them now and save the results. > + * If the Region Address and Length have not been previously > + * evaluated, evaluate them now and save the results. > */ > if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)) > { > @@ -490,7 +489,7 @@ AcpiExLoadOp ( > } > > Status = AcpiExRegionRead (ObjDesc, sizeof (ACPI_TABLE_HEADER), > - ACPI_CAST_PTR (UINT8, TableHeader)); > + ACPI_CAST_PTR (UINT8, TableHeader)); > Length = TableHeader->Length; > ACPI_FREE (TableHeader); > > @@ -533,7 +532,7 @@ AcpiExLoadOp ( > /* Read the entire table */ > > Status = AcpiExRegionRead (ObjDesc, Length, > - ACPI_CAST_PTR (UINT8, Table)); > + ACPI_CAST_PTR (UINT8, Table)); > if (ACPI_FAILURE (Status)) > { > ACPI_FREE (Table); > @@ -555,7 +554,8 @@ AcpiExLoadOp ( > > /* Get the actual table length from the table header */ > > - TableHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ObjDesc->Buffer.Pointer); > + TableHeader = ACPI_CAST_PTR ( > + ACPI_TABLE_HEADER, ObjDesc->Buffer.Pointer); > Length = TableHeader->Length; > > /* Table cannot extend beyond the buffer */ > @@ -570,8 +570,8 @@ AcpiExLoadOp ( > } > > /* > - * Copy the table from the buffer because the buffer could be modified > - * or even deleted in the future > + * Copy the table from the buffer because the buffer could be > + * modified or even deleted in the future > */ > Table = ACPI_ALLOCATE (Length); > if (!Table) > @@ -593,8 +593,8 @@ AcpiExLoadOp ( > (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES); > > Status = AcpiTbInstallStandardTable (ACPI_PTR_TO_PHYSADDR (Table), > - ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, TRUE, TRUE, > - &TableIndex); > + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, TRUE, TRUE, > + &TableIndex); > > (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); > if (ACPI_FAILURE (Status)) > @@ -609,7 +609,8 @@ AcpiExLoadOp ( > * Note: Now table is "INSTALLED", it must be validated before > * loading. > */ > - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); > + Status = AcpiTbValidateTable ( > + &AcpiGbl_RootTableList.Tables[TableIndex]); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -652,7 +653,7 @@ AcpiExLoadOp ( > if (AcpiGbl_TableHandler) > { > (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, > - AcpiGbl_TableHandlerContext); > + AcpiGbl_TableHandlerContext); > } > > return_ACPI_STATUS (Status); > @@ -729,7 +730,7 @@ AcpiExUnloadTable ( > if (ACPI_SUCCESS (Status)) > { > (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_UNLOAD, Table, > - AcpiGbl_TableHandlerContext); > + AcpiGbl_TableHandlerContext); > } > } > > diff --git a/src/acpica/source/components/executer/exconvrt.c b/src/acpica/source/components/executer/exconvrt.c > index 019a490..dc5fd9f 100644 > --- a/src/acpica/source/components/executer/exconvrt.c > +++ b/src/acpica/source/components/executer/exconvrt.c > @@ -323,9 +323,7 @@ AcpiExConvertToBuffer ( > /* Copy the integer to the buffer, LSB first */ > > NewBuf = ReturnDesc->Buffer.Pointer; > - memcpy (NewBuf, > - &ObjDesc->Integer.Value, > - AcpiGbl_IntegerByteWidth); > + memcpy (NewBuf, &ObjDesc->Integer.Value, AcpiGbl_IntegerByteWidth); > break; > > case ACPI_TYPE_STRING: > @@ -338,8 +336,8 @@ AcpiExConvertToBuffer ( > * ASL/AML code that depends on the null being transferred to the new > * buffer. > */ > - ReturnDesc = AcpiUtCreateBufferObject ( > - (ACPI_SIZE) ObjDesc->String.Length + 1); > + ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE) > + ObjDesc->String.Length + 1); > if (!ReturnDesc) > { > return_ACPI_STATUS (AE_NO_MEMORY); > @@ -462,7 +460,8 @@ AcpiExConvertToAscii ( > { > /* Get one hex digit, most significant digits first */ > > - String[k] = (UINT8) AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j)); > + String[k] = (UINT8) > + AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j)); > k++; > } > break; > @@ -563,8 +562,8 @@ AcpiExConvertToString ( > > /* Convert integer to string */ > > - StringLength = AcpiExConvertToAscii (ObjDesc->Integer.Value, Base, > - NewBuf, AcpiGbl_IntegerByteWidth); > + StringLength = AcpiExConvertToAscii ( > + ObjDesc->Integer.Value, Base, NewBuf, AcpiGbl_IntegerByteWidth); > > /* Null terminate at the correct place */ > > @@ -653,8 +652,7 @@ AcpiExConvertToString ( > for (i = 0; i < ObjDesc->Buffer.Length; i++) > { > NewBuf += AcpiExConvertToAscii ( > - (UINT64) ObjDesc->Buffer.Pointer[i], Base, > - NewBuf, 1); > + (UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1); > *NewBuf++ = Separator; /* each separated by a comma or space */ > } > > @@ -757,8 +755,7 @@ AcpiExConvertToTargetType ( > * These types require an Integer operand. We can convert > * a Buffer or a String to an Integer if necessary. > */ > - Status = AcpiExConvertToInteger (SourceDesc, ResultDesc, > - 16); > + Status = AcpiExConvertToInteger (SourceDesc, ResultDesc, 16); > break; > > case ACPI_TYPE_STRING: > @@ -767,7 +764,7 @@ AcpiExConvertToTargetType ( > * Integer or Buffer if necessary > */ > Status = AcpiExConvertToString (SourceDesc, ResultDesc, > - ACPI_IMPLICIT_CONVERT_HEX); > + ACPI_IMPLICIT_CONVERT_HEX); > break; > > case ACPI_TYPE_BUFFER: > @@ -780,7 +777,8 @@ AcpiExConvertToTargetType ( > > default: > > - ACPI_ERROR ((AE_INFO, "Bad destination type during conversion: 0x%X", > + ACPI_ERROR ((AE_INFO, > + "Bad destination type during conversion: 0x%X", > DestinationType)); > Status = AE_AML_INTERNAL; > break; > diff --git a/src/acpica/source/components/executer/excreate.c b/src/acpica/source/components/executer/excreate.c > index 9c7ffc1..fc36956 100644 > --- a/src/acpica/source/components/executer/excreate.c > +++ b/src/acpica/source/components/executer/excreate.c > @@ -220,7 +220,7 @@ AcpiExCreateAlias ( > * target node or the alias Node > */ > Status = AcpiNsAttachObject (AliasNode, > - AcpiNsGetAttachedObject (TargetNode), TargetNode->Type); > + AcpiNsGetAttachedObject (TargetNode), TargetNode->Type); > break; > } > > @@ -265,7 +265,7 @@ AcpiExCreateEvent ( > * that the event is created in an unsignalled state > */ > Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, > - &ObjDesc->Event.OsSemaphore); > + &ObjDesc->Event.OsSemaphore); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -273,8 +273,9 @@ AcpiExCreateEvent ( > > /* Attach object to the Node */ > > - Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) WalkState->Operands[0], > - ObjDesc, ACPI_TYPE_EVENT); > + Status = AcpiNsAttachObject ( > + (ACPI_NAMESPACE_NODE *) WalkState->Operands[0], > + ObjDesc, ACPI_TYPE_EVENT); > > Cleanup: > /* > @@ -333,7 +334,8 @@ AcpiExCreateMutex ( > ObjDesc->Mutex.SyncLevel = (UINT8) WalkState->Operands[1]->Integer.Value; > ObjDesc->Mutex.Node = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0]; > > - Status = AcpiNsAttachObject (ObjDesc->Mutex.Node, ObjDesc, ACPI_TYPE_MUTEX); > + Status = AcpiNsAttachObject ( > + ObjDesc->Mutex.Node, ObjDesc, ACPI_TYPE_MUTEX); > > > Cleanup: > @@ -401,7 +403,8 @@ AcpiExCreateRegion ( > * a table load for this exception. Instead, if the region is > * actually used at runtime, abort the executing method. > */ > - ACPI_ERROR ((AE_INFO, "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); > + ACPI_ERROR ((AE_INFO, > + "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); > } > > ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Region Type - %s (0x%X)\n", > @@ -496,7 +499,7 @@ AcpiExCreateProcessor ( > /* Install the processor object in the parent Node */ > > Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0], > - ObjDesc, ACPI_TYPE_PROCESSOR); > + ObjDesc, ACPI_TYPE_PROCESSOR); > > /* Remove local reference to the object */ > > @@ -547,7 +550,7 @@ AcpiExCreatePowerResource ( > /* Install the power resource object in the parent Node */ > > Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0], > - ObjDesc, ACPI_TYPE_POWER); > + ObjDesc, ACPI_TYPE_POWER); > > /* Remove local reference to the object */ > > @@ -606,7 +609,8 @@ AcpiExCreateMethod ( > * flag, and SyncLevel for efficiency. > */ > MethodFlags = (UINT8) Operand[1]->Integer.Value; > - ObjDesc->Method.ParamCount = (UINT8) (MethodFlags & AML_METHOD_ARG_COUNT); > + ObjDesc->Method.ParamCount = (UINT8) > + (MethodFlags & AML_METHOD_ARG_COUNT); > > /* > * Get the SyncLevel. If method is serialized, a mutex will be > @@ -627,7 +631,7 @@ AcpiExCreateMethod ( > /* Attach the new object to the method Node */ > > Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0], > - ObjDesc, ACPI_TYPE_METHOD); > + ObjDesc, ACPI_TYPE_METHOD); > > /* Remove local reference to the object */ > > diff --git a/src/acpica/source/components/executer/exdebug.c b/src/acpica/source/components/executer/exdebug.c > index 00ec43f..67bd8fc 100644 > --- a/src/acpica/source/components/executer/exdebug.c > +++ b/src/acpica/source/components/executer/exdebug.c > @@ -115,26 +115,13 @@ > > #include "acpi.h" > #include "accommon.h" > -#include "acnamesp.h" > #include "acinterp.h" > -#include "acparser.h" > > > #define _COMPONENT ACPI_EXECUTER > ACPI_MODULE_NAME ("exdebug") > > > -static ACPI_OPERAND_OBJECT *AcpiGbl_TraceMethodObject = NULL; > - > -/* Local prototypes */ > - > -#ifdef ACPI_DEBUG_OUTPUT > -static const char * > -AcpiExGetTraceEventName ( > - ACPI_TRACE_EVENT_TYPE Type); > -#endif > - > - > #ifndef ACPI_NO_ERROR_MESSAGES > /******************************************************************************* > * > @@ -225,7 +212,7 @@ AcpiExDoDebugObject ( > { > AcpiOsPrintf ("%s: %p\n", > AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) SourceDesc)->Type), > - SourceDesc); > + SourceDesc); > return_VOID; > } > else > @@ -277,7 +264,7 @@ AcpiExDoDebugObject ( > for (i = 0; i < SourceDesc->Package.Count; i++) > { > AcpiExDoDebugObject (SourceDesc->Package.Elements[i], > - Level+4, i+1); > + Level + 4, i + 1); > } > break; > > @@ -313,7 +300,7 @@ AcpiExDoDebugObject ( > if (SourceDesc->Reference.Node) > { > if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Node) != > - ACPI_DESC_TYPE_NAMED) > + ACPI_DESC_TYPE_NAMED) > { > AcpiOsPrintf (" %p - Not a valid namespace node\n", > SourceDesc->Reference.Node); > @@ -338,7 +325,7 @@ AcpiExDoDebugObject ( > default: > > AcpiExDoDebugObject ((SourceDesc->Reference.Node)->Object, > - Level+4, 0); > + Level + 4, 0); > break; > } > } > @@ -346,11 +333,11 @@ AcpiExDoDebugObject ( > else if (SourceDesc->Reference.Object) > { > if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Object) == > - ACPI_DESC_TYPE_NAMED) > + ACPI_DESC_TYPE_NAMED) > { > AcpiExDoDebugObject (((ACPI_NAMESPACE_NODE *) > SourceDesc->Reference.Object)->Object, > - Level+4, 0); > + Level + 4, 0); > } > else > { > @@ -399,362 +386,3 @@ AcpiExDoDebugObject ( > return_VOID; > } > #endif > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExInterpreterTraceEnabled > - * > - * PARAMETERS: Name - Whether method name should be matched, > - * this should be checked before starting > - * the tracer > - * > - * RETURN: TRUE if interpreter trace is enabled. > - * > - * DESCRIPTION: Check whether interpreter trace is enabled > - * > - ******************************************************************************/ > - > -static BOOLEAN > -AcpiExInterpreterTraceEnabled ( > - char *Name) > -{ > - > - /* Check if tracing is enabled */ > - > - if (!(AcpiGbl_TraceFlags & ACPI_TRACE_ENABLED)) > - { > - return (FALSE); > - } > - > - /* > - * Check if tracing is filtered: > - * > - * 1. If the tracer is started, AcpiGbl_TraceMethodObject should have > - * been filled by the trace starter > - * 2. If the tracer is not started, AcpiGbl_TraceMethodName should be > - * matched if it is specified > - * 3. If the tracer is oneshot style, AcpiGbl_TraceMethodName should > - * not be cleared by the trace stopper during the first match > - */ > - if (AcpiGbl_TraceMethodObject) > - { > - return (TRUE); > - } > - if (Name && > - (AcpiGbl_TraceMethodName && > - strcmp (AcpiGbl_TraceMethodName, Name))) > - { > - return (FALSE); > - } > - if ((AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) && > - !AcpiGbl_TraceMethodName) > - { > - return (FALSE); > - } > - > - return (TRUE); > -} > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExGetTraceEventName > - * > - * PARAMETERS: Type - Trace event type > - * > - * RETURN: Trace event name. > - * > - * DESCRIPTION: Used to obtain the full trace event name. > - * > - ******************************************************************************/ > - > -#ifdef ACPI_DEBUG_OUTPUT > - > -static const char * > -AcpiExGetTraceEventName ( > - ACPI_TRACE_EVENT_TYPE Type) > -{ > - switch (Type) > - { > - case ACPI_TRACE_AML_METHOD: > - > - return "Method"; > - > - case ACPI_TRACE_AML_OPCODE: > - > - return "Opcode"; > - > - case ACPI_TRACE_AML_REGION: > - > - return "Region"; > - > - default: > - > - return ""; > - } > -} > - > -#endif > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExTracePoint > - * > - * PARAMETERS: Type - Trace event type > - * Begin - TRUE if before execution > - * Aml - Executed AML address > - * Pathname - Object path > - * > - * RETURN: None > - * > - * DESCRIPTION: Internal interpreter execution trace. > - * > - ******************************************************************************/ > - > -void > -AcpiExTracePoint ( > - ACPI_TRACE_EVENT_TYPE Type, > - BOOLEAN Begin, > - UINT8 *Aml, > - char *Pathname) > -{ > - > - ACPI_FUNCTION_NAME (ExTracePoint); > - > - > - if (Pathname) > - { > - ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, > - "%s %s [0x%p:%s] execution.\n", > - AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", > - Aml, Pathname)); > - } > - else > - { > - ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, > - "%s %s [0x%p] execution.\n", > - AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", > - Aml)); > - } > -} > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExStartTraceMethod > - * > - * PARAMETERS: MethodNode - Node of the method > - * ObjDesc - The method object > - * WalkState - current state, NULL if not yet executing > - * a method. > - * > - * RETURN: None > - * > - * DESCRIPTION: Start control method execution trace > - * > - ******************************************************************************/ > - > -void > -AcpiExStartTraceMethod ( > - ACPI_NAMESPACE_NODE *MethodNode, > - ACPI_OPERAND_OBJECT *ObjDesc, > - ACPI_WALK_STATE *WalkState) > -{ > - ACPI_STATUS Status; > - char *Pathname = NULL; > - BOOLEAN Enabled = FALSE; > - > - > - ACPI_FUNCTION_NAME (ExStartTraceMethod); > - > - > - if (MethodNode) > - { > - Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); > - } > - > - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); > - if (ACPI_FAILURE (Status)) > - { > - goto Exit; > - } > - > - Enabled = AcpiExInterpreterTraceEnabled (Pathname); > - if (Enabled && !AcpiGbl_TraceMethodObject) > - { > - AcpiGbl_TraceMethodObject = ObjDesc; > - AcpiGbl_OriginalDbgLevel = AcpiDbgLevel; > - AcpiGbl_OriginalDbgLayer = AcpiDbgLayer; > - AcpiDbgLevel = ACPI_TRACE_LEVEL_ALL; > - AcpiDbgLayer = ACPI_TRACE_LAYER_ALL; > - > - if (AcpiGbl_TraceDbgLevel) > - { > - AcpiDbgLevel = AcpiGbl_TraceDbgLevel; > - } > - if (AcpiGbl_TraceDbgLayer) > - { > - AcpiDbgLayer = AcpiGbl_TraceDbgLayer; > - } > - } > - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > - > -Exit: > - if (Enabled) > - { > - ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, TRUE, > - ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); > - } > - if (Pathname) > - { > - ACPI_FREE (Pathname); > - } > -} > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExStopTraceMethod > - * > - * PARAMETERS: MethodNode - Node of the method > - * ObjDesc - The method object > - * WalkState - current state, NULL if not yet executing > - * a method. > - * > - * RETURN: None > - * > - * DESCRIPTION: Stop control method execution trace > - * > - ******************************************************************************/ > - > -void > -AcpiExStopTraceMethod ( > - ACPI_NAMESPACE_NODE *MethodNode, > - ACPI_OPERAND_OBJECT *ObjDesc, > - ACPI_WALK_STATE *WalkState) > -{ > - ACPI_STATUS Status; > - char *Pathname = NULL; > - BOOLEAN Enabled; > - > - > - ACPI_FUNCTION_NAME (ExStopTraceMethod); > - > - > - if (MethodNode) > - { > - Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); > - } > - > - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); > - if (ACPI_FAILURE (Status)) > - { > - goto ExitPath; > - } > - > - Enabled = AcpiExInterpreterTraceEnabled (NULL); > - > - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > - > - if (Enabled) > - { > - ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, FALSE, > - ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); > - } > - > - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); > - if (ACPI_FAILURE (Status)) > - { > - goto ExitPath; > - } > - > - /* Check whether the tracer should be stopped */ > - > - if (AcpiGbl_TraceMethodObject == ObjDesc) > - { > - /* Disable further tracing if type is one-shot */ > - > - if (AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) > - { > - AcpiGbl_TraceMethodName = NULL; > - } > - > - AcpiDbgLevel = AcpiGbl_OriginalDbgLevel; > - AcpiDbgLayer = AcpiGbl_OriginalDbgLayer; > - AcpiGbl_TraceMethodObject = NULL; > - } > - > - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > - > -ExitPath: > - if (Pathname) > - { > - ACPI_FREE (Pathname); > - } > -} > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExStartTraceOpcode > - * > - * PARAMETERS: Op - The parser opcode object > - * WalkState - current state, NULL if not yet executing > - * a method. > - * > - * RETURN: None > - * > - * DESCRIPTION: Start opcode execution trace > - * > - ******************************************************************************/ > - > -void > -AcpiExStartTraceOpcode ( > - ACPI_PARSE_OBJECT *Op, > - ACPI_WALK_STATE *WalkState) > -{ > - > - ACPI_FUNCTION_NAME (ExStartTraceOpcode); > - > - > - if (AcpiExInterpreterTraceEnabled (NULL) && > - (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) > - { > - ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, TRUE, > - Op->Common.Aml, Op->Common.AmlOpName); > - } > -} > - > - > -/******************************************************************************* > - * > - * FUNCTION: AcpiExStopTraceOpcode > - * > - * PARAMETERS: Op - The parser opcode object > - * WalkState - current state, NULL if not yet executing > - * a method. > - * > - * RETURN: None > - * > - * DESCRIPTION: Stop opcode execution trace > - * > - ******************************************************************************/ > - > -void > -AcpiExStopTraceOpcode ( > - ACPI_PARSE_OBJECT *Op, > - ACPI_WALK_STATE *WalkState) > -{ > - > - ACPI_FUNCTION_NAME (ExStopTraceOpcode); > - > - > - if (AcpiExInterpreterTraceEnabled (NULL) && > - (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) > - { > - ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, FALSE, > - Op->Common.Aml, Op->Common.AmlOpName); > - } > -} > diff --git a/src/acpica/source/components/executer/exdump.c b/src/acpica/source/components/executer/exdump.c > index c682777..73acfd4 100644 > --- a/src/acpica/source/components/executer/exdump.c > +++ b/src/acpica/source/components/executer/exdump.c > @@ -525,7 +525,8 @@ AcpiExDumpObject ( > > case ACPI_EXD_BUFFER: > > - ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length); > + ACPI_DUMP_BUFFER ( > + ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length); > break; > > case ACPI_EXD_PACKAGE: > @@ -544,7 +545,8 @@ AcpiExDumpObject ( > case ACPI_EXD_REFERENCE: > > ReferenceName = AcpiUtGetReferenceName (ObjDesc); > - AcpiExOutString ("Class Name", ACPI_CAST_PTR (char, ReferenceName)); > + AcpiExOutString ( > + "Class Name", ACPI_CAST_PTR (char, ReferenceName)); > AcpiExDumpReferenceObj (ObjDesc); > break; > > @@ -573,7 +575,8 @@ AcpiExDumpObject ( > > if ((Next == Start) || (Next == Data)) > { > - AcpiOsPrintf ("\n**** Error: Object list appears to be circular linked"); > + AcpiOsPrintf ( > + "\n**** Error: Object list appears to be circular linked"); > break; > } > } > @@ -607,7 +610,8 @@ AcpiExDumpObject ( > > if ((Next == Start) || (Next == Data)) > { > - AcpiOsPrintf ("\n**** Error: Handler list appears to be circular linked"); > + AcpiOsPrintf ( > + "\n**** Error: Handler list appears to be circular linked"); > break; > } > } > @@ -641,7 +645,8 @@ AcpiExDumpObject ( > > if ((Next == Start) || (Next == Data)) > { > - AcpiOsPrintf ("\n**** Error: Region list appears to be circular linked"); > + AcpiOsPrintf ( > + "\n**** Error: Region list appears to be circular linked"); > break; > } > } > @@ -749,7 +754,8 @@ AcpiExDumpOperand ( > { > case ACPI_TYPE_LOCAL_REFERENCE: > > - AcpiOsPrintf ("Reference: [%s] ", AcpiUtGetReferenceName (ObjDesc)); > + AcpiOsPrintf ("Reference: [%s] ", > + AcpiUtGetReferenceName (ObjDesc)); > > switch (ObjDesc->Reference.Class) > { > @@ -777,7 +783,8 @@ AcpiExDumpOperand ( > > case ACPI_REFCLASS_NAME: > > - AcpiOsPrintf ("- [%4.4s]\n", ObjDesc->Reference.Node->Name.Ascii); > + AcpiOsPrintf ("- [%4.4s]\n", > + ObjDesc->Reference.Node->Name.Ascii); > break; > > case ACPI_REFCLASS_ARG: > @@ -808,8 +815,8 @@ AcpiExDumpOperand ( > Length = 128; > } > > - AcpiOsPrintf ("Buffer Contents: (displaying length 0x%.2X)\n", > - Length); > + AcpiOsPrintf ( > + "Buffer Contents: (displaying length 0x%.2X)\n", Length); > ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, Length); > } > break; > @@ -835,7 +842,8 @@ AcpiExDumpOperand ( > { > for (Index = 0; Index < ObjDesc->Package.Count; Index++) > { > - AcpiExDumpOperand (ObjDesc->Package.Elements[Index], Depth+1); > + AcpiExDumpOperand ( > + ObjDesc->Package.Elements[Index], Depth + 1); > } > } > break; > @@ -888,7 +896,7 @@ AcpiExDumpOperand ( > ObjDesc->Field.BaseByteOffset, > ObjDesc->Field.StartFieldBitOffset); > > - AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth+1); > + AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth + 1); > break; > > case ACPI_TYPE_LOCAL_INDEX_FIELD: > @@ -908,13 +916,13 @@ AcpiExDumpOperand ( > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "*NULL*\n")); > } > else if ((ObjDesc->BufferField.BufferObj)->Common.Type != > - ACPI_TYPE_BUFFER) > + ACPI_TYPE_BUFFER) > { > AcpiOsPrintf ("*not a Buffer*\n"); > } > else > { > - AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth+1); > + AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth + 1); > } > break; > > @@ -1214,7 +1222,8 @@ AcpiExDumpPackageObj ( > AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length); > if (ObjDesc->Buffer.Length) > { > - AcpiUtDebugDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), > + AcpiUtDebugDumpBuffer ( > + ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), > ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT); > } > else > @@ -1230,7 +1239,8 @@ AcpiExDumpPackageObj ( > > for (i = 0; i < ObjDesc->Package.Count; i++) > { > - AcpiExDumpPackageObj (ObjDesc->Package.Elements[i], Level+1, i); > + AcpiExDumpPackageObj ( > + ObjDesc->Package.Elements[i], Level + 1, i); > } > break; > > @@ -1328,7 +1338,8 @@ DumpObject: > ObjDesc = ObjDesc->Common.NextObject; > if (ObjDesc->Common.Type > ACPI_TYPE_LOCAL_MAX) > { > - AcpiOsPrintf ("Secondary object is not a known object type: %2.2X\n", > + AcpiOsPrintf ( > + "Secondary object is not a known object type: %2.2X\n", > ObjDesc->Common.Type); > > return_VOID; > diff --git a/src/acpica/source/components/executer/exfield.c b/src/acpica/source/components/executer/exfield.c > index dbd294b..b70e080 100644 > --- a/src/acpica/source/components/executer/exfield.c > +++ b/src/acpica/source/components/executer/exfield.c > @@ -256,28 +256,31 @@ AcpiExReadDataFromField ( > ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI)) > { > /* > - * This is an SMBus, GSBus or IPMI read. We must create a buffer to hold > - * the data and then directly access the region handler. > + * This is an SMBus, GSBus or IPMI read. We must create a buffer to > + * hold the data and then directly access the region handler. > * > - * Note: SMBus and GSBus protocol value is passed in upper 16-bits of Function > + * Note: SMBus and GSBus protocol value is passed in upper 16-bits > + * of Function > */ > - if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS) > + if (ObjDesc->Field.RegionObj->Region.SpaceId == > + ACPI_ADR_SPACE_SMBUS) > { > Length = ACPI_SMBUS_BUFFER_SIZE; > Function = ACPI_READ | (ObjDesc->Field.Attribute << 16); > } > - else if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS) > + else if (ObjDesc->Field.RegionObj->Region.SpaceId == > + ACPI_ADR_SPACE_GSBUS) > { > AccessorType = ObjDesc->Field.Attribute; > - Length = AcpiExGetSerialAccessLength (AccessorType, > - ObjDesc->Field.AccessLength); > + Length = AcpiExGetSerialAccessLength ( > + AccessorType, ObjDesc->Field.AccessLength); > > /* > * Add additional 2 bytes for the GenericSerialBus data buffer: > * > - * Status; (Byte 0 of the data buffer) > - * Length; (Byte 1 of the data buffer) > - * Data[x-1]; (Bytes 2-x of the arbitrary length data buffer) > + * Status; (Byte 0 of the data buffer) > + * Length; (Byte 1 of the data buffer) > + * Data[x-1]: (Bytes 2-x of the arbitrary length data buffer) > */ > Length += 2; > Function = ACPI_READ | (AccessorType << 16); > @@ -301,8 +304,8 @@ AcpiExReadDataFromField ( > /* Call the region handler for the read */ > > Status = AcpiExAccessRegion (ObjDesc, 0, > - ACPI_CAST_PTR (UINT64, BufferDesc->Buffer.Pointer), > - Function); > + ACPI_CAST_PTR (UINT64, BufferDesc->Buffer.Pointer), Function); > + > AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); > goto Exit; > } > @@ -317,7 +320,9 @@ AcpiExReadDataFromField ( > * > * Note: Field.length is in bits. > */ > - Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->Field.BitLength); > + Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES ( > + ObjDesc->Field.BitLength); > + > if (Length > AcpiGbl_IntegerByteWidth) > { > /* Field is too large for an Integer, create a Buffer instead */ > @@ -362,8 +367,9 @@ AcpiExReadDataFromField ( > > /* Perform the write */ > > - Status = AcpiExAccessRegion (ObjDesc, 0, > - (UINT64 *) Buffer, ACPI_READ); > + Status = AcpiExAccessRegion ( > + ObjDesc, 0, (UINT64 *) Buffer, ACPI_READ); > + > AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); > if (ACPI_FAILURE (Status)) > { > @@ -468,42 +474,47 @@ AcpiExWriteDataToField ( > ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI)) > { > /* > - * This is an SMBus, GSBus or IPMI write. We will bypass the entire field > - * mechanism and handoff the buffer directly to the handler. For > - * these address spaces, the buffer is bi-directional; on a write, > - * return data is returned in the same buffer. > + * This is an SMBus, GSBus or IPMI write. We will bypass the entire > + * field mechanism and handoff the buffer directly to the handler. > + * For these address spaces, the buffer is bi-directional; on a > + * write, return data is returned in the same buffer. > * > * Source must be a buffer of sufficient size: > - * ACPI_SMBUS_BUFFER_SIZE, ACPI_GSBUS_BUFFER_SIZE, or ACPI_IPMI_BUFFER_SIZE. > + * ACPI_SMBUS_BUFFER_SIZE, ACPI_GSBUS_BUFFER_SIZE, or > + * ACPI_IPMI_BUFFER_SIZE. > * > - * Note: SMBus and GSBus protocol type is passed in upper 16-bits of Function > + * Note: SMBus and GSBus protocol type is passed in upper 16-bits > + * of Function > */ > if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER) > { > ACPI_ERROR ((AE_INFO, > - "SMBus/IPMI/GenericSerialBus write requires Buffer, found type %s", > + "SMBus/IPMI/GenericSerialBus write requires " > + "Buffer, found type %s", > AcpiUtGetObjectTypeName (SourceDesc))); > > return_ACPI_STATUS (AE_AML_OPERAND_TYPE); > } > > - if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS) > + if (ObjDesc->Field.RegionObj->Region.SpaceId == > + ACPI_ADR_SPACE_SMBUS) > { > Length = ACPI_SMBUS_BUFFER_SIZE; > Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16); > } > - else if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS) > + else if (ObjDesc->Field.RegionObj->Region.SpaceId == > + ACPI_ADR_SPACE_GSBUS) > { > AccessorType = ObjDesc->Field.Attribute; > - Length = AcpiExGetSerialAccessLength (AccessorType, > - ObjDesc->Field.AccessLength); > + Length = AcpiExGetSerialAccessLength ( > + AccessorType, ObjDesc->Field.AccessLength); > > /* > * Add additional 2 bytes for the GenericSerialBus data buffer: > * > - * Status; (Byte 0 of the data buffer) > - * Length; (Byte 1 of the data buffer) > - * Data[x-1]; (Bytes 2-x of the arbitrary length data buffer) > + * Status; (Byte 0 of the data buffer) > + * Length; (Byte 1 of the data buffer) > + * Data[x-1]: (Bytes 2-x of the arbitrary length data buffer) > */ > Length += 2; > Function = ACPI_WRITE | (AccessorType << 16); > @@ -517,7 +528,8 @@ AcpiExWriteDataToField ( > if (SourceDesc->Buffer.Length < Length) > { > ACPI_ERROR ((AE_INFO, > - "SMBus/IPMI/GenericSerialBus write requires Buffer of length %u, found length %u", > + "SMBus/IPMI/GenericSerialBus write requires " > + "Buffer of length %u, found length %u", > Length, SourceDesc->Buffer.Length)); > > return_ACPI_STATUS (AE_AML_BUFFER_LIMIT); > @@ -542,8 +554,8 @@ AcpiExWriteDataToField ( > * Perform the write (returns status and perhaps data in the > * same buffer) > */ > - Status = AcpiExAccessRegion (ObjDesc, 0, > - (UINT64 *) Buffer, Function); > + Status = AcpiExAccessRegion ( > + ObjDesc, 0, (UINT64 *) Buffer, Function); > AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); > > *ResultDesc = BufferDesc; > @@ -566,7 +578,7 @@ AcpiExWriteDataToField ( > } > > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > - "GPIO FieldWrite [FROM]: (%s:%X), Val %.8X [TO]: Pin %u Bits %u\n", > + "GPIO FieldWrite [FROM]: (%s:%X), Val %.8X [TO]: Pin %u Bits %u\n", > AcpiUtGetTypeName (SourceDesc->Common.Type), > SourceDesc->Common.Type, (UINT32) SourceDesc->Integer.Value, > ObjDesc->Field.PinNumberIndex, ObjDesc->Field.BitLength)); > @@ -579,8 +591,8 @@ AcpiExWriteDataToField ( > > /* Perform the write */ > > - Status = AcpiExAccessRegion (ObjDesc, 0, > - (UINT64 *) Buffer, ACPI_WRITE); > + Status = AcpiExAccessRegion ( > + ObjDesc, 0, (UINT64 *) Buffer, ACPI_WRITE); > AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); > return_ACPI_STATUS (Status); > } > diff --git a/src/acpica/source/components/executer/exfldio.c b/src/acpica/source/components/executer/exfldio.c > index 39a0f37..106405a 100644 > --- a/src/acpica/source/components/executer/exfldio.c > +++ b/src/acpica/source/components/executer/exfldio.c > @@ -192,7 +192,8 @@ AcpiExSetupRegion ( > > if (!AcpiIsValidSpaceId (SpaceId)) > { > - ACPI_ERROR ((AE_INFO, "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); > + ACPI_ERROR ((AE_INFO, > + "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); > return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID); > } > > @@ -242,8 +243,8 @@ AcpiExSetupRegion ( > * (Region length is specified in bytes) > */ > if (RgnDesc->Region.Length < > - (ObjDesc->CommonField.BaseByteOffset + FieldDatumByteOffset + > - ObjDesc->CommonField.AccessByteWidth)) > + (ObjDesc->CommonField.BaseByteOffset + FieldDatumByteOffset + > + ObjDesc->CommonField.AccessByteWidth)) > { > if (AcpiGbl_EnableInterpreterSlack) > { > @@ -270,7 +271,8 @@ AcpiExSetupRegion ( > * byte, and a field with Dword access specified. > */ > ACPI_ERROR ((AE_INFO, > - "Field [%4.4s] access width (%u bytes) too large for region [%4.4s] (length %u)", > + "Field [%4.4s] access width (%u bytes) " > + "too large for region [%4.4s] (length %u)", > AcpiUtGetNodeName (ObjDesc->CommonField.Node), > ObjDesc->CommonField.AccessByteWidth, > AcpiUtGetNodeName (RgnDesc->Region.Node), > @@ -282,7 +284,8 @@ AcpiExSetupRegion ( > * exceeds region length, indicate an error > */ > ACPI_ERROR ((AE_INFO, > - "Field [%4.4s] Base+Offset+Width %u+%u+%u is beyond end of region [%4.4s] (length %u)", > + "Field [%4.4s] Base+Offset+Width %u+%u+%u " > + "is beyond end of region [%4.4s] (length %u)", > AcpiUtGetNodeName (ObjDesc->CommonField.Node), > ObjDesc->CommonField.BaseByteOffset, > FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth, > @@ -372,8 +375,8 @@ AcpiExAccessRegion ( > /* Invoke the appropriate AddressSpace/OpRegion handler */ > > Status = AcpiEvAddressSpaceDispatch (RgnDesc, ObjDesc, > - Function, RegionOffset, > - ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth), Value); > + Function, RegionOffset, > + ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth), Value); > > if (ACPI_FAILURE (Status)) > { > @@ -584,8 +587,8 @@ AcpiExFieldDatumIo ( > * For simple RegionFields, we just directly access the owning > * Operation Region. > */ > - Status = AcpiExAccessRegion (ObjDesc, FieldDatumByteOffset, Value, > - ReadWrite); > + Status = AcpiExAccessRegion ( > + ObjDesc, FieldDatumByteOffset, Value, ReadWrite); > break; > > case ACPI_TYPE_LOCAL_INDEX_FIELD: > @@ -608,8 +611,7 @@ AcpiExFieldDatumIo ( > FieldDatumByteOffset)); > > Status = AcpiExInsertIntoField (ObjDesc->IndexField.IndexObj, > - &FieldDatumByteOffset, > - sizeof (FieldDatumByteOffset)); > + &FieldDatumByteOffset, sizeof (FieldDatumByteOffset)); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -622,8 +624,8 @@ AcpiExFieldDatumIo ( > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > "Read from Data Register\n")); > > - Status = AcpiExExtractFromField (ObjDesc->IndexField.DataObj, > - Value, sizeof (UINT64)); > + Status = AcpiExExtractFromField ( > + ObjDesc->IndexField.DataObj, Value, sizeof (UINT64)); > } > else > { > @@ -633,8 +635,8 @@ AcpiExFieldDatumIo ( > "Write to Data Register: Value %8.8X%8.8X\n", > ACPI_FORMAT_UINT64 (*Value))); > > - Status = AcpiExInsertIntoField (ObjDesc->IndexField.DataObj, > - Value, sizeof (UINT64)); > + Status = AcpiExInsertIntoField ( > + ObjDesc->IndexField.DataObj, Value, sizeof (UINT64)); > } > break; > > @@ -716,14 +718,14 @@ AcpiExWriteWithUpdateRule ( > * ones) The left shift drops the bits we want to ignore. > */ > if ((~Mask << (ACPI_MUL_8 (sizeof (Mask)) - > - ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth))) != 0) > + ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth))) != 0) > { > /* > * Read the current contents of the byte/word/dword containing > * the field, and merge with the new field value. > */ > - Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset, > - &CurrentValue, ACPI_READ); > + Status = AcpiExFieldDatumIo ( > + ObjDesc, FieldDatumByteOffset, &CurrentValue, ACPI_READ); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -751,13 +753,15 @@ AcpiExWriteWithUpdateRule ( > > ACPI_ERROR ((AE_INFO, > "Unknown UpdateRule value: 0x%X", > - (ObjDesc->CommonField.FieldFlags & AML_FIELD_UPDATE_RULE_MASK))); > + (ObjDesc->CommonField.FieldFlags & > + AML_FIELD_UPDATE_RULE_MASK))); > return_ACPI_STATUS (AE_AML_OPERAND_VALUE); > } > } > > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > - "Mask %8.8X%8.8X, DatumOffset %X, Width %X, Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n", > + "Mask %8.8X%8.8X, DatumOffset %X, Width %X, " > + "Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n", > ACPI_FORMAT_UINT64 (Mask), > FieldDatumByteOffset, > ObjDesc->CommonField.AccessByteWidth, > @@ -766,8 +770,8 @@ AcpiExWriteWithUpdateRule ( > > /* Write the merged value */ > > - Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset, > - &MergedValue, ACPI_WRITE); > + Status = AcpiExFieldDatumIo ( > + ObjDesc, FieldDatumByteOffset, &MergedValue, ACPI_WRITE); > > return_ACPI_STATUS (Status); > } > @@ -878,8 +882,8 @@ AcpiExExtractFromField ( > /* Get next input datum from the field */ > > FieldOffset += ObjDesc->CommonField.AccessByteWidth; > - Status = AcpiExFieldDatumIo (ObjDesc, FieldOffset, > - &RawDatum, ACPI_READ); > + Status = AcpiExFieldDatumIo ( > + ObjDesc, FieldOffset, &RawDatum, ACPI_READ); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -976,7 +980,8 @@ AcpiExInsertIntoField ( > > NewBuffer = NULL; > RequiredLength = ACPI_ROUND_BITS_UP_TO_BYTES ( > - ObjDesc->CommonField.BitLength); > + ObjDesc->CommonField.BitLength); > + > /* > * We must have a buffer that is at least as long as the field > * we are writing to. This is because individual fields are > @@ -1054,8 +1059,8 @@ AcpiExInsertIntoField ( > /* Write merged datum to the target field */ > > MergedDatum &= Mask; > - Status = AcpiExWriteWithUpdateRule (ObjDesc, Mask, > - MergedDatum, FieldOffset); > + Status = AcpiExWriteWithUpdateRule ( > + ObjDesc, Mask, MergedDatum, FieldOffset); > if (ACPI_FAILURE (Status)) > { > goto Exit; > @@ -1112,8 +1117,8 @@ AcpiExInsertIntoField ( > /* Write the last datum to the field */ > > MergedDatum &= Mask; > - Status = AcpiExWriteWithUpdateRule (ObjDesc, > - Mask, MergedDatum, FieldOffset); > + Status = AcpiExWriteWithUpdateRule ( > + ObjDesc, Mask, MergedDatum, FieldOffset); > > Exit: > /* Free temporary buffer if we used one */ > diff --git a/src/acpica/source/components/executer/exmisc.c b/src/acpica/source/components/executer/exmisc.c > index f678670..c2e04bb 100644 > --- a/src/acpica/source/components/executer/exmisc.c > +++ b/src/acpica/source/components/executer/exmisc.c > @@ -360,8 +360,8 @@ AcpiExDoConcatenate ( > > case ACPI_TYPE_STRING: > > - Status = AcpiExConvertToString (Operand1, &LocalOperand1, > - ACPI_IMPLICIT_CONVERT_HEX); > + Status = AcpiExConvertToString ( > + Operand1, &LocalOperand1, ACPI_IMPLICIT_CONVERT_HEX); > break; > > case ACPI_TYPE_BUFFER: > @@ -401,8 +401,8 @@ AcpiExDoConcatenate ( > /* Result of two Integers is a Buffer */ > /* Need enough buffer space for two integers */ > > - ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE) > - ACPI_MUL_2 (AcpiGbl_IntegerByteWidth)); > + ReturnDesc = AcpiUtCreateBufferObject ( > + (ACPI_SIZE) ACPI_MUL_2 (AcpiGbl_IntegerByteWidth)); > if (!ReturnDesc) > { > Status = AE_NO_MEMORY; > @@ -414,13 +414,12 @@ AcpiExDoConcatenate ( > /* Copy the first integer, LSB first */ > > memcpy (NewBuf, &Operand0->Integer.Value, > - AcpiGbl_IntegerByteWidth); > + AcpiGbl_IntegerByteWidth); > > /* Copy the second integer (LSB first) after the first */ > > memcpy (NewBuf + AcpiGbl_IntegerByteWidth, > - &LocalOperand1->Integer.Value, > - AcpiGbl_IntegerByteWidth); > + &LocalOperand1->Integer.Value, AcpiGbl_IntegerByteWidth); > break; > > case ACPI_TYPE_STRING: > @@ -428,8 +427,8 @@ AcpiExDoConcatenate ( > /* Result of two Strings is a String */ > > ReturnDesc = AcpiUtCreateStringObject ( > - ((ACPI_SIZE) Operand0->String.Length + > - LocalOperand1->String.Length)); > + ((ACPI_SIZE) Operand0->String.Length + > + LocalOperand1->String.Length)); > if (!ReturnDesc) > { > Status = AE_NO_MEMORY; > @@ -442,7 +441,7 @@ AcpiExDoConcatenate ( > > strcpy (NewBuf, Operand0->String.Pointer); > strcpy (NewBuf + Operand0->String.Length, > - LocalOperand1->String.Pointer); > + LocalOperand1->String.Pointer); > break; > > case ACPI_TYPE_BUFFER: > @@ -450,8 +449,8 @@ AcpiExDoConcatenate ( > /* Result of two Buffers is a Buffer */ > > ReturnDesc = AcpiUtCreateBufferObject ( > - ((ACPI_SIZE) Operand0->Buffer.Length + > - LocalOperand1->Buffer.Length)); > + ((ACPI_SIZE) Operand0->Buffer.Length + > + LocalOperand1->Buffer.Length)); > if (!ReturnDesc) > { > Status = AE_NO_MEMORY; > @@ -463,10 +462,10 @@ AcpiExDoConcatenate ( > /* Concatenate the buffers */ > > memcpy (NewBuf, Operand0->Buffer.Pointer, > - Operand0->Buffer.Length); > + Operand0->Buffer.Length); > memcpy (NewBuf + Operand0->Buffer.Length, > - LocalOperand1->Buffer.Pointer, > - LocalOperand1->Buffer.Length); > + LocalOperand1->Buffer.Pointer, > + LocalOperand1->Buffer.Length); > break; > > default: > @@ -708,8 +707,8 @@ AcpiExDoLogicalOp ( > > case ACPI_TYPE_STRING: > > - Status = AcpiExConvertToString (Operand1, &LocalOperand1, > - ACPI_IMPLICIT_CONVERT_HEX); > + Status = AcpiExConvertToString ( > + Operand1, &LocalOperand1, ACPI_IMPLICIT_CONVERT_HEX); > break; > > case ACPI_TYPE_BUFFER: > @@ -786,8 +785,8 @@ AcpiExDoLogicalOp ( > /* Lexicographic compare: compare the data bytes */ > > Compare = memcmp (Operand0->Buffer.Pointer, > - LocalOperand1->Buffer.Pointer, > - (Length0 > Length1) ? Length1 : Length0); > + LocalOperand1->Buffer.Pointer, > + (Length0 > Length1) ? Length1 : Length0); > > switch (Opcode) > { > diff --git a/src/acpica/source/components/executer/exmutex.c b/src/acpica/source/components/executer/exmutex.c > index c688a50..f3cf1bb 100644 > --- a/src/acpica/source/components/executer/exmutex.c > +++ b/src/acpica/source/components/executer/exmutex.c > @@ -281,8 +281,7 @@ AcpiExAcquireMutexObject ( > } > else > { > - Status = AcpiExSystemWaitMutex (ObjDesc->Mutex.OsMutex, > - Timeout); > + Status = AcpiExSystemWaitMutex (ObjDesc->Mutex.OsMutex, Timeout); > } > > if (ACPI_FAILURE (Status)) > @@ -345,33 +344,48 @@ AcpiExAcquireMutex ( > } > > /* > - * Current sync level must be less than or equal to the sync level of the > - * mutex. This mechanism provides some deadlock prevention > + * Current sync level must be less than or equal to the sync level > + * of the mutex. This mechanism provides some deadlock prevention. > */ > if (WalkState->Thread->CurrentSyncLevel > ObjDesc->Mutex.SyncLevel) > { > ACPI_ERROR ((AE_INFO, > - "Cannot acquire Mutex [%4.4s], current SyncLevel is too large (%u)", > + "Cannot acquire Mutex [%4.4s], " > + "current SyncLevel is too large (%u)", > AcpiUtGetNodeName (ObjDesc->Mutex.Node), > WalkState->Thread->CurrentSyncLevel)); > return_ACPI_STATUS (AE_AML_MUTEX_ORDER); > } > > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Acquiring: Mutex SyncLevel %u, Thread SyncLevel %u, " > + "Depth %u TID %p\n", > + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, > + ObjDesc->Mutex.AcquisitionDepth, WalkState->Thread)); > + > Status = AcpiExAcquireMutexObject ((UINT16) TimeDesc->Integer.Value, > - ObjDesc, WalkState->Thread->ThreadId); > + ObjDesc, WalkState->Thread->ThreadId); > + > if (ACPI_SUCCESS (Status) && ObjDesc->Mutex.AcquisitionDepth == 1) > { > /* Save Thread object, original/current sync levels */ > > ObjDesc->Mutex.OwnerThread = WalkState->Thread; > - ObjDesc->Mutex.OriginalSyncLevel = WalkState->Thread->CurrentSyncLevel; > - WalkState->Thread->CurrentSyncLevel = ObjDesc->Mutex.SyncLevel; > + ObjDesc->Mutex.OriginalSyncLevel = > + WalkState->Thread->CurrentSyncLevel; > + WalkState->Thread->CurrentSyncLevel = > + ObjDesc->Mutex.SyncLevel; > > /* Link the mutex to the current thread for force-unlock at method exit */ > > AcpiExLinkMutex (ObjDesc, WalkState->Thread); > } > > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Acquired: Mutex SyncLevel %u, Thread SyncLevel %u, Depth %u\n", > + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, > + ObjDesc->Mutex.AcquisitionDepth)); > + > return_ACPI_STATUS (Status); > } > > @@ -467,9 +481,9 @@ AcpiExReleaseMutex ( > ACPI_OPERAND_OBJECT *ObjDesc, > ACPI_WALK_STATE *WalkState) > { > - ACPI_STATUS Status = AE_OK; > UINT8 PreviousSyncLevel; > ACPI_THREAD_STATE *OwnerThread; > + ACPI_STATUS Status = AE_OK; > > > ACPI_FUNCTION_TRACE (ExReleaseMutex); > @@ -527,7 +541,8 @@ AcpiExReleaseMutex ( > if (ObjDesc->Mutex.SyncLevel != OwnerThread->CurrentSyncLevel) > { > ACPI_ERROR ((AE_INFO, > - "Cannot release Mutex [%4.4s], SyncLevel mismatch: mutex %u current %u", > + "Cannot release Mutex [%4.4s], SyncLevel mismatch: " > + "mutex %u current %u", > AcpiUtGetNodeName (ObjDesc->Mutex.Node), > ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel)); > return_ACPI_STATUS (AE_AML_MUTEX_ORDER); > @@ -541,6 +556,13 @@ AcpiExReleaseMutex ( > PreviousSyncLevel = > OwnerThread->AcquiredMutexList->Mutex.OriginalSyncLevel; > > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Releasing: Object SyncLevel %u, Thread SyncLevel %u, " > + "Prev SyncLevel %u, Depth %u TID %p\n", > + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, > + PreviousSyncLevel, ObjDesc->Mutex.AcquisitionDepth, > + WalkState->Thread)); > + > Status = AcpiExReleaseMutexObject (ObjDesc); > if (ACPI_FAILURE (Status)) > { > @@ -554,6 +576,12 @@ AcpiExReleaseMutex ( > OwnerThread->CurrentSyncLevel = PreviousSyncLevel; > } > > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "Released: Object SyncLevel %u, Thread SyncLevel, %u, " > + "Prev SyncLevel %u, Depth %u\n", > + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, > + PreviousSyncLevel, ObjDesc->Mutex.AcquisitionDepth)); > + > return_ACPI_STATUS (Status); > } > > @@ -584,7 +612,7 @@ AcpiExReleaseAllMutexes ( > ACPI_OPERAND_OBJECT *ObjDesc; > > > - ACPI_FUNCTION_NAME (ExReleaseAllMutexes); > + ACPI_FUNCTION_TRACE (ExReleaseAllMutexes); > > > /* Traverse the list of owned mutexes, releasing each one */ > @@ -592,14 +620,10 @@ AcpiExReleaseAllMutexes ( > while (Next) > { > ObjDesc = Next; > - Next = ObjDesc->Mutex.Next; > - > - ObjDesc->Mutex.Prev = NULL; > - ObjDesc->Mutex.Next = NULL; > - ObjDesc->Mutex.AcquisitionDepth = 0; > - > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > - "Force-releasing held mutex: %p\n", ObjDesc)); > + "Mutex [%4.4s] force-release, SyncLevel %u Depth %u\n", > + ObjDesc->Mutex.Node->Name.Ascii, ObjDesc->Mutex.SyncLevel, > + ObjDesc->Mutex.AcquisitionDepth)); > > /* Release the mutex, special case for Global Lock */ > > @@ -614,13 +638,20 @@ AcpiExReleaseAllMutexes ( > AcpiOsReleaseMutex (ObjDesc->Mutex.OsMutex); > } > > + /* Update Thread SyncLevel (Last mutex is the important one) */ > + > + Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel; > + > /* Mark mutex unowned */ > > + Next = ObjDesc->Mutex.Next; > + > + ObjDesc->Mutex.Prev = NULL; > + ObjDesc->Mutex.Next = NULL; > + ObjDesc->Mutex.AcquisitionDepth = 0; > ObjDesc->Mutex.OwnerThread = NULL; > ObjDesc->Mutex.ThreadId = 0; > - > - /* Update Thread SyncLevel (Last mutex is the important one) */ > - > - Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel; > } > + > + return_VOID; > } > diff --git a/src/acpica/source/components/executer/exnames.c b/src/acpica/source/components/executer/exnames.c > index 38ceba0..d222a21 100644 > --- a/src/acpica/source/components/executer/exnames.c > +++ b/src/acpica/source/components/executer/exnames.c > @@ -232,6 +232,7 @@ AcpiExAllocateNameString ( > return_PTR (NameString); > } > > + > /******************************************************************************* > * > * FUNCTION: AcpiExNameSegment > @@ -261,8 +262,8 @@ AcpiExNameSegment ( > > > /* > - * If first character is a digit, then we know that we aren't looking at a > - * valid name segment > + * If first character is a digit, then we know that we aren't looking > + * at a valid name segment > */ > CharBuf[0] = *AmlAddress; > > @@ -466,7 +467,8 @@ AcpiExGetNameString ( > AmlAddress++; > NumSegments = *AmlAddress; > > - NameString = AcpiExAllocateNameString (PrefixCount, NumSegments); > + NameString = AcpiExAllocateNameString ( > + PrefixCount, NumSegments); > if (!NameString) > { > Status = AE_NO_MEMORY; > diff --git a/src/acpica/source/components/executer/exoparg1.c b/src/acpica/source/components/executer/exoparg1.c > index c7addbd..466c886 100644 > --- a/src/acpica/source/components/executer/exoparg1.c > +++ b/src/acpica/source/components/executer/exoparg1.c > @@ -403,7 +403,7 @@ AcpiExOpcode_1A_1T_1R ( > * endian unsigned value, so this boundary condition is valid. > */ > for (Temp32 = 0; ReturnDesc->Integer.Value && > - Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) > + Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) > { > ReturnDesc->Integer.Value >>= 1; > } > @@ -420,7 +420,7 @@ AcpiExOpcode_1A_1T_1R ( > * endian unsigned value, so this boundary condition is valid. > */ > for (Temp32 = 0; ReturnDesc->Integer.Value && > - Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) > + Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) > { > ReturnDesc->Integer.Value <<= 1; > } > @@ -526,7 +526,7 @@ AcpiExOpcode_1A_1T_1R ( > /* Get the object reference, store it, and remove our reference */ > > Status = AcpiExGetObjectReference (Operand[0], > - &ReturnDesc2, WalkState); > + &ReturnDesc2, WalkState); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -581,28 +581,30 @@ AcpiExOpcode_1A_1T_1R ( > */ > case AML_COPY_OP: /* Copy (Source, Target) */ > > - Status = AcpiUtCopyIobjectToIobject (Operand[0], &ReturnDesc, > - WalkState); > + Status = AcpiUtCopyIobjectToIobject ( > + Operand[0], &ReturnDesc, WalkState); > break; > > case AML_TO_DECSTRING_OP: /* ToDecimalString (Data, Result) */ > > - Status = AcpiExConvertToString (Operand[0], &ReturnDesc, > - ACPI_EXPLICIT_CONVERT_DECIMAL); > + Status = AcpiExConvertToString ( > + Operand[0], &ReturnDesc, ACPI_EXPLICIT_CONVERT_DECIMAL); > if (ReturnDesc == Operand[0]) > { > /* No conversion performed, add ref to handle return value */ > + > AcpiUtAddReference (ReturnDesc); > } > break; > > case AML_TO_HEXSTRING_OP: /* ToHexString (Data, Result) */ > > - Status = AcpiExConvertToString (Operand[0], &ReturnDesc, > - ACPI_EXPLICIT_CONVERT_HEX); > + Status = AcpiExConvertToString ( > + Operand[0], &ReturnDesc, ACPI_EXPLICIT_CONVERT_HEX); > if (ReturnDesc == Operand[0]) > { > /* No conversion performed, add ref to handle return value */ > + > AcpiUtAddReference (ReturnDesc); > } > break; > @@ -613,17 +615,19 @@ AcpiExOpcode_1A_1T_1R ( > if (ReturnDesc == Operand[0]) > { > /* No conversion performed, add ref to handle return value */ > + > AcpiUtAddReference (ReturnDesc); > } > break; > > case AML_TO_INTEGER_OP: /* ToInteger (Data, Result) */ > > - Status = AcpiExConvertToInteger (Operand[0], &ReturnDesc, > - ACPI_ANY_BASE); > + Status = AcpiExConvertToInteger ( > + Operand[0], &ReturnDesc, ACPI_ANY_BASE); > if (ReturnDesc == Operand[0]) > { > /* No conversion performed, add ref to handle return value */ > + > AcpiUtAddReference (ReturnDesc); > } > break; > @@ -774,11 +778,11 @@ AcpiExOpcode_1A_0T_1R ( > */ > if (WalkState->Opcode == AML_INCREMENT_OP) > { > - ReturnDesc->Integer.Value = TempDesc->Integer.Value +1; > + ReturnDesc->Integer.Value = TempDesc->Integer.Value + 1; > } > else > { > - ReturnDesc->Integer.Value = TempDesc->Integer.Value -1; > + ReturnDesc->Integer.Value = TempDesc->Integer.Value - 1; > } > > /* Finished with this Integer object */ > @@ -826,8 +830,8 @@ AcpiExOpcode_1A_0T_1R ( > > /* Get the base object */ > > - Status = AcpiExResolveMultiple (WalkState, > - Operand[0], &Type, &TempDesc); > + Status = AcpiExResolveMultiple ( > + WalkState, Operand[0], &Type, &TempDesc); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -873,8 +877,10 @@ AcpiExOpcode_1A_0T_1R ( > default: > > ACPI_ERROR ((AE_INFO, > - "Operand must be Buffer/Integer/String/Package - found type %s", > + "Operand must be Buffer/Integer/String/Package" > + " - found type %s", > AcpiUtGetTypeName (Type))); > + > Status = AE_AML_OPERAND_TYPE; > goto Cleanup; > } > @@ -899,7 +905,8 @@ AcpiExOpcode_1A_0T_1R ( > > case AML_REF_OF_OP: /* RefOf (SourceObject) */ > > - Status = AcpiExGetObjectReference (Operand[0], &ReturnDesc, WalkState); > + Status = AcpiExGetObjectReference ( > + Operand[0], &ReturnDesc, WalkState); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -946,9 +953,9 @@ AcpiExOpcode_1A_0T_1R ( > /* Set Operand[0] to the value of the local/arg */ > > Status = AcpiDsMethodDataGetValue ( > - Operand[0]->Reference.Class, > - Operand[0]->Reference.Value, > - WalkState, &TempDesc); > + Operand[0]->Reference.Class, > + Operand[0]->Reference.Value, > + WalkState, &TempDesc); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -1002,19 +1009,19 @@ AcpiExOpcode_1A_0T_1R ( > * Field, so we need to resolve the node to a value. > */ > Status = AcpiNsGetNode (WalkState->ScopeInfo->Scope.Node, > - Operand[0]->String.Pointer, > - ACPI_NS_SEARCH_PARENT, > - ACPI_CAST_INDIRECT_PTR ( > - ACPI_NAMESPACE_NODE, &ReturnDesc)); > + Operand[0]->String.Pointer, > + ACPI_NS_SEARCH_PARENT, > + ACPI_CAST_INDIRECT_PTR ( > + ACPI_NAMESPACE_NODE, &ReturnDesc)); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > } > > Status = AcpiExResolveNodeToValue ( > - ACPI_CAST_INDIRECT_PTR ( > - ACPI_NAMESPACE_NODE, &ReturnDesc), > - WalkState); > + ACPI_CAST_INDIRECT_PTR ( > + ACPI_NAMESPACE_NODE, &ReturnDesc), > + WalkState); > goto Cleanup; > } > } > @@ -1030,7 +1037,7 @@ AcpiExOpcode_1A_0T_1R ( > * dereferenced above. > */ > ReturnDesc = AcpiNsGetAttachedObject ( > - (ACPI_NAMESPACE_NODE *) Operand[0]); > + (ACPI_NAMESPACE_NODE *) Operand[0]); > AcpiUtAddReference (ReturnDesc); > } > else > @@ -1097,6 +1104,7 @@ AcpiExOpcode_1A_0T_1R ( > ACPI_ERROR ((AE_INFO, > "Unknown Index TargetType 0x%X in reference object %p", > Operand[0]->Reference.TargetType, Operand[0])); > + > Status = AE_AML_OPERAND_TYPE; > goto Cleanup; > } > @@ -1127,8 +1135,8 @@ AcpiExOpcode_1A_0T_1R ( > case ACPI_TYPE_LOCAL_BANK_FIELD: > case ACPI_TYPE_LOCAL_INDEX_FIELD: > > - Status = AcpiExReadDataFromField (WalkState, > - ReturnDesc, &TempDesc); > + Status = AcpiExReadDataFromField ( > + WalkState, ReturnDesc, &TempDesc); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -1163,6 +1171,7 @@ AcpiExOpcode_1A_0T_1R ( > > ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", > WalkState->Opcode)); > + > Status = AE_AML_BAD_OPCODE; > goto Cleanup; > } > diff --git a/src/acpica/source/components/executer/exoparg2.c b/src/acpica/source/components/executer/exoparg2.c > index f1ab706..29b41a5 100644 > --- a/src/acpica/source/components/executer/exoparg2.c > +++ b/src/acpica/source/components/executer/exoparg2.c > @@ -275,10 +275,11 @@ AcpiExOpcode_2A_2T_1R ( > > /* Quotient to ReturnDesc1, remainder to ReturnDesc2 */ > > - Status = AcpiUtDivide (Operand[0]->Integer.Value, > - Operand[1]->Integer.Value, > - &ReturnDesc1->Integer.Value, > - &ReturnDesc2->Integer.Value); > + Status = AcpiUtDivide ( > + Operand[0]->Integer.Value, > + Operand[1]->Integer.Value, > + &ReturnDesc1->Integer.Value, > + &ReturnDesc2->Integer.Value); > if (ACPI_FAILURE (Status)) > { > goto Cleanup; > @@ -289,6 +290,7 @@ AcpiExOpcode_2A_2T_1R ( > > ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", > WalkState->Opcode)); > + > Status = AE_AML_BAD_OPCODE; > goto Cleanup; > } > @@ -373,9 +375,10 @@ AcpiExOpcode_2A_1T_1R ( > goto Cleanup; > } > > - ReturnDesc->Integer.Value = AcpiExDoMathOp (WalkState->Opcode, > - Operand[0]->Integer.Value, > - Operand[1]->Integer.Value); > + ReturnDesc->Integer.Value = AcpiExDoMathOp ( > + WalkState->Opcode, > + Operand[0]->Integer.Value, > + Operand[1]->Integer.Value); > goto StoreResultToTarget; > } > > @@ -392,16 +395,17 @@ AcpiExOpcode_2A_1T_1R ( > > /* ReturnDesc will contain the remainder */ > > - Status = AcpiUtDivide (Operand[0]->Integer.Value, > - Operand[1]->Integer.Value, > - NULL, > - &ReturnDesc->Integer.Value); > + Status = AcpiUtDivide ( > + Operand[0]->Integer.Value, > + Operand[1]->Integer.Value, > + NULL, > + &ReturnDesc->Integer.Value); > break; > > case AML_CONCAT_OP: /* Concatenate (Data1, Data2, Result) */ > > - Status = AcpiExDoConcatenate (Operand[0], Operand[1], > - &ReturnDesc, WalkState); > + Status = AcpiExDoConcatenate ( > + Operand[0], Operand[1], &ReturnDesc, WalkState); > break; > > case AML_TO_STRING_OP: /* ToString (Buffer, Length, Result) (ACPI 2.0) */ > @@ -448,8 +452,8 @@ AcpiExOpcode_2A_1T_1R ( > > /* ConcatenateResTemplate (Buffer, Buffer, Result) (ACPI 2.0) */ > > - Status = AcpiExConcatTemplate (Operand[0], Operand[1], > - &ReturnDesc, WalkState); > + Status = AcpiExConcatTemplate ( > + Operand[0], Operand[1], &ReturnDesc, WalkState); > break; > > case AML_INDEX_OP: /* Index (Source Index Result) */ > @@ -632,8 +636,8 @@ AcpiExOpcode_2A_0T_1R ( > /* LogicalOp (Operand0, Operand1) */ > > Status = AcpiExDoLogicalNumericOp (WalkState->Opcode, > - Operand[0]->Integer.Value, Operand[1]->Integer.Value, > - &LogicalResult); > + Operand[0]->Integer.Value, Operand[1]->Integer.Value, > + &LogicalResult); > goto StoreLogicalResult; > } > else if (WalkState->OpInfo->Flags & AML_LOGICAL) > @@ -641,7 +645,7 @@ AcpiExOpcode_2A_0T_1R ( > /* LogicalOp (Operand0, Operand1) */ > > Status = AcpiExDoLogicalOp (WalkState->Opcode, Operand[0], > - Operand[1], &LogicalResult); > + Operand[1], &LogicalResult); > goto StoreLogicalResult; > } > > @@ -672,6 +676,7 @@ AcpiExOpcode_2A_0T_1R ( > > ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", > WalkState->Opcode)); > + > Status = AE_AML_BAD_OPCODE; > goto Cleanup; > } > diff --git a/src/acpica/source/components/executer/exoparg3.c b/src/acpica/source/components/executer/exoparg3.c > index b2c49be..aa52392 100644 > --- a/src/acpica/source/components/executer/exoparg3.c > +++ b/src/acpica/source/components/executer/exoparg3.c > @@ -178,7 +178,8 @@ AcpiExOpcode_3A_0T_0R ( > case AML_FATAL_OP: /* Fatal (FatalType FatalCode FatalArg) */ > > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, > - "FatalOp: Type %X Code %X Arg %X <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", > + "FatalOp: Type %X Code %X Arg %X " > + "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", > (UINT32) Operand[0]->Integer.Value, > (UINT32) Operand[1]->Integer.Value, > (UINT32) Operand[2]->Integer.Value)); > @@ -186,8 +187,8 @@ AcpiExOpcode_3A_0T_0R ( > Fatal = ACPI_ALLOCATE (sizeof (ACPI_SIGNAL_FATAL_INFO)); > if (Fatal) > { > - Fatal->Type = (UINT32) Operand[0]->Integer.Value; > - Fatal->Code = (UINT32) Operand[1]->Integer.Value; > + Fatal->Type = (UINT32) Operand[0]->Integer.Value; > + Fatal->Code = (UINT32) Operand[1]->Integer.Value; > Fatal->Argument = (UINT32) Operand[2]->Integer.Value; > } > > @@ -215,6 +216,7 @@ AcpiExOpcode_3A_0T_0R ( > > ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", > WalkState->Opcode)); > + > Status = AE_AML_BAD_OPCODE; > goto Cleanup; > } > @@ -262,7 +264,7 @@ AcpiExOpcode_3A_1T_1R ( > * either a String or a Buffer, so just use its type. > */ > ReturnDesc = AcpiUtCreateInternalObject ( > - (Operand[0])->Common.Type); > + (Operand[0])->Common.Type); > if (!ReturnDesc) > { > Status = AE_NO_MEMORY; > @@ -287,8 +289,8 @@ AcpiExOpcode_3A_1T_1R ( > > else if ((Index + Length) > Operand[0]->String.Length) > { > - Length = (ACPI_SIZE) Operand[0]->String.Length - > - (ACPI_SIZE) Index; > + Length = > + (ACPI_SIZE) Operand[0]->String.Length - (ACPI_SIZE) Index; > } > > /* Strings always have a sub-pointer, not so for buffers */ > @@ -334,8 +336,8 @@ AcpiExOpcode_3A_1T_1R ( > { > /* We have a buffer, copy the portion requested */ > > - memcpy (Buffer, Operand[0]->String.Pointer + Index, > - Length); > + memcpy (Buffer, > + Operand[0]->String.Pointer + Index, Length); > } > > /* Set the length of the new String/Buffer */ > @@ -352,6 +354,7 @@ AcpiExOpcode_3A_1T_1R ( > > ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", > WalkState->Opcode)); > + > Status = AE_AML_BAD_OPCODE; > goto Cleanup; > } > @@ -369,12 +372,12 @@ Cleanup: > AcpiUtRemoveReference (ReturnDesc); > WalkState->ResultObj = NULL; > } > - > - /* Set the return object and exit */ > - > else > { > + /* Set the return object and exit */ > + > WalkState->ResultObj = ReturnDesc; > } > + > return_ACPI_STATUS (Status); > } > diff --git a/src/acpica/source/components/executer/exoparg6.c b/src/acpica/source/components/executer/exoparg6.c > index a7d76d6..6423334 100644 > --- a/src/acpica/source/components/executer/exoparg6.c > +++ b/src/acpica/source/components/executer/exoparg6.c > @@ -205,8 +205,8 @@ AcpiExDoMatch ( > * True if equal: (P[i] == M) > * Change to: (M == P[i]) > */ > - Status = AcpiExDoLogicalOp (AML_LEQUAL_OP, MatchObj, PackageObj, > - &LogicalResult); > + Status = AcpiExDoLogicalOp ( > + AML_LEQUAL_OP, MatchObj, PackageObj, &LogicalResult); > if (ACPI_FAILURE (Status)) > { > return (FALSE); > @@ -218,8 +218,8 @@ AcpiExDoMatch ( > * True if less than or equal: (P[i] <= M) (P[i] NotGreater than M) > * Change to: (M >= P[i]) (M NotLess than P[i]) > */ > - Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj, > - &LogicalResult); > + Status = AcpiExDoLogicalOp ( > + AML_LLESS_OP, MatchObj, PackageObj, &LogicalResult); > if (ACPI_FAILURE (Status)) > { > return (FALSE); > @@ -232,8 +232,8 @@ AcpiExDoMatch ( > * True if less than: (P[i] < M) > * Change to: (M > P[i]) > */ > - Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj, > - &LogicalResult); > + Status = AcpiExDoLogicalOp ( > + AML_LGREATER_OP, MatchObj, PackageObj, &LogicalResult); > if (ACPI_FAILURE (Status)) > { > return (FALSE); > @@ -245,8 +245,8 @@ AcpiExDoMatch ( > * True if greater than or equal: (P[i] >= M) (P[i] NotLess than M) > * Change to: (M <= P[i]) (M NotGreater than P[i]) > */ > - Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj, > - &LogicalResult); > + Status = AcpiExDoLogicalOp ( > + AML_LGREATER_OP, MatchObj, PackageObj, &LogicalResult); > if (ACPI_FAILURE (Status)) > { > return (FALSE); > @@ -259,8 +259,8 @@ AcpiExDoMatch ( > * True if greater than: (P[i] > M) > * Change to: (M < P[i]) > */ > - Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj, > - &LogicalResult); > + Status = AcpiExDoLogicalOp ( > + AML_LLESS_OP, MatchObj, PackageObj, &LogicalResult); > if (ACPI_FAILURE (Status)) > { > return (FALSE); > @@ -376,13 +376,13 @@ AcpiExOpcode_6A_0T_1R ( > * non-match. > */ > if (!AcpiExDoMatch ((UINT32) Operand[1]->Integer.Value, > - ThisElement, Operand[2])) > + ThisElement, Operand[2])) > { > continue; > } > > if (!AcpiExDoMatch ((UINT32) Operand[3]->Integer.Value, > - ThisElement, Operand[4])) > + ThisElement, Operand[4])) > { > continue; > } > @@ -403,6 +403,7 @@ AcpiExOpcode_6A_0T_1R ( > > ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", > WalkState->Opcode)); > + > Status = AE_AML_BAD_OPCODE; > goto Cleanup; > } > diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c > index d84ccc3..91ee2b8 100644 > --- a/src/acpica/source/components/executer/exprep.c > +++ b/src/acpica/source/components/executer/exprep.c > @@ -1,6 +1,6 @@ > /****************************************************************************** > * > - * Module Name: exprep - ACPI AML (p-code) execution - field prep utilities > + * Module Name: exprep - ACPI AML field prep utilities > * > *****************************************************************************/ > > @@ -141,6 +141,7 @@ AcpiExGenerateAccess ( > UINT32 FieldBitLength, > UINT32 RegionLength); > > + > /******************************************************************************* > * > * FUNCTION: AcpiExGenerateAccess > @@ -185,10 +186,13 @@ AcpiExGenerateAccess ( > > /* Round Field start offset and length to "minimal" byte boundaries */ > > - FieldByteOffset = ACPI_DIV_8 (ACPI_ROUND_DOWN (FieldBitOffset, 8)); > - FieldByteEndOffset = ACPI_DIV_8 (ACPI_ROUND_UP (FieldBitLength + > - FieldBitOffset, 8)); > - FieldByteLength = FieldByteEndOffset - FieldByteOffset; > + FieldByteOffset = ACPI_DIV_8 ( > + ACPI_ROUND_DOWN (FieldBitOffset, 8)); > + > + FieldByteEndOffset = ACPI_DIV_8 ( > + ACPI_ROUND_UP (FieldBitLength + FieldBitOffset, 8)); > + > + FieldByteLength = FieldByteEndOffset - FieldByteOffset; > > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > "Bit length %u, Bit offset %u\n", > @@ -213,7 +217,8 @@ AcpiExGenerateAccess ( > * are done. (This does not optimize for the perfectly aligned > * case yet). > */ > - if (ACPI_ROUND_UP (FieldByteEndOffset, AccessByteWidth) <= RegionLength) > + if (ACPI_ROUND_UP (FieldByteEndOffset, AccessByteWidth) <= > + RegionLength) > { > FieldStartOffset = > ACPI_ROUND_DOWN (FieldByteOffset, AccessByteWidth) / > @@ -237,7 +242,8 @@ AcpiExGenerateAccess ( > if (Accesses <= 1) > { > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > - "Entire field can be accessed with one operation of size %u\n", > + "Entire field can be accessed " > + "with one operation of size %u\n", > AccessByteWidth)); > return_VALUE (AccessByteWidth); > } > @@ -248,14 +254,15 @@ AcpiExGenerateAccess ( > */ > if (Accesses < MinimumAccesses) > { > - MinimumAccesses = Accesses; > + MinimumAccesses = Accesses; > MinimumAccessWidth = AccessByteWidth; > } > } > else > { > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > - "AccessWidth %u end is NOT within region\n", AccessByteWidth)); > + "AccessWidth %u end is NOT within region\n", > + AccessByteWidth)); > if (AccessByteWidth == 1) > { > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > @@ -283,6 +290,7 @@ AcpiExGenerateAccess ( > */ > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > "Cannot access field in one operation, using width 8\n")); > + > return_VALUE (8); > } > #endif /* ACPI_UNDER_DEVELOPMENT */ > @@ -367,6 +375,7 @@ AcpiExDecodeFieldAccess ( > ACPI_ERROR ((AE_INFO, > "Unknown field access type 0x%X", > Access)); > + > return_UINT32 (0); > } > > @@ -446,8 +455,8 @@ AcpiExPrepCommonFieldObject ( > * For all other access types (Byte, Word, Dword, Qword), the Bitwidth is > * the same (equivalent) as the ByteAlignment. > */ > - AccessBitWidth = AcpiExDecodeFieldAccess (ObjDesc, FieldFlags, > - &ByteAlignment); > + AccessBitWidth = AcpiExDecodeFieldAccess ( > + ObjDesc, FieldFlags, &ByteAlignment); > if (!AccessBitWidth) > { > return_ACPI_STATUS (AE_AML_OPERAND_VALUE); > @@ -543,8 +552,8 @@ AcpiExPrepFieldValue ( > > ObjDesc->CommonField.Node = Info->FieldNode; > Status = AcpiExPrepCommonFieldObject (ObjDesc, > - Info->FieldFlags, Info->Attribute, > - Info->FieldBitPosition, Info->FieldBitLength); > + Info->FieldFlags, Info->Attribute, > + Info->FieldBitPosition, Info->FieldBitLength); > if (ACPI_FAILURE (Status)) > { > AcpiUtDeleteObjectDesc (ObjDesc); > @@ -576,8 +585,10 @@ AcpiExPrepFieldValue ( > } > } > > - ObjDesc->Field.ResourceBuffer = SecondDesc->Buffer.Pointer; > - ObjDesc->Field.ResourceLength = (UINT16) SecondDesc->Buffer.Length; > + ObjDesc->Field.ResourceBuffer = > + SecondDesc->Buffer.Pointer; > + ObjDesc->Field.ResourceLength = > + (UINT16) SecondDesc->Buffer.Length; > } > else if (Info->ResourceBuffer) > { > @@ -599,7 +610,8 @@ AcpiExPrepFieldValue ( > > if (AccessByteWidth < 256) > { > - ObjDesc->CommonField.AccessByteWidth = (UINT8) AccessByteWidth; > + ObjDesc->CommonField.AccessByteWidth = > + (UINT8) AccessByteWidth; > } > } > > @@ -609,8 +621,10 @@ AcpiExPrepFieldValue ( > > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n", > - ObjDesc->Field.StartFieldBitOffset, ObjDesc->Field.BaseByteOffset, > - ObjDesc->Field.AccessByteWidth, ObjDesc->Field.RegionObj)); > + ObjDesc->Field.StartFieldBitOffset, > + ObjDesc->Field.BaseByteOffset, > + ObjDesc->Field.AccessByteWidth, > + ObjDesc->Field.RegionObj)); > break; > > case ACPI_TYPE_LOCAL_BANK_FIELD: > @@ -690,7 +704,8 @@ AcpiExPrepFieldValue ( > ObjDesc->IndexField.AccessByteWidth); > > ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > - "IndexField: BitOff %X, Off %X, Value %X, Gran %X, Index %p, Data %p\n", > + "IndexField: BitOff %X, Off %X, Value %X, " > + "Gran %X, Index %p, Data %p\n", > ObjDesc->IndexField.StartFieldBitOffset, > ObjDesc->IndexField.BaseByteOffset, > ObjDesc->IndexField.Value, > @@ -710,10 +725,11 @@ AcpiExPrepFieldValue ( > * Store the constructed descriptor (ObjDesc) into the parent Node, > * preserving the current type of that NamedObj. > */ > - Status = AcpiNsAttachObject (Info->FieldNode, ObjDesc, > - AcpiNsGetType (Info->FieldNode)); > + Status = AcpiNsAttachObject ( > + Info->FieldNode, ObjDesc, AcpiNsGetType (Info->FieldNode)); > > - ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Set NamedObj %p [%4.4s], ObjDesc %p\n", > + ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, > + "Set NamedObj %p [%4.4s], ObjDesc %p\n", > Info->FieldNode, AcpiUtGetNodeName (Info->FieldNode), ObjDesc)); > > /* Remove local reference to the object */ > diff --git a/src/acpica/source/components/executer/exregion.c b/src/acpica/source/components/executer/exregion.c > index cf60500..23c04dc 100644 > --- a/src/acpica/source/components/executer/exregion.c > +++ b/src/acpica/source/components/executer/exregion.c > @@ -489,7 +489,8 @@ AcpiExPciConfigSpaceHandler ( > PciRegister = (UINT16) (UINT32) Address; > > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, > - "Pci-Config %u (%u) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n", > + "Pci-Config %u (%u) Seg(%04x) Bus(%04x) " > + "Dev(%04x) Func(%04x) Reg(%04x)\n", > Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device, > PciId->Function, PciRegister)); > > @@ -498,14 +499,14 @@ AcpiExPciConfigSpaceHandler ( > case ACPI_READ: > > *Value = 0; > - Status = AcpiOsReadPciConfiguration (PciId, PciRegister, > - Value, BitWidth); > + Status = AcpiOsReadPciConfiguration ( > + PciId, PciRegister, Value, BitWidth); > break; > > case ACPI_WRITE: > > - Status = AcpiOsWritePciConfiguration (PciId, PciRegister, > - *Value, BitWidth); > + Status = AcpiOsWritePciConfiguration ( > + PciId, PciRegister, *Value, BitWidth); > break; > > default: > diff --git a/src/acpica/source/components/executer/exresnte.c b/src/acpica/source/components/executer/exresnte.c > index 6967bbb..4c334f6 100644 > --- a/src/acpica/source/components/executer/exresnte.c > +++ b/src/acpica/source/components/executer/exresnte.c > @@ -170,9 +170,9 @@ AcpiExResolveNodeToValue ( > * The stack pointer points to a ACPI_NAMESPACE_NODE (Node). Get the > * object that is attached to the Node. > */ > - Node = *ObjectPtr; > + Node = *ObjectPtr; > SourceDesc = AcpiNsGetAttachedObject (Node); > - EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); > + EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Entry=%p SourceDesc=%p [%s]\n", > Node, SourceDesc, AcpiUtGetTypeName (EntryType))); > @@ -182,15 +182,15 @@ AcpiExResolveNodeToValue ( > { > /* There is always exactly one level of indirection */ > > - Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object); > + Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object); > SourceDesc = AcpiNsGetAttachedObject (Node); > - EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); > + EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); > *ObjectPtr = Node; > } > > /* > * Several object types require no further processing: > - * 1) Device/Thermal objects don't have a "real" subobject, return the Node > + * 1) Device/Thermal objects don't have a "real" subobject, return Node > * 2) Method locals and arguments have a pseudo-Node > * 3) 10/2007: Added method type to assist with Package construction. > */ > diff --git a/src/acpica/source/components/executer/exresolv.c b/src/acpica/source/components/executer/exresolv.c > index a273a71..6628e93 100644 > --- a/src/acpica/source/components/executer/exresolv.c > +++ b/src/acpica/source/components/executer/exresolv.c > @@ -191,8 +191,8 @@ AcpiExResolveToValue ( > if (ACPI_GET_DESCRIPTOR_TYPE (*StackPtr) == ACPI_DESC_TYPE_NAMED) > { > Status = AcpiExResolveNodeToValue ( > - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, StackPtr), > - WalkState); > + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, StackPtr), > + WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -251,7 +251,7 @@ AcpiExResolveObjectToValue ( > * Note: this increments the local's object reference count > */ > Status = AcpiDsMethodDataGetValue (RefType, > - StackDesc->Reference.Value, WalkState, &ObjDesc); > + StackDesc->Reference.Value, WalkState, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -307,7 +307,8 @@ AcpiExResolveObjectToValue ( > * the package, can't dereference it > */ > ACPI_ERROR ((AE_INFO, > - "Attempt to dereference an Index to NULL package element Idx=%p", > + "Attempt to dereference an Index to " > + "NULL package element Idx=%p", > StackDesc)); > Status = AE_AML_UNINITIALIZED_ELEMENT; > } > @@ -358,7 +359,8 @@ AcpiExResolveObjectToValue ( > default: > > ACPI_ERROR ((AE_INFO, > - "Unknown Reference type 0x%X in %p", RefType, StackDesc)); > + "Unknown Reference type 0x%X in %p", > + RefType, StackDesc)); > Status = AE_AML_INTERNAL; > break; > } > @@ -379,7 +381,8 @@ AcpiExResolveObjectToValue ( > case ACPI_TYPE_LOCAL_BANK_FIELD: > case ACPI_TYPE_LOCAL_INDEX_FIELD: > > - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead SourceDesc=%p Type=%X\n", > + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > + "FieldRead SourceDesc=%p Type=%X\n", > StackDesc, StackDesc->Common.Type)); > > Status = AcpiExReadDataFromField (WalkState, StackDesc, &ObjDesc); > @@ -450,7 +453,8 @@ AcpiExResolveMultiple ( > if (Type == ACPI_TYPE_LOCAL_ALIAS) > { > Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type; > - ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc); > + ObjDesc = AcpiNsGetAttachedObject ( > + (ACPI_NAMESPACE_NODE *) ObjDesc); > } > > if (!ObjDesc) > @@ -564,7 +568,7 @@ AcpiExResolveMultiple ( > if (ReturnDesc) > { > Status = AcpiDsMethodDataGetValue (ObjDesc->Reference.Class, > - ObjDesc->Reference.Value, WalkState, &ObjDesc); > + ObjDesc->Reference.Value, WalkState, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -574,7 +578,7 @@ AcpiExResolveMultiple ( > else > { > Status = AcpiDsMethodDataGetNode (ObjDesc->Reference.Class, > - ObjDesc->Reference.Value, WalkState, &Node); > + ObjDesc->Reference.Value, WalkState, &Node); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -599,7 +603,8 @@ AcpiExResolveMultiple ( > default: > > ACPI_ERROR ((AE_INFO, > - "Unknown Reference Class 0x%2.2X", ObjDesc->Reference.Class)); > + "Unknown Reference Class 0x%2.2X", > + ObjDesc->Reference.Class)); > return_ACPI_STATUS (AE_AML_INTERNAL); > } > } > diff --git a/src/acpica/source/components/executer/exresop.c b/src/acpica/source/components/executer/exresop.c > index 3cfe472..214e6de 100644 > --- a/src/acpica/source/components/executer/exresop.c > +++ b/src/acpica/source/components/executer/exresop.c > @@ -171,7 +171,8 @@ AcpiExCheckObjectType ( > * specification, a store to a constant is a noop.) > */ > if ((ThisType == ACPI_TYPE_INTEGER) && > - (((ACPI_OPERAND_OBJECT *) Object)->Common.Flags & AOPOBJ_AML_CONSTANT)) > + (((ACPI_OPERAND_OBJECT *) Object)->Common.Flags & > + AOPOBJ_AML_CONSTANT)) > { > return (AE_OK); > } > @@ -288,7 +289,8 @@ AcpiExResolveOperands ( > */ > if (ObjectType == ACPI_TYPE_LOCAL_ALIAS) > { > - ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc); > + ObjDesc = AcpiNsGetAttachedObject ( > + (ACPI_NAMESPACE_NODE *) ObjDesc); > *StackPtr = ObjDesc; > ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type; > } > @@ -369,7 +371,8 @@ AcpiExResolveOperands ( > { > case ARGI_REF_OR_STRING: /* Can be a String or Reference */ > > - if ((ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND) && > + if ((ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == > + ACPI_DESC_TYPE_OPERAND) && > (ObjDesc->Common.Type == ACPI_TYPE_STRING)) > { > /* > @@ -403,8 +406,8 @@ AcpiExResolveOperands ( > goto NextOperand; > } > > - Status = AcpiExCheckObjectType (ACPI_TYPE_LOCAL_REFERENCE, > - ObjectType, ObjDesc); > + Status = AcpiExCheckObjectType ( > + ACPI_TYPE_LOCAL_REFERENCE, ObjectType, ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -555,8 +558,8 @@ AcpiExResolveOperands ( > * But we can implicitly convert from a BUFFER or INTEGER > * Aka - "Implicit Source Operand Conversion" > */ > - Status = AcpiExConvertToString (ObjDesc, StackPtr, > - ACPI_IMPLICIT_CONVERT_HEX); > + Status = AcpiExConvertToString ( > + ObjDesc, StackPtr, ACPI_IMPLICIT_CONVERT_HEX); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_TYPE) > @@ -689,8 +692,10 @@ AcpiExResolveOperands ( > > case ARGI_REGION_OR_BUFFER: /* Used by Load() only */ > > - /* Need an operand of type REGION or a BUFFER (which could be a resolved region field) */ > - > + /* > + * Need an operand of type REGION or a BUFFER > + * (which could be a resolved region field) > + */ > switch (ObjDesc->Common.Type) > { > case ACPI_TYPE_BUFFER: > @@ -734,9 +739,9 @@ AcpiExResolveOperands ( > if (AcpiGbl_EnableInterpreterSlack) > { > /* > - * Enable original behavior of Store(), allowing any and all > - * objects as the source operand. The ACPI spec does not > - * allow this, however. > + * Enable original behavior of Store(), allowing any > + * and all objects as the source operand. The ACPI > + * spec does not allow this, however. > */ > break; > } > @@ -749,7 +754,8 @@ AcpiExResolveOperands ( > } > > ACPI_ERROR ((AE_INFO, > - "Needed Integer/Buffer/String/Package/Ref/Ddb], found [%s] %p", > + "Needed Integer/Buffer/String/Package/Ref/Ddb]" > + ", found [%s] %p", > AcpiUtGetObjectTypeName (ObjDesc), ObjDesc)); > > return_ACPI_STATUS (AE_AML_OPERAND_TYPE); > @@ -771,8 +777,8 @@ AcpiExResolveOperands ( > * Make sure that the original object was resolved to the > * required object type (Simple cases only). > */ > - Status = AcpiExCheckObjectType (TypeNeeded, > - (*StackPtr)->Common.Type, *StackPtr); > + Status = AcpiExCheckObjectType ( > + TypeNeeded, (*StackPtr)->Common.Type, *StackPtr); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/executer/exstore.c b/src/acpica/source/components/executer/exstore.c > index cb6ebc0..096d65d 100644 > --- a/src/acpica/source/components/executer/exstore.c > +++ b/src/acpica/source/components/executer/exstore.c > @@ -189,8 +189,8 @@ AcpiExStore ( > * Storing an object into a Named node. > */ > Status = AcpiExStoreObjectToNode (SourceDesc, > - (ACPI_NAMESPACE_NODE *) DestDesc, WalkState, > - ACPI_IMPLICIT_CONVERSION); > + (ACPI_NAMESPACE_NODE *) DestDesc, WalkState, > + ACPI_IMPLICIT_CONVERSION); > > return_ACPI_STATUS (Status); > } > @@ -240,8 +240,8 @@ AcpiExStore ( > /* Storing an object into a Name "container" */ > > Status = AcpiExStoreObjectToNode (SourceDesc, > - RefDesc->Reference.Object, > - WalkState, ACPI_IMPLICIT_CONVERSION); > + RefDesc->Reference.Object, > + WalkState, ACPI_IMPLICIT_CONVERSION); > break; > > case ACPI_REFCLASS_INDEX: > @@ -257,7 +257,7 @@ AcpiExStore ( > /* Store to a method local/arg */ > > Status = AcpiDsStoreObjectToLocal (RefDesc->Reference.Class, > - RefDesc->Reference.Value, SourceDesc, WalkState); > + RefDesc->Reference.Value, SourceDesc, WalkState); > break; > > case ACPI_REFCLASS_DEBUG: > @@ -346,7 +346,8 @@ AcpiExStoreObjectToIndex ( > { > /* Normal object, copy it */ > > - Status = AcpiUtCopyIobjectToIobject (SourceDesc, &NewDesc, WalkState); > + Status = AcpiUtCopyIobjectToIobject ( > + SourceDesc, &NewDesc, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -559,7 +560,8 @@ AcpiExStoreObjectToNode ( > case ACPI_TYPE_THERMAL: > > ACPI_ERROR ((AE_INFO, > - "Target must be [Buffer/Integer/String/Reference], found [%s] (%4.4s)", > + "Target must be [Buffer/Integer/String/Reference]" > + ", found [%s] (%4.4s)", > AcpiUtGetTypeName (Node->Type), Node->Name.Ascii)); > > return_ACPI_STATUS (AE_AML_TARGET_TYPE); > @@ -599,8 +601,7 @@ AcpiExStoreObjectToNode ( > * an implicit conversion, as per the ACPI specification. > * A direct store is performed instead. > */ > - Status = AcpiExStoreDirectToNode (SourceDesc, Node, > - WalkState); > + Status = AcpiExStoreDirectToNode (SourceDesc, Node, WalkState); > break; > } > > @@ -624,8 +625,8 @@ AcpiExStoreObjectToNode ( > * store has been performed such that the node/object type > * has been changed. > */ > - Status = AcpiNsAttachObject (Node, NewDesc, > - NewDesc->Common.Type); > + Status = AcpiNsAttachObject ( > + Node, NewDesc, NewDesc->Common.Type); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > "Store type [%s] into [%s] via Convert/Attach\n", > @@ -657,8 +658,7 @@ AcpiExStoreObjectToNode ( > * operator. (Note, for this default case, all normal > * Store/Target operations exited above with an error). > */ > - Status = AcpiExStoreDirectToNode (SourceDesc, Node, > - WalkState); > + Status = AcpiExStoreDirectToNode (SourceDesc, Node, WalkState); > break; > } > > diff --git a/src/acpica/source/components/executer/exstoren.c b/src/acpica/source/components/executer/exstoren.c > index 6a1be4c..f563f8a 100644 > --- a/src/acpica/source/components/executer/exstoren.c > +++ b/src/acpica/source/components/executer/exstoren.c > @@ -196,7 +196,7 @@ AcpiExResolveObject ( > (SourceDesc->Common.Type != ACPI_TYPE_BUFFER) && > (SourceDesc->Common.Type != ACPI_TYPE_STRING) && > !((SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && > - (SourceDesc->Reference.Class== ACPI_REFCLASS_TABLE))) > + (SourceDesc->Reference.Class== ACPI_REFCLASS_TABLE))) > { > /* Conversion successful but still not a valid type */ > > @@ -305,7 +305,7 @@ AcpiExStoreObjectToObject ( > * converted object. > */ > Status = AcpiExConvertToTargetType (DestDesc->Common.Type, > - SourceDesc, &ActualSrcDesc, WalkState); > + SourceDesc, &ActualSrcDesc, WalkState); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/executer/exstorob.c b/src/acpica/source/components/executer/exstorob.c > index 8c23aee..bcfe800 100644 > --- a/src/acpica/source/components/executer/exstorob.c > +++ b/src/acpica/source/components/executer/exstorob.c > @@ -1,6 +1,6 @@ > /****************************************************************************** > * > - * Module Name: exstorob - AML Interpreter object store support, store to object > + * Module Name: exstorob - AML object store support, store to object > * > *****************************************************************************/ > > @@ -293,8 +293,9 @@ AcpiExStoreStringToString ( > ACPI_FREE (TargetDesc->String.Pointer); > } > > - TargetDesc->String.Pointer = ACPI_ALLOCATE_ZEROED ( > - (ACPI_SIZE) Length + 1); > + TargetDesc->String.Pointer = > + ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) Length + 1); > + > if (!TargetDesc->String.Pointer) > { > return_ACPI_STATUS (AE_NO_MEMORY); > diff --git a/src/acpica/source/components/executer/exsystem.c b/src/acpica/source/components/executer/exsystem.c > index 49ec2e9..7813480 100644 > --- a/src/acpica/source/components/executer/exsystem.c > +++ b/src/acpica/source/components/executer/exsystem.c > @@ -158,7 +158,6 @@ AcpiExSystemWaitSemaphore ( > /* We must wait, so unlock the interpreter */ > > AcpiExExitInterpreter (); > - > Status = AcpiOsWaitSemaphore (Semaphore, 1, Timeout); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > @@ -211,7 +210,6 @@ AcpiExSystemWaitMutex ( > /* We must wait, so unlock the interpreter */ > > AcpiExExitInterpreter (); > - > Status = AcpiOsAcquireMutex (Mutex, Timeout); > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > @@ -262,8 +260,8 @@ AcpiExSystemDoStall ( > * (ACPI specifies 100 usec as max, but this gives some slack in > * order to support existing BIOSs) > */ > - ACPI_ERROR ((AE_INFO, "Time parameter is too large (%u)", > - HowLong)); > + ACPI_ERROR ((AE_INFO, > + "Time parameter is too large (%u)", HowLong)); > Status = AE_AML_OPERAND_VALUE; > } > else > @@ -378,7 +376,7 @@ AcpiExSystemWaitEvent ( > if (ObjDesc) > { > Status = AcpiExSystemWaitSemaphore (ObjDesc->Event.OsSemaphore, > - (UINT16) TimeDesc->Integer.Value); > + (UINT16) TimeDesc->Integer.Value); > } > > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/executer/extrace.c b/src/acpica/source/components/executer/extrace.c > new file mode 100644 > index 0000000..60d020e > --- /dev/null > +++ b/src/acpica/source/components/executer/extrace.c > @@ -0,0 +1,499 @@ > +/****************************************************************************** > + * > + * Module Name: extrace - Support for interpreter execution tracing > + * > + *****************************************************************************/ > + > +/****************************************************************************** > + * > + * 1. Copyright Notice > + * > + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. > + * All rights reserved. > + * > + * 2. License > + * > + * 2.1. This is your license from Intel Corp. under its intellectual property > + * rights. You may have additional license terms from the party that provided > + * you this software, covering your right to use that party's intellectual > + * property rights. > + * > + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a > + * copy of the source code appearing in this file ("Covered Code") an > + * irrevocable, perpetual, worldwide license under Intel's copyrights in the > + * base code distributed originally by Intel ("Original Intel Code") to copy, > + * make derivatives, distribute, use and display any portion of the Covered > + * Code in any form, with the right to sublicense such rights; and > + * > + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent > + * license (with the right to sublicense), under only those claims of Intel > + * patents that are infringed by the Original Intel Code, to make, use, sell, > + * offer to sell, and import the Covered Code and derivative works thereof > + * solely to the minimum extent necessary to exercise the above copyright > + * license, and in no event shall the patent license extend to any additions > + * to or modifications of the Original Intel Code. No other license or right > + * is granted directly or by implication, estoppel or otherwise; > + * > + * The above copyright and patent license is granted only if the following > + * conditions are met: > + * > + * 3. Conditions > + * > + * 3.1. Redistribution of Source with Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification with rights to further distribute source must include > + * the above Copyright Notice, the above License, this list of Conditions, > + * and the following Disclaimer and Export Compliance provision. In addition, > + * Licensee must cause all Covered Code to which Licensee contributes to > + * contain a file documenting the changes Licensee made to create that Covered > + * Code and the date of any change. Licensee must include in that file the > + * documentation of any changes made by any predecessor Licensee. Licensee > + * must include a prominent statement that the modification is derived, > + * directly or indirectly, from Original Intel Code. > + * > + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. > + * Redistribution of source code of any substantial portion of the Covered > + * Code or modification without rights to further distribute source must > + * include the following Disclaimer and Export Compliance provision in the > + * documentation and/or other materials provided with distribution. In > + * addition, Licensee may not authorize further sublicense of source of any > + * portion of the Covered Code, and must include terms to the effect that the > + * license from Licensee to its licensee is limited to the intellectual > + * property embodied in the software Licensee provides to its licensee, and > + * not to intellectual property embodied in modifications its licensee may > + * make. > + * > + * 3.3. Redistribution of Executable. Redistribution in executable form of any > + * substantial portion of the Covered Code or modification must reproduce the > + * above Copyright Notice, and the following Disclaimer and Export Compliance > + * provision in the documentation and/or other materials provided with the > + * distribution. > + * > + * 3.4. Intel retains all right, title, and interest in and to the Original > + * Intel Code. > + * > + * 3.5. Neither the name Intel nor any other trademark owned or controlled by > + * Intel shall be used in advertising or otherwise to promote the sale, use or > + * other dealings in products derived from or relating to the Covered Code > + * without prior written authorization from Intel. > + * > + * 4. Disclaimer and Export Compliance > + * > + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED > + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE > + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, > + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY > + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY > + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A > + * PARTICULAR PURPOSE. > + * > + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES > + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR > + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, > + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY > + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL > + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS > + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY > + * LIMITED REMEDY. > + * > + * 4.3. Licensee shall not export, either directly or indirectly, any of this > + * software or system incorporating such software without first obtaining any > + * required license or other approval from the U. S. Department of Commerce or > + * any other agency or department of the United States Government. In the > + * event Licensee exports any such software from the United States or > + * re-exports any such software from a foreign destination, Licensee shall > + * ensure that the distribution and export/re-export of the software is in > + * compliance with all laws, regulations, orders, or other restrictions of the > + * U.S. Export Administration Regulations. Licensee agrees that neither it nor > + * any of its subsidiaries will export/re-export any technical data, process, > + * software, or service, directly or indirectly, to any country for which the > + * United States government or any agency thereof requires an export license, > + * other governmental approval, or letter of assurance, without first obtaining > + * such license, approval or letter. > + * > + *****************************************************************************/ > + > +#include "acpi.h" > +#include "accommon.h" > +#include "acnamesp.h" > +#include "acinterp.h" > + > + > +#define _COMPONENT ACPI_EXECUTER > + ACPI_MODULE_NAME ("extrace") > + > + > +static ACPI_OPERAND_OBJECT *AcpiGbl_TraceMethodObject = NULL; > + > +/* Local prototypes */ > + > +#ifdef ACPI_DEBUG_OUTPUT > +static const char * > +AcpiExGetTraceEventName ( > + ACPI_TRACE_EVENT_TYPE Type); > +#endif > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExInterpreterTraceEnabled > + * > + * PARAMETERS: Name - Whether method name should be matched, > + * this should be checked before starting > + * the tracer > + * > + * RETURN: TRUE if interpreter trace is enabled. > + * > + * DESCRIPTION: Check whether interpreter trace is enabled > + * > + ******************************************************************************/ > + > +static BOOLEAN > +AcpiExInterpreterTraceEnabled ( > + char *Name) > +{ > + > + /* Check if tracing is enabled */ > + > + if (!(AcpiGbl_TraceFlags & ACPI_TRACE_ENABLED)) > + { > + return (FALSE); > + } > + > + /* > + * Check if tracing is filtered: > + * > + * 1. If the tracer is started, AcpiGbl_TraceMethodObject should have > + * been filled by the trace starter > + * 2. If the tracer is not started, AcpiGbl_TraceMethodName should be > + * matched if it is specified > + * 3. If the tracer is oneshot style, AcpiGbl_TraceMethodName should > + * not be cleared by the trace stopper during the first match > + */ > + if (AcpiGbl_TraceMethodObject) > + { > + return (TRUE); > + } > + > + if (Name && > + (AcpiGbl_TraceMethodName && > + strcmp (AcpiGbl_TraceMethodName, Name))) > + { > + return (FALSE); > + } > + > + if ((AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) && > + !AcpiGbl_TraceMethodName) > + { > + return (FALSE); > + } > + > + return (TRUE); > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExGetTraceEventName > + * > + * PARAMETERS: Type - Trace event type > + * > + * RETURN: Trace event name. > + * > + * DESCRIPTION: Used to obtain the full trace event name. > + * > + ******************************************************************************/ > + > +#ifdef ACPI_DEBUG_OUTPUT > + > +static const char * > +AcpiExGetTraceEventName ( > + ACPI_TRACE_EVENT_TYPE Type) > +{ > + > + switch (Type) > + { > + case ACPI_TRACE_AML_METHOD: > + > + return "Method"; > + > + case ACPI_TRACE_AML_OPCODE: > + > + return "Opcode"; > + > + case ACPI_TRACE_AML_REGION: > + > + return "Region"; > + > + default: > + > + return ""; > + } > +} > + > +#endif > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExTracePoint > + * > + * PARAMETERS: Type - Trace event type > + * Begin - TRUE if before execution > + * Aml - Executed AML address > + * Pathname - Object path > + * > + * RETURN: None > + * > + * DESCRIPTION: Internal interpreter execution trace. > + * > + ******************************************************************************/ > + > +void > +AcpiExTracePoint ( > + ACPI_TRACE_EVENT_TYPE Type, > + BOOLEAN Begin, > + UINT8 *Aml, > + char *Pathname) > +{ > + > + ACPI_FUNCTION_NAME (ExTracePoint); > + > + > + if (Pathname) > + { > + ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, > + "%s %s [0x%p:%s] execution.\n", > + AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", > + Aml, Pathname)); > + } > + else > + { > + ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, > + "%s %s [0x%p] execution.\n", > + AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", > + Aml)); > + } > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExStartTraceMethod > + * > + * PARAMETERS: MethodNode - Node of the method > + * ObjDesc - The method object > + * WalkState - current state, NULL if not yet executing > + * a method. > + * > + * RETURN: None > + * > + * DESCRIPTION: Start control method execution trace > + * > + ******************************************************************************/ > + > +void > +AcpiExStartTraceMethod ( > + ACPI_NAMESPACE_NODE *MethodNode, > + ACPI_OPERAND_OBJECT *ObjDesc, > + ACPI_WALK_STATE *WalkState) > +{ > + ACPI_STATUS Status; > + char *Pathname = NULL; > + BOOLEAN Enabled = FALSE; > + > + > + ACPI_FUNCTION_NAME (ExStartTraceMethod); > + > + > + if (MethodNode) > + { > + Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); > + } > + > + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); > + if (ACPI_FAILURE (Status)) > + { > + goto Exit; > + } > + > + Enabled = AcpiExInterpreterTraceEnabled (Pathname); > + if (Enabled && !AcpiGbl_TraceMethodObject) > + { > + AcpiGbl_TraceMethodObject = ObjDesc; > + AcpiGbl_OriginalDbgLevel = AcpiDbgLevel; > + AcpiGbl_OriginalDbgLayer = AcpiDbgLayer; > + AcpiDbgLevel = ACPI_TRACE_LEVEL_ALL; > + AcpiDbgLayer = ACPI_TRACE_LAYER_ALL; > + > + if (AcpiGbl_TraceDbgLevel) > + { > + AcpiDbgLevel = AcpiGbl_TraceDbgLevel; > + } > + > + if (AcpiGbl_TraceDbgLayer) > + { > + AcpiDbgLayer = AcpiGbl_TraceDbgLayer; > + } > + } > + > + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > + > +Exit: > + if (Enabled) > + { > + ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, TRUE, > + ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); > + } > + > + if (Pathname) > + { > + ACPI_FREE (Pathname); > + } > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExStopTraceMethod > + * > + * PARAMETERS: MethodNode - Node of the method > + * ObjDesc - The method object > + * WalkState - current state, NULL if not yet executing > + * a method. > + * > + * RETURN: None > + * > + * DESCRIPTION: Stop control method execution trace > + * > + ******************************************************************************/ > + > +void > +AcpiExStopTraceMethod ( > + ACPI_NAMESPACE_NODE *MethodNode, > + ACPI_OPERAND_OBJECT *ObjDesc, > + ACPI_WALK_STATE *WalkState) > +{ > + ACPI_STATUS Status; > + char *Pathname = NULL; > + BOOLEAN Enabled; > + > + > + ACPI_FUNCTION_NAME (ExStopTraceMethod); > + > + > + if (MethodNode) > + { > + Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); > + } > + > + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); > + if (ACPI_FAILURE (Status)) > + { > + goto ExitPath; > + } > + > + Enabled = AcpiExInterpreterTraceEnabled (NULL); > + > + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > + > + if (Enabled) > + { > + ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, FALSE, > + ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); > + } > + > + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); > + if (ACPI_FAILURE (Status)) > + { > + goto ExitPath; > + } > + > + /* Check whether the tracer should be stopped */ > + > + if (AcpiGbl_TraceMethodObject == ObjDesc) > + { > + /* Disable further tracing if type is one-shot */ > + > + if (AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) > + { > + AcpiGbl_TraceMethodName = NULL; > + } > + > + AcpiDbgLevel = AcpiGbl_OriginalDbgLevel; > + AcpiDbgLayer = AcpiGbl_OriginalDbgLayer; > + AcpiGbl_TraceMethodObject = NULL; > + } > + > + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > + > +ExitPath: > + if (Pathname) > + { > + ACPI_FREE (Pathname); > + } > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExStartTraceOpcode > + * > + * PARAMETERS: Op - The parser opcode object > + * WalkState - current state, NULL if not yet executing > + * a method. > + * > + * RETURN: None > + * > + * DESCRIPTION: Start opcode execution trace > + * > + ******************************************************************************/ > + > +void > +AcpiExStartTraceOpcode ( > + ACPI_PARSE_OBJECT *Op, > + ACPI_WALK_STATE *WalkState) > +{ > + > + ACPI_FUNCTION_NAME (ExStartTraceOpcode); > + > + > + if (AcpiExInterpreterTraceEnabled (NULL) && > + (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) > + { > + ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, TRUE, > + Op->Common.Aml, Op->Common.AmlOpName); > + } > +} > + > + > +/******************************************************************************* > + * > + * FUNCTION: AcpiExStopTraceOpcode > + * > + * PARAMETERS: Op - The parser opcode object > + * WalkState - current state, NULL if not yet executing > + * a method. > + * > + * RETURN: None > + * > + * DESCRIPTION: Stop opcode execution trace > + * > + ******************************************************************************/ > + > +void > +AcpiExStopTraceOpcode ( > + ACPI_PARSE_OBJECT *Op, > + ACPI_WALK_STATE *WalkState) > +{ > + > + ACPI_FUNCTION_NAME (ExStopTraceOpcode); > + > + > + if (AcpiExInterpreterTraceEnabled (NULL) && > + (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) > + { > + ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, FALSE, > + Op->Common.Aml, Op->Common.AmlOpName); > + } > +} > diff --git a/src/acpica/source/components/executer/exutils.c b/src/acpica/source/components/executer/exutils.c > index 90a791d..0356a8d 100644 > --- a/src/acpica/source/components/executer/exutils.c > +++ b/src/acpica/source/components/executer/exutils.c > @@ -259,8 +259,8 @@ AcpiExTruncateFor32bitTable ( > (ObjDesc->Integer.Value > (UINT64) ACPI_UINT32_MAX)) > { > /* > - * We are executing in a 32-bit ACPI table. > - * Truncate the value to 32 bits by zeroing out the upper 32-bit field > + * We are executing in a 32-bit ACPI table. Truncate > + * the value to 32 bits by zeroing out the upper 32-bit field > */ > ObjDesc->Integer.Value &= (UINT64) ACPI_UINT32_MAX; > return (TRUE); > @@ -304,7 +304,7 @@ AcpiExAcquireGlobalLock ( > /* Attempt to get the global lock, wait forever */ > > Status = AcpiExAcquireMutexObject (ACPI_WAIT_FOREVER, > - AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); > + AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); > > if (ACPI_FAILURE (Status)) > { > @@ -441,7 +441,8 @@ AcpiExEisaIdToString ( > if (CompressedId > ACPI_UINT32_MAX) > { > ACPI_WARNING ((AE_INFO, > - "Expected EISAID is larger than 32 bits: 0x%8.8X%8.8X, truncating", > + "Expected EISAID is larger than 32 bits: " > + "0x%8.8X%8.8X, truncating", > ACPI_FORMAT_UINT64 (CompressedId))); > } > > @@ -568,5 +569,4 @@ AcpiIsValidSpaceId ( > return (TRUE); > } > > - > #endif > diff --git a/src/acpica/source/components/hardware/hwacpi.c b/src/acpica/source/components/hardware/hwacpi.c > index 0530383..87a41c3 100644 > --- a/src/acpica/source/components/hardware/hwacpi.c > +++ b/src/acpica/source/components/hardware/hwacpi.c > @@ -185,7 +185,7 @@ AcpiHwSetMode ( > /* BIOS should have disabled ALL fixed and GP events */ > > Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, > - (UINT32) AcpiGbl_FADT.AcpiEnable, 8); > + (UINT32) AcpiGbl_FADT.AcpiEnable, 8); > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable ACPI mode\n")); > break; > > @@ -195,9 +195,9 @@ AcpiHwSetMode ( > * enable bits to default > */ > Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, > - (UINT32) AcpiGbl_FADT.AcpiDisable, 8); > + (UINT32) AcpiGbl_FADT.AcpiDisable, 8); > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, > - "Attempting to enable Legacy (non-ACPI) mode\n")); > + "Attempting to enable Legacy (non-ACPI) mode\n")); > break; > > default: > @@ -221,8 +221,8 @@ AcpiHwSetMode ( > { > if (AcpiHwGetMode () == Mode) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n", > - Mode)); > + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, > + "Mode %X successfully enabled\n", Mode)); > return_ACPI_STATUS (AE_OK); > } > AcpiOsStall (ACPI_USEC_PER_MSEC); > diff --git a/src/acpica/source/components/hardware/hwesleep.c b/src/acpica/source/components/hardware/hwesleep.c > index ba8acdc..ecc729c 100644 > --- a/src/acpica/source/components/hardware/hwesleep.c > +++ b/src/acpica/source/components/hardware/hwesleep.c > @@ -202,7 +202,8 @@ AcpiHwExtendedSleep ( > > /* Clear wake status (WAK_STS) */ > > - Status = AcpiWrite ((UINT64) ACPI_X_WAKE_STATUS, &AcpiGbl_FADT.SleepStatus); > + Status = AcpiWrite ((UINT64) ACPI_X_WAKE_STATUS, > + &AcpiGbl_FADT.SleepStatus); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -274,7 +275,7 @@ AcpiHwExtendedWakePrep ( > > > Status = AcpiGetSleepTypeData (ACPI_STATE_S0, > - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); > + &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); > if (ACPI_SUCCESS (Status)) > { > SleepTypeValue = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) & > diff --git a/src/acpica/source/components/hardware/hwgpe.c b/src/acpica/source/components/hardware/hwgpe.c > index 1ab6965..8e4cc8b 100644 > --- a/src/acpica/source/components/hardware/hwgpe.c > +++ b/src/acpica/source/components/hardware/hwgpe.c > @@ -280,9 +280,7 @@ AcpiHwClearGpe ( > */ > RegisterBit = AcpiHwGetGpeRegisterBit (GpeEventInfo); > > - Status = AcpiHwWrite (RegisterBit, > - &GpeRegisterInfo->StatusAddress); > - > + Status = AcpiHwWrite (RegisterBit, &GpeRegisterInfo->StatusAddress); > return (Status); > } > > @@ -323,7 +321,7 @@ AcpiHwGetGpeStatus ( > /* GPE currently handled? */ > > if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) != > - ACPI_GPE_DISPATCH_NONE) > + ACPI_GPE_DISPATCH_NONE) > { > LocalEventStatus |= ACPI_EVENT_FLAG_HAS_HANDLER; > } > @@ -405,8 +403,8 @@ AcpiHwGpeEnableWrite ( > > > GpeRegisterInfo->EnableMask = EnableMask; > - Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress); > > + Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress); > return (Status); > } > > @@ -531,7 +529,7 @@ AcpiHwEnableRuntimeGpeBlock ( > /* Enable all "runtime" GPEs in this register */ > > Status = AcpiHwGpeEnableWrite (GpeRegisterInfo->EnableForRun, > - GpeRegisterInfo); > + GpeRegisterInfo); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -578,7 +576,7 @@ AcpiHwEnableWakeupGpeBlock ( > * remaining ones. > */ > Status = AcpiHwGpeEnableWrite (GpeRegisterInfo->EnableForWake, > - GpeRegisterInfo); > + GpeRegisterInfo); > if (ACPI_FAILURE (Status)) > { > return (Status); > diff --git a/src/acpica/source/components/hardware/hwregs.c b/src/acpica/source/components/hardware/hwregs.c > index 492833e..8cc2f47 100644 > --- a/src/acpica/source/components/hardware/hwregs.c > +++ b/src/acpica/source/components/hardware/hwregs.c > @@ -140,6 +140,7 @@ AcpiHwWriteMultiple ( > > #endif /* !ACPI_REDUCED_HARDWARE */ > > + > /****************************************************************************** > * > * FUNCTION: AcpiHwValidateRegister > @@ -268,14 +269,14 @@ AcpiHwRead ( > if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) > { > Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS) > - Address, &Value64, Reg->BitWidth); > + Address, &Value64, Reg->BitWidth); > > *Value = (UINT32) Value64; > } > else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */ > { > Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) > - Address, Value, Reg->BitWidth); > + Address, Value, Reg->BitWidth); > } > > ACPI_DEBUG_PRINT ((ACPI_DB_IO, > @@ -329,12 +330,12 @@ AcpiHwWrite ( > if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) > { > Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS) > - Address, (UINT64) Value, Reg->BitWidth); > + Address, (UINT64) Value, Reg->BitWidth); > } > else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */ > { > Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) > - Address, Value, Reg->BitWidth); > + Address, Value, Reg->BitWidth); > } > > ACPI_DEBUG_PRINT ((ACPI_DB_IO, > @@ -379,7 +380,7 @@ AcpiHwClearAcpiStatus ( > /* Clear the fixed events in PM1 A/B */ > > Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS, > - ACPI_BITMASK_ALL_FIXED_STATUS); > + ACPI_BITMASK_ALL_FIXED_STATUS); > > AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags); > > @@ -498,22 +499,22 @@ AcpiHwRegisterRead ( > case ACPI_REGISTER_PM1_STATUS: /* PM1 A/B: 16-bit access each */ > > Status = AcpiHwReadMultiple (&Value, > - &AcpiGbl_XPm1aStatus, > - &AcpiGbl_XPm1bStatus); > + &AcpiGbl_XPm1aStatus, > + &AcpiGbl_XPm1bStatus); > break; > > case ACPI_REGISTER_PM1_ENABLE: /* PM1 A/B: 16-bit access each */ > > Status = AcpiHwReadMultiple (&Value, > - &AcpiGbl_XPm1aEnable, > - &AcpiGbl_XPm1bEnable); > + &AcpiGbl_XPm1aEnable, > + &AcpiGbl_XPm1bEnable); > break; > > case ACPI_REGISTER_PM1_CONTROL: /* PM1 A/B: 16-bit access each */ > > Status = AcpiHwReadMultiple (&Value, > - &AcpiGbl_FADT.XPm1aControlBlock, > - &AcpiGbl_FADT.XPm1bControlBlock); > + &AcpiGbl_FADT.XPm1aControlBlock, > + &AcpiGbl_FADT.XPm1bControlBlock); > > /* > * Zero the write-only bits. From the ACPI specification, "Hardware > @@ -609,15 +610,15 @@ AcpiHwRegisterWrite ( > Value &= ~ACPI_PM1_STATUS_PRESERVED_BITS; > > Status = AcpiHwWriteMultiple (Value, > - &AcpiGbl_XPm1aStatus, > - &AcpiGbl_XPm1bStatus); > + &AcpiGbl_XPm1aStatus, > + &AcpiGbl_XPm1bStatus); > break; > > case ACPI_REGISTER_PM1_ENABLE: /* PM1 A/B: 16-bit access each */ > > Status = AcpiHwWriteMultiple (Value, > - &AcpiGbl_XPm1aEnable, > - &AcpiGbl_XPm1bEnable); > + &AcpiGbl_XPm1aEnable, > + &AcpiGbl_XPm1bEnable); > break; > > case ACPI_REGISTER_PM1_CONTROL: /* PM1 A/B: 16-bit access each */ > @@ -626,8 +627,8 @@ AcpiHwRegisterWrite ( > * Note: This includes SCI_EN, we never want to change this bit > */ > Status = AcpiHwReadMultiple (&ReadValue, > - &AcpiGbl_FADT.XPm1aControlBlock, > - &AcpiGbl_FADT.XPm1bControlBlock); > + &AcpiGbl_FADT.XPm1aControlBlock, > + &AcpiGbl_FADT.XPm1bControlBlock); > if (ACPI_FAILURE (Status)) > { > goto Exit; > @@ -640,8 +641,8 @@ AcpiHwRegisterWrite ( > /* Now we can write the data */ > > Status = AcpiHwWriteMultiple (Value, > - &AcpiGbl_FADT.XPm1aControlBlock, > - &AcpiGbl_FADT.XPm1bControlBlock); > + &AcpiGbl_FADT.XPm1aControlBlock, > + &AcpiGbl_FADT.XPm1bControlBlock); > break; > > case ACPI_REGISTER_PM2_CONTROL: /* 8-bit access */ > diff --git a/src/acpica/source/components/hardware/hwsleep.c b/src/acpica/source/components/hardware/hwsleep.c > index 6438ea7..f80f421 100644 > --- a/src/acpica/source/components/hardware/hwsleep.c > +++ b/src/acpica/source/components/hardware/hwsleep.c > @@ -155,7 +155,8 @@ AcpiHwLegacySleep ( > > /* Clear wake status */ > > - Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS); > + Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, > + ACPI_CLEAR_STATUS); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -189,7 +190,7 @@ AcpiHwLegacySleep ( > /* Get current value of PM1A control */ > > Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL, > - &Pm1aControl); > + &Pm1aControl); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -200,7 +201,7 @@ AcpiHwLegacySleep ( > /* Clear the SLP_EN and SLP_TYP fields */ > > Pm1aControl &= ~(SleepTypeRegInfo->AccessBitMask | > - SleepEnableRegInfo->AccessBitMask); > + SleepEnableRegInfo->AccessBitMask); > Pm1bControl = Pm1aControl; > > /* Insert the SLP_TYP bits */ > @@ -254,7 +255,7 @@ AcpiHwLegacySleep ( > AcpiOsStall (10 * ACPI_USEC_PER_SEC); > > Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_CONTROL, > - SleepEnableRegInfo->AccessBitMask); > + SleepEnableRegInfo->AccessBitMask); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -310,7 +311,7 @@ AcpiHwLegacyWakePrep ( > * by some machines. > */ > Status = AcpiGetSleepTypeData (ACPI_STATE_S0, > - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); > + &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); > if (ACPI_SUCCESS (Status)) > { > SleepTypeRegInfo = > @@ -321,7 +322,7 @@ AcpiHwLegacyWakePrep ( > /* Get current value of PM1A control */ > > Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL, > - &Pm1aControl); > + &Pm1aControl); > if (ACPI_SUCCESS (Status)) > { > /* Clear the SLP_EN and SLP_TYP fields */ > @@ -406,7 +407,8 @@ AcpiHwLegacyWake ( > * and use it to determine whether the system is rebooting or > * resuming. Clear WAK_STS for compatibility. > */ > - (void) AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS); > + (void) AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, > + ACPI_CLEAR_STATUS); > AcpiGbl_SystemAwakeAndRunning = TRUE; > > /* Enable power button */ > diff --git a/src/acpica/source/components/hardware/hwxface.c b/src/acpica/source/components/hardware/hwxface.c > index 12c4ffb..1a30db6 100644 > --- a/src/acpica/source/components/hardware/hwxface.c > +++ b/src/acpica/source/components/hardware/hwxface.c > @@ -241,7 +241,7 @@ AcpiRead ( > if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) > { > Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS) > - Address, ReturnValue, Reg->BitWidth); > + Address, ReturnValue, Reg->BitWidth); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -259,7 +259,7 @@ AcpiRead ( > } > > Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) > - Address, &ValueLo, Width); > + Address, &ValueLo, Width); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -270,7 +270,7 @@ AcpiRead ( > /* Read the top 32 bits */ > > Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) > - (Address + 4), &ValueHi, 32); > + (Address + 4), &ValueHi, 32); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -335,7 +335,7 @@ AcpiWrite ( > if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) > { > Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS) > - Address, Value, Reg->BitWidth); > + Address, Value, Reg->BitWidth); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -350,7 +350,7 @@ AcpiWrite ( > } > > Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) > - Address, ACPI_LODWORD (Value), Width); > + Address, ACPI_LODWORD (Value), Width); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -359,7 +359,7 @@ AcpiWrite ( > if (Reg->BitWidth == 64) > { > Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) > - (Address + 4), ACPI_HIDWORD (Value), 32); > + (Address + 4), ACPI_HIDWORD (Value), 32); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -430,7 +430,7 @@ AcpiReadBitRegister ( > /* Read the entire parent register */ > > Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister, > - &RegisterValue); > + &RegisterValue); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -439,7 +439,7 @@ AcpiReadBitRegister ( > /* Normalize the value that was read, mask off other bits */ > > Value = ((RegisterValue & BitRegInfo->AccessBitMask) > - >> BitRegInfo->BitPosition); > + >> BitRegInfo->BitPosition); > > ACPI_DEBUG_PRINT ((ACPI_DB_IO, > "BitReg %X, ParentReg %X, Actual %8.8X, ReturnValue %8.8X\n", > @@ -511,7 +511,7 @@ AcpiWriteBitRegister ( > * interested in > */ > Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister, > - &RegisterValue); > + &RegisterValue); > if (ACPI_FAILURE (Status)) > { > goto UnlockAndExit; > @@ -525,7 +525,7 @@ AcpiWriteBitRegister ( > BitRegInfo->AccessBitMask, Value); > > Status = AcpiHwRegisterWrite (BitRegInfo->ParentRegister, > - RegisterValue); > + RegisterValue); > } > else > { > @@ -545,7 +545,7 @@ AcpiWriteBitRegister ( > if (RegisterValue) > { > Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS, > - RegisterValue); > + RegisterValue); > } > } > > @@ -637,12 +637,20 @@ AcpiGetSleepTypeData ( > * Evaluate the \_Sx namespace object containing the register values > * for this state > */ > - Info->RelativePathname = ACPI_CAST_PTR ( > - char, AcpiGbl_SleepStateNames[SleepState]); > + Info->RelativePathname = ACPI_CAST_PTR (char, > + AcpiGbl_SleepStateNames[SleepState]); > + > Status = AcpiNsEvaluate (Info); > if (ACPI_FAILURE (Status)) > { > - goto Cleanup; > + if (Status == AE_NOT_FOUND) > + { > + /* The _Sx states are optional, ignore NOT_FOUND */ > + > + goto FinalCleanup; > + } > + > + goto WarningCleanup; > } > > /* Must have a return object */ > @@ -652,7 +660,7 @@ AcpiGetSleepTypeData ( > ACPI_ERROR ((AE_INFO, "No Sleep State object returned from [%s]", > Info->RelativePathname)); > Status = AE_AML_NO_RETURN_VALUE; > - goto Cleanup; > + goto WarningCleanup; > } > > /* Return object must be of type Package */ > @@ -661,7 +669,7 @@ AcpiGetSleepTypeData ( > { > ACPI_ERROR ((AE_INFO, "Sleep State return object is not a Package")); > Status = AE_AML_OPERAND_TYPE; > - goto Cleanup1; > + goto ReturnValueCleanup; > } > > /* > @@ -708,16 +716,18 @@ AcpiGetSleepTypeData ( > break; > } > > -Cleanup1: > +ReturnValueCleanup: > AcpiUtRemoveReference (Info->ReturnObject); > > -Cleanup: > +WarningCleanup: > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > - "While evaluating Sleep State [%s]", Info->RelativePathname)); > + "While evaluating Sleep State [%s]", > + Info->RelativePathname)); > } > > +FinalCleanup: > ACPI_FREE (Info); > return_ACPI_STATUS (Status); > } > diff --git a/src/acpica/source/components/hardware/hwxfsleep.c b/src/acpica/source/components/hardware/hwxfsleep.c > index ce6e8ee..b0abf1a 100644 > --- a/src/acpica/source/components/hardware/hwxfsleep.c > +++ b/src/acpica/source/components/hardware/hwxfsleep.c > @@ -244,7 +244,7 @@ AcpiSetFirmwareWakingVector ( > if (AcpiGbl_FACS) > { > (void) AcpiHwSetFirmwareWakingVector (AcpiGbl_FACS, > - PhysicalAddress, PhysicalAddress64); > + PhysicalAddress, PhysicalAddress64); > } > > return_ACPI_STATUS (AE_OK); > @@ -311,7 +311,7 @@ AcpiEnterSleepStateS4bios ( > ACPI_FLUSH_CPU_CACHE (); > > Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, > - (UINT32) AcpiGbl_FADT.S4BiosRequest, 8); > + (UINT32) AcpiGbl_FADT.S4BiosRequest, 8); > > do { > AcpiOsStall (ACPI_USEC_PER_MSEC); > @@ -320,6 +320,7 @@ AcpiEnterSleepStateS4bios ( > { > return_ACPI_STATUS (Status); > } > + > } while (!InValue); > > return_ACPI_STATUS (AE_OK); > @@ -415,7 +416,7 @@ AcpiEnterSleepStatePrep ( > > > Status = AcpiGetSleepTypeData (SleepState, > - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); > + &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/namespace/nsaccess.c b/src/acpica/source/components/namespace/nsaccess.c > index 6667308..e44164f 100644 > --- a/src/acpica/source/components/namespace/nsaccess.c > +++ b/src/acpica/source/components/namespace/nsaccess.c > @@ -189,8 +189,8 @@ AcpiNsRootInitialize ( > } > > Status = AcpiNsLookup (NULL, InitVal->Name, InitVal->Type, > - ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH, > - NULL, &NewNode); > + ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH, > + NULL, &NewNode); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > @@ -291,7 +291,7 @@ AcpiNsRootInitialize ( > /* Create additional counting semaphore for global lock */ > > Status = AcpiOsCreateSemaphore ( > - 1, 0, &AcpiGbl_GlobalLockSemaphore); > + 1, 0, &AcpiGbl_GlobalLockSemaphore); > if (ACPI_FAILURE (Status)) > { > AcpiUtRemoveReference (ObjDesc); > @@ -312,7 +312,7 @@ AcpiNsRootInitialize ( > /* Store pointer to value descriptor in the Node */ > > Status = AcpiNsAttachObject (NewNode, ObjDesc, > - ObjDesc->Common.Type); > + ObjDesc->Common.Type); > > /* Remove local reference to the object */ > > @@ -329,7 +329,7 @@ UnlockAndExit: > if (ACPI_SUCCESS (Status)) > { > Status = AcpiNsGetNode (NULL, "\\_GPE", ACPI_NS_NO_UPSEARCH, > - &AcpiGbl_FadtGpeDevice); > + &AcpiGbl_FadtGpeDevice); > } > > return_ACPI_STATUS (Status); > @@ -661,7 +661,7 @@ AcpiNsLookup ( > /* Try to find the single (4 character) ACPI name */ > > Status = AcpiNsSearchAndEnter (SimpleName, WalkState, CurrentNode, > - InterpreterMode, ThisSearchType, LocalFlags, &ThisNode); > + InterpreterMode, ThisSearchType, LocalFlags, &ThisNode); > if (ACPI_FAILURE (Status)) > { > if (Status == AE_NOT_FOUND) > diff --git a/src/acpica/source/components/namespace/nsalloc.c b/src/acpica/source/components/namespace/nsalloc.c > index 293bf26..65d6ba2 100644 > --- a/src/acpica/source/components/namespace/nsalloc.c > +++ b/src/acpica/source/components/namespace/nsalloc.c > @@ -157,7 +157,7 @@ AcpiNsCreateNode ( > > #ifdef ACPI_DBG_TRACK_ALLOCATIONS > Temp = AcpiGbl_NsNodeList->TotalAllocated - > - AcpiGbl_NsNodeList->TotalFreed; > + AcpiGbl_NsNodeList->TotalFreed; > if (Temp > AcpiGbl_NsNodeList->MaxOccupied) > { > AcpiGbl_NsNodeList->MaxOccupied = Temp; > @@ -349,7 +349,8 @@ AcpiNsInstallNode ( > * modified the namespace. This is used for cleanup when the > * method exits. > */ > - WalkState->MethodDesc->Method.InfoFlags |= ACPI_METHOD_MODIFIED_NAMESPACE; > + WalkState->MethodDesc->Method.InfoFlags |= > + ACPI_METHOD_MODIFIED_NAMESPACE; > } > } > > diff --git a/src/acpica/source/components/namespace/nsarguments.c b/src/acpica/source/components/namespace/nsarguments.c > index 08e0716..a5b3490 100644 > --- a/src/acpica/source/components/namespace/nsarguments.c > +++ b/src/acpica/source/components/namespace/nsarguments.c > @@ -209,7 +209,8 @@ AcpiNsCheckAcpiCompliance ( > > /* Get the ACPI-required arg count from the predefined info table */ > > - RequiredParamCount = METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); > + RequiredParamCount = > + METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); > > /* > * If this object is not a control method, we can check if the ACPI > @@ -355,7 +356,8 @@ AcpiNsCheckArgumentCount ( > * Some methods are allowed to have a "minimum" number of args (_SCP) > * because their definition in ACPI has changed over time. > */ > - RequiredParamCount = METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); > + RequiredParamCount = > + METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); > > if (UserParamCount < RequiredParamCount) > { > diff --git a/src/acpica/source/components/namespace/nsconvert.c b/src/acpica/source/components/namespace/nsconvert.c > index b79458e..ee361ea 100644 > --- a/src/acpica/source/components/namespace/nsconvert.c > +++ b/src/acpica/source/components/namespace/nsconvert.c > @@ -156,7 +156,7 @@ AcpiNsConvertToInteger ( > /* String-to-Integer conversion */ > > Status = AcpiUtStrtoul64 (OriginalObject->String.Pointer, > - ACPI_ANY_BASE, &Value); > + ACPI_ANY_BASE, &Value); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -176,7 +176,8 @@ AcpiNsConvertToInteger ( > > for (i = 0; i < OriginalObject->Buffer.Length; i++) > { > - Value |= ((UINT64) OriginalObject->Buffer.Pointer[i] << (i * 8)); > + Value |= ((UINT64) > + OriginalObject->Buffer.Pointer[i] << (i * 8)); > } > break; > > @@ -239,8 +240,8 @@ AcpiNsConvertToString ( > } > else > { > - Status = AcpiExConvertToString (OriginalObject, &NewObject, > - ACPI_IMPLICIT_CONVERT_HEX); > + Status = AcpiExConvertToString (OriginalObject, > + &NewObject, ACPI_IMPLICIT_CONVERT_HEX); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -335,7 +336,8 @@ AcpiNsConvertToBuffer ( > > /* String-to-Buffer conversion. Simple data copy */ > > - NewObject = AcpiUtCreateBufferObject (OriginalObject->String.Length); > + NewObject = AcpiUtCreateBufferObject > + (OriginalObject->String.Length); > if (!NewObject) > { > return (AE_NO_MEMORY); > diff --git a/src/acpica/source/components/namespace/nsdump.c b/src/acpica/source/components/namespace/nsdump.c > index 0d3b57e..6510b4f 100644 > --- a/src/acpica/source/components/namespace/nsdump.c > +++ b/src/acpica/source/components/namespace/nsdump.c > @@ -331,7 +331,8 @@ AcpiNsDumpOneObject ( > > if (Type > ACPI_TYPE_LOCAL_MAX) > { > - ACPI_WARNING ((AE_INFO, "Invalid ACPI Object Type 0x%08X", Type)); > + ACPI_WARNING ((AE_INFO, > + "Invalid ACPI Object Type 0x%08X", Type)); > } > > AcpiOsPrintf ("%4.4s", AcpiUtGetNodeName (ThisNode)); > @@ -340,7 +341,7 @@ AcpiNsDumpOneObject ( > /* Now we can print out the pertinent information */ > > AcpiOsPrintf (" %-12s %p %2.2X ", > - AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId); > + AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId); > > DbgLevel = AcpiDbgLevel; > AcpiDbgLevel = 0; > @@ -427,7 +428,7 @@ AcpiNsDumpOneObject ( > if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID) > { > AcpiOsPrintf ("Len %.2X", > - ObjDesc->Buffer.Length); > + ObjDesc->Buffer.Length); > > /* Dump some of the buffer */ > > @@ -608,9 +609,9 @@ AcpiNsDumpOneObject ( > > /* If there is an attached object, display it */ > > - DbgLevel = AcpiDbgLevel; > + DbgLevel = AcpiDbgLevel; > AcpiDbgLevel = 0; > - ObjDesc = AcpiNsGetAttachedObject (ThisNode); > + ObjDesc = AcpiNsGetAttachedObject (ThisNode); > AcpiDbgLevel = DbgLevel; > > /* Dump attached objects */ > @@ -637,14 +638,18 @@ AcpiNsDumpOneObject ( > > if (ObjType > ACPI_TYPE_LOCAL_MAX) > { > - AcpiOsPrintf ("(Pointer to ACPI Object type %.2X [UNKNOWN])\n", > + AcpiOsPrintf ( > + "(Pointer to ACPI Object type %.2X [UNKNOWN])\n", > ObjType); > + > BytesToDump = 32; > } > else > { > - AcpiOsPrintf ("(Pointer to ACPI Object type %.2X [%s])\n", > + AcpiOsPrintf ( > + "(Pointer to ACPI Object type %.2X [%s])\n", > ObjType, AcpiUtGetTypeName (ObjType)); > + > BytesToDump = sizeof (ACPI_OPERAND_OBJECT); > } > > @@ -674,7 +679,8 @@ AcpiNsDumpOneObject ( > */ > BytesToDump = ObjDesc->String.Length; > ObjDesc = (void *) ObjDesc->String.Pointer; > - AcpiOsPrintf ( "(Buffer/String pointer %p length %X)\n", > + > + AcpiOsPrintf ("(Buffer/String pointer %p length %X)\n", > ObjDesc, BytesToDump); > ACPI_DUMP_BUFFER (ObjDesc, BytesToDump); > goto Cleanup; > @@ -775,8 +781,8 @@ AcpiNsDumpObjects ( > Info.DisplayType = DisplayType; > > (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth, > - ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, > - AcpiNsDumpOneObject, NULL, (void *) &Info, NULL); > + ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, > + AcpiNsDumpOneObject, NULL, (void *) &Info, NULL); > > (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > } > @@ -826,7 +832,7 @@ AcpiNsDumpOneObjectPath ( > return (AE_OK); > } > > - Pathname = AcpiNsGetExternalPathname (Node); > + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); > > PathIndent = 1; > if (Level <= MaxLevel) > @@ -912,14 +918,14 @@ AcpiNsDumpObjectPaths ( > /* Get the max depth of the namespace tree, for formatting later */ > > (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth, > - ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, > - AcpiNsGetMaxDepth, NULL, (void *) &MaxLevel, NULL); > + ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, > + AcpiNsGetMaxDepth, NULL, (void *) &MaxLevel, NULL); > > /* Now dump the entire namespace */ > > (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth, > - ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, > - AcpiNsDumpOneObjectPath, NULL, (void *) &MaxLevel, NULL); > + ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, > + AcpiNsDumpOneObjectPath, NULL, (void *) &MaxLevel, NULL); > > (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > } > @@ -990,7 +996,8 @@ AcpiNsDumpTables ( > * If the name space has not been initialized, > * there is nothing to dump. > */ > - ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "namespace not initialized!\n")); > + ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, > + "namespace not initialized!\n")); > return_VOID; > } > > @@ -1003,7 +1010,7 @@ AcpiNsDumpTables ( > } > > AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, MaxDepth, > - ACPI_OWNER_ID_MAX, SearchHandle); > + ACPI_OWNER_ID_MAX, SearchHandle); > return_VOID; > } > #endif > diff --git a/src/acpica/source/components/namespace/nsdumpdv.c b/src/acpica/source/components/namespace/nsdumpdv.c > index 8e570d1..9afad0b 100644 > --- a/src/acpica/source/components/namespace/nsdumpdv.c > +++ b/src/acpica/source/components/namespace/nsdumpdv.c > @@ -222,8 +222,8 @@ AcpiNsDumpRootDevices ( > "Display of all devices in the namespace:\n")); > > Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle, > - ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, > - AcpiNsDumpOneDevice, NULL, NULL, NULL); > + ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, > + AcpiNsDumpOneDevice, NULL, NULL, NULL); > } > > #endif > diff --git a/src/acpica/source/components/namespace/nseval.c b/src/acpica/source/components/namespace/nseval.c > index 7c8d6fd..9847e93 100644 > --- a/src/acpica/source/components/namespace/nseval.c > +++ b/src/acpica/source/components/namespace/nseval.c > @@ -217,7 +217,7 @@ AcpiNsEvaluate ( > > /* Get the full pathname to the object, for use in warning messages */ > > - Info->FullPathname = AcpiNsGetExternalPathname (Info->Node); > + Info->FullPathname = AcpiNsGetNormalizedPathname (Info->Node, TRUE); > if (!Info->FullPathname) > { > return_ACPI_STATUS (AE_NO_MEMORY); > @@ -514,7 +514,7 @@ AcpiNsExecModuleCode ( > * of the method object descriptor. > */ > ParentNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, > - MethodObj->Method.NextObject); > + MethodObj->Method.NextObject); > Type = AcpiNsGetType (ParentNode); > > /* > @@ -553,7 +553,7 @@ AcpiNsExecModuleCode ( > /* Install the method (module-level code) in the parent node */ > > Status = AcpiNsAttachObject (ParentNode, MethodObj, > - ACPI_TYPE_METHOD); > + ACPI_TYPE_METHOD); > if (ACPI_FAILURE (Status)) > { > goto Exit; > diff --git a/src/acpica/source/components/namespace/nsinit.c b/src/acpica/source/components/namespace/nsinit.c > index 6bedef9..7b4acc1 100644 > --- a/src/acpica/source/components/namespace/nsinit.c > +++ b/src/acpica/source/components/namespace/nsinit.c > @@ -182,8 +182,8 @@ AcpiNsInitializeObjects ( > /* Walk entire namespace from the supplied root */ > > Status = AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL, > - &Info, NULL); > + ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL, > + &Info, NULL); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace")); > @@ -245,7 +245,7 @@ AcpiNsInitializeDevices ( > /* Tree analysis: find all subtrees that contain _INI methods */ > > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, FALSE, AcpiNsFindIniMethods, NULL, &Info, NULL); > + ACPI_UINT32_MAX, FALSE, AcpiNsFindIniMethods, NULL, &Info, NULL); > if (ACPI_FAILURE (Status)) > { > goto ErrorExit; > @@ -279,7 +279,7 @@ AcpiNsInitializeDevices ( > /* Walk namespace to execute all _INIs on present devices */ > > Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, FALSE, AcpiNsInitOneDevice, NULL, &Info, NULL); > + ACPI_UINT32_MAX, FALSE, AcpiNsInitOneDevice, NULL, &Info, NULL); > > /* > * Any _OSI requests should be completed by now. If the BIOS has > @@ -703,7 +703,7 @@ AcpiNsInitOneDevice ( > { > /* Ignore error and move on to next device */ > > - char *ScopeName = AcpiNsGetExternalPathname (Info->Node); > + char *ScopeName = AcpiNsGetNormalizedPathname (DeviceNode, TRUE); > > ACPI_EXCEPTION ((AE_INFO, Status, "during %s._INI execution", > ScopeName)); > diff --git a/src/acpica/source/components/namespace/nsload.c b/src/acpica/source/components/namespace/nsload.c > index 8e1a0c2..cae1616 100644 > --- a/src/acpica/source/components/namespace/nsload.c > +++ b/src/acpica/source/components/namespace/nsload.c > @@ -331,8 +331,8 @@ AcpiNsDeleteSubtree ( > > > ParentHandle = StartHandle; > - ChildHandle = NULL; > - Level = 1; > + ChildHandle = NULL; > + Level = 1; > > /* > * Traverse the tree of objects until we bubble back up > @@ -343,7 +343,7 @@ AcpiNsDeleteSubtree ( > /* Attempt to get the next object in this scope */ > > Status = AcpiGetNextObject (ACPI_TYPE_ANY, ParentHandle, > - ChildHandle, &NextChildHandle); > + ChildHandle, &NextChildHandle); > > ChildHandle = NextChildHandle; > > @@ -354,7 +354,7 @@ AcpiNsDeleteSubtree ( > /* Check if this object has any children */ > > if (ACPI_SUCCESS (AcpiGetNextObject (ACPI_TYPE_ANY, ChildHandle, > - NULL, &Dummy))) > + NULL, &Dummy))) > { > /* > * There is at least one child of this object, > @@ -432,7 +432,6 @@ AcpiNsUnloadNamespace ( > /* This function does the real work */ > > Status = AcpiNsDeleteSubtree (Handle); > - > return_ACPI_STATUS (Status); > } > #endif > diff --git a/src/acpica/source/components/namespace/nsnames.c b/src/acpica/source/components/namespace/nsnames.c > index 3ca04f0..cd11cb4 100644 > --- a/src/acpica/source/components/namespace/nsnames.c > +++ b/src/acpica/source/components/namespace/nsnames.c > @@ -149,7 +149,6 @@ AcpiNsGetExternalPathname ( > > > NameBuffer = AcpiNsGetNormalizedPathname (Node, FALSE); > - > return_PTR (NameBuffer); > } > > @@ -177,7 +176,6 @@ AcpiNsGetPathnameLength ( > > > Size = AcpiNsBuildNormalizedPath (Node, NULL, 0, FALSE); > - > return (Size); > } > > @@ -237,7 +235,7 @@ AcpiNsHandleToPathname ( > /* Build the path in the caller buffer */ > > (void) AcpiNsBuildNormalizedPath (Node, Buffer->Pointer, > - RequiredSize, NoTrailing); > + RequiredSize, NoTrailing); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -318,6 +316,7 @@ AcpiNsBuildNormalizedPath ( > { > ACPI_PATH_PUT8(FullPath, PathSize, AML_DUAL_NAME_PREFIX, Length); > } > + > ACPI_MOVE_32_TO_32 (Name, &NextNode->Name); > DoNoTrailing = NoTrailing; > for (i = 0; i < 4; i++) > @@ -332,8 +331,10 @@ AcpiNsBuildNormalizedPath ( > ACPI_PATH_PUT8(FullPath, PathSize, c, Length); > } > } > + > NextNode = NextNode->Parent; > } > + > ACPI_PATH_PUT8(FullPath, PathSize, AML_ROOT_PREFIX, Length); > > /* Reverse the path string */ > @@ -341,7 +342,8 @@ AcpiNsBuildNormalizedPath ( > if (Length <= PathSize) > { > Left = FullPath; > - Right = FullPath+Length-1; > + Right = FullPath+Length - 1; > + > while (Left < Right) > { > c = *Left; > @@ -353,7 +355,7 @@ AcpiNsBuildNormalizedPath ( > /* Append the trailing null */ > > BuildTrailingNull: > - ACPI_PATH_PUT8(FullPath, PathSize, '\0', Length); > + ACPI_PATH_PUT8 (FullPath, PathSize, '\0', Length); > > #undef ACPI_PATH_PUT8 > > @@ -403,7 +405,8 @@ AcpiNsGetNormalizedPathname ( > NameBuffer = ACPI_ALLOCATE_ZEROED (Size); > if (!NameBuffer) > { > - ACPI_ERROR ((AE_INFO, "Could not allocate %u bytes", (UINT32) Size)); > + ACPI_ERROR ((AE_INFO, > + "Could not allocate %u bytes", (UINT32) Size)); > return_PTR (NULL); > } > > diff --git a/src/acpica/source/components/namespace/nsobject.c b/src/acpica/source/components/namespace/nsobject.c > index 50b1d65..a6f8876 100644 > --- a/src/acpica/source/components/namespace/nsobject.c > +++ b/src/acpica/source/components/namespace/nsobject.c > @@ -217,7 +217,7 @@ AcpiNsAttachObject ( > * Value passed is a name handle and that name has a > * non-null value. Use that name's value and type. > */ > - ObjDesc = ((ACPI_NAMESPACE_NODE *) Object)->Object; > + ObjDesc = ((ACPI_NAMESPACE_NODE *) Object)->Object; > ObjectType = ((ACPI_NAMESPACE_NODE *) Object)->Type; > } > > @@ -267,8 +267,8 @@ AcpiNsAttachObject ( > LastObjDesc->Common.NextObject = Node->Object; > } > > - Node->Type = (UINT8) ObjectType; > - Node->Object = ObjDesc; > + Node->Type = (UINT8) ObjectType; > + Node->Object = ObjDesc; > > return_ACPI_STATUS (AE_OK); > } > diff --git a/src/acpica/source/components/namespace/nsparse.c b/src/acpica/source/components/namespace/nsparse.c > index 26dd9f3..9fcc47f 100644 > --- a/src/acpica/source/components/namespace/nsparse.c > +++ b/src/acpica/source/components/namespace/nsparse.c > @@ -196,7 +196,7 @@ AcpiNsOneCompleteParse ( > } > > Status = AcpiDsInitAmlWalk (WalkState, ParseRoot, NULL, > - AmlStart, AmlLength, NULL, (UINT8) PassNumber); > + AmlStart, AmlLength, NULL, (UINT8) PassNumber); > if (ACPI_FAILURE (Status)) > { > AcpiDsDeleteWalkState (WalkState); > @@ -215,7 +215,8 @@ AcpiNsOneCompleteParse ( > > if (StartNode && StartNode != AcpiGbl_RootNode) > { > - Status = AcpiDsScopeStackPush (StartNode, ACPI_TYPE_METHOD, WalkState); > + Status = AcpiDsScopeStackPush ( > + StartNode, ACPI_TYPE_METHOD, WalkState); > if (ACPI_FAILURE (Status)) > { > AcpiDsDeleteWalkState (WalkState); > @@ -225,7 +226,8 @@ AcpiNsOneCompleteParse ( > > /* Parse the AML */ > > - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %u parse\n", PassNumber)); > + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, > + "*PARSE* pass %u parse\n", PassNumber)); > Status = AcpiPsParseAml (WalkState); > > Cleanup: > @@ -269,8 +271,9 @@ AcpiNsParseTable ( > * performs another complete parse of the AML. > */ > ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n")); > + > Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1, > - TableIndex, StartNode); > + TableIndex, StartNode); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -287,7 +290,7 @@ AcpiNsParseTable ( > */ > ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n")); > Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, > - TableIndex, StartNode); > + TableIndex, StartNode); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/namespace/nsprepkg.c b/src/acpica/source/components/namespace/nsprepkg.c > index 627ee3e..aa7134e 100644 > --- a/src/acpica/source/components/namespace/nsprepkg.c > +++ b/src/acpica/source/components/namespace/nsprepkg.c > @@ -243,8 +243,8 @@ AcpiNsCheckPackage ( > /* Validate all elements of the returned package */ > > Status = AcpiNsCheckPackageElements (Info, Elements, > - Package->RetInfo.ObjectType1, Package->RetInfo.Count1, > - Package->RetInfo.ObjectType2, Package->RetInfo.Count2, 0); > + Package->RetInfo.ObjectType1, Package->RetInfo.Count1, > + Package->RetInfo.ObjectType2, Package->RetInfo.Count2, 0); > break; > > case ACPI_PTYPE1_VAR: > @@ -255,7 +255,7 @@ AcpiNsCheckPackage ( > for (i = 0; i < Count; i++) > { > Status = AcpiNsCheckObjectType (Info, Elements, > - Package->RetInfo.ObjectType1, i); > + Package->RetInfo.ObjectType1, i); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -287,7 +287,7 @@ AcpiNsCheckPackage ( > /* These are the required package elements (0, 1, or 2) */ > > Status = AcpiNsCheckObjectType (Info, Elements, > - Package->RetInfo3.ObjectType[i], i); > + Package->RetInfo3.ObjectType[i], i); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -298,7 +298,7 @@ AcpiNsCheckPackage ( > /* These are the optional package elements */ > > Status = AcpiNsCheckObjectType (Info, Elements, > - Package->RetInfo3.TailObjectType, i); > + Package->RetInfo3.TailObjectType, i); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -312,8 +312,8 @@ AcpiNsCheckPackage ( > > /* First element is the (Integer) revision */ > > - Status = AcpiNsCheckObjectType (Info, Elements, > - ACPI_RTYPE_INTEGER, 0); > + Status = AcpiNsCheckObjectType ( > + Info, Elements, ACPI_RTYPE_INTEGER, 0); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -331,8 +331,8 @@ AcpiNsCheckPackage ( > > /* First element is the (Integer) count of subpackages to follow */ > > - Status = AcpiNsCheckObjectType (Info, Elements, > - ACPI_RTYPE_INTEGER, 0); > + Status = AcpiNsCheckObjectType ( > + Info, Elements, ACPI_RTYPE_INTEGER, 0); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -375,7 +375,8 @@ AcpiNsCheckPackage ( > { > /* Create the new outer package and populate it */ > > - Status = AcpiNsWrapWithPackage (Info, ReturnObject, ReturnObjectPtr); > + Status = AcpiNsWrapWithPackage ( > + Info, ReturnObject, ReturnObjectPtr); > if (ACPI_FAILURE (Status)) > { > return (Status); > diff --git a/src/acpica/source/components/namespace/nsrepair.c b/src/acpica/source/components/namespace/nsrepair.c > index fbb9c7e..98265bc 100644 > --- a/src/acpica/source/components/namespace/nsrepair.c > +++ b/src/acpica/source/components/namespace/nsrepair.c > @@ -294,7 +294,7 @@ AcpiNsSimpleRepair ( > ACPI_WARN_ALWAYS, "Found unexpected NULL package element")); > > Status = AcpiNsRepairNullElement (Info, ExpectedBtypes, > - PackageIndex, ReturnObjectPtr); > + PackageIndex, ReturnObjectPtr); > if (ACPI_SUCCESS (Status)) > { > return (AE_OK); /* Repair was successful */ > @@ -452,6 +452,7 @@ AcpiNsMatchSimpleRepair ( > > return (NULL); > } > + > ThisName++; > } > > @@ -536,11 +537,13 @@ AcpiNsRepairNullElement ( > > /* Set the reference count according to the parent Package object */ > > - NewObject->Common.ReferenceCount = Info->ParentPackage->Common.ReferenceCount; > + NewObject->Common.ReferenceCount = > + Info->ParentPackage->Common.ReferenceCount; > > ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR, > "%s: Converted NULL package element to expected %s at index %u\n", > - Info->FullPathname, AcpiUtGetObjectTypeName (NewObject), PackageIndex)); > + Info->FullPathname, AcpiUtGetObjectTypeName (NewObject), > + PackageIndex)); > > *ReturnObjectPtr = NewObject; > Info->ReturnFlags |= ACPI_OBJECT_REPAIRED; > @@ -623,6 +626,7 @@ AcpiNsRemoveNullElements ( > *Dest = *Source; > Dest++; > } > + > Source++; > } > > @@ -679,8 +683,8 @@ AcpiNsWrapWithPackage ( > > > /* > - * Create the new outer package and populate it. The new package will > - * have a single element, the lone sub-object. > + * Create the new outer package and populate it. The new > + * package will have a single element, the lone sub-object. > */ > PkgObjDesc = AcpiUtCreatePackageObject (1); > if (!PkgObjDesc) > diff --git a/src/acpica/source/components/namespace/nsrepair2.c b/src/acpica/source/components/namespace/nsrepair2.c > index a252d41..dda6c98 100644 > --- a/src/acpica/source/components/namespace/nsrepair2.c > +++ b/src/acpica/source/components/namespace/nsrepair2.c > @@ -326,6 +326,7 @@ AcpiNsMatchComplexRepair ( > { > return (ThisName); > } > + > ThisName++; > } > > @@ -358,7 +359,7 @@ AcpiNsRepair_ALR ( > > > Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 2, 1, > - ACPI_SORT_ASCENDING, "AmbientIlluminance"); > + ACPI_SORT_ASCENDING, "AmbientIlluminance"); > > return (Status); > } > @@ -411,7 +412,8 @@ AcpiNsRepair_FDE ( > > if (ReturnObject->Buffer.Length != ACPI_FDE_BYTE_BUFFER_SIZE) > { > - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, > + ACPI_WARN_PREDEFINED ((AE_INFO, > + Info->FullPathname, Info->NodeFlags, > "Incorrect return buffer length %u, expected %u", > ReturnObject->Buffer.Length, ACPI_FDE_DWORD_BUFFER_SIZE)); > > @@ -420,7 +422,8 @@ AcpiNsRepair_FDE ( > > /* Create the new (larger) buffer object */ > > - BufferObject = AcpiUtCreateBufferObject (ACPI_FDE_DWORD_BUFFER_SIZE); > + BufferObject = AcpiUtCreateBufferObject ( > + ACPI_FDE_DWORD_BUFFER_SIZE); > if (!BufferObject) > { > return (AE_NO_MEMORY); > @@ -429,7 +432,8 @@ AcpiNsRepair_FDE ( > /* Expand each byte to a DWORD */ > > ByteBuffer = ReturnObject->Buffer.Pointer; > - DwordBuffer = ACPI_CAST_PTR (UINT32, BufferObject->Buffer.Pointer); > + DwordBuffer = ACPI_CAST_PTR (UINT32, > + BufferObject->Buffer.Pointer); > > for (i = 0; i < ACPI_FDE_FIELD_COUNT; i++) > { > @@ -582,7 +586,8 @@ AcpiNsRepair_CST ( > > if ((*OuterElements)->Package.Count == 0) > { > - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, > + ACPI_WARN_PREDEFINED ((AE_INFO, > + Info->FullPathname, Info->NodeFlags, > "SubPackage[%u] - removing entry due to zero count", i)); > Removing = TRUE; > goto RemoveElement; > @@ -591,7 +596,8 @@ AcpiNsRepair_CST ( > ObjDesc = (*OuterElements)->Package.Elements[1]; /* Index1 = Type */ > if ((UINT32) ObjDesc->Integer.Value == 0) > { > - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, > + ACPI_WARN_PREDEFINED ((AE_INFO, > + Info->FullPathname, Info->NodeFlags, > "SubPackage[%u] - removing entry due to invalid Type(0)", i)); > Removing = TRUE; > } > @@ -618,7 +624,7 @@ RemoveElement: > * C-state type, in ascending order. > */ > Status = AcpiNsCheckSortedList (Info, ReturnObject, 1, 4, 1, > - ACPI_SORT_ASCENDING, "C-State Type"); > + ACPI_SORT_ASCENDING, "C-State Type"); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -666,7 +672,8 @@ AcpiNsRepair_HID ( > > if (ReturnObject->String.Length == 0) > { > - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, > + ACPI_WARN_PREDEFINED ((AE_INFO, > + Info->FullPathname, Info->NodeFlags, > "Invalid zero-length _HID or _CID string")); > > /* Return AE_OK anyway, let driver handle it */ > @@ -828,8 +835,8 @@ AcpiNsRepair_PSS ( > * incorrectly sorted, sort it. We sort by CpuFrequency, since this > * should be proportional to the power. > */ > - Status =AcpiNsCheckSortedList (Info, ReturnObject, 0, 6, 0, > - ACPI_SORT_DESCENDING, "CpuFrequency"); > + Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 6, 0, > + ACPI_SORT_DESCENDING, "CpuFrequency"); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -850,7 +857,8 @@ AcpiNsRepair_PSS ( > > if ((UINT32) ObjDesc->Integer.Value > PreviousValue) > { > - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, > + ACPI_WARN_PREDEFINED ((AE_INFO, > + Info->FullPathname, Info->NodeFlags, > "SubPackage[%u,%u] - suspicious power dissipation values", > i-1, i)); > } > @@ -904,7 +912,7 @@ AcpiNsRepair_TSS ( > } > > Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 5, 1, > - ACPI_SORT_DESCENDING, "PowerDissipation"); > + ACPI_SORT_DESCENDING, "PowerDissipation"); > > return (Status); > } > @@ -1136,6 +1144,7 @@ AcpiNsRemoveElement ( > *Dest = *Source; > Dest++; > } > + > Source++; > } > > diff --git a/src/acpica/source/components/namespace/nssearch.c b/src/acpica/source/components/namespace/nssearch.c > index 060b10c..94de93e 100644 > --- a/src/acpica/source/components/namespace/nssearch.c > +++ b/src/acpica/source/components/namespace/nssearch.c > @@ -184,7 +184,7 @@ AcpiNsSearchOneScope ( > { > char *ScopeName; > > - ScopeName = AcpiNsGetExternalPathname (ParentNode); > + ScopeName = AcpiNsGetNormalizedPathname (ParentNode, TRUE); > if (ScopeName) > { > ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, > @@ -320,7 +320,7 @@ AcpiNsSearchParentTree ( > * the actual name we are searching for. Typechecking comes later. > */ > Status = AcpiNsSearchOneScope ( > - TargetName, ParentNode, ACPI_TYPE_ANY, ReturnNode); > + TargetName, ParentNode, ACPI_TYPE_ANY, ReturnNode); > if (ACPI_SUCCESS (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/namespace/nsutils.c b/src/acpica/source/components/namespace/nsutils.c > index acee749..fd207e5 100644 > --- a/src/acpica/source/components/namespace/nsutils.c > +++ b/src/acpica/source/components/namespace/nsutils.c > @@ -268,9 +268,10 @@ AcpiNsGetInternalNameLength ( > Info->FullyQualified = FALSE; > > /* > - * For the internal name, the required length is 4 bytes per segment, plus > - * 1 each for RootPrefix, MultiNamePrefixOp, segment count, trailing null > - * (which is not really needed, but no there's harm in putting it there) > + * For the internal name, the required length is 4 bytes per segment, > + * plus 1 each for RootPrefix, MultiNamePrefixOp, segment count, > + * trailing null (which is not really needed, but no there's harm in > + * putting it there) > * > * strlen() + 1 covers the first NameSeg, which has no path separator > */ > @@ -315,7 +316,7 @@ AcpiNsGetInternalNameLength ( > } > > Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) + > - 4 + Info->NumCarats; > + 4 + Info->NumCarats; > > Info->NextExternalChar = NextExternalChar; > } > @@ -646,7 +647,7 @@ AcpiNsExternalizeName ( > * punctuation ('.') between object names, plus the NULL terminator. > */ > RequiredLength = PrefixLength + (4 * NumSegments) + > - ((NumSegments > 0) ? (NumSegments - 1) : 0) + 1; > + ((NumSegments > 0) ? (NumSegments - 1) : 0) + 1; > > /* > * Check to see if we're still in bounds. If not, there's a problem > @@ -684,7 +685,8 @@ AcpiNsExternalizeName ( > > /* Copy and validate the 4-char name segment */ > > - ACPI_MOVE_NAME (&(*ConvertedName)[j], &InternalName[NamesIndex]); > + ACPI_MOVE_NAME (&(*ConvertedName)[j], > + &InternalName[NamesIndex]); > AcpiUtRepairName (&(*ConvertedName)[j]); > > j += ACPI_NAME_SIZE; > @@ -885,6 +887,7 @@ AcpiNsGetNode ( > { > *ReturnNode = AcpiGbl_RootNode; > } > + > return_ACPI_STATUS (AE_OK); > } > > @@ -919,12 +922,12 @@ AcpiNsGetNode ( > /* Lookup the name in the namespace */ > > Status = AcpiNsLookup (&ScopeInfo, InternalPath, ACPI_TYPE_ANY, > - ACPI_IMODE_EXECUTE, (Flags | ACPI_NS_DONT_OPEN_SCOPE), > - NULL, ReturnNode); > + ACPI_IMODE_EXECUTE, (Flags | ACPI_NS_DONT_OPEN_SCOPE), > + NULL, ReturnNode); > if (ACPI_FAILURE (Status)) > { > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s, %s\n", > - Pathname, AcpiFormatException (Status))); > + Pathname, AcpiFormatException (Status))); > } > > (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > diff --git a/src/acpica/source/components/namespace/nswalk.c b/src/acpica/source/components/namespace/nswalk.c > index aa23760..f02fbf4 100644 > --- a/src/acpica/source/components/namespace/nswalk.c > +++ b/src/acpica/source/components/namespace/nswalk.c > @@ -290,10 +290,10 @@ AcpiNsWalkNamespace ( > > /* Null child means "get first node" */ > > - ParentNode = StartNode; > - ChildNode = AcpiNsGetNextNode (ParentNode, NULL); > - ChildType = ACPI_TYPE_ANY; > - Level = 1; > + ParentNode = StartNode; > + ChildNode = AcpiNsGetNextNode (ParentNode, NULL); > + ChildType = ACPI_TYPE_ANY; > + Level = 1; > > /* > * Traverse the tree of nodes until we bubble back up to where we > @@ -351,7 +351,7 @@ AcpiNsWalkNamespace ( > if (DescendingCallback) > { > Status = DescendingCallback (ChildNode, Level, > - Context, ReturnValue); > + Context, ReturnValue); > } > } > else > @@ -359,7 +359,7 @@ AcpiNsWalkNamespace ( > if (AscendingCallback) > { > Status = AscendingCallback (ChildNode, Level, > - Context, ReturnValue); > + Context, ReturnValue); > } > } > > diff --git a/src/acpica/source/components/namespace/nsxfeval.c b/src/acpica/source/components/namespace/nsxfeval.c > index 06328a6..8a4aaa8 100644 > --- a/src/acpica/source/components/namespace/nsxfeval.c > +++ b/src/acpica/source/components/namespace/nsxfeval.c > @@ -504,13 +504,13 @@ AcpiEvaluateObject ( > /* Get the size of the returned object */ > > Status = AcpiUtGetObjectSize (Info->ReturnObject, > - &BufferSpaceNeeded); > + &BufferSpaceNeeded); > if (ACPI_SUCCESS (Status)) > { > /* Validate/Allocate/Clear caller buffer */ > > Status = AcpiUtInitializeBuffer (ReturnBuffer, > - BufferSpaceNeeded); > + BufferSpaceNeeded); > if (ACPI_FAILURE (Status)) > { > /* > @@ -526,8 +526,8 @@ AcpiEvaluateObject ( > { > /* We have enough space for the object, build it */ > > - Status = AcpiUtCopyIobjectToEobject (Info->ReturnObject, > - ReturnBuffer); > + Status = AcpiUtCopyIobjectToEobject ( > + Info->ReturnObject, ReturnBuffer); > } > } > } > @@ -740,8 +740,8 @@ AcpiWalkNamespace ( > } > > Status = AcpiNsWalkNamespace (Type, StartObject, MaxDepth, > - ACPI_NS_WALK_UNLOCK, DescendingCallback, > - AscendingCallback, Context, ReturnValue); > + ACPI_NS_WALK_UNLOCK, DescendingCallback, > + AscendingCallback, Context, ReturnValue); > > UnlockAndExit2: > (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > @@ -892,8 +892,8 @@ AcpiNsGetDeviceCallback ( > > /* We have a valid device, invoke the user function */ > > - Status = Info->UserFunction (ObjHandle, NestingLevel, Info->Context, > - ReturnValue); > + Status = Info->UserFunction (ObjHandle, NestingLevel, > + Info->Context, ReturnValue); > return (Status); > } > > @@ -948,8 +948,8 @@ AcpiGetDevices ( > * We're going to call their callback from OUR callback, so we need > * to know what it is, and their context parameter. > */ > - Info.Hid = HID; > - Info.Context = Context; > + Info.Hid = HID; > + Info.Context = Context; > Info.UserFunction = UserFunction; > > /* > @@ -965,8 +965,8 @@ AcpiGetDevices ( > } > > Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, > - ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK, > - AcpiNsGetDeviceCallback, NULL, &Info, ReturnValue); > + ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK, > + AcpiNsGetDeviceCallback, NULL, &Info, ReturnValue); > > (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/namespace/nsxfname.c b/src/acpica/source/components/namespace/nsxfname.c > index 51cc4f4..82d1c21 100644 > --- a/src/acpica/source/components/namespace/nsxfname.c > +++ b/src/acpica/source/components/namespace/nsxfname.c > @@ -249,7 +249,7 @@ AcpiGetName ( > { > ACPI_STATUS Status; > ACPI_NAMESPACE_NODE *Node; > - char *NodeName; > + const char *NodeName; > > > /* Parameter validation */ > @@ -271,7 +271,7 @@ AcpiGetName ( > /* Get the full pathname (From the namespace root) */ > > Status = AcpiNsHandleToPathname (Handle, Buffer, > - NameType == ACPI_FULL_PATHNAME ? FALSE : TRUE); > + NameType == ACPI_FULL_PATHNAME ? FALSE : TRUE); > return (Status); > } > > @@ -337,7 +337,6 @@ AcpiNsCopyDeviceId ( > ACPI_PNP_DEVICE_ID *Source, > char *StringArea) > { > - > /* Create the destination PNP_DEVICE_ID */ > > Dest->String = StringArea; > @@ -363,11 +362,18 @@ AcpiNsCopyDeviceId ( > * namespace node and possibly by running several standard > * control methods (Such as in the case of a device.) > * > - * For Device and Processor objects, run the Device _HID, _UID, _CID, _SUB, > - * _CLS, _STA, _ADR, _SxW, and _SxD methods. > + * For Device and Processor objects, run the Device _HID, _UID, _CID, _STA, > + * _CLS, _ADR, _SxW, and _SxD methods. > * > * Note: Allocates the return buffer, must be freed by the caller. > * > + * Note: This interface is intended to be used during the initial device > + * discovery namespace traversal. Therefore, no complex methods can be > + * executed, especially those that access operation regions. Therefore, do > + * not add any additional methods that could cause problems in this area. > + * this was the fate of the _SUB method which was found to cause such > + * problems and was removed (11/2015). > + * > ******************************************************************************/ > > ACPI_STATUS > @@ -380,7 +386,6 @@ AcpiGetObjectInfo ( > ACPI_PNP_DEVICE_ID_LIST *CidList = NULL; > ACPI_PNP_DEVICE_ID *Hid = NULL; > ACPI_PNP_DEVICE_ID *Uid = NULL; > - ACPI_PNP_DEVICE_ID *Sub = NULL; > ACPI_PNP_DEVICE_ID *Cls = NULL; > char *NextIdString; > ACPI_OBJECT_TYPE Type; > @@ -434,7 +439,7 @@ AcpiGetObjectInfo ( > { > /* > * Get extra info for ACPI Device/Processor objects only: > - * Run the Device _HID, _UID, _SUB, _CID, and _CLS methods. > + * Run the Device _HID, _UID, _CLS, and _CID methods. > * > * Note: none of these methods are required, so they may or may > * not be present for this device. The Info->Valid bitfield is used > @@ -459,15 +464,6 @@ AcpiGetObjectInfo ( > Valid |= ACPI_VALID_UID; > } > > - /* Execute the Device._SUB method */ > - > - Status = AcpiUtExecute_SUB (Node, &Sub); > - if (ACPI_SUCCESS (Status)) > - { > - InfoSize += Sub->Length; > - Valid |= ACPI_VALID_SUB; > - } > - > /* Execute the Device._CID method */ > > Status = AcpiUtExecute_CID (Node, &CidList); > @@ -530,7 +526,7 @@ AcpiGetObjectInfo ( > /* Execute the Device._ADR method */ > > Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node, > - &Info->Address); > + &Info->Address); > if (ACPI_SUCCESS (Status)) > { > Valid |= ACPI_VALID_ADR; > @@ -539,8 +535,8 @@ AcpiGetObjectInfo ( > /* Execute the Device._SxW methods */ > > Status = AcpiUtExecutePowerMethods (Node, > - AcpiGbl_LowestDstateNames, ACPI_NUM_SxW_METHODS, > - Info->LowestDstates); > + AcpiGbl_LowestDstateNames, ACPI_NUM_SxW_METHODS, > + Info->LowestDstates); > if (ACPI_SUCCESS (Status)) > { > Valid |= ACPI_VALID_SXWS; > @@ -549,8 +545,8 @@ AcpiGetObjectInfo ( > /* Execute the Device._SxD methods */ > > Status = AcpiUtExecutePowerMethods (Node, > - AcpiGbl_HighestDstateNames, ACPI_NUM_SxD_METHODS, > - Info->HighestDstates); > + AcpiGbl_HighestDstateNames, ACPI_NUM_SxD_METHODS, > + Info->HighestDstates); > if (ACPI_SUCCESS (Status)) > { > Valid |= ACPI_VALID_SXDS; > @@ -570,9 +566,8 @@ AcpiGetObjectInfo ( > } > > /* > - * Copy the HID, UID, SUB, and CIDs to the return buffer. > - * The variable-length strings are copied to the reserved area > - * at the end of the buffer. > + * Copy the HID, UID, and CIDs to the return buffer. The variable-length > + * strings are copied to the reserved area at the end of the buffer. > * > * For HID and CID, check if the ID is a PCI Root Bridge. > */ > @@ -593,12 +588,6 @@ AcpiGetObjectInfo ( > Uid, NextIdString); > } > > - if (Sub) > - { > - NextIdString = AcpiNsCopyDeviceId (&Info->SubsystemId, > - Sub, NextIdString); > - } > - > if (CidList) > { > Info->CompatibleIdList.Count = CidList->Count; > @@ -645,10 +634,6 @@ Cleanup: > { > ACPI_FREE (Uid); > } > - if (Sub) > - { > - ACPI_FREE (Sub); > - } > if (CidList) > { > ACPI_FREE (CidList); > @@ -724,6 +709,7 @@ AcpiInstallMethod ( > ParserState.Aml += AcpiPsGetOpcodeSize (Opcode); > ParserState.PkgEnd = AcpiPsGetNextPackageEnd (&ParserState); > Path = AcpiPsGetNextNamestring (&ParserState); > + > MethodFlags = *ParserState.Aml++; > AmlStart = ParserState.Aml; > AmlLength = ACPI_PTR_DIFF (ParserState.PkgEnd, AmlStart); > @@ -756,7 +742,7 @@ AcpiInstallMethod ( > /* The lookup either returns an existing node or creates a new one */ > > Status = AcpiNsLookup (NULL, Path, ACPI_TYPE_METHOD, ACPI_IMODE_LOAD_PASS1, > - ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_ERROR_IF_FOUND, NULL, &Node); > + ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_ERROR_IF_FOUND, NULL, &Node); > > (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > > diff --git a/src/acpica/source/components/namespace/nsxfobj.c b/src/acpica/source/components/namespace/nsxfobj.c > index 2ca409f..d2c19d6 100644 > --- a/src/acpica/source/components/namespace/nsxfobj.c > +++ b/src/acpica/source/components/namespace/nsxfobj.c > @@ -153,10 +153,8 @@ AcpiGetType ( > return (AE_BAD_PARAMETER); > } > > - /* > - * Special case for the predefined Root Node > - * (return type ANY) > - */ > + /* Special case for the predefined Root Node (return type ANY) */ > + > if (Handle == ACPI_ROOT_OBJECT) > { > *RetType = ACPI_TYPE_ANY; > @@ -180,7 +178,6 @@ AcpiGetType ( > > *RetType = Node->Type; > > - > Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); > return (Status); > } > diff --git a/src/acpica/source/components/parser/psargs.c b/src/acpica/source/components/parser/psargs.c > index cbb24a9..4ee5f0a 100644 > --- a/src/acpica/source/components/parser/psargs.c > +++ b/src/acpica/source/components/parser/psargs.c > @@ -359,8 +359,8 @@ AcpiPsGetNextNamepath ( > * the upsearch) > */ > Status = AcpiNsLookup (WalkState->ScopeInfo, Path, > - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); > + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, > + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); > > /* > * If this name is a control method invocation, we must > @@ -431,7 +431,7 @@ AcpiPsGetNextNamepath ( > /* 1) NotFound is ok during load pass 1/2 (allow forward references) */ > > if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) != > - ACPI_PARSE_EXECUTE) > + ACPI_PARSE_EXECUTE) > { > Status = AE_OK; > } > @@ -463,7 +463,7 @@ AcpiPsGetNextNamepath ( > ACPI_ERROR_NAMESPACE (Path, Status); > > if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == > - ACPI_PARSE_EXECUTE) > + ACPI_PARSE_EXECUTE) > { > /* Report a control method execution error */ > > @@ -859,6 +859,7 @@ AcpiPsGetNextArg ( > { > return_ACPI_STATUS (AE_NO_MEMORY); > } > + > AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg); > break; > > @@ -907,7 +908,7 @@ AcpiPsGetNextArg ( > /* Non-empty list */ > > Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP, > - ParserState->Aml); > + ParserState->Aml); > if (!Arg) > { > return_ACPI_STATUS (AE_NO_MEMORY); > diff --git a/src/acpica/source/components/parser/psloop.c b/src/acpica/source/components/parser/psloop.c > index bd7166f..2fa4e72 100644 > --- a/src/acpica/source/components/parser/psloop.c > +++ b/src/acpica/source/components/parser/psloop.c > @@ -192,7 +192,8 @@ AcpiPsGetArguments ( > > case AML_INT_NAMEPATH_OP: /* AML_NAMESTRING_ARG */ > > - Status = AcpiPsGetNextNamepath (WalkState, &(WalkState->ParserState), Op, 1); > + Status = AcpiPsGetNextNamepath ( > + WalkState, &(WalkState->ParserState), Op, 1); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -205,12 +206,13 @@ AcpiPsGetArguments ( > /* > * Op is not a constant or string, append each argument to the Op > */ > - while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && !WalkState->ArgCount) > + while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && > + !WalkState->ArgCount) > { > WalkState->Aml = WalkState->ParserState.Aml; > > Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState), > - GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); > + GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -622,7 +624,7 @@ AcpiPsParseLoop ( > * prepare for argument > */ > Status = AcpiPsPushScope (ParserState, Op, > - WalkState->ArgTypes, WalkState->ArgCount); > + WalkState->ArgTypes, WalkState->ArgCount); > if (ACPI_FAILURE (Status)) > { > Status = AcpiPsCompleteOp (WalkState, &Op, Status); > diff --git a/src/acpica/source/components/parser/psobject.c b/src/acpica/source/components/parser/psobject.c > index 77e9434..0037871 100644 > --- a/src/acpica/source/components/parser/psobject.c > +++ b/src/acpica/source/components/parser/psobject.c > @@ -181,7 +181,7 @@ AcpiPsGetAmlOpcode ( > if (WalkState->PassNumber == 2) > { > AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->Aml, > - WalkState->ParserState.AmlStart); > + WalkState->ParserState.AmlStart); > > ACPI_ERROR ((AE_INFO, > "Unknown opcode 0x%.2X at table offset 0x%.4X, ignoring", > @@ -223,7 +223,8 @@ AcpiPsGetAmlOpcode ( > > /* Found opcode info, this is a normal opcode */ > > - WalkState->ParserState.Aml += AcpiPsGetOpcodeSize (WalkState->Opcode); > + WalkState->ParserState.Aml += > + AcpiPsGetOpcodeSize (WalkState->Opcode); > WalkState->ArgTypes = WalkState->OpInfo->ParseArgs; > break; > } > @@ -273,7 +274,7 @@ AcpiPsBuildNamedOp ( > (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) != ARGP_NAME)) > { > Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState), > - GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); > + GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/parser/psparse.c b/src/acpica/source/components/parser/psparse.c > index 599a766..a1d6612 100644 > --- a/src/acpica/source/components/parser/psparse.c > +++ b/src/acpica/source/components/parser/psparse.c > @@ -272,8 +272,8 @@ AcpiPsCompleteThisOp ( > * These opcodes contain TermArg operands. The current > * op must be replaced by a placeholder return op > */ > - ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP, > - Op->Common.Aml); > + ReplacementOp = AcpiPsAllocOp ( > + AML_INT_RETURN_VALUE_OP, Op->Common.Aml); > if (!ReplacementOp) > { > Status = AE_NO_MEMORY; > @@ -292,8 +292,8 @@ AcpiPsCompleteThisOp ( > (Op->Common.Parent->Common.AmlOpcode == AML_BANK_FIELD_OP) || > (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)) > { > - ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP, > - Op->Common.Aml); > + ReplacementOp = AcpiPsAllocOp ( > + AML_INT_RETURN_VALUE_OP, Op->Common.Aml); > if (!ReplacementOp) > { > Status = AE_NO_MEMORY; > @@ -307,7 +307,7 @@ AcpiPsCompleteThisOp ( > (Op->Common.AmlOpcode == AML_VAR_PACKAGE_OP)) > { > ReplacementOp = AcpiPsAllocOp (Op->Common.AmlOpcode, > - Op->Common.Aml); > + Op->Common.Aml); > if (!ReplacementOp) > { > Status = AE_NO_MEMORY; > @@ -323,8 +323,8 @@ AcpiPsCompleteThisOp ( > > default: > > - ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP, > - Op->Common.Aml); > + ReplacementOp = AcpiPsAllocOp ( > + AML_INT_RETURN_VALUE_OP, Op->Common.Aml); > if (!ReplacementOp) > { > Status = AE_NO_MEMORY; > @@ -339,11 +339,11 @@ AcpiPsCompleteThisOp ( > > if (ReplacementOp) > { > - ReplacementOp->Common.Parent = Op->Common.Parent; > - ReplacementOp->Common.Value.Arg = NULL; > - ReplacementOp->Common.Node = Op->Common.Node; > + ReplacementOp->Common.Parent = Op->Common.Parent; > + ReplacementOp->Common.Value.Arg = NULL; > + ReplacementOp->Common.Node = Op->Common.Node; > Op->Common.Parent->Common.Value.Arg = ReplacementOp; > - ReplacementOp->Common.Next = Op->Common.Next; > + ReplacementOp->Common.Next = Op->Common.Next; > } > else > { > @@ -362,11 +362,11 @@ AcpiPsCompleteThisOp ( > { > if (ReplacementOp) > { > - ReplacementOp->Common.Parent = Op->Common.Parent; > + ReplacementOp->Common.Parent = Op->Common.Parent; > ReplacementOp->Common.Value.Arg = NULL; > - ReplacementOp->Common.Node = Op->Common.Node; > - Prev->Common.Next = ReplacementOp; > - ReplacementOp->Common.Next = Op->Common.Next; > + ReplacementOp->Common.Node = Op->Common.Node; > + Prev->Common.Next = ReplacementOp; > + ReplacementOp->Common.Next = Op->Common.Next; > Next = NULL; > } > else > @@ -566,7 +566,8 @@ AcpiPsParseAml ( > */ > if (WalkState->MethodDesc) > { > - WalkState->Thread->CurrentSyncLevel = WalkState->MethodDesc->Method.SyncLevel; > + WalkState->Thread->CurrentSyncLevel = > + WalkState->MethodDesc->Method.SyncLevel; > } > > AcpiDsPushWalkState (WalkState, Thread); > @@ -612,8 +613,8 @@ AcpiPsParseAml ( > } > > /* > - * If the transfer to the new method method call worked, a new walk > - * state was created -- get it > + * If the transfer to the new method method call worked > + *, a new walk state was created -- get it > */ > WalkState = AcpiDsGetCurrentWalkState (Thread); > continue; > @@ -632,7 +633,8 @@ AcpiPsParseAml ( > /* Check for possible multi-thread reentrancy problem */ > > if ((Status == AE_ALREADY_EXISTS) && > - (!(WalkState->MethodDesc->Method.InfoFlags & ACPI_METHOD_SERIALIZED))) > + (!(WalkState->MethodDesc->Method.InfoFlags & > + ACPI_METHOD_SERIALIZED))) > { > /* > * Method is not serialized and tried to create an object > @@ -658,7 +660,8 @@ AcpiPsParseAml ( > * encountered an error during the method parse phase, there's lots of > * cleanup to do > */ > - if (((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) || > + if (((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == > + ACPI_PARSE_EXECUTE) || > (ACPI_FAILURE (Status))) > { > AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState); > @@ -705,7 +708,7 @@ AcpiPsParseAml ( > /* Restart the calling control method */ > > Status = AcpiDsRestartControlMethod (WalkState, > - PreviousWalkState->ImplicitReturnObj); > + PreviousWalkState->ImplicitReturnObj); > } > else > { > @@ -716,7 +719,7 @@ AcpiPsParseAml ( > AcpiDsClearImplicitReturn (PreviousWalkState); > > Status = AcpiDsRestartControlMethod (WalkState, > - PreviousWalkState->ReturnDesc); > + PreviousWalkState->ReturnDesc); > } > if (ACPI_SUCCESS (Status)) > { > diff --git a/src/acpica/source/components/parser/psscope.c b/src/acpica/source/components/parser/psscope.c > index f44ea48..60e03b4 100644 > --- a/src/acpica/source/components/parser/psscope.c > +++ b/src/acpica/source/components/parser/psscope.c > @@ -308,9 +308,9 @@ AcpiPsPopScope ( > > /* Return to parsing previous op */ > > - *Op = Scope->ParseScope.Op; > - *ArgList = Scope->ParseScope.ArgList; > - *ArgCount = Scope->ParseScope.ArgCount; > + *Op = Scope->ParseScope.Op; > + *ArgList = Scope->ParseScope.ArgList; > + *ArgCount = Scope->ParseScope.ArgCount; > ParserState->PkgEnd = Scope->ParseScope.PkgEnd; > > /* All done with this scope state structure */ > @@ -321,8 +321,8 @@ AcpiPsPopScope ( > { > /* Empty parse stack, prepare to fetch next opcode */ > > - *Op = NULL; > - *ArgList = 0; > + *Op = NULL; > + *ArgList = 0; > *ArgCount = 0; > } > > diff --git a/src/acpica/source/components/parser/psutils.c b/src/acpica/source/components/parser/psutils.c > index 3aa4954..168f098 100644 > --- a/src/acpica/source/components/parser/psutils.c > +++ b/src/acpica/source/components/parser/psutils.c > @@ -177,8 +177,8 @@ AcpiPsInitOp ( > Op->Common.AmlOpcode = Opcode; > > ACPI_DISASM_ONLY_MEMBERS (strncpy (Op->Common.AmlOpName, > - (AcpiPsGetOpcodeInfo (Opcode))->Name, > - sizeof (Op->Common.AmlOpName))); > + (AcpiPsGetOpcodeInfo (Opcode))->Name, > + sizeof (Op->Common.AmlOpName))); > } > > > @@ -277,7 +277,8 @@ AcpiPsFreeOp ( > > if (Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", Op)); > + ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, > + "Free retval op: %p\n", Op)); > } > > if (Op->Common.Flags & ACPI_PARSEOP_GENERIC) > diff --git a/src/acpica/source/components/parser/pswalk.c b/src/acpica/source/components/parser/pswalk.c > index a447970..fa837ee 100644 > --- a/src/acpica/source/components/parser/pswalk.c > +++ b/src/acpica/source/components/parser/pswalk.c > @@ -178,6 +178,7 @@ AcpiPsDeleteParseTree ( > { > return_VOID; > } > + > if (Next) > { > Op = Next; > diff --git a/src/acpica/source/components/parser/psxface.c b/src/acpica/source/components/parser/psxface.c > index eb5c018..b03f776 100644 > --- a/src/acpica/source/components/parser/psxface.c > +++ b/src/acpica/source/components/parser/psxface.c > @@ -255,7 +255,7 @@ AcpiPsExecuteMethod ( > > Info->PassNumber = ACPI_IMODE_EXECUTE; > WalkState = AcpiDsCreateWalkState ( > - Info->ObjDesc->Method.OwnerId, NULL, NULL, NULL); > + Info->ObjDesc->Method.OwnerId, NULL, NULL, NULL); > if (!WalkState) > { > Status = AE_NO_MEMORY; > @@ -263,8 +263,8 @@ AcpiPsExecuteMethod ( > } > > Status = AcpiDsInitAmlWalk (WalkState, Op, Info->Node, > - Info->ObjDesc->Method.AmlStart, > - Info->ObjDesc->Method.AmlLength, Info, Info->PassNumber); > + Info->ObjDesc->Method.AmlStart, > + Info->ObjDesc->Method.AmlLength, Info, Info->PassNumber); > if (ACPI_FAILURE (Status)) > { > AcpiDsDeleteWalkState (WalkState); > @@ -375,7 +375,8 @@ AcpiPsUpdateParameterList ( > { > /* Ignore errors, just do them all */ > > - (void) AcpiUtUpdateObjectReference (Info->Parameters[i], Action); > + (void) AcpiUtUpdateObjectReference ( > + Info->Parameters[i], Action); > } > } > } > diff --git a/src/acpica/source/components/resources/rsaddr.c b/src/acpica/source/components/resources/rsaddr.c > index 9d1d4d7..2b603f0 100644 > --- a/src/acpica/source/components/resources/rsaddr.c > +++ b/src/acpica/source/components/resources/rsaddr.c > @@ -400,30 +400,35 @@ AcpiRsGetAddressCommon ( > > /* Validate the Resource Type */ > > - if ((Aml->Address.ResourceType > 2) && (Aml->Address.ResourceType < 0xC0)) > + if ((Aml->Address.ResourceType > 2) && > + (Aml->Address.ResourceType < 0xC0)) > { > return (FALSE); > } > > /* Get the Resource Type and General Flags */ > > - (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertGeneralFlags); > + (void) AcpiRsConvertAmlToResource ( > + Resource, Aml, AcpiRsConvertGeneralFlags); > > /* Get the Type-Specific Flags (Memory and I/O descriptors only) */ > > if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE) > { > - (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertMemFlags); > + (void) AcpiRsConvertAmlToResource ( > + Resource, Aml, AcpiRsConvertMemFlags); > } > else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE) > { > - (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertIoFlags); > + (void) AcpiRsConvertAmlToResource ( > + Resource, Aml, AcpiRsConvertIoFlags); > } > else > { > /* Generic resource type, just grab the TypeSpecific byte */ > > - Resource->Data.Address.Info.TypeSpecific = Aml->Address.SpecificFlags; > + Resource->Data.Address.Info.TypeSpecific = > + Aml->Address.SpecificFlags; > } > > return (TRUE); > @@ -454,22 +459,26 @@ AcpiRsSetAddressCommon ( > > /* Set the Resource Type and General Flags */ > > - (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertGeneralFlags); > + (void) AcpiRsConvertResourceToAml ( > + Resource, Aml, AcpiRsConvertGeneralFlags); > > /* Set the Type-Specific Flags (Memory and I/O descriptors only) */ > > if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE) > { > - (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertMemFlags); > + (void) AcpiRsConvertResourceToAml ( > + Resource, Aml, AcpiRsConvertMemFlags); > } > else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE) > { > - (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertIoFlags); > + (void) AcpiRsConvertResourceToAml ( > + Resource, Aml, AcpiRsConvertIoFlags); > } > else > { > /* Generic resource type, just copy the TypeSpecific byte */ > > - Aml->Address.SpecificFlags = Resource->Data.Address.Info.TypeSpecific; > + Aml->Address.SpecificFlags = > + Resource->Data.Address.Info.TypeSpecific; > } > } > diff --git a/src/acpica/source/components/resources/rscalc.c b/src/acpica/source/components/resources/rscalc.c > index 33a438e..deab7e2 100644 > --- a/src/acpica/source/components/resources/rscalc.c > +++ b/src/acpica/source/components/resources/rscalc.c > @@ -236,16 +236,17 @@ AcpiRsStreamOptionLength ( > > > /* > - * The ResourceSourceIndex and ResourceSource are optional elements of some > - * Large-type resource descriptors. > + * The ResourceSourceIndex and ResourceSource are optional elements of > + * some Large-type resource descriptors. > */ > > /* > - * If the length of the actual resource descriptor is greater than the ACPI > - * spec-defined minimum length, it means that a ResourceSourceIndex exists > - * and is followed by a (required) null terminated string. The string length > - * (including the null terminator) is the resource length minus the minimum > - * length, minus one byte for the ResourceSourceIndex itself. > + * If the length of the actual resource descriptor is greater than the > + * ACPI spec-defined minimum length, it means that a ResourceSourceIndex > + * exists and is followed by a (required) null terminated string. The > + * string length (including the null terminator) is the resource length > + * minus the minimum length, minus one byte for the ResourceSourceIndex > + * itself. > */ > if (ResourceLength > MinimumAmlResourceLength) > { > @@ -381,9 +382,9 @@ AcpiRsGetAmlLength ( > * 16-Bit Address Resource: > * Add the size of the optional ResourceSource info > */ > - TotalSize = (ACPI_RS_LENGTH) > - (TotalSize + AcpiRsStructOptionLength ( > - &Resource->Data.Address16.ResourceSource)); > + TotalSize = (ACPI_RS_LENGTH) (TotalSize + > + AcpiRsStructOptionLength ( > + &Resource->Data.Address16.ResourceSource)); > break; > > > @@ -392,9 +393,9 @@ AcpiRsGetAmlLength ( > * 32-Bit Address Resource: > * Add the size of the optional ResourceSource info > */ > - TotalSize = (ACPI_RS_LENGTH) > - (TotalSize + AcpiRsStructOptionLength ( > - &Resource->Data.Address32.ResourceSource)); > + TotalSize = (ACPI_RS_LENGTH) (TotalSize + > + AcpiRsStructOptionLength ( > + &Resource->Data.Address32.ResourceSource)); > break; > > > @@ -403,9 +404,9 @@ AcpiRsGetAmlLength ( > * 64-Bit Address Resource: > * Add the size of the optional ResourceSource info > */ > - TotalSize = (ACPI_RS_LENGTH) > - (TotalSize + AcpiRsStructOptionLength ( > - &Resource->Data.Address64.ResourceSource)); > + TotalSize = (ACPI_RS_LENGTH) (TotalSize + > + AcpiRsStructOptionLength ( > + &Resource->Data.Address64.ResourceSource)); > break; > > > @@ -415,8 +416,7 @@ AcpiRsGetAmlLength ( > * Add the size of each additional optional interrupt beyond the > * required 1 (4 bytes for each UINT32 interrupt number) > */ > - TotalSize = (ACPI_RS_LENGTH) > - (TotalSize + > + TotalSize = (ACPI_RS_LENGTH) (TotalSize + > ((Resource->Data.ExtendedIrq.InterruptCount - 1) * 4) + > > /* Add the size of the optional ResourceSource info */ > @@ -428,7 +428,8 @@ AcpiRsGetAmlLength ( > > case ACPI_RESOURCE_TYPE_GPIO: > > - TotalSize = (ACPI_RS_LENGTH) (TotalSize + (Resource->Data.Gpio.PinTableLength * 2) + > + TotalSize = (ACPI_RS_LENGTH) (TotalSize + > + (Resource->Data.Gpio.PinTableLength * 2) + > Resource->Data.Gpio.ResourceSource.StringLength + > Resource->Data.Gpio.VendorLength); > > @@ -437,7 +438,8 @@ AcpiRsGetAmlLength ( > > case ACPI_RESOURCE_TYPE_SERIAL_BUS: > > - TotalSize = AcpiGbl_AmlResourceSerialBusSizes [Resource->Data.CommonSerialBus.Type]; > + TotalSize = AcpiGbl_AmlResourceSerialBusSizes [ > + Resource->Data.CommonSerialBus.Type]; > > TotalSize = (ACPI_RS_LENGTH) (TotalSize + > Resource->Data.I2cSerialBus.ResourceSource.StringLength + > @@ -616,12 +618,15 @@ AcpiRsGetListLength ( > > if (AmlResource->Gpio.VendorLength) > { > - ExtraStructBytes += AmlResource->Gpio.VendorOffset - > - AmlResource->Gpio.PinTableOffset + AmlResource->Gpio.VendorLength; > + ExtraStructBytes += > + AmlResource->Gpio.VendorOffset - > + AmlResource->Gpio.PinTableOffset + > + AmlResource->Gpio.VendorLength; > } > else > { > - ExtraStructBytes += AmlResource->LargeHeader.ResourceLength + > + ExtraStructBytes += > + AmlResource->LargeHeader.ResourceLength + > sizeof (AML_RESOURCE_LARGE_HEADER) - > AmlResource->Gpio.PinTableOffset; > } > @@ -631,7 +636,8 @@ AcpiRsGetListLength ( > > MinimumAmlResourceLength = AcpiGbl_ResourceAmlSerialBusSizes[ > AmlResource->CommonSerialBus.Type]; > - ExtraStructBytes += AmlResource->CommonSerialBus.ResourceLength - > + ExtraStructBytes += > + AmlResource->CommonSerialBus.ResourceLength - > MinimumAmlResourceLength; > break; > > @@ -646,7 +652,8 @@ AcpiRsGetListLength ( > * Important: Round the size up for the appropriate alignment. This > * is a requirement on IA64. > */ > - if (AcpiUtGetResourceType (AmlBuffer) == ACPI_RESOURCE_NAME_SERIAL_BUS) > + if (AcpiUtGetResourceType (AmlBuffer) == > + ACPI_RESOURCE_NAME_SERIAL_BUS) > { > BufferSize = AcpiGbl_ResourceStructSerialBusSizes[ > AmlResource->CommonSerialBus.Type] + ExtraStructBytes; > @@ -654,10 +661,10 @@ AcpiRsGetListLength ( > else > { > BufferSize = AcpiGbl_ResourceStructSizes[ResourceIndex] + > - ExtraStructBytes; > + ExtraStructBytes; > } > - BufferSize = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (BufferSize); > > + BufferSize = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (BufferSize); > *SizeNeeded += BufferSize; > > ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES, > @@ -794,7 +801,7 @@ AcpiRsGetPciRoutingTableLength ( > else > { > TempSizeNeeded += AcpiNsGetPathnameLength ( > - (*SubObjectList)->Reference.Node); > + (*SubObjectList)->Reference.Node); > } > } > else > diff --git a/src/acpica/source/components/resources/rscreate.c b/src/acpica/source/components/resources/rscreate.c > index 8cf00d3..0bf0ec5 100644 > --- a/src/acpica/source/components/resources/rscreate.c > +++ b/src/acpica/source/components/resources/rscreate.c > @@ -158,8 +158,8 @@ AcpiBufferToResource ( > > /* Get the required length for the converted resource */ > > - Status = AcpiRsGetListLength (AmlBuffer, AmlBufferLength, > - &ListSizeNeeded); > + Status = AcpiRsGetListLength ( > + AmlBuffer, AmlBufferLength, &ListSizeNeeded); > if (Status == AE_AML_NO_RESOURCE_END_TAG) > { > Status = AE_OK; > @@ -181,7 +181,7 @@ AcpiBufferToResource ( > /* Perform the AML-to-Resource conversion */ > > Status = AcpiUtWalkAmlResources (NULL, AmlBuffer, AmlBufferLength, > - AcpiRsConvertAmlToResources, &CurrentResourcePtr); > + AcpiRsConvertAmlToResources, &CurrentResourcePtr); > if (Status == AE_AML_NO_RESOURCE_END_TAG) > { > Status = AE_OK; > @@ -269,14 +269,14 @@ AcpiRsCreateResourceList ( > > Resource = OutputBuffer->Pointer; > Status = AcpiUtWalkAmlResources (NULL, AmlStart, AmlBufferLength, > - AcpiRsConvertAmlToResources, &Resource); > + AcpiRsConvertAmlToResources, &Resource); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > } > > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n", > - OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); > + OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); > return_ACPI_STATUS (AE_OK); > } > > @@ -327,8 +327,8 @@ AcpiRsCreatePciRoutingTable ( > > /* Get the required buffer length */ > > - Status = AcpiRsGetPciRoutingTableLength (PackageObject, > - &BufferSizeNeeded); > + Status = AcpiRsGetPciRoutingTableLength ( > + PackageObject,&BufferSizeNeeded); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -350,10 +350,10 @@ AcpiRsCreatePciRoutingTable ( > * package that in turn contains an UINT64 Address, a UINT8 Pin, > * a Name, and a UINT8 SourceIndex. > */ > - TopObjectList = PackageObject->Package.Elements; > + TopObjectList = PackageObject->Package.Elements; > NumberOfElements = PackageObject->Package.Count; > - Buffer = OutputBuffer->Pointer; > - UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer); > + Buffer = OutputBuffer->Pointer; > + UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer); > > for (Index = 0; Index < NumberOfElements; Index++) > { > @@ -367,9 +367,9 @@ AcpiRsCreatePciRoutingTable ( > UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer); > > /* > - * Fill in the Length field with the information we have at this point. > - * The minus four is to subtract the size of the UINT8 Source[4] member > - * because it is added below. > + * Fill in the Length field with the information we have at this > + * point. The minus four is to subtract the size of the UINT8 > + * Source[4] member because it is added below. > */ > UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4); > > @@ -395,7 +395,8 @@ AcpiRsCreatePciRoutingTable ( > ObjDesc = SubObjectList[0]; > if (!ObjDesc || ObjDesc->Common.Type != ACPI_TYPE_INTEGER) > { > - ACPI_ERROR ((AE_INFO, "(PRT[%u].Address) Need Integer, found %s", > + ACPI_ERROR ((AE_INFO, > + "(PRT[%u].Address) Need Integer, found %s", > Index, AcpiUtGetObjectTypeName (ObjDesc))); > return_ACPI_STATUS (AE_BAD_DATA); > } > @@ -438,12 +439,12 @@ AcpiRsCreatePciRoutingTable ( > /* Use *remaining* length of the buffer as max for pathname */ > > PathBuffer.Length = OutputBuffer->Length - > - (UINT32) ((UINT8 *) UserPrt->Source - > - (UINT8 *) OutputBuffer->Pointer); > + (UINT32) ((UINT8 *) UserPrt->Source - > + (UINT8 *) OutputBuffer->Pointer); > PathBuffer.Pointer = UserPrt->Source; > > - Status = AcpiNsHandleToPathname ((ACPI_HANDLE) Node, > - &PathBuffer, FALSE); > + Status = AcpiNsHandleToPathname ( > + (ACPI_HANDLE) Node, &PathBuffer, FALSE); > > /* +1 to include null terminator */ > > @@ -463,8 +464,8 @@ AcpiRsCreatePciRoutingTable ( > > case ACPI_TYPE_INTEGER: > /* > - * If this is a number, then the Source Name is NULL, since the > - * entire buffer was zeroed out, we can leave this alone. > + * If this is a number, then the Source Name is NULL, since > + * the entire buffer was zeroed out, we can leave this alone. > * > * Add to the Length field the length of the UINT32 NULL > */ > @@ -503,7 +504,7 @@ AcpiRsCreatePciRoutingTable ( > } > > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n", > - OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); > + OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); > return_ACPI_STATUS (AE_OK); > } > > @@ -544,8 +545,8 @@ AcpiRsCreateAmlResources ( > > /* Get the buffer size needed for the AML byte stream */ > > - Status = AcpiRsGetAmlLength (ResourceList->Pointer, > - ResourceList->Length, &AmlSizeNeeded); > + Status = AcpiRsGetAmlLength ( > + ResourceList->Pointer, ResourceList->Length, &AmlSizeNeeded); > > ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "AmlSizeNeeded=%X, %s\n", > (UINT32) AmlSizeNeeded, AcpiFormatException (Status))); > @@ -565,7 +566,7 @@ AcpiRsCreateAmlResources ( > /* Do the conversion */ > > Status = AcpiRsConvertResourcesToAml (ResourceList->Pointer, > - AmlSizeNeeded, OutputBuffer->Pointer); > + AmlSizeNeeded, OutputBuffer->Pointer); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/resources/rsdump.c b/src/acpica/source/components/resources/rsdump.c > index 07d308a..cc8afa0 100644 > --- a/src/acpica/source/components/resources/rsdump.c > +++ b/src/acpica/source/components/resources/rsdump.c > @@ -617,6 +617,7 @@ AcpiRsOutString ( > char *Title, > char *Value) > { > + > AcpiOsPrintf ("%27s : %s", Title, Value); > if (!*Value) > { > @@ -638,6 +639,7 @@ AcpiRsOutInteger16 ( > char *Title, > UINT16 Value) > { > + > AcpiOsPrintf ("%27s : %4.4X\n", Title, Value); > } > > @@ -646,6 +648,7 @@ AcpiRsOutInteger32 ( > char *Title, > UINT32 Value) > { > + > AcpiOsPrintf ("%27s : %8.8X\n", Title, Value); > } > > @@ -654,6 +657,7 @@ AcpiRsOutInteger64 ( > char *Title, > UINT64 Value) > { > + > AcpiOsPrintf ("%27s : %8.8X%8.8X\n", Title, > ACPI_FORMAT_UINT64 (Value)); > } > @@ -662,6 +666,7 @@ static void > AcpiRsOutTitle ( > char *Title) > { > + > AcpiOsPrintf ("%27s : ", Title); > } > > @@ -689,8 +694,7 @@ AcpiRsDumpByteList ( > > for (i = 0; i < Length; i++) > { > - AcpiOsPrintf ("%25s%2.2X : %2.2X\n", > - "Byte", i, Data[i]); > + AcpiOsPrintf ("%25s%2.2X : %2.2X\n", "Byte", i, Data[i]); > } > } > > @@ -706,6 +710,7 @@ AcpiRsDumpShortByteList ( > { > AcpiOsPrintf ("%X ", Data[i]); > } > + > AcpiOsPrintf ("\n"); > } > > @@ -719,8 +724,7 @@ AcpiRsDumpDwordList ( > > for (i = 0; i < Length; i++) > { > - AcpiOsPrintf ("%25s%2.2X : %8.8X\n", > - "Dword", i, Data[i]); > + AcpiOsPrintf ("%25s%2.2X : %8.8X\n", "Dword", i, Data[i]); > } > } > > @@ -734,7 +738,6 @@ AcpiRsDumpWordList ( > > for (i = 0; i < Length; i++) > { > - AcpiOsPrintf ("%25s%2.2X : %4.4X\n", > - "Word", i, Data[i]); > + AcpiOsPrintf ("%25s%2.2X : %4.4X\n", "Word", i, Data[i]); > } > } > diff --git a/src/acpica/source/components/resources/rslist.c b/src/acpica/source/components/resources/rslist.c > index 4fda294..8e6460f 100644 > --- a/src/acpica/source/components/resources/rslist.c > +++ b/src/acpica/source/components/resources/rslist.c > @@ -169,9 +169,12 @@ AcpiRsConvertAmlToResources ( > /* Get the appropriate conversion info table */ > > AmlResource = ACPI_CAST_PTR (AML_RESOURCE, Aml); > - if (AcpiUtGetResourceType (Aml) == ACPI_RESOURCE_NAME_SERIAL_BUS) > + > + if (AcpiUtGetResourceType (Aml) == > + ACPI_RESOURCE_NAME_SERIAL_BUS) > { > - if (AmlResource->CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE) > + if (AmlResource->CommonSerialBus.Type > > + AML_RESOURCE_MAX_SERIALBUSTYPE) > { > ConversionTable = NULL; > } > @@ -179,15 +182,13 @@ AcpiRsConvertAmlToResources ( > { > /* This is an I2C, SPI, or UART SerialBus descriptor */ > > - ConversionTable = > - AcpiGbl_ConvertResourceSerialBusDispatch[ > - AmlResource->CommonSerialBus.Type]; > + ConversionTable = AcpiGbl_ConvertResourceSerialBusDispatch [ > + AmlResource->CommonSerialBus.Type]; > } > } > else > { > - ConversionTable = > - AcpiGbl_GetResourceDispatch[ResourceIndex]; > + ConversionTable = AcpiGbl_GetResourceDispatch[ResourceIndex]; > } > > if (!ConversionTable) > @@ -282,7 +283,8 @@ AcpiRsConvertResourcesToAml ( > > if (Resource->Type == ACPI_RESOURCE_TYPE_SERIAL_BUS) > { > - if (Resource->Data.CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE) > + if (Resource->Data.CommonSerialBus.Type > > + AML_RESOURCE_MAX_SERIALBUSTYPE) > { > ConversionTable = NULL; > } > @@ -308,8 +310,7 @@ AcpiRsConvertResourcesToAml ( > } > > Status = AcpiRsConvertResourceToAml (Resource, > - ACPI_CAST_PTR (AML_RESOURCE, Aml), > - ConversionTable); > + ACPI_CAST_PTR (AML_RESOURCE, Aml), ConversionTable); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > @@ -320,8 +321,8 @@ AcpiRsConvertResourcesToAml ( > > /* Perform final sanity check on the new AML resource descriptor */ > > - Status = AcpiUtValidateResource (NULL, > - ACPI_CAST_PTR (AML_RESOURCE, Aml), NULL); > + Status = AcpiUtValidateResource ( > + NULL, ACPI_CAST_PTR (AML_RESOURCE, Aml), NULL); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/resources/rsmisc.c b/src/acpica/source/components/resources/rsmisc.c > index 1a5512e..04c1765 100644 > --- a/src/acpica/source/components/resources/rsmisc.c > +++ b/src/acpica/source/components/resources/rsmisc.c > @@ -193,7 +193,7 @@ AcpiRsConvertAmlToResource ( > * Source is the external AML byte stream buffer, > * destination is the internal resource descriptor > */ > - Source = ACPI_ADD_PTR (void, Aml, Info->AmlOffset); > + Source = ACPI_ADD_PTR (void, Aml, Info->AmlOffset); > Destination = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset); > > switch (Info->Opcode) > @@ -272,8 +272,7 @@ AcpiRsConvertAmlToResource ( > ItemCount = ACPI_GET8 (Source); > ACPI_SET8 (Destination, ItemCount); > > - Resource->Length = Resource->Length + > - (Info->Value * ItemCount); > + Resource->Length = Resource->Length + (Info->Value * ItemCount); > break; > > case ACPI_RSC_COUNT_GPIO_RES: > @@ -345,7 +344,7 @@ AcpiRsConvertAmlToResource ( > /* Generate and set the PIN data pointer */ > > Target = (char *) ACPI_ADD_PTR (void, Resource, > - (Resource->Length - ItemCount * 2)); > + (Resource->Length - ItemCount * 2)); > *(UINT16 **) Destination = ACPI_CAST_PTR (UINT16, Target); > > /* Copy the PIN data */ > @@ -359,7 +358,7 @@ AcpiRsConvertAmlToResource ( > /* Generate and set the ResourceSource string pointer */ > > Target = (char *) ACPI_ADD_PTR (void, Resource, > - (Resource->Length - ItemCount)); > + (Resource->Length - ItemCount)); > *(UINT8 **) Destination = ACPI_CAST_PTR (UINT8, Target); > > /* Copy the ResourceSource string */ > @@ -373,7 +372,7 @@ AcpiRsConvertAmlToResource ( > /* Generate and set the Vendor Data pointer */ > > Target = (char *) ACPI_ADD_PTR (void, Resource, > - (Resource->Length - ItemCount)); > + (Resource->Length - ItemCount)); > *(UINT8 **) Destination = ACPI_CAST_PTR (UINT8, Target); > > /* Copy the Vendor Data */ > @@ -387,12 +386,13 @@ AcpiRsConvertAmlToResource ( > /* Generate and set the ResourceSource string pointer */ > > Target = (char *) ACPI_ADD_PTR (void, Resource, > - (Resource->Length - ItemCount)); > + (Resource->Length - ItemCount)); > *(UINT8 **) Destination = ACPI_CAST_PTR (UINT8, Target); > > /* Copy the ResourceSource string */ > > - Source = ACPI_ADD_PTR (void, Aml, (ACPI_GET16 (Source) + Info->Value)); > + Source = ACPI_ADD_PTR ( > + void, Aml, (ACPI_GET16 (Source) + Info->Value)); > AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); > break; > > @@ -514,7 +514,8 @@ Exit: > { > /* Round the resource struct length up to the next boundary (32 or 64) */ > > - Resource->Length = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length); > + Resource->Length = (UINT32) > + ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length); > } > return_ACPI_STATUS (AE_OK); > } > @@ -570,7 +571,7 @@ AcpiRsConvertResourceToAml ( > * Source is the internal resource descriptor, > * destination is the external AML byte stream buffer > */ > - Source = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset); > + Source = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset); > Destination = ACPI_ADD_PTR (void, Aml, Info->AmlOffset); > > switch (Info->Opcode) > @@ -579,7 +580,8 @@ AcpiRsConvertResourceToAml ( > > memset (Aml, 0, INIT_RESOURCE_LENGTH (Info)); > AmlLength = INIT_RESOURCE_LENGTH (Info); > - AcpiRsSetResourceHeader (INIT_RESOURCE_TYPE (Info), AmlLength, Aml); > + AcpiRsSetResourceHeader ( > + INIT_RESOURCE_TYPE (Info), AmlLength, Aml); > break; > > case ACPI_RSC_INITGET: > @@ -621,7 +623,8 @@ AcpiRsConvertResourceToAml ( > ItemCount = ACPI_GET8 (Source); > ACPI_SET8 (Destination, ItemCount); > > - AmlLength = (UINT16) (AmlLength + (Info->Value * (ItemCount - 1))); > + AmlLength = (UINT16) > + (AmlLength + (Info->Value * (ItemCount - 1))); > break; > > case ACPI_RSC_COUNT16: > @@ -647,7 +650,8 @@ AcpiRsConvertResourceToAml ( > ItemCount = ACPI_GET16 (Source); > ACPI_SET16 (Destination, ItemCount); > > - AmlLength = (UINT16) (AmlLength + (Info->Value * ItemCount)); > + AmlLength = (UINT16) ( > + AmlLength + (Info->Value * ItemCount)); > AcpiRsSetResourceLength (AmlLength, Aml); > break; > > @@ -708,7 +712,7 @@ AcpiRsConvertResourceToAml ( > case ACPI_RSC_MOVE_GPIO_PIN: > > Destination = (char *) ACPI_ADD_PTR (void, Aml, > - ACPI_GET16 (Destination)); > + ACPI_GET16 (Destination)); > Source = * (UINT16 **) Source; > AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); > break; > @@ -718,7 +722,7 @@ AcpiRsConvertResourceToAml ( > /* Used for both ResourceSource string and VendorData */ > > Destination = (char *) ACPI_ADD_PTR (void, Aml, > - ACPI_GET16 (Destination)); > + ACPI_GET16 (Destination)); > Source = * (UINT8 **) Source; > AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); > break; > @@ -726,7 +730,7 @@ AcpiRsConvertResourceToAml ( > case ACPI_RSC_MOVE_SERIAL_VEN: > > Destination = (char *) ACPI_ADD_PTR (void, Aml, > - (AmlLength - ItemCount)); > + (AmlLength - ItemCount)); > Source = * (UINT8 **) Source; > AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); > break; > @@ -734,7 +738,7 @@ AcpiRsConvertResourceToAml ( > case ACPI_RSC_MOVE_SERIAL_RES: > > Destination = (char *) ACPI_ADD_PTR (void, Aml, > - (AmlLength - ItemCount)); > + (AmlLength - ItemCount)); > Source = * (UINT8 **) Source; > AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); > break; > @@ -751,7 +755,7 @@ AcpiRsConvertResourceToAml ( > * Optional ResourceSource (Index and String) > */ > AmlLength = AcpiRsSetResourceSource ( > - Aml, (ACPI_RS_LENGTH) AmlLength, Source); > + Aml, (ACPI_RS_LENGTH) AmlLength, Source); > AcpiRsSetResourceLength (AmlLength, Aml); > break; > > @@ -777,8 +781,8 @@ AcpiRsConvertResourceToAml ( > /* > * 16-bit encoded bitmask (IRQ macro) > */ > - Temp16 = AcpiRsEncodeBitmask (Source, > - *ACPI_ADD_PTR (UINT8, Resource, Info->Value)); > + Temp16 = AcpiRsEncodeBitmask ( > + Source, *ACPI_ADD_PTR (UINT8, Resource, Info->Value)); > ACPI_MOVE_16_TO_16 (Destination, &Temp16); > break; > > @@ -801,7 +805,7 @@ AcpiRsConvertResourceToAml ( > case ACPI_RSC_COMPARE_VALUE: > > if (*ACPI_ADD_PTR (UINT8, Resource, > - COMPARE_TARGET (Info)) != COMPARE_VALUE (Info)) > + COMPARE_TARGET (Info)) != COMPARE_VALUE (Info)) > { > goto Exit; > } > @@ -819,7 +823,7 @@ AcpiRsConvertResourceToAml ( > * Control - Exit conversion if equal > */ > if (*ACPI_ADD_PTR (UINT8, Resource, > - COMPARE_TARGET (Info)) == COMPARE_VALUE (Info)) > + COMPARE_TARGET (Info)) == COMPARE_VALUE (Info)) > { > goto Exit; > } > @@ -843,7 +847,8 @@ Exit: > #if 0 > /* Previous resource validations */ > > - if (Aml->ExtAddress64.RevisionID != AML_RESOURCE_EXTENDED_ADDRESS_REVISION) > + if (Aml->ExtAddress64.RevisionID != > + AML_RESOURCE_EXTENDED_ADDRESS_REVISION) > { > return_ACPI_STATUS (AE_SUPPORT); > } > diff --git a/src/acpica/source/components/resources/rsutils.c b/src/acpica/source/components/resources/rsutils.c > index a7dc215..f8d5cef 100644 > --- a/src/acpica/source/components/resources/rsutils.c > +++ b/src/acpica/source/components/resources/rsutils.c > @@ -257,20 +257,23 @@ AcpiRsMoveData ( > case ACPI_RSC_MOVE16: > case ACPI_RSC_MOVE_GPIO_PIN: > > - ACPI_MOVE_16_TO_16 (&ACPI_CAST_PTR (UINT16, Destination)[i], > - &ACPI_CAST_PTR (UINT16, Source)[i]); > + ACPI_MOVE_16_TO_16 ( > + &ACPI_CAST_PTR (UINT16, Destination)[i], > + &ACPI_CAST_PTR (UINT16, Source)[i]); > break; > > case ACPI_RSC_MOVE32: > > - ACPI_MOVE_32_TO_32 (&ACPI_CAST_PTR (UINT32, Destination)[i], > - &ACPI_CAST_PTR (UINT32, Source)[i]); > + ACPI_MOVE_32_TO_32 ( > + &ACPI_CAST_PTR (UINT32, Destination)[i], > + &ACPI_CAST_PTR (UINT32, Source)[i]); > break; > > case ACPI_RSC_MOVE64: > > - ACPI_MOVE_64_TO_64 (&ACPI_CAST_PTR (UINT64, Destination)[i], > - &ACPI_CAST_PTR (UINT64, Source)[i]); > + ACPI_MOVE_64_TO_64 ( > + &ACPI_CAST_PTR (UINT64, Destination)[i], > + &ACPI_CAST_PTR (UINT64, Source)[i]); > break; > > default: > @@ -320,18 +323,18 @@ AcpiRsSetResourceLength ( > { > /* Large descriptor -- bytes 1-2 contain the 16-bit length */ > > - ACPI_MOVE_16_TO_16 (&Aml->LargeHeader.ResourceLength, &ResourceLength); > + ACPI_MOVE_16_TO_16 ( > + &Aml->LargeHeader.ResourceLength, &ResourceLength); > } > else > { > - /* Small descriptor -- bits 2:0 of byte 0 contain the length */ > - > + /* > + * Small descriptor -- bits 2:0 of byte 0 contain the length > + * Clear any existing length, preserving descriptor type bits > + */ > Aml->SmallHeader.DescriptorType = (UINT8) > - > - /* Clear any existing length, preserving descriptor type bits */ > - > - ((Aml->SmallHeader.DescriptorType & ~ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK) > - > + ((Aml->SmallHeader.DescriptorType & > + ~ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK) > | ResourceLength); > } > } > @@ -450,8 +453,8 @@ AcpiRsGetResourceSource ( > AmlResourceSource = ACPI_ADD_PTR (UINT8, Aml, MinimumLength); > > /* > - * ResourceSource is present if the length of the descriptor is longer than > - * the minimum length. > + * ResourceSource is present if the length of the descriptor is longer > + * than the minimum length. > * > * Note: Some resource descriptors will have an additional null, so > * we add 1 to the minimum length. > @@ -469,8 +472,8 @@ AcpiRsGetResourceSource ( > * String destination pointer is not specified; Set the String > * pointer to the end of the current ResourceSource structure. > */ > - ResourceSource->StringPtr = ACPI_ADD_PTR (char, ResourceSource, > - sizeof (ACPI_RESOURCE_SOURCE)); > + ResourceSource->StringPtr = ACPI_ADD_PTR ( > + char, ResourceSource, sizeof (ACPI_RESOURCE_SOURCE)); > } > > /* > @@ -482,13 +485,15 @@ AcpiRsGetResourceSource ( > */ > TotalLength = (UINT32) strlen ( > ACPI_CAST_PTR (char, &AmlResourceSource[1])) + 1; > + > TotalLength = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (TotalLength); > > memset (ResourceSource->StringPtr, 0, TotalLength); > > /* Copy the ResourceSource string to the destination */ > > - ResourceSource->StringLength = AcpiRsStrcpy (ResourceSource->StringPtr, > + ResourceSource->StringLength = AcpiRsStrcpy ( > + ResourceSource->StringPtr, > ACPI_CAST_PTR (char, &AmlResourceSource[1])); > > return ((ACPI_RS_LENGTH) TotalLength); > @@ -556,7 +561,8 @@ AcpiRsSetResourceSource ( > * Add the length of the string (+ 1 for null terminator) to the > * final descriptor length > */ > - DescriptorLength += ((ACPI_RSDESC_SIZE) ResourceSource->StringLength + 1); > + DescriptorLength += ((ACPI_RSDESC_SIZE) > + ResourceSource->StringLength + 1); > } > > /* Return the new total length of the AML descriptor */ > @@ -599,8 +605,8 @@ AcpiRsGetPrtMethodData ( > > /* Execute the method, no parameters */ > > - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRT, > - ACPI_BTYPE_PACKAGE, &ObjDesc); > + Status = AcpiUtEvaluateObject ( > + Node, METHOD_NAME__PRT, ACPI_BTYPE_PACKAGE, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -653,8 +659,8 @@ AcpiRsGetCrsMethodData ( > > /* Execute the method, no parameters */ > > - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__CRS, > - ACPI_BTYPE_BUFFER, &ObjDesc); > + Status = AcpiUtEvaluateObject ( > + Node, METHOD_NAME__CRS, ACPI_BTYPE_BUFFER, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -708,8 +714,8 @@ AcpiRsGetPrsMethodData ( > > /* Execute the method, no parameters */ > > - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRS, > - ACPI_BTYPE_BUFFER, &ObjDesc); > + Status = AcpiUtEvaluateObject ( > + Node, METHOD_NAME__PRS, ACPI_BTYPE_BUFFER, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -763,8 +769,8 @@ AcpiRsGetAeiMethodData ( > > /* Execute the method, no parameters */ > > - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__AEI, > - ACPI_BTYPE_BUFFER, &ObjDesc); > + Status = AcpiUtEvaluateObject ( > + Node, METHOD_NAME__AEI, ACPI_BTYPE_BUFFER, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -820,7 +826,8 @@ AcpiRsGetMethodData ( > > /* Execute the method, no parameters */ > > - Status = AcpiUtEvaluateObject (ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Handle), > + Status = AcpiUtEvaluateObject ( > + ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Handle), > Path, ACPI_BTYPE_BUFFER, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > diff --git a/src/acpica/source/components/resources/rsxface.c b/src/acpica/source/components/resources/rsxface.c > index 9aea3dc..9580053 100644 > --- a/src/acpica/source/components/resources/rsxface.c > +++ b/src/acpica/source/components/resources/rsxface.c > @@ -126,7 +126,7 @@ > /* Local macros for 16,32-bit to 64-bit conversion */ > > #define ACPI_COPY_FIELD(Out, In, Field) ((Out)->Field = (In)->Field) > -#define ACPI_COPY_ADDRESS(Out, In) \ > +#define ACPI_COPY_ADDRESS(Out, In) \ > ACPI_COPY_FIELD(Out, In, ResourceType); \ > ACPI_COPY_FIELD(Out, In, ProducerConsumer); \ > ACPI_COPY_FIELD(Out, In, Decode); \ > @@ -505,13 +505,15 @@ AcpiResourceToAddress64 ( > { > case ACPI_RESOURCE_TYPE_ADDRESS16: > > - Address16 = ACPI_CAST_PTR (ACPI_RESOURCE_ADDRESS16, &Resource->Data); > + Address16 = ACPI_CAST_PTR ( > + ACPI_RESOURCE_ADDRESS16, &Resource->Data); > ACPI_COPY_ADDRESS (Out, Address16); > break; > > case ACPI_RESOURCE_TYPE_ADDRESS32: > > - Address32 = ACPI_CAST_PTR (ACPI_RESOURCE_ADDRESS32, &Resource->Data); > + Address32 = ACPI_CAST_PTR ( > + ACPI_RESOURCE_ADDRESS32, &Resource->Data); > ACPI_COPY_ADDRESS (Out, Address32); > break; > > @@ -576,8 +578,8 @@ AcpiGetVendorResource ( > > /* Walk the _CRS or _PRS resource list for this device */ > > - Status = AcpiWalkResources (DeviceHandle, Name, AcpiRsMatchVendorResource, > - &Info); > + Status = AcpiWalkResources ( > + DeviceHandle, Name, AcpiRsMatchVendorResource, &Info); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -696,7 +698,8 @@ AcpiWalkResourceBuffer ( > /* Buffer contains the resource list and length */ > > Resource = ACPI_CAST_PTR (ACPI_RESOURCE, Buffer->Pointer); > - ResourceEnd = ACPI_ADD_PTR (ACPI_RESOURCE, Buffer->Pointer, Buffer->Length); > + ResourceEnd = ACPI_ADD_PTR ( > + ACPI_RESOURCE, Buffer->Pointer, Buffer->Length); > > /* Walk the resource list until the EndTag is found (or buffer end) */ > > diff --git a/src/acpica/source/components/tables/tbdata.c b/src/acpica/source/components/tables/tbdata.c > index daacf41..8b388f4 100644 > --- a/src/acpica/source/components/tables/tbdata.c > +++ b/src/acpica/source/components/tables/tbdata.c > @@ -194,7 +194,7 @@ AcpiTbAcquireTable ( > case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: > > Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, > - ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); > + ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); > break; > > default: > @@ -301,7 +301,7 @@ AcpiTbAcquireTempTable ( > case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: > > TableHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, > - ACPI_PHYSADDR_TO_PTR (Address)); > + ACPI_PHYSADDR_TO_PTR (Address)); > if (!TableHeader) > { > return (AE_NO_MEMORY); > @@ -375,7 +375,7 @@ AcpiTbValidateTable ( > if (!TableDesc->Pointer) > { > Status = AcpiTbAcquireTable (TableDesc, &TableDesc->Pointer, > - &TableDesc->Length, &TableDesc->Flags); > + &TableDesc->Length, &TableDesc->Flags); > if (!TableDesc->Pointer) > { > Status = AE_NO_MEMORY; > @@ -516,6 +516,7 @@ AcpiTbVerifyTempTable ( > AcpiUtValidAcpiName (TableDesc->Signature.Ascii) ? > TableDesc->Signature.Ascii : "????", > ACPI_FORMAT_UINT64 (TableDesc->Address))); > + > goto InvalidateAndExit; > } > } > @@ -793,7 +794,7 @@ AcpiTbAllocateOwnerId ( > if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount) > { > Status = AcpiUtAllocateOwnerId ( > - &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId)); > + &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId)); > } > > (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); > diff --git a/src/acpica/source/components/tables/tbfadt.c b/src/acpica/source/components/tables/tbfadt.c > index 4f82733..dc933d6 100644 > --- a/src/acpica/source/components/tables/tbfadt.c > +++ b/src/acpica/source/components/tables/tbfadt.c > @@ -398,7 +398,7 @@ AcpiTbSelectAddress ( > * > * FUNCTION: AcpiTbParseFadt > * > - * PARAMETERS: TableIndex - Index for the FADT > + * PARAMETERS: None > * > * RETURN: None > * > @@ -409,7 +409,7 @@ AcpiTbSelectAddress ( > > void > AcpiTbParseFadt ( > - UINT32 TableIndex) > + void) > { > UINT32 Length; > ACPI_TABLE_HEADER *Table; > @@ -422,10 +422,10 @@ AcpiTbParseFadt ( > * Get a local copy of the FADT and convert it to a common format > * Map entire FADT, assumed to be smaller than one page. > */ > - Length = AcpiGbl_RootTableList.Tables[TableIndex].Length; > + Length = AcpiGbl_RootTableList.Tables[AcpiGbl_FadtIndex].Length; > > Table = AcpiOsMapMemory ( > - AcpiGbl_RootTableList.Tables[TableIndex].Address, Length); > + AcpiGbl_RootTableList.Tables[AcpiGbl_FadtIndex].Address, Length); > if (!Table) > { > return; > diff --git a/src/acpica/source/components/tables/tbfind.c b/src/acpica/source/components/tables/tbfind.c > index bf692b8..3a7f705 100644 > --- a/src/acpica/source/components/tables/tbfind.c > +++ b/src/acpica/source/components/tables/tbfind.c > @@ -180,7 +180,7 @@ AcpiTbFindTable ( > for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i) > { > if (memcmp (&(AcpiGbl_RootTableList.Tables[i].Signature), > - Header.Signature, ACPI_NAME_SIZE)) > + Header.Signature, ACPI_NAME_SIZE)) > { > /* Not the requested table */ > > @@ -208,13 +208,13 @@ AcpiTbFindTable ( > /* Check for table match on all IDs */ > > if (!memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->Signature, > - Header.Signature, ACPI_NAME_SIZE) && > + Header.Signature, ACPI_NAME_SIZE) && > (!OemId[0] || > !memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemId, > - Header.OemId, ACPI_OEM_ID_SIZE)) && > + Header.OemId, ACPI_OEM_ID_SIZE)) && > (!OemTableId[0] || > !memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemTableId, > - Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE))) > + Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE))) > { > *TableIndex = i; > > diff --git a/src/acpica/source/components/tables/tbinstal.c b/src/acpica/source/components/tables/tbinstal.c > index 2d7bb94..9c5b9c1 100644 > --- a/src/acpica/source/components/tables/tbinstal.c > +++ b/src/acpica/source/components/tables/tbinstal.c > @@ -155,7 +155,7 @@ AcpiTbCompareTables ( > > > Status = AcpiTbAcquireTable (&AcpiGbl_RootTableList.Tables[TableIndex], > - &Table, &TableLength, &TableFlags); > + &Table, &TableLength, &TableFlags); > if (ACPI_FAILURE (Status)) > { > return (FALSE); > @@ -278,7 +278,7 @@ AcpiTbInstallFixedTable ( > /* Fill a table descriptor for validation */ > > Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, > - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); > + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); > if (ACPI_FAILURE (Status)) > { > ACPI_ERROR ((AE_INFO, "Could not acquire table length at %8.8X%8.8X", > @@ -350,7 +350,8 @@ AcpiTbInstallStandardTable ( > Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, Flags); > if (ACPI_FAILURE (Status)) > { > - ACPI_ERROR ((AE_INFO, "Could not acquire table length at %8.8X%8.8X", > + ACPI_ERROR ((AE_INFO, > + "Could not acquire table length at %8.8X%8.8X", > ACPI_FORMAT_UINT64 (Address))); > return_ACPI_STATUS (Status); > } > @@ -363,7 +364,8 @@ AcpiTbInstallStandardTable ( > AcpiGbl_DisableSsdtTableInstall && > ACPI_COMPARE_NAME (&NewTableDesc.Signature, ACPI_SIG_SSDT)) > { > - ACPI_INFO ((AE_INFO, "Ignoring installation of %4.4s at %8.8X%8.8X", > + ACPI_INFO ((AE_INFO, > + "Ignoring installation of %4.4s at %8.8X%8.8X", > NewTableDesc.Signature.Ascii, ACPI_FORMAT_UINT64 (Address))); > goto ReleaseAndExit; > } > @@ -431,7 +433,8 @@ AcpiTbInstallStandardTable ( > * need to be unregistered when they are unloaded, and slots in the > * root table list should be reused when empty. > */ > - if (AcpiGbl_RootTableList.Tables[i].Flags & ACPI_TABLE_IS_LOADED) > + if (AcpiGbl_RootTableList.Tables[i].Flags & > + ACPI_TABLE_IS_LOADED) > { > /* Table is still loaded, this is an error */ > > diff --git a/src/acpica/source/components/tables/tbprint.c b/src/acpica/source/components/tables/tbprint.c > index e958041..ff221d2 100644 > --- a/src/acpica/source/components/tables/tbprint.c > +++ b/src/acpica/source/components/tables/tbprint.c > @@ -160,6 +160,7 @@ AcpiTbFixString ( > { > *String = '?'; > } > + > String++; > Length--; > } > @@ -228,8 +229,8 @@ AcpiTbPrintTableHeader ( > { > /* RSDP has no common fields */ > > - memcpy (LocalHeader.OemId, > - ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->OemId, ACPI_OEM_ID_SIZE); > + memcpy (LocalHeader.OemId, ACPI_CAST_PTR (ACPI_TABLE_RSDP, > + Header)->OemId, ACPI_OEM_ID_SIZE); > AcpiTbFixString (LocalHeader.OemId, ACPI_OEM_ID_SIZE); > > ACPI_INFO ((AE_INFO, "RSDP 0x%8.8X%8.8X %06X (v%.2d %-6.6s)", > diff --git a/src/acpica/source/components/tables/tbutils.c b/src/acpica/source/components/tables/tbutils.c > index 0570425..bb74c0a 100644 > --- a/src/acpica/source/components/tables/tbutils.c > +++ b/src/acpica/source/components/tables/tbutils.c > @@ -158,16 +158,16 @@ AcpiTbInitializeFacs ( > return (AE_OK); > } > else if (AcpiGbl_FADT.XFacs && > - (!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses)) > + (!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses)) > { > (void) AcpiGetTableByIndex (AcpiGbl_XFacsIndex, > - ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); > + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); > AcpiGbl_FACS = Facs; > } > else if (AcpiGbl_FADT.Facs) > { > (void) AcpiGetTableByIndex (AcpiGbl_FacsIndex, > - ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); > + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); > AcpiGbl_FACS = Facs; > } > > @@ -180,33 +180,6 @@ AcpiTbInitializeFacs ( > > /******************************************************************************* > * > - * FUNCTION: AcpiTbTablesLoaded > - * > - * PARAMETERS: None > - * > - * RETURN: TRUE if required ACPI tables are loaded > - * > - * DESCRIPTION: Determine if the minimum required ACPI tables are present > - * (FADT, FACS, DSDT) > - * > - ******************************************************************************/ > - > -BOOLEAN > -AcpiTbTablesLoaded ( > - void) > -{ > - > - if (AcpiGbl_RootTableList.CurrentTableCount >= 4) > - { > - return (TRUE); > - } > - > - return (FALSE); > -} > - > - > -/******************************************************************************* > - * > * FUNCTION: AcpiTbCheckDsdtHeader > * > * PARAMETERS: None > @@ -232,6 +205,7 @@ AcpiTbCheckDsdtHeader ( > ACPI_BIOS_ERROR ((AE_INFO, > "The DSDT has been corrupted or replaced - " > "old, new headers below")); > + > AcpiTbPrintTableHeader (0, &AcpiGbl_OriginalDsdtHeader); > AcpiTbPrintTableHeader (0, AcpiGbl_DSDT); > > @@ -280,8 +254,8 @@ AcpiTbCopyDsdt ( > > AcpiTbInitTableDescriptor ( > &AcpiGbl_RootTableList.Tables[AcpiGbl_DsdtIndex], > - ACPI_PTR_TO_PHYSADDR (NewTable), ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, > - NewTable); > + ACPI_PTR_TO_PHYSADDR (NewTable), > + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, NewTable); > > ACPI_INFO ((AE_INFO, > "Forced DSDT copy: length 0x%05X copied locally, original unmapped", > @@ -326,7 +300,8 @@ AcpiTbGetRootTableEntry ( > * 32-bit platform, RSDT: Return 32-bit table entry > * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return > */ > - return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (UINT32, TableEntry))); > + return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR ( > + UINT32, TableEntry))); > } > else > { > @@ -492,10 +467,12 @@ AcpiTbParseRootTable ( > ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex); > > if (ACPI_SUCCESS (Status) && > - ACPI_COMPARE_NAME (&AcpiGbl_RootTableList.Tables[TableIndex].Signature, > + ACPI_COMPARE_NAME ( > + &AcpiGbl_RootTableList.Tables[TableIndex].Signature, > ACPI_SIG_FADT)) > { > - AcpiTbParseFadt (TableIndex); > + AcpiGbl_FadtIndex = TableIndex; > + AcpiTbParseFadt (); > } > > NextTable: > @@ -504,7 +481,6 @@ NextTable: > } > > AcpiOsUnmapMemory (Table, Length); > - > return_ACPI_STATUS (AE_OK); > } > > diff --git a/src/acpica/source/components/tables/tbxface.c b/src/acpica/source/components/tables/tbxface.c > index 25e1405..83de853 100644 > --- a/src/acpica/source/components/tables/tbxface.c > +++ b/src/acpica/source/components/tables/tbxface.c > @@ -318,8 +318,8 @@ AcpiGetTableHeader ( > > for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) > { > - if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature), > - Signature)) > + if (!ACPI_COMPARE_NAME ( > + &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) > { > continue; > } > @@ -336,15 +336,14 @@ AcpiGetTableHeader ( > ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL) > { > Header = AcpiOsMapMemory ( > - AcpiGbl_RootTableList.Tables[i].Address, > - sizeof (ACPI_TABLE_HEADER)); > + AcpiGbl_RootTableList.Tables[i].Address, > + sizeof (ACPI_TABLE_HEADER)); > if (!Header) > { > return (AE_NO_MEMORY); > } > > - memcpy (OutTableHeader, Header, > - sizeof (ACPI_TABLE_HEADER)); > + memcpy (OutTableHeader, Header, sizeof (ACPI_TABLE_HEADER)); > AcpiOsUnmapMemory (Header, sizeof (ACPI_TABLE_HEADER)); > } > else > @@ -405,8 +404,8 @@ AcpiGetTable ( > > for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) > { > - if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature), > - Signature)) > + if (!ACPI_COMPARE_NAME ( > + &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) > { > continue; > } > @@ -477,7 +476,8 @@ AcpiGetTableByIndex ( > { > /* Table is not mapped, map it */ > > - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); > + Status = AcpiTbValidateTable ( > + &AcpiGbl_RootTableList.Tables[TableIndex]); > if (ACPI_FAILURE (Status)) > { > (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); > diff --git a/src/acpica/source/components/tables/tbxfload.c b/src/acpica/source/components/tables/tbxfload.c > index 1d51c91..2290e16 100644 > --- a/src/acpica/source/components/tables/tbxfload.c > +++ b/src/acpica/source/components/tables/tbxfload.c > @@ -282,6 +282,7 @@ AcpiTbLoadNamespace ( > { > ACPI_EXCEPTION ((AE_INFO, Status, "(%4.4s:%8.8s) while loading table", > Table->Signature.Ascii, Table->Pointer->OemTableId)); > + > TablesFailed++; > > ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, > @@ -299,7 +300,7 @@ AcpiTbLoadNamespace ( > if (!TablesFailed) > { > ACPI_INFO ((AE_INFO, > - "%u ACPI AML tables successfully acquired and loaded", > + "%u ACPI AML tables successfully acquired and loaded\n", > TablesLoaded)); > } > else > @@ -415,8 +416,8 @@ AcpiLoadTable ( > (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES); > > Status = AcpiTbInstallStandardTable (ACPI_PTR_TO_PHYSADDR (Table), > - ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, TRUE, FALSE, > - &TableIndex); > + ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, TRUE, FALSE, > + &TableIndex); > > (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); > if (ACPI_FAILURE (Status)) > @@ -428,7 +429,8 @@ AcpiLoadTable ( > * Note: Now table is "INSTALLED", it must be validated before > * using. > */ > - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); > + Status = AcpiTbValidateTable ( > + &AcpiGbl_RootTableList.Tables[TableIndex]); > if (ACPI_FAILURE (Status)) > { > goto UnlockAndExit; > @@ -441,7 +443,7 @@ AcpiLoadTable ( > if (AcpiGbl_TableHandler) > { > (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, > - AcpiGbl_TableHandlerContext); > + AcpiGbl_TableHandlerContext); > } > > UnlockAndExit: > @@ -524,8 +526,8 @@ AcpiUnloadParentTable ( > * that can create namespace objects. > */ > if (ACPI_COMPARE_NAME ( > - AcpiGbl_RootTableList.Tables[i].Signature.Ascii, > - ACPI_SIG_DSDT)) > + AcpiGbl_RootTableList.Tables[i].Signature.Ascii, > + ACPI_SIG_DSDT)) > { > Status = AE_TYPE; > break; > @@ -544,8 +546,8 @@ AcpiUnloadParentTable ( > if (AcpiGbl_TableHandler) > { > (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_UNLOAD, > - AcpiGbl_RootTableList.Tables[i].Pointer, > - AcpiGbl_TableHandlerContext); > + AcpiGbl_RootTableList.Tables[i].Pointer, > + AcpiGbl_TableHandlerContext); > } > > /* > diff --git a/src/acpica/source/components/tables/tbxfroot.c b/src/acpica/source/components/tables/tbxfroot.c > index 45d7d54..582ff67 100644 > --- a/src/acpica/source/components/tables/tbxfroot.c > +++ b/src/acpica/source/components/tables/tbxfroot.c > @@ -243,8 +243,8 @@ AcpiFindRootPointer ( > /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ > > TablePtr = AcpiOsMapMemory ( > - (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION, > - ACPI_EBDA_PTR_LENGTH); > + (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION, > + ACPI_EBDA_PTR_LENGTH); > if (!TablePtr) > { > ACPI_ERROR ((AE_INFO, > @@ -270,8 +270,8 @@ AcpiFindRootPointer ( > * minimum of 1K length) > */ > TablePtr = AcpiOsMapMemory ( > - (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, > - ACPI_EBDA_WINDOW_SIZE); > + (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, > + ACPI_EBDA_WINDOW_SIZE); > if (!TablePtr) > { > ACPI_ERROR ((AE_INFO, > @@ -281,14 +281,16 @@ AcpiFindRootPointer ( > return_ACPI_STATUS (AE_NO_MEMORY); > } > > - MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_EBDA_WINDOW_SIZE); > + MemRover = AcpiTbScanMemoryForRsdp ( > + TablePtr, ACPI_EBDA_WINDOW_SIZE); > AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE); > > if (MemRover) > { > /* Return the physical address */ > > - PhysicalAddress += (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr); > + PhysicalAddress += > + (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr); > > *TableAddress = (ACPI_PHYSICAL_ADDRESS) PhysicalAddress; > return_ACPI_STATUS (AE_OK); > @@ -299,8 +301,8 @@ AcpiFindRootPointer ( > * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh > */ > TablePtr = AcpiOsMapMemory ( > - (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE, > - ACPI_HI_RSDP_WINDOW_SIZE); > + (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE, > + ACPI_HI_RSDP_WINDOW_SIZE); > > if (!TablePtr) > { > @@ -311,7 +313,8 @@ AcpiFindRootPointer ( > return_ACPI_STATUS (AE_NO_MEMORY); > } > > - MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); > + MemRover = AcpiTbScanMemoryForRsdp ( > + TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); > AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); > > if (MemRover) > @@ -369,7 +372,8 @@ AcpiTbScanMemoryForRsdp ( > { > /* The RSDP signature and checksum must both be correct */ > > - Status = AcpiTbValidateRsdp (ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover)); > + Status = AcpiTbValidateRsdp ( > + ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover)); > if (ACPI_SUCCESS (Status)) > { > /* Sig and checksum valid, we have found a real RSDP */ > diff --git a/src/acpica/source/components/utilities/utaddress.c b/src/acpica/source/components/utilities/utaddress.c > index 9d65019..18f39bd 100644 > --- a/src/acpica/source/components/utilities/utaddress.c > +++ b/src/acpica/source/components/utilities/utaddress.c > @@ -335,7 +335,7 @@ AcpiUtCheckAddressRange ( > OverlapCount++; > if (Warn) /* Optional warning message */ > { > - Pathname = AcpiNsGetExternalPathname (RangeInfo->RegionNode); > + Pathname = AcpiNsGetNormalizedPathname (RangeInfo->RegionNode, TRUE); > > ACPI_WARNING ((AE_INFO, > "%s range 0x%8.8X%8.8X-0x%8.8X%8.8X conflicts with OpRegion 0x%8.8X%8.8X-0x%8.8X%8.8X (%s)", > diff --git a/src/acpica/source/components/utilities/utalloc.c b/src/acpica/source/components/utilities/utalloc.c > index 62c3e28..22ebf3e 100644 > --- a/src/acpica/source/components/utilities/utalloc.c > +++ b/src/acpica/source/components/utilities/utalloc.c > @@ -182,35 +182,35 @@ AcpiUtCreateCaches ( > /* Object Caches, for frequently used objects */ > > Status = AcpiOsCreateCache ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE), > - ACPI_MAX_NAMESPACE_CACHE_DEPTH, &AcpiGbl_NamespaceCache); > + ACPI_MAX_NAMESPACE_CACHE_DEPTH, &AcpiGbl_NamespaceCache); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > Status = AcpiOsCreateCache ("Acpi-State", sizeof (ACPI_GENERIC_STATE), > - ACPI_MAX_STATE_CACHE_DEPTH, &AcpiGbl_StateCache); > + ACPI_MAX_STATE_CACHE_DEPTH, &AcpiGbl_StateCache); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > Status = AcpiOsCreateCache ("Acpi-Parse", sizeof (ACPI_PARSE_OBJ_COMMON), > - ACPI_MAX_PARSE_CACHE_DEPTH, &AcpiGbl_PsNodeCache); > + ACPI_MAX_PARSE_CACHE_DEPTH, &AcpiGbl_PsNodeCache); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > Status = AcpiOsCreateCache ("Acpi-ParseExt", sizeof (ACPI_PARSE_OBJ_NAMED), > - ACPI_MAX_EXTPARSE_CACHE_DEPTH, &AcpiGbl_PsNodeExtCache); > + ACPI_MAX_EXTPARSE_CACHE_DEPTH, &AcpiGbl_PsNodeExtCache); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > Status = AcpiOsCreateCache ("Acpi-Operand", sizeof (ACPI_OPERAND_OBJECT), > - ACPI_MAX_OBJECT_CACHE_DEPTH, &AcpiGbl_OperandCache); > + ACPI_MAX_OBJECT_CACHE_DEPTH, &AcpiGbl_OperandCache); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -222,14 +222,14 @@ AcpiUtCreateCaches ( > /* Memory allocation lists */ > > Status = AcpiUtCreateList ("Acpi-Global", 0, > - &AcpiGbl_GlobalList); > + &AcpiGbl_GlobalList); > if (ACPI_FAILURE (Status)) > { > return (Status); > } > > Status = AcpiUtCreateList ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE), > - &AcpiGbl_NsNodeList); > + &AcpiGbl_NsNodeList); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -259,6 +259,7 @@ AcpiUtDeleteCaches ( > #ifdef ACPI_DBG_TRACK_ALLOCATIONS > char Buffer[7]; > > + > if (AcpiGbl_DisplayFinalMemStats) > { > strcpy (Buffer, "MEMORY"); > diff --git a/src/acpica/source/components/utilities/utcache.c b/src/acpica/source/components/utilities/utcache.c > index 5cf5250..b0cf6b0 100644 > --- a/src/acpica/source/components/utilities/utcache.c > +++ b/src/acpica/source/components/utilities/utcache.c > @@ -165,9 +165,9 @@ AcpiOsCreateCache ( > /* Populate the cache object and return it */ > > memset (Cache, 0, sizeof (ACPI_MEMORY_LIST)); > - Cache->ListName = CacheName; > + Cache->ListName = CacheName; > Cache->ObjectSize = ObjectSize; > - Cache->MaxDepth = MaxDepth; > + Cache->MaxDepth = MaxDepth; > > *ReturnCache = Cache; > return (AE_OK); > diff --git a/src/acpica/source/components/utilities/utcopy.c b/src/acpica/source/components/utilities/utcopy.c > index bc77787..5ba4a22 100644 > --- a/src/acpica/source/components/utilities/utcopy.c > +++ b/src/acpica/source/components/utilities/utcopy.c > @@ -235,7 +235,7 @@ AcpiUtCopyIsimpleToEsimple ( > ExternalObject->String.Pointer = (char *) DataSpace; > ExternalObject->String.Length = InternalObject->String.Length; > *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD ( > - (ACPI_SIZE) InternalObject->String.Length + 1); > + (ACPI_SIZE) InternalObject->String.Length + 1); > > memcpy ((void *) DataSpace, > (void *) InternalObject->String.Pointer, > @@ -247,7 +247,7 @@ AcpiUtCopyIsimpleToEsimple ( > ExternalObject->Buffer.Pointer = DataSpace; > ExternalObject->Buffer.Length = InternalObject->Buffer.Length; > *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD ( > - InternalObject->String.Length); > + InternalObject->String.Length); > > memcpy ((void *) DataSpace, > (void *) InternalObject->Buffer.Pointer, > @@ -347,9 +347,9 @@ AcpiUtCopyIelementToEelement ( > ACPI_FUNCTION_ENTRY (); > > > - ThisIndex = State->Pkg.Index; > - TargetObject = (ACPI_OBJECT *) > - &((ACPI_OBJECT *)(State->Pkg.DestObject))->Package.Elements[ThisIndex]; > + ThisIndex = State->Pkg.Index; > + TargetObject = (ACPI_OBJECT *) &((ACPI_OBJECT *) > + (State->Pkg.DestObject))->Package.Elements[ThisIndex]; > > switch (ObjectType) > { > @@ -358,7 +358,7 @@ AcpiUtCopyIelementToEelement ( > * This is a simple or null object > */ > Status = AcpiUtCopyIsimpleToEsimple (SourceObject, > - TargetObject, Info->FreeSpace, &ObjectSpace); > + TargetObject, Info->FreeSpace, &ObjectSpace); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -369,9 +369,9 @@ AcpiUtCopyIelementToEelement ( > /* > * Build the package object > */ > - TargetObject->Type = ACPI_TYPE_PACKAGE; > - TargetObject->Package.Count = SourceObject->Package.Count; > - TargetObject->Package.Elements = > + TargetObject->Type = ACPI_TYPE_PACKAGE; > + TargetObject->Package.Count = SourceObject->Package.Count; > + TargetObject->Package.Elements = > ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace); > > /* > @@ -384,8 +384,8 @@ AcpiUtCopyIelementToEelement ( > * update the buffer length counter > */ > ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD ( > - (ACPI_SIZE) TargetObject->Package.Count * > - sizeof (ACPI_OBJECT)); > + (ACPI_SIZE) TargetObject->Package.Count * > + sizeof (ACPI_OBJECT)); > break; > > default: > @@ -393,8 +393,8 @@ AcpiUtCopyIelementToEelement ( > return (AE_BAD_PARAMETER); > } > > - Info->FreeSpace += ObjectSpace; > - Info->Length += ObjectSpace; > + Info->FreeSpace += ObjectSpace; > + Info->Length += ObjectSpace; > return (Status); > } > > @@ -440,28 +440,28 @@ AcpiUtCopyIpackageToEpackage ( > /* > * Free space begins right after the first package > */ > - Info.Length = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > - Info.FreeSpace = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD ( > - sizeof (ACPI_OBJECT)); > + Info.Length = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > + Info.FreeSpace = Buffer + > + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > Info.ObjectSpace = 0; > Info.NumPackages = 1; > > - ExternalObject->Type = InternalObject->Common.Type; > - ExternalObject->Package.Count = InternalObject->Package.Count; > - ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, > - Info.FreeSpace); > + ExternalObject->Type = InternalObject->Common.Type; > + ExternalObject->Package.Count = InternalObject->Package.Count; > + ExternalObject->Package.Elements = > + ACPI_CAST_PTR (ACPI_OBJECT, Info.FreeSpace); > > /* > * Leave room for an array of ACPI_OBJECTS in the buffer > * and move the free space past it > */ > - Info.Length += (ACPI_SIZE) ExternalObject->Package.Count * > - ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > + Info.Length += (ACPI_SIZE) ExternalObject->Package.Count * > + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > Info.FreeSpace += ExternalObject->Package.Count * > - ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); > > Status = AcpiUtWalkPackageTree (InternalObject, ExternalObject, > - AcpiUtCopyIelementToEelement, &Info); > + AcpiUtCopyIelementToEelement, &Info); > > *SpaceUsed = Info.Length; > return_ACPI_STATUS (Status); > @@ -500,7 +500,7 @@ AcpiUtCopyIobjectToEobject ( > * nested packages) > */ > Status = AcpiUtCopyIpackageToEpackage (InternalObject, > - RetBuffer->Pointer, &RetBuffer->Length); > + RetBuffer->Pointer, &RetBuffer->Length); > } > else > { > @@ -508,10 +508,10 @@ AcpiUtCopyIobjectToEobject ( > * Build a simple object (no nested objects) > */ > Status = AcpiUtCopyIsimpleToEsimple (InternalObject, > - ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer), > - ACPI_ADD_PTR (UINT8, RetBuffer->Pointer, > - ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))), > - &RetBuffer->Length); > + ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer), > + ACPI_ADD_PTR (UINT8, RetBuffer->Pointer, > + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))), > + &RetBuffer->Length); > /* > * build simple does not include the object size in the length > * so we add it in here > @@ -561,7 +561,7 @@ AcpiUtCopyEsimpleToIsimple ( > case ACPI_TYPE_LOCAL_REFERENCE: > > InternalObject = AcpiUtCreateInternalObject ( > - (UINT8) ExternalObject->Type); > + (UINT8) ExternalObject->Type); > if (!InternalObject) > { > return_ACPI_STATUS (AE_NO_MEMORY); > @@ -601,10 +601,10 @@ AcpiUtCopyEsimpleToIsimple ( > } > > memcpy (InternalObject->String.Pointer, > - ExternalObject->String.Pointer, > - ExternalObject->String.Length); > + ExternalObject->String.Pointer, > + ExternalObject->String.Length); > > - InternalObject->String.Length = ExternalObject->String.Length; > + InternalObject->String.Length = ExternalObject->String.Length; > break; > > case ACPI_TYPE_BUFFER: > @@ -617,10 +617,10 @@ AcpiUtCopyEsimpleToIsimple ( > } > > memcpy (InternalObject->Buffer.Pointer, > - ExternalObject->Buffer.Pointer, > - ExternalObject->Buffer.Length); > + ExternalObject->Buffer.Pointer, > + ExternalObject->Buffer.Length); > > - InternalObject->Buffer.Length = ExternalObject->Buffer.Length; > + InternalObject->Buffer.Length = ExternalObject->Buffer.Length; > > /* Mark buffer data valid */ > > @@ -629,7 +629,7 @@ AcpiUtCopyEsimpleToIsimple ( > > case ACPI_TYPE_INTEGER: > > - InternalObject->Integer.Value = ExternalObject->Integer.Value; > + InternalObject->Integer.Value = ExternalObject->Integer.Value; > break; > > case ACPI_TYPE_LOCAL_REFERENCE: > @@ -687,7 +687,8 @@ AcpiUtCopyEpackageToIpackage ( > > /* Create the package object */ > > - PackageObject = AcpiUtCreatePackageObject (ExternalObject->Package.Count); > + PackageObject = AcpiUtCreatePackageObject ( > + ExternalObject->Package.Count); > if (!PackageObject) > { > return_ACPI_STATUS (AE_NO_MEMORY); > @@ -696,14 +697,14 @@ AcpiUtCopyEpackageToIpackage ( > PackageElements = PackageObject->Package.Elements; > > /* > - * Recursive implementation. Probably ok, since nested external packages > - * as parameters should be very rare. > + * Recursive implementation. Probably ok, since nested external > + * packages as parameters should be very rare. > */ > for (i = 0; i < ExternalObject->Package.Count; i++) > { > Status = AcpiUtCopyEobjectToIobject ( > - &ExternalObject->Package.Elements[i], > - &PackageElements[i]); > + &ExternalObject->Package.Elements[i], > + &PackageElements[i]); > if (ACPI_FAILURE (Status)) > { > /* Truncate package and delete it */ > @@ -750,14 +751,16 @@ AcpiUtCopyEobjectToIobject ( > > if (ExternalObject->Type == ACPI_TYPE_PACKAGE) > { > - Status = AcpiUtCopyEpackageToIpackage (ExternalObject, InternalObject); > + Status = AcpiUtCopyEpackageToIpackage ( > + ExternalObject, InternalObject); > } > else > { > /* > * Build a simple object (no nested objects) > */ > - Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, InternalObject); > + Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, > + InternalObject); > } > > return_ACPI_STATUS (Status); > @@ -908,7 +911,7 @@ AcpiUtCopySimpleObject ( > case ACPI_TYPE_EVENT: > > Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, > - &DestDesc->Event.OsSemaphore); > + &DestDesc->Event.OsSemaphore); > if (ACPI_FAILURE (Status)) > { > return (Status); > @@ -954,9 +957,9 @@ AcpiUtCopyIelementToIelement ( > ACPI_FUNCTION_ENTRY (); > > > - ThisIndex = State->Pkg.Index; > + ThisIndex = State->Pkg.Index; > ThisTargetPtr = (ACPI_OPERAND_OBJECT **) > - &State->Pkg.DestObject->Package.Elements[ThisIndex]; > + &State->Pkg.DestObject->Package.Elements[ThisIndex]; > > switch (ObjectType) > { > @@ -970,7 +973,7 @@ AcpiUtCopyIelementToIelement ( > * This is a simple object, just copy it > */ > TargetObject = AcpiUtCreateInternalObject ( > - SourceObject->Common.Type); > + SourceObject->Common.Type); > if (!TargetObject) > { > return (AE_NO_MEMORY); > @@ -997,7 +1000,8 @@ AcpiUtCopyIelementToIelement ( > * This object is a package - go down another nesting level > * Create and build the package object > */ > - TargetObject = AcpiUtCreatePackageObject (SourceObject->Package.Count); > + TargetObject = AcpiUtCreatePackageObject ( > + SourceObject->Package.Count); > if (!TargetObject) > { > return (AE_NO_MEMORY); > @@ -1054,16 +1058,16 @@ AcpiUtCopyIpackageToIpackage ( > ACPI_FUNCTION_TRACE (UtCopyIpackageToIpackage); > > > - DestObj->Common.Type = SourceObj->Common.Type; > - DestObj->Common.Flags = SourceObj->Common.Flags; > - DestObj->Package.Count = SourceObj->Package.Count; > + DestObj->Common.Type = SourceObj->Common.Type; > + DestObj->Common.Flags = SourceObj->Common.Flags; > + DestObj->Package.Count = SourceObj->Package.Count; > > /* > * Create the object array and walk the source package tree > */ > DestObj->Package.Elements = ACPI_ALLOCATE_ZEROED ( > - ((ACPI_SIZE) SourceObj->Package.Count + 1) * > - sizeof (void *)); > + ((ACPI_SIZE) SourceObj->Package.Count + 1) * > + sizeof (void *)); > if (!DestObj->Package.Elements) > { > ACPI_ERROR ((AE_INFO, "Package allocation failure")); > @@ -1075,7 +1079,7 @@ AcpiUtCopyIpackageToIpackage ( > * This handles nested packages of arbitrary depth. > */ > Status = AcpiUtWalkPackageTree (SourceObj, DestObj, > - AcpiUtCopyIelementToIelement, WalkState); > + AcpiUtCopyIelementToIelement, WalkState); > if (ACPI_FAILURE (Status)) > { > /* On failure, delete the destination package object */ > @@ -1125,8 +1129,8 @@ AcpiUtCopyIobjectToIobject ( > > if (SourceDesc->Common.Type == ACPI_TYPE_PACKAGE) > { > - Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc, > - WalkState); > + Status = AcpiUtCopyIpackageToIpackage ( > + SourceDesc, *DestDesc, WalkState); > } > else > { > @@ -1137,7 +1141,7 @@ AcpiUtCopyIobjectToIobject ( > > if (ACPI_FAILURE (Status)) > { > - AcpiUtRemoveReference(*DestDesc); > + AcpiUtRemoveReference (*DestDesc); > } > > return_ACPI_STATUS (Status); > diff --git a/src/acpica/source/components/utilities/utdecode.c b/src/acpica/source/components/utilities/utdecode.c > index 99468d5..3d927f5 100644 > --- a/src/acpica/source/components/utilities/utdecode.c > +++ b/src/acpica/source/components/utilities/utdecode.c > @@ -191,7 +191,7 @@ const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] = > }; > > > -char * > +const char * > AcpiUtGetRegionName ( > UINT8 SpaceId) > { > @@ -213,7 +213,7 @@ AcpiUtGetRegionName ( > return ("InvalidSpaceId"); > } > > - return (ACPI_CAST_PTR (char, AcpiGbl_RegionTypes[SpaceId])); > + return (AcpiGbl_RegionTypes[SpaceId]); > } > > > @@ -241,7 +241,7 @@ static const char *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] = > }; > > > -char * > +const char * > AcpiUtGetEventName ( > UINT32 EventId) > { > @@ -251,7 +251,7 @@ AcpiUtGetEventName ( > return ("InvalidEventID"); > } > > - return (ACPI_CAST_PTR (char, AcpiGbl_EventTypes[EventId])); > + return (AcpiGbl_EventTypes[EventId]); > } > > > @@ -273,7 +273,8 @@ AcpiUtGetEventName ( > * > * The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching; > * when stored in a table it really means that we have thus far seen no > - * evidence to indicate what type is actually going to be stored for this entry. > + * evidence to indicate what type is actually going to be stored for this > + & entry. > */ > static const char AcpiGbl_BadType[] = "UNDEFINED"; > > @@ -315,21 +316,21 @@ static const char *AcpiGbl_NsTypeNames[] = > }; > > > -char * > +const char * > AcpiUtGetTypeName ( > ACPI_OBJECT_TYPE Type) > { > > if (Type > ACPI_TYPE_INVALID) > { > - return (ACPI_CAST_PTR (char, AcpiGbl_BadType)); > + return (AcpiGbl_BadType); > } > > - return (ACPI_CAST_PTR (char, AcpiGbl_NsTypeNames[Type])); > + return (AcpiGbl_NsTypeNames[Type]); > } > > > -char * > +const char * > AcpiUtGetObjectTypeName ( > ACPI_OPERAND_OBJECT *ObjDesc) > { > @@ -371,7 +372,7 @@ AcpiUtGetObjectTypeName ( > * > ******************************************************************************/ > > -char * > +const char * > AcpiUtGetNodeName ( > void *Object) > { > @@ -447,7 +448,7 @@ static const char *AcpiGbl_DescTypeNames[] = > }; > > > -char * > +const char * > AcpiUtGetDescriptorName ( > void *Object) > { > @@ -462,9 +463,7 @@ AcpiUtGetDescriptorName ( > return ("Not a Descriptor"); > } > > - return (ACPI_CAST_PTR (char, > - AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)])); > - > + return (AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)]); > } > > > @@ -541,7 +540,7 @@ AcpiUtGetReferenceName ( > > /* Names for internal mutex objects, used for debug output */ > > -static char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = > +static const char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = > { > "ACPI_MTX_Interpreter", > "ACPI_MTX_Namespace", > @@ -551,7 +550,7 @@ static char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = > "ACPI_MTX_Memory", > }; > > -char * > +const char * > AcpiUtGetMutexName ( > UINT32 MutexId) > { > diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c > index 8a55c8e..4fa093c 100644 > --- a/src/acpica/source/components/utilities/utdelete.c > +++ b/src/acpica/source/components/utilities/utdelete.c > @@ -292,6 +292,7 @@ AcpiUtDeleteInternalObj ( > AcpiUtDeleteObjectDesc (Object->Method.Mutex); > Object->Method.Mutex = NULL; > } > + > if (Object->Method.Node) > { > Object->Method.Node = NULL; > @@ -625,8 +626,8 @@ AcpiUtUpdateObjectReference ( > } > > /* > - * All sub-objects must have their reference count incremented also. > - * Different object types have different subobjects. > + * All sub-objects must have their reference count incremented > + * also. Different object types have different subobjects. > */ > switch (Object->Common.Type) > { > @@ -686,7 +687,7 @@ AcpiUtUpdateObjectReference ( > * for later processing (this eliminates recursion.) > */ > Status = AcpiUtCreateUpdateStateAndPush ( > - NextObject, Action, &StateList); > + NextObject, Action, &StateList); > if (ACPI_FAILURE (Status)) > { > goto ErrorExit; > @@ -711,7 +712,7 @@ AcpiUtUpdateObjectReference ( > > NextObject = Object->BankField.BankObj; > Status = AcpiUtCreateUpdateStateAndPush ( > - Object->BankField.RegionObj, Action, &StateList); > + Object->BankField.RegionObj, Action, &StateList); > if (ACPI_FAILURE (Status)) > { > goto ErrorExit; > @@ -722,7 +723,7 @@ AcpiUtUpdateObjectReference ( > > NextObject = Object->IndexField.IndexObj; > Status = AcpiUtCreateUpdateStateAndPush ( > - Object->IndexField.DataObj, Action, &StateList); > + Object->IndexField.DataObj, Action, &StateList); > if (ACPI_FAILURE (Status)) > { > goto ErrorExit; > diff --git a/src/acpica/source/components/utilities/uterror.c b/src/acpica/source/components/utilities/uterror.c > index 52b9ae0..cd8b913 100644 > --- a/src/acpica/source/components/utilities/uterror.c > +++ b/src/acpica/source/components/utilities/uterror.c > @@ -316,8 +316,8 @@ AcpiUtNamespaceError ( > { > /* Convert path to external format */ > > - Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, > - InternalName, NULL, &Name); > + Status = AcpiNsExternalizeName ( > + ACPI_UINT32_MAX, InternalName, NULL, &Name); > > /* Print target name */ > > @@ -379,8 +379,8 @@ AcpiUtMethodError ( > > if (Path) > { > - Status = AcpiNsGetNode (PrefixNode, Path, ACPI_NS_NO_UPSEARCH, > - &Node); > + Status = AcpiNsGetNode (PrefixNode, Path, > + ACPI_NS_NO_UPSEARCH, &Node); > if (ACPI_FAILURE (Status)) > { > AcpiOsPrintf ("[Could not get node by pathname]"); > diff --git a/src/acpica/source/components/utilities/uteval.c b/src/acpica/source/components/utilities/uteval.c > index dd754c0..81c155c 100644 > --- a/src/acpica/source/components/utilities/uteval.c > +++ b/src/acpica/source/components/utilities/uteval.c > @@ -303,7 +303,7 @@ AcpiUtEvaluateNumericObject ( > > > Status = AcpiUtEvaluateObject (DeviceNode, ObjectName, > - ACPI_BTYPE_INTEGER, &ObjDesc); > + ACPI_BTYPE_INTEGER, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -350,7 +350,7 @@ AcpiUtExecute_STA ( > > > Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__STA, > - ACPI_BTYPE_INTEGER, &ObjDesc); > + ACPI_BTYPE_INTEGER, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > if (AE_NOT_FOUND == Status) > @@ -423,8 +423,8 @@ AcpiUtExecutePowerMethods ( > * return type is an Integer. > */ > Status = AcpiUtEvaluateObject (DeviceNode, > - ACPI_CAST_PTR (char, MethodNames[i]), > - ACPI_BTYPE_INTEGER, &ObjDesc); > + ACPI_CAST_PTR (char, MethodNames[i]), > + ACPI_BTYPE_INTEGER, &ObjDesc); > if (ACPI_SUCCESS (Status)) > { > OutValues[i] = (UINT8) ObjDesc->Integer.Value; > diff --git a/src/acpica/source/components/utilities/uthex.c b/src/acpica/source/components/utilities/uthex.c > index c652f6a..3a32003 100644 > --- a/src/acpica/source/components/utilities/uthex.c > +++ b/src/acpica/source/components/utilities/uthex.c > @@ -122,7 +122,7 @@ > > /* Hex to ASCII conversion table */ > > -static char AcpiGbl_HexToAscii[] = > +static const char AcpiGbl_HexToAscii[] = > { > '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' > }; > diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c > index 3bb12f0..6d9a59f 100644 > --- a/src/acpica/source/components/utilities/utids.c > +++ b/src/acpica/source/components/utilities/utids.c > @@ -155,7 +155,7 @@ AcpiUtExecute_HID ( > > > Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__HID, > - ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); > + ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -174,7 +174,8 @@ AcpiUtExecute_HID ( > > /* Allocate a buffer for the HID */ > > - Hid = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > + Hid = ACPI_ALLOCATE_ZEROED ( > + sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > if (!Hid) > { > Status = AE_NO_MEMORY; > @@ -211,77 +212,6 @@ Cleanup: > > /******************************************************************************* > * > - * FUNCTION: AcpiUtExecute_SUB > - * > - * PARAMETERS: DeviceNode - Node for the device > - * ReturnId - Where the _SUB is returned > - * > - * RETURN: Status > - * > - * DESCRIPTION: Executes the _SUB control method that returns the subsystem > - * ID of the device. The _SUB value is always a string containing > - * either a valid PNP or ACPI ID. > - * > - * NOTE: Internal function, no parameter validation > - * > - ******************************************************************************/ > - > -ACPI_STATUS > -AcpiUtExecute_SUB ( > - ACPI_NAMESPACE_NODE *DeviceNode, > - ACPI_PNP_DEVICE_ID **ReturnId) > -{ > - ACPI_OPERAND_OBJECT *ObjDesc; > - ACPI_PNP_DEVICE_ID *Sub; > - UINT32 Length; > - ACPI_STATUS Status; > - > - > - ACPI_FUNCTION_TRACE (UtExecute_SUB); > - > - > - Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__SUB, > - ACPI_BTYPE_STRING, &ObjDesc); > - if (ACPI_FAILURE (Status)) > - { > - return_ACPI_STATUS (Status); > - } > - > - /* Get the size of the String to be returned, includes null terminator */ > - > - Length = ObjDesc->String.Length + 1; > - > - /* Allocate a buffer for the SUB */ > - > - Sub = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > - if (!Sub) > - { > - Status = AE_NO_MEMORY; > - goto Cleanup; > - } > - > - /* Area for the string starts after PNP_DEVICE_ID struct */ > - > - Sub->String = ACPI_ADD_PTR (char, Sub, sizeof (ACPI_PNP_DEVICE_ID)); > - > - /* Simply copy existing string */ > - > - strcpy (Sub->String, ObjDesc->String.Pointer); > - Sub->Length = Length; > - *ReturnId = Sub; > - > - > -Cleanup: > - > - /* On exit, we must delete the return object */ > - > - AcpiUtRemoveReference (ObjDesc); > - return_ACPI_STATUS (Status); > -} > - > - > -/******************************************************************************* > - * > * FUNCTION: AcpiUtExecute_UID > * > * PARAMETERS: DeviceNode - Node for the device > @@ -313,7 +243,7 @@ AcpiUtExecute_UID ( > > > Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__UID, > - ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); > + ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -332,7 +262,8 @@ AcpiUtExecute_UID ( > > /* Allocate a buffer for the UID */ > > - Uid = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > + Uid = ACPI_ALLOCATE_ZEROED ( > + sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > if (!Uid) > { > Status = AE_NO_MEMORY; > @@ -413,8 +344,8 @@ AcpiUtExecute_CID ( > /* Evaluate the _CID method for this device */ > > Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CID, > - ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE, > - &ObjDesc); > + ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE, > + &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -491,7 +422,8 @@ AcpiUtExecute_CID ( > { > /* Convert the Integer (EISAID) CID to a string */ > > - AcpiExEisaIdToString (NextIdString, CidObjects[i]->Integer.Value); > + AcpiExEisaIdToString ( > + NextIdString, CidObjects[i]->Integer.Value); > Length = ACPI_EISAID_STRING_SIZE; > } > else /* ACPI_TYPE_STRING */ > @@ -560,7 +492,7 @@ AcpiUtExecute_CLS ( > > > Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CLS, > - ACPI_BTYPE_PACKAGE, &ObjDesc); > + ACPI_BTYPE_PACKAGE, &ObjDesc); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -590,7 +522,8 @@ AcpiUtExecute_CLS ( > > /* Allocate a buffer for the CLS */ > > - Cls = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > + Cls = ACPI_ALLOCATE_ZEROED ( > + sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); > if (!Cls) > { > Status = AE_NO_MEMORY; > diff --git a/src/acpica/source/components/utilities/utinit.c b/src/acpica/source/components/utilities/utinit.c > index ed090f1..ee14368 100644 > --- a/src/acpica/source/components/utilities/utinit.c > +++ b/src/acpica/source/components/utilities/utinit.c > @@ -334,8 +334,6 @@ AcpiUtInitGlobals ( > AcpiGbl_DisableMemTracking = FALSE; > #endif > > - ACPI_DEBUGGER_EXEC (AcpiGbl_DbTerminateThreads = FALSE); > - > return_ACPI_STATUS (AE_OK); > } > > @@ -384,6 +382,20 @@ AcpiUtSubsystemShutdown ( > ACPI_FUNCTION_TRACE (UtSubsystemShutdown); > > > + /* Just exit if subsystem is already shutdown */ > + > + if (AcpiGbl_Shutdown) > + { > + ACPI_ERROR ((AE_INFO, "ACPI Subsystem is already terminated")); > + return_VOID; > + } > + > + /* Subsystem appears active, go ahead and shut it down */ > + > + AcpiGbl_Shutdown = TRUE; > + AcpiGbl_StartupFlags = 0; > + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem\n")); > + > #ifndef ACPI_ASL_COMPILER > > /* Close the AcpiEvent Handling */ > diff --git a/src/acpica/source/components/utilities/utmath.c b/src/acpica/source/components/utilities/utmath.c > index dafba6d..b8d0422 100644 > --- a/src/acpica/source/components/utilities/utmath.c > +++ b/src/acpica/source/components/utilities/utmath.c > @@ -194,9 +194,10 @@ AcpiUtShortDivide ( > * and is generated by the second divide. > */ > ACPI_DIV_64_BY_32 (0, DividendOvl.Part.Hi, Divisor, > - Quotient.Part.Hi, Remainder32); > + Quotient.Part.Hi, Remainder32); > + > ACPI_DIV_64_BY_32 (Remainder32, DividendOvl.Part.Lo, Divisor, > - Quotient.Part.Lo, Remainder32); > + Quotient.Part.Lo, Remainder32); > > /* Return only what was requested */ > > @@ -272,9 +273,10 @@ AcpiUtDivide ( > * and is generated by the second divide. > */ > ACPI_DIV_64_BY_32 (0, Dividend.Part.Hi, Divisor.Part.Lo, > - Quotient.Part.Hi, Partial1); > + Quotient.Part.Hi, Partial1); > + > ACPI_DIV_64_BY_32 (Partial1, Dividend.Part.Lo, Divisor.Part.Lo, > - Quotient.Part.Lo, Remainder.Part.Lo); > + Quotient.Part.Lo, Remainder.Part.Lo); > } > > else > @@ -291,25 +293,24 @@ AcpiUtDivide ( > > do > { > - ACPI_SHIFT_RIGHT_64 (NormalizedDivisor.Part.Hi, > - NormalizedDivisor.Part.Lo); > - ACPI_SHIFT_RIGHT_64 (NormalizedDividend.Part.Hi, > - NormalizedDividend.Part.Lo); > + ACPI_SHIFT_RIGHT_64 ( > + NormalizedDivisor.Part.Hi, NormalizedDivisor.Part.Lo); > + ACPI_SHIFT_RIGHT_64 ( > + NormalizedDividend.Part.Hi, NormalizedDividend.Part.Lo); > > } while (NormalizedDivisor.Part.Hi != 0); > > /* Partial divide */ > > - ACPI_DIV_64_BY_32 (NormalizedDividend.Part.Hi, > - NormalizedDividend.Part.Lo, > - NormalizedDivisor.Part.Lo, > - Quotient.Part.Lo, Partial1); > + ACPI_DIV_64_BY_32 ( > + NormalizedDividend.Part.Hi, NormalizedDividend.Part.Lo, > + NormalizedDivisor.Part.Lo, Quotient.Part.Lo, Partial1); > > /* > - * The quotient is always 32 bits, and simply requires adjustment. > - * The 64-bit remainder must be generated. > + * The quotient is always 32 bits, and simply requires > + * adjustment. The 64-bit remainder must be generated. > */ > - Partial1 = Quotient.Part.Lo * Divisor.Part.Hi; > + Partial1 = Quotient.Part.Lo * Divisor.Part.Hi; > Partial2.Full = (UINT64) Quotient.Part.Lo * Divisor.Part.Lo; > Partial3.Full = (UINT64) Partial2.Part.Hi + Partial1; > > @@ -335,7 +336,7 @@ AcpiUtDivide ( > } > } > > - Remainder.Full = Remainder.Full - Dividend.Full; > + Remainder.Full = Remainder.Full - Dividend.Full; > Remainder.Part.Hi = (UINT32) -((INT32) Remainder.Part.Hi); > Remainder.Part.Lo = (UINT32) -((INT32) Remainder.Part.Lo); > > diff --git a/src/acpica/source/components/utilities/utmisc.c b/src/acpica/source/components/utilities/utmisc.c > index ecf22db..4a248d7 100644 > --- a/src/acpica/source/components/utilities/utmisc.c > +++ b/src/acpica/source/components/utilities/utmisc.c > @@ -144,10 +144,10 @@ AcpiUtIsPciRootBridge ( > * ACPI 3.0+: check for a PCI Express root also. > */ > if (!(strcmp (Id, > - PCI_ROOT_HID_STRING)) || > + PCI_ROOT_HID_STRING)) || > > !(strcmp (Id, > - PCI_EXPRESS_ROOT_HID_STRING))) > + PCI_EXPRESS_ROOT_HID_STRING))) > { > return (TRUE); > } > @@ -257,17 +257,17 @@ AcpiUtSetIntegerWidth ( > { > /* 32-bit case */ > > - AcpiGbl_IntegerBitWidth = 32; > + AcpiGbl_IntegerBitWidth = 32; > AcpiGbl_IntegerNybbleWidth = 8; > - AcpiGbl_IntegerByteWidth = 4; > + AcpiGbl_IntegerByteWidth = 4; > } > else > { > /* 64-bit case (ACPI 2.0+) */ > > - AcpiGbl_IntegerBitWidth = 64; > + AcpiGbl_IntegerBitWidth = 64; > AcpiGbl_IntegerNybbleWidth = 16; > - AcpiGbl_IntegerByteWidth = 8; > + AcpiGbl_IntegerByteWidth = 8; > } > } > > @@ -358,9 +358,9 @@ AcpiUtWalkPackageTree ( > { > /* Get one element of the package */ > > - ThisIndex = State->Pkg.Index; > + ThisIndex = State->Pkg.Index; > ThisSourceObj = (ACPI_OPERAND_OBJECT *) > - State->Pkg.SourceObject->Package.Elements[ThisIndex]; > + State->Pkg.SourceObject->Package.Elements[ThisIndex]; > > /* > * Check for: > @@ -371,7 +371,8 @@ AcpiUtWalkPackageTree ( > * case below. > */ > if ((!ThisSourceObj) || > - (ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != ACPI_DESC_TYPE_OPERAND) || > + (ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != > + ACPI_DESC_TYPE_OPERAND) || > (ThisSourceObj->Common.Type != ACPI_TYPE_PACKAGE)) > { > Status = WalkCallback (ACPI_COPY_TYPE_SIMPLE, ThisSourceObj, > @@ -382,7 +383,8 @@ AcpiUtWalkPackageTree ( > } > > State->Pkg.Index++; > - while (State->Pkg.Index >= State->Pkg.SourceObject->Package.Count) > + while (State->Pkg.Index >= > + State->Pkg.SourceObject->Package.Count) > { > /* > * We've handled all of the objects at this level, This means > @@ -417,8 +419,8 @@ AcpiUtWalkPackageTree ( > { > /* This is a subobject of type package */ > > - Status = WalkCallback (ACPI_COPY_TYPE_PACKAGE, ThisSourceObj, > - State, Context); > + Status = WalkCallback ( > + ACPI_COPY_TYPE_PACKAGE, ThisSourceObj, State, Context); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -429,8 +431,8 @@ AcpiUtWalkPackageTree ( > * The callback above returned a new target package object. > */ > AcpiUtPushGenericState (&StateList, State); > - State = AcpiUtCreatePkgState (ThisSourceObj, > - State->Pkg.ThisTargetObj, 0); > + State = AcpiUtCreatePkgState ( > + ThisSourceObj, State->Pkg.ThisTargetObj, 0); > if (!State) > { > /* Free any stacked Update State objects */ > diff --git a/src/acpica/source/components/utilities/utmutex.c b/src/acpica/source/components/utilities/utmutex.c > index 0fa4c36..b07adea 100644 > --- a/src/acpica/source/components/utilities/utmutex.c > +++ b/src/acpica/source/components/utilities/utmutex.c > @@ -401,11 +401,12 @@ AcpiUtAcquireMutex ( > "Thread %u attempting to acquire Mutex [%s]\n", > (UINT32) ThisThreadId, AcpiUtGetMutexName (MutexId))); > > - Status = AcpiOsAcquireMutex (AcpiGbl_MutexInfo[MutexId].Mutex, > - ACPI_WAIT_FOREVER); > + Status = AcpiOsAcquireMutex ( > + AcpiGbl_MutexInfo[MutexId].Mutex, ACPI_WAIT_FOREVER); > if (ACPI_SUCCESS (Status)) > { > - ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %u acquired Mutex [%s]\n", > + ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, > + "Thread %u acquired Mutex [%s]\n", > (UINT32) ThisThreadId, AcpiUtGetMutexName (MutexId))); > > AcpiGbl_MutexInfo[MutexId].UseCount++; > diff --git a/src/acpica/source/components/utilities/utnonansi.c b/src/acpica/source/components/utilities/utnonansi.c > index 01a4361..b69c494 100644 > --- a/src/acpica/source/components/utilities/utnonansi.c > +++ b/src/acpica/source/components/utilities/utnonansi.c > @@ -404,8 +404,8 @@ AcpiUtStrtoul64 ( > > /* Divide the digit into the correct position */ > > - (void) AcpiUtShortDivide ((Dividend - (UINT64) ThisDigit), > - Base, &Quotient, NULL); > + (void) AcpiUtShortDivide ( > + (Dividend - (UINT64) ThisDigit), Base, &Quotient, NULL); > > if (ReturnValue > Quotient) > { > diff --git a/src/acpica/source/components/utilities/utobject.c b/src/acpica/source/components/utilities/utobject.c > index fb4efaf..8116b35 100644 > --- a/src/acpica/source/components/utilities/utobject.c > +++ b/src/acpica/source/components/utilities/utobject.c > @@ -179,7 +179,8 @@ AcpiUtCreateInternalObjectDbg ( > > /* Allocate the raw object descriptor */ > > - Object = AcpiUtAllocateObjectDescDbg (ModuleName, LineNumber, ComponentId); > + Object = AcpiUtAllocateObjectDescDbg ( > + ModuleName, LineNumber, ComponentId); > if (!Object) > { > return_PTR (NULL); > @@ -193,8 +194,8 @@ AcpiUtCreateInternalObjectDbg ( > > /* These types require a secondary object */ > > - SecondObject = AcpiUtAllocateObjectDescDbg (ModuleName, > - LineNumber, ComponentId); > + SecondObject = AcpiUtAllocateObjectDescDbg ( > + ModuleName, LineNumber, ComponentId); > if (!SecondObject) > { > AcpiUtDeleteObjectDesc (Object); > @@ -265,7 +266,7 @@ AcpiUtCreatePackageObject ( > * terminated. > */ > PackageElements = ACPI_ALLOCATE_ZEROED ( > - ((ACPI_SIZE) Count + 1) * sizeof (void *)); > + ((ACPI_SIZE) Count + 1) * sizeof (void *)); > if (!PackageElements) > { > ACPI_FREE (PackageDesc); > @@ -355,6 +356,7 @@ AcpiUtCreateBufferObject ( > { > ACPI_ERROR ((AE_INFO, "Could not allocate size %u", > (UINT32) BufferSize)); > + > AcpiUtRemoveReference (BufferDesc); > return_PTR (NULL); > } > @@ -414,6 +416,7 @@ AcpiUtCreateStringObject ( > { > ACPI_ERROR ((AE_INFO, "Could not allocate size %u", > (UINT32) StringSize)); > + > AcpiUtRemoveReference (StringDesc); > return_PTR (NULL); > } > @@ -470,8 +473,8 @@ AcpiUtValidInternalObject ( > default: > > ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, > - "%p is not an ACPI operand obj [%s]\n", > - Object, AcpiUtGetDescriptorName (Object))); > + "%p is not an ACPI operand obj [%s]\n", > + Object, AcpiUtGetDescriptorName (Object))); > break; > } > > @@ -520,7 +523,7 @@ AcpiUtAllocateObjectDescDbg ( > ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_OPERAND); > > ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n", > - Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT))); > + Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT))); > > return_PTR (Object); > } > @@ -783,12 +786,12 @@ AcpiUtGetPackageObjectSize ( > ACPI_FUNCTION_TRACE_PTR (UtGetPackageObjectSize, InternalObject); > > > - Info.Length = 0; > + Info.Length = 0; > Info.ObjectSpace = 0; > Info.NumPackages = 1; > > - Status = AcpiUtWalkPackageTree (InternalObject, NULL, > - AcpiUtGetElementLength, &Info); > + Status = AcpiUtWalkPackageTree ( > + InternalObject, NULL, AcpiUtGetElementLength, &Info); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -799,8 +802,8 @@ AcpiUtGetPackageObjectSize ( > * just add the length of the package objects themselves. > * Round up to the next machine word. > */ > - Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)) * > - (ACPI_SIZE) Info.NumPackages; > + Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD ( > + sizeof (ACPI_OBJECT)) * (ACPI_SIZE) Info.NumPackages; > > /* Return the total package length */ > > @@ -834,7 +837,8 @@ AcpiUtGetObjectSize ( > ACPI_FUNCTION_ENTRY (); > > > - if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_OPERAND) && > + if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == > + ACPI_DESC_TYPE_OPERAND) && > (InternalObject->Common.Type == ACPI_TYPE_PACKAGE)) > { > Status = AcpiUtGetPackageObjectSize (InternalObject, ObjLength); > diff --git a/src/acpica/source/components/utilities/utosi.c b/src/acpica/source/components/utilities/utosi.c > index b4d8a71..930c45d 100644 > --- a/src/acpica/source/components/utilities/utosi.c > +++ b/src/acpica/source/components/utilities/utosi.c > @@ -228,7 +228,9 @@ AcpiUtInitializeInterfaces ( > > /* Link the static list of supported interfaces */ > > - for (i = 0; i < (ACPI_ARRAY_LENGTH (AcpiDefaultSupportedInterfaces) - 1); i++) > + for (i = 0; > + i < (ACPI_ARRAY_LENGTH (AcpiDefaultSupportedInterfaces) - 1); > + i++) > { > AcpiDefaultSupportedInterfaces[i].Next = > &AcpiDefaultSupportedInterfaces[(ACPI_SIZE) i + 1]; > @@ -372,8 +374,10 @@ AcpiUtRemoveInterface ( > { > if (!strcmp (InterfaceName, NextInterface->Name)) > { > - /* Found: name is in either the static list or was added at runtime */ > - > + /* > + * Found: name is in either the static list > + * or was added at runtime > + */ > if (NextInterface->Flags & ACPI_OSI_DYNAMIC) > { > /* Interface was added dynamically, remove and free it */ > @@ -393,8 +397,8 @@ AcpiUtRemoveInterface ( > else > { > /* > - * Interface is in static list. If marked invalid, then it > - * does not actually exist. Else, mark it invalid. > + * Interface is in static list. If marked invalid, then > + * it does not actually exist. Else, mark it invalid. > */ > if (NextInterface->Flags & ACPI_OSI_INVALID) > { > diff --git a/src/acpica/source/components/utilities/utownerid.c b/src/acpica/source/components/utilities/utownerid.c > index bf391e1..25773a8 100644 > --- a/src/acpica/source/components/utilities/utownerid.c > +++ b/src/acpica/source/components/utilities/utownerid.c > @@ -153,7 +153,8 @@ AcpiUtAllocateOwnerId ( > > if (*OwnerId) > { > - ACPI_ERROR ((AE_INFO, "Owner ID [0x%2.2X] already exists", *OwnerId)); > + ACPI_ERROR ((AE_INFO, > + "Owner ID [0x%2.2X] already exists", *OwnerId)); > return_ACPI_STATUS (AE_ALREADY_EXISTS); > } > > @@ -167,8 +168,8 @@ AcpiUtAllocateOwnerId ( > > /* > * Find a free owner ID, cycle through all possible IDs on repeated > - * allocations. (ACPI_NUM_OWNERID_MASKS + 1) because first index may have > - * to be scanned twice. > + * allocations. (ACPI_NUM_OWNERID_MASKS + 1) because first index > + * may have to be scanned twice. > */ > for (i = 0, j = AcpiGbl_LastOwnerIdIndex; > i < (ACPI_NUM_OWNERID_MASKS + 1); > @@ -224,8 +225,8 @@ AcpiUtAllocateOwnerId ( > * they are released when a table is unloaded or a method completes > * execution. > * > - * If this error happens, there may be very deep nesting of invoked control > - * methods, or there may be a bug where the IDs are not released. > + * If this error happens, there may be very deep nesting of invoked > + * control methods, or there may be a bug where the IDs are not released. > */ > Status = AE_OWNER_ID_LIMIT; > ACPI_ERROR ((AE_INFO, > diff --git a/src/acpica/source/components/utilities/utpredef.c b/src/acpica/source/components/utilities/utpredef.c > index 11471c7..e72fd88 100644 > --- a/src/acpica/source/components/utilities/utpredef.c > +++ b/src/acpica/source/components/utilities/utpredef.c > @@ -326,8 +326,10 @@ AcpiUtMatchResourceName ( > const ACPI_PREDEFINED_INFO *ThisName; > > > - /* Quick check for a predefined name, first character must be underscore */ > - > + /* > + * Quick check for a predefined name, first character must > + * be underscore > + */ > if (Name[0] != '_') > { > return (NULL); > diff --git a/src/acpica/source/components/utilities/utprint.c b/src/acpica/source/components/utilities/utprint.c > index b3e8fd2..02602dd 100644 > --- a/src/acpica/source/components/utilities/utprint.c > +++ b/src/acpica/source/components/utilities/utprint.c > @@ -462,8 +462,8 @@ AcpiUtFormatNumber ( > String = AcpiUtBoundStringOutput (String, End, '0'); > if (Base == 16) > { > - String = AcpiUtBoundStringOutput (String, End, > - Upper ? 'X' : 'x'); > + String = AcpiUtBoundStringOutput ( > + String, End, Upper ? 'X' : 'x'); > } > } > if (!(Type & ACPI_FORMAT_LEFT)) > @@ -572,6 +572,7 @@ AcpiUtVsnprintf ( > { > break; > } > + > } while (1); > > /* Process width */ > @@ -609,6 +610,7 @@ AcpiUtVsnprintf ( > ++Format; > Precision = va_arg (Args, int); > } > + > if (Precision < 0) > { > Precision = 0; > @@ -671,11 +673,13 @@ AcpiUtVsnprintf ( > Pos = AcpiUtBoundStringOutput (Pos, End, ' '); > } > } > + > for (i = 0; i < Length; ++i) > { > Pos = AcpiUtBoundStringOutput (Pos, End, *s); > ++s; > } > + > while (Length < Width--) > { > Pos = AcpiUtBoundStringOutput (Pos, End, ' '); > @@ -714,8 +718,8 @@ AcpiUtVsnprintf ( > } > > p = va_arg (Args, void *); > - Pos = AcpiUtFormatNumber (Pos, End, > - ACPI_TO_INTEGER (p), 16, Width, Precision, Type); > + Pos = AcpiUtFormatNumber ( > + Pos, End, ACPI_TO_INTEGER (p), 16, Width, Precision, Type); > continue; > > default: > @@ -766,7 +770,7 @@ AcpiUtVsnprintf ( > } > > Pos = AcpiUtFormatNumber (Pos, End, Number, Base, > - Width, Precision, Type); > + Width, Precision, Type); > } > > if (Size > 0) > @@ -845,7 +849,7 @@ AcpiUtFileVprintf ( > > Flags = AcpiOsAcquireLock (AcpiGbl_PrintLock); > Length = AcpiUtVsnprintf (AcpiGbl_PrintBuffer, > - sizeof (AcpiGbl_PrintBuffer), Format, Args); > + sizeof (AcpiGbl_PrintBuffer), Format, Args); > > (void) AcpiOsWriteFile (File, AcpiGbl_PrintBuffer, Length, 1); > AcpiOsReleaseLock (AcpiGbl_PrintLock, Flags); > diff --git a/src/acpica/source/components/utilities/utresrc.c b/src/acpica/source/components/utilities/utresrc.c > index 44a4c66..1657972 100644 > --- a/src/acpica/source/components/utilities/utresrc.c > +++ b/src/acpica/source/components/utilities/utresrc.c > @@ -561,8 +561,8 @@ AcpiUtWalkAmlResources ( > if (ACPI_FAILURE (Status)) > { > /* > - * Exit on failure. Cannot continue because the descriptor length > - * may be bogus also. > + * Exit on failure. Cannot continue because the descriptor > + * length may be bogus also. > */ > return_ACPI_STATUS (Status); > } > @@ -575,7 +575,8 @@ AcpiUtWalkAmlResources ( > > if (UserFunction) > { > - Status = UserFunction (Aml, Length, Offset, ResourceIndex, Context); > + Status = UserFunction ( > + Aml, Length, Offset, ResourceIndex, Context); > if (ACPI_FAILURE (Status)) > { > return_ACPI_STATUS (Status); > @@ -697,8 +698,8 @@ AcpiUtValidateResource ( > } > > /* > - * Check validity of the resource type, via AcpiGbl_ResourceTypes. Zero > - * indicates an invalid resource. > + * Check validity of the resource type, via AcpiGbl_ResourceTypes. > + * Zero indicates an invalid resource. > */ > if (!AcpiGbl_ResourceTypes[ResourceIndex]) > { > @@ -885,7 +886,7 @@ AcpiUtGetResourceLength ( > /* Small Resource type -- bits 2:0 of byte 0 contain the length */ > > ResourceLength = (UINT16) (ACPI_GET8 (Aml) & > - ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK); > + ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK); > } > > return (ResourceLength); > @@ -950,7 +951,7 @@ AcpiUtGetDescriptorLength ( > * the header length (depends on if this is a small or large resource) > */ > return (AcpiUtGetResourceLength (Aml) + > - AcpiUtGetResourceHeaderLength (Aml)); > + AcpiUtGetResourceHeaderLength (Aml)); > } > > > @@ -990,7 +991,7 @@ AcpiUtGetResourceEndTag ( > /* Validate the template and get a pointer to the EndTag */ > > Status = AcpiUtWalkAmlResources (NULL, ObjDesc->Buffer.Pointer, > - ObjDesc->Buffer.Length, NULL, (void **) EndTag); > + ObjDesc->Buffer.Length, NULL, (void **) EndTag); > > return_ACPI_STATUS (Status); > } > diff --git a/src/acpica/source/components/utilities/utstate.c b/src/acpica/source/components/utilities/utstate.c > index 1e64186..6e5d335 100644 > --- a/src/acpica/source/components/utilities/utstate.c > +++ b/src/acpica/source/components/utilities/utstate.c > @@ -350,6 +350,7 @@ AcpiUtCreatePkgState ( > State->Pkg.DestObject = ExternalObject; > State->Pkg.Index= Index; > State->Pkg.NumPackages = 1; > + > return (State); > } > > @@ -389,6 +390,7 @@ AcpiUtCreateControlState ( > > State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_CONTROL; > State->Common.State = ACPI_CONTROL_CONDITIONAL_EXECUTING; > + > return (State); > } > > @@ -419,5 +421,6 @@ AcpiUtDeleteGenericState ( > { > (void) AcpiOsReleaseObject (AcpiGbl_StateCache, State); > } > + > return; > } > diff --git a/src/acpica/source/components/utilities/utstring.c b/src/acpica/source/components/utilities/utstring.c > index 3660cbb..529b39f 100644 > --- a/src/acpica/source/components/utilities/utstring.c > +++ b/src/acpica/source/components/utilities/utstring.c > @@ -219,6 +219,7 @@ AcpiUtPrintString ( > break; > } > } > + > AcpiOsPrintf ("\""); > > if (i == MaxLength && String[i]) > diff --git a/src/acpica/source/components/utilities/uttrack.c b/src/acpica/source/components/utilities/uttrack.c > index f7f0bce..8906866 100644 > --- a/src/acpica/source/components/utilities/uttrack.c > +++ b/src/acpica/source/components/utilities/uttrack.c > @@ -187,7 +187,7 @@ AcpiUtCreateList ( > > memset (Cache, 0, sizeof (ACPI_MEMORY_LIST)); > > - Cache->ListName = ListName; > + Cache->ListName = ListName; > Cache->ObjectSize = ObjectSize; > > *ReturnCache = Cache; > @@ -241,8 +241,8 @@ AcpiUtAllocateAndTrack ( > return (NULL); > } > > - Status = AcpiUtTrackAllocation (Allocation, Size, > - ACPI_MEM_MALLOC, Component, Module, Line); > + Status = AcpiUtTrackAllocation ( > + Allocation, Size, ACPI_MEM_MALLOC, Component, Module, Line); > if (ACPI_FAILURE (Status)) > { > AcpiOsFree (Allocation); > @@ -252,9 +252,12 @@ AcpiUtAllocateAndTrack ( > AcpiGbl_GlobalList->TotalAllocated++; > AcpiGbl_GlobalList->TotalSize += (UINT32) Size; > AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size; > - if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied) > + > + if (AcpiGbl_GlobalList->CurrentTotalSize > > + AcpiGbl_GlobalList->MaxOccupied) > { > - AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize; > + AcpiGbl_GlobalList->MaxOccupied = > + AcpiGbl_GlobalList->CurrentTotalSize; > } > > return ((void *) &Allocation->UserSpace); > @@ -296,7 +299,8 @@ AcpiUtAllocateZeroedAndTrack ( > Size = 1; > } > > - Allocation = AcpiOsAllocateZeroed (Size + sizeof (ACPI_DEBUG_MEM_HEADER)); > + Allocation = AcpiOsAllocateZeroed ( > + Size + sizeof (ACPI_DEBUG_MEM_HEADER)); > if (!Allocation) > { > /* Report allocation error */ > @@ -307,7 +311,7 @@ AcpiUtAllocateZeroedAndTrack ( > } > > Status = AcpiUtTrackAllocation (Allocation, Size, > - ACPI_MEM_CALLOC, Component, Module, Line); > + ACPI_MEM_CALLOC, Component, Module, Line); > if (ACPI_FAILURE (Status)) > { > AcpiOsFree (Allocation); > @@ -317,9 +321,12 @@ AcpiUtAllocateZeroedAndTrack ( > AcpiGbl_GlobalList->TotalAllocated++; > AcpiGbl_GlobalList->TotalSize += (UINT32) Size; > AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size; > - if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied) > + > + if (AcpiGbl_GlobalList->CurrentTotalSize > > + AcpiGbl_GlobalList->MaxOccupied) > { > - AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize; > + AcpiGbl_GlobalList->MaxOccupied = > + AcpiGbl_GlobalList->CurrentTotalSize; > } > > return ((void *) &Allocation->UserSpace); > @@ -364,13 +371,12 @@ AcpiUtFreeAndTrack ( > } > > DebugBlock = ACPI_CAST_PTR (ACPI_DEBUG_MEM_BLOCK, > - (((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER))); > + (((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER))); > > AcpiGbl_GlobalList->TotalFreed++; > AcpiGbl_GlobalList->CurrentTotalSize -= DebugBlock->Size; > > - Status = AcpiUtRemoveAllocation (DebugBlock, > - Component, Module, Line); > + Status = AcpiUtRemoveAllocation (DebugBlock, Component, Module, Line); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, "Could not free memory")); > @@ -512,10 +518,10 @@ AcpiUtTrackAllocation ( > > /* Fill in the instance data */ > > - Allocation->Size = (UINT32) Size; > + Allocation->Size = (UINT32) Size; > Allocation->AllocType = AllocType; > Allocation->Component = Component; > - Allocation->Line = Line; > + Allocation->Line = Line; > > strncpy (Allocation->Module, Module, ACPI_MAX_MODULE_NAME); > Allocation->Module[ACPI_MAX_MODULE_NAME-1] = 0; > @@ -526,7 +532,8 @@ AcpiUtTrackAllocation ( > > if (MemList->ListHead) > { > - ((ACPI_DEBUG_MEM_BLOCK *)(MemList->ListHead))->Previous = Allocation; > + ((ACPI_DEBUG_MEM_BLOCK *)(MemList->ListHead))->Previous = > + Allocation; > } > > Allocation->Next = MemList->ListHead; > @@ -659,37 +666,37 @@ AcpiUtDumpAllocationInfo ( > > /* > ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, > - ("%30s: %4d (%3d Kb)\n", "Current allocations", > - MemList->CurrentCount, > - ROUND_UP_TO_1K (MemList->CurrentSize))); > + ("%30s: %4d (%3d Kb)\n", "Current allocations", > + MemList->CurrentCount, > + ROUND_UP_TO_1K (MemList->CurrentSize))); > > ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, > - ("%30s: %4d (%3d Kb)\n", "Max concurrent allocations", > - MemList->MaxConcurrentCount, > - ROUND_UP_TO_1K (MemList->MaxConcurrentSize))); > + ("%30s: %4d (%3d Kb)\n", "Max concurrent allocations", > + MemList->MaxConcurrentCount, > + ROUND_UP_TO_1K (MemList->MaxConcurrentSize))); > > > ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, > - ("%30s: %4d (%3d Kb)\n", "Total (all) internal objects", > - RunningObjectCount, > - ROUND_UP_TO_1K (RunningObjectSize))); > + ("%30s: %4d (%3d Kb)\n", "Total (all) internal objects", > + RunningObjectCount, > + ROUND_UP_TO_1K (RunningObjectSize))); > > ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, > - ("%30s: %4d (%3d Kb)\n", "Total (all) allocations", > - RunningAllocCount, > - ROUND_UP_TO_1K (RunningAllocSize))); > + ("%30s: %4d (%3d Kb)\n", "Total (all) allocations", > + RunningAllocCount, > + ROUND_UP_TO_1K (RunningAllocSize))); > > > ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, > - ("%30s: %4d (%3d Kb)\n", "Current Nodes", > - AcpiGbl_CurrentNodeCount, > - ROUND_UP_TO_1K (AcpiGbl_CurrentNodeSize))); > + ("%30s: %4d (%3d Kb)\n", "Current Nodes", > + AcpiGbl_CurrentNodeCount, > + ROUND_UP_TO_1K (AcpiGbl_CurrentNodeSize))); > > ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, > - ("%30s: %4d (%3d Kb)\n", "Max Nodes", > - AcpiGbl_MaxConcurrentNodeCount, > - ROUND_UP_TO_1K ((AcpiGbl_MaxConcurrentNodeCount * > - sizeof (ACPI_NAMESPACE_NODE))))); > + ("%30s: %4d (%3d Kb)\n", "Max Nodes", > + AcpiGbl_MaxConcurrentNodeCount, > + ROUND_UP_TO_1K ((AcpiGbl_MaxConcurrentNodeCount * > + sizeof (ACPI_NAMESPACE_NODE))))); > */ > return_VOID; > } > @@ -741,7 +748,8 @@ AcpiUtDumpAllocations ( > if ((Element->Component & Component) && > ((Module == NULL) || (0 == strcmp (Module, Element->Module)))) > { > - Descriptor = ACPI_CAST_PTR (ACPI_DESCRIPTOR, &Element->UserSpace); > + Descriptor = ACPI_CAST_PTR ( > + ACPI_DESCRIPTOR, &Element->UserSpace); > > if (Element->Size < sizeof (ACPI_COMMON_DESCRIPTOR)) > { > @@ -754,7 +762,8 @@ AcpiUtDumpAllocations ( > { > /* Ignore allocated objects that are in a cache */ > > - if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != ACPI_DESC_TYPE_CACHED) > + if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != > + ACPI_DESC_TYPE_CACHED) > { > AcpiOsPrintf ("%p Length 0x%04X %9.9s-%u [%s] ", > Descriptor, Element->Size, Element->Module, > diff --git a/src/acpica/source/components/utilities/utuuid.c b/src/acpica/source/components/utilities/utuuid.c > index 71fa0bc..7a6f698 100644 > --- a/src/acpica/source/components/utilities/utuuid.c > +++ b/src/acpica/source/components/utilities/utuuid.c > @@ -165,11 +165,11 @@ AcpiUtConvertStringToUuid ( > > for (i = 0; i < UUID_BUFFER_LENGTH; i++) > { > - UuidBuffer[i] = > - (AcpiUtAsciiCharToHex (InString[AcpiGbl_MapToUuidOffset[i]]) << 4); > + UuidBuffer[i] = (AcpiUtAsciiCharToHex ( > + InString[AcpiGbl_MapToUuidOffset[i]]) << 4); > > - UuidBuffer[i] |= > - AcpiUtAsciiCharToHex (InString[AcpiGbl_MapToUuidOffset[i] + 1]); > + UuidBuffer[i] |= AcpiUtAsciiCharToHex ( > + InString[AcpiGbl_MapToUuidOffset[i] + 1]); > } > } > #endif > diff --git a/src/acpica/source/components/utilities/utxface.c b/src/acpica/source/components/utilities/utxface.c > index a34970e..35fb8a0 100644 > --- a/src/acpica/source/components/utilities/utxface.c > +++ b/src/acpica/source/components/utilities/utxface.c > @@ -145,24 +145,6 @@ AcpiTerminate ( > ACPI_FUNCTION_TRACE (AcpiTerminate); > > > - /* Just exit if subsystem is already shutdown */ > - > - if (AcpiGbl_Shutdown) > - { > - ACPI_ERROR ((AE_INFO, "ACPI Subsystem is already terminated")); > - return_ACPI_STATUS (AE_OK); > - } > - > - /* Subsystem appears active, go ahead and shut it down */ > - > - AcpiGbl_Shutdown = TRUE; > - AcpiGbl_StartupFlags = 0; > - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem\n")); > - > - /* Terminate the AML Debugger if present */ > - > - ACPI_DEBUGGER_EXEC (AcpiGbl_DbTerminateThreads = TRUE); > - > /* Shutdown and free all resources */ > > AcpiUtSubsystemShutdown (); > @@ -262,7 +244,6 @@ AcpiGetSystemInfo ( > * Populate the return buffer > */ > InfoPtr = (ACPI_SYSTEM_INFO *) OutBuffer->Pointer; > - > InfoPtr->AcpiCaVersion = ACPI_CA_VERSION; > > /* System flags (ACPI capabilities) */ > @@ -330,11 +311,9 @@ AcpiGetStatistics ( > memcpy (Stats->FixedEventCount, AcpiFixedEventCount, > sizeof (AcpiFixedEventCount)); > > - > /* Other counters */ > > Stats->MethodCount = AcpiMethodCount; > - > return_ACPI_STATUS (AE_OK); > } > > diff --git a/src/acpica/source/components/utilities/utxferror.c b/src/acpica/source/components/utilities/utxferror.c > index b62e5df..bbc0cf6 100644 > --- a/src/acpica/source/components/utilities/utxferror.c > +++ b/src/acpica/source/components/utilities/utxferror.c > @@ -205,8 +205,10 @@ AcpiException ( > } > else > { > - AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", AcpiFormatException (Status)); > + AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", > + AcpiFormatException (Status)); > } > + > va_start (ArgList, Format); > AcpiOsVprintf (Format, ArgList); > ACPI_MSG_SUFFIX; > diff --git a/src/acpica/source/include/acapps.h b/src/acpica/source/include/acapps.h > index 1c2004d..4fbebbf 100644 > --- a/src/acpica/source/include/acapps.h > +++ b/src/acpica/source/include/acapps.h > @@ -116,6 +116,7 @@ > #ifndef _ACAPPS > #define _ACAPPS > > +#include <stdio.h> > > #ifdef _MSC_VER /* disable some level-4 warnings */ > #pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ > @@ -165,10 +166,38 @@ > AcpiOsPrintf (" %-18s%s\n", Name, Description); > > > +/* Check for unexpected exceptions */ > + > +#define ACPI_CHECK_STATUS(Name, Status, Expected) \ > + if (Status != Expected) \ > + { \ > + AcpiOsPrintf ("Unexpected %s from %s (%s-%d)\n", \ > + AcpiFormatException (Status), #Name, _AcpiModuleName, __LINE__); \ > + } > + > +/* Check for unexpected non-AE_OK errors */ > + > + > +#define ACPI_CHECK_OK(Name, Status) ACPI_CHECK_STATUS (Name, Status, AE_OK); > + > #define FILE_SUFFIX_DISASSEMBLY "dsl" > #define FILE_SUFFIX_BINARY_TABLE ".dat" /* Needs the dot */ > > > +/* acfileio */ > + > +ACPI_STATUS > +AcpiAcGetAllTablesFromFile ( > + char *Filename, > + UINT8 GetOnlyAmlTables, > + ACPI_NEW_TABLE_DESC **ReturnListHead); > + > +/* Values for GetOnlyAmlTables */ > + > +#define ACPI_GET_ONLY_AML_TABLES TRUE > +#define ACPI_GET_ALL_TABLES FALSE > + > + > /* > * getopt > */ > @@ -197,51 +226,6 @@ CmGetFileSize ( > ACPI_FILE File); > > > -#ifndef ACPI_DUMP_APP > -/* > - * adisasm > - */ > -ACPI_STATUS > -AdAmlDisassemble ( > - BOOLEAN OutToFile, > - char *Filename, > - char *Prefix, > - char **OutFilename); > - > -void > -AdPrintStatistics ( > - void); > - > -ACPI_STATUS > -AdFindDsdt( > - UINT8 **DsdtPtr, > - UINT32 *DsdtLength); > - > -void > -AdDumpTables ( > - void); > - > -ACPI_STATUS > -AdGetLocalTables ( > - void); > - > -ACPI_STATUS > -AdParseTable ( > - ACPI_TABLE_HEADER *Table, > - ACPI_OWNER_ID *OwnerId, > - BOOLEAN LoadTable, > - BOOLEAN External); > - > -ACPI_STATUS > -AdDisplayTables ( > - char *Filename, > - ACPI_TABLE_HEADER *Table); > - > -ACPI_STATUS > -AdDisplayStatistics ( > - void); > - > - > /* > * adwalk > */ > @@ -300,6 +284,5 @@ AdWriteTable ( > UINT32 Length, > char *TableName, > char *OemTableId); > -#endif > > #endif /* _ACAPPS */ > diff --git a/src/acpica/source/include/acdebug.h b/src/acpica/source/include/acdebug.h > index 3b245b0..d208b2e 100644 > --- a/src/acpica/source/include/acdebug.h > +++ b/src/acpica/source/include/acdebug.h > @@ -163,11 +163,17 @@ typedef struct acpi_db_execute_walk > /* > * dbxface - external debugger interfaces > */ > +ACPI_DBR_DEPENDENT_RETURN_OK ( > ACPI_STATUS > AcpiDbSingleStep ( > ACPI_WALK_STATE *WalkState, > ACPI_PARSE_OBJECT *Op, > - UINT32 OpType); > + UINT32 OpType)) > + > +ACPI_DBR_DEPENDENT_RETURN_VOID ( > +void > +AcpiDbSignalBreakPoint ( > + ACPI_WALK_STATE *WalkState)) > > > /* > @@ -362,10 +368,11 @@ AcpiDbDecodeAndDisplayObject ( > char *Target, > char *OutputType); > > +ACPI_DBR_DEPENDENT_RETURN_VOID ( > void > AcpiDbDisplayResultObject ( > ACPI_OPERAND_OBJECT *ObjDesc, > - ACPI_WALK_STATE *WalkState); > + ACPI_WALK_STATE *WalkState)) > > ACPI_STATUS > AcpiDbDisplayAllMethods ( > @@ -391,10 +398,11 @@ void > AcpiDbDisplayObjectType ( > char *ObjectArg); > > +ACPI_DBR_DEPENDENT_RETURN_VOID ( > void > AcpiDbDisplayArgumentObject ( > ACPI_OPERAND_OBJECT *ObjDesc, > - ACPI_WALK_STATE *WalkState); > + ACPI_WALK_STATE *WalkState)) > > > /* > @@ -446,10 +454,8 @@ AcpiDbLoadAcpiTable ( > char *Filename); > > ACPI_STATUS > -AcpiDbGetTableFromFile ( > - char *Filename, > - ACPI_TABLE_HEADER **Table, > - BOOLEAN MustBeAmlTable); > +AcpiDbLoadTables ( > + ACPI_NEW_TABLE_DESC *ListHead); > > > /* > diff --git a/src/acpica/source/include/acdisasm.h b/src/acpica/source/include/acdisasm.h > index d448b9f..2ff2dab 100644 > --- a/src/acpica/source/include/acdisasm.h > +++ b/src/acpica/source/include/acdisasm.h > @@ -1119,7 +1119,7 @@ AcpiDmCloseOperator ( > > > /* > - * acdisasm > + * dmtables > */ > void > AdDisassemblerHeader ( > @@ -1129,4 +1129,35 @@ AdDisassemblerHeader ( > #define ACPI_IS_AML_TABLE 0 > #define ACPI_IS_DATA_TABLE 1 > > + > +/* > + * adisasm > + */ > +ACPI_STATUS > +AdAmlDisassemble ( > + BOOLEAN OutToFile, > + char *Filename, > + char *Prefix, > + char **OutFilename); > + > +ACPI_STATUS > +AdGetLocalTables ( > + void); > + > +ACPI_STATUS > +AdParseTable ( > + ACPI_TABLE_HEADER *Table, > + ACPI_OWNER_ID *OwnerId, > + BOOLEAN LoadTable, > + BOOLEAN External); > + > +ACPI_STATUS > +AdDisplayTables ( > + char *Filename, > + ACPI_TABLE_HEADER *Table); > + > +ACPI_STATUS > +AdDisplayStatistics ( > + void); > + > #endif /* __ACDISASM_H__ */ > diff --git a/src/acpica/source/include/acglobal.h b/src/acpica/source/include/acglobal.h > index 2733f39..2fb8062 100644 > --- a/src/acpica/source/include/acglobal.h > +++ b/src/acpica/source/include/acglobal.h > @@ -134,6 +134,7 @@ ACPI_GLOBAL (ACPI_TABLE_HEADER, AcpiGbl_OriginalDsdtHeader); > ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX); > ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX); > ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX); > +ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX); > > #if (!ACPI_REDUCED_HARDWARE) > ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS); > @@ -400,9 +401,9 @@ ACPI_GLOBAL (ACPI_EXTERNAL_FILE *, AcpiGbl_ExternalFileList); > > #ifdef ACPI_DEBUGGER > > -ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateThreads, FALSE); > ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE); > ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_MethodExecuting, FALSE); > +ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID); > > ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoIniMethods); > ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoRegionSupport); > @@ -412,6 +413,8 @@ ACPI_GLOBAL (char *, AcpiGbl_DbFilename); > ACPI_GLOBAL (UINT32, AcpiGbl_DbDebugLevel); > ACPI_GLOBAL (UINT32, AcpiGbl_DbConsoleDebugLevel); > ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_DbScopeNode); > +ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateLoop); > +ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbThreadsTerminated); > > ACPI_GLOBAL (char *, AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]); > ACPI_GLOBAL (ACPI_OBJECT_TYPE, AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]); > diff --git a/src/acpica/source/include/aclocal.h b/src/acpica/source/include/aclocal.h > index fdeafff..8d1e37b 100644 > --- a/src/acpica/source/include/aclocal.h > +++ b/src/acpica/source/include/aclocal.h > @@ -190,6 +190,14 @@ typedef struct acpi_rw_lock > > #define ACPI_MUTEX_NOT_ACQUIRED (ACPI_THREAD_ID) -1 > > +/* This Thread ID means an invalid thread ID */ > + > +#ifdef ACPI_OS_INVALID_THREAD_ID > +#define ACPI_INVALID_THREAD_ID ACPI_OS_INVALID_THREAD_ID > +#else > +#define ACPI_INVALID_THREAD_ID ((ACPI_THREAD_ID) 0xFFFFFFFF) > +#endif > + > /* Table for the global mutexes */ > > typedef struct acpi_mutex_info > @@ -308,6 +316,16 @@ typedef struct acpi_table_list > #define ACPI_ROOT_ALLOW_RESIZE (2) > > > +/* List to manage incoming ACPI tables */ > + > +typedef struct acpi_new_table_desc > +{ > + ACPI_TABLE_HEADER *Table; > + struct acpi_new_table_desc *Next; > + > +} ACPI_NEW_TABLE_DESC; > + > + > /* Predefined table indexes */ > > #define ACPI_INVALID_TABLE_INDEX (0xFFFFFFFF) > diff --git a/src/acpica/source/include/acmacros.h b/src/acpica/source/include/acmacros.h > index f8dfffb..ba40732 100644 > --- a/src/acpica/source/include/acmacros.h > +++ b/src/acpica/source/include/acmacros.h > @@ -478,18 +478,6 @@ > > > /* > - * Some code only gets executed when the debugger is built in. > - * Note that this is entirely independent of whether the > - * DEBUG_PRINT stuff (set by ACPI_DEBUG_OUTPUT) is on, or not. > - */ > -#ifdef ACPI_DEBUGGER > -#define ACPI_DEBUGGER_EXEC(a) a > -#else > -#define ACPI_DEBUGGER_EXEC(a) > -#endif > - > - > -/* > * Macros used for ACPICA utilities only > */ > > diff --git a/src/acpica/source/include/acpiosxf.h b/src/acpica/source/include/acpiosxf.h > index 45cec74..4afc7d5 100644 > --- a/src/acpica/source/include/acpiosxf.h > +++ b/src/acpica/source/include/acpiosxf.h > @@ -129,7 +129,8 @@ typedef enum > OSL_GLOBAL_LOCK_HANDLER, > OSL_NOTIFY_HANDLER, > OSL_GPE_HANDLER, > - OSL_DEBUGGER_THREAD, > + OSL_DEBUGGER_MAIN_THREAD, > + OSL_DEBUGGER_EXEC_THREAD, > OSL_EC_POLL_HANDLER, > OSL_EC_BURST_HANDLER > > diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h > index 55412c8..1bb43ea 100644 > --- a/src/acpica/source/include/acpixf.h > +++ b/src/acpica/source/include/acpixf.h > @@ -118,7 +118,7 @@ > > /* Current ACPICA subsystem version in YYYYMMDD format */ > > -#define ACPI_CA_VERSION 0x20150930 > +#define ACPI_CA_VERSION 0x20151124 > > #include "acconfig.h" > #include "actypes.h" > @@ -449,6 +449,30 @@ ACPI_GLOBAL (BOOLEAN, AcpiGbl_SystemAwakeAndRunning); > #endif /* ACPI_APPLICATION */ > > > +/* > + * Debugger prototypes > + * > + * All interfaces used by debugger will be configured > + * out of the ACPICA build unless the ACPI_DEBUGGER > + * flag is defined. > + */ > +#ifdef ACPI_DEBUGGER > +#define ACPI_DBR_DEPENDENT_RETURN_OK(Prototype) \ > + ACPI_EXTERNAL_RETURN_OK(Prototype) > + > +#define ACPI_DBR_DEPENDENT_RETURN_VOID(Prototype) \ > + ACPI_EXTERNAL_RETURN_VOID(Prototype) > + > +#else > +#define ACPI_DBR_DEPENDENT_RETURN_OK(Prototype) \ > + static ACPI_INLINE Prototype {return(AE_OK);} > + > +#define ACPI_DBR_DEPENDENT_RETURN_VOID(Prototype) \ > + static ACPI_INLINE Prototype {return;} > + > +#endif /* ACPI_DEBUGGER */ > + > + > /***************************************************************************** > * > * ACPICA public interface prototypes > @@ -1288,4 +1312,8 @@ void > AcpiTerminateDebugger ( > void); > > +void > +AcpiSetDebuggerThreadId ( > + ACPI_THREAD_ID ThreadId); > + > #endif /* __ACXFACE_H__ */ > diff --git a/src/acpica/source/include/actables.h b/src/acpica/source/include/actables.h > index 10fb56d..3fbeb3b 100644 > --- a/src/acpica/source/include/actables.h > +++ b/src/acpica/source/include/actables.h > @@ -187,7 +187,7 @@ AcpiTbSetTableLoadedFlag ( > */ > void > AcpiTbParseFadt ( > - UINT32 TableIndex); > + void); > > void > AcpiTbCreateLocalFadt ( > @@ -279,10 +279,6 @@ ACPI_STATUS > AcpiTbInitializeFacs ( > void); > > -BOOLEAN > -AcpiTbTablesLoaded ( > - void); > - > void > AcpiTbPrintTableHeader( > ACPI_PHYSICAL_ADDRESS Address, > diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h > index e9e765d..09a2d82 100644 > --- a/src/acpica/source/include/actypes.h > +++ b/src/acpica/source/include/actypes.h > @@ -1304,7 +1304,7 @@ UINT32 (*ACPI_INTERFACE_HANDLER) ( > #define ACPI_PCICLS_STRING_SIZE 7 /* Includes null terminator */ > > > -/* Structures used for device/processor HID, UID, CID, and SUB */ > +/* Structures used for device/processor HID, UID, CID */ > > typedef struct acpi_pnp_device_id > { > @@ -1339,7 +1339,6 @@ typedef struct acpi_device_info > UINT64 Address; /* _ADR value */ > ACPI_PNP_DEVICE_ID HardwareId; /* _HID value */ > ACPI_PNP_DEVICE_ID UniqueId; /* _UID value */ > - ACPI_PNP_DEVICE_ID SubsystemId; /* _SUB value */ > ACPI_PNP_DEVICE_ID ClassCode; /* _CLS value */ > ACPI_PNP_DEVICE_ID_LIST CompatibleIdList; /* _CID list <must be last> */ > > @@ -1355,13 +1354,12 @@ typedef struct acpi_device_info > #define ACPI_VALID_ADR 0x0002 > #define ACPI_VALID_HID 0x0004 > #define ACPI_VALID_UID 0x0008 > -#define ACPI_VALID_SUB 0x0010 > #define ACPI_VALID_CID 0x0020 > #define ACPI_VALID_CLS 0x0040 > #define ACPI_VALID_SXDS 0x0100 > #define ACPI_VALID_SXWS 0x0200 > > -/* Flags for _STA return value (CurrentStatus above) */ > +/* Flags for _STA method */ > > #define ACPI_STA_DEVICE_PRESENT 0x01 > #define ACPI_STA_DEVICE_ENABLED 0x02 > diff --git a/src/acpica/source/include/acutils.h b/src/acpica/source/include/acutils.h > index 4fc44ff..c85ab83 100644 > --- a/src/acpica/source/include/acutils.h > +++ b/src/acpica/source/include/acutils.h > @@ -278,7 +278,7 @@ AcpiUtInitGlobals ( > > #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) > > -char * > +const char * > AcpiUtGetMutexName ( > UINT32 MutexId); > > @@ -288,15 +288,15 @@ AcpiUtGetNotifyName ( > ACPI_OBJECT_TYPE Type); > #endif > > -char * > +const char * > AcpiUtGetTypeName ( > ACPI_OBJECT_TYPE Type); > > -char * > +const char * > AcpiUtGetNodeName ( > void *Object); > > -char * > +const char * > AcpiUtGetDescriptorName ( > void *Object); > > @@ -304,15 +304,15 @@ const char * > AcpiUtGetReferenceName ( > ACPI_OPERAND_OBJECT *Object); > > -char * > +const char * > AcpiUtGetObjectTypeName ( > ACPI_OPERAND_OBJECT *ObjDesc); > > -char * > +const char * > AcpiUtGetRegionName ( > UINT8 SpaceId); > > -char * > +const char * > AcpiUtGetEventName ( > UINT32 EventId); > > @@ -556,17 +556,6 @@ AcpiUtExecutePowerMethods ( > > > /* > - * utfileio - file operations > - */ > -#ifdef ACPI_APPLICATION > -ACPI_STATUS > -AcpiUtReadTableFromFile ( > - char *Filename, > - ACPI_TABLE_HEADER **Table); > -#endif > - > - > -/* > * utids - device ID support > */ > ACPI_STATUS > @@ -580,11 +569,6 @@ AcpiUtExecute_UID ( > ACPI_PNP_DEVICE_ID **ReturnId); > > ACPI_STATUS > -AcpiUtExecute_SUB ( > - ACPI_NAMESPACE_NODE *DeviceNode, > - ACPI_PNP_DEVICE_ID **ReturnId); > - > -ACPI_STATUS > AcpiUtExecute_CID ( > ACPI_NAMESPACE_NODE *DeviceNode, > ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); > diff --git a/src/acpica/source/include/platform/aclinux.h b/src/acpica/source/include/platform/aclinux.h > index 668f237..42f3f0a 100644 > --- a/src/acpica/source/include/platform/aclinux.h > +++ b/src/acpica/source/include/platform/aclinux.h > @@ -136,12 +136,16 @@ > > #define ACPI_USE_SYSTEM_INTTYPES > > -/* Compile for reduced hardware mode only with this kernel config */ > +/* Kernel specific ACPICA configuration */ > > #ifdef CONFIG_ACPI_REDUCED_HARDWARE_ONLY > #define ACPI_REDUCED_HARDWARE 1 > #endif > > +#ifdef CONFIG_ACPI_DEBUGGER > +#define ACPI_DEBUGGER > +#endif > + > #include <linux/string.h> > #include <linux/kernel.h> > #include <linux/ctype.h> > @@ -224,7 +228,6 @@ > * OSL interfaces used by utilities > */ > #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput > -#define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine > #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName > #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex > #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress > diff --git a/src/acpica/source/include/platform/aclinuxex.h b/src/acpica/source/include/platform/aclinuxex.h > index 52352ce..c6262de 100644 > --- a/src/acpica/source/include/platform/aclinuxex.h > +++ b/src/acpica/source/include/platform/aclinuxex.h > @@ -208,6 +208,15 @@ AcpiOsGetThreadId ( > Lock ? AE_OK : AE_NO_MEMORY; \ > }) > > +static inline BOOLEAN > +AcpiOsReadable ( > + void *Pointer, > + ACPI_SIZE Length) > +{ > + return TRUE; > +} > + > + > /* > * OSL interfaces added by Linux > */ > diff --git a/src/acpica/source/os_specific/service_layers/oslibcfs.c b/src/acpica/source/os_specific/service_layers/oslibcfs.c > index dadc40d..92650e2 100644 > --- a/src/acpica/source/os_specific/service_layers/oslibcfs.c > +++ b/src/acpica/source/os_specific/service_layers/oslibcfs.c > @@ -153,6 +153,7 @@ AcpiOsOpenFile ( > { > ModesStr[i++] = 'w'; > } > + > if (Modes & ACPI_FILE_BINARY) > { > ModesStr[i++] = 'b'; > @@ -186,6 +187,7 @@ void > AcpiOsCloseFile ( > ACPI_FILE File) > { > + > fclose (File); > } > > @@ -311,6 +313,7 @@ AcpiOsSetFileOffset ( > { > Ret = fseek (File, Offset, SEEK_SET); > } > + > if (From == ACPI_FILE_END) > { > Ret = fseek (File, Offset, SEEK_END); > diff --git a/src/acpica/source/tools/acpiexec/aecommon.h b/src/acpica/source/tools/acpiexec/aecommon.h > index c0662bf..1aac52b 100644 > --- a/src/acpica/source/tools/acpiexec/aecommon.h > +++ b/src/acpica/source/tools/acpiexec/aecommon.h > @@ -136,34 +136,6 @@ > #include <string.h> > #include <signal.h> > > -extern BOOLEAN AcpiGbl_IgnoreErrors; > -extern UINT8 AcpiGbl_RegionFillValue; > -extern UINT8 AcpiGbl_UseHwReducedFadt; > -extern BOOLEAN AcpiGbl_DisplayRegionAccess; > -extern BOOLEAN AcpiGbl_DoInterfaceTests; > -extern BOOLEAN AcpiGbl_LoadTestTables; > -extern FILE *AcpiGbl_NamespaceInitFile; > -extern ACPI_CONNECTION_INFO AeMyContext; > - > -/* Check for unexpected exceptions */ > - > -#define AE_CHECK_STATUS(Name, Status, Expected) \ > - if (Status != Expected) \ > - { \ > - AcpiOsPrintf ("Unexpected %s from %s (%s-%d)\n", \ > - AcpiFormatException (Status), #Name, _AcpiModuleName, __LINE__); \ > - } > - > -/* Check for unexpected non-AE_OK errors */ > - > -#define AE_CHECK_OK(Name, Status) AE_CHECK_STATUS (Name, Status, AE_OK); > - > -typedef struct ae_table_desc > -{ > - ACPI_TABLE_HEADER *Table; > - struct ae_table_desc *Next; > - > -} AE_TABLE_DESC; > > /* > * Debug Regions > @@ -186,6 +158,16 @@ typedef struct ae_debug_regions > } AE_DEBUG_REGIONS; > > > +extern BOOLEAN AcpiGbl_IgnoreErrors; > +extern UINT8 AcpiGbl_RegionFillValue; > +extern UINT8 AcpiGbl_UseHwReducedFadt; > +extern BOOLEAN AcpiGbl_DisplayRegionAccess; > +extern BOOLEAN AcpiGbl_DoInterfaceTests; > +extern BOOLEAN AcpiGbl_LoadTestTables; > +extern FILE *AcpiGbl_NamespaceInitFile; > +extern ACPI_CONNECTION_INFO AeMyContext; > + > + > #define TEST_OUTPUT_LEVEL(lvl) if ((lvl) & OutputLevel) > > #define OSD_PRINT(lvl,fp) TEST_OUTPUT_LEVEL(lvl) {\ > @@ -197,8 +179,7 @@ AeCtrlCHandler ( > > ACPI_STATUS > AeBuildLocalTables ( > - UINT32 TableCount, > - AE_TABLE_DESC *TableList); > + ACPI_NEW_TABLE_DESC *TableList); > > ACPI_STATUS > AeInstallTables ( > diff --git a/src/acpica/source/tools/acpiexec/aehandlers.c b/src/acpica/source/tools/acpiexec/aehandlers.c > index 97ea103..9a3f913 100644 > --- a/src/acpica/source/tools/acpiexec/aehandlers.c > +++ b/src/acpica/source/tools/acpiexec/aehandlers.c > @@ -435,6 +435,7 @@ AeExceptionHandler ( > { > AcpiOsPrintf ("at module level (table load)"); > } > + > AcpiOsPrintf (" Opcode [%s] @%X\n", AcpiPsGetOpcodeName (Opcode), AmlOffset); > > /* > @@ -530,7 +531,7 @@ AeTableHandler ( > /* Enable any GPEs associated with newly-loaded GPE methods */ > > Status = AcpiUpdateAllGpes (); > - AE_CHECK_OK (AcpiUpdateAllGpes, Status); > + ACPI_CHECK_OK (AcpiUpdateAllGpes, Status); > > printf ("[AcpiExec] Table Event %s, [%4.4s] %p\n", > TableEvents[Event], ((ACPI_TABLE_HEADER *) Table)->Signature, Table); > @@ -600,7 +601,8 @@ AeGlobalEventHandler ( > break; > } > > - AcpiOsPrintf ("[AcpiExec] Global Event Handler received: Type %s Number %.2X Dev %p\n", > + AcpiOsPrintf ( > + "[AcpiExec] Global Event Handler received: Type %s Number %.2X Dev %p\n", > TypeName, EventNumber, Device); > } > > @@ -771,15 +773,17 @@ AeInstallLateHandlers ( > /* Install a user SCI handler */ > > Status = AeInstallSciHandler (); > - AE_CHECK_OK (AeInstallSciHandler, Status); > + ACPI_CHECK_OK (AeInstallSciHandler, Status); > > /* Install some fixed event handlers */ > > - Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL, AeEventHandler, NULL); > - AE_CHECK_OK (AcpiInstallFixedEventHandler, Status); > + Status = AcpiInstallFixedEventHandler ( > + ACPI_EVENT_GLOBAL, AeEventHandler, NULL); > + ACPI_CHECK_OK (AcpiInstallFixedEventHandler, Status); > > - Status = AcpiInstallFixedEventHandler (ACPI_EVENT_RTC, AeEventHandler, NULL); > - AE_CHECK_OK (AcpiInstallFixedEventHandler, Status); > + Status = AcpiInstallFixedEventHandler ( > + ACPI_EVENT_RTC, AeEventHandler, NULL); > + ACPI_CHECK_OK (AcpiInstallFixedEventHandler, Status); > } > #endif /* !ACPI_REDUCED_HARDWARE */ > > @@ -889,11 +893,11 @@ AeInstallEarlyHandlers ( > > Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY, > AeNotifyHandler1, NULL); > - AE_CHECK_OK (AcpiInstallNotifyHandler, Status); > + ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status); > > Status = AcpiRemoveNotifyHandler (Handle, ACPI_ALL_NOTIFY, > AeNotifyHandler1); > - AE_CHECK_OK (AcpiRemoveNotifyHandler, Status); > + ACPI_CHECK_OK (AcpiRemoveNotifyHandler, Status); > > #if 0 > Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY, > @@ -919,35 +923,34 @@ AeInstallEarlyHandlers ( > AeNotifyHandler1, ACPI_CAST_PTR (void, 0x77777777)); > > Status = AcpiAttachData (Handle, AeAttachedDataHandler, Handle); > - AE_CHECK_OK (AcpiAttachData, Status); > + ACPI_CHECK_OK (AcpiAttachData, Status); > > Status = AcpiDetachData (Handle, AeAttachedDataHandler); > - AE_CHECK_OK (AcpiDetachData, Status); > + ACPI_CHECK_OK (AcpiDetachData, Status); > > /* Test attach data at the root object */ > > Status = AcpiAttachData (ACPI_ROOT_OBJECT, AeAttachedDataHandler, > AcpiGbl_RootNode); > - AE_CHECK_OK (AcpiAttachData, Status); > + ACPI_CHECK_OK (AcpiAttachData, Status); > > Status = AcpiAttachData (ACPI_ROOT_OBJECT, AeAttachedDataHandler2, > AcpiGbl_RootNode); > - AE_CHECK_OK (AcpiAttachData, Status); > + ACPI_CHECK_OK (AcpiAttachData, Status); > > /* Test support for multiple attaches */ > > Status = AcpiAttachData (Handle, AeAttachedDataHandler, Handle); > - AE_CHECK_OK (AcpiAttachData, Status); > + ACPI_CHECK_OK (AcpiAttachData, Status); > > Status = AcpiAttachData (Handle, AeAttachedDataHandler2, Handle); > - AE_CHECK_OK (AcpiAttachData, Status); > + ACPI_CHECK_OK (AcpiAttachData, Status); > } > else > { > printf ("No _SB_ found, %s\n", AcpiFormatException (Status)); > } > > - > Status = AcpiGetHandle (NULL, "\\_TZ.TZ1", &Handle); > if (ACPI_SUCCESS (Status)) > { > diff --git a/src/acpica/source/tools/acpiexec/aeregion.c b/src/acpica/source/tools/acpiexec/aeregion.c > index 55b8e7f..46ddcb8 100644 > --- a/src/acpica/source/tools/acpiexec/aeregion.c > +++ b/src/acpica/source/tools/acpiexec/aeregion.c > @@ -237,8 +237,8 @@ AeInstallRegionHandlers ( > /* Install handler at the root object */ > > Status = AcpiInstallAddressSpaceHandler (ACPI_ROOT_OBJECT, > - SpaceIdList[i], AeRegionHandler, > - AeRegionInit, &AeMyContext); > + SpaceIdList[i], AeRegionHandler, > + AeRegionInit, &AeMyContext); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > @@ -266,8 +266,8 @@ AeOverrideRegionHandlers ( > /* Install handler at the root object */ > > Status = AcpiInstallAddressSpaceHandler (ACPI_ROOT_OBJECT, > - DefaultSpaceIdList[i], AeRegionHandler, > - AeRegionInit, &AeMyContext); > + DefaultSpaceIdList[i], AeRegionHandler, > + AeRegionInit, &AeMyContext); > if (ACPI_FAILURE (Status)) > { > ACPI_EXCEPTION ((AE_INFO, Status, > @@ -445,9 +445,10 @@ AeRegionHandler ( > Length = (ACPI_SIZE) RegionObject->Region.Length; > SpaceId = RegionObject->Region.SpaceId; > > - ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Operation Region request on %s at 0x%X\n", > - AcpiUtGetRegionName (RegionObject->Region.SpaceId), > - (UINT32) Address)); > + ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, > + "Operation Region request on %s at 0x%X\n", > + AcpiUtGetRegionName (RegionObject->Region.SpaceId), > + (UINT32) Address)); > > /* > * Region support can be disabled with the -do option. > @@ -482,16 +483,16 @@ AeRegionHandler ( > /* Split the 64-bit request into two 32-bit requests */ > > Status = AcpiHwReadPort (Address, &Value1, 32); > - AE_CHECK_OK (AcpiHwReadPort, Status); > + ACPI_CHECK_OK (AcpiHwReadPort, Status); > Status = AcpiHwReadPort (Address+4, &Value2, 32); > - AE_CHECK_OK (AcpiHwReadPort, Status); > + ACPI_CHECK_OK (AcpiHwReadPort, Status); > > *Value = Value1 | ((UINT64) Value2 << 32); > } > else > { > Status = AcpiHwReadPort (Address, &Value1, BitWidth); > - AE_CHECK_OK (AcpiHwReadPort, Status); > + ACPI_CHECK_OK (AcpiHwReadPort, Status); > *Value = (UINT64) Value1; > } > break; > @@ -503,14 +504,14 @@ AeRegionHandler ( > /* Split the 64-bit request into two 32-bit requests */ > > Status = AcpiHwWritePort (Address, ACPI_LODWORD (*Value), 32); > - AE_CHECK_OK (AcpiHwWritePort, Status); > + ACPI_CHECK_OK (AcpiHwWritePort, Status); > Status = AcpiHwWritePort (Address+4, ACPI_HIDWORD (*Value), 32); > - AE_CHECK_OK (AcpiHwWritePort, Status); > + ACPI_CHECK_OK (AcpiHwWritePort, Status); > } > else > { > Status = AcpiHwWritePort (Address, (UINT32) *Value, BitWidth); > - AE_CHECK_OK (AcpiHwWritePort, Status); > + ACPI_CHECK_OK (AcpiHwWritePort, Status); > } > break; > > @@ -891,7 +892,8 @@ AeRegionHandler ( > ((UINT64)(RegionElement->Address) + RegionElement->Length)) > { > ACPI_WARNING ((AE_INFO, > - "Request on [%4.4s] is beyond region limit Req-0x%X+0x%X, Base=0x%X, Len-0x%X", > + "Request on [%4.4s] is beyond region limit " > + "Req-0x%X+0x%X, Base=0x%X, Len-0x%X", > (RegionObject->Region.Node)->Name.Ascii, (UINT32) Address, > ByteWidth, (UINT32)(RegionElement->Address), > RegionElement->Length)); > @@ -903,7 +905,7 @@ AeRegionHandler ( > * Get BufferValue to point to the "address" in the buffer > */ > BufferValue = ((UINT8 *) RegionElement->Buffer + > - ((UINT64) Address - (UINT64) RegionElement->Address)); > + ((UINT64) Address - (UINT64) RegionElement->Address)); > > DoFunction: > /* > Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff --git a/src/acpica/Makefile.am b/src/acpica/Makefile.am index 4fd897a..9b1c435 100644 --- a/src/acpica/Makefile.am +++ b/src/acpica/Makefile.am @@ -140,6 +140,7 @@ libfwtsacpica_la_SOURCES = \ source/components/executer/exstoren.c \ source/components/executer/exstorob.c \ source/components/executer/exsystem.c \ + source/components/executer/extrace.c \ source/components/executer/exutils.c \ source/components/executer/exconvrt.c \ source/components/executer/excreate.c \ @@ -245,6 +246,7 @@ libfwtsacpica_la_SOURCES = \ source/components/utilities/uterror.c \ source/components/utilities/utbuffer.c \ source/components/utilities/utuuid.c \ + source/common/acfileio.c \ source/common/acgetline.c \ source/common/ahids.c \ source/common/cmfsize.c \ diff --git a/src/acpica/source/common/acfileio.c b/src/acpica/source/common/acfileio.c new file mode 100644 index 0000000..7d6cc23 --- /dev/null +++ b/src/acpica/source/common/acfileio.c @@ -0,0 +1,429 @@ +/****************************************************************************** + * + * Module Name: acfileio - Get ACPI tables from file + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + *****************************************************************************/ + +#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); +} diff --git a/src/acpica/source/common/acgetline.c b/src/acpica/source/common/acgetline.c index 2a2232a..804ff30 100644 --- a/src/acpica/source/common/acgetline.c +++ b/src/acpica/source/common/acgetline.c @@ -334,6 +334,7 @@ AcpiOsGetLine ( ACPI_BACKUP_CURSOR (i, EndOfLine - CursorPosition + 1); EndOfLine--; + if (CursorPosition > 0) { CursorPosition--; diff --git a/src/acpica/source/common/adisasm.c b/src/acpica/source/common/adisasm.c index 44a052e..071649a 100644 --- a/src/acpica/source/common/adisasm.c +++ b/src/acpica/source/common/adisasm.c @@ -114,16 +114,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 @@ -131,17 +129,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 @@ -149,7 +159,7 @@ AcpiDsIsResultUsed ( ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState) { - return TRUE; + return (TRUE); } ACPI_STATUS @@ -161,52 +171,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; - /******************************************************************************* * @@ -274,7 +238,7 @@ AdInitialize ( * * RETURN: Status * - * DESCRIPTION: Disassemble an entire ACPI table + * DESCRIPTION: Disassembler entry point. Disassemble an entire ACPI table. * *****************************************************************************/ @@ -286,14 +250,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; /* @@ -302,81 +262,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; - } - - 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 */ + /* Process any user-specified files for external objects */ - 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 { @@ -425,7 +326,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; } @@ -435,190 +337,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) { - if (AslCompilerdebug) /* Display final namespace, with transforms */ - { - NsSetupNamespaceListing (File); - NsDisplayNamespace (); - } - fclose (File); AcpiOsRedirectOutput (stdout); } @@ -631,290 +375,243 @@ Cleanup: /****************************************************************************** * - * FUNCTION: AdDisassemblerHeader + * FUNCTION: AdDisassembleOneTable * - * PARAMETERS: Filename - Input file for the table - * TableType - Either AML or DataTable + * PARAMETERS: Table - Raw AML table + * File - Pointer for the input file + * Filename - AML input filename + * DisasmFilename - Output filename * - * RETURN: None + * RETURN: Status * - * DESCRIPTION: Create the disassembler header, including ACPICA signon with - * current time and date. + * DESCRIPTION: Disassemble a single ACPI table. AML or data table. * *****************************************************************************/ -void -AdDisassemblerHeader ( +static ACPI_STATUS +AdDisassembleOneTable ( + ACPI_TABLE_HEADER *Table, + FILE *File, char *Filename, - UINT8 TableType) + char *DisasmFilename) { - time_t Timer; - - - time (&Timer); + ACPI_STATUS Status; + ACPI_OWNER_ID OwnerId; - /* Header and input table info */ - AcpiOsPrintf ("/*\n"); - AcpiOsPrintf (ACPI_COMMON_HEADER (AML_DISASSEMBLER_NAME, " * ")); + /* ForceAmlDisassembly means to assume the table contains valid AML */ - if (TableType == ACPI_IS_AML_TABLE) + if (!AcpiGbl_ForceAmlDisassembly && !AcpiUtIsAmlTable (Table)) { - if (AcpiGbl_CstyleDisassembly) - { - AcpiOsPrintf ( - " * Disassembling to symbolic ASL+ operators\n" - " *\n"); - } - else - { - AcpiOsPrintf ( - " * Disassembling to non-symbolic legacy ASL operators\n" - " *\n"); - } - } + AdDisassemblerHeader (Filename, ACPI_IS_DATA_TABLE); - AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer)); - AcpiOsPrintf (" *\n"); -} + /* This is a "Data Table" (non-AML table) */ + AcpiOsPrintf (" * ACPI Data Table [%4.4s]\n *\n", + Table->Signature); + AcpiOsPrintf (" * Format: [HexOffset DecimalOffset ByteLength] " + "FieldName : FieldValue\n */\n\n"); -/****************************************************************************** - * - * FUNCTION: AdCreateTableHeader - * - * PARAMETERS: Filename - Input file for the table - * Table - Pointer to the raw table - * - * RETURN: None - * - * DESCRIPTION: Create the ASL table header, including ACPICA signon with - * current time and date. - * - *****************************************************************************/ + AcpiDmDumpDataTable (Table); + fprintf (stderr, "Acpi Data Table [%4.4s] decoded\n", + Table->Signature); -static void -AdCreateTableHeader ( - char *Filename, - ACPI_TABLE_HEADER *Table) -{ - char *NewFilename; - UINT8 Checksum; + if (File) + { + fprintf (stderr, "Formatted output: %s - %u bytes\n", + DisasmFilename, CmGetFileSize (File)); + } + return (AE_OK); + } /* - * Print file header and dump original table header + * This is an AML table (DSDT or SSDT). + * Always parse the tables, only option is what to display */ - AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE); - - AcpiOsPrintf (" * Original Table Header:\n"); - AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature); - AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length); - - /* Print and validate the revision */ + Status = AdParseTable (Table, &OwnerId, TRUE, FALSE); + if (ACPI_FAILURE (Status)) + { + AcpiOsPrintf ("Could not parse ACPI tables, %s\n", + AcpiFormatException (Status)); + return (Status); + } - AcpiOsPrintf (" * Revision 0x%2.2X", Table->Revision); + /* Debug output, namespace and parse tree */ - switch (Table->Revision) + if (AslCompilerdebug && File) { - case 0: + AcpiOsPrintf ("/**** Before second load\n"); - AcpiOsPrintf (" **** Invalid Revision"); - break; + NsSetupNamespaceListing (File); + NsDisplayNamespace (); - case 1: + AcpiOsPrintf ("*****/\n"); + } - /* Revision of DSDT controls the ACPI integer width */ + /* Load namespace from names created within control methods */ - if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) - { - AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support"); - } - break; + AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, + AcpiGbl_RootNode, OwnerId); - default: + /* + * Cross reference the namespace here, in order to + * generate External() statements + */ + AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot, + AcpiGbl_RootNode, OwnerId); - break; + if (AslCompilerdebug) + { + AcpiDmDumpTree (AcpiGbl_ParseOpRoot); } - AcpiOsPrintf ("\n"); - /* Print and validate the table checksum */ + /* Find possible calls to external control methods */ - AcpiOsPrintf (" * Checksum 0x%2.2X", Table->Checksum); + AcpiDmFindOrphanMethods (AcpiGbl_ParseOpRoot); - Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); - if (Checksum) + /* + * 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 ()) { - AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X", - (UINT8) (Table->Checksum - Checksum)); + Status = AdReparseOneTable (Table, File, OwnerId); + if (ACPI_FAILURE (Status)) + { + return (Status); + } } - AcpiOsPrintf ("\n"); - AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId); - AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId); - AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision); - AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId); - AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision); - AcpiOsPrintf (" */\n"); + /* + * 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); - /* Create AML output filename based on input filename */ + /* Optional displays */ - if (Filename) - { - NewFilename = FlGenerateFilename (Filename, "aml"); - } - else + if (AcpiGbl_DmOpt_Disasm) { - NewFilename = UtStringCacheCalloc (9); - if (NewFilename) + /* This is the real disassembly */ + + AdDisplayTables (Filename, Table); + + /* Dump hex table if requested (-vt) */ + + AcpiDmDumpDataTable (Table); + + fprintf (stderr, "Disassembly completed\n"); + if (File) { - strncat (NewFilename, Table->Signature, 4); - strcat (NewFilename, ".aml"); + fprintf (stderr, "ASL Output: %s - %u bytes\n", + DisasmFilename, CmGetFileSize (File)); } - } - if (!NewFilename) - { - AcpiOsPrintf (" **** Could not generate AML output filename\n"); - return; + 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)); + } } - /* Open the ASL definition block */ - - AcpiOsPrintf ( - "DefinitionBlock (\"%s\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n", - NewFilename, Table->Signature, Table->Revision, - Table->OemId, Table->OemTableId, Table->OemRevision); + return (AE_OK); } /****************************************************************************** * - * FUNCTION: AdDisplayTables + * FUNCTION: AdReparseOneTable * - * PARAMETERS: Filename - Input file for the table - * Table - Pointer to the raw table + * PARAMETERS: Table - Raw AML table + * File - Pointer for the input file + * OwnerId - ID for this table * * RETURN: Status * - * DESCRIPTION: Display (disassemble) loaded tables and dump raw tables + * DESCRIPTION: Reparse a table that has already been loaded. Used to + * integrate information about external control methods. + * These methods may have been previously parsed incorrectly. * *****************************************************************************/ -ACPI_STATUS -AdDisplayTables ( - char *Filename, - ACPI_TABLE_HEADER *Table) +static ACPI_STATUS +AdReparseOneTable ( + ACPI_TABLE_HEADER *Table, + FILE *File, + ACPI_OWNER_ID OwnerId) { + ACPI_STATUS Status; - if (!AcpiGbl_ParseOpRoot) - { - return (AE_NOT_EXIST); - } + fprintf (stderr, + "\nFound %u external control methods, " + "reparsing with new information\n", + AcpiDmGetExternalMethodCount ()); - if (!AcpiGbl_DmOpt_Listing) - { - AdCreateTableHeader (Filename, Table); - } + /* Reparse, rebuild namespace */ - AcpiDmDisassemble (NULL, AcpiGbl_ParseOpRoot, ACPI_UINT32_MAX); - MpEmitMappingInfo (); + 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; - if (AcpiGbl_DmOpt_Listing) + Status = AcpiNsRootInitialize (); + if (ACPI_FAILURE (Status)) { - AcpiOsPrintf ("\n\nTable Header:\n"); - AcpiUtDebugDumpBuffer ((UINT8 *) Table, sizeof (ACPI_TABLE_HEADER), - DB_BYTE_DISPLAY, ACPI_UINT32_MAX); - - AcpiOsPrintf ("Table Body (Length 0x%X)\n", Table->Length); - AcpiUtDebugDumpBuffer (((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)), - Table->Length, DB_BYTE_DISPLAY, ACPI_UINT32_MAX); + return (Status); } - return (AE_OK); -} - - -/******************************************************************************* - * - * FUNCTION: AdStoreTable - * - * PARAMETERS: Table - Table header - * TableIndex - Where the table index is returned - * - * RETURN: Status and table index. - * - * DESCRIPTION: Add an ACPI table to the global table list - * - ******************************************************************************/ + /* New namespace, add the external definitions first */ -static ACPI_STATUS -AdStoreTable ( - ACPI_TABLE_HEADER *Table, - UINT32 *TableIndex) -{ - ACPI_STATUS Status; - ACPI_TABLE_DESC *TableDesc; + AcpiDmAddExternalsToNamespace (); + /* Parse the table again. No need to reload it, however */ - Status = AcpiTbGetNextTableDescriptor (TableIndex, &TableDesc); + Status = AdParseTable (Table, NULL, FALSE, FALSE); if (ACPI_FAILURE (Status)) { + AcpiOsPrintf ("Could not parse ACPI tables, %s\n", + AcpiFormatException (Status)); return (Status); } - /* Initialize added table */ + /* Cross reference the namespace again */ - AcpiTbInitTableDescriptor (TableDesc, ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, Table); - Status = AcpiTbValidateTable (TableDesc); - return (Status); -} + AcpiDmFinishNamespaceLoad (AcpiGbl_ParseOpRoot, + AcpiGbl_RootNode, OwnerId); + AcpiDmCrossReferenceNamespace (AcpiGbl_ParseOpRoot, + AcpiGbl_RootNode, OwnerId); -/****************************************************************************** - * - * FUNCTION: AdGetLocalTables - * - * PARAMETERS: None - * - * RETURN: Status - * - * DESCRIPTION: Get the ACPI tables from either memory or a file - * - *****************************************************************************/ - -ACPI_STATUS -AdGetLocalTables ( - void) -{ - ACPI_STATUS Status; - ACPI_TABLE_HEADER TableHeader; - ACPI_TABLE_HEADER *NewTable; - UINT32 TableIndex; - + /* Debug output - namespace and parse tree */ - /* Get the DSDT via table override */ - - ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT); - AcpiOsTableOverride (&TableHeader, &NewTable); - if (!NewTable) + if (AslCompilerdebug) { - fprintf (stderr, "Could not obtain DSDT\n"); - return (AE_NO_ACPI_TABLES); - } - - AdWriteTable (NewTable, NewTable->Length, - ACPI_SIG_DSDT, NewTable->OemTableId); - - /* Store DSDT in the Table Manager */ + AcpiOsPrintf ("/**** After second load and resource conversion\n"); + if (File) + { + NsSetupNamespaceListing (File); + NsDisplayNamespace (); + } - Status = AdStoreTable (NewTable, &TableIndex); - if (ACPI_FAILURE (Status)) - { - fprintf (stderr, "Could not store DSDT\n"); - return (AE_NO_ACPI_TABLES); + AcpiOsPrintf ("*****/\n"); + AcpiDmDumpTree (AcpiGbl_ParseOpRoot); } return (AE_OK); @@ -923,134 +620,108 @@ AdGetLocalTables ( /****************************************************************************** * - * FUNCTION: AdParseTable + * FUNCTION: AdDoExternalFileList * - * PARAMETERS: Table - Pointer to the raw table - * OwnerId - Returned OwnerId of the table - * LoadTable - If add table to the global table list - * External - If this is an external table + * PARAMETERS: Filename - Input file for the table * * RETURN: Status * - * DESCRIPTION: Parse the DSDT. + * DESCRIPTION: Process all tables found in the -e external files list * *****************************************************************************/ -ACPI_STATUS -AdParseTable ( - ACPI_TABLE_HEADER *Table, - ACPI_OWNER_ID *OwnerId, - BOOLEAN LoadTable, - BOOLEAN External) +static ACPI_STATUS +AdDoExternalFileList ( + char *Filename) { - ACPI_STATUS Status = AE_OK; - ACPI_WALK_STATE *WalkState; - UINT8 *AmlStart; - UINT32 AmlLength; - UINT32 TableIndex; - - - if (!Table) - { - return (AE_NOT_EXIST); - } - - /* Pass 1: Parse everything except control method bodies */ - - fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature); - - AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); - AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); - - /* Create the root object */ - - AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp (AmlStart); - if (!AcpiGbl_ParseOpRoot) - { - return (AE_NO_MEMORY); - } - - /* Create and initialize a new walk state */ + ACPI_EXTERNAL_FILE *ExternalFileList; + char *ExternalFilename; + ACPI_NEW_TABLE_DESC *ExternalListHead = NULL; + ACPI_STATUS Status; + ACPI_STATUS GlobalStatus = AE_OK; + ACPI_OWNER_ID OwnerId; - WalkState = AcpiDsCreateWalkState (0, - AcpiGbl_ParseOpRoot, NULL, NULL); - if (!WalkState) - { - return (AE_NO_MEMORY); - } - Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParseOpRoot, - NULL, AmlStart, AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); - if (ACPI_FAILURE (Status)) - { - return (Status); - } + /* + * External filenames are specified on the command line like this: + * Example: iasl -e file1,file2,file3 -d xxx.aml + */ + ExternalFileList = AcpiGbl_ExternalFileList; - WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE; - WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE; + /* Process each external file */ - Status = AcpiPsParseAml (WalkState); - if (ACPI_FAILURE (Status)) + while (ExternalFileList) { - return (Status); - } - - /* If LoadTable is FALSE, we are parsing the last loaded table */ + ExternalFilename = ExternalFileList->Path; + if (!strcmp (ExternalFilename, Filename)) + { + /* Next external file */ - TableIndex = AcpiGbl_RootTableList.CurrentTableCount - 1; + ExternalFileList = ExternalFileList->Next; + continue; + } - /* Pass 2 */ + AcpiOsPrintf ("External object resolution file %16s\n", + ExternalFilename); - if (LoadTable) - { - Status = AdStoreTable (Table, &TableIndex); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - Status = AcpiTbAllocateOwnerId (TableIndex); + Status = AcpiAcGetAllTablesFromFile ( + ExternalFilename, ACPI_GET_ONLY_AML_TABLES, &ExternalListHead); if (ACPI_FAILURE (Status)) { + if (Status == AE_TYPE) + { + ExternalFileList = ExternalFileList->Next; + GlobalStatus = AE_TYPE; + Status = AE_OK; + continue; + } + return (Status); } - if (OwnerId) + + /* Load external tables for symbol resolution */ + + while (ExternalListHead) { - Status = AcpiTbGetOwnerId (TableIndex, OwnerId); + Status = AdParseTable ( + ExternalListHead->Table, &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); + + ExternalListHead = ExternalListHead->Next; } - } - fprintf (stderr, "Pass 2 parse of [%4.4s]\n", (char *) Table->Signature); + /* Next external file */ - Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, TableIndex, NULL); - if (ACPI_FAILURE (Status)) - { - return (Status); + ExternalFileList = ExternalFileList->Next; } - /* No need to parse control methods of external table */ - - if (External) + if (ACPI_FAILURE (GlobalStatus)) { - return (AE_OK); + return (GlobalStatus); } - /* - * Pass 3: Parse control methods and link their parse trees - * into the main parse tree - */ - fprintf (stderr, - "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n"); - Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); - fprintf (stderr, "\n"); + /* Clear external list generated by Scope in external tables */ - /* Process Resource Templates */ + if (AcpiGbl_ExternalFileList) + { + AcpiDmClearExternalList (); + } - AcpiDmFindResources (AcpiGbl_ParseOpRoot); + /* Load any externals defined in the optional external ref file */ - fprintf (stderr, "Parsing completed\n"); + AcpiDmGetExternalsFromFile (); return (AE_OK); } diff --git a/src/acpica/source/common/adwalk.c b/src/acpica/source/common/adwalk.c index fe07c07..92cec74 100644 --- a/src/acpica/source/common/adwalk.c +++ b/src/acpica/source/common/adwalk.c @@ -207,6 +207,7 @@ AcpiDmDumpTree ( Info.Count = 0; Info.Level = 0; Info.WalkState = NULL; + AcpiDmWalkParseTree (Origin, AcpiDmDumpDescending, NULL, &Info); AcpiOsPrintf ("*/\n\n"); } @@ -240,6 +241,7 @@ AcpiDmFindOrphanMethods ( Info.Flags = 0; Info.Level = 0; Info.WalkState = NULL; + AcpiDmWalkParseTree (Origin, AcpiDmFindOrphanDescending, NULL, &Info); } @@ -283,7 +285,8 @@ AcpiDmFinishNamespaceLoad ( return; } - Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState); + Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, + WalkState); if (ACPI_FAILURE (Status)) { return; @@ -292,6 +295,7 @@ AcpiDmFinishNamespaceLoad ( Info.Flags = 0; Info.Level = 0; Info.WalkState = WalkState; + AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmLoadDescendingOp, AcpiDmCommonAscendingOp, &Info); ACPI_FREE (WalkState); @@ -336,7 +340,8 @@ AcpiDmCrossReferenceNamespace ( return; } - Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState); + Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, + WalkState); if (ACPI_FAILURE (Status)) { return; @@ -345,6 +350,7 @@ AcpiDmCrossReferenceNamespace ( Info.Flags = 0; Info.Level = 0; Info.WalkState = WalkState; + AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmXrefDescendingOp, AcpiDmCommonAscendingOp, &Info); ACPI_FREE (WalkState); @@ -389,7 +395,8 @@ AcpiDmConvertResourceIndexes ( return; } - Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, WalkState); + Status = AcpiDsScopeStackPush (NamespaceRoot, NamespaceRoot->Type, + WalkState); if (ACPI_FAILURE (Status)) { return; @@ -398,6 +405,7 @@ AcpiDmConvertResourceIndexes ( Info.Flags = 0; Info.Level = 0; Info.WalkState = WalkState; + AcpiDmWalkParseTree (ParseTreeRoot, AcpiDmResourceDescendingOp, AcpiDmCommonAscendingOp, &Info); ACPI_FREE (WalkState); @@ -468,7 +476,7 @@ AcpiDmDumpDescending ( if (Op->Common.Value.String) { AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String, - NULL, &Path); + NULL, &Path); AcpiOsPrintf ("%s %p", Path, Op->Common.Node); ACPI_FREE (Path); } @@ -727,6 +735,7 @@ AcpiDmLoadDescendingOp ( { NextOp = NextOp->Common.Next; } + Path = NextOp->Common.Value.String; } @@ -738,8 +747,8 @@ AcpiDmLoadDescendingOp ( /* Insert the name into the namespace */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, - ACPI_IMODE_LOAD_PASS2, ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &Node); + ACPI_IMODE_LOAD_PASS2, ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &Node); Op->Common.Node = Node; @@ -780,7 +789,8 @@ Exit: { if (Op->Common.Node) { - Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState); + Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, + WalkState); if (ACPI_FAILURE (Status)) { return (Status); @@ -897,8 +907,8 @@ AcpiDmXrefDescendingOp ( */ Node = NULL; Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &Node); + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &Node); if (ACPI_SUCCESS (Status) && (Node->Flags & ANOBJ_IS_EXTERNAL)) { /* Node was created by an External() statement */ @@ -980,7 +990,8 @@ Exit: { if (Op->Common.Node) { - Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState); + Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, + WalkState); if (ACPI_FAILURE (Status)) { return (Status); @@ -1028,7 +1039,8 @@ AcpiDmResourceDescendingOp ( if (Op->Common.Node) { - Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, WalkState); + Status = AcpiDsScopeStackPush (Op->Common.Node, ObjectType, + WalkState); if (ACPI_FAILURE (Status)) { return (Status); diff --git a/src/acpica/source/common/ahuuids.c b/src/acpica/source/common/ahuuids.c index 118473d..499dbb4 100644 --- a/src/acpica/source/common/ahuuids.c +++ b/src/acpica/source/common/ahuuids.c @@ -120,6 +120,7 @@ #define _COMPONENT ACPI_UTILITIES ACPI_MODULE_NAME ("ahuuids") + /* * Table of "known" (ACPI-related) UUIDs */ diff --git a/src/acpica/source/common/dmextern.c b/src/acpica/source/common/dmextern.c index 832379e..7335168 100644 --- a/src/acpica/source/common/dmextern.c +++ b/src/acpica/source/common/dmextern.c @@ -212,7 +212,6 @@ AcpiDmGetObjectTypeName ( { Type = ACPI_TYPE_DEVICE; } - else if (Type > ACPI_TYPE_LOCAL_INDEX_FIELD) { return (""); @@ -482,6 +481,7 @@ AcpiDmGetExternalsFromFile ( { continue; } + if (strcmp (Token, "External")) { continue; @@ -519,6 +519,7 @@ AcpiDmGetExternalsFromFile ( fprintf (stderr, "Invalid argument count (%s)\n", Token); continue; } + if (ArgCount > 7) { fprintf (stderr, "Invalid argument count (%u)\n", ArgCount); @@ -537,7 +538,8 @@ AcpiDmGetExternalsFromFile ( if (!ImportCount) { - fprintf (stderr, "Did not find any external methods in reference file \"%s\"\n", + fprintf (stderr, + "Did not find any external methods in reference file \"%s\"\n", Gbl_ExternalRefFilename); } else @@ -887,7 +889,8 @@ AcpiDmCreateNewExternal ( (Value > 0)) { ACPI_ERROR ((AE_INFO, - "External method arg count mismatch %s: Current %u, attempted %u", + "External method arg count mismatch %s: " + "Current %u, attempted %u", NextExternal->Path, NextExternal->Value, Value)); } @@ -989,9 +992,9 @@ AcpiDmAddExternalsToNamespace ( /* Add the external name (object) into the namespace */ Status = AcpiNsLookup (NULL, External->InternalPath, External->Type, - ACPI_IMODE_LOAD_PASS1, - ACPI_NS_ERROR_IF_FOUND | ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE, - NULL, &Node); + ACPI_IMODE_LOAD_PASS1, + ACPI_NS_ERROR_IF_FOUND | ACPI_NS_EXTERNAL | ACPI_NS_DONT_OPEN_SCOPE, + NULL, &Node); if (ACPI_FAILURE (Status)) { diff --git a/src/acpica/source/common/dmrestag.c b/src/acpica/source/common/dmrestag.c index 5041f88..c87a025 100644 --- a/src/acpica/source/common/dmrestag.c +++ b/src/acpica/source/common/dmrestag.c @@ -570,9 +570,9 @@ AcpiDmCheckResourceReference ( /* Lookup the buffer in the namespace */ Status = AcpiNsLookup (WalkState->ScopeInfo, - BufferNameOp->Common.Value.String, ACPI_TYPE_BUFFER, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, - &BufferNode); + BufferNameOp->Common.Value.String, ACPI_TYPE_BUFFER, + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, + &BufferNode); if (ACPI_FAILURE (Status)) { return; @@ -693,8 +693,8 @@ AcpiGetTagPathname ( /* Get the individual resource descriptor and validate it */ - Aml = ACPI_CAST_PTR (AML_RESOURCE, - &Op->Named.Data[ResourceNode->Value]); + Aml = ACPI_CAST_PTR ( + AML_RESOURCE, &Op->Named.Data[ResourceNode->Value]); Status = AcpiUtValidateResource (NULL, Aml, &ResourceTableIndex); if (ACPI_FAILURE (Status)) @@ -735,7 +735,7 @@ AcpiGetTagPathname ( } (void) AcpiNsBuildNormalizedPath (BufferNode, Pathname, - RequiredSize, FALSE); + RequiredSize, FALSE); /* * Create the full path to the resource and tag by: remove the buffer name, @@ -814,6 +814,7 @@ AcpiDmUpdateResourceName ( { AcpiGbl_NextResourceId = 0; AcpiGbl_NextPrefix++; + if (AcpiGbl_NextPrefix > ACPI_NUM_RES_PREFIX) { AcpiGbl_NextPrefix = 0; @@ -1100,9 +1101,9 @@ AcpiDmAddResourceToNamespace ( ScopeInfo.Scope.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Context); Status = AcpiNsLookup (&ScopeInfo, "_TMP", ACPI_TYPE_LOCAL_RESOURCE, - ACPI_IMODE_LOAD_PASS2, - ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_PREFIX_IS_SCOPE, - NULL, &Node); + ACPI_IMODE_LOAD_PASS2, + ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_PREFIX_IS_SCOPE, + NULL, &Node); if (ACPI_FAILURE (Status)) { return (AE_OK); diff --git a/src/acpica/source/common/dmtable.c b/src/acpica/source/common/dmtable.c index c301da1..35e01f3 100644 --- a/src/acpica/source/common/dmtable.c +++ b/src/acpica/source/common/dmtable.c @@ -947,6 +947,7 @@ AcpiDmDumpTable ( AcpiOsPrintf ("\n"); LastOutputBlankLine = TRUE; } + ByteLength = sizeof (ACPI_GENERIC_ADDRESS); break; @@ -957,6 +958,7 @@ AcpiDmDumpTable ( AcpiOsPrintf ("\n"); LastOutputBlankLine = TRUE; } + ByteLength = sizeof (ACPI_HEST_NOTIFY); break; @@ -966,6 +968,7 @@ AcpiDmDumpTable ( { LastOutputBlankLine = FALSE; } + ByteLength = sizeof (ACPI_IORT_MEMORY_ACCESS); break; @@ -1099,6 +1102,7 @@ AcpiDmDumpTable ( } } } + AcpiOsPrintf ("\n"); break; @@ -1122,6 +1126,7 @@ AcpiDmDumpTable ( AcpiDmCheckAscii (Target, RepairedName, 4); AcpiOsPrintf ("\"%.4s\" ", RepairedName); + TableData = AcpiAhGetTableInfo (ACPI_CAST_PTR (char, Target)); if (TableData) { @@ -1167,6 +1172,7 @@ AcpiDmDumpTable ( AcpiOsPrintf ( " /* Incorrect checksum, should be %2.2X */", Temp8); } + AcpiOsPrintf ("\n"); break; diff --git a/src/acpica/source/common/dmtables.c b/src/acpica/source/common/dmtables.c new file mode 100644 index 0000000..4ec8470 --- /dev/null +++ b/src/acpica/source/common/dmtables.c @@ -0,0 +1,571 @@ +/****************************************************************************** + * + * Module Name: dmtables - disassembler ACPI table support + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + *****************************************************************************/ + +#include "aslcompiler.h" +#include "acapps.h" +#include "acdispat.h" +#include "acnamesp.h" +#include "actables.h" +#include "acparser.h" + +#include <stdio.h> +#include <time.h> + +#define _COMPONENT ACPI_TOOLS + ACPI_MODULE_NAME ("dmtables") + + +/* Local prototypes */ + +static void +AdCreateTableHeader ( + char *Filename, + ACPI_TABLE_HEADER *Table); + +static ACPI_STATUS +AdStoreTable ( + ACPI_TABLE_HEADER *Table, + UINT32 *TableIndex); + + +extern ACPI_TABLE_DESC LocalTables[1]; +extern ACPI_PARSE_OBJECT *AcpiGbl_ParseOpRoot; + + +/****************************************************************************** + * + * FUNCTION: AdDisassemblerHeader + * + * PARAMETERS: Filename - Input file for the table + * TableType - Either AML or DataTable + * + * RETURN: None + * + * DESCRIPTION: Create the disassembler header, including ACPICA signon with + * current time and date. + * + *****************************************************************************/ + +void +AdDisassemblerHeader ( + char *Filename, + UINT8 TableType) +{ + time_t Timer; + + + time (&Timer); + + /* Header and input table info */ + + AcpiOsPrintf ("/*\n"); + AcpiOsPrintf (ACPI_COMMON_HEADER (AML_DISASSEMBLER_NAME, " * ")); + + if (TableType == ACPI_IS_AML_TABLE) + { + if (AcpiGbl_CstyleDisassembly) + { + AcpiOsPrintf ( + " * Disassembling to symbolic ASL+ operators\n" + " *\n"); + } + else + { + AcpiOsPrintf ( + " * Disassembling to non-symbolic legacy ASL operators\n" + " *\n"); + } + } + + AcpiOsPrintf (" * Disassembly of %s, %s", Filename, ctime (&Timer)); + AcpiOsPrintf (" *\n"); +} + + +/****************************************************************************** + * + * FUNCTION: AdCreateTableHeader + * + * PARAMETERS: Filename - Input file for the table + * Table - Pointer to the raw table + * + * RETURN: None + * + * DESCRIPTION: Create the ASL table header, including ACPICA signon with + * current time and date. + * + *****************************************************************************/ + +static void +AdCreateTableHeader ( + char *Filename, + ACPI_TABLE_HEADER *Table) +{ + char *NewFilename; + UINT8 Checksum; + + + /* + * Print file header and dump original table header + */ + AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE); + + AcpiOsPrintf (" * Original Table Header:\n"); + AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature); + AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length); + + /* Print and validate the revision */ + + AcpiOsPrintf (" * Revision 0x%2.2X", Table->Revision); + + switch (Table->Revision) + { + case 0: + + AcpiOsPrintf (" **** Invalid Revision"); + break; + + case 1: + + /* Revision of DSDT controls the ACPI integer width */ + + if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) + { + AcpiOsPrintf (" **** 32-bit table (V1), no 64-bit math support"); + } + break; + + default: + + break; + } + AcpiOsPrintf ("\n"); + + /* Print and validate the table checksum */ + + AcpiOsPrintf (" * Checksum 0x%2.2X", Table->Checksum); + + Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length); + if (Checksum) + { + AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X", + (UINT8) (Table->Checksum - Checksum)); + } + + AcpiOsPrintf ("\n"); + AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId); + AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId); + AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision); + AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId); + AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision); + AcpiOsPrintf (" */\n"); + + /* Create AML output filename based on input filename */ + + if (Filename) + { + NewFilename = FlGenerateFilename (Filename, "aml"); + } + else + { + NewFilename = UtStringCacheCalloc (9); + if (NewFilename) + { + strncat (NewFilename, Table->Signature, 4); + strcat (NewFilename, ".aml"); + } + } + + if (!NewFilename) + { + AcpiOsPrintf (" **** Could not generate AML output filename\n"); + return; + } + + /* Open the ASL definition block */ + + AcpiOsPrintf ( + "DefinitionBlock (\"%s\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n", + NewFilename, Table->Signature, Table->Revision, + Table->OemId, Table->OemTableId, Table->OemRevision); +} + + +/****************************************************************************** + * + * FUNCTION: AdDisplayTables + * + * PARAMETERS: Filename - Input file for the table + * Table - Pointer to the raw table + * + * RETURN: Status + * + * DESCRIPTION: Display (disassemble) loaded tables and dump raw tables + * + *****************************************************************************/ + +ACPI_STATUS +AdDisplayTables ( + char *Filename, + ACPI_TABLE_HEADER *Table) +{ + + + if (!AcpiGbl_ParseOpRoot) + { + return (AE_NOT_EXIST); + } + + if (!AcpiGbl_DmOpt_Listing) + { + AdCreateTableHeader (Filename, Table); + } + + AcpiDmDisassemble (NULL, AcpiGbl_ParseOpRoot, ACPI_UINT32_MAX); + MpEmitMappingInfo (); + + if (AcpiGbl_DmOpt_Listing) + { + AcpiOsPrintf ("\n\nTable Header:\n"); + AcpiUtDebugDumpBuffer ((UINT8 *) Table, sizeof (ACPI_TABLE_HEADER), + DB_BYTE_DISPLAY, ACPI_UINT32_MAX); + + AcpiOsPrintf ("Table Body (Length 0x%X)\n", Table->Length); + AcpiUtDebugDumpBuffer (((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)), + Table->Length, DB_BYTE_DISPLAY, ACPI_UINT32_MAX); + } + + return (AE_OK); +} + + +/******************************************************************************* + * + * FUNCTION: AdStoreTable + * + * PARAMETERS: Table - Table header + * TableIndex - Where the table index is returned + * + * RETURN: Status and table index. + * + * DESCRIPTION: Add an ACPI table to the global table list + * + ******************************************************************************/ + +static ACPI_STATUS +AdStoreTable ( + ACPI_TABLE_HEADER *Table, + UINT32 *TableIndex) +{ + ACPI_STATUS Status; + ACPI_TABLE_DESC *TableDesc; + + + Status = AcpiTbGetNextTableDescriptor (TableIndex, &TableDesc); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Initialize added table */ + + AcpiTbInitTableDescriptor (TableDesc, ACPI_PTR_TO_PHYSADDR (Table), + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, Table); + Status = AcpiTbValidateTable (TableDesc); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: AdGetLocalTables + * + * PARAMETERS: None + * + * RETURN: Status + * + * DESCRIPTION: Get the ACPI tables from either memory or a file + * + *****************************************************************************/ + +ACPI_STATUS +AdGetLocalTables ( + void) +{ + ACPI_STATUS Status; + ACPI_TABLE_HEADER TableHeader; + ACPI_TABLE_HEADER *NewTable; + UINT32 TableIndex; + + + /* Get the DSDT via table override */ + + ACPI_MOVE_32_TO_32 (TableHeader.Signature, ACPI_SIG_DSDT); + AcpiOsTableOverride (&TableHeader, &NewTable); + if (!NewTable) + { + fprintf (stderr, "Could not obtain DSDT\n"); + return (AE_NO_ACPI_TABLES); + } + + AdWriteTable (NewTable, NewTable->Length, + ACPI_SIG_DSDT, NewTable->OemTableId); + + /* Store DSDT in the Table Manager */ + + Status = AdStoreTable (NewTable, &TableIndex); + if (ACPI_FAILURE (Status)) + { + fprintf (stderr, "Could not store DSDT\n"); + return (AE_NO_ACPI_TABLES); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: AdParseTable + * + * PARAMETERS: Table - Pointer to the raw table + * OwnerId - Returned OwnerId of the table + * LoadTable - If add table to the global table list + * External - If this is an external table + * + * RETURN: Status + * + * DESCRIPTION: Parse an ACPI AML table + * + *****************************************************************************/ + +ACPI_STATUS +AdParseTable ( + ACPI_TABLE_HEADER *Table, + ACPI_OWNER_ID *OwnerId, + BOOLEAN LoadTable, + BOOLEAN External) +{ + ACPI_STATUS Status = AE_OK; + ACPI_WALK_STATE *WalkState; + UINT8 *AmlStart; + UINT32 AmlLength; + UINT32 TableIndex; + + + if (!Table) + { + return (AE_NOT_EXIST); + } + + /* Pass 1: Parse everything except control method bodies */ + + fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature); + + AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER); + AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER)); + + /* Create the root object */ + + AcpiGbl_ParseOpRoot = AcpiPsCreateScopeOp (AmlStart); + if (!AcpiGbl_ParseOpRoot) + { + return (AE_NO_MEMORY); + } + + /* Create and initialize a new walk state */ + + WalkState = AcpiDsCreateWalkState (0, AcpiGbl_ParseOpRoot, NULL, NULL); + if (!WalkState) + { + return (AE_NO_MEMORY); + } + + Status = AcpiDsInitAmlWalk (WalkState, AcpiGbl_ParseOpRoot, + NULL, AmlStart, AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + WalkState->ParseFlags &= ~ACPI_PARSE_DELETE_TREE; + WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE; + + Status = AcpiPsParseAml (WalkState); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* If LoadTable is FALSE, we are parsing the last loaded table */ + + TableIndex = AcpiGbl_RootTableList.CurrentTableCount - 1; + + /* Pass 2 */ + + if (LoadTable) + { + Status = AdStoreTable (Table, &TableIndex); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + Status = AcpiTbAllocateOwnerId (TableIndex); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (OwnerId) + { + Status = AcpiTbGetOwnerId (TableIndex, OwnerId); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + } + } + + fprintf (stderr, "Pass 2 parse of [%4.4s]\n", (char *) Table->Signature); + + Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, TableIndex, NULL); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* No need to parse control methods of external table */ + + if (External) + { + return (AE_OK); + } + + /* + * Pass 3: Parse control methods and link their parse trees + * into the main parse tree + */ + fprintf (stderr, + "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n"); + + Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot); + fprintf (stderr, "\n"); + + /* Process Resource Templates */ + + AcpiDmFindResources (AcpiGbl_ParseOpRoot); + + fprintf (stderr, "Parsing completed\n"); + return (AE_OK); +} diff --git a/src/acpica/source/common/dmtbdump.c b/src/acpica/source/common/dmtbdump.c index f1b5512..b22d9bd 100644 --- a/src/acpica/source/common/dmtbdump.c +++ b/src/acpica/source/common/dmtbdump.c @@ -250,6 +250,7 @@ AcpiDmDumpUnicode ( { AcpiOsPrintf ("%c", Buffer[i]); } + AcpiOsPrintf ("\"\n"); return; @@ -294,7 +295,7 @@ AcpiDmDumpRsdp ( /* Validate the first checksum */ Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_RSDP_COMMON), - Rsdp->Checksum); + Rsdp->Checksum); if (Checksum != Rsdp->Checksum) { AcpiOsPrintf ("/* Incorrect Checksum above, should be 0x%2.2X */\n", @@ -315,7 +316,7 @@ AcpiDmDumpRsdp ( /* Validate the extended checksum over entire RSDP */ Checksum = AcpiDmGenerateChecksum (Rsdp, sizeof (ACPI_TABLE_RSDP), - Rsdp->ExtendedChecksum); + Rsdp->ExtendedChecksum); if (Checksum != Rsdp->ExtendedChecksum) { AcpiOsPrintf ( @@ -433,7 +434,8 @@ AcpiDmDumpFadt ( /* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */ - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt1); + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, + AcpiDmTableInfoFadt1); if (ACPI_FAILURE (Status)) { return; @@ -444,7 +446,8 @@ AcpiDmDumpFadt ( if ((Table->Length > ACPI_FADT_V1_SIZE) && (Table->Length <= ACPI_FADT_V2_SIZE)) { - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt2); + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, + AcpiDmTableInfoFadt2); if (ACPI_FAILURE (Status)) { return; @@ -455,7 +458,8 @@ AcpiDmDumpFadt ( else if (Table->Length > ACPI_FADT_V2_SIZE) { - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt3); + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, + AcpiDmTableInfoFadt3); if (ACPI_FAILURE (Status)) { return; @@ -465,7 +469,8 @@ AcpiDmDumpFadt ( if (Table->Length > ACPI_FADT_V3_SIZE) { - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt5); + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, + AcpiDmTableInfoFadt5); if (ACPI_FAILURE (Status)) { return; @@ -476,7 +481,8 @@ AcpiDmDumpFadt ( if (Table->Length > ACPI_FADT_V3_SIZE) { - Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoFadt6); + Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, + AcpiDmTableInfoFadt6); if (ACPI_FAILURE (Status)) { return; @@ -557,7 +563,8 @@ AcpiDmValidateFadtLength ( } AcpiOsPrintf ( - "\n// ACPI Warning: FADT revision %X does not match length: found %X expected %X\n", + "\n// ACPI Warning: FADT revision %X does not match length: " + "found %X expected %X\n", Revision, Length, ExpectedLength); } @@ -599,7 +606,7 @@ AcpiDmDumpAsf ( /* Common subtable header */ Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Header.Length, AcpiDmTableInfoAsfHdr); + SubTable->Header.Length, AcpiDmTableInfoAsfHdr); if (ACPI_FAILURE (Status)) { return; @@ -651,12 +658,13 @@ AcpiDmDumpAsf ( default: - AcpiOsPrintf ("\n**** Unknown ASF subtable type 0x%X\n", SubTable->Header.Type); + AcpiOsPrintf ("\n**** Unknown ASF subtable type 0x%X\n", + SubTable->Header.Type); return; } Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Header.Length, InfoTable); + SubTable->Header.Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -673,7 +681,7 @@ AcpiDmDumpAsf ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, DataOffset, - DataTable, DataLength, DataInfoTable); + DataTable, DataLength, DataInfoTable); if (ACPI_FAILURE (Status)) { return; @@ -696,9 +704,12 @@ AcpiDmDumpAsf ( AcpiOsPrintf ("%2.2X ", *DataTable); DataTable++; DataOffset++; + if (DataOffset > Table->Length) { - AcpiOsPrintf ("**** ACPI table terminates in the middle of a data structure! (ASF! table)\n"); + AcpiOsPrintf ( + "**** ACPI table terminates in the middle of a " + "data structure! (ASF! table)\n"); return; } } @@ -722,7 +733,8 @@ AcpiDmDumpAsf ( } Offset += SubTable->Header.Length; - SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, SubTable->Header.Length); + SubTable = ACPI_ADD_PTR (ACPI_ASF_INFO, SubTable, + SubTable->Header.Length); } } @@ -765,7 +777,7 @@ AcpiDmDumpCpep ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Header.Length, AcpiDmTableInfoCpep0); + SubTable->Header.Length, AcpiDmTableInfoCpep0); if (ACPI_FAILURE (Status)) { return; @@ -775,7 +787,7 @@ AcpiDmDumpCpep ( Offset += SubTable->Header.Length; SubTable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, SubTable, - SubTable->Header.Length); + SubTable->Header.Length); } } @@ -819,7 +831,7 @@ AcpiDmDumpCsrt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoCsrt0); + SubTable->Length, AcpiDmTableInfoCsrt0); if (ACPI_FAILURE (Status)) { return; @@ -833,7 +845,7 @@ AcpiDmDumpCsrt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset + SubOffset, SharedInfoTable, - sizeof (ACPI_CSRT_SHARED_INFO), AcpiDmTableInfoCsrt1); + sizeof (ACPI_CSRT_SHARED_INFO), AcpiDmTableInfoCsrt1); if (ACPI_FAILURE (Status)) { return; @@ -851,7 +863,7 @@ AcpiDmDumpCsrt ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubTable, - SubSubTable->Length, AcpiDmTableInfoCsrt2); + SubSubTable->Length, AcpiDmTableInfoCsrt2); if (ACPI_FAILURE (Status)) { return; @@ -865,8 +877,8 @@ AcpiDmDumpCsrt ( if (InfoLength) { Status = AcpiDmDumpTable (Length, - Offset + SubOffset + SubSubOffset, Table, - InfoLength, AcpiDmTableInfoCsrt2a); + Offset + SubOffset + SubSubOffset, Table, + InfoLength, AcpiDmTableInfoCsrt2a); if (ACPI_FAILURE (Status)) { return; @@ -878,14 +890,14 @@ AcpiDmDumpCsrt ( SubOffset += SubSubTable->Length; SubSubTable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, SubSubTable, - SubSubTable->Length); + SubSubTable->Length); } /* Point to next subtable */ Offset += SubTable->Length; SubTable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, SubTable, - SubTable->Length); + SubTable->Length); } } @@ -932,7 +944,7 @@ AcpiDmDumpDbg2 ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoDbg2Device); + SubTable->Length, AcpiDmTableInfoDbg2Device); if (ACPI_FAILURE (Status)) { return; @@ -948,7 +960,7 @@ AcpiDmDumpDbg2 ( Array = (UINT8 *) SubTable + ArrayOffset; Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, - SubTable->Length, AcpiDmTableInfoDbg2Addr); + SubTable->Length, AcpiDmTableInfoDbg2Addr); if (ACPI_FAILURE (Status)) { return; @@ -965,7 +977,7 @@ AcpiDmDumpDbg2 ( Array = (UINT8 *) SubTable + ArrayOffset; Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, - SubTable->Length, AcpiDmTableInfoDbg2Size); + SubTable->Length, AcpiDmTableInfoDbg2Size); if (ACPI_FAILURE (Status)) { return; @@ -980,7 +992,7 @@ AcpiDmDumpDbg2 ( Array = (UINT8 *) SubTable + ArrayOffset; Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array, - SubTable->Length, AcpiDmTableInfoDbg2Name); + SubTable->Length, AcpiDmTableInfoDbg2Name); if (ACPI_FAILURE (Status)) { return; @@ -991,8 +1003,8 @@ AcpiDmDumpDbg2 ( if (SubTable->OemDataOffset) { Status = AcpiDmDumpTable (Length, Offset + SubTable->OemDataOffset, - Table, SubTable->OemDataLength, - AcpiDmTableInfoDbg2OemData); + Table, SubTable->OemDataLength, + AcpiDmTableInfoDbg2OemData); if (ACPI_FAILURE (Status)) { return; @@ -1003,7 +1015,7 @@ AcpiDmDumpDbg2 ( Offset += SubTable->Length; SubTable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, SubTable, - SubTable->Length); + SubTable->Length); } } @@ -1053,11 +1065,12 @@ AcpiDmDumpDmar ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoDmarHdr); + SubTable->Length, AcpiDmTableInfoDmarHdr); if (ACPI_FAILURE (Status)) { return; } + AcpiOsPrintf ("\n"); switch (SubTable->Type) @@ -1094,12 +1107,13 @@ AcpiDmDumpDmar ( default: - AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n", + SubTable->Type); return; } Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -1121,7 +1135,7 @@ AcpiDmDumpDmar ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable, - ScopeTable->Length, AcpiDmTableInfoDmarScope); + ScopeTable->Length, AcpiDmTableInfoDmarScope); if (ACPI_FAILURE (Status)) { return; @@ -1137,7 +1151,8 @@ AcpiDmDumpDmar ( while (PathOffset < ScopeTable->Length) { - AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, "PCI Path"); + AcpiDmLineHeader ((PathOffset + ScopeOffset + Offset), 2, + "PCI Path"); AcpiOsPrintf ("%2.2X,%2.2X\n", PciPath[0], PciPath[1]); /* Point to next PCI Path entry */ @@ -1158,7 +1173,8 @@ NextSubtable: /* Point to next subtable */ Offset += SubTable->Length; - SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, SubTable->Length); + SubTable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, SubTable, + SubTable->Length); } } @@ -1190,7 +1206,7 @@ AcpiDmDumpDrtm ( /* Main table */ Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, - AcpiDmTableInfoDrtm); + AcpiDmTableInfoDrtm); if (ACPI_FAILURE (Status)) { return; @@ -1205,12 +1221,13 @@ AcpiDmDumpDrtm ( DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset); AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, - DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), - AcpiDmTableInfoDrtm0); + DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables), + AcpiDmTableInfoDrtm0); if (ACPI_FAILURE (Status)) { return; } + Offset += ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables); /* Dump Validated table addresses */ @@ -1220,12 +1237,13 @@ AcpiDmDumpDrtm ( (DrtmVtl->ValidatedTableCount > Count)) { Status = AcpiDmDumpTable (Table->Length, Offset, - ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), - AcpiDmTableInfoDrtm0a); + ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64), + AcpiDmTableInfoDrtm0a); if (ACPI_FAILURE (Status)) { return; } + Offset += sizeof (UINT64); Count++; } @@ -1235,8 +1253,8 @@ AcpiDmDumpDrtm ( DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset); AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, - DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), - AcpiDmTableInfoDrtm1); + DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources), + AcpiDmTableInfoDrtm1); if (ACPI_FAILURE (Status)) { return; @@ -1251,9 +1269,8 @@ AcpiDmDumpDrtm ( (DrtmRl->ResourceCount > Count)) { Status = AcpiDmDumpTable (Table->Length, Offset, - ACPI_ADD_PTR (void, Table, Offset), - sizeof (ACPI_DRTM_RESOURCE), - AcpiDmTableInfoDrtm1a); + ACPI_ADD_PTR (void, Table, Offset), + sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a); if (ACPI_FAILURE (Status)) { return; @@ -1268,8 +1285,7 @@ AcpiDmDumpDrtm ( DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset); AcpiOsPrintf ("\n"); (void) AcpiDmDumpTable (Table->Length, Offset, - DrtmDps, sizeof (ACPI_DRTM_DPS_ID), - AcpiDmTableInfoDrtm2); + DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2); } @@ -1311,7 +1327,7 @@ AcpiDmDumpEinj ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoEinj0); + sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoEinj0); if (ACPI_FAILURE (Status)) { return; @@ -1321,7 +1337,7 @@ AcpiDmDumpEinj ( Offset += sizeof (ACPI_WHEA_HEADER); SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, SubTable, - sizeof (ACPI_WHEA_HEADER)); + sizeof (ACPI_WHEA_HEADER)); } } @@ -1364,7 +1380,7 @@ AcpiDmDumpErst ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoErst0); + sizeof (ACPI_WHEA_HEADER), AcpiDmTableInfoErst0); if (ACPI_FAILURE (Status)) { return; @@ -1374,7 +1390,7 @@ AcpiDmDumpErst ( Offset += sizeof (ACPI_WHEA_HEADER); SubTable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, SubTable, - sizeof (ACPI_WHEA_HEADER)); + sizeof (ACPI_WHEA_HEADER)); } } @@ -1414,7 +1430,7 @@ AcpiDmDumpFpdt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoFpdtHdr); + SubTable->Length, AcpiDmTableInfoFpdtHdr); if (ACPI_FAILURE (Status)) { return; @@ -1434,7 +1450,8 @@ AcpiDmDumpFpdt ( default: - AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", + SubTable->Type); /* Attempt to continue */ @@ -1447,7 +1464,7 @@ AcpiDmDumpFpdt ( } Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -1457,7 +1474,8 @@ NextSubTable: /* Point to next subtable */ Offset += SubTable->Length; - SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, SubTable, SubTable->Length); + SubTable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, SubTable, + SubTable->Length); } } @@ -1506,7 +1524,7 @@ AcpiDmDumpGtdt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoGtdtHdr); + SubTable->Length, AcpiDmTableInfoGtdtHdr); if (ACPI_FAILURE (Status)) { return; @@ -1519,7 +1537,7 @@ AcpiDmDumpGtdt ( SubTableLength = sizeof (ACPI_GTDT_TIMER_BLOCK); GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, - SubTable))->TimerCount; + SubTable))->TimerCount; InfoTable = AcpiDmTableInfoGtdt0; break; @@ -1535,12 +1553,13 @@ AcpiDmDumpGtdt ( /* Cannot continue on unknown type - no length */ - AcpiOsPrintf ("\n**** Unknown GTDT subtable type 0x%X\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown GTDT subtable type 0x%X\n", + SubTable->Type); return; } Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -1554,14 +1573,15 @@ AcpiDmDumpGtdt ( if (GtCount) { - GtxTable = ACPI_ADD_PTR (ACPI_GTDT_TIMER_ENTRY, SubTable, SubTableLength); + GtxTable = ACPI_ADD_PTR ( + ACPI_GTDT_TIMER_ENTRY, SubTable, SubTableLength); SubTableLength += GtCount * sizeof (ACPI_GTDT_TIMER_ENTRY); while (GtCount) { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, GtxTable, - sizeof (ACPI_GTDT_TIMER_ENTRY), AcpiDmTableInfoGtdt0a); + sizeof (ACPI_GTDT_TIMER_ENTRY), AcpiDmTableInfoGtdt0a); if (ACPI_FAILURE (Status)) { return; @@ -1627,7 +1647,7 @@ AcpiDmDumpHest ( InfoTable = AcpiDmTableInfoHest0; SubTableLength = sizeof (ACPI_HEST_IA_MACHINE_CHECK); BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, - SubTable))->NumHardwareBanks; + SubTable))->NumHardwareBanks; break; case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: @@ -1635,7 +1655,7 @@ AcpiDmDumpHest ( InfoTable = AcpiDmTableInfoHest1; SubTableLength = sizeof (ACPI_HEST_IA_CORRECTED); BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, - SubTable))->NumHardwareBanks; + SubTable))->NumHardwareBanks; break; case ACPI_HEST_TYPE_IA32_NMI: @@ -1672,13 +1692,14 @@ AcpiDmDumpHest ( /* Cannot continue on unknown type - no length */ - AcpiOsPrintf ("\n**** Unknown HEST subtable type 0x%X\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown HEST subtable type 0x%X\n", + SubTable->Type); return; } AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTableLength, InfoTable); + SubTableLength, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -1692,18 +1713,20 @@ AcpiDmDumpHest ( if (BankCount) { - BankTable = ACPI_ADD_PTR (ACPI_HEST_IA_ERROR_BANK, SubTable, SubTableLength); + BankTable = ACPI_ADD_PTR (ACPI_HEST_IA_ERROR_BANK, SubTable, + SubTableLength); SubTableLength += BankCount * sizeof (ACPI_HEST_IA_ERROR_BANK); while (BankCount) { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, BankTable, - sizeof (ACPI_HEST_IA_ERROR_BANK), AcpiDmTableInfoHestBank); + sizeof (ACPI_HEST_IA_ERROR_BANK), AcpiDmTableInfoHestBank); if (ACPI_FAILURE (Status)) { return; } + Offset += sizeof (ACPI_HEST_IA_ERROR_BANK); BankTable++; BankCount--; @@ -1762,7 +1785,7 @@ AcpiDmDumpIort ( if (Iort->NodeOffset > Offset) { Status = AcpiDmDumpTable (Table->Length, Offset, Table, - Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad); + Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad); if (ACPI_FAILURE (Status)) { return; @@ -1778,7 +1801,7 @@ AcpiDmDumpIort ( AcpiOsPrintf ("\n"); Length = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); Status = AcpiDmDumpTable (Table->Length, Offset, - IortNode, Length, AcpiDmTableInfoIortHdr); + IortNode, Length, AcpiDmTableInfoIortHdr); if (ACPI_FAILURE (Status)) { return; @@ -1835,8 +1858,8 @@ AcpiDmDumpIort ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - Length, InfoTable); + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -1857,8 +1880,8 @@ AcpiDmDumpIort ( for (i = 0; i < IortItsGroup->ItsCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - 4, AcpiDmTableInfoIort0a); + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + 4, AcpiDmTableInfoIort0a); NodeOffset += 4; } } @@ -1871,8 +1894,8 @@ AcpiDmDumpIort ( if (IortNode->Length > NodeOffset) { Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - Table, IortNode->Length - NodeOffset, - AcpiDmTableInfoIort1a); + Table, IortNode->Length - NodeOffset, + AcpiDmTableInfoIort1a); if (ACPI_FAILURE (Status)) { return; @@ -1891,8 +1914,8 @@ AcpiDmDumpIort ( Length = 2 * sizeof (UINT64); NodeOffset = IortSmmu->GlobalInterruptOffset; Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - Length, AcpiDmTableInfoIort3a); + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + Length, AcpiDmTableInfoIort3a); if (ACPI_FAILURE (Status)) { return; @@ -1902,12 +1925,13 @@ AcpiDmDumpIort ( for (i = 0; i < IortSmmu->ContextInterruptCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - 8, AcpiDmTableInfoIort3b); + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + 8, AcpiDmTableInfoIort3b); if (ACPI_FAILURE (Status)) { return; } + NodeOffset += 8; } @@ -1915,12 +1939,13 @@ AcpiDmDumpIort ( for (i = 0; i < IortSmmu->PmuInterruptCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - 8, AcpiDmTableInfoIort3c); + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + 8, AcpiDmTableInfoIort3c); if (ACPI_FAILURE (Status)) { return; } + NodeOffset += 8; } } @@ -1939,12 +1964,13 @@ AcpiDmDumpIort ( AcpiOsPrintf ("\n"); Length = sizeof (ACPI_IORT_ID_MAPPING); Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset, - ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), - Length, AcpiDmTableInfoIortMap); + ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset), + Length, AcpiDmTableInfoIortMap); if (ACPI_FAILURE (Status)) { return; } + NodeOffset += Length; } @@ -2002,7 +2028,7 @@ AcpiDmDumpIvrs ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoIvrsHdr); + SubTable->Length, AcpiDmTableInfoIvrsHdr); if (ACPI_FAILURE (Status)) { return; @@ -2041,7 +2067,7 @@ AcpiDmDumpIvrs ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -2053,7 +2079,7 @@ AcpiDmDumpIvrs ( { EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE); DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, SubTable, - sizeof (ACPI_IVRS_HARDWARE)); + sizeof (ACPI_IVRS_HARDWARE)); while (EntryOffset < (Offset + SubTable->Length)) { @@ -2118,7 +2144,7 @@ AcpiDmDumpIvrs ( /* Dump the Device Entry */ Status = AcpiDmDumpTable (Table->Length, EntryOffset, - DeviceEntry, EntryLength, InfoTable); + DeviceEntry, EntryLength, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -2126,7 +2152,7 @@ AcpiDmDumpIvrs ( EntryOffset += EntryLength; DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, DeviceEntry, - EntryLength); + EntryLength); } } @@ -2174,7 +2200,7 @@ AcpiDmDumpLpit ( /* Common subtable header */ Status = AcpiDmDumpTable (Length, Offset, SubTable, - sizeof (ACPI_LPIT_HEADER), AcpiDmTableInfoLpitHdr); + sizeof (ACPI_LPIT_HEADER), AcpiDmTableInfoLpitHdr); if (ACPI_FAILURE (Status)) { return; @@ -2192,16 +2218,18 @@ AcpiDmDumpLpit ( /* Cannot continue on unknown type - no length */ - AcpiOsPrintf ("\n**** Unknown LPIT subtable type 0x%X\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown LPIT subtable type 0x%X\n", + SubTable->Type); return; } Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTableLength, InfoTable); + SubTableLength, InfoTable); if (ACPI_FAILURE (Status)) { return; } + AcpiOsPrintf ("\n"); /* Point to next subtable */ @@ -2253,7 +2281,7 @@ AcpiDmDumpMadt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoMadtHdr); + SubTable->Length, AcpiDmTableInfoMadtHdr); if (ACPI_FAILURE (Status)) { return; @@ -2343,7 +2371,8 @@ AcpiDmDumpMadt ( default: - AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown MADT subtable type 0x%X\n\n", + SubTable->Type); /* Attempt to continue */ @@ -2352,11 +2381,12 @@ AcpiDmDumpMadt ( AcpiOsPrintf ("Invalid zero length subtable\n"); return; } + goto NextSubTable; } Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -2366,7 +2396,8 @@ NextSubTable: /* Point to next subtable */ Offset += SubTable->Length; - SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length); + SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, + SubTable->Length); } } @@ -2414,7 +2445,7 @@ AcpiDmDumpMcfg ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); + sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0); if (ACPI_FAILURE (Status)) { return; @@ -2424,7 +2455,7 @@ AcpiDmDumpMcfg ( Offset += sizeof (ACPI_MCFG_ALLOCATION); SubTable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, SubTable, - sizeof (ACPI_MCFG_ALLOCATION)); + sizeof (ACPI_MCFG_ALLOCATION)); } } @@ -2474,7 +2505,7 @@ AcpiDmDumpMpst ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0, - sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); + sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0); if (ACPI_FAILURE (Status)) { return; @@ -2495,7 +2526,7 @@ AcpiDmDumpMpst ( { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0A, - sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); + sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A); if (ACPI_FAILURE (Status)) { return; @@ -2518,7 +2549,7 @@ AcpiDmDumpMpst ( while (ComponentCount) { Status = AcpiDmDumpTable (Table->Length, Offset, SubTable0B, - sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); + sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B); if (ACPI_FAILURE (Status)) { return; @@ -2543,7 +2574,7 @@ AcpiDmDumpMpst ( AcpiOsPrintf ("\n"); SubTable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, SubTable0); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable1, - sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); + sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1); if (ACPI_FAILURE (Status)) { return; @@ -2554,13 +2585,14 @@ AcpiDmDumpMpst ( /* Subtable: Memory Power State Characteristics structure(s) */ - SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, sizeof (ACPI_MPST_DATA_HDR)); + SubTable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, SubTable1, + sizeof (ACPI_MPST_DATA_HDR)); while ((Offset < Table->Length) && SubtableCount) { AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable2, - sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); + sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2); if (ACPI_FAILURE (Status)) { return; @@ -2611,7 +2643,7 @@ AcpiDmDumpMsct ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); + sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0); if (ACPI_FAILURE (Status)) { return; @@ -2620,7 +2652,8 @@ AcpiDmDumpMsct ( /* Point to next subtable */ Offset += sizeof (ACPI_MSCT_PROXIMITY); - SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, SubTable, sizeof (ACPI_MSCT_PROXIMITY)); + SubTable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, SubTable, + sizeof (ACPI_MSCT_PROXIMITY)); } } @@ -2663,7 +2696,7 @@ AcpiDmDumpMtmr ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); + sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0); if (ACPI_FAILURE (Status)) { return; @@ -2672,7 +2705,8 @@ AcpiDmDumpMtmr ( /* Point to next subtable */ Offset += sizeof (ACPI_MTMR_ENTRY); - SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, SubTable, sizeof (ACPI_MTMR_ENTRY)); + SubTable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, SubTable, + sizeof (ACPI_MTMR_ENTRY)); } } @@ -2722,7 +2756,7 @@ AcpiDmDumpNfit ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoNfitHdr); + SubTable->Length, AcpiDmTableInfoNfitHdr); if (ACPI_FAILURE (Status)) { return; @@ -2775,7 +2809,8 @@ AcpiDmDumpNfit ( break; default: - AcpiOsPrintf ("\n**** Unknown NFIT subtable type 0x%X\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown NFIT subtable type 0x%X\n", + SubTable->Type); /* Attempt to continue */ @@ -2789,7 +2824,7 @@ AcpiDmDumpNfit ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -2804,8 +2839,8 @@ AcpiDmDumpNfit ( for (i = 0; i < Interleave->LineCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, - &Interleave->LineOffset[i], - sizeof (UINT32), AcpiDmTableInfoNfit2a); + &Interleave->LineOffset[i], + sizeof (UINT32), AcpiDmTableInfoNfit2a); if (ACPI_FAILURE (Status)) { return; @@ -2817,13 +2852,15 @@ AcpiDmDumpNfit ( case ACPI_NFIT_TYPE_SMBIOS: - Length = SubTable->Length - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); + Length = SubTable->Length - + sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8); + if (Length) { Status = AcpiDmDumpTable (Table->Length, - sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), - SmbiosInfo, - Length, AcpiDmTableInfoNfit3a); + sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8), + SmbiosInfo, + Length, AcpiDmTableInfoNfit3a); if (ACPI_FAILURE (Status)) { return; @@ -2837,8 +2874,8 @@ AcpiDmDumpNfit ( for (i = 0; i < Hint->HintCount; i++) { Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset, - &Hint->HintAddress[i], - sizeof (UINT64), AcpiDmTableInfoNfit6a); + &Hint->HintAddress[i], + sizeof (UINT64), AcpiDmTableInfoNfit6a); if (ACPI_FAILURE (Status)) { return; @@ -2902,7 +2939,7 @@ AcpiDmDumpPcct ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Header.Length, AcpiDmTableInfoPcctHdr); + SubTable->Header.Length, AcpiDmTableInfoPcctHdr); if (ACPI_FAILURE (Status)) { return; @@ -2930,7 +2967,7 @@ AcpiDmDumpPcct ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Header.Length, InfoTable); + SubTable->Header.Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -2940,7 +2977,7 @@ AcpiDmDumpPcct ( Offset += SubTable->Header.Length; SubTable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, SubTable, - SubTable->Header.Length); + SubTable->Header.Length); } } @@ -2992,7 +3029,7 @@ AcpiDmDumpPmtt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoPmttHdr); + SubTable->Length, AcpiDmTableInfoPmttHdr); if (ACPI_FAILURE (Status)) { return; @@ -3011,7 +3048,7 @@ AcpiDmDumpPmtt ( /* Dump the fixed-length portion of the subtable */ Status = AcpiDmDumpTable (Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoPmtt0); + SubTable->Length, AcpiDmTableInfoPmtt0); if (ACPI_FAILURE (Status)) { return; @@ -3030,8 +3067,8 @@ AcpiDmDumpPmtt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, - Offset + MemOffset, MemSubTable, - MemSubTable->Length, AcpiDmTableInfoPmttHdr); + Offset + MemOffset, MemSubTable, + MemSubTable->Length, AcpiDmTableInfoPmttHdr); if (ACPI_FAILURE (Status)) { return; @@ -3050,8 +3087,8 @@ AcpiDmDumpPmtt ( /* Dump the fixed-length portion of the controller subtable */ Status = AcpiDmDumpTable (Length, - Offset + MemOffset, MemSubTable, - MemSubTable->Length, AcpiDmTableInfoPmtt1); + Offset + MemOffset, MemSubTable, + MemSubTable->Length, AcpiDmTableInfoPmtt1); if (ACPI_FAILURE (Status)) { return; @@ -3069,8 +3106,8 @@ AcpiDmDumpPmtt ( DomainCount) { Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DomainOffset, DomainArray, - sizeof (ACPI_PMTT_DOMAIN), AcpiDmTableInfoPmtt1a); + Offset + MemOffset + DomainOffset, DomainArray, + sizeof (ACPI_PMTT_DOMAIN), AcpiDmTableInfoPmtt1a); if (ACPI_FAILURE (Status)) { return; @@ -3100,8 +3137,8 @@ AcpiDmDumpPmtt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DimmOffset, DimmSubTable, - DimmSubTable->Length, AcpiDmTableInfoPmttHdr); + Offset + MemOffset + DimmOffset, DimmSubTable, + DimmSubTable->Length, AcpiDmTableInfoPmttHdr); if (ACPI_FAILURE (Status)) { return; @@ -3120,8 +3157,8 @@ AcpiDmDumpPmtt ( /* Dump the fixed-length DIMM subtable */ Status = AcpiDmDumpTable (Length, - Offset + MemOffset + DimmOffset, DimmSubTable, - DimmSubTable->Length, AcpiDmTableInfoPmtt2); + Offset + MemOffset + DimmOffset, DimmSubTable, + DimmSubTable->Length, AcpiDmTableInfoPmtt2); if (ACPI_FAILURE (Status)) { return; @@ -3188,7 +3225,7 @@ AcpiDmDumpS3pt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoS3ptHdr); + SubTable->Length, AcpiDmTableInfoS3ptHdr); if (ACPI_FAILURE (Status)) { return 0; @@ -3208,7 +3245,8 @@ AcpiDmDumpS3pt ( default: - AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n", + SubTable->Type); /* Attempt to continue */ @@ -3222,7 +3260,7 @@ AcpiDmDumpS3pt ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (S3ptTable->Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return 0; @@ -3255,8 +3293,9 @@ void AcpiDmDumpSlic ( ACPI_TABLE_HEADER *Table) { + (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table, - Table->Length - sizeof (*Table), AcpiDmTableInfoSlic); + Table->Length - sizeof (*Table), AcpiDmTableInfoSlic); } @@ -3309,7 +3348,8 @@ AcpiDmDumpSlit ( if (Offset >= Table->Length) { - AcpiOsPrintf ("\n**** Not enough room in table for all localities\n"); + AcpiOsPrintf ( + "\n**** Not enough room in table for all localities\n"); return; } @@ -3377,7 +3417,7 @@ AcpiDmDumpSrat ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Length, AcpiDmTableInfoSratHdr); + SubTable->Length, AcpiDmTableInfoSratHdr); if (ACPI_FAILURE (Status)) { return; @@ -3406,7 +3446,8 @@ AcpiDmDumpSrat ( break; default: - AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n", SubTable->Type); + AcpiOsPrintf ("\n**** Unknown SRAT subtable type 0x%X\n", + SubTable->Type); /* Attempt to continue */ @@ -3420,7 +3461,7 @@ AcpiDmDumpSrat ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - SubTable->Length, InfoTable); + SubTable->Length, InfoTable); if (ACPI_FAILURE (Status)) { return; @@ -3430,7 +3471,8 @@ NextSubTable: /* Point to next subtable */ Offset += SubTable->Length; - SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, SubTable->Length); + SubTable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, SubTable, + SubTable->Length); } } @@ -3594,7 +3636,7 @@ AcpiDmDumpVrtc ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); + sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0); if (ACPI_FAILURE (Status)) { return; @@ -3603,7 +3645,8 @@ AcpiDmDumpVrtc ( /* Point to next subtable */ Offset += sizeof (ACPI_VRTC_ENTRY); - SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, SubTable, sizeof (ACPI_VRTC_ENTRY)); + SubTable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, SubTable, + sizeof (ACPI_VRTC_ENTRY)); } } @@ -3646,7 +3689,7 @@ AcpiDmDumpWdat ( AcpiOsPrintf ("\n"); Status = AcpiDmDumpTable (Table->Length, Offset, SubTable, - sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); + sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0); if (ACPI_FAILURE (Status)) { return; @@ -3655,10 +3698,12 @@ AcpiDmDumpWdat ( /* Point to next subtable */ Offset += sizeof (ACPI_WDAT_ENTRY); - SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, SubTable, sizeof (ACPI_WDAT_ENTRY)); + SubTable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, SubTable, + sizeof (ACPI_WDAT_ENTRY)); } } + /******************************************************************************* * * FUNCTION: AcpiDmDumpWpbt diff --git a/src/acpica/source/compiler/Makefile.am b/src/acpica/source/compiler/Makefile.am index f0c48b1..d71068c 100644 --- a/src/acpica/source/compiler/Makefile.am +++ b/src/acpica/source/compiler/Makefile.am @@ -110,6 +110,8 @@ libfwtsiasl_la_SOURCES = \ dtsubtable.c \ dttemplate.c \ dttable.c \ + dttable1.c \ + dttable2.c \ dtutils.c \ dtexpress.c \ dtcompile.c \ @@ -207,6 +209,7 @@ libfwtsiasl_la_SOURCES = \ ../common/dmextern.c \ ../common/dmrestag.c \ ../common/dmtable.c \ + ../common/dmtables.c \ ../common/dmtbinfo.c \ ../common/dmtbdump.c \ ../components/debugger/dbfileio.c \ diff --git a/src/acpica/source/compiler/aslanalyze.c b/src/acpica/source/compiler/aslanalyze.c index dde91ba..0182605 100644 --- a/src/acpica/source/compiler/aslanalyze.c +++ b/src/acpica/source/compiler/aslanalyze.c @@ -211,8 +211,7 @@ AnCheckId ( Length = strlen (Op->Asl.Value.String); if (!Length) { - AslError (ASL_ERROR, ASL_MSG_NULL_STRING, - Op, NULL); + AslError (ASL_ERROR, ASL_MSG_NULL_STRING, Op, NULL); return; } @@ -263,7 +262,7 @@ AnCheckId ( return; } - /* _HID Length is valid (7 or 8), now check the prefix (first 3 or 4 chars) */ + /* _HID Length is valid (7 or 8), now check prefix (first 3 or 4 chars) */ if (Length == 7) { @@ -303,8 +302,8 @@ AnCheckId ( { if (!isxdigit ((int) Op->Asl.Value.String[i])) { - AslError (ASL_ERROR, ASL_MSG_HID_SUFFIX, - Op, &Op->Asl.Value.String[i]); + AslError (ASL_ERROR, ASL_MSG_HID_SUFFIX, + Op, &Op->Asl.Value.String[i]); break; } } @@ -395,7 +394,8 @@ AnCheckMethodReturnValue ( { /* Method SOMETIMES returns a value, SOMETIMES not */ - AslError (ASL_WARNING, ASL_MSG_SOME_NO_RETVAL, Op, Op->Asl.ExternalName); + AslError (ASL_WARNING, ASL_MSG_SOME_NO_RETVAL, + Op, Op->Asl.ExternalName); } else if (!(ThisNodeBtype & RequiredBtypes)) { @@ -472,12 +472,13 @@ AnIsResultUsed ( { return (TRUE); } + return (FALSE); /* Not used if one of these is the parent */ case PARSEOP_METHOD: - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: case PARSEOP_ELSE: return (FALSE); diff --git a/src/acpica/source/compiler/aslbtypes.c b/src/acpica/source/compiler/aslbtypes.c index 96f234a..7328ad5 100644 --- a/src/acpica/source/compiler/aslbtypes.c +++ b/src/acpica/source/compiler/aslbtypes.c @@ -150,7 +150,6 @@ AnMapArgTypeToBtype ( switch (ArgType) { - /* Simple types */ case ARGI_ANYTYPE: @@ -293,7 +292,6 @@ AnMapEtypeToBtype ( UINT32 Etype) { - if (Etype == ACPI_TYPE_ANY) { return (ACPI_BTYPE_OBJECTS_AND_REFS); @@ -400,7 +398,6 @@ AnFormatBtype ( *Buffer = 0; - if (Btype == 0) { strcat (Buffer, "NoReturnValue"); @@ -415,6 +412,7 @@ AnFormatBtype ( { strcat (Buffer, "|"); } + First = FALSE; strcat (Buffer, AcpiUtGetTypeName (Type)); } @@ -427,6 +425,7 @@ AnFormatBtype ( { strcat (Buffer, "|"); } + First = FALSE; strcat (Buffer, "Reference"); } @@ -438,6 +437,7 @@ AnFormatBtype ( { strcat (Buffer, "|"); } + First = FALSE; strcat (Buffer, "Resource"); } @@ -481,7 +481,8 @@ AnGetBtype ( if (!Node) { DbgPrint (ASL_DEBUG_OUTPUT, - "No attached Nsnode: [%s] at line %u name [%s], ignoring typecheck\n", + "No attached Nsnode: [%s] at line %u name [%s], " + "ignoring typecheck\n", Op->Asl.ParseOpName, Op->Asl.LineNumber, Op->Asl.ExternalName); return (ACPI_UINT32_MAX); @@ -529,6 +530,7 @@ AnGetBtype ( return (ThisNodeBtype); } + /******************************************************************************* * * FUNCTION: AnMapObjTypeToBtype diff --git a/src/acpica/source/compiler/aslcodegen.c b/src/acpica/source/compiler/aslcodegen.c index 1508231..864aca7 100644 --- a/src/acpica/source/compiler/aslcodegen.c +++ b/src/acpica/source/compiler/aslcodegen.c @@ -240,28 +240,28 @@ CgAmlWriteWalk ( } DbgPrint (ASL_TREE_OUTPUT, - "%08X %04X %04X %01X %04X %04X %04X %04X " - "%08X %08X %08X %08X %08X %08X %04X %02d %02d %02d %02d %02d\n", - /* 1 */ (UINT32) Op->Asl.Value.Integer, - /* 2 */ Op->Asl.ParseOpcode, - /* 3 */ Op->Asl.AmlOpcode, - /* 4 */ Op->Asl.AmlOpcodeLength, - /* 5 */ Op->Asl.AmlPkgLenBytes, - /* 6 */ Op->Asl.AmlLength, - /* 7 */ Op->Asl.AmlSubtreeLength, - /* 8 */ Op->Asl.Parent ? Op->Asl.Parent->Asl.AmlSubtreeLength : 0, - /* 9 */ Op, - /* 10 */ Op->Asl.Parent, - /* 11 */ Op->Asl.Child, - /* 12 */ Op->Asl.Next, - /* 13 */ Op->Asl.CompileFlags, - /* 14 */ Op->Asl.AcpiBtype, - /* 15 */ Op->Asl.FinalAmlLength, - /* 16 */ Op->Asl.Column, - /* 17 */ Op->Asl.LineNumber, - /* 18 */ Op->Asl.EndLine, - /* 19 */ Op->Asl.LogicalLineNumber, - /* 20 */ Op->Asl.EndLogicalLine); + "%08X %04X %04X %01X %04X %04X %04X %04X " + "%08X %08X %08X %08X %08X %08X %04X %02d %02d %02d %02d %02d\n", + /* 1 */ (UINT32) Op->Asl.Value.Integer, + /* 2 */ Op->Asl.ParseOpcode, + /* 3 */ Op->Asl.AmlOpcode, + /* 4 */ Op->Asl.AmlOpcodeLength, + /* 5 */ Op->Asl.AmlPkgLenBytes, + /* 6 */ Op->Asl.AmlLength, + /* 7 */ Op->Asl.AmlSubtreeLength, + /* 8 */ Op->Asl.Parent ? Op->Asl.Parent->Asl.AmlSubtreeLength : 0, + /* 9 */ Op, + /* 10 */ Op->Asl.Parent, + /* 11 */ Op->Asl.Child, + /* 12 */ Op->Asl.Next, + /* 13 */ Op->Asl.CompileFlags, + /* 14 */ Op->Asl.AcpiBtype, + /* 15 */ Op->Asl.FinalAmlLength, + /* 16 */ Op->Asl.Column, + /* 17 */ Op->Asl.LineNumber, + /* 18 */ Op->Asl.EndLine, + /* 19 */ Op->Asl.LogicalLineNumber, + /* 20 */ Op->Asl.EndLogicalLine); /* Generate the AML for this node */ @@ -346,7 +346,8 @@ CgWriteAmlOpcode ( /* These opcodes should not get here */ printf ("Found a node with an unassigned AML opcode\n"); - FlPrintFile (ASL_FILE_STDERR, "Found a node with an unassigned AML opcode\n"); + FlPrintFile (ASL_FILE_STDERR, + "Found a node with an unassigned AML opcode\n"); return; case AML_INT_RESERVEDFIELD_OP: @@ -429,8 +430,10 @@ CgWriteAmlOpcode ( */ PkgLen.Len >>= 4; - /* Now we can write the remaining bytes - either 1, 2, or 3 bytes */ - + /* + * Now we can write the remaining bytes - + * either 1, 2, or 3 bytes + */ for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++) { CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1); @@ -539,50 +542,100 @@ CgWriteTableHeader ( /* Table length. Checksum zero for now, will rewrite later */ - TableHeader.Length = Gbl_TableLength; + TableHeader.Length = sizeof (ACPI_TABLE_HEADER) + + Op->Asl.AmlSubtreeLength; TableHeader.Checksum = 0; + Op->Asl.FinalAmlOffset = ftell (Gbl_Files[ASL_FILE_AML_OUTPUT].Handle); + + /* Write entire header and clear the table header global */ + CgLocalWriteAmlData (Op, &TableHeader, sizeof (ACPI_TABLE_HEADER)); + memset (&TableHeader, 0, sizeof (ACPI_TABLE_HEADER)); } /******************************************************************************* * - * FUNCTION: CgCloseTable + * FUNCTION: CgUpdateHeader * - * PARAMETERS: None. + * PARAMETERS: Op - Op for the Definition Block * * RETURN: None. * * DESCRIPTION: Complete the ACPI table by calculating the checksum and - * re-writing the header. + * re-writing the header for the input definition block * ******************************************************************************/ static void -CgCloseTable ( - void) +CgUpdateHeader ( + ACPI_PARSE_OBJECT *Op) { signed char Sum; + UINT32 i; + UINT32 Length; UINT8 FileByte; + UINT8 Checksum; - FlSeekFile (ASL_FILE_AML_OUTPUT, 0); - Sum = 0; + /* Calculate the checksum over the entire definition block */ - /* Calculate the checksum over the entire file */ + Sum = 0; + Length = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength; + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset); - while (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) == AE_OK) + for (i = 0; i < Length; i++) { + if (FlReadFile (ASL_FILE_AML_OUTPUT, &FileByte, 1) != AE_OK) + { + printf ("EOF while reading checksum bytes\n"); + return; + } + Sum = (signed char) (Sum + FileByte); } - /* Re-write the table header with the checksum */ + Checksum = (UINT8) (0 - Sum); + + /* Re-write the the checksum byte */ - TableHeader.Checksum = (UINT8) (0 - Sum); + FlSeekFile (ASL_FILE_AML_OUTPUT, Op->Asl.FinalAmlOffset + + ACPI_OFFSET (ACPI_TABLE_HEADER, Checksum)); - FlSeekFile (ASL_FILE_AML_OUTPUT, 0); - CgLocalWriteAmlData (NULL, &TableHeader, sizeof (ACPI_TABLE_HEADER)); + FlWriteFile (ASL_FILE_AML_OUTPUT, &Checksum, 1); +} + + +/******************************************************************************* + * + * FUNCTION: CgCloseTable + * + * PARAMETERS: None. + * + * RETURN: None. + * + * DESCRIPTION: Complete the ACPI table by calculating the checksum and + * re-writing each table header. This allows support for + * multiple definition blocks in a single source file. + * + ******************************************************************************/ + +static void +CgCloseTable ( + void) +{ + ACPI_PARSE_OBJECT *Op; + + + /* Process all definition blocks */ + + Op = RootNode->Asl.Child; + while (Op) + { + CgUpdateHeader (Op); + Op = Op->Asl.Next; + } } @@ -658,7 +711,7 @@ CgWriteNode ( break; - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: CgWriteTableHeader (Op); break; diff --git a/src/acpica/source/compiler/aslcompile.c b/src/acpica/source/compiler/aslcompile.c index c76178c..e9575c7 100644 --- a/src/acpica/source/compiler/aslcompile.c +++ b/src/acpica/source/compiler/aslcompile.c @@ -202,7 +202,8 @@ CmDoCompile ( if (Gbl_SyntaxError) { - fprintf (stderr, "Compiler aborting due to parser-detected syntax error(s)\n"); + fprintf (stderr, + "Compiler aborting due to parser-detected syntax error(s)\n"); LsDumpParseTree (); goto ErrorExit; } @@ -237,7 +238,7 @@ CmDoCompile ( LsDumpParseTree (); - OpcGetIntegerWidth (RootNode); + OpcGetIntegerWidth (RootNode->Asl.Child); UtEndEvent (Event); /* Pre-process parse tree for any operator transforms */ @@ -258,8 +259,8 @@ CmDoCompile ( /* * Now that the input is parsed, we can open the AML output file. - * Note: by default, the name of this file comes from the table descriptor - * within the input file. + * Note: by default, the name of this file comes from the table + * descriptor within the input file. */ Event = UtBeginEvent ("Open AML output file"); Status = FlOpenAmlOutputFile (Gbl_OutputFilenamePrefix); @@ -335,7 +336,8 @@ CmDoCompile ( /* Namespace cross-reference */ - AslGbl_NamespaceEvent = UtBeginEvent ("Cross reference parse tree and Namespace"); + AslGbl_NamespaceEvent = UtBeginEvent ( + "Cross reference parse tree and Namespace"); Status = XfCrossReferenceNamespace (); if (ACPI_FAILURE (Status)) { @@ -373,7 +375,8 @@ CmDoCompile ( /* Semantic error checking part three - operand type checking */ Event = UtBeginEvent ("Analyze AML operand types"); - DbgPrint (ASL_DEBUG_OUTPUT, "\nSemantic analysis - Operand type checking\n\n"); + DbgPrint (ASL_DEBUG_OUTPUT, + "\nSemantic analysis - Operand type checking\n\n"); if (Gbl_DoTypechecking) { TrWalkParseTree (RootNode, ASL_WALK_VISIT_UPWARD, @@ -662,8 +665,8 @@ CmDumpAllEvents ( { ASL_EVENT_INFO *Event; UINT32 Delta; - UINT32 USec; - UINT32 MSec; + UINT32 MicroSeconds; + UINT32 MilliSeconds; UINT32 i; @@ -683,23 +686,23 @@ CmDumpAllEvents ( Delta = (UINT32) (Event->EndTime - Event->StartTime); - USec = Delta / ACPI_100NSEC_PER_USEC; - MSec = Delta / ACPI_100NSEC_PER_MSEC; + MicroSeconds = Delta / ACPI_100NSEC_PER_USEC; + MilliSeconds = Delta / ACPI_100NSEC_PER_MSEC; /* Round milliseconds up */ - if ((USec - (MSec * ACPI_USEC_PER_MSEC)) >= 500) + if ((MicroSeconds - (MilliSeconds * ACPI_USEC_PER_MSEC)) >= 500) { - MSec++; + MilliSeconds++; } DbgPrint (ASL_DEBUG_OUTPUT, "%8u usec %8u msec - %s\n", - USec, MSec, Event->EventName); + MicroSeconds, MilliSeconds, Event->EventName); if (Gbl_CompileTimesFlag) { printf ("%8u usec %8u msec - %s\n", - USec, MSec, Event->EventName); + MicroSeconds, MilliSeconds, Event->EventName); } } diff --git a/src/acpica/source/compiler/aslcompiler.l b/src/acpica/source/compiler/aslcompiler.l index 0fc3535..dcfc9ab 100644 --- a/src/acpica/source/compiler/aslcompiler.l +++ b/src/acpica/source/compiler/aslcompiler.l @@ -282,7 +282,7 @@ NamePathTail [.]{NameSeg} "Debug" { count (1); return (PARSEOP_DEBUG); } "Decrement" { count (3); return (PARSEOP_DECREMENT); } "Default" { count (3); return (PARSEOP_DEFAULT); } -"DefinitionBlock" { count (1); return (PARSEOP_DEFINITIONBLOCK); } +"DefinitionBlock" { count (1); return (PARSEOP_DEFINITION_BLOCK); } "DeRefOf" { count (3); return (PARSEOP_DEREFOF); } "Device" { count (2); return (PARSEOP_DEVICE); } "Divide" { count (3); return (PARSEOP_DIVIDE); } diff --git a/src/acpica/source/compiler/aslcompiler.y b/src/acpica/source/compiler/aslcompiler.y index 20b728a..3a2b191 100644 --- a/src/acpica/source/compiler/aslcompiler.y +++ b/src/acpica/source/compiler/aslcompiler.y @@ -266,7 +266,7 @@ AslLocalAllocate ( %token <i> PARSEOP_DECREMENT %token <i> PARSEOP_DEFAULT %token <i> PARSEOP_DEFAULT_ARG -%token <i> PARSEOP_DEFINITIONBLOCK +%token <i> PARSEOP_DEFINITION_BLOCK %token <i> PARSEOP_DEREFOF %token <i> PARSEOP_DEVICE %token <i> PARSEOP_DEVICEPOLARITY_HIGH @@ -606,6 +606,9 @@ AslLocalAllocate ( /* PARSEOP_EXP_PAREN_OPEN */ /* PARSEOP_EXP_PAREN_CLOSE */ + +%token <i> PARSEOP_ASL_CODE + /* * Special functions. These should probably stay at the end of this * table. @@ -627,12 +630,13 @@ AslLocalAllocate ( *****************************************************************************/ %type <n> ArgList -%type <n> ASLCode +%type <n> AslCode %type <n> BufferData %type <n> BufferTermData %type <n> CompilerDirective %type <n> DataObject %type <n> DefinitionBlockTerm +%type <n> DefinitionBlockList %type <n> IntegerData %type <n> NamedObject %type <n> NameSpaceModifier @@ -985,11 +989,12 @@ AslLocalAllocate ( * Root term. Allow multiple #line directives before the definition block * to handle output from preprocessors */ -ASLCode - : DefinitionBlockTerm +AslCode + : DefinitionBlockList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);} | error {YYABORT; $$ = NULL;} ; + /* * Note concerning support for "module-level code". * @@ -1006,7 +1011,7 @@ ASLCode * of Type1 and Type2 opcodes at module level. */ DefinitionBlockTerm - : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);} + : PARSEOP_DEFINITION_BLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);} String ',' String ',' ByteConst ',' @@ -1017,6 +1022,12 @@ DefinitionBlockTerm '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);} ; +DefinitionBlockList + : DefinitionBlockTerm + | DefinitionBlockTerm + DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);} + ; + SuperName : NameString {} | ArgTerm {} diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c index c9df5d8..0b2631d 100644 --- a/src/acpica/source/compiler/aslerror.c +++ b/src/acpica/source/compiler/aslerror.c @@ -339,8 +339,10 @@ AePrintException ( if (!Enode->SourceLine) { - /* Use the merged header/source file if present, otherwise use input file */ - + /* + * Use the merged header/source file if present, otherwise + * use input file + */ SourceFile = Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Handle; if (!SourceFile) { @@ -386,18 +388,18 @@ AePrintException ( fprintf (OutputFile, " %6u: ", Enode->LineNumber); /* - * If not at EOF, get the corresponding source code line and - * display it. Don't attempt this if we have a premature EOF - * condition. + * If not at EOF, get the corresponding source code line + * and display it. Don't attempt this if we have a + * premature EOF condition. */ if (!PrematureEOF) { /* - * Seek to the offset in the combined source file, read - * the source line, and write it to the output. + * Seek to the offset in the combined source file, + * read the source line, and write it to the output. */ - Actual = fseek (SourceFile, (long) Enode->LogicalByteOffset, - (int) SEEK_SET); + Actual = fseek (SourceFile, + (long) Enode->LogicalByteOffset, (int) SEEK_SET); if (Actual) { fprintf (OutputFile, @@ -952,16 +954,17 @@ AslCoreSubsystemError ( if (Op) { - AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, Op->Asl.LineNumber, - Op->Asl.LogicalLineNumber, - Op->Asl.LogicalByteOffset, - Op->Asl.Column, - Op->Asl.Filename, MsgBuffer); + AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, + Op->Asl.LineNumber, + Op->Asl.LogicalLineNumber, + Op->Asl.LogicalByteOffset, + Op->Asl.Column, + Op->Asl.Filename, MsgBuffer); } else { - AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, 0, - 0, 0, 0, NULL, MsgBuffer); + AslCommonError (ASL_ERROR, ASL_MSG_CORE_EXCEPTION, + 0, 0, 0, 0, NULL, MsgBuffer); } if (Abort) diff --git a/src/acpica/source/compiler/aslfileio.c b/src/acpica/source/compiler/aslfileio.c index 9588528..7872396 100644 --- a/src/acpica/source/compiler/aslfileio.c +++ b/src/acpica/source/compiler/aslfileio.c @@ -142,6 +142,7 @@ FlFileError ( sprintf (MsgBuffer, "\"%s\" (%s) - %s", Gbl_Files[FileId].Filename, Gbl_Files[FileId].Description, strerror (errno)); + AslCommonError (ASL_ERROR, ErrorId, 0, 0, 0, 0, NULL, MsgBuffer); } @@ -341,7 +342,8 @@ FlPrintFile ( AslAbort (); } - if ((FileId == ASL_FILE_PREPROCESSOR) && Gbl_PreprocessorOutputFlag) + if ((FileId == ASL_FILE_PREPROCESSOR) && + Gbl_PreprocessorOutputFlag) { /* * Duplicate the output to the user preprocessor (.i) file, @@ -363,7 +365,6 @@ FlPrintFile ( AslAbort (); } } - } diff --git a/src/acpica/source/compiler/aslfiles.c b/src/acpica/source/compiler/aslfiles.c index 234e9b4..1c1b1d8 100644 --- a/src/acpica/source/compiler/aslfiles.c +++ b/src/acpica/source/compiler/aslfiles.c @@ -128,7 +128,6 @@ FlOpenIncludeWithPrefix ( ACPI_PARSE_OBJECT *Op, char *Filename); - #ifdef ACPI_OBSOLETE_FUNCTIONS ACPI_STATUS FlParseInputPathname ( @@ -334,7 +333,8 @@ FlMergePathnames ( /* Build the final merged pathname */ ConcatenatePaths: - Pathname = UtStringCacheCalloc (strlen (CommonPath) + strlen (FilePathname) + 2); + Pathname = UtStringCacheCalloc ( + strlen (CommonPath) + strlen (FilePathname) + 2); if (LastElement && *CommonPath) { strcpy (Pathname, CommonPath); @@ -494,7 +494,8 @@ FlOpenIncludeFile ( * * Construct the file pathname from the global directory name. */ - IncludeFile = FlOpenIncludeWithPrefix (Gbl_DirectoryPath, Op, Op->Asl.Value.String); + IncludeFile = FlOpenIncludeWithPrefix ( + Gbl_DirectoryPath, Op, Op->Asl.Value.String); if (IncludeFile) { return; @@ -507,7 +508,8 @@ FlOpenIncludeFile ( NextDir = Gbl_IncludeDirList; while (NextDir) { - IncludeFile = FlOpenIncludeWithPrefix (NextDir->Dir, Op, Op->Asl.Value.String); + IncludeFile = FlOpenIncludeWithPrefix ( + NextDir->Dir, Op, Op->Asl.Value.String); if (IncludeFile) { return; diff --git a/src/acpica/source/compiler/aslfold.c b/src/acpica/source/compiler/aslfold.c index 7812907..d7a7bc1 100644 --- a/src/acpica/source/compiler/aslfold.c +++ b/src/acpica/source/compiler/aslfold.c @@ -172,7 +172,7 @@ TrInstallReducedConstant ( * * RETURN: Status * - * DESCRIPTION: Reduce an Op and its subtree to a constant if possible + * DESCRIPTION: Reduce an Op and its subtree to a constant if possible. * ******************************************************************************/ @@ -278,7 +278,8 @@ OpcAmlConstantWalk ( * * RETURN: Status * - * DESCRIPTION: Check one Op for a type 3/4/5 AML opcode + * DESCRIPTION: Check one Op for a reducible type 3/4/5 AML opcode. + * This is performed via a downward walk of the parse subtree. * ******************************************************************************/ @@ -290,6 +291,8 @@ OpcAmlCheckForConstant ( { ACPI_WALK_STATE *WalkState = Context; ACPI_STATUS Status = AE_OK; + ACPI_PARSE_OBJECT *NextOp; + const ACPI_OPCODE_INFO *OpInfo; WalkState->Op = Op; @@ -300,21 +303,6 @@ OpcAmlCheckForConstant ( Op->Asl.LogicalLineNumber, Op->Asl.ParseOpName); /* - * TBD: Ignore buffer constants for now. The problem is that these - * constants have been transformed into RAW_DATA at this point, from - * the parse tree transform process which currently happens before - * the constant folding process. We may need to defer this transform - * for buffer until after the constant folding. - */ - if (WalkState->Opcode == AML_BUFFER_OP) - { - DbgPrint (ASL_PARSE_OUTPUT, - "\nBuffer+Buffer->Buffer constant reduction is not supported yet"); - Status = AE_TYPE; - goto CleanupAndExit; - } - - /* * These opcodes do not appear in the OpcodeInfo table, but * they represent constants, so abort the constant walk now. */ @@ -328,11 +316,95 @@ OpcAmlCheckForConstant ( goto CleanupAndExit; } + /* + * Search upwards for a possible Name() operator. This is done + * because a type 3/4/5 opcode within a Name() expression + * MUST be reduced to a simple constant. + */ + NextOp = Op->Asl.Parent; + while (NextOp) + { + /* Finished if we find a Name() opcode */ + + if (NextOp->Asl.AmlOpcode == AML_NAME_OP) + { + break; + } + + /* + * Any "deferred" opcodes contain one or more TermArg parameters, + * and thus are not required to be folded to constants at compile + * time. This affects things like Buffer() and Package() objects. + * We just ignore them here. However, any sub-expressions can and + * will still be typechecked. Note: These are called the + * "deferred" opcodes in the AML interpreter. + */ + OpInfo = AcpiPsGetOpcodeInfo (NextOp->Common.AmlOpcode); + if (OpInfo->Flags & AML_DEFER) + { + NextOp = NULL; + break; + } + + NextOp = NextOp->Asl.Parent; + } + /* Type 3/4/5 opcodes have the AML_CONSTANT flag set */ if (!(WalkState->OpInfo->Flags & AML_CONSTANT)) { - /* Not 3/4/5 opcode, but maybe can convert to STORE */ + /* + * From the ACPI specification: + * + * "The Type 3/4/5 opcodes return a value and can be used in an + * expression that evaluates to a constant. These opcodes may be + * evaluated at ASL compile-time. To ensure that these opcodes + * will evaluate to a constant, the following rules apply: The + * term cannot have a destination (target) operand, and must have + * either a Type3Opcode, Type4Opcode, Type5Opcode, ConstExprTerm, + * Integer, BufferTerm, Package, or String for all arguments." + */ + + /* + * The value (second) operand for the Name() operator MUST + * reduce to a single constant, as per the ACPI specification + * (the operand is a DataObject). This also implies that there + * can be no target operand. Name() is the only ASL operator + * with a "DataObject" as an operand and is thus special- + * cased here. + */ + if (NextOp) /* Inspect a Name() operator */ + { + /* Error if there is a target operand */ + + if (Op->Asl.CompileFlags & NODE_IS_TARGET) + { + AslError (ASL_ERROR, ASL_MSG_INVALID_TARGET, Op, NULL); + Status = AE_TYPE; + } + + /* Error if expression cannot be reduced (folded) */ + + if (!(NextOp->Asl.CompileFlags & NODE_COULD_NOT_REDUCE)) + { + /* Ensure only one error message per statement */ + + NextOp->Asl.CompileFlags |= NODE_COULD_NOT_REDUCE; + DbgPrint (ASL_PARSE_OUTPUT, + "**** Could not reduce operands for NAME opcode ****\n"); + + AslError (ASL_ERROR, ASL_MSG_CONSTANT_REQUIRED, Op, + "Constant is required for Name operator"); + Status = AE_TYPE; + } + } + + if (ACPI_FAILURE (Status)) + { + goto CleanupAndExit; + } + + /* This is not a 3/4/5 opcode, but maybe can convert to STORE */ if (Op->Asl.CompileFlags & NODE_IS_TARGET) { @@ -344,13 +416,36 @@ OpcAmlCheckForConstant ( /* Expression cannot be reduced */ DbgPrint (ASL_PARSE_OUTPUT, - "**** Not a Type 3/4/5 opcode (%s) ****", + "**** Not a Type 3/4/5 opcode or cannot reduce/fold (%s) ****\n", Op->Asl.ParseOpName); Status = AE_TYPE; goto CleanupAndExit; } + /* + * TBD: Ignore buffer constants for now. The problem is that these + * constants have been transformed into RAW_DATA at this point, from + * the parse tree transform process which currently happens before + * the constant folding process. We may need to defer this transform + * for buffer until after the constant folding. + */ + if (WalkState->Opcode == AML_BUFFER_OP) + { + DbgPrint (ASL_PARSE_OUTPUT, + "\nBuffer constant reduction is not supported yet\n"); + + if (NextOp) /* Found a Name() operator, error */ + { + AslError (ASL_ERROR, ASL_MSG_UNSUPPORTED, Op, + "Buffer expression cannot be reduced"); + } + + Status = AE_TYPE; + goto CleanupAndExit; + } + + /* Debug output */ DbgPrint (ASL_PARSE_OUTPUT, "TYPE_345"); @@ -366,6 +461,7 @@ OpcAmlCheckForConstant ( DbgPrint (ASL_PARSE_OUTPUT, "%-16s", " VALID TARGET"); } } + if (Op->Asl.CompileFlags & NODE_IS_TERM_ARG) { DbgPrint (ASL_PARSE_OUTPUT, "%-16s", " TERMARG"); diff --git a/src/acpica/source/compiler/aslhex.c b/src/acpica/source/compiler/aslhex.c index 39825c8..c7d53a9 100644 --- a/src/acpica/source/compiler/aslhex.c +++ b/src/acpica/source/compiler/aslhex.c @@ -122,7 +122,6 @@ * This module emits ASCII hex output files in either C, ASM, or ASL format */ - /* Local prototypes */ static void @@ -295,6 +294,7 @@ HxDoHexOutputC ( FlPrintFile (ASL_FILE_HEX_OUTPUT, " /* %8.8X", Offset); LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT, LineLength, FileData); + FlPrintFile (ASL_FILE_HEX_OUTPUT, "%*s*/\n", HEX_TABLE_LINE_SIZE - LineLength + 1, " "); @@ -382,6 +382,7 @@ HxDoHexOutputAsl ( FlPrintFile (ASL_FILE_HEX_OUTPUT, " /* %8.8X", Offset); LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT, LineLength, FileData); + FlPrintFile (ASL_FILE_HEX_OUTPUT, "%*s*/\n", HEX_TABLE_LINE_SIZE - LineLength + 1, " "); @@ -465,6 +466,7 @@ HxDoHexOutputAsm ( FlPrintFile (ASL_FILE_HEX_OUTPUT, " ; %8.8X", Offset); LsDumpAsciiInComment (ASL_FILE_HEX_OUTPUT, LineLength, FileData); + FlPrintFile (ASL_FILE_HEX_OUTPUT, "\n"); Offset += LineLength; diff --git a/src/acpica/source/compiler/asllength.c b/src/acpica/source/compiler/asllength.c index 3fbf896..87dc874 100644 --- a/src/acpica/source/compiler/asllength.c +++ b/src/acpica/source/compiler/asllength.c @@ -204,10 +204,11 @@ LnPackageLengthWalk ( if ((Op->Asl.Parent) && (Op->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)) { - Op->Asl.Parent->Asl.AmlSubtreeLength += (Op->Asl.AmlLength + - Op->Asl.AmlOpcodeLength + - Op->Asl.AmlPkgLenBytes + - Op->Asl.AmlSubtreeLength); + Op->Asl.Parent->Asl.AmlSubtreeLength += ( + Op->Asl.AmlLength + + Op->Asl.AmlOpcodeLength + + Op->Asl.AmlPkgLenBytes + + Op->Asl.AmlSubtreeLength); } return (AE_OK); } @@ -301,7 +302,7 @@ CgGenerateAmlOpcodeLength ( if (Op->Asl.CompileFlags & NODE_AML_PACKAGE) { Op->Asl.AmlPkgLenBytes = CgGetPackageLenByteCount ( - Op, Op->Asl.AmlSubtreeLength); + Op, Op->Asl.AmlSubtreeLength); } /* Data opcode lengths are easy */ @@ -404,10 +405,9 @@ CgGenerateAmlLengths ( switch (Op->Asl.ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: - Gbl_TableLength = sizeof (ACPI_TABLE_HEADER) + - Op->Asl.AmlSubtreeLength; + Gbl_TableLength = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength; break; case PARSEOP_NAMESEG: @@ -437,7 +437,6 @@ CgGenerateAmlLengths ( Op->Asl.ExternalName = Op->Asl.Value.String; Op->Asl.Value.String = Buffer; Op->Asl.CompileFlags |= NODE_NAME_INTERNALIZED; - Op->Asl.AmlLength = strlen (Buffer); /* @@ -463,7 +462,7 @@ CgGenerateAmlLengths ( Op->Asl.AmlOpcodeLength = 0; Op->Asl.AmlPkgLenBytes = CgGetPackageLenByteCount (Op, - (UINT32) Op->Asl.Value.Integer); + (UINT32) Op->Asl.Value.Integer); break; case PARSEOP_RAW_DATA: diff --git a/src/acpica/source/compiler/asllisting.c b/src/acpica/source/compiler/asllisting.c index 8131cf4..6f76133 100644 --- a/src/acpica/source/compiler/asllisting.c +++ b/src/acpica/source/compiler/asllisting.c @@ -284,6 +284,12 @@ LsAmlListingWalk ( return (AE_OK); } + if ((FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) || + (FileId == ASL_FILE_C_INCLUDE_OUTPUT)) + { + return (AE_OK); + } + /* Write the hex bytes to the listing file(s) (if requested) */ for (i = 0; i < Op->Asl.FinalAmlLength; i++) @@ -293,6 +299,7 @@ LsAmlListingWalk ( FlFileError (ASL_FILE_AML_OUTPUT, ASL_MSG_READ); AslAbort (); } + LsWriteListingHexBytes (&FileByte, 1, FileId); } @@ -388,7 +395,7 @@ LsWriteNodeToListing ( { switch (Op->Asl.ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: case PARSEOP_METHODCALL: case PARSEOP_INCLUDE: case PARSEOP_INCLUDE_END: @@ -434,36 +441,46 @@ LsWriteNodeToListing ( switch (Op->Asl.ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: LsWriteSourceLines (Op->Asl.EndLine, Op->Asl.EndLogicalLine, FileId); /* Use the table Signature and TableId to build a unique name */ - if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT) + switch (FileId) { + case ASL_FILE_ASM_SOURCE_OUTPUT: + FlPrintFile (FileId, "%s_%s_Header \\\n", Gbl_TableSignature, Gbl_TableId); - } - if (FileId == ASL_FILE_C_SOURCE_OUTPUT) - { + break; + + case ASL_FILE_C_SOURCE_OUTPUT: + FlPrintFile (FileId, " unsigned char %s_%s_Header [] =\n {\n", Gbl_TableSignature, Gbl_TableId); - } - if (FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) - { + break; + + case ASL_FILE_ASM_INCLUDE_OUTPUT: + FlPrintFile (FileId, "extrn %s_%s_Header : byte\n", Gbl_TableSignature, Gbl_TableId); - } - if (FileId == ASL_FILE_C_INCLUDE_OUTPUT) - { + break; + + case ASL_FILE_C_INCLUDE_OUTPUT: + FlPrintFile (FileId, "extern unsigned char %s_%s_Header [];\n", Gbl_TableSignature, Gbl_TableId); + break; + + default: + break; } + return; @@ -612,31 +629,41 @@ LsWriteNodeToListing ( /* Create the appropriate symbol in the output file */ - if (FileId == ASL_FILE_ASM_SOURCE_OUTPUT) + switch (FileId) { + case ASL_FILE_ASM_SOURCE_OUTPUT: + FlPrintFile (FileId, "%s_%s_%s \\\n", Gbl_TableSignature, Gbl_TableId, &Pathname[1]); - } - if (FileId == ASL_FILE_C_SOURCE_OUTPUT) - { + break; + + case ASL_FILE_C_SOURCE_OUTPUT: + FlPrintFile (FileId, " unsigned char %s_%s_%s [] =\n {\n", Gbl_TableSignature, Gbl_TableId, &Pathname[1]); - } - if (FileId == ASL_FILE_ASM_INCLUDE_OUTPUT) - { + break; + + case ASL_FILE_ASM_INCLUDE_OUTPUT: + FlPrintFile (FileId, "extrn %s_%s_%s : byte\n", Gbl_TableSignature, Gbl_TableId, &Pathname[1]); - } - if (FileId == ASL_FILE_C_INCLUDE_OUTPUT) - { + break; + + case ASL_FILE_C_INCLUDE_OUTPUT: + FlPrintFile (FileId, "extern unsigned char %s_%s_%s [];\n", Gbl_TableSignature, Gbl_TableId, &Pathname[1]); + break; + + default: + break; } } + ACPI_FREE (Pathname); } break; diff --git a/src/acpica/source/compiler/asllistsup.c b/src/acpica/source/compiler/asllistsup.c index c71ace0..815a204 100644 --- a/src/acpica/source/compiler/asllistsup.c +++ b/src/acpica/source/compiler/asllistsup.c @@ -160,6 +160,7 @@ LsDumpAscii ( FlPrintFile (FileId, "."); } } + FlPrintFile (FileId, "\""); } @@ -257,7 +258,6 @@ LsCheckException ( (LineNumber >= Gbl_NextError->LogicalLineNumber)) { AePrintException (FileId, Gbl_NextError, "\n[****iasl****]\n"); - Gbl_NextError = Gbl_NextError->Next; } @@ -648,6 +648,7 @@ LsFlushListingBuffer ( { FlPrintFile (FileId, ","); } + FlPrintFile (FileId, "0%2.2Xh", Gbl_AmlBuffer[i]); } diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c index e6c1f85..9607679 100644 --- a/src/acpica/source/compiler/aslload.c +++ b/src/acpica/source/compiler/aslload.c @@ -268,12 +268,11 @@ LdLoadFieldElements ( default: Status = AcpiNsLookup (WalkState->ScopeInfo, - Child->Asl.Value.String, - ACPI_TYPE_LOCAL_REGION_FIELD, - ACPI_IMODE_LOAD_PASS1, - ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | - ACPI_NS_ERROR_IF_FOUND, - NULL, &Node); + Child->Asl.Value.String, + ACPI_TYPE_LOCAL_REGION_FIELD, + ACPI_IMODE_LOAD_PASS1, + ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | + ACPI_NS_ERROR_IF_FOUND, NULL, &Node); if (ACPI_FAILURE (Status)) { if (Status != AE_ALREADY_EXISTS) @@ -338,9 +337,9 @@ LdLoadResourceElements ( * This opens a scope, so later field names are guaranteed to be new/unique. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Asl.Namepath, - ACPI_TYPE_LOCAL_RESOURCE, ACPI_IMODE_LOAD_PASS1, - ACPI_NS_NO_UPSEARCH | ACPI_NS_ERROR_IF_FOUND, - WalkState, &Node); + ACPI_TYPE_LOCAL_RESOURCE, ACPI_IMODE_LOAD_PASS1, + ACPI_NS_NO_UPSEARCH | ACPI_NS_ERROR_IF_FOUND, + WalkState, &Node); if (ACPI_FAILURE (Status)) { if (Status == AE_ALREADY_EXISTS) @@ -368,11 +367,11 @@ LdLoadResourceElements ( if (InitializerOp->Asl.ExternalName) { Status = AcpiNsLookup (WalkState->ScopeInfo, - InitializerOp->Asl.ExternalName, - ACPI_TYPE_LOCAL_RESOURCE_FIELD, - ACPI_IMODE_LOAD_PASS1, - ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE, - NULL, &Node); + InitializerOp->Asl.ExternalName, + ACPI_TYPE_LOCAL_RESOURCE_FIELD, + ACPI_IMODE_LOAD_PASS1, + ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE, + NULL, &Node); if (ACPI_FAILURE (Status)) { return (Status); @@ -416,6 +415,7 @@ LdNamespace1Begin ( { ACPI_WALK_STATE *WalkState = (ACPI_WALK_STATE *) Context; ACPI_NAMESPACE_NODE *Node; + ACPI_PARSE_OBJECT *MethodOp; ACPI_STATUS Status; ACPI_OBJECT_TYPE ObjectType; ACPI_OBJECT_TYPE ActualObjectType = ACPI_TYPE_ANY; @@ -572,8 +572,8 @@ LdNamespace1Begin ( * handle this case. Perhaps someday this case can go away. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, - WalkState, &(Node)); + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, + WalkState, &(Node)); if (ACPI_FAILURE (Status)) { if (Status == AE_NOT_FOUND) @@ -581,9 +581,9 @@ LdNamespace1Begin ( /* The name was not found, go ahead and create it */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, - ACPI_TYPE_LOCAL_SCOPE, - ACPI_IMODE_LOAD_PASS1, Flags, - WalkState, &(Node)); + ACPI_TYPE_LOCAL_SCOPE, + ACPI_IMODE_LOAD_PASS1, Flags, + WalkState, &(Node)); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -606,6 +606,35 @@ LdNamespace1Begin ( return_ACPI_STATUS (Status); } + else /* Status AE_OK */ + { + /* + * Do not allow references to external scopes from the DSDT. + * This is because the DSDT is always loaded first, and the + * external reference cannot be resolved -- causing a runtime + * error because Scope() must be resolved immediately. + * 10/2015. + */ + if ((Node->Flags & ANOBJ_IS_EXTERNAL) && + (ACPI_COMPARE_NAME (Gbl_TableSignature, "DSDT"))) + { + /* However, allowed if the reference is within a method */ + + MethodOp = Op->Asl.Parent; + while (MethodOp && + (MethodOp->Asl.ParseOpcode != PARSEOP_METHOD)) + { + MethodOp = MethodOp->Asl.Parent; + } + + if (!MethodOp) + { + /* Not in a control method, error */ + + AslError (ASL_ERROR, ASL_MSG_CROSS_TABLE_SCOPE, Op, NULL); + } + } + } /* We found a node with this name, now check the type */ @@ -641,7 +670,7 @@ LdNamespace1Begin ( Node->Type = ACPI_TYPE_LOCAL_SCOPE; Status = AcpiDsScopeStackPush (Node, ACPI_TYPE_LOCAL_SCOPE, - WalkState); + WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -663,7 +692,7 @@ LdNamespace1Begin ( */ Node->Type = ACPI_TYPE_LOCAL_SCOPE; Status = AcpiDsScopeStackPush (Node, ACPI_TYPE_LOCAL_SCOPE, - WalkState); + WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -683,7 +712,7 @@ LdNamespace1Begin ( ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Loading name: %s, (%s)\n", - Op->Asl.ExternalName, AcpiUtGetTypeName (ObjectType))); + Op->Asl.ExternalName, AcpiUtGetTypeName (ObjectType))); /* The name must not already exist */ @@ -696,7 +725,7 @@ LdNamespace1Begin ( * parse tree later. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, - ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); + ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); if (ACPI_FAILURE (Status)) { if (Status == AE_ALREADY_EXISTS) @@ -730,6 +759,17 @@ LdNamespace1Begin ( return_ACPI_STATUS (Status); } } + + Status = AE_OK; + } + else if (!(Node->Flags & ANOBJ_IS_EXTERNAL) && + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) + { + /* + * Allow externals in same scope as the definition of the + * actual object. Similar to C. Allows multiple definition + * blocks that refer to each other in the same file. + */ Status = AE_OK; } else @@ -890,8 +930,8 @@ LdNamespace2Begin ( /* Get the NS node associated with the target. It must exist. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &TargetNode); + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &TargetNode); if (ACPI_FAILURE (Status)) { if (Status == AE_NOT_FOUND) @@ -904,9 +944,9 @@ LdNamespace2Begin ( * This prevents more errors later. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, - ACPI_TYPE_ANY, - ACPI_IMODE_LOAD_PASS1, ACPI_NS_NO_UPSEARCH, - WalkState, &(Node)); + ACPI_TYPE_ANY, + ACPI_IMODE_LOAD_PASS1, ACPI_NS_NO_UPSEARCH, + WalkState, &(Node)); return (AE_OK); } diff --git a/src/acpica/source/compiler/aslmap.c b/src/acpica/source/compiler/aslmap.c index a06c246..50b84d1 100644 --- a/src/acpica/source/compiler/aslmap.c +++ b/src/acpica/source/compiler/aslmap.c @@ -551,6 +551,7 @@ const ASL_MAPPING_ENTRY AslKeywordMapping [] = /* HORIZONTALOFFSET */ OP_TABLE_ENTRY (AML_BYTE_OP, 0, 0, 0), /* PRINTF */ OP_TABLE_ENTRY (AML_STORE_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE), /* FPRINTF */ OP_TABLE_ENTRY (AML_STORE_OP, 0, 0, ACPI_BTYPE_DATA_REFERENCE), +/* ASLCODE */ OP_TABLE_ENTRY (0, 0, 0, 0) /*! [End] no source code translation !*/ }; diff --git a/src/acpica/source/compiler/aslmapoutput.c b/src/acpica/source/compiler/aslmapoutput.c index ef85594..d6234ab 100644 --- a/src/acpica/source/compiler/aslmapoutput.c +++ b/src/acpica/source/compiler/aslmapoutput.c @@ -525,7 +525,7 @@ MpEmitDeviceTree ( /* Walk the namespace from the root */ (void) AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, MpEmitOneDevice, NULL, NULL, NULL); + ACPI_UINT32_MAX, FALSE, MpEmitOneDevice, NULL, NULL, NULL); } diff --git a/src/acpica/source/compiler/aslmessages.c b/src/acpica/source/compiler/aslmessages.c index 5373c2d..2245edd 100644 --- a/src/acpica/source/compiler/aslmessages.c +++ b/src/acpica/source/compiler/aslmessages.c @@ -310,8 +310,9 @@ const char *AslCompilerMsgs [] = /* ASL_MSG_ILLEGAL_METHOD_REF */ "Illegal reference across two methods", /* ASL_MSG_LOCAL_NOT_USED */ "Method Local is set but never used", /* ASL_MSG_ARG_AS_LOCAL_NOT_USED */ "Method Argument (as a local) is set but never used", -/* ASL_MSG_ARG_NOT_USED */ "Method Argument is never used" - +/* ASL_MSG_ARG_NOT_USED */ "Method Argument is never used", +/* ASL_MSG_CONSTANT_REQUIRED */ "Non-reducible expression", +/* ASL_MSG_CROSS_TABLE_SCOPE */ "Illegal open scope on external object from within DSDT" }; /* Table compiler */ diff --git a/src/acpica/source/compiler/aslmessages.h b/src/acpica/source/compiler/aslmessages.h index 0e5469d..aa00cf8 100644 --- a/src/acpica/source/compiler/aslmessages.h +++ b/src/acpica/source/compiler/aslmessages.h @@ -313,6 +313,8 @@ typedef enum ASL_MSG_LOCAL_NOT_USED, ASL_MSG_ARG_AS_LOCAL_NOT_USED, ASL_MSG_ARG_NOT_USED, + ASL_MSG_CONSTANT_REQUIRED, + ASL_MSG_CROSS_TABLE_SCOPE, /* These messages are used by the Data Table compiler only */ diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c index 8ffb837..d4f20e8 100644 --- a/src/acpica/source/compiler/aslmethod.c +++ b/src/acpica/source/compiler/aslmethod.c @@ -173,7 +173,7 @@ MtMethodAnalysisWalkBegin ( /* Create and init method info */ - MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO)); + MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO)); MethodInfo->Next = WalkInfo->MethodStack; MethodInfo->Op = Op; @@ -258,7 +258,9 @@ MtMethodAnalysisWalkBegin ( NextParamType = NextType->Asl.Child; while (NextParamType) { - MethodInfo->ValidArgTypes[ActualArgs] |= AnMapObjTypeToBtype (NextParamType); + MethodInfo->ValidArgTypes[ActualArgs] |= + AnMapObjTypeToBtype (NextParamType); + NextParamType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; NextParamType = NextParamType->Asl.Next; } @@ -267,6 +269,7 @@ MtMethodAnalysisWalkBegin ( { MethodInfo->ValidArgTypes[ActualArgs] = AnMapObjTypeToBtype (NextType); + NextType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; ActualArgs++; } @@ -323,7 +326,8 @@ MtMethodAnalysisWalkBegin ( * Local was used outside a control method, or there was an error * in the method declaration. */ - AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName); + AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, + Op, Op->Asl.ExternalName); return (AE_ERROR); } @@ -366,7 +370,8 @@ MtMethodAnalysisWalkBegin ( * Arg was used outside a control method, or there was an error * in the method declaration. */ - AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName); + AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, + Op, Op->Asl.ExternalName); return (AE_ERROR); } @@ -389,7 +394,7 @@ MtMethodAnalysisWalkBegin ( * The only operator that accepts an uninitialized value is ObjectType() */ else if ((!MethodInfo->ArgInitialized[RegisterNumber]) && - (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE)) + (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE)) { AslError (ASL_ERROR, ASL_MSG_ARG_INIT, Op, ArgName); } @@ -490,7 +495,8 @@ MtMethodAnalysisWalkBegin ( i = ApCheckForPredefinedName (Op, Op->Asl.NameSeg); if (i < ACPI_VALID_RESERVED_NAME_MAX) { - AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, Op, Op->Asl.ExternalName); + AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, + Op, Op->Asl.ExternalName); } break; @@ -567,9 +573,10 @@ MtCheckNamedObjectInMethod ( const ACPI_OPCODE_INFO *OpInfo; - /* We don't care about actual method declarations */ + /* We don't care about actual method declarations or scopes */ - if (Op->Asl.AmlOpcode == AML_METHOD_OP) + if ((Op->Asl.AmlOpcode == AML_METHOD_OP) || + (Op->Asl.AmlOpcode == AML_SCOPE_OP)) { return; } @@ -749,7 +756,8 @@ MtMethodAnalysisWalkEnd ( */ if (Op->Asl.Next) { - AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, Op->Asl.Next, NULL); + AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, + Op->Asl.Next, NULL); } break; diff --git a/src/acpica/source/compiler/aslnamesp.c b/src/acpica/source/compiler/aslnamesp.c index c5a6fbd..cdec53b 100644 --- a/src/acpica/source/compiler/aslnamesp.c +++ b/src/acpica/source/compiler/aslnamesp.c @@ -196,16 +196,16 @@ NsDisplayNamespace ( /* Walk entire namespace from the root */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, NsDoOneNamespaceObject, NULL, - NULL, NULL); + ACPI_UINT32_MAX, FALSE, NsDoOneNamespaceObject, NULL, + NULL, NULL); /* Print the full pathname for each namespace node */ FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "\nNamespace pathnames\n\n"); Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, NsDoOnePathname, NULL, - NULL, NULL); + ACPI_UINT32_MAX, FALSE, NsDoOnePathname, NULL, + NULL, NULL); return (Status); } @@ -240,8 +240,7 @@ NsDoOneNamespaceObject ( FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "%5u [%u] %*s %4.4s - %s", Gbl_NumNamespaceObjects, Level, (Level * 3), " ", - &Node->Name, - AcpiUtGetTypeName (Node->Type)); + &Node->Name, AcpiUtGetTypeName (Node->Type)); Op = Node->Op; ObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Node->Object); @@ -290,11 +289,13 @@ NsDoOneNamespaceObject ( { Op = Op->Asl.Child; } + if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) { Op = Op->Asl.Next; } + FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [Initial Value 0x%8.8X%8.8X]", ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer)); @@ -306,11 +307,13 @@ NsDoOneNamespaceObject ( { Op = Op->Asl.Child; } + if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) { Op = Op->Asl.Next; } + FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [Initial Value \"%s\"]", Op->Asl.Value.String); @@ -323,6 +326,7 @@ NsDoOneNamespaceObject ( { Op = Op->Asl.Child; } + FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, " [Offset 0x%04X Length 0x%04X bits]", Op->Asl.Parent->Asl.ExtraValue, (UINT32) Op->Asl.Value.Integer); @@ -375,11 +379,13 @@ NsDoOneNamespaceObject ( { Op = Op->Asl.Child; } + if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) { Op = Op->Asl.Next; } + Op = Op->Asl.Child; if ((Op->Asl.ParseOpcode == PARSEOP_BYTECONST) || @@ -397,11 +403,13 @@ NsDoOneNamespaceObject ( { Op = Op->Asl.Child; } + if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_NAMESTRING)) { Op = Op->Asl.Next; } + Op = Op->Asl.Child; if (Op && (Op->Asl.ParseOpcode == PARSEOP_INTEGER)) @@ -489,6 +497,5 @@ NsDoOnePathname ( FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "%s\n", TargetPath.Pointer); ACPI_FREE (TargetPath.Pointer); - return (AE_OK); } diff --git a/src/acpica/source/compiler/aslopcodes.c b/src/acpica/source/compiler/aslopcodes.c index 4a00b74..08dc4a4 100644 --- a/src/acpica/source/compiler/aslopcodes.c +++ b/src/acpica/source/compiler/aslopcodes.c @@ -332,7 +332,7 @@ OpcSetOptimalIntegerSize ( */ if (Op->Asl.Parent && Op->Asl.Parent->Asl.Parent && - (Op->Asl.Parent->Asl.Parent->Asl.ParseOpcode == PARSEOP_DEFINITIONBLOCK)) + (Op->Asl.Parent->Asl.Parent->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)) { return (0); } @@ -402,11 +402,13 @@ OpcSetOptimalIntegerSize ( Op->Asl.AmlOpcode = AML_BYTE_OP; return (1); } + if (Op->Asl.Value.Integer <= ACPI_UINT16_MAX) { Op->Asl.AmlOpcode = AML_WORD_OP; return (2); } + if (Op->Asl.Value.Integer <= ACPI_UINT32_MAX) { Op->Asl.AmlOpcode = AML_DWORD_OP; @@ -470,6 +472,7 @@ OpcDoAccessAs ( { AttribOp->Asl.Value.Integer = 0; } + AttribOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE; AttribOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; @@ -558,21 +561,21 @@ OpcDoConnection ( * First Child -> BufferLength * Second Child -> Descriptor Buffer (raw byte data) */ - BufferOp->Asl.ParseOpcode = PARSEOP_BUFFER; - BufferOp->Asl.AmlOpcode = AML_BUFFER_OP; - BufferOp->Asl.CompileFlags = NODE_AML_PACKAGE | NODE_IS_RESOURCE_DESC; + BufferOp->Asl.ParseOpcode = PARSEOP_BUFFER; + BufferOp->Asl.AmlOpcode = AML_BUFFER_OP; + BufferOp->Asl.CompileFlags = NODE_AML_PACKAGE | NODE_IS_RESOURCE_DESC; UtSetParseOpName (BufferOp); - BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; + BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; BufferLengthOp->Asl.Value.Integer = Rnode->BufferLength; (void) OpcSetOptimalIntegerSize (BufferLengthOp); UtSetParseOpName (BufferLengthOp); - BufferDataOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; - BufferDataOp->Asl.AmlOpcode = AML_RAW_DATA_CHAIN; - BufferDataOp->Asl.AmlOpcodeLength = 0; - BufferDataOp->Asl.AmlLength = Rnode->BufferLength; - BufferDataOp->Asl.Value.Buffer = (UINT8 *) Rnode; + BufferDataOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; + BufferDataOp->Asl.AmlOpcode = AML_RAW_DATA_CHAIN; + BufferDataOp->Asl.AmlOpcodeLength = 0; + BufferDataOp->Asl.AmlLength = Rnode->BufferLength; + BufferDataOp->Asl.Value.Buffer = (UINT8 *) Rnode; UtSetParseOpName (BufferDataOp); } @@ -636,8 +639,8 @@ OpcDoUnicode ( * Just set the buffer size node to be the buffer length, regardless * of whether it was previously an integer or a default_arg placeholder */ - BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; - BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; + BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; + BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; BufferLengthOp->Asl.Value.Integer = Length; UtSetParseOpName (BufferLengthOp); @@ -645,11 +648,11 @@ OpcDoUnicode ( /* The Unicode string is a raw data buffer */ - InitializerOp->Asl.Value.Buffer = (UINT8 *) UnicodeString; - InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; - InitializerOp->Asl.AmlLength = Length; - InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; - InitializerOp->Asl.Child = NULL; + InitializerOp->Asl.Value.Buffer = (UINT8 *) UnicodeString; + InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; + InitializerOp->Asl.AmlLength = Length; + InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; + InitializerOp->Asl.Child = NULL; UtSetParseOpName (InitializerOp); } @@ -1402,9 +1405,9 @@ OpcDoPld ( NewOp = TrAllocateNode (PARSEOP_INTEGER); - NewOp->Asl.AmlOpcode = AML_BYTE_OP; + NewOp->Asl.AmlOpcode = AML_BYTE_OP; NewOp->Asl.Value.Integer = 20; - NewOp->Asl.Parent = Op; + NewOp->Asl.Parent = Op; Op->Asl.Child = NewOp; Op = NewOp; @@ -1412,10 +1415,10 @@ OpcDoPld ( /* Peer to the child is the raw buffer data */ NewOp = TrAllocateNode (PARSEOP_RAW_DATA); - NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; - NewOp->Asl.AmlLength = 20; - NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); - NewOp->Asl.Parent = Op->Asl.Parent; + NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; + NewOp->Asl.AmlLength = 20; + NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); + NewOp->Asl.Parent = Op->Asl.Parent; Op->Asl.Next = NewOp; } @@ -1470,9 +1473,9 @@ OpcDoUuId ( NewOp = TrAllocateNode (PARSEOP_INTEGER); - NewOp->Asl.AmlOpcode = AML_BYTE_OP; + NewOp->Asl.AmlOpcode = AML_BYTE_OP; NewOp->Asl.Value.Integer = 16; - NewOp->Asl.Parent = Op; + NewOp->Asl.Parent = Op; Op->Asl.Child = NewOp; Op = NewOp; @@ -1480,10 +1483,10 @@ OpcDoUuId ( /* Peer to the child is the raw buffer data */ NewOp = TrAllocateNode (PARSEOP_RAW_DATA); - NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; - NewOp->Asl.AmlLength = 16; - NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); - NewOp->Asl.Parent = Op->Asl.Parent; + NewOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; + NewOp->Asl.AmlLength = 16; + NewOp->Asl.Value.String = ACPI_CAST_PTR (char, Buffer); + NewOp->Asl.Parent = Op->Asl.Parent; Op->Asl.Next = NewOp; } diff --git a/src/acpica/source/compiler/asloperands.c b/src/acpica/source/compiler/asloperands.c index 8a7382a..ee9c9d9 100644 --- a/src/acpica/source/compiler/asloperands.c +++ b/src/acpica/source/compiler/asloperands.c @@ -260,14 +260,16 @@ OpnDoMethod ( { AslError (ASL_ERROR, ASL_MSG_SYNC_LEVEL, Next, NULL); } + Concurrency = (UINT8) Next->Asl.Value.Integer; } /* Put the bits in their proper places */ - MethodFlags = (UINT8) ((NumArgs & 0x7) | - ((Serialized & 0x1) << 3) | - ((Concurrency & 0xF) << 4)); + MethodFlags = (UINT8) + ((NumArgs & 0x7) | + ((Serialized & 0x1) << 3) | + ((Concurrency & 0xF) << 4)); /* Use the last node for the combined flags byte */ @@ -344,9 +346,9 @@ OpnDoFieldCommon ( /* Set the node to RAW_DATA */ Next->Asl.Value.Integer = FieldFlags; - Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE; - Next->Asl.AmlLength = 1; - Next->Asl.ParseOpcode = PARSEOP_RAW_DATA; + Next->Asl.AmlOpcode = AML_RAW_DATA_BYTE; + Next->Asl.AmlLength = 1; + Next->Asl.ParseOpcode = PARSEOP_RAW_DATA; /* Process the FieldUnitList */ @@ -417,8 +419,8 @@ OpnDoFieldCommon ( /* Named or reserved field entry */ - PkgLengthNode = Next->Asl.Child; - NewBitOffset = (UINT32) PkgLengthNode->Asl.Value.Integer; + PkgLengthNode = Next->Asl.Child; + NewBitOffset = (UINT32) PkgLengthNode->Asl.Value.Integer; CurrentBitOffset += NewBitOffset; /* Save the current AccessAs value for error checking later */ @@ -673,9 +675,9 @@ OpnDoBuffer ( { /* For buffers, this is a list of raw bytes */ - InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE; - InitializerOp->Asl.AmlLength = 1; - InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; + InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BYTE; + InitializerOp->Asl.AmlLength = 1; + InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; BufferLength++; InitializerOp = ASL_GET_PEER_NODE (InitializerOp); @@ -690,9 +692,9 @@ OpnDoBuffer ( */ BufferLength = strlen (InitializerOp->Asl.Value.String) + 1; - InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; - InitializerOp->Asl.AmlLength = BufferLength; - InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; + InitializerOp->Asl.AmlOpcode = AML_RAW_DATA_BUFFER; + InitializerOp->Asl.AmlLength = BufferLength; + InitializerOp->Asl.ParseOpcode = PARSEOP_RAW_DATA; break; case PARSEOP_RAW_DATA: @@ -708,7 +710,7 @@ OpnDoBuffer ( AslError (ASL_ERROR, ASL_MSG_INVALID_OPERAND, InitializerOp, "Unknown buffer initializer opcode"); printf ("Unknown buffer initializer opcode [%s]\n", - UtGetOpName (InitializerOp->Asl.ParseOpcode)); + UtGetOpName (InitializerOp->Asl.ParseOpcode)); return; } @@ -732,8 +734,8 @@ OpnDoBuffer ( * Just set the buffer size node to be the buffer length, regardless * of whether it was previously an integer or a default_arg placeholder */ - BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; - BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; + BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER; + BufferLengthOp->Asl.AmlOpcode = AML_DWORD_OP; BufferLengthOp->Asl.Value.Integer = BufferLength; (void) OpcSetOptimalIntegerSize (BufferLengthOp); @@ -911,9 +913,9 @@ OpnDoLoadTable ( Next = Next->Asl.Next; if (Next->Asl.ParseOpcode == PARSEOP_ZERO) { - Next->Asl.ParseOpcode = PARSEOP_STRING_LITERAL; - Next->Asl.Value.String = "\\"; - Next->Asl.AmlLength = 2; + Next->Asl.ParseOpcode = PARSEOP_STRING_LITERAL; + Next->Asl.Value.String = "\\"; + Next->Asl.AmlLength = 2; OpcGenerateAmlOpcode (Next); } @@ -995,6 +997,7 @@ OpnDoDefinitionBlock ( Gbl_OutputFilenamePrefix = Filename; UtConvertBackslashes (Gbl_OutputFilenamePrefix); } + Child->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; /* Signature */ @@ -1203,7 +1206,7 @@ OpnGenerateAmlOperands ( switch (Op->Asl.ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: OpnDoDefinitionBlock (Op); break; diff --git a/src/acpica/source/compiler/aslopt.c b/src/acpica/source/compiler/aslopt.c index ae8cbb3..62f3138 100644 --- a/src/acpica/source/compiler/aslopt.c +++ b/src/acpica/source/compiler/aslopt.c @@ -125,7 +125,7 @@ ACPI_MODULE_NAME ("aslopt") -static UINT32 OptTotal = 0; +static UINT32 OptTotal = 0; /* Local prototypes */ @@ -204,15 +204,15 @@ OptSearchToRoot ( * name in the search path before the one we want, the nodes will * not match, and we cannot use this optimization. */ - Path = &(((char *) TargetPath->Pointer)[TargetPath->Length - - ACPI_NAME_SIZE]), + Path = &(((char *) TargetPath->Pointer)[ + TargetPath->Length - ACPI_NAME_SIZE]), ScopeInfo.Scope.Node = CurrentNode; /* Lookup the NameSeg using SEARCH_PARENT (search-to-root) */ Status = AcpiNsLookup (&ScopeInfo, Path, ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &(Node)); + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &(Node)); if (ACPI_FAILURE (Status)) { return (Status); @@ -244,8 +244,8 @@ OptSearchToRoot ( if (strncmp (*NewPath, "_T_", 3)) { - AslError (ASL_OPTIMIZATION, ASL_MSG_SINGLE_NAME_OPTIMIZATION, Op, - *NewPath); + AslError (ASL_OPTIMIZATION, ASL_MSG_SINGLE_NAME_OPTIMIZATION, + Op, *NewPath); } return (AE_OK); @@ -364,7 +364,7 @@ OptBuildShortestPath ( /* Determine how many prefix Carats are required */ NumCarats = (CurrentPath->Length / ACPI_PATH_SEGMENT_LENGTH) - - NumCommonSegments; + NumCommonSegments; /* * Construct a new target string @@ -445,8 +445,8 @@ OptBuildShortestPath ( * path that has been created. */ Status = AcpiNsLookup (&ScopeInfo, NewPath, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); if (ACPI_SUCCESS (Status)) { /* Found the namepath, but make sure the node is correct */ @@ -518,7 +518,7 @@ OptOptimizeNameDeclaration ( if (((CurrentNode == AcpiGbl_RootNode) || - (Op->Common.Parent->Asl.ParseOpcode == PARSEOP_DEFINITIONBLOCK)) && + (Op->Common.Parent->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)) && (ACPI_IS_ROOT_PREFIX (AmlNameString[0]))) { /* @@ -530,7 +530,7 @@ OptOptimizeNameDeclaration ( /* Debug output */ Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, *NewPath, - NULL, &NewPathExternal); + NULL, &NewPathExternal); if (ACPI_FAILURE (Status)) { AslCoreSubsystemError (Op, Status, "Externalizing NamePath", @@ -546,8 +546,8 @@ OptOptimizeNameDeclaration ( * We know that we are at the root, so NULL is used for the scope. */ Status = AcpiNsLookup (NULL, *NewPath, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_DONT_OPEN_SCOPE, WalkState, &(Node)); if (ACPI_SUCCESS (Status)) { /* Found the namepath, but make sure the node is correct */ @@ -705,6 +705,7 @@ OptOptimizeNamePath ( { NextOp = NextOp->Asl.Parent; } + if (NextOp && NextOp->Asl.Node) { CurrentNode = NextOp->Asl.Node; @@ -734,6 +735,7 @@ OptOptimizeNamePath ( ASL_NO_ABORT); return_VOID; } + TargetPath.Length--; /* Subtract one for null terminator */ /* CurrentPath is the path to this scope (where we are in the namespace) */ @@ -746,12 +748,13 @@ OptOptimizeNamePath ( ASL_NO_ABORT); return_VOID; } + CurrentPath.Length--; /* Subtract one for null terminator */ /* Debug output only */ Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, AmlNameString, - NULL, &ExternalNameString); + NULL, &ExternalNameString); if (ACPI_FAILURE (Status)) { AslCoreSubsystemError (Op, Status, "Externalizing NamePath", @@ -777,7 +780,7 @@ OptOptimizeNamePath ( * a reference. */ Status = OptOptimizeNameDeclaration (Op, WalkState, CurrentNode, - TargetNode, AmlNameString, &NewPath); + TargetNode, AmlNameString, &NewPath); if (ACPI_FAILURE (Status)) { /* @@ -785,8 +788,8 @@ OptOptimizeNamePath ( * optimize the namestring with carats (up-arrow) */ Status = OptBuildShortestPath (Op, WalkState, CurrentNode, - TargetNode, &CurrentPath, &TargetPath, - AmlNameStringLength, 1, &NewPath); + TargetNode, &CurrentPath, &TargetPath, + AmlNameStringLength, 1, &NewPath); } } else @@ -798,7 +801,7 @@ OptOptimizeNamePath ( * NameSeg of the NamePath */ Status = OptSearchToRoot (Op, WalkState, CurrentNode, - TargetNode, &TargetPath, &NewPath); + TargetNode, &TargetPath, &NewPath); if (ACPI_FAILURE (Status)) { /* @@ -806,8 +809,8 @@ OptOptimizeNamePath ( * optimize the namestring with carats (up-arrow) */ Status = OptBuildShortestPath (Op, WalkState, CurrentNode, - TargetNode, &CurrentPath, &TargetPath, - AmlNameStringLength, 0, &NewPath); + TargetNode, &CurrentPath, &TargetPath, + AmlNameStringLength, 0, &NewPath); } } diff --git a/src/acpica/source/compiler/aslpredef.c b/src/acpica/source/compiler/aslpredef.c index c39483b..680cb62 100644 --- a/src/acpica/source/compiler/aslpredef.c +++ b/src/acpica/source/compiler/aslpredef.c @@ -331,7 +331,7 @@ ApCheckPredefinedReturnValue ( */ Gbl_AllExceptionsDisabled = TRUE; Index = ApCheckForPredefinedName (MethodInfo->Op, - MethodInfo->Op->Asl.NameSeg); + MethodInfo->Op->Asl.NameSeg); Gbl_AllExceptionsDisabled = FALSE; switch (Index) @@ -643,7 +643,8 @@ ApCheckForSpecialName ( * warning and force the user to manually change the names. So, we * will issue a remark instead. */ - AslError (ASL_REMARK, ASL_MSG_COMPILER_RESERVED, Op, Op->Asl.ExternalName); + AslError (ASL_REMARK, ASL_MSG_COMPILER_RESERVED, + Op, Op->Asl.ExternalName); return (ACPI_COMPILER_RESERVED_NAME); } @@ -652,8 +653,8 @@ ApCheckForSpecialName ( * warning, since the entire namespace starting with an underscore is * reserved by the ACPI spec. */ - AslError (ASL_WARNING, ASL_MSG_UNKNOWN_RESERVED_NAME, Op, - Op->Asl.ExternalName); + AslError (ASL_WARNING, ASL_MSG_UNKNOWN_RESERVED_NAME, + Op, Op->Asl.ExternalName); return (ACPI_NOT_RESERVED_NAME); } diff --git a/src/acpica/source/compiler/aslprepkg.c b/src/acpica/source/compiler/aslprepkg.c index 6a74e88..4f6163f 100644 --- a/src/acpica/source/compiler/aslprepkg.c +++ b/src/acpica/source/compiler/aslprepkg.c @@ -310,6 +310,7 @@ ApCheckPackage ( ApCheckObjectType (Predefined->Info.Name, Op, Package->RetInfo3.TailObjectType, i); } + Op = Op->Asl.Next; } break; diff --git a/src/acpica/source/compiler/aslprune.c b/src/acpica/source/compiler/aslprune.c index 44221bb..7f0074f 100644 --- a/src/acpica/source/compiler/aslprune.c +++ b/src/acpica/source/compiler/aslprune.c @@ -135,6 +135,8 @@ PrPrintObjectAtLevel ( const char *ObjectName); +/* Structure used for the pruning parse tree walk */ + typedef struct acpi_prune_info { UINT32 PruneLevel; diff --git a/src/acpica/source/compiler/aslresource.c b/src/acpica/source/compiler/aslresource.c index 2abc7dd..4ae38b3 100644 --- a/src/acpica/source/compiler/aslresource.c +++ b/src/acpica/source/compiler/aslresource.c @@ -468,6 +468,7 @@ RsGetStringDataLength ( { return ((UINT16) (strlen (InitializerOp->Asl.Value.String) + 1)); } + InitializerOp = ASL_GET_PEER_NODE (InitializerOp); } @@ -503,7 +504,6 @@ RsAllocateResourceNode ( Rnode->Buffer = UtLocalCalloc (Size); Rnode->BufferLength = Size; - return (Rnode); } @@ -539,7 +539,6 @@ RsCreateResourceField ( Op->Asl.ExternalName = Name; Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD; - Op->Asl.Value.Tag.BitOffset = (ByteOffset * 8) + BitOffset; Op->Asl.Value.Tag.BitLength = BitLength; } @@ -960,7 +959,7 @@ RsDoOneResourceDescriptor ( default: printf ("Unknown resource descriptor type [%s]\n", - Info->DescriptorTypeOp->Asl.ParseOpName); + Info->DescriptorTypeOp->Asl.ParseOpName); break; } @@ -976,7 +975,8 @@ RsDoOneResourceDescriptor ( if (Rnode) { Info->DescriptorTypeOp->Asl.FinalAmlLength = Rnode->BufferLength; - Info->DescriptorTypeOp->Asl.Extra = ((AML_RESOURCE *) Rnode->Buffer)->DescriptorType; + Info->DescriptorTypeOp->Asl.Extra = + ((AML_RESOURCE *) Rnode->Buffer)->DescriptorType; } return (Rnode); diff --git a/src/acpica/source/compiler/aslrestype1.c b/src/acpica/source/compiler/aslrestype1.c index 945f1bf..a00b4e9 100644 --- a/src/acpica/source/compiler/aslrestype1.c +++ b/src/acpica/source/compiler/aslrestype1.c @@ -158,7 +158,6 @@ RsDoEndTagDescriptor ( Descriptor->EndTag.DescriptorType = ACPI_RESOURCE_NAME_END_TAG | ASL_RDESC_END_TAG_SIZE; Descriptor->EndTag.Checksum = 0; - return (Rnode); } @@ -186,8 +185,8 @@ RsDoEndDependentDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_END_DEPENDENT)); Descriptor = Rnode->Buffer; - Descriptor->EndDpf.DescriptorType = ACPI_RESOURCE_NAME_END_DEPENDENT | - ASL_RDESC_END_DEPEND_SIZE; + Descriptor->EndDpf.DescriptorType = + ACPI_RESOURCE_NAME_END_DEPENDENT | ASL_RDESC_END_DEPEND_SIZE; return (Rnode); } @@ -223,7 +222,7 @@ RsDoMemory24Descriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_MEMORY24)); Descriptor = Rnode->Buffer; - Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24; + Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24; Descriptor->Memory24.ResourceLength = 9; /* Process all child initialization nodes */ @@ -329,7 +328,7 @@ RsDoMemory32Descriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_MEMORY32)); Descriptor = Rnode->Buffer; - Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32; + Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32; Descriptor->Memory32.ResourceLength = 17; /* Process all child initialization nodes */ @@ -432,7 +431,7 @@ RsDoMemory32FixedDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_FIXED_MEMORY32)); Descriptor = Rnode->Buffer; - Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32; + Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32; Descriptor->FixedMemory32.ResourceLength = 9; /* Process all child initialization nodes */ @@ -520,8 +519,8 @@ RsDoStartDependentDescriptor ( /* Descriptor has priority byte */ - Descriptor->StartDpf.DescriptorType = ACPI_RESOURCE_NAME_START_DEPENDENT | - (ASL_RDESC_ST_DEPEND_SIZE + 0x01); + Descriptor->StartDpf.DescriptorType = + ACPI_RESOURCE_NAME_START_DEPENDENT | (ASL_RDESC_ST_DEPEND_SIZE + 0x01); /* Process all child initialization nodes */ @@ -565,8 +564,8 @@ RsDoStartDependentDescriptor ( * must keep track of the offset of not only each descriptor, but each * element (field) within each descriptor as well. */ - CurrentByteOffset += RsLinkDescriptorChain (&PreviousRnode, - NextRnode); + CurrentByteOffset += RsLinkDescriptorChain ( + &PreviousRnode, NextRnode); break; } @@ -608,8 +607,8 @@ RsDoStartDependentNoPriDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_START_DEPENDENT_NOPRIO)); Descriptor = Rnode->Buffer; - Descriptor->StartDpf.DescriptorType = ACPI_RESOURCE_NAME_START_DEPENDENT | - ASL_RDESC_ST_DEPEND_SIZE; + Descriptor->StartDpf.DescriptorType = + ACPI_RESOURCE_NAME_START_DEPENDENT | ASL_RDESC_ST_DEPEND_SIZE; PreviousRnode = Rnode; /* Increment offset past StartDependentNoPri descriptor */ @@ -671,7 +670,7 @@ RsDoVendorSmallDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_VENDOR_SMALL) + 7); Descriptor = Rnode->Buffer; - Descriptor->VendorSmall.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_SMALL; + Descriptor->VendorSmall.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_SMALL; VendorData = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_SMALL_HEADER); /* Process all child initialization nodes */ diff --git a/src/acpica/source/compiler/aslrestype1i.c b/src/acpica/source/compiler/aslrestype1i.c index 1394580..a974aa6 100644 --- a/src/acpica/source/compiler/aslrestype1i.c +++ b/src/acpica/source/compiler/aslrestype1i.c @@ -160,8 +160,8 @@ RsDoDmaDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_DMA)); Descriptor = Rnode->Buffer; - Descriptor->Dma.DescriptorType = ACPI_RESOURCE_NAME_DMA | - ASL_RDESC_DMA_SIZE; + Descriptor->Dma.DescriptorType = + ACPI_RESOURCE_NAME_DMA | ASL_RDESC_DMA_SIZE; /* Process all child initialization nodes */ @@ -354,8 +354,8 @@ RsDoFixedIoDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_FIXED_IO)); Descriptor = Rnode->Buffer; - Descriptor->Io.DescriptorType = ACPI_RESOURCE_NAME_FIXED_IO | - ASL_RDESC_FIXED_IO_SIZE; + Descriptor->Io.DescriptorType = + ACPI_RESOURCE_NAME_FIXED_IO | ASL_RDESC_FIXED_IO_SIZE; /* Process all child initialization nodes */ @@ -437,8 +437,8 @@ RsDoIoDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IO)); Descriptor = Rnode->Buffer; - Descriptor->Io.DescriptorType = ACPI_RESOURCE_NAME_IO | - ASL_RDESC_IO_SIZE; + Descriptor->Io.DescriptorType = + ACPI_RESOURCE_NAME_IO | ASL_RDESC_IO_SIZE; /* Process all child initialization nodes */ @@ -548,8 +548,8 @@ RsDoIrqDescriptor ( /* Length = 3 (with flag byte) */ Descriptor = Rnode->Buffer; - Descriptor->Irq.DescriptorType = ACPI_RESOURCE_NAME_IRQ | - (ASL_RDESC_IRQ_SIZE + 0x01); + Descriptor->Irq.DescriptorType = + ACPI_RESOURCE_NAME_IRQ | (ASL_RDESC_IRQ_SIZE + 0x01); /* Process all child initialization nodes */ @@ -668,8 +668,8 @@ RsDoIrqNoFlagsDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_IRQ_NOFLAGS)); Descriptor = Rnode->Buffer; - Descriptor->Irq.DescriptorType = ACPI_RESOURCE_NAME_IRQ | - ASL_RDESC_IRQ_SIZE; + Descriptor->Irq.DescriptorType = + ACPI_RESOURCE_NAME_IRQ | ASL_RDESC_IRQ_SIZE; /* Process all child initialization nodes */ diff --git a/src/acpica/source/compiler/aslrestype2.c b/src/acpica/source/compiler/aslrestype2.c index 1cbca10..7e62a76 100644 --- a/src/acpica/source/compiler/aslrestype2.c +++ b/src/acpica/source/compiler/aslrestype2.c @@ -219,6 +219,7 @@ RsDoGeneralRegisterDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } + return (Rnode); } @@ -285,7 +286,7 @@ RsDoInterruptDescriptor ( 1 + OptionIndex + StringLength); Descriptor = Rnode->Buffer; - Descriptor->ExtendedIrq.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_IRQ; + Descriptor->ExtendedIrq.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_IRQ; /* * Initial descriptor length -- may be enlarged if there are @@ -295,7 +296,7 @@ RsDoInterruptDescriptor ( Descriptor->ExtendedIrq.InterruptCount = 0; Rover = ACPI_CAST_PTR (AML_RESOURCE, - (&(Descriptor->ExtendedIrq.Interrupts[0]))); + (&(Descriptor->ExtendedIrq.Interrupts[0]))); /* Process all child initialization nodes */ @@ -454,9 +455,10 @@ RsDoInterruptDescriptor ( (Descriptor->ExtendedIrq.ResourceLength + StringLength); } - Rnode->BufferLength = (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - - ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) - + OptionIndex + StringLength; + Rnode->BufferLength = + (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) - + ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType)) + + OptionIndex + StringLength; return (Rnode); } @@ -503,7 +505,7 @@ RsDoVendorLargeDescriptor ( Rnode = RsAllocateResourceNode (sizeof (AML_RESOURCE_VENDOR_LARGE) + i); Descriptor = Rnode->Buffer; - Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE; + Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE; Descriptor->VendorLarge.ResourceLength = (UINT16) i; /* Point to end-of-descriptor for vendor data */ diff --git a/src/acpica/source/compiler/aslrestype2d.c b/src/acpica/source/compiler/aslrestype2d.c index 083751f..c1fc003 100644 --- a/src/acpica/source/compiler/aslrestype2d.c +++ b/src/acpica/source/compiler/aslrestype2d.c @@ -163,11 +163,11 @@ RsDoDwordIoDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); Descriptor = Rnode->Buffer; Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32; - Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; + Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; /* * Initial descriptor length -- may be enlarged if there are @@ -397,7 +397,7 @@ RsDoDwordMemoryDescriptor ( Descriptor = Rnode->Buffer; Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32; - Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; + Descriptor->Address32.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; /* * Initial descriptor length -- may be enlarged if there are @@ -628,7 +628,7 @@ RsDoDwordSpaceDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS32) + 1 + StringLength); Descriptor = Rnode->Buffer; Descriptor->Address32.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS32; diff --git a/src/acpica/source/compiler/aslrestype2e.c b/src/acpica/source/compiler/aslrestype2e.c index 2a24589..1f2cc95 100644 --- a/src/acpica/source/compiler/aslrestype2e.c +++ b/src/acpica/source/compiler/aslrestype2e.c @@ -159,14 +159,14 @@ RsDoExtendedIoDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); + sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; - Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; - Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; + Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; + Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; + Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; - Descriptor->ExtAddress64.ResourceLength = (UINT16) + Descriptor->ExtAddress64.ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) - sizeof (AML_RESOURCE_LARGE_HEADER)); @@ -335,11 +335,11 @@ RsDoExtendedMemoryDescriptor ( sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; - Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; - Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; + Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; + Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; + Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; - Descriptor->ExtAddress64.ResourceLength = (UINT16) + Descriptor->ExtAddress64.ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) - sizeof (AML_RESOURCE_LARGE_HEADER)); @@ -513,13 +513,13 @@ RsDoExtendedSpaceDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); + sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; - Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; + Descriptor->ExtAddress64.DescriptorType = ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64; + Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION; - Descriptor->ExtAddress64.ResourceLength = (UINT16) + Descriptor->ExtAddress64.ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) - sizeof (AML_RESOURCE_LARGE_HEADER)); diff --git a/src/acpica/source/compiler/aslrestype2q.c b/src/acpica/source/compiler/aslrestype2q.c index cfb0405..a24d554 100644 --- a/src/acpica/source/compiler/aslrestype2q.c +++ b/src/acpica/source/compiler/aslrestype2q.c @@ -163,11 +163,11 @@ RsDoQwordIoDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; - Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; + Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; + Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; /* * Initial descriptor length -- may be enlarged if there are @@ -384,11 +384,11 @@ RsDoQwordMemoryDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; - Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; + Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; + Descriptor->Address64.ResourceType = ACPI_ADDRESS_TYPE_MEMORY_RANGE; /* * Initial descriptor length -- may be enlarged if there are @@ -613,7 +613,7 @@ RsDoQwordSpaceDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS64) + 1 + StringLength); Descriptor = Rnode->Buffer; Descriptor->Address64.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS64; diff --git a/src/acpica/source/compiler/aslrestype2s.c b/src/acpica/source/compiler/aslrestype2s.c index 779edd0..469f06e 100644 --- a/src/acpica/source/compiler/aslrestype2s.c +++ b/src/acpica/source/compiler/aslrestype2s.c @@ -385,17 +385,19 @@ RsDoGpioIntDescriptor ( /* Allocate the local resource node and initialize */ - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); Descriptor = Rnode->Buffer; - Descriptor->Gpio.ResourceLength = DescriptorSize; - Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; - Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; - Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT; + Descriptor->Gpio.ResourceLength = DescriptorSize; + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT; /* Build pointers to optional areas */ - InterruptList = ACPI_ADD_PTR (UINT16, Descriptor, sizeof (AML_RESOURCE_GPIO)); + InterruptList = ACPI_ADD_PTR (UINT16, Descriptor, + sizeof (AML_RESOURCE_GPIO)); PinList = InterruptList; ResourceSource = ACPI_ADD_PTR (char, InterruptList, InterruptLength); VendorData = ACPI_ADD_PTR (UINT8, ResourceSource, ResSourceLength); @@ -409,8 +411,10 @@ RsDoGpioIntDescriptor ( ACPI_PTR_DIFF (ResourceSource, Descriptor); DbgPrint (ASL_DEBUG_OUTPUT, - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, IntLen: %.2X\n", - "GpioInt", Descriptor->Gpio.ResourceLength, (UINT16) sizeof (AML_RESOURCE_GPIO), + "%16s - Actual: %.2X, Base: %.2X, ResLen: " + "%.2X, VendLen: %.2X, IntLen: %.2X\n", + "GpioInt", Descriptor->Gpio.ResourceLength, + (UINT16) sizeof (AML_RESOURCE_GPIO), ResSourceLength, VendorLength, InterruptLength); /* Process all child initialization nodes */ @@ -469,7 +473,8 @@ RsDoGpioIntDescriptor ( if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) { - Descriptor->Gpio.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; + Descriptor->Gpio.ResSourceIndex = + (UINT8) InitializerOp->Asl.Value.Integer; } break; @@ -494,7 +499,7 @@ RsDoGpioIntDescriptor ( ACPI_PTR_DIFF (VendorData, Descriptor); if (RsGetVendorData (InitializerOp, VendorData, - (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) + (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) { Descriptor->Gpio.VendorLength = VendorLength; } @@ -540,7 +545,8 @@ RsDoGpioIntDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } - MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); + MpSaveGpioInfo (Info->MappingOp, Descriptor, + PinCount, PinList, ResourceSource); return (Rnode); } @@ -596,13 +602,14 @@ RsDoGpioIoDescriptor ( /* Allocate the local resource node and initialize */ - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); Descriptor = Rnode->Buffer; - Descriptor->Gpio.ResourceLength = DescriptorSize; - Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; - Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; - Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO; + Descriptor->Gpio.ResourceLength = DescriptorSize; + Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO; + Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION; + Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO; /* Build pointers to optional areas */ @@ -620,8 +627,10 @@ RsDoGpioIoDescriptor ( ACPI_PTR_DIFF (ResourceSource, Descriptor); DbgPrint (ASL_DEBUG_OUTPUT, - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, IntLen: %.2X\n", - "GpioIo", Descriptor->Gpio.ResourceLength, (UINT16) sizeof (AML_RESOURCE_GPIO), + "%16s - Actual: %.2X, Base: %.2X, ResLen: " + "%.2X, VendLen: %.2X, IntLen: %.2X\n", + "GpioIo", Descriptor->Gpio.ResourceLength, + (UINT16) sizeof (AML_RESOURCE_GPIO), ResSourceLength, VendorLength, InterruptLength); /* Process all child initialization nodes */ @@ -704,7 +713,7 @@ RsDoGpioIoDescriptor ( ACPI_PTR_DIFF (VendorData, Descriptor); if (RsGetVendorData (InitializerOp, VendorData, - (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) + (CurrentByteOffset + Descriptor->Gpio.VendorOffset))) { Descriptor->Gpio.VendorLength = VendorLength; } @@ -750,7 +759,8 @@ RsDoGpioIoDescriptor ( InitializerOp = RsCompleteNodeAndGetNext (InitializerOp); } - MpSaveGpioInfo (Info->MappingOp, Descriptor, PinCount, PinList, ResourceSource); + MpSaveGpioInfo (Info->MappingOp, Descriptor, + PinCount, PinList, ResourceSource); return (Rnode); } @@ -799,14 +809,15 @@ RsDoI2cSerialBusDescriptor ( /* Allocate the local resource node and initialize */ - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); Descriptor = Rnode->Buffer; Descriptor->I2cSerialBus.ResourceLength = DescriptorSize; Descriptor->I2cSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; - Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION; + Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION; Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION; - Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE; + Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE; Descriptor->I2cSerialBus.TypeDataLength = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength; /* Build pointers to optional areas */ @@ -815,7 +826,8 @@ RsDoI2cSerialBusDescriptor ( ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); DbgPrint (ASL_DEBUG_OUTPUT, - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, TypLen: %.2X\n", + "%16s - Actual: %.2X, Base: %.2X, ResLen: " + "%.2X, VendLen: %.2X, TypLen: %.2X\n", "I2cSerialBus", Descriptor->I2cSerialBus.ResourceLength, (UINT16) sizeof (AML_RESOURCE_I2C_SERIALBUS), ResSourceLength, VendorLength, Descriptor->I2cSerialBus.TypeDataLength); @@ -869,7 +881,8 @@ RsDoI2cSerialBusDescriptor ( if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) { - Descriptor->I2cSerialBus.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; + Descriptor->I2cSerialBus.ResSourceIndex = + (UINT8) InitializerOp->Asl.Value.Integer; } break; @@ -946,23 +959,26 @@ RsDoSpiSerialBusDescriptor ( /* Allocate the local resource node and initialize */ - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); Descriptor = Rnode->Buffer; Descriptor->SpiSerialBus.ResourceLength = DescriptorSize; Descriptor->SpiSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; - Descriptor->SpiSerialBus.RevisionId = AML_RESOURCE_SPI_REVISION; + Descriptor->SpiSerialBus.RevisionId = AML_RESOURCE_SPI_REVISION; Descriptor->SpiSerialBus.TypeRevisionId = AML_RESOURCE_SPI_TYPE_REVISION; - Descriptor->SpiSerialBus.Type = AML_RESOURCE_SPI_SERIALBUSTYPE; + Descriptor->SpiSerialBus.Type = AML_RESOURCE_SPI_SERIALBUSTYPE; Descriptor->SpiSerialBus.TypeDataLength = AML_RESOURCE_SPI_MIN_DATA_LEN + VendorLength; /* Build pointers to optional areas */ - VendorData = ACPI_ADD_PTR (UINT8, Descriptor, sizeof (AML_RESOURCE_SPI_SERIALBUS)); + VendorData = ACPI_ADD_PTR (UINT8, Descriptor, + sizeof (AML_RESOURCE_SPI_SERIALBUS)); ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); DbgPrint (ASL_DEBUG_OUTPUT, - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, TypLen: %.2X\n", + "%16s - Actual: %.2X, Base: %.2X, ResLen: " + "%.2X, VendLen: %.2X, TypLen: %.2X\n", "SpiSerialBus", Descriptor->SpiSerialBus.ResourceLength, (UINT16) sizeof (AML_RESOURCE_SPI_SERIALBUS), ResSourceLength, VendorLength, Descriptor->SpiSerialBus.TypeDataLength); @@ -1044,7 +1060,8 @@ RsDoSpiSerialBusDescriptor ( if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) { - Descriptor->SpiSerialBus.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; + Descriptor->SpiSerialBus.ResSourceIndex = + (UINT8) InitializerOp->Asl.Value.Integer; } break; @@ -1121,14 +1138,15 @@ RsDoUartSerialBusDescriptor ( /* Allocate the local resource node and initialize */ - Rnode = RsAllocateResourceNode (DescriptorSize + sizeof (AML_RESOURCE_LARGE_HEADER)); + Rnode = RsAllocateResourceNode (DescriptorSize + + sizeof (AML_RESOURCE_LARGE_HEADER)); Descriptor = Rnode->Buffer; Descriptor->UartSerialBus.ResourceLength = DescriptorSize; Descriptor->UartSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS; - Descriptor->UartSerialBus.RevisionId = AML_RESOURCE_UART_REVISION; + Descriptor->UartSerialBus.RevisionId = AML_RESOURCE_UART_REVISION; Descriptor->UartSerialBus.TypeRevisionId = AML_RESOURCE_UART_TYPE_REVISION; - Descriptor->UartSerialBus.Type = AML_RESOURCE_UART_SERIALBUSTYPE; + Descriptor->UartSerialBus.Type = AML_RESOURCE_UART_SERIALBUSTYPE; Descriptor->UartSerialBus.TypeDataLength = AML_RESOURCE_UART_MIN_DATA_LEN + VendorLength; /* Build pointers to optional areas */ @@ -1137,7 +1155,8 @@ RsDoUartSerialBusDescriptor ( ResourceSource = ACPI_ADD_PTR (char, VendorData, VendorLength); DbgPrint (ASL_DEBUG_OUTPUT, - "%16s - Actual: %.2X, Base: %.2X, ResLen: %.2X, VendLen: %.2X, TypLen: %.2X\n", + "%16s - Actual: %.2X, Base: %.2X, ResLen: " + "%.2X, VendLen: %.2X, TypLen: %.2X\n", "UartSerialBus", Descriptor->UartSerialBus.ResourceLength, (UINT16) sizeof (AML_RESOURCE_UART_SERIALBUS), ResSourceLength, VendorLength, Descriptor->UartSerialBus.TypeDataLength); @@ -1226,7 +1245,8 @@ RsDoUartSerialBusDescriptor ( if (InitializerOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG) { - Descriptor->UartSerialBus.ResSourceIndex = (UINT8) InitializerOp->Asl.Value.Integer; + Descriptor->UartSerialBus.ResSourceIndex = + (UINT8) InitializerOp->Asl.Value.Integer; } break; diff --git a/src/acpica/source/compiler/aslrestype2w.c b/src/acpica/source/compiler/aslrestype2w.c index d00a979..1103ac4 100644 --- a/src/acpica/source/compiler/aslrestype2w.c +++ b/src/acpica/source/compiler/aslrestype2w.c @@ -163,11 +163,11 @@ RsDoWordIoDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; - Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; + Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; + Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE; /* * Initial descriptor length -- may be enlarged if there are @@ -384,11 +384,11 @@ RsDoWordBusNumberDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; - Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE; + Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; + Descriptor->Address16.ResourceType = ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE; /* * Initial descriptor length -- may be enlarged if there are @@ -589,10 +589,10 @@ RsDoWordSpaceDescriptor ( CurrentByteOffset = Info->CurrentByteOffset; Rnode = RsAllocateResourceNode ( - sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); + sizeof (AML_RESOURCE_ADDRESS16) + 1 + StringLength); Descriptor = Rnode->Buffer; - Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; + Descriptor->Address16.DescriptorType = ACPI_RESOURCE_NAME_ADDRESS16; /* * Initial descriptor length -- may be enlarged if there are diff --git a/src/acpica/source/compiler/aslrules.y b/src/acpica/source/compiler/aslrules.y index 789df32..4608f8d 100644 --- a/src/acpica/source/compiler/aslrules.y +++ b/src/acpica/source/compiler/aslrules.y @@ -126,11 +126,12 @@ NoEcho(' * Root term. Allow multiple #line directives before the definition block * to handle output from preprocessors */ -ASLCode - : DefinitionBlockTerm +AslCode + : DefinitionBlockList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);} | error {YYABORT; $$ = NULL;} ; + /* * Note concerning support for "module-level code". * @@ -147,7 +148,7 @@ ASLCode * of Type1 and Type2 opcodes at module level. */ DefinitionBlockTerm - : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);} + : PARSEOP_DEFINITION_BLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);} String ',' String ',' ByteConst ',' @@ -158,6 +159,12 @@ DefinitionBlockTerm '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);} ; +DefinitionBlockList + : DefinitionBlockTerm + | DefinitionBlockTerm + DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);} + ; + SuperName : NameString {} | ArgTerm {} diff --git a/src/acpica/source/compiler/aslstubs.c b/src/acpica/source/compiler/aslstubs.c index bdb94c1..6c61421 100644 --- a/src/acpica/source/compiler/aslstubs.c +++ b/src/acpica/source/compiler/aslstubs.c @@ -342,3 +342,45 @@ AcpiTbFindTable ( { return (AE_SUPPORT); } + +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); +} diff --git a/src/acpica/source/compiler/asltokens.y b/src/acpica/source/compiler/asltokens.y index 89ce095..8dfd567 100644 --- a/src/acpica/source/compiler/asltokens.y +++ b/src/acpica/source/compiler/asltokens.y @@ -196,7 +196,7 @@ NoEcho(' %token <i> PARSEOP_DECREMENT %token <i> PARSEOP_DEFAULT %token <i> PARSEOP_DEFAULT_ARG -%token <i> PARSEOP_DEFINITIONBLOCK +%token <i> PARSEOP_DEFINITION_BLOCK %token <i> PARSEOP_DEREFOF %token <i> PARSEOP_DEVICE %token <i> PARSEOP_DEVICEPOLARITY_HIGH @@ -536,6 +536,9 @@ NoEcho(' /* PARSEOP_EXP_PAREN_OPEN */ /* PARSEOP_EXP_PAREN_CLOSE */ + +%token <i> PARSEOP_ASL_CODE + /* * Special functions. These should probably stay at the end of this * table. diff --git a/src/acpica/source/compiler/asltransform.c b/src/acpica/source/compiler/asltransform.c index df5d994..fd91965 100644 --- a/src/acpica/source/compiler/asltransform.c +++ b/src/acpica/source/compiler/asltransform.c @@ -183,7 +183,7 @@ TrAmlGetNextTempName ( char *TempName; - if (*TempCount >= (10+26)) /* 0-35 valid: 0-9 and A-Z for TempName[3] */ + if (*TempCount >= (10 + 26)) /* 0-35 valid: 0-9 and A-Z for TempName[3] */ { /* Too many temps */ @@ -201,6 +201,7 @@ TrAmlGetNextTempName ( { TempName[3] = (char) (*TempCount + ('A' - 10)); } + (*TempCount)++; /* First three characters are always "_T_" */ @@ -289,7 +290,7 @@ TrAmlSetSubtreeParent ( while (Next) { Next->Asl.Parent = Parent; - Next = Next->Asl.Next; + Next = Next->Asl.Next; } } @@ -314,7 +315,7 @@ TrAmlInsertPeer ( { NewPeer->Asl.Next = Op->Asl.Next; - Op->Asl.Next = NewPeer; + Op->Asl.Next = NewPeer; } @@ -369,7 +370,7 @@ TrTransformSubtree ( switch (Op->Asl.ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_DEFINITION_BLOCK: TrDoDefinitionBlock (Op); break; @@ -520,7 +521,7 @@ TrDoSwitch ( { /* Add an ELSE to complete the previous CASE */ - NewOp = TrCreateLeafNode (PARSEOP_ELSE); + NewOp = TrCreateLeafNode (PARSEOP_ELSE); NewOp->Asl.Parent = Conditional->Asl.Parent; TrAmlInitLineNumbers (NewOp, NewOp->Asl.Parent); @@ -530,9 +531,9 @@ TrDoSwitch ( CurrentParentNode = NewOp; } - CaseOp = Next; + CaseOp = Next; Conditional = CaseOp; - CaseBlock = CaseOp->Asl.Child->Asl.Next; + CaseBlock = CaseOp->Asl.Child->Asl.Next; Conditional->Asl.Child->Asl.Next = NULL; Predicate = CaseOp->Asl.Child; @@ -609,7 +610,7 @@ TrDoSwitch ( * CaseOp->Child->Peer is the beginning of the case block */ NewOp = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, - (UINT64) ACPI_TO_INTEGER (PredicateValueName)); + (UINT64) ACPI_TO_INTEGER (PredicateValueName)); NewOp->Asl.Next = Predicate; TrAmlInitLineNumbers (NewOp, Predicate); @@ -672,7 +673,7 @@ TrDoSwitch ( /* Unknown peer opcode */ AcpiOsPrintf ("Unknown parse opcode for switch statement: %s (%u)\n", - Next->Asl.ParseOpName, Next->Asl.ParseOpcode); + Next->Asl.ParseOpName, Next->Asl.ParseOpcode); } } @@ -717,7 +718,7 @@ TrDoSwitch ( Next = StartNode; while ((Next->Asl.ParseOpcode != PARSEOP_METHOD) && - (Next->Asl.ParseOpcode != PARSEOP_DEFINITIONBLOCK)) + (Next->Asl.ParseOpcode != PARSEOP_DEFINITION_BLOCK)) { Next = Next->Asl.Parent; } @@ -740,7 +741,8 @@ TrDoSwitch ( */ if (Next->Asl.ParseOpcode != PARSEOP_SERIALIZERULE_SERIAL) { - AslError (ASL_REMARK, ASL_MSG_SERIALIZED, MethodOp, "Due to use of Switch operator"); + AslError (ASL_REMARK, ASL_MSG_SERIALIZED, MethodOp, + "Due to use of Switch operator"); Next->Asl.ParseOpcode = PARSEOP_SERIALIZERULE_SERIAL; } @@ -754,7 +756,7 @@ TrDoSwitch ( /* Create the NameSeg child for the Name node */ NewOp2 = TrCreateValuedLeafNode (PARSEOP_NAMESEG, - (UINT64) ACPI_TO_INTEGER (PredicateValueName)); + (UINT64) ACPI_TO_INTEGER (PredicateValueName)); TrAmlInitLineNumbers (NewOp2, NewOp); NewOp2->Asl.CompileFlags |= NODE_IS_NAME_DECLARATION; NewOp->Asl.Child = NewOp2; @@ -766,25 +768,25 @@ TrDoSwitch ( case ACPI_BTYPE_INTEGER: NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_ZERO, - (UINT64) 0); + (UINT64) 0); TrAmlInitLineNumbers (NewOp2->Asl.Next, NewOp); break; case ACPI_BTYPE_STRING: NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, - (UINT64) ACPI_TO_INTEGER ("")); + (UINT64) ACPI_TO_INTEGER ("")); TrAmlInitLineNumbers (NewOp2->Asl.Next, NewOp); break; case ACPI_BTYPE_BUFFER: (void) TrLinkPeerNode (NewOp2, TrCreateValuedLeafNode (PARSEOP_BUFFER, - (UINT64) 0)); + (UINT64) 0)); Next = NewOp2->Asl.Next; TrAmlInitLineNumbers (Next, NewOp2); (void) TrLinkChildren (Next, 1, TrCreateValuedLeafNode (PARSEOP_ZERO, - (UINT64) 1)); + (UINT64) 1)); TrAmlInitLineNumbers (Next->Asl.Child, Next); BufferOp = TrCreateValuedLeafNode (PARSEOP_DEFAULT_ARG, (UINT64) 0); @@ -827,7 +829,7 @@ TrDoSwitch ( Predicate->Asl.Parent = StoreOp; NewOp = TrCreateValuedLeafNode (PARSEOP_NAMESEG, - (UINT64) ACPI_TO_INTEGER (PredicateValueName)); + (UINT64) ACPI_TO_INTEGER (PredicateValueName)); TrAmlInitLineNumbers (NewOp, StoreOp); NewOp->Asl.Parent = StoreOp; Predicate->Asl.Next = NewOp; diff --git a/src/acpica/source/compiler/asltree.c b/src/acpica/source/compiler/asltree.c index e54a690..6948b5d 100644 --- a/src/acpica/source/compiler/asltree.c +++ b/src/acpica/source/compiler/asltree.c @@ -412,6 +412,11 @@ TrPrintNodeCompileFlags ( FlagName = "NODE_METHOD_TYPED"; break; + case NODE_COULD_NOT_REDUCE: + + FlagName = "NODE_COULD_NOT_REDUCE"; + break; + case NODE_COMPILE_TIME_CONST: FlagName = "NODE_COMPILE_TIME_CONST"; @@ -561,7 +566,7 @@ TrSetEndLineNumber ( return; } - Op->Asl.EndLine = Gbl_CurrentLineNumber; + Op->Asl.EndLine = Gbl_CurrentLineNumber; Op->Asl.EndLogicalLine = Gbl_LogicalLineNumber; } @@ -825,7 +830,8 @@ TrCreateConstantLeafNode ( } DbgPrint (ASL_PARSE_OUTPUT, - "\nCreateConstantLeafNode Ln/Col %u/%u NewNode %p Op %s Value %8.8X%8.8X \n", + "\nCreateConstantLeafNode Ln/Col %u/%u NewNode %p " + "Op %s Value %8.8X%8.8X \n", Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName (ParseOpcode), ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer)); return (Op); @@ -932,7 +938,8 @@ TrCreateValuedLeafNode ( Op = TrAllocateNode (ParseOpcode); DbgPrint (ASL_PARSE_OUTPUT, - "\nCreateValuedLeafNode Ln/Col %u/%u NewNode %p Op %s Value %8.8X%8.8X ", + "\nCreateValuedLeafNode Ln/Col %u/%u NewNode %p " + "Op %s Value %8.8X%8.8X ", Op->Asl.LineNumber, Op->Asl.Column, Op, UtGetOpName(ParseOpcode), ACPI_FORMAT_UINT64 (Value)); Op->Asl.Value.Integer = Value; @@ -1018,15 +1025,22 @@ TrCreateNode ( DbgPrint (ASL_PARSE_OUTPUT, "\nCreateNode Ln/Col %u/%u NewParent %p Child %u Op %s ", - Op->Asl.LineNumber, Op->Asl.Column, Op, NumChildren, UtGetOpName(ParseOpcode)); + Op->Asl.LineNumber, Op->Asl.Column, Op, + NumChildren, UtGetOpName(ParseOpcode)); /* Some extra debug output based on the parse opcode */ switch (ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_ASL_CODE: RootNode = Op; + Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; + DbgPrint (ASL_PARSE_OUTPUT, "ASLCODE (Tree Completed)->"); + break; + + case PARSEOP_DEFINITION_BLOCK: + DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->"); break; @@ -1147,9 +1161,15 @@ TrLinkChildren ( switch (Op->Asl.ParseOpcode) { - case PARSEOP_DEFINITIONBLOCK: + case PARSEOP_ASL_CODE: RootNode = Op; + Op->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG; + DbgPrint (ASL_PARSE_OUTPUT, "ASLCODE (Tree Completed)->"); + break; + + case PARSEOP_DEFINITION_BLOCK: + DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->"); break; @@ -1227,6 +1247,7 @@ TrLinkChildren ( Child = Child->Asl.Next; Child->Asl.Parent = Op; } + PrevChild = Child; } diff --git a/src/acpica/source/compiler/asltypes.h b/src/acpica/source/compiler/asltypes.h index b08c5df..34340a5 100644 --- a/src/acpica/source/compiler/asltypes.h +++ b/src/acpica/source/compiler/asltypes.h @@ -138,7 +138,7 @@ #define NODE_METHOD_SOME_NO_RETVAL 0x00000200 #define NODE_RESULT_NOT_USED 0x00000400 #define NODE_METHOD_TYPED 0x00000800 -#define NODE_UNUSED_FLAG 0x00001000 +#define NODE_COULD_NOT_REDUCE 0x00001000 #define NODE_COMPILE_TIME_CONST 0x00002000 #define NODE_IS_TERM_ARG 0x00004000 #define NODE_WAS_ONES_OP 0x00008000 diff --git a/src/acpica/source/compiler/asltypes.y b/src/acpica/source/compiler/asltypes.y index 832d67c..52ea9c3 100644 --- a/src/acpica/source/compiler/asltypes.y +++ b/src/acpica/source/compiler/asltypes.y @@ -123,12 +123,13 @@ NoEcho(' *****************************************************************************/ %type <n> ArgList -%type <n> ASLCode +%type <n> AslCode %type <n> BufferData %type <n> BufferTermData %type <n> CompilerDirective %type <n> DataObject %type <n> DefinitionBlockTerm +%type <n> DefinitionBlockList %type <n> IntegerData %type <n> NamedObject %type <n> NameSpaceModifier diff --git a/src/acpica/source/compiler/aslutils.c b/src/acpica/source/compiler/aslutils.c index 6c0e757..374fe50 100644 --- a/src/acpica/source/compiler/aslutils.c +++ b/src/acpica/source/compiler/aslutils.c @@ -271,7 +271,6 @@ UtBeginEvent ( AslGbl_Events[AslGbl_NextEvent].StartTime = AcpiOsGetTimer (); AslGbl_Events[AslGbl_NextEvent].EventName = Name; AslGbl_Events[AslGbl_NextEvent].Valid = TRUE; - return (AslGbl_NextEvent++); } @@ -878,6 +877,7 @@ UtPadNameWithUnderscores ( { *PaddedNameSeg = '_'; } + PaddedNameSeg++; } } @@ -1162,7 +1162,7 @@ stroul64 ( /* Check to see if value is out of range: */ if (ReturnValue > ((ACPI_UINT64_MAX - (UINT64) Index) / - (UINT64) Base)) + (UINT64) Base)) { goto ErrorExit; } diff --git a/src/acpica/source/compiler/asluuid.c b/src/acpica/source/compiler/asluuid.c index b9854b9..f1c47fe 100644 --- a/src/acpica/source/compiler/asluuid.c +++ b/src/acpica/source/compiler/asluuid.c @@ -119,7 +119,7 @@ ACPI_MODULE_NAME ("asluuid") -extern UINT8 AcpiGbl_MapToUuidOffset[UUID_BUFFER_LENGTH]; +extern UINT8 AcpiGbl_MapToUuidOffset[UUID_BUFFER_LENGTH]; /******************************************************************************* @@ -162,11 +162,10 @@ AuValidateUuid ( return (AE_BAD_PARAMETER); } } - - /* All other positions must contain hex digits */ - else { + /* All other positions must contain hex digits */ + if (!isxdigit ((int) InString[i])) { return (AE_BAD_PARAMETER); diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c index 200abf3..82e053b 100644 --- a/src/acpica/source/compiler/aslxref.c +++ b/src/acpica/source/compiler/aslxref.c @@ -220,7 +220,7 @@ XfCrossReferenceNamespace ( /* Walk the entire parse tree */ TrWalkParseTree (RootNode, ASL_WALK_VISIT_TWICE, XfNamespaceLocateBegin, - XfNamespaceLocateEnd, WalkState); + XfNamespaceLocateEnd, WalkState); ACPI_FREE (WalkState); return (AE_OK); @@ -249,8 +249,8 @@ XfObjectExists ( /* Walk entire namespace from the supplied root */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, XfCompareOneNamespaceObject, NULL, - Name, NULL); + ACPI_UINT32_MAX, FALSE, XfCompareOneNamespaceObject, NULL, + Name, NULL); if (Status == AE_CTRL_TRUE) { /* At least one instance of the name was found */ @@ -647,6 +647,7 @@ XfNamespaceLocateBegin ( { NextOp = NextOp->Asl.Next; } + Path = NextOp->Asl.Value.String; } else @@ -668,7 +669,7 @@ XfNamespaceLocateBegin ( Gbl_NsLookupCount++; Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, - ACPI_IMODE_EXECUTE, Flags, WalkState, &(Node)); + ACPI_IMODE_EXECUTE, Flags, WalkState, &(Node)); if (ACPI_FAILURE (Status)) { if (Status == AE_NOT_FOUND) @@ -850,7 +851,8 @@ XfNamespaceLocateBegin ( if (Message) { - sprintf (MsgBuffer, "Size mismatch, Tag: %u bit%s, Field: %u bit%s", + sprintf (MsgBuffer, + "Size mismatch, Tag: %u bit%s, Field: %u bit%s", TagBitLength, (TagBitLength > 1) ? "s" : "", FieldBitLength, (FieldBitLength > 1) ? "s" : ""); @@ -919,7 +921,7 @@ XfNamespaceLocateBegin ( if (Node->Type != ACPI_TYPE_METHOD) { sprintf (MsgBuffer, "%s is a %s", - Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type)); + Op->Asl.ExternalName, AcpiUtGetTypeName (Node->Type)); AslError (ASL_ERROR, ASL_MSG_NOT_METHOD, Op, MsgBuffer); return_ACPI_STATUS (AE_OK); @@ -942,7 +944,7 @@ XfNamespaceLocateBegin ( UtSetParseOpName (Op); PassedArgs = 0; - NextOp = Op->Asl.Child; + NextOp = Op->Asl.Child; while (NextOp) { @@ -1048,7 +1050,8 @@ XfNamespaceLocateBegin ( case ACPI_ADR_SPACE_CMOS: case ACPI_ADR_SPACE_GPIO: - if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != AML_FIELD_ACCESS_BYTE) + if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != + AML_FIELD_ACCESS_BYTE) { AslError (ASL_ERROR, ASL_MSG_REGION_BYTE_ACCESS, Op, NULL); } @@ -1058,7 +1061,8 @@ XfNamespaceLocateBegin ( case ACPI_ADR_SPACE_IPMI: case ACPI_ADR_SPACE_GSBUS: - if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != AML_FIELD_ACCESS_BUFFER) + if ((UINT8) Op->Asl.Parent->Asl.Value.Integer != + AML_FIELD_ACCESS_BUFFER) { AslError (ASL_ERROR, ASL_MSG_REGION_BUFFER_ACCESS, Op, NULL); } @@ -1086,10 +1090,10 @@ XfNamespaceLocateBegin ( if (Op->Asl.Parent->Asl.ExtraValue && Op->Asl.Child) { XfCheckFieldRange (Op, - Op->Asl.Parent->Asl.ExtraValue, - Op->Asl.ExtraValue, - (UINT32) Op->Asl.Child->Asl.Value.Integer, - Op->Asl.Child->Asl.ExtraValue); + Op->Asl.Parent->Asl.ExtraValue, + Op->Asl.ExtraValue, + (UINT32) Op->Asl.Child->Asl.Value.Integer, + Op->Asl.Child->Asl.ExtraValue); } } } diff --git a/src/acpica/source/compiler/dtcompile.c b/src/acpica/source/compiler/dtcompile.c index 98d663e..a863b48 100644 --- a/src/acpica/source/compiler/dtcompile.c +++ b/src/acpica/source/compiler/dtcompile.c @@ -417,7 +417,7 @@ DtCompileDataTable ( DtInsertCompilerIds (*FieldList); Status = DtCompileTable (FieldList, AcpiDmTableInfoHeader, - &Gbl_RootTable, TRUE); + &Gbl_RootTable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); @@ -454,7 +454,7 @@ DtCompileDataTable ( Subtable = NULL; Status = DtCompileTable (FieldList, TableData->TableInfo, - &Subtable, TRUE); + &Subtable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); @@ -711,6 +711,57 @@ Error: /****************************************************************************** * + * FUNCTION: DtCompileTwoSubtables + * + * PARAMETERS: List - Current field list pointer + * TableInfo1 - Info table 1 + * TableInfo1 - Info table 2 + * + * RETURN: Status + * + * DESCRIPTION: Compile tables with a header and one or more same subtables. + * Include CPEP, EINJ, ERST, MCFG, MSCT, WDAT + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileTwoSubtables ( + void **List, + ACPI_DMTABLE_INFO *TableInfo1, + ACPI_DMTABLE_INFO *TableInfo2) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + + + Status = DtCompileTable (PFieldList, TableInfo1, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, TableInfo2, &Subtable, FALSE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + } + + return (AE_OK); +} + + +/****************************************************************************** + * * FUNCTION: DtCompilePadding * * PARAMETERS: Length - Padding field size diff --git a/src/acpica/source/compiler/dtcompiler.h b/src/acpica/source/compiler/dtcompiler.h index b40f371..8a74c23 100644 --- a/src/acpica/source/compiler/dtcompiler.h +++ b/src/acpica/source/compiler/dtcompiler.h @@ -244,6 +244,12 @@ DtCompileTable ( BOOLEAN Required); ACPI_STATUS +DtCompileTwoSubtables ( + void **List, + ACPI_DMTABLE_INFO *TableInfo1, + ACPI_DMTABLE_INFO *TableInfo2); + +ACPI_STATUS DtCompilePadding ( UINT32 Length, DT_SUBTABLE **RetSubtable); diff --git a/src/acpica/source/compiler/dtexpress.c b/src/acpica/source/compiler/dtexpress.c index e5af53b..6e0858a 100644 --- a/src/acpica/source/compiler/dtexpress.c +++ b/src/acpica/source/compiler/dtexpress.c @@ -219,6 +219,7 @@ DtDoOperator ( Gbl_CurrentField, NULL); return (0); } + Result = LeftValue / RightValue; break; @@ -230,6 +231,7 @@ DtDoOperator ( Gbl_CurrentField, NULL); return (0); } + Result = LeftValue % RightValue; break; @@ -489,6 +491,7 @@ DtLookupLabel ( { return (LabelField); } + LabelField = LabelField->NextLabel; } diff --git a/src/acpica/source/compiler/dtfield.c b/src/acpica/source/compiler/dtfield.c index adde63d..06be3bf 100644 --- a/src/acpica/source/compiler/dtfield.c +++ b/src/acpica/source/compiler/dtfield.c @@ -171,6 +171,7 @@ DtCompileOneField ( { ACPI_STATUS Status; + switch (Type) { case DT_FIELD_TYPE_INTEGER: diff --git a/src/acpica/source/compiler/dtio.c b/src/acpica/source/compiler/dtio.c index 5881ea6..3cdf1f3 100644 --- a/src/acpica/source/compiler/dtio.c +++ b/src/acpica/source/compiler/dtio.c @@ -174,7 +174,7 @@ DtDumpSubtableTree ( #define DT_MERGE_LINES 6 #define DT_ESCAPE_SEQUENCE 7 -static UINT32 Gbl_NextLineOffset; +static UINT32 Gbl_NextLineOffset; /****************************************************************************** @@ -426,6 +426,7 @@ DtParseLine ( End--; break; } + End++; } @@ -625,7 +626,8 @@ DtGetNextLine ( if (!(Flags & DT_ALLOW_MULTILINE_QUOTES)) { - AcpiOsPrintf ("ERROR at line %u: Unterminated quoted string\n", + AcpiOsPrintf ( + "ERROR at line %u: Unterminated quoted string\n", Gbl_CurrentLineNumber++); State = DT_NORMAL_TEXT; } @@ -827,7 +829,8 @@ DtScanFile ( ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Line %2.2u/%4.4X - %s", Gbl_CurrentLineNumber, Offset, Gbl_CurrentLineBuffer)); - Status = DtParseLine (Gbl_CurrentLineBuffer, Gbl_CurrentLineNumber, Offset); + Status = DtParseLine (Gbl_CurrentLineBuffer, + Gbl_CurrentLineNumber, Offset); if (Status == AE_NOT_FOUND) { break; @@ -1018,6 +1021,7 @@ DtDumpFieldList ( DbgPrint (ASL_DEBUG_OUTPUT, "\nField List:\n" "LineNo ByteOff NameCol Column TableOff " "Flags %32s : %s\n\n", "Name", "Value"); + while (Field) { DbgPrint (ASL_DEBUG_OUTPUT, @@ -1164,6 +1168,7 @@ DtWriteFieldToListing ( FlPrintFile (ASL_FILE_LISTING_OUTPUT, "...Additional data, length 0x%X\n", strlen (Field->Value)); } + FlPrintFile (ASL_FILE_LISTING_OUTPUT, "\n"); /* Dump the hex data that will be output for this field */ diff --git a/src/acpica/source/compiler/dttable.c b/src/acpica/source/compiler/dttable.c index 312c53f..f7a45fe 100644 --- a/src/acpica/source/compiler/dttable.c +++ b/src/acpica/source/compiler/dttable.c @@ -113,7 +113,7 @@ * *****************************************************************************/ -/* Compile all complex data tables */ +/* Compile routines for the basic ACPI tables */ #include "aslcompiler.h" #include "dtcompiler.h" @@ -122,123 +122,6 @@ ACPI_MODULE_NAME ("dttable") -/* TBD: merge these into dmtbinfo.c? */ - -static ACPI_DMTABLE_INFO TableInfoAsfAddress[] = -{ - {ACPI_DMT_BUFFER, 0, "Addresses", 0}, - {ACPI_DMT_EXIT, 0, NULL, 0} -}; - -static ACPI_DMTABLE_INFO TableInfoDmarPciPath[] = -{ - {ACPI_DMT_PCI_PATH, 0, "PCI Path", 0}, - {ACPI_DMT_EXIT, 0, NULL, 0} -}; - - -/* Local prototypes */ - -static ACPI_STATUS -DtCompileTwoSubtables ( - void **List, - ACPI_DMTABLE_INFO *TableInfo1, - ACPI_DMTABLE_INFO *TableInfo2); - - -/****************************************************************************** - * - * FUNCTION: DtCompileTwoSubtables - * - * PARAMETERS: List - Current field list pointer - * TableInfo1 - Info table 1 - * TableInfo1 - Info table 2 - * - * RETURN: Status - * - * DESCRIPTION: Compile tables with a header and one or more same subtables. - * Include CPEP, EINJ, ERST, MCFG, MSCT, WDAT - * - *****************************************************************************/ - -static ACPI_STATUS -DtCompileTwoSubtables ( - void **List, - ACPI_DMTABLE_INFO *TableInfo1, - ACPI_DMTABLE_INFO *TableInfo2) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - - - Status = DtCompileTable (PFieldList, TableInfo1, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, TableInfo2, &Subtable, FALSE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileFacs - * - * PARAMETERS: PFieldList - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile FACS. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileFacs ( - DT_FIELD **PFieldList) -{ - DT_SUBTABLE *Subtable; - UINT8 *ReservedBuffer; - ACPI_STATUS Status; - UINT32 ReservedSize; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFacs, - &Gbl_RootTable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - /* Large FACS reserved area at the end of the table */ - - ReservedSize = (UINT32) sizeof (((ACPI_TABLE_FACS *) NULL)->Reserved1); - ReservedBuffer = UtLocalCalloc (ReservedSize); - - DtCreateSubtable (ReservedBuffer, ReservedSize, &Subtable); - - ACPI_FREE (ReservedBuffer); - DtInsertSubtable (Gbl_RootTable, Subtable); - return (AE_OK); -} - - /****************************************************************************** * * FUNCTION: DtCompileRsdp @@ -264,7 +147,7 @@ DtCompileRsdp ( /* Compile the "common" RSDP (ACPI 1.0) */ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRsdp1, - &Gbl_RootTable, TRUE); + &Gbl_RootTable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); @@ -278,7 +161,7 @@ DtCompileRsdp ( /* Compile the "extended" part of the RSDP as a subtable */ Status = DtCompileTable (PFieldList, AcpiDmTableInfoRsdp2, - &Subtable, TRUE); + &Subtable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); @@ -299,259 +182,56 @@ DtCompileRsdp ( /****************************************************************************** * - * FUNCTION: DtCompileAsf + * FUNCTION: DtCompileFadt * * PARAMETERS: List - Current field list pointer * * RETURN: Status * - * DESCRIPTION: Compile ASF!. + * DESCRIPTION: Compile FADT. * *****************************************************************************/ ACPI_STATUS -DtCompileAsf ( +DtCompileFadt ( void **List) { - ACPI_ASF_INFO *AsfTable; + ACPI_STATUS Status; DT_SUBTABLE *Subtable; DT_SUBTABLE *ParentTable; - ACPI_DMTABLE_INFO *InfoTable; - ACPI_DMTABLE_INFO *DataInfoTable = NULL; - UINT32 DataCount = 0; - ACPI_STATUS Status; - UINT32 i; DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; + ACPI_TABLE_HEADER *Table; + UINT8 Revision; - while (*PFieldList) + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt1, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsfHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - AsfTable = ACPI_CAST_PTR (ACPI_ASF_INFO, Subtable->Buffer); - - switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ - { - case ACPI_ASF_TYPE_INFO: - - InfoTable = AcpiDmTableInfoAsf0; - break; - - case ACPI_ASF_TYPE_ALERT: - - InfoTable = AcpiDmTableInfoAsf1; - break; - - case ACPI_ASF_TYPE_CONTROL: - - InfoTable = AcpiDmTableInfoAsf2; - break; - - case ACPI_ASF_TYPE_BOOT: - - InfoTable = AcpiDmTableInfoAsf3; - break; - - case ACPI_ASF_TYPE_ADDRESS: - - InfoTable = AcpiDmTableInfoAsf4; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ - { - case ACPI_ASF_TYPE_INFO: - - DataInfoTable = NULL; - break; - - case ACPI_ASF_TYPE_ALERT: - - DataInfoTable = AcpiDmTableInfoAsf1a; - DataCount = ACPI_CAST_PTR (ACPI_ASF_ALERT, - ACPI_SUB_PTR (UINT8, Subtable->Buffer, - sizeof (ACPI_ASF_HEADER)))->Alerts; - break; - - case ACPI_ASF_TYPE_CONTROL: - - DataInfoTable = AcpiDmTableInfoAsf2a; - DataCount = ACPI_CAST_PTR (ACPI_ASF_REMOTE, - ACPI_SUB_PTR (UINT8, Subtable->Buffer, - sizeof (ACPI_ASF_HEADER)))->Controls; - break; - - case ACPI_ASF_TYPE_BOOT: - - DataInfoTable = NULL; - break; - - case ACPI_ASF_TYPE_ADDRESS: - - DataInfoTable = TableInfoAsfAddress; - DataCount = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, - ACPI_SUB_PTR (UINT8, Subtable->Buffer, - sizeof (ACPI_ASF_HEADER)))->Devices; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); - return (AE_ERROR); - } - - if (DataInfoTable) - { - switch (AsfTable->Header.Type & 0x7F) - { - case ACPI_ASF_TYPE_ADDRESS: - - while (DataCount > 0) - { - Status = DtCompileTable (PFieldList, DataInfoTable, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - DataCount = DataCount - Subtable->Length; - } - break; - - default: - - for (i = 0; i < DataCount; i++) - { - Status = DtCompileTable (PFieldList, DataInfoTable, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - } - break; - } - } - - DtPopSubtable (); + return (Status); } - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileCpep - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile CPEP. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileCpep ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoCpep, AcpiDmTableInfoCpep0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileCsrt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile CSRT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileCsrt ( - void **List) -{ - ACPI_STATUS Status = AE_OK; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - UINT32 DescriptorCount; - UINT32 GroupLength; - + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); - /* Subtables (Resource Groups) */ + Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); + Revision = Table->Revision; - ParentTable = DtPeekSubtable (); - while (*PFieldList) + if (Revision == 2) { - /* Resource group subtable */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt0, - &Subtable, TRUE); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt2, + &Subtable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); } - /* Compute the number of resource descriptors */ - - GroupLength = - (ACPI_CAST_PTR (ACPI_CSRT_GROUP, - Subtable->Buffer))->Length - - (ACPI_CAST_PTR (ACPI_CSRT_GROUP, - Subtable->Buffer))->SharedInfoLength - - sizeof (ACPI_CSRT_GROUP); - - DescriptorCount = (GroupLength / - sizeof (ACPI_CSRT_DESCRIPTOR)); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - - /* Shared info subtable (One per resource group) */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt1, - &Subtable, TRUE); + } + else if (Revision >= 2) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt3, + &Subtable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); @@ -559,3038 +239,72 @@ DtCompileCsrt ( DtInsertSubtable (ParentTable, Subtable); - /* Sub-Subtables (Resource Descriptors) */ - - while (*PFieldList && DescriptorCount) + if (Revision >= 5) { - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2, - &Subtable, TRUE); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt5, + &Subtable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); } + DtInsertSubtable (ParentTable, Subtable); + } - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - if (*PFieldList) + if (Revision >= 6) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (Subtable) - { - DtInsertSubtable (ParentTable, Subtable); - } + return (Status); } - DtPopSubtable (); - ParentTable = DtPeekSubtable (); - DescriptorCount--; + DtInsertSubtable (ParentTable, Subtable); } - - DtPopSubtable (); - ParentTable = DtPeekSubtable (); } - return (Status); + return (AE_OK); } /****************************************************************************** * - * FUNCTION: DtCompileDbg2 + * FUNCTION: DtCompileFacs * - * PARAMETERS: List - Current field list pointer + * PARAMETERS: PFieldList - Current field list pointer * * RETURN: Status * - * DESCRIPTION: Compile DBG2. + * DESCRIPTION: Compile FACS. * *****************************************************************************/ ACPI_STATUS -DtCompileDbg2 ( - void **List) +DtCompileFacs ( + DT_FIELD **PFieldList) { - ACPI_STATUS Status; DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - UINT32 SubtableCount; - ACPI_DBG2_HEADER *Dbg2Header; - ACPI_DBG2_DEVICE *DeviceInfo; - UINT16 CurrentOffset; - UINT32 i; - + UINT8 *ReservedBuffer; + ACPI_STATUS Status; + UINT32 ReservedSize; - /* Main table */ - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2, &Subtable, TRUE); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFacs, + &Gbl_RootTable, TRUE); if (ACPI_FAILURE (Status)) { return (Status); } - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* Main table fields */ - - Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer); - Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF ( - ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header); - - SubtableCount = Dbg2Header->InfoCount; - DtPushSubtable (Subtable); + /* Large FACS reserved area at the end of the table */ - /* Process all Device Information subtables (Count = InfoCount) */ + ReservedSize = (UINT32) sizeof (((ACPI_TABLE_FACS *) NULL)->Reserved1); + ReservedBuffer = UtLocalCalloc (ReservedSize); - while (*PFieldList && SubtableCount) - { - /* Subtable: Debug Device Information */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Device, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DeviceInfo = ACPI_CAST_PTR (ACPI_DBG2_DEVICE, Subtable->Buffer); - CurrentOffset = (UINT16) sizeof (ACPI_DBG2_DEVICE); - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - ParentTable = DtPeekSubtable (); - - /* BaseAddressRegister GAS array (Required, size is RegisterCount) */ - - DeviceInfo->BaseAddressOffset = CurrentOffset; - for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - CurrentOffset += (UINT16) sizeof (ACPI_GENERIC_ADDRESS); - DtInsertSubtable (ParentTable, Subtable); - } - - /* AddressSize array (Required, size = RegisterCount) */ - - DeviceInfo->AddressSizeOffset = CurrentOffset; - for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - CurrentOffset += (UINT16) sizeof (UINT32); - DtInsertSubtable (ParentTable, Subtable); - } - - /* NamespaceString device identifier (Required, size = NamePathLength) */ - - DeviceInfo->NamepathOffset = CurrentOffset; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - /* Update the device info header */ - - DeviceInfo->NamepathLength = (UINT16) Subtable->Length; - CurrentOffset += (UINT16) DeviceInfo->NamepathLength; - DtInsertSubtable (ParentTable, Subtable); - - /* OemData - Variable-length data (Optional, size = OemDataLength) */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2OemData, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - /* Update the device info header (zeros if no OEM data present) */ - - DeviceInfo->OemDataOffset = 0; - DeviceInfo->OemDataLength = 0; - - /* Optional subtable (OemData) */ - - if (Subtable && Subtable->Length) - { - DeviceInfo->OemDataOffset = CurrentOffset; - DeviceInfo->OemDataLength = (UINT16) Subtable->Length; - - DtInsertSubtable (ParentTable, Subtable); - } - - SubtableCount--; - DtPopSubtable (); /* Get next Device Information subtable */ - } - - DtPopSubtable (); - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileDmar - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile DMAR. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileDmar ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_DMTABLE_INFO *InfoTable; - ACPI_DMAR_HEADER *DmarHeader; - ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope; - UINT32 DeviceScopeLength; - UINT32 PciPathLength; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - while (*PFieldList) - { - /* DMAR Header */ - - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer); - - switch (DmarHeader->Type) - { - case ACPI_DMAR_TYPE_HARDWARE_UNIT: - - InfoTable = AcpiDmTableInfoDmar0; - break; - - case ACPI_DMAR_TYPE_RESERVED_MEMORY: - - InfoTable = AcpiDmTableInfoDmar1; - break; - - case ACPI_DMAR_TYPE_ROOT_ATS: - - InfoTable = AcpiDmTableInfoDmar2; - break; - - case ACPI_DMAR_TYPE_HARDWARE_AFFINITY: - - InfoTable = AcpiDmTableInfoDmar3; - break; - - case ACPI_DMAR_TYPE_NAMESPACE: - - InfoTable = AcpiDmTableInfoDmar4; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR"); - return (AE_ERROR); - } - - /* DMAR Subtable */ - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* - * Optional Device Scope subtables - */ - if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || - (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE)) - { - /* These types do not support device scopes */ - - DtPopSubtable (); - continue; - } - - DtPushSubtable (Subtable); - DeviceScopeLength = DmarHeader->Length - Subtable->Length - - ParentTable->Length; - while (DeviceScopeLength) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope, - &Subtable, FALSE); - if (Status == AE_NOT_FOUND) - { - break; - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - DmarDeviceScope = ACPI_CAST_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable->Buffer); - - /* Optional PCI Paths */ - - PciPathLength = DmarDeviceScope->Length - Subtable->Length; - while (PciPathLength) - { - Status = DtCompileTable (PFieldList, TableInfoDmarPciPath, - &Subtable, FALSE); - if (Status == AE_NOT_FOUND) - { - DtPopSubtable (); - break; - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - PciPathLength -= Subtable->Length; - } - - DtPopSubtable (); - DeviceScopeLength -= DmarDeviceScope->Length; - } - - DtPopSubtable (); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileDrtm - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile DRTM. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileDrtm ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - UINT32 Count; - /* ACPI_TABLE_DRTM *Drtm; */ - ACPI_DRTM_VTABLE_LIST *DrtmVtl; - ACPI_DRTM_RESOURCE_LIST *DrtmRl; - /* ACPI_DRTM_DPS_ID *DrtmDps; */ - - - ParentTable = DtPeekSubtable (); - - /* Compile DRTM header */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - - /* - * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care - * should be taken to avoid accessing ACPI_TABLE_HADER fields. - */ -#if 0 - Drtm = ACPI_SUB_PTR (ACPI_TABLE_DRTM, - Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); -#endif - /* Compile VTL */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - DrtmVtl = ACPI_CAST_PTR (ACPI_DRTM_VTABLE_LIST, Subtable->Buffer); - - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - Count = 0; - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - break; - } - DtInsertSubtable (ParentTable, Subtable); - Count++; - } - DrtmVtl->ValidatedTableCount = Count; - DtPopSubtable (); - ParentTable = DtPeekSubtable (); - - /* Compile RL */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - DrtmRl = ACPI_CAST_PTR (ACPI_DRTM_RESOURCE_LIST, Subtable->Buffer); - - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - Count = 0; - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - break; - } - DtInsertSubtable (ParentTable, Subtable); - Count++; - } - DrtmRl->ResourceCount = Count; - DtPopSubtable (); - ParentTable = DtPeekSubtable (); - - /* Compile DPS */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm2, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - /* DrtmDps = ACPI_CAST_PTR (ACPI_DRTM_DPS_ID, Subtable->Buffer);*/ - - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileEinj - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile EINJ. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileEinj ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoEinj, AcpiDmTableInfoEinj0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileErst - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile ERST. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileErst ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoErst, AcpiDmTableInfoEinj0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileFadt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile FADT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileFadt ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - ACPI_TABLE_HEADER *Table; - UINT8 Revision; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt1, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ParentTable->Buffer); - Revision = Table->Revision; - - if (Revision == 2) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt2, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - } - else if (Revision >= 2) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt3, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - - if (Revision >= 5) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt5, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - } - - if (Revision >= 6) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFadt6, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - } - } - - return (AE_OK); -} - -/****************************************************************************** - * - * FUNCTION: DtCompileGtdt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile GTDT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileGtdt ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_SUBTABLE_HEADER *GtdtHeader; - ACPI_DMTABLE_INFO *InfoTable; - UINT32 GtCount; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdtHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - GtdtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); - - switch (GtdtHeader->Type) - { - case ACPI_GTDT_TYPE_TIMER_BLOCK: - - InfoTable = AcpiDmTableInfoGtdt0; - break; - - case ACPI_GTDT_TYPE_WATCHDOG: - - InfoTable = AcpiDmTableInfoGtdt1; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "GTDT"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* - * Additional GT block subtable data - */ - - switch (GtdtHeader->Type) - { - case ACPI_GTDT_TYPE_TIMER_BLOCK: - - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - - GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, - Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount; - while (GtCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt0a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - - DtInsertSubtable (ParentTable, Subtable); - GtCount--; - } - DtPopSubtable (); - break; - - default: - - break; - } - - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileFpdt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile FPDT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileFpdt ( - void **List) -{ - ACPI_STATUS Status; - ACPI_FPDT_HEADER *FpdtHeader; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - ACPI_DMTABLE_INFO *InfoTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoFpdtHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer); - - switch (FpdtHeader->Type) - { - case ACPI_FPDT_TYPE_BOOT: - - InfoTable = AcpiDmTableInfoFpdt0; - break; - - case ACPI_FPDT_TYPE_S3PERF: - - InfoTable = AcpiDmTableInfoFpdt1; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "FPDT"); - return (AE_ERROR); - break; - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileHest - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile HEST. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileHest ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_DMTABLE_INFO *InfoTable; - UINT16 Type; - UINT32 BankCount; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoHest, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - while (*PFieldList) - { - /* Get subtable type */ - - SubtableStart = *PFieldList; - DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0); - - switch (Type) - { - case ACPI_HEST_TYPE_IA32_CHECK: - - InfoTable = AcpiDmTableInfoHest0; - break; - - case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: - - InfoTable = AcpiDmTableInfoHest1; - break; - - case ACPI_HEST_TYPE_IA32_NMI: - - InfoTable = AcpiDmTableInfoHest2; - break; - - case ACPI_HEST_TYPE_AER_ROOT_PORT: - - InfoTable = AcpiDmTableInfoHest6; - break; - - case ACPI_HEST_TYPE_AER_ENDPOINT: - - InfoTable = AcpiDmTableInfoHest7; - break; - - case ACPI_HEST_TYPE_AER_BRIDGE: - - InfoTable = AcpiDmTableInfoHest8; - break; - - case ACPI_HEST_TYPE_GENERIC_ERROR: - - InfoTable = AcpiDmTableInfoHest9; - break; - - default: - - /* Cannot continue on unknown type */ - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "HEST"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - - /* - * Additional subtable data - IA32 Error Bank(s) - */ - BankCount = 0; - switch (Type) - { - case ACPI_HEST_TYPE_IA32_CHECK: - - BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, - Subtable->Buffer))->NumHardwareBanks; - break; - - case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: - - BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, - Subtable->Buffer))->NumHardwareBanks; - break; - - default: - - break; - } - - while (BankCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoHestBank, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - BankCount--; - } - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileIort - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile IORT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileIort ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_TABLE_IORT *Iort; - ACPI_IORT_NODE *IortNode; - ACPI_IORT_ITS_GROUP *IortItsGroup; - ACPI_IORT_SMMU *IortSmmu; - UINT32 NodeNumber; - UINT32 NodeLength; - UINT32 IdMappingNumber; - UINT32 ItsNumber; - UINT32 ContextIrptNumber; - UINT32 PmuIrptNumber; - UINT32 PaddingLength; - - - ParentTable = DtPeekSubtable (); - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - - /* - * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care - * should be taken to avoid accessing ACPI_TABLE_HADER fields. - */ - Iort = ACPI_SUB_PTR (ACPI_TABLE_IORT, - Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); - - /* - * OptionalPadding - Variable-length data - * (Optional, size = OffsetToNodes - sizeof (ACPI_TABLE_IORT)) - * Optionally allows the generic data types to be used for filling - * this field. - */ - Iort->NodeOffset = sizeof (ACPI_TABLE_IORT); - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (Subtable) - { - DtInsertSubtable (ParentTable, Subtable); - Iort->NodeOffset += Subtable->Length; - } - else - { - Status = DtCompileGeneric (ACPI_CAST_PTR (void *, PFieldList), - AcpiDmTableInfoIortHdr[0].Name, &PaddingLength); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - Iort->NodeOffset += PaddingLength; - } - - NodeNumber = 0; - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - IortNode = ACPI_CAST_PTR (ACPI_IORT_NODE, Subtable->Buffer); - NodeLength = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); - - DtPushSubtable (Subtable); - ParentTable = DtPeekSubtable (); - - switch (IortNode->Type) - { - case ACPI_IORT_NODE_ITS_GROUP: - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - IortItsGroup = ACPI_CAST_PTR (ACPI_IORT_ITS_GROUP, Subtable->Buffer); - NodeLength += Subtable->Length; - - ItsNumber = 0; - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - break; - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - ItsNumber++; - } - - IortItsGroup->ItsCount = ItsNumber; - break; - - case ACPI_IORT_NODE_NAMED_COMPONENT: - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - - /* - * Padding - Variable-length data - * Optionally allows the offset of the ID mappings to be used - * for filling this field. - */ - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (Subtable) - { - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - } - else - { - if (NodeLength > IortNode->MappingOffset) - { - return (AE_BAD_DATA); - } - if (NodeLength < IortNode->MappingOffset) - { - Status = DtCompilePadding ( - IortNode->MappingOffset - NodeLength, - &Subtable); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength = IortNode->MappingOffset; - } - } - break; - - case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort2, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - break; - - case ACPI_IORT_NODE_SMMU: - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - IortSmmu = ACPI_CAST_PTR (ACPI_IORT_SMMU, Subtable->Buffer); - NodeLength += Subtable->Length; - - /* Compile global interrupt array */ - - IortSmmu->GlobalInterruptOffset = NodeLength; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - - /* Compile context interrupt array */ - - ContextIrptNumber = 0; - IortSmmu->ContextInterruptOffset = NodeLength; - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - break; - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - ContextIrptNumber++; - } - IortSmmu->ContextInterruptCount = ContextIrptNumber; - - /* Compile PMU interrupt array */ - - PmuIrptNumber = 0; - IortSmmu->PmuInterruptOffset = NodeLength; - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - break; - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += Subtable->Length; - PmuIrptNumber++; - } - IortSmmu->PmuInterruptCount = PmuIrptNumber; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); - return (AE_ERROR); - } - - /* Compile Array of ID mappings */ - - IortNode->MappingOffset = NodeLength; - IdMappingNumber = 0; - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortMap, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - break; - } - DtInsertSubtable (ParentTable, Subtable); - NodeLength += sizeof (ACPI_IORT_ID_MAPPING); - IdMappingNumber++; - } - IortNode->MappingCount = IdMappingNumber; - - /* - * Node length can be determined by DT_LENGTH option - * IortNode->Length = NodeLength; - */ - DtPopSubtable (); - ParentTable = DtPeekSubtable (); - NodeNumber++; - } - Iort->NodeCount = NodeNumber; - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileIvrs - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile IVRS. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileIvrs ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_DMTABLE_INFO *InfoTable; - ACPI_IVRS_HEADER *IvrsHeader; - UINT8 EntryType; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrs, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - IvrsHeader = ACPI_CAST_PTR (ACPI_IVRS_HEADER, Subtable->Buffer); - - switch (IvrsHeader->Type) - { - case ACPI_IVRS_TYPE_HARDWARE: - - InfoTable = AcpiDmTableInfoIvrs0; - break; - - case ACPI_IVRS_TYPE_MEMORY1: - case ACPI_IVRS_TYPE_MEMORY2: - case ACPI_IVRS_TYPE_MEMORY3: - - InfoTable = AcpiDmTableInfoIvrs1; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IVRS"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE) - { - while (*PFieldList && - !strcmp ((*PFieldList)->Name, "Entry Type")) - { - SubtableStart = *PFieldList; - DtCompileInteger (&EntryType, *PFieldList, 1, 0); - - switch (EntryType) - { - /* 4-byte device entries */ - - case ACPI_IVRS_TYPE_PAD4: - case ACPI_IVRS_TYPE_ALL: - case ACPI_IVRS_TYPE_SELECT: - case ACPI_IVRS_TYPE_START: - case ACPI_IVRS_TYPE_END: - - InfoTable = AcpiDmTableInfoIvrs4; - break; - - /* 8-byte entries, type A */ - - case ACPI_IVRS_TYPE_ALIAS_SELECT: - case ACPI_IVRS_TYPE_ALIAS_START: - - InfoTable = AcpiDmTableInfoIvrs8a; - break; - - /* 8-byte entries, type B */ - - case ACPI_IVRS_TYPE_PAD8: - case ACPI_IVRS_TYPE_EXT_SELECT: - case ACPI_IVRS_TYPE_EXT_START: - - InfoTable = AcpiDmTableInfoIvrs8b; - break; - - /* 8-byte entries, type C */ - - case ACPI_IVRS_TYPE_SPECIAL: - - InfoTable = AcpiDmTableInfoIvrs8c; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, - "IVRS Device Entry"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - } - } - - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileLpit - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile LPIT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileLpit ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_DMTABLE_INFO *InfoTable; - ACPI_LPIT_HEADER *LpitHeader; - - - /* Note: Main table consists only of the standard ACPI table header */ - - while (*PFieldList) - { - SubtableStart = *PFieldList; - - /* LPIT Subtable header */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoLpitHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - LpitHeader = ACPI_CAST_PTR (ACPI_LPIT_HEADER, Subtable->Buffer); - - switch (LpitHeader->Type) - { - case ACPI_LPIT_TYPE_NATIVE_CSTATE: - - InfoTable = AcpiDmTableInfoLpit0; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "LPIT"); - return (AE_ERROR); - } - - /* LPIT Subtable */ - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileMadt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile MADT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileMadt ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_SUBTABLE_HEADER *MadtHeader; - ACPI_DMTABLE_INFO *InfoTable; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadt, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadtHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - MadtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); - - switch (MadtHeader->Type) - { - case ACPI_MADT_TYPE_LOCAL_APIC: - - InfoTable = AcpiDmTableInfoMadt0; - break; - - case ACPI_MADT_TYPE_IO_APIC: - - InfoTable = AcpiDmTableInfoMadt1; - break; - - case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE: - - InfoTable = AcpiDmTableInfoMadt2; - break; - - case ACPI_MADT_TYPE_NMI_SOURCE: - - InfoTable = AcpiDmTableInfoMadt3; - break; - - case ACPI_MADT_TYPE_LOCAL_APIC_NMI: - - InfoTable = AcpiDmTableInfoMadt4; - break; - - case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE: - - InfoTable = AcpiDmTableInfoMadt5; - break; - - case ACPI_MADT_TYPE_IO_SAPIC: - - InfoTable = AcpiDmTableInfoMadt6; - break; - - case ACPI_MADT_TYPE_LOCAL_SAPIC: - - InfoTable = AcpiDmTableInfoMadt7; - break; - - case ACPI_MADT_TYPE_INTERRUPT_SOURCE: - - InfoTable = AcpiDmTableInfoMadt8; - break; - - case ACPI_MADT_TYPE_LOCAL_X2APIC: - - InfoTable = AcpiDmTableInfoMadt9; - break; - - case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI: - - InfoTable = AcpiDmTableInfoMadt10; - break; - - case ACPI_MADT_TYPE_GENERIC_INTERRUPT: - - InfoTable = AcpiDmTableInfoMadt11; - break; - - case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR: - - InfoTable = AcpiDmTableInfoMadt12; - break; - - case ACPI_MADT_TYPE_GENERIC_MSI_FRAME: - - InfoTable = AcpiDmTableInfoMadt13; - break; - - case ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR: - - InfoTable = AcpiDmTableInfoMadt14; - break; - - case ACPI_MADT_TYPE_GENERIC_TRANSLATOR: - - InfoTable = AcpiDmTableInfoMadt15; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileMcfg - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile MCFG. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileMcfg ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoMcfg, AcpiDmTableInfoMcfg0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileMpst - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile MPST. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileMpst ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - ACPI_MPST_CHANNEL *MpstChannelInfo; - ACPI_MPST_POWER_NODE *MpstPowerNode; - ACPI_MPST_DATA_HDR *MpstDataHeader; - UINT16 SubtableCount; - UINT32 PowerStateCount; - UINT32 ComponentCount; - - - /* Main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer); - SubtableCount = MpstChannelInfo->PowerNodeCount; - - while (*PFieldList && SubtableCount) - { - /* Subtable: Memory Power Node(s) */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer); - PowerStateCount = MpstPowerNode->NumPowerStates; - ComponentCount = MpstPowerNode->NumPhysicalComponents; - - ParentTable = DtPeekSubtable (); - - /* Sub-subtables - Memory Power State Structure(s) */ - - while (*PFieldList && PowerStateCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0A, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - PowerStateCount--; - } - - /* Sub-subtables - Physical Component ID Structure(s) */ - - while (*PFieldList && ComponentCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0B, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - ComponentCount--; - } - - SubtableCount--; - DtPopSubtable (); - } - - /* Subtable: Count of Memory Power State Characteristic structures */ - - DtPopSubtable (); - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst1, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - MpstDataHeader = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable->Buffer); - SubtableCount = MpstDataHeader->CharacteristicsCount; - - ParentTable = DtPeekSubtable (); - - /* Subtable: Memory Power State Characteristics structure(s) */ - - while (*PFieldList && SubtableCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst2, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - SubtableCount--; - } - - DtPopSubtable (); - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileMsct - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile MSCT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileMsct ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoMsct, AcpiDmTableInfoMsct0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileMtmr - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile MTMR. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileMtmr ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoMtmr, AcpiDmTableInfoMtmr0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileNfit - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile NFIT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileNfit ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_NFIT_HEADER *NfitHeader; - ACPI_DMTABLE_INFO *InfoTable; - UINT32 Count; - ACPI_NFIT_INTERLEAVE *Interleave = NULL; - ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; - - /* Main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - /* Subtables */ - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfitHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer); - - switch (NfitHeader->Type) - { - case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: - - InfoTable = AcpiDmTableInfoNfit0; - break; - - case ACPI_NFIT_TYPE_MEMORY_MAP: - - InfoTable = AcpiDmTableInfoNfit1; - break; - - case ACPI_NFIT_TYPE_INTERLEAVE: - - Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable->Buffer); - InfoTable = AcpiDmTableInfoNfit2; - break; - - case ACPI_NFIT_TYPE_SMBIOS: - - InfoTable = AcpiDmTableInfoNfit3; - break; - - case ACPI_NFIT_TYPE_CONTROL_REGION: - - InfoTable = AcpiDmTableInfoNfit4; - break; - - case ACPI_NFIT_TYPE_DATA_REGION: - - InfoTable = AcpiDmTableInfoNfit5; - break; - - case ACPI_NFIT_TYPE_FLUSH_ADDRESS: - - Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable->Buffer); - InfoTable = AcpiDmTableInfoNfit6; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "NFIT"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - - switch (NfitHeader->Type) - { - case ACPI_NFIT_TYPE_INTERLEAVE: - - Count = 0; - DtPushSubtable (Subtable); - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit2a, - &Subtable, FALSE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - DtPopSubtable (); - break; - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - Count++; - } - - Interleave->LineCount = Count; - DtPopSubtable (); - break; - - case ACPI_NFIT_TYPE_SMBIOS: - - if (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit3a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (Subtable) - { - DtInsertSubtable (ParentTable, Subtable); - } - } - break; - - case ACPI_NFIT_TYPE_FLUSH_ADDRESS: - - Count = 0; - DtPushSubtable (Subtable); - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit6a, - &Subtable, FALSE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - if (!Subtable) - { - DtPopSubtable (); - break; - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - Count++; - } - - Hint->HintCount = (UINT16) Count; - DtPopSubtable (); - break; - - default: - break; - } - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompilePcct - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile PCCT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompilePcct ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_SUBTABLE_HEADER *PcctHeader; - ACPI_DMTABLE_INFO *InfoTable; - - - /* Main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcct, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* Subtables */ - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcctHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - PcctHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); - - switch (PcctHeader->Type) - { - case ACPI_PCCT_TYPE_GENERIC_SUBSPACE: - - InfoTable = AcpiDmTableInfoPcct0; - break; - - case ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE: - - InfoTable = AcpiDmTableInfoPcct1; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PCCT"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompilePmtt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile PMTT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompilePmtt ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_PMTT_HEADER *PmttHeader; - ACPI_PMTT_CONTROLLER *PmttController; - UINT16 DomainCount; - UINT8 PrevType = ACPI_PMTT_TYPE_SOCKET; - - - /* Main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - PmttHeader = ACPI_CAST_PTR (ACPI_PMTT_HEADER, Subtable->Buffer); - while (PrevType >= PmttHeader->Type) - { - DtPopSubtable (); - - if (PrevType == ACPI_PMTT_TYPE_SOCKET) - { - break; - } - PrevType--; - } - PrevType = PmttHeader->Type; - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - switch (PmttHeader->Type) - { - case ACPI_PMTT_TYPE_SOCKET: - - /* Subtable: Socket Structure */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt0, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - break; - - case ACPI_PMTT_TYPE_CONTROLLER: - - /* Subtable: Memory Controller Structure */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER, - (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER))); - DomainCount = PmttController->DomainCount; - - while (DomainCount) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1a, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtInsertSubtable (ParentTable, Subtable); - DomainCount--; - } - break; - - case ACPI_PMTT_TYPE_DIMM: - - /* Subtable: Physical Component Structure */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PMTT"); - return (AE_ERROR); - } - } - - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileRsdt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile RSDT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileRsdt ( - void **List) -{ - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD *FieldList = *(DT_FIELD **) List; - UINT32 Address; - - - ParentTable = DtPeekSubtable (); - - while (FieldList) - { - DtCompileInteger ((UINT8 *) &Address, FieldList, 4, DT_NON_ZERO); - - DtCreateSubtable ((UINT8 *) &Address, 4, &Subtable); - DtInsertSubtable (ParentTable, Subtable); - FieldList = FieldList->Next; - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileS3pt - * - * PARAMETERS: PFieldList - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile S3PT (Pointed to by FPDT) - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileS3pt ( - DT_FIELD **PFieldList) -{ - ACPI_STATUS Status; - ACPI_S3PT_HEADER *S3ptHeader; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - ACPI_DMTABLE_INFO *InfoTable; - DT_FIELD *SubtableStart; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt, - &Gbl_RootTable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DtPushSubtable (Gbl_RootTable); - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3ptHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - S3ptHeader = ACPI_CAST_PTR (ACPI_S3PT_HEADER, Subtable->Buffer); - - switch (S3ptHeader->Type) - { - case ACPI_S3PT_TYPE_RESUME: - - InfoTable = AcpiDmTableInfoS3pt0; - break; - - case ACPI_S3PT_TYPE_SUSPEND: - - InfoTable = AcpiDmTableInfoS3pt1; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "S3PT"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileSlic - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile SLIC. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileSlic ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - - - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlic, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileSlit - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile SLIT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileSlit ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *FieldList; - UINT32 Localities; - UINT8 *LocalityBuffer; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlit, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); - LocalityBuffer = UtLocalCalloc (Localities); - - /* Compile each locality buffer */ - - FieldList = *PFieldList; - while (FieldList) - { - DtCompileBuffer (LocalityBuffer, - FieldList->Value, FieldList, Localities); - - DtCreateSubtable (LocalityBuffer, Localities, &Subtable); - DtInsertSubtable (ParentTable, Subtable); - FieldList = FieldList->Next; - } - - ACPI_FREE (LocalityBuffer); - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileSrat - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile SRAT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileSrat ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_FIELD *SubtableStart; - ACPI_SUBTABLE_HEADER *SratHeader; - ACPI_DMTABLE_INFO *InfoTable; - - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSrat, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - while (*PFieldList) - { - SubtableStart = *PFieldList; - Status = DtCompileTable (PFieldList, AcpiDmTableInfoSratHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPushSubtable (Subtable); - - SratHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); - - switch (SratHeader->Type) - { - case ACPI_SRAT_TYPE_CPU_AFFINITY: - - InfoTable = AcpiDmTableInfoSrat0; - break; - - case ACPI_SRAT_TYPE_MEMORY_AFFINITY: - - InfoTable = AcpiDmTableInfoSrat1; - break; - - case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY: - - InfoTable = AcpiDmTableInfoSrat2; - break; - - case ACPI_SRAT_TYPE_GICC_AFFINITY: - - InfoTable = AcpiDmTableInfoSrat3; - break; - - default: - - DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT"); - return (AE_ERROR); - } - - Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - DtPopSubtable (); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileStao - * - * PARAMETERS: PFieldList - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile STAO. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileStao ( - void **List) -{ - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - ACPI_STATUS Status; - - - /* Compile the main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoStao, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* Compile each ASCII namestring as a subtable */ - - while (*PFieldList) - { - Status = DtCompileTable (PFieldList, AcpiDmTableInfoStaoStr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileTcpa - * - * PARAMETERS: PFieldList - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile TCPA. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileTcpa ( - void **List) -{ - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_SUBTABLE *Subtable; - ACPI_TABLE_TCPA_HDR *TcpaHeader; - DT_SUBTABLE *ParentTable; - ACPI_STATUS Status; - - - /* Compile the main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaHdr, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* - * Examine the PlatformClass field to determine the table type. - * Either a client or server table. Only one. - */ - TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer); - - switch (TcpaHeader->PlatformClass) - { - case ACPI_TCPA_CLIENT_TABLE: - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaClient, - &Subtable, TRUE); - break; - - case ACPI_TCPA_SERVER_TABLE: - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaServer, - &Subtable, TRUE); - break; - - default: - - AcpiOsPrintf ("\n**** Unknown TCPA Platform Class 0x%X\n", - TcpaHeader->PlatformClass); - Status = AE_ERROR; - break; - } - - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtGetGenericTableInfo - * - * PARAMETERS: Name - Generic type name - * - * RETURN: Info entry - * - * DESCRIPTION: Obtain table info for a generic name entry - * - *****************************************************************************/ - -ACPI_DMTABLE_INFO * -DtGetGenericTableInfo ( - char *Name) -{ - ACPI_DMTABLE_INFO *Info; - UINT32 i; - - - if (!Name) - { - return (NULL); - } - - /* Search info table for name match */ - - for (i = 0; ; i++) - { - Info = AcpiDmTableInfoGeneric[i]; - if (Info->Opcode == ACPI_DMT_EXIT) - { - Info = NULL; - break; - } - - /* Use caseless compare for generic keywords */ - - if (!AcpiUtStricmp (Name, Info->Name)) - { - break; - } - } - - return (Info); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileUefi - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile UEFI. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileUefi ( - void **List) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - UINT16 *DataOffset; - - - /* Compile the predefined portion of the UEFI table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoUefi, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - DataOffset = (UINT16 *) (Subtable->Buffer + 16); - *DataOffset = sizeof (ACPI_TABLE_UEFI); - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* - * Compile the "generic" portion of the UEFI table. This - * part of the table is not predefined and any of the generic - * operators may be used. - */ - - DtCompileGeneric ((void **) PFieldList, NULL, NULL); - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileVrtc - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile VRTC. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileVrtc ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoVrtc, AcpiDmTableInfoVrtc0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileWdat - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile WDAT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileWdat ( - void **List) -{ - ACPI_STATUS Status; - - - Status = DtCompileTwoSubtables (List, - AcpiDmTableInfoWdat, AcpiDmTableInfoWdat0); - return (Status); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileWpbt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile WPBT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileWpbt ( - void **List) -{ - DT_FIELD **PFieldList = (DT_FIELD **) List; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - ACPI_TABLE_WPBT *Table; - ACPI_STATUS Status; - UINT16 Length; - - - /* Compile the main table */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - - /* Compile the argument list subtable */ - - Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt0, - &Subtable, TRUE); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - /* Extract the length of the Arguments buffer, insert into main table */ - - Length = (UINT16) Subtable->TotalLength; - Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); - Table->ArgumentsLength = Length; - - ParentTable = DtPeekSubtable (); - DtInsertSubtable (ParentTable, Subtable); - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileXsdt - * - * PARAMETERS: List - Current field list pointer - * - * RETURN: Status - * - * DESCRIPTION: Compile XSDT. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileXsdt ( - void **List) -{ - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD *FieldList = *(DT_FIELD **) List; - UINT64 Address; - - - ParentTable = DtPeekSubtable (); - - while (FieldList) - { - DtCompileInteger ((UINT8 *) &Address, FieldList, 8, DT_NON_ZERO); - - DtCreateSubtable ((UINT8 *) &Address, 8, &Subtable); - DtInsertSubtable (ParentTable, Subtable); - FieldList = FieldList->Next; - } - - return (AE_OK); -} - - -/****************************************************************************** - * - * FUNCTION: DtCompileGeneric - * - * PARAMETERS: List - Current field list pointer - * Name - Field name to end generic compiling - * Length - Compiled table length to return - * - * RETURN: Status - * - * DESCRIPTION: Compile generic unknown table. - * - *****************************************************************************/ - -ACPI_STATUS -DtCompileGeneric ( - void **List, - char *Name, - UINT32 *Length) -{ - ACPI_STATUS Status; - DT_SUBTABLE *Subtable; - DT_SUBTABLE *ParentTable; - DT_FIELD **PFieldList = (DT_FIELD **) List; - ACPI_DMTABLE_INFO *Info; - - - ParentTable = DtPeekSubtable (); - - /* - * Compile the "generic" portion of the table. This - * part of the table is not predefined and any of the generic - * operators may be used. - */ - - /* Find any and all labels in the entire generic portion */ - - DtDetectAllLabels (*PFieldList); - - /* Now we can actually compile the parse tree */ - - if (Length && *Length) - { - *Length = 0; - } - while (*PFieldList) - { - if (Name && !strcmp ((*PFieldList)->Name, Name)) - { - break; - } - Info = DtGetGenericTableInfo ((*PFieldList)->Name); - if (!Info) - { - sprintf (MsgBuffer, "Generic data type \"%s\" not found", - (*PFieldList)->Name); - DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, - (*PFieldList), MsgBuffer); - - *PFieldList = (*PFieldList)->Next; - continue; - } - - Status = DtCompileTable (PFieldList, Info, - &Subtable, TRUE); - if (ACPI_SUCCESS (Status)) - { - DtInsertSubtable (ParentTable, Subtable); - if (Length) - { - *Length += Subtable->Length; - } - } - else - { - *PFieldList = (*PFieldList)->Next; - - if (Status == AE_NOT_FOUND) - { - sprintf (MsgBuffer, "Generic data type \"%s\" not found", - (*PFieldList)->Name); - DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, - (*PFieldList), MsgBuffer); - } - } - } + DtCreateSubtable (ReservedBuffer, ReservedSize, &Subtable); + ACPI_FREE (ReservedBuffer); + DtInsertSubtable (Gbl_RootTable, Subtable); return (AE_OK); } diff --git a/src/acpica/source/compiler/dttable1.c b/src/acpica/source/compiler/dttable1.c new file mode 100644 index 0000000..3db4b93 --- /dev/null +++ b/src/acpica/source/compiler/dttable1.c @@ -0,0 +1,1743 @@ +/****************************************************************************** + * + * Module Name: dttable1.c - handling for specific ACPI tables + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + *****************************************************************************/ + +/* Compile all complex data tables, signatures starting with A-I */ + +#include "aslcompiler.h" +#include "dtcompiler.h" + +#define _COMPONENT DT_COMPILER + ACPI_MODULE_NAME ("dttable1") + + +static ACPI_DMTABLE_INFO TableInfoAsfAddress[] = +{ + {ACPI_DMT_BUFFER, 0, "Addresses", 0}, + {ACPI_DMT_EXIT, 0, NULL, 0} +}; + +static ACPI_DMTABLE_INFO TableInfoDmarPciPath[] = +{ + {ACPI_DMT_PCI_PATH, 0, "PCI Path", 0}, + {ACPI_DMT_EXIT, 0, NULL, 0} +}; + + +/****************************************************************************** + * + * FUNCTION: DtCompileAsf + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile ASF!. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileAsf ( + void **List) +{ + ACPI_ASF_INFO *AsfTable; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_DMTABLE_INFO *DataInfoTable = NULL; + UINT32 DataCount = 0; + ACPI_STATUS Status; + UINT32 i; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoAsfHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + AsfTable = ACPI_CAST_PTR (ACPI_ASF_INFO, Subtable->Buffer); + + switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ + { + case ACPI_ASF_TYPE_INFO: + + InfoTable = AcpiDmTableInfoAsf0; + break; + + case ACPI_ASF_TYPE_ALERT: + + InfoTable = AcpiDmTableInfoAsf1; + break; + + case ACPI_ASF_TYPE_CONTROL: + + InfoTable = AcpiDmTableInfoAsf2; + break; + + case ACPI_ASF_TYPE_BOOT: + + InfoTable = AcpiDmTableInfoAsf3; + break; + + case ACPI_ASF_TYPE_ADDRESS: + + InfoTable = AcpiDmTableInfoAsf4; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + switch (AsfTable->Header.Type & 0x7F) /* Mask off top bit */ + { + case ACPI_ASF_TYPE_INFO: + + DataInfoTable = NULL; + break; + + case ACPI_ASF_TYPE_ALERT: + + DataInfoTable = AcpiDmTableInfoAsf1a; + DataCount = ACPI_CAST_PTR (ACPI_ASF_ALERT, + ACPI_SUB_PTR (UINT8, Subtable->Buffer, + sizeof (ACPI_ASF_HEADER)))->Alerts; + break; + + case ACPI_ASF_TYPE_CONTROL: + + DataInfoTable = AcpiDmTableInfoAsf2a; + DataCount = ACPI_CAST_PTR (ACPI_ASF_REMOTE, + ACPI_SUB_PTR (UINT8, Subtable->Buffer, + sizeof (ACPI_ASF_HEADER)))->Controls; + break; + + case ACPI_ASF_TYPE_BOOT: + + DataInfoTable = NULL; + break; + + case ACPI_ASF_TYPE_ADDRESS: + + DataInfoTable = TableInfoAsfAddress; + DataCount = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, + ACPI_SUB_PTR (UINT8, Subtable->Buffer, + sizeof (ACPI_ASF_HEADER)))->Devices; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!"); + return (AE_ERROR); + } + + if (DataInfoTable) + { + switch (AsfTable->Header.Type & 0x7F) + { + case ACPI_ASF_TYPE_ADDRESS: + + while (DataCount > 0) + { + Status = DtCompileTable (PFieldList, DataInfoTable, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + DataCount = DataCount - Subtable->Length; + } + break; + + default: + + for (i = 0; i < DataCount; i++) + { + Status = DtCompileTable (PFieldList, DataInfoTable, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + } + break; + } + } + + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileCpep + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile CPEP. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileCpep ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoCpep, AcpiDmTableInfoCpep0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileCsrt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile CSRT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileCsrt ( + void **List) +{ + ACPI_STATUS Status = AE_OK; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + UINT32 DescriptorCount; + UINT32 GroupLength; + + + /* Subtables (Resource Groups) */ + + ParentTable = DtPeekSubtable (); + while (*PFieldList) + { + /* Resource group subtable */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt0, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Compute the number of resource descriptors */ + + GroupLength = + (ACPI_CAST_PTR (ACPI_CSRT_GROUP, + Subtable->Buffer))->Length - + (ACPI_CAST_PTR (ACPI_CSRT_GROUP, + Subtable->Buffer))->SharedInfoLength - + sizeof (ACPI_CSRT_GROUP); + + DescriptorCount = (GroupLength / + sizeof (ACPI_CSRT_DESCRIPTOR)); + + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + + /* Shared info subtable (One per resource group) */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt1, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + + /* Sub-Subtables (Resource Descriptors) */ + + while (*PFieldList && DescriptorCount) + { + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + if (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoCsrt2a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (Subtable) + { + DtInsertSubtable (ParentTable, Subtable); + } + } + + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + DescriptorCount--; + } + + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + } + + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileDbg2 + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile DBG2. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileDbg2 ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + UINT32 SubtableCount; + ACPI_DBG2_HEADER *Dbg2Header; + ACPI_DBG2_DEVICE *DeviceInfo; + UINT16 CurrentOffset; + UINT32 i; + + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Main table fields */ + + Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer); + Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF ( + ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header); + + SubtableCount = Dbg2Header->InfoCount; + DtPushSubtable (Subtable); + + /* Process all Device Information subtables (Count = InfoCount) */ + + while (*PFieldList && SubtableCount) + { + /* Subtable: Debug Device Information */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Device, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DeviceInfo = ACPI_CAST_PTR (ACPI_DBG2_DEVICE, Subtable->Buffer); + CurrentOffset = (UINT16) sizeof (ACPI_DBG2_DEVICE); + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + ParentTable = DtPeekSubtable (); + + /* BaseAddressRegister GAS array (Required, size is RegisterCount) */ + + DeviceInfo->BaseAddressOffset = CurrentOffset; + for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + CurrentOffset += (UINT16) sizeof (ACPI_GENERIC_ADDRESS); + DtInsertSubtable (ParentTable, Subtable); + } + + /* AddressSize array (Required, size = RegisterCount) */ + + DeviceInfo->AddressSizeOffset = CurrentOffset; + for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + CurrentOffset += (UINT16) sizeof (UINT32); + DtInsertSubtable (ParentTable, Subtable); + } + + /* NamespaceString device identifier (Required, size = NamePathLength) */ + + DeviceInfo->NamepathOffset = CurrentOffset; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Update the device info header */ + + DeviceInfo->NamepathLength = (UINT16) Subtable->Length; + CurrentOffset += (UINT16) DeviceInfo->NamepathLength; + DtInsertSubtable (ParentTable, Subtable); + + /* OemData - Variable-length data (Optional, size = OemDataLength) */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2OemData, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Update the device info header (zeros if no OEM data present) */ + + DeviceInfo->OemDataOffset = 0; + DeviceInfo->OemDataLength = 0; + + /* Optional subtable (OemData) */ + + if (Subtable && Subtable->Length) + { + DeviceInfo->OemDataOffset = CurrentOffset; + DeviceInfo->OemDataLength = (UINT16) Subtable->Length; + + DtInsertSubtable (ParentTable, Subtable); + } + + SubtableCount--; + DtPopSubtable (); /* Get next Device Information subtable */ + } + + DtPopSubtable (); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileDmar + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile DMAR. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileDmar ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_DMAR_HEADER *DmarHeader; + ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope; + UINT32 DeviceScopeLength; + UINT32 PciPathLength; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + while (*PFieldList) + { + /* DMAR Header */ + + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer); + + switch (DmarHeader->Type) + { + case ACPI_DMAR_TYPE_HARDWARE_UNIT: + + InfoTable = AcpiDmTableInfoDmar0; + break; + + case ACPI_DMAR_TYPE_RESERVED_MEMORY: + + InfoTable = AcpiDmTableInfoDmar1; + break; + + case ACPI_DMAR_TYPE_ROOT_ATS: + + InfoTable = AcpiDmTableInfoDmar2; + break; + + case ACPI_DMAR_TYPE_HARDWARE_AFFINITY: + + InfoTable = AcpiDmTableInfoDmar3; + break; + + case ACPI_DMAR_TYPE_NAMESPACE: + + InfoTable = AcpiDmTableInfoDmar4; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR"); + return (AE_ERROR); + } + + /* DMAR Subtable */ + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* + * Optional Device Scope subtables + */ + if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) || + (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE)) + { + /* These types do not support device scopes */ + + DtPopSubtable (); + continue; + } + + DtPushSubtable (Subtable); + DeviceScopeLength = DmarHeader->Length - Subtable->Length - + ParentTable->Length; + while (DeviceScopeLength) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope, + &Subtable, FALSE); + if (Status == AE_NOT_FOUND) + { + break; + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + DmarDeviceScope = ACPI_CAST_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable->Buffer); + + /* Optional PCI Paths */ + + PciPathLength = DmarDeviceScope->Length - Subtable->Length; + while (PciPathLength) + { + Status = DtCompileTable (PFieldList, TableInfoDmarPciPath, + &Subtable, FALSE); + if (Status == AE_NOT_FOUND) + { + DtPopSubtable (); + break; + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + PciPathLength -= Subtable->Length; + } + + DtPopSubtable (); + DeviceScopeLength -= DmarDeviceScope->Length; + } + + DtPopSubtable (); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileDrtm + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile DRTM. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileDrtm ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + UINT32 Count; + /* ACPI_TABLE_DRTM *Drtm; */ + ACPI_DRTM_VTABLE_LIST *DrtmVtl; + ACPI_DRTM_RESOURCE_LIST *DrtmRl; + /* ACPI_DRTM_DPS_ID *DrtmDps; */ + + + ParentTable = DtPeekSubtable (); + + /* Compile DRTM header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + + /* + * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care + * should be taken to avoid accessing ACPI_TABLE_HADER fields. + */ +#if 0 + Drtm = ACPI_SUB_PTR (ACPI_TABLE_DRTM, + Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); +#endif + /* Compile VTL */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + DrtmVtl = ACPI_CAST_PTR (ACPI_DRTM_VTABLE_LIST, Subtable->Buffer); + + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + Count = 0; + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm0a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (!Subtable) + { + break; + } + DtInsertSubtable (ParentTable, Subtable); + Count++; + } + + DrtmVtl->ValidatedTableCount = Count; + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + + /* Compile RL */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + DrtmRl = ACPI_CAST_PTR (ACPI_DRTM_RESOURCE_LIST, Subtable->Buffer); + + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + Count = 0; + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm1a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + Count++; + } + + DrtmRl->ResourceCount = Count; + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + + /* Compile DPS */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoDrtm2, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + /* DrtmDps = ACPI_CAST_PTR (ACPI_DRTM_DPS_ID, Subtable->Buffer);*/ + + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileEinj + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile EINJ. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileEinj ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoEinj, AcpiDmTableInfoEinj0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileErst + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile ERST. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileErst ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoErst, AcpiDmTableInfoEinj0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileGtdt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile GTDT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileGtdt ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_SUBTABLE_HEADER *GtdtHeader; + ACPI_DMTABLE_INFO *InfoTable; + UINT32 GtCount; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdtHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + GtdtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); + + switch (GtdtHeader->Type) + { + case ACPI_GTDT_TYPE_TIMER_BLOCK: + + InfoTable = AcpiDmTableInfoGtdt0; + break; + + case ACPI_GTDT_TYPE_WATCHDOG: + + InfoTable = AcpiDmTableInfoGtdt1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "GTDT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* + * Additional GT block subtable data + */ + + switch (GtdtHeader->Type) + { + case ACPI_GTDT_TYPE_TIMER_BLOCK: + + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + + GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK, + Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount; + + while (GtCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoGtdt0a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + GtCount--; + } + + DtPopSubtable (); + break; + + default: + + break; + } + + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileFpdt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile FPDT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileFpdt ( + void **List) +{ + ACPI_STATUS Status; + ACPI_FPDT_HEADER *FpdtHeader; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoFpdtHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer); + + switch (FpdtHeader->Type) + { + case ACPI_FPDT_TYPE_BOOT: + + InfoTable = AcpiDmTableInfoFpdt0; + break; + + case ACPI_FPDT_TYPE_S3PERF: + + InfoTable = AcpiDmTableInfoFpdt1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "FPDT"); + return (AE_ERROR); + break; + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileHest + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile HEST. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileHest ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_DMTABLE_INFO *InfoTable; + UINT16 Type; + UINT32 BankCount; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoHest, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + /* Get subtable type */ + + SubtableStart = *PFieldList; + DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0); + + switch (Type) + { + case ACPI_HEST_TYPE_IA32_CHECK: + + InfoTable = AcpiDmTableInfoHest0; + break; + + case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: + + InfoTable = AcpiDmTableInfoHest1; + break; + + case ACPI_HEST_TYPE_IA32_NMI: + + InfoTable = AcpiDmTableInfoHest2; + break; + + case ACPI_HEST_TYPE_AER_ROOT_PORT: + + InfoTable = AcpiDmTableInfoHest6; + break; + + case ACPI_HEST_TYPE_AER_ENDPOINT: + + InfoTable = AcpiDmTableInfoHest7; + break; + + case ACPI_HEST_TYPE_AER_BRIDGE: + + InfoTable = AcpiDmTableInfoHest8; + break; + + case ACPI_HEST_TYPE_GENERIC_ERROR: + + InfoTable = AcpiDmTableInfoHest9; + break; + + default: + + /* Cannot continue on unknown type */ + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "HEST"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + + /* + * Additional subtable data - IA32 Error Bank(s) + */ + BankCount = 0; + switch (Type) + { + case ACPI_HEST_TYPE_IA32_CHECK: + + BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK, + Subtable->Buffer))->NumHardwareBanks; + break; + + case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK: + + BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED, + Subtable->Buffer))->NumHardwareBanks; + break; + + default: + + break; + } + + while (BankCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoHestBank, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + BankCount--; + } + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileIort + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile IORT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileIort ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_TABLE_IORT *Iort; + ACPI_IORT_NODE *IortNode; + ACPI_IORT_ITS_GROUP *IortItsGroup; + ACPI_IORT_SMMU *IortSmmu; + UINT32 NodeNumber; + UINT32 NodeLength; + UINT32 IdMappingNumber; + UINT32 ItsNumber; + UINT32 ContextIrptNumber; + UINT32 PmuIrptNumber; + UINT32 PaddingLength; + + + ParentTable = DtPeekSubtable (); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + DtInsertSubtable (ParentTable, Subtable); + + /* + * Using ACPI_SUB_PTR, We needn't define a seperate structure. Care + * should be taken to avoid accessing ACPI_TABLE_HADER fields. + */ + Iort = ACPI_SUB_PTR (ACPI_TABLE_IORT, + Subtable->Buffer, sizeof (ACPI_TABLE_HEADER)); + + /* + * OptionalPadding - Variable-length data + * (Optional, size = OffsetToNodes - sizeof (ACPI_TABLE_IORT)) + * Optionally allows the generic data types to be used for filling + * this field. + */ + Iort->NodeOffset = sizeof (ACPI_TABLE_IORT); + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (Subtable) + { + DtInsertSubtable (ParentTable, Subtable); + Iort->NodeOffset += Subtable->Length; + } + else + { + Status = DtCompileGeneric (ACPI_CAST_PTR (void *, PFieldList), + AcpiDmTableInfoIortHdr[0].Name, &PaddingLength); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + Iort->NodeOffset += PaddingLength; + } + + NodeNumber = 0; + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + IortNode = ACPI_CAST_PTR (ACPI_IORT_NODE, Subtable->Buffer); + NodeLength = ACPI_OFFSET (ACPI_IORT_NODE, NodeData); + + DtPushSubtable (Subtable); + ParentTable = DtPeekSubtable (); + + switch (IortNode->Type) + { + case ACPI_IORT_NODE_ITS_GROUP: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + IortItsGroup = ACPI_CAST_PTR (ACPI_IORT_ITS_GROUP, Subtable->Buffer); + NodeLength += Subtable->Length; + + ItsNumber = 0; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort0a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + ItsNumber++; + } + + IortItsGroup->ItsCount = ItsNumber; + break; + + case ACPI_IORT_NODE_NAMED_COMPONENT: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + + /* + * Padding - Variable-length data + * Optionally allows the offset of the ID mappings to be used + * for filling this field. + */ + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort1a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (Subtable) + { + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + } + else + { + if (NodeLength > IortNode->MappingOffset) + { + return (AE_BAD_DATA); + } + + if (NodeLength < IortNode->MappingOffset) + { + Status = DtCompilePadding ( + IortNode->MappingOffset - NodeLength, + &Subtable); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength = IortNode->MappingOffset; + } + } + break; + + case ACPI_IORT_NODE_PCI_ROOT_COMPLEX: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort2, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + break; + + case ACPI_IORT_NODE_SMMU: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + IortSmmu = ACPI_CAST_PTR (ACPI_IORT_SMMU, Subtable->Buffer); + NodeLength += Subtable->Length; + + /* Compile global interrupt array */ + + IortSmmu->GlobalInterruptOffset = NodeLength; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + + /* Compile context interrupt array */ + + ContextIrptNumber = 0; + IortSmmu->ContextInterruptOffset = NodeLength; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + ContextIrptNumber++; + } + + IortSmmu->ContextInterruptCount = ContextIrptNumber; + + /* Compile PMU interrupt array */ + + PmuIrptNumber = 0; + IortSmmu->PmuInterruptOffset = NodeLength; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += Subtable->Length; + PmuIrptNumber++; + } + + IortSmmu->PmuInterruptCount = PmuIrptNumber; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IORT"); + return (AE_ERROR); + } + + /* Compile Array of ID mappings */ + + IortNode->MappingOffset = NodeLength; + IdMappingNumber = 0; + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortMap, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + break; + } + + DtInsertSubtable (ParentTable, Subtable); + NodeLength += sizeof (ACPI_IORT_ID_MAPPING); + IdMappingNumber++; + } + + IortNode->MappingCount = IdMappingNumber; + + /* + * Node length can be determined by DT_LENGTH option + * IortNode->Length = NodeLength; + */ + DtPopSubtable (); + ParentTable = DtPeekSubtable (); + NodeNumber++; + } + + Iort->NodeCount = NodeNumber; + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileIvrs + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile IVRS. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileIvrs ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_IVRS_HEADER *IvrsHeader; + UINT8 EntryType; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrs, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoIvrsHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + IvrsHeader = ACPI_CAST_PTR (ACPI_IVRS_HEADER, Subtable->Buffer); + + switch (IvrsHeader->Type) + { + case ACPI_IVRS_TYPE_HARDWARE: + + InfoTable = AcpiDmTableInfoIvrs0; + break; + + case ACPI_IVRS_TYPE_MEMORY1: + case ACPI_IVRS_TYPE_MEMORY2: + case ACPI_IVRS_TYPE_MEMORY3: + + InfoTable = AcpiDmTableInfoIvrs1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "IVRS"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE) + { + while (*PFieldList && + !strcmp ((*PFieldList)->Name, "Entry Type")) + { + SubtableStart = *PFieldList; + DtCompileInteger (&EntryType, *PFieldList, 1, 0); + + switch (EntryType) + { + /* 4-byte device entries */ + + case ACPI_IVRS_TYPE_PAD4: + case ACPI_IVRS_TYPE_ALL: + case ACPI_IVRS_TYPE_SELECT: + case ACPI_IVRS_TYPE_START: + case ACPI_IVRS_TYPE_END: + + InfoTable = AcpiDmTableInfoIvrs4; + break; + + /* 8-byte entries, type A */ + + case ACPI_IVRS_TYPE_ALIAS_SELECT: + case ACPI_IVRS_TYPE_ALIAS_START: + + InfoTable = AcpiDmTableInfoIvrs8a; + break; + + /* 8-byte entries, type B */ + + case ACPI_IVRS_TYPE_PAD8: + case ACPI_IVRS_TYPE_EXT_SELECT: + case ACPI_IVRS_TYPE_EXT_START: + + InfoTable = AcpiDmTableInfoIvrs8b; + break; + + /* 8-byte entries, type C */ + + case ACPI_IVRS_TYPE_SPECIAL: + + InfoTable = AcpiDmTableInfoIvrs8c; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, + "IVRS Device Entry"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + } + } + + DtPopSubtable (); + } + + return (AE_OK); +} diff --git a/src/acpica/source/compiler/dttable2.c b/src/acpica/source/compiler/dttable2.c new file mode 100644 index 0000000..0632ffe --- /dev/null +++ b/src/acpica/source/compiler/dttable2.c @@ -0,0 +1,1758 @@ +/****************************************************************************** + * + * Module Name: dttable2.c - handling for specific ACPI tables + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + *****************************************************************************/ + +/* Compile all complex data tables, signatures starting with L-Z */ + +#include "aslcompiler.h" +#include "dtcompiler.h" + +#define _COMPONENT DT_COMPILER + ACPI_MODULE_NAME ("dttable2") + + +/****************************************************************************** + * + * FUNCTION: DtCompileLpit + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile LPIT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileLpit ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_DMTABLE_INFO *InfoTable; + ACPI_LPIT_HEADER *LpitHeader; + + + /* Note: Main table consists only of the standard ACPI table header */ + + while (*PFieldList) + { + SubtableStart = *PFieldList; + + /* LPIT Subtable header */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoLpitHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + LpitHeader = ACPI_CAST_PTR (ACPI_LPIT_HEADER, Subtable->Buffer); + + switch (LpitHeader->Type) + { + case ACPI_LPIT_TYPE_NATIVE_CSTATE: + + InfoTable = AcpiDmTableInfoLpit0; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "LPIT"); + return (AE_ERROR); + } + + /* LPIT Subtable */ + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileMadt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MADT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMadt ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_SUBTABLE_HEADER *MadtHeader; + ACPI_DMTABLE_INFO *InfoTable; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadt, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMadtHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + MadtHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); + + switch (MadtHeader->Type) + { + case ACPI_MADT_TYPE_LOCAL_APIC: + + InfoTable = AcpiDmTableInfoMadt0; + break; + + case ACPI_MADT_TYPE_IO_APIC: + + InfoTable = AcpiDmTableInfoMadt1; + break; + + case ACPI_MADT_TYPE_INTERRUPT_OVERRIDE: + + InfoTable = AcpiDmTableInfoMadt2; + break; + + case ACPI_MADT_TYPE_NMI_SOURCE: + + InfoTable = AcpiDmTableInfoMadt3; + break; + + case ACPI_MADT_TYPE_LOCAL_APIC_NMI: + + InfoTable = AcpiDmTableInfoMadt4; + break; + + case ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE: + + InfoTable = AcpiDmTableInfoMadt5; + break; + + case ACPI_MADT_TYPE_IO_SAPIC: + + InfoTable = AcpiDmTableInfoMadt6; + break; + + case ACPI_MADT_TYPE_LOCAL_SAPIC: + + InfoTable = AcpiDmTableInfoMadt7; + break; + + case ACPI_MADT_TYPE_INTERRUPT_SOURCE: + + InfoTable = AcpiDmTableInfoMadt8; + break; + + case ACPI_MADT_TYPE_LOCAL_X2APIC: + + InfoTable = AcpiDmTableInfoMadt9; + break; + + case ACPI_MADT_TYPE_LOCAL_X2APIC_NMI: + + InfoTable = AcpiDmTableInfoMadt10; + break; + + case ACPI_MADT_TYPE_GENERIC_INTERRUPT: + + InfoTable = AcpiDmTableInfoMadt11; + break; + + case ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR: + + InfoTable = AcpiDmTableInfoMadt12; + break; + + case ACPI_MADT_TYPE_GENERIC_MSI_FRAME: + + InfoTable = AcpiDmTableInfoMadt13; + break; + + case ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR: + + InfoTable = AcpiDmTableInfoMadt14; + break; + + case ACPI_MADT_TYPE_GENERIC_TRANSLATOR: + + InfoTable = AcpiDmTableInfoMadt15; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileMcfg + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MCFG. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMcfg ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoMcfg, AcpiDmTableInfoMcfg0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileMpst + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MPST. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMpst ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_MPST_CHANNEL *MpstChannelInfo; + ACPI_MPST_POWER_NODE *MpstPowerNode; + ACPI_MPST_DATA_HDR *MpstDataHeader; + UINT16 SubtableCount; + UINT32 PowerStateCount; + UINT32 ComponentCount; + + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer); + SubtableCount = MpstChannelInfo->PowerNodeCount; + + while (*PFieldList && SubtableCount) + { + /* Subtable: Memory Power Node(s) */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer); + PowerStateCount = MpstPowerNode->NumPowerStates; + ComponentCount = MpstPowerNode->NumPhysicalComponents; + + ParentTable = DtPeekSubtable (); + + /* Sub-subtables - Memory Power State Structure(s) */ + + while (*PFieldList && PowerStateCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0A, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + PowerStateCount--; + } + + /* Sub-subtables - Physical Component ID Structure(s) */ + + while (*PFieldList && ComponentCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst0B, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + ComponentCount--; + } + + SubtableCount--; + DtPopSubtable (); + } + + /* Subtable: Count of Memory Power State Characteristic structures */ + + DtPopSubtable (); + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst1, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + MpstDataHeader = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable->Buffer); + SubtableCount = MpstDataHeader->CharacteristicsCount; + + ParentTable = DtPeekSubtable (); + + /* Subtable: Memory Power State Characteristics structure(s) */ + + while (*PFieldList && SubtableCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoMpst2, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + SubtableCount--; + } + + DtPopSubtable (); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileMsct + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MSCT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMsct ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoMsct, AcpiDmTableInfoMsct0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileMtmr + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile MTMR. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileMtmr ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoMtmr, AcpiDmTableInfoMtmr0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileNfit + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile NFIT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileNfit ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_NFIT_HEADER *NfitHeader; + ACPI_DMTABLE_INFO *InfoTable; + UINT32 Count; + ACPI_NFIT_INTERLEAVE *Interleave = NULL; + ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL; + + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + /* Subtables */ + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfitHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer); + + switch (NfitHeader->Type) + { + case ACPI_NFIT_TYPE_SYSTEM_ADDRESS: + + InfoTable = AcpiDmTableInfoNfit0; + break; + + case ACPI_NFIT_TYPE_MEMORY_MAP: + + InfoTable = AcpiDmTableInfoNfit1; + break; + + case ACPI_NFIT_TYPE_INTERLEAVE: + + Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable->Buffer); + InfoTable = AcpiDmTableInfoNfit2; + break; + + case ACPI_NFIT_TYPE_SMBIOS: + + InfoTable = AcpiDmTableInfoNfit3; + break; + + case ACPI_NFIT_TYPE_CONTROL_REGION: + + InfoTable = AcpiDmTableInfoNfit4; + break; + + case ACPI_NFIT_TYPE_DATA_REGION: + + InfoTable = AcpiDmTableInfoNfit5; + break; + + case ACPI_NFIT_TYPE_FLUSH_ADDRESS: + + Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable->Buffer); + InfoTable = AcpiDmTableInfoNfit6; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "NFIT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + + switch (NfitHeader->Type) + { + case ACPI_NFIT_TYPE_INTERLEAVE: + + Count = 0; + DtPushSubtable (Subtable); + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit2a, + &Subtable, FALSE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + DtPopSubtable (); + break; + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + Count++; + } + + Interleave->LineCount = Count; + DtPopSubtable (); + break; + + case ACPI_NFIT_TYPE_SMBIOS: + + if (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit3a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (Subtable) + { + DtInsertSubtable (ParentTable, Subtable); + } + } + break; + + case ACPI_NFIT_TYPE_FLUSH_ADDRESS: + + Count = 0; + DtPushSubtable (Subtable); + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoNfit6a, + &Subtable, FALSE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + if (!Subtable) + { + DtPopSubtable (); + break; + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + Count++; + } + + Hint->HintCount = (UINT16) Count; + DtPopSubtable (); + break; + + default: + break; + } + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompilePcct + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile PCCT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompilePcct ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_SUBTABLE_HEADER *PcctHeader; + ACPI_DMTABLE_INFO *InfoTable; + + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcct, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Subtables */ + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPcctHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + PcctHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); + + switch (PcctHeader->Type) + { + case ACPI_PCCT_TYPE_GENERIC_SUBSPACE: + + InfoTable = AcpiDmTableInfoPcct0; + break; + + case ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE: + + InfoTable = AcpiDmTableInfoPcct1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PCCT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompilePmtt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile PMTT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompilePmtt ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_PMTT_HEADER *PmttHeader; + ACPI_PMTT_CONTROLLER *PmttController; + UINT16 DomainCount; + UINT8 PrevType = ACPI_PMTT_TYPE_SOCKET; + + + /* Main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmttHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + PmttHeader = ACPI_CAST_PTR (ACPI_PMTT_HEADER, Subtable->Buffer); + while (PrevType >= PmttHeader->Type) + { + DtPopSubtable (); + + if (PrevType == ACPI_PMTT_TYPE_SOCKET) + { + break; + } + + PrevType--; + } + + PrevType = PmttHeader->Type; + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + switch (PmttHeader->Type) + { + case ACPI_PMTT_TYPE_SOCKET: + + /* Subtable: Socket Structure */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt0, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + break; + + case ACPI_PMTT_TYPE_CONTROLLER: + + /* Subtable: Memory Controller Structure */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER, + (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER))); + DomainCount = PmttController->DomainCount; + + while (DomainCount) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt1a, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtInsertSubtable (ParentTable, Subtable); + DomainCount--; + } + break; + + case ACPI_PMTT_TYPE_DIMM: + + /* Subtable: Physical Component Structure */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoPmtt2, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "PMTT"); + return (AE_ERROR); + } + } + + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileRsdt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile RSDT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileRsdt ( + void **List) +{ + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD *FieldList = *(DT_FIELD **) List; + UINT32 Address; + + + ParentTable = DtPeekSubtable (); + + while (FieldList) + { + DtCompileInteger ((UINT8 *) &Address, FieldList, 4, DT_NON_ZERO); + + DtCreateSubtable ((UINT8 *) &Address, 4, &Subtable); + DtInsertSubtable (ParentTable, Subtable); + FieldList = FieldList->Next; + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileS3pt + * + * PARAMETERS: PFieldList - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile S3PT (Pointed to by FPDT) + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileS3pt ( + DT_FIELD **PFieldList) +{ + ACPI_STATUS Status; + ACPI_S3PT_HEADER *S3ptHeader; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_DMTABLE_INFO *InfoTable; + DT_FIELD *SubtableStart; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt, + &Gbl_RootTable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DtPushSubtable (Gbl_RootTable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3ptHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + S3ptHeader = ACPI_CAST_PTR (ACPI_S3PT_HEADER, Subtable->Buffer); + + switch (S3ptHeader->Type) + { + case ACPI_S3PT_TYPE_RESUME: + + InfoTable = AcpiDmTableInfoS3pt0; + break; + + case ACPI_S3PT_TYPE_SUSPEND: + + InfoTable = AcpiDmTableInfoS3pt1; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "S3PT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileSlic + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile SLIC. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileSlic ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlic, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileSlit + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile SLIT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileSlit ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *FieldList; + UINT32 Localities; + UINT8 *LocalityBuffer; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlit, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer); + LocalityBuffer = UtLocalCalloc (Localities); + + /* Compile each locality buffer */ + + FieldList = *PFieldList; + while (FieldList) + { + DtCompileBuffer (LocalityBuffer, + FieldList->Value, FieldList, Localities); + + DtCreateSubtable (LocalityBuffer, Localities, &Subtable); + DtInsertSubtable (ParentTable, Subtable); + FieldList = FieldList->Next; + } + + ACPI_FREE (LocalityBuffer); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileSrat + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile SRAT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileSrat ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_FIELD *SubtableStart; + ACPI_SUBTABLE_HEADER *SratHeader; + ACPI_DMTABLE_INFO *InfoTable; + + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSrat, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + while (*PFieldList) + { + SubtableStart = *PFieldList; + Status = DtCompileTable (PFieldList, AcpiDmTableInfoSratHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPushSubtable (Subtable); + + SratHeader = ACPI_CAST_PTR (ACPI_SUBTABLE_HEADER, Subtable->Buffer); + + switch (SratHeader->Type) + { + case ACPI_SRAT_TYPE_CPU_AFFINITY: + + InfoTable = AcpiDmTableInfoSrat0; + break; + + case ACPI_SRAT_TYPE_MEMORY_AFFINITY: + + InfoTable = AcpiDmTableInfoSrat1; + break; + + case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY: + + InfoTable = AcpiDmTableInfoSrat2; + break; + + case ACPI_SRAT_TYPE_GICC_AFFINITY: + + InfoTable = AcpiDmTableInfoSrat3; + break; + + default: + + DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT"); + return (AE_ERROR); + } + + Status = DtCompileTable (PFieldList, InfoTable, &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + DtPopSubtable (); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileStao + * + * PARAMETERS: PFieldList - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile STAO. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileStao ( + void **List) +{ + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_STATUS Status; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoStao, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile each ASCII namestring as a subtable */ + + while (*PFieldList) + { + Status = DtCompileTable (PFieldList, AcpiDmTableInfoStaoStr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileTcpa + * + * PARAMETERS: PFieldList - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile TCPA. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileTcpa ( + void **List) +{ + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_SUBTABLE *Subtable; + ACPI_TABLE_TCPA_HDR *TcpaHeader; + DT_SUBTABLE *ParentTable; + ACPI_STATUS Status; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaHdr, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* + * Examine the PlatformClass field to determine the table type. + * Either a client or server table. Only one. + */ + TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer); + + switch (TcpaHeader->PlatformClass) + { + case ACPI_TCPA_CLIENT_TABLE: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaClient, + &Subtable, TRUE); + break; + + case ACPI_TCPA_SERVER_TABLE: + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoTcpaServer, + &Subtable, TRUE); + break; + + default: + + AcpiOsPrintf ("\n**** Unknown TCPA Platform Class 0x%X\n", + TcpaHeader->PlatformClass); + Status = AE_ERROR; + break; + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtGetGenericTableInfo + * + * PARAMETERS: Name - Generic type name + * + * RETURN: Info entry + * + * DESCRIPTION: Obtain table info for a generic name entry + * + *****************************************************************************/ + +ACPI_DMTABLE_INFO * +DtGetGenericTableInfo ( + char *Name) +{ + ACPI_DMTABLE_INFO *Info; + UINT32 i; + + + if (!Name) + { + return (NULL); + } + + /* Search info table for name match */ + + for (i = 0; ; i++) + { + Info = AcpiDmTableInfoGeneric[i]; + if (Info->Opcode == ACPI_DMT_EXIT) + { + Info = NULL; + break; + } + + /* Use caseless compare for generic keywords */ + + if (!AcpiUtStricmp (Name, Info->Name)) + { + break; + } + } + + return (Info); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileUefi + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile UEFI. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileUefi ( + void **List) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + UINT16 *DataOffset; + + + /* Compile the predefined portion of the UEFI table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoUefi, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + DataOffset = (UINT16 *) (Subtable->Buffer + 16); + *DataOffset = sizeof (ACPI_TABLE_UEFI); + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* + * Compile the "generic" portion of the UEFI table. This + * part of the table is not predefined and any of the generic + * operators may be used. + */ + DtCompileGeneric ((void **) PFieldList, NULL, NULL); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileVrtc + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile VRTC. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileVrtc ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoVrtc, AcpiDmTableInfoVrtc0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileWdat + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile WDAT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileWdat ( + void **List) +{ + ACPI_STATUS Status; + + + Status = DtCompileTwoSubtables (List, + AcpiDmTableInfoWdat, AcpiDmTableInfoWdat0); + return (Status); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileWpbt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile WPBT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileWpbt ( + void **List) +{ + DT_FIELD **PFieldList = (DT_FIELD **) List; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + ACPI_TABLE_WPBT *Table; + ACPI_STATUS Status; + UINT16 Length; + + + /* Compile the main table */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + + /* Compile the argument list subtable */ + + Status = DtCompileTable (PFieldList, AcpiDmTableInfoWpbt0, + &Subtable, TRUE); + if (ACPI_FAILURE (Status)) + { + return (Status); + } + + /* Extract the length of the Arguments buffer, insert into main table */ + + Length = (UINT16) Subtable->TotalLength; + Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer); + Table->ArgumentsLength = Length; + + ParentTable = DtPeekSubtable (); + DtInsertSubtable (ParentTable, Subtable); + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileXsdt + * + * PARAMETERS: List - Current field list pointer + * + * RETURN: Status + * + * DESCRIPTION: Compile XSDT. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileXsdt ( + void **List) +{ + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD *FieldList = *(DT_FIELD **) List; + UINT64 Address; + + + ParentTable = DtPeekSubtable (); + + while (FieldList) + { + DtCompileInteger ((UINT8 *) &Address, FieldList, 8, DT_NON_ZERO); + + DtCreateSubtable ((UINT8 *) &Address, 8, &Subtable); + DtInsertSubtable (ParentTable, Subtable); + FieldList = FieldList->Next; + } + + return (AE_OK); +} + + +/****************************************************************************** + * + * FUNCTION: DtCompileGeneric + * + * PARAMETERS: List - Current field list pointer + * Name - Field name to end generic compiling + * Length - Compiled table length to return + * + * RETURN: Status + * + * DESCRIPTION: Compile generic unknown table. + * + *****************************************************************************/ + +ACPI_STATUS +DtCompileGeneric ( + void **List, + char *Name, + UINT32 *Length) +{ + ACPI_STATUS Status; + DT_SUBTABLE *Subtable; + DT_SUBTABLE *ParentTable; + DT_FIELD **PFieldList = (DT_FIELD **) List; + ACPI_DMTABLE_INFO *Info; + + + ParentTable = DtPeekSubtable (); + + /* + * Compile the "generic" portion of the table. This + * part of the table is not predefined and any of the generic + * operators may be used. + */ + + /* Find any and all labels in the entire generic portion */ + + DtDetectAllLabels (*PFieldList); + + /* Now we can actually compile the parse tree */ + + if (Length && *Length) + { + *Length = 0; + } + while (*PFieldList) + { + if (Name && !strcmp ((*PFieldList)->Name, Name)) + { + break; + } + + Info = DtGetGenericTableInfo ((*PFieldList)->Name); + if (!Info) + { + sprintf (MsgBuffer, "Generic data type \"%s\" not found", + (*PFieldList)->Name); + DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, + (*PFieldList), MsgBuffer); + + *PFieldList = (*PFieldList)->Next; + continue; + } + + Status = DtCompileTable (PFieldList, Info, + &Subtable, TRUE); + if (ACPI_SUCCESS (Status)) + { + DtInsertSubtable (ParentTable, Subtable); + if (Length) + { + *Length += Subtable->Length; + } + } + else + { + *PFieldList = (*PFieldList)->Next; + + if (Status == AE_NOT_FOUND) + { + sprintf (MsgBuffer, "Generic data type \"%s\" not found", + (*PFieldList)->Name); + DtNameError (ASL_ERROR, ASL_MSG_INVALID_FIELD_NAME, + (*PFieldList), MsgBuffer); + } + } + } + + return (AE_OK); +} diff --git a/src/acpica/source/compiler/dttemplate.c b/src/acpica/source/compiler/dttemplate.c index 8c2f8b2..6e4c9f9 100644 --- a/src/acpica/source/compiler/dttemplate.c +++ b/src/acpica/source/compiler/dttemplate.c @@ -261,7 +261,6 @@ GetTemplate: Status = DtCreateOneTemplate (Signature, TableData); - /* Shutdown ACPICA subsystem */ (void) AcpiTerminate (); @@ -307,7 +306,7 @@ DtCreateAllTemplates ( if (TableData->Template) { Status = DtCreateOneTemplate (TableData->Signature, - TableData); + TableData); if (ACPI_FAILURE (Status)) { return (Status); diff --git a/src/acpica/source/compiler/prexpress.c b/src/acpica/source/compiler/prexpress.c index 513a443..b54b7e0 100644 --- a/src/acpica/source/compiler/prexpress.c +++ b/src/acpica/source/compiler/prexpress.c @@ -156,6 +156,7 @@ PrUnTokenize ( { return; } + if (Buffer[Length] != '\n') { Buffer[strlen(Buffer)] = ' '; diff --git a/src/acpica/source/compiler/prmacros.c b/src/acpica/source/compiler/prmacros.c index 798e29b..1770803 100644 --- a/src/acpica/source/compiler/prmacros.c +++ b/src/acpica/source/compiler/prmacros.c @@ -459,7 +459,8 @@ PrAddMacro ( { UseCount = Args[i].UseCount; - Args[i].Offset[UseCount] = (Token - Gbl_MainTokenBuffer) - MacroBodyOffset; + Args[i].Offset[UseCount] = + (Token - Gbl_MainTokenBuffer) - MacroBodyOffset; DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID "Macro Arg #%u: %s UseCount %u Offset %u \n", diff --git a/src/acpica/source/compiler/prscan.c b/src/acpica/source/compiler/prscan.c index bc88f76..ceffadc 100644 --- a/src/acpica/source/compiler/prscan.c +++ b/src/acpica/source/compiler/prscan.c @@ -571,7 +571,8 @@ PrDoDirective ( case PR_DIRECTIVE_ELSE: case PR_DIRECTIVE_ELIF: - if (Gbl_DirectiveStack && Gbl_DirectiveStack->IgnoringThisCodeBlock) + if (Gbl_DirectiveStack && + Gbl_DirectiveStack->IgnoringThisCodeBlock) { PrDbgPrint ("Ignoring", Gbl_DirectiveInfo[Directive].Name); return; @@ -746,7 +747,8 @@ PrDoDirective ( if (*(&Gbl_CurrentLineBuffer[TokenOffset]) == '(') { #ifndef MACROS_SUPPORTED - AcpiOsPrintf ("%s ERROR - line %u: #define macros are not supported yet\n", + AcpiOsPrintf ( + "%s ERROR - line %u: #define macros are not supported yet\n", Gbl_CurrentLineBuffer, Gbl_LogicalLineNumber); exit(1); #else @@ -764,11 +766,13 @@ PrDoDirective ( { Token2++; } + End = Token2; while (*End != '\n') { End++; } + *End = 0; } else @@ -1071,6 +1075,7 @@ PrGetNextLine ( { return (ASL_BLANK_LINE); } + return (AE_OK); } } diff --git a/src/acpica/source/compiler/prutils.c b/src/acpica/source/compiler/prutils.c index b367650..fc6bece 100644 --- a/src/acpica/source/compiler/prutils.c +++ b/src/acpica/source/compiler/prutils.c @@ -194,8 +194,10 @@ PrGetNextToken ( { *Next = NULL; } + return (TokenStart); } + Buffer++; } diff --git a/src/acpica/source/components/debugger/dbcmds.c b/src/acpica/source/components/debugger/dbcmds.c index 17e1265..280e135 100644 --- a/src/acpica/source/components/debugger/dbcmds.c +++ b/src/acpica/source/components/debugger/dbcmds.c @@ -189,8 +189,7 @@ AcpiDbConvertToNode ( Node = ACPI_TO_POINTER (Address); if (!AcpiOsReadable (Node, sizeof (ACPI_NAMESPACE_NODE))) { - AcpiOsPrintf ("Address %p is invalid", - Node); + AcpiOsPrintf ("Address %p is invalid", Node); return (NULL); } @@ -199,7 +198,7 @@ AcpiDbConvertToNode ( if (ACPI_GET_DESCRIPTOR_TYPE (Node) != ACPI_DESC_TYPE_NAMED) { AcpiOsPrintf ("Address %p is not a valid namespace node [%s]\n", - Node, AcpiUtGetDescriptorName (Node)); + Node, AcpiUtGetDescriptorName (Node)); return (NULL); } } @@ -986,7 +985,7 @@ AcpiDbDeviceResources ( Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle); - ParentPath = AcpiNsGetExternalPathname (Node); + ParentPath = AcpiNsGetNormalizedPathname (Node, TRUE); if (!ParentPath) { return (AE_NO_MEMORY); @@ -1077,7 +1076,7 @@ GetCrs: /* Get the _CRS resource list (test ALLOCATE buffer) */ ReturnBuffer.Pointer = NULL; - ReturnBuffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER; + ReturnBuffer.Length = ACPI_ALLOCATE_LOCAL_BUFFER; Status = AcpiGetCurrentResources (Node, &ReturnBuffer); if (ACPI_FAILURE (Status)) @@ -1146,7 +1145,7 @@ GetPrs: } ReturnBuffer.Pointer = AcpiGbl_DbBuffer; - ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; + ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiGetPossibleResources (Node, &ReturnBuffer); if (ACPI_FAILURE (Status)) @@ -1169,7 +1168,7 @@ GetAei: AcpiOsPrintf ("Evaluating _AEI\n"); ReturnBuffer.Pointer = AcpiGbl_DbBuffer; - ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; + ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiEvaluateObject (AeiNode, NULL, NULL, &ReturnBuffer); if (ACPI_FAILURE (Status)) @@ -1180,7 +1179,7 @@ GetAei: } ReturnBuffer.Pointer = AcpiGbl_DbBuffer; - ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; + ReturnBuffer.Length = ACPI_DEBUG_BUFFER_SIZE; Status = AcpiGetEventResources (Node, &ReturnBuffer); if (ACPI_FAILURE (Status)) @@ -1296,8 +1295,8 @@ AcpiDbGenerateGpe ( } } - GpeEventInfo = AcpiEvGetGpeEventInfo (ACPI_TO_POINTER (BlockNumber), - GpeNumber); + GpeEventInfo = AcpiEvGetGpeEventInfo ( + ACPI_TO_POINTER (BlockNumber), GpeNumber); if (!GpeEventInfo) { AcpiOsPrintf ("Invalid GPE\n"); @@ -1356,15 +1355,8 @@ AcpiDbTrace ( UINT32 Flags = 0; - if (EnableArg) - { - AcpiUtStrupr (EnableArg); - } - - if (OnceArg) - { - AcpiUtStrupr (OnceArg); - } + AcpiUtStrupr (EnableArg); + AcpiUtStrupr (OnceArg); if (MethodArg) { diff --git a/src/acpica/source/components/debugger/dbconvert.c b/src/acpica/source/components/debugger/dbconvert.c index d1201f3..034a204 100644 --- a/src/acpica/source/components/debugger/dbconvert.c +++ b/src/acpica/source/components/debugger/dbconvert.c @@ -270,7 +270,7 @@ AcpiDbConvertToBuffer ( } j++; - i+=2; + i += 2; while (String[i] && ((String[i] == ',') || (String[i] == ' '))) { diff --git a/src/acpica/source/components/debugger/dbdisply.c b/src/acpica/source/components/debugger/dbdisply.c index 3a3ca15..1fa02a1 100644 --- a/src/acpica/source/components/debugger/dbdisply.c +++ b/src/acpica/source/components/debugger/dbdisply.c @@ -485,14 +485,13 @@ AcpiDbDisplayMethodInfo ( } ObjDesc = WalkState->MethodDesc; - Node = WalkState->MethodNode; + Node = WalkState->MethodNode; AcpiOsPrintf ("Currently executing control method is [%4.4s]\n", - AcpiUtGetNodeName (Node)); + AcpiUtGetNodeName (Node)); AcpiOsPrintf ("%X Arguments, SyncLevel = %X\n", - (UINT32) ObjDesc->Method.ParamCount, - (UINT32) ObjDesc->Method.SyncLevel); - + (UINT32) ObjDesc->Method.ParamCount, + (UINT32) ObjDesc->Method.SyncLevel); RootOp = StartOp; while (RootOp->Common.Parent) @@ -653,7 +652,7 @@ AcpiDbDisplayResults ( } ObjDesc = WalkState->MethodDesc; - Node = WalkState->MethodNode; + Node = WalkState->MethodNode; if (WalkState->Results) { @@ -729,7 +728,7 @@ AcpiDbDisplayCallingTree ( * * FUNCTION: AcpiDbDisplayObjectType * - * PARAMETERS: Name - User entered NS node handle or name + * PARAMETERS: ObjectArg - User entered NS node handle * * RETURN: None * @@ -739,21 +738,17 @@ AcpiDbDisplayCallingTree ( void AcpiDbDisplayObjectType ( - char *Name) + char *ObjectArg) { - ACPI_NAMESPACE_NODE *Node; + ACPI_HANDLE Handle; ACPI_DEVICE_INFO *Info; ACPI_STATUS Status; UINT32 i; - Node = AcpiDbConvertToNode (Name); - if (!Node) - { - return; - } + Handle = ACPI_TO_POINTER (strtoul (ObjectArg, NULL, 16)); - Status = AcpiGetObjectInfo (ACPI_CAST_PTR (ACPI_HANDLE, Node), &Info); + Status = AcpiGetObjectInfo (Handle, &Info); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("Could not get object info, %s\n", @@ -761,25 +756,18 @@ AcpiDbDisplayObjectType ( return; } - if (Info->Valid & ACPI_VALID_ADR) - { - AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n", - ACPI_FORMAT_UINT64 (Info->Address), - Info->CurrentStatus, Info->Flags); - } - if (Info->Valid & ACPI_VALID_SXDS) - { - AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n", - Info->HighestDstates[0], Info->HighestDstates[1], - Info->HighestDstates[2], Info->HighestDstates[3]); - } - if (Info->Valid & ACPI_VALID_SXWS) - { - AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n", - Info->LowestDstates[0], Info->LowestDstates[1], - Info->LowestDstates[2], Info->LowestDstates[3], - Info->LowestDstates[4]); - } + AcpiOsPrintf ("ADR: %8.8X%8.8X, STA: %8.8X, Flags: %X\n", + ACPI_FORMAT_UINT64 (Info->Address), + Info->CurrentStatus, Info->Flags); + + AcpiOsPrintf ("S1D-%2.2X S2D-%2.2X S3D-%2.2X S4D-%2.2X\n", + Info->HighestDstates[0], Info->HighestDstates[1], + Info->HighestDstates[2], Info->HighestDstates[3]); + + AcpiOsPrintf ("S0W-%2.2X S1W-%2.2X S2W-%2.2X S3W-%2.2X S4W-%2.2X\n", + Info->LowestDstates[0], Info->LowestDstates[1], + Info->LowestDstates[2], Info->LowestDstates[3], + Info->LowestDstates[4]); if (Info->Valid & ACPI_VALID_HID) { @@ -791,11 +779,6 @@ AcpiDbDisplayObjectType ( AcpiOsPrintf ("UID: %s\n", Info->UniqueId.String); } - if (Info->Valid & ACPI_VALID_SUB) - { - AcpiOsPrintf ("SUB: %s\n", Info->SubsystemId.String); - } - if (Info->Valid & ACPI_VALID_CID) { for (i = 0; i < Info->CompatibleIdList.Count; i++) @@ -832,6 +815,13 @@ AcpiDbDisplayResultObject ( ACPI_WALK_STATE *WalkState) { +#ifndef ACPI_APPLICATION + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId()) + { + return; + } +#endif + /* Only display if single stepping */ if (!AcpiGbl_CmSingleStep) @@ -864,6 +854,13 @@ AcpiDbDisplayArgumentObject ( ACPI_WALK_STATE *WalkState) { +#ifndef ACPI_APPLICATION + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId()) + { + return; + } +#endif + if (!AcpiGbl_CmSingleStep) { return; @@ -1243,7 +1240,7 @@ AcpiDbDisplayNonRootHandlers ( return (AE_OK); } - Pathname = AcpiNsGetExternalPathname (Node); + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); if (!Pathname) { return (AE_OK); diff --git a/src/acpica/source/components/debugger/dbexec.c b/src/acpica/source/components/debugger/dbexec.c index c2b02d2..f69e27a 100644 --- a/src/acpica/source/components/debugger/dbexec.c +++ b/src/acpica/source/components/debugger/dbexec.c @@ -600,8 +600,8 @@ AcpiDbExecute ( /* Dump a _PLD buffer if present */ if (ACPI_COMPARE_NAME ((ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, - AcpiGbl_DbMethodInfo.Method)->Name.Ascii), - METHOD_NAME__PLD)) + AcpiGbl_DbMethodInfo.Method)->Name.Ascii), + METHOD_NAME__PLD)) { AcpiDbDumpPldBuffer (ReturnObj.Pointer); } @@ -699,7 +699,8 @@ AcpiDbMethodThread ( if (ReturnObj.Length) { AcpiOsPrintf ("Evaluation of %s returned object %p Buflen %X\n", - Info->Pathname, ReturnObj.Pointer, (UINT32) ReturnObj.Length); + Info->Pathname, ReturnObj.Pointer, + (UINT32) ReturnObj.Length); AcpiDbDumpExternalObject (ReturnObj.Pointer, 1); } #endif @@ -766,7 +767,7 @@ AcpiDbCreateExecutionThreads ( /* Get the arguments */ NumThreads = strtoul (NumThreadsArg, NULL, 0); - NumLoops = strtoul (NumLoopsArg, NULL, 0); + NumLoops = strtoul (NumLoopsArg, NULL, 0); if (!NumThreads || !NumLoops) { @@ -882,7 +883,7 @@ AcpiDbCreateExecutionThreads ( for (i = 0; i < (NumThreads); i++) { - Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbMethodThread, + Status = AcpiOsExecute (OSL_DEBUGGER_EXEC_THREAD, AcpiDbMethodThread, &AcpiGbl_DbMethodInfo); if (ACPI_FAILURE (Status)) { diff --git a/src/acpica/source/components/debugger/dbfileio.c b/src/acpica/source/components/debugger/dbfileio.c index 4cdbc01..eaae9a0 100644 --- a/src/acpica/source/components/debugger/dbfileio.c +++ b/src/acpica/source/components/debugger/dbfileio.c @@ -118,7 +118,10 @@ #include "accommon.h" #include "acdebug.h" #include "actables.h" - +#include <stdio.h> +#ifdef ACPI_APPLICATION +#include "acapps.h" +#endif #define _COMPONENT ACPI_CA_DEBUGGER ACPI_MODULE_NAME ("dbfileio") @@ -193,134 +196,35 @@ AcpiDbOpenDebugFile ( #endif -#ifdef ACPI_APPLICATION -#include "acapps.h" - /******************************************************************************* * - * FUNCTION: AeLocalLoadTable + * FUNCTION: AcpiDbLoadTables * - * PARAMETERS: Table - pointer to a buffer containing the entire - * table to be loaded + * PARAMETERS: ListHead - List of ACPI tables to load * * RETURN: Status * - * DESCRIPTION: This function is called to load a table from the caller's - * buffer. The buffer must contain an entire ACPI Table including - * a valid header. The header fields will be verified, and if it - * is determined that the table is invalid, the call will fail. - * - ******************************************************************************/ - -static ACPI_STATUS -AeLocalLoadTable ( - ACPI_TABLE_HEADER *Table) -{ - ACPI_STATUS Status = AE_OK; - - - ACPI_FUNCTION_TRACE (AeLocalLoadTable); - -#if 0 -/* ACPI_TABLE_DESC TableInfo; */ - - if (!Table) - { - return_ACPI_STATUS (AE_BAD_PARAMETER); - } - - TableInfo.Pointer = Table; - Status = AcpiTbRecognizeTable (&TableInfo, ACPI_TABLE_ALL); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - /* Install the new table into the local data structures */ - - Status = AcpiTbInitTableDescriptor (&TableInfo); - if (ACPI_FAILURE (Status)) - { - if (Status == AE_ALREADY_EXISTS) - { - /* Table already exists, no error */ - - Status = AE_OK; - } - - /* Free table allocated by AcpiTbGetTable */ - - AcpiTbDeleteSingleTable (&TableInfo); - return_ACPI_STATUS (Status); - } - -#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY)) - - Status = AcpiNsLoadTable (TableInfo.InstalledDesc, AcpiGbl_RootNode); - if (ACPI_FAILURE (Status)) - { - /* Uninstall table and free the buffer */ - - AcpiTbDeleteTablesByType (ACPI_TABLE_ID_DSDT); - return_ACPI_STATUS (Status); - } -#endif -#endif - - return_ACPI_STATUS (Status); -} -#endif - - -/******************************************************************************* - * - * FUNCTION: AcpiDbGetTableFromFile - * - * PARAMETERS: Filename - File where table is located - * ReturnTable - Where a pointer to the table is returned - * - * RETURN: Status - * - * DESCRIPTION: Load an ACPI table from a file + * DESCRIPTION: Load ACPI tables from a previously constructed table list. * ******************************************************************************/ ACPI_STATUS -AcpiDbGetTableFromFile ( - char *Filename, - ACPI_TABLE_HEADER **ReturnTable, - BOOLEAN MustBeAmlFile) +AcpiDbLoadTables ( + ACPI_NEW_TABLE_DESC *ListHead) { -#ifdef ACPI_APPLICATION ACPI_STATUS Status; + ACPI_NEW_TABLE_DESC *TableListHead; ACPI_TABLE_HEADER *Table; - BOOLEAN IsAmlTable = TRUE; - Status = AcpiUtReadTableFromFile (Filename, &Table); - if (ACPI_FAILURE (Status)) - { - return (Status); - } - - if (MustBeAmlFile) - { - IsAmlTable = AcpiUtIsAmlTable (Table); - if (!IsAmlTable) - { - ACPI_EXCEPTION ((AE_INFO, AE_OK, - "Input for -e is not an AML table: " - "\"%4.4s\" (must be DSDT/SSDT)", - Table->Signature)); - return (AE_TYPE); - } - } + /* Load all ACPI tables in the list */ - if (IsAmlTable) + TableListHead = ListHead; + while (TableListHead) { - /* Attempt to recognize and install the table */ + Table = TableListHead->Table; - Status = AeLocalLoadTable (Table); + Status = AcpiLoadTable (Table); if (ACPI_FAILURE (Status)) { if (Status == AE_ALREADY_EXISTS) @@ -337,20 +241,12 @@ AcpiDbGetTableFromFile ( return (Status); } - AcpiTbPrintTableHeader (0, Table); - fprintf (stderr, "Acpi table [%4.4s] successfully installed and loaded\n", Table->Signature); - } - AcpiGbl_AcpiHardwarePresent = FALSE; - if (ReturnTable) - { - *ReturnTable = Table; + TableListHead = TableListHead->Next; } - -#endif /* ACPI_APPLICATION */ return (AE_OK); } diff --git a/src/acpica/source/components/debugger/dbinput.c b/src/acpica/source/components/debugger/dbinput.c index b3ee71f..a051e78 100644 --- a/src/acpica/source/components/debugger/dbinput.c +++ b/src/acpica/source/components/debugger/dbinput.c @@ -117,6 +117,9 @@ #include "accommon.h" #include "acdebug.h" +#ifdef ACPI_APPLICATION +#include "acapps.h" +#endif #define _COMPONENT ACPI_CA_DEBUGGER ACPI_MODULE_NAME ("dbinput") @@ -751,10 +754,7 @@ AcpiDbGetLine ( /* Uppercase the actual command */ - if (AcpiGbl_DbArgs[0]) - { - AcpiUtStrupr (AcpiGbl_DbArgs[0]); - } + AcpiUtStrupr (AcpiGbl_DbArgs[0]); Count = i; if (Count) @@ -834,7 +834,7 @@ AcpiDbCommandDispatch ( /* If AcpiTerminate has been called, terminate this thread */ - if (AcpiGbl_DbTerminateThreads) + if (AcpiGbl_DbTerminateLoop) { return (AE_CTRL_TERMINATE); } @@ -1014,8 +1014,8 @@ AcpiDbCommandDispatch ( else if (ParamCount == 2) { Temp = AcpiGbl_DbConsoleDebugLevel; - AcpiGbl_DbConsoleDebugLevel = strtoul (AcpiGbl_DbArgs[1], - NULL, 16); + AcpiGbl_DbConsoleDebugLevel = + strtoul (AcpiGbl_DbArgs[1], NULL, 16); AcpiOsPrintf ( "Debug Level for console output was %8.8lX, now %8.8lX\n", Temp, AcpiGbl_DbConsoleDebugLevel); @@ -1191,8 +1191,16 @@ AcpiDbCommandDispatch ( break; case CMD_LOAD: + { + ACPI_NEW_TABLE_DESC *ListHead = NULL; - Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL, FALSE); + Status = AcpiAcGetAllTablesFromFile (AcpiGbl_DbArgs[1], + ACPI_GET_ALL_TABLES, &ListHead); + if (ACPI_SUCCESS (Status)) + { + AcpiDbLoadTables (ListHead); + } + } break; case CMD_OPEN: @@ -1212,6 +1220,7 @@ AcpiDbCommandDispatch ( * re-creating the semaphores! */ + AcpiGbl_DbTerminateLoop = TRUE; /* AcpiInitialize (NULL); */ break; @@ -1256,7 +1265,7 @@ AcpiDbCommandDispatch ( #ifdef ACPI_APPLICATION AcpiDbCloseDebugFile (); #endif - AcpiGbl_DbTerminateThreads = TRUE; + AcpiGbl_DbTerminateLoop = TRUE; return (AE_CTRL_TERMINATE); case CMD_NOT_FOUND: @@ -1296,7 +1305,7 @@ AcpiDbExecuteThread ( ACPI_STATUS MStatus; - while (Status != AE_CTRL_TERMINATE) + while (Status != AE_CTRL_TERMINATE && !AcpiGbl_DbTerminateLoop) { AcpiGbl_MethodExecuting = FALSE; AcpiGbl_StepToNextCall = FALSE; @@ -1312,6 +1321,7 @@ AcpiDbExecuteThread ( AcpiOsReleaseMutex (AcpiGbl_DbCommandComplete); } + AcpiGbl_DbThreadsTerminated = TRUE; } @@ -1366,7 +1376,7 @@ AcpiDbUserCommands ( /* TBD: [Restructure] Need a separate command line buffer for step mode */ - while (!AcpiGbl_DbTerminateThreads) + while (!AcpiGbl_DbTerminateLoop) { /* Force output to console until a command is entered */ @@ -1402,10 +1412,6 @@ AcpiDbUserCommands ( * and wait for the command to complete. */ AcpiOsReleaseMutex (AcpiGbl_DbCommandReady); - if (ACPI_FAILURE (Status)) - { - return (Status); - } Status = AcpiOsAcquireMutex (AcpiGbl_DbCommandComplete, ACPI_WAIT_FOREVER); @@ -1422,14 +1428,5 @@ AcpiDbUserCommands ( } } - /* Shut down the debugger */ - - AcpiTerminateDebugger (); - - /* - * Only this thread (the original thread) should actually terminate the - * subsystem, because all the semaphores are deleted during termination - */ - Status = AcpiTerminate (); return (Status); } diff --git a/src/acpica/source/components/debugger/dbmethod.c b/src/acpica/source/components/debugger/dbmethod.c index 92f53a2..455656e 100644 --- a/src/acpica/source/components/debugger/dbmethod.c +++ b/src/acpica/source/components/debugger/dbmethod.c @@ -161,7 +161,7 @@ AcpiDbSetMethodBreakpoint ( Address = strtoul (Location, NULL, 16); AmlOffset = (UINT32) ACPI_PTR_DIFF (Op->Common.Aml, - WalkState->ParserState.AmlStart); + WalkState->ParserState.AmlStart); if (Address <= AmlOffset) { AcpiOsPrintf ("Breakpoint %X is beyond current address %X\n", diff --git a/src/acpica/source/components/debugger/dbnames.c b/src/acpica/source/components/debugger/dbnames.c index 0af1b1f..88e8e77 100644 --- a/src/acpica/source/components/debugger/dbnames.c +++ b/src/acpica/source/components/debugger/dbnames.c @@ -270,7 +270,7 @@ AcpiDbSetScope ( /* Build the final pathname */ if (AcpiUtSafeStrcat (AcpiGbl_DbScopeBuf, sizeof (AcpiGbl_DbScopeBuf), - Name)) + Name)) { Status = AE_BUFFER_OVERFLOW; goto ErrorExit; @@ -571,7 +571,7 @@ AcpiDbWalkForPredefinedNames ( return (AE_OK); } - Pathname = AcpiNsGetExternalPathname (Node); + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); if (!Pathname) { return (AE_OK); @@ -632,7 +632,8 @@ AcpiDbCheckPredefinedNames ( /* Search all nodes in namespace */ (void) AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, AcpiDbWalkForPredefinedNames, NULL, (void *) &Count, NULL); + ACPI_UINT32_MAX, AcpiDbWalkForPredefinedNames, + NULL, (void *) &Count, NULL); AcpiOsPrintf ("Found %u predefined names in the namespace\n", Count); } @@ -1034,7 +1035,7 @@ AcpiDbBusWalk ( /* Exit if there is no _PRT under this device */ Status = AcpiGetHandle (Node, METHOD_NAME__PRT, - ACPI_CAST_PTR (ACPI_HANDLE, &TempNode)); + ACPI_CAST_PTR (ACPI_HANDLE, &TempNode)); if (ACPI_FAILURE (Status)) { return (AE_OK); diff --git a/src/acpica/source/components/debugger/dbobject.c b/src/acpica/source/components/debugger/dbobject.c index e52d1ca..32c71b1 100644 --- a/src/acpica/source/components/debugger/dbobject.c +++ b/src/acpica/source/components/debugger/dbobject.c @@ -567,7 +567,8 @@ AcpiDbDecodeLocals ( } else { - AcpiOsPrintf ("No Local Variables are initialized for method [%4.4s]\n", + AcpiOsPrintf ( + "No Local Variables are initialized for method [%4.4s]\n", AcpiUtGetNodeName (Node)); } } @@ -644,7 +645,8 @@ AcpiDbDecodeArguments ( } else { - AcpiOsPrintf ("No Arguments are initialized for method [%4.4s]\n", + AcpiOsPrintf ( + "No Arguments are initialized for method [%4.4s]\n", AcpiUtGetNodeName (Node)); } } diff --git a/src/acpica/source/components/debugger/dbstats.c b/src/acpica/source/components/debugger/dbstats.c index 1b757a4..d00e295 100644 --- a/src/acpica/source/components/debugger/dbstats.c +++ b/src/acpica/source/components/debugger/dbstats.c @@ -411,7 +411,7 @@ AcpiDbClassifyOneObject ( Op = AcpiPsGetDepthNext (Root, Op); SizeOfParseTree = (NumGrammarElements - NumMethodElements) * - (UINT32) sizeof (ACPI_PARSE_OBJECT); + (UINT32) sizeof (ACPI_PARSE_OBJECT); SizeOfMethodTrees = NumMethodElements * (UINT32) sizeof (ACPI_PARSE_OBJECT); SizeOfNodeEntries = NumNodes * (UINT32) sizeof (ACPI_NAMESPACE_NODE); SizeOfAcpiObjects = NumNodes * (UINT32) sizeof (ACPI_OPERAND_OBJECT); @@ -511,6 +511,7 @@ AcpiDbDisplayStatistics ( AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", AcpiUtGetTypeName (i), AcpiGbl_NodeTypeCount [i], AcpiGbl_ObjTypeCount [i]); } + AcpiOsPrintf ("%16.16s % 10ld% 10ld\n", "Misc/Unknown", AcpiGbl_NodeTypeCountMisc, AcpiGbl_ObjTypeCountMisc); diff --git a/src/acpica/source/components/debugger/dbtest.c b/src/acpica/source/components/debugger/dbtest.c index 679a9d6..2e3332e 100644 --- a/src/acpica/source/components/debugger/dbtest.c +++ b/src/acpica/source/components/debugger/dbtest.c @@ -1052,7 +1052,8 @@ AcpiDbEvaluateAllPredefinedNames ( ACPI_UINT32_MAX, AcpiDbEvaluateOnePredefinedName, NULL, (void *) &Info, NULL); - AcpiOsPrintf ("Evaluated %u predefined names in the namespace\n", Info.Count); + AcpiOsPrintf ( + "Evaluated %u predefined names in the namespace\n", Info.Count); } @@ -1105,7 +1106,7 @@ AcpiDbEvaluateOnePredefinedName ( return (AE_OK); } - Pathname = AcpiNsGetExternalPathname (Node); + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); if (!Pathname) { return (AE_OK); diff --git a/src/acpica/source/components/debugger/dbutils.c b/src/acpica/source/components/debugger/dbutils.c index a52a201..6cdb683 100644 --- a/src/acpica/source/components/debugger/dbutils.c +++ b/src/acpica/source/components/debugger/dbutils.c @@ -271,6 +271,7 @@ AcpiDbDumpExternalObject ( { AcpiOsPrintf ("\n"); } + AcpiUtDebugDumpBuffer ( ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), ObjDesc->Buffer.Length, DB_BYTE_DISPLAY, _COMPONENT); diff --git a/src/acpica/source/components/debugger/dbxface.c b/src/acpica/source/components/debugger/dbxface.c index 0004665..ad99ad1 100644 --- a/src/acpica/source/components/debugger/dbxface.c +++ b/src/acpica/source/components/debugger/dbxface.c @@ -224,6 +224,40 @@ AcpiDbStartCommand ( /******************************************************************************* * + * FUNCTION: AcpiDbSignalBreakPoint + * + * PARAMETERS: WalkState - Current walk + * + * RETURN: Status + * + * DESCRIPTION: Called for AML_BREAK_POINT_OP + * + ******************************************************************************/ + +void +AcpiDbSignalBreakPoint ( + ACPI_WALK_STATE *WalkState) +{ + +#ifndef ACPI_APPLICATION + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId ()) + { + return; + } +#endif + + /* + * Set the single-step flag. This will cause the debugger (if present) + * to break to the console within the AML debugger at the start of the + * next AML instruction. + */ + AcpiGbl_CmSingleStep = TRUE; + AcpiOsPrintf ("**break** Executed AML BreakPoint opcode\n"); +} + + +/******************************************************************************* + * * FUNCTION: AcpiDbSingleStep * * PARAMETERS: WalkState - Current walk @@ -253,6 +287,13 @@ AcpiDbSingleStep ( ACPI_FUNCTION_ENTRY (); +#ifndef ACPI_APPLICATION + if (AcpiGbl_DbThreadId != AcpiOsGetThreadId ()) + { + return (AE_OK); + } +#endif + /* Check the abort flag */ if (AcpiGbl_AbortMethod) @@ -511,6 +552,10 @@ AcpiInitializeDebugger ( AcpiGbl_DbScopeBuf [1] = 0; AcpiGbl_DbScopeNode = AcpiGbl_RootNode; + /* Initialize user commands loop */ + + AcpiGbl_DbTerminateLoop = FALSE; + /* * If configured for multi-thread support, the debug executor runs in * a separate thread so that the front end can be in another address @@ -538,15 +583,21 @@ AcpiInitializeDebugger ( /* Create the debug execution thread to execute commands */ - Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, + AcpiGbl_DbThreadsTerminated = FALSE; + Status = AcpiOsExecute (OSL_DEBUGGER_MAIN_THREAD, AcpiDbExecuteThread, NULL); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, "Could not start debugger thread")); + AcpiGbl_DbThreadsTerminated = TRUE; return_ACPI_STATUS (Status); } } + else + { + AcpiGbl_DbThreadId = AcpiOsGetThreadId (); + } return_ACPI_STATUS (AE_OK); } @@ -571,6 +622,22 @@ AcpiTerminateDebugger ( void) { + /* Terminate the AML Debugger */ + + AcpiGbl_DbTerminateLoop = TRUE; + + if (AcpiGbl_DebuggerConfiguration & DEBUGGER_MULTI_THREADED) + { + AcpiOsReleaseMutex (AcpiGbl_DbCommandReady); + + /* Wait the AML Debugger threads */ + + while (!AcpiGbl_DbThreadsTerminated) + { + AcpiOsSleep (100); + } + } + if (AcpiGbl_DbBuffer) { AcpiOsFree (AcpiGbl_DbBuffer); @@ -583,3 +650,25 @@ AcpiTerminateDebugger ( } ACPI_EXPORT_SYMBOL (AcpiTerminateDebugger) + + +/******************************************************************************* + * + * FUNCTION: AcpiSetDebuggerThreadId + * + * PARAMETERS: ThreadId - Debugger thread ID + * + * RETURN: None + * + * DESCRIPTION: Set debugger thread ID + * + ******************************************************************************/ + +void +AcpiSetDebuggerThreadId ( + ACPI_THREAD_ID ThreadId) +{ + AcpiGbl_DbThreadId = ThreadId; +} + +ACPI_EXPORT_SYMBOL (AcpiSetDebuggerThreadId) diff --git a/src/acpica/source/components/disassembler/dmbuffer.c b/src/acpica/source/components/disassembler/dmbuffer.c index d6985ef..4ad8be9 100644 --- a/src/acpica/source/components/disassembler/dmbuffer.c +++ b/src/acpica/source/components/disassembler/dmbuffer.c @@ -326,7 +326,8 @@ AcpiDmByteList ( { case ACPI_DASM_RESOURCE: - AcpiDmResourceTemplate (Info, Op->Common.Parent, ByteData, ByteCount); + AcpiDmResourceTemplate ( + Info, Op->Common.Parent, ByteData, ByteCount); break; case ACPI_DASM_STRING: @@ -823,13 +824,17 @@ AcpiDmPldBuffer ( AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_Lid", PldInfo->Lid); AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_Panel", AcpiDmFindNameByIndex(PldInfo->Panel, DmPanelList)); + AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_VerticalPosition", AcpiDmFindNameByIndex(PldInfo->VerticalPosition, DmVerticalPositionList)); + AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_HorizontalPosition", AcpiDmFindNameByIndex(PldInfo->HorizontalPosition, DmHorizontalPositionList)); + AcpiOsPrintf (ACPI_PLD_OUTPUTSTR, "PLD_Shape", AcpiDmFindNameByIndex(PldInfo->Shape, DmShapeList)); AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_GroupOrientation", PldInfo->GroupOrientation); + AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_GroupToken", PldInfo->GroupToken); AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_GroupPosition", PldInfo->GroupPosition); AcpiOsPrintf (ACPI_PLD_OUTPUT08, "PLD_Bay", PldInfo->Bay); diff --git a/src/acpica/source/components/disassembler/dmcstyle.c b/src/acpica/source/components/disassembler/dmcstyle.c index 0dbbb60..0e23133 100644 --- a/src/acpica/source/components/disassembler/dmcstyle.c +++ b/src/acpica/source/components/disassembler/dmcstyle.c @@ -757,6 +757,7 @@ AcpiDmGetCompoundSymbol ( default: /* No operator string for all other opcodes */ + return (NULL); } diff --git a/src/acpica/source/components/disassembler/dmdeferred.c b/src/acpica/source/components/disassembler/dmdeferred.c index 6599c04..b6db169 100644 --- a/src/acpica/source/components/disassembler/dmdeferred.c +++ b/src/acpica/source/components/disassembler/dmdeferred.c @@ -177,7 +177,8 @@ AcpiDmParseDeferredOps ( case AML_PACKAGE_OP: case AML_VAR_PACKAGE_OP: - Status = AcpiDmDeferredParse (Op, Op->Named.Data, Op->Named.Length); + Status = AcpiDmDeferredParse ( + Op, Op->Named.Data, Op->Named.Length); if (ACPI_FAILURE (Status)) { return (Status); diff --git a/src/acpica/source/components/disassembler/dmnames.c b/src/acpica/source/components/disassembler/dmnames.c index 673d726..9409e21 100644 --- a/src/acpica/source/components/disassembler/dmnames.c +++ b/src/acpica/source/components/disassembler/dmnames.c @@ -227,15 +227,15 @@ AcpiPsDisplayObjectPathname ( /* Node not defined in this scope, look it up */ Status = AcpiNsLookup (WalkState->ScopeInfo, Op->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, - WalkState, &(Node)); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, + WalkState, &(Node)); if (ACPI_FAILURE (Status)) { /* - * We can't get the pathname since the object - * is not in the namespace. This can happen during single - * stepping where a dynamic named object is *about* to be created. + * We can't get the pathname since the object is not in the + * namespace. This can happen during single stepping + * where a dynamic named object is *about* to be created. */ AcpiOsPrintf (" [Path not found]"); goto Exit; @@ -341,6 +341,7 @@ AcpiDmNamestring ( AcpiOsPrintf ("."); } + Name += ACPI_NAME_SIZE; } } @@ -404,7 +405,6 @@ AcpiDmDisplayPath ( } Prev = NULL; /* Start with Root Node */ - while (Prev != Op) { /* Search upwards in the tree to find scope with "prev" as its parent */ @@ -462,6 +462,7 @@ AcpiDmDisplayPath ( DoDot = TRUE; } } + Prev = Search; } } diff --git a/src/acpica/source/components/disassembler/dmopcode.c b/src/acpica/source/components/disassembler/dmopcode.c index 866da38..68dda89 100644 --- a/src/acpica/source/components/disassembler/dmopcode.c +++ b/src/acpica/source/components/disassembler/dmopcode.c @@ -892,7 +892,9 @@ AcpiDmDisassembleOneOp ( } else if (Status == AE_AML_NO_RESOURCE_END_TAG) { - AcpiOsPrintf ("/**** Is ResourceTemplate, but EndTag not at buffer end ****/ "); + AcpiOsPrintf ( + "/**** Is ResourceTemplate, " + "but EndTag not at buffer end ****/ "); } } @@ -967,7 +969,8 @@ AcpiDmDisassembleOneOp ( if (Op->Common.AmlOpcode == AML_INT_EXTACCESSFIELD_OP) { - AcpiOsPrintf (" (0x%2.2X)", (unsigned) ((Op->Common.Value.Integer >> 16) & 0xFF)); + AcpiOsPrintf (" (0x%2.2X)", (unsigned) + ((Op->Common.Value.Integer >> 16) & 0xFF)); } AcpiOsPrintf (")"); diff --git a/src/acpica/source/components/disassembler/dmresrc.c b/src/acpica/source/components/disassembler/dmresrc.c index 5c9e7b9..923d5da 100644 --- a/src/acpica/source/components/disassembler/dmresrc.c +++ b/src/acpica/source/components/disassembler/dmresrc.c @@ -284,6 +284,7 @@ AcpiDmBitList ( { AcpiOsPrintf (","); } + Previous = TRUE; AcpiOsPrintf ("%u", i); } @@ -357,7 +358,8 @@ AcpiDmResourceTemplate ( Status = AcpiUtValidateResource (NULL, Aml, &ResourceIndex); if (ACPI_FAILURE (Status)) { - AcpiOsPrintf ("/*** Could not validate Resource, type (%X) %s***/\n", + AcpiOsPrintf ( + "/*** Could not validate Resource, type (%X) %s***/\n", ResourceType, AcpiFormatException (Status)); return; } @@ -407,7 +409,8 @@ AcpiDmResourceTemplate ( AcpiDmIndent (Level); AcpiOsPrintf ( - "/*** Disassembler: inserted missing EndDependentFn () ***/\n"); + "/*** Disassembler: inserted " + "missing EndDependentFn () ***/\n"); } return; diff --git a/src/acpica/source/components/disassembler/dmresrcl.c b/src/acpica/source/components/disassembler/dmresrcl.c index 155f01c..ab68cdb 100644 --- a/src/acpica/source/components/disassembler/dmresrcl.c +++ b/src/acpica/source/components/disassembler/dmresrcl.c @@ -379,7 +379,8 @@ AcpiDmAddressCommon ( if ((ResourceType > 2) && (ResourceType < 0xC0)) { - AcpiOsPrintf ("/**** Invalid Resource Type: 0x%X ****/", ResourceType); + AcpiOsPrintf ( + "/**** Invalid Resource Type: 0x%X ****/", ResourceType); return; } @@ -399,7 +400,8 @@ AcpiDmAddressCommon ( /* This is either a Memory, IO, or BusNumber descriptor (0,1,2) */ - AcpiOsPrintf ("%s (", AcpiGbl_WordDecode [ACPI_GET_2BIT_FLAG (ResourceType)]); + AcpiOsPrintf ("%s (", + AcpiGbl_WordDecode [ACPI_GET_2BIT_FLAG (ResourceType)]); /* Decode the general and type-specific flags */ @@ -412,7 +414,8 @@ AcpiDmAddressCommon ( AcpiDmIoFlags (Flags); if (ResourceType == ACPI_IO_RANGE) { - AcpiOsPrintf (" %s,", AcpiGbl_RngDecode [ACPI_GET_2BIT_FLAG (SpecificFlags)]); + AcpiOsPrintf (" %s,", + AcpiGbl_RngDecode [ACPI_GET_2BIT_FLAG (SpecificFlags)]); } } } @@ -807,7 +810,8 @@ AcpiDmExtendedDescriptor ( /* Dump resource name and flags */ - AcpiDmAddressCommon (Resource, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64, Level); + AcpiDmAddressCommon ( + Resource, ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64, Level); /* Dump the 5 contiguous QWORD values */ @@ -943,10 +947,12 @@ AcpiDmFixedMemory32Descriptor ( AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]); AcpiDmIndent (Level + 1); - AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, "Address Base"); + AcpiDmDumpInteger32 (Resource->FixedMemory32.Address, + "Address Base"); AcpiDmIndent (Level + 1); - AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, "Address Length"); + AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength, + "Address Length"); /* Insert a descriptor name */ diff --git a/src/acpica/source/components/disassembler/dmresrcl2.c b/src/acpica/source/components/disassembler/dmresrcl2.c index 8006458..8a972ff 100644 --- a/src/acpica/source/components/disassembler/dmresrcl2.c +++ b/src/acpica/source/components/disassembler/dmresrcl2.c @@ -224,6 +224,7 @@ AcpiDmDumpRawDataBuffer ( AcpiOsPrintf (", "); } + AcpiOsPrintf ("\n"); AcpiDmIndent (Level + 2); @@ -269,7 +270,8 @@ AcpiDmGpioCommon ( AcpiDmIndent (Level + 1); if (Resource->Gpio.ResSourceOffset) { - DeviceName = ACPI_ADD_PTR (char, Resource, Resource->Gpio.ResSourceOffset), + DeviceName = ACPI_ADD_PTR (char, + Resource, Resource->Gpio.ResSourceOffset), AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX); } @@ -313,13 +315,15 @@ AcpiDmGpioCommon ( for (i = 0; i < PinCount; i++) { AcpiDmIndent (Level + 2); - AcpiOsPrintf ("0x%4.4X%s\n", PinList[i], ((i + 1) < PinCount) ? "," : ""); + AcpiOsPrintf ("0x%4.4X%s\n", PinList[i], + ((i + 1) < PinCount) ? "," : ""); } AcpiDmIndent (Level + 1); AcpiOsPrintf ("}\n"); - MpSaveGpioInfo (Info->MappingOp, Resource, PinCount, PinList, DeviceName); + MpSaveGpioInfo (Info->MappingOp, Resource, + PinCount, PinList, DeviceName); } diff --git a/src/acpica/source/components/disassembler/dmresrcs.c b/src/acpica/source/components/disassembler/dmresrcs.c index 99d0dfc..670ee48 100644 --- a/src/acpica/source/components/disassembler/dmresrcs.c +++ b/src/acpica/source/components/disassembler/dmresrcs.c @@ -243,7 +243,8 @@ AcpiDmFixedDmaDescriptor ( } else { - AcpiOsPrintf ("%X /* INVALID DMA WIDTH */, ", Resource->FixedDma.Width); + AcpiOsPrintf ("%X /* INVALID DMA WIDTH */, ", + Resource->FixedDma.Width); } /* Insert a descriptor name */ diff --git a/src/acpica/source/components/disassembler/dmwalk.c b/src/acpica/source/components/disassembler/dmwalk.c index a2a5c51..ccc1200 100644 --- a/src/acpica/source/components/disassembler/dmwalk.c +++ b/src/acpica/source/components/disassembler/dmwalk.c @@ -536,7 +536,7 @@ AcpiDmDescendingOp ( if (Info->WalkState) { AmlOffset = (UINT32) ACPI_PTR_DIFF (Op->Common.Aml, - Info->WalkState->ParserState.AmlStart); + Info->WalkState->ParserState.AmlStart); if (AcpiGbl_DmOpt_Verbose) { AcpiOsPrintf (DB_FULL_OP_INFO, @@ -559,8 +559,8 @@ AcpiDmDescendingOp ( } } else if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) && - (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && - (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) + (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && + (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) { /* * This is a first-level element of a term list, @@ -978,8 +978,8 @@ AcpiDmAscendingOp ( if (!AcpiDmCommaIfListMember (Op)) { if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) && - (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && - (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) + (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && + (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) { /* * This is a first-level element of a term list @@ -1040,8 +1040,8 @@ AcpiDmAscendingOp ( if (!AcpiDmCommaIfListMember (Op)) { if ((AcpiDmBlockType (Op->Common.Parent) & BLOCK_BRACE) && - (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && - (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) + (!(Op->Common.DisasmFlags & ACPI_PARSEOP_PARAMLIST)) && + (Op->Common.AmlOpcode != AML_INT_BYTELIST_OP)) { /* * This is a first-level element of a term list diff --git a/src/acpica/source/components/dispatcher/dsargs.c b/src/acpica/source/components/dispatcher/dsargs.c index 344e55e..6343d32 100644 --- a/src/acpica/source/components/dispatcher/dsargs.c +++ b/src/acpica/source/components/dispatcher/dsargs.c @@ -186,7 +186,7 @@ AcpiDsExecuteArguments ( } Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart, - AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); + AmlLength, NULL, ACPI_IMODE_LOAD_PASS1); if (ACPI_FAILURE (Status)) { AcpiDsDeleteWalkState (WalkState); @@ -233,7 +233,7 @@ AcpiDsExecuteArguments ( /* Execute the opcode and arguments */ Status = AcpiDsInitAmlWalk (WalkState, Op, NULL, AmlStart, - AmlLength, NULL, ACPI_IMODE_EXECUTE); + AmlLength, NULL, ACPI_IMODE_EXECUTE); if (ACPI_FAILURE (Status)) { AcpiDsDeleteWalkState (WalkState); @@ -286,8 +286,8 @@ AcpiDsGetBufferFieldArguments ( ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc); Node = ObjDesc->BufferField.Node; - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_BUFFER_FIELD, - Node, NULL)); + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname ( + ACPI_TYPE_BUFFER_FIELD, Node, NULL)); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n", AcpiUtGetNodeName (Node))); @@ -295,7 +295,7 @@ AcpiDsGetBufferFieldArguments ( /* Execute the AML code for the TermArg arguments */ Status = AcpiDsExecuteArguments (Node, Node->Parent, - ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); + ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); return_ACPI_STATUS (Status); } @@ -335,8 +335,8 @@ AcpiDsGetBankFieldArguments ( ExtraDesc = AcpiNsGetSecondaryObject (ObjDesc); Node = ObjDesc->BankField.Node; - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_LOCAL_BANK_FIELD, - Node, NULL)); + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname ( + ACPI_TYPE_LOCAL_BANK_FIELD, Node, NULL)); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] BankField Arg Init\n", AcpiUtGetNodeName (Node))); @@ -344,7 +344,7 @@ AcpiDsGetBankFieldArguments ( /* Execute the AML code for the TermArg arguments */ Status = AcpiDsExecuteArguments (Node, Node->Parent, - ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); + ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); return_ACPI_STATUS (Status); } @@ -384,7 +384,8 @@ AcpiDsGetBufferArguments ( if (!Node) { ACPI_ERROR ((AE_INFO, - "No pointer back to namespace node in buffer object %p", ObjDesc)); + "No pointer back to namespace node in buffer object %p", + ObjDesc)); return_ACPI_STATUS (AE_AML_INTERNAL); } @@ -393,7 +394,7 @@ AcpiDsGetBufferArguments ( /* Execute the AML code for the TermArg arguments */ Status = AcpiDsExecuteArguments (Node, Node, - ObjDesc->Buffer.AmlLength, ObjDesc->Buffer.AmlStart); + ObjDesc->Buffer.AmlLength, ObjDesc->Buffer.AmlStart); return_ACPI_STATUS (Status); } @@ -442,7 +443,7 @@ AcpiDsGetPackageArguments ( /* Execute the AML code for the TermArg arguments */ Status = AcpiDsExecuteArguments (Node, Node, - ObjDesc->Package.AmlLength, ObjDesc->Package.AmlStart); + ObjDesc->Package.AmlLength, ObjDesc->Package.AmlStart); return_ACPI_STATUS (Status); } @@ -487,22 +488,23 @@ AcpiDsGetRegionArguments ( Node = ObjDesc->Region.Node; - ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (ACPI_TYPE_REGION, Node, NULL)); + ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname ( + ACPI_TYPE_REGION, Node, NULL)); - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "[%4.4s] OpRegion Arg Init at AML %p\n", AcpiUtGetNodeName (Node), ExtraDesc->Extra.AmlStart)); /* Execute the argument AML */ Status = AcpiDsExecuteArguments (Node, ExtraDesc->Extra.ScopeNode, - ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); + ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); } Status = AcpiUtAddAddressRange (ObjDesc->Region.SpaceId, - ObjDesc->Region.Address, ObjDesc->Region.Length, - Node); + ObjDesc->Region.Address, ObjDesc->Region.Length, Node); return_ACPI_STATUS (Status); } diff --git a/src/acpica/source/components/dispatcher/dscontrol.c b/src/acpica/source/components/dispatcher/dscontrol.c index a069ed5..270cf0e 100644 --- a/src/acpica/source/components/dispatcher/dscontrol.c +++ b/src/acpica/source/components/dispatcher/dscontrol.c @@ -119,6 +119,7 @@ #include "amlcode.h" #include "acdispat.h" #include "acinterp.h" +#include "acdebug.h" #define _COMPONENT ACPI_DISPATCHER ACPI_MODULE_NAME ("dscontrol") @@ -191,9 +192,12 @@ AcpiDsExecBeginControlOp ( * Save a pointer to the predicate for multiple executions * of a loop */ - ControlState->Control.AmlPredicateStart = WalkState->ParserState.Aml - 1; - ControlState->Control.PackageEnd = WalkState->ParserState.PkgEnd; - ControlState->Control.Opcode = Op->Common.AmlOpcode; + ControlState->Control.AmlPredicateStart = + WalkState->ParserState.Aml - 1; + ControlState->Control.PackageEnd = + WalkState->ParserState.PkgEnd; + ControlState->Control.Opcode = + Op->Common.AmlOpcode; /* Push the control state on this walk's control stack */ @@ -304,7 +308,8 @@ AcpiDsExecEndControlOp ( * another time */ Status = AE_CTRL_PENDING; - WalkState->AmlLastWhile = ControlState->Control.AmlPredicateStart; + WalkState->AmlLastWhile = + ControlState->Control.AmlPredicateStart; break; } @@ -348,7 +353,8 @@ AcpiDsExecEndControlOp ( * an arg or local), resolve it now because it may * cease to exist at the end of the method. */ - Status = AcpiExResolveToValue (&WalkState->Operands [0], WalkState); + Status = AcpiExResolveToValue ( + &WalkState->Operands [0], WalkState); if (ACPI_FAILURE (Status)) { return (Status); @@ -377,11 +383,15 @@ AcpiDsExecEndControlOp ( * Allow references created by the Index operator to return * unchanged. */ - if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == ACPI_DESC_TYPE_OPERAND) && - ((WalkState->Results->Results.ObjDesc [0])->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && - ((WalkState->Results->Results.ObjDesc [0])->Reference.Class != ACPI_REFCLASS_INDEX)) + if ((ACPI_GET_DESCRIPTOR_TYPE (WalkState->Results->Results.ObjDesc[0]) == + ACPI_DESC_TYPE_OPERAND) && + ((WalkState->Results->Results.ObjDesc [0])->Common.Type == + ACPI_TYPE_LOCAL_REFERENCE) && + ((WalkState->Results->Results.ObjDesc [0])->Reference.Class != + ACPI_REFCLASS_INDEX)) { - Status = AcpiExResolveToValue (&WalkState->Results->Results.ObjDesc [0], WalkState); + Status = AcpiExResolveToValue ( + &WalkState->Results->Results.ObjDesc [0], WalkState); if (ACPI_FAILURE (Status)) { return (Status); @@ -399,9 +409,9 @@ AcpiDsExecEndControlOp ( AcpiUtRemoveReference (WalkState->Operands [0]); } - WalkState->Operands [0] = NULL; - WalkState->NumOperands = 0; - WalkState->ReturnDesc = NULL; + WalkState->Operands[0] = NULL; + WalkState->NumOperands = 0; + WalkState->ReturnDesc = NULL; } @@ -422,20 +432,12 @@ AcpiDsExecEndControlOp ( case AML_BREAK_POINT_OP: - /* - * Set the single-step flag. This will cause the debugger (if present) - * to break to the console within the AML debugger at the start of the - * next AML instruction. - */ - ACPI_DEBUGGER_EXEC ( - AcpiGbl_CmSingleStep = TRUE); - ACPI_DEBUGGER_EXEC ( - AcpiOsPrintf ("**break** Executed AML BreakPoint opcode\n")); + AcpiDbSignalBreakPoint (WalkState); /* Call to the OSL in case OS wants a piece of the action */ Status = AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT, - "Executed AML Breakpoint opcode"); + "Executed AML Breakpoint opcode"); break; case AML_BREAK_OP: @@ -459,7 +461,8 @@ AcpiDsExecEndControlOp ( /* Was: WalkState->AmlLastWhile = WalkState->ControlState->Control.AmlPredicateStart; */ - WalkState->AmlLastWhile = WalkState->ControlState->Control.PackageEnd; + WalkState->AmlLastWhile = + WalkState->ControlState->Control.PackageEnd; /* Return status depending on opcode */ diff --git a/src/acpica/source/components/dispatcher/dsdebug.c b/src/acpica/source/components/dispatcher/dsdebug.c index 80b3e0c..02fdebc 100644 --- a/src/acpica/source/components/dispatcher/dsdebug.c +++ b/src/acpica/source/components/dispatcher/dsdebug.c @@ -247,6 +247,7 @@ AcpiDsDumpMethodStack ( ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "\n**** Exception %s during execution of method ", AcpiFormatException (Status))); + AcpiDsPrintNodePathname (WalkState->MethodNode, NULL); /* Display stack of executing methods */ @@ -263,8 +264,8 @@ AcpiDsDumpMethodStack ( if (MethodDesc) { AcpiExStopTraceMethod ( - (ACPI_NAMESPACE_NODE *) MethodDesc->Method.Node, - MethodDesc, WalkState); + (ACPI_NAMESPACE_NODE *) MethodDesc->Method.Node, + MethodDesc, WalkState); } ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, @@ -292,8 +293,8 @@ AcpiDsDumpMethodStack ( { /* * This method has called another method - * NOTE: the method call parse subtree is already deleted at this - * point, so we cannot disassemble the method invocation. + * NOTE: the method call parse subtree is already deleted at + * this point, so we cannot disassemble the method invocation. */ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_DISPATCH, "Call to method ")); AcpiDsPrintNodePathname (PreviousMethod, NULL); diff --git a/src/acpica/source/components/dispatcher/dsfield.c b/src/acpica/source/components/dispatcher/dsfield.c index cf8c189..b2d5cfd 100644 --- a/src/acpica/source/components/dispatcher/dsfield.c +++ b/src/acpica/source/components/dispatcher/dsfield.c @@ -187,6 +187,7 @@ AcpiDsCreateExternalRegion ( * insert the name into the namespace. */ AcpiDmAddOpToExternalList (Op, Path, ACPI_TYPE_REGION, 0, 0); + Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_REGION, ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT, WalkState, Node); if (ACPI_FAILURE (Status)) @@ -282,7 +283,7 @@ AcpiDsCreateBufferField ( /* Creating new namespace node, should not already exist */ Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | - ACPI_NS_ERROR_IF_FOUND; + ACPI_NS_ERROR_IF_FOUND; /* * Mark node temporary if we are executing a normal control @@ -296,9 +297,9 @@ AcpiDsCreateBufferField ( /* Enter the NameString into the namespace */ - Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS1, - Flags, WalkState, &Node); + Status = AcpiNsLookup (WalkState->ScopeInfo, + Arg->Common.Value.String, ACPI_TYPE_ANY, + ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); @@ -339,13 +340,13 @@ AcpiDsCreateBufferField ( } /* - * Remember location in AML stream of the field unit opcode and operands -- - * since the buffer and index operands must be evaluated. + * Remember location in AML stream of the field unit opcode and operands + * -- since the buffer and index operands must be evaluated. */ - SecondDesc = ObjDesc->Common.NextObject; - SecondDesc->Extra.AmlStart = Op->Named.Data; + SecondDesc = ObjDesc->Common.NextObject; + SecondDesc->Extra.AmlStart = Op->Named.Data; SecondDesc->Extra.AmlLength = Op->Named.Length; - ObjDesc->BufferField.Node = Node; + ObjDesc->BufferField.Node = Node; /* Attach constructed field descriptors to parent node */ @@ -413,8 +414,8 @@ AcpiDsGetFieldNames ( { case AML_INT_RESERVEDFIELD_OP: - Position = (UINT64) Info->FieldBitPosition - + (UINT64) Arg->Common.Value.Size; + Position = (UINT64) Info->FieldBitPosition + + (UINT64) Arg->Common.Value.Size; if (Position > ACPI_UINT32_MAX) { @@ -447,11 +448,13 @@ AcpiDsGetFieldNames ( /* AccessAttribute (AttribQuick, AttribByte, etc.) */ - Info->Attribute = (UINT8) ((Arg->Common.Value.Integer >> 8) & 0xFF); + Info->Attribute = (UINT8) + ((Arg->Common.Value.Integer >> 8) & 0xFF); /* AccessLength (for serial/buffer protocols) */ - Info->AccessLength = (UINT8) ((Arg->Common.Value.Integer >> 16) & 0xFF); + Info->AccessLength = (UINT8) + ((Arg->Common.Value.Integer >> 16) & 0xFF); break; case AML_INT_CONNECTION_OP: @@ -478,9 +481,9 @@ AcpiDsGetFieldNames ( /* Lookup the Connection() namepath, it should already exist */ Status = AcpiNsLookup (WalkState->ScopeInfo, - Child->Common.Value.Name, ACPI_TYPE_ANY, - ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &Info->ConnectionNode); + Child->Common.Value.Name, ACPI_TYPE_ANY, + ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &Info->ConnectionNode); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE (Child->Common.Value.Name, Status); @@ -494,9 +497,9 @@ AcpiDsGetFieldNames ( /* Lookup the name, it should already exist */ Status = AcpiNsLookup (WalkState->ScopeInfo, - (char *) &Arg->Named.Name, Info->FieldType, - ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &Info->FieldNode); + (char *) &Arg->Named.Name, Info->FieldType, + ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &Info->FieldNode); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status); @@ -525,8 +528,8 @@ AcpiDsGetFieldNames ( /* Keep track of bit position for the next field */ - Position = (UINT64) Info->FieldBitPosition - + (UINT64) Arg->Common.Value.Size; + Position = (UINT64) Info->FieldBitPosition + + (UINT64) Arg->Common.Value.Size; if (Position > ACPI_UINT32_MAX) { @@ -543,7 +546,8 @@ AcpiDsGetFieldNames ( default: ACPI_ERROR ((AE_INFO, - "Invalid opcode in field list: 0x%X", Arg->Common.AmlOpcode)); + "Invalid opcode in field list: 0x%X", + Arg->Common.AmlOpcode)); return_ACPI_STATUS (AE_AML_BAD_OPCODE); } @@ -589,8 +593,8 @@ AcpiDsCreateField ( if (!RegionNode) { Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name, - ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); + ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); #ifdef ACPI_ASL_COMPILER Status = AcpiDsCreateExternalRegion (Status, Arg, Arg->Common.Value.Name, WalkState, &RegionNode); @@ -696,7 +700,7 @@ AcpiDsInitFieldObjects ( /* Creating new namespace node(s), should not already exist */ Flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | - ACPI_NS_ERROR_IF_FOUND; + ACPI_NS_ERROR_IF_FOUND; /* * Mark node(s) temporary if we are executing a normal control @@ -721,8 +725,8 @@ AcpiDsInitFieldObjects ( if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP) { Status = AcpiNsLookup (WalkState->ScopeInfo, - (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1, - Flags, WalkState, &Node); + (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1, + Flags, WalkState, &Node); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE ((char *) &Arg->Named.Name, Status); @@ -782,8 +786,8 @@ AcpiDsCreateBankField ( if (!RegionNode) { Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.Name, - ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); + ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT, WalkState, &RegionNode); #ifdef ACPI_ASL_COMPILER Status = AcpiDsCreateExternalRegion (Status, Arg, Arg->Common.Value.Name, WalkState, &RegionNode); @@ -799,8 +803,8 @@ AcpiDsCreateBankField ( Arg = Arg->Common.Next; Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); @@ -826,11 +830,12 @@ AcpiDsCreateBankField ( /* * Use Info.DataRegisterNode to store BankField Op - * It's safe because DataRegisterNode will never be used when create bank field - * We store AmlStart and AmlLength in the BankField Op for late evaluation - * Used in AcpiExPrepFieldValue(Info) + * It's safe because DataRegisterNode will never be used when create + * bank field \we store AmlStart and AmlLength in the BankField Op for + * late evaluation. Used in AcpiExPrepFieldValue(Info) * - * TBD: Or, should we add a field in ACPI_CREATE_FIELD_INFO, like "void *ParentOp"? + * TBD: Or, should we add a field in ACPI_CREATE_FIELD_INFO, like + * "void *ParentOp"? */ Info.DataRegisterNode = (ACPI_NAMESPACE_NODE*) Op; @@ -871,8 +876,8 @@ AcpiDsCreateIndexField ( Arg = Op->Common.Value.Arg; Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT, WalkState, &Info.RegisterNode); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); @@ -883,8 +888,8 @@ AcpiDsCreateIndexField ( Arg = Arg->Common.Next; Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT, WalkState, &Info.DataRegisterNode); if (ACPI_FAILURE (Status)) { ACPI_ERROR_NAMESPACE (Arg->Common.Value.String, Status); diff --git a/src/acpica/source/components/dispatcher/dsinit.c b/src/acpica/source/components/dispatcher/dsinit.c index d24cc01..4d30879 100644 --- a/src/acpica/source/components/dispatcher/dsinit.c +++ b/src/acpica/source/components/dispatcher/dsinit.c @@ -314,7 +314,7 @@ AcpiDsInitializeObjects ( * the namespace reader lock. */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, StartNode, ACPI_UINT32_MAX, - ACPI_NS_WALK_UNLOCK, AcpiDsInitOneObject, NULL, &Info, NULL); + ACPI_NS_WALK_UNLOCK, AcpiDsInitOneObject, NULL, &Info, NULL); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace")); @@ -331,7 +331,8 @@ AcpiDsInitializeObjects ( if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT)) { - ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "\nInitializing Namespace objects:\n")); + ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, + "\nInitializing Namespace objects:\n")); } /* Summary of objects initialized */ @@ -339,9 +340,10 @@ AcpiDsInitializeObjects ( ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, "Table [%4.4s:%8.8s] (id %.2X) - %4u Objects with %3u Devices, " "%3u Regions, %4u Methods (%u/%u/%u Serial/Non/Cvt)\n", - Table->Signature, Table->OemTableId, OwnerId, Info.ObjectCount, Info.DeviceCount, - Info.OpRegionCount, Info.MethodCount, Info.SerialMethodCount, - Info.NonSerialMethodCount, Info.SerializedMethodCount)); + Table->Signature, Table->OemTableId, OwnerId, Info.ObjectCount, + Info.DeviceCount,Info.OpRegionCount, Info.MethodCount, + Info.SerialMethodCount, Info.NonSerialMethodCount, + Info.SerializedMethodCount)); ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "%u Methods, %u Regions\n", Info.MethodCount, Info.OpRegionCount)); diff --git a/src/acpica/source/components/dispatcher/dsmethod.c b/src/acpica/source/components/dispatcher/dsmethod.c index 10c3548..0436ee1 100644 --- a/src/acpica/source/components/dispatcher/dsmethod.c +++ b/src/acpica/source/components/dispatcher/dsmethod.c @@ -199,8 +199,8 @@ AcpiDsAutoSerializeMethod ( return_ACPI_STATUS (AE_NO_MEMORY); } - Status = AcpiDsInitAmlWalk (WalkState, Op, Node, ObjDesc->Method.AmlStart, - ObjDesc->Method.AmlLength, NULL, 0); + Status = AcpiDsInitAmlWalk (WalkState, Op, Node, + ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength, NULL, 0); if (ACPI_FAILURE (Status)) { AcpiDsDeleteWalkState (WalkState); @@ -323,12 +323,12 @@ AcpiDsMethodError ( * AE_OK, in which case the executing method will not be aborted. */ AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->Aml, - WalkState->ParserState.AmlStart); + WalkState->ParserState.AmlStart); Status = AcpiGbl_ExceptionHandler (Status, - WalkState->MethodNode ? - WalkState->MethodNode->Name.Integer : 0, - WalkState->Opcode, AmlOffset, NULL); + WalkState->MethodNode ? + WalkState->MethodNode->Name.Integer : 0, + WalkState->Opcode, AmlOffset, NULL); AcpiExEnterInterpreter (); } @@ -472,10 +472,12 @@ AcpiDsBeginMethodExecution ( */ if (WalkState && (!(ObjDesc->Method.InfoFlags & ACPI_METHOD_IGNORE_SYNC_LEVEL)) && - (WalkState->Thread->CurrentSyncLevel > ObjDesc->Method.Mutex->Mutex.SyncLevel)) + (WalkState->Thread->CurrentSyncLevel > + ObjDesc->Method.Mutex->Mutex.SyncLevel)) { ACPI_ERROR ((AE_INFO, - "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%u)", + "Cannot acquire Mutex for method [%4.4s]" + ", current SyncLevel is too large (%u)", AcpiUtGetNodeName (MethodNode), WalkState->Thread->CurrentSyncLevel)); @@ -488,14 +490,15 @@ AcpiDsBeginMethodExecution ( */ if (!WalkState || !ObjDesc->Method.Mutex->Mutex.ThreadId || - (WalkState->Thread->ThreadId != ObjDesc->Method.Mutex->Mutex.ThreadId)) + (WalkState->Thread->ThreadId != + ObjDesc->Method.Mutex->Mutex.ThreadId)) { /* * Acquire the method mutex. This releases the interpreter if we * block (and reacquires it before it returns) */ - Status = AcpiExSystemWaitMutex (ObjDesc->Method.Mutex->Mutex.OsMutex, - ACPI_WAIT_FOREVER); + Status = AcpiExSystemWaitMutex ( + ObjDesc->Method.Mutex->Mutex.OsMutex, ACPI_WAIT_FOREVER); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -508,8 +511,22 @@ AcpiDsBeginMethodExecution ( ObjDesc->Method.Mutex->Mutex.OriginalSyncLevel = WalkState->Thread->CurrentSyncLevel; - ObjDesc->Method.Mutex->Mutex.ThreadId = WalkState->Thread->ThreadId; - WalkState->Thread->CurrentSyncLevel = ObjDesc->Method.SyncLevel; + ObjDesc->Method.Mutex->Mutex.ThreadId = + WalkState->Thread->ThreadId; + + /* + * Update the current SyncLevel only if this is not an auto- + * serialized method. In the auto case, we have to ignore + * the sync level for the method mutex (created for the + * auto-serialization) because we have no idea of what the + * sync level should be. Therefore, just ignore it. + */ + if (!(ObjDesc->Method.InfoFlags & + ACPI_METHOD_IGNORE_SYNC_LEVEL)) + { + WalkState->Thread->CurrentSyncLevel = + ObjDesc->Method.SyncLevel; + } } else { @@ -587,7 +604,8 @@ AcpiDsCallControlMethod ( ACPI_FUNCTION_TRACE_PTR (DsCallControlMethod, ThisWalkState); - ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Calling method %p, currentstate=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, + "Calling method %p, currentstate=%p\n", ThisWalkState->PrevOp, ThisWalkState)); /* @@ -607,8 +625,8 @@ AcpiDsCallControlMethod ( /* Init for new method, possibly wait on method mutex */ - Status = AcpiDsBeginMethodExecution (MethodNode, ObjDesc, - ThisWalkState); + Status = AcpiDsBeginMethodExecution ( + MethodNode, ObjDesc, ThisWalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -616,8 +634,8 @@ AcpiDsCallControlMethod ( /* Begin method parse/execution. Create a new walk state */ - NextWalkState = AcpiDsCreateWalkState (ObjDesc->Method.OwnerId, - NULL, ObjDesc, Thread); + NextWalkState = AcpiDsCreateWalkState ( + ObjDesc->Method.OwnerId, NULL, ObjDesc, Thread); if (!NextWalkState) { Status = AE_NO_MEMORY; @@ -646,8 +664,8 @@ AcpiDsCallControlMethod ( Info->Parameters = &ThisWalkState->Operands[0]; Status = AcpiDsInitAmlWalk (NextWalkState, NULL, MethodNode, - ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength, - Info, ACPI_IMODE_EXECUTE); + ObjDesc->Method.AmlStart, ObjDesc->Method.AmlLength, + Info, ACPI_IMODE_EXECUTE); ACPI_FREE (Info); if (ACPI_FAILURE (Status)) @@ -842,7 +860,8 @@ AcpiDsTerminateControlMethod ( WalkState->Thread->CurrentSyncLevel = MethodDesc->Method.Mutex->Mutex.OriginalSyncLevel; - AcpiOsReleaseMutex (MethodDesc->Method.Mutex->Mutex.OsMutex); + AcpiOsReleaseMutex ( + MethodDesc->Method.Mutex->Mutex.OsMutex); MethodDesc->Method.Mutex->Mutex.ThreadId = 0; } } @@ -872,7 +891,8 @@ AcpiDsTerminateControlMethod ( if (MethodDesc->Method.InfoFlags & ACPI_METHOD_MODIFIED_NAMESPACE) { AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId); - MethodDesc->Method.InfoFlags &= ~ACPI_METHOD_MODIFIED_NAMESPACE; + MethodDesc->Method.InfoFlags &= + ~ACPI_METHOD_MODIFIED_NAMESPACE; } } } @@ -920,7 +940,8 @@ AcpiDsTerminateControlMethod ( if (WalkState) { ACPI_INFO ((AE_INFO, - "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error", + "Marking method %4.4s as Serialized " + "because of AE_ALREADY_EXISTS error", WalkState->MethodNode->Name.Ascii)); } @@ -935,7 +956,9 @@ AcpiDsTerminateControlMethod ( * marking the method permanently as Serialized when the last * thread exits here. */ - MethodDesc->Method.InfoFlags &= ~ACPI_METHOD_SERIALIZED_PENDING; + MethodDesc->Method.InfoFlags &= + ~ACPI_METHOD_SERIALIZED_PENDING; + MethodDesc->Method.InfoFlags |= (ACPI_METHOD_SERIALIZED | ACPI_METHOD_IGNORE_SYNC_LEVEL); MethodDesc->Method.SyncLevel = 0; @@ -950,7 +973,7 @@ AcpiDsTerminateControlMethod ( } AcpiExStopTraceMethod ((ACPI_NAMESPACE_NODE *) MethodDesc->Method.Node, - MethodDesc, WalkState); + MethodDesc, WalkState); return_VOID; } diff --git a/src/acpica/source/components/dispatcher/dsmthdat.c b/src/acpica/source/components/dispatcher/dsmthdat.c index 2b7fce2..04892a6 100644 --- a/src/acpica/source/components/dispatcher/dsmthdat.c +++ b/src/acpica/source/components/dispatcher/dsmthdat.c @@ -182,7 +182,9 @@ AcpiDsMethodDataInit ( for (i = 0; i < ACPI_METHOD_NUM_ARGS; i++) { - ACPI_MOVE_32_TO_32 (&WalkState->Arguments[i].Name, NAMEOF_ARG_NTE); + ACPI_MOVE_32_TO_32 (&WalkState->Arguments[i].Name, + NAMEOF_ARG_NTE); + WalkState->Arguments[i].Name.Integer |= (i << 24); WalkState->Arguments[i].DescriptorType = ACPI_DESC_TYPE_NAMED; WalkState->Arguments[i].Type = ACPI_TYPE_ANY; @@ -193,7 +195,8 @@ AcpiDsMethodDataInit ( for (i = 0; i < ACPI_METHOD_NUM_LOCALS; i++) { - ACPI_MOVE_32_TO_32 (&WalkState->LocalVariables[i].Name, NAMEOF_LOCAL_NTE); + ACPI_MOVE_32_TO_32 (&WalkState->LocalVariables[i].Name, + NAMEOF_LOCAL_NTE); WalkState->LocalVariables[i].Name.Integer |= (i << 24); WalkState->LocalVariables[i].DescriptorType = ACPI_DESC_TYPE_NAMED; @@ -235,7 +238,7 @@ AcpiDsMethodDataDeleteAll ( if (WalkState->LocalVariables[Index].Object) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Local%u=%p\n", - Index, WalkState->LocalVariables[Index].Object)); + Index, WalkState->LocalVariables[Index].Object)); /* Detach object (if present) and remove a reference */ @@ -250,7 +253,7 @@ AcpiDsMethodDataDeleteAll ( if (WalkState->Arguments[Index].Object) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Deleting Arg%u=%p\n", - Index, WalkState->Arguments[Index].Object)); + Index, WalkState->Arguments[Index].Object)); /* Detach object (if present) and remove a reference */ @@ -293,7 +296,8 @@ AcpiDsMethodDataInitArgs ( if (!Params) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "No param list passed to method\n")); + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "No parameter list passed to method\n")); return_ACPI_STATUS (AE_OK); } @@ -308,8 +312,8 @@ AcpiDsMethodDataInitArgs ( * Store the argument in the method/walk descriptor. * Do not copy the arg in order to implement call by reference */ - Status = AcpiDsMethodDataSetValue (ACPI_REFCLASS_ARG, Index, - Params[Index], WalkState); + Status = AcpiDsMethodDataSetValue ( + ACPI_REFCLASS_ARG, Index, Params[Index], WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -699,7 +703,8 @@ AcpiDsStoreObjectToLocal ( NewObjDesc = ObjDesc; if (ObjDesc->Common.ReferenceCount > 1) { - Status = AcpiUtCopyIobjectToIobject (ObjDesc, &NewObjDesc, WalkState); + Status = AcpiUtCopyIobjectToIobject ( + ObjDesc, &NewObjDesc, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -736,13 +741,16 @@ AcpiDsStoreObjectToLocal ( * If we have a valid reference object that came from RefOf(), * do the indirect store */ - if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == ACPI_DESC_TYPE_OPERAND) && - (CurrentObjDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && - (CurrentObjDesc->Reference.Class == ACPI_REFCLASS_REFOF)) + if ((ACPI_GET_DESCRIPTOR_TYPE (CurrentObjDesc) == + ACPI_DESC_TYPE_OPERAND) && + (CurrentObjDesc->Common.Type == + ACPI_TYPE_LOCAL_REFERENCE) && + (CurrentObjDesc->Reference.Class == + ACPI_REFCLASS_REFOF)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, - "Arg (%p) is an ObjRef(Node), storing in node %p\n", - NewObjDesc, CurrentObjDesc)); + "Arg (%p) is an ObjRef(Node), storing in node %p\n", + NewObjDesc, CurrentObjDesc)); /* * Store this object to the Node (perform the indirect store) @@ -750,8 +758,8 @@ AcpiDsStoreObjectToLocal ( * specification rules on storing to Locals/Args. */ Status = AcpiExStoreObjectToNode (NewObjDesc, - CurrentObjDesc->Reference.Object, WalkState, - ACPI_NO_IMPLICIT_CONVERSION); + CurrentObjDesc->Reference.Object, WalkState, + ACPI_NO_IMPLICIT_CONVERSION); /* Remove local reference if we copied the object above */ @@ -759,6 +767,7 @@ AcpiDsStoreObjectToLocal ( { AcpiUtRemoveReference (NewObjDesc); } + return_ACPI_STATUS (Status); } } diff --git a/src/acpica/source/components/dispatcher/dsobject.c b/src/acpica/source/components/dispatcher/dsobject.c index 0eb2f44..d448aaf 100644 --- a/src/acpica/source/components/dispatcher/dsobject.c +++ b/src/acpica/source/components/dispatcher/dsobject.c @@ -174,10 +174,10 @@ AcpiDsBuildInternalObject ( if (!Op->Common.Node) { Status = AcpiNsLookup (WalkState->ScopeInfo, - Op->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &(Op->Common.Node))); + Op->Common.Value.String, + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &(Op->Common.Node))); if (ACPI_FAILURE (Status)) { /* Check if we are resolving a named reference within a package */ @@ -233,8 +233,8 @@ AcpiDsBuildInternalObject ( ObjDesc = ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, Op->Common.Node); Status = AcpiExResolveNodeToValue ( - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc), - WalkState); + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc), + WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -294,14 +294,14 @@ AcpiDsBuildInternalObject ( /* Create and init a new internal ACPI object */ ObjDesc = AcpiUtCreateInternalObject ( - (AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode))->ObjectType); + (AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode))->ObjectType); if (!ObjDesc) { return_ACPI_STATUS (AE_NO_MEMORY); } - Status = AcpiDsInitObjectFromOp (WalkState, Op, Op->Common.AmlOpcode, - &ObjDesc); + Status = AcpiDsInitObjectFromOp ( + WalkState, Op, Op->Common.AmlOpcode, &ObjDesc); if (ACPI_FAILURE (Status)) { AcpiUtRemoveReference (ObjDesc); @@ -408,8 +408,8 @@ AcpiDsBuildInternalBufferObj ( } else { - ObjDesc->Buffer.Pointer = ACPI_ALLOCATE_ZEROED ( - ObjDesc->Buffer.Length); + ObjDesc->Buffer.Pointer = + ACPI_ALLOCATE_ZEROED (ObjDesc->Buffer.Length); if (!ObjDesc->Buffer.Pointer) { AcpiUtDeleteObjectDesc (ObjDesc); @@ -421,7 +421,7 @@ AcpiDsBuildInternalBufferObj ( if (ByteList) { memcpy (ObjDesc->Buffer.Pointer, ByteList->Named.Data, - ByteListLength); + ByteListLength); } } @@ -540,8 +540,8 @@ AcpiDsBuildInternalPackageObj ( * invocation, so we special case it here */ Arg->Common.AmlOpcode = AML_INT_NAMEPATH_OP; - Status = AcpiDsBuildInternalObject (WalkState, Arg, - &ObjDesc->Package.Elements[i]); + Status = AcpiDsBuildInternalObject ( + WalkState, Arg, &ObjDesc->Package.Elements[i]); } else { @@ -553,8 +553,8 @@ AcpiDsBuildInternalPackageObj ( } else { - Status = AcpiDsBuildInternalObject (WalkState, Arg, - &ObjDesc->Package.Elements[i]); + Status = AcpiDsBuildInternalObject ( + WalkState, Arg, &ObjDesc->Package.Elements[i]); } if (*ObjDescPtr) @@ -611,7 +611,8 @@ AcpiDsBuildInternalPackageObj ( } ACPI_INFO ((AE_INFO, - "Actual Package length (%u) is larger than NumElements field (%u), truncated", + "Actual Package length (%u) is larger than " + "NumElements field (%u), truncated", i, ElementCount)); } else if (i < ElementCount) @@ -621,7 +622,8 @@ AcpiDsBuildInternalPackageObj ( * Note: this is not an error, the package is padded out with NULLs. */ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "Package List length (%u) smaller than NumElements count (%u), padded with null elements\n", + "Package List length (%u) smaller than NumElements " + "count (%u), padded with null elements\n", i, ElementCount)); } @@ -677,8 +679,8 @@ AcpiDsCreateNode ( /* Build an internal object for the argument(s) */ - Status = AcpiDsBuildInternalObject (WalkState, Op->Common.Value.Arg, - &ObjDesc); + Status = AcpiDsBuildInternalObject ( + WalkState, Op->Common.Value.Arg, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -750,9 +752,9 @@ AcpiDsInitObjectFromOp ( /* * Defer evaluation of Buffer TermArg operand */ - ObjDesc->Buffer.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, - WalkState->Operands[0]); - ObjDesc->Buffer.AmlStart = Op->Named.Data; + ObjDesc->Buffer.Node = ACPI_CAST_PTR ( + ACPI_NAMESPACE_NODE, WalkState->Operands[0]); + ObjDesc->Buffer.AmlStart = Op->Named.Data; ObjDesc->Buffer.AmlLength = Op->Named.Length; break; @@ -760,9 +762,9 @@ AcpiDsInitObjectFromOp ( /* * Defer evaluation of Package TermArg operand */ - ObjDesc->Package.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, - WalkState->Operands[0]); - ObjDesc->Package.AmlStart = Op->Named.Data; + ObjDesc->Package.Node = ACPI_CAST_PTR ( + ACPI_NAMESPACE_NODE, WalkState->Operands[0]); + ObjDesc->Package.AmlStart = Op->Named.Data; ObjDesc->Package.AmlLength = Op->Named.Length; break; @@ -872,9 +874,9 @@ AcpiDsInitObjectFromOp ( #ifndef ACPI_NO_METHOD_EXECUTION Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL, - ObjDesc->Reference.Value, WalkState, - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, - &ObjDesc->Reference.Object)); + ObjDesc->Reference.Value, WalkState, + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, + &ObjDesc->Reference.Object)); #endif break; @@ -887,9 +889,9 @@ AcpiDsInitObjectFromOp ( #ifndef ACPI_NO_METHOD_EXECUTION Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG, - ObjDesc->Reference.Value, WalkState, - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, - &ObjDesc->Reference.Object)); + ObjDesc->Reference.Value, WalkState, + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, + &ObjDesc->Reference.Object)); #endif break; diff --git a/src/acpica/source/components/dispatcher/dsopcode.c b/src/acpica/source/components/dispatcher/dsopcode.c index 6e2c784..45a7e7a 100644 --- a/src/acpica/source/components/dispatcher/dsopcode.c +++ b/src/acpica/source/components/dispatcher/dsopcode.c @@ -331,8 +331,8 @@ AcpiDsInitBufferField ( * For FieldFlags, use LOCK_RULE = 0 (NO_LOCK), * UPDATE_RULE = 0 (UPDATE_PRESERVE) */ - Status = AcpiExPrepCommonFieldObject (ObjDesc, FieldFlags, 0, - BitOffset, BitCount); + Status = AcpiExPrepCommonFieldObject ( + ObjDesc, FieldFlags, 0, BitOffset, BitCount); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -429,8 +429,8 @@ AcpiDsEvalBufferFieldOperands ( /* Resolve the operands */ - Status = AcpiExResolveOperands (Op->Common.AmlOpcode, - ACPI_WALK_OPERANDS, WalkState); + Status = AcpiExResolveOperands ( + Op->Common.AmlOpcode, ACPI_WALK_OPERANDS, WalkState); if (ACPI_FAILURE (Status)) { ACPI_ERROR ((AE_INFO, "(%s) bad operand(s), status 0x%X", @@ -446,16 +446,16 @@ AcpiDsEvalBufferFieldOperands ( /* NOTE: Slightly different operands for this opcode */ Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc, - WalkState->Operands[0], WalkState->Operands[1], - WalkState->Operands[2], WalkState->Operands[3]); + WalkState->Operands[0], WalkState->Operands[1], + WalkState->Operands[2], WalkState->Operands[3]); } else { /* All other, CreateXxxField opcodes */ Status = AcpiDsInitBufferField (Op->Common.AmlOpcode, ObjDesc, - WalkState->Operands[0], WalkState->Operands[1], - NULL, WalkState->Operands[2]); + WalkState->Operands[0], WalkState->Operands[1], + NULL, WalkState->Operands[2]); } return_ACPI_STATUS (Status); @@ -515,8 +515,8 @@ AcpiDsEvalRegionOperands ( /* Resolve the length and address operands to numbers */ - Status = AcpiExResolveOperands (Op->Common.AmlOpcode, - ACPI_WALK_OPERANDS, WalkState); + Status = AcpiExResolveOperands ( + Op->Common.AmlOpcode, ACPI_WALK_OPERANDS, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -544,18 +544,16 @@ AcpiDsEvalRegionOperands ( OperandDesc = WalkState->Operands[WalkState->NumOperands - 2]; ObjDesc->Region.Address = (ACPI_PHYSICAL_ADDRESS) - OperandDesc->Integer.Value; + OperandDesc->Integer.Value; AcpiUtRemoveReference (OperandDesc); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "RgnObj %p Addr %8.8X%8.8X Len %X\n", - ObjDesc, - ACPI_FORMAT_UINT64 (ObjDesc->Region.Address), + ObjDesc, ACPI_FORMAT_UINT64 (ObjDesc->Region.Address), ObjDesc->Region.Length)); /* Now the address and length are valid for this opregion */ ObjDesc->Region.Flags |= AOPOBJ_DATA_VALID; - return_ACPI_STATUS (Status); } @@ -618,8 +616,8 @@ AcpiDsEvalTableRegionOperands ( * Resolve the Signature string, OemId string, * and OemTableId string operands */ - Status = AcpiExResolveOperands (Op->Common.AmlOpcode, - ACPI_WALK_OPERANDS, WalkState); + Status = AcpiExResolveOperands ( + Op->Common.AmlOpcode, ACPI_WALK_OPERANDS, WalkState); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -628,9 +626,9 @@ AcpiDsEvalTableRegionOperands ( /* Find the ACPI table */ Status = AcpiTbFindTable ( - Operand[0]->String.Pointer, - Operand[1]->String.Pointer, - Operand[2]->String.Pointer, &TableIndex); + Operand[0]->String.Pointer, + Operand[1]->String.Pointer, + Operand[2]->String.Pointer, &TableIndex); if (ACPI_FAILURE (Status)) { if (Status == AE_NOT_FOUND) @@ -721,8 +719,8 @@ AcpiDsEvalDataObjectOperands ( } Status = AcpiExResolveOperands (WalkState->Opcode, - &(WalkState->Operands [WalkState->NumOperands -1]), - WalkState); + &(WalkState->Operands [WalkState->NumOperands -1]), + WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -750,13 +748,15 @@ AcpiDsEvalDataObjectOperands ( { case AML_BUFFER_OP: - Status = AcpiDsBuildInternalBufferObj (WalkState, Op, Length, &ObjDesc); + Status = AcpiDsBuildInternalBufferObj ( + WalkState, Op, Length, &ObjDesc); break; case AML_PACKAGE_OP: case AML_VAR_PACKAGE_OP: - Status = AcpiDsBuildInternalPackageObj (WalkState, Op, Length, &ObjDesc); + Status = AcpiDsBuildInternalPackageObj ( + WalkState, Op, Length, &ObjDesc); break; default: diff --git a/src/acpica/source/components/dispatcher/dsutils.c b/src/acpica/source/components/dispatcher/dsutils.c index 0ba26fa..35611d7 100644 --- a/src/acpica/source/components/dispatcher/dsutils.c +++ b/src/acpica/source/components/dispatcher/dsutils.c @@ -212,9 +212,9 @@ AcpiDsDoImplicitReturn ( } ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "Result %p will be implicitly returned; Prev=%p\n", - ReturnDesc, - WalkState->ImplicitReturnObj)); + "Result %p will be implicitly returned; Prev=%p\n", + ReturnDesc, + WalkState->ImplicitReturnObj)); /* * Delete any "stale" implicit return value first. However, in @@ -338,7 +338,8 @@ AcpiDsIsResultUsed ( * If we are executing the predicate AND this is the predicate op, * we will use the return value */ - if ((WalkState->ControlState->Common.State == ACPI_CONTROL_PREDICATE_EXECUTING) && + if ((WalkState->ControlState->Common.State == + ACPI_CONTROL_PREDICATE_EXECUTING) && (WalkState->ControlState->Control.PredicateOp == Op)) { goto ResultUsed; @@ -595,8 +596,8 @@ AcpiDsCreateOperand ( /* Get the entire name string from the AML stream */ - Status = AcpiExGetNameString (ACPI_TYPE_ANY, Arg->Common.Value.Buffer, - &NameString, &NameLength); + Status = AcpiExGetNameString (ACPI_TYPE_ANY, + Arg->Common.Value.Buffer, &NameString, &NameLength); if (ACPI_FAILURE (Status)) { @@ -616,10 +617,11 @@ AcpiDsCreateOperand ( */ if ((WalkState->DeferredNode) && (WalkState->DeferredNode->Type == ACPI_TYPE_BUFFER_FIELD) && - (ArgIndex == (UINT32) ((WalkState->Opcode == AML_CREATE_FIELD_OP) ? 3 : 2))) + (ArgIndex == (UINT32) + ((WalkState->Opcode == AML_CREATE_FIELD_OP) ? 3 : 2))) { ObjDesc = ACPI_CAST_PTR ( - ACPI_OPERAND_OBJECT, WalkState->DeferredNode); + ACPI_OPERAND_OBJECT, WalkState->DeferredNode); Status = AE_OK; } else /* All other opcodes */ @@ -632,6 +634,7 @@ AcpiDsCreateOperand ( */ ParentOp = Arg->Common.Parent; OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Common.AmlOpcode); + if ((OpInfo->Flags & AML_NSNODE) && (ParentOp->Common.AmlOpcode != AML_INT_METHODCALL_OP) && (ParentOp->Common.AmlOpcode != AML_REGION_OP) && @@ -649,10 +652,9 @@ AcpiDsCreateOperand ( } Status = AcpiNsLookup (WalkState->ScopeInfo, NameString, - ACPI_TYPE_ANY, InterpreterMode, - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, - WalkState, - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc)); + ACPI_TYPE_ANY, InterpreterMode, + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, WalkState, + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, &ObjDesc)); /* * The only case where we pass through (ignore) a NOT_FOUND * error is for the CondRefOf opcode. @@ -668,7 +670,7 @@ AcpiDsCreateOperand ( * object to the root */ ObjDesc = ACPI_CAST_PTR ( - ACPI_OPERAND_OBJECT, AcpiGbl_RootNode); + ACPI_OPERAND_OBJECT, AcpiGbl_RootNode); Status = AE_OK; } else if (ParentOp->Common.AmlOpcode == AML_EXTERNAL_OP) @@ -714,7 +716,8 @@ AcpiDsCreateOperand ( { return_ACPI_STATUS (Status); } - ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState)); + + AcpiDbDisplayArgumentObject (ObjDesc, WalkState); } else { @@ -747,13 +750,14 @@ AcpiDsCreateOperand ( return_ACPI_STATUS (AE_NOT_IMPLEMENTED); } - if ((OpInfo->Flags & AML_HAS_RETVAL) || (Arg->Common.Flags & ACPI_PARSEOP_IN_STACK)) + if ((OpInfo->Flags & AML_HAS_RETVAL) || + (Arg->Common.Flags & ACPI_PARSEOP_IN_STACK)) { ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Argument previously created, already stacked\n")); - ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject ( - WalkState->Operands [WalkState->NumOperands - 1], WalkState)); + AcpiDbDisplayArgumentObject ( + WalkState->Operands [WalkState->NumOperands - 1], WalkState); /* * Use value that was already previously returned @@ -784,7 +788,7 @@ AcpiDsCreateOperand ( /* Initialize the new object */ Status = AcpiDsInitObjectFromOp ( - WalkState, Arg, Opcode, &ObjDesc); + WalkState, Arg, Opcode, &ObjDesc); if (ACPI_FAILURE (Status)) { AcpiUtDeleteObjectDesc (ObjDesc); @@ -800,7 +804,7 @@ AcpiDsCreateOperand ( return_ACPI_STATUS (Status); } - ACPI_DEBUGGER_EXEC (AcpiDbDisplayArgumentObject (ObjDesc, WalkState)); + AcpiDbDisplayArgumentObject (ObjDesc, WalkState); } return_ACPI_STATUS (AE_OK); @@ -970,7 +974,8 @@ AcpiDsEvaluateNamePath ( AcpiUtRemoveReference (*Operand); - Status = AcpiUtCopyIobjectToIobject (*Operand, &NewObjDesc, WalkState); + Status = AcpiUtCopyIobjectToIobject ( + *Operand, &NewObjDesc, WalkState); if (ACPI_FAILURE (Status)) { goto Exit; diff --git a/src/acpica/source/components/dispatcher/dswexec.c b/src/acpica/source/components/dispatcher/dswexec.c index f650ced..4cdc53d 100644 --- a/src/acpica/source/components/dispatcher/dswexec.c +++ b/src/acpica/source/components/dispatcher/dswexec.c @@ -261,12 +261,13 @@ AcpiDsGetPredicateValue ( Cleanup: - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Completed a predicate eval=%X Op=%p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Completed a predicate eval=%X Op=%p\n", WalkState->ControlState->Common.Value, WalkState->Op)); - /* Break to debugger to display result */ + /* Break to debugger to display result */ - ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (LocalObjDesc, WalkState)); + AcpiDbDisplayResultObject (LocalObjDesc, WalkState); /* * Delete the predicate result object (we know that @@ -358,10 +359,12 @@ AcpiDsExecBeginOp ( (WalkState->ControlState->Common.State == ACPI_CONTROL_CONDITIONAL_EXECUTING)) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Exec predicate Op=%p State=%p\n", - Op, WalkState)); + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Exec predicate Op=%p State=%p\n", + Op, WalkState)); - WalkState->ControlState->Common.State = ACPI_CONTROL_PREDICATE_EXECUTING; + WalkState->ControlState->Common.State = + ACPI_CONTROL_PREDICATE_EXECUTING; /* Save start of predicate */ @@ -409,8 +412,8 @@ AcpiDsExecBeginOp ( } else { - Status = AcpiDsScopeStackPush (Op->Named.Node, - Op->Named.Node->Type, WalkState); + Status = AcpiDsScopeStackPush ( + Op->Named.Node, Op->Named.Node->Type, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -469,8 +472,8 @@ AcpiDsExecEndOp ( ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState); - Op = WalkState->Op; - OpType = WalkState->OpInfo->Type; + Op = WalkState->Op; + OpType = WalkState->OpInfo->Type; OpClass = WalkState->OpInfo->Class; if (OpClass == AML_CLASS_UNKNOWN) @@ -490,8 +493,11 @@ AcpiDsExecEndOp ( /* Call debugger for single step support (DEBUG build only) */ - ACPI_DEBUGGER_EXEC (Status = AcpiDbSingleStep (WalkState, Op, OpClass)); - ACPI_DEBUGGER_EXEC (if (ACPI_FAILURE (Status)) {return_ACPI_STATUS (Status);}); + Status = AcpiDbSingleStep (WalkState, Op, OpClass); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } /* Decode the Opcode Class */ @@ -528,8 +534,8 @@ AcpiDsExecEndOp ( /* Resolve all operands */ Status = AcpiExResolveOperands (WalkState->Opcode, - &(WalkState->Operands [WalkState->NumOperands -1]), - WalkState); + &(WalkState->Operands [WalkState->NumOperands -1]), + WalkState); } if (ACPI_SUCCESS (Status)) @@ -606,7 +612,8 @@ AcpiDsExecEndOp ( ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Method Reference in a Package, Op=%p\n", Op)); - Op->Common.Node = (ACPI_NAMESPACE_NODE *) Op->Asl.Value.Arg->Asl.Node; + Op->Common.Node = (ACPI_NAMESPACE_NODE *) + Op->Asl.Value.Arg->Asl.Node; AcpiUtAddReference (Op->Asl.Value.Arg->Asl.Node->Object); return_ACPI_STATUS (AE_OK); } @@ -688,12 +695,12 @@ AcpiDsExecEndOp ( * Put the Node on the object stack (Contains the ACPI Name * of this object) */ - WalkState->Operands[0] = (void *) Op->Common.Parent->Common.Node; + WalkState->Operands[0] = (void *) + Op->Common.Parent->Common.Node; WalkState->NumOperands = 1; Status = AcpiDsCreateNode (WalkState, - Op->Common.Parent->Common.Node, - Op->Common.Parent); + Op->Common.Parent->Common.Node, Op->Common.Parent); if (ACPI_FAILURE (Status)) { break; @@ -705,7 +712,7 @@ AcpiDsExecEndOp ( case AML_INT_EVAL_SUBTREE_OP: Status = AcpiDsEvalDataObjectOperands (WalkState, Op, - AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node)); + AcpiNsGetAttachedObject (Op->Common.Parent->Common.Node)); break; default: @@ -786,7 +793,8 @@ AcpiDsExecEndOp ( default: ACPI_ERROR ((AE_INFO, - "Unimplemented opcode, class=0x%X type=0x%X Opcode=0x%X Op=%p", + "Unimplemented opcode, class=0x%X " + "type=0x%X Opcode=0x%X Op=%p", OpClass, OpType, Op->Common.AmlOpcode, Op)); Status = AE_NOT_IMPLEMENTED; @@ -821,8 +829,7 @@ Cleanup: { /* Break to debugger to display result */ - ACPI_DEBUGGER_EXEC (AcpiDbDisplayResultObject (WalkState->ResultObj, - WalkState)); + AcpiDbDisplayResultObject (WalkState->ResultObj,WalkState); /* * Delete the result op if and only if: diff --git a/src/acpica/source/components/dispatcher/dswload.c b/src/acpica/source/components/dispatcher/dswload.c index a984075..765102d 100644 --- a/src/acpica/source/components/dispatcher/dswload.c +++ b/src/acpica/source/components/dispatcher/dswload.c @@ -260,7 +260,8 @@ AcpiDsLoad1BeginOp ( ObjectType = WalkState->OpInfo->ObjectType; ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, - "State=%p Op=%p [%s]\n", WalkState, Op, AcpiUtGetTypeName (ObjectType))); + "State=%p Op=%p [%s]\n", WalkState, Op, + AcpiUtGetTypeName (ObjectType))); switch (WalkState->Opcode) { @@ -271,7 +272,7 @@ AcpiDsLoad1BeginOp ( * Allow search-to-root for single namesegs. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node)); + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, WalkState, &(Node)); #ifdef ACPI_ASL_COMPILER if (Status == AE_NOT_FOUND) { @@ -282,8 +283,8 @@ AcpiDsLoad1BeginOp ( */ AcpiDmAddOpToExternalList (Op, Path, ACPI_TYPE_DEVICE, 0, 0); Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, - ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT, - WalkState, &Node); + ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT, + WalkState, &Node); } #endif if (ACPI_FAILURE (Status)) @@ -401,20 +402,20 @@ AcpiDsLoad1BeginOp ( { Flags |= ACPI_NS_OVERRIDE_IF_FOUND; ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Override allowed\n", - AcpiUtGetTypeName (ObjectType))); + AcpiUtGetTypeName (ObjectType))); } else { Flags |= ACPI_NS_ERROR_IF_FOUND; ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Cannot already exist\n", - AcpiUtGetTypeName (ObjectType))); + AcpiUtGetTypeName (ObjectType))); } } else { ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[%s] Both Find or Create allowed\n", - AcpiUtGetTypeName (ObjectType))); + AcpiUtGetTypeName (ObjectType))); } /* @@ -424,7 +425,7 @@ AcpiDsLoad1BeginOp ( * parse tree later. */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType, - ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); + ACPI_IMODE_LOAD_PASS1, Flags, WalkState, &Node); if (ACPI_FAILURE (Status)) { if (Status == AE_ALREADY_EXISTS) @@ -444,7 +445,8 @@ AcpiDsLoad1BeginOp ( if (AcpiNsOpensScope (ObjectType)) { - Status = AcpiDsScopeStackPush (Node, ObjectType, WalkState); + Status = AcpiDsScopeStackPush ( + Node, ObjectType, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -566,8 +568,9 @@ AcpiDsLoad1EndOp ( if (Op->Common.AmlOpcode == AML_REGION_OP) { Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, - (ACPI_ADR_SPACE_TYPE) ((Op->Common.Value.Arg)->Common.Value.Integer), - WalkState); + (ACPI_ADR_SPACE_TYPE) + ((Op->Common.Value.Arg)->Common.Value.Integer), + WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -576,7 +579,7 @@ AcpiDsLoad1EndOp ( else if (Op->Common.AmlOpcode == AML_DATA_REGION_OP) { Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, - ACPI_ADR_SPACE_DATA_TABLE, WalkState); + ACPI_ADR_SPACE_DATA_TABLE, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -628,11 +631,12 @@ AcpiDsLoad1EndOp ( WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node); WalkState->NumOperands = 1; - Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg); + Status = AcpiDsCreateOperands ( + WalkState, Op->Common.Value.Arg); if (ACPI_SUCCESS (Status)) { Status = AcpiExCreateMethod (Op->Named.Data, - Op->Named.Length, WalkState); + Op->Named.Length, WalkState); } WalkState->Operands[0] = NULL; diff --git a/src/acpica/source/components/dispatcher/dswload2.c b/src/acpica/source/components/dispatcher/dswload2.c index d5f9b1c..1a01a43 100644 --- a/src/acpica/source/components/dispatcher/dswload2.c +++ b/src/acpica/source/components/dispatcher/dswload2.c @@ -231,8 +231,8 @@ AcpiDsLoad2BeginOp ( * for use later. */ Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, - WalkState, &(Node)); + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, + WalkState, &(Node)); break; case AML_SCOPE_OP: @@ -257,8 +257,8 @@ AcpiDsLoad2BeginOp ( * for use later. */ Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType, - ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, - WalkState, &(Node)); + ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, + WalkState, &(Node)); if (ACPI_FAILURE (Status)) { #ifdef ACPI_ASL_COMPILER @@ -395,7 +395,7 @@ AcpiDsLoad2BeginOp ( /* Add new entry or lookup existing entry */ Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType, - ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node); + ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node); if (ACPI_SUCCESS (Status) && (Flags & ACPI_NS_TEMPORARY)) { @@ -473,7 +473,7 @@ AcpiDsLoad2EndOp ( Op = WalkState->Op; ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n", - WalkState->OpInfo->Name, Op, WalkState)); + WalkState->OpInfo->Name, Op, WalkState)); /* Check if opcode had an associated namespace object */ @@ -579,8 +579,8 @@ AcpiDsLoad2EndOp ( { case AML_INDEX_FIELD_OP: - Status = AcpiDsCreateIndexField (Op, (ACPI_HANDLE) Arg->Common.Node, - WalkState); + Status = AcpiDsCreateIndexField ( + Op, (ACPI_HANDLE) Arg->Common.Node, WalkState); break; case AML_BANK_FIELD_OP: @@ -665,7 +665,7 @@ AcpiDsLoad2EndOp ( if (Op->Common.AmlOpcode == AML_REGION_OP) { RegionSpace = (ACPI_ADR_SPACE_TYPE) - ((Op->Common.Value.Arg)->Common.Value.Integer); + ((Op->Common.Value.Arg)->Common.Value.Integer); } else { @@ -690,8 +690,8 @@ AcpiDsLoad2EndOp ( * Executing a method: initialize the region and unlock * the interpreter */ - Status = AcpiExCreateRegion (Op->Named.Data, Op->Named.Length, - RegionSpace, WalkState); + Status = AcpiExCreateRegion (Op->Named.Data, + Op->Named.Length, RegionSpace, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -700,8 +700,8 @@ AcpiDsLoad2EndOp ( AcpiExExitInterpreter (); } - Status = AcpiEvInitializeRegion (AcpiNsGetAttachedObject (Node), - FALSE); + Status = AcpiEvInitializeRegion ( + AcpiNsGetAttachedObject (Node), FALSE); if (WalkState->MethodNode) { AcpiExEnterInterpreter (); @@ -744,12 +744,14 @@ AcpiDsLoad2EndOp ( WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node); WalkState->NumOperands = 1; - Status = AcpiDsCreateOperands (WalkState, Op->Common.Value.Arg); + Status = AcpiDsCreateOperands ( + WalkState, Op->Common.Value.Arg); if (ACPI_SUCCESS (Status)) { - Status = AcpiExCreateMethod (Op->Named.Data, - Op->Named.Length, WalkState); + Status = AcpiExCreateMethod ( + Op->Named.Data, Op->Named.Length, WalkState); } + WalkState->Operands[0] = NULL; WalkState->NumOperands = 0; @@ -784,9 +786,9 @@ AcpiDsLoad2EndOp ( * Lookup the method name and save the Node */ Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String, - ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS2, - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, - WalkState, &(NewNode)); + ACPI_TYPE_ANY, ACPI_IMODE_LOAD_PASS2, + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, + WalkState, &(NewNode)); if (ACPI_SUCCESS (Status)) { /* diff --git a/src/acpica/source/components/dispatcher/dswscope.c b/src/acpica/source/components/dispatcher/dswscope.c index 9865dcd..1ce2ed9 100644 --- a/src/acpica/source/components/dispatcher/dswscope.c +++ b/src/acpica/source/components/dispatcher/dswscope.c @@ -154,6 +154,7 @@ AcpiDsScopeStackClear ( ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Popped object type (%s)\n", AcpiUtGetTypeName (ScopeInfo->Common.Value))); + AcpiUtDeleteGenericState (ScopeInfo); } } diff --git a/src/acpica/source/components/dispatcher/dswstate.c b/src/acpica/source/components/dispatcher/dswstate.c index e5ea508..faf6a2b 100644 --- a/src/acpica/source/components/dispatcher/dswstate.c +++ b/src/acpica/source/components/dispatcher/dswstate.c @@ -371,8 +371,8 @@ AcpiDsResultStackPop ( if (WalkState->Results == NULL) { - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Result stack underflow - State=%p\n", - WalkState)); + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Result stack underflow - State=%p\n", WalkState)); return (AE_AML_NO_OPERAND); } @@ -779,7 +779,8 @@ AcpiDsInitAmlWalk ( /* Push start scope on scope stack and make it current */ - Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState); + Status = AcpiDsScopeStackPush ( + MethodNode, ACPI_TYPE_METHOD, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -822,7 +823,7 @@ AcpiDsInitAmlWalk ( /* Push start scope on scope stack and make it current */ Status = AcpiDsScopeStackPush (ParserState->StartNode, - ParserState->StartNode->Type, WalkState); + ParserState->StartNode->Type, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/events/evevent.c b/src/acpica/source/components/events/evevent.c index e447356..eda09eb 100644 --- a/src/acpica/source/components/events/evevent.c +++ b/src/acpica/source/components/events/evevent.c @@ -275,8 +275,8 @@ AcpiEvFixedEventInitialize ( if (AcpiGbl_FixedEventInfo[i].EnableRegisterId != 0xFF) { Status = AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[i].EnableRegisterId, - ACPI_DISABLE_EVENT); + AcpiGbl_FixedEventInfo[i].EnableRegisterId, + ACPI_DISABLE_EVENT); if (ACPI_FAILURE (Status)) { return (Status); @@ -379,8 +379,8 @@ AcpiEvFixedEventDispatch ( /* Clear the status bit */ (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[Event].StatusRegisterId, - ACPI_CLEAR_STATUS); + AcpiGbl_FixedEventInfo[Event].StatusRegisterId, + ACPI_CLEAR_STATUS); /* * Make sure that a handler exists. If not, report an error @@ -389,8 +389,8 @@ AcpiEvFixedEventDispatch ( if (!AcpiGbl_FixedEventHandlers[Event].Handler) { (void) AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, - ACPI_DISABLE_EVENT); + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, + ACPI_DISABLE_EVENT); ACPI_ERROR ((AE_INFO, "No installed handler for fixed event - %s (%u), disabling", @@ -402,7 +402,7 @@ AcpiEvFixedEventDispatch ( /* Invoke the Fixed Event handler */ return ((AcpiGbl_FixedEventHandlers[Event].Handler)( - AcpiGbl_FixedEventHandlers[Event].Context)); + AcpiGbl_FixedEventHandlers[Event].Context)); } #endif /* !ACPI_REDUCED_HARDWARE */ diff --git a/src/acpica/source/components/events/evglock.c b/src/acpica/source/components/events/evglock.c index e1ebf19..8353ffb 100644 --- a/src/acpica/source/components/events/evglock.c +++ b/src/acpica/source/components/events/evglock.c @@ -162,7 +162,7 @@ AcpiEvInitGlobalLockHandler ( /* Attempt installation of the global lock handler */ Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL, - AcpiEvGlobalLockHandler, NULL); + AcpiEvGlobalLockHandler, NULL); /* * If the global lock does not exist on this platform, the attempt to @@ -212,9 +212,10 @@ AcpiEvRemoveGlobalLockHandler ( ACPI_FUNCTION_TRACE (EvRemoveGlobalLockHandler); + AcpiGbl_GlobalLockPresent = FALSE; Status = AcpiRemoveFixedEventHandler (ACPI_EVENT_GLOBAL, - AcpiEvGlobalLockHandler); + AcpiEvGlobalLockHandler); AcpiOsDeleteLock (AcpiGbl_GlobalLockPendingLock); return_ACPI_STATUS (Status); @@ -374,8 +375,8 @@ AcpiEvAcquireGlobalLock ( * Wait for handshake with the global lock interrupt handler. * This interface releases the interpreter if we must wait. */ - Status = AcpiExSystemWaitSemaphore (AcpiGbl_GlobalLockSemaphore, - ACPI_WAIT_FOREVER); + Status = AcpiExSystemWaitSemaphore ( + AcpiGbl_GlobalLockSemaphore, ACPI_WAIT_FOREVER); Flags = AcpiOsAcquireLock (AcpiGbl_GlobalLockPendingLock); @@ -433,7 +434,7 @@ AcpiEvReleaseGlobalLock ( if (Pending) { Status = AcpiWriteBitRegister ( - ACPI_BITREG_GLOBAL_LOCK_RELEASE, ACPI_ENABLE_EVENT); + ACPI_BITREG_GLOBAL_LOCK_RELEASE, ACPI_ENABLE_EVENT); } ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Released hardware Global Lock\n")); diff --git a/src/acpica/source/components/events/evgpe.c b/src/acpica/source/components/events/evgpe.c index 4dceaa4..54316fe 100644 --- a/src/acpica/source/components/events/evgpe.c +++ b/src/acpica/source/components/events/evgpe.c @@ -176,8 +176,8 @@ AcpiEvUpdateGpeEnableMask ( { ACPI_SET_BIT (GpeRegisterInfo->EnableForRun, (UINT8) RegisterBit); } - GpeRegisterInfo->EnableMask = GpeRegisterInfo->EnableForRun; + GpeRegisterInfo->EnableMask = GpeRegisterInfo->EnableForRun; return_ACPI_STATUS (AE_OK); } @@ -399,7 +399,7 @@ AcpiEvGetGpeEventInfo ( for (i = 0; i < ACPI_MAX_GPE_BLOCKS; i++) { GpeInfo = AcpiEvLowGetGpeInfo (GpeNumber, - AcpiGbl_GpeFadtBlocks[i]); + AcpiGbl_GpeFadtBlocks[i]); if (GpeInfo) { return (GpeInfo); @@ -660,8 +660,8 @@ AcpiEvAsynchExecuteGpeMethod ( Notify = GpeEventInfo->Dispatch.NotifyList; while (ACPI_SUCCESS (Status) && Notify) { - Status = AcpiEvQueueNotifyRequest (Notify->DeviceNode, - ACPI_NOTIFY_DEVICE_WAKE); + Status = AcpiEvQueueNotifyRequest ( + Notify->DeviceNode, ACPI_NOTIFY_DEVICE_WAKE); Notify = Notify->Next; } @@ -705,7 +705,7 @@ AcpiEvAsynchExecuteGpeMethod ( /* Defer enabling of GPE until all notify handlers are done */ Status = AcpiOsExecute (OSL_NOTIFY_HANDLER, - AcpiEvAsynchEnableGpe, GpeEventInfo); + AcpiEvAsynchEnableGpe, GpeEventInfo); if (ACPI_SUCCESS (Status)) { return_VOID; @@ -850,8 +850,8 @@ AcpiEvGpeDispatch ( { ACPI_EXCEPTION ((AE_INFO, Status, "Unable to clear GPE %02X", GpeNumber)); - (void) AcpiHwLowSetGpe (GpeEventInfo, - ACPI_GPE_CONDITIONAL_ENABLE); + (void) AcpiHwLowSetGpe ( + GpeEventInfo, ACPI_GPE_CONDITIONAL_ENABLE); return_UINT32 (ACPI_INTERRUPT_NOT_HANDLED); } } @@ -888,7 +888,7 @@ AcpiEvGpeDispatch ( * NOTE: Level-triggered GPEs are cleared after the method completes. */ Status = AcpiOsExecute (OSL_GPE_HANDLER, - AcpiEvAsynchExecuteGpeMethod, GpeEventInfo); + AcpiEvAsynchExecuteGpeMethod, GpeEventInfo); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, diff --git a/src/acpica/source/components/events/evgpeblk.c b/src/acpica/source/components/events/evgpeblk.c index e067457..7a3c15d 100644 --- a/src/acpica/source/components/events/evgpeblk.c +++ b/src/acpica/source/components/events/evgpeblk.c @@ -265,6 +265,7 @@ AcpiEvDeleteGpeBlock ( { GpeBlock->Next->Previous = GpeBlock->Previous; } + AcpiOsReleaseLock (AcpiGbl_GpeLock, Flags); } @@ -313,8 +314,8 @@ AcpiEvCreateGpeInfoBlocks ( /* Allocate the GPE register information block */ GpeRegisterInfo = ACPI_ALLOCATE_ZEROED ( - (ACPI_SIZE) GpeBlock->RegisterCount * - sizeof (ACPI_GPE_REGISTER_INFO)); + (ACPI_SIZE) GpeBlock->RegisterCount * + sizeof (ACPI_GPE_REGISTER_INFO)); if (!GpeRegisterInfo) { ACPI_ERROR ((AE_INFO, @@ -327,7 +328,7 @@ AcpiEvCreateGpeInfoBlocks ( * per register. Initialization to zeros is sufficient. */ GpeEventInfo = ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) GpeBlock->GpeCount * - sizeof (ACPI_GPE_EVENT_INFO)); + sizeof (ACPI_GPE_EVENT_INFO)); if (!GpeEventInfo) { ACPI_ERROR ((AE_INFO, @@ -339,7 +340,7 @@ AcpiEvCreateGpeInfoBlocks ( /* Save the new Info arrays in the GPE block */ GpeBlock->RegisterInfo = GpeRegisterInfo; - GpeBlock->EventInfo = GpeEventInfo; + GpeBlock->EventInfo = GpeEventInfo; /* * Initialize the GPE Register and Event structures. A goal of these @@ -348,7 +349,7 @@ AcpiEvCreateGpeInfoBlocks ( * first half, and the enable registers occupy the second half. */ ThisRegister = GpeRegisterInfo; - ThisEvent = GpeEventInfo; + ThisEvent = GpeEventInfo; for (i = 0; i < GpeBlock->RegisterCount; i++) { @@ -506,8 +507,8 @@ AcpiEvCreateGpeBlock ( WalkInfo.ExecuteByOwnerId = FALSE; Status = AcpiNsWalkNamespace (ACPI_TYPE_METHOD, GpeDevice, - ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, - AcpiEvMatchGpeMethod, NULL, &WalkInfo, NULL); + ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, + AcpiEvMatchGpeMethod, NULL, &WalkInfo, NULL); /* Return the new block */ diff --git a/src/acpica/source/components/events/evgpeinit.c b/src/acpica/source/components/events/evgpeinit.c index bf3c6e5..d8e4ee9 100644 --- a/src/acpica/source/components/events/evgpeinit.c +++ b/src/acpica/source/components/events/evgpeinit.c @@ -210,10 +210,10 @@ AcpiEvGpeInitialize ( /* Install GPE Block 0 */ Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice, - AcpiGbl_FADT.XGpe0Block.Address, - AcpiGbl_FADT.XGpe0Block.SpaceId, - RegisterCount0, 0, - AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]); + AcpiGbl_FADT.XGpe0Block.Address, + AcpiGbl_FADT.XGpe0Block.SpaceId, + RegisterCount0, 0, + AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[0]); if (ACPI_FAILURE (Status)) { @@ -250,11 +250,11 @@ AcpiEvGpeInitialize ( /* Install GPE Block 1 */ Status = AcpiEvCreateGpeBlock (AcpiGbl_FadtGpeDevice, - AcpiGbl_FADT.XGpe1Block.Address, - AcpiGbl_FADT.XGpe1Block.SpaceId, - RegisterCount1, - AcpiGbl_FADT.Gpe1Base, - AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]); + AcpiGbl_FADT.XGpe1Block.Address, + AcpiGbl_FADT.XGpe1Block.SpaceId, + RegisterCount1, + AcpiGbl_FADT.Gpe1Base, + AcpiGbl_FADT.SciInterrupt, &AcpiGbl_GpeFadtBlocks[1]); if (ACPI_FAILURE (Status)) { @@ -267,7 +267,7 @@ AcpiEvGpeInitialize ( * space. However, GPE0 always starts at GPE number zero. */ GpeNumberMax = AcpiGbl_FADT.Gpe1Base + - ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1); + ((RegisterCount1 * ACPI_GPE_REGISTER_WIDTH) - 1); } } @@ -347,9 +347,9 @@ AcpiEvUpdateGpes ( WalkInfo.GpeDevice = GpeBlock->Node; Status = AcpiNsWalkNamespace (ACPI_TYPE_METHOD, - WalkInfo.GpeDevice, ACPI_UINT32_MAX, - ACPI_NS_WALK_NO_UNLOCK, AcpiEvMatchGpeMethod, - NULL, &WalkInfo, NULL); + WalkInfo.GpeDevice, ACPI_UINT32_MAX, + ACPI_NS_WALK_NO_UNLOCK, AcpiEvMatchGpeMethod, + NULL, &WalkInfo, NULL); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -502,7 +502,7 @@ AcpiEvMatchGpeMethod ( } if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == - ACPI_GPE_DISPATCH_METHOD) + ACPI_GPE_DISPATCH_METHOD) { /* * If there is already a method, ignore this method. But check diff --git a/src/acpica/source/components/events/evgpeutil.c b/src/acpica/source/components/events/evgpeutil.c index f204bba..aafbac9 100644 --- a/src/acpica/source/components/events/evgpeutil.c +++ b/src/acpica/source/components/events/evgpeutil.c @@ -310,7 +310,7 @@ AcpiEvGetGpeXruptBlock ( if (InterruptNumber != AcpiGbl_FADT.SciInterrupt) { Status = AcpiOsInstallInterruptHandler (InterruptNumber, - AcpiEvGpeXruptHandler, GpeXrupt); + AcpiEvGpeXruptHandler, GpeXrupt); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -360,7 +360,7 @@ AcpiEvDeleteGpeXrupt ( /* Disable this interrupt */ Status = AcpiOsRemoveInterruptHandler ( - GpeXrupt->InterruptNumber, AcpiEvGpeXruptHandler); + GpeXrupt->InterruptNumber, AcpiEvGpeXruptHandler); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -446,7 +446,7 @@ AcpiEvDeleteGpeHandlers ( GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK; } else if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == - ACPI_GPE_DISPATCH_NOTIFY) + ACPI_GPE_DISPATCH_NOTIFY) { /* Delete the implicit notification device list */ @@ -457,6 +457,7 @@ AcpiEvDeleteGpeHandlers ( ACPI_FREE (Notify); Notify = Next; } + GpeEventInfo->Dispatch.NotifyList = NULL; GpeEventInfo->Flags &= ~ACPI_GPE_DISPATCH_MASK; } diff --git a/src/acpica/source/components/events/evhandler.c b/src/acpica/source/components/events/evhandler.c index d02ea53..4375e7c 100644 --- a/src/acpica/source/components/events/evhandler.c +++ b/src/acpica/source/components/events/evhandler.c @@ -194,8 +194,8 @@ AcpiEvInstallRegionHandlers ( for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++) { Status = AcpiEvInstallSpaceHandler (AcpiGbl_RootNode, - AcpiGbl_DefaultAddressSpaces[i], - ACPI_DEFAULT_HANDLER, NULL, NULL); + AcpiGbl_DefaultAddressSpaces[i], + ACPI_DEFAULT_HANDLER, NULL, NULL); switch (Status) { case AE_OK: @@ -256,7 +256,7 @@ AcpiEvHasDefaultHandler ( if (HandlerObj->AddressSpace.SpaceId == SpaceId) { if (HandlerObj->AddressSpace.HandlerFlags & - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) { return (TRUE); } @@ -354,7 +354,7 @@ AcpiEvInstallHandler ( /* Found a handler, is it for the same address space? */ if (NextHandlerObj->AddressSpace.SpaceId == - HandlerObj->AddressSpace.SpaceId) + HandlerObj->AddressSpace.SpaceId) { ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Found handler for region [%s] in device %p(%p) " @@ -646,8 +646,8 @@ AcpiEvInstallSpaceHandler ( * of the branch */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, Node, ACPI_UINT32_MAX, - ACPI_NS_WALK_UNLOCK, AcpiEvInstallHandler, NULL, - HandlerObj, NULL); + ACPI_NS_WALK_UNLOCK, AcpiEvInstallHandler, NULL, + HandlerObj, NULL); UnlockAndExit: return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/events/evmisc.c b/src/acpica/source/components/events/evmisc.c index 1735038..0d6492f 100644 --- a/src/acpica/source/components/events/evmisc.c +++ b/src/acpica/source/components/events/evmisc.c @@ -147,6 +147,7 @@ BOOLEAN AcpiEvIsNotifyObject ( ACPI_NAMESPACE_NODE *Node) { + switch (Node->Type) { case ACPI_TYPE_DEVICE: @@ -255,8 +256,8 @@ AcpiEvQueueNotifyRequest ( AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Node->Type), NotifyValue, AcpiUtGetNotifyName (NotifyValue, ACPI_TYPE_ANY), Node)); - Status = AcpiOsExecute (OSL_NOTIFY_HANDLER, AcpiEvNotifyDispatch, - Info); + Status = AcpiOsExecute (OSL_NOTIFY_HANDLER, + AcpiEvNotifyDispatch, Info); if (ACPI_FAILURE (Status)) { AcpiUtDeleteGenericState (Info); diff --git a/src/acpica/source/components/events/evregion.c b/src/acpica/source/components/events/evregion.c index 24848db..2b00616 100644 --- a/src/acpica/source/components/events/evregion.c +++ b/src/acpica/source/components/events/evregion.c @@ -182,7 +182,7 @@ AcpiEvInitializeOpRegions ( AcpiGbl_DefaultAddressSpaces[i])) { Status = AcpiEvExecuteRegMethods (AcpiGbl_RootNode, - AcpiGbl_DefaultAddressSpaces[i]); + AcpiGbl_DefaultAddressSpaces[i]); } } @@ -282,7 +282,7 @@ AcpiEvAddressSpaceDispatch ( AcpiExExitInterpreter (); Status = RegionSetup (RegionObj, ACPI_REGION_ACTIVATE, - Context, &RegionContext); + Context, &RegionContext); /* Re-enter the interpreter */ @@ -364,7 +364,7 @@ AcpiEvAddressSpaceDispatch ( AcpiUtGetRegionName (RegionObj->Region.SpaceId))); if (!(HandlerDesc->AddressSpace.HandlerFlags & - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { /* * For handlers other than the default (supplied) handlers, we must @@ -386,7 +386,7 @@ AcpiEvAddressSpaceDispatch ( } if (!(HandlerDesc->AddressSpace.HandlerFlags & - ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) + ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) { /* * We just returned from a non-default handler, we must re-enter the diff --git a/src/acpica/source/components/events/evrgnini.c b/src/acpica/source/components/events/evrgnini.c index 405af22..ebc3b59 100644 --- a/src/acpica/source/components/events/evrgnini.c +++ b/src/acpica/source/components/events/evrgnini.c @@ -320,9 +320,9 @@ AcpiEvPciConfigRegionSetup ( /* Install a handler for this PCI root bridge */ Status = AcpiInstallAddressSpaceHandler ( - (ACPI_HANDLE) PciRootNode, - ACPI_ADR_SPACE_PCI_CONFIG, - ACPI_DEFAULT_HANDLER, NULL, NULL); + (ACPI_HANDLE) PciRootNode, + ACPI_ADR_SPACE_PCI_CONFIG, + ACPI_DEFAULT_HANDLER, NULL, NULL); if (ACPI_FAILURE (Status)) { if (Status == AE_SAME_HANDLER) @@ -396,7 +396,7 @@ AcpiEvPciConfigRegionSetup ( * contained in the parent's scope. */ Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, - PciDeviceNode, &PciValue); + PciDeviceNode, &PciValue); /* * The default is zero, and since the allocation above zeroed the data, @@ -411,7 +411,7 @@ AcpiEvPciConfigRegionSetup ( /* The PCI segment number comes from the _SEG method */ Status = AcpiUtEvaluateNumericObject (METHOD_NAME__SEG, - PciRootNode, &PciValue); + PciRootNode, &PciValue); if (ACPI_SUCCESS (Status)) { PciId->Segment = ACPI_LOWORD (PciValue); @@ -420,7 +420,7 @@ AcpiEvPciConfigRegionSetup ( /* The PCI bus number comes from the _BBN method */ Status = AcpiUtEvaluateNumericObject (METHOD_NAME__BBN, - PciRootNode, &PciValue); + PciRootNode, &PciValue); if (ACPI_SUCCESS (Status)) { PciId->Bus = ACPI_LOWORD (PciValue); @@ -676,7 +676,7 @@ AcpiEvInitializeRegion ( /* Find any "_REG" method associated with this region definition */ Status = AcpiNsSearchOneScope ( - *RegNamePtr, Node, ACPI_TYPE_METHOD, &MethodNode); + *RegNamePtr, Node, ACPI_TYPE_METHOD, &MethodNode); if (ACPI_SUCCESS (Status)) { /* @@ -752,7 +752,7 @@ AcpiEvInitializeRegion ( HandlerObj, RegionObj, ObjDesc)); Status = AcpiEvAttachRegion (HandlerObj, RegionObj, - AcpiNsLocked); + AcpiNsLocked); /* * Tell all users that this region is usable by diff --git a/src/acpica/source/components/events/evsci.c b/src/acpica/source/components/events/evsci.c index 987b03c..f021ab8 100644 --- a/src/acpica/source/components/events/evsci.c +++ b/src/acpica/source/components/events/evsci.c @@ -291,7 +291,7 @@ AcpiEvInstallSciHandler ( Status = AcpiOsInstallInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt, - AcpiEvSciXruptHandler, AcpiGbl_GpeXruptListHead); + AcpiEvSciXruptHandler, AcpiGbl_GpeXruptListHead); return_ACPI_STATUS (Status); } @@ -330,7 +330,7 @@ AcpiEvRemoveAllSciHandlers ( /* Just let the OS remove the handler and disable the level */ Status = AcpiOsRemoveInterruptHandler ((UINT32) AcpiGbl_FADT.SciInterrupt, - AcpiEvSciXruptHandler); + AcpiEvSciXruptHandler); if (!AcpiGbl_SciHandlerList) { diff --git a/src/acpica/source/components/events/evxface.c b/src/acpica/source/components/events/evxface.c index 5e3391d..5469a22 100644 --- a/src/acpica/source/components/events/evxface.c +++ b/src/acpica/source/components/events/evxface.c @@ -1074,8 +1074,8 @@ AcpiInstallGpeHandler ( ACPI_FUNCTION_TRACE (AcpiInstallGpeHandler); - Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, FALSE, - Address, Context); + Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, + FALSE, Address, Context); return_ACPI_STATUS (Status); } @@ -1115,8 +1115,8 @@ AcpiInstallGpeRawHandler ( ACPI_FUNCTION_TRACE (AcpiInstallGpeRawHandler); - Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, TRUE, - Address, Context); + Status = AcpiEvInstallGpeHandler (GpeDevice, GpeNumber, Type, + TRUE, Address, Context); return_ACPI_STATUS (Status); } @@ -1282,7 +1282,7 @@ AcpiAcquireGlobalLock ( AcpiExEnterInterpreter (); Status = AcpiExAcquireMutexObject (Timeout, - AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); + AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); if (ACPI_SUCCESS (Status)) { diff --git a/src/acpica/source/components/events/evxfevnt.c b/src/acpica/source/components/events/evxfevnt.c index 271aacc..b4fd27e 100644 --- a/src/acpica/source/components/events/evxfevnt.c +++ b/src/acpica/source/components/events/evxfevnt.c @@ -148,7 +148,7 @@ AcpiEnable ( /* ACPI tables must be present */ - if (!AcpiTbTablesLoaded ()) + if (AcpiGbl_FadtIndex == ACPI_INVALID_TABLE_INDEX) { return_ACPI_STATUS (AE_NO_ACPI_TABLES); } @@ -164,7 +164,8 @@ AcpiEnable ( if (AcpiHwGetMode() == ACPI_SYS_MODE_ACPI) { - ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "System is already in ACPI mode\n")); + ACPI_DEBUG_PRINT ((ACPI_DB_INIT, + "System is already in ACPI mode\n")); } else { @@ -234,7 +235,8 @@ AcpiDisable ( return_ACPI_STATUS (Status); } - ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI mode disabled\n")); + ACPI_DEBUG_PRINT ((ACPI_DB_INIT, + "ACPI mode disabled\n")); } return_ACPI_STATUS (Status); @@ -280,8 +282,8 @@ AcpiEnableEvent ( * register bit) */ Status = AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, - ACPI_ENABLE_EVENT); + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, + ACPI_ENABLE_EVENT); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -290,7 +292,7 @@ AcpiEnableEvent ( /* Make sure that the hardware responded */ Status = AcpiReadBitRegister ( - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -346,15 +348,15 @@ AcpiDisableEvent ( * register bit) */ Status = AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, - ACPI_DISABLE_EVENT); + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, + ACPI_DISABLE_EVENT); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); } Status = AcpiReadBitRegister ( - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &Value); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -407,8 +409,8 @@ AcpiClearEvent ( * register bit) */ Status = AcpiWriteBitRegister ( - AcpiGbl_FixedEventInfo[Event].StatusRegisterId, - ACPI_CLEAR_STATUS); + AcpiGbl_FixedEventInfo[Event].StatusRegisterId, + ACPI_CLEAR_STATUS); return_ACPI_STATUS (Status); } @@ -465,7 +467,7 @@ AcpiGetEventStatus ( /* Fixed event currently enabled? */ Status = AcpiReadBitRegister ( - AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &InByte); + AcpiGbl_FixedEventInfo[Event].EnableRegisterId, &InByte); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -480,7 +482,7 @@ AcpiGetEventStatus ( /* Fixed event currently active? */ Status = AcpiReadBitRegister ( - AcpiGbl_FixedEventInfo[Event].StatusRegisterId, &InByte); + AcpiGbl_FixedEventInfo[Event].StatusRegisterId, &InByte); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/events/evxfgpe.c b/src/acpica/source/components/events/evxfgpe.c index f4f0da1..f55261f 100644 --- a/src/acpica/source/components/events/evxfgpe.c +++ b/src/acpica/source/components/events/evxfgpe.c @@ -512,7 +512,7 @@ AcpiSetupGpeForWake ( * level-triggered (for windows compatibility). */ if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == - ACPI_GPE_DISPATCH_NONE) + ACPI_GPE_DISPATCH_NONE) { /* * This is the first device for implicit notify on this GPE. @@ -527,7 +527,7 @@ AcpiSetupGpeForWake ( * this device to the notify list. */ if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) == - ACPI_GPE_DISPATCH_NOTIFY) + ACPI_GPE_DISPATCH_NOTIFY) { /* Ensure that the device is not already in the list */ @@ -992,8 +992,8 @@ AcpiInstallGpeBlock ( * is always zero */ Status = AcpiEvCreateGpeBlock (Node, GpeBlockAddress->Address, - GpeBlockAddress->SpaceId, RegisterCount, - 0, InterruptNumber, &GpeBlock); + GpeBlockAddress->SpaceId, RegisterCount, + 0, InterruptNumber, &GpeBlock); if (ACPI_FAILURE (Status)) { goto UnlockAndExit; diff --git a/src/acpica/source/components/events/evxfregn.c b/src/acpica/source/components/events/evxfregn.c index e220676..4b70d09 100644 --- a/src/acpica/source/components/events/evxfregn.c +++ b/src/acpica/source/components/events/evxfregn.c @@ -186,7 +186,8 @@ AcpiInstallAddressSpaceHandler ( /* Install the handler for all Regions for this Space ID */ - Status = AcpiEvInstallSpaceHandler (Node, SpaceId, Handler, Setup, Context); + Status = AcpiEvInstallSpaceHandler ( + Node, SpaceId, Handler, Setup, Context); if (ACPI_FAILURE (Status)) { goto UnlockAndExit; @@ -216,6 +217,7 @@ AcpiInstallAddressSpaceHandler ( if (!AcpiGbl_RegMethodsExecuted) { /* We will defer execution of the _REG methods for this space */ + goto UnlockAndExit; } break; diff --git a/src/acpica/source/components/executer/exconfig.c b/src/acpica/source/components/executer/exconfig.c index d4f7087..06aca94 100644 --- a/src/acpica/source/components/executer/exconfig.c +++ b/src/acpica/source/components/executer/exconfig.c @@ -254,9 +254,9 @@ AcpiExLoadTableOp ( /* Find the ACPI table in the RSDT/XSDT */ Status = AcpiTbFindTable ( - Operand[0]->String.Pointer, - Operand[1]->String.Pointer, - Operand[2]->String.Pointer, &TableIndex); + Operand[0]->String.Pointer, + Operand[1]->String.Pointer, + Operand[2]->String.Pointer, &TableIndex); if (ACPI_FAILURE (Status)) { if (Status != AE_NOT_FOUND) @@ -290,7 +290,7 @@ AcpiExLoadTableOp ( * location within the namespace where the table will be loaded. */ Status = AcpiNsGetNode (StartNode, Operand[3]->String.Pointer, - ACPI_NS_SEARCH_PARENT, &ParentNode); + ACPI_NS_SEARCH_PARENT, &ParentNode); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -314,7 +314,7 @@ AcpiExLoadTableOp ( /* Find the node referenced by the ParameterPathString */ Status = AcpiNsGetNode (StartNode, Operand[4]->String.Pointer, - ACPI_NS_SEARCH_PARENT, &ParameterNode); + ACPI_NS_SEARCH_PARENT, &ParameterNode); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -336,8 +336,7 @@ AcpiExLoadTableOp ( /* Store the parameter data into the optional parameter object */ Status = AcpiExStore (Operand[5], - ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParameterNode), - WalkState); + ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParameterNode), WalkState); if (ACPI_FAILURE (Status)) { (void) AcpiExUnloadTable (DdbHandle); @@ -359,7 +358,7 @@ AcpiExLoadTableOp ( if (AcpiGbl_TableHandler) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, - AcpiGbl_TableHandlerContext); + AcpiGbl_TableHandlerContext); } *ReturnDesc = DdbHandle; @@ -399,7 +398,7 @@ AcpiExRegionRead ( for (i = 0; i < Length; i++) { Status = AcpiEvAddressSpaceDispatch (ObjDesc, NULL, ACPI_READ, - RegionOffset, 8, &Value); + RegionOffset, 8, &Value); if (ACPI_FAILURE (Status)) { return (Status); @@ -469,8 +468,8 @@ AcpiExLoadOp ( } /* - * If the Region Address and Length have not been previously evaluated, - * evaluate them now and save the results. + * If the Region Address and Length have not been previously + * evaluated, evaluate them now and save the results. */ if (!(ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)) { @@ -490,7 +489,7 @@ AcpiExLoadOp ( } Status = AcpiExRegionRead (ObjDesc, sizeof (ACPI_TABLE_HEADER), - ACPI_CAST_PTR (UINT8, TableHeader)); + ACPI_CAST_PTR (UINT8, TableHeader)); Length = TableHeader->Length; ACPI_FREE (TableHeader); @@ -533,7 +532,7 @@ AcpiExLoadOp ( /* Read the entire table */ Status = AcpiExRegionRead (ObjDesc, Length, - ACPI_CAST_PTR (UINT8, Table)); + ACPI_CAST_PTR (UINT8, Table)); if (ACPI_FAILURE (Status)) { ACPI_FREE (Table); @@ -555,7 +554,8 @@ AcpiExLoadOp ( /* Get the actual table length from the table header */ - TableHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, ObjDesc->Buffer.Pointer); + TableHeader = ACPI_CAST_PTR ( + ACPI_TABLE_HEADER, ObjDesc->Buffer.Pointer); Length = TableHeader->Length; /* Table cannot extend beyond the buffer */ @@ -570,8 +570,8 @@ AcpiExLoadOp ( } /* - * Copy the table from the buffer because the buffer could be modified - * or even deleted in the future + * Copy the table from the buffer because the buffer could be + * modified or even deleted in the future */ Table = ACPI_ALLOCATE (Length); if (!Table) @@ -593,8 +593,8 @@ AcpiExLoadOp ( (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES); Status = AcpiTbInstallStandardTable (ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, TRUE, TRUE, - &TableIndex); + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, TRUE, TRUE, + &TableIndex); (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); if (ACPI_FAILURE (Status)) @@ -609,7 +609,8 @@ AcpiExLoadOp ( * Note: Now table is "INSTALLED", it must be validated before * loading. */ - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); + Status = AcpiTbValidateTable ( + &AcpiGbl_RootTableList.Tables[TableIndex]); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -652,7 +653,7 @@ AcpiExLoadOp ( if (AcpiGbl_TableHandler) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, - AcpiGbl_TableHandlerContext); + AcpiGbl_TableHandlerContext); } return_ACPI_STATUS (Status); @@ -729,7 +730,7 @@ AcpiExUnloadTable ( if (ACPI_SUCCESS (Status)) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_UNLOAD, Table, - AcpiGbl_TableHandlerContext); + AcpiGbl_TableHandlerContext); } } diff --git a/src/acpica/source/components/executer/exconvrt.c b/src/acpica/source/components/executer/exconvrt.c index 019a490..dc5fd9f 100644 --- a/src/acpica/source/components/executer/exconvrt.c +++ b/src/acpica/source/components/executer/exconvrt.c @@ -323,9 +323,7 @@ AcpiExConvertToBuffer ( /* Copy the integer to the buffer, LSB first */ NewBuf = ReturnDesc->Buffer.Pointer; - memcpy (NewBuf, - &ObjDesc->Integer.Value, - AcpiGbl_IntegerByteWidth); + memcpy (NewBuf, &ObjDesc->Integer.Value, AcpiGbl_IntegerByteWidth); break; case ACPI_TYPE_STRING: @@ -338,8 +336,8 @@ AcpiExConvertToBuffer ( * ASL/AML code that depends on the null being transferred to the new * buffer. */ - ReturnDesc = AcpiUtCreateBufferObject ( - (ACPI_SIZE) ObjDesc->String.Length + 1); + ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE) + ObjDesc->String.Length + 1); if (!ReturnDesc) { return_ACPI_STATUS (AE_NO_MEMORY); @@ -462,7 +460,8 @@ AcpiExConvertToAscii ( { /* Get one hex digit, most significant digits first */ - String[k] = (UINT8) AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j)); + String[k] = (UINT8) + AcpiUtHexToAsciiChar (Integer, ACPI_MUL_4 (j)); k++; } break; @@ -563,8 +562,8 @@ AcpiExConvertToString ( /* Convert integer to string */ - StringLength = AcpiExConvertToAscii (ObjDesc->Integer.Value, Base, - NewBuf, AcpiGbl_IntegerByteWidth); + StringLength = AcpiExConvertToAscii ( + ObjDesc->Integer.Value, Base, NewBuf, AcpiGbl_IntegerByteWidth); /* Null terminate at the correct place */ @@ -653,8 +652,7 @@ AcpiExConvertToString ( for (i = 0; i < ObjDesc->Buffer.Length; i++) { NewBuf += AcpiExConvertToAscii ( - (UINT64) ObjDesc->Buffer.Pointer[i], Base, - NewBuf, 1); + (UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1); *NewBuf++ = Separator; /* each separated by a comma or space */ } @@ -757,8 +755,7 @@ AcpiExConvertToTargetType ( * These types require an Integer operand. We can convert * a Buffer or a String to an Integer if necessary. */ - Status = AcpiExConvertToInteger (SourceDesc, ResultDesc, - 16); + Status = AcpiExConvertToInteger (SourceDesc, ResultDesc, 16); break; case ACPI_TYPE_STRING: @@ -767,7 +764,7 @@ AcpiExConvertToTargetType ( * Integer or Buffer if necessary */ Status = AcpiExConvertToString (SourceDesc, ResultDesc, - ACPI_IMPLICIT_CONVERT_HEX); + ACPI_IMPLICIT_CONVERT_HEX); break; case ACPI_TYPE_BUFFER: @@ -780,7 +777,8 @@ AcpiExConvertToTargetType ( default: - ACPI_ERROR ((AE_INFO, "Bad destination type during conversion: 0x%X", + ACPI_ERROR ((AE_INFO, + "Bad destination type during conversion: 0x%X", DestinationType)); Status = AE_AML_INTERNAL; break; diff --git a/src/acpica/source/components/executer/excreate.c b/src/acpica/source/components/executer/excreate.c index 9c7ffc1..fc36956 100644 --- a/src/acpica/source/components/executer/excreate.c +++ b/src/acpica/source/components/executer/excreate.c @@ -220,7 +220,7 @@ AcpiExCreateAlias ( * target node or the alias Node */ Status = AcpiNsAttachObject (AliasNode, - AcpiNsGetAttachedObject (TargetNode), TargetNode->Type); + AcpiNsGetAttachedObject (TargetNode), TargetNode->Type); break; } @@ -265,7 +265,7 @@ AcpiExCreateEvent ( * that the event is created in an unsignalled state */ Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, - &ObjDesc->Event.OsSemaphore); + &ObjDesc->Event.OsSemaphore); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -273,8 +273,9 @@ AcpiExCreateEvent ( /* Attach object to the Node */ - Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) WalkState->Operands[0], - ObjDesc, ACPI_TYPE_EVENT); + Status = AcpiNsAttachObject ( + (ACPI_NAMESPACE_NODE *) WalkState->Operands[0], + ObjDesc, ACPI_TYPE_EVENT); Cleanup: /* @@ -333,7 +334,8 @@ AcpiExCreateMutex ( ObjDesc->Mutex.SyncLevel = (UINT8) WalkState->Operands[1]->Integer.Value; ObjDesc->Mutex.Node = (ACPI_NAMESPACE_NODE *) WalkState->Operands[0]; - Status = AcpiNsAttachObject (ObjDesc->Mutex.Node, ObjDesc, ACPI_TYPE_MUTEX); + Status = AcpiNsAttachObject ( + ObjDesc->Mutex.Node, ObjDesc, ACPI_TYPE_MUTEX); Cleanup: @@ -401,7 +403,8 @@ AcpiExCreateRegion ( * a table load for this exception. Instead, if the region is * actually used at runtime, abort the executing method. */ - ACPI_ERROR ((AE_INFO, "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); + ACPI_ERROR ((AE_INFO, + "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); } ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "Region Type - %s (0x%X)\n", @@ -496,7 +499,7 @@ AcpiExCreateProcessor ( /* Install the processor object in the parent Node */ Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0], - ObjDesc, ACPI_TYPE_PROCESSOR); + ObjDesc, ACPI_TYPE_PROCESSOR); /* Remove local reference to the object */ @@ -547,7 +550,7 @@ AcpiExCreatePowerResource ( /* Install the power resource object in the parent Node */ Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0], - ObjDesc, ACPI_TYPE_POWER); + ObjDesc, ACPI_TYPE_POWER); /* Remove local reference to the object */ @@ -606,7 +609,8 @@ AcpiExCreateMethod ( * flag, and SyncLevel for efficiency. */ MethodFlags = (UINT8) Operand[1]->Integer.Value; - ObjDesc->Method.ParamCount = (UINT8) (MethodFlags & AML_METHOD_ARG_COUNT); + ObjDesc->Method.ParamCount = (UINT8) + (MethodFlags & AML_METHOD_ARG_COUNT); /* * Get the SyncLevel. If method is serialized, a mutex will be @@ -627,7 +631,7 @@ AcpiExCreateMethod ( /* Attach the new object to the method Node */ Status = AcpiNsAttachObject ((ACPI_NAMESPACE_NODE *) Operand[0], - ObjDesc, ACPI_TYPE_METHOD); + ObjDesc, ACPI_TYPE_METHOD); /* Remove local reference to the object */ diff --git a/src/acpica/source/components/executer/exdebug.c b/src/acpica/source/components/executer/exdebug.c index 00ec43f..67bd8fc 100644 --- a/src/acpica/source/components/executer/exdebug.c +++ b/src/acpica/source/components/executer/exdebug.c @@ -115,26 +115,13 @@ #include "acpi.h" #include "accommon.h" -#include "acnamesp.h" #include "acinterp.h" -#include "acparser.h" #define _COMPONENT ACPI_EXECUTER ACPI_MODULE_NAME ("exdebug") -static ACPI_OPERAND_OBJECT *AcpiGbl_TraceMethodObject = NULL; - -/* Local prototypes */ - -#ifdef ACPI_DEBUG_OUTPUT -static const char * -AcpiExGetTraceEventName ( - ACPI_TRACE_EVENT_TYPE Type); -#endif - - #ifndef ACPI_NO_ERROR_MESSAGES /******************************************************************************* * @@ -225,7 +212,7 @@ AcpiExDoDebugObject ( { AcpiOsPrintf ("%s: %p\n", AcpiUtGetTypeName (((ACPI_NAMESPACE_NODE *) SourceDesc)->Type), - SourceDesc); + SourceDesc); return_VOID; } else @@ -277,7 +264,7 @@ AcpiExDoDebugObject ( for (i = 0; i < SourceDesc->Package.Count; i++) { AcpiExDoDebugObject (SourceDesc->Package.Elements[i], - Level+4, i+1); + Level + 4, i + 1); } break; @@ -313,7 +300,7 @@ AcpiExDoDebugObject ( if (SourceDesc->Reference.Node) { if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Node) != - ACPI_DESC_TYPE_NAMED) + ACPI_DESC_TYPE_NAMED) { AcpiOsPrintf (" %p - Not a valid namespace node\n", SourceDesc->Reference.Node); @@ -338,7 +325,7 @@ AcpiExDoDebugObject ( default: AcpiExDoDebugObject ((SourceDesc->Reference.Node)->Object, - Level+4, 0); + Level + 4, 0); break; } } @@ -346,11 +333,11 @@ AcpiExDoDebugObject ( else if (SourceDesc->Reference.Object) { if (ACPI_GET_DESCRIPTOR_TYPE (SourceDesc->Reference.Object) == - ACPI_DESC_TYPE_NAMED) + ACPI_DESC_TYPE_NAMED) { AcpiExDoDebugObject (((ACPI_NAMESPACE_NODE *) SourceDesc->Reference.Object)->Object, - Level+4, 0); + Level + 4, 0); } else { @@ -399,362 +386,3 @@ AcpiExDoDebugObject ( return_VOID; } #endif - - -/******************************************************************************* - * - * FUNCTION: AcpiExInterpreterTraceEnabled - * - * PARAMETERS: Name - Whether method name should be matched, - * this should be checked before starting - * the tracer - * - * RETURN: TRUE if interpreter trace is enabled. - * - * DESCRIPTION: Check whether interpreter trace is enabled - * - ******************************************************************************/ - -static BOOLEAN -AcpiExInterpreterTraceEnabled ( - char *Name) -{ - - /* Check if tracing is enabled */ - - if (!(AcpiGbl_TraceFlags & ACPI_TRACE_ENABLED)) - { - return (FALSE); - } - - /* - * Check if tracing is filtered: - * - * 1. If the tracer is started, AcpiGbl_TraceMethodObject should have - * been filled by the trace starter - * 2. If the tracer is not started, AcpiGbl_TraceMethodName should be - * matched if it is specified - * 3. If the tracer is oneshot style, AcpiGbl_TraceMethodName should - * not be cleared by the trace stopper during the first match - */ - if (AcpiGbl_TraceMethodObject) - { - return (TRUE); - } - if (Name && - (AcpiGbl_TraceMethodName && - strcmp (AcpiGbl_TraceMethodName, Name))) - { - return (FALSE); - } - if ((AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) && - !AcpiGbl_TraceMethodName) - { - return (FALSE); - } - - return (TRUE); -} - - -/******************************************************************************* - * - * FUNCTION: AcpiExGetTraceEventName - * - * PARAMETERS: Type - Trace event type - * - * RETURN: Trace event name. - * - * DESCRIPTION: Used to obtain the full trace event name. - * - ******************************************************************************/ - -#ifdef ACPI_DEBUG_OUTPUT - -static const char * -AcpiExGetTraceEventName ( - ACPI_TRACE_EVENT_TYPE Type) -{ - switch (Type) - { - case ACPI_TRACE_AML_METHOD: - - return "Method"; - - case ACPI_TRACE_AML_OPCODE: - - return "Opcode"; - - case ACPI_TRACE_AML_REGION: - - return "Region"; - - default: - - return ""; - } -} - -#endif - - -/******************************************************************************* - * - * FUNCTION: AcpiExTracePoint - * - * PARAMETERS: Type - Trace event type - * Begin - TRUE if before execution - * Aml - Executed AML address - * Pathname - Object path - * - * RETURN: None - * - * DESCRIPTION: Internal interpreter execution trace. - * - ******************************************************************************/ - -void -AcpiExTracePoint ( - ACPI_TRACE_EVENT_TYPE Type, - BOOLEAN Begin, - UINT8 *Aml, - char *Pathname) -{ - - ACPI_FUNCTION_NAME (ExTracePoint); - - - if (Pathname) - { - ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, - "%s %s [0x%p:%s] execution.\n", - AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", - Aml, Pathname)); - } - else - { - ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, - "%s %s [0x%p] execution.\n", - AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", - Aml)); - } -} - - -/******************************************************************************* - * - * FUNCTION: AcpiExStartTraceMethod - * - * PARAMETERS: MethodNode - Node of the method - * ObjDesc - The method object - * WalkState - current state, NULL if not yet executing - * a method. - * - * RETURN: None - * - * DESCRIPTION: Start control method execution trace - * - ******************************************************************************/ - -void -AcpiExStartTraceMethod ( - ACPI_NAMESPACE_NODE *MethodNode, - ACPI_OPERAND_OBJECT *ObjDesc, - ACPI_WALK_STATE *WalkState) -{ - ACPI_STATUS Status; - char *Pathname = NULL; - BOOLEAN Enabled = FALSE; - - - ACPI_FUNCTION_NAME (ExStartTraceMethod); - - - if (MethodNode) - { - Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); - } - - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (Status)) - { - goto Exit; - } - - Enabled = AcpiExInterpreterTraceEnabled (Pathname); - if (Enabled && !AcpiGbl_TraceMethodObject) - { - AcpiGbl_TraceMethodObject = ObjDesc; - AcpiGbl_OriginalDbgLevel = AcpiDbgLevel; - AcpiGbl_OriginalDbgLayer = AcpiDbgLayer; - AcpiDbgLevel = ACPI_TRACE_LEVEL_ALL; - AcpiDbgLayer = ACPI_TRACE_LAYER_ALL; - - if (AcpiGbl_TraceDbgLevel) - { - AcpiDbgLevel = AcpiGbl_TraceDbgLevel; - } - if (AcpiGbl_TraceDbgLayer) - { - AcpiDbgLayer = AcpiGbl_TraceDbgLayer; - } - } - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); - -Exit: - if (Enabled) - { - ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, TRUE, - ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); - } - if (Pathname) - { - ACPI_FREE (Pathname); - } -} - - -/******************************************************************************* - * - * FUNCTION: AcpiExStopTraceMethod - * - * PARAMETERS: MethodNode - Node of the method - * ObjDesc - The method object - * WalkState - current state, NULL if not yet executing - * a method. - * - * RETURN: None - * - * DESCRIPTION: Stop control method execution trace - * - ******************************************************************************/ - -void -AcpiExStopTraceMethod ( - ACPI_NAMESPACE_NODE *MethodNode, - ACPI_OPERAND_OBJECT *ObjDesc, - ACPI_WALK_STATE *WalkState) -{ - ACPI_STATUS Status; - char *Pathname = NULL; - BOOLEAN Enabled; - - - ACPI_FUNCTION_NAME (ExStopTraceMethod); - - - if (MethodNode) - { - Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); - } - - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (Status)) - { - goto ExitPath; - } - - Enabled = AcpiExInterpreterTraceEnabled (NULL); - - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); - - if (Enabled) - { - ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, FALSE, - ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); - } - - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (Status)) - { - goto ExitPath; - } - - /* Check whether the tracer should be stopped */ - - if (AcpiGbl_TraceMethodObject == ObjDesc) - { - /* Disable further tracing if type is one-shot */ - - if (AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) - { - AcpiGbl_TraceMethodName = NULL; - } - - AcpiDbgLevel = AcpiGbl_OriginalDbgLevel; - AcpiDbgLayer = AcpiGbl_OriginalDbgLayer; - AcpiGbl_TraceMethodObject = NULL; - } - - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); - -ExitPath: - if (Pathname) - { - ACPI_FREE (Pathname); - } -} - - -/******************************************************************************* - * - * FUNCTION: AcpiExStartTraceOpcode - * - * PARAMETERS: Op - The parser opcode object - * WalkState - current state, NULL if not yet executing - * a method. - * - * RETURN: None - * - * DESCRIPTION: Start opcode execution trace - * - ******************************************************************************/ - -void -AcpiExStartTraceOpcode ( - ACPI_PARSE_OBJECT *Op, - ACPI_WALK_STATE *WalkState) -{ - - ACPI_FUNCTION_NAME (ExStartTraceOpcode); - - - if (AcpiExInterpreterTraceEnabled (NULL) && - (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) - { - ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, TRUE, - Op->Common.Aml, Op->Common.AmlOpName); - } -} - - -/******************************************************************************* - * - * FUNCTION: AcpiExStopTraceOpcode - * - * PARAMETERS: Op - The parser opcode object - * WalkState - current state, NULL if not yet executing - * a method. - * - * RETURN: None - * - * DESCRIPTION: Stop opcode execution trace - * - ******************************************************************************/ - -void -AcpiExStopTraceOpcode ( - ACPI_PARSE_OBJECT *Op, - ACPI_WALK_STATE *WalkState) -{ - - ACPI_FUNCTION_NAME (ExStopTraceOpcode); - - - if (AcpiExInterpreterTraceEnabled (NULL) && - (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) - { - ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, FALSE, - Op->Common.Aml, Op->Common.AmlOpName); - } -} diff --git a/src/acpica/source/components/executer/exdump.c b/src/acpica/source/components/executer/exdump.c index c682777..73acfd4 100644 --- a/src/acpica/source/components/executer/exdump.c +++ b/src/acpica/source/components/executer/exdump.c @@ -525,7 +525,8 @@ AcpiExDumpObject ( case ACPI_EXD_BUFFER: - ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length); + ACPI_DUMP_BUFFER ( + ObjDesc->Buffer.Pointer, ObjDesc->Buffer.Length); break; case ACPI_EXD_PACKAGE: @@ -544,7 +545,8 @@ AcpiExDumpObject ( case ACPI_EXD_REFERENCE: ReferenceName = AcpiUtGetReferenceName (ObjDesc); - AcpiExOutString ("Class Name", ACPI_CAST_PTR (char, ReferenceName)); + AcpiExOutString ( + "Class Name", ACPI_CAST_PTR (char, ReferenceName)); AcpiExDumpReferenceObj (ObjDesc); break; @@ -573,7 +575,8 @@ AcpiExDumpObject ( if ((Next == Start) || (Next == Data)) { - AcpiOsPrintf ("\n**** Error: Object list appears to be circular linked"); + AcpiOsPrintf ( + "\n**** Error: Object list appears to be circular linked"); break; } } @@ -607,7 +610,8 @@ AcpiExDumpObject ( if ((Next == Start) || (Next == Data)) { - AcpiOsPrintf ("\n**** Error: Handler list appears to be circular linked"); + AcpiOsPrintf ( + "\n**** Error: Handler list appears to be circular linked"); break; } } @@ -641,7 +645,8 @@ AcpiExDumpObject ( if ((Next == Start) || (Next == Data)) { - AcpiOsPrintf ("\n**** Error: Region list appears to be circular linked"); + AcpiOsPrintf ( + "\n**** Error: Region list appears to be circular linked"); break; } } @@ -749,7 +754,8 @@ AcpiExDumpOperand ( { case ACPI_TYPE_LOCAL_REFERENCE: - AcpiOsPrintf ("Reference: [%s] ", AcpiUtGetReferenceName (ObjDesc)); + AcpiOsPrintf ("Reference: [%s] ", + AcpiUtGetReferenceName (ObjDesc)); switch (ObjDesc->Reference.Class) { @@ -777,7 +783,8 @@ AcpiExDumpOperand ( case ACPI_REFCLASS_NAME: - AcpiOsPrintf ("- [%4.4s]\n", ObjDesc->Reference.Node->Name.Ascii); + AcpiOsPrintf ("- [%4.4s]\n", + ObjDesc->Reference.Node->Name.Ascii); break; case ACPI_REFCLASS_ARG: @@ -808,8 +815,8 @@ AcpiExDumpOperand ( Length = 128; } - AcpiOsPrintf ("Buffer Contents: (displaying length 0x%.2X)\n", - Length); + AcpiOsPrintf ( + "Buffer Contents: (displaying length 0x%.2X)\n", Length); ACPI_DUMP_BUFFER (ObjDesc->Buffer.Pointer, Length); } break; @@ -835,7 +842,8 @@ AcpiExDumpOperand ( { for (Index = 0; Index < ObjDesc->Package.Count; Index++) { - AcpiExDumpOperand (ObjDesc->Package.Elements[Index], Depth+1); + AcpiExDumpOperand ( + ObjDesc->Package.Elements[Index], Depth + 1); } } break; @@ -888,7 +896,7 @@ AcpiExDumpOperand ( ObjDesc->Field.BaseByteOffset, ObjDesc->Field.StartFieldBitOffset); - AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth+1); + AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth + 1); break; case ACPI_TYPE_LOCAL_INDEX_FIELD: @@ -908,13 +916,13 @@ AcpiExDumpOperand ( ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "*NULL*\n")); } else if ((ObjDesc->BufferField.BufferObj)->Common.Type != - ACPI_TYPE_BUFFER) + ACPI_TYPE_BUFFER) { AcpiOsPrintf ("*not a Buffer*\n"); } else { - AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth+1); + AcpiExDumpOperand (ObjDesc->BufferField.BufferObj, Depth + 1); } break; @@ -1214,7 +1222,8 @@ AcpiExDumpPackageObj ( AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length); if (ObjDesc->Buffer.Length) { - AcpiUtDebugDumpBuffer (ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), + AcpiUtDebugDumpBuffer ( + ACPI_CAST_PTR (UINT8, ObjDesc->Buffer.Pointer), ObjDesc->Buffer.Length, DB_DWORD_DISPLAY, _COMPONENT); } else @@ -1230,7 +1239,8 @@ AcpiExDumpPackageObj ( for (i = 0; i < ObjDesc->Package.Count; i++) { - AcpiExDumpPackageObj (ObjDesc->Package.Elements[i], Level+1, i); + AcpiExDumpPackageObj ( + ObjDesc->Package.Elements[i], Level + 1, i); } break; @@ -1328,7 +1338,8 @@ DumpObject: ObjDesc = ObjDesc->Common.NextObject; if (ObjDesc->Common.Type > ACPI_TYPE_LOCAL_MAX) { - AcpiOsPrintf ("Secondary object is not a known object type: %2.2X\n", + AcpiOsPrintf ( + "Secondary object is not a known object type: %2.2X\n", ObjDesc->Common.Type); return_VOID; diff --git a/src/acpica/source/components/executer/exfield.c b/src/acpica/source/components/executer/exfield.c index dbd294b..b70e080 100644 --- a/src/acpica/source/components/executer/exfield.c +++ b/src/acpica/source/components/executer/exfield.c @@ -256,28 +256,31 @@ AcpiExReadDataFromField ( ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI)) { /* - * This is an SMBus, GSBus or IPMI read. We must create a buffer to hold - * the data and then directly access the region handler. + * This is an SMBus, GSBus or IPMI read. We must create a buffer to + * hold the data and then directly access the region handler. * - * Note: SMBus and GSBus protocol value is passed in upper 16-bits of Function + * Note: SMBus and GSBus protocol value is passed in upper 16-bits + * of Function */ - if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS) + if (ObjDesc->Field.RegionObj->Region.SpaceId == + ACPI_ADR_SPACE_SMBUS) { Length = ACPI_SMBUS_BUFFER_SIZE; Function = ACPI_READ | (ObjDesc->Field.Attribute << 16); } - else if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS) + else if (ObjDesc->Field.RegionObj->Region.SpaceId == + ACPI_ADR_SPACE_GSBUS) { AccessorType = ObjDesc->Field.Attribute; - Length = AcpiExGetSerialAccessLength (AccessorType, - ObjDesc->Field.AccessLength); + Length = AcpiExGetSerialAccessLength ( + AccessorType, ObjDesc->Field.AccessLength); /* * Add additional 2 bytes for the GenericSerialBus data buffer: * - * Status; (Byte 0 of the data buffer) - * Length; (Byte 1 of the data buffer) - * Data[x-1]; (Bytes 2-x of the arbitrary length data buffer) + * Status; (Byte 0 of the data buffer) + * Length; (Byte 1 of the data buffer) + * Data[x-1]: (Bytes 2-x of the arbitrary length data buffer) */ Length += 2; Function = ACPI_READ | (AccessorType << 16); @@ -301,8 +304,8 @@ AcpiExReadDataFromField ( /* Call the region handler for the read */ Status = AcpiExAccessRegion (ObjDesc, 0, - ACPI_CAST_PTR (UINT64, BufferDesc->Buffer.Pointer), - Function); + ACPI_CAST_PTR (UINT64, BufferDesc->Buffer.Pointer), Function); + AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); goto Exit; } @@ -317,7 +320,9 @@ AcpiExReadDataFromField ( * * Note: Field.length is in bits. */ - Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (ObjDesc->Field.BitLength); + Length = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES ( + ObjDesc->Field.BitLength); + if (Length > AcpiGbl_IntegerByteWidth) { /* Field is too large for an Integer, create a Buffer instead */ @@ -362,8 +367,9 @@ AcpiExReadDataFromField ( /* Perform the write */ - Status = AcpiExAccessRegion (ObjDesc, 0, - (UINT64 *) Buffer, ACPI_READ); + Status = AcpiExAccessRegion ( + ObjDesc, 0, (UINT64 *) Buffer, ACPI_READ); + AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); if (ACPI_FAILURE (Status)) { @@ -468,42 +474,47 @@ AcpiExWriteDataToField ( ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_IPMI)) { /* - * This is an SMBus, GSBus or IPMI write. We will bypass the entire field - * mechanism and handoff the buffer directly to the handler. For - * these address spaces, the buffer is bi-directional; on a write, - * return data is returned in the same buffer. + * This is an SMBus, GSBus or IPMI write. We will bypass the entire + * field mechanism and handoff the buffer directly to the handler. + * For these address spaces, the buffer is bi-directional; on a + * write, return data is returned in the same buffer. * * Source must be a buffer of sufficient size: - * ACPI_SMBUS_BUFFER_SIZE, ACPI_GSBUS_BUFFER_SIZE, or ACPI_IPMI_BUFFER_SIZE. + * ACPI_SMBUS_BUFFER_SIZE, ACPI_GSBUS_BUFFER_SIZE, or + * ACPI_IPMI_BUFFER_SIZE. * - * Note: SMBus and GSBus protocol type is passed in upper 16-bits of Function + * Note: SMBus and GSBus protocol type is passed in upper 16-bits + * of Function */ if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER) { ACPI_ERROR ((AE_INFO, - "SMBus/IPMI/GenericSerialBus write requires Buffer, found type %s", + "SMBus/IPMI/GenericSerialBus write requires " + "Buffer, found type %s", AcpiUtGetObjectTypeName (SourceDesc))); return_ACPI_STATUS (AE_AML_OPERAND_TYPE); } - if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_SMBUS) + if (ObjDesc->Field.RegionObj->Region.SpaceId == + ACPI_ADR_SPACE_SMBUS) { Length = ACPI_SMBUS_BUFFER_SIZE; Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16); } - else if (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_GSBUS) + else if (ObjDesc->Field.RegionObj->Region.SpaceId == + ACPI_ADR_SPACE_GSBUS) { AccessorType = ObjDesc->Field.Attribute; - Length = AcpiExGetSerialAccessLength (AccessorType, - ObjDesc->Field.AccessLength); + Length = AcpiExGetSerialAccessLength ( + AccessorType, ObjDesc->Field.AccessLength); /* * Add additional 2 bytes for the GenericSerialBus data buffer: * - * Status; (Byte 0 of the data buffer) - * Length; (Byte 1 of the data buffer) - * Data[x-1]; (Bytes 2-x of the arbitrary length data buffer) + * Status; (Byte 0 of the data buffer) + * Length; (Byte 1 of the data buffer) + * Data[x-1]: (Bytes 2-x of the arbitrary length data buffer) */ Length += 2; Function = ACPI_WRITE | (AccessorType << 16); @@ -517,7 +528,8 @@ AcpiExWriteDataToField ( if (SourceDesc->Buffer.Length < Length) { ACPI_ERROR ((AE_INFO, - "SMBus/IPMI/GenericSerialBus write requires Buffer of length %u, found length %u", + "SMBus/IPMI/GenericSerialBus write requires " + "Buffer of length %u, found length %u", Length, SourceDesc->Buffer.Length)); return_ACPI_STATUS (AE_AML_BUFFER_LIMIT); @@ -542,8 +554,8 @@ AcpiExWriteDataToField ( * Perform the write (returns status and perhaps data in the * same buffer) */ - Status = AcpiExAccessRegion (ObjDesc, 0, - (UINT64 *) Buffer, Function); + Status = AcpiExAccessRegion ( + ObjDesc, 0, (UINT64 *) Buffer, Function); AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); *ResultDesc = BufferDesc; @@ -566,7 +578,7 @@ AcpiExWriteDataToField ( } ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, - "GPIO FieldWrite [FROM]: (%s:%X), Val %.8X [TO]: Pin %u Bits %u\n", + "GPIO FieldWrite [FROM]: (%s:%X), Val %.8X [TO]: Pin %u Bits %u\n", AcpiUtGetTypeName (SourceDesc->Common.Type), SourceDesc->Common.Type, (UINT32) SourceDesc->Integer.Value, ObjDesc->Field.PinNumberIndex, ObjDesc->Field.BitLength)); @@ -579,8 +591,8 @@ AcpiExWriteDataToField ( /* Perform the write */ - Status = AcpiExAccessRegion (ObjDesc, 0, - (UINT64 *) Buffer, ACPI_WRITE); + Status = AcpiExAccessRegion ( + ObjDesc, 0, (UINT64 *) Buffer, ACPI_WRITE); AcpiExReleaseGlobalLock (ObjDesc->CommonField.FieldFlags); return_ACPI_STATUS (Status); } diff --git a/src/acpica/source/components/executer/exfldio.c b/src/acpica/source/components/executer/exfldio.c index 39a0f37..106405a 100644 --- a/src/acpica/source/components/executer/exfldio.c +++ b/src/acpica/source/components/executer/exfldio.c @@ -192,7 +192,8 @@ AcpiExSetupRegion ( if (!AcpiIsValidSpaceId (SpaceId)) { - ACPI_ERROR ((AE_INFO, "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); + ACPI_ERROR ((AE_INFO, + "Invalid/unknown Address Space ID: 0x%2.2X", SpaceId)); return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID); } @@ -242,8 +243,8 @@ AcpiExSetupRegion ( * (Region length is specified in bytes) */ if (RgnDesc->Region.Length < - (ObjDesc->CommonField.BaseByteOffset + FieldDatumByteOffset + - ObjDesc->CommonField.AccessByteWidth)) + (ObjDesc->CommonField.BaseByteOffset + FieldDatumByteOffset + + ObjDesc->CommonField.AccessByteWidth)) { if (AcpiGbl_EnableInterpreterSlack) { @@ -270,7 +271,8 @@ AcpiExSetupRegion ( * byte, and a field with Dword access specified. */ ACPI_ERROR ((AE_INFO, - "Field [%4.4s] access width (%u bytes) too large for region [%4.4s] (length %u)", + "Field [%4.4s] access width (%u bytes) " + "too large for region [%4.4s] (length %u)", AcpiUtGetNodeName (ObjDesc->CommonField.Node), ObjDesc->CommonField.AccessByteWidth, AcpiUtGetNodeName (RgnDesc->Region.Node), @@ -282,7 +284,8 @@ AcpiExSetupRegion ( * exceeds region length, indicate an error */ ACPI_ERROR ((AE_INFO, - "Field [%4.4s] Base+Offset+Width %u+%u+%u is beyond end of region [%4.4s] (length %u)", + "Field [%4.4s] Base+Offset+Width %u+%u+%u " + "is beyond end of region [%4.4s] (length %u)", AcpiUtGetNodeName (ObjDesc->CommonField.Node), ObjDesc->CommonField.BaseByteOffset, FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth, @@ -372,8 +375,8 @@ AcpiExAccessRegion ( /* Invoke the appropriate AddressSpace/OpRegion handler */ Status = AcpiEvAddressSpaceDispatch (RgnDesc, ObjDesc, - Function, RegionOffset, - ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth), Value); + Function, RegionOffset, + ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth), Value); if (ACPI_FAILURE (Status)) { @@ -584,8 +587,8 @@ AcpiExFieldDatumIo ( * For simple RegionFields, we just directly access the owning * Operation Region. */ - Status = AcpiExAccessRegion (ObjDesc, FieldDatumByteOffset, Value, - ReadWrite); + Status = AcpiExAccessRegion ( + ObjDesc, FieldDatumByteOffset, Value, ReadWrite); break; case ACPI_TYPE_LOCAL_INDEX_FIELD: @@ -608,8 +611,7 @@ AcpiExFieldDatumIo ( FieldDatumByteOffset)); Status = AcpiExInsertIntoField (ObjDesc->IndexField.IndexObj, - &FieldDatumByteOffset, - sizeof (FieldDatumByteOffset)); + &FieldDatumByteOffset, sizeof (FieldDatumByteOffset)); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -622,8 +624,8 @@ AcpiExFieldDatumIo ( ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Read from Data Register\n")); - Status = AcpiExExtractFromField (ObjDesc->IndexField.DataObj, - Value, sizeof (UINT64)); + Status = AcpiExExtractFromField ( + ObjDesc->IndexField.DataObj, Value, sizeof (UINT64)); } else { @@ -633,8 +635,8 @@ AcpiExFieldDatumIo ( "Write to Data Register: Value %8.8X%8.8X\n", ACPI_FORMAT_UINT64 (*Value))); - Status = AcpiExInsertIntoField (ObjDesc->IndexField.DataObj, - Value, sizeof (UINT64)); + Status = AcpiExInsertIntoField ( + ObjDesc->IndexField.DataObj, Value, sizeof (UINT64)); } break; @@ -716,14 +718,14 @@ AcpiExWriteWithUpdateRule ( * ones) The left shift drops the bits we want to ignore. */ if ((~Mask << (ACPI_MUL_8 (sizeof (Mask)) - - ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth))) != 0) + ACPI_MUL_8 (ObjDesc->CommonField.AccessByteWidth))) != 0) { /* * Read the current contents of the byte/word/dword containing * the field, and merge with the new field value. */ - Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset, - &CurrentValue, ACPI_READ); + Status = AcpiExFieldDatumIo ( + ObjDesc, FieldDatumByteOffset, &CurrentValue, ACPI_READ); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -751,13 +753,15 @@ AcpiExWriteWithUpdateRule ( ACPI_ERROR ((AE_INFO, "Unknown UpdateRule value: 0x%X", - (ObjDesc->CommonField.FieldFlags & AML_FIELD_UPDATE_RULE_MASK))); + (ObjDesc->CommonField.FieldFlags & + AML_FIELD_UPDATE_RULE_MASK))); return_ACPI_STATUS (AE_AML_OPERAND_VALUE); } } ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, - "Mask %8.8X%8.8X, DatumOffset %X, Width %X, Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n", + "Mask %8.8X%8.8X, DatumOffset %X, Width %X, " + "Value %8.8X%8.8X, MergedValue %8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Mask), FieldDatumByteOffset, ObjDesc->CommonField.AccessByteWidth, @@ -766,8 +770,8 @@ AcpiExWriteWithUpdateRule ( /* Write the merged value */ - Status = AcpiExFieldDatumIo (ObjDesc, FieldDatumByteOffset, - &MergedValue, ACPI_WRITE); + Status = AcpiExFieldDatumIo ( + ObjDesc, FieldDatumByteOffset, &MergedValue, ACPI_WRITE); return_ACPI_STATUS (Status); } @@ -878,8 +882,8 @@ AcpiExExtractFromField ( /* Get next input datum from the field */ FieldOffset += ObjDesc->CommonField.AccessByteWidth; - Status = AcpiExFieldDatumIo (ObjDesc, FieldOffset, - &RawDatum, ACPI_READ); + Status = AcpiExFieldDatumIo ( + ObjDesc, FieldOffset, &RawDatum, ACPI_READ); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -976,7 +980,8 @@ AcpiExInsertIntoField ( NewBuffer = NULL; RequiredLength = ACPI_ROUND_BITS_UP_TO_BYTES ( - ObjDesc->CommonField.BitLength); + ObjDesc->CommonField.BitLength); + /* * We must have a buffer that is at least as long as the field * we are writing to. This is because individual fields are @@ -1054,8 +1059,8 @@ AcpiExInsertIntoField ( /* Write merged datum to the target field */ MergedDatum &= Mask; - Status = AcpiExWriteWithUpdateRule (ObjDesc, Mask, - MergedDatum, FieldOffset); + Status = AcpiExWriteWithUpdateRule ( + ObjDesc, Mask, MergedDatum, FieldOffset); if (ACPI_FAILURE (Status)) { goto Exit; @@ -1112,8 +1117,8 @@ AcpiExInsertIntoField ( /* Write the last datum to the field */ MergedDatum &= Mask; - Status = AcpiExWriteWithUpdateRule (ObjDesc, - Mask, MergedDatum, FieldOffset); + Status = AcpiExWriteWithUpdateRule ( + ObjDesc, Mask, MergedDatum, FieldOffset); Exit: /* Free temporary buffer if we used one */ diff --git a/src/acpica/source/components/executer/exmisc.c b/src/acpica/source/components/executer/exmisc.c index f678670..c2e04bb 100644 --- a/src/acpica/source/components/executer/exmisc.c +++ b/src/acpica/source/components/executer/exmisc.c @@ -360,8 +360,8 @@ AcpiExDoConcatenate ( case ACPI_TYPE_STRING: - Status = AcpiExConvertToString (Operand1, &LocalOperand1, - ACPI_IMPLICIT_CONVERT_HEX); + Status = AcpiExConvertToString ( + Operand1, &LocalOperand1, ACPI_IMPLICIT_CONVERT_HEX); break; case ACPI_TYPE_BUFFER: @@ -401,8 +401,8 @@ AcpiExDoConcatenate ( /* Result of two Integers is a Buffer */ /* Need enough buffer space for two integers */ - ReturnDesc = AcpiUtCreateBufferObject ((ACPI_SIZE) - ACPI_MUL_2 (AcpiGbl_IntegerByteWidth)); + ReturnDesc = AcpiUtCreateBufferObject ( + (ACPI_SIZE) ACPI_MUL_2 (AcpiGbl_IntegerByteWidth)); if (!ReturnDesc) { Status = AE_NO_MEMORY; @@ -414,13 +414,12 @@ AcpiExDoConcatenate ( /* Copy the first integer, LSB first */ memcpy (NewBuf, &Operand0->Integer.Value, - AcpiGbl_IntegerByteWidth); + AcpiGbl_IntegerByteWidth); /* Copy the second integer (LSB first) after the first */ memcpy (NewBuf + AcpiGbl_IntegerByteWidth, - &LocalOperand1->Integer.Value, - AcpiGbl_IntegerByteWidth); + &LocalOperand1->Integer.Value, AcpiGbl_IntegerByteWidth); break; case ACPI_TYPE_STRING: @@ -428,8 +427,8 @@ AcpiExDoConcatenate ( /* Result of two Strings is a String */ ReturnDesc = AcpiUtCreateStringObject ( - ((ACPI_SIZE) Operand0->String.Length + - LocalOperand1->String.Length)); + ((ACPI_SIZE) Operand0->String.Length + + LocalOperand1->String.Length)); if (!ReturnDesc) { Status = AE_NO_MEMORY; @@ -442,7 +441,7 @@ AcpiExDoConcatenate ( strcpy (NewBuf, Operand0->String.Pointer); strcpy (NewBuf + Operand0->String.Length, - LocalOperand1->String.Pointer); + LocalOperand1->String.Pointer); break; case ACPI_TYPE_BUFFER: @@ -450,8 +449,8 @@ AcpiExDoConcatenate ( /* Result of two Buffers is a Buffer */ ReturnDesc = AcpiUtCreateBufferObject ( - ((ACPI_SIZE) Operand0->Buffer.Length + - LocalOperand1->Buffer.Length)); + ((ACPI_SIZE) Operand0->Buffer.Length + + LocalOperand1->Buffer.Length)); if (!ReturnDesc) { Status = AE_NO_MEMORY; @@ -463,10 +462,10 @@ AcpiExDoConcatenate ( /* Concatenate the buffers */ memcpy (NewBuf, Operand0->Buffer.Pointer, - Operand0->Buffer.Length); + Operand0->Buffer.Length); memcpy (NewBuf + Operand0->Buffer.Length, - LocalOperand1->Buffer.Pointer, - LocalOperand1->Buffer.Length); + LocalOperand1->Buffer.Pointer, + LocalOperand1->Buffer.Length); break; default: @@ -708,8 +707,8 @@ AcpiExDoLogicalOp ( case ACPI_TYPE_STRING: - Status = AcpiExConvertToString (Operand1, &LocalOperand1, - ACPI_IMPLICIT_CONVERT_HEX); + Status = AcpiExConvertToString ( + Operand1, &LocalOperand1, ACPI_IMPLICIT_CONVERT_HEX); break; case ACPI_TYPE_BUFFER: @@ -786,8 +785,8 @@ AcpiExDoLogicalOp ( /* Lexicographic compare: compare the data bytes */ Compare = memcmp (Operand0->Buffer.Pointer, - LocalOperand1->Buffer.Pointer, - (Length0 > Length1) ? Length1 : Length0); + LocalOperand1->Buffer.Pointer, + (Length0 > Length1) ? Length1 : Length0); switch (Opcode) { diff --git a/src/acpica/source/components/executer/exmutex.c b/src/acpica/source/components/executer/exmutex.c index c688a50..f3cf1bb 100644 --- a/src/acpica/source/components/executer/exmutex.c +++ b/src/acpica/source/components/executer/exmutex.c @@ -281,8 +281,7 @@ AcpiExAcquireMutexObject ( } else { - Status = AcpiExSystemWaitMutex (ObjDesc->Mutex.OsMutex, - Timeout); + Status = AcpiExSystemWaitMutex (ObjDesc->Mutex.OsMutex, Timeout); } if (ACPI_FAILURE (Status)) @@ -345,33 +344,48 @@ AcpiExAcquireMutex ( } /* - * Current sync level must be less than or equal to the sync level of the - * mutex. This mechanism provides some deadlock prevention + * Current sync level must be less than or equal to the sync level + * of the mutex. This mechanism provides some deadlock prevention. */ if (WalkState->Thread->CurrentSyncLevel > ObjDesc->Mutex.SyncLevel) { ACPI_ERROR ((AE_INFO, - "Cannot acquire Mutex [%4.4s], current SyncLevel is too large (%u)", + "Cannot acquire Mutex [%4.4s], " + "current SyncLevel is too large (%u)", AcpiUtGetNodeName (ObjDesc->Mutex.Node), WalkState->Thread->CurrentSyncLevel)); return_ACPI_STATUS (AE_AML_MUTEX_ORDER); } + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Acquiring: Mutex SyncLevel %u, Thread SyncLevel %u, " + "Depth %u TID %p\n", + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, + ObjDesc->Mutex.AcquisitionDepth, WalkState->Thread)); + Status = AcpiExAcquireMutexObject ((UINT16) TimeDesc->Integer.Value, - ObjDesc, WalkState->Thread->ThreadId); + ObjDesc, WalkState->Thread->ThreadId); + if (ACPI_SUCCESS (Status) && ObjDesc->Mutex.AcquisitionDepth == 1) { /* Save Thread object, original/current sync levels */ ObjDesc->Mutex.OwnerThread = WalkState->Thread; - ObjDesc->Mutex.OriginalSyncLevel = WalkState->Thread->CurrentSyncLevel; - WalkState->Thread->CurrentSyncLevel = ObjDesc->Mutex.SyncLevel; + ObjDesc->Mutex.OriginalSyncLevel = + WalkState->Thread->CurrentSyncLevel; + WalkState->Thread->CurrentSyncLevel = + ObjDesc->Mutex.SyncLevel; /* Link the mutex to the current thread for force-unlock at method exit */ AcpiExLinkMutex (ObjDesc, WalkState->Thread); } + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Acquired: Mutex SyncLevel %u, Thread SyncLevel %u, Depth %u\n", + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, + ObjDesc->Mutex.AcquisitionDepth)); + return_ACPI_STATUS (Status); } @@ -467,9 +481,9 @@ AcpiExReleaseMutex ( ACPI_OPERAND_OBJECT *ObjDesc, ACPI_WALK_STATE *WalkState) { - ACPI_STATUS Status = AE_OK; UINT8 PreviousSyncLevel; ACPI_THREAD_STATE *OwnerThread; + ACPI_STATUS Status = AE_OK; ACPI_FUNCTION_TRACE (ExReleaseMutex); @@ -527,7 +541,8 @@ AcpiExReleaseMutex ( if (ObjDesc->Mutex.SyncLevel != OwnerThread->CurrentSyncLevel) { ACPI_ERROR ((AE_INFO, - "Cannot release Mutex [%4.4s], SyncLevel mismatch: mutex %u current %u", + "Cannot release Mutex [%4.4s], SyncLevel mismatch: " + "mutex %u current %u", AcpiUtGetNodeName (ObjDesc->Mutex.Node), ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel)); return_ACPI_STATUS (AE_AML_MUTEX_ORDER); @@ -541,6 +556,13 @@ AcpiExReleaseMutex ( PreviousSyncLevel = OwnerThread->AcquiredMutexList->Mutex.OriginalSyncLevel; + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Releasing: Object SyncLevel %u, Thread SyncLevel %u, " + "Prev SyncLevel %u, Depth %u TID %p\n", + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, + PreviousSyncLevel, ObjDesc->Mutex.AcquisitionDepth, + WalkState->Thread)); + Status = AcpiExReleaseMutexObject (ObjDesc); if (ACPI_FAILURE (Status)) { @@ -554,6 +576,12 @@ AcpiExReleaseMutex ( OwnerThread->CurrentSyncLevel = PreviousSyncLevel; } + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "Released: Object SyncLevel %u, Thread SyncLevel, %u, " + "Prev SyncLevel %u, Depth %u\n", + ObjDesc->Mutex.SyncLevel, WalkState->Thread->CurrentSyncLevel, + PreviousSyncLevel, ObjDesc->Mutex.AcquisitionDepth)); + return_ACPI_STATUS (Status); } @@ -584,7 +612,7 @@ AcpiExReleaseAllMutexes ( ACPI_OPERAND_OBJECT *ObjDesc; - ACPI_FUNCTION_NAME (ExReleaseAllMutexes); + ACPI_FUNCTION_TRACE (ExReleaseAllMutexes); /* Traverse the list of owned mutexes, releasing each one */ @@ -592,14 +620,10 @@ AcpiExReleaseAllMutexes ( while (Next) { ObjDesc = Next; - Next = ObjDesc->Mutex.Next; - - ObjDesc->Mutex.Prev = NULL; - ObjDesc->Mutex.Next = NULL; - ObjDesc->Mutex.AcquisitionDepth = 0; - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, - "Force-releasing held mutex: %p\n", ObjDesc)); + "Mutex [%4.4s] force-release, SyncLevel %u Depth %u\n", + ObjDesc->Mutex.Node->Name.Ascii, ObjDesc->Mutex.SyncLevel, + ObjDesc->Mutex.AcquisitionDepth)); /* Release the mutex, special case for Global Lock */ @@ -614,13 +638,20 @@ AcpiExReleaseAllMutexes ( AcpiOsReleaseMutex (ObjDesc->Mutex.OsMutex); } + /* Update Thread SyncLevel (Last mutex is the important one) */ + + Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel; + /* Mark mutex unowned */ + Next = ObjDesc->Mutex.Next; + + ObjDesc->Mutex.Prev = NULL; + ObjDesc->Mutex.Next = NULL; + ObjDesc->Mutex.AcquisitionDepth = 0; ObjDesc->Mutex.OwnerThread = NULL; ObjDesc->Mutex.ThreadId = 0; - - /* Update Thread SyncLevel (Last mutex is the important one) */ - - Thread->CurrentSyncLevel = ObjDesc->Mutex.OriginalSyncLevel; } + + return_VOID; } diff --git a/src/acpica/source/components/executer/exnames.c b/src/acpica/source/components/executer/exnames.c index 38ceba0..d222a21 100644 --- a/src/acpica/source/components/executer/exnames.c +++ b/src/acpica/source/components/executer/exnames.c @@ -232,6 +232,7 @@ AcpiExAllocateNameString ( return_PTR (NameString); } + /******************************************************************************* * * FUNCTION: AcpiExNameSegment @@ -261,8 +262,8 @@ AcpiExNameSegment ( /* - * If first character is a digit, then we know that we aren't looking at a - * valid name segment + * If first character is a digit, then we know that we aren't looking + * at a valid name segment */ CharBuf[0] = *AmlAddress; @@ -466,7 +467,8 @@ AcpiExGetNameString ( AmlAddress++; NumSegments = *AmlAddress; - NameString = AcpiExAllocateNameString (PrefixCount, NumSegments); + NameString = AcpiExAllocateNameString ( + PrefixCount, NumSegments); if (!NameString) { Status = AE_NO_MEMORY; diff --git a/src/acpica/source/components/executer/exoparg1.c b/src/acpica/source/components/executer/exoparg1.c index c7addbd..466c886 100644 --- a/src/acpica/source/components/executer/exoparg1.c +++ b/src/acpica/source/components/executer/exoparg1.c @@ -403,7 +403,7 @@ AcpiExOpcode_1A_1T_1R ( * endian unsigned value, so this boundary condition is valid. */ for (Temp32 = 0; ReturnDesc->Integer.Value && - Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) + Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) { ReturnDesc->Integer.Value >>= 1; } @@ -420,7 +420,7 @@ AcpiExOpcode_1A_1T_1R ( * endian unsigned value, so this boundary condition is valid. */ for (Temp32 = 0; ReturnDesc->Integer.Value && - Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) + Temp32 < ACPI_INTEGER_BIT_SIZE; ++Temp32) { ReturnDesc->Integer.Value <<= 1; } @@ -526,7 +526,7 @@ AcpiExOpcode_1A_1T_1R ( /* Get the object reference, store it, and remove our reference */ Status = AcpiExGetObjectReference (Operand[0], - &ReturnDesc2, WalkState); + &ReturnDesc2, WalkState); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -581,28 +581,30 @@ AcpiExOpcode_1A_1T_1R ( */ case AML_COPY_OP: /* Copy (Source, Target) */ - Status = AcpiUtCopyIobjectToIobject (Operand[0], &ReturnDesc, - WalkState); + Status = AcpiUtCopyIobjectToIobject ( + Operand[0], &ReturnDesc, WalkState); break; case AML_TO_DECSTRING_OP: /* ToDecimalString (Data, Result) */ - Status = AcpiExConvertToString (Operand[0], &ReturnDesc, - ACPI_EXPLICIT_CONVERT_DECIMAL); + Status = AcpiExConvertToString ( + Operand[0], &ReturnDesc, ACPI_EXPLICIT_CONVERT_DECIMAL); if (ReturnDesc == Operand[0]) { /* No conversion performed, add ref to handle return value */ + AcpiUtAddReference (ReturnDesc); } break; case AML_TO_HEXSTRING_OP: /* ToHexString (Data, Result) */ - Status = AcpiExConvertToString (Operand[0], &ReturnDesc, - ACPI_EXPLICIT_CONVERT_HEX); + Status = AcpiExConvertToString ( + Operand[0], &ReturnDesc, ACPI_EXPLICIT_CONVERT_HEX); if (ReturnDesc == Operand[0]) { /* No conversion performed, add ref to handle return value */ + AcpiUtAddReference (ReturnDesc); } break; @@ -613,17 +615,19 @@ AcpiExOpcode_1A_1T_1R ( if (ReturnDesc == Operand[0]) { /* No conversion performed, add ref to handle return value */ + AcpiUtAddReference (ReturnDesc); } break; case AML_TO_INTEGER_OP: /* ToInteger (Data, Result) */ - Status = AcpiExConvertToInteger (Operand[0], &ReturnDesc, - ACPI_ANY_BASE); + Status = AcpiExConvertToInteger ( + Operand[0], &ReturnDesc, ACPI_ANY_BASE); if (ReturnDesc == Operand[0]) { /* No conversion performed, add ref to handle return value */ + AcpiUtAddReference (ReturnDesc); } break; @@ -774,11 +778,11 @@ AcpiExOpcode_1A_0T_1R ( */ if (WalkState->Opcode == AML_INCREMENT_OP) { - ReturnDesc->Integer.Value = TempDesc->Integer.Value +1; + ReturnDesc->Integer.Value = TempDesc->Integer.Value + 1; } else { - ReturnDesc->Integer.Value = TempDesc->Integer.Value -1; + ReturnDesc->Integer.Value = TempDesc->Integer.Value - 1; } /* Finished with this Integer object */ @@ -826,8 +830,8 @@ AcpiExOpcode_1A_0T_1R ( /* Get the base object */ - Status = AcpiExResolveMultiple (WalkState, - Operand[0], &Type, &TempDesc); + Status = AcpiExResolveMultiple ( + WalkState, Operand[0], &Type, &TempDesc); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -873,8 +877,10 @@ AcpiExOpcode_1A_0T_1R ( default: ACPI_ERROR ((AE_INFO, - "Operand must be Buffer/Integer/String/Package - found type %s", + "Operand must be Buffer/Integer/String/Package" + " - found type %s", AcpiUtGetTypeName (Type))); + Status = AE_AML_OPERAND_TYPE; goto Cleanup; } @@ -899,7 +905,8 @@ AcpiExOpcode_1A_0T_1R ( case AML_REF_OF_OP: /* RefOf (SourceObject) */ - Status = AcpiExGetObjectReference (Operand[0], &ReturnDesc, WalkState); + Status = AcpiExGetObjectReference ( + Operand[0], &ReturnDesc, WalkState); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -946,9 +953,9 @@ AcpiExOpcode_1A_0T_1R ( /* Set Operand[0] to the value of the local/arg */ Status = AcpiDsMethodDataGetValue ( - Operand[0]->Reference.Class, - Operand[0]->Reference.Value, - WalkState, &TempDesc); + Operand[0]->Reference.Class, + Operand[0]->Reference.Value, + WalkState, &TempDesc); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -1002,19 +1009,19 @@ AcpiExOpcode_1A_0T_1R ( * Field, so we need to resolve the node to a value. */ Status = AcpiNsGetNode (WalkState->ScopeInfo->Scope.Node, - Operand[0]->String.Pointer, - ACPI_NS_SEARCH_PARENT, - ACPI_CAST_INDIRECT_PTR ( - ACPI_NAMESPACE_NODE, &ReturnDesc)); + Operand[0]->String.Pointer, + ACPI_NS_SEARCH_PARENT, + ACPI_CAST_INDIRECT_PTR ( + ACPI_NAMESPACE_NODE, &ReturnDesc)); if (ACPI_FAILURE (Status)) { goto Cleanup; } Status = AcpiExResolveNodeToValue ( - ACPI_CAST_INDIRECT_PTR ( - ACPI_NAMESPACE_NODE, &ReturnDesc), - WalkState); + ACPI_CAST_INDIRECT_PTR ( + ACPI_NAMESPACE_NODE, &ReturnDesc), + WalkState); goto Cleanup; } } @@ -1030,7 +1037,7 @@ AcpiExOpcode_1A_0T_1R ( * dereferenced above. */ ReturnDesc = AcpiNsGetAttachedObject ( - (ACPI_NAMESPACE_NODE *) Operand[0]); + (ACPI_NAMESPACE_NODE *) Operand[0]); AcpiUtAddReference (ReturnDesc); } else @@ -1097,6 +1104,7 @@ AcpiExOpcode_1A_0T_1R ( ACPI_ERROR ((AE_INFO, "Unknown Index TargetType 0x%X in reference object %p", Operand[0]->Reference.TargetType, Operand[0])); + Status = AE_AML_OPERAND_TYPE; goto Cleanup; } @@ -1127,8 +1135,8 @@ AcpiExOpcode_1A_0T_1R ( case ACPI_TYPE_LOCAL_BANK_FIELD: case ACPI_TYPE_LOCAL_INDEX_FIELD: - Status = AcpiExReadDataFromField (WalkState, - ReturnDesc, &TempDesc); + Status = AcpiExReadDataFromField ( + WalkState, ReturnDesc, &TempDesc); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -1163,6 +1171,7 @@ AcpiExOpcode_1A_0T_1R ( ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", WalkState->Opcode)); + Status = AE_AML_BAD_OPCODE; goto Cleanup; } diff --git a/src/acpica/source/components/executer/exoparg2.c b/src/acpica/source/components/executer/exoparg2.c index f1ab706..29b41a5 100644 --- a/src/acpica/source/components/executer/exoparg2.c +++ b/src/acpica/source/components/executer/exoparg2.c @@ -275,10 +275,11 @@ AcpiExOpcode_2A_2T_1R ( /* Quotient to ReturnDesc1, remainder to ReturnDesc2 */ - Status = AcpiUtDivide (Operand[0]->Integer.Value, - Operand[1]->Integer.Value, - &ReturnDesc1->Integer.Value, - &ReturnDesc2->Integer.Value); + Status = AcpiUtDivide ( + Operand[0]->Integer.Value, + Operand[1]->Integer.Value, + &ReturnDesc1->Integer.Value, + &ReturnDesc2->Integer.Value); if (ACPI_FAILURE (Status)) { goto Cleanup; @@ -289,6 +290,7 @@ AcpiExOpcode_2A_2T_1R ( ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", WalkState->Opcode)); + Status = AE_AML_BAD_OPCODE; goto Cleanup; } @@ -373,9 +375,10 @@ AcpiExOpcode_2A_1T_1R ( goto Cleanup; } - ReturnDesc->Integer.Value = AcpiExDoMathOp (WalkState->Opcode, - Operand[0]->Integer.Value, - Operand[1]->Integer.Value); + ReturnDesc->Integer.Value = AcpiExDoMathOp ( + WalkState->Opcode, + Operand[0]->Integer.Value, + Operand[1]->Integer.Value); goto StoreResultToTarget; } @@ -392,16 +395,17 @@ AcpiExOpcode_2A_1T_1R ( /* ReturnDesc will contain the remainder */ - Status = AcpiUtDivide (Operand[0]->Integer.Value, - Operand[1]->Integer.Value, - NULL, - &ReturnDesc->Integer.Value); + Status = AcpiUtDivide ( + Operand[0]->Integer.Value, + Operand[1]->Integer.Value, + NULL, + &ReturnDesc->Integer.Value); break; case AML_CONCAT_OP: /* Concatenate (Data1, Data2, Result) */ - Status = AcpiExDoConcatenate (Operand[0], Operand[1], - &ReturnDesc, WalkState); + Status = AcpiExDoConcatenate ( + Operand[0], Operand[1], &ReturnDesc, WalkState); break; case AML_TO_STRING_OP: /* ToString (Buffer, Length, Result) (ACPI 2.0) */ @@ -448,8 +452,8 @@ AcpiExOpcode_2A_1T_1R ( /* ConcatenateResTemplate (Buffer, Buffer, Result) (ACPI 2.0) */ - Status = AcpiExConcatTemplate (Operand[0], Operand[1], - &ReturnDesc, WalkState); + Status = AcpiExConcatTemplate ( + Operand[0], Operand[1], &ReturnDesc, WalkState); break; case AML_INDEX_OP: /* Index (Source Index Result) */ @@ -632,8 +636,8 @@ AcpiExOpcode_2A_0T_1R ( /* LogicalOp (Operand0, Operand1) */ Status = AcpiExDoLogicalNumericOp (WalkState->Opcode, - Operand[0]->Integer.Value, Operand[1]->Integer.Value, - &LogicalResult); + Operand[0]->Integer.Value, Operand[1]->Integer.Value, + &LogicalResult); goto StoreLogicalResult; } else if (WalkState->OpInfo->Flags & AML_LOGICAL) @@ -641,7 +645,7 @@ AcpiExOpcode_2A_0T_1R ( /* LogicalOp (Operand0, Operand1) */ Status = AcpiExDoLogicalOp (WalkState->Opcode, Operand[0], - Operand[1], &LogicalResult); + Operand[1], &LogicalResult); goto StoreLogicalResult; } @@ -672,6 +676,7 @@ AcpiExOpcode_2A_0T_1R ( ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", WalkState->Opcode)); + Status = AE_AML_BAD_OPCODE; goto Cleanup; } diff --git a/src/acpica/source/components/executer/exoparg3.c b/src/acpica/source/components/executer/exoparg3.c index b2c49be..aa52392 100644 --- a/src/acpica/source/components/executer/exoparg3.c +++ b/src/acpica/source/components/executer/exoparg3.c @@ -178,7 +178,8 @@ AcpiExOpcode_3A_0T_0R ( case AML_FATAL_OP: /* Fatal (FatalType FatalCode FatalArg) */ ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "FatalOp: Type %X Code %X Arg %X <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", + "FatalOp: Type %X Code %X Arg %X " + "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n", (UINT32) Operand[0]->Integer.Value, (UINT32) Operand[1]->Integer.Value, (UINT32) Operand[2]->Integer.Value)); @@ -186,8 +187,8 @@ AcpiExOpcode_3A_0T_0R ( Fatal = ACPI_ALLOCATE (sizeof (ACPI_SIGNAL_FATAL_INFO)); if (Fatal) { - Fatal->Type = (UINT32) Operand[0]->Integer.Value; - Fatal->Code = (UINT32) Operand[1]->Integer.Value; + Fatal->Type = (UINT32) Operand[0]->Integer.Value; + Fatal->Code = (UINT32) Operand[1]->Integer.Value; Fatal->Argument = (UINT32) Operand[2]->Integer.Value; } @@ -215,6 +216,7 @@ AcpiExOpcode_3A_0T_0R ( ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", WalkState->Opcode)); + Status = AE_AML_BAD_OPCODE; goto Cleanup; } @@ -262,7 +264,7 @@ AcpiExOpcode_3A_1T_1R ( * either a String or a Buffer, so just use its type. */ ReturnDesc = AcpiUtCreateInternalObject ( - (Operand[0])->Common.Type); + (Operand[0])->Common.Type); if (!ReturnDesc) { Status = AE_NO_MEMORY; @@ -287,8 +289,8 @@ AcpiExOpcode_3A_1T_1R ( else if ((Index + Length) > Operand[0]->String.Length) { - Length = (ACPI_SIZE) Operand[0]->String.Length - - (ACPI_SIZE) Index; + Length = + (ACPI_SIZE) Operand[0]->String.Length - (ACPI_SIZE) Index; } /* Strings always have a sub-pointer, not so for buffers */ @@ -334,8 +336,8 @@ AcpiExOpcode_3A_1T_1R ( { /* We have a buffer, copy the portion requested */ - memcpy (Buffer, Operand[0]->String.Pointer + Index, - Length); + memcpy (Buffer, + Operand[0]->String.Pointer + Index, Length); } /* Set the length of the new String/Buffer */ @@ -352,6 +354,7 @@ AcpiExOpcode_3A_1T_1R ( ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", WalkState->Opcode)); + Status = AE_AML_BAD_OPCODE; goto Cleanup; } @@ -369,12 +372,12 @@ Cleanup: AcpiUtRemoveReference (ReturnDesc); WalkState->ResultObj = NULL; } - - /* Set the return object and exit */ - else { + /* Set the return object and exit */ + WalkState->ResultObj = ReturnDesc; } + return_ACPI_STATUS (Status); } diff --git a/src/acpica/source/components/executer/exoparg6.c b/src/acpica/source/components/executer/exoparg6.c index a7d76d6..6423334 100644 --- a/src/acpica/source/components/executer/exoparg6.c +++ b/src/acpica/source/components/executer/exoparg6.c @@ -205,8 +205,8 @@ AcpiExDoMatch ( * True if equal: (P[i] == M) * Change to: (M == P[i]) */ - Status = AcpiExDoLogicalOp (AML_LEQUAL_OP, MatchObj, PackageObj, - &LogicalResult); + Status = AcpiExDoLogicalOp ( + AML_LEQUAL_OP, MatchObj, PackageObj, &LogicalResult); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -218,8 +218,8 @@ AcpiExDoMatch ( * True if less than or equal: (P[i] <= M) (P[i] NotGreater than M) * Change to: (M >= P[i]) (M NotLess than P[i]) */ - Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj, - &LogicalResult); + Status = AcpiExDoLogicalOp ( + AML_LLESS_OP, MatchObj, PackageObj, &LogicalResult); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -232,8 +232,8 @@ AcpiExDoMatch ( * True if less than: (P[i] < M) * Change to: (M > P[i]) */ - Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj, - &LogicalResult); + Status = AcpiExDoLogicalOp ( + AML_LGREATER_OP, MatchObj, PackageObj, &LogicalResult); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -245,8 +245,8 @@ AcpiExDoMatch ( * True if greater than or equal: (P[i] >= M) (P[i] NotLess than M) * Change to: (M <= P[i]) (M NotGreater than P[i]) */ - Status = AcpiExDoLogicalOp (AML_LGREATER_OP, MatchObj, PackageObj, - &LogicalResult); + Status = AcpiExDoLogicalOp ( + AML_LGREATER_OP, MatchObj, PackageObj, &LogicalResult); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -259,8 +259,8 @@ AcpiExDoMatch ( * True if greater than: (P[i] > M) * Change to: (M < P[i]) */ - Status = AcpiExDoLogicalOp (AML_LLESS_OP, MatchObj, PackageObj, - &LogicalResult); + Status = AcpiExDoLogicalOp ( + AML_LLESS_OP, MatchObj, PackageObj, &LogicalResult); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -376,13 +376,13 @@ AcpiExOpcode_6A_0T_1R ( * non-match. */ if (!AcpiExDoMatch ((UINT32) Operand[1]->Integer.Value, - ThisElement, Operand[2])) + ThisElement, Operand[2])) { continue; } if (!AcpiExDoMatch ((UINT32) Operand[3]->Integer.Value, - ThisElement, Operand[4])) + ThisElement, Operand[4])) { continue; } @@ -403,6 +403,7 @@ AcpiExOpcode_6A_0T_1R ( ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X", WalkState->Opcode)); + Status = AE_AML_BAD_OPCODE; goto Cleanup; } diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c index d84ccc3..91ee2b8 100644 --- a/src/acpica/source/components/executer/exprep.c +++ b/src/acpica/source/components/executer/exprep.c @@ -1,6 +1,6 @@ /****************************************************************************** * - * Module Name: exprep - ACPI AML (p-code) execution - field prep utilities + * Module Name: exprep - ACPI AML field prep utilities * *****************************************************************************/ @@ -141,6 +141,7 @@ AcpiExGenerateAccess ( UINT32 FieldBitLength, UINT32 RegionLength); + /******************************************************************************* * * FUNCTION: AcpiExGenerateAccess @@ -185,10 +186,13 @@ AcpiExGenerateAccess ( /* Round Field start offset and length to "minimal" byte boundaries */ - FieldByteOffset = ACPI_DIV_8 (ACPI_ROUND_DOWN (FieldBitOffset, 8)); - FieldByteEndOffset = ACPI_DIV_8 (ACPI_ROUND_UP (FieldBitLength + - FieldBitOffset, 8)); - FieldByteLength = FieldByteEndOffset - FieldByteOffset; + FieldByteOffset = ACPI_DIV_8 ( + ACPI_ROUND_DOWN (FieldBitOffset, 8)); + + FieldByteEndOffset = ACPI_DIV_8 ( + ACPI_ROUND_UP (FieldBitLength + FieldBitOffset, 8)); + + FieldByteLength = FieldByteEndOffset - FieldByteOffset; ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Bit length %u, Bit offset %u\n", @@ -213,7 +217,8 @@ AcpiExGenerateAccess ( * are done. (This does not optimize for the perfectly aligned * case yet). */ - if (ACPI_ROUND_UP (FieldByteEndOffset, AccessByteWidth) <= RegionLength) + if (ACPI_ROUND_UP (FieldByteEndOffset, AccessByteWidth) <= + RegionLength) { FieldStartOffset = ACPI_ROUND_DOWN (FieldByteOffset, AccessByteWidth) / @@ -237,7 +242,8 @@ AcpiExGenerateAccess ( if (Accesses <= 1) { ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, - "Entire field can be accessed with one operation of size %u\n", + "Entire field can be accessed " + "with one operation of size %u\n", AccessByteWidth)); return_VALUE (AccessByteWidth); } @@ -248,14 +254,15 @@ AcpiExGenerateAccess ( */ if (Accesses < MinimumAccesses) { - MinimumAccesses = Accesses; + MinimumAccesses = Accesses; MinimumAccessWidth = AccessByteWidth; } } else { ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, - "AccessWidth %u end is NOT within region\n", AccessByteWidth)); + "AccessWidth %u end is NOT within region\n", + AccessByteWidth)); if (AccessByteWidth == 1) { ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, @@ -283,6 +290,7 @@ AcpiExGenerateAccess ( */ ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Cannot access field in one operation, using width 8\n")); + return_VALUE (8); } #endif /* ACPI_UNDER_DEVELOPMENT */ @@ -367,6 +375,7 @@ AcpiExDecodeFieldAccess ( ACPI_ERROR ((AE_INFO, "Unknown field access type 0x%X", Access)); + return_UINT32 (0); } @@ -446,8 +455,8 @@ AcpiExPrepCommonFieldObject ( * For all other access types (Byte, Word, Dword, Qword), the Bitwidth is * the same (equivalent) as the ByteAlignment. */ - AccessBitWidth = AcpiExDecodeFieldAccess (ObjDesc, FieldFlags, - &ByteAlignment); + AccessBitWidth = AcpiExDecodeFieldAccess ( + ObjDesc, FieldFlags, &ByteAlignment); if (!AccessBitWidth) { return_ACPI_STATUS (AE_AML_OPERAND_VALUE); @@ -543,8 +552,8 @@ AcpiExPrepFieldValue ( ObjDesc->CommonField.Node = Info->FieldNode; Status = AcpiExPrepCommonFieldObject (ObjDesc, - Info->FieldFlags, Info->Attribute, - Info->FieldBitPosition, Info->FieldBitLength); + Info->FieldFlags, Info->Attribute, + Info->FieldBitPosition, Info->FieldBitLength); if (ACPI_FAILURE (Status)) { AcpiUtDeleteObjectDesc (ObjDesc); @@ -576,8 +585,10 @@ AcpiExPrepFieldValue ( } } - ObjDesc->Field.ResourceBuffer = SecondDesc->Buffer.Pointer; - ObjDesc->Field.ResourceLength = (UINT16) SecondDesc->Buffer.Length; + ObjDesc->Field.ResourceBuffer = + SecondDesc->Buffer.Pointer; + ObjDesc->Field.ResourceLength = + (UINT16) SecondDesc->Buffer.Length; } else if (Info->ResourceBuffer) { @@ -599,7 +610,8 @@ AcpiExPrepFieldValue ( if (AccessByteWidth < 256) { - ObjDesc->CommonField.AccessByteWidth = (UINT8) AccessByteWidth; + ObjDesc->CommonField.AccessByteWidth = + (UINT8) AccessByteWidth; } } @@ -609,8 +621,10 @@ AcpiExPrepFieldValue ( ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n", - ObjDesc->Field.StartFieldBitOffset, ObjDesc->Field.BaseByteOffset, - ObjDesc->Field.AccessByteWidth, ObjDesc->Field.RegionObj)); + ObjDesc->Field.StartFieldBitOffset, + ObjDesc->Field.BaseByteOffset, + ObjDesc->Field.AccessByteWidth, + ObjDesc->Field.RegionObj)); break; case ACPI_TYPE_LOCAL_BANK_FIELD: @@ -690,7 +704,8 @@ AcpiExPrepFieldValue ( ObjDesc->IndexField.AccessByteWidth); ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, - "IndexField: BitOff %X, Off %X, Value %X, Gran %X, Index %p, Data %p\n", + "IndexField: BitOff %X, Off %X, Value %X, " + "Gran %X, Index %p, Data %p\n", ObjDesc->IndexField.StartFieldBitOffset, ObjDesc->IndexField.BaseByteOffset, ObjDesc->IndexField.Value, @@ -710,10 +725,11 @@ AcpiExPrepFieldValue ( * Store the constructed descriptor (ObjDesc) into the parent Node, * preserving the current type of that NamedObj. */ - Status = AcpiNsAttachObject (Info->FieldNode, ObjDesc, - AcpiNsGetType (Info->FieldNode)); + Status = AcpiNsAttachObject ( + Info->FieldNode, ObjDesc, AcpiNsGetType (Info->FieldNode)); - ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, "Set NamedObj %p [%4.4s], ObjDesc %p\n", + ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD, + "Set NamedObj %p [%4.4s], ObjDesc %p\n", Info->FieldNode, AcpiUtGetNodeName (Info->FieldNode), ObjDesc)); /* Remove local reference to the object */ diff --git a/src/acpica/source/components/executer/exregion.c b/src/acpica/source/components/executer/exregion.c index cf60500..23c04dc 100644 --- a/src/acpica/source/components/executer/exregion.c +++ b/src/acpica/source/components/executer/exregion.c @@ -489,7 +489,8 @@ AcpiExPciConfigSpaceHandler ( PciRegister = (UINT16) (UINT32) Address; ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "Pci-Config %u (%u) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n", + "Pci-Config %u (%u) Seg(%04x) Bus(%04x) " + "Dev(%04x) Func(%04x) Reg(%04x)\n", Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device, PciId->Function, PciRegister)); @@ -498,14 +499,14 @@ AcpiExPciConfigSpaceHandler ( case ACPI_READ: *Value = 0; - Status = AcpiOsReadPciConfiguration (PciId, PciRegister, - Value, BitWidth); + Status = AcpiOsReadPciConfiguration ( + PciId, PciRegister, Value, BitWidth); break; case ACPI_WRITE: - Status = AcpiOsWritePciConfiguration (PciId, PciRegister, - *Value, BitWidth); + Status = AcpiOsWritePciConfiguration ( + PciId, PciRegister, *Value, BitWidth); break; default: diff --git a/src/acpica/source/components/executer/exresnte.c b/src/acpica/source/components/executer/exresnte.c index 6967bbb..4c334f6 100644 --- a/src/acpica/source/components/executer/exresnte.c +++ b/src/acpica/source/components/executer/exresnte.c @@ -170,9 +170,9 @@ AcpiExResolveNodeToValue ( * The stack pointer points to a ACPI_NAMESPACE_NODE (Node). Get the * object that is attached to the Node. */ - Node = *ObjectPtr; + Node = *ObjectPtr; SourceDesc = AcpiNsGetAttachedObject (Node); - EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); + EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Entry=%p SourceDesc=%p [%s]\n", Node, SourceDesc, AcpiUtGetTypeName (EntryType))); @@ -182,15 +182,15 @@ AcpiExResolveNodeToValue ( { /* There is always exactly one level of indirection */ - Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object); + Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Node->Object); SourceDesc = AcpiNsGetAttachedObject (Node); - EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); + EntryType = AcpiNsGetType ((ACPI_HANDLE) Node); *ObjectPtr = Node; } /* * Several object types require no further processing: - * 1) Device/Thermal objects don't have a "real" subobject, return the Node + * 1) Device/Thermal objects don't have a "real" subobject, return Node * 2) Method locals and arguments have a pseudo-Node * 3) 10/2007: Added method type to assist with Package construction. */ diff --git a/src/acpica/source/components/executer/exresolv.c b/src/acpica/source/components/executer/exresolv.c index a273a71..6628e93 100644 --- a/src/acpica/source/components/executer/exresolv.c +++ b/src/acpica/source/components/executer/exresolv.c @@ -191,8 +191,8 @@ AcpiExResolveToValue ( if (ACPI_GET_DESCRIPTOR_TYPE (*StackPtr) == ACPI_DESC_TYPE_NAMED) { Status = AcpiExResolveNodeToValue ( - ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, StackPtr), - WalkState); + ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE, StackPtr), + WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -251,7 +251,7 @@ AcpiExResolveObjectToValue ( * Note: this increments the local's object reference count */ Status = AcpiDsMethodDataGetValue (RefType, - StackDesc->Reference.Value, WalkState, &ObjDesc); + StackDesc->Reference.Value, WalkState, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -307,7 +307,8 @@ AcpiExResolveObjectToValue ( * the package, can't dereference it */ ACPI_ERROR ((AE_INFO, - "Attempt to dereference an Index to NULL package element Idx=%p", + "Attempt to dereference an Index to " + "NULL package element Idx=%p", StackDesc)); Status = AE_AML_UNINITIALIZED_ELEMENT; } @@ -358,7 +359,8 @@ AcpiExResolveObjectToValue ( default: ACPI_ERROR ((AE_INFO, - "Unknown Reference type 0x%X in %p", RefType, StackDesc)); + "Unknown Reference type 0x%X in %p", + RefType, StackDesc)); Status = AE_AML_INTERNAL; break; } @@ -379,7 +381,8 @@ AcpiExResolveObjectToValue ( case ACPI_TYPE_LOCAL_BANK_FIELD: case ACPI_TYPE_LOCAL_INDEX_FIELD: - ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "FieldRead SourceDesc=%p Type=%X\n", + ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, + "FieldRead SourceDesc=%p Type=%X\n", StackDesc, StackDesc->Common.Type)); Status = AcpiExReadDataFromField (WalkState, StackDesc, &ObjDesc); @@ -450,7 +453,8 @@ AcpiExResolveMultiple ( if (Type == ACPI_TYPE_LOCAL_ALIAS) { Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type; - ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc); + ObjDesc = AcpiNsGetAttachedObject ( + (ACPI_NAMESPACE_NODE *) ObjDesc); } if (!ObjDesc) @@ -564,7 +568,7 @@ AcpiExResolveMultiple ( if (ReturnDesc) { Status = AcpiDsMethodDataGetValue (ObjDesc->Reference.Class, - ObjDesc->Reference.Value, WalkState, &ObjDesc); + ObjDesc->Reference.Value, WalkState, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -574,7 +578,7 @@ AcpiExResolveMultiple ( else { Status = AcpiDsMethodDataGetNode (ObjDesc->Reference.Class, - ObjDesc->Reference.Value, WalkState, &Node); + ObjDesc->Reference.Value, WalkState, &Node); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -599,7 +603,8 @@ AcpiExResolveMultiple ( default: ACPI_ERROR ((AE_INFO, - "Unknown Reference Class 0x%2.2X", ObjDesc->Reference.Class)); + "Unknown Reference Class 0x%2.2X", + ObjDesc->Reference.Class)); return_ACPI_STATUS (AE_AML_INTERNAL); } } diff --git a/src/acpica/source/components/executer/exresop.c b/src/acpica/source/components/executer/exresop.c index 3cfe472..214e6de 100644 --- a/src/acpica/source/components/executer/exresop.c +++ b/src/acpica/source/components/executer/exresop.c @@ -171,7 +171,8 @@ AcpiExCheckObjectType ( * specification, a store to a constant is a noop.) */ if ((ThisType == ACPI_TYPE_INTEGER) && - (((ACPI_OPERAND_OBJECT *) Object)->Common.Flags & AOPOBJ_AML_CONSTANT)) + (((ACPI_OPERAND_OBJECT *) Object)->Common.Flags & + AOPOBJ_AML_CONSTANT)) { return (AE_OK); } @@ -288,7 +289,8 @@ AcpiExResolveOperands ( */ if (ObjectType == ACPI_TYPE_LOCAL_ALIAS) { - ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc); + ObjDesc = AcpiNsGetAttachedObject ( + (ACPI_NAMESPACE_NODE *) ObjDesc); *StackPtr = ObjDesc; ObjectType = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type; } @@ -369,7 +371,8 @@ AcpiExResolveOperands ( { case ARGI_REF_OR_STRING: /* Can be a String or Reference */ - if ((ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == ACPI_DESC_TYPE_OPERAND) && + if ((ACPI_GET_DESCRIPTOR_TYPE (ObjDesc) == + ACPI_DESC_TYPE_OPERAND) && (ObjDesc->Common.Type == ACPI_TYPE_STRING)) { /* @@ -403,8 +406,8 @@ AcpiExResolveOperands ( goto NextOperand; } - Status = AcpiExCheckObjectType (ACPI_TYPE_LOCAL_REFERENCE, - ObjectType, ObjDesc); + Status = AcpiExCheckObjectType ( + ACPI_TYPE_LOCAL_REFERENCE, ObjectType, ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -555,8 +558,8 @@ AcpiExResolveOperands ( * But we can implicitly convert from a BUFFER or INTEGER * Aka - "Implicit Source Operand Conversion" */ - Status = AcpiExConvertToString (ObjDesc, StackPtr, - ACPI_IMPLICIT_CONVERT_HEX); + Status = AcpiExConvertToString ( + ObjDesc, StackPtr, ACPI_IMPLICIT_CONVERT_HEX); if (ACPI_FAILURE (Status)) { if (Status == AE_TYPE) @@ -689,8 +692,10 @@ AcpiExResolveOperands ( case ARGI_REGION_OR_BUFFER: /* Used by Load() only */ - /* Need an operand of type REGION or a BUFFER (which could be a resolved region field) */ - + /* + * Need an operand of type REGION or a BUFFER + * (which could be a resolved region field) + */ switch (ObjDesc->Common.Type) { case ACPI_TYPE_BUFFER: @@ -734,9 +739,9 @@ AcpiExResolveOperands ( if (AcpiGbl_EnableInterpreterSlack) { /* - * Enable original behavior of Store(), allowing any and all - * objects as the source operand. The ACPI spec does not - * allow this, however. + * Enable original behavior of Store(), allowing any + * and all objects as the source operand. The ACPI + * spec does not allow this, however. */ break; } @@ -749,7 +754,8 @@ AcpiExResolveOperands ( } ACPI_ERROR ((AE_INFO, - "Needed Integer/Buffer/String/Package/Ref/Ddb], found [%s] %p", + "Needed Integer/Buffer/String/Package/Ref/Ddb]" + ", found [%s] %p", AcpiUtGetObjectTypeName (ObjDesc), ObjDesc)); return_ACPI_STATUS (AE_AML_OPERAND_TYPE); @@ -771,8 +777,8 @@ AcpiExResolveOperands ( * Make sure that the original object was resolved to the * required object type (Simple cases only). */ - Status = AcpiExCheckObjectType (TypeNeeded, - (*StackPtr)->Common.Type, *StackPtr); + Status = AcpiExCheckObjectType ( + TypeNeeded, (*StackPtr)->Common.Type, *StackPtr); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/executer/exstore.c b/src/acpica/source/components/executer/exstore.c index cb6ebc0..096d65d 100644 --- a/src/acpica/source/components/executer/exstore.c +++ b/src/acpica/source/components/executer/exstore.c @@ -189,8 +189,8 @@ AcpiExStore ( * Storing an object into a Named node. */ Status = AcpiExStoreObjectToNode (SourceDesc, - (ACPI_NAMESPACE_NODE *) DestDesc, WalkState, - ACPI_IMPLICIT_CONVERSION); + (ACPI_NAMESPACE_NODE *) DestDesc, WalkState, + ACPI_IMPLICIT_CONVERSION); return_ACPI_STATUS (Status); } @@ -240,8 +240,8 @@ AcpiExStore ( /* Storing an object into a Name "container" */ Status = AcpiExStoreObjectToNode (SourceDesc, - RefDesc->Reference.Object, - WalkState, ACPI_IMPLICIT_CONVERSION); + RefDesc->Reference.Object, + WalkState, ACPI_IMPLICIT_CONVERSION); break; case ACPI_REFCLASS_INDEX: @@ -257,7 +257,7 @@ AcpiExStore ( /* Store to a method local/arg */ Status = AcpiDsStoreObjectToLocal (RefDesc->Reference.Class, - RefDesc->Reference.Value, SourceDesc, WalkState); + RefDesc->Reference.Value, SourceDesc, WalkState); break; case ACPI_REFCLASS_DEBUG: @@ -346,7 +346,8 @@ AcpiExStoreObjectToIndex ( { /* Normal object, copy it */ - Status = AcpiUtCopyIobjectToIobject (SourceDesc, &NewDesc, WalkState); + Status = AcpiUtCopyIobjectToIobject ( + SourceDesc, &NewDesc, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -559,7 +560,8 @@ AcpiExStoreObjectToNode ( case ACPI_TYPE_THERMAL: ACPI_ERROR ((AE_INFO, - "Target must be [Buffer/Integer/String/Reference], found [%s] (%4.4s)", + "Target must be [Buffer/Integer/String/Reference]" + ", found [%s] (%4.4s)", AcpiUtGetTypeName (Node->Type), Node->Name.Ascii)); return_ACPI_STATUS (AE_AML_TARGET_TYPE); @@ -599,8 +601,7 @@ AcpiExStoreObjectToNode ( * an implicit conversion, as per the ACPI specification. * A direct store is performed instead. */ - Status = AcpiExStoreDirectToNode (SourceDesc, Node, - WalkState); + Status = AcpiExStoreDirectToNode (SourceDesc, Node, WalkState); break; } @@ -624,8 +625,8 @@ AcpiExStoreObjectToNode ( * store has been performed such that the node/object type * has been changed. */ - Status = AcpiNsAttachObject (Node, NewDesc, - NewDesc->Common.Type); + Status = AcpiNsAttachObject ( + Node, NewDesc, NewDesc->Common.Type); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Store type [%s] into [%s] via Convert/Attach\n", @@ -657,8 +658,7 @@ AcpiExStoreObjectToNode ( * operator. (Note, for this default case, all normal * Store/Target operations exited above with an error). */ - Status = AcpiExStoreDirectToNode (SourceDesc, Node, - WalkState); + Status = AcpiExStoreDirectToNode (SourceDesc, Node, WalkState); break; } diff --git a/src/acpica/source/components/executer/exstoren.c b/src/acpica/source/components/executer/exstoren.c index 6a1be4c..f563f8a 100644 --- a/src/acpica/source/components/executer/exstoren.c +++ b/src/acpica/source/components/executer/exstoren.c @@ -196,7 +196,7 @@ AcpiExResolveObject ( (SourceDesc->Common.Type != ACPI_TYPE_BUFFER) && (SourceDesc->Common.Type != ACPI_TYPE_STRING) && !((SourceDesc->Common.Type == ACPI_TYPE_LOCAL_REFERENCE) && - (SourceDesc->Reference.Class== ACPI_REFCLASS_TABLE))) + (SourceDesc->Reference.Class== ACPI_REFCLASS_TABLE))) { /* Conversion successful but still not a valid type */ @@ -305,7 +305,7 @@ AcpiExStoreObjectToObject ( * converted object. */ Status = AcpiExConvertToTargetType (DestDesc->Common.Type, - SourceDesc, &ActualSrcDesc, WalkState); + SourceDesc, &ActualSrcDesc, WalkState); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/executer/exstorob.c b/src/acpica/source/components/executer/exstorob.c index 8c23aee..bcfe800 100644 --- a/src/acpica/source/components/executer/exstorob.c +++ b/src/acpica/source/components/executer/exstorob.c @@ -1,6 +1,6 @@ /****************************************************************************** * - * Module Name: exstorob - AML Interpreter object store support, store to object + * Module Name: exstorob - AML object store support, store to object * *****************************************************************************/ @@ -293,8 +293,9 @@ AcpiExStoreStringToString ( ACPI_FREE (TargetDesc->String.Pointer); } - TargetDesc->String.Pointer = ACPI_ALLOCATE_ZEROED ( - (ACPI_SIZE) Length + 1); + TargetDesc->String.Pointer = + ACPI_ALLOCATE_ZEROED ((ACPI_SIZE) Length + 1); + if (!TargetDesc->String.Pointer) { return_ACPI_STATUS (AE_NO_MEMORY); diff --git a/src/acpica/source/components/executer/exsystem.c b/src/acpica/source/components/executer/exsystem.c index 49ec2e9..7813480 100644 --- a/src/acpica/source/components/executer/exsystem.c +++ b/src/acpica/source/components/executer/exsystem.c @@ -158,7 +158,6 @@ AcpiExSystemWaitSemaphore ( /* We must wait, so unlock the interpreter */ AcpiExExitInterpreter (); - Status = AcpiOsWaitSemaphore (Semaphore, 1, Timeout); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, @@ -211,7 +210,6 @@ AcpiExSystemWaitMutex ( /* We must wait, so unlock the interpreter */ AcpiExExitInterpreter (); - Status = AcpiOsAcquireMutex (Mutex, Timeout); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, @@ -262,8 +260,8 @@ AcpiExSystemDoStall ( * (ACPI specifies 100 usec as max, but this gives some slack in * order to support existing BIOSs) */ - ACPI_ERROR ((AE_INFO, "Time parameter is too large (%u)", - HowLong)); + ACPI_ERROR ((AE_INFO, + "Time parameter is too large (%u)", HowLong)); Status = AE_AML_OPERAND_VALUE; } else @@ -378,7 +376,7 @@ AcpiExSystemWaitEvent ( if (ObjDesc) { Status = AcpiExSystemWaitSemaphore (ObjDesc->Event.OsSemaphore, - (UINT16) TimeDesc->Integer.Value); + (UINT16) TimeDesc->Integer.Value); } return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/executer/extrace.c b/src/acpica/source/components/executer/extrace.c new file mode 100644 index 0000000..60d020e --- /dev/null +++ b/src/acpica/source/components/executer/extrace.c @@ -0,0 +1,499 @@ +/****************************************************************************** + * + * Module Name: extrace - Support for interpreter execution tracing + * + *****************************************************************************/ + +/****************************************************************************** + * + * 1. Copyright Notice + * + * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp. + * All rights reserved. + * + * 2. License + * + * 2.1. This is your license from Intel Corp. under its intellectual property + * rights. You may have additional license terms from the party that provided + * you this software, covering your right to use that party's intellectual + * property rights. + * + * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a + * copy of the source code appearing in this file ("Covered Code") an + * irrevocable, perpetual, worldwide license under Intel's copyrights in the + * base code distributed originally by Intel ("Original Intel Code") to copy, + * make derivatives, distribute, use and display any portion of the Covered + * Code in any form, with the right to sublicense such rights; and + * + * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent + * license (with the right to sublicense), under only those claims of Intel + * patents that are infringed by the Original Intel Code, to make, use, sell, + * offer to sell, and import the Covered Code and derivative works thereof + * solely to the minimum extent necessary to exercise the above copyright + * license, and in no event shall the patent license extend to any additions + * to or modifications of the Original Intel Code. No other license or right + * is granted directly or by implication, estoppel or otherwise; + * + * The above copyright and patent license is granted only if the following + * conditions are met: + * + * 3. Conditions + * + * 3.1. Redistribution of Source with Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification with rights to further distribute source must include + * the above Copyright Notice, the above License, this list of Conditions, + * and the following Disclaimer and Export Compliance provision. In addition, + * Licensee must cause all Covered Code to which Licensee contributes to + * contain a file documenting the changes Licensee made to create that Covered + * Code and the date of any change. Licensee must include in that file the + * documentation of any changes made by any predecessor Licensee. Licensee + * must include a prominent statement that the modification is derived, + * directly or indirectly, from Original Intel Code. + * + * 3.2. Redistribution of Source with no Rights to Further Distribute Source. + * Redistribution of source code of any substantial portion of the Covered + * Code or modification without rights to further distribute source must + * include the following Disclaimer and Export Compliance provision in the + * documentation and/or other materials provided with distribution. In + * addition, Licensee may not authorize further sublicense of source of any + * portion of the Covered Code, and must include terms to the effect that the + * license from Licensee to its licensee is limited to the intellectual + * property embodied in the software Licensee provides to its licensee, and + * not to intellectual property embodied in modifications its licensee may + * make. + * + * 3.3. Redistribution of Executable. Redistribution in executable form of any + * substantial portion of the Covered Code or modification must reproduce the + * above Copyright Notice, and the following Disclaimer and Export Compliance + * provision in the documentation and/or other materials provided with the + * distribution. + * + * 3.4. Intel retains all right, title, and interest in and to the Original + * Intel Code. + * + * 3.5. Neither the name Intel nor any other trademark owned or controlled by + * Intel shall be used in advertising or otherwise to promote the sale, use or + * other dealings in products derived from or relating to the Covered Code + * without prior written authorization from Intel. + * + * 4. Disclaimer and Export Compliance + * + * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED + * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE + * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, + * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY + * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY + * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A + * PARTICULAR PURPOSE. + * + * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES + * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR + * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, + * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY + * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL + * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS + * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY + * LIMITED REMEDY. + * + * 4.3. Licensee shall not export, either directly or indirectly, any of this + * software or system incorporating such software without first obtaining any + * required license or other approval from the U. S. Department of Commerce or + * any other agency or department of the United States Government. In the + * event Licensee exports any such software from the United States or + * re-exports any such software from a foreign destination, Licensee shall + * ensure that the distribution and export/re-export of the software is in + * compliance with all laws, regulations, orders, or other restrictions of the + * U.S. Export Administration Regulations. Licensee agrees that neither it nor + * any of its subsidiaries will export/re-export any technical data, process, + * software, or service, directly or indirectly, to any country for which the + * United States government or any agency thereof requires an export license, + * other governmental approval, or letter of assurance, without first obtaining + * such license, approval or letter. + * + *****************************************************************************/ + +#include "acpi.h" +#include "accommon.h" +#include "acnamesp.h" +#include "acinterp.h" + + +#define _COMPONENT ACPI_EXECUTER + ACPI_MODULE_NAME ("extrace") + + +static ACPI_OPERAND_OBJECT *AcpiGbl_TraceMethodObject = NULL; + +/* Local prototypes */ + +#ifdef ACPI_DEBUG_OUTPUT +static const char * +AcpiExGetTraceEventName ( + ACPI_TRACE_EVENT_TYPE Type); +#endif + + +/******************************************************************************* + * + * FUNCTION: AcpiExInterpreterTraceEnabled + * + * PARAMETERS: Name - Whether method name should be matched, + * this should be checked before starting + * the tracer + * + * RETURN: TRUE if interpreter trace is enabled. + * + * DESCRIPTION: Check whether interpreter trace is enabled + * + ******************************************************************************/ + +static BOOLEAN +AcpiExInterpreterTraceEnabled ( + char *Name) +{ + + /* Check if tracing is enabled */ + + if (!(AcpiGbl_TraceFlags & ACPI_TRACE_ENABLED)) + { + return (FALSE); + } + + /* + * Check if tracing is filtered: + * + * 1. If the tracer is started, AcpiGbl_TraceMethodObject should have + * been filled by the trace starter + * 2. If the tracer is not started, AcpiGbl_TraceMethodName should be + * matched if it is specified + * 3. If the tracer is oneshot style, AcpiGbl_TraceMethodName should + * not be cleared by the trace stopper during the first match + */ + if (AcpiGbl_TraceMethodObject) + { + return (TRUE); + } + + if (Name && + (AcpiGbl_TraceMethodName && + strcmp (AcpiGbl_TraceMethodName, Name))) + { + return (FALSE); + } + + if ((AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) && + !AcpiGbl_TraceMethodName) + { + return (FALSE); + } + + return (TRUE); +} + + +/******************************************************************************* + * + * FUNCTION: AcpiExGetTraceEventName + * + * PARAMETERS: Type - Trace event type + * + * RETURN: Trace event name. + * + * DESCRIPTION: Used to obtain the full trace event name. + * + ******************************************************************************/ + +#ifdef ACPI_DEBUG_OUTPUT + +static const char * +AcpiExGetTraceEventName ( + ACPI_TRACE_EVENT_TYPE Type) +{ + + switch (Type) + { + case ACPI_TRACE_AML_METHOD: + + return "Method"; + + case ACPI_TRACE_AML_OPCODE: + + return "Opcode"; + + case ACPI_TRACE_AML_REGION: + + return "Region"; + + default: + + return ""; + } +} + +#endif + + +/******************************************************************************* + * + * FUNCTION: AcpiExTracePoint + * + * PARAMETERS: Type - Trace event type + * Begin - TRUE if before execution + * Aml - Executed AML address + * Pathname - Object path + * + * RETURN: None + * + * DESCRIPTION: Internal interpreter execution trace. + * + ******************************************************************************/ + +void +AcpiExTracePoint ( + ACPI_TRACE_EVENT_TYPE Type, + BOOLEAN Begin, + UINT8 *Aml, + char *Pathname) +{ + + ACPI_FUNCTION_NAME (ExTracePoint); + + + if (Pathname) + { + ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, + "%s %s [0x%p:%s] execution.\n", + AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", + Aml, Pathname)); + } + else + { + ACPI_DEBUG_PRINT ((ACPI_DB_TRACE_POINT, + "%s %s [0x%p] execution.\n", + AcpiExGetTraceEventName (Type), Begin ? "Begin" : "End", + Aml)); + } +} + + +/******************************************************************************* + * + * FUNCTION: AcpiExStartTraceMethod + * + * PARAMETERS: MethodNode - Node of the method + * ObjDesc - The method object + * WalkState - current state, NULL if not yet executing + * a method. + * + * RETURN: None + * + * DESCRIPTION: Start control method execution trace + * + ******************************************************************************/ + +void +AcpiExStartTraceMethod ( + ACPI_NAMESPACE_NODE *MethodNode, + ACPI_OPERAND_OBJECT *ObjDesc, + ACPI_WALK_STATE *WalkState) +{ + ACPI_STATUS Status; + char *Pathname = NULL; + BOOLEAN Enabled = FALSE; + + + ACPI_FUNCTION_NAME (ExStartTraceMethod); + + + if (MethodNode) + { + Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); + } + + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (Status)) + { + goto Exit; + } + + Enabled = AcpiExInterpreterTraceEnabled (Pathname); + if (Enabled && !AcpiGbl_TraceMethodObject) + { + AcpiGbl_TraceMethodObject = ObjDesc; + AcpiGbl_OriginalDbgLevel = AcpiDbgLevel; + AcpiGbl_OriginalDbgLayer = AcpiDbgLayer; + AcpiDbgLevel = ACPI_TRACE_LEVEL_ALL; + AcpiDbgLayer = ACPI_TRACE_LAYER_ALL; + + if (AcpiGbl_TraceDbgLevel) + { + AcpiDbgLevel = AcpiGbl_TraceDbgLevel; + } + + if (AcpiGbl_TraceDbgLayer) + { + AcpiDbgLayer = AcpiGbl_TraceDbgLayer; + } + } + + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); + +Exit: + if (Enabled) + { + ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, TRUE, + ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); + } + + if (Pathname) + { + ACPI_FREE (Pathname); + } +} + + +/******************************************************************************* + * + * FUNCTION: AcpiExStopTraceMethod + * + * PARAMETERS: MethodNode - Node of the method + * ObjDesc - The method object + * WalkState - current state, NULL if not yet executing + * a method. + * + * RETURN: None + * + * DESCRIPTION: Stop control method execution trace + * + ******************************************************************************/ + +void +AcpiExStopTraceMethod ( + ACPI_NAMESPACE_NODE *MethodNode, + ACPI_OPERAND_OBJECT *ObjDesc, + ACPI_WALK_STATE *WalkState) +{ + ACPI_STATUS Status; + char *Pathname = NULL; + BOOLEAN Enabled; + + + ACPI_FUNCTION_NAME (ExStopTraceMethod); + + + if (MethodNode) + { + Pathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE); + } + + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (Status)) + { + goto ExitPath; + } + + Enabled = AcpiExInterpreterTraceEnabled (NULL); + + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); + + if (Enabled) + { + ACPI_TRACE_POINT (ACPI_TRACE_AML_METHOD, FALSE, + ObjDesc ? ObjDesc->Method.AmlStart : NULL, Pathname); + } + + Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE (Status)) + { + goto ExitPath; + } + + /* Check whether the tracer should be stopped */ + + if (AcpiGbl_TraceMethodObject == ObjDesc) + { + /* Disable further tracing if type is one-shot */ + + if (AcpiGbl_TraceFlags & ACPI_TRACE_ONESHOT) + { + AcpiGbl_TraceMethodName = NULL; + } + + AcpiDbgLevel = AcpiGbl_OriginalDbgLevel; + AcpiDbgLayer = AcpiGbl_OriginalDbgLayer; + AcpiGbl_TraceMethodObject = NULL; + } + + (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); + +ExitPath: + if (Pathname) + { + ACPI_FREE (Pathname); + } +} + + +/******************************************************************************* + * + * FUNCTION: AcpiExStartTraceOpcode + * + * PARAMETERS: Op - The parser opcode object + * WalkState - current state, NULL if not yet executing + * a method. + * + * RETURN: None + * + * DESCRIPTION: Start opcode execution trace + * + ******************************************************************************/ + +void +AcpiExStartTraceOpcode ( + ACPI_PARSE_OBJECT *Op, + ACPI_WALK_STATE *WalkState) +{ + + ACPI_FUNCTION_NAME (ExStartTraceOpcode); + + + if (AcpiExInterpreterTraceEnabled (NULL) && + (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) + { + ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, TRUE, + Op->Common.Aml, Op->Common.AmlOpName); + } +} + + +/******************************************************************************* + * + * FUNCTION: AcpiExStopTraceOpcode + * + * PARAMETERS: Op - The parser opcode object + * WalkState - current state, NULL if not yet executing + * a method. + * + * RETURN: None + * + * DESCRIPTION: Stop opcode execution trace + * + ******************************************************************************/ + +void +AcpiExStopTraceOpcode ( + ACPI_PARSE_OBJECT *Op, + ACPI_WALK_STATE *WalkState) +{ + + ACPI_FUNCTION_NAME (ExStopTraceOpcode); + + + if (AcpiExInterpreterTraceEnabled (NULL) && + (AcpiGbl_TraceFlags & ACPI_TRACE_OPCODE)) + { + ACPI_TRACE_POINT (ACPI_TRACE_AML_OPCODE, FALSE, + Op->Common.Aml, Op->Common.AmlOpName); + } +} diff --git a/src/acpica/source/components/executer/exutils.c b/src/acpica/source/components/executer/exutils.c index 90a791d..0356a8d 100644 --- a/src/acpica/source/components/executer/exutils.c +++ b/src/acpica/source/components/executer/exutils.c @@ -259,8 +259,8 @@ AcpiExTruncateFor32bitTable ( (ObjDesc->Integer.Value > (UINT64) ACPI_UINT32_MAX)) { /* - * We are executing in a 32-bit ACPI table. - * Truncate the value to 32 bits by zeroing out the upper 32-bit field + * We are executing in a 32-bit ACPI table. Truncate + * the value to 32 bits by zeroing out the upper 32-bit field */ ObjDesc->Integer.Value &= (UINT64) ACPI_UINT32_MAX; return (TRUE); @@ -304,7 +304,7 @@ AcpiExAcquireGlobalLock ( /* Attempt to get the global lock, wait forever */ Status = AcpiExAcquireMutexObject (ACPI_WAIT_FOREVER, - AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); + AcpiGbl_GlobalLockMutex, AcpiOsGetThreadId ()); if (ACPI_FAILURE (Status)) { @@ -441,7 +441,8 @@ AcpiExEisaIdToString ( if (CompressedId > ACPI_UINT32_MAX) { ACPI_WARNING ((AE_INFO, - "Expected EISAID is larger than 32 bits: 0x%8.8X%8.8X, truncating", + "Expected EISAID is larger than 32 bits: " + "0x%8.8X%8.8X, truncating", ACPI_FORMAT_UINT64 (CompressedId))); } @@ -568,5 +569,4 @@ AcpiIsValidSpaceId ( return (TRUE); } - #endif diff --git a/src/acpica/source/components/hardware/hwacpi.c b/src/acpica/source/components/hardware/hwacpi.c index 0530383..87a41c3 100644 --- a/src/acpica/source/components/hardware/hwacpi.c +++ b/src/acpica/source/components/hardware/hwacpi.c @@ -185,7 +185,7 @@ AcpiHwSetMode ( /* BIOS should have disabled ALL fixed and GP events */ Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, - (UINT32) AcpiGbl_FADT.AcpiEnable, 8); + (UINT32) AcpiGbl_FADT.AcpiEnable, 8); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Attempting to enable ACPI mode\n")); break; @@ -195,9 +195,9 @@ AcpiHwSetMode ( * enable bits to default */ Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, - (UINT32) AcpiGbl_FADT.AcpiDisable, 8); + (UINT32) AcpiGbl_FADT.AcpiDisable, 8); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, - "Attempting to enable Legacy (non-ACPI) mode\n")); + "Attempting to enable Legacy (non-ACPI) mode\n")); break; default: @@ -221,8 +221,8 @@ AcpiHwSetMode ( { if (AcpiHwGetMode () == Mode) { - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Mode %X successfully enabled\n", - Mode)); + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, + "Mode %X successfully enabled\n", Mode)); return_ACPI_STATUS (AE_OK); } AcpiOsStall (ACPI_USEC_PER_MSEC); diff --git a/src/acpica/source/components/hardware/hwesleep.c b/src/acpica/source/components/hardware/hwesleep.c index ba8acdc..ecc729c 100644 --- a/src/acpica/source/components/hardware/hwesleep.c +++ b/src/acpica/source/components/hardware/hwesleep.c @@ -202,7 +202,8 @@ AcpiHwExtendedSleep ( /* Clear wake status (WAK_STS) */ - Status = AcpiWrite ((UINT64) ACPI_X_WAKE_STATUS, &AcpiGbl_FADT.SleepStatus); + Status = AcpiWrite ((UINT64) ACPI_X_WAKE_STATUS, + &AcpiGbl_FADT.SleepStatus); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -274,7 +275,7 @@ AcpiHwExtendedWakePrep ( Status = AcpiGetSleepTypeData (ACPI_STATE_S0, - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); + &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); if (ACPI_SUCCESS (Status)) { SleepTypeValue = ((AcpiGbl_SleepTypeA << ACPI_X_SLEEP_TYPE_POSITION) & diff --git a/src/acpica/source/components/hardware/hwgpe.c b/src/acpica/source/components/hardware/hwgpe.c index 1ab6965..8e4cc8b 100644 --- a/src/acpica/source/components/hardware/hwgpe.c +++ b/src/acpica/source/components/hardware/hwgpe.c @@ -280,9 +280,7 @@ AcpiHwClearGpe ( */ RegisterBit = AcpiHwGetGpeRegisterBit (GpeEventInfo); - Status = AcpiHwWrite (RegisterBit, - &GpeRegisterInfo->StatusAddress); - + Status = AcpiHwWrite (RegisterBit, &GpeRegisterInfo->StatusAddress); return (Status); } @@ -323,7 +321,7 @@ AcpiHwGetGpeStatus ( /* GPE currently handled? */ if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) != - ACPI_GPE_DISPATCH_NONE) + ACPI_GPE_DISPATCH_NONE) { LocalEventStatus |= ACPI_EVENT_FLAG_HAS_HANDLER; } @@ -405,8 +403,8 @@ AcpiHwGpeEnableWrite ( GpeRegisterInfo->EnableMask = EnableMask; - Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress); + Status = AcpiHwWrite (EnableMask, &GpeRegisterInfo->EnableAddress); return (Status); } @@ -531,7 +529,7 @@ AcpiHwEnableRuntimeGpeBlock ( /* Enable all "runtime" GPEs in this register */ Status = AcpiHwGpeEnableWrite (GpeRegisterInfo->EnableForRun, - GpeRegisterInfo); + GpeRegisterInfo); if (ACPI_FAILURE (Status)) { return (Status); @@ -578,7 +576,7 @@ AcpiHwEnableWakeupGpeBlock ( * remaining ones. */ Status = AcpiHwGpeEnableWrite (GpeRegisterInfo->EnableForWake, - GpeRegisterInfo); + GpeRegisterInfo); if (ACPI_FAILURE (Status)) { return (Status); diff --git a/src/acpica/source/components/hardware/hwregs.c b/src/acpica/source/components/hardware/hwregs.c index 492833e..8cc2f47 100644 --- a/src/acpica/source/components/hardware/hwregs.c +++ b/src/acpica/source/components/hardware/hwregs.c @@ -140,6 +140,7 @@ AcpiHwWriteMultiple ( #endif /* !ACPI_REDUCED_HARDWARE */ + /****************************************************************************** * * FUNCTION: AcpiHwValidateRegister @@ -268,14 +269,14 @@ AcpiHwRead ( if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) { Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS) - Address, &Value64, Reg->BitWidth); + Address, &Value64, Reg->BitWidth); *Value = (UINT32) Value64; } else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */ { Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) - Address, Value, Reg->BitWidth); + Address, Value, Reg->BitWidth); } ACPI_DEBUG_PRINT ((ACPI_DB_IO, @@ -329,12 +330,12 @@ AcpiHwWrite ( if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) { Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS) - Address, (UINT64) Value, Reg->BitWidth); + Address, (UINT64) Value, Reg->BitWidth); } else /* ACPI_ADR_SPACE_SYSTEM_IO, validated earlier */ { Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) - Address, Value, Reg->BitWidth); + Address, Value, Reg->BitWidth); } ACPI_DEBUG_PRINT ((ACPI_DB_IO, @@ -379,7 +380,7 @@ AcpiHwClearAcpiStatus ( /* Clear the fixed events in PM1 A/B */ Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS, - ACPI_BITMASK_ALL_FIXED_STATUS); + ACPI_BITMASK_ALL_FIXED_STATUS); AcpiOsReleaseLock (AcpiGbl_HardwareLock, LockFlags); @@ -498,22 +499,22 @@ AcpiHwRegisterRead ( case ACPI_REGISTER_PM1_STATUS: /* PM1 A/B: 16-bit access each */ Status = AcpiHwReadMultiple (&Value, - &AcpiGbl_XPm1aStatus, - &AcpiGbl_XPm1bStatus); + &AcpiGbl_XPm1aStatus, + &AcpiGbl_XPm1bStatus); break; case ACPI_REGISTER_PM1_ENABLE: /* PM1 A/B: 16-bit access each */ Status = AcpiHwReadMultiple (&Value, - &AcpiGbl_XPm1aEnable, - &AcpiGbl_XPm1bEnable); + &AcpiGbl_XPm1aEnable, + &AcpiGbl_XPm1bEnable); break; case ACPI_REGISTER_PM1_CONTROL: /* PM1 A/B: 16-bit access each */ Status = AcpiHwReadMultiple (&Value, - &AcpiGbl_FADT.XPm1aControlBlock, - &AcpiGbl_FADT.XPm1bControlBlock); + &AcpiGbl_FADT.XPm1aControlBlock, + &AcpiGbl_FADT.XPm1bControlBlock); /* * Zero the write-only bits. From the ACPI specification, "Hardware @@ -609,15 +610,15 @@ AcpiHwRegisterWrite ( Value &= ~ACPI_PM1_STATUS_PRESERVED_BITS; Status = AcpiHwWriteMultiple (Value, - &AcpiGbl_XPm1aStatus, - &AcpiGbl_XPm1bStatus); + &AcpiGbl_XPm1aStatus, + &AcpiGbl_XPm1bStatus); break; case ACPI_REGISTER_PM1_ENABLE: /* PM1 A/B: 16-bit access each */ Status = AcpiHwWriteMultiple (Value, - &AcpiGbl_XPm1aEnable, - &AcpiGbl_XPm1bEnable); + &AcpiGbl_XPm1aEnable, + &AcpiGbl_XPm1bEnable); break; case ACPI_REGISTER_PM1_CONTROL: /* PM1 A/B: 16-bit access each */ @@ -626,8 +627,8 @@ AcpiHwRegisterWrite ( * Note: This includes SCI_EN, we never want to change this bit */ Status = AcpiHwReadMultiple (&ReadValue, - &AcpiGbl_FADT.XPm1aControlBlock, - &AcpiGbl_FADT.XPm1bControlBlock); + &AcpiGbl_FADT.XPm1aControlBlock, + &AcpiGbl_FADT.XPm1bControlBlock); if (ACPI_FAILURE (Status)) { goto Exit; @@ -640,8 +641,8 @@ AcpiHwRegisterWrite ( /* Now we can write the data */ Status = AcpiHwWriteMultiple (Value, - &AcpiGbl_FADT.XPm1aControlBlock, - &AcpiGbl_FADT.XPm1bControlBlock); + &AcpiGbl_FADT.XPm1aControlBlock, + &AcpiGbl_FADT.XPm1bControlBlock); break; case ACPI_REGISTER_PM2_CONTROL: /* 8-bit access */ diff --git a/src/acpica/source/components/hardware/hwsleep.c b/src/acpica/source/components/hardware/hwsleep.c index 6438ea7..f80f421 100644 --- a/src/acpica/source/components/hardware/hwsleep.c +++ b/src/acpica/source/components/hardware/hwsleep.c @@ -155,7 +155,8 @@ AcpiHwLegacySleep ( /* Clear wake status */ - Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS); + Status = AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, + ACPI_CLEAR_STATUS); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -189,7 +190,7 @@ AcpiHwLegacySleep ( /* Get current value of PM1A control */ Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL, - &Pm1aControl); + &Pm1aControl); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -200,7 +201,7 @@ AcpiHwLegacySleep ( /* Clear the SLP_EN and SLP_TYP fields */ Pm1aControl &= ~(SleepTypeRegInfo->AccessBitMask | - SleepEnableRegInfo->AccessBitMask); + SleepEnableRegInfo->AccessBitMask); Pm1bControl = Pm1aControl; /* Insert the SLP_TYP bits */ @@ -254,7 +255,7 @@ AcpiHwLegacySleep ( AcpiOsStall (10 * ACPI_USEC_PER_SEC); Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_CONTROL, - SleepEnableRegInfo->AccessBitMask); + SleepEnableRegInfo->AccessBitMask); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -310,7 +311,7 @@ AcpiHwLegacyWakePrep ( * by some machines. */ Status = AcpiGetSleepTypeData (ACPI_STATE_S0, - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); + &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); if (ACPI_SUCCESS (Status)) { SleepTypeRegInfo = @@ -321,7 +322,7 @@ AcpiHwLegacyWakePrep ( /* Get current value of PM1A control */ Status = AcpiHwRegisterRead (ACPI_REGISTER_PM1_CONTROL, - &Pm1aControl); + &Pm1aControl); if (ACPI_SUCCESS (Status)) { /* Clear the SLP_EN and SLP_TYP fields */ @@ -406,7 +407,8 @@ AcpiHwLegacyWake ( * and use it to determine whether the system is rebooting or * resuming. Clear WAK_STS for compatibility. */ - (void) AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, ACPI_CLEAR_STATUS); + (void) AcpiWriteBitRegister (ACPI_BITREG_WAKE_STATUS, + ACPI_CLEAR_STATUS); AcpiGbl_SystemAwakeAndRunning = TRUE; /* Enable power button */ diff --git a/src/acpica/source/components/hardware/hwxface.c b/src/acpica/source/components/hardware/hwxface.c index 12c4ffb..1a30db6 100644 --- a/src/acpica/source/components/hardware/hwxface.c +++ b/src/acpica/source/components/hardware/hwxface.c @@ -241,7 +241,7 @@ AcpiRead ( if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) { Status = AcpiOsReadMemory ((ACPI_PHYSICAL_ADDRESS) - Address, ReturnValue, Reg->BitWidth); + Address, ReturnValue, Reg->BitWidth); if (ACPI_FAILURE (Status)) { return (Status); @@ -259,7 +259,7 @@ AcpiRead ( } Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) - Address, &ValueLo, Width); + Address, &ValueLo, Width); if (ACPI_FAILURE (Status)) { return (Status); @@ -270,7 +270,7 @@ AcpiRead ( /* Read the top 32 bits */ Status = AcpiHwReadPort ((ACPI_IO_ADDRESS) - (Address + 4), &ValueHi, 32); + (Address + 4), &ValueHi, 32); if (ACPI_FAILURE (Status)) { return (Status); @@ -335,7 +335,7 @@ AcpiWrite ( if (Reg->SpaceId == ACPI_ADR_SPACE_SYSTEM_MEMORY) { Status = AcpiOsWriteMemory ((ACPI_PHYSICAL_ADDRESS) - Address, Value, Reg->BitWidth); + Address, Value, Reg->BitWidth); if (ACPI_FAILURE (Status)) { return (Status); @@ -350,7 +350,7 @@ AcpiWrite ( } Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) - Address, ACPI_LODWORD (Value), Width); + Address, ACPI_LODWORD (Value), Width); if (ACPI_FAILURE (Status)) { return (Status); @@ -359,7 +359,7 @@ AcpiWrite ( if (Reg->BitWidth == 64) { Status = AcpiHwWritePort ((ACPI_IO_ADDRESS) - (Address + 4), ACPI_HIDWORD (Value), 32); + (Address + 4), ACPI_HIDWORD (Value), 32); if (ACPI_FAILURE (Status)) { return (Status); @@ -430,7 +430,7 @@ AcpiReadBitRegister ( /* Read the entire parent register */ Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister, - &RegisterValue); + &RegisterValue); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -439,7 +439,7 @@ AcpiReadBitRegister ( /* Normalize the value that was read, mask off other bits */ Value = ((RegisterValue & BitRegInfo->AccessBitMask) - >> BitRegInfo->BitPosition); + >> BitRegInfo->BitPosition); ACPI_DEBUG_PRINT ((ACPI_DB_IO, "BitReg %X, ParentReg %X, Actual %8.8X, ReturnValue %8.8X\n", @@ -511,7 +511,7 @@ AcpiWriteBitRegister ( * interested in */ Status = AcpiHwRegisterRead (BitRegInfo->ParentRegister, - &RegisterValue); + &RegisterValue); if (ACPI_FAILURE (Status)) { goto UnlockAndExit; @@ -525,7 +525,7 @@ AcpiWriteBitRegister ( BitRegInfo->AccessBitMask, Value); Status = AcpiHwRegisterWrite (BitRegInfo->ParentRegister, - RegisterValue); + RegisterValue); } else { @@ -545,7 +545,7 @@ AcpiWriteBitRegister ( if (RegisterValue) { Status = AcpiHwRegisterWrite (ACPI_REGISTER_PM1_STATUS, - RegisterValue); + RegisterValue); } } @@ -637,12 +637,20 @@ AcpiGetSleepTypeData ( * Evaluate the \_Sx namespace object containing the register values * for this state */ - Info->RelativePathname = ACPI_CAST_PTR ( - char, AcpiGbl_SleepStateNames[SleepState]); + Info->RelativePathname = ACPI_CAST_PTR (char, + AcpiGbl_SleepStateNames[SleepState]); + Status = AcpiNsEvaluate (Info); if (ACPI_FAILURE (Status)) { - goto Cleanup; + if (Status == AE_NOT_FOUND) + { + /* The _Sx states are optional, ignore NOT_FOUND */ + + goto FinalCleanup; + } + + goto WarningCleanup; } /* Must have a return object */ @@ -652,7 +660,7 @@ AcpiGetSleepTypeData ( ACPI_ERROR ((AE_INFO, "No Sleep State object returned from [%s]", Info->RelativePathname)); Status = AE_AML_NO_RETURN_VALUE; - goto Cleanup; + goto WarningCleanup; } /* Return object must be of type Package */ @@ -661,7 +669,7 @@ AcpiGetSleepTypeData ( { ACPI_ERROR ((AE_INFO, "Sleep State return object is not a Package")); Status = AE_AML_OPERAND_TYPE; - goto Cleanup1; + goto ReturnValueCleanup; } /* @@ -708,16 +716,18 @@ AcpiGetSleepTypeData ( break; } -Cleanup1: +ReturnValueCleanup: AcpiUtRemoveReference (Info->ReturnObject); -Cleanup: +WarningCleanup: if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, - "While evaluating Sleep State [%s]", Info->RelativePathname)); + "While evaluating Sleep State [%s]", + Info->RelativePathname)); } +FinalCleanup: ACPI_FREE (Info); return_ACPI_STATUS (Status); } diff --git a/src/acpica/source/components/hardware/hwxfsleep.c b/src/acpica/source/components/hardware/hwxfsleep.c index ce6e8ee..b0abf1a 100644 --- a/src/acpica/source/components/hardware/hwxfsleep.c +++ b/src/acpica/source/components/hardware/hwxfsleep.c @@ -244,7 +244,7 @@ AcpiSetFirmwareWakingVector ( if (AcpiGbl_FACS) { (void) AcpiHwSetFirmwareWakingVector (AcpiGbl_FACS, - PhysicalAddress, PhysicalAddress64); + PhysicalAddress, PhysicalAddress64); } return_ACPI_STATUS (AE_OK); @@ -311,7 +311,7 @@ AcpiEnterSleepStateS4bios ( ACPI_FLUSH_CPU_CACHE (); Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, - (UINT32) AcpiGbl_FADT.S4BiosRequest, 8); + (UINT32) AcpiGbl_FADT.S4BiosRequest, 8); do { AcpiOsStall (ACPI_USEC_PER_MSEC); @@ -320,6 +320,7 @@ AcpiEnterSleepStateS4bios ( { return_ACPI_STATUS (Status); } + } while (!InValue); return_ACPI_STATUS (AE_OK); @@ -415,7 +416,7 @@ AcpiEnterSleepStatePrep ( Status = AcpiGetSleepTypeData (SleepState, - &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); + &AcpiGbl_SleepTypeA, &AcpiGbl_SleepTypeB); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/namespace/nsaccess.c b/src/acpica/source/components/namespace/nsaccess.c index 6667308..e44164f 100644 --- a/src/acpica/source/components/namespace/nsaccess.c +++ b/src/acpica/source/components/namespace/nsaccess.c @@ -189,8 +189,8 @@ AcpiNsRootInitialize ( } Status = AcpiNsLookup (NULL, InitVal->Name, InitVal->Type, - ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH, - NULL, &NewNode); + ACPI_IMODE_LOAD_PASS2, ACPI_NS_NO_UPSEARCH, + NULL, &NewNode); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -291,7 +291,7 @@ AcpiNsRootInitialize ( /* Create additional counting semaphore for global lock */ Status = AcpiOsCreateSemaphore ( - 1, 0, &AcpiGbl_GlobalLockSemaphore); + 1, 0, &AcpiGbl_GlobalLockSemaphore); if (ACPI_FAILURE (Status)) { AcpiUtRemoveReference (ObjDesc); @@ -312,7 +312,7 @@ AcpiNsRootInitialize ( /* Store pointer to value descriptor in the Node */ Status = AcpiNsAttachObject (NewNode, ObjDesc, - ObjDesc->Common.Type); + ObjDesc->Common.Type); /* Remove local reference to the object */ @@ -329,7 +329,7 @@ UnlockAndExit: if (ACPI_SUCCESS (Status)) { Status = AcpiNsGetNode (NULL, "\\_GPE", ACPI_NS_NO_UPSEARCH, - &AcpiGbl_FadtGpeDevice); + &AcpiGbl_FadtGpeDevice); } return_ACPI_STATUS (Status); @@ -661,7 +661,7 @@ AcpiNsLookup ( /* Try to find the single (4 character) ACPI name */ Status = AcpiNsSearchAndEnter (SimpleName, WalkState, CurrentNode, - InterpreterMode, ThisSearchType, LocalFlags, &ThisNode); + InterpreterMode, ThisSearchType, LocalFlags, &ThisNode); if (ACPI_FAILURE (Status)) { if (Status == AE_NOT_FOUND) diff --git a/src/acpica/source/components/namespace/nsalloc.c b/src/acpica/source/components/namespace/nsalloc.c index 293bf26..65d6ba2 100644 --- a/src/acpica/source/components/namespace/nsalloc.c +++ b/src/acpica/source/components/namespace/nsalloc.c @@ -157,7 +157,7 @@ AcpiNsCreateNode ( #ifdef ACPI_DBG_TRACK_ALLOCATIONS Temp = AcpiGbl_NsNodeList->TotalAllocated - - AcpiGbl_NsNodeList->TotalFreed; + AcpiGbl_NsNodeList->TotalFreed; if (Temp > AcpiGbl_NsNodeList->MaxOccupied) { AcpiGbl_NsNodeList->MaxOccupied = Temp; @@ -349,7 +349,8 @@ AcpiNsInstallNode ( * modified the namespace. This is used for cleanup when the * method exits. */ - WalkState->MethodDesc->Method.InfoFlags |= ACPI_METHOD_MODIFIED_NAMESPACE; + WalkState->MethodDesc->Method.InfoFlags |= + ACPI_METHOD_MODIFIED_NAMESPACE; } } diff --git a/src/acpica/source/components/namespace/nsarguments.c b/src/acpica/source/components/namespace/nsarguments.c index 08e0716..a5b3490 100644 --- a/src/acpica/source/components/namespace/nsarguments.c +++ b/src/acpica/source/components/namespace/nsarguments.c @@ -209,7 +209,8 @@ AcpiNsCheckAcpiCompliance ( /* Get the ACPI-required arg count from the predefined info table */ - RequiredParamCount = METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); + RequiredParamCount = + METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); /* * If this object is not a control method, we can check if the ACPI @@ -355,7 +356,8 @@ AcpiNsCheckArgumentCount ( * Some methods are allowed to have a "minimum" number of args (_SCP) * because their definition in ACPI has changed over time. */ - RequiredParamCount = METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); + RequiredParamCount = + METHOD_GET_ARG_COUNT (Predefined->Info.ArgumentList); if (UserParamCount < RequiredParamCount) { diff --git a/src/acpica/source/components/namespace/nsconvert.c b/src/acpica/source/components/namespace/nsconvert.c index b79458e..ee361ea 100644 --- a/src/acpica/source/components/namespace/nsconvert.c +++ b/src/acpica/source/components/namespace/nsconvert.c @@ -156,7 +156,7 @@ AcpiNsConvertToInteger ( /* String-to-Integer conversion */ Status = AcpiUtStrtoul64 (OriginalObject->String.Pointer, - ACPI_ANY_BASE, &Value); + ACPI_ANY_BASE, &Value); if (ACPI_FAILURE (Status)) { return (Status); @@ -176,7 +176,8 @@ AcpiNsConvertToInteger ( for (i = 0; i < OriginalObject->Buffer.Length; i++) { - Value |= ((UINT64) OriginalObject->Buffer.Pointer[i] << (i * 8)); + Value |= ((UINT64) + OriginalObject->Buffer.Pointer[i] << (i * 8)); } break; @@ -239,8 +240,8 @@ AcpiNsConvertToString ( } else { - Status = AcpiExConvertToString (OriginalObject, &NewObject, - ACPI_IMPLICIT_CONVERT_HEX); + Status = AcpiExConvertToString (OriginalObject, + &NewObject, ACPI_IMPLICIT_CONVERT_HEX); if (ACPI_FAILURE (Status)) { return (Status); @@ -335,7 +336,8 @@ AcpiNsConvertToBuffer ( /* String-to-Buffer conversion. Simple data copy */ - NewObject = AcpiUtCreateBufferObject (OriginalObject->String.Length); + NewObject = AcpiUtCreateBufferObject + (OriginalObject->String.Length); if (!NewObject) { return (AE_NO_MEMORY); diff --git a/src/acpica/source/components/namespace/nsdump.c b/src/acpica/source/components/namespace/nsdump.c index 0d3b57e..6510b4f 100644 --- a/src/acpica/source/components/namespace/nsdump.c +++ b/src/acpica/source/components/namespace/nsdump.c @@ -331,7 +331,8 @@ AcpiNsDumpOneObject ( if (Type > ACPI_TYPE_LOCAL_MAX) { - ACPI_WARNING ((AE_INFO, "Invalid ACPI Object Type 0x%08X", Type)); + ACPI_WARNING ((AE_INFO, + "Invalid ACPI Object Type 0x%08X", Type)); } AcpiOsPrintf ("%4.4s", AcpiUtGetNodeName (ThisNode)); @@ -340,7 +341,7 @@ AcpiNsDumpOneObject ( /* Now we can print out the pertinent information */ AcpiOsPrintf (" %-12s %p %2.2X ", - AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId); + AcpiUtGetTypeName (Type), ThisNode, ThisNode->OwnerId); DbgLevel = AcpiDbgLevel; AcpiDbgLevel = 0; @@ -427,7 +428,7 @@ AcpiNsDumpOneObject ( if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID) { AcpiOsPrintf ("Len %.2X", - ObjDesc->Buffer.Length); + ObjDesc->Buffer.Length); /* Dump some of the buffer */ @@ -608,9 +609,9 @@ AcpiNsDumpOneObject ( /* If there is an attached object, display it */ - DbgLevel = AcpiDbgLevel; + DbgLevel = AcpiDbgLevel; AcpiDbgLevel = 0; - ObjDesc = AcpiNsGetAttachedObject (ThisNode); + ObjDesc = AcpiNsGetAttachedObject (ThisNode); AcpiDbgLevel = DbgLevel; /* Dump attached objects */ @@ -637,14 +638,18 @@ AcpiNsDumpOneObject ( if (ObjType > ACPI_TYPE_LOCAL_MAX) { - AcpiOsPrintf ("(Pointer to ACPI Object type %.2X [UNKNOWN])\n", + AcpiOsPrintf ( + "(Pointer to ACPI Object type %.2X [UNKNOWN])\n", ObjType); + BytesToDump = 32; } else { - AcpiOsPrintf ("(Pointer to ACPI Object type %.2X [%s])\n", + AcpiOsPrintf ( + "(Pointer to ACPI Object type %.2X [%s])\n", ObjType, AcpiUtGetTypeName (ObjType)); + BytesToDump = sizeof (ACPI_OPERAND_OBJECT); } @@ -674,7 +679,8 @@ AcpiNsDumpOneObject ( */ BytesToDump = ObjDesc->String.Length; ObjDesc = (void *) ObjDesc->String.Pointer; - AcpiOsPrintf ( "(Buffer/String pointer %p length %X)\n", + + AcpiOsPrintf ("(Buffer/String pointer %p length %X)\n", ObjDesc, BytesToDump); ACPI_DUMP_BUFFER (ObjDesc, BytesToDump); goto Cleanup; @@ -775,8 +781,8 @@ AcpiNsDumpObjects ( Info.DisplayType = DisplayType; (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth, - ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, - AcpiNsDumpOneObject, NULL, (void *) &Info, NULL); + ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, + AcpiNsDumpOneObject, NULL, (void *) &Info, NULL); (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); } @@ -826,7 +832,7 @@ AcpiNsDumpOneObjectPath ( return (AE_OK); } - Pathname = AcpiNsGetExternalPathname (Node); + Pathname = AcpiNsGetNormalizedPathname (Node, TRUE); PathIndent = 1; if (Level <= MaxLevel) @@ -912,14 +918,14 @@ AcpiNsDumpObjectPaths ( /* Get the max depth of the namespace tree, for formatting later */ (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth, - ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, - AcpiNsGetMaxDepth, NULL, (void *) &MaxLevel, NULL); + ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, + AcpiNsGetMaxDepth, NULL, (void *) &MaxLevel, NULL); /* Now dump the entire namespace */ (void) AcpiNsWalkNamespace (Type, StartHandle, MaxDepth, - ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, - AcpiNsDumpOneObjectPath, NULL, (void *) &MaxLevel, NULL); + ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES, + AcpiNsDumpOneObjectPath, NULL, (void *) &MaxLevel, NULL); (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); } @@ -990,7 +996,8 @@ AcpiNsDumpTables ( * If the name space has not been initialized, * there is nothing to dump. */ - ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, "namespace not initialized!\n")); + ACPI_DEBUG_PRINT ((ACPI_DB_TABLES, + "namespace not initialized!\n")); return_VOID; } @@ -1003,7 +1010,7 @@ AcpiNsDumpTables ( } AcpiNsDumpObjects (ACPI_TYPE_ANY, ACPI_DISPLAY_OBJECTS, MaxDepth, - ACPI_OWNER_ID_MAX, SearchHandle); + ACPI_OWNER_ID_MAX, SearchHandle); return_VOID; } #endif diff --git a/src/acpica/source/components/namespace/nsdumpdv.c b/src/acpica/source/components/namespace/nsdumpdv.c index 8e570d1..9afad0b 100644 --- a/src/acpica/source/components/namespace/nsdumpdv.c +++ b/src/acpica/source/components/namespace/nsdumpdv.c @@ -222,8 +222,8 @@ AcpiNsDumpRootDevices ( "Display of all devices in the namespace:\n")); Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, SysBusHandle, - ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, - AcpiNsDumpOneDevice, NULL, NULL, NULL); + ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK, + AcpiNsDumpOneDevice, NULL, NULL, NULL); } #endif diff --git a/src/acpica/source/components/namespace/nseval.c b/src/acpica/source/components/namespace/nseval.c index 7c8d6fd..9847e93 100644 --- a/src/acpica/source/components/namespace/nseval.c +++ b/src/acpica/source/components/namespace/nseval.c @@ -217,7 +217,7 @@ AcpiNsEvaluate ( /* Get the full pathname to the object, for use in warning messages */ - Info->FullPathname = AcpiNsGetExternalPathname (Info->Node); + Info->FullPathname = AcpiNsGetNormalizedPathname (Info->Node, TRUE); if (!Info->FullPathname) { return_ACPI_STATUS (AE_NO_MEMORY); @@ -514,7 +514,7 @@ AcpiNsExecModuleCode ( * of the method object descriptor. */ ParentNode = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, - MethodObj->Method.NextObject); + MethodObj->Method.NextObject); Type = AcpiNsGetType (ParentNode); /* @@ -553,7 +553,7 @@ AcpiNsExecModuleCode ( /* Install the method (module-level code) in the parent node */ Status = AcpiNsAttachObject (ParentNode, MethodObj, - ACPI_TYPE_METHOD); + ACPI_TYPE_METHOD); if (ACPI_FAILURE (Status)) { goto Exit; diff --git a/src/acpica/source/components/namespace/nsinit.c b/src/acpica/source/components/namespace/nsinit.c index 6bedef9..7b4acc1 100644 --- a/src/acpica/source/components/namespace/nsinit.c +++ b/src/acpica/source/components/namespace/nsinit.c @@ -182,8 +182,8 @@ AcpiNsInitializeObjects ( /* Walk entire namespace from the supplied root */ Status = AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL, - &Info, NULL); + ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL, + &Info, NULL); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace")); @@ -245,7 +245,7 @@ AcpiNsInitializeDevices ( /* Tree analysis: find all subtrees that contain _INI methods */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, AcpiNsFindIniMethods, NULL, &Info, NULL); + ACPI_UINT32_MAX, FALSE, AcpiNsFindIniMethods, NULL, &Info, NULL); if (ACPI_FAILURE (Status)) { goto ErrorExit; @@ -279,7 +279,7 @@ AcpiNsInitializeDevices ( /* Walk namespace to execute all _INIs on present devices */ Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, FALSE, AcpiNsInitOneDevice, NULL, &Info, NULL); + ACPI_UINT32_MAX, FALSE, AcpiNsInitOneDevice, NULL, &Info, NULL); /* * Any _OSI requests should be completed by now. If the BIOS has @@ -703,7 +703,7 @@ AcpiNsInitOneDevice ( { /* Ignore error and move on to next device */ - char *ScopeName = AcpiNsGetExternalPathname (Info->Node); + char *ScopeName = AcpiNsGetNormalizedPathname (DeviceNode, TRUE); ACPI_EXCEPTION ((AE_INFO, Status, "during %s._INI execution", ScopeName)); diff --git a/src/acpica/source/components/namespace/nsload.c b/src/acpica/source/components/namespace/nsload.c index 8e1a0c2..cae1616 100644 --- a/src/acpica/source/components/namespace/nsload.c +++ b/src/acpica/source/components/namespace/nsload.c @@ -331,8 +331,8 @@ AcpiNsDeleteSubtree ( ParentHandle = StartHandle; - ChildHandle = NULL; - Level = 1; + ChildHandle = NULL; + Level = 1; /* * Traverse the tree of objects until we bubble back up @@ -343,7 +343,7 @@ AcpiNsDeleteSubtree ( /* Attempt to get the next object in this scope */ Status = AcpiGetNextObject (ACPI_TYPE_ANY, ParentHandle, - ChildHandle, &NextChildHandle); + ChildHandle, &NextChildHandle); ChildHandle = NextChildHandle; @@ -354,7 +354,7 @@ AcpiNsDeleteSubtree ( /* Check if this object has any children */ if (ACPI_SUCCESS (AcpiGetNextObject (ACPI_TYPE_ANY, ChildHandle, - NULL, &Dummy))) + NULL, &Dummy))) { /* * There is at least one child of this object, @@ -432,7 +432,6 @@ AcpiNsUnloadNamespace ( /* This function does the real work */ Status = AcpiNsDeleteSubtree (Handle); - return_ACPI_STATUS (Status); } #endif diff --git a/src/acpica/source/components/namespace/nsnames.c b/src/acpica/source/components/namespace/nsnames.c index 3ca04f0..cd11cb4 100644 --- a/src/acpica/source/components/namespace/nsnames.c +++ b/src/acpica/source/components/namespace/nsnames.c @@ -149,7 +149,6 @@ AcpiNsGetExternalPathname ( NameBuffer = AcpiNsGetNormalizedPathname (Node, FALSE); - return_PTR (NameBuffer); } @@ -177,7 +176,6 @@ AcpiNsGetPathnameLength ( Size = AcpiNsBuildNormalizedPath (Node, NULL, 0, FALSE); - return (Size); } @@ -237,7 +235,7 @@ AcpiNsHandleToPathname ( /* Build the path in the caller buffer */ (void) AcpiNsBuildNormalizedPath (Node, Buffer->Pointer, - RequiredSize, NoTrailing); + RequiredSize, NoTrailing); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -318,6 +316,7 @@ AcpiNsBuildNormalizedPath ( { ACPI_PATH_PUT8(FullPath, PathSize, AML_DUAL_NAME_PREFIX, Length); } + ACPI_MOVE_32_TO_32 (Name, &NextNode->Name); DoNoTrailing = NoTrailing; for (i = 0; i < 4; i++) @@ -332,8 +331,10 @@ AcpiNsBuildNormalizedPath ( ACPI_PATH_PUT8(FullPath, PathSize, c, Length); } } + NextNode = NextNode->Parent; } + ACPI_PATH_PUT8(FullPath, PathSize, AML_ROOT_PREFIX, Length); /* Reverse the path string */ @@ -341,7 +342,8 @@ AcpiNsBuildNormalizedPath ( if (Length <= PathSize) { Left = FullPath; - Right = FullPath+Length-1; + Right = FullPath+Length - 1; + while (Left < Right) { c = *Left; @@ -353,7 +355,7 @@ AcpiNsBuildNormalizedPath ( /* Append the trailing null */ BuildTrailingNull: - ACPI_PATH_PUT8(FullPath, PathSize, '\0', Length); + ACPI_PATH_PUT8 (FullPath, PathSize, '\0', Length); #undef ACPI_PATH_PUT8 @@ -403,7 +405,8 @@ AcpiNsGetNormalizedPathname ( NameBuffer = ACPI_ALLOCATE_ZEROED (Size); if (!NameBuffer) { - ACPI_ERROR ((AE_INFO, "Could not allocate %u bytes", (UINT32) Size)); + ACPI_ERROR ((AE_INFO, + "Could not allocate %u bytes", (UINT32) Size)); return_PTR (NULL); } diff --git a/src/acpica/source/components/namespace/nsobject.c b/src/acpica/source/components/namespace/nsobject.c index 50b1d65..a6f8876 100644 --- a/src/acpica/source/components/namespace/nsobject.c +++ b/src/acpica/source/components/namespace/nsobject.c @@ -217,7 +217,7 @@ AcpiNsAttachObject ( * Value passed is a name handle and that name has a * non-null value. Use that name's value and type. */ - ObjDesc = ((ACPI_NAMESPACE_NODE *) Object)->Object; + ObjDesc = ((ACPI_NAMESPACE_NODE *) Object)->Object; ObjectType = ((ACPI_NAMESPACE_NODE *) Object)->Type; } @@ -267,8 +267,8 @@ AcpiNsAttachObject ( LastObjDesc->Common.NextObject = Node->Object; } - Node->Type = (UINT8) ObjectType; - Node->Object = ObjDesc; + Node->Type = (UINT8) ObjectType; + Node->Object = ObjDesc; return_ACPI_STATUS (AE_OK); } diff --git a/src/acpica/source/components/namespace/nsparse.c b/src/acpica/source/components/namespace/nsparse.c index 26dd9f3..9fcc47f 100644 --- a/src/acpica/source/components/namespace/nsparse.c +++ b/src/acpica/source/components/namespace/nsparse.c @@ -196,7 +196,7 @@ AcpiNsOneCompleteParse ( } Status = AcpiDsInitAmlWalk (WalkState, ParseRoot, NULL, - AmlStart, AmlLength, NULL, (UINT8) PassNumber); + AmlStart, AmlLength, NULL, (UINT8) PassNumber); if (ACPI_FAILURE (Status)) { AcpiDsDeleteWalkState (WalkState); @@ -215,7 +215,8 @@ AcpiNsOneCompleteParse ( if (StartNode && StartNode != AcpiGbl_RootNode) { - Status = AcpiDsScopeStackPush (StartNode, ACPI_TYPE_METHOD, WalkState); + Status = AcpiDsScopeStackPush ( + StartNode, ACPI_TYPE_METHOD, WalkState); if (ACPI_FAILURE (Status)) { AcpiDsDeleteWalkState (WalkState); @@ -225,7 +226,8 @@ AcpiNsOneCompleteParse ( /* Parse the AML */ - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "*PARSE* pass %u parse\n", PassNumber)); + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, + "*PARSE* pass %u parse\n", PassNumber)); Status = AcpiPsParseAml (WalkState); Cleanup: @@ -269,8 +271,9 @@ AcpiNsParseTable ( * performs another complete parse of the AML. */ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n")); + Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1, - TableIndex, StartNode); + TableIndex, StartNode); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -287,7 +290,7 @@ AcpiNsParseTable ( */ ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n")); Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2, - TableIndex, StartNode); + TableIndex, StartNode); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/namespace/nsprepkg.c b/src/acpica/source/components/namespace/nsprepkg.c index 627ee3e..aa7134e 100644 --- a/src/acpica/source/components/namespace/nsprepkg.c +++ b/src/acpica/source/components/namespace/nsprepkg.c @@ -243,8 +243,8 @@ AcpiNsCheckPackage ( /* Validate all elements of the returned package */ Status = AcpiNsCheckPackageElements (Info, Elements, - Package->RetInfo.ObjectType1, Package->RetInfo.Count1, - Package->RetInfo.ObjectType2, Package->RetInfo.Count2, 0); + Package->RetInfo.ObjectType1, Package->RetInfo.Count1, + Package->RetInfo.ObjectType2, Package->RetInfo.Count2, 0); break; case ACPI_PTYPE1_VAR: @@ -255,7 +255,7 @@ AcpiNsCheckPackage ( for (i = 0; i < Count; i++) { Status = AcpiNsCheckObjectType (Info, Elements, - Package->RetInfo.ObjectType1, i); + Package->RetInfo.ObjectType1, i); if (ACPI_FAILURE (Status)) { return (Status); @@ -287,7 +287,7 @@ AcpiNsCheckPackage ( /* These are the required package elements (0, 1, or 2) */ Status = AcpiNsCheckObjectType (Info, Elements, - Package->RetInfo3.ObjectType[i], i); + Package->RetInfo3.ObjectType[i], i); if (ACPI_FAILURE (Status)) { return (Status); @@ -298,7 +298,7 @@ AcpiNsCheckPackage ( /* These are the optional package elements */ Status = AcpiNsCheckObjectType (Info, Elements, - Package->RetInfo3.TailObjectType, i); + Package->RetInfo3.TailObjectType, i); if (ACPI_FAILURE (Status)) { return (Status); @@ -312,8 +312,8 @@ AcpiNsCheckPackage ( /* First element is the (Integer) revision */ - Status = AcpiNsCheckObjectType (Info, Elements, - ACPI_RTYPE_INTEGER, 0); + Status = AcpiNsCheckObjectType ( + Info, Elements, ACPI_RTYPE_INTEGER, 0); if (ACPI_FAILURE (Status)) { return (Status); @@ -331,8 +331,8 @@ AcpiNsCheckPackage ( /* First element is the (Integer) count of subpackages to follow */ - Status = AcpiNsCheckObjectType (Info, Elements, - ACPI_RTYPE_INTEGER, 0); + Status = AcpiNsCheckObjectType ( + Info, Elements, ACPI_RTYPE_INTEGER, 0); if (ACPI_FAILURE (Status)) { return (Status); @@ -375,7 +375,8 @@ AcpiNsCheckPackage ( { /* Create the new outer package and populate it */ - Status = AcpiNsWrapWithPackage (Info, ReturnObject, ReturnObjectPtr); + Status = AcpiNsWrapWithPackage ( + Info, ReturnObject, ReturnObjectPtr); if (ACPI_FAILURE (Status)) { return (Status); diff --git a/src/acpica/source/components/namespace/nsrepair.c b/src/acpica/source/components/namespace/nsrepair.c index fbb9c7e..98265bc 100644 --- a/src/acpica/source/components/namespace/nsrepair.c +++ b/src/acpica/source/components/namespace/nsrepair.c @@ -294,7 +294,7 @@ AcpiNsSimpleRepair ( ACPI_WARN_ALWAYS, "Found unexpected NULL package element")); Status = AcpiNsRepairNullElement (Info, ExpectedBtypes, - PackageIndex, ReturnObjectPtr); + PackageIndex, ReturnObjectPtr); if (ACPI_SUCCESS (Status)) { return (AE_OK); /* Repair was successful */ @@ -452,6 +452,7 @@ AcpiNsMatchSimpleRepair ( return (NULL); } + ThisName++; } @@ -536,11 +537,13 @@ AcpiNsRepairNullElement ( /* Set the reference count according to the parent Package object */ - NewObject->Common.ReferenceCount = Info->ParentPackage->Common.ReferenceCount; + NewObject->Common.ReferenceCount = + Info->ParentPackage->Common.ReferenceCount; ACPI_DEBUG_PRINT ((ACPI_DB_REPAIR, "%s: Converted NULL package element to expected %s at index %u\n", - Info->FullPathname, AcpiUtGetObjectTypeName (NewObject), PackageIndex)); + Info->FullPathname, AcpiUtGetObjectTypeName (NewObject), + PackageIndex)); *ReturnObjectPtr = NewObject; Info->ReturnFlags |= ACPI_OBJECT_REPAIRED; @@ -623,6 +626,7 @@ AcpiNsRemoveNullElements ( *Dest = *Source; Dest++; } + Source++; } @@ -679,8 +683,8 @@ AcpiNsWrapWithPackage ( /* - * Create the new outer package and populate it. The new package will - * have a single element, the lone sub-object. + * Create the new outer package and populate it. The new + * package will have a single element, the lone sub-object. */ PkgObjDesc = AcpiUtCreatePackageObject (1); if (!PkgObjDesc) diff --git a/src/acpica/source/components/namespace/nsrepair2.c b/src/acpica/source/components/namespace/nsrepair2.c index a252d41..dda6c98 100644 --- a/src/acpica/source/components/namespace/nsrepair2.c +++ b/src/acpica/source/components/namespace/nsrepair2.c @@ -326,6 +326,7 @@ AcpiNsMatchComplexRepair ( { return (ThisName); } + ThisName++; } @@ -358,7 +359,7 @@ AcpiNsRepair_ALR ( Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 2, 1, - ACPI_SORT_ASCENDING, "AmbientIlluminance"); + ACPI_SORT_ASCENDING, "AmbientIlluminance"); return (Status); } @@ -411,7 +412,8 @@ AcpiNsRepair_FDE ( if (ReturnObject->Buffer.Length != ACPI_FDE_BYTE_BUFFER_SIZE) { - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, + ACPI_WARN_PREDEFINED ((AE_INFO, + Info->FullPathname, Info->NodeFlags, "Incorrect return buffer length %u, expected %u", ReturnObject->Buffer.Length, ACPI_FDE_DWORD_BUFFER_SIZE)); @@ -420,7 +422,8 @@ AcpiNsRepair_FDE ( /* Create the new (larger) buffer object */ - BufferObject = AcpiUtCreateBufferObject (ACPI_FDE_DWORD_BUFFER_SIZE); + BufferObject = AcpiUtCreateBufferObject ( + ACPI_FDE_DWORD_BUFFER_SIZE); if (!BufferObject) { return (AE_NO_MEMORY); @@ -429,7 +432,8 @@ AcpiNsRepair_FDE ( /* Expand each byte to a DWORD */ ByteBuffer = ReturnObject->Buffer.Pointer; - DwordBuffer = ACPI_CAST_PTR (UINT32, BufferObject->Buffer.Pointer); + DwordBuffer = ACPI_CAST_PTR (UINT32, + BufferObject->Buffer.Pointer); for (i = 0; i < ACPI_FDE_FIELD_COUNT; i++) { @@ -582,7 +586,8 @@ AcpiNsRepair_CST ( if ((*OuterElements)->Package.Count == 0) { - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, + ACPI_WARN_PREDEFINED ((AE_INFO, + Info->FullPathname, Info->NodeFlags, "SubPackage[%u] - removing entry due to zero count", i)); Removing = TRUE; goto RemoveElement; @@ -591,7 +596,8 @@ AcpiNsRepair_CST ( ObjDesc = (*OuterElements)->Package.Elements[1]; /* Index1 = Type */ if ((UINT32) ObjDesc->Integer.Value == 0) { - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, + ACPI_WARN_PREDEFINED ((AE_INFO, + Info->FullPathname, Info->NodeFlags, "SubPackage[%u] - removing entry due to invalid Type(0)", i)); Removing = TRUE; } @@ -618,7 +624,7 @@ RemoveElement: * C-state type, in ascending order. */ Status = AcpiNsCheckSortedList (Info, ReturnObject, 1, 4, 1, - ACPI_SORT_ASCENDING, "C-State Type"); + ACPI_SORT_ASCENDING, "C-State Type"); if (ACPI_FAILURE (Status)) { return (Status); @@ -666,7 +672,8 @@ AcpiNsRepair_HID ( if (ReturnObject->String.Length == 0) { - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, + ACPI_WARN_PREDEFINED ((AE_INFO, + Info->FullPathname, Info->NodeFlags, "Invalid zero-length _HID or _CID string")); /* Return AE_OK anyway, let driver handle it */ @@ -828,8 +835,8 @@ AcpiNsRepair_PSS ( * incorrectly sorted, sort it. We sort by CpuFrequency, since this * should be proportional to the power. */ - Status =AcpiNsCheckSortedList (Info, ReturnObject, 0, 6, 0, - ACPI_SORT_DESCENDING, "CpuFrequency"); + Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 6, 0, + ACPI_SORT_DESCENDING, "CpuFrequency"); if (ACPI_FAILURE (Status)) { return (Status); @@ -850,7 +857,8 @@ AcpiNsRepair_PSS ( if ((UINT32) ObjDesc->Integer.Value > PreviousValue) { - ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags, + ACPI_WARN_PREDEFINED ((AE_INFO, + Info->FullPathname, Info->NodeFlags, "SubPackage[%u,%u] - suspicious power dissipation values", i-1, i)); } @@ -904,7 +912,7 @@ AcpiNsRepair_TSS ( } Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 5, 1, - ACPI_SORT_DESCENDING, "PowerDissipation"); + ACPI_SORT_DESCENDING, "PowerDissipation"); return (Status); } @@ -1136,6 +1144,7 @@ AcpiNsRemoveElement ( *Dest = *Source; Dest++; } + Source++; } diff --git a/src/acpica/source/components/namespace/nssearch.c b/src/acpica/source/components/namespace/nssearch.c index 060b10c..94de93e 100644 --- a/src/acpica/source/components/namespace/nssearch.c +++ b/src/acpica/source/components/namespace/nssearch.c @@ -184,7 +184,7 @@ AcpiNsSearchOneScope ( { char *ScopeName; - ScopeName = AcpiNsGetExternalPathname (ParentNode); + ScopeName = AcpiNsGetNormalizedPathname (ParentNode, TRUE); if (ScopeName) { ACPI_DEBUG_PRINT ((ACPI_DB_NAMES, @@ -320,7 +320,7 @@ AcpiNsSearchParentTree ( * the actual name we are searching for. Typechecking comes later. */ Status = AcpiNsSearchOneScope ( - TargetName, ParentNode, ACPI_TYPE_ANY, ReturnNode); + TargetName, ParentNode, ACPI_TYPE_ANY, ReturnNode); if (ACPI_SUCCESS (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/namespace/nsutils.c b/src/acpica/source/components/namespace/nsutils.c index acee749..fd207e5 100644 --- a/src/acpica/source/components/namespace/nsutils.c +++ b/src/acpica/source/components/namespace/nsutils.c @@ -268,9 +268,10 @@ AcpiNsGetInternalNameLength ( Info->FullyQualified = FALSE; /* - * For the internal name, the required length is 4 bytes per segment, plus - * 1 each for RootPrefix, MultiNamePrefixOp, segment count, trailing null - * (which is not really needed, but no there's harm in putting it there) + * For the internal name, the required length is 4 bytes per segment, + * plus 1 each for RootPrefix, MultiNamePrefixOp, segment count, + * trailing null (which is not really needed, but no there's harm in + * putting it there) * * strlen() + 1 covers the first NameSeg, which has no path separator */ @@ -315,7 +316,7 @@ AcpiNsGetInternalNameLength ( } Info->Length = (ACPI_NAME_SIZE * Info->NumSegments) + - 4 + Info->NumCarats; + 4 + Info->NumCarats; Info->NextExternalChar = NextExternalChar; } @@ -646,7 +647,7 @@ AcpiNsExternalizeName ( * punctuation ('.') between object names, plus the NULL terminator. */ RequiredLength = PrefixLength + (4 * NumSegments) + - ((NumSegments > 0) ? (NumSegments - 1) : 0) + 1; + ((NumSegments > 0) ? (NumSegments - 1) : 0) + 1; /* * Check to see if we're still in bounds. If not, there's a problem @@ -684,7 +685,8 @@ AcpiNsExternalizeName ( /* Copy and validate the 4-char name segment */ - ACPI_MOVE_NAME (&(*ConvertedName)[j], &InternalName[NamesIndex]); + ACPI_MOVE_NAME (&(*ConvertedName)[j], + &InternalName[NamesIndex]); AcpiUtRepairName (&(*ConvertedName)[j]); j += ACPI_NAME_SIZE; @@ -885,6 +887,7 @@ AcpiNsGetNode ( { *ReturnNode = AcpiGbl_RootNode; } + return_ACPI_STATUS (AE_OK); } @@ -919,12 +922,12 @@ AcpiNsGetNode ( /* Lookup the name in the namespace */ Status = AcpiNsLookup (&ScopeInfo, InternalPath, ACPI_TYPE_ANY, - ACPI_IMODE_EXECUTE, (Flags | ACPI_NS_DONT_OPEN_SCOPE), - NULL, ReturnNode); + ACPI_IMODE_EXECUTE, (Flags | ACPI_NS_DONT_OPEN_SCOPE), + NULL, ReturnNode); if (ACPI_FAILURE (Status)) { ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%s, %s\n", - Pathname, AcpiFormatException (Status))); + Pathname, AcpiFormatException (Status))); } (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); diff --git a/src/acpica/source/components/namespace/nswalk.c b/src/acpica/source/components/namespace/nswalk.c index aa23760..f02fbf4 100644 --- a/src/acpica/source/components/namespace/nswalk.c +++ b/src/acpica/source/components/namespace/nswalk.c @@ -290,10 +290,10 @@ AcpiNsWalkNamespace ( /* Null child means "get first node" */ - ParentNode = StartNode; - ChildNode = AcpiNsGetNextNode (ParentNode, NULL); - ChildType = ACPI_TYPE_ANY; - Level = 1; + ParentNode = StartNode; + ChildNode = AcpiNsGetNextNode (ParentNode, NULL); + ChildType = ACPI_TYPE_ANY; + Level = 1; /* * Traverse the tree of nodes until we bubble back up to where we @@ -351,7 +351,7 @@ AcpiNsWalkNamespace ( if (DescendingCallback) { Status = DescendingCallback (ChildNode, Level, - Context, ReturnValue); + Context, ReturnValue); } } else @@ -359,7 +359,7 @@ AcpiNsWalkNamespace ( if (AscendingCallback) { Status = AscendingCallback (ChildNode, Level, - Context, ReturnValue); + Context, ReturnValue); } } diff --git a/src/acpica/source/components/namespace/nsxfeval.c b/src/acpica/source/components/namespace/nsxfeval.c index 06328a6..8a4aaa8 100644 --- a/src/acpica/source/components/namespace/nsxfeval.c +++ b/src/acpica/source/components/namespace/nsxfeval.c @@ -504,13 +504,13 @@ AcpiEvaluateObject ( /* Get the size of the returned object */ Status = AcpiUtGetObjectSize (Info->ReturnObject, - &BufferSpaceNeeded); + &BufferSpaceNeeded); if (ACPI_SUCCESS (Status)) { /* Validate/Allocate/Clear caller buffer */ Status = AcpiUtInitializeBuffer (ReturnBuffer, - BufferSpaceNeeded); + BufferSpaceNeeded); if (ACPI_FAILURE (Status)) { /* @@ -526,8 +526,8 @@ AcpiEvaluateObject ( { /* We have enough space for the object, build it */ - Status = AcpiUtCopyIobjectToEobject (Info->ReturnObject, - ReturnBuffer); + Status = AcpiUtCopyIobjectToEobject ( + Info->ReturnObject, ReturnBuffer); } } } @@ -740,8 +740,8 @@ AcpiWalkNamespace ( } Status = AcpiNsWalkNamespace (Type, StartObject, MaxDepth, - ACPI_NS_WALK_UNLOCK, DescendingCallback, - AscendingCallback, Context, ReturnValue); + ACPI_NS_WALK_UNLOCK, DescendingCallback, + AscendingCallback, Context, ReturnValue); UnlockAndExit2: (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); @@ -892,8 +892,8 @@ AcpiNsGetDeviceCallback ( /* We have a valid device, invoke the user function */ - Status = Info->UserFunction (ObjHandle, NestingLevel, Info->Context, - ReturnValue); + Status = Info->UserFunction (ObjHandle, NestingLevel, + Info->Context, ReturnValue); return (Status); } @@ -948,8 +948,8 @@ AcpiGetDevices ( * We're going to call their callback from OUR callback, so we need * to know what it is, and their context parameter. */ - Info.Hid = HID; - Info.Context = Context; + Info.Hid = HID; + Info.Context = Context; Info.UserFunction = UserFunction; /* @@ -965,8 +965,8 @@ AcpiGetDevices ( } Status = AcpiNsWalkNamespace (ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, - ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK, - AcpiNsGetDeviceCallback, NULL, &Info, ReturnValue); + ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK, + AcpiNsGetDeviceCallback, NULL, &Info, ReturnValue); (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/namespace/nsxfname.c b/src/acpica/source/components/namespace/nsxfname.c index 51cc4f4..82d1c21 100644 --- a/src/acpica/source/components/namespace/nsxfname.c +++ b/src/acpica/source/components/namespace/nsxfname.c @@ -249,7 +249,7 @@ AcpiGetName ( { ACPI_STATUS Status; ACPI_NAMESPACE_NODE *Node; - char *NodeName; + const char *NodeName; /* Parameter validation */ @@ -271,7 +271,7 @@ AcpiGetName ( /* Get the full pathname (From the namespace root) */ Status = AcpiNsHandleToPathname (Handle, Buffer, - NameType == ACPI_FULL_PATHNAME ? FALSE : TRUE); + NameType == ACPI_FULL_PATHNAME ? FALSE : TRUE); return (Status); } @@ -337,7 +337,6 @@ AcpiNsCopyDeviceId ( ACPI_PNP_DEVICE_ID *Source, char *StringArea) { - /* Create the destination PNP_DEVICE_ID */ Dest->String = StringArea; @@ -363,11 +362,18 @@ AcpiNsCopyDeviceId ( * namespace node and possibly by running several standard * control methods (Such as in the case of a device.) * - * For Device and Processor objects, run the Device _HID, _UID, _CID, _SUB, - * _CLS, _STA, _ADR, _SxW, and _SxD methods. + * For Device and Processor objects, run the Device _HID, _UID, _CID, _STA, + * _CLS, _ADR, _SxW, and _SxD methods. * * Note: Allocates the return buffer, must be freed by the caller. * + * Note: This interface is intended to be used during the initial device + * discovery namespace traversal. Therefore, no complex methods can be + * executed, especially those that access operation regions. Therefore, do + * not add any additional methods that could cause problems in this area. + * this was the fate of the _SUB method which was found to cause such + * problems and was removed (11/2015). + * ******************************************************************************/ ACPI_STATUS @@ -380,7 +386,6 @@ AcpiGetObjectInfo ( ACPI_PNP_DEVICE_ID_LIST *CidList = NULL; ACPI_PNP_DEVICE_ID *Hid = NULL; ACPI_PNP_DEVICE_ID *Uid = NULL; - ACPI_PNP_DEVICE_ID *Sub = NULL; ACPI_PNP_DEVICE_ID *Cls = NULL; char *NextIdString; ACPI_OBJECT_TYPE Type; @@ -434,7 +439,7 @@ AcpiGetObjectInfo ( { /* * Get extra info for ACPI Device/Processor objects only: - * Run the Device _HID, _UID, _SUB, _CID, and _CLS methods. + * Run the Device _HID, _UID, _CLS, and _CID methods. * * Note: none of these methods are required, so they may or may * not be present for this device. The Info->Valid bitfield is used @@ -459,15 +464,6 @@ AcpiGetObjectInfo ( Valid |= ACPI_VALID_UID; } - /* Execute the Device._SUB method */ - - Status = AcpiUtExecute_SUB (Node, &Sub); - if (ACPI_SUCCESS (Status)) - { - InfoSize += Sub->Length; - Valid |= ACPI_VALID_SUB; - } - /* Execute the Device._CID method */ Status = AcpiUtExecute_CID (Node, &CidList); @@ -530,7 +526,7 @@ AcpiGetObjectInfo ( /* Execute the Device._ADR method */ Status = AcpiUtEvaluateNumericObject (METHOD_NAME__ADR, Node, - &Info->Address); + &Info->Address); if (ACPI_SUCCESS (Status)) { Valid |= ACPI_VALID_ADR; @@ -539,8 +535,8 @@ AcpiGetObjectInfo ( /* Execute the Device._SxW methods */ Status = AcpiUtExecutePowerMethods (Node, - AcpiGbl_LowestDstateNames, ACPI_NUM_SxW_METHODS, - Info->LowestDstates); + AcpiGbl_LowestDstateNames, ACPI_NUM_SxW_METHODS, + Info->LowestDstates); if (ACPI_SUCCESS (Status)) { Valid |= ACPI_VALID_SXWS; @@ -549,8 +545,8 @@ AcpiGetObjectInfo ( /* Execute the Device._SxD methods */ Status = AcpiUtExecutePowerMethods (Node, - AcpiGbl_HighestDstateNames, ACPI_NUM_SxD_METHODS, - Info->HighestDstates); + AcpiGbl_HighestDstateNames, ACPI_NUM_SxD_METHODS, + Info->HighestDstates); if (ACPI_SUCCESS (Status)) { Valid |= ACPI_VALID_SXDS; @@ -570,9 +566,8 @@ AcpiGetObjectInfo ( } /* - * Copy the HID, UID, SUB, and CIDs to the return buffer. - * The variable-length strings are copied to the reserved area - * at the end of the buffer. + * Copy the HID, UID, and CIDs to the return buffer. The variable-length + * strings are copied to the reserved area at the end of the buffer. * * For HID and CID, check if the ID is a PCI Root Bridge. */ @@ -593,12 +588,6 @@ AcpiGetObjectInfo ( Uid, NextIdString); } - if (Sub) - { - NextIdString = AcpiNsCopyDeviceId (&Info->SubsystemId, - Sub, NextIdString); - } - if (CidList) { Info->CompatibleIdList.Count = CidList->Count; @@ -645,10 +634,6 @@ Cleanup: { ACPI_FREE (Uid); } - if (Sub) - { - ACPI_FREE (Sub); - } if (CidList) { ACPI_FREE (CidList); @@ -724,6 +709,7 @@ AcpiInstallMethod ( ParserState.Aml += AcpiPsGetOpcodeSize (Opcode); ParserState.PkgEnd = AcpiPsGetNextPackageEnd (&ParserState); Path = AcpiPsGetNextNamestring (&ParserState); + MethodFlags = *ParserState.Aml++; AmlStart = ParserState.Aml; AmlLength = ACPI_PTR_DIFF (ParserState.PkgEnd, AmlStart); @@ -756,7 +742,7 @@ AcpiInstallMethod ( /* The lookup either returns an existing node or creates a new one */ Status = AcpiNsLookup (NULL, Path, ACPI_TYPE_METHOD, ACPI_IMODE_LOAD_PASS1, - ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_ERROR_IF_FOUND, NULL, &Node); + ACPI_NS_DONT_OPEN_SCOPE | ACPI_NS_ERROR_IF_FOUND, NULL, &Node); (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); diff --git a/src/acpica/source/components/namespace/nsxfobj.c b/src/acpica/source/components/namespace/nsxfobj.c index 2ca409f..d2c19d6 100644 --- a/src/acpica/source/components/namespace/nsxfobj.c +++ b/src/acpica/source/components/namespace/nsxfobj.c @@ -153,10 +153,8 @@ AcpiGetType ( return (AE_BAD_PARAMETER); } - /* - * Special case for the predefined Root Node - * (return type ANY) - */ + /* Special case for the predefined Root Node (return type ANY) */ + if (Handle == ACPI_ROOT_OBJECT) { *RetType = ACPI_TYPE_ANY; @@ -180,7 +178,6 @@ AcpiGetType ( *RetType = Node->Type; - Status = AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return (Status); } diff --git a/src/acpica/source/components/parser/psargs.c b/src/acpica/source/components/parser/psargs.c index cbb24a9..4ee5f0a 100644 --- a/src/acpica/source/components/parser/psargs.c +++ b/src/acpica/source/components/parser/psargs.c @@ -359,8 +359,8 @@ AcpiPsGetNextNamepath ( * the upsearch) */ Status = AcpiNsLookup (WalkState->ScopeInfo, Path, - ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, - ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); + ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, + ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node); /* * If this name is a control method invocation, we must @@ -431,7 +431,7 @@ AcpiPsGetNextNamepath ( /* 1) NotFound is ok during load pass 1/2 (allow forward references) */ if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) != - ACPI_PARSE_EXECUTE) + ACPI_PARSE_EXECUTE) { Status = AE_OK; } @@ -463,7 +463,7 @@ AcpiPsGetNextNamepath ( ACPI_ERROR_NAMESPACE (Path, Status); if ((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == - ACPI_PARSE_EXECUTE) + ACPI_PARSE_EXECUTE) { /* Report a control method execution error */ @@ -859,6 +859,7 @@ AcpiPsGetNextArg ( { return_ACPI_STATUS (AE_NO_MEMORY); } + AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg); break; @@ -907,7 +908,7 @@ AcpiPsGetNextArg ( /* Non-empty list */ Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP, - ParserState->Aml); + ParserState->Aml); if (!Arg) { return_ACPI_STATUS (AE_NO_MEMORY); diff --git a/src/acpica/source/components/parser/psloop.c b/src/acpica/source/components/parser/psloop.c index bd7166f..2fa4e72 100644 --- a/src/acpica/source/components/parser/psloop.c +++ b/src/acpica/source/components/parser/psloop.c @@ -192,7 +192,8 @@ AcpiPsGetArguments ( case AML_INT_NAMEPATH_OP: /* AML_NAMESTRING_ARG */ - Status = AcpiPsGetNextNamepath (WalkState, &(WalkState->ParserState), Op, 1); + Status = AcpiPsGetNextNamepath ( + WalkState, &(WalkState->ParserState), Op, 1); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -205,12 +206,13 @@ AcpiPsGetArguments ( /* * Op is not a constant or string, append each argument to the Op */ - while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && !WalkState->ArgCount) + while (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) && + !WalkState->ArgCount) { WalkState->Aml = WalkState->ParserState.Aml; Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState), - GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); + GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -622,7 +624,7 @@ AcpiPsParseLoop ( * prepare for argument */ Status = AcpiPsPushScope (ParserState, Op, - WalkState->ArgTypes, WalkState->ArgCount); + WalkState->ArgTypes, WalkState->ArgCount); if (ACPI_FAILURE (Status)) { Status = AcpiPsCompleteOp (WalkState, &Op, Status); diff --git a/src/acpica/source/components/parser/psobject.c b/src/acpica/source/components/parser/psobject.c index 77e9434..0037871 100644 --- a/src/acpica/source/components/parser/psobject.c +++ b/src/acpica/source/components/parser/psobject.c @@ -181,7 +181,7 @@ AcpiPsGetAmlOpcode ( if (WalkState->PassNumber == 2) { AmlOffset = (UINT32) ACPI_PTR_DIFF (WalkState->Aml, - WalkState->ParserState.AmlStart); + WalkState->ParserState.AmlStart); ACPI_ERROR ((AE_INFO, "Unknown opcode 0x%.2X at table offset 0x%.4X, ignoring", @@ -223,7 +223,8 @@ AcpiPsGetAmlOpcode ( /* Found opcode info, this is a normal opcode */ - WalkState->ParserState.Aml += AcpiPsGetOpcodeSize (WalkState->Opcode); + WalkState->ParserState.Aml += + AcpiPsGetOpcodeSize (WalkState->Opcode); WalkState->ArgTypes = WalkState->OpInfo->ParseArgs; break; } @@ -273,7 +274,7 @@ AcpiPsBuildNamedOp ( (GET_CURRENT_ARG_TYPE (WalkState->ArgTypes) != ARGP_NAME)) { Status = AcpiPsGetNextArg (WalkState, &(WalkState->ParserState), - GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); + GET_CURRENT_ARG_TYPE (WalkState->ArgTypes), &Arg); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/parser/psparse.c b/src/acpica/source/components/parser/psparse.c index 599a766..a1d6612 100644 --- a/src/acpica/source/components/parser/psparse.c +++ b/src/acpica/source/components/parser/psparse.c @@ -272,8 +272,8 @@ AcpiPsCompleteThisOp ( * These opcodes contain TermArg operands. The current * op must be replaced by a placeholder return op */ - ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP, - Op->Common.Aml); + ReplacementOp = AcpiPsAllocOp ( + AML_INT_RETURN_VALUE_OP, Op->Common.Aml); if (!ReplacementOp) { Status = AE_NO_MEMORY; @@ -292,8 +292,8 @@ AcpiPsCompleteThisOp ( (Op->Common.Parent->Common.AmlOpcode == AML_BANK_FIELD_OP) || (Op->Common.Parent->Common.AmlOpcode == AML_VAR_PACKAGE_OP)) { - ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP, - Op->Common.Aml); + ReplacementOp = AcpiPsAllocOp ( + AML_INT_RETURN_VALUE_OP, Op->Common.Aml); if (!ReplacementOp) { Status = AE_NO_MEMORY; @@ -307,7 +307,7 @@ AcpiPsCompleteThisOp ( (Op->Common.AmlOpcode == AML_VAR_PACKAGE_OP)) { ReplacementOp = AcpiPsAllocOp (Op->Common.AmlOpcode, - Op->Common.Aml); + Op->Common.Aml); if (!ReplacementOp) { Status = AE_NO_MEMORY; @@ -323,8 +323,8 @@ AcpiPsCompleteThisOp ( default: - ReplacementOp = AcpiPsAllocOp (AML_INT_RETURN_VALUE_OP, - Op->Common.Aml); + ReplacementOp = AcpiPsAllocOp ( + AML_INT_RETURN_VALUE_OP, Op->Common.Aml); if (!ReplacementOp) { Status = AE_NO_MEMORY; @@ -339,11 +339,11 @@ AcpiPsCompleteThisOp ( if (ReplacementOp) { - ReplacementOp->Common.Parent = Op->Common.Parent; - ReplacementOp->Common.Value.Arg = NULL; - ReplacementOp->Common.Node = Op->Common.Node; + ReplacementOp->Common.Parent = Op->Common.Parent; + ReplacementOp->Common.Value.Arg = NULL; + ReplacementOp->Common.Node = Op->Common.Node; Op->Common.Parent->Common.Value.Arg = ReplacementOp; - ReplacementOp->Common.Next = Op->Common.Next; + ReplacementOp->Common.Next = Op->Common.Next; } else { @@ -362,11 +362,11 @@ AcpiPsCompleteThisOp ( { if (ReplacementOp) { - ReplacementOp->Common.Parent = Op->Common.Parent; + ReplacementOp->Common.Parent = Op->Common.Parent; ReplacementOp->Common.Value.Arg = NULL; - ReplacementOp->Common.Node = Op->Common.Node; - Prev->Common.Next = ReplacementOp; - ReplacementOp->Common.Next = Op->Common.Next; + ReplacementOp->Common.Node = Op->Common.Node; + Prev->Common.Next = ReplacementOp; + ReplacementOp->Common.Next = Op->Common.Next; Next = NULL; } else @@ -566,7 +566,8 @@ AcpiPsParseAml ( */ if (WalkState->MethodDesc) { - WalkState->Thread->CurrentSyncLevel = WalkState->MethodDesc->Method.SyncLevel; + WalkState->Thread->CurrentSyncLevel = + WalkState->MethodDesc->Method.SyncLevel; } AcpiDsPushWalkState (WalkState, Thread); @@ -612,8 +613,8 @@ AcpiPsParseAml ( } /* - * If the transfer to the new method method call worked, a new walk - * state was created -- get it + * If the transfer to the new method method call worked + *, a new walk state was created -- get it */ WalkState = AcpiDsGetCurrentWalkState (Thread); continue; @@ -632,7 +633,8 @@ AcpiPsParseAml ( /* Check for possible multi-thread reentrancy problem */ if ((Status == AE_ALREADY_EXISTS) && - (!(WalkState->MethodDesc->Method.InfoFlags & ACPI_METHOD_SERIALIZED))) + (!(WalkState->MethodDesc->Method.InfoFlags & + ACPI_METHOD_SERIALIZED))) { /* * Method is not serialized and tried to create an object @@ -658,7 +660,8 @@ AcpiPsParseAml ( * encountered an error during the method parse phase, there's lots of * cleanup to do */ - if (((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == ACPI_PARSE_EXECUTE) || + if (((WalkState->ParseFlags & ACPI_PARSE_MODE_MASK) == + ACPI_PARSE_EXECUTE) || (ACPI_FAILURE (Status))) { AcpiDsTerminateControlMethod (WalkState->MethodDesc, WalkState); @@ -705,7 +708,7 @@ AcpiPsParseAml ( /* Restart the calling control method */ Status = AcpiDsRestartControlMethod (WalkState, - PreviousWalkState->ImplicitReturnObj); + PreviousWalkState->ImplicitReturnObj); } else { @@ -716,7 +719,7 @@ AcpiPsParseAml ( AcpiDsClearImplicitReturn (PreviousWalkState); Status = AcpiDsRestartControlMethod (WalkState, - PreviousWalkState->ReturnDesc); + PreviousWalkState->ReturnDesc); } if (ACPI_SUCCESS (Status)) { diff --git a/src/acpica/source/components/parser/psscope.c b/src/acpica/source/components/parser/psscope.c index f44ea48..60e03b4 100644 --- a/src/acpica/source/components/parser/psscope.c +++ b/src/acpica/source/components/parser/psscope.c @@ -308,9 +308,9 @@ AcpiPsPopScope ( /* Return to parsing previous op */ - *Op = Scope->ParseScope.Op; - *ArgList = Scope->ParseScope.ArgList; - *ArgCount = Scope->ParseScope.ArgCount; + *Op = Scope->ParseScope.Op; + *ArgList = Scope->ParseScope.ArgList; + *ArgCount = Scope->ParseScope.ArgCount; ParserState->PkgEnd = Scope->ParseScope.PkgEnd; /* All done with this scope state structure */ @@ -321,8 +321,8 @@ AcpiPsPopScope ( { /* Empty parse stack, prepare to fetch next opcode */ - *Op = NULL; - *ArgList = 0; + *Op = NULL; + *ArgList = 0; *ArgCount = 0; } diff --git a/src/acpica/source/components/parser/psutils.c b/src/acpica/source/components/parser/psutils.c index 3aa4954..168f098 100644 --- a/src/acpica/source/components/parser/psutils.c +++ b/src/acpica/source/components/parser/psutils.c @@ -177,8 +177,8 @@ AcpiPsInitOp ( Op->Common.AmlOpcode = Opcode; ACPI_DISASM_ONLY_MEMBERS (strncpy (Op->Common.AmlOpName, - (AcpiPsGetOpcodeInfo (Opcode))->Name, - sizeof (Op->Common.AmlOpName))); + (AcpiPsGetOpcodeInfo (Opcode))->Name, + sizeof (Op->Common.AmlOpName))); } @@ -277,7 +277,8 @@ AcpiPsFreeOp ( if (Op->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP) { - ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", Op)); + ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, + "Free retval op: %p\n", Op)); } if (Op->Common.Flags & ACPI_PARSEOP_GENERIC) diff --git a/src/acpica/source/components/parser/pswalk.c b/src/acpica/source/components/parser/pswalk.c index a447970..fa837ee 100644 --- a/src/acpica/source/components/parser/pswalk.c +++ b/src/acpica/source/components/parser/pswalk.c @@ -178,6 +178,7 @@ AcpiPsDeleteParseTree ( { return_VOID; } + if (Next) { Op = Next; diff --git a/src/acpica/source/components/parser/psxface.c b/src/acpica/source/components/parser/psxface.c index eb5c018..b03f776 100644 --- a/src/acpica/source/components/parser/psxface.c +++ b/src/acpica/source/components/parser/psxface.c @@ -255,7 +255,7 @@ AcpiPsExecuteMethod ( Info->PassNumber = ACPI_IMODE_EXECUTE; WalkState = AcpiDsCreateWalkState ( - Info->ObjDesc->Method.OwnerId, NULL, NULL, NULL); + Info->ObjDesc->Method.OwnerId, NULL, NULL, NULL); if (!WalkState) { Status = AE_NO_MEMORY; @@ -263,8 +263,8 @@ AcpiPsExecuteMethod ( } Status = AcpiDsInitAmlWalk (WalkState, Op, Info->Node, - Info->ObjDesc->Method.AmlStart, - Info->ObjDesc->Method.AmlLength, Info, Info->PassNumber); + Info->ObjDesc->Method.AmlStart, + Info->ObjDesc->Method.AmlLength, Info, Info->PassNumber); if (ACPI_FAILURE (Status)) { AcpiDsDeleteWalkState (WalkState); @@ -375,7 +375,8 @@ AcpiPsUpdateParameterList ( { /* Ignore errors, just do them all */ - (void) AcpiUtUpdateObjectReference (Info->Parameters[i], Action); + (void) AcpiUtUpdateObjectReference ( + Info->Parameters[i], Action); } } } diff --git a/src/acpica/source/components/resources/rsaddr.c b/src/acpica/source/components/resources/rsaddr.c index 9d1d4d7..2b603f0 100644 --- a/src/acpica/source/components/resources/rsaddr.c +++ b/src/acpica/source/components/resources/rsaddr.c @@ -400,30 +400,35 @@ AcpiRsGetAddressCommon ( /* Validate the Resource Type */ - if ((Aml->Address.ResourceType > 2) && (Aml->Address.ResourceType < 0xC0)) + if ((Aml->Address.ResourceType > 2) && + (Aml->Address.ResourceType < 0xC0)) { return (FALSE); } /* Get the Resource Type and General Flags */ - (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertGeneralFlags); + (void) AcpiRsConvertAmlToResource ( + Resource, Aml, AcpiRsConvertGeneralFlags); /* Get the Type-Specific Flags (Memory and I/O descriptors only) */ if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE) { - (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertMemFlags); + (void) AcpiRsConvertAmlToResource ( + Resource, Aml, AcpiRsConvertMemFlags); } else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE) { - (void) AcpiRsConvertAmlToResource (Resource, Aml, AcpiRsConvertIoFlags); + (void) AcpiRsConvertAmlToResource ( + Resource, Aml, AcpiRsConvertIoFlags); } else { /* Generic resource type, just grab the TypeSpecific byte */ - Resource->Data.Address.Info.TypeSpecific = Aml->Address.SpecificFlags; + Resource->Data.Address.Info.TypeSpecific = + Aml->Address.SpecificFlags; } return (TRUE); @@ -454,22 +459,26 @@ AcpiRsSetAddressCommon ( /* Set the Resource Type and General Flags */ - (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertGeneralFlags); + (void) AcpiRsConvertResourceToAml ( + Resource, Aml, AcpiRsConvertGeneralFlags); /* Set the Type-Specific Flags (Memory and I/O descriptors only) */ if (Resource->Data.Address.ResourceType == ACPI_MEMORY_RANGE) { - (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertMemFlags); + (void) AcpiRsConvertResourceToAml ( + Resource, Aml, AcpiRsConvertMemFlags); } else if (Resource->Data.Address.ResourceType == ACPI_IO_RANGE) { - (void) AcpiRsConvertResourceToAml (Resource, Aml, AcpiRsConvertIoFlags); + (void) AcpiRsConvertResourceToAml ( + Resource, Aml, AcpiRsConvertIoFlags); } else { /* Generic resource type, just copy the TypeSpecific byte */ - Aml->Address.SpecificFlags = Resource->Data.Address.Info.TypeSpecific; + Aml->Address.SpecificFlags = + Resource->Data.Address.Info.TypeSpecific; } } diff --git a/src/acpica/source/components/resources/rscalc.c b/src/acpica/source/components/resources/rscalc.c index 33a438e..deab7e2 100644 --- a/src/acpica/source/components/resources/rscalc.c +++ b/src/acpica/source/components/resources/rscalc.c @@ -236,16 +236,17 @@ AcpiRsStreamOptionLength ( /* - * The ResourceSourceIndex and ResourceSource are optional elements of some - * Large-type resource descriptors. + * The ResourceSourceIndex and ResourceSource are optional elements of + * some Large-type resource descriptors. */ /* - * If the length of the actual resource descriptor is greater than the ACPI - * spec-defined minimum length, it means that a ResourceSourceIndex exists - * and is followed by a (required) null terminated string. The string length - * (including the null terminator) is the resource length minus the minimum - * length, minus one byte for the ResourceSourceIndex itself. + * If the length of the actual resource descriptor is greater than the + * ACPI spec-defined minimum length, it means that a ResourceSourceIndex + * exists and is followed by a (required) null terminated string. The + * string length (including the null terminator) is the resource length + * minus the minimum length, minus one byte for the ResourceSourceIndex + * itself. */ if (ResourceLength > MinimumAmlResourceLength) { @@ -381,9 +382,9 @@ AcpiRsGetAmlLength ( * 16-Bit Address Resource: * Add the size of the optional ResourceSource info */ - TotalSize = (ACPI_RS_LENGTH) - (TotalSize + AcpiRsStructOptionLength ( - &Resource->Data.Address16.ResourceSource)); + TotalSize = (ACPI_RS_LENGTH) (TotalSize + + AcpiRsStructOptionLength ( + &Resource->Data.Address16.ResourceSource)); break; @@ -392,9 +393,9 @@ AcpiRsGetAmlLength ( * 32-Bit Address Resource: * Add the size of the optional ResourceSource info */ - TotalSize = (ACPI_RS_LENGTH) - (TotalSize + AcpiRsStructOptionLength ( - &Resource->Data.Address32.ResourceSource)); + TotalSize = (ACPI_RS_LENGTH) (TotalSize + + AcpiRsStructOptionLength ( + &Resource->Data.Address32.ResourceSource)); break; @@ -403,9 +404,9 @@ AcpiRsGetAmlLength ( * 64-Bit Address Resource: * Add the size of the optional ResourceSource info */ - TotalSize = (ACPI_RS_LENGTH) - (TotalSize + AcpiRsStructOptionLength ( - &Resource->Data.Address64.ResourceSource)); + TotalSize = (ACPI_RS_LENGTH) (TotalSize + + AcpiRsStructOptionLength ( + &Resource->Data.Address64.ResourceSource)); break; @@ -415,8 +416,7 @@ AcpiRsGetAmlLength ( * Add the size of each additional optional interrupt beyond the * required 1 (4 bytes for each UINT32 interrupt number) */ - TotalSize = (ACPI_RS_LENGTH) - (TotalSize + + TotalSize = (ACPI_RS_LENGTH) (TotalSize + ((Resource->Data.ExtendedIrq.InterruptCount - 1) * 4) + /* Add the size of the optional ResourceSource info */ @@ -428,7 +428,8 @@ AcpiRsGetAmlLength ( case ACPI_RESOURCE_TYPE_GPIO: - TotalSize = (ACPI_RS_LENGTH) (TotalSize + (Resource->Data.Gpio.PinTableLength * 2) + + TotalSize = (ACPI_RS_LENGTH) (TotalSize + + (Resource->Data.Gpio.PinTableLength * 2) + Resource->Data.Gpio.ResourceSource.StringLength + Resource->Data.Gpio.VendorLength); @@ -437,7 +438,8 @@ AcpiRsGetAmlLength ( case ACPI_RESOURCE_TYPE_SERIAL_BUS: - TotalSize = AcpiGbl_AmlResourceSerialBusSizes [Resource->Data.CommonSerialBus.Type]; + TotalSize = AcpiGbl_AmlResourceSerialBusSizes [ + Resource->Data.CommonSerialBus.Type]; TotalSize = (ACPI_RS_LENGTH) (TotalSize + Resource->Data.I2cSerialBus.ResourceSource.StringLength + @@ -616,12 +618,15 @@ AcpiRsGetListLength ( if (AmlResource->Gpio.VendorLength) { - ExtraStructBytes += AmlResource->Gpio.VendorOffset - - AmlResource->Gpio.PinTableOffset + AmlResource->Gpio.VendorLength; + ExtraStructBytes += + AmlResource->Gpio.VendorOffset - + AmlResource->Gpio.PinTableOffset + + AmlResource->Gpio.VendorLength; } else { - ExtraStructBytes += AmlResource->LargeHeader.ResourceLength + + ExtraStructBytes += + AmlResource->LargeHeader.ResourceLength + sizeof (AML_RESOURCE_LARGE_HEADER) - AmlResource->Gpio.PinTableOffset; } @@ -631,7 +636,8 @@ AcpiRsGetListLength ( MinimumAmlResourceLength = AcpiGbl_ResourceAmlSerialBusSizes[ AmlResource->CommonSerialBus.Type]; - ExtraStructBytes += AmlResource->CommonSerialBus.ResourceLength - + ExtraStructBytes += + AmlResource->CommonSerialBus.ResourceLength - MinimumAmlResourceLength; break; @@ -646,7 +652,8 @@ AcpiRsGetListLength ( * Important: Round the size up for the appropriate alignment. This * is a requirement on IA64. */ - if (AcpiUtGetResourceType (AmlBuffer) == ACPI_RESOURCE_NAME_SERIAL_BUS) + if (AcpiUtGetResourceType (AmlBuffer) == + ACPI_RESOURCE_NAME_SERIAL_BUS) { BufferSize = AcpiGbl_ResourceStructSerialBusSizes[ AmlResource->CommonSerialBus.Type] + ExtraStructBytes; @@ -654,10 +661,10 @@ AcpiRsGetListLength ( else { BufferSize = AcpiGbl_ResourceStructSizes[ResourceIndex] + - ExtraStructBytes; + ExtraStructBytes; } - BufferSize = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (BufferSize); + BufferSize = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (BufferSize); *SizeNeeded += BufferSize; ACPI_DEBUG_PRINT ((ACPI_DB_RESOURCES, @@ -794,7 +801,7 @@ AcpiRsGetPciRoutingTableLength ( else { TempSizeNeeded += AcpiNsGetPathnameLength ( - (*SubObjectList)->Reference.Node); + (*SubObjectList)->Reference.Node); } } else diff --git a/src/acpica/source/components/resources/rscreate.c b/src/acpica/source/components/resources/rscreate.c index 8cf00d3..0bf0ec5 100644 --- a/src/acpica/source/components/resources/rscreate.c +++ b/src/acpica/source/components/resources/rscreate.c @@ -158,8 +158,8 @@ AcpiBufferToResource ( /* Get the required length for the converted resource */ - Status = AcpiRsGetListLength (AmlBuffer, AmlBufferLength, - &ListSizeNeeded); + Status = AcpiRsGetListLength ( + AmlBuffer, AmlBufferLength, &ListSizeNeeded); if (Status == AE_AML_NO_RESOURCE_END_TAG) { Status = AE_OK; @@ -181,7 +181,7 @@ AcpiBufferToResource ( /* Perform the AML-to-Resource conversion */ Status = AcpiUtWalkAmlResources (NULL, AmlBuffer, AmlBufferLength, - AcpiRsConvertAmlToResources, &CurrentResourcePtr); + AcpiRsConvertAmlToResources, &CurrentResourcePtr); if (Status == AE_AML_NO_RESOURCE_END_TAG) { Status = AE_OK; @@ -269,14 +269,14 @@ AcpiRsCreateResourceList ( Resource = OutputBuffer->Pointer; Status = AcpiUtWalkAmlResources (NULL, AmlStart, AmlBufferLength, - AcpiRsConvertAmlToResources, &Resource); + AcpiRsConvertAmlToResources, &Resource); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); } ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n", - OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); + OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); return_ACPI_STATUS (AE_OK); } @@ -327,8 +327,8 @@ AcpiRsCreatePciRoutingTable ( /* Get the required buffer length */ - Status = AcpiRsGetPciRoutingTableLength (PackageObject, - &BufferSizeNeeded); + Status = AcpiRsGetPciRoutingTableLength ( + PackageObject,&BufferSizeNeeded); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -350,10 +350,10 @@ AcpiRsCreatePciRoutingTable ( * package that in turn contains an UINT64 Address, a UINT8 Pin, * a Name, and a UINT8 SourceIndex. */ - TopObjectList = PackageObject->Package.Elements; + TopObjectList = PackageObject->Package.Elements; NumberOfElements = PackageObject->Package.Count; - Buffer = OutputBuffer->Pointer; - UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer); + Buffer = OutputBuffer->Pointer; + UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer); for (Index = 0; Index < NumberOfElements; Index++) { @@ -367,9 +367,9 @@ AcpiRsCreatePciRoutingTable ( UserPrt = ACPI_CAST_PTR (ACPI_PCI_ROUTING_TABLE, Buffer); /* - * Fill in the Length field with the information we have at this point. - * The minus four is to subtract the size of the UINT8 Source[4] member - * because it is added below. + * Fill in the Length field with the information we have at this + * point. The minus four is to subtract the size of the UINT8 + * Source[4] member because it is added below. */ UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4); @@ -395,7 +395,8 @@ AcpiRsCreatePciRoutingTable ( ObjDesc = SubObjectList[0]; if (!ObjDesc || ObjDesc->Common.Type != ACPI_TYPE_INTEGER) { - ACPI_ERROR ((AE_INFO, "(PRT[%u].Address) Need Integer, found %s", + ACPI_ERROR ((AE_INFO, + "(PRT[%u].Address) Need Integer, found %s", Index, AcpiUtGetObjectTypeName (ObjDesc))); return_ACPI_STATUS (AE_BAD_DATA); } @@ -438,12 +439,12 @@ AcpiRsCreatePciRoutingTable ( /* Use *remaining* length of the buffer as max for pathname */ PathBuffer.Length = OutputBuffer->Length - - (UINT32) ((UINT8 *) UserPrt->Source - - (UINT8 *) OutputBuffer->Pointer); + (UINT32) ((UINT8 *) UserPrt->Source - + (UINT8 *) OutputBuffer->Pointer); PathBuffer.Pointer = UserPrt->Source; - Status = AcpiNsHandleToPathname ((ACPI_HANDLE) Node, - &PathBuffer, FALSE); + Status = AcpiNsHandleToPathname ( + (ACPI_HANDLE) Node, &PathBuffer, FALSE); /* +1 to include null terminator */ @@ -463,8 +464,8 @@ AcpiRsCreatePciRoutingTable ( case ACPI_TYPE_INTEGER: /* - * If this is a number, then the Source Name is NULL, since the - * entire buffer was zeroed out, we can leave this alone. + * If this is a number, then the Source Name is NULL, since + * the entire buffer was zeroed out, we can leave this alone. * * Add to the Length field the length of the UINT32 NULL */ @@ -503,7 +504,7 @@ AcpiRsCreatePciRoutingTable ( } ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "OutputBuffer %p Length %X\n", - OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); + OutputBuffer->Pointer, (UINT32) OutputBuffer->Length)); return_ACPI_STATUS (AE_OK); } @@ -544,8 +545,8 @@ AcpiRsCreateAmlResources ( /* Get the buffer size needed for the AML byte stream */ - Status = AcpiRsGetAmlLength (ResourceList->Pointer, - ResourceList->Length, &AmlSizeNeeded); + Status = AcpiRsGetAmlLength ( + ResourceList->Pointer, ResourceList->Length, &AmlSizeNeeded); ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "AmlSizeNeeded=%X, %s\n", (UINT32) AmlSizeNeeded, AcpiFormatException (Status))); @@ -565,7 +566,7 @@ AcpiRsCreateAmlResources ( /* Do the conversion */ Status = AcpiRsConvertResourcesToAml (ResourceList->Pointer, - AmlSizeNeeded, OutputBuffer->Pointer); + AmlSizeNeeded, OutputBuffer->Pointer); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/resources/rsdump.c b/src/acpica/source/components/resources/rsdump.c index 07d308a..cc8afa0 100644 --- a/src/acpica/source/components/resources/rsdump.c +++ b/src/acpica/source/components/resources/rsdump.c @@ -617,6 +617,7 @@ AcpiRsOutString ( char *Title, char *Value) { + AcpiOsPrintf ("%27s : %s", Title, Value); if (!*Value) { @@ -638,6 +639,7 @@ AcpiRsOutInteger16 ( char *Title, UINT16 Value) { + AcpiOsPrintf ("%27s : %4.4X\n", Title, Value); } @@ -646,6 +648,7 @@ AcpiRsOutInteger32 ( char *Title, UINT32 Value) { + AcpiOsPrintf ("%27s : %8.8X\n", Title, Value); } @@ -654,6 +657,7 @@ AcpiRsOutInteger64 ( char *Title, UINT64 Value) { + AcpiOsPrintf ("%27s : %8.8X%8.8X\n", Title, ACPI_FORMAT_UINT64 (Value)); } @@ -662,6 +666,7 @@ static void AcpiRsOutTitle ( char *Title) { + AcpiOsPrintf ("%27s : ", Title); } @@ -689,8 +694,7 @@ AcpiRsDumpByteList ( for (i = 0; i < Length; i++) { - AcpiOsPrintf ("%25s%2.2X : %2.2X\n", - "Byte", i, Data[i]); + AcpiOsPrintf ("%25s%2.2X : %2.2X\n", "Byte", i, Data[i]); } } @@ -706,6 +710,7 @@ AcpiRsDumpShortByteList ( { AcpiOsPrintf ("%X ", Data[i]); } + AcpiOsPrintf ("\n"); } @@ -719,8 +724,7 @@ AcpiRsDumpDwordList ( for (i = 0; i < Length; i++) { - AcpiOsPrintf ("%25s%2.2X : %8.8X\n", - "Dword", i, Data[i]); + AcpiOsPrintf ("%25s%2.2X : %8.8X\n", "Dword", i, Data[i]); } } @@ -734,7 +738,6 @@ AcpiRsDumpWordList ( for (i = 0; i < Length; i++) { - AcpiOsPrintf ("%25s%2.2X : %4.4X\n", - "Word", i, Data[i]); + AcpiOsPrintf ("%25s%2.2X : %4.4X\n", "Word", i, Data[i]); } } diff --git a/src/acpica/source/components/resources/rslist.c b/src/acpica/source/components/resources/rslist.c index 4fda294..8e6460f 100644 --- a/src/acpica/source/components/resources/rslist.c +++ b/src/acpica/source/components/resources/rslist.c @@ -169,9 +169,12 @@ AcpiRsConvertAmlToResources ( /* Get the appropriate conversion info table */ AmlResource = ACPI_CAST_PTR (AML_RESOURCE, Aml); - if (AcpiUtGetResourceType (Aml) == ACPI_RESOURCE_NAME_SERIAL_BUS) + + if (AcpiUtGetResourceType (Aml) == + ACPI_RESOURCE_NAME_SERIAL_BUS) { - if (AmlResource->CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE) + if (AmlResource->CommonSerialBus.Type > + AML_RESOURCE_MAX_SERIALBUSTYPE) { ConversionTable = NULL; } @@ -179,15 +182,13 @@ AcpiRsConvertAmlToResources ( { /* This is an I2C, SPI, or UART SerialBus descriptor */ - ConversionTable = - AcpiGbl_ConvertResourceSerialBusDispatch[ - AmlResource->CommonSerialBus.Type]; + ConversionTable = AcpiGbl_ConvertResourceSerialBusDispatch [ + AmlResource->CommonSerialBus.Type]; } } else { - ConversionTable = - AcpiGbl_GetResourceDispatch[ResourceIndex]; + ConversionTable = AcpiGbl_GetResourceDispatch[ResourceIndex]; } if (!ConversionTable) @@ -282,7 +283,8 @@ AcpiRsConvertResourcesToAml ( if (Resource->Type == ACPI_RESOURCE_TYPE_SERIAL_BUS) { - if (Resource->Data.CommonSerialBus.Type > AML_RESOURCE_MAX_SERIALBUSTYPE) + if (Resource->Data.CommonSerialBus.Type > + AML_RESOURCE_MAX_SERIALBUSTYPE) { ConversionTable = NULL; } @@ -308,8 +310,7 @@ AcpiRsConvertResourcesToAml ( } Status = AcpiRsConvertResourceToAml (Resource, - ACPI_CAST_PTR (AML_RESOURCE, Aml), - ConversionTable); + ACPI_CAST_PTR (AML_RESOURCE, Aml), ConversionTable); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -320,8 +321,8 @@ AcpiRsConvertResourcesToAml ( /* Perform final sanity check on the new AML resource descriptor */ - Status = AcpiUtValidateResource (NULL, - ACPI_CAST_PTR (AML_RESOURCE, Aml), NULL); + Status = AcpiUtValidateResource ( + NULL, ACPI_CAST_PTR (AML_RESOURCE, Aml), NULL); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/resources/rsmisc.c b/src/acpica/source/components/resources/rsmisc.c index 1a5512e..04c1765 100644 --- a/src/acpica/source/components/resources/rsmisc.c +++ b/src/acpica/source/components/resources/rsmisc.c @@ -193,7 +193,7 @@ AcpiRsConvertAmlToResource ( * Source is the external AML byte stream buffer, * destination is the internal resource descriptor */ - Source = ACPI_ADD_PTR (void, Aml, Info->AmlOffset); + Source = ACPI_ADD_PTR (void, Aml, Info->AmlOffset); Destination = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset); switch (Info->Opcode) @@ -272,8 +272,7 @@ AcpiRsConvertAmlToResource ( ItemCount = ACPI_GET8 (Source); ACPI_SET8 (Destination, ItemCount); - Resource->Length = Resource->Length + - (Info->Value * ItemCount); + Resource->Length = Resource->Length + (Info->Value * ItemCount); break; case ACPI_RSC_COUNT_GPIO_RES: @@ -345,7 +344,7 @@ AcpiRsConvertAmlToResource ( /* Generate and set the PIN data pointer */ Target = (char *) ACPI_ADD_PTR (void, Resource, - (Resource->Length - ItemCount * 2)); + (Resource->Length - ItemCount * 2)); *(UINT16 **) Destination = ACPI_CAST_PTR (UINT16, Target); /* Copy the PIN data */ @@ -359,7 +358,7 @@ AcpiRsConvertAmlToResource ( /* Generate and set the ResourceSource string pointer */ Target = (char *) ACPI_ADD_PTR (void, Resource, - (Resource->Length - ItemCount)); + (Resource->Length - ItemCount)); *(UINT8 **) Destination = ACPI_CAST_PTR (UINT8, Target); /* Copy the ResourceSource string */ @@ -373,7 +372,7 @@ AcpiRsConvertAmlToResource ( /* Generate and set the Vendor Data pointer */ Target = (char *) ACPI_ADD_PTR (void, Resource, - (Resource->Length - ItemCount)); + (Resource->Length - ItemCount)); *(UINT8 **) Destination = ACPI_CAST_PTR (UINT8, Target); /* Copy the Vendor Data */ @@ -387,12 +386,13 @@ AcpiRsConvertAmlToResource ( /* Generate and set the ResourceSource string pointer */ Target = (char *) ACPI_ADD_PTR (void, Resource, - (Resource->Length - ItemCount)); + (Resource->Length - ItemCount)); *(UINT8 **) Destination = ACPI_CAST_PTR (UINT8, Target); /* Copy the ResourceSource string */ - Source = ACPI_ADD_PTR (void, Aml, (ACPI_GET16 (Source) + Info->Value)); + Source = ACPI_ADD_PTR ( + void, Aml, (ACPI_GET16 (Source) + Info->Value)); AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode); break; @@ -514,7 +514,8 @@ Exit: { /* Round the resource struct length up to the next boundary (32 or 64) */ - Resource->Length = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length); + Resource->Length = (UINT32) + ACPI_ROUND_UP_TO_NATIVE_WORD (Resource->Length); } return_ACPI_STATUS (AE_OK); } @@ -570,7 +571,7 @@ AcpiRsConvertResourceToAml ( * Source is the internal resource descriptor, * destination is the external AML byte stream buffer */ - Source = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset); + Source = ACPI_ADD_PTR (void, Resource, Info->ResourceOffset); Destination = ACPI_ADD_PTR (void, Aml, Info->AmlOffset); switch (Info->Opcode) @@ -579,7 +580,8 @@ AcpiRsConvertResourceToAml ( memset (Aml, 0, INIT_RESOURCE_LENGTH (Info)); AmlLength = INIT_RESOURCE_LENGTH (Info); - AcpiRsSetResourceHeader (INIT_RESOURCE_TYPE (Info), AmlLength, Aml); + AcpiRsSetResourceHeader ( + INIT_RESOURCE_TYPE (Info), AmlLength, Aml); break; case ACPI_RSC_INITGET: @@ -621,7 +623,8 @@ AcpiRsConvertResourceToAml ( ItemCount = ACPI_GET8 (Source); ACPI_SET8 (Destination, ItemCount); - AmlLength = (UINT16) (AmlLength + (Info->Value * (ItemCount - 1))); + AmlLength = (UINT16) + (AmlLength + (Info->Value * (ItemCount - 1))); break; case ACPI_RSC_COUNT16: @@ -647,7 +650,8 @@ AcpiRsConvertResourceToAml ( ItemCount = ACPI_GET16 (Source); ACPI_SET16 (Destination, ItemCount); - AmlLength = (UINT16) (AmlLength + (Info->Value * ItemCount)); + AmlLength = (UINT16) ( + AmlLength + (Info->Value * ItemCount)); AcpiRsSetResourceLength (AmlLength, Aml); break; @@ -708,7 +712,7 @@ AcpiRsConvertResourceToAml ( case ACPI_RSC_MOVE_GPIO_PIN: Destination = (char *) ACPI_ADD_PTR (void, Aml, - ACPI_GET16 (Destination)); + ACPI_GET16 (Destination)); Source = * (UINT16 **) Source; AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; @@ -718,7 +722,7 @@ AcpiRsConvertResourceToAml ( /* Used for both ResourceSource string and VendorData */ Destination = (char *) ACPI_ADD_PTR (void, Aml, - ACPI_GET16 (Destination)); + ACPI_GET16 (Destination)); Source = * (UINT8 **) Source; AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; @@ -726,7 +730,7 @@ AcpiRsConvertResourceToAml ( case ACPI_RSC_MOVE_SERIAL_VEN: Destination = (char *) ACPI_ADD_PTR (void, Aml, - (AmlLength - ItemCount)); + (AmlLength - ItemCount)); Source = * (UINT8 **) Source; AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; @@ -734,7 +738,7 @@ AcpiRsConvertResourceToAml ( case ACPI_RSC_MOVE_SERIAL_RES: Destination = (char *) ACPI_ADD_PTR (void, Aml, - (AmlLength - ItemCount)); + (AmlLength - ItemCount)); Source = * (UINT8 **) Source; AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode); break; @@ -751,7 +755,7 @@ AcpiRsConvertResourceToAml ( * Optional ResourceSource (Index and String) */ AmlLength = AcpiRsSetResourceSource ( - Aml, (ACPI_RS_LENGTH) AmlLength, Source); + Aml, (ACPI_RS_LENGTH) AmlLength, Source); AcpiRsSetResourceLength (AmlLength, Aml); break; @@ -777,8 +781,8 @@ AcpiRsConvertResourceToAml ( /* * 16-bit encoded bitmask (IRQ macro) */ - Temp16 = AcpiRsEncodeBitmask (Source, - *ACPI_ADD_PTR (UINT8, Resource, Info->Value)); + Temp16 = AcpiRsEncodeBitmask ( + Source, *ACPI_ADD_PTR (UINT8, Resource, Info->Value)); ACPI_MOVE_16_TO_16 (Destination, &Temp16); break; @@ -801,7 +805,7 @@ AcpiRsConvertResourceToAml ( case ACPI_RSC_COMPARE_VALUE: if (*ACPI_ADD_PTR (UINT8, Resource, - COMPARE_TARGET (Info)) != COMPARE_VALUE (Info)) + COMPARE_TARGET (Info)) != COMPARE_VALUE (Info)) { goto Exit; } @@ -819,7 +823,7 @@ AcpiRsConvertResourceToAml ( * Control - Exit conversion if equal */ if (*ACPI_ADD_PTR (UINT8, Resource, - COMPARE_TARGET (Info)) == COMPARE_VALUE (Info)) + COMPARE_TARGET (Info)) == COMPARE_VALUE (Info)) { goto Exit; } @@ -843,7 +847,8 @@ Exit: #if 0 /* Previous resource validations */ - if (Aml->ExtAddress64.RevisionID != AML_RESOURCE_EXTENDED_ADDRESS_REVISION) + if (Aml->ExtAddress64.RevisionID != + AML_RESOURCE_EXTENDED_ADDRESS_REVISION) { return_ACPI_STATUS (AE_SUPPORT); } diff --git a/src/acpica/source/components/resources/rsutils.c b/src/acpica/source/components/resources/rsutils.c index a7dc215..f8d5cef 100644 --- a/src/acpica/source/components/resources/rsutils.c +++ b/src/acpica/source/components/resources/rsutils.c @@ -257,20 +257,23 @@ AcpiRsMoveData ( case ACPI_RSC_MOVE16: case ACPI_RSC_MOVE_GPIO_PIN: - ACPI_MOVE_16_TO_16 (&ACPI_CAST_PTR (UINT16, Destination)[i], - &ACPI_CAST_PTR (UINT16, Source)[i]); + ACPI_MOVE_16_TO_16 ( + &ACPI_CAST_PTR (UINT16, Destination)[i], + &ACPI_CAST_PTR (UINT16, Source)[i]); break; case ACPI_RSC_MOVE32: - ACPI_MOVE_32_TO_32 (&ACPI_CAST_PTR (UINT32, Destination)[i], - &ACPI_CAST_PTR (UINT32, Source)[i]); + ACPI_MOVE_32_TO_32 ( + &ACPI_CAST_PTR (UINT32, Destination)[i], + &ACPI_CAST_PTR (UINT32, Source)[i]); break; case ACPI_RSC_MOVE64: - ACPI_MOVE_64_TO_64 (&ACPI_CAST_PTR (UINT64, Destination)[i], - &ACPI_CAST_PTR (UINT64, Source)[i]); + ACPI_MOVE_64_TO_64 ( + &ACPI_CAST_PTR (UINT64, Destination)[i], + &ACPI_CAST_PTR (UINT64, Source)[i]); break; default: @@ -320,18 +323,18 @@ AcpiRsSetResourceLength ( { /* Large descriptor -- bytes 1-2 contain the 16-bit length */ - ACPI_MOVE_16_TO_16 (&Aml->LargeHeader.ResourceLength, &ResourceLength); + ACPI_MOVE_16_TO_16 ( + &Aml->LargeHeader.ResourceLength, &ResourceLength); } else { - /* Small descriptor -- bits 2:0 of byte 0 contain the length */ - + /* + * Small descriptor -- bits 2:0 of byte 0 contain the length + * Clear any existing length, preserving descriptor type bits + */ Aml->SmallHeader.DescriptorType = (UINT8) - - /* Clear any existing length, preserving descriptor type bits */ - - ((Aml->SmallHeader.DescriptorType & ~ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK) - + ((Aml->SmallHeader.DescriptorType & + ~ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK) | ResourceLength); } } @@ -450,8 +453,8 @@ AcpiRsGetResourceSource ( AmlResourceSource = ACPI_ADD_PTR (UINT8, Aml, MinimumLength); /* - * ResourceSource is present if the length of the descriptor is longer than - * the minimum length. + * ResourceSource is present if the length of the descriptor is longer + * than the minimum length. * * Note: Some resource descriptors will have an additional null, so * we add 1 to the minimum length. @@ -469,8 +472,8 @@ AcpiRsGetResourceSource ( * String destination pointer is not specified; Set the String * pointer to the end of the current ResourceSource structure. */ - ResourceSource->StringPtr = ACPI_ADD_PTR (char, ResourceSource, - sizeof (ACPI_RESOURCE_SOURCE)); + ResourceSource->StringPtr = ACPI_ADD_PTR ( + char, ResourceSource, sizeof (ACPI_RESOURCE_SOURCE)); } /* @@ -482,13 +485,15 @@ AcpiRsGetResourceSource ( */ TotalLength = (UINT32) strlen ( ACPI_CAST_PTR (char, &AmlResourceSource[1])) + 1; + TotalLength = (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (TotalLength); memset (ResourceSource->StringPtr, 0, TotalLength); /* Copy the ResourceSource string to the destination */ - ResourceSource->StringLength = AcpiRsStrcpy (ResourceSource->StringPtr, + ResourceSource->StringLength = AcpiRsStrcpy ( + ResourceSource->StringPtr, ACPI_CAST_PTR (char, &AmlResourceSource[1])); return ((ACPI_RS_LENGTH) TotalLength); @@ -556,7 +561,8 @@ AcpiRsSetResourceSource ( * Add the length of the string (+ 1 for null terminator) to the * final descriptor length */ - DescriptorLength += ((ACPI_RSDESC_SIZE) ResourceSource->StringLength + 1); + DescriptorLength += ((ACPI_RSDESC_SIZE) + ResourceSource->StringLength + 1); } /* Return the new total length of the AML descriptor */ @@ -599,8 +605,8 @@ AcpiRsGetPrtMethodData ( /* Execute the method, no parameters */ - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRT, - ACPI_BTYPE_PACKAGE, &ObjDesc); + Status = AcpiUtEvaluateObject ( + Node, METHOD_NAME__PRT, ACPI_BTYPE_PACKAGE, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -653,8 +659,8 @@ AcpiRsGetCrsMethodData ( /* Execute the method, no parameters */ - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__CRS, - ACPI_BTYPE_BUFFER, &ObjDesc); + Status = AcpiUtEvaluateObject ( + Node, METHOD_NAME__CRS, ACPI_BTYPE_BUFFER, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -708,8 +714,8 @@ AcpiRsGetPrsMethodData ( /* Execute the method, no parameters */ - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__PRS, - ACPI_BTYPE_BUFFER, &ObjDesc); + Status = AcpiUtEvaluateObject ( + Node, METHOD_NAME__PRS, ACPI_BTYPE_BUFFER, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -763,8 +769,8 @@ AcpiRsGetAeiMethodData ( /* Execute the method, no parameters */ - Status = AcpiUtEvaluateObject (Node, METHOD_NAME__AEI, - ACPI_BTYPE_BUFFER, &ObjDesc); + Status = AcpiUtEvaluateObject ( + Node, METHOD_NAME__AEI, ACPI_BTYPE_BUFFER, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -820,7 +826,8 @@ AcpiRsGetMethodData ( /* Execute the method, no parameters */ - Status = AcpiUtEvaluateObject (ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Handle), + Status = AcpiUtEvaluateObject ( + ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, Handle), Path, ACPI_BTYPE_BUFFER, &ObjDesc); if (ACPI_FAILURE (Status)) { diff --git a/src/acpica/source/components/resources/rsxface.c b/src/acpica/source/components/resources/rsxface.c index 9aea3dc..9580053 100644 --- a/src/acpica/source/components/resources/rsxface.c +++ b/src/acpica/source/components/resources/rsxface.c @@ -126,7 +126,7 @@ /* Local macros for 16,32-bit to 64-bit conversion */ #define ACPI_COPY_FIELD(Out, In, Field) ((Out)->Field = (In)->Field) -#define ACPI_COPY_ADDRESS(Out, In) \ +#define ACPI_COPY_ADDRESS(Out, In) \ ACPI_COPY_FIELD(Out, In, ResourceType); \ ACPI_COPY_FIELD(Out, In, ProducerConsumer); \ ACPI_COPY_FIELD(Out, In, Decode); \ @@ -505,13 +505,15 @@ AcpiResourceToAddress64 ( { case ACPI_RESOURCE_TYPE_ADDRESS16: - Address16 = ACPI_CAST_PTR (ACPI_RESOURCE_ADDRESS16, &Resource->Data); + Address16 = ACPI_CAST_PTR ( + ACPI_RESOURCE_ADDRESS16, &Resource->Data); ACPI_COPY_ADDRESS (Out, Address16); break; case ACPI_RESOURCE_TYPE_ADDRESS32: - Address32 = ACPI_CAST_PTR (ACPI_RESOURCE_ADDRESS32, &Resource->Data); + Address32 = ACPI_CAST_PTR ( + ACPI_RESOURCE_ADDRESS32, &Resource->Data); ACPI_COPY_ADDRESS (Out, Address32); break; @@ -576,8 +578,8 @@ AcpiGetVendorResource ( /* Walk the _CRS or _PRS resource list for this device */ - Status = AcpiWalkResources (DeviceHandle, Name, AcpiRsMatchVendorResource, - &Info); + Status = AcpiWalkResources ( + DeviceHandle, Name, AcpiRsMatchVendorResource, &Info); if (ACPI_FAILURE (Status)) { return (Status); @@ -696,7 +698,8 @@ AcpiWalkResourceBuffer ( /* Buffer contains the resource list and length */ Resource = ACPI_CAST_PTR (ACPI_RESOURCE, Buffer->Pointer); - ResourceEnd = ACPI_ADD_PTR (ACPI_RESOURCE, Buffer->Pointer, Buffer->Length); + ResourceEnd = ACPI_ADD_PTR ( + ACPI_RESOURCE, Buffer->Pointer, Buffer->Length); /* Walk the resource list until the EndTag is found (or buffer end) */ diff --git a/src/acpica/source/components/tables/tbdata.c b/src/acpica/source/components/tables/tbdata.c index daacf41..8b388f4 100644 --- a/src/acpica/source/components/tables/tbdata.c +++ b/src/acpica/source/components/tables/tbdata.c @@ -194,7 +194,7 @@ AcpiTbAcquireTable ( case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: Table = ACPI_CAST_PTR (ACPI_TABLE_HEADER, - ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); + ACPI_PHYSADDR_TO_PTR (TableDesc->Address)); break; default: @@ -301,7 +301,7 @@ AcpiTbAcquireTempTable ( case ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL: TableHeader = ACPI_CAST_PTR (ACPI_TABLE_HEADER, - ACPI_PHYSADDR_TO_PTR (Address)); + ACPI_PHYSADDR_TO_PTR (Address)); if (!TableHeader) { return (AE_NO_MEMORY); @@ -375,7 +375,7 @@ AcpiTbValidateTable ( if (!TableDesc->Pointer) { Status = AcpiTbAcquireTable (TableDesc, &TableDesc->Pointer, - &TableDesc->Length, &TableDesc->Flags); + &TableDesc->Length, &TableDesc->Flags); if (!TableDesc->Pointer) { Status = AE_NO_MEMORY; @@ -516,6 +516,7 @@ AcpiTbVerifyTempTable ( AcpiUtValidAcpiName (TableDesc->Signature.Ascii) ? TableDesc->Signature.Ascii : "????", ACPI_FORMAT_UINT64 (TableDesc->Address))); + goto InvalidateAndExit; } } @@ -793,7 +794,7 @@ AcpiTbAllocateOwnerId ( if (TableIndex < AcpiGbl_RootTableList.CurrentTableCount) { Status = AcpiUtAllocateOwnerId ( - &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId)); + &(AcpiGbl_RootTableList.Tables[TableIndex].OwnerId)); } (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); diff --git a/src/acpica/source/components/tables/tbfadt.c b/src/acpica/source/components/tables/tbfadt.c index 4f82733..dc933d6 100644 --- a/src/acpica/source/components/tables/tbfadt.c +++ b/src/acpica/source/components/tables/tbfadt.c @@ -398,7 +398,7 @@ AcpiTbSelectAddress ( * * FUNCTION: AcpiTbParseFadt * - * PARAMETERS: TableIndex - Index for the FADT + * PARAMETERS: None * * RETURN: None * @@ -409,7 +409,7 @@ AcpiTbSelectAddress ( void AcpiTbParseFadt ( - UINT32 TableIndex) + void) { UINT32 Length; ACPI_TABLE_HEADER *Table; @@ -422,10 +422,10 @@ AcpiTbParseFadt ( * Get a local copy of the FADT and convert it to a common format * Map entire FADT, assumed to be smaller than one page. */ - Length = AcpiGbl_RootTableList.Tables[TableIndex].Length; + Length = AcpiGbl_RootTableList.Tables[AcpiGbl_FadtIndex].Length; Table = AcpiOsMapMemory ( - AcpiGbl_RootTableList.Tables[TableIndex].Address, Length); + AcpiGbl_RootTableList.Tables[AcpiGbl_FadtIndex].Address, Length); if (!Table) { return; diff --git a/src/acpica/source/components/tables/tbfind.c b/src/acpica/source/components/tables/tbfind.c index bf692b8..3a7f705 100644 --- a/src/acpica/source/components/tables/tbfind.c +++ b/src/acpica/source/components/tables/tbfind.c @@ -180,7 +180,7 @@ AcpiTbFindTable ( for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i) { if (memcmp (&(AcpiGbl_RootTableList.Tables[i].Signature), - Header.Signature, ACPI_NAME_SIZE)) + Header.Signature, ACPI_NAME_SIZE)) { /* Not the requested table */ @@ -208,13 +208,13 @@ AcpiTbFindTable ( /* Check for table match on all IDs */ if (!memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->Signature, - Header.Signature, ACPI_NAME_SIZE) && + Header.Signature, ACPI_NAME_SIZE) && (!OemId[0] || !memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemId, - Header.OemId, ACPI_OEM_ID_SIZE)) && + Header.OemId, ACPI_OEM_ID_SIZE)) && (!OemTableId[0] || !memcmp (AcpiGbl_RootTableList.Tables[i].Pointer->OemTableId, - Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE))) + Header.OemTableId, ACPI_OEM_TABLE_ID_SIZE))) { *TableIndex = i; diff --git a/src/acpica/source/components/tables/tbinstal.c b/src/acpica/source/components/tables/tbinstal.c index 2d7bb94..9c5b9c1 100644 --- a/src/acpica/source/components/tables/tbinstal.c +++ b/src/acpica/source/components/tables/tbinstal.c @@ -155,7 +155,7 @@ AcpiTbCompareTables ( Status = AcpiTbAcquireTable (&AcpiGbl_RootTableList.Tables[TableIndex], - &Table, &TableLength, &TableFlags); + &Table, &TableLength, &TableFlags); if (ACPI_FAILURE (Status)) { return (FALSE); @@ -278,7 +278,7 @@ AcpiTbInstallFixedTable ( /* Fill a table descriptor for validation */ Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, - ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); + ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); if (ACPI_FAILURE (Status)) { ACPI_ERROR ((AE_INFO, "Could not acquire table length at %8.8X%8.8X", @@ -350,7 +350,8 @@ AcpiTbInstallStandardTable ( Status = AcpiTbAcquireTempTable (&NewTableDesc, Address, Flags); if (ACPI_FAILURE (Status)) { - ACPI_ERROR ((AE_INFO, "Could not acquire table length at %8.8X%8.8X", + ACPI_ERROR ((AE_INFO, + "Could not acquire table length at %8.8X%8.8X", ACPI_FORMAT_UINT64 (Address))); return_ACPI_STATUS (Status); } @@ -363,7 +364,8 @@ AcpiTbInstallStandardTable ( AcpiGbl_DisableSsdtTableInstall && ACPI_COMPARE_NAME (&NewTableDesc.Signature, ACPI_SIG_SSDT)) { - ACPI_INFO ((AE_INFO, "Ignoring installation of %4.4s at %8.8X%8.8X", + ACPI_INFO ((AE_INFO, + "Ignoring installation of %4.4s at %8.8X%8.8X", NewTableDesc.Signature.Ascii, ACPI_FORMAT_UINT64 (Address))); goto ReleaseAndExit; } @@ -431,7 +433,8 @@ AcpiTbInstallStandardTable ( * need to be unregistered when they are unloaded, and slots in the * root table list should be reused when empty. */ - if (AcpiGbl_RootTableList.Tables[i].Flags & ACPI_TABLE_IS_LOADED) + if (AcpiGbl_RootTableList.Tables[i].Flags & + ACPI_TABLE_IS_LOADED) { /* Table is still loaded, this is an error */ diff --git a/src/acpica/source/components/tables/tbprint.c b/src/acpica/source/components/tables/tbprint.c index e958041..ff221d2 100644 --- a/src/acpica/source/components/tables/tbprint.c +++ b/src/acpica/source/components/tables/tbprint.c @@ -160,6 +160,7 @@ AcpiTbFixString ( { *String = '?'; } + String++; Length--; } @@ -228,8 +229,8 @@ AcpiTbPrintTableHeader ( { /* RSDP has no common fields */ - memcpy (LocalHeader.OemId, - ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->OemId, ACPI_OEM_ID_SIZE); + memcpy (LocalHeader.OemId, ACPI_CAST_PTR (ACPI_TABLE_RSDP, + Header)->OemId, ACPI_OEM_ID_SIZE); AcpiTbFixString (LocalHeader.OemId, ACPI_OEM_ID_SIZE); ACPI_INFO ((AE_INFO, "RSDP 0x%8.8X%8.8X %06X (v%.2d %-6.6s)", diff --git a/src/acpica/source/components/tables/tbutils.c b/src/acpica/source/components/tables/tbutils.c index 0570425..bb74c0a 100644 --- a/src/acpica/source/components/tables/tbutils.c +++ b/src/acpica/source/components/tables/tbutils.c @@ -158,16 +158,16 @@ AcpiTbInitializeFacs ( return (AE_OK); } else if (AcpiGbl_FADT.XFacs && - (!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses)) + (!AcpiGbl_FADT.Facs || !AcpiGbl_Use32BitFacsAddresses)) { (void) AcpiGetTableByIndex (AcpiGbl_XFacsIndex, - ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); AcpiGbl_FACS = Facs; } else if (AcpiGbl_FADT.Facs) { (void) AcpiGetTableByIndex (AcpiGbl_FacsIndex, - ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); + ACPI_CAST_INDIRECT_PTR (ACPI_TABLE_HEADER, &Facs)); AcpiGbl_FACS = Facs; } @@ -180,33 +180,6 @@ AcpiTbInitializeFacs ( /******************************************************************************* * - * FUNCTION: AcpiTbTablesLoaded - * - * PARAMETERS: None - * - * RETURN: TRUE if required ACPI tables are loaded - * - * DESCRIPTION: Determine if the minimum required ACPI tables are present - * (FADT, FACS, DSDT) - * - ******************************************************************************/ - -BOOLEAN -AcpiTbTablesLoaded ( - void) -{ - - if (AcpiGbl_RootTableList.CurrentTableCount >= 4) - { - return (TRUE); - } - - return (FALSE); -} - - -/******************************************************************************* - * * FUNCTION: AcpiTbCheckDsdtHeader * * PARAMETERS: None @@ -232,6 +205,7 @@ AcpiTbCheckDsdtHeader ( ACPI_BIOS_ERROR ((AE_INFO, "The DSDT has been corrupted or replaced - " "old, new headers below")); + AcpiTbPrintTableHeader (0, &AcpiGbl_OriginalDsdtHeader); AcpiTbPrintTableHeader (0, AcpiGbl_DSDT); @@ -280,8 +254,8 @@ AcpiTbCopyDsdt ( AcpiTbInitTableDescriptor ( &AcpiGbl_RootTableList.Tables[AcpiGbl_DsdtIndex], - ACPI_PTR_TO_PHYSADDR (NewTable), ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, - NewTable); + ACPI_PTR_TO_PHYSADDR (NewTable), + ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL, NewTable); ACPI_INFO ((AE_INFO, "Forced DSDT copy: length 0x%05X copied locally, original unmapped", @@ -326,7 +300,8 @@ AcpiTbGetRootTableEntry ( * 32-bit platform, RSDT: Return 32-bit table entry * 64-bit platform, RSDT: Expand 32-bit to 64-bit and return */ - return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (UINT32, TableEntry))); + return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR ( + UINT32, TableEntry))); } else { @@ -492,10 +467,12 @@ AcpiTbParseRootTable ( ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex); if (ACPI_SUCCESS (Status) && - ACPI_COMPARE_NAME (&AcpiGbl_RootTableList.Tables[TableIndex].Signature, + ACPI_COMPARE_NAME ( + &AcpiGbl_RootTableList.Tables[TableIndex].Signature, ACPI_SIG_FADT)) { - AcpiTbParseFadt (TableIndex); + AcpiGbl_FadtIndex = TableIndex; + AcpiTbParseFadt (); } NextTable: @@ -504,7 +481,6 @@ NextTable: } AcpiOsUnmapMemory (Table, Length); - return_ACPI_STATUS (AE_OK); } diff --git a/src/acpica/source/components/tables/tbxface.c b/src/acpica/source/components/tables/tbxface.c index 25e1405..83de853 100644 --- a/src/acpica/source/components/tables/tbxface.c +++ b/src/acpica/source/components/tables/tbxface.c @@ -318,8 +318,8 @@ AcpiGetTableHeader ( for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) { - if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature), - Signature)) + if (!ACPI_COMPARE_NAME ( + &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) { continue; } @@ -336,15 +336,14 @@ AcpiGetTableHeader ( ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL) { Header = AcpiOsMapMemory ( - AcpiGbl_RootTableList.Tables[i].Address, - sizeof (ACPI_TABLE_HEADER)); + AcpiGbl_RootTableList.Tables[i].Address, + sizeof (ACPI_TABLE_HEADER)); if (!Header) { return (AE_NO_MEMORY); } - memcpy (OutTableHeader, Header, - sizeof (ACPI_TABLE_HEADER)); + memcpy (OutTableHeader, Header, sizeof (ACPI_TABLE_HEADER)); AcpiOsUnmapMemory (Header, sizeof (ACPI_TABLE_HEADER)); } else @@ -405,8 +404,8 @@ AcpiGetTable ( for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++) { - if (!ACPI_COMPARE_NAME (&(AcpiGbl_RootTableList.Tables[i].Signature), - Signature)) + if (!ACPI_COMPARE_NAME ( + &(AcpiGbl_RootTableList.Tables[i].Signature), Signature)) { continue; } @@ -477,7 +476,8 @@ AcpiGetTableByIndex ( { /* Table is not mapped, map it */ - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); + Status = AcpiTbValidateTable ( + &AcpiGbl_RootTableList.Tables[TableIndex]); if (ACPI_FAILURE (Status)) { (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); diff --git a/src/acpica/source/components/tables/tbxfload.c b/src/acpica/source/components/tables/tbxfload.c index 1d51c91..2290e16 100644 --- a/src/acpica/source/components/tables/tbxfload.c +++ b/src/acpica/source/components/tables/tbxfload.c @@ -282,6 +282,7 @@ AcpiTbLoadNamespace ( { ACPI_EXCEPTION ((AE_INFO, Status, "(%4.4s:%8.8s) while loading table", Table->Signature.Ascii, Table->Pointer->OemTableId)); + TablesFailed++; ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT, @@ -299,7 +300,7 @@ AcpiTbLoadNamespace ( if (!TablesFailed) { ACPI_INFO ((AE_INFO, - "%u ACPI AML tables successfully acquired and loaded", + "%u ACPI AML tables successfully acquired and loaded\n", TablesLoaded)); } else @@ -415,8 +416,8 @@ AcpiLoadTable ( (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES); Status = AcpiTbInstallStandardTable (ACPI_PTR_TO_PHYSADDR (Table), - ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, TRUE, FALSE, - &TableIndex); + ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, TRUE, FALSE, + &TableIndex); (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); if (ACPI_FAILURE (Status)) @@ -428,7 +429,8 @@ AcpiLoadTable ( * Note: Now table is "INSTALLED", it must be validated before * using. */ - Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[TableIndex]); + Status = AcpiTbValidateTable ( + &AcpiGbl_RootTableList.Tables[TableIndex]); if (ACPI_FAILURE (Status)) { goto UnlockAndExit; @@ -441,7 +443,7 @@ AcpiLoadTable ( if (AcpiGbl_TableHandler) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_LOAD, Table, - AcpiGbl_TableHandlerContext); + AcpiGbl_TableHandlerContext); } UnlockAndExit: @@ -524,8 +526,8 @@ AcpiUnloadParentTable ( * that can create namespace objects. */ if (ACPI_COMPARE_NAME ( - AcpiGbl_RootTableList.Tables[i].Signature.Ascii, - ACPI_SIG_DSDT)) + AcpiGbl_RootTableList.Tables[i].Signature.Ascii, + ACPI_SIG_DSDT)) { Status = AE_TYPE; break; @@ -544,8 +546,8 @@ AcpiUnloadParentTable ( if (AcpiGbl_TableHandler) { (void) AcpiGbl_TableHandler (ACPI_TABLE_EVENT_UNLOAD, - AcpiGbl_RootTableList.Tables[i].Pointer, - AcpiGbl_TableHandlerContext); + AcpiGbl_RootTableList.Tables[i].Pointer, + AcpiGbl_TableHandlerContext); } /* diff --git a/src/acpica/source/components/tables/tbxfroot.c b/src/acpica/source/components/tables/tbxfroot.c index 45d7d54..582ff67 100644 --- a/src/acpica/source/components/tables/tbxfroot.c +++ b/src/acpica/source/components/tables/tbxfroot.c @@ -243,8 +243,8 @@ AcpiFindRootPointer ( /* 1a) Get the location of the Extended BIOS Data Area (EBDA) */ TablePtr = AcpiOsMapMemory ( - (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION, - ACPI_EBDA_PTR_LENGTH); + (ACPI_PHYSICAL_ADDRESS) ACPI_EBDA_PTR_LOCATION, + ACPI_EBDA_PTR_LENGTH); if (!TablePtr) { ACPI_ERROR ((AE_INFO, @@ -270,8 +270,8 @@ AcpiFindRootPointer ( * minimum of 1K length) */ TablePtr = AcpiOsMapMemory ( - (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, - ACPI_EBDA_WINDOW_SIZE); + (ACPI_PHYSICAL_ADDRESS) PhysicalAddress, + ACPI_EBDA_WINDOW_SIZE); if (!TablePtr) { ACPI_ERROR ((AE_INFO, @@ -281,14 +281,16 @@ AcpiFindRootPointer ( return_ACPI_STATUS (AE_NO_MEMORY); } - MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_EBDA_WINDOW_SIZE); + MemRover = AcpiTbScanMemoryForRsdp ( + TablePtr, ACPI_EBDA_WINDOW_SIZE); AcpiOsUnmapMemory (TablePtr, ACPI_EBDA_WINDOW_SIZE); if (MemRover) { /* Return the physical address */ - PhysicalAddress += (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr); + PhysicalAddress += + (UINT32) ACPI_PTR_DIFF (MemRover, TablePtr); *TableAddress = (ACPI_PHYSICAL_ADDRESS) PhysicalAddress; return_ACPI_STATUS (AE_OK); @@ -299,8 +301,8 @@ AcpiFindRootPointer ( * 2) Search upper memory: 16-byte boundaries in E0000h-FFFFFh */ TablePtr = AcpiOsMapMemory ( - (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE, - ACPI_HI_RSDP_WINDOW_SIZE); + (ACPI_PHYSICAL_ADDRESS) ACPI_HI_RSDP_WINDOW_BASE, + ACPI_HI_RSDP_WINDOW_SIZE); if (!TablePtr) { @@ -311,7 +313,8 @@ AcpiFindRootPointer ( return_ACPI_STATUS (AE_NO_MEMORY); } - MemRover = AcpiTbScanMemoryForRsdp (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); + MemRover = AcpiTbScanMemoryForRsdp ( + TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); AcpiOsUnmapMemory (TablePtr, ACPI_HI_RSDP_WINDOW_SIZE); if (MemRover) @@ -369,7 +372,8 @@ AcpiTbScanMemoryForRsdp ( { /* The RSDP signature and checksum must both be correct */ - Status = AcpiTbValidateRsdp (ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover)); + Status = AcpiTbValidateRsdp ( + ACPI_CAST_PTR (ACPI_TABLE_RSDP, MemRover)); if (ACPI_SUCCESS (Status)) { /* Sig and checksum valid, we have found a real RSDP */ diff --git a/src/acpica/source/components/utilities/utaddress.c b/src/acpica/source/components/utilities/utaddress.c index 9d65019..18f39bd 100644 --- a/src/acpica/source/components/utilities/utaddress.c +++ b/src/acpica/source/components/utilities/utaddress.c @@ -335,7 +335,7 @@ AcpiUtCheckAddressRange ( OverlapCount++; if (Warn) /* Optional warning message */ { - Pathname = AcpiNsGetExternalPathname (RangeInfo->RegionNode); + Pathname = AcpiNsGetNormalizedPathname (RangeInfo->RegionNode, TRUE); ACPI_WARNING ((AE_INFO, "%s range 0x%8.8X%8.8X-0x%8.8X%8.8X conflicts with OpRegion 0x%8.8X%8.8X-0x%8.8X%8.8X (%s)", diff --git a/src/acpica/source/components/utilities/utalloc.c b/src/acpica/source/components/utilities/utalloc.c index 62c3e28..22ebf3e 100644 --- a/src/acpica/source/components/utilities/utalloc.c +++ b/src/acpica/source/components/utilities/utalloc.c @@ -182,35 +182,35 @@ AcpiUtCreateCaches ( /* Object Caches, for frequently used objects */ Status = AcpiOsCreateCache ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE), - ACPI_MAX_NAMESPACE_CACHE_DEPTH, &AcpiGbl_NamespaceCache); + ACPI_MAX_NAMESPACE_CACHE_DEPTH, &AcpiGbl_NamespaceCache); if (ACPI_FAILURE (Status)) { return (Status); } Status = AcpiOsCreateCache ("Acpi-State", sizeof (ACPI_GENERIC_STATE), - ACPI_MAX_STATE_CACHE_DEPTH, &AcpiGbl_StateCache); + ACPI_MAX_STATE_CACHE_DEPTH, &AcpiGbl_StateCache); if (ACPI_FAILURE (Status)) { return (Status); } Status = AcpiOsCreateCache ("Acpi-Parse", sizeof (ACPI_PARSE_OBJ_COMMON), - ACPI_MAX_PARSE_CACHE_DEPTH, &AcpiGbl_PsNodeCache); + ACPI_MAX_PARSE_CACHE_DEPTH, &AcpiGbl_PsNodeCache); if (ACPI_FAILURE (Status)) { return (Status); } Status = AcpiOsCreateCache ("Acpi-ParseExt", sizeof (ACPI_PARSE_OBJ_NAMED), - ACPI_MAX_EXTPARSE_CACHE_DEPTH, &AcpiGbl_PsNodeExtCache); + ACPI_MAX_EXTPARSE_CACHE_DEPTH, &AcpiGbl_PsNodeExtCache); if (ACPI_FAILURE (Status)) { return (Status); } Status = AcpiOsCreateCache ("Acpi-Operand", sizeof (ACPI_OPERAND_OBJECT), - ACPI_MAX_OBJECT_CACHE_DEPTH, &AcpiGbl_OperandCache); + ACPI_MAX_OBJECT_CACHE_DEPTH, &AcpiGbl_OperandCache); if (ACPI_FAILURE (Status)) { return (Status); @@ -222,14 +222,14 @@ AcpiUtCreateCaches ( /* Memory allocation lists */ Status = AcpiUtCreateList ("Acpi-Global", 0, - &AcpiGbl_GlobalList); + &AcpiGbl_GlobalList); if (ACPI_FAILURE (Status)) { return (Status); } Status = AcpiUtCreateList ("Acpi-Namespace", sizeof (ACPI_NAMESPACE_NODE), - &AcpiGbl_NsNodeList); + &AcpiGbl_NsNodeList); if (ACPI_FAILURE (Status)) { return (Status); @@ -259,6 +259,7 @@ AcpiUtDeleteCaches ( #ifdef ACPI_DBG_TRACK_ALLOCATIONS char Buffer[7]; + if (AcpiGbl_DisplayFinalMemStats) { strcpy (Buffer, "MEMORY"); diff --git a/src/acpica/source/components/utilities/utcache.c b/src/acpica/source/components/utilities/utcache.c index 5cf5250..b0cf6b0 100644 --- a/src/acpica/source/components/utilities/utcache.c +++ b/src/acpica/source/components/utilities/utcache.c @@ -165,9 +165,9 @@ AcpiOsCreateCache ( /* Populate the cache object and return it */ memset (Cache, 0, sizeof (ACPI_MEMORY_LIST)); - Cache->ListName = CacheName; + Cache->ListName = CacheName; Cache->ObjectSize = ObjectSize; - Cache->MaxDepth = MaxDepth; + Cache->MaxDepth = MaxDepth; *ReturnCache = Cache; return (AE_OK); diff --git a/src/acpica/source/components/utilities/utcopy.c b/src/acpica/source/components/utilities/utcopy.c index bc77787..5ba4a22 100644 --- a/src/acpica/source/components/utilities/utcopy.c +++ b/src/acpica/source/components/utilities/utcopy.c @@ -235,7 +235,7 @@ AcpiUtCopyIsimpleToEsimple ( ExternalObject->String.Pointer = (char *) DataSpace; ExternalObject->String.Length = InternalObject->String.Length; *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD ( - (ACPI_SIZE) InternalObject->String.Length + 1); + (ACPI_SIZE) InternalObject->String.Length + 1); memcpy ((void *) DataSpace, (void *) InternalObject->String.Pointer, @@ -247,7 +247,7 @@ AcpiUtCopyIsimpleToEsimple ( ExternalObject->Buffer.Pointer = DataSpace; ExternalObject->Buffer.Length = InternalObject->Buffer.Length; *BufferSpaceUsed = ACPI_ROUND_UP_TO_NATIVE_WORD ( - InternalObject->String.Length); + InternalObject->String.Length); memcpy ((void *) DataSpace, (void *) InternalObject->Buffer.Pointer, @@ -347,9 +347,9 @@ AcpiUtCopyIelementToEelement ( ACPI_FUNCTION_ENTRY (); - ThisIndex = State->Pkg.Index; - TargetObject = (ACPI_OBJECT *) - &((ACPI_OBJECT *)(State->Pkg.DestObject))->Package.Elements[ThisIndex]; + ThisIndex = State->Pkg.Index; + TargetObject = (ACPI_OBJECT *) &((ACPI_OBJECT *) + (State->Pkg.DestObject))->Package.Elements[ThisIndex]; switch (ObjectType) { @@ -358,7 +358,7 @@ AcpiUtCopyIelementToEelement ( * This is a simple or null object */ Status = AcpiUtCopyIsimpleToEsimple (SourceObject, - TargetObject, Info->FreeSpace, &ObjectSpace); + TargetObject, Info->FreeSpace, &ObjectSpace); if (ACPI_FAILURE (Status)) { return (Status); @@ -369,9 +369,9 @@ AcpiUtCopyIelementToEelement ( /* * Build the package object */ - TargetObject->Type = ACPI_TYPE_PACKAGE; - TargetObject->Package.Count = SourceObject->Package.Count; - TargetObject->Package.Elements = + TargetObject->Type = ACPI_TYPE_PACKAGE; + TargetObject->Package.Count = SourceObject->Package.Count; + TargetObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, Info->FreeSpace); /* @@ -384,8 +384,8 @@ AcpiUtCopyIelementToEelement ( * update the buffer length counter */ ObjectSpace = ACPI_ROUND_UP_TO_NATIVE_WORD ( - (ACPI_SIZE) TargetObject->Package.Count * - sizeof (ACPI_OBJECT)); + (ACPI_SIZE) TargetObject->Package.Count * + sizeof (ACPI_OBJECT)); break; default: @@ -393,8 +393,8 @@ AcpiUtCopyIelementToEelement ( return (AE_BAD_PARAMETER); } - Info->FreeSpace += ObjectSpace; - Info->Length += ObjectSpace; + Info->FreeSpace += ObjectSpace; + Info->Length += ObjectSpace; return (Status); } @@ -440,28 +440,28 @@ AcpiUtCopyIpackageToEpackage ( /* * Free space begins right after the first package */ - Info.Length = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); - Info.FreeSpace = Buffer + ACPI_ROUND_UP_TO_NATIVE_WORD ( - sizeof (ACPI_OBJECT)); + Info.Length = ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); + Info.FreeSpace = Buffer + + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); Info.ObjectSpace = 0; Info.NumPackages = 1; - ExternalObject->Type = InternalObject->Common.Type; - ExternalObject->Package.Count = InternalObject->Package.Count; - ExternalObject->Package.Elements = ACPI_CAST_PTR (ACPI_OBJECT, - Info.FreeSpace); + ExternalObject->Type = InternalObject->Common.Type; + ExternalObject->Package.Count = InternalObject->Package.Count; + ExternalObject->Package.Elements = + ACPI_CAST_PTR (ACPI_OBJECT, Info.FreeSpace); /* * Leave room for an array of ACPI_OBJECTS in the buffer * and move the free space past it */ - Info.Length += (ACPI_SIZE) ExternalObject->Package.Count * - ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); + Info.Length += (ACPI_SIZE) ExternalObject->Package.Count * + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); Info.FreeSpace += ExternalObject->Package.Count * - ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)); Status = AcpiUtWalkPackageTree (InternalObject, ExternalObject, - AcpiUtCopyIelementToEelement, &Info); + AcpiUtCopyIelementToEelement, &Info); *SpaceUsed = Info.Length; return_ACPI_STATUS (Status); @@ -500,7 +500,7 @@ AcpiUtCopyIobjectToEobject ( * nested packages) */ Status = AcpiUtCopyIpackageToEpackage (InternalObject, - RetBuffer->Pointer, &RetBuffer->Length); + RetBuffer->Pointer, &RetBuffer->Length); } else { @@ -508,10 +508,10 @@ AcpiUtCopyIobjectToEobject ( * Build a simple object (no nested objects) */ Status = AcpiUtCopyIsimpleToEsimple (InternalObject, - ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer), - ACPI_ADD_PTR (UINT8, RetBuffer->Pointer, - ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))), - &RetBuffer->Length); + ACPI_CAST_PTR (ACPI_OBJECT, RetBuffer->Pointer), + ACPI_ADD_PTR (UINT8, RetBuffer->Pointer, + ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT))), + &RetBuffer->Length); /* * build simple does not include the object size in the length * so we add it in here @@ -561,7 +561,7 @@ AcpiUtCopyEsimpleToIsimple ( case ACPI_TYPE_LOCAL_REFERENCE: InternalObject = AcpiUtCreateInternalObject ( - (UINT8) ExternalObject->Type); + (UINT8) ExternalObject->Type); if (!InternalObject) { return_ACPI_STATUS (AE_NO_MEMORY); @@ -601,10 +601,10 @@ AcpiUtCopyEsimpleToIsimple ( } memcpy (InternalObject->String.Pointer, - ExternalObject->String.Pointer, - ExternalObject->String.Length); + ExternalObject->String.Pointer, + ExternalObject->String.Length); - InternalObject->String.Length = ExternalObject->String.Length; + InternalObject->String.Length = ExternalObject->String.Length; break; case ACPI_TYPE_BUFFER: @@ -617,10 +617,10 @@ AcpiUtCopyEsimpleToIsimple ( } memcpy (InternalObject->Buffer.Pointer, - ExternalObject->Buffer.Pointer, - ExternalObject->Buffer.Length); + ExternalObject->Buffer.Pointer, + ExternalObject->Buffer.Length); - InternalObject->Buffer.Length = ExternalObject->Buffer.Length; + InternalObject->Buffer.Length = ExternalObject->Buffer.Length; /* Mark buffer data valid */ @@ -629,7 +629,7 @@ AcpiUtCopyEsimpleToIsimple ( case ACPI_TYPE_INTEGER: - InternalObject->Integer.Value = ExternalObject->Integer.Value; + InternalObject->Integer.Value = ExternalObject->Integer.Value; break; case ACPI_TYPE_LOCAL_REFERENCE: @@ -687,7 +687,8 @@ AcpiUtCopyEpackageToIpackage ( /* Create the package object */ - PackageObject = AcpiUtCreatePackageObject (ExternalObject->Package.Count); + PackageObject = AcpiUtCreatePackageObject ( + ExternalObject->Package.Count); if (!PackageObject) { return_ACPI_STATUS (AE_NO_MEMORY); @@ -696,14 +697,14 @@ AcpiUtCopyEpackageToIpackage ( PackageElements = PackageObject->Package.Elements; /* - * Recursive implementation. Probably ok, since nested external packages - * as parameters should be very rare. + * Recursive implementation. Probably ok, since nested external + * packages as parameters should be very rare. */ for (i = 0; i < ExternalObject->Package.Count; i++) { Status = AcpiUtCopyEobjectToIobject ( - &ExternalObject->Package.Elements[i], - &PackageElements[i]); + &ExternalObject->Package.Elements[i], + &PackageElements[i]); if (ACPI_FAILURE (Status)) { /* Truncate package and delete it */ @@ -750,14 +751,16 @@ AcpiUtCopyEobjectToIobject ( if (ExternalObject->Type == ACPI_TYPE_PACKAGE) { - Status = AcpiUtCopyEpackageToIpackage (ExternalObject, InternalObject); + Status = AcpiUtCopyEpackageToIpackage ( + ExternalObject, InternalObject); } else { /* * Build a simple object (no nested objects) */ - Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, InternalObject); + Status = AcpiUtCopyEsimpleToIsimple (ExternalObject, + InternalObject); } return_ACPI_STATUS (Status); @@ -908,7 +911,7 @@ AcpiUtCopySimpleObject ( case ACPI_TYPE_EVENT: Status = AcpiOsCreateSemaphore (ACPI_NO_UNIT_LIMIT, 0, - &DestDesc->Event.OsSemaphore); + &DestDesc->Event.OsSemaphore); if (ACPI_FAILURE (Status)) { return (Status); @@ -954,9 +957,9 @@ AcpiUtCopyIelementToIelement ( ACPI_FUNCTION_ENTRY (); - ThisIndex = State->Pkg.Index; + ThisIndex = State->Pkg.Index; ThisTargetPtr = (ACPI_OPERAND_OBJECT **) - &State->Pkg.DestObject->Package.Elements[ThisIndex]; + &State->Pkg.DestObject->Package.Elements[ThisIndex]; switch (ObjectType) { @@ -970,7 +973,7 @@ AcpiUtCopyIelementToIelement ( * This is a simple object, just copy it */ TargetObject = AcpiUtCreateInternalObject ( - SourceObject->Common.Type); + SourceObject->Common.Type); if (!TargetObject) { return (AE_NO_MEMORY); @@ -997,7 +1000,8 @@ AcpiUtCopyIelementToIelement ( * This object is a package - go down another nesting level * Create and build the package object */ - TargetObject = AcpiUtCreatePackageObject (SourceObject->Package.Count); + TargetObject = AcpiUtCreatePackageObject ( + SourceObject->Package.Count); if (!TargetObject) { return (AE_NO_MEMORY); @@ -1054,16 +1058,16 @@ AcpiUtCopyIpackageToIpackage ( ACPI_FUNCTION_TRACE (UtCopyIpackageToIpackage); - DestObj->Common.Type = SourceObj->Common.Type; - DestObj->Common.Flags = SourceObj->Common.Flags; - DestObj->Package.Count = SourceObj->Package.Count; + DestObj->Common.Type = SourceObj->Common.Type; + DestObj->Common.Flags = SourceObj->Common.Flags; + DestObj->Package.Count = SourceObj->Package.Count; /* * Create the object array and walk the source package tree */ DestObj->Package.Elements = ACPI_ALLOCATE_ZEROED ( - ((ACPI_SIZE) SourceObj->Package.Count + 1) * - sizeof (void *)); + ((ACPI_SIZE) SourceObj->Package.Count + 1) * + sizeof (void *)); if (!DestObj->Package.Elements) { ACPI_ERROR ((AE_INFO, "Package allocation failure")); @@ -1075,7 +1079,7 @@ AcpiUtCopyIpackageToIpackage ( * This handles nested packages of arbitrary depth. */ Status = AcpiUtWalkPackageTree (SourceObj, DestObj, - AcpiUtCopyIelementToIelement, WalkState); + AcpiUtCopyIelementToIelement, WalkState); if (ACPI_FAILURE (Status)) { /* On failure, delete the destination package object */ @@ -1125,8 +1129,8 @@ AcpiUtCopyIobjectToIobject ( if (SourceDesc->Common.Type == ACPI_TYPE_PACKAGE) { - Status = AcpiUtCopyIpackageToIpackage (SourceDesc, *DestDesc, - WalkState); + Status = AcpiUtCopyIpackageToIpackage ( + SourceDesc, *DestDesc, WalkState); } else { @@ -1137,7 +1141,7 @@ AcpiUtCopyIobjectToIobject ( if (ACPI_FAILURE (Status)) { - AcpiUtRemoveReference(*DestDesc); + AcpiUtRemoveReference (*DestDesc); } return_ACPI_STATUS (Status); diff --git a/src/acpica/source/components/utilities/utdecode.c b/src/acpica/source/components/utilities/utdecode.c index 99468d5..3d927f5 100644 --- a/src/acpica/source/components/utilities/utdecode.c +++ b/src/acpica/source/components/utilities/utdecode.c @@ -191,7 +191,7 @@ const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] = }; -char * +const char * AcpiUtGetRegionName ( UINT8 SpaceId) { @@ -213,7 +213,7 @@ AcpiUtGetRegionName ( return ("InvalidSpaceId"); } - return (ACPI_CAST_PTR (char, AcpiGbl_RegionTypes[SpaceId])); + return (AcpiGbl_RegionTypes[SpaceId]); } @@ -241,7 +241,7 @@ static const char *AcpiGbl_EventTypes[ACPI_NUM_FIXED_EVENTS] = }; -char * +const char * AcpiUtGetEventName ( UINT32 EventId) { @@ -251,7 +251,7 @@ AcpiUtGetEventName ( return ("InvalidEventID"); } - return (ACPI_CAST_PTR (char, AcpiGbl_EventTypes[EventId])); + return (AcpiGbl_EventTypes[EventId]); } @@ -273,7 +273,8 @@ AcpiUtGetEventName ( * * The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching; * when stored in a table it really means that we have thus far seen no - * evidence to indicate what type is actually going to be stored for this entry. + * evidence to indicate what type is actually going to be stored for this + & entry. */ static const char AcpiGbl_BadType[] = "UNDEFINED"; @@ -315,21 +316,21 @@ static const char *AcpiGbl_NsTypeNames[] = }; -char * +const char * AcpiUtGetTypeName ( ACPI_OBJECT_TYPE Type) { if (Type > ACPI_TYPE_INVALID) { - return (ACPI_CAST_PTR (char, AcpiGbl_BadType)); + return (AcpiGbl_BadType); } - return (ACPI_CAST_PTR (char, AcpiGbl_NsTypeNames[Type])); + return (AcpiGbl_NsTypeNames[Type]); } -char * +const char * AcpiUtGetObjectTypeName ( ACPI_OPERAND_OBJECT *ObjDesc) { @@ -371,7 +372,7 @@ AcpiUtGetObjectTypeName ( * ******************************************************************************/ -char * +const char * AcpiUtGetNodeName ( void *Object) { @@ -447,7 +448,7 @@ static const char *AcpiGbl_DescTypeNames[] = }; -char * +const char * AcpiUtGetDescriptorName ( void *Object) { @@ -462,9 +463,7 @@ AcpiUtGetDescriptorName ( return ("Not a Descriptor"); } - return (ACPI_CAST_PTR (char, - AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)])); - + return (AcpiGbl_DescTypeNames[ACPI_GET_DESCRIPTOR_TYPE (Object)]); } @@ -541,7 +540,7 @@ AcpiUtGetReferenceName ( /* Names for internal mutex objects, used for debug output */ -static char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = +static const char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = { "ACPI_MTX_Interpreter", "ACPI_MTX_Namespace", @@ -551,7 +550,7 @@ static char *AcpiGbl_MutexNames[ACPI_NUM_MUTEX] = "ACPI_MTX_Memory", }; -char * +const char * AcpiUtGetMutexName ( UINT32 MutexId) { diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c index 8a55c8e..4fa093c 100644 --- a/src/acpica/source/components/utilities/utdelete.c +++ b/src/acpica/source/components/utilities/utdelete.c @@ -292,6 +292,7 @@ AcpiUtDeleteInternalObj ( AcpiUtDeleteObjectDesc (Object->Method.Mutex); Object->Method.Mutex = NULL; } + if (Object->Method.Node) { Object->Method.Node = NULL; @@ -625,8 +626,8 @@ AcpiUtUpdateObjectReference ( } /* - * All sub-objects must have their reference count incremented also. - * Different object types have different subobjects. + * All sub-objects must have their reference count incremented + * also. Different object types have different subobjects. */ switch (Object->Common.Type) { @@ -686,7 +687,7 @@ AcpiUtUpdateObjectReference ( * for later processing (this eliminates recursion.) */ Status = AcpiUtCreateUpdateStateAndPush ( - NextObject, Action, &StateList); + NextObject, Action, &StateList); if (ACPI_FAILURE (Status)) { goto ErrorExit; @@ -711,7 +712,7 @@ AcpiUtUpdateObjectReference ( NextObject = Object->BankField.BankObj; Status = AcpiUtCreateUpdateStateAndPush ( - Object->BankField.RegionObj, Action, &StateList); + Object->BankField.RegionObj, Action, &StateList); if (ACPI_FAILURE (Status)) { goto ErrorExit; @@ -722,7 +723,7 @@ AcpiUtUpdateObjectReference ( NextObject = Object->IndexField.IndexObj; Status = AcpiUtCreateUpdateStateAndPush ( - Object->IndexField.DataObj, Action, &StateList); + Object->IndexField.DataObj, Action, &StateList); if (ACPI_FAILURE (Status)) { goto ErrorExit; diff --git a/src/acpica/source/components/utilities/uterror.c b/src/acpica/source/components/utilities/uterror.c index 52b9ae0..cd8b913 100644 --- a/src/acpica/source/components/utilities/uterror.c +++ b/src/acpica/source/components/utilities/uterror.c @@ -316,8 +316,8 @@ AcpiUtNamespaceError ( { /* Convert path to external format */ - Status = AcpiNsExternalizeName (ACPI_UINT32_MAX, - InternalName, NULL, &Name); + Status = AcpiNsExternalizeName ( + ACPI_UINT32_MAX, InternalName, NULL, &Name); /* Print target name */ @@ -379,8 +379,8 @@ AcpiUtMethodError ( if (Path) { - Status = AcpiNsGetNode (PrefixNode, Path, ACPI_NS_NO_UPSEARCH, - &Node); + Status = AcpiNsGetNode (PrefixNode, Path, + ACPI_NS_NO_UPSEARCH, &Node); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("[Could not get node by pathname]"); diff --git a/src/acpica/source/components/utilities/uteval.c b/src/acpica/source/components/utilities/uteval.c index dd754c0..81c155c 100644 --- a/src/acpica/source/components/utilities/uteval.c +++ b/src/acpica/source/components/utilities/uteval.c @@ -303,7 +303,7 @@ AcpiUtEvaluateNumericObject ( Status = AcpiUtEvaluateObject (DeviceNode, ObjectName, - ACPI_BTYPE_INTEGER, &ObjDesc); + ACPI_BTYPE_INTEGER, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -350,7 +350,7 @@ AcpiUtExecute_STA ( Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__STA, - ACPI_BTYPE_INTEGER, &ObjDesc); + ACPI_BTYPE_INTEGER, &ObjDesc); if (ACPI_FAILURE (Status)) { if (AE_NOT_FOUND == Status) @@ -423,8 +423,8 @@ AcpiUtExecutePowerMethods ( * return type is an Integer. */ Status = AcpiUtEvaluateObject (DeviceNode, - ACPI_CAST_PTR (char, MethodNames[i]), - ACPI_BTYPE_INTEGER, &ObjDesc); + ACPI_CAST_PTR (char, MethodNames[i]), + ACPI_BTYPE_INTEGER, &ObjDesc); if (ACPI_SUCCESS (Status)) { OutValues[i] = (UINT8) ObjDesc->Integer.Value; diff --git a/src/acpica/source/components/utilities/uthex.c b/src/acpica/source/components/utilities/uthex.c index c652f6a..3a32003 100644 --- a/src/acpica/source/components/utilities/uthex.c +++ b/src/acpica/source/components/utilities/uthex.c @@ -122,7 +122,7 @@ /* Hex to ASCII conversion table */ -static char AcpiGbl_HexToAscii[] = +static const char AcpiGbl_HexToAscii[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' }; diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c index 3bb12f0..6d9a59f 100644 --- a/src/acpica/source/components/utilities/utids.c +++ b/src/acpica/source/components/utilities/utids.c @@ -155,7 +155,7 @@ AcpiUtExecute_HID ( Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__HID, - ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); + ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -174,7 +174,8 @@ AcpiUtExecute_HID ( /* Allocate a buffer for the HID */ - Hid = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); + Hid = ACPI_ALLOCATE_ZEROED ( + sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); if (!Hid) { Status = AE_NO_MEMORY; @@ -211,77 +212,6 @@ Cleanup: /******************************************************************************* * - * FUNCTION: AcpiUtExecute_SUB - * - * PARAMETERS: DeviceNode - Node for the device - * ReturnId - Where the _SUB is returned - * - * RETURN: Status - * - * DESCRIPTION: Executes the _SUB control method that returns the subsystem - * ID of the device. The _SUB value is always a string containing - * either a valid PNP or ACPI ID. - * - * NOTE: Internal function, no parameter validation - * - ******************************************************************************/ - -ACPI_STATUS -AcpiUtExecute_SUB ( - ACPI_NAMESPACE_NODE *DeviceNode, - ACPI_PNP_DEVICE_ID **ReturnId) -{ - ACPI_OPERAND_OBJECT *ObjDesc; - ACPI_PNP_DEVICE_ID *Sub; - UINT32 Length; - ACPI_STATUS Status; - - - ACPI_FUNCTION_TRACE (UtExecute_SUB); - - - Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__SUB, - ACPI_BTYPE_STRING, &ObjDesc); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - - /* Get the size of the String to be returned, includes null terminator */ - - Length = ObjDesc->String.Length + 1; - - /* Allocate a buffer for the SUB */ - - Sub = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); - if (!Sub) - { - Status = AE_NO_MEMORY; - goto Cleanup; - } - - /* Area for the string starts after PNP_DEVICE_ID struct */ - - Sub->String = ACPI_ADD_PTR (char, Sub, sizeof (ACPI_PNP_DEVICE_ID)); - - /* Simply copy existing string */ - - strcpy (Sub->String, ObjDesc->String.Pointer); - Sub->Length = Length; - *ReturnId = Sub; - - -Cleanup: - - /* On exit, we must delete the return object */ - - AcpiUtRemoveReference (ObjDesc); - return_ACPI_STATUS (Status); -} - - -/******************************************************************************* - * * FUNCTION: AcpiUtExecute_UID * * PARAMETERS: DeviceNode - Node for the device @@ -313,7 +243,7 @@ AcpiUtExecute_UID ( Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__UID, - ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); + ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -332,7 +262,8 @@ AcpiUtExecute_UID ( /* Allocate a buffer for the UID */ - Uid = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); + Uid = ACPI_ALLOCATE_ZEROED ( + sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); if (!Uid) { Status = AE_NO_MEMORY; @@ -413,8 +344,8 @@ AcpiUtExecute_CID ( /* Evaluate the _CID method for this device */ Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CID, - ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE, - &ObjDesc); + ACPI_BTYPE_INTEGER | ACPI_BTYPE_STRING | ACPI_BTYPE_PACKAGE, + &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -491,7 +422,8 @@ AcpiUtExecute_CID ( { /* Convert the Integer (EISAID) CID to a string */ - AcpiExEisaIdToString (NextIdString, CidObjects[i]->Integer.Value); + AcpiExEisaIdToString ( + NextIdString, CidObjects[i]->Integer.Value); Length = ACPI_EISAID_STRING_SIZE; } else /* ACPI_TYPE_STRING */ @@ -560,7 +492,7 @@ AcpiUtExecute_CLS ( Status = AcpiUtEvaluateObject (DeviceNode, METHOD_NAME__CLS, - ACPI_BTYPE_PACKAGE, &ObjDesc); + ACPI_BTYPE_PACKAGE, &ObjDesc); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -590,7 +522,8 @@ AcpiUtExecute_CLS ( /* Allocate a buffer for the CLS */ - Cls = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); + Cls = ACPI_ALLOCATE_ZEROED ( + sizeof (ACPI_PNP_DEVICE_ID) + (ACPI_SIZE) Length); if (!Cls) { Status = AE_NO_MEMORY; diff --git a/src/acpica/source/components/utilities/utinit.c b/src/acpica/source/components/utilities/utinit.c index ed090f1..ee14368 100644 --- a/src/acpica/source/components/utilities/utinit.c +++ b/src/acpica/source/components/utilities/utinit.c @@ -334,8 +334,6 @@ AcpiUtInitGlobals ( AcpiGbl_DisableMemTracking = FALSE; #endif - ACPI_DEBUGGER_EXEC (AcpiGbl_DbTerminateThreads = FALSE); - return_ACPI_STATUS (AE_OK); } @@ -384,6 +382,20 @@ AcpiUtSubsystemShutdown ( ACPI_FUNCTION_TRACE (UtSubsystemShutdown); + /* Just exit if subsystem is already shutdown */ + + if (AcpiGbl_Shutdown) + { + ACPI_ERROR ((AE_INFO, "ACPI Subsystem is already terminated")); + return_VOID; + } + + /* Subsystem appears active, go ahead and shut it down */ + + AcpiGbl_Shutdown = TRUE; + AcpiGbl_StartupFlags = 0; + ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem\n")); + #ifndef ACPI_ASL_COMPILER /* Close the AcpiEvent Handling */ diff --git a/src/acpica/source/components/utilities/utmath.c b/src/acpica/source/components/utilities/utmath.c index dafba6d..b8d0422 100644 --- a/src/acpica/source/components/utilities/utmath.c +++ b/src/acpica/source/components/utilities/utmath.c @@ -194,9 +194,10 @@ AcpiUtShortDivide ( * and is generated by the second divide. */ ACPI_DIV_64_BY_32 (0, DividendOvl.Part.Hi, Divisor, - Quotient.Part.Hi, Remainder32); + Quotient.Part.Hi, Remainder32); + ACPI_DIV_64_BY_32 (Remainder32, DividendOvl.Part.Lo, Divisor, - Quotient.Part.Lo, Remainder32); + Quotient.Part.Lo, Remainder32); /* Return only what was requested */ @@ -272,9 +273,10 @@ AcpiUtDivide ( * and is generated by the second divide. */ ACPI_DIV_64_BY_32 (0, Dividend.Part.Hi, Divisor.Part.Lo, - Quotient.Part.Hi, Partial1); + Quotient.Part.Hi, Partial1); + ACPI_DIV_64_BY_32 (Partial1, Dividend.Part.Lo, Divisor.Part.Lo, - Quotient.Part.Lo, Remainder.Part.Lo); + Quotient.Part.Lo, Remainder.Part.Lo); } else @@ -291,25 +293,24 @@ AcpiUtDivide ( do { - ACPI_SHIFT_RIGHT_64 (NormalizedDivisor.Part.Hi, - NormalizedDivisor.Part.Lo); - ACPI_SHIFT_RIGHT_64 (NormalizedDividend.Part.Hi, - NormalizedDividend.Part.Lo); + ACPI_SHIFT_RIGHT_64 ( + NormalizedDivisor.Part.Hi, NormalizedDivisor.Part.Lo); + ACPI_SHIFT_RIGHT_64 ( + NormalizedDividend.Part.Hi, NormalizedDividend.Part.Lo); } while (NormalizedDivisor.Part.Hi != 0); /* Partial divide */ - ACPI_DIV_64_BY_32 (NormalizedDividend.Part.Hi, - NormalizedDividend.Part.Lo, - NormalizedDivisor.Part.Lo, - Quotient.Part.Lo, Partial1); + ACPI_DIV_64_BY_32 ( + NormalizedDividend.Part.Hi, NormalizedDividend.Part.Lo, + NormalizedDivisor.Part.Lo, Quotient.Part.Lo, Partial1); /* - * The quotient is always 32 bits, and simply requires adjustment. - * The 64-bit remainder must be generated. + * The quotient is always 32 bits, and simply requires + * adjustment. The 64-bit remainder must be generated. */ - Partial1 = Quotient.Part.Lo * Divisor.Part.Hi; + Partial1 = Quotient.Part.Lo * Divisor.Part.Hi; Partial2.Full = (UINT64) Quotient.Part.Lo * Divisor.Part.Lo; Partial3.Full = (UINT64) Partial2.Part.Hi + Partial1; @@ -335,7 +336,7 @@ AcpiUtDivide ( } } - Remainder.Full = Remainder.Full - Dividend.Full; + Remainder.Full = Remainder.Full - Dividend.Full; Remainder.Part.Hi = (UINT32) -((INT32) Remainder.Part.Hi); Remainder.Part.Lo = (UINT32) -((INT32) Remainder.Part.Lo); diff --git a/src/acpica/source/components/utilities/utmisc.c b/src/acpica/source/components/utilities/utmisc.c index ecf22db..4a248d7 100644 --- a/src/acpica/source/components/utilities/utmisc.c +++ b/src/acpica/source/components/utilities/utmisc.c @@ -144,10 +144,10 @@ AcpiUtIsPciRootBridge ( * ACPI 3.0+: check for a PCI Express root also. */ if (!(strcmp (Id, - PCI_ROOT_HID_STRING)) || + PCI_ROOT_HID_STRING)) || !(strcmp (Id, - PCI_EXPRESS_ROOT_HID_STRING))) + PCI_EXPRESS_ROOT_HID_STRING))) { return (TRUE); } @@ -257,17 +257,17 @@ AcpiUtSetIntegerWidth ( { /* 32-bit case */ - AcpiGbl_IntegerBitWidth = 32; + AcpiGbl_IntegerBitWidth = 32; AcpiGbl_IntegerNybbleWidth = 8; - AcpiGbl_IntegerByteWidth = 4; + AcpiGbl_IntegerByteWidth = 4; } else { /* 64-bit case (ACPI 2.0+) */ - AcpiGbl_IntegerBitWidth = 64; + AcpiGbl_IntegerBitWidth = 64; AcpiGbl_IntegerNybbleWidth = 16; - AcpiGbl_IntegerByteWidth = 8; + AcpiGbl_IntegerByteWidth = 8; } } @@ -358,9 +358,9 @@ AcpiUtWalkPackageTree ( { /* Get one element of the package */ - ThisIndex = State->Pkg.Index; + ThisIndex = State->Pkg.Index; ThisSourceObj = (ACPI_OPERAND_OBJECT *) - State->Pkg.SourceObject->Package.Elements[ThisIndex]; + State->Pkg.SourceObject->Package.Elements[ThisIndex]; /* * Check for: @@ -371,7 +371,8 @@ AcpiUtWalkPackageTree ( * case below. */ if ((!ThisSourceObj) || - (ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != ACPI_DESC_TYPE_OPERAND) || + (ACPI_GET_DESCRIPTOR_TYPE (ThisSourceObj) != + ACPI_DESC_TYPE_OPERAND) || (ThisSourceObj->Common.Type != ACPI_TYPE_PACKAGE)) { Status = WalkCallback (ACPI_COPY_TYPE_SIMPLE, ThisSourceObj, @@ -382,7 +383,8 @@ AcpiUtWalkPackageTree ( } State->Pkg.Index++; - while (State->Pkg.Index >= State->Pkg.SourceObject->Package.Count) + while (State->Pkg.Index >= + State->Pkg.SourceObject->Package.Count) { /* * We've handled all of the objects at this level, This means @@ -417,8 +419,8 @@ AcpiUtWalkPackageTree ( { /* This is a subobject of type package */ - Status = WalkCallback (ACPI_COPY_TYPE_PACKAGE, ThisSourceObj, - State, Context); + Status = WalkCallback ( + ACPI_COPY_TYPE_PACKAGE, ThisSourceObj, State, Context); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -429,8 +431,8 @@ AcpiUtWalkPackageTree ( * The callback above returned a new target package object. */ AcpiUtPushGenericState (&StateList, State); - State = AcpiUtCreatePkgState (ThisSourceObj, - State->Pkg.ThisTargetObj, 0); + State = AcpiUtCreatePkgState ( + ThisSourceObj, State->Pkg.ThisTargetObj, 0); if (!State) { /* Free any stacked Update State objects */ diff --git a/src/acpica/source/components/utilities/utmutex.c b/src/acpica/source/components/utilities/utmutex.c index 0fa4c36..b07adea 100644 --- a/src/acpica/source/components/utilities/utmutex.c +++ b/src/acpica/source/components/utilities/utmutex.c @@ -401,11 +401,12 @@ AcpiUtAcquireMutex ( "Thread %u attempting to acquire Mutex [%s]\n", (UINT32) ThisThreadId, AcpiUtGetMutexName (MutexId))); - Status = AcpiOsAcquireMutex (AcpiGbl_MutexInfo[MutexId].Mutex, - ACPI_WAIT_FOREVER); + Status = AcpiOsAcquireMutex ( + AcpiGbl_MutexInfo[MutexId].Mutex, ACPI_WAIT_FOREVER); if (ACPI_SUCCESS (Status)) { - ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, "Thread %u acquired Mutex [%s]\n", + ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX, + "Thread %u acquired Mutex [%s]\n", (UINT32) ThisThreadId, AcpiUtGetMutexName (MutexId))); AcpiGbl_MutexInfo[MutexId].UseCount++; diff --git a/src/acpica/source/components/utilities/utnonansi.c b/src/acpica/source/components/utilities/utnonansi.c index 01a4361..b69c494 100644 --- a/src/acpica/source/components/utilities/utnonansi.c +++ b/src/acpica/source/components/utilities/utnonansi.c @@ -404,8 +404,8 @@ AcpiUtStrtoul64 ( /* Divide the digit into the correct position */ - (void) AcpiUtShortDivide ((Dividend - (UINT64) ThisDigit), - Base, &Quotient, NULL); + (void) AcpiUtShortDivide ( + (Dividend - (UINT64) ThisDigit), Base, &Quotient, NULL); if (ReturnValue > Quotient) { diff --git a/src/acpica/source/components/utilities/utobject.c b/src/acpica/source/components/utilities/utobject.c index fb4efaf..8116b35 100644 --- a/src/acpica/source/components/utilities/utobject.c +++ b/src/acpica/source/components/utilities/utobject.c @@ -179,7 +179,8 @@ AcpiUtCreateInternalObjectDbg ( /* Allocate the raw object descriptor */ - Object = AcpiUtAllocateObjectDescDbg (ModuleName, LineNumber, ComponentId); + Object = AcpiUtAllocateObjectDescDbg ( + ModuleName, LineNumber, ComponentId); if (!Object) { return_PTR (NULL); @@ -193,8 +194,8 @@ AcpiUtCreateInternalObjectDbg ( /* These types require a secondary object */ - SecondObject = AcpiUtAllocateObjectDescDbg (ModuleName, - LineNumber, ComponentId); + SecondObject = AcpiUtAllocateObjectDescDbg ( + ModuleName, LineNumber, ComponentId); if (!SecondObject) { AcpiUtDeleteObjectDesc (Object); @@ -265,7 +266,7 @@ AcpiUtCreatePackageObject ( * terminated. */ PackageElements = ACPI_ALLOCATE_ZEROED ( - ((ACPI_SIZE) Count + 1) * sizeof (void *)); + ((ACPI_SIZE) Count + 1) * sizeof (void *)); if (!PackageElements) { ACPI_FREE (PackageDesc); @@ -355,6 +356,7 @@ AcpiUtCreateBufferObject ( { ACPI_ERROR ((AE_INFO, "Could not allocate size %u", (UINT32) BufferSize)); + AcpiUtRemoveReference (BufferDesc); return_PTR (NULL); } @@ -414,6 +416,7 @@ AcpiUtCreateStringObject ( { ACPI_ERROR ((AE_INFO, "Could not allocate size %u", (UINT32) StringSize)); + AcpiUtRemoveReference (StringDesc); return_PTR (NULL); } @@ -470,8 +473,8 @@ AcpiUtValidInternalObject ( default: ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, - "%p is not an ACPI operand obj [%s]\n", - Object, AcpiUtGetDescriptorName (Object))); + "%p is not an ACPI operand obj [%s]\n", + Object, AcpiUtGetDescriptorName (Object))); break; } @@ -520,7 +523,7 @@ AcpiUtAllocateObjectDescDbg ( ACPI_SET_DESCRIPTOR_TYPE (Object, ACPI_DESC_TYPE_OPERAND); ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "%p Size %X\n", - Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT))); + Object, (UINT32) sizeof (ACPI_OPERAND_OBJECT))); return_PTR (Object); } @@ -783,12 +786,12 @@ AcpiUtGetPackageObjectSize ( ACPI_FUNCTION_TRACE_PTR (UtGetPackageObjectSize, InternalObject); - Info.Length = 0; + Info.Length = 0; Info.ObjectSpace = 0; Info.NumPackages = 1; - Status = AcpiUtWalkPackageTree (InternalObject, NULL, - AcpiUtGetElementLength, &Info); + Status = AcpiUtWalkPackageTree ( + InternalObject, NULL, AcpiUtGetElementLength, &Info); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -799,8 +802,8 @@ AcpiUtGetPackageObjectSize ( * just add the length of the package objects themselves. * Round up to the next machine word. */ - Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD (sizeof (ACPI_OBJECT)) * - (ACPI_SIZE) Info.NumPackages; + Info.Length += ACPI_ROUND_UP_TO_NATIVE_WORD ( + sizeof (ACPI_OBJECT)) * (ACPI_SIZE) Info.NumPackages; /* Return the total package length */ @@ -834,7 +837,8 @@ AcpiUtGetObjectSize ( ACPI_FUNCTION_ENTRY (); - if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == ACPI_DESC_TYPE_OPERAND) && + if ((ACPI_GET_DESCRIPTOR_TYPE (InternalObject) == + ACPI_DESC_TYPE_OPERAND) && (InternalObject->Common.Type == ACPI_TYPE_PACKAGE)) { Status = AcpiUtGetPackageObjectSize (InternalObject, ObjLength); diff --git a/src/acpica/source/components/utilities/utosi.c b/src/acpica/source/components/utilities/utosi.c index b4d8a71..930c45d 100644 --- a/src/acpica/source/components/utilities/utosi.c +++ b/src/acpica/source/components/utilities/utosi.c @@ -228,7 +228,9 @@ AcpiUtInitializeInterfaces ( /* Link the static list of supported interfaces */ - for (i = 0; i < (ACPI_ARRAY_LENGTH (AcpiDefaultSupportedInterfaces) - 1); i++) + for (i = 0; + i < (ACPI_ARRAY_LENGTH (AcpiDefaultSupportedInterfaces) - 1); + i++) { AcpiDefaultSupportedInterfaces[i].Next = &AcpiDefaultSupportedInterfaces[(ACPI_SIZE) i + 1]; @@ -372,8 +374,10 @@ AcpiUtRemoveInterface ( { if (!strcmp (InterfaceName, NextInterface->Name)) { - /* Found: name is in either the static list or was added at runtime */ - + /* + * Found: name is in either the static list + * or was added at runtime + */ if (NextInterface->Flags & ACPI_OSI_DYNAMIC) { /* Interface was added dynamically, remove and free it */ @@ -393,8 +397,8 @@ AcpiUtRemoveInterface ( else { /* - * Interface is in static list. If marked invalid, then it - * does not actually exist. Else, mark it invalid. + * Interface is in static list. If marked invalid, then + * it does not actually exist. Else, mark it invalid. */ if (NextInterface->Flags & ACPI_OSI_INVALID) { diff --git a/src/acpica/source/components/utilities/utownerid.c b/src/acpica/source/components/utilities/utownerid.c index bf391e1..25773a8 100644 --- a/src/acpica/source/components/utilities/utownerid.c +++ b/src/acpica/source/components/utilities/utownerid.c @@ -153,7 +153,8 @@ AcpiUtAllocateOwnerId ( if (*OwnerId) { - ACPI_ERROR ((AE_INFO, "Owner ID [0x%2.2X] already exists", *OwnerId)); + ACPI_ERROR ((AE_INFO, + "Owner ID [0x%2.2X] already exists", *OwnerId)); return_ACPI_STATUS (AE_ALREADY_EXISTS); } @@ -167,8 +168,8 @@ AcpiUtAllocateOwnerId ( /* * Find a free owner ID, cycle through all possible IDs on repeated - * allocations. (ACPI_NUM_OWNERID_MASKS + 1) because first index may have - * to be scanned twice. + * allocations. (ACPI_NUM_OWNERID_MASKS + 1) because first index + * may have to be scanned twice. */ for (i = 0, j = AcpiGbl_LastOwnerIdIndex; i < (ACPI_NUM_OWNERID_MASKS + 1); @@ -224,8 +225,8 @@ AcpiUtAllocateOwnerId ( * they are released when a table is unloaded or a method completes * execution. * - * If this error happens, there may be very deep nesting of invoked control - * methods, or there may be a bug where the IDs are not released. + * If this error happens, there may be very deep nesting of invoked + * control methods, or there may be a bug where the IDs are not released. */ Status = AE_OWNER_ID_LIMIT; ACPI_ERROR ((AE_INFO, diff --git a/src/acpica/source/components/utilities/utpredef.c b/src/acpica/source/components/utilities/utpredef.c index 11471c7..e72fd88 100644 --- a/src/acpica/source/components/utilities/utpredef.c +++ b/src/acpica/source/components/utilities/utpredef.c @@ -326,8 +326,10 @@ AcpiUtMatchResourceName ( const ACPI_PREDEFINED_INFO *ThisName; - /* Quick check for a predefined name, first character must be underscore */ - + /* + * Quick check for a predefined name, first character must + * be underscore + */ if (Name[0] != '_') { return (NULL); diff --git a/src/acpica/source/components/utilities/utprint.c b/src/acpica/source/components/utilities/utprint.c index b3e8fd2..02602dd 100644 --- a/src/acpica/source/components/utilities/utprint.c +++ b/src/acpica/source/components/utilities/utprint.c @@ -462,8 +462,8 @@ AcpiUtFormatNumber ( String = AcpiUtBoundStringOutput (String, End, '0'); if (Base == 16) { - String = AcpiUtBoundStringOutput (String, End, - Upper ? 'X' : 'x'); + String = AcpiUtBoundStringOutput ( + String, End, Upper ? 'X' : 'x'); } } if (!(Type & ACPI_FORMAT_LEFT)) @@ -572,6 +572,7 @@ AcpiUtVsnprintf ( { break; } + } while (1); /* Process width */ @@ -609,6 +610,7 @@ AcpiUtVsnprintf ( ++Format; Precision = va_arg (Args, int); } + if (Precision < 0) { Precision = 0; @@ -671,11 +673,13 @@ AcpiUtVsnprintf ( Pos = AcpiUtBoundStringOutput (Pos, End, ' '); } } + for (i = 0; i < Length; ++i) { Pos = AcpiUtBoundStringOutput (Pos, End, *s); ++s; } + while (Length < Width--) { Pos = AcpiUtBoundStringOutput (Pos, End, ' '); @@ -714,8 +718,8 @@ AcpiUtVsnprintf ( } p = va_arg (Args, void *); - Pos = AcpiUtFormatNumber (Pos, End, - ACPI_TO_INTEGER (p), 16, Width, Precision, Type); + Pos = AcpiUtFormatNumber ( + Pos, End, ACPI_TO_INTEGER (p), 16, Width, Precision, Type); continue; default: @@ -766,7 +770,7 @@ AcpiUtVsnprintf ( } Pos = AcpiUtFormatNumber (Pos, End, Number, Base, - Width, Precision, Type); + Width, Precision, Type); } if (Size > 0) @@ -845,7 +849,7 @@ AcpiUtFileVprintf ( Flags = AcpiOsAcquireLock (AcpiGbl_PrintLock); Length = AcpiUtVsnprintf (AcpiGbl_PrintBuffer, - sizeof (AcpiGbl_PrintBuffer), Format, Args); + sizeof (AcpiGbl_PrintBuffer), Format, Args); (void) AcpiOsWriteFile (File, AcpiGbl_PrintBuffer, Length, 1); AcpiOsReleaseLock (AcpiGbl_PrintLock, Flags); diff --git a/src/acpica/source/components/utilities/utresrc.c b/src/acpica/source/components/utilities/utresrc.c index 44a4c66..1657972 100644 --- a/src/acpica/source/components/utilities/utresrc.c +++ b/src/acpica/source/components/utilities/utresrc.c @@ -561,8 +561,8 @@ AcpiUtWalkAmlResources ( if (ACPI_FAILURE (Status)) { /* - * Exit on failure. Cannot continue because the descriptor length - * may be bogus also. + * Exit on failure. Cannot continue because the descriptor + * length may be bogus also. */ return_ACPI_STATUS (Status); } @@ -575,7 +575,8 @@ AcpiUtWalkAmlResources ( if (UserFunction) { - Status = UserFunction (Aml, Length, Offset, ResourceIndex, Context); + Status = UserFunction ( + Aml, Length, Offset, ResourceIndex, Context); if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -697,8 +698,8 @@ AcpiUtValidateResource ( } /* - * Check validity of the resource type, via AcpiGbl_ResourceTypes. Zero - * indicates an invalid resource. + * Check validity of the resource type, via AcpiGbl_ResourceTypes. + * Zero indicates an invalid resource. */ if (!AcpiGbl_ResourceTypes[ResourceIndex]) { @@ -885,7 +886,7 @@ AcpiUtGetResourceLength ( /* Small Resource type -- bits 2:0 of byte 0 contain the length */ ResourceLength = (UINT16) (ACPI_GET8 (Aml) & - ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK); + ACPI_RESOURCE_NAME_SMALL_LENGTH_MASK); } return (ResourceLength); @@ -950,7 +951,7 @@ AcpiUtGetDescriptorLength ( * the header length (depends on if this is a small or large resource) */ return (AcpiUtGetResourceLength (Aml) + - AcpiUtGetResourceHeaderLength (Aml)); + AcpiUtGetResourceHeaderLength (Aml)); } @@ -990,7 +991,7 @@ AcpiUtGetResourceEndTag ( /* Validate the template and get a pointer to the EndTag */ Status = AcpiUtWalkAmlResources (NULL, ObjDesc->Buffer.Pointer, - ObjDesc->Buffer.Length, NULL, (void **) EndTag); + ObjDesc->Buffer.Length, NULL, (void **) EndTag); return_ACPI_STATUS (Status); } diff --git a/src/acpica/source/components/utilities/utstate.c b/src/acpica/source/components/utilities/utstate.c index 1e64186..6e5d335 100644 --- a/src/acpica/source/components/utilities/utstate.c +++ b/src/acpica/source/components/utilities/utstate.c @@ -350,6 +350,7 @@ AcpiUtCreatePkgState ( State->Pkg.DestObject = ExternalObject; State->Pkg.Index= Index; State->Pkg.NumPackages = 1; + return (State); } @@ -389,6 +390,7 @@ AcpiUtCreateControlState ( State->Common.DescriptorType = ACPI_DESC_TYPE_STATE_CONTROL; State->Common.State = ACPI_CONTROL_CONDITIONAL_EXECUTING; + return (State); } @@ -419,5 +421,6 @@ AcpiUtDeleteGenericState ( { (void) AcpiOsReleaseObject (AcpiGbl_StateCache, State); } + return; } diff --git a/src/acpica/source/components/utilities/utstring.c b/src/acpica/source/components/utilities/utstring.c index 3660cbb..529b39f 100644 --- a/src/acpica/source/components/utilities/utstring.c +++ b/src/acpica/source/components/utilities/utstring.c @@ -219,6 +219,7 @@ AcpiUtPrintString ( break; } } + AcpiOsPrintf ("\""); if (i == MaxLength && String[i]) diff --git a/src/acpica/source/components/utilities/uttrack.c b/src/acpica/source/components/utilities/uttrack.c index f7f0bce..8906866 100644 --- a/src/acpica/source/components/utilities/uttrack.c +++ b/src/acpica/source/components/utilities/uttrack.c @@ -187,7 +187,7 @@ AcpiUtCreateList ( memset (Cache, 0, sizeof (ACPI_MEMORY_LIST)); - Cache->ListName = ListName; + Cache->ListName = ListName; Cache->ObjectSize = ObjectSize; *ReturnCache = Cache; @@ -241,8 +241,8 @@ AcpiUtAllocateAndTrack ( return (NULL); } - Status = AcpiUtTrackAllocation (Allocation, Size, - ACPI_MEM_MALLOC, Component, Module, Line); + Status = AcpiUtTrackAllocation ( + Allocation, Size, ACPI_MEM_MALLOC, Component, Module, Line); if (ACPI_FAILURE (Status)) { AcpiOsFree (Allocation); @@ -252,9 +252,12 @@ AcpiUtAllocateAndTrack ( AcpiGbl_GlobalList->TotalAllocated++; AcpiGbl_GlobalList->TotalSize += (UINT32) Size; AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size; - if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied) + + if (AcpiGbl_GlobalList->CurrentTotalSize > + AcpiGbl_GlobalList->MaxOccupied) { - AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize; + AcpiGbl_GlobalList->MaxOccupied = + AcpiGbl_GlobalList->CurrentTotalSize; } return ((void *) &Allocation->UserSpace); @@ -296,7 +299,8 @@ AcpiUtAllocateZeroedAndTrack ( Size = 1; } - Allocation = AcpiOsAllocateZeroed (Size + sizeof (ACPI_DEBUG_MEM_HEADER)); + Allocation = AcpiOsAllocateZeroed ( + Size + sizeof (ACPI_DEBUG_MEM_HEADER)); if (!Allocation) { /* Report allocation error */ @@ -307,7 +311,7 @@ AcpiUtAllocateZeroedAndTrack ( } Status = AcpiUtTrackAllocation (Allocation, Size, - ACPI_MEM_CALLOC, Component, Module, Line); + ACPI_MEM_CALLOC, Component, Module, Line); if (ACPI_FAILURE (Status)) { AcpiOsFree (Allocation); @@ -317,9 +321,12 @@ AcpiUtAllocateZeroedAndTrack ( AcpiGbl_GlobalList->TotalAllocated++; AcpiGbl_GlobalList->TotalSize += (UINT32) Size; AcpiGbl_GlobalList->CurrentTotalSize += (UINT32) Size; - if (AcpiGbl_GlobalList->CurrentTotalSize > AcpiGbl_GlobalList->MaxOccupied) + + if (AcpiGbl_GlobalList->CurrentTotalSize > + AcpiGbl_GlobalList->MaxOccupied) { - AcpiGbl_GlobalList->MaxOccupied = AcpiGbl_GlobalList->CurrentTotalSize; + AcpiGbl_GlobalList->MaxOccupied = + AcpiGbl_GlobalList->CurrentTotalSize; } return ((void *) &Allocation->UserSpace); @@ -364,13 +371,12 @@ AcpiUtFreeAndTrack ( } DebugBlock = ACPI_CAST_PTR (ACPI_DEBUG_MEM_BLOCK, - (((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER))); + (((char *) Allocation) - sizeof (ACPI_DEBUG_MEM_HEADER))); AcpiGbl_GlobalList->TotalFreed++; AcpiGbl_GlobalList->CurrentTotalSize -= DebugBlock->Size; - Status = AcpiUtRemoveAllocation (DebugBlock, - Component, Module, Line); + Status = AcpiUtRemoveAllocation (DebugBlock, Component, Module, Line); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, "Could not free memory")); @@ -512,10 +518,10 @@ AcpiUtTrackAllocation ( /* Fill in the instance data */ - Allocation->Size = (UINT32) Size; + Allocation->Size = (UINT32) Size; Allocation->AllocType = AllocType; Allocation->Component = Component; - Allocation->Line = Line; + Allocation->Line = Line; strncpy (Allocation->Module, Module, ACPI_MAX_MODULE_NAME); Allocation->Module[ACPI_MAX_MODULE_NAME-1] = 0; @@ -526,7 +532,8 @@ AcpiUtTrackAllocation ( if (MemList->ListHead) { - ((ACPI_DEBUG_MEM_BLOCK *)(MemList->ListHead))->Previous = Allocation; + ((ACPI_DEBUG_MEM_BLOCK *)(MemList->ListHead))->Previous = + Allocation; } Allocation->Next = MemList->ListHead; @@ -659,37 +666,37 @@ AcpiUtDumpAllocationInfo ( /* ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, - ("%30s: %4d (%3d Kb)\n", "Current allocations", - MemList->CurrentCount, - ROUND_UP_TO_1K (MemList->CurrentSize))); + ("%30s: %4d (%3d Kb)\n", "Current allocations", + MemList->CurrentCount, + ROUND_UP_TO_1K (MemList->CurrentSize))); ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, - ("%30s: %4d (%3d Kb)\n", "Max concurrent allocations", - MemList->MaxConcurrentCount, - ROUND_UP_TO_1K (MemList->MaxConcurrentSize))); + ("%30s: %4d (%3d Kb)\n", "Max concurrent allocations", + MemList->MaxConcurrentCount, + ROUND_UP_TO_1K (MemList->MaxConcurrentSize))); ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, - ("%30s: %4d (%3d Kb)\n", "Total (all) internal objects", - RunningObjectCount, - ROUND_UP_TO_1K (RunningObjectSize))); + ("%30s: %4d (%3d Kb)\n", "Total (all) internal objects", + RunningObjectCount, + ROUND_UP_TO_1K (RunningObjectSize))); ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, - ("%30s: %4d (%3d Kb)\n", "Total (all) allocations", - RunningAllocCount, - ROUND_UP_TO_1K (RunningAllocSize))); + ("%30s: %4d (%3d Kb)\n", "Total (all) allocations", + RunningAllocCount, + ROUND_UP_TO_1K (RunningAllocSize))); ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, - ("%30s: %4d (%3d Kb)\n", "Current Nodes", - AcpiGbl_CurrentNodeCount, - ROUND_UP_TO_1K (AcpiGbl_CurrentNodeSize))); + ("%30s: %4d (%3d Kb)\n", "Current Nodes", + AcpiGbl_CurrentNodeCount, + ROUND_UP_TO_1K (AcpiGbl_CurrentNodeSize))); ACPI_DEBUG_PRINT (TRACE_ALLOCATIONS | TRACE_TABLES, - ("%30s: %4d (%3d Kb)\n", "Max Nodes", - AcpiGbl_MaxConcurrentNodeCount, - ROUND_UP_TO_1K ((AcpiGbl_MaxConcurrentNodeCount * - sizeof (ACPI_NAMESPACE_NODE))))); + ("%30s: %4d (%3d Kb)\n", "Max Nodes", + AcpiGbl_MaxConcurrentNodeCount, + ROUND_UP_TO_1K ((AcpiGbl_MaxConcurrentNodeCount * + sizeof (ACPI_NAMESPACE_NODE))))); */ return_VOID; } @@ -741,7 +748,8 @@ AcpiUtDumpAllocations ( if ((Element->Component & Component) && ((Module == NULL) || (0 == strcmp (Module, Element->Module)))) { - Descriptor = ACPI_CAST_PTR (ACPI_DESCRIPTOR, &Element->UserSpace); + Descriptor = ACPI_CAST_PTR ( + ACPI_DESCRIPTOR, &Element->UserSpace); if (Element->Size < sizeof (ACPI_COMMON_DESCRIPTOR)) { @@ -754,7 +762,8 @@ AcpiUtDumpAllocations ( { /* Ignore allocated objects that are in a cache */ - if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != ACPI_DESC_TYPE_CACHED) + if (ACPI_GET_DESCRIPTOR_TYPE (Descriptor) != + ACPI_DESC_TYPE_CACHED) { AcpiOsPrintf ("%p Length 0x%04X %9.9s-%u [%s] ", Descriptor, Element->Size, Element->Module, diff --git a/src/acpica/source/components/utilities/utuuid.c b/src/acpica/source/components/utilities/utuuid.c index 71fa0bc..7a6f698 100644 --- a/src/acpica/source/components/utilities/utuuid.c +++ b/src/acpica/source/components/utilities/utuuid.c @@ -165,11 +165,11 @@ AcpiUtConvertStringToUuid ( for (i = 0; i < UUID_BUFFER_LENGTH; i++) { - UuidBuffer[i] = - (AcpiUtAsciiCharToHex (InString[AcpiGbl_MapToUuidOffset[i]]) << 4); + UuidBuffer[i] = (AcpiUtAsciiCharToHex ( + InString[AcpiGbl_MapToUuidOffset[i]]) << 4); - UuidBuffer[i] |= - AcpiUtAsciiCharToHex (InString[AcpiGbl_MapToUuidOffset[i] + 1]); + UuidBuffer[i] |= AcpiUtAsciiCharToHex ( + InString[AcpiGbl_MapToUuidOffset[i] + 1]); } } #endif diff --git a/src/acpica/source/components/utilities/utxface.c b/src/acpica/source/components/utilities/utxface.c index a34970e..35fb8a0 100644 --- a/src/acpica/source/components/utilities/utxface.c +++ b/src/acpica/source/components/utilities/utxface.c @@ -145,24 +145,6 @@ AcpiTerminate ( ACPI_FUNCTION_TRACE (AcpiTerminate); - /* Just exit if subsystem is already shutdown */ - - if (AcpiGbl_Shutdown) - { - ACPI_ERROR ((AE_INFO, "ACPI Subsystem is already terminated")); - return_ACPI_STATUS (AE_OK); - } - - /* Subsystem appears active, go ahead and shut it down */ - - AcpiGbl_Shutdown = TRUE; - AcpiGbl_StartupFlags = 0; - ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Shutting down ACPI Subsystem\n")); - - /* Terminate the AML Debugger if present */ - - ACPI_DEBUGGER_EXEC (AcpiGbl_DbTerminateThreads = TRUE); - /* Shutdown and free all resources */ AcpiUtSubsystemShutdown (); @@ -262,7 +244,6 @@ AcpiGetSystemInfo ( * Populate the return buffer */ InfoPtr = (ACPI_SYSTEM_INFO *) OutBuffer->Pointer; - InfoPtr->AcpiCaVersion = ACPI_CA_VERSION; /* System flags (ACPI capabilities) */ @@ -330,11 +311,9 @@ AcpiGetStatistics ( memcpy (Stats->FixedEventCount, AcpiFixedEventCount, sizeof (AcpiFixedEventCount)); - /* Other counters */ Stats->MethodCount = AcpiMethodCount; - return_ACPI_STATUS (AE_OK); } diff --git a/src/acpica/source/components/utilities/utxferror.c b/src/acpica/source/components/utilities/utxferror.c index b62e5df..bbc0cf6 100644 --- a/src/acpica/source/components/utilities/utxferror.c +++ b/src/acpica/source/components/utilities/utxferror.c @@ -205,8 +205,10 @@ AcpiException ( } else { - AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", AcpiFormatException (Status)); + AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", + AcpiFormatException (Status)); } + va_start (ArgList, Format); AcpiOsVprintf (Format, ArgList); ACPI_MSG_SUFFIX; diff --git a/src/acpica/source/include/acapps.h b/src/acpica/source/include/acapps.h index 1c2004d..4fbebbf 100644 --- a/src/acpica/source/include/acapps.h +++ b/src/acpica/source/include/acapps.h @@ -116,6 +116,7 @@ #ifndef _ACAPPS #define _ACAPPS +#include <stdio.h> #ifdef _MSC_VER /* disable some level-4 warnings */ #pragma warning(disable:4100) /* warning C4100: unreferenced formal parameter */ @@ -165,10 +166,38 @@ AcpiOsPrintf (" %-18s%s\n", Name, Description); +/* Check for unexpected exceptions */ + +#define ACPI_CHECK_STATUS(Name, Status, Expected) \ + if (Status != Expected) \ + { \ + AcpiOsPrintf ("Unexpected %s from %s (%s-%d)\n", \ + AcpiFormatException (Status), #Name, _AcpiModuleName, __LINE__); \ + } + +/* Check for unexpected non-AE_OK errors */ + + +#define ACPI_CHECK_OK(Name, Status) ACPI_CHECK_STATUS (Name, Status, AE_OK); + #define FILE_SUFFIX_DISASSEMBLY "dsl" #define FILE_SUFFIX_BINARY_TABLE ".dat" /* Needs the dot */ +/* acfileio */ + +ACPI_STATUS +AcpiAcGetAllTablesFromFile ( + char *Filename, + UINT8 GetOnlyAmlTables, + ACPI_NEW_TABLE_DESC **ReturnListHead); + +/* Values for GetOnlyAmlTables */ + +#define ACPI_GET_ONLY_AML_TABLES TRUE +#define ACPI_GET_ALL_TABLES FALSE + + /* * getopt */ @@ -197,51 +226,6 @@ CmGetFileSize ( ACPI_FILE File); -#ifndef ACPI_DUMP_APP -/* - * adisasm - */ -ACPI_STATUS -AdAmlDisassemble ( - BOOLEAN OutToFile, - char *Filename, - char *Prefix, - char **OutFilename); - -void -AdPrintStatistics ( - void); - -ACPI_STATUS -AdFindDsdt( - UINT8 **DsdtPtr, - UINT32 *DsdtLength); - -void -AdDumpTables ( - void); - -ACPI_STATUS -AdGetLocalTables ( - void); - -ACPI_STATUS -AdParseTable ( - ACPI_TABLE_HEADER *Table, - ACPI_OWNER_ID *OwnerId, - BOOLEAN LoadTable, - BOOLEAN External); - -ACPI_STATUS -AdDisplayTables ( - char *Filename, - ACPI_TABLE_HEADER *Table); - -ACPI_STATUS -AdDisplayStatistics ( - void); - - /* * adwalk */ @@ -300,6 +284,5 @@ AdWriteTable ( UINT32 Length, char *TableName, char *OemTableId); -#endif #endif /* _ACAPPS */ diff --git a/src/acpica/source/include/acdebug.h b/src/acpica/source/include/acdebug.h index 3b245b0..d208b2e 100644 --- a/src/acpica/source/include/acdebug.h +++ b/src/acpica/source/include/acdebug.h @@ -163,11 +163,17 @@ typedef struct acpi_db_execute_walk /* * dbxface - external debugger interfaces */ +ACPI_DBR_DEPENDENT_RETURN_OK ( ACPI_STATUS AcpiDbSingleStep ( ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *Op, - UINT32 OpType); + UINT32 OpType)) + +ACPI_DBR_DEPENDENT_RETURN_VOID ( +void +AcpiDbSignalBreakPoint ( + ACPI_WALK_STATE *WalkState)) /* @@ -362,10 +368,11 @@ AcpiDbDecodeAndDisplayObject ( char *Target, char *OutputType); +ACPI_DBR_DEPENDENT_RETURN_VOID ( void AcpiDbDisplayResultObject ( ACPI_OPERAND_OBJECT *ObjDesc, - ACPI_WALK_STATE *WalkState); + ACPI_WALK_STATE *WalkState)) ACPI_STATUS AcpiDbDisplayAllMethods ( @@ -391,10 +398,11 @@ void AcpiDbDisplayObjectType ( char *ObjectArg); +ACPI_DBR_DEPENDENT_RETURN_VOID ( void AcpiDbDisplayArgumentObject ( ACPI_OPERAND_OBJECT *ObjDesc, - ACPI_WALK_STATE *WalkState); + ACPI_WALK_STATE *WalkState)) /* @@ -446,10 +454,8 @@ AcpiDbLoadAcpiTable ( char *Filename); ACPI_STATUS -AcpiDbGetTableFromFile ( - char *Filename, - ACPI_TABLE_HEADER **Table, - BOOLEAN MustBeAmlTable); +AcpiDbLoadTables ( + ACPI_NEW_TABLE_DESC *ListHead); /* diff --git a/src/acpica/source/include/acdisasm.h b/src/acpica/source/include/acdisasm.h index d448b9f..2ff2dab 100644 --- a/src/acpica/source/include/acdisasm.h +++ b/src/acpica/source/include/acdisasm.h @@ -1119,7 +1119,7 @@ AcpiDmCloseOperator ( /* - * acdisasm + * dmtables */ void AdDisassemblerHeader ( @@ -1129,4 +1129,35 @@ AdDisassemblerHeader ( #define ACPI_IS_AML_TABLE 0 #define ACPI_IS_DATA_TABLE 1 + +/* + * adisasm + */ +ACPI_STATUS +AdAmlDisassemble ( + BOOLEAN OutToFile, + char *Filename, + char *Prefix, + char **OutFilename); + +ACPI_STATUS +AdGetLocalTables ( + void); + +ACPI_STATUS +AdParseTable ( + ACPI_TABLE_HEADER *Table, + ACPI_OWNER_ID *OwnerId, + BOOLEAN LoadTable, + BOOLEAN External); + +ACPI_STATUS +AdDisplayTables ( + char *Filename, + ACPI_TABLE_HEADER *Table); + +ACPI_STATUS +AdDisplayStatistics ( + void); + #endif /* __ACDISASM_H__ */ diff --git a/src/acpica/source/include/acglobal.h b/src/acpica/source/include/acglobal.h index 2733f39..2fb8062 100644 --- a/src/acpica/source/include/acglobal.h +++ b/src/acpica/source/include/acglobal.h @@ -134,6 +134,7 @@ ACPI_GLOBAL (ACPI_TABLE_HEADER, AcpiGbl_OriginalDsdtHeader); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX); ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX); +ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX); #if (!ACPI_REDUCED_HARDWARE) ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS); @@ -400,9 +401,9 @@ ACPI_GLOBAL (ACPI_EXTERNAL_FILE *, AcpiGbl_ExternalFileList); #ifdef ACPI_DEBUGGER -ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateThreads, FALSE); ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_AbortMethod, FALSE); ACPI_INIT_GLOBAL (BOOLEAN, AcpiGbl_MethodExecuting, FALSE); +ACPI_INIT_GLOBAL (ACPI_THREAD_ID, AcpiGbl_DbThreadId, ACPI_INVALID_THREAD_ID); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoIniMethods); ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbOpt_NoRegionSupport); @@ -412,6 +413,8 @@ ACPI_GLOBAL (char *, AcpiGbl_DbFilename); ACPI_GLOBAL (UINT32, AcpiGbl_DbDebugLevel); ACPI_GLOBAL (UINT32, AcpiGbl_DbConsoleDebugLevel); ACPI_GLOBAL (ACPI_NAMESPACE_NODE *, AcpiGbl_DbScopeNode); +ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbTerminateLoop); +ACPI_GLOBAL (BOOLEAN, AcpiGbl_DbThreadsTerminated); ACPI_GLOBAL (char *, AcpiGbl_DbArgs[ACPI_DEBUGGER_MAX_ARGS]); ACPI_GLOBAL (ACPI_OBJECT_TYPE, AcpiGbl_DbArgTypes[ACPI_DEBUGGER_MAX_ARGS]); diff --git a/src/acpica/source/include/aclocal.h b/src/acpica/source/include/aclocal.h index fdeafff..8d1e37b 100644 --- a/src/acpica/source/include/aclocal.h +++ b/src/acpica/source/include/aclocal.h @@ -190,6 +190,14 @@ typedef struct acpi_rw_lock #define ACPI_MUTEX_NOT_ACQUIRED (ACPI_THREAD_ID) -1 +/* This Thread ID means an invalid thread ID */ + +#ifdef ACPI_OS_INVALID_THREAD_ID +#define ACPI_INVALID_THREAD_ID ACPI_OS_INVALID_THREAD_ID +#else +#define ACPI_INVALID_THREAD_ID ((ACPI_THREAD_ID) 0xFFFFFFFF) +#endif + /* Table for the global mutexes */ typedef struct acpi_mutex_info @@ -308,6 +316,16 @@ typedef struct acpi_table_list #define ACPI_ROOT_ALLOW_RESIZE (2) +/* List to manage incoming ACPI tables */ + +typedef struct acpi_new_table_desc +{ + ACPI_TABLE_HEADER *Table; + struct acpi_new_table_desc *Next; + +} ACPI_NEW_TABLE_DESC; + + /* Predefined table indexes */ #define ACPI_INVALID_TABLE_INDEX (0xFFFFFFFF) diff --git a/src/acpica/source/include/acmacros.h b/src/acpica/source/include/acmacros.h index f8dfffb..ba40732 100644 --- a/src/acpica/source/include/acmacros.h +++ b/src/acpica/source/include/acmacros.h @@ -478,18 +478,6 @@ /* - * Some code only gets executed when the debugger is built in. - * Note that this is entirely independent of whether the - * DEBUG_PRINT stuff (set by ACPI_DEBUG_OUTPUT) is on, or not. - */ -#ifdef ACPI_DEBUGGER -#define ACPI_DEBUGGER_EXEC(a) a -#else -#define ACPI_DEBUGGER_EXEC(a) -#endif - - -/* * Macros used for ACPICA utilities only */ diff --git a/src/acpica/source/include/acpiosxf.h b/src/acpica/source/include/acpiosxf.h index 45cec74..4afc7d5 100644 --- a/src/acpica/source/include/acpiosxf.h +++ b/src/acpica/source/include/acpiosxf.h @@ -129,7 +129,8 @@ typedef enum OSL_GLOBAL_LOCK_HANDLER, OSL_NOTIFY_HANDLER, OSL_GPE_HANDLER, - OSL_DEBUGGER_THREAD, + OSL_DEBUGGER_MAIN_THREAD, + OSL_DEBUGGER_EXEC_THREAD, OSL_EC_POLL_HANDLER, OSL_EC_BURST_HANDLER diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h index 55412c8..1bb43ea 100644 --- a/src/acpica/source/include/acpixf.h +++ b/src/acpica/source/include/acpixf.h @@ -118,7 +118,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20150930 +#define ACPI_CA_VERSION 0x20151124 #include "acconfig.h" #include "actypes.h" @@ -449,6 +449,30 @@ ACPI_GLOBAL (BOOLEAN, AcpiGbl_SystemAwakeAndRunning); #endif /* ACPI_APPLICATION */ +/* + * Debugger prototypes + * + * All interfaces used by debugger will be configured + * out of the ACPICA build unless the ACPI_DEBUGGER + * flag is defined. + */ +#ifdef ACPI_DEBUGGER +#define ACPI_DBR_DEPENDENT_RETURN_OK(Prototype) \ + ACPI_EXTERNAL_RETURN_OK(Prototype) + +#define ACPI_DBR_DEPENDENT_RETURN_VOID(Prototype) \ + ACPI_EXTERNAL_RETURN_VOID(Prototype) + +#else +#define ACPI_DBR_DEPENDENT_RETURN_OK(Prototype) \ + static ACPI_INLINE Prototype {return(AE_OK);} + +#define ACPI_DBR_DEPENDENT_RETURN_VOID(Prototype) \ + static ACPI_INLINE Prototype {return;} + +#endif /* ACPI_DEBUGGER */ + + /***************************************************************************** * * ACPICA public interface prototypes @@ -1288,4 +1312,8 @@ void AcpiTerminateDebugger ( void); +void +AcpiSetDebuggerThreadId ( + ACPI_THREAD_ID ThreadId); + #endif /* __ACXFACE_H__ */ diff --git a/src/acpica/source/include/actables.h b/src/acpica/source/include/actables.h index 10fb56d..3fbeb3b 100644 --- a/src/acpica/source/include/actables.h +++ b/src/acpica/source/include/actables.h @@ -187,7 +187,7 @@ AcpiTbSetTableLoadedFlag ( */ void AcpiTbParseFadt ( - UINT32 TableIndex); + void); void AcpiTbCreateLocalFadt ( @@ -279,10 +279,6 @@ ACPI_STATUS AcpiTbInitializeFacs ( void); -BOOLEAN -AcpiTbTablesLoaded ( - void); - void AcpiTbPrintTableHeader( ACPI_PHYSICAL_ADDRESS Address, diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h index e9e765d..09a2d82 100644 --- a/src/acpica/source/include/actypes.h +++ b/src/acpica/source/include/actypes.h @@ -1304,7 +1304,7 @@ UINT32 (*ACPI_INTERFACE_HANDLER) ( #define ACPI_PCICLS_STRING_SIZE 7 /* Includes null terminator */ -/* Structures used for device/processor HID, UID, CID, and SUB */ +/* Structures used for device/processor HID, UID, CID */ typedef struct acpi_pnp_device_id { @@ -1339,7 +1339,6 @@ typedef struct acpi_device_info UINT64 Address; /* _ADR value */ ACPI_PNP_DEVICE_ID HardwareId; /* _HID value */ ACPI_PNP_DEVICE_ID UniqueId; /* _UID value */ - ACPI_PNP_DEVICE_ID SubsystemId; /* _SUB value */ ACPI_PNP_DEVICE_ID ClassCode; /* _CLS value */ ACPI_PNP_DEVICE_ID_LIST CompatibleIdList; /* _CID list <must be last> */ @@ -1355,13 +1354,12 @@ typedef struct acpi_device_info #define ACPI_VALID_ADR 0x0002 #define ACPI_VALID_HID 0x0004 #define ACPI_VALID_UID 0x0008 -#define ACPI_VALID_SUB 0x0010 #define ACPI_VALID_CID 0x0020 #define ACPI_VALID_CLS 0x0040 #define ACPI_VALID_SXDS 0x0100 #define ACPI_VALID_SXWS 0x0200 -/* Flags for _STA return value (CurrentStatus above) */ +/* Flags for _STA method */ #define ACPI_STA_DEVICE_PRESENT 0x01 #define ACPI_STA_DEVICE_ENABLED 0x02 diff --git a/src/acpica/source/include/acutils.h b/src/acpica/source/include/acutils.h index 4fc44ff..c85ab83 100644 --- a/src/acpica/source/include/acutils.h +++ b/src/acpica/source/include/acutils.h @@ -278,7 +278,7 @@ AcpiUtInitGlobals ( #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER) -char * +const char * AcpiUtGetMutexName ( UINT32 MutexId); @@ -288,15 +288,15 @@ AcpiUtGetNotifyName ( ACPI_OBJECT_TYPE Type); #endif -char * +const char * AcpiUtGetTypeName ( ACPI_OBJECT_TYPE Type); -char * +const char * AcpiUtGetNodeName ( void *Object); -char * +const char * AcpiUtGetDescriptorName ( void *Object); @@ -304,15 +304,15 @@ const char * AcpiUtGetReferenceName ( ACPI_OPERAND_OBJECT *Object); -char * +const char * AcpiUtGetObjectTypeName ( ACPI_OPERAND_OBJECT *ObjDesc); -char * +const char * AcpiUtGetRegionName ( UINT8 SpaceId); -char * +const char * AcpiUtGetEventName ( UINT32 EventId); @@ -556,17 +556,6 @@ AcpiUtExecutePowerMethods ( /* - * utfileio - file operations - */ -#ifdef ACPI_APPLICATION -ACPI_STATUS -AcpiUtReadTableFromFile ( - char *Filename, - ACPI_TABLE_HEADER **Table); -#endif - - -/* * utids - device ID support */ ACPI_STATUS @@ -580,11 +569,6 @@ AcpiUtExecute_UID ( ACPI_PNP_DEVICE_ID **ReturnId); ACPI_STATUS -AcpiUtExecute_SUB ( - ACPI_NAMESPACE_NODE *DeviceNode, - ACPI_PNP_DEVICE_ID **ReturnId); - -ACPI_STATUS AcpiUtExecute_CID ( ACPI_NAMESPACE_NODE *DeviceNode, ACPI_PNP_DEVICE_ID_LIST **ReturnCidList); diff --git a/src/acpica/source/include/platform/aclinux.h b/src/acpica/source/include/platform/aclinux.h index 668f237..42f3f0a 100644 --- a/src/acpica/source/include/platform/aclinux.h +++ b/src/acpica/source/include/platform/aclinux.h @@ -136,12 +136,16 @@ #define ACPI_USE_SYSTEM_INTTYPES -/* Compile for reduced hardware mode only with this kernel config */ +/* Kernel specific ACPICA configuration */ #ifdef CONFIG_ACPI_REDUCED_HARDWARE_ONLY #define ACPI_REDUCED_HARDWARE 1 #endif +#ifdef CONFIG_ACPI_DEBUGGER +#define ACPI_DEBUGGER +#endif + #include <linux/string.h> #include <linux/kernel.h> #include <linux/ctype.h> @@ -224,7 +228,6 @@ * OSL interfaces used by utilities */ #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsRedirectOutput -#define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetLine #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByName #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByIndex #define ACPI_USE_ALTERNATE_PROTOTYPE_AcpiOsGetTableByAddress diff --git a/src/acpica/source/include/platform/aclinuxex.h b/src/acpica/source/include/platform/aclinuxex.h index 52352ce..c6262de 100644 --- a/src/acpica/source/include/platform/aclinuxex.h +++ b/src/acpica/source/include/platform/aclinuxex.h @@ -208,6 +208,15 @@ AcpiOsGetThreadId ( Lock ? AE_OK : AE_NO_MEMORY; \ }) +static inline BOOLEAN +AcpiOsReadable ( + void *Pointer, + ACPI_SIZE Length) +{ + return TRUE; +} + + /* * OSL interfaces added by Linux */ diff --git a/src/acpica/source/os_specific/service_layers/oslibcfs.c b/src/acpica/source/os_specific/service_layers/oslibcfs.c index dadc40d..92650e2 100644 --- a/src/acpica/source/os_specific/service_layers/oslibcfs.c +++ b/src/acpica/source/os_specific/service_layers/oslibcfs.c @@ -153,6 +153,7 @@ AcpiOsOpenFile ( { ModesStr[i++] = 'w'; } + if (Modes & ACPI_FILE_BINARY) { ModesStr[i++] = 'b'; @@ -186,6 +187,7 @@ void AcpiOsCloseFile ( ACPI_FILE File) { + fclose (File); } @@ -311,6 +313,7 @@ AcpiOsSetFileOffset ( { Ret = fseek (File, Offset, SEEK_SET); } + if (From == ACPI_FILE_END) { Ret = fseek (File, Offset, SEEK_END); diff --git a/src/acpica/source/tools/acpiexec/aecommon.h b/src/acpica/source/tools/acpiexec/aecommon.h index c0662bf..1aac52b 100644 --- a/src/acpica/source/tools/acpiexec/aecommon.h +++ b/src/acpica/source/tools/acpiexec/aecommon.h @@ -136,34 +136,6 @@ #include <string.h> #include <signal.h> -extern BOOLEAN AcpiGbl_IgnoreErrors; -extern UINT8 AcpiGbl_RegionFillValue; -extern UINT8 AcpiGbl_UseHwReducedFadt; -extern BOOLEAN AcpiGbl_DisplayRegionAccess; -extern BOOLEAN AcpiGbl_DoInterfaceTests; -extern BOOLEAN AcpiGbl_LoadTestTables; -extern FILE *AcpiGbl_NamespaceInitFile; -extern ACPI_CONNECTION_INFO AeMyContext; - -/* Check for unexpected exceptions */ - -#define AE_CHECK_STATUS(Name, Status, Expected) \ - if (Status != Expected) \ - { \ - AcpiOsPrintf ("Unexpected %s from %s (%s-%d)\n", \ - AcpiFormatException (Status), #Name, _AcpiModuleName, __LINE__); \ - } - -/* Check for unexpected non-AE_OK errors */ - -#define AE_CHECK_OK(Name, Status) AE_CHECK_STATUS (Name, Status, AE_OK); - -typedef struct ae_table_desc -{ - ACPI_TABLE_HEADER *Table; - struct ae_table_desc *Next; - -} AE_TABLE_DESC; /* * Debug Regions @@ -186,6 +158,16 @@ typedef struct ae_debug_regions } AE_DEBUG_REGIONS; +extern BOOLEAN AcpiGbl_IgnoreErrors; +extern UINT8 AcpiGbl_RegionFillValue; +extern UINT8 AcpiGbl_UseHwReducedFadt; +extern BOOLEAN AcpiGbl_DisplayRegionAccess; +extern BOOLEAN AcpiGbl_DoInterfaceTests; +extern BOOLEAN AcpiGbl_LoadTestTables; +extern FILE *AcpiGbl_NamespaceInitFile; +extern ACPI_CONNECTION_INFO AeMyContext; + + #define TEST_OUTPUT_LEVEL(lvl) if ((lvl) & OutputLevel) #define OSD_PRINT(lvl,fp) TEST_OUTPUT_LEVEL(lvl) {\ @@ -197,8 +179,7 @@ AeCtrlCHandler ( ACPI_STATUS AeBuildLocalTables ( - UINT32 TableCount, - AE_TABLE_DESC *TableList); + ACPI_NEW_TABLE_DESC *TableList); ACPI_STATUS AeInstallTables ( diff --git a/src/acpica/source/tools/acpiexec/aehandlers.c b/src/acpica/source/tools/acpiexec/aehandlers.c index 97ea103..9a3f913 100644 --- a/src/acpica/source/tools/acpiexec/aehandlers.c +++ b/src/acpica/source/tools/acpiexec/aehandlers.c @@ -435,6 +435,7 @@ AeExceptionHandler ( { AcpiOsPrintf ("at module level (table load)"); } + AcpiOsPrintf (" Opcode [%s] @%X\n", AcpiPsGetOpcodeName (Opcode), AmlOffset); /* @@ -530,7 +531,7 @@ AeTableHandler ( /* Enable any GPEs associated with newly-loaded GPE methods */ Status = AcpiUpdateAllGpes (); - AE_CHECK_OK (AcpiUpdateAllGpes, Status); + ACPI_CHECK_OK (AcpiUpdateAllGpes, Status); printf ("[AcpiExec] Table Event %s, [%4.4s] %p\n", TableEvents[Event], ((ACPI_TABLE_HEADER *) Table)->Signature, Table); @@ -600,7 +601,8 @@ AeGlobalEventHandler ( break; } - AcpiOsPrintf ("[AcpiExec] Global Event Handler received: Type %s Number %.2X Dev %p\n", + AcpiOsPrintf ( + "[AcpiExec] Global Event Handler received: Type %s Number %.2X Dev %p\n", TypeName, EventNumber, Device); } @@ -771,15 +773,17 @@ AeInstallLateHandlers ( /* Install a user SCI handler */ Status = AeInstallSciHandler (); - AE_CHECK_OK (AeInstallSciHandler, Status); + ACPI_CHECK_OK (AeInstallSciHandler, Status); /* Install some fixed event handlers */ - Status = AcpiInstallFixedEventHandler (ACPI_EVENT_GLOBAL, AeEventHandler, NULL); - AE_CHECK_OK (AcpiInstallFixedEventHandler, Status); + Status = AcpiInstallFixedEventHandler ( + ACPI_EVENT_GLOBAL, AeEventHandler, NULL); + ACPI_CHECK_OK (AcpiInstallFixedEventHandler, Status); - Status = AcpiInstallFixedEventHandler (ACPI_EVENT_RTC, AeEventHandler, NULL); - AE_CHECK_OK (AcpiInstallFixedEventHandler, Status); + Status = AcpiInstallFixedEventHandler ( + ACPI_EVENT_RTC, AeEventHandler, NULL); + ACPI_CHECK_OK (AcpiInstallFixedEventHandler, Status); } #endif /* !ACPI_REDUCED_HARDWARE */ @@ -889,11 +893,11 @@ AeInstallEarlyHandlers ( Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY, AeNotifyHandler1, NULL); - AE_CHECK_OK (AcpiInstallNotifyHandler, Status); + ACPI_CHECK_OK (AcpiInstallNotifyHandler, Status); Status = AcpiRemoveNotifyHandler (Handle, ACPI_ALL_NOTIFY, AeNotifyHandler1); - AE_CHECK_OK (AcpiRemoveNotifyHandler, Status); + ACPI_CHECK_OK (AcpiRemoveNotifyHandler, Status); #if 0 Status = AcpiInstallNotifyHandler (Handle, ACPI_ALL_NOTIFY, @@ -919,35 +923,34 @@ AeInstallEarlyHandlers ( AeNotifyHandler1, ACPI_CAST_PTR (void, 0x77777777)); Status = AcpiAttachData (Handle, AeAttachedDataHandler, Handle); - AE_CHECK_OK (AcpiAttachData, Status); + ACPI_CHECK_OK (AcpiAttachData, Status); Status = AcpiDetachData (Handle, AeAttachedDataHandler); - AE_CHECK_OK (AcpiDetachData, Status); + ACPI_CHECK_OK (AcpiDetachData, Status); /* Test attach data at the root object */ Status = AcpiAttachData (ACPI_ROOT_OBJECT, AeAttachedDataHandler, AcpiGbl_RootNode); - AE_CHECK_OK (AcpiAttachData, Status); + ACPI_CHECK_OK (AcpiAttachData, Status); Status = AcpiAttachData (ACPI_ROOT_OBJECT, AeAttachedDataHandler2, AcpiGbl_RootNode); - AE_CHECK_OK (AcpiAttachData, Status); + ACPI_CHECK_OK (AcpiAttachData, Status); /* Test support for multiple attaches */ Status = AcpiAttachData (Handle, AeAttachedDataHandler, Handle); - AE_CHECK_OK (AcpiAttachData, Status); + ACPI_CHECK_OK (AcpiAttachData, Status); Status = AcpiAttachData (Handle, AeAttachedDataHandler2, Handle); - AE_CHECK_OK (AcpiAttachData, Status); + ACPI_CHECK_OK (AcpiAttachData, Status); } else { printf ("No _SB_ found, %s\n", AcpiFormatException (Status)); } - Status = AcpiGetHandle (NULL, "\\_TZ.TZ1", &Handle); if (ACPI_SUCCESS (Status)) { diff --git a/src/acpica/source/tools/acpiexec/aeregion.c b/src/acpica/source/tools/acpiexec/aeregion.c index 55b8e7f..46ddcb8 100644 --- a/src/acpica/source/tools/acpiexec/aeregion.c +++ b/src/acpica/source/tools/acpiexec/aeregion.c @@ -237,8 +237,8 @@ AeInstallRegionHandlers ( /* Install handler at the root object */ Status = AcpiInstallAddressSpaceHandler (ACPI_ROOT_OBJECT, - SpaceIdList[i], AeRegionHandler, - AeRegionInit, &AeMyContext); + SpaceIdList[i], AeRegionHandler, + AeRegionInit, &AeMyContext); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -266,8 +266,8 @@ AeOverrideRegionHandlers ( /* Install handler at the root object */ Status = AcpiInstallAddressSpaceHandler (ACPI_ROOT_OBJECT, - DefaultSpaceIdList[i], AeRegionHandler, - AeRegionInit, &AeMyContext); + DefaultSpaceIdList[i], AeRegionHandler, + AeRegionInit, &AeMyContext); if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, @@ -445,9 +445,10 @@ AeRegionHandler ( Length = (ACPI_SIZE) RegionObject->Region.Length; SpaceId = RegionObject->Region.SpaceId; - ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, "Operation Region request on %s at 0x%X\n", - AcpiUtGetRegionName (RegionObject->Region.SpaceId), - (UINT32) Address)); + ACPI_DEBUG_PRINT ((ACPI_DB_OPREGION, + "Operation Region request on %s at 0x%X\n", + AcpiUtGetRegionName (RegionObject->Region.SpaceId), + (UINT32) Address)); /* * Region support can be disabled with the -do option. @@ -482,16 +483,16 @@ AeRegionHandler ( /* Split the 64-bit request into two 32-bit requests */ Status = AcpiHwReadPort (Address, &Value1, 32); - AE_CHECK_OK (AcpiHwReadPort, Status); + ACPI_CHECK_OK (AcpiHwReadPort, Status); Status = AcpiHwReadPort (Address+4, &Value2, 32); - AE_CHECK_OK (AcpiHwReadPort, Status); + ACPI_CHECK_OK (AcpiHwReadPort, Status); *Value = Value1 | ((UINT64) Value2 << 32); } else { Status = AcpiHwReadPort (Address, &Value1, BitWidth); - AE_CHECK_OK (AcpiHwReadPort, Status); + ACPI_CHECK_OK (AcpiHwReadPort, Status); *Value = (UINT64) Value1; } break; @@ -503,14 +504,14 @@ AeRegionHandler ( /* Split the 64-bit request into two 32-bit requests */ Status = AcpiHwWritePort (Address, ACPI_LODWORD (*Value), 32); - AE_CHECK_OK (AcpiHwWritePort, Status); + ACPI_CHECK_OK (AcpiHwWritePort, Status); Status = AcpiHwWritePort (Address+4, ACPI_HIDWORD (*Value), 32); - AE_CHECK_OK (AcpiHwWritePort, Status); + ACPI_CHECK_OK (AcpiHwWritePort, Status); } else { Status = AcpiHwWritePort (Address, (UINT32) *Value, BitWidth); - AE_CHECK_OK (AcpiHwWritePort, Status); + ACPI_CHECK_OK (AcpiHwWritePort, Status); } break; @@ -891,7 +892,8 @@ AeRegionHandler ( ((UINT64)(RegionElement->Address) + RegionElement->Length)) { ACPI_WARNING ((AE_INFO, - "Request on [%4.4s] is beyond region limit Req-0x%X+0x%X, Base=0x%X, Len-0x%X", + "Request on [%4.4s] is beyond region limit " + "Req-0x%X+0x%X, Base=0x%X, Len-0x%X", (RegionObject->Region.Node)->Name.Ascii, (UINT32) Address, ByteWidth, (UINT32)(RegionElement->Address), RegionElement->Length)); @@ -903,7 +905,7 @@ AeRegionHandler ( * Get BufferValue to point to the "address" in the buffer */ BufferValue = ((UINT8 *) RegionElement->Buffer + - ((UINT64) Address - (UINT64) RegionElement->Address)); + ((UINT64) Address - (UINT64) RegionElement->Address)); DoFunction: /*