Patchwork acpica: update to ACPICA version 20130517.

login
register
mail settings
Submitter Colin King
Date May 17, 2013, 7:58 p.m.
Message ID <1368820687-16493-1-git-send-email-colin.king@canonical.com>
Download mbox | patch
Permalink /patch/244697/
State Accepted
Headers show

Comments

Colin King - May 17, 2013, 7:58 p.m.
From: Colin Ian King <colin.king@canonical.com>

It seems prudent to pick up some recent ACPICA bug fixes, most
particularly _INI and _CST methods and iASL.

Update to use ACPICA version 20130517, new commits in ACPICA
since 20130418 (some of which may not be included since we're only
using a subset of ACPICA):

7006193 Update version to 20130517.
d48a4e5 Logfile: Changes for version 20130517.
205240f ACPICA Reference: Update for acpidump and address handlers.
4610702 Add several repairs for _CST predefined name.
47502d2 Move _PRT repair into the standard complex repair module.
6421b9d Makefiles: add some additional comments/whitespace.
80f53a7 Merge branch 'osx-makefile' of ssh://ssh.github.com/liangqi/acpica
f1393c4 AcpiExec: Install some local space handlers for PCI devices.
7e7085f Debugger: Update an initialization error message.
475ab55 iASL: Add package support for the -so (offset table) option.
7572837 iASL: Fix regression for -D preprocessor option (define symbol).
b5de16b Support Mac OS X in Makefile
8d0d88a Clear events initialized flag upon event component termination.
11c53b9 Fix possible memory leak in GPE init error path.
3d39b6d Tests/ASLTS: Update master script for recent makefile changes.
4e6d777 ACPICA Termination: Delete global lock pending lock.
dd0eb02 ACPICA termination: Clear debug buffer global.
69c10b6 iASL: Fix for too-strict package object validation.
11e9350 Build instructions: Update for new ACPICA website.
1ccc2e8 Update .gitignore file.
87bda94 iASL/TableCompiler: Fix an int/char width issue on some compilers
f559452 Unix makefiles: Remove unused cross-platform support.
1553228 iASL: Split large main module into two files.
637accd Fix for _INI regression introduced in version 20130328.
63ebf51 iASL: Add mechanism to disable specific warnings/remarks.
ba84d0f iASL: If a non-serialized method creates named objects, issue remark.
d6c105a Update release build script for acpidump.
69d9128 AcpiDump: Add porting instructions to main module.
02fe967 Update interface to AcpiUtValidAcpiName.
fad0d28 Deploy ACPI_DEBUG_INITIALIZE across all ACPICA utilities.
1cf0639 Update makefiles and project files for new acpidump utility.
15215bf New: Portable acpidump utility (get system ACPI tables).
bc5dceb AcpiExec: Correctly implement -h option.
34f226f Do not use extended sleep registers unless HW-reduced bit is set.
2dbd8e1 Update makefiles and project files for new file.
321bd98 Split table print utilities to a new a separate file.
fddb804 Unix makefile: Abort top-level make on any sub-component error.
703a1b7 iASL/-so option: Add support for control methods.
2aabe57 Add option to disable loading of SSDTs from the RSDT/XSDT.
6b0b8ee Standardize all switch() blocks.
c0e2cf9 Debugger: Fix strlen +1 issue with History command.
a9d8bd0 Update makefiles and project files for new file.
83cded8 Split internal error msg routines to a separate file.
a3f45e5 AcpiBin: Miscellaneous cleanup.
3cc4aab Update makefiles and project files for new file.
ba8e736 Split buffer dump routines into separate file.
9e48298 Debugger: Fix 80-char command line limitation for History command.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/acpica/Makefile.am                             |   3 +
 src/acpica/source/common/adisasm.c                 |   3 +
 src/acpica/source/common/adwalk.c                  |   7 +
 src/acpica/source/common/dmextern.c                |   1 +
 src/acpica/source/common/dmrestag.c                |   2 +-
 src/acpica/source/common/dmtable.c                 |  33 +-
 src/acpica/source/common/dmtbdump.c                |  83 +++
 src/acpica/source/compiler/aslanalyze.c            |   2 +
 src/acpica/source/compiler/aslbtypes.c             |  38 +-
 src/acpica/source/compiler/aslcodegen.c            |   5 +
 src/acpica/source/compiler/aslcompile.c            |   7 +
 src/acpica/source/compiler/aslcompiler.h           |  27 +
 src/acpica/source/compiler/aslerror.c              | 135 +++-
 src/acpica/source/compiler/aslfold.c               |   9 +-
 src/acpica/source/compiler/aslglobal.h             |   3 +
 src/acpica/source/compiler/aslhex.c                |   2 +
 src/acpica/source/compiler/asllength.c             |   2 +
 src/acpica/source/compiler/asllisting.c            |  20 +-
 src/acpica/source/compiler/asllistsup.c            |   4 +
 src/acpica/source/compiler/aslload.c               |   6 +-
 src/acpica/source/compiler/asllookup.c             |   2 +
 src/acpica/source/compiler/aslmain.c               | 774 +--------------------
 src/acpica/source/compiler/aslmessages.h           |  86 ++-
 src/acpica/source/compiler/aslmethod.c             |  87 ++-
 src/acpica/source/compiler/aslnamesp.c             |  21 +-
 src/acpica/source/compiler/asloffset.c             | 122 +++-
 src/acpica/source/compiler/aslopcodes.c            |   3 +
 src/acpica/source/compiler/asloperands.c           |  23 +-
 src/acpica/source/compiler/aslpredef.c             |  22 +-
 src/acpica/source/compiler/aslresource.c           |  45 ++
 src/acpica/source/compiler/aslrestype1i.c          |   1 +
 src/acpica/source/compiler/aslrestype2s.c          |   4 +-
 src/acpica/source/compiler/aslstartup.c            |   1 +
 src/acpica/source/compiler/aslsupport.l            |  15 +-
 src/acpica/source/compiler/asltransform.c          |   9 +-
 src/acpica/source/compiler/asltree.c               |  50 +-
 src/acpica/source/compiler/asltypes.h              |  11 +-
 src/acpica/source/compiler/aslutils.c              |   6 +
 src/acpica/source/compiler/aslwalks.c              |  10 +
 src/acpica/source/compiler/aslxref.c               |  12 +
 src/acpica/source/compiler/dtexpress.c             |  19 +
 src/acpica/source/compiler/dtfield.c               |   9 +
 src/acpica/source/compiler/dtio.c                  |  32 +-
 src/acpica/source/compiler/dtsubtable.c            |   3 +
 src/acpica/source/compiler/dttable.c               |  81 +++
 src/acpica/source/compiler/dtutils.c               |  43 +-
 src/acpica/source/compiler/prscan.c                |  46 +-
 src/acpica/source/components/debugger/dbcmds.c     |   5 +
 src/acpica/source/components/debugger/dbconvert.c  |   4 +
 src/acpica/source/components/debugger/dbdisply.c   |  14 +-
 src/acpica/source/components/debugger/dbexec.c     |   2 +
 src/acpica/source/components/debugger/dbhistry.c   |  38 +-
 src/acpica/source/components/debugger/dbinput.c    |  59 +-
 src/acpica/source/components/debugger/dbmethod.c   |   6 +
 src/acpica/source/components/debugger/dbnames.c    |   2 +-
 src/acpica/source/components/debugger/dbstats.c    |   4 +-
 src/acpica/source/components/debugger/dbutils.c    |   8 -
 src/acpica/source/components/debugger/dbxface.c    |  18 +-
 .../source/components/disassembler/dmbuffer.c      |   1 -
 .../source/components/disassembler/dmdeferred.c    |   2 +
 .../source/components/disassembler/dmnames.c       |   4 +
 .../source/components/disassembler/dmobject.c      |  16 +-
 .../source/components/disassembler/dmopcode.c      |  27 +-
 .../source/components/disassembler/dmresrc.c       |   1 +
 .../source/components/disassembler/dmresrcl.c      |  12 +
 .../source/components/disassembler/dmresrcl2.c     |   4 +
 src/acpica/source/components/disassembler/dmwalk.c |   8 +-
 .../source/components/dispatcher/dscontrol.c       |  12 +-
 src/acpica/source/components/dispatcher/dsfield.c  |   4 +
 src/acpica/source/components/dispatcher/dsinit.c   |   4 +-
 src/acpica/source/components/dispatcher/dsmthdat.c |   2 +-
 src/acpica/source/components/dispatcher/dsobject.c |  12 +-
 src/acpica/source/components/dispatcher/dsopcode.c |   1 +
 src/acpica/source/components/dispatcher/dsutils.c  |   8 +-
 src/acpica/source/components/dispatcher/dswexec.c  |  14 +-
 src/acpica/source/components/dispatcher/dswload.c  |   8 +-
 src/acpica/source/components/dispatcher/dswload2.c |  11 +-
 src/acpica/source/components/events/evglock.c      |   1 +
 src/acpica/source/components/events/evgpe.c        |   4 +-
 src/acpica/source/components/events/evgpeblk.c     |   2 +
 src/acpica/source/components/events/evgpeinit.c    |   3 +
 src/acpica/source/components/events/evhandler.c    |   7 +
 src/acpica/source/components/events/evmisc.c       |   3 +
 src/acpica/source/components/events/evrgnini.c     |   2 +
 src/acpica/source/components/events/evxfgpe.c      |   6 +
 src/acpica/source/components/events/evxfregn.c     |   1 +
 src/acpica/source/components/executer/exconfig.c   |   3 +-
 src/acpica/source/components/executer/exconvrt.c   |  25 +-
 src/acpica/source/components/executer/excreate.c   |   3 -
 src/acpica/source/components/executer/exdebug.c    |   2 +
 src/acpica/source/components/executer/exdump.c     |  30 +-
 src/acpica/source/components/executer/exfield.c    |   4 +
 src/acpica/source/components/executer/exfldio.c    |   7 -
 src/acpica/source/components/executer/exmisc.c     |  23 +-
 src/acpica/source/components/executer/exnames.c    |   5 -
 src/acpica/source/components/executer/exoparg1.c   |  43 +-
 src/acpica/source/components/executer/exoparg2.c   |   9 -
 src/acpica/source/components/executer/exoparg3.c   |   3 -
 src/acpica/source/components/executer/exoparg6.c   |   7 -
 src/acpica/source/components/executer/exprep.c     |   9 +-
 src/acpica/source/components/executer/exregion.c   |  19 +
 src/acpica/source/components/executer/exresnte.c   |   7 +-
 src/acpica/source/components/executer/exresolv.c   |  18 +-
 src/acpica/source/components/executer/exresop.c    |  21 +-
 src/acpica/source/components/executer/exstore.c    |  12 +-
 src/acpica/source/components/executer/exstoren.c   |   6 -
 src/acpica/source/components/hardware/hwacpi.c     |   2 +-
 src/acpica/source/components/hardware/hwgpe.c      |   3 +
 src/acpica/source/components/hardware/hwregs.c     |  16 +-
 src/acpica/source/components/hardware/hwxface.c    |   3 +
 src/acpica/source/components/hardware/hwxfsleep.c  |  13 +-
 src/acpica/source/components/namespace/nsaccess.c  |   4 +-
 src/acpica/source/components/namespace/nsconvert.c |   3 +
 src/acpica/source/components/namespace/nsdump.c    |  25 +-
 src/acpica/source/components/namespace/nsinit.c    |  10 +
 src/acpica/source/components/namespace/nspredef.c  |  14 +-
 src/acpica/source/components/namespace/nsprepkg.c  |  16 -
 src/acpica/source/components/namespace/nsrepair.c  |   1 +
 src/acpica/source/components/namespace/nsrepair2.c | 304 +++++++-
 src/acpica/source/components/namespace/nsutils.c   |   3 +
 src/acpica/source/components/namespace/nsxfeval.c  |   1 +
 src/acpica/source/components/parser/psargs.c       |  17 +-
 src/acpica/source/components/parser/psloop.c       |   2 +-
 src/acpica/source/components/parser/psobject.c     |   6 +-
 src/acpica/source/components/parser/psparse.c      |   9 +-
 src/acpica/source/components/parser/pstree.c       |   6 +-
 src/acpica/source/components/resources/rscalc.c    |   7 +-
 src/acpica/source/components/resources/rscreate.c  |  30 -
 src/acpica/source/components/resources/rsdump.c    |  10 +
 src/acpica/source/components/resources/rsmisc.c    |  57 +-
 src/acpica/source/components/resources/rsutils.c   |   5 +
 src/acpica/source/components/resources/rsxface.c   |   1 +
 src/acpica/source/components/tables/tbinstal.c     |   5 +-
 src/acpica/source/components/tables/tbprint.c      | 337 +++++++++
 src/acpica/source/components/tables/tbutils.c      | 213 +-----
 src/acpica/source/components/tables/tbxfload.c     |  12 +
 src/acpica/source/components/utilities/utbuffer.c  | 292 ++++++++
 src/acpica/source/components/utilities/utcopy.c    |  23 +-
 src/acpica/source/components/utilities/utdebug.c   | 167 +----
 src/acpica/source/components/utilities/utdelete.c  |  13 +-
 src/acpica/source/components/utilities/uterror.c   | 399 +++++++++++
 src/acpica/source/components/utilities/uteval.c    |   5 +
 src/acpica/source/components/utilities/utexcep.c   |   1 +
 src/acpica/source/components/utilities/utids.c     |   3 +
 src/acpica/source/components/utilities/utmisc.c    |   2 +
 src/acpica/source/components/utilities/utobject.c  |  11 +-
 src/acpica/source/components/utilities/utstring.c  |  18 +-
 src/acpica/source/components/utilities/uttrack.c   |   8 +
 src/acpica/source/components/utilities/utxferror.c | 317 ---------
 src/acpica/source/include/acapps.h                 |   8 +
 src/acpica/source/include/acglobal.h               |   6 +
 src/acpica/source/include/acpiosxf.h               |  22 +
 src/acpica/source/include/acpixf.h                 |   3 +-
 src/acpica/source/include/actypes.h                |   8 +
 src/acpica/source/include/acutils.h                |  45 +-
 src/acpica/source/include/platform/acenv.h         |   8 +-
 .../source/os_specific/service_layers/osunixxf.c   |  17 +-
 src/acpica/source/tools/acpiexec/aehandlers.c      |  84 ++-
 158 files changed, 2943 insertions(+), 2177 deletions(-)
 create mode 100644 src/acpica/source/components/tables/tbprint.c
 create mode 100644 src/acpica/source/components/utilities/utbuffer.c
 create mode 100644 src/acpica/source/components/utilities/uterror.c
Keng-Yu Lin - May 22, 2013, 9:20 a.m.
On Sat, May 18, 2013 at 3:58 AM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> It seems prudent to pick up some recent ACPICA bug fixes, most
> particularly _INI and _CST methods and iASL.
>
> Update to use ACPICA version 20130517, new commits in ACPICA
> since 20130418 (some of which may not be included since we're only
> using a subset of ACPICA):
>
> 7006193 Update version to 20130517.
> d48a4e5 Logfile: Changes for version 20130517.
> 205240f ACPICA Reference: Update for acpidump and address handlers.
> 4610702 Add several repairs for _CST predefined name.
> 47502d2 Move _PRT repair into the standard complex repair module.
> 6421b9d Makefiles: add some additional comments/whitespace.
> 80f53a7 Merge branch 'osx-makefile' of ssh://ssh.github.com/liangqi/acpica
> f1393c4 AcpiExec: Install some local space handlers for PCI devices.
> 7e7085f Debugger: Update an initialization error message.
> 475ab55 iASL: Add package support for the -so (offset table) option.
> 7572837 iASL: Fix regression for -D preprocessor option (define symbol).
> b5de16b Support Mac OS X in Makefile
> 8d0d88a Clear events initialized flag upon event component termination.
> 11c53b9 Fix possible memory leak in GPE init error path.
> 3d39b6d Tests/ASLTS: Update master script for recent makefile changes.
> 4e6d777 ACPICA Termination: Delete global lock pending lock.
> dd0eb02 ACPICA termination: Clear debug buffer global.
> 69c10b6 iASL: Fix for too-strict package object validation.
> 11e9350 Build instructions: Update for new ACPICA website.
> 1ccc2e8 Update .gitignore file.
> 87bda94 iASL/TableCompiler: Fix an int/char width issue on some compilers
> f559452 Unix makefiles: Remove unused cross-platform support.
> 1553228 iASL: Split large main module into two files.
> 637accd Fix for _INI regression introduced in version 20130328.
> 63ebf51 iASL: Add mechanism to disable specific warnings/remarks.
> ba84d0f iASL: If a non-serialized method creates named objects, issue remark.
> d6c105a Update release build script for acpidump.
> 69d9128 AcpiDump: Add porting instructions to main module.
> 02fe967 Update interface to AcpiUtValidAcpiName.
> fad0d28 Deploy ACPI_DEBUG_INITIALIZE across all ACPICA utilities.
> 1cf0639 Update makefiles and project files for new acpidump utility.
> 15215bf New: Portable acpidump utility (get system ACPI tables).
> bc5dceb AcpiExec: Correctly implement -h option.
> 34f226f Do not use extended sleep registers unless HW-reduced bit is set.
> 2dbd8e1 Update makefiles and project files for new file.
> 321bd98 Split table print utilities to a new a separate file.
> fddb804 Unix makefile: Abort top-level make on any sub-component error.
> 703a1b7 iASL/-so option: Add support for control methods.
> 2aabe57 Add option to disable loading of SSDTs from the RSDT/XSDT.
> 6b0b8ee Standardize all switch() blocks.
> c0e2cf9 Debugger: Fix strlen +1 issue with History command.
> a9d8bd0 Update makefiles and project files for new file.
> 83cded8 Split internal error msg routines to a separate file.
> a3f45e5 AcpiBin: Miscellaneous cleanup.
> 3cc4aab Update makefiles and project files for new file.
> ba8e736 Split buffer dump routines into separate file.
> 9e48298 Debugger: Fix 80-char command line limitation for History command.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpica/Makefile.am                             |   3 +
>  src/acpica/source/common/adisasm.c                 |   3 +
>  src/acpica/source/common/adwalk.c                  |   7 +
>  src/acpica/source/common/dmextern.c                |   1 +
>  src/acpica/source/common/dmrestag.c                |   2 +-
>  src/acpica/source/common/dmtable.c                 |  33 +-
>  src/acpica/source/common/dmtbdump.c                |  83 +++
>  src/acpica/source/compiler/aslanalyze.c            |   2 +
>  src/acpica/source/compiler/aslbtypes.c             |  38 +-
>  src/acpica/source/compiler/aslcodegen.c            |   5 +
>  src/acpica/source/compiler/aslcompile.c            |   7 +
>  src/acpica/source/compiler/aslcompiler.h           |  27 +
>  src/acpica/source/compiler/aslerror.c              | 135 +++-
>  src/acpica/source/compiler/aslfold.c               |   9 +-
>  src/acpica/source/compiler/aslglobal.h             |   3 +
>  src/acpica/source/compiler/aslhex.c                |   2 +
>  src/acpica/source/compiler/asllength.c             |   2 +
>  src/acpica/source/compiler/asllisting.c            |  20 +-
>  src/acpica/source/compiler/asllistsup.c            |   4 +
>  src/acpica/source/compiler/aslload.c               |   6 +-
>  src/acpica/source/compiler/asllookup.c             |   2 +
>  src/acpica/source/compiler/aslmain.c               | 774 +--------------------
>  src/acpica/source/compiler/aslmessages.h           |  86 ++-
>  src/acpica/source/compiler/aslmethod.c             |  87 ++-
>  src/acpica/source/compiler/aslnamesp.c             |  21 +-
>  src/acpica/source/compiler/asloffset.c             | 122 +++-
>  src/acpica/source/compiler/aslopcodes.c            |   3 +
>  src/acpica/source/compiler/asloperands.c           |  23 +-
>  src/acpica/source/compiler/aslpredef.c             |  22 +-
>  src/acpica/source/compiler/aslresource.c           |  45 ++
>  src/acpica/source/compiler/aslrestype1i.c          |   1 +
>  src/acpica/source/compiler/aslrestype2s.c          |   4 +-
>  src/acpica/source/compiler/aslstartup.c            |   1 +
>  src/acpica/source/compiler/aslsupport.l            |  15 +-
>  src/acpica/source/compiler/asltransform.c          |   9 +-
>  src/acpica/source/compiler/asltree.c               |  50 +-
>  src/acpica/source/compiler/asltypes.h              |  11 +-
>  src/acpica/source/compiler/aslutils.c              |   6 +
>  src/acpica/source/compiler/aslwalks.c              |  10 +
>  src/acpica/source/compiler/aslxref.c               |  12 +
>  src/acpica/source/compiler/dtexpress.c             |  19 +
>  src/acpica/source/compiler/dtfield.c               |   9 +
>  src/acpica/source/compiler/dtio.c                  |  32 +-
>  src/acpica/source/compiler/dtsubtable.c            |   3 +
>  src/acpica/source/compiler/dttable.c               |  81 +++
>  src/acpica/source/compiler/dtutils.c               |  43 +-
>  src/acpica/source/compiler/prscan.c                |  46 +-
>  src/acpica/source/components/debugger/dbcmds.c     |   5 +
>  src/acpica/source/components/debugger/dbconvert.c  |   4 +
>  src/acpica/source/components/debugger/dbdisply.c   |  14 +-
>  src/acpica/source/components/debugger/dbexec.c     |   2 +
>  src/acpica/source/components/debugger/dbhistry.c   |  38 +-
>  src/acpica/source/components/debugger/dbinput.c    |  59 +-
>  src/acpica/source/components/debugger/dbmethod.c   |   6 +
>  src/acpica/source/components/debugger/dbnames.c    |   2 +-
>  src/acpica/source/components/debugger/dbstats.c    |   4 +-
>  src/acpica/source/components/debugger/dbutils.c    |   8 -
>  src/acpica/source/components/debugger/dbxface.c    |  18 +-
>  .../source/components/disassembler/dmbuffer.c      |   1 -
>  .../source/components/disassembler/dmdeferred.c    |   2 +
>  .../source/components/disassembler/dmnames.c       |   4 +
>  .../source/components/disassembler/dmobject.c      |  16 +-
>  .../source/components/disassembler/dmopcode.c      |  27 +-
>  .../source/components/disassembler/dmresrc.c       |   1 +
>  .../source/components/disassembler/dmresrcl.c      |  12 +
>  .../source/components/disassembler/dmresrcl2.c     |   4 +
>  src/acpica/source/components/disassembler/dmwalk.c |   8 +-
>  .../source/components/dispatcher/dscontrol.c       |  12 +-
>  src/acpica/source/components/dispatcher/dsfield.c  |   4 +
>  src/acpica/source/components/dispatcher/dsinit.c   |   4 +-
>  src/acpica/source/components/dispatcher/dsmthdat.c |   2 +-
>  src/acpica/source/components/dispatcher/dsobject.c |  12 +-
>  src/acpica/source/components/dispatcher/dsopcode.c |   1 +
>  src/acpica/source/components/dispatcher/dsutils.c  |   8 +-
>  src/acpica/source/components/dispatcher/dswexec.c  |  14 +-
>  src/acpica/source/components/dispatcher/dswload.c  |   8 +-
>  src/acpica/source/components/dispatcher/dswload2.c |  11 +-
>  src/acpica/source/components/events/evglock.c      |   1 +
>  src/acpica/source/components/events/evgpe.c        |   4 +-
>  src/acpica/source/components/events/evgpeblk.c     |   2 +
>  src/acpica/source/components/events/evgpeinit.c    |   3 +
>  src/acpica/source/components/events/evhandler.c    |   7 +
>  src/acpica/source/components/events/evmisc.c       |   3 +
>  src/acpica/source/components/events/evrgnini.c     |   2 +
>  src/acpica/source/components/events/evxfgpe.c      |   6 +
>  src/acpica/source/components/events/evxfregn.c     |   1 +
>  src/acpica/source/components/executer/exconfig.c   |   3 +-
>  src/acpica/source/components/executer/exconvrt.c   |  25 +-
>  src/acpica/source/components/executer/excreate.c   |   3 -
>  src/acpica/source/components/executer/exdebug.c    |   2 +
>  src/acpica/source/components/executer/exdump.c     |  30 +-
>  src/acpica/source/components/executer/exfield.c    |   4 +
>  src/acpica/source/components/executer/exfldio.c    |   7 -
>  src/acpica/source/components/executer/exmisc.c     |  23 +-
>  src/acpica/source/components/executer/exnames.c    |   5 -
>  src/acpica/source/components/executer/exoparg1.c   |  43 +-
>  src/acpica/source/components/executer/exoparg2.c   |   9 -
>  src/acpica/source/components/executer/exoparg3.c   |   3 -
>  src/acpica/source/components/executer/exoparg6.c   |   7 -
>  src/acpica/source/components/executer/exprep.c     |   9 +-
>  src/acpica/source/components/executer/exregion.c   |  19 +
>  src/acpica/source/components/executer/exresnte.c   |   7 +-
>  src/acpica/source/components/executer/exresolv.c   |  18 +-
>  src/acpica/source/components/executer/exresop.c    |  21 +-
>  src/acpica/source/components/executer/exstore.c    |  12 +-
>  src/acpica/source/components/executer/exstoren.c   |   6 -
>  src/acpica/source/components/hardware/hwacpi.c     |   2 +-
>  src/acpica/source/components/hardware/hwgpe.c      |   3 +
>  src/acpica/source/components/hardware/hwregs.c     |  16 +-
>  src/acpica/source/components/hardware/hwxface.c    |   3 +
>  src/acpica/source/components/hardware/hwxfsleep.c  |  13 +-
>  src/acpica/source/components/namespace/nsaccess.c  |   4 +-
>  src/acpica/source/components/namespace/nsconvert.c |   3 +
>  src/acpica/source/components/namespace/nsdump.c    |  25 +-
>  src/acpica/source/components/namespace/nsinit.c    |  10 +
>  src/acpica/source/components/namespace/nspredef.c  |  14 +-
>  src/acpica/source/components/namespace/nsprepkg.c  |  16 -
>  src/acpica/source/components/namespace/nsrepair.c  |   1 +
>  src/acpica/source/components/namespace/nsrepair2.c | 304 +++++++-
>  src/acpica/source/components/namespace/nsutils.c   |   3 +
>  src/acpica/source/components/namespace/nsxfeval.c  |   1 +
>  src/acpica/source/components/parser/psargs.c       |  17 +-
>  src/acpica/source/components/parser/psloop.c       |   2 +-
>  src/acpica/source/components/parser/psobject.c     |   6 +-
>  src/acpica/source/components/parser/psparse.c      |   9 +-
>  src/acpica/source/components/parser/pstree.c       |   6 +-
>  src/acpica/source/components/resources/rscalc.c    |   7 +-
>  src/acpica/source/components/resources/rscreate.c  |  30 -
>  src/acpica/source/components/resources/rsdump.c    |  10 +
>  src/acpica/source/components/resources/rsmisc.c    |  57 +-
>  src/acpica/source/components/resources/rsutils.c   |   5 +
>  src/acpica/source/components/resources/rsxface.c   |   1 +
>  src/acpica/source/components/tables/tbinstal.c     |   5 +-
>  src/acpica/source/components/tables/tbprint.c      | 337 +++++++++
>  src/acpica/source/components/tables/tbutils.c      | 213 +-----
>  src/acpica/source/components/tables/tbxfload.c     |  12 +
>  src/acpica/source/components/utilities/utbuffer.c  | 292 ++++++++
>  src/acpica/source/components/utilities/utcopy.c    |  23 +-
>  src/acpica/source/components/utilities/utdebug.c   | 167 +----
>  src/acpica/source/components/utilities/utdelete.c  |  13 +-
>  src/acpica/source/components/utilities/uterror.c   | 399 +++++++++++
>  src/acpica/source/components/utilities/uteval.c    |   5 +
>  src/acpica/source/components/utilities/utexcep.c   |   1 +
>  src/acpica/source/components/utilities/utids.c     |   3 +
>  src/acpica/source/components/utilities/utmisc.c    |   2 +
>  src/acpica/source/components/utilities/utobject.c  |  11 +-
>  src/acpica/source/components/utilities/utstring.c  |  18 +-
>  src/acpica/source/components/utilities/uttrack.c   |   8 +
>  src/acpica/source/components/utilities/utxferror.c | 317 ---------
>  src/acpica/source/include/acapps.h                 |   8 +
>  src/acpica/source/include/acglobal.h               |   6 +
>  src/acpica/source/include/acpiosxf.h               |  22 +
>  src/acpica/source/include/acpixf.h                 |   3 +-
>  src/acpica/source/include/actypes.h                |   8 +
>  src/acpica/source/include/acutils.h                |  45 +-
>  src/acpica/source/include/platform/acenv.h         |   8 +-
>  .../source/os_specific/service_layers/osunixxf.c   |  17 +-
>  src/acpica/source/tools/acpiexec/aehandlers.c      |  84 ++-
>  158 files changed, 2943 insertions(+), 2177 deletions(-)
>  create mode 100644 src/acpica/source/components/tables/tbprint.c
>  create mode 100644 src/acpica/source/components/utilities/utbuffer.c
>  create mode 100644 src/acpica/source/components/utilities/uterror.c
>
> diff --git a/src/acpica/Makefile.am b/src/acpica/Makefile.am
> index a6123ab..30f0faa 100644
> --- a/src/acpica/Makefile.am
> +++ b/src/acpica/Makefile.am
> @@ -210,6 +210,7 @@ libfwtsacpica_la_SOURCES =                  \
>         $(ACPICA_COMP)/tables/tbxface.c         \
>         $(ACPICA_COMP)/tables/tbxfroot.c        \
>         $(ACPICA_COMP)/tables/tbxfload.c        \
> +       $(ACPICA_COMP)/tables/tbprint.c         \
>         $(ACPICA_COMP)/utilities/utaddress.c    \
>         $(ACPICA_COMP)/utilities/utalloc.c      \
>         $(ACPICA_COMP)/utilities/utcache.c      \
> @@ -237,6 +238,8 @@ libfwtsacpica_la_SOURCES =                  \
>         $(ACPICA_COMP)/utilities/utstring.c     \
>         $(ACPICA_COMP)/utilities/utownerid.c    \
>         $(ACPICA_COMP)/utilities/utxfinit.c     \
> +       $(ACPICA_COMP)/utilities/uterror.c      \
> +       $(ACPICA_COMP)/utilities/utbuffer.c     \
>         $(ACPICA_SRC)/tools/acpiexec/aehandlers.c
>
>  libfwtsacpica_la_LIBADD = \
> diff --git a/src/acpica/source/common/adisasm.c b/src/acpica/source/common/adisasm.c
> index 5d6f7ba..ea59365 100644
> --- a/src/acpica/source/common/adisasm.c
> +++ b/src/acpica/source/common/adisasm.c
> @@ -700,10 +700,12 @@ AdCreateTableHeader (
>      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))
> @@ -713,6 +715,7 @@ AdCreateTableHeader (
>          break;
>
>      default:
> +
>          break;
>      }
>      AcpiOsPrintf ("\n");
> diff --git a/src/acpica/source/common/adwalk.c b/src/acpica/source/common/adwalk.c
> index 0e3c71a..ecb3860 100644
> --- a/src/acpica/source/common/adwalk.c
> +++ b/src/acpica/source/common/adwalk.c
> @@ -447,14 +447,17 @@ AcpiDmDumpDescending (
>      case AML_BYTE_OP:
>      case AML_WORD_OP:
>      case AML_DWORD_OP:
> +
>          AcpiOsPrintf ("%X", (UINT32) Op->Common.Value.Integer);
>          break;
>
>      case AML_QWORD_OP:
> +
>          AcpiOsPrintf ("%8.8X%8.8X", ACPI_FORMAT_UINT64 (Op->Common.Value.Integer));
>          break;
>
>      case AML_INT_NAMEPATH_OP:
> +
>          if (Op->Common.Value.String)
>          {
>              AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String,
> @@ -472,10 +475,12 @@ AcpiDmDumpDescending (
>      case AML_METHOD_OP:
>      case AML_DEVICE_OP:
>      case AML_INT_NAMEDFIELD_OP:
> +
>          AcpiOsPrintf ("%4.4s", ACPI_CAST_PTR (char, &Op->Named.Name));
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -522,6 +527,7 @@ AcpiDmFindOrphanDescending (
>      {
>  #ifdef ACPI_UNDER_DEVELOPMENT
>      case AML_ADD_OP:
> +
>          ChildOp = Op->Common.Value.Arg;
>          if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
>              !ChildOp->Common.Node)
> @@ -628,6 +634,7 @@ AcpiDmFindOrphanDescending (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/common/dmextern.c b/src/acpica/source/common/dmextern.c
> index c9f0fda..0cd094f 100644
> --- a/src/acpica/source/common/dmextern.c
> +++ b/src/acpica/source/common/dmextern.c
> @@ -666,6 +666,7 @@ AcpiDmAddExternalsToNamespace (
>              break;
>
>          default:
> +
>              break;
>          }
>
> diff --git a/src/acpica/source/common/dmrestag.c b/src/acpica/source/common/dmrestag.c
> index 9ba112b..cc1aece 100644
> --- a/src/acpica/source/common/dmrestag.c
> +++ b/src/acpica/source/common/dmrestag.c
> @@ -870,7 +870,6 @@ AcpiDmGetResourceTag (
>      case ACPI_RESOURCE_NAME_ADDRESS32:
>      case ACPI_RESOURCE_NAME_ADDRESS64:
>      case ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64:
> -
>          /*
>           * Subtype differentiation is the flags.
>           * Kindof brute force, but just blindly search for an index match
> @@ -918,6 +917,7 @@ AcpiDmGetResourceTag (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/common/dmtable.c b/src/acpica/source/common/dmtable.c
> index 34b855c..35767c1 100644
> --- a/src/acpica/source/common/dmtable.c
> +++ b/src/acpica/source/common/dmtable.c
> @@ -769,48 +769,71 @@ AcpiDmDumpTable (
>          case ACPI_DMT_EINJINST:
>          case ACPI_DMT_ERSTACT:
>          case ACPI_DMT_ERSTINST:
> +
>              ByteLength = 1;
>              break;
> +
>          case ACPI_DMT_UINT16:
>          case ACPI_DMT_DMAR:
>          case ACPI_DMT_HEST:
> +
>              ByteLength = 2;
>              break;
> +
>          case ACPI_DMT_UINT24:
> +
>              ByteLength = 3;
>              break;
> +
>          case ACPI_DMT_UINT32:
>          case ACPI_DMT_NAME4:
>          case ACPI_DMT_SIG:
>          case ACPI_DMT_SLIC:
> +
>              ByteLength = 4;
>              break;
> +
>          case ACPI_DMT_UINT40:
> +
>              ByteLength = 5;
>              break;
> +
>          case ACPI_DMT_UINT48:
>          case ACPI_DMT_NAME6:
> +
>              ByteLength = 6;
>              break;
> +
>          case ACPI_DMT_UINT56:
>          case ACPI_DMT_BUF7:
> +
>              ByteLength = 7;
>              break;
> +
>          case ACPI_DMT_UINT64:
>          case ACPI_DMT_NAME8:
> +
>              ByteLength = 8;
>              break;
> +
>          case ACPI_DMT_BUF16:
>          case ACPI_DMT_UUID:
> +
>              ByteLength = 16;
>              break;
> +
>          case ACPI_DMT_BUF128:
> +
>              ByteLength = 128;
>              break;
> +
>          case ACPI_DMT_STRING:
> +
>              ByteLength = ACPI_STRLEN (ACPI_CAST_PTR (char, Target)) + 1;
>              break;
> +
>          case ACPI_DMT_GAS:
> +
>              if (!LastOutputBlankLine)
>              {
>                  AcpiOsPrintf ("\n");
> @@ -818,7 +841,9 @@ AcpiDmDumpTable (
>              }
>              ByteLength = sizeof (ACPI_GENERIC_ADDRESS);
>              break;
> +
>          case ACPI_DMT_HESTNTFY:
> +
>              if (!LastOutputBlankLine)
>              {
>                  AcpiOsPrintf ("\n");
> @@ -826,7 +851,9 @@ AcpiDmDumpTable (
>              }
>              ByteLength = sizeof (ACPI_HEST_NOTIFY);
>              break;
> +
>          default:
> +
>              ByteLength = 0;
>              break;
>          }
> @@ -909,7 +936,6 @@ AcpiDmDumpTable (
>          case ACPI_DMT_BUF7:
>          case ACPI_DMT_BUF16:
>          case ACPI_DMT_BUF128:
> -
>              /*
>               * Buffer: Size depends on the opcode and was set above.
>               * Each hex byte is separated with a space.
> @@ -1218,16 +1244,19 @@ AcpiDmDumpTable (
>              switch (Temp8)
>              {
>              case ACPI_IVRS_TYPE_HARDWARE:
> +
>                  Name = AcpiDmIvrsSubnames[0];
>                  break;
>
>              case ACPI_IVRS_TYPE_MEMORY1:
>              case ACPI_IVRS_TYPE_MEMORY2:
>              case ACPI_IVRS_TYPE_MEMORY3:
> +
>                  Name = AcpiDmIvrsSubnames[1];
>                  break;
>
>              default:
> +
>                  Name = AcpiDmIvrsSubnames[2];
>                  break;
>              }
> @@ -1236,9 +1265,11 @@ AcpiDmDumpTable (
>              break;
>
>          case ACPI_DMT_EXIT:
> +
>              return (AE_OK);
>
>          default:
> +
>              ACPI_ERROR ((AE_INFO,
>                  "**** Invalid table opcode [0x%X] ****\n", Info->Opcode));
>              return (AE_SUPPORT);
> diff --git a/src/acpica/source/common/dmtbdump.c b/src/acpica/source/common/dmtbdump.c
> index 5125681..3d7ac6d 100644
> --- a/src/acpica/source/common/dmtbdump.c
> +++ b/src/acpica/source/common/dmtbdump.c
> @@ -421,27 +421,33 @@ AcpiDmValidateFadtLength (
>      switch (Revision)
>      {
>      case 0:
> +
>          AcpiOsPrintf ("// ACPI Warning: Invalid FADT revision: 0\n");
>          return;
>
>      case 1:
> +
>          ExpectedLength = ACPI_FADT_V1_SIZE;
>          break;
>
>      case 2:
> +
>          ExpectedLength = ACPI_FADT_V2_SIZE;
>          break;
>
>      case 3:
>      case 4:
> +
>          ExpectedLength = ACPI_FADT_V3_SIZE;
>          break;
>
>      case 5:
> +
>          ExpectedLength = ACPI_FADT_V5_SIZE;
>          break;
>
>      default:
> +
>          return;
>      }
>
> @@ -506,10 +512,12 @@ AcpiDmDumpAsf (
>          switch (Type)
>          {
>          case ACPI_ASF_TYPE_INFO:
> +
>              InfoTable = AcpiDmTableInfoAsf0;
>              break;
>
>          case ACPI_ASF_TYPE_ALERT:
> +
>              InfoTable = AcpiDmTableInfoAsf1;
>              DataInfoTable = AcpiDmTableInfoAsf1a;
>              DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT));
> @@ -519,6 +527,7 @@ AcpiDmDumpAsf (
>              break;
>
>          case ACPI_ASF_TYPE_CONTROL:
> +
>              InfoTable = AcpiDmTableInfoAsf2;
>              DataInfoTable = AcpiDmTableInfoAsf2a;
>              DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE));
> @@ -528,10 +537,12 @@ AcpiDmDumpAsf (
>              break;
>
>          case ACPI_ASF_TYPE_BOOT:
> +
>              InfoTable = AcpiDmTableInfoAsf3;
>              break;
>
>          case ACPI_ASF_TYPE_ADDRESS:
> +
>              InfoTable = AcpiDmTableInfoAsf4;
>              DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS));
>              DataLength = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, SubTable)->Devices;
> @@ -539,6 +550,7 @@ AcpiDmDumpAsf (
>              break;
>
>          default:
> +
>              AcpiOsPrintf ("\n**** Unknown ASF sub-table type 0x%X\n", SubTable->Header.Type);
>              return;
>          }
> @@ -595,6 +607,7 @@ AcpiDmDumpAsf (
>              break;
>
>          default:
> +
>              break;
>          }
>
> @@ -935,22 +948,31 @@ AcpiDmDumpDmar (
>          switch (SubTable->Type)
>          {
>          case ACPI_DMAR_TYPE_HARDWARE_UNIT:
> +
>              InfoTable = AcpiDmTableInfoDmar0;
>              ScopeOffset = sizeof (ACPI_DMAR_HARDWARE_UNIT);
>              break;
> +
>          case ACPI_DMAR_TYPE_RESERVED_MEMORY:
> +
>              InfoTable = AcpiDmTableInfoDmar1;
>              ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY);
>              break;
> +
>          case ACPI_DMAR_TYPE_ATSR:
> +
>              InfoTable = AcpiDmTableInfoDmar2;
>              ScopeOffset = sizeof (ACPI_DMAR_ATSR);
>              break;
> +
>          case ACPI_DMAR_HARDWARE_AFFINITY:
> +
>              InfoTable = AcpiDmTableInfoDmar3;
>              ScopeOffset = sizeof (ACPI_DMAR_RHSA);
>              break;
> +
>          default:
> +
>              AcpiOsPrintf ("\n**** Unknown DMAR sub-table type 0x%X\n\n", SubTable->Type);
>              return;
>          }
> @@ -1158,12 +1180,17 @@ AcpiDmDumpFpdt (
>          switch (SubTable->Type)
>          {
>          case ACPI_FPDT_TYPE_BOOT:
> +
>              InfoTable = AcpiDmTableInfoFpdt0;
>              break;
> +
>          case ACPI_FPDT_TYPE_S3PERF:
> +
>              InfoTable = AcpiDmTableInfoFpdt1;
>              break;
> +
>          default:
> +
>              AcpiOsPrintf ("\n**** Unknown FPDT sub-table type 0x%X\n\n", SubTable->Type);
>
>              /* Attempt to continue */
> @@ -1236,6 +1263,7 @@ AcpiDmDumpHest (
>          switch (SubTable->Type)
>          {
>          case ACPI_HEST_TYPE_IA32_CHECK:
> +
>              InfoTable = AcpiDmTableInfoHest0;
>              SubTableLength = sizeof (ACPI_HEST_IA_MACHINE_CHECK);
>              BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK,
> @@ -1243,6 +1271,7 @@ AcpiDmDumpHest (
>              break;
>
>          case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK:
> +
>              InfoTable = AcpiDmTableInfoHest1;
>              SubTableLength = sizeof (ACPI_HEST_IA_CORRECTED);
>              BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED,
> @@ -1250,31 +1279,37 @@ AcpiDmDumpHest (
>              break;
>
>          case ACPI_HEST_TYPE_IA32_NMI:
> +
>              InfoTable = AcpiDmTableInfoHest2;
>              SubTableLength = sizeof (ACPI_HEST_IA_NMI);
>              break;
>
>          case ACPI_HEST_TYPE_AER_ROOT_PORT:
> +
>              InfoTable = AcpiDmTableInfoHest6;
>              SubTableLength = sizeof (ACPI_HEST_AER_ROOT);
>              break;
>
>          case ACPI_HEST_TYPE_AER_ENDPOINT:
> +
>              InfoTable = AcpiDmTableInfoHest7;
>              SubTableLength = sizeof (ACPI_HEST_AER);
>              break;
>
>          case ACPI_HEST_TYPE_AER_BRIDGE:
> +
>              InfoTable = AcpiDmTableInfoHest8;
>              SubTableLength = sizeof (ACPI_HEST_AER_BRIDGE);
>              break;
>
>          case ACPI_HEST_TYPE_GENERIC_ERROR:
> +
>              InfoTable = AcpiDmTableInfoHest9;
>              SubTableLength = sizeof (ACPI_HEST_GENERIC);
>              break;
>
>          default:
> +
>              /* Cannot continue on unknown type - no length */
>
>              AcpiOsPrintf ("\n**** Unknown HEST sub-table type 0x%X\n", SubTable->Type);
> @@ -1376,14 +1411,19 @@ AcpiDmDumpIvrs (
>          switch (SubTable->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:
> +
>              AcpiOsPrintf ("\n**** Unknown IVRS sub-table type 0x%X\n",
>                  SubTable->Type);
>
> @@ -1545,45 +1585,72 @@ AcpiDmDumpMadt (
>          switch (SubTable->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;
> +
>          default:
> +
>              AcpiOsPrintf ("\n**** Unknown MADT sub-table type 0x%X\n\n", SubTable->Type);
>
>              /* Attempt to continue */
> @@ -2224,12 +2291,17 @@ AcpiDmDumpS3pt (
>          switch (SubTable->Type)
>          {
>          case ACPI_S3PT_TYPE_RESUME:
> +
>              InfoTable = AcpiDmTableInfoS3pt0;
>              break;
> +
>          case ACPI_S3PT_TYPE_SUSPEND:
> +
>              InfoTable = AcpiDmTableInfoS3pt1;
>              break;
> +
>          default:
> +
>              AcpiOsPrintf ("\n**** Unknown S3PT sub-table type 0x%X\n", SubTable->Type);
>
>              /* Attempt to continue */
> @@ -2301,12 +2373,17 @@ AcpiDmDumpSlic (
>          switch (SubTable->Type)
>          {
>          case ACPI_SLIC_TYPE_PUBLIC_KEY:
> +
>              InfoTable = AcpiDmTableInfoSlic0;
>              break;
> +
>          case ACPI_SLIC_TYPE_WINDOWS_MARKER:
> +
>              InfoTable = AcpiDmTableInfoSlic1;
>              break;
> +
>          default:
> +
>              AcpiOsPrintf ("\n**** Unknown SLIC sub-table type 0x%X\n", SubTable->Type);
>
>              /* Attempt to continue */
> @@ -2462,14 +2539,20 @@ AcpiDmDumpSrat (
>          switch (SubTable->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;
> +
>          default:
>              AcpiOsPrintf ("\n**** Unknown SRAT sub-table type 0x%X\n", SubTable->Type);
>
> diff --git a/src/acpica/source/compiler/aslanalyze.c b/src/acpica/source/compiler/aslanalyze.c
> index 99b17e6..e35cff4 100644
> --- a/src/acpica/source/compiler/aslanalyze.c
> +++ b/src/acpica/source/compiler/aslanalyze.c
> @@ -453,6 +453,7 @@ AnIsResultUsed (
>          return (TRUE);
>
>      default:
> +
>          break;
>      }
>
> @@ -483,6 +484,7 @@ AnIsResultUsed (
>          return (FALSE);
>
>      default:
> +
>          /* Any other type of parent means that the result is used */
>
>          return (TRUE);
> diff --git a/src/acpica/source/compiler/aslbtypes.c b/src/acpica/source/compiler/aslbtypes.c
> index cb30afd..17240cd 100644
> --- a/src/acpica/source/compiler/aslbtypes.c
> +++ b/src/acpica/source/compiler/aslbtypes.c
> @@ -155,15 +155,19 @@ AnMapArgTypeToBtype (
>      /* Simple types */
>
>      case ARGI_ANYTYPE:
> +
>          return (ACPI_BTYPE_OBJECTS_AND_REFS);
>
>      case ARGI_PACKAGE:
> +
>          return (ACPI_BTYPE_PACKAGE);
>
>      case ARGI_EVENT:
> +
>          return (ACPI_BTYPE_EVENT);
>
>      case ARGI_MUTEX:
> +
>          return (ACPI_BTYPE_MUTEX);
>
>      case ARGI_DDBHANDLE:
> @@ -183,31 +187,36 @@ AnMapArgTypeToBtype (
>      case ARGI_BUFFER:
>      case ARGI_BUFFER_OR_STRING:
>      case ARGI_COMPUTEDATA:
> +
>          return (ACPI_BTYPE_COMPUTE_DATA);
>
>      /* References */
>
>      case ARGI_INTEGER_REF:
> +
>          return (ACPI_BTYPE_INTEGER);
>
>      case ARGI_OBJECT_REF:
> +
>          return (ACPI_BTYPE_ALL_OBJECTS);
>
>      case ARGI_DEVICE_REF:
> +
>          return (ACPI_BTYPE_DEVICE_OBJECTS);
>
>      case ARGI_REFERENCE:
> +
>          return (ACPI_BTYPE_REFERENCE);
>
>      case ARGI_TARGETREF:
>      case ARGI_FIXED_TARGET:
>      case ARGI_SIMPLE_TARGET:
> +
>          return (ACPI_BTYPE_OBJECTS_AND_REFS);
>
>      /* Complex types */
>
>      case ARGI_DATAOBJECT:
> -
>          /*
>           * Buffer, string, package or reference to a Op -
>           * Used only by SizeOf operator
> @@ -222,6 +231,7 @@ AnMapArgTypeToBtype (
>          return (ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER | ACPI_BTYPE_PACKAGE);
>
>      case ARGI_REF_OR_STRING:
> +
>          return (ACPI_BTYPE_STRING | ACPI_BTYPE_REFERENCE);
>
>      case ARGI_REGION_OR_BUFFER:
> @@ -231,10 +241,12 @@ AnMapArgTypeToBtype (
>          return (ACPI_BTYPE_REGION | ACPI_BTYPE_BUFFER | ACPI_BTYPE_FIELD_UNIT);
>
>      case ARGI_DATAREFOBJ:
> +
>          return (ACPI_BTYPE_INTEGER |ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER |
>              ACPI_BTYPE_PACKAGE | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE);
>
>      default:
> +
>          break;
>      }
>
> @@ -279,22 +291,28 @@ AnMapEtypeToBtype (
>          switch (Etype)
>          {
>          case ACPI_TYPE_INTEGER:
> +
>              return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_DDB_HANDLE);
>
>          case ACPI_TYPE_STRING:
>          case ACPI_TYPE_BUFFER:
> +
>              return (ACPI_BTYPE_COMPUTE_DATA);
>
>          case ACPI_TYPE_PACKAGE:
> +
>              return (ACPI_BTYPE_PACKAGE);
>
>          case ACPI_TYPE_FIELD_UNIT:
> +
>              return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_FIELD_UNIT);
>
>          case ACPI_TYPE_BUFFER_FIELD:
> +
>              return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_BUFFER_FIELD);
>
>          case ACPI_TYPE_DDB_HANDLE:
> +
>              return (ACPI_BTYPE_INTEGER | ACPI_BTYPE_DDB_HANDLE);
>
>          case ACPI_BTYPE_DEBUG_OBJECT:
> @@ -304,6 +322,7 @@ AnMapEtypeToBtype (
>              return (0);
>
>          default:
> +
>              return (1 << (Etype - 1));
>          }
>      }
> @@ -331,6 +350,7 @@ AnMapEtypeToBtype (
>          return (ACPI_BTYPE_REFERENCE);
>
>      default:
> +
>          printf ("Unhandled encoded type: %X\n", Etype);
>          return (0);
>      }
> @@ -510,51 +530,67 @@ AnMapObjTypeToBtype (
>      switch (Op->Asl.ParseOpcode)
>      {
>      case PARSEOP_OBJECTTYPE_BFF:        /* "BuffFieldObj" */
> +
>          return (ACPI_BTYPE_BUFFER_FIELD);
>
>      case PARSEOP_OBJECTTYPE_BUF:        /* "BuffObj" */
> +
>          return (ACPI_BTYPE_BUFFER);
>
>      case PARSEOP_OBJECTTYPE_DDB:        /* "DDBHandleObj" */
> +
>          return (ACPI_BTYPE_DDB_HANDLE);
>
>      case PARSEOP_OBJECTTYPE_DEV:        /* "DeviceObj" */
> +
>          return (ACPI_BTYPE_DEVICE);
>
>      case PARSEOP_OBJECTTYPE_EVT:        /* "EventObj" */
> +
>          return (ACPI_BTYPE_EVENT);
>
>      case PARSEOP_OBJECTTYPE_FLD:        /* "FieldUnitObj" */
> +
>          return (ACPI_BTYPE_FIELD_UNIT);
>
>      case PARSEOP_OBJECTTYPE_INT:        /* "IntObj" */
> +
>          return (ACPI_BTYPE_INTEGER);
>
>      case PARSEOP_OBJECTTYPE_MTH:        /* "MethodObj" */
> +
>          return (ACPI_BTYPE_METHOD);
>
>      case PARSEOP_OBJECTTYPE_MTX:        /* "MutexObj" */
> +
>          return (ACPI_BTYPE_MUTEX);
>
>      case PARSEOP_OBJECTTYPE_OPR:        /* "OpRegionObj" */
> +
>          return (ACPI_BTYPE_REGION);
>
>      case PARSEOP_OBJECTTYPE_PKG:        /* "PkgObj" */
> +
>          return (ACPI_BTYPE_PACKAGE);
>
>      case PARSEOP_OBJECTTYPE_POW:        /* "PowerResObj" */
> +
>          return (ACPI_BTYPE_POWER);
>
>      case PARSEOP_OBJECTTYPE_STR:        /* "StrObj" */
> +
>          return (ACPI_BTYPE_STRING);
>
>      case PARSEOP_OBJECTTYPE_THZ:        /* "ThermalZoneObj" */
> +
>          return (ACPI_BTYPE_THERMAL);
>
>      case PARSEOP_OBJECTTYPE_UNK:        /* "UnknownObj" */
> +
>          return (ACPI_BTYPE_OBJECTS_AND_REFS);
>
>      default:
> +
>          return (0);
>      }
>  }
> diff --git a/src/acpica/source/compiler/aslcodegen.c b/src/acpica/source/compiler/aslcodegen.c
> index 4cbc1ca..9d45ec8 100644
> --- a/src/acpica/source/compiler/aslcodegen.c
> +++ b/src/acpica/source/compiler/aslcodegen.c
> @@ -356,6 +356,7 @@ CgWriteAmlOpcode (
>          break;
>
>      default:
> +
>          Aml.Opcode = Op->Asl.AmlOpcode;
>          break;
>      }
> @@ -454,7 +455,9 @@ CgWriteAmlOpcode (
>          break;
>
>      default:
> +
>          /* All data opcodes must appear above */
> +
>          break;
>      }
>  }
> @@ -632,7 +635,9 @@ CgWriteNode (
>          return;
>
>      default:
> +
>          /* Internal data opcodes must all appear above */
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/aslcompile.c b/src/acpica/source/compiler/aslcompile.c
> index 436a392..4932abd 100644
> --- a/src/acpica/source/compiler/aslcompile.c
> +++ b/src/acpica/source/compiler/aslcompile.c
> @@ -205,7 +205,9 @@ AslCompilerSignon (
>          break;
>
>      default:
> +
>          /* No other output types supported */
> +
>          break;
>      }
>
> @@ -279,7 +281,9 @@ AslCompilerFileHeader (
>          break;
>
>      default:
> +
>          /* No other output types supported */
> +
>          break;
>      }
>
> @@ -298,11 +302,14 @@ AslCompilerFileHeader (
>      case ASL_FILE_C_SOURCE_OUTPUT:
>      case ASL_FILE_C_OFFSET_OUTPUT:
>      case ASL_FILE_C_INCLUDE_OUTPUT:
> +
>          FlPrintFile (FileId, " */\n");
>          break;
>
>      default:
> +
>          /* Nothing to do for other output types */
> +
>          break;
>      }
>  }
> diff --git a/src/acpica/source/compiler/aslcompiler.h b/src/acpica/source/compiler/aslcompiler.h
> index 4c2bfcb..19539a5 100644
> --- a/src/acpica/source/compiler/aslcompiler.h
> +++ b/src/acpica/source/compiler/aslcompiler.h
> @@ -363,6 +363,15 @@ AslError (
>      ACPI_PARSE_OBJECT       *Op,
>      char                    *ExtraMessage);
>
> +ACPI_STATUS
> +AslDisableException (
> +    char                    *MessageIdString);
> +
> +BOOLEAN
> +AslIsExceptionDisabled (
> +    UINT8                   Level,
> +    UINT8                   MessageId);
> +
>  void
>  AslCoreSubsystemError (
>      ACPI_PARSE_OBJECT       *Op,
> @@ -863,6 +872,17 @@ void
>  LkFindUnreferencedObjects (
>      void);
>
> +/*
> + * aslmain - startup
> + */
> +void
> +Usage (
> +    void);
> +
> +void
> +AslFilenameHelp (
> +    void);
> +
>
>  /*
>   * aslnamesp - namespace output file generation
> @@ -875,6 +895,13 @@ void
>  NsSetupNamespaceListing (
>      void                    *Handle);
>
> +/*
> + * asloptions - command line processing
> + */
> +int
> +AslCommandLine (
> +    int                     argc,
> +    char                    **argv);
>
>  /*
>   * aslxref - namespace cross reference
> diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
> index 01a2013..8863026 100644
> --- a/src/acpica/source/compiler/aslerror.c
> +++ b/src/acpica/source/compiler/aslerror.c
> @@ -273,6 +273,7 @@ AePrintException (
>          switch (Enode->Level)
>          {
>          case ASL_REMARK:
> +
>              if (!Gbl_DisplayRemarks)
>              {
>                  return;
> @@ -280,6 +281,7 @@ AePrintException (
>              break;
>
>          case ASL_OPTIMIZATION:
> +
>              if (!Gbl_DisplayOptimizations)
>              {
>                  return;
> @@ -287,6 +289,7 @@ AePrintException (
>              break;
>
>          default:
> +
>              break;
>          }
>      }
> @@ -748,6 +751,113 @@ AslCommonError (
>
>  /*******************************************************************************
>   *
> + * FUNCTION:    AslDisableException
> + *
> + * PARAMETERS:  MessageIdString     - ID to be disabled
> + *
> + * RETURN:      Status
> + *
> + * DESCRIPTION: Enter a message ID into the global disabled messages table
> + *
> + ******************************************************************************/
> +
> +ACPI_STATUS
> +AslDisableException (
> +    char                    *MessageIdString)
> +{
> +    UINT32                  MessageId;
> +
> +
> +    /* Convert argument to an integer and validate it */
> +
> +    MessageId = (UINT32) strtoul (MessageIdString, NULL, 0);
> +
> +    if ((MessageId < 2000) || (MessageId > 5999))
> +    {
> +        printf ("\"%s\" is not a valid warning/remark ID\n",
> +            MessageIdString);
> +        return (AE_BAD_PARAMETER);
> +    }
> +
> +    /* Insert value into the global disabled message array */
> +
> +    if (Gbl_DisabledMessagesIndex >= ASL_MAX_DISABLED_MESSAGES)
> +    {
> +        printf ("Too many messages have been disabled (max %u)\n",
> +            ASL_MAX_DISABLED_MESSAGES);
> +        return (AE_LIMIT);
> +    }
> +
> +    Gbl_DisabledMessages[Gbl_DisabledMessagesIndex] = MessageId;
> +    Gbl_DisabledMessagesIndex++;
> +    return (AE_OK);
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AslIsExceptionDisabled
> + *
> + * PARAMETERS:  Level               - Seriousness (Warning/error, etc.)
> + *              MessageId           - Index into global message buffer
> + *
> + * RETURN:      TRUE if exception/message should be ignored
> + *
> + * DESCRIPTION: Check if the user has specified options such that this
> + *              exception should be ignored
> + *
> + ******************************************************************************/
> +
> +BOOLEAN
> +AslIsExceptionDisabled (
> +    UINT8                   Level,
> +    UINT8                   MessageId)
> +{
> +    UINT32                  EncodedMessageId;
> +    UINT32                  i;
> +
> +
> +    switch (Level)
> +    {
> +    case ASL_WARNING2:
> +    case ASL_WARNING3:
> +
> +        /* Check for global disable via -w1/-w2/-w3 options */
> +
> +        if (Level > Gbl_WarningLevel)
> +        {
> +            return (TRUE);
> +        }
> +        /* Fall through */
> +
> +    case ASL_WARNING:
> +    case ASL_REMARK:
> +        /*
> +         * Ignore this warning/remark if it has been disabled by
> +         * the user (-vw option)
> +         */
> +        EncodedMessageId = MessageId + ((Level + 1) * 1000);
> +        for (i = 0; i < Gbl_DisabledMessagesIndex; i++)
> +        {
> +            /* Simple implementation via fixed array */
> +
> +            if (EncodedMessageId == Gbl_DisabledMessages[i])
> +            {
> +                return (TRUE);
> +            }
> +        }
> +        break;
> +
> +    default:
> +        break;
> +    }
> +
> +    return (FALSE);
> +}
> +
> +
> +/*******************************************************************************
> + *
>   * FUNCTION:    AslError
>   *
>   * PARAMETERS:  Level               - Seriousness (Warning/error, etc.)
> @@ -770,32 +880,25 @@ AslError (
>      char                    *ExtraMessage)
>  {
>
> -    switch (Level)
> -    {
> -    case ASL_WARNING2:
> -    case ASL_WARNING3:
> -        if (Gbl_WarningLevel < Level)
> -        {
> -            return;
> -        }
> -        break;
> +    /* Check if user wants to ignore this exception */
>
> -    default:
> -        break;
> +    if (AslIsExceptionDisabled (Level, MessageId))
> +    {
> +        return;
>      }
>
>      if (Op)
>      {
>          AslCommonError (Level, MessageId, Op->Asl.LineNumber,
> -                        Op->Asl.LogicalLineNumber,
> -                        Op->Asl.LogicalByteOffset,
> -                        Op->Asl.Column,
> -                        Op->Asl.Filename, ExtraMessage);
> +            Op->Asl.LogicalLineNumber,
> +            Op->Asl.LogicalByteOffset,
> +            Op->Asl.Column,
> +            Op->Asl.Filename, ExtraMessage);
>      }
>      else
>      {
>          AslCommonError (Level, MessageId, 0,
> -                        0, 0, 0, NULL, ExtraMessage);
> +            0, 0, 0, NULL, ExtraMessage);
>      }
>  }
>
> diff --git a/src/acpica/source/compiler/aslfold.c b/src/acpica/source/compiler/aslfold.c
> index 0644e39..b0a0663 100644
> --- a/src/acpica/source/compiler/aslfold.c
> +++ b/src/acpica/source/compiler/aslfold.c
> @@ -513,7 +513,6 @@ OpcAmlConstantWalk (
>                  ACPI_FORMAT_UINT64 (Op->Common.Value.Integer));
>              break;
>
> -
>          case ACPI_TYPE_STRING:
>
>              Op->Asl.ParseOpcode = PARSEOP_STRING_LITERAL;
> @@ -527,7 +526,6 @@ OpcAmlConstantWalk (
>
>              break;
>
> -
>          case ACPI_TYPE_BUFFER:
>
>              Op->Asl.ParseOpcode = PARSEOP_BUFFER;
> @@ -565,8 +563,8 @@ OpcAmlConstantWalk (
>                  ObjDesc->Buffer.Length);
>              break;
>
> -
>          default:
> +
>              printf ("Unsupported return type: %s\n",
>                  AcpiUtGetObjectTypeName (ObjDesc));
>              break;
> @@ -608,27 +606,32 @@ OpcUpdateIntegerNode (
>      switch (Op->Asl.AmlLength)
>      {
>      case 1:
> +
>          TrUpdateNode (PARSEOP_BYTECONST, Op);
>          Op->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
>          break;
>
>      case 2:
> +
>          TrUpdateNode (PARSEOP_WORDCONST, Op);
>          Op->Asl.AmlOpcode = AML_RAW_DATA_WORD;
>          break;
>
>      case 4:
> +
>          TrUpdateNode (PARSEOP_DWORDCONST, Op);
>          Op->Asl.AmlOpcode = AML_RAW_DATA_DWORD;
>          break;
>
>      case 8:
> +
>          TrUpdateNode (PARSEOP_QWORDCONST, Op);
>          Op->Asl.AmlOpcode = AML_RAW_DATA_QWORD;
>          break;
>
>      case 0:
>      default:
> +
>          OpcSetOptimalIntegerSize (Op);
>          TrUpdateNode (PARSEOP_INTEGER, Op);
>          break;
> diff --git a/src/acpica/source/compiler/aslglobal.h b/src/acpica/source/compiler/aslglobal.h
> index 9d285eb..5468711 100644
> --- a/src/acpica/source/compiler/aslglobal.h
> +++ b/src/acpica/source/compiler/aslglobal.h
> @@ -182,6 +182,7 @@ extern char                         *AslCompilertext;
>
>  #define ASL_DEFAULT_LINE_BUFFER_SIZE    (1024 * 32) /* 32K */
>  #define ASL_MSG_BUFFER_SIZE             4096
> +#define ASL_MAX_DISABLED_MESSAGES       32
>  #define HEX_TABLE_LINE_SIZE             8
>  #define HEX_LISTING_LINE_SIZE           8
>
> @@ -296,6 +297,7 @@ ASL_EXTERN char                     *Gbl_TemplateSignature;
>  ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentHexColumn, 0);
>  ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentAmlOffset, 0);
>  ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentLine, 0);
> +ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_DisabledMessagesIndex, 0);
>  ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_HexBytesWereWritten, FALSE);
>  ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_NumNamespaceObjects, 0);
>  ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_ReservedMethods, 0);
> @@ -322,6 +324,7 @@ ASL_EXTERN UINT8                    Gbl_AmlBuffer[HEX_LISTING_LINE_SIZE];
>  ASL_EXTERN char                     MsgBuffer[ASL_MSG_BUFFER_SIZE];
>  ASL_EXTERN char                     StringBuffer[ASL_MSG_BUFFER_SIZE];
>  ASL_EXTERN char                     StringBuffer2[ASL_MSG_BUFFER_SIZE];
> +ASL_EXTERN UINT32                   Gbl_DisabledMessages[ASL_MAX_DISABLED_MESSAGES];
>
>
>  #endif /* __ASLGLOBAL_H */
> diff --git a/src/acpica/source/compiler/aslhex.c b/src/acpica/source/compiler/aslhex.c
> index d2e56ed..82eb070 100644
> --- a/src/acpica/source/compiler/aslhex.c
> +++ b/src/acpica/source/compiler/aslhex.c
> @@ -179,7 +179,9 @@ HxDoHexOutput (
>          break;
>
>      default:
> +
>          /* No other output types supported */
> +
>          break;
>      }
>  }
> diff --git a/src/acpica/source/compiler/asllength.c b/src/acpica/source/compiler/asllength.c
> index 78372f1..e78c97b 100644
> --- a/src/acpica/source/compiler/asllength.c
> +++ b/src/acpica/source/compiler/asllength.c
> @@ -330,6 +330,7 @@ CgGenerateAmlOpcodeLength (
>          break;
>
>      default:
> +
>          /* All data opcodes must be above */
>          break;
>      }
> @@ -398,6 +399,7 @@ CgGenerateAmlLengths (
>          return;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/asllisting.c b/src/acpica/source/compiler/asllisting.c
> index ba73b28..3d0f85d 100644
> --- a/src/acpica/source/compiler/asllisting.c
> +++ b/src/acpica/source/compiler/asllisting.c
> @@ -229,6 +229,8 @@ LsGenerateListing (
>
>      if (FileId == ASL_FILE_C_OFFSET_OUTPUT)
>      {
> +        Gbl_CurrentAmlOffset = 0;
> +
>          /* Offset table file has a special header and footer */
>
>          LsDoOffsetTableHeader (FileId);
> @@ -337,9 +339,10 @@ LsTreeWriteWalk (
>
>      DbgPrint (ASL_TREE_OUTPUT,
>          "%5.5d [%2d]", Op->Asl.LogicalLineNumber, Level);
> +
>      UtPrintFormattedName (Op->Asl.ParseOpcode, Level);
>
> -    DbgPrint (ASL_TREE_OUTPUT, "\n");
> +    DbgPrint (ASL_TREE_OUTPUT, "    (%.4X)\n", Op->Asl.ParseOpcode);
>      return (AE_OK);
>  }
>
> @@ -391,16 +394,20 @@ LsWriteNodeToListing (
>              break;
>
>          default:
> +
>              switch (OpClass)
>              {
>              case AML_CLASS_NAMED_OBJECT:
> +
>                  switch (Op->Asl.AmlOpcode)
>                  {
>                  case AML_SCOPE_OP:
>                  case AML_ALIAS_OP:
> +
>                      break;
>
>                  default:
> +
>                      if (Op->Asl.ExternalName)
>                      {
>                          LsFlushListingBuffer (FileId);
> @@ -411,7 +418,9 @@ LsWriteNodeToListing (
>                  break;
>
>              default:
> +
>                  /* Don't care about other objects */
> +
>                  break;
>              }
>              break;
> @@ -499,7 +508,9 @@ LsWriteNodeToListing (
>
>
>      default:
> +
>          /* All other opcodes have an AML opcode */
> +
>          break;
>      }
>
> @@ -515,7 +526,6 @@ LsWriteNodeToListing (
>
>          break;
>
> -
>      case AML_CLASS_NAMED_OBJECT:
>
>          switch (Op->Asl.AmlOpcode)
> @@ -523,7 +533,6 @@ LsWriteNodeToListing (
>          case AML_FIELD_OP:
>          case AML_INDEX_FIELD_OP:
>          case AML_BANK_FIELD_OP:
> -
>              /*
>               * For fields, we want to dump all the AML after the
>               * entire definition
> @@ -551,6 +560,7 @@ LsWriteNodeToListing (
>              break;
>
>          default:
> +
>              LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
>                  FileId);
>              break;
> @@ -575,7 +585,6 @@ LsWriteNodeToListing (
>              case ASL_FILE_C_SOURCE_OUTPUT:
>              case ASL_FILE_ASM_INCLUDE_OUTPUT:
>              case ASL_FILE_C_INCLUDE_OUTPUT:
> -
>                  /*
>                   * For named objects, we will create a valid symbol so that the
>                   * AML code can be referenced from C or ASM
> @@ -630,7 +639,9 @@ LsWriteNodeToListing (
>                  break;
>
>              default:
> +
>                  /* Nothing to do for listing file */
> +
>                  break;
>              }
>          }
> @@ -651,6 +662,7 @@ LsWriteNodeToListing (
>          break;
>
>      case AML_CLASS_UNKNOWN:
> +
>          break;
>      }
>  }
> diff --git a/src/acpica/source/compiler/asllistsup.c b/src/acpica/source/compiler/asllistsup.c
> index a3dd3d0..f4eb57a 100644
> --- a/src/acpica/source/compiler/asllistsup.c
> +++ b/src/acpica/source/compiler/asllistsup.c
> @@ -323,7 +323,9 @@ LsWriteListingHexBytes (
>                  break;
>
>              default:
> +
>                  /* No other types supported */
> +
>                  return;
>              }
>          }
> @@ -689,7 +691,9 @@ LsFlushListingBuffer (
>          break;
>
>      default:
> +
>          /* No other types supported */
> +
>          return;
>      }
>
> diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
> index 01278de..338cf1c 100644
> --- a/src/acpica/source/compiler/aslload.c
> +++ b/src/acpica/source/compiler/aslload.c
> @@ -249,7 +249,9 @@ LdLoadFieldElements (
>          break;
>
>      default:
> +
>          /* No other opcodes should arrive here */
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> @@ -446,6 +448,7 @@ LdNamespace1Begin (
>      default:
>
>          /* All other opcodes go below */
> +
>          break;
>      }
>
> @@ -494,7 +497,6 @@ LdNamespace1Begin (
>
>
>      case PARSEOP_EXTERNAL:
> -
>          /*
>           * "External" simply enters a name and type into the namespace.
>           * We must be careful to not open a new scope, however, no matter
> @@ -538,7 +540,6 @@ LdNamespace1Begin (
>
>
>      case PARSEOP_SCOPE:
> -
>          /*
>           * The name referenced by Scope(Name) must already exist at this point.
>           * In other words, forward references for Scope() are not supported.
> @@ -593,7 +594,6 @@ LdNamespace1Begin (
>          case ACPI_TYPE_INTEGER:
>          case ACPI_TYPE_STRING:
>          case ACPI_TYPE_BUFFER:
> -
>              /*
>               * These types we will allow, but we will change the type.
>               * This enables some existing code of the form:
> diff --git a/src/acpica/source/compiler/asllookup.c b/src/acpica/source/compiler/asllookup.c
> index 9650bfe..82a8334 100644
> --- a/src/acpica/source/compiler/asllookup.c
> +++ b/src/acpica/source/compiler/asllookup.c
> @@ -216,9 +216,11 @@ LkIsObjectUsed (
>      case ACPI_TYPE_PROCESSOR:
>      case ACPI_TYPE_POWER:
>      case ACPI_TYPE_LOCAL_RESOURCE:
> +
>          return (AE_OK);
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/aslmain.c b/src/acpica/source/compiler/aslmain.c
> index 921da42..3a0f750 100644
> --- a/src/acpica/source/compiler/aslmain.c
> +++ b/src/acpica/source/compiler/aslmain.c
> @@ -113,7 +113,6 @@
>   *
>   *****************************************************************************/
>
> -
>  #define _DECLARE_GLOBALS
>
>  #include "aslcompiler.h"
> @@ -121,26 +120,11 @@
>  #include "acdisasm.h"
>  #include <signal.h>
>
> -#ifdef _DEBUG
> -#include <crtdbg.h>
> -#endif
> -
>  #define _COMPONENT          ACPI_COMPILER
>          ACPI_MODULE_NAME    ("aslmain")
>
> -/* Local prototypes */
> -
> -static void
> -Options (
> -    void);
> -
> -static void
> -FilenameHelp (
> -    void);
>
> -static void
> -Usage (
> -    void);
> +/* Local prototypes */
>
>  static void ACPI_SYSTEM_XFACE
>  AslSignalHandler (
> @@ -150,34 +134,10 @@ static void
>  AslInitialize (
>      void);
>
> -static int
> -AslCommandLine (
> -    int                     argc,
> -    char                    **argv);
> -
> -static int
> -AslDoOptions (
> -    int                     argc,
> -    char                    **argv,
> -    BOOLEAN                 IsResponseFile);
> -
> -static void
> -AslMergeOptionTokens (
> -    char                    *InBuffer,
> -    char                    *OutBuffer);
> -
> -static int
> -AslDoResponseFile (
> -    char                    *Filename);
> -
> -
> -#define ASL_TOKEN_SEPARATORS    " \t\n"
> -#define ASL_SUPPORTED_OPTIONS   "@:b|c|d^D:e:fgh^i|I:l^m:no|p:P^r:s|t|T:G^v^w|x:z"
> -
>
>  /*******************************************************************************
>   *
> - * FUNCTION:    Options
> + * FUNCTION:    Usage
>   *
>   * PARAMETERS:  None
>   *
> @@ -188,10 +148,12 @@ AslDoResponseFile (
>   *
>   ******************************************************************************/
>
> -static void
> -Options (
> +void
> +Usage (
>      void)
>  {
> +    printf ("%s\n\n", ASL_COMPLIANCE);
> +    ACPI_USAGE_HEADER ("iasl [Options] [Files]");
>
>      printf ("\nGlobal:\n");
>      ACPI_OPTION ("-@ <file>",       "Specify command file");
> @@ -212,6 +174,7 @@ Options (
>      ACPI_OPTION ("-vo",             "Enable optimization comments");
>      ACPI_OPTION ("-vr",             "Disable remarks");
>      ACPI_OPTION ("-vs",             "Disable signon");
> +    ACPI_OPTION ("-vw <messageid>", "Disable specific warning or remark");
>      ACPI_OPTION ("-w1 -w2 -w3",     "Set warning reporting level");
>      ACPI_OPTION ("-we",             "Report warnings as errors");
>
> @@ -281,8 +244,8 @@ Options (
>   *
>   ******************************************************************************/
>
> -static void
> -FilenameHelp (
> +void
> +AslFilenameHelp (
>      void)
>  {
>
> @@ -297,29 +260,6 @@ FilenameHelp (
>  }
>
>
> -/*******************************************************************************
> - *
> - * FUNCTION:    Usage
> - *
> - * PARAMETERS:  None
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Display usage and option message
> - *
> - ******************************************************************************/
> -
> -static void
> -Usage (
> -    void)
> -{
> -
> -    printf ("%s\n\n", ASL_COMPLIANCE);
> -    ACPI_USAGE_HEADER ("iasl [Options] [Files]");
> -    Options ();
> -}
> -
> -
>  /******************************************************************************
>   *
>   * FUNCTION:    AslSignalHandler
> @@ -382,11 +322,6 @@ AslInitialize (
>      UINT32                  i;
>
>
> -#ifdef _DEBUG
> -    _CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CrtSetDbgFlag(0));
> -#endif
> -
> -
>      for (i = 0; i < ASL_NUM_FILES; i++)
>      {
>          Gbl_Files[i].Handle = NULL;
> @@ -398,675 +333,6 @@ AslInitialize (
>
>      Gbl_Files[ASL_FILE_STDERR].Handle   = stderr;
>      Gbl_Files[ASL_FILE_STDERR].Filename = "STDERR";
> -
> -    /* Allocate the line buffer(s) */
> -
> -    Gbl_LineBufferSize /= 2;
> -    UtExpandLineBuffers ();
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AslMergeOptionTokens
> - *
> - * PARAMETERS:  InBuffer            - Input containing an option string
> - *              OutBuffer           - Merged output buffer
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Remove all whitespace from an option string.
> - *
> - ******************************************************************************/
> -
> -static void
> -AslMergeOptionTokens (
> -    char                    *InBuffer,
> -    char                    *OutBuffer)
> -{
> -    char                    *Token;
> -
> -
> -    *OutBuffer = 0;
> -
> -    Token = strtok (InBuffer, ASL_TOKEN_SEPARATORS);
> -    while (Token)
> -    {
> -        strcat (OutBuffer, Token);
> -        Token = strtok (NULL, ASL_TOKEN_SEPARATORS);
> -    }
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AslDoResponseFile
> - *
> - * PARAMETERS:  Filename        - Name of the response file
> - *
> - * RETURN:      Status
> - *
> - * DESCRIPTION: Open a response file and process all options within.
> - *
> - ******************************************************************************/
> -
> -static int
> -AslDoResponseFile (
> -    char                    *Filename)
> -{
> -    char                    *argv = StringBuffer2;
> -    FILE                    *ResponseFile;
> -    int                     OptStatus = 0;
> -    int                     Opterr;
> -    int                     Optind;
> -
> -
> -    ResponseFile = fopen (Filename, "r");
> -    if (!ResponseFile)
> -    {
> -        printf ("Could not open command file %s, %s\n",
> -            Filename, strerror (errno));
> -        return (-1);
> -    }
> -
> -    /* Must save the current GetOpt globals */
> -
> -    Opterr = AcpiGbl_Opterr;
> -    Optind = AcpiGbl_Optind;
> -
> -    /*
> -     * Process all lines in the response file. There must be one complete
> -     * option per line
> -     */
> -    while (fgets (StringBuffer, ASL_MSG_BUFFER_SIZE, ResponseFile))
> -    {
> -        /* Compress all tokens, allowing us to use a single argv entry */
> -
> -        AslMergeOptionTokens (StringBuffer, StringBuffer2);
> -
> -        /* Process the option */
> -
> -        AcpiGbl_Opterr = 0;
> -        AcpiGbl_Optind = 0;
> -
> -        OptStatus = AslDoOptions (1, &argv, TRUE);
> -        if (OptStatus)
> -        {
> -            printf ("Invalid option in command file %s: %s\n",
> -                Filename, StringBuffer);
> -            break;
> -        }
> -    }
> -
> -    /* Restore the GetOpt globals */
> -
> -    AcpiGbl_Opterr = Opterr;
> -    AcpiGbl_Optind = Optind;
> -
> -    fclose (ResponseFile);
> -    return (OptStatus);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AslDoOptions
> - *
> - * PARAMETERS:  argc/argv           - Standard argc/argv
> - *              IsResponseFile      - TRUE if executing a response file.
> - *
> - * RETURN:      Status
> - *
> - * DESCRIPTION: Command line option processing
> - *
> - ******************************************************************************/
> -
> -static int
> -AslDoOptions (
> -    int                     argc,
> -    char                    **argv,
> -    BOOLEAN                 IsResponseFile)
> -{
> -    int                     j;
> -    ACPI_STATUS             Status;
> -
> -
> -    /* Get the command line options */
> -
> -    while ((j = AcpiGetopt (argc, argv, ASL_SUPPORTED_OPTIONS)) != EOF) switch (j)
> -    {
> -    case '@':   /* Begin a response file */
> -
> -        if (IsResponseFile)
> -        {
> -            printf ("Nested command files are not supported\n");
> -            return (-1);
> -        }
> -
> -        if (AslDoResponseFile (AcpiGbl_Optarg))
> -        {
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'b':   /* Debug output options */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case 'f':
> -            AslCompilerdebug = 1; /* same as yydebug */
> -            DtParserdebug = 1;
> -            PrParserdebug = 1;
> -            break;
> -
> -        case 't':
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -b%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -
> -        /* Produce debug output file */
> -
> -        Gbl_DebugFlag = TRUE;
> -        break;
> -
> -
> -    case 'c':
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case 'r':
> -            Gbl_NoResourceChecking = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -c%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'd':   /* Disassembler */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case '^':
> -            Gbl_DoCompile = FALSE;
> -            break;
> -
> -        case 'a':
> -            Gbl_DoCompile = FALSE;
> -            Gbl_DisassembleAll = TRUE;
> -            break;
> -
> -        case 'b':   /* Do not convert buffers to resource descriptors */
> -            AcpiGbl_NoResourceDisassembly = TRUE;
> -            break;
> -
> -        case 'c':
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -d%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -
> -        Gbl_DisasmFlag = TRUE;
> -        break;
> -
> -
> -    case 'D':   /* Define a symbol */
> -        PrAddDefine (AcpiGbl_Optarg, NULL, TRUE);
> -        break;
> -
> -
> -    case 'e':   /* External files for disassembler */
> -        Status = AcpiDmAddToExternalFileList (AcpiGbl_Optarg);
> -        if (ACPI_FAILURE (Status))
> -        {
> -            printf ("Could not add %s to external list\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'f':   /* Ignore errors and force creation of aml file */
> -        Gbl_IgnoreErrors = TRUE;
> -        break;
> -
> -
> -    case 'G':
> -        Gbl_CompileGeneric = TRUE;
> -        break;
> -
> -
> -    case 'g':   /* Get all ACPI tables */
> -
> -        Gbl_GetAllTables = TRUE;
> -        Gbl_DoCompile = FALSE;
> -        break;
> -
> -
> -    case 'h':
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case '^':
> -            Usage ();
> -            exit (0);
> -
> -        case 'c':
> -            UtDisplayConstantOpcodes ();
> -            exit (0);
> -
> -        case 'f':
> -            FilenameHelp ();
> -            exit (0);
> -
> -        case 'r':
> -            /* reserved names */
> -
> -            ApDisplayReservedNames ();
> -            exit (0);
> -
> -        case 't':
> -            UtDisplaySupportedTables ();
> -            exit (0);
> -
> -        default:
> -            printf ("Unknown option: -h%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -
> -
> -    case 'I':   /* Add an include file search directory */
> -        FlAddIncludeDirectory (AcpiGbl_Optarg);
> -        break;
> -
> -
> -    case 'i':   /* Output AML as an include file */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case 'a':
> -
> -            /* Produce assembly code include file */
> -
> -            Gbl_AsmIncludeOutputFlag = TRUE;
> -            break;
> -
> -        case 'c':
> -
> -            /* Produce C include file */
> -
> -            Gbl_C_IncludeOutputFlag = TRUE;
> -            break;
> -
> -        case 'n':
> -
> -            /* Compiler/Disassembler: Ignore the NOOP operator */
> -
> -            AcpiGbl_IgnoreNoopOperator = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -i%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'l':   /* Listing files */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case '^':
> -            /* Produce listing file (Mixed source/aml) */
> -
> -            Gbl_ListingFlag = TRUE;
> -            break;
> -
> -        case 'i':
> -            /* Produce preprocessor output file */
> -
> -            Gbl_PreprocessorOutputFlag = TRUE;
> -            break;
> -
> -        case 'n':
> -            /* Produce namespace file */
> -
> -            Gbl_NsOutputFlag = TRUE;
> -            break;
> -
> -        case 's':
> -            /* Produce combined source file */
> -
> -            Gbl_SourceOutputFlag = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -l%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'm':   /* Set line buffer size */
> -        Gbl_LineBufferSize = (UINT32) strtoul (AcpiGbl_Optarg, NULL, 0) * 1024;
> -        if (Gbl_LineBufferSize < ASL_DEFAULT_LINE_BUFFER_SIZE)
> -        {
> -            Gbl_LineBufferSize = ASL_DEFAULT_LINE_BUFFER_SIZE;
> -        }
> -        printf ("Line Buffer Size: %u\n", Gbl_LineBufferSize);
> -        break;
> -
> -
> -    case 'n':   /* Parse only */
> -        Gbl_ParseOnlyFlag = TRUE;
> -        break;
> -
> -
> -    case 'o':   /* Control compiler AML optimizations */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case 'a':
> -
> -            /* Disable all optimizations */
> -
> -            Gbl_FoldConstants = FALSE;
> -            Gbl_IntegerOptimizationFlag = FALSE;
> -            Gbl_ReferenceOptimizationFlag = FALSE;
> -            break;
> -
> -        case 'f':
> -
> -            /* Disable folding on "normal" expressions */
> -
> -            Gbl_FoldConstants = FALSE;
> -            break;
> -
> -        case 'i':
> -
> -            /* Disable integer optimization to constants */
> -
> -            Gbl_IntegerOptimizationFlag = FALSE;
> -            break;
> -
> -        case 'n':
> -
> -            /* Disable named reference optimization */
> -
> -            Gbl_ReferenceOptimizationFlag = FALSE;
> -            break;
> -
> -        case 't':
> -
> -            /* Display compile time(s) */
> -
> -            Gbl_CompileTimesFlag = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -c%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'P':   /* Preprocessor options */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case '^':   /* Proprocess only, emit (.i) file */
> -            Gbl_PreprocessOnly = TRUE;
> -            Gbl_PreprocessorOutputFlag = TRUE;
> -            break;
> -
> -        case 'n':   /* Disable preprocessor */
> -            Gbl_PreprocessFlag = FALSE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -P%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'p':   /* Override default AML output filename */
> -        Gbl_OutputFilenamePrefix = AcpiGbl_Optarg;
> -        Gbl_UseDefaultAmlFilename = FALSE;
> -        break;
> -
> -
> -    case 'r':   /* Override revision found in table header */
> -        Gbl_RevisionOverride = (UINT8) strtoul (AcpiGbl_Optarg, NULL, 0);
> -        break;
> -
> -
> -    case 's':   /* Create AML in a source code file */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case 'a':
> -
> -            /* Produce assembly code output file */
> -
> -            Gbl_AsmOutputFlag = TRUE;
> -            break;
> -
> -        case 'c':
> -
> -            /* Produce C hex output file */
> -
> -            Gbl_C_OutputFlag = TRUE;
> -            break;
> -
> -        case 'o':
> -
> -            /* Produce AML offset table in C */
> -
> -            Gbl_C_OffsetTableFlag = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -s%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 't':   /* Produce hex table output file */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case 'a':
> -            Gbl_HexOutputFlag = HEX_OUTPUT_ASM;
> -            break;
> -
> -        case 'c':
> -            Gbl_HexOutputFlag = HEX_OUTPUT_C;
> -            break;
> -
> -        case 's':
> -            Gbl_HexOutputFlag = HEX_OUTPUT_ASL;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -t%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'T':   /* Create a ACPI table template file */
> -        Gbl_DoTemplates = TRUE;
> -        Gbl_TemplateSignature = AcpiGbl_Optarg;
> -        break;
> -
> -
> -    case 'v':   /* Version and verbosity settings */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case '^':
> -            printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
> -            exit (0);
> -
> -        case 'a':
> -            /* Disable All error/warning messages */
> -
> -            Gbl_NoErrors = TRUE;
> -            break;
> -
> -        case 'i':
> -            /*
> -             * Support for integrated development environment(s).
> -             *
> -             * 1) No compiler signon
> -             * 2) Send stderr messages to stdout
> -             * 3) Less verbose error messages (single line only for each)
> -             * 4) Error/warning messages are formatted appropriately to
> -             *    be recognized by MS Visual Studio
> -             */
> -            Gbl_VerboseErrors = FALSE;
> -            Gbl_DoSignon = FALSE;
> -            Gbl_Files[ASL_FILE_STDERR].Handle = stdout;
> -            break;
> -
> -        case 'o':
> -            Gbl_DisplayOptimizations = TRUE;
> -            break;
> -
> -        case 'r':
> -            Gbl_DisplayRemarks = FALSE;
> -            break;
> -
> -        case 's':
> -            Gbl_DoSignon = FALSE;
> -            break;
> -
> -        case 't':
> -            Gbl_VerboseTemplates = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -v%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'w': /* Set warning levels */
> -        switch (AcpiGbl_Optarg[0])
> -        {
> -        case '1':
> -            Gbl_WarningLevel = ASL_WARNING;
> -            break;
> -
> -        case '2':
> -            Gbl_WarningLevel = ASL_WARNING2;
> -            break;
> -
> -        case '3':
> -            Gbl_WarningLevel = ASL_WARNING3;
> -            break;
> -
> -        case 'e':
> -            Gbl_WarningsAsErrors = TRUE;
> -            break;
> -
> -        default:
> -            printf ("Unknown option: -w%s\n", AcpiGbl_Optarg);
> -            return (-1);
> -        }
> -        break;
> -
> -
> -    case 'x':   /* Set debug print output level */
> -        AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 16);
> -        break;
> -
> -
> -    case 'z':
> -        Gbl_UseOriginalCompilerId = TRUE;
> -        break;
> -
> -
> -    default:
> -        return (-1);
> -    }
> -
> -    return (0);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AslCommandLine
> - *
> - * PARAMETERS:  argc/argv
> - *
> - * RETURN:      Last argv index
> - *
> - * DESCRIPTION: Command line processing
> - *
> - ******************************************************************************/
> -
> -static int
> -AslCommandLine (
> -    int                     argc,
> -    char                    **argv)
> -{
> -    int                     BadCommandLine = 0;
> -    ACPI_STATUS             Status;
> -
> -
> -    /* Minimum command line contains at least the command and an input file */
> -
> -    if (argc < 2)
> -    {
> -        printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
> -        Usage ();
> -        exit (1);
> -    }
> -
> -    /* Process all command line options */
> -
> -    BadCommandLine = AslDoOptions (argc, argv, FALSE);
> -
> -    if (Gbl_DoTemplates)
> -    {
> -        Status = DtCreateTemplates (Gbl_TemplateSignature);
> -        if (ACPI_FAILURE (Status))
> -        {
> -            exit (-1);
> -        }
> -        exit (1);
> -    }
> -
> -    /* Next parameter must be the input filename */
> -
> -    if (!argv[AcpiGbl_Optind] &&
> -        !Gbl_DisasmFlag &&
> -        !Gbl_GetAllTables)
> -    {
> -        printf ("Missing input filename\n");
> -        BadCommandLine = TRUE;
> -    }
> -
> -    if (Gbl_DoSignon)
> -    {
> -        printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
> -        if (Gbl_IgnoreErrors)
> -        {
> -            printf ("Ignoring all errors, forcing AML file generation\n\n");
> -        }
> -    }
> -
> -    /* Abort if anything went wrong on the command line */
> -
> -    if (BadCommandLine)
> -    {
> -        printf ("\n");
> -        Usage ();
> -        exit (1);
> -    }
> -
> -    return (AcpiGbl_Optind);
>  }
>
>
> @@ -1093,24 +359,24 @@ main (
>      int                     Index2;
>
>
> -    signal (SIGINT, AslSignalHandler);
> +    ACPI_DEBUG_INITIALIZE (); /* For debug version only */
>
> +    /* Initialize preprocessor and compiler before command line processing */
> +
> +    signal (SIGINT, AslSignalHandler);
>      AcpiGbl_ExternalFileList = NULL;
>      AcpiDbgLevel = 0;
> -
> -#ifdef _DEBUG
> -    _CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF |
> -                    _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG));
> -#endif
> -
> -    /* Init and command line */
> +    PrInitializePreprocessor ();
> +    AslInitialize ();
>
>      Index1 = Index2 = AslCommandLine (argc, argv);
>
> -    AslInitialize ();
> -    PrInitializePreprocessor ();
> +    /* Allocate the line buffer(s), must be after command line */
> +
> +    Gbl_LineBufferSize /= 2;
> +    UtExpandLineBuffers ();
>
> -    /* Options that have no additional parameters or pathnames */
> +    /* Perform global actions first/only */
>
>      if (Gbl_GetAllTables)
>      {
> diff --git a/src/acpica/source/compiler/aslmessages.h b/src/acpica/source/compiler/aslmessages.h
> index b5c4d12..586afca 100644
> --- a/src/acpica/source/compiler/aslmessages.h
> +++ b/src/acpica/source/compiler/aslmessages.h
> @@ -118,17 +118,52 @@
>  #define __ASLMESSAGES_H
>
>
> -#define ASL_WARNING             0
> -#define ASL_WARNING2            1
> -#define ASL_WARNING3            2
> -#define ASL_ERROR               3
> -#define ASL_REMARK              4
> -#define ASL_OPTIMIZATION        5
> -#define ASL_NUM_REPORT_LEVELS   6
> +typedef enum
> +{
> +    ASL_OPTIMIZATION = 0,
> +    ASL_REMARK,
> +    ASL_WARNING,
> +    ASL_WARNING2,
> +    ASL_WARNING3,
> +    ASL_ERROR,
> +    ASL_NUM_REPORT_LEVELS
> +
> +} ASL_MESSAGE_TYPES;
>
> +#ifdef ASL_EXCEPTIONS
> +
> +/* Strings for message reporting levels, must match values above */
>
> -/* Values for all compiler messages */
> +const char              *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
> +    "Optimize",
> +    "Remark  ",
> +    "Warning ",
> +    "Warning ",
> +    "Warning ",
> +    "Error   "
> +};
> +
> +/* All lowercase versions for IDEs */
> +
> +const char              *AslErrorLevelIde [ASL_NUM_REPORT_LEVELS] = {
> +    "optimize",
> +    "remark  ",
> +    "warning ",
> +    "warning ",
> +    "warning ",
> +    "error   "
> +};
> +
> +#define ASL_ERROR_LEVEL_LENGTH          8       /* Length of strings above */
> +#endif
>
> +/*
> + * Values for all compiler messages.
> + *
> + * NOTE: With the introduction of the -vw option to disable specific messages,
> + * new messages should only be added to the end of this list, so that values
> + * for existing messages are not disturbed.
> + */
>  typedef enum
>  {
>      ASL_MSG_RESERVED = 0,
> @@ -252,6 +287,7 @@ typedef enum
>      ASL_MSG_SCOPE_TYPE,
>      ASL_MSG_SEEK,
>      ASL_MSG_SERIALIZED,
> +    ASL_MSG_SERIALIZED_REQUIRED,
>      ASL_MSG_SINGLE_NAME_OPTIMIZATION,
>      ASL_MSG_SOME_NO_RETVAL,
>      ASL_MSG_STRING_LENGTH,
> @@ -307,9 +343,15 @@ typedef enum
>
>  #ifdef ASL_EXCEPTIONS
>
> -/* Actual message strings for each compiler message */
> -
> -char                        *AslMessages [] = {
> +/*
> + * Actual message strings for each compiler message.
> + *
> + * NOTE: With the introduction of the -vw option to disable specific messages,
> + * new messages should only be added to the end of this list, so that values
> + * for existing messages are not disturbed.
> + */
> +char                        *AslMessages [] =
> +{
>  /*    The zeroth message is reserved */    "",
>  /*    ASL_MSG_ALIGNMENT */                  "Must be a multiple of alignment/granularity value",
>  /*    ASL_MSG_ALPHANUMERIC_STRING */        "String must be entirely alphanumeric",
> @@ -430,6 +472,7 @@ char                        *AslMessages [] = {
>  /*    ASL_MSG_SCOPE_TYPE */                 "Existing object has invalid type for Scope operator",
>  /*    ASL_MSG_SEEK */                       "Could not seek file",
>  /*    ASL_MSG_SERIALIZED */                 "Control Method marked Serialized",
> +/*    ASL_MSG_SERIALIZED_REQUIRED */        "Control Method should be made Serialized",
>  /*    ASL_MSG_SINGLE_NAME_OPTIMIZATION */   "NamePath optimized to NameSeg (uses run-time search path)",
>  /*    ASL_MSG_SOME_NO_RETVAL */             "Called method may not always return a value",
>  /*    ASL_MSG_STRING_LENGTH */              "String literal too long",
> @@ -480,27 +523,6 @@ char                        *AslMessages [] = {
>  /*    ASL_MSG_ZERO_VALUE */                 "Value must be non-zero"
>  };
>
> -
> -const char              *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
> -    "Warning ",
> -    "Warning ",
> -    "Warning ",
> -    "Error   ",
> -    "Remark  ",
> -    "Optimize"
> -};
> -
> -const char              *AslErrorLevelIde [ASL_NUM_REPORT_LEVELS] = {
> -    "warning ",
> -    "warning ",
> -    "warning ",
> -    "error   ",
> -    "remark  ",
> -    "optimize"
> -};
> -
> -#define ASL_ERROR_LEVEL_LENGTH          8       /* Length of strings above */
> -
>  #endif  /* ASL_EXCEPTIONS */
>
>  #endif  /* __ASLMESSAGES_H */
> diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
> index 3e0f757..f7b82d3 100644
> --- a/src/acpica/source/compiler/aslmethod.c
> +++ b/src/acpica/source/compiler/aslmethod.c
> @@ -116,12 +116,22 @@
>
>  #include "aslcompiler.h"
>  #include "aslcompiler.y.h"
> +#include "acparser.h"
> +#include "amlcode.h"
>
>
>  #define _COMPONENT          ACPI_COMPILER
>          ACPI_MODULE_NAME    ("aslmethod")
>
>
> +/* Local prototypes */
> +
> +void
> +MtCheckNamedObjectInMethod (
> +    ACPI_PARSE_OBJECT       *Op,
> +    ASL_METHOD_INFO         *MethodInfo);
> +
> +
>  /*******************************************************************************
>   *
>   * FUNCTION:    MtMethodAnalysisWalkBegin
> @@ -183,6 +193,8 @@ MtMethodAnalysisWalkBegin (
>          /* Get the SerializeRule and SyncLevel nodes, ignored here */
>
>          Next = Next->Asl.Next;
> +        MethodInfo->ShouldBeSerialized = (UINT8) Next->Asl.Value.Integer;
> +
>          Next = Next->Asl.Next;
>          ArgNode = Next;
>
> @@ -253,7 +265,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_METHODCALL:
>
>          if (MethodInfo &&
> @@ -263,7 +274,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_LOCAL0:
>      case PARSEOP_LOCAL1:
>      case PARSEOP_LOCAL2:
> @@ -308,7 +318,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_ARG0:
>      case PARSEOP_ARG1:
>      case PARSEOP_ARG2:
> @@ -359,7 +368,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_RETURN:
>
>          if (!MethodInfo)
> @@ -392,7 +400,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_BREAK:
>      case PARSEOP_CONTINUE:
>
> @@ -412,7 +419,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_STALL:
>
>          /* We can range check if the argument is an integer */
> @@ -424,7 +430,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_DEVICE:
>      case PARSEOP_EVENT:
>      case PARSEOP_MUTEX:
> @@ -444,7 +449,6 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      case PARSEOP_NAME:
>
>          /* Typecheck any predefined names statically defined with Name() */
> @@ -482,17 +486,76 @@ MtMethodAnalysisWalkBegin (
>          }
>          break;
>
> -
>      default:
> +
>          break;
>      }
>
> +    /* Check for named object creation within a non-serialized method */
> +
> +    MtCheckNamedObjectInMethod (Op, MethodInfo);
>      return (AE_OK);
>  }
>
>
>  /*******************************************************************************
>   *
> + * FUNCTION:    MtCheckNamedObjectInMethod
> + *
> + * PARAMETERS:  Op                  - Current parser op
> + *              MethodInfo          - Info for method being parsed
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Detect if a non-serialized method is creating a named object,
> + *              which could possibly cause problems if two threads execute
> + *              the method concurrently. Emit a remark in this case.
> + *
> + ******************************************************************************/
> +
> +void
> +MtCheckNamedObjectInMethod (
> +    ACPI_PARSE_OBJECT       *Op,
> +    ASL_METHOD_INFO         *MethodInfo)
> +{
> +    const ACPI_OPCODE_INFO  *OpInfo;
> +
> +
> +    /* We don't care about actual method declarations */
> +
> +    if (Op->Asl.AmlOpcode == AML_METHOD_OP)
> +    {
> +        return;
> +    }
> +
> +    /* Determine if we are creating a named object */
> +
> +    OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
> +    if (OpInfo->Class == AML_CLASS_NAMED_OBJECT)
> +    {
> +        /*
> +         * If we have a named object created within a non-serialized method,
> +         * emit a remark that the method should be serialized.
> +         *
> +         * Reason: If a thread blocks within the method for any reason, and
> +         * another thread enters the method, the method will fail because an
> +         * attempt will be made to create the same object twice.
> +         */
> +        if (MethodInfo && !MethodInfo->ShouldBeSerialized)
> +        {
> +            AslError (ASL_REMARK, ASL_MSG_SERIALIZED_REQUIRED, MethodInfo->Op,
> +                "due to creation of named objects within");
> +
> +            /* Emit message only ONCE per method */
> +
> +            MethodInfo->ShouldBeSerialized = TRUE;
> +        }
> +    }
> +}
> +
> +
> +/*******************************************************************************
> + *
>   * FUNCTION:    MtMethodAnalysisWalkEnd
>   *
>   * PARAMETERS:  ASL_WALK_CALLBACK
> @@ -518,6 +581,7 @@ MtMethodAnalysisWalkEnd (
>      {
>      case PARSEOP_METHOD:
>      case PARSEOP_RETURN:
> +
>          if (!MethodInfo)
>          {
>              printf ("No method info for method! [%s]\n", Op->Asl.Namepath);
> @@ -530,6 +594,7 @@ MtMethodAnalysisWalkEnd (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -606,7 +671,6 @@ MtMethodAnalysisWalkEnd (
>          ACPI_FREE (MethodInfo);
>          break;
>
> -
>      case PARSEOP_NAME:
>
>           /* Special check for two names like _L01 and _E01 in same scope */
> @@ -614,7 +678,6 @@ MtMethodAnalysisWalkEnd (
>          ApCheckForGpeNameConflict (Op);
>          break;
>
> -
>      case PARSEOP_RETURN:
>
>          /*
> @@ -644,7 +707,6 @@ MtMethodAnalysisWalkEnd (
>          }
>          break;
>
> -
>      case PARSEOP_IF:
>
>          if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
> @@ -660,7 +722,6 @@ MtMethodAnalysisWalkEnd (
>          }
>          break;
>
> -
>      case PARSEOP_ELSE:
>
>          if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
> diff --git a/src/acpica/source/compiler/aslnamesp.c b/src/acpica/source/compiler/aslnamesp.c
> index 0902c4b..149a5db 100644
> --- a/src/acpica/source/compiler/aslnamesp.c
> +++ b/src/acpica/source/compiler/aslnamesp.c
> @@ -266,7 +266,6 @@ NsDoOneNamespaceObject (
>                  ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
>              break;
>
> -
>          case ACPI_TYPE_STRING:
>
>              FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
> @@ -275,7 +274,9 @@ NsDoOneNamespaceObject (
>              break;
>
>          default:
> +
>              /* Nothing to do for other types */
> +
>              break;
>          }
>
> @@ -300,7 +301,6 @@ NsDoOneNamespaceObject (
>                  ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer));
>              break;
>
> -
>          case ACPI_TYPE_STRING:
>
>              if (Op->Asl.ParseOpcode == PARSEOP_NAME)
> @@ -317,7 +317,6 @@ NsDoOneNamespaceObject (
>                  Op->Asl.Value.String);
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_REGION_FIELD:
>
>              if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG)  ||
> @@ -330,42 +329,47 @@ NsDoOneNamespaceObject (
>                  Op->Asl.Parent->Asl.ExtraValue, (UINT32) Op->Asl.Value.Integer);
>              break;
>
> -
>          case ACPI_TYPE_BUFFER_FIELD:
>
>              switch (Op->Asl.ParseOpcode)
>              {
>              case PARSEOP_CREATEBYTEFIELD:
> +
>                  FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [BYTE  ( 8 bit)]");
>                  break;
>
>              case PARSEOP_CREATEDWORDFIELD:
> +
>                  FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [DWORD (32 bit)]");
>                  break;
>
>              case PARSEOP_CREATEQWORDFIELD:
> +
>                  FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [QWORD (64 bit)]");
>                  break;
>
>              case PARSEOP_CREATEWORDFIELD:
> +
>                  FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [WORD  (16 bit)]");
>                  break;
>
>              case PARSEOP_CREATEBITFIELD:
> +
>                  FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [BIT   ( 1 bit)]");
>                  break;
>
>              case PARSEOP_CREATEFIELD:
> +
>                  FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [Arbitrary Bit Field]");
>                  break;
>
>              default:
> +
>                  break;
>
>              }
>              break;
>
> -
>          case ACPI_TYPE_PACKAGE:
>
>              if (Op->Asl.ParseOpcode == PARSEOP_NAME)
> @@ -388,7 +392,6 @@ NsDoOneNamespaceObject (
>              }
>              break;
>
> -
>          case ACPI_TYPE_BUFFER:
>
>              if (Op->Asl.ParseOpcode == PARSEOP_NAME)
> @@ -410,7 +413,6 @@ NsDoOneNamespaceObject (
>              }
>              break;
>
> -
>          case ACPI_TYPE_METHOD:
>
>              FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
> @@ -418,14 +420,12 @@ NsDoOneNamespaceObject (
>                  Op->Asl.AmlSubtreeLength);
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_RESOURCE:
>
>              FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
>                  "  [Desc Offset     0x%.4X Bytes]", Node->Value);
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_RESOURCE_FIELD:
>
>              FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
> @@ -444,9 +444,10 @@ NsDoOneNamespaceObject (
>              }
>              break;
>
> -
>          default:
> +
>              /* Nothing to do for other types */
> +
>              break;
>          }
>      }
> diff --git a/src/acpica/source/compiler/asloffset.c b/src/acpica/source/compiler/asloffset.c
> index 22c9ff0..3c6551e 100644
> --- a/src/acpica/source/compiler/asloffset.c
> +++ b/src/acpica/source/compiler/asloffset.c
> @@ -130,7 +130,6 @@ LsEmitOffsetTableEntry (
>      UINT32                  FileId,
>      ACPI_NAMESPACE_NODE     *Node,
>      UINT32                  Offset,
> -    UINT32                  Length,
>      char                    *OpName,
>      UINT64                  Value,
>      UINT8                   AmlOpcode);
> @@ -149,7 +148,9 @@ LsEmitOffsetTableEntry (
>   * Three types of objects are currently emitted to the offset table:
>   *   1) Tagged (named) resource descriptors
>   *   2) Named integer objects with constant integer values
> - *   3) Operation Regions that have constant Offset (address) parameters
> + *   3) Named package objects
> + *   4) Operation Regions that have constant Offset (address) parameters
> + *   5) Control methods
>   *
>   * The offset table allows the BIOS to dynamically update the values of these
>   * objects at boot time.
> @@ -166,7 +167,7 @@ LsAmlOffsetWalk (
>      ACPI_NAMESPACE_NODE     *Node;
>      UINT32                  Length;
>      UINT32                  OffsetOfOpcode;
> -    ACPI_PARSE_OBJECT       *AddressOp;
> +    ACPI_PARSE_OBJECT       *NextOp;
>
>
>      /* Ignore actual data blocks for resource descriptors */
> @@ -191,13 +192,17 @@ LsAmlOffsetWalk (
>          (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC))
>      {
>          LsEmitOffsetTableEntry (FileId, Node, Gbl_CurrentAmlOffset,
> -            Op->Asl.FinalAmlLength, Op->Asl.ParseOpName, 0, Op->Asl.Extra);
> +            Op->Asl.ParseOpName, 0, Op->Asl.Extra);
> +        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
> +        return (AE_OK);
>      }
>
> -    /* Named object -- Name (NameString, DataRefObject) */
> -
> -    else if (Op->Asl.AmlOpcode == AML_NAME_OP)
> +    switch (Op->Asl.AmlOpcode)
>      {
> +    case AML_NAME_OP:
> +
> +        /* Named object -- Name (NameString, DataRefObject) */
> +
>          if (!Op->Asl.Child)
>          {
>              FlPrintFile (FileId, "%s NO CHILD!\n", MsgBuffer);
> @@ -226,39 +231,50 @@ LsAmlOffsetWalk (
>          case AML_DWORD_OP:
>          case AML_QWORD_OP:
>
> -            /* The +1/-1 is to handle the integer size prefix (opcode) */
> +            /* The +1 is to handle the integer size prefix (opcode) */
>
>              LsEmitOffsetTableEntry (FileId, Node,
>                  (Gbl_CurrentAmlOffset + OffsetOfOpcode + 1),
> -                (Op->Asl.FinalAmlLength - 1), Op->Asl.ParseOpName,
> -                Op->Asl.Value.Integer, (UINT8) Op->Asl.AmlOpcode);
> +                Op->Asl.ParseOpName, Op->Asl.Value.Integer,
> +                (UINT8) Op->Asl.AmlOpcode);
>              break;
>
> -        default:
> +        case AML_PACKAGE_OP:
> +        case AML_VAR_PACKAGE_OP:
> +
> +            NextOp = Op->Asl.Child;
> +
> +            LsEmitOffsetTableEntry (FileId, Node,
> +                (Gbl_CurrentAmlOffset + OffsetOfOpcode),
> +                Op->Asl.ParseOpName,
> +                NextOp->Asl.Value.Integer,
> +                (UINT8) Op->Asl.AmlOpcode);
>              break;
> +
> +         default:
> +             break;
>          }
>
>          Gbl_CurrentAmlOffset += Length;
>          return (AE_OK);
> -    }
>
> -    /* OperationRegion (NameString, RegionSpace, RegionOffset, RegionLength) */
> +    case AML_REGION_OP:
> +
> +        /* OperationRegion (NameString, RegionSpace, RegionOffset, RegionLength) */
>
> -    else if (Op->Asl.AmlOpcode == AML_REGION_OP)
> -    {
>          Length = Op->Asl.FinalAmlLength;
>
>          /* Get the name/namepath node */
>
> -        AddressOp = Op->Asl.Child;
> -        OffsetOfOpcode = Length + AddressOp->Asl.FinalAmlLength + 1;
> +        NextOp = Op->Asl.Child;
> +        OffsetOfOpcode = Length + NextOp->Asl.FinalAmlLength + 1;
>
>          /* Get the SpaceId node, then the Offset (address) node */
>
> -        AddressOp = AddressOp->Asl.Next;
> -        AddressOp = AddressOp->Asl.Next;
> +        NextOp = NextOp->Asl.Next;
> +        NextOp = NextOp->Asl.Next;
>
> -        switch (AddressOp->Asl.AmlOpcode)
> +        switch (NextOp->Asl.AmlOpcode)
>          {
>          /*
>           * We are only interested in integer constants that can be changed
> @@ -270,12 +286,10 @@ LsAmlOffsetWalk (
>          case AML_DWORD_OP:
>          case AML_QWORD_OP:
>
> -            /* The +1/-1 is to handle the integer size prefix (opcode) */
> -
>              LsEmitOffsetTableEntry (FileId, Node,
>                  (Gbl_CurrentAmlOffset + OffsetOfOpcode + 1),
> -                (AddressOp->Asl.FinalAmlLength - 1), Op->Asl.ParseOpName,
> -                AddressOp->Asl.Value.Integer, (UINT8) AddressOp->Asl.AmlOpcode);
> +                Op->Asl.ParseOpName, NextOp->Asl.Value.Integer,
> +                (UINT8) NextOp->Asl.AmlOpcode);
>
>              Gbl_CurrentAmlOffset += Length;
>              return (AE_OK);
> @@ -283,6 +297,31 @@ LsAmlOffsetWalk (
>          default:
>              break;
>          }
> +        break;
> +
> +    case AML_METHOD_OP:
> +
> +        /* Method (Namepath, ...) */
> +
> +        Length = Op->Asl.FinalAmlLength;
> +
> +        /* Get the NameSeg/NamePath Op */
> +
> +        NextOp = Op->Asl.Child;
> +
> +        /* Point to the *last* nameseg in the namepath */
> +
> +        OffsetOfOpcode = NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE;
> +
> +        LsEmitOffsetTableEntry (FileId, Node,
> +            (Gbl_CurrentAmlOffset + OffsetOfOpcode + Length),
> +            Op->Asl.ParseOpName,
> +            *((UINT32 *) &NextOp->Asl.Value.Buffer[OffsetOfOpcode]),
> +            (UINT8) Op->Asl.AmlOpcode);
> +        break;
> +
> +    default:
> +        break;
>      }
>
>      Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
> @@ -297,7 +336,6 @@ LsAmlOffsetWalk (
>   * PARAMETERS:  FileId          - ID of current listing file
>   *              Node            - Namespace node associated with the name
>   *              Offset          - Offset of the value within the AML table
> - *              Length          - Length in bytes of the value
>   *              OpName          - Name of the AML opcode
>   *              Value           - Current value of the AML field
>   *              AmlOpcode       - Opcode associated with the field
> @@ -313,7 +351,6 @@ LsEmitOffsetTableEntry (
>      UINT32                  FileId,
>      ACPI_NAMESPACE_NODE     *Node,
>      UINT32                  Offset,
> -    UINT32                  Length,
>      char                    *OpName,
>      UINT64                  Value,
>      UINT8                   AmlOpcode)
> @@ -365,8 +402,6 @@ LsDoOffsetTableHeader (
>      UINT32                  FileId)
>  {
>
> -    Gbl_CurrentAmlOffset = 0;
> -
>      FlPrintFile (FileId,
>          "#ifndef __AML_OFFSET_TABLE_H\n"
>          "#define __AML_OFFSET_TABLE_H\n\n");
> @@ -374,14 +409,41 @@ LsDoOffsetTableHeader (
>      FlPrintFile (FileId, "typedef struct {\n"
>          "    char                   *Pathname;\n"
>          "    unsigned long          Offset;\n"
> -        "    unsigned char          AmlOpcode;\n"
> -        "    unsigned long long     AmlValue;\n"
> +        "    unsigned char          Opcode;\n"
> +        "    unsigned long long     Value;\n"
>          "} AML_OFFSET_TABLE_ENTRY;\n\n");
>
>      FlPrintFile (FileId,
>          "#endif /* __AML_OFFSET_TABLE_H */\n\n");
>
>      FlPrintFile (FileId,
> +        "/*\n"
> +        " * Information about supported object types:\n"
> +        " *\n"
> +        " * Integers:\n"
> +        " *    Offset points to the actual integer data\n"
> +        " *    Opcode is the integer prefix, indicates length of the data\n"
> +        " *    Value is the existing value in the AML\n"
> +        " *\n"
> +        " * Packages:\n"
> +        " *    Offset points to the package opcode\n"
> +        " *    Opcode is the package or var_package opcode\n"
> +        " *    Value is the package element cound\n"
> +        " *\n"
> +        " * Operation Regions:\n"
> +        " *    Offset points to the region address data\n"
> +        " *    Opcode is the address integer prefix, indicates length of the data\n"
> +        " *    Value is the existing address value in the AML\n"
> +        " *\n"
> +        " * Control Methods:\n"
> +        " *    Offset points to the first byte of the namepath\n"
> +        " *\n"
> +        " * Resource Descriptors:\n"
> +        " *    Offset points to the start of the descriptor\n"
> +        " *    Opcode is the descriptor type\n"
> +        " */\n");
> +
> +    FlPrintFile (FileId,
>          "AML_OFFSET_TABLE_ENTRY   %s_%s_OffsetTable[] =\n{\n",
>          Gbl_TableSignature, Gbl_TableId);
>  }
> diff --git a/src/acpica/source/compiler/aslopcodes.c b/src/acpica/source/compiler/aslopcodes.c
> index 2075037..4d26a8b 100644
> --- a/src/acpica/source/compiler/aslopcodes.c
> +++ b/src/acpica/source/compiler/aslopcodes.c
> @@ -338,6 +338,7 @@ OpcSetOptimalIntegerSize (
>              break;
>
>          default:
> +
>              break;
>          }
>      }
> @@ -883,7 +884,9 @@ OpcGenerateAmlOpcode (
>          break;
>
>      default:
> +
>          /* Nothing to do for other opcodes */
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/asloperands.c b/src/acpica/source/compiler/asloperands.c
> index 8f26559..a9f08d0 100644
> --- a/src/acpica/source/compiler/asloperands.c
> +++ b/src/acpica/source/compiler/asloperands.c
> @@ -370,7 +370,6 @@ OpnDoFieldCommon (
>              /* Nothing additional to do */
>              break;
>
> -
>          case PARSEOP_OFFSET:
>
>              /* New offset into the field */
> @@ -414,7 +413,6 @@ OpnDoFieldCommon (
>              }
>              break;
>
> -
>          case PARSEOP_NAMESEG:
>          case PARSEOP_RESERVED_BYTES:
>
> @@ -432,6 +430,7 @@ OpnDoFieldCommon (
>                  case AML_FIELD_ACCESS_BYTE:
>                  case AML_FIELD_ACCESS_BUFFER:
>                  default:
> +
>                      MinimumLength = 8;
>                      break;
>
> @@ -452,7 +451,9 @@ OpnDoFieldCommon (
>              break;
>
>          default:
> +
>              /* All supported field opcodes must appear above */
> +
>              break;
>          }
>
> @@ -682,7 +683,6 @@ OpnDoBuffer (
>          }
>          break;
>
> -
>      case PARSEOP_STRING_LITERAL:
>
>          /*
> @@ -696,18 +696,16 @@ OpnDoBuffer (
>          InitializerOp->Asl.ParseOpcode    = PARSEOP_RAW_DATA;
>          break;
>
> -
>      case PARSEOP_RAW_DATA:
>
>          /* Buffer nodes are already initialized (e.g. Unicode operator) */
>          return;
>
> -
>      case PARSEOP_DEFAULT_ARG:
>          break;
>
> -
>      default:
> +
>          AslError (ASL_ERROR, ASL_MSG_INVALID_OPERAND, InitializerOp,
>              "Unknown buffer initializer opcode");
>          printf ("Unknown buffer initializer opcode [%s]\n",
> @@ -1164,6 +1162,7 @@ OpnAttachNameToNode (
>          return;
>
>      default:
> +
>          return;
>      }
>
> @@ -1202,42 +1201,52 @@ OpnGenerateAmlOperands (
>      switch (Op->Asl.ParseOpcode)
>      {
>      case PARSEOP_DEFINITIONBLOCK:
> +
>          OpnDoDefinitionBlock (Op);
>          break;
>
>      case PARSEOP_METHOD:
> +
>          OpnDoMethod (Op);
>          break;
>
>      case PARSEOP_MUTEX:
> +
>          OpnDoMutex (Op);
>          break;
>
>      case PARSEOP_FIELD:
> +
>          OpnDoField (Op);
>          break;
>
>      case PARSEOP_INDEXFIELD:
> +
>          OpnDoIndexField (Op);
>          break;
>
>      case PARSEOP_BANKFIELD:
> +
>          OpnDoBankField (Op);
>          break;
>
>      case PARSEOP_BUFFER:
> +
>          OpnDoBuffer (Op);
>          break;
>
>      case PARSEOP_LOADTABLE:
> +
>          OpnDoLoadTable (Op);
>          break;
>
>      case PARSEOP_OPERATIONREGION:
> +
>          OpnDoRegion (Op);
>          break;
>
>      case PARSEOP_RESOURCETEMPLATE:
> +
>          RsDoResourceTemplate (Op);
>          break;
>
> @@ -1245,9 +1254,11 @@ OpnGenerateAmlOperands (
>      case PARSEOP_NAMESTRING:
>      case PARSEOP_METHODCALL:
>      case PARSEOP_STRING_LITERAL:
> +
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/aslpredef.c b/src/acpica/source/compiler/aslpredef.c
> index 6d28bbf..09e1f02 100644
> --- a/src/acpica/source/compiler/aslpredef.c
> +++ b/src/acpica/source/compiler/aslpredef.c
> @@ -382,7 +382,6 @@ ApCheckPredefinedReturnValue (
>              break;
>
>          default:
> -
>              /*
>               * All other ops are very difficult or impossible to typecheck at
>               * compile time. These include all Localx, Argx, and method
> @@ -451,6 +450,7 @@ ApCheckForPredefinedObject (
>          return;
>
>      default:
> +
>          break;
>      }
>
> @@ -696,33 +696,53 @@ ApCheckObjectType (
>      case PARSEOP_ONE:
>      case PARSEOP_ONES:
>      case PARSEOP_INTEGER:
> +
>          ReturnBtype = ACPI_RTYPE_INTEGER;
>          TypeName = "Integer";
>          break;
>
>      case PARSEOP_STRING_LITERAL:
> +
>          ReturnBtype = ACPI_RTYPE_STRING;
>          TypeName = "String";
>          break;
>
>      case PARSEOP_BUFFER:
> +
>          ReturnBtype = ACPI_RTYPE_BUFFER;
>          TypeName = "Buffer";
>          break;
>
>      case PARSEOP_PACKAGE:
>      case PARSEOP_VAR_PACKAGE:
> +
>          ReturnBtype = ACPI_RTYPE_PACKAGE;
>          TypeName = "Package";
>          break;
>
>      case PARSEOP_NAMESEG:
>      case PARSEOP_NAMESTRING:
> +        /*
> +         * Ignore any named references within a package object.
> +         *
> +         * For Package objects, references are allowed instead of any of the
> +         * standard data types (Integer/String/Buffer/Package). These
> +         * references are resolved at runtime. NAMESEG and NAMESTRING are
> +         * impossible to typecheck at compile time because the type of
> +         * any named object can be changed at runtime (for example,
> +         * CopyObject will change the type of the target object).
> +         */
> +        if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT)
> +        {
> +            return (AE_OK);
> +        }
> +
>          ReturnBtype = ACPI_RTYPE_REFERENCE;
>          TypeName = "Reference";
>          break;
>
>      default:
> +
>          /* Not one of the supported object types */
>
>          TypeName = UtGetOpName (Op->Asl.ParseOpcode);
> diff --git a/src/acpica/source/compiler/aslresource.c b/src/acpica/source/compiler/aslresource.c
> index 9e919e7..4a375b0 100644
> --- a/src/acpica/source/compiler/aslresource.c
> +++ b/src/acpica/source/compiler/aslresource.c
> @@ -391,6 +391,7 @@ RsLargeAddressCheck (
>          case ACPI_RESOURCE_FLAG_MIF:
>          case ACPI_RESOURCE_FLAG_MAF:
>          default:
> +
>              AslError (ASL_ERROR, ASL_MSG_INVALID_ADDR_FLAGS, LengthOp, NULL);
>          }
>      }
> @@ -436,6 +437,7 @@ RsLargeAddressCheck (
>
>          case (ACPI_RESOURCE_FLAG_MIF | ACPI_RESOURCE_FLAG_MAF):
>          default:
> +
>              AslError (ASL_ERROR, ASL_MSG_INVALID_ADDR_FLAGS, LengthOp, NULL);
>          }
>      }
> @@ -727,45 +729,54 @@ RsDoOneResourceDescriptor (
>      switch (DescriptorTypeOp->Asl.ParseOpcode)
>      {
>      case PARSEOP_DMA:
> +
>          Rnode = RsDoDmaDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_FIXEDDMA:
> +
>          Rnode = RsDoFixedDmaDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_DWORDIO:
> +
>          Rnode = RsDoDwordIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_DWORDMEMORY:
> +
>          Rnode = RsDoDwordMemoryDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_DWORDSPACE:
> +
>          Rnode = RsDoDwordSpaceDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_ENDDEPENDENTFN:
> +
>          switch (*State)
>          {
>          case ACPI_RSTATE_NORMAL:
> +
>              AslError (ASL_ERROR, ASL_MSG_MISSING_STARTDEPENDENT,
>                  DescriptorTypeOp, NULL);
>              break;
>
>          case ACPI_RSTATE_START_DEPENDENT:
> +
>              AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
>                  DescriptorTypeOp, NULL);
>              break;
>
>          case ACPI_RSTATE_DEPENDENT_LIST:
>          default:
> +
>              break;
>          }
>
> @@ -775,89 +786,107 @@ RsDoOneResourceDescriptor (
>          break;
>
>      case PARSEOP_ENDTAG:
> +
>          Rnode = RsDoEndTagDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_EXTENDEDIO:
> +
>          Rnode = RsDoExtendedIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_EXTENDEDMEMORY:
> +
>          Rnode = RsDoExtendedMemoryDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_EXTENDEDSPACE:
> +
>          Rnode = RsDoExtendedSpaceDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_FIXEDIO:
> +
>          Rnode = RsDoFixedIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_INTERRUPT:
> +
>          Rnode = RsDoInterruptDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_IO:
> +
>          Rnode = RsDoIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_IRQ:
> +
>          Rnode = RsDoIrqDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_IRQNOFLAGS:
> +
>          Rnode = RsDoIrqNoFlagsDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_MEMORY24:
> +
>          Rnode = RsDoMemory24Descriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_MEMORY32:
> +
>          Rnode = RsDoMemory32Descriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_MEMORY32FIXED:
> +
>          Rnode = RsDoMemory32FixedDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_QWORDIO:
> +
>          Rnode = RsDoQwordIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_QWORDMEMORY:
> +
>          Rnode = RsDoQwordMemoryDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_QWORDSPACE:
> +
>          Rnode = RsDoQwordSpaceDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_REGISTER:
> +
>          Rnode = RsDoGeneralRegisterDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_STARTDEPENDENTFN:
> +
>          switch (*State)
>          {
>          case ACPI_RSTATE_START_DEPENDENT:
> +
>              AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
>                  DescriptorTypeOp, NULL);
>              break;
> @@ -865,6 +894,7 @@ RsDoOneResourceDescriptor (
>          case ACPI_RSTATE_NORMAL:
>          case ACPI_RSTATE_DEPENDENT_LIST:
>          default:
> +
>              break;
>          }
>
> @@ -875,9 +905,11 @@ RsDoOneResourceDescriptor (
>          break;
>
>      case PARSEOP_STARTDEPENDENTFN_NOPRI:
> +
>          switch (*State)
>          {
>          case ACPI_RSTATE_START_DEPENDENT:
> +
>              AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
>                  DescriptorTypeOp, NULL);
>              break;
> @@ -885,6 +917,7 @@ RsDoOneResourceDescriptor (
>          case ACPI_RSTATE_NORMAL:
>          case ACPI_RSTATE_DEPENDENT_LIST:
>          default:
> +
>              break;
>          }
>
> @@ -895,60 +928,72 @@ RsDoOneResourceDescriptor (
>          break;
>
>      case PARSEOP_VENDORLONG:
> +
>          Rnode = RsDoVendorLargeDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_VENDORSHORT:
> +
>          Rnode = RsDoVendorSmallDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_WORDBUSNUMBER:
> +
>          Rnode = RsDoWordBusNumberDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_WORDIO:
> +
>          Rnode = RsDoWordIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_WORDSPACE:
> +
>          Rnode = RsDoWordSpaceDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_GPIO_INT:
> +
>          Rnode = RsDoGpioIntDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_GPIO_IO:
> +
>          Rnode = RsDoGpioIoDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_I2C_SERIALBUS:
> +
>          Rnode = RsDoI2cSerialBusDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_SPI_SERIALBUS:
> +
>          Rnode = RsDoSpiSerialBusDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_UART_SERIALBUS:
> +
>          Rnode = RsDoUartSerialBusDescriptor (DescriptorTypeOp,
>                      CurrentByteOffset);
>          break;
>
>      case PARSEOP_DEFAULT_ARG:
> +
>          /* Just ignore any of these, they are used as fillers/placeholders */
>          break;
>
>      default:
> +
>          printf ("Unknown resource descriptor type [%s]\n",
>                      DescriptorTypeOp->Asl.ParseOpName);
>          break;
> diff --git a/src/acpica/source/compiler/aslrestype1i.c b/src/acpica/source/compiler/aslrestype1i.c
> index 68bf756..360b8db 100644
> --- a/src/acpica/source/compiler/aslrestype1i.c
> +++ b/src/acpica/source/compiler/aslrestype1i.c
> @@ -317,6 +317,7 @@ RsDoFixedDmaDescriptor (
>              break;
>
>          default:    /* Ignore any extra nodes */
> +
>              break;
>          }
>
> diff --git a/src/acpica/source/compiler/aslrestype2s.c b/src/acpica/source/compiler/aslrestype2s.c
> index 4380829..be502a7 100644
> --- a/src/acpica/source/compiler/aslrestype2s.c
> +++ b/src/acpica/source/compiler/aslrestype2s.c
> @@ -689,7 +689,6 @@ RsDoGpioIoDescriptor (
>              break;
>
>          case 9: /* Vendor Data (Optional - Buffer of BYTEs) (_VEN) */
> -
>              /*
>               * Always set the VendorOffset even if there is no Vendor Data.
>               * This field is required in order to calculate the length
> @@ -884,6 +883,7 @@ RsDoI2cSerialBusDescriptor (
>              break;
>
>          default:    /* Ignore any extra nodes */
> +
>              break;
>          }
>
> @@ -1058,6 +1058,7 @@ RsDoSpiSerialBusDescriptor (
>              break;
>
>          default:    /* Ignore any extra nodes */
> +
>              break;
>          }
>
> @@ -1249,6 +1250,7 @@ RsDoUartSerialBusDescriptor (
>              break;
>
>          default:    /* Ignore any extra nodes */
> +
>              break;
>          }
>
> diff --git a/src/acpica/source/compiler/aslstartup.c b/src/acpica/source/compiler/aslstartup.c
> index f00d64e..19b4f95 100644
> --- a/src/acpica/source/compiler/aslstartup.c
> +++ b/src/acpica/source/compiler/aslstartup.c
> @@ -606,6 +606,7 @@ AslDoOneFile (
>          return (AE_ERROR);
>
>      default:
> +
>          printf ("Unknown file type %X\n", Gbl_FileType);
>          return (AE_ERROR);
>      }
> diff --git a/src/acpica/source/compiler/aslsupport.l b/src/acpica/source/compiler/aslsupport.l
> index afc95fd..2f47a63 100644
> --- a/src/acpica/source/compiler/aslsupport.l
> +++ b/src/acpica/source/compiler/aslsupport.l
> @@ -467,16 +467,19 @@ count (
>      switch (Type)
>      {
>      case 2:
> +
>          TotalKeywords++;
>          TotalNamedObjects++;
>          break;
>
>      case 3:
> +
>          TotalKeywords++;
>          TotalExecutableOpcodes++;
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -666,6 +669,7 @@ DoCharacter:
>                  goto CompletedString;
>
>              default:
> +
>                  break;
>              }
>              break;
> @@ -677,34 +681,42 @@ DoCharacter:
>              switch (StringChar)
>              {
>              case 'a':
> +
>                  StringChar = 0x07;      /* BELL */
>                  break;
>
>              case 'b':
> +
>                  StringChar = 0x08;      /* BACKSPACE */
>                  break;
>
>              case 'f':
> +
>                  StringChar = 0x0C;      /* FORMFEED */
>                  break;
>
>              case 'n':
> +
>                  StringChar = 0x0A;      /* LINEFEED */
>                  break;
>
>              case 'r':
> +
>                  StringChar = 0x0D;      /* CARRIAGE RETURN*/
>                  break;
>
>              case 't':
> +
>                  StringChar = 0x09;      /* HORIZONTAL TAB */
>                  break;
>
>              case 'v':
> +
>                  StringChar = 0x0B;      /* VERTICAL TAB */
>                  break;
>
>              case 'x':
> +
>                  State = ASL_HEX_CONSTANT;
>                  i = 0;
>                  continue;
> @@ -712,6 +724,7 @@ DoCharacter:
>              case '\'':                  /* Single Quote */
>              case '\"':                  /* Double Quote */
>              case '\\':                  /* Backslash */
> +
>                  break;
>
>              default:
> @@ -781,7 +794,6 @@ DoCharacter:
>              i++;
>              continue;
>
> -
>          case ASL_HEX_CONSTANT:
>
>              /* Up to two hex digits allowed */
> @@ -827,6 +839,7 @@ DoCharacter:
>              continue;
>
>          default:
> +
>              break;
>          }
>
> diff --git a/src/acpica/source/compiler/asltransform.c b/src/acpica/source/compiler/asltransform.c
> index fd50aff..967f441 100644
> --- a/src/acpica/source/compiler/asltransform.c
> +++ b/src/acpica/source/compiler/asltransform.c
> @@ -371,15 +371,16 @@ TrTransformSubtree (
>      switch (Op->Asl.ParseOpcode)
>      {
>      case PARSEOP_DEFINITIONBLOCK:
> +
>          TrDoDefinitionBlock (Op);
>          break;
>
>      case PARSEOP_SWITCH:
> +
>          TrDoSwitch (Op);
>          break;
>
>      case PARSEOP_METHOD:
> -
>          /*
>           * TBD: Zero the tempname (_T_x) count. Probably shouldn't be a global,
>           * however
> @@ -388,7 +389,9 @@ TrTransformSubtree (
>          break;
>
>      default:
> +
>          /* Nothing to do here for other opcodes */
> +
>          break;
>      }
>  }
> @@ -772,18 +775,21 @@ TrDoSwitch (
>      switch (Btype)
>      {
>      case ACPI_BTYPE_INTEGER:
> +
>          NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_ZERO,
>                                  (UINT64) 0);
>          TrAmlInitLineNumbers (NewOp2->Asl.Next, NewOp);
>          break;
>
>      case ACPI_BTYPE_STRING:
> +
>          NewOp2->Asl.Next = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL,
>                                  (UINT64) ACPI_TO_INTEGER (""));
>          TrAmlInitLineNumbers (NewOp2->Asl.Next, NewOp);
>          break;
>
>      case ACPI_BTYPE_BUFFER:
> +
>          (void) TrLinkPeerNode (NewOp2, TrCreateValuedLeafNode (PARSEOP_BUFFER,
>                                      (UINT64) 0));
>          Next = NewOp2->Asl.Next;
> @@ -800,6 +806,7 @@ TrDoSwitch (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/asltree.c b/src/acpica/source/compiler/asltree.c
> index 1f9e907..2fb249b 100644
> --- a/src/acpica/source/compiler/asltree.c
> +++ b/src/acpica/source/compiler/asltree.c
> @@ -257,20 +257,24 @@ TrUpdateNode (
>          switch (ParseOpcode)
>          {
>          case PARSEOP_BYTECONST:
> +
>              Op->Asl.Value.Integer = ACPI_UINT8_MAX;
>              break;
>
>          case PARSEOP_WORDCONST:
> +
>              Op->Asl.Value.Integer = ACPI_UINT16_MAX;
>              break;
>
>          case PARSEOP_DWORDCONST:
> +
>              Op->Asl.Value.Integer = ACPI_UINT32_MAX;
>              break;
>
>          /* Don't need to do the QWORD case */
>
>          default:
> +
>              /* Don't care about others */
>              break;
>          }
> @@ -286,22 +290,27 @@ TrUpdateNode (
>      switch (ParseOpcode)
>      {
>      case PARSEOP_BYTECONST:
> +
>          UtCheckIntegerRange (Op, 0x00, ACPI_UINT8_MAX);
>          Op->Asl.Value.Integer &= ACPI_UINT8_MAX;
>          break;
>
>      case PARSEOP_WORDCONST:
> +
>          UtCheckIntegerRange (Op, 0x00, ACPI_UINT16_MAX);
>          Op->Asl.Value.Integer &= ACPI_UINT16_MAX;
>          break;
>
>      case PARSEOP_DWORDCONST:
> +
>          UtCheckIntegerRange (Op, 0x00, ACPI_UINT32_MAX);
>          Op->Asl.Value.Integer &= ACPI_UINT32_MAX;
>          break;
>
>      default:
> +
>          /* Don't care about others, don't need to check QWORD */
> +
>          break;
>      }
>
> @@ -329,54 +338,71 @@ TrGetNodeFlagName (
>      switch (Flags)
>      {
>      case NODE_VISITED:
> +
>          return ("NODE_VISITED");
>
>      case NODE_AML_PACKAGE:
> +
>          return ("NODE_AML_PACKAGE");
>
>      case NODE_IS_TARGET:
> +
>          return ("NODE_IS_TARGET");
>
>      case NODE_IS_RESOURCE_DESC:
> +
>          return ("NODE_IS_RESOURCE_DESC");
>
>      case NODE_IS_RESOURCE_FIELD:
> +
>          return ("NODE_IS_RESOURCE_FIELD");
>
>      case NODE_HAS_NO_EXIT:
> +
>          return ("NODE_HAS_NO_EXIT");
>
>      case NODE_IF_HAS_NO_EXIT:
> +
>          return ("NODE_IF_HAS_NO_EXIT");
>
>      case NODE_NAME_INTERNALIZED:
> +
>          return ("NODE_NAME_INTERNALIZED");
>
>      case NODE_METHOD_NO_RETVAL:
> +
>          return ("NODE_METHOD_NO_RETVAL");
>
>      case NODE_METHOD_SOME_NO_RETVAL:
> +
>          return ("NODE_METHOD_SOME_NO_RETVAL");
>
>      case NODE_RESULT_NOT_USED:
> +
>          return ("NODE_RESULT_NOT_USED");
>
>      case NODE_METHOD_TYPED:
> +
>          return ("NODE_METHOD_TYPED");
>
>      case NODE_COMPILE_TIME_CONST:
> +
>          return ("NODE_COMPILE_TIME_CONST");
>
>      case NODE_IS_TERM_ARG:
> +
>          return ("NODE_IS_TERM_ARG");
>
>      case NODE_WAS_ONES_OP:
> +
>          return ("NODE_WAS_ONES_OP");
>
>      case NODE_IS_NAME_DECLARATION:
> +
>          return ("NODE_IS_NAME_DECLARATION");
>
>      default:
> +
>          return ("Multiple Flags (or unknown flag) set");
>      }
>  }
> @@ -542,11 +568,13 @@ TrCreateConstantLeafNode (
>      switch (ParseOpcode)
>      {
>      case PARSEOP___LINE__:
> +
>          Op = TrAllocateNode (PARSEOP_INTEGER);
>          Op->Asl.Value.Integer = Op->Asl.LineNumber;
>          break;
>
>      case PARSEOP___PATH__:
> +
>          Op = TrAllocateNode (PARSEOP_STRING_LITERAL);
>
>          /* Op.Asl.Filename contains the full pathname to the file */
> @@ -555,6 +583,7 @@ TrCreateConstantLeafNode (
>          break;
>
>      case PARSEOP___FILE__:
> +
>          Op = TrAllocateNode (PARSEOP_STRING_LITERAL);
>
>          /* Get the simple filename from the full path */
> @@ -565,6 +594,7 @@ TrCreateConstantLeafNode (
>          break;
>
>      case PARSEOP___DATE__:
> +
>          Op = TrAllocateNode (PARSEOP_STRING_LITERAL);
>
>          /* Get a copy of the current time */
> @@ -579,6 +609,7 @@ TrCreateConstantLeafNode (
>          break;
>
>      default: /* This would be an internal error */
> +
>          return (NULL);
>      }
>
> @@ -623,30 +654,37 @@ TrCreateValuedLeafNode (
>      switch (ParseOpcode)
>      {
>      case PARSEOP_STRING_LITERAL:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "STRING->%s", Value);
>          break;
>
>      case PARSEOP_NAMESEG:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "NAMESEG->%s", Value);
>          break;
>
>      case PARSEOP_NAMESTRING:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "NAMESTRING->%s", Value);
>          break;
>
>      case PARSEOP_EISAID:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "EISAID->%s", Value);
>          break;
>
>      case PARSEOP_METHOD:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "METHOD");
>          break;
>
>      case PARSEOP_INTEGER:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "INTEGER");
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -700,20 +738,25 @@ TrCreateNode (
>      switch (ParseOpcode)
>      {
>      case PARSEOP_DEFINITIONBLOCK:
> +
>          RootNode = Op;
>          DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->");
>          break;
>
>      case PARSEOP_OPERATIONREGION:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "OPREGION->");
>          break;
>
>      case PARSEOP_OR:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "OR->");
>          break;
>
>      default:
> +
>          /* Nothing to do for other opcodes */
> +
>          break;
>      }
>
> @@ -818,20 +861,25 @@ TrLinkChildren (
>      switch (Op->Asl.ParseOpcode)
>      {
>      case PARSEOP_DEFINITIONBLOCK:
> +
>          RootNode = Op;
>          DbgPrint (ASL_PARSE_OUTPUT, "DEFINITION_BLOCK (Tree Completed)->");
>          break;
>
>      case PARSEOP_OPERATIONREGION:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "OPREGION->");
>          break;
>
>      case PARSEOP_OR:
> +
>          DbgPrint (ASL_PARSE_OUTPUT, "OR->");
>          break;
>
>      default:
> +
>          /* Nothing to do for other opcodes */
> +
>          break;
>      }
>
> @@ -1178,7 +1226,6 @@ TrWalkParseTree (
>          }
>          break;
>
> -
>      case ASL_WALK_VISIT_UPWARD:
>
>          while (Op)
> @@ -1233,7 +1280,6 @@ TrWalkParseTree (
>          }
>          break;
>
> -
>       case ASL_WALK_VISIT_TWICE:
>
>          while (Op)
> diff --git a/src/acpica/source/compiler/asltypes.h b/src/acpica/source/compiler/asltypes.h
> index cd556bb..aa6c90b 100644
> --- a/src/acpica/source/compiler/asltypes.h
> +++ b/src/acpica/source/compiler/asltypes.h
> @@ -153,16 +153,17 @@
>
>  typedef struct asl_method_info
>  {
> -    UINT8                   NumArguments;
> -    UINT8                   LocalInitialized[ACPI_METHOD_NUM_LOCALS];
> -    UINT8                   ArgInitialized[ACPI_METHOD_NUM_ARGS];
> +    ACPI_PARSE_OBJECT       *Op;
> +    struct asl_method_info  *Next;
>      UINT32                  ValidArgTypes[ACPI_METHOD_NUM_ARGS];
>      UINT32                  ValidReturnTypes;
>      UINT32                  NumReturnNoValue;
>      UINT32                  NumReturnWithValue;
> -    ACPI_PARSE_OBJECT       *Op;
> -    struct asl_method_info  *Next;
> +    UINT8                   NumArguments;
> +    UINT8                   LocalInitialized[ACPI_METHOD_NUM_LOCALS];
> +    UINT8                   ArgInitialized[ACPI_METHOD_NUM_ARGS];
>      UINT8                   HasBeenTyped;
> +    UINT8                   ShouldBeSerialized;
>
>  } ASL_METHOD_INFO;
>
> diff --git a/src/acpica/source/compiler/aslutils.c b/src/acpica/source/compiler/aslutils.c
> index d4e5ccd..53fba5a 100644
> --- a/src/acpica/source/compiler/aslutils.c
> +++ b/src/acpica/source/compiler/aslutils.c
> @@ -1028,6 +1028,7 @@ UtStrtoul64 (
>      case 8:
>      case 10:
>      case 16:
> +
>          break;
>
>      default:
> @@ -1162,19 +1163,24 @@ ErrorExit:
>      switch (Base)
>      {
>      case 8:
> +
>          Status = AE_BAD_OCTAL_CONSTANT;
>          break;
>
>      case 10:
> +
>          Status = AE_BAD_DECIMAL_CONSTANT;
>          break;
>
>      case 16:
> +
>          Status = AE_BAD_HEX_CONSTANT;
>          break;
>
>      default:
> +
>          /* Base validated above */
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/aslwalks.c b/src/acpica/source/compiler/aslwalks.c
> index 6ea5321..aec8bab 100644
> --- a/src/acpica/source/compiler/aslwalks.c
> +++ b/src/acpica/source/compiler/aslwalks.c
> @@ -194,6 +194,7 @@ AnMethodTypingWalkEnd (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -248,6 +249,7 @@ AnOperandTypecheckWalkEnd (
>          return (AE_OK);
>
>      default:
> +
>          break;
>      }
>
> @@ -324,6 +326,7 @@ AnOperandTypecheckWalkEnd (
>          return (AE_OK);
>
>      default:
> +
>          break;
>      }
>
> @@ -451,11 +454,13 @@ AnOperandTypecheckWalkEnd (
>                      break;
>
>                  case PARSEOP_DEBUG:
> +
>                      break;
>
>                  case PARSEOP_REFOF:
>                  case PARSEOP_INDEX:
>                  default:
> +
>                      break;
>
>                  }
> @@ -463,6 +468,7 @@ AnOperandTypecheckWalkEnd (
>
>              case ARGI_INTEGER:
>              default:
> +
>                  break;
>              }
>
> @@ -506,6 +512,7 @@ AnOperandTypecheckWalkEnd (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -592,9 +599,11 @@ AnOtherSemanticAnalysisWalkBegin (
>              case PARSEOP_ACQUIRE:
>              case PARSEOP_WAIT:
>              case PARSEOP_LOADTABLE:
> +
>                  break;
>
>              default:
> +
>                  AslError (ASL_ERROR, ASL_MSG_RESULT_NOT_USED,
>                      Op, Op->Asl.ExternalName);
>                  break;
> @@ -733,6 +742,7 @@ AnOtherSemanticAnalysisWalkBegin (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c
> index a9226bb..51eb314 100644
> --- a/src/acpica/source/compiler/aslxref.c
> +++ b/src/acpica/source/compiler/aslxref.c
> @@ -605,27 +605,33 @@ XfNamespaceLocateBegin (
>              break;
>
>          case AML_CREATE_BIT_FIELD_OP:
> +
>              FieldBitLength = 1;
>              break;
>
>          case AML_CREATE_BYTE_FIELD_OP:
>          case AML_INDEX_OP:
> +
>              FieldBitLength = 8;
>              break;
>
>          case AML_CREATE_WORD_FIELD_OP:
> +
>              FieldBitLength = 16;
>              break;
>
>          case AML_CREATE_DWORD_FIELD_OP:
> +
>              FieldBitLength = 32;
>              break;
>
>          case AML_CREATE_QWORD_FIELD_OP:
> +
>              FieldBitLength = 64;
>              break;
>
>          default:
> +
>              FieldBitLength = 0;
>              break;
>          }
> @@ -667,6 +673,7 @@ XfNamespaceLocateBegin (
>              break;
>
>          default:
> +
>              break;
>          }
>
> @@ -800,18 +807,22 @@ XfNamespaceLocateBegin (
>              case AML_FIELD_ACCESS_BYTE:
>              case AML_FIELD_ACCESS_BUFFER:
>              default:
> +
>                  MinimumLength = 1;
>                  break;
>
>              case AML_FIELD_ACCESS_WORD:
> +
>                  MinimumLength = 2;
>                  break;
>
>              case AML_FIELD_ACCESS_DWORD:
> +
>                  MinimumLength = 4;
>                  break;
>
>              case AML_FIELD_ACCESS_QWORD:
> +
>                  MinimumLength = 8;
>                  break;
>              }
> @@ -856,6 +867,7 @@ XfNamespaceLocateBegin (
>              default:
>
>                  /* Nothing to do for other address spaces */
> +
>                  break;
>              }
>          }
> diff --git a/src/acpica/source/compiler/dtexpress.c b/src/acpica/source/compiler/dtexpress.c
> index e6d5ccc..d8ae2c8 100644
> --- a/src/acpica/source/compiler/dtexpress.c
> +++ b/src/acpica/source/compiler/dtexpress.c
> @@ -199,18 +199,22 @@ DtDoOperator (
>      switch (Operator)
>      {
>      case EXPOP_ONES_COMPLIMENT:
> +
>          Result = ~RightValue;
>          break;
>
>      case EXPOP_LOGICAL_NOT:
> +
>          Result = !RightValue;
>          break;
>
>      case EXPOP_MULTIPLY:
> +
>          Result = LeftValue * RightValue;
>          break;
>
>      case EXPOP_DIVIDE:
> +
>          if (!RightValue)
>          {
>              DtError (ASL_ERROR, ASL_MSG_DIVIDE_BY_ZERO,
> @@ -221,6 +225,7 @@ DtDoOperator (
>          break;
>
>      case EXPOP_MODULO:
> +
>          if (!RightValue)
>          {
>              DtError (ASL_ERROR, ASL_MSG_DIVIDE_BY_ZERO,
> @@ -235,58 +240,72 @@ DtDoOperator (
>          break;
>
>      case EXPOP_SUBTRACT:
> +
>          Result = LeftValue - RightValue;
>          break;
>
>      case EXPOP_SHIFT_RIGHT:
> +
>          Result = LeftValue >> RightValue;
>          break;
>
>      case EXPOP_SHIFT_LEFT:
> +
>          Result = LeftValue << RightValue;
>          break;
>
>      case EXPOP_LESS:
> +
>          Result = LeftValue < RightValue;
>          break;
>
>      case EXPOP_GREATER:
> +
>          Result = LeftValue > RightValue;
>          break;
>
>      case EXPOP_LESS_EQUAL:
> +
>          Result = LeftValue <= RightValue;
>          break;
>
>      case EXPOP_GREATER_EQUAL:
> +
>          Result = LeftValue >= RightValue;
>          break;
>
>      case EXPOP_EQUAL:
> +
>          Result = LeftValue == RightValue;
>          break;
>
>      case EXPOP_NOT_EQUAL:
> +
>          Result = LeftValue != RightValue;
>          break;
>
>      case EXPOP_AND:
> +
>          Result = LeftValue & RightValue;
>          break;
>
>      case EXPOP_XOR:
> +
>          Result = LeftValue ^ RightValue;
>          break;
>
>      case EXPOP_OR:
> +
>          Result = LeftValue | RightValue;
>          break;
>
>      case EXPOP_LOGICAL_AND:
> +
>          Result = LeftValue && RightValue;
>          break;
>
>      case EXPOP_LOGICAL_OR:
> +
>          Result = LeftValue || RightValue;
>          break;
>
> diff --git a/src/acpica/source/compiler/dtfield.c b/src/acpica/source/compiler/dtfield.c
> index a9bb08a..6d781ca 100644
> --- a/src/acpica/source/compiler/dtfield.c
> +++ b/src/acpica/source/compiler/dtfield.c
> @@ -176,14 +176,17 @@ DtCompileOneField (
>      switch (Type)
>      {
>      case DT_FIELD_TYPE_INTEGER:
> +
>          DtCompileInteger (Buffer, Field, ByteLength, Flags);
>          break;
>
>      case DT_FIELD_TYPE_STRING:
> +
>          DtCompileString (Buffer, Field, ByteLength);
>          break;
>
>      case DT_FIELD_TYPE_UUID:
> +
>          Status = DtCompileUuid (Buffer, Field, ByteLength);
>          if (ACPI_SUCCESS (Status))
>          {
> @@ -193,17 +196,21 @@ DtCompileOneField (
>          /* Fall through. */
>
>      case DT_FIELD_TYPE_BUFFER:
> +
>          DtCompileBuffer (Buffer, Field->Value, Field, ByteLength);
>          break;
>
>      case DT_FIELD_TYPE_UNICODE:
> +
>          DtCompileUnicode (Buffer, Field, ByteLength);
>          break;
>
>      case DT_FIELD_TYPE_DEVICE_PATH:
> +
>          break;
>
>      default:
> +
>          DtFatal (ASL_MSG_COMPILER_INTERNAL, Field, "Invalid field type");
>          break;
>      }
> @@ -454,10 +461,12 @@ DtNormalizeBuffer (
>          case ']':
>          case ' ':
>          case ',':
> +
>              Separator = TRUE;
>              break;
>
>          default:
> +
>              if (Separator)
>              {
>                  /* Insert blank as the standard separator */
> diff --git a/src/acpica/source/compiler/dtio.c b/src/acpica/source/compiler/dtio.c
> index 724115c..f20792d 100644
> --- a/src/acpica/source/compiler/dtio.c
> +++ b/src/acpica/source/compiler/dtio.c
> @@ -498,7 +498,7 @@ DtGetNextLine (
>      UINT32                  State = DT_NORMAL_TEXT;
>      UINT32                  CurrentLineOffset;
>      UINT32                  i;
> -    char                    c;
> +    int                     c;
>
>
>      for (i = 0; ;)
> @@ -512,7 +512,7 @@ DtGetNextLine (
>              UtExpandLineBuffers ();
>          }
>
> -        c = (char) getc (Handle);
> +        c = getc (Handle);
>          if (c == EOF)
>          {
>              switch (State)
> @@ -524,6 +524,7 @@ DtGetNextLine (
>                  break;
>
>              default:
> +
>                  break;
>              }
>
> @@ -551,14 +552,16 @@ DtGetNextLine (
>
>              /* Normal text, insert char into line buffer */
>
> -            Gbl_CurrentLineBuffer[i] = c;
> +            Gbl_CurrentLineBuffer[i] = (char) c;
>              switch (c)
>              {
>              case '/':
> +
>                  State = DT_START_COMMENT;
>                  break;
>
>              case '"':
> +
>                  State = DT_START_QUOTED_STRING;
>                  LineNotAllBlanks = TRUE;
>                  i++;
> @@ -573,6 +576,7 @@ DtGetNextLine (
>                  break;
>
>              case '\n':
> +
>                  CurrentLineOffset = Gbl_NextLineOffset;
>                  Gbl_NextLineOffset = (UINT32) ftell (Handle);
>                  Gbl_CurrentLineNumber++;
> @@ -599,6 +603,7 @@ DtGetNextLine (
>                  break;
>
>              default:
> +
>                  if (c != ' ')
>                  {
>                      LineNotAllBlanks = TRUE;
> @@ -613,26 +618,30 @@ DtGetNextLine (
>
>              /* Insert raw chars until end of quoted string */
>
> -            Gbl_CurrentLineBuffer[i] = c;
> +            Gbl_CurrentLineBuffer[i] = (char) c;
>              i++;
>
>              switch (c)
>              {
>              case '"':
> +
>                  State = DT_NORMAL_TEXT;
>                  break;
>
>              case '\\':
> +
>                  State = DT_ESCAPE_SEQUENCE;
>                  break;
>
>              case '\n':
> +
>                  AcpiOsPrintf ("ERROR at line %u: Unterminated quoted string\n",
>                      Gbl_CurrentLineNumber++);
>                  State = DT_NORMAL_TEXT;
>                  break;
>
>              default:    /* Get next character */
> +
>                  break;
>              }
>              break;
> @@ -641,7 +650,7 @@ DtGetNextLine (
>
>              /* Just copy the escaped character. TBD: sufficient for table compiler? */
>
> -            Gbl_CurrentLineBuffer[i] = c;
> +            Gbl_CurrentLineBuffer[i] = (char) c;
>              i++;
>              State = DT_START_QUOTED_STRING;
>              break;
> @@ -653,21 +662,24 @@ DtGetNextLine (
>              switch (c)
>              {
>              case '*':
> +
>                  State = DT_SLASH_ASTERISK_COMMENT;
>                  break;
>
>              case '/':
> +
>                  State = DT_SLASH_SLASH_COMMENT;
>                  break;
>
>              default:    /* Not a comment */
> +
>                  i++;    /* Save the preceding slash */
>                  if (i >= Gbl_LineBufferSize)
>                  {
>                      UtExpandLineBuffers ();
>                  }
>
> -                Gbl_CurrentLineBuffer[i] = c;
> +                Gbl_CurrentLineBuffer[i] = (char) c;
>                  i++;
>                  State = DT_NORMAL_TEXT;
>                  break;
> @@ -681,15 +693,18 @@ DtGetNextLine (
>              switch (c)
>              {
>              case '\n':
> +
>                  Gbl_NextLineOffset = (UINT32) ftell (Handle);
>                  Gbl_CurrentLineNumber++;
>                  break;
>
>              case '*':
> +
>                  State = DT_END_COMMENT;
>                  break;
>
>              default:
> +
>                  break;
>              }
>              break;
> @@ -714,20 +729,24 @@ DtGetNextLine (
>              switch (c)
>              {
>              case '/':
> +
>                  State = DT_NORMAL_TEXT;
>                  break;
>
>              case '\n':
> +
>                  CurrentLineOffset = Gbl_NextLineOffset;
>                  Gbl_NextLineOffset = (UINT32) ftell (Handle);
>                  Gbl_CurrentLineNumber++;
>                  break;
>
>              case '*':
> +
>                  /* Consume all adjacent asterisks */
>                  break;
>
>              default:
> +
>                  State = DT_SLASH_ASTERISK_COMMENT;
>                  break;
>              }
> @@ -766,6 +785,7 @@ DtGetNextLine (
>              break;
>
>          default:
> +
>              DtFatal (ASL_MSG_COMPILER_INTERNAL, NULL, "Unknown input state");
>              return (ASL_EOF);
>          }
> diff --git a/src/acpica/source/compiler/dtsubtable.c b/src/acpica/source/compiler/dtsubtable.c
> index be876af..b4ea93f 100644
> --- a/src/acpica/source/compiler/dtsubtable.c
> +++ b/src/acpica/source/compiler/dtsubtable.c
> @@ -384,14 +384,17 @@ DtGetSubtableLength (
>          switch (Info->Opcode)
>          {
>          case ACPI_DMT_GAS:
> +
>              Step = 5;
>              break;
>
>          case ACPI_DMT_HESTNTFY:
> +
>              Step = 9;
>              break;
>
>          default:
> +
>              Step = 1;
>              break;
>          }
> diff --git a/src/acpica/source/compiler/dttable.c b/src/acpica/source/compiler/dttable.c
> index da34e7b..a7c6e18 100644
> --- a/src/acpica/source/compiler/dttable.c
> +++ b/src/acpica/source/compiler/dttable.c
> @@ -352,26 +352,32 @@ DtCompileAsf (
>          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);
>          }
> @@ -388,10 +394,12 @@ DtCompileAsf (
>          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,
> @@ -399,6 +407,7 @@ DtCompileAsf (
>              break;
>
>          case ACPI_ASF_TYPE_CONTROL:
> +
>              DataInfoTable = AcpiDmTableInfoAsf2a;
>              DataCount = ACPI_CAST_PTR (ACPI_ASF_REMOTE,
>                          ACPI_SUB_PTR (UINT8, Subtable->Buffer,
> @@ -406,10 +415,12 @@ DtCompileAsf (
>              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,
> @@ -417,6 +428,7 @@ DtCompileAsf (
>              break;
>
>          default:
> +
>              DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "ASF!");
>              return (AE_ERROR);
>          }
> @@ -646,18 +658,27 @@ DtCompileDmar (
>          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_ATSR:
> +
>              InfoTable = AcpiDmTableInfoDmar2;
>              break;
> +
>          case ACPI_DMAR_HARDWARE_AFFINITY:
> +
>              InfoTable = AcpiDmTableInfoDmar3;
>              break;
> +
>          default:
> +
>              DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "DMAR");
>              return (AE_ERROR);
>          }
> @@ -882,14 +903,17 @@ DtCompileFpdt (
>          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;
> @@ -956,34 +980,42 @@ DtCompileHest (
>          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");
> @@ -1005,16 +1037,19 @@ DtCompileHest (
>          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;
>          }
>
> @@ -1091,16 +1126,19 @@ DtCompileIvrs (
>          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);
>          }
> @@ -1160,6 +1198,7 @@ DtCompileIvrs (
>                      break;
>
>                  default:
> +
>                      DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart,
>                          "IVRS Device Entry");
>                      return (AE_ERROR);
> @@ -1237,45 +1276,72 @@ DtCompileMadt (
>          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;
> +
>          default:
> +
>              DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "MADT");
>              return (AE_ERROR);
>          }
> @@ -1737,14 +1803,17 @@ DtCompileS3pt (
>          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);
>          }
> @@ -1808,12 +1877,17 @@ DtCompileSlic (
>          switch (SlicHeader->Type)
>          {
>          case ACPI_SLIC_TYPE_PUBLIC_KEY:
> +
>              InfoTable = AcpiDmTableInfoSlic0;
>              break;
> +
>          case ACPI_SLIC_TYPE_WINDOWS_MARKER:
> +
>              InfoTable = AcpiDmTableInfoSlic1;
>              break;
> +
>          default:
> +
>              DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SLIC");
>              return (AE_ERROR);
>          }
> @@ -1943,15 +2017,22 @@ DtCompileSrat (
>          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;
> +
>          default:
> +
>              DtFatal (ASL_MSG_UNKNOWN_SUBTABLE, SubtableStart, "SRAT");
>              return (AE_ERROR);
>          }
> diff --git a/src/acpica/source/compiler/dtutils.c b/src/acpica/source/compiler/dtutils.c
> index 1946991..dacb9c4 100644
> --- a/src/acpica/source/compiler/dtutils.c
> +++ b/src/acpica/source/compiler/dtutils.c
> @@ -154,18 +154,11 @@ DtError (
>      char                    *ExtraMessage)
>  {
>
> -    switch (Level)
> -    {
> -    case ASL_WARNING2:
> -    case ASL_WARNING3:
> -        if (Gbl_WarningLevel < Level)
> -        {
> -            return;
> -        }
> -        break;
> +    /* Check if user wants to ignore this exception */
>
> -    default:
> -        break;
> +    if (AslIsExceptionDisabled (Level, MessageId))
> +    {
> +        return;
>      }
>
>      if (FieldObject)
> @@ -212,6 +205,7 @@ DtNameError (
>      {
>      case ASL_WARNING2:
>      case ASL_WARNING3:
> +
>          if (Gbl_WarningLevel < Level)
>          {
>              return;
> @@ -219,6 +213,7 @@ DtNameError (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -459,6 +454,7 @@ DtGetFieldType (
>      case ACPI_DMT_FLAGS1:
>      case ACPI_DMT_FLAGS2:
>      case ACPI_DMT_FLAGS4:
> +
>          Type = DT_FIELD_TYPE_FLAG;
>          break;
>
> @@ -467,6 +463,7 @@ DtGetFieldType (
>      case ACPI_DMT_NAME6:
>      case ACPI_DMT_NAME8:
>      case ACPI_DMT_STRING:
> +
>          Type = DT_FIELD_TYPE_STRING;
>          break;
>
> @@ -475,31 +472,38 @@ DtGetFieldType (
>      case ACPI_DMT_BUF16:
>      case ACPI_DMT_BUF128:
>      case ACPI_DMT_PCI_PATH:
> +
>          Type = DT_FIELD_TYPE_BUFFER;
>          break;
>
>      case ACPI_DMT_GAS:
>      case ACPI_DMT_HESTNTFY:
> +
>          Type = DT_FIELD_TYPE_INLINE_SUBTABLE;
>          break;
>
>      case ACPI_DMT_UNICODE:
> +
>          Type = DT_FIELD_TYPE_UNICODE;
>          break;
>
>      case ACPI_DMT_UUID:
> +
>          Type = DT_FIELD_TYPE_UUID;
>          break;
>
>      case ACPI_DMT_DEVICE_PATH:
> +
>          Type = DT_FIELD_TYPE_DEVICE_PATH;
>          break;
>
>      case ACPI_DMT_LABEL:
> +
>          Type = DT_FIELD_TYPE_LABEL;
>          break;
>
>      default:
> +
>          Type = DT_FIELD_TYPE_INTEGER;
>          break;
>      }
> @@ -589,6 +593,7 @@ DtGetFieldLength (
>      case ACPI_DMT_FLAGS4:
>      case ACPI_DMT_LABEL:
>      case ACPI_DMT_EXTRA_TEXT:
> +
>          ByteLength = 0;
>          break;
>
> @@ -607,6 +612,7 @@ DtGetFieldLength (
>      case ACPI_DMT_EINJINST:
>      case ACPI_DMT_ERSTACT:
>      case ACPI_DMT_ERSTINST:
> +
>          ByteLength = 1;
>          break;
>
> @@ -614,10 +620,12 @@ DtGetFieldLength (
>      case ACPI_DMT_DMAR:
>      case ACPI_DMT_HEST:
>      case ACPI_DMT_PCI_PATH:
> +
>          ByteLength = 2;
>          break;
>
>      case ACPI_DMT_UINT24:
> +
>          ByteLength = 3;
>          break;
>
> @@ -625,29 +633,35 @@ DtGetFieldLength (
>      case ACPI_DMT_NAME4:
>      case ACPI_DMT_SLIC:
>      case ACPI_DMT_SIG:
> +
>          ByteLength = 4;
>          break;
>
>      case ACPI_DMT_UINT40:
> +
>          ByteLength = 5;
>          break;
>
>      case ACPI_DMT_UINT48:
>      case ACPI_DMT_NAME6:
> +
>          ByteLength = 6;
>          break;
>
>      case ACPI_DMT_UINT56:
>      case ACPI_DMT_BUF7:
> +
>          ByteLength = 7;
>          break;
>
>      case ACPI_DMT_UINT64:
>      case ACPI_DMT_NAME8:
> +
>          ByteLength = 8;
>          break;
>
>      case ACPI_DMT_STRING:
> +
>          Value = DtGetFieldValue (Field);
>          if (Value)
>          {
> @@ -663,14 +677,17 @@ DtGetFieldLength (
>          break;
>
>      case ACPI_DMT_GAS:
> +
>          ByteLength = sizeof (ACPI_GENERIC_ADDRESS);
>          break;
>
>      case ACPI_DMT_HESTNTFY:
> +
>          ByteLength = sizeof (ACPI_HEST_NOTIFY);
>          break;
>
>      case ACPI_DMT_BUFFER:
> +
>          Value = DtGetFieldValue (Field);
>          if (Value)
>          {
> @@ -687,14 +704,17 @@ DtGetFieldLength (
>
>      case ACPI_DMT_BUF16:
>      case ACPI_DMT_UUID:
> +
>          ByteLength = 16;
>          break;
>
>      case ACPI_DMT_BUF128:
> +
>          ByteLength = 128;
>          break;
>
>      case ACPI_DMT_UNICODE:
> +
>          Value = DtGetFieldValue (Field);
>
>          /* TBD: error if Value is NULL? (as below?) */
> @@ -703,6 +723,7 @@ DtGetFieldLength (
>          break;
>
>      default:
> +
>          DtFatal (ASL_MSG_COMPILER_INTERNAL, Field, "Invalid table opcode");
>          return (0);
>      }
> diff --git a/src/acpica/source/compiler/prscan.c b/src/acpica/source/compiler/prscan.c
> index 683819d..a32f14c 100644
> --- a/src/acpica/source/compiler/prscan.c
> +++ b/src/acpica/source/compiler/prscan.c
> @@ -549,6 +549,7 @@ PrDoDirective (
>      switch (Directive)
>      {
>      case PR_DIRECTIVE_ELIF:
> +
>          *IgnoringThisCodeBlock = !(*IgnoringThisCodeBlock);
>          if (*IgnoringThisCodeBlock == TRUE)
>          {
> @@ -565,10 +566,12 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_ELSE:
> +
>          *IgnoringThisCodeBlock = !(*IgnoringThisCodeBlock);
>          return;
>
>      case PR_DIRECTIVE_ENDIF:
> +
>          *IgnoringThisCodeBlock = FALSE;
>          Gbl_IfDepth--;
>          if (Gbl_IfDepth < 0)
> @@ -580,6 +583,7 @@ PrDoDirective (
>          return;
>
>      default:
> +
>          break;
>      }
>
> @@ -662,6 +666,7 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_ERROR:
> +
>          /* TBD compiler should abort */
>          /* Note: No macro expansion */
>
> @@ -670,6 +675,7 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_IF:
> +
>          TokenOffset = Token - Gbl_MainTokenBuffer;
>
>          /* Need to expand #define macros in the expression string first */
> @@ -695,6 +701,7 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_IFDEF:
> +
>          if (!PrMatchDefine (Token))
>          {
>              *IgnoringThisCodeBlock = TRUE;
> @@ -707,6 +714,7 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_IFNDEF:
> +
>          if (PrMatchDefine (Token))
>          {
>              *IgnoringThisCodeBlock = TRUE;
> @@ -719,6 +727,7 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_INCLUDE:
> +
>          Token = PrGetNextToken (NULL, " \"<>", Next);
>          if (!Token)
>          {
> @@ -733,6 +742,7 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_LINE:
> +
>          TokenOffset = Token - Gbl_MainTokenBuffer;
>
>          Status = PrResolveIntegerExpression (
> @@ -758,26 +768,40 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_PRAGMA:
> -        /* Only "#pragma message" supported at this time */
>
> -        if (strcmp (Token, "message"))
> +        if (!strcmp (Token, "disable"))
>          {
> -            PrError (ASL_ERROR, ASL_MSG_UNKNOWN_PRAGMA,
> -                THIS_TOKEN_OFFSET (Token));
> -            return;
> +            Token = PrGetNextToken (NULL, PR_TOKEN_SEPARATORS, Next);
> +            if (!Token)
> +            {
> +                goto SyntaxError;
> +            }
> +
> +            TokenOffset = Token - Gbl_MainTokenBuffer;
> +            AslDisableException (&Gbl_CurrentLineBuffer[TokenOffset]);
>          }
> +        else if (!strcmp (Token, "message"))
> +        {
> +            Token = PrGetNextToken (NULL, PR_TOKEN_SEPARATORS, Next);
> +            if (!Token)
> +            {
> +                goto SyntaxError;
> +            }
>
> -        Token = PrGetNextToken (NULL, PR_TOKEN_SEPARATORS, Next);
> -        if (!Token)
> +            TokenOffset = Token - Gbl_MainTokenBuffer;
> +            AcpiOsPrintf ("%s\n", &Gbl_CurrentLineBuffer[TokenOffset]);
> +        }
> +        else
>          {
> -            goto SyntaxError;
> +            PrError (ASL_ERROR, ASL_MSG_UNKNOWN_PRAGMA,
> +                THIS_TOKEN_OFFSET (Token));
> +            return;
>          }
>
> -        TokenOffset = Token - Gbl_MainTokenBuffer;
> -        AcpiOsPrintf ("%s\n", &Gbl_CurrentLineBuffer[TokenOffset]);
>          break;
>
>      case PR_DIRECTIVE_UNDEF:
> +
>          DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
>              "#undef: %s\n", Gbl_CurrentLineNumber, Token);
>
> @@ -785,11 +809,13 @@ PrDoDirective (
>          break;
>
>      case PR_DIRECTIVE_WARNING:
> +
>          PrError (ASL_WARNING, ASL_MSG_ERROR_DIRECTIVE,
>              THIS_TOKEN_OFFSET (Token));
>          break;
>
>      default:
> +
>          /* Should never get here */
>          DbgPrint (ASL_DEBUG_OUTPUT, PR_PREFIX_ID
>              "Unrecognized directive: %u\n",
> diff --git a/src/acpica/source/components/debugger/dbcmds.c b/src/acpica/source/components/debugger/dbcmds.c
> index e77b4e6..0e1c49b 100644
> --- a/src/acpica/source/components/debugger/dbcmds.c
> +++ b/src/acpica/source/components/debugger/dbcmds.c
> @@ -433,22 +433,27 @@ AcpiDbDisplayTableInfo (
>          switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK)
>          {
>          case ACPI_TABLE_ORIGIN_UNKNOWN:
> +
>              AcpiOsPrintf ("Unknown   ");
>              break;
>
>          case ACPI_TABLE_ORIGIN_MAPPED:
> +
>              AcpiOsPrintf ("Mapped    ");
>              break;
>
>          case ACPI_TABLE_ORIGIN_ALLOCATED:
> +
>              AcpiOsPrintf ("Allocated ");
>              break;
>
>          case ACPI_TABLE_ORIGIN_OVERRIDE:
> +
>              AcpiOsPrintf ("Override  ");
>              break;
>
>          default:
> +
>              AcpiOsPrintf ("INVALID   ");
>              break;
>          }
> diff --git a/src/acpica/source/components/debugger/dbconvert.c b/src/acpica/source/components/debugger/dbconvert.c
> index 98361ff..8eda00c 100644
> --- a/src/acpica/source/components/debugger/dbconvert.c
> +++ b/src/acpica/source/components/debugger/dbconvert.c
> @@ -376,20 +376,24 @@ AcpiDbConvertToObject (
>      switch (Type)
>      {
>      case ACPI_TYPE_STRING:
> +
>          Object->Type = ACPI_TYPE_STRING;
>          Object->String.Pointer = String;
>          Object->String.Length = (UINT32) ACPI_STRLEN (String);
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          Status = AcpiDbConvertToBuffer (String, Object);
>          break;
>
>      case ACPI_TYPE_PACKAGE:
> +
>          Status = AcpiDbConvertToPackage (String, Object);
>          break;
>
>      default:
> +
>          Object->Type = ACPI_TYPE_INTEGER;
>          Status = AcpiUtStrtoul64 (String, 16, &Object->Integer.Value);
>          break;
> diff --git a/src/acpica/source/components/debugger/dbdisply.c b/src/acpica/source/components/debugger/dbdisply.c
> index 4bfe287..a42a954 100644
> --- a/src/acpica/source/components/debugger/dbdisply.c
> +++ b/src/acpica/source/components/debugger/dbdisply.c
> @@ -337,7 +337,6 @@ AcpiDbDecodeAndDisplayObject (
>              Node = ObjPtr;
>              goto DumpNode;
>
> -
>          case ACPI_DESC_TYPE_OPERAND:
>
>              /* This is a ACPI OPERAND OBJECT */
> @@ -354,7 +353,6 @@ AcpiDbDecodeAndDisplayObject (
>              AcpiExDumpObjectDescriptor (ObjPtr, 1);
>              break;
>
> -
>          case ACPI_DESC_TYPE_PARSER:
>
>              /* This is a Parser Op object */
> @@ -371,7 +369,6 @@ AcpiDbDecodeAndDisplayObject (
>              AcpiDbDumpParserDescriptor ((ACPI_PARSE_OBJECT *) ObjPtr);
>              break;
>
> -
>          default:
>
>              /* Is not a recognizeable object */
> @@ -518,6 +515,7 @@ AcpiDbDisplayMethodInfo (
>          switch (OpInfo->Class)
>          {
>          case AML_CLASS_ARGUMENT:
> +
>              if (CountRemaining)
>              {
>                  NumRemainingOperands++;
> @@ -527,11 +525,13 @@ AcpiDbDisplayMethodInfo (
>              break;
>
>          case AML_CLASS_UNKNOWN:
> +
>              /* Bad opcode or ASCII character */
>
>              continue;
>
>          default:
> +
>              if (CountRemaining)
>              {
>                  NumRemainingOperators++;
> @@ -1003,15 +1003,21 @@ AcpiDbDisplayGpes (
>                      switch (GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK)
>                      {
>                      case ACPI_GPE_DISPATCH_NONE:
> +
>                          AcpiOsPrintf ("NotUsed");
>                          break;
> +
>                      case ACPI_GPE_DISPATCH_METHOD:
> +
>                          AcpiOsPrintf ("Method");
>                          break;
>                      case ACPI_GPE_DISPATCH_HANDLER:
> +
>                          AcpiOsPrintf ("Handler");
>                          break;
> +
>                      case ACPI_GPE_DISPATCH_NOTIFY:
> +
>                          Count = 0;
>                          Notify = GpeEventInfo->Dispatch.NotifyList;
>                          while (Notify)
> @@ -1021,7 +1027,9 @@ AcpiDbDisplayGpes (
>                          }
>                          AcpiOsPrintf ("Implicit Notify on %u devices", Count);
>                          break;
> +
>                      default:
> +
>                          AcpiOsPrintf ("UNKNOWN: %X",
>                              GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK);
>                          break;
> diff --git a/src/acpica/source/components/debugger/dbexec.c b/src/acpica/source/components/debugger/dbexec.c
> index 74afcfa..cbe752b 100644
> --- a/src/acpica/source/components/debugger/dbexec.c
> +++ b/src/acpica/source/components/debugger/dbexec.c
> @@ -181,6 +181,7 @@ AcpiDbDeleteObjects (
>          switch (Objects[i].Type)
>          {
>          case ACPI_TYPE_BUFFER:
> +
>              ACPI_FREE (Objects[i].Buffer.Pointer);
>              break;
>
> @@ -197,6 +198,7 @@ AcpiDbDeleteObjects (
>              break;
>
>          default:
> +
>              break;
>          }
>      }
> diff --git a/src/acpica/source/components/debugger/dbhistry.c b/src/acpica/source/components/debugger/dbhistry.c
> index 00c2849..42dab6f 100644
> --- a/src/acpica/source/components/debugger/dbhistry.c
> +++ b/src/acpica/source/components/debugger/dbhistry.c
> @@ -126,12 +126,12 @@
>
>  #define HI_NO_HISTORY       0
>  #define HI_RECORD_HISTORY   1
> -#define HISTORY_SIZE        20
> +#define HISTORY_SIZE        40
>
>
>  typedef struct HistoryInfo
>  {
> -    char                    Command[80];
> +    char                    *Command;
>      UINT32                  CmdNum;
>
>  } HISTORY_INFO;
> @@ -160,13 +160,35 @@ void
>  AcpiDbAddToHistory (
>      char                    *CommandLine)
>  {
> +    UINT16                  CmdLen;
> +    UINT16                  BufferLen;
>
>      /* Put command into the next available slot */
>
> +    CmdLen = (UINT16) ACPI_STRLEN (CommandLine);
> +    if (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command != NULL)
> +    {
> +        BufferLen = (UINT16) ACPI_STRLEN (
> +            AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command);
> +        if (CmdLen > BufferLen)
> +        {
> +            AcpiOsFree (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].
> +                Command);
> +            AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command =
> +                AcpiOsAllocate (CmdLen + 1);
> +        }
> +    }
> +    else
> +    {
> +        AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command =
> +            AcpiOsAllocate (CmdLen + 1);
> +    }
> +
>      ACPI_STRCPY (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command,
>          CommandLine);
>
> -    AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum = AcpiGbl_NextCmdNum;
> +    AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum =
> +        AcpiGbl_NextCmdNum;
>
>      /* Adjust indexes */
>
> @@ -220,8 +242,12 @@ AcpiDbDisplayHistory (
>
>      for (i = 0; i < AcpiGbl_NumHistory; i++)
>      {
> -        AcpiOsPrintf ("%ld  %s\n", AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum,
> -                                   AcpiGbl_HistoryBuffer[HistoryIndex].Command);
> +        if (AcpiGbl_HistoryBuffer[HistoryIndex].Command)
> +        {
> +            AcpiOsPrintf ("%3ld  %s\n",
> +                AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum,
> +                AcpiGbl_HistoryBuffer[HistoryIndex].Command);
> +        }
>
>          HistoryIndex++;
>          if (HistoryIndex >= HISTORY_SIZE)
> @@ -271,7 +297,7 @@ AcpiDbGetFromHistory (
>      {
>          if (AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum == CmdNum)
>          {
> -            /* Found the commnad, return it */
> +            /* Found the command, return it */
>
>              return (AcpiGbl_HistoryBuffer[HistoryIndex].Command);
>          }
> diff --git a/src/acpica/source/components/debugger/dbinput.c b/src/acpica/source/components/debugger/dbinput.c
> index 2cc46e2..8f30208 100644
> --- a/src/acpica/source/components/debugger/dbinput.c
> +++ b/src/acpica/source/components/debugger/dbinput.c
> @@ -825,6 +825,7 @@ AcpiDbCommandDispatch (
>      switch (CommandIndex)
>      {
>      case CMD_NULL:
> +
>          if (Op)
>          {
>              return (AE_OK);
> @@ -840,41 +841,50 @@ AcpiDbCommandDispatch (
>
>      case CMD_ARGS:
>      case CMD_ARGUMENTS:
> +
>          AcpiDbDisplayArguments ();
>          break;
>
>      case CMD_BATCH:
> +
>          AcpiDbBatchExecute (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_BREAKPOINT:
> +
>          AcpiDbSetMethodBreakpoint (AcpiGbl_DbArgs[1], WalkState, Op);
>          break;
>
>      case CMD_BUSINFO:
> +
>          AcpiDbGetBusInfo ();
>          break;
>
>      case CMD_CALL:
> +
>          AcpiDbSetMethodCallBreakpoint (Op);
>          Status = AE_OK;
>          break;
>
>      case CMD_CLOSE:
> +
>          AcpiDbCloseDebugFile ();
>          break;
>
>      case CMD_DEBUG:
> +
>          AcpiDbExecute (AcpiGbl_DbArgs[1],
>              &AcpiGbl_DbArgs[2], &AcpiGbl_DbArgTypes[2], EX_SINGLE_STEP);
>          break;
>
>      case CMD_DISASSEMBLE:
>      case CMD_DISASM:
> +
>          (void) AcpiDbDisassembleMethod (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_DUMP:
> +
>          AcpiDbDecodeAndDisplayObject (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
>          break;
>
> @@ -891,45 +901,55 @@ AcpiDbCommandDispatch (
>          break;
>
>      case CMD_EVENT:
> +
>          AcpiOsPrintf ("Event command not implemented\n");
>          break;
>
>      case CMD_EVALUATE:
>      case CMD_EXECUTE:
> +
>          AcpiDbExecute (AcpiGbl_DbArgs[1],
>              &AcpiGbl_DbArgs[2], &AcpiGbl_DbArgTypes[2], EX_NO_SINGLE_STEP);
>          break;
>
>      case CMD_FIND:
> +
>          Status = AcpiDbFindNameInNamespace (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_GO:
> +
>          AcpiGbl_CmSingleStep = FALSE;
>          return (AE_OK);
>
>      case CMD_GPE:
> +
>          AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
>          break;
>
>      case CMD_GPES:
> +
>          AcpiDbDisplayGpes ();
>          break;
>
>      case CMD_HANDLERS:
> +
>          AcpiDbDisplayHandlers ();
>          break;
>
>      case CMD_HELP:
>      case CMD_HELP2:
> +
>          AcpiDbDisplayHelp (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_HISTORY:
> +
>          AcpiDbDisplayHistory ();
>          break;
>
> -    case CMD_HISTORY_EXE:
> +    case CMD_HISTORY_EXE: /* ! command */
> +
>          CommandLine = AcpiDbGetFromHistory (AcpiGbl_DbArgs[1]);
>          if (!CommandLine)
>          {
> @@ -939,7 +959,8 @@ AcpiDbCommandDispatch (
>          Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op);
>          return (Status);
>
> -    case CMD_HISTORY_LAST:
> +    case CMD_HISTORY_LAST: /* !! command */
> +
>          CommandLine = AcpiDbGetFromHistory (NULL);
>          if (!CommandLine)
>          {
> @@ -950,14 +971,17 @@ AcpiDbCommandDispatch (
>          return (Status);
>
>      case CMD_INFORMATION:
> +
>          AcpiDbDisplayMethodInfo (Op);
>          break;
>
>      case CMD_INTEGRITY:
> +
>          AcpiDbCheckIntegrity ();
>          break;
>
>      case CMD_INTO:
> +
>          if (Op)
>          {
>              AcpiGbl_CmSingleStep = TRUE;
> @@ -966,6 +990,7 @@ AcpiDbCommandDispatch (
>          break;
>
>      case CMD_LEVEL:
> +
>          if (ParamCount == 0)
>          {
>              AcpiOsPrintf ("Current debug level for file output is:    %8.8lX\n",
> @@ -993,96 +1018,119 @@ AcpiDbCommandDispatch (
>          break;
>
>      case CMD_LIST:
> +
>          AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);
>          break;
>
>      case CMD_LOAD:
> +
>          Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL);
>          break;
>
>      case CMD_LOCKS:
> +
>          AcpiDbDisplayLocks ();
>          break;
>
>      case CMD_LOCALS:
> +
>          AcpiDbDisplayLocals ();
>          break;
>
>      case CMD_METHODS:
> +
>          Status = AcpiDbDisplayObjects ("METHOD", AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_NAMESPACE:
> +
>          AcpiDbDumpNamespace (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
>          break;
>
>      case CMD_NOTIFY:
> +
>          Temp = ACPI_STRTOUL (AcpiGbl_DbArgs[2], NULL, 0);
>          AcpiDbSendNotify (AcpiGbl_DbArgs[1], Temp);
>          break;
>
>      case CMD_OBJECT:
> +
>          AcpiUtStrupr (AcpiGbl_DbArgs[1]);
>          Status = AcpiDbDisplayObjects (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
>          break;
>
>      case CMD_OPEN:
> +
>          AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_OSI:
> +
>          AcpiDbDisplayInterfaces (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
>          break;
>
>      case CMD_OWNER:
> +
>          AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]);
>          break;
>
>      case CMD_PREDEFINED:
> +
>          AcpiDbCheckPredefinedNames ();
>          break;
>
>      case CMD_PREFIX:
> +
>          AcpiDbSetScope (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_REFERENCES:
> +
>          AcpiDbFindReferences (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_RESOURCES:
> +
>          AcpiDbDisplayResources (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_RESULTS:
> +
>          AcpiDbDisplayResults ();
>          break;
>
>      case CMD_SET:
> +
>          AcpiDbSetMethodData (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],
>              AcpiGbl_DbArgs[3]);
>          break;
>
>      case CMD_SLEEP:
> +
>          Status = AcpiDbSleep (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_STATS:
> +
>          Status = AcpiDbDisplayStatistics (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_STOP:
> +
>          return (AE_NOT_IMPLEMENTED);
>
>      case CMD_TABLES:
> +
>          AcpiDbDisplayTableInfo (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_TEMPLATE:
> +
>          AcpiDbDisplayTemplate (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_TERMINATE:
> +
>          AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT);
>          AcpiUtSubsystemShutdown ();
>
> @@ -1095,28 +1143,34 @@ AcpiDbCommandDispatch (
>          break;
>
>      case CMD_THREADS:
> +
>          AcpiDbCreateExecutionThreads (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2],
>              AcpiGbl_DbArgs[3]);
>          break;
>
>      case CMD_TRACE:
> +
>          (void) AcpiDebugTrace (AcpiGbl_DbArgs[1],0,0,1);
>          break;
>
>      case CMD_TREE:
> +
>          AcpiDbDisplayCallingTree ();
>          break;
>
>      case CMD_TYPE:
> +
>          AcpiDbDisplayObjectType (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_UNLOAD:
> +
>          AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1]);
>          break;
>
>      case CMD_EXIT:
>      case CMD_QUIT:
> +
>          if (Op)
>          {
>              AcpiOsPrintf ("Method execution terminated\n");
> @@ -1134,6 +1188,7 @@ AcpiDbCommandDispatch (
>
>      case CMD_NOT_FOUND:
>      default:
> +
>          AcpiOsPrintf ("Unknown Command\n");
>          return (AE_CTRL_TRUE);
>      }
> diff --git a/src/acpica/source/components/debugger/dbmethod.c b/src/acpica/source/components/debugger/dbmethod.c
> index 13f661c..8b25765 100644
> --- a/src/acpica/source/components/debugger/dbmethod.c
> +++ b/src/acpica/source/components/debugger/dbmethod.c
> @@ -343,6 +343,7 @@ AcpiDbSetMethodData (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -573,25 +574,30 @@ AcpiDbWalkForExecute (
>              switch (ArgType)
>              {
>              case ACPI_TYPE_INTEGER:
> +
>                  ThisParam->Integer.Value = 1;
>                  break;
>
>              case ACPI_TYPE_STRING:
> +
>                  ThisParam->String.Pointer = "This is the default argument string";
>                  ThisParam->String.Length = ACPI_STRLEN (ThisParam->String.Pointer);
>                  break;
>
>              case ACPI_TYPE_BUFFER:
> +
>                  ThisParam->Buffer.Pointer = (UINT8 *) Params; /* just a garbage buffer */
>                  ThisParam->Buffer.Length = 48;
>                  break;
>
>               case ACPI_TYPE_PACKAGE:
> +
>                  ThisParam->Package.Elements = NULL;
>                  ThisParam->Package.Count = 0;
>                  break;
>
>             default:
> +
>                  AcpiOsPrintf ("%s: Unsupported argument type: %u\n",
>                      Pathname, ArgType);
>                  break;
> diff --git a/src/acpica/source/components/debugger/dbnames.c b/src/acpica/source/components/debugger/dbnames.c
> index a72ccf6..bc37388 100644
> --- a/src/acpica/source/components/debugger/dbnames.c
> +++ b/src/acpica/source/components/debugger/dbnames.c
> @@ -743,7 +743,7 @@ AcpiDbIntegrityWalk (
>          return (AE_OK);
>      }
>
> -    if (!AcpiUtValidAcpiName (Node->Name.Integer))
> +    if (!AcpiUtValidAcpiName (Node->Name.Ascii))
>      {
>          AcpiOsPrintf ("Invalid AcpiName for Node %p\n", Node);
>          return (AE_OK);
> diff --git a/src/acpica/source/components/debugger/dbstats.c b/src/acpica/source/components/debugger/dbstats.c
> index c4579ae..8829504 100644
> --- a/src/acpica/source/components/debugger/dbstats.c
> +++ b/src/acpica/source/components/debugger/dbstats.c
> @@ -339,6 +339,7 @@ AcpiDbEnumerateObject (
>          break;
>
>      default:
> +
>          break;
>      }
>  }
> @@ -551,7 +552,6 @@ AcpiDbDisplayStatistics (
>          }
>          break;
>
> -
>      case CMD_STAT_SIZES:
>
>          AcpiOsPrintf ("\nInternal object sizes:\n\n");
> @@ -602,7 +602,6 @@ AcpiDbDisplayStatistics (
>          AcpiOsPrintf ("Notify Info      %3d\n", sizeof (ACPI_NOTIFY_INFO));
>          break;
>
> -
>      case CMD_STAT_STACK:
>  #if defined(ACPI_DEBUG_OUTPUT)
>
> @@ -617,6 +616,7 @@ AcpiDbDisplayStatistics (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/debugger/dbutils.c b/src/acpica/source/components/debugger/dbutils.c
> index 0e5838d..3a98d4f 100644
> --- a/src/acpica/source/components/debugger/dbutils.c
> +++ b/src/acpica/source/components/debugger/dbutils.c
> @@ -251,14 +251,12 @@ AcpiDbDumpExternalObject (
>          AcpiOsPrintf ("[Null Object] (Type=0)\n");
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n",
>                      ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
>          break;
>
> -
>      case ACPI_TYPE_STRING:
>
>          AcpiOsPrintf ("[String] Length %.2X = ", ObjDesc->String.Length);
> @@ -266,7 +264,6 @@ AcpiDbDumpExternalObject (
>          AcpiOsPrintf ("\n");
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
> @@ -285,7 +282,6 @@ AcpiDbDumpExternalObject (
>          }
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
>
>          AcpiOsPrintf ("[Package] Contains %u Elements:\n",
> @@ -297,26 +293,22 @@ AcpiDbDumpExternalObject (
>          }
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_REFERENCE:
>
>          AcpiOsPrintf ("[Object Reference] = ");
>          AcpiDmDisplayInternalObject (ObjDesc->Reference.Handle, NULL);
>          break;
>
> -
>      case ACPI_TYPE_PROCESSOR:
>
>          AcpiOsPrintf ("[Processor]\n");
>          break;
>
> -
>      case ACPI_TYPE_POWER:
>
>          AcpiOsPrintf ("[Power Resource]\n");
>          break;
>
> -
>      default:
>
>          AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Type);
> diff --git a/src/acpica/source/components/debugger/dbxface.c b/src/acpica/source/components/debugger/dbxface.c
> index 2c80b73..a0e9641 100644
> --- a/src/acpica/source/components/debugger/dbxface.c
> +++ b/src/acpica/source/components/debugger/dbxface.c
> @@ -304,9 +304,11 @@ AcpiDbSingleStep (
>      {
>      case AML_CLASS_UNKNOWN:
>      case AML_CLASS_ARGUMENT:    /* constants, literals, etc. do nothing */
> +
>          return (AE_OK);
>
>      default:
> +
>          /* All other opcodes -- continue */
>          break;
>      }
> @@ -480,6 +482,9 @@ AcpiDbInitialize (
>      ACPI_STATUS             Status;
>
>
> +    ACPI_FUNCTION_TRACE (DbInitialize);
> +
> +
>      /* Init globals */
>
>      AcpiGbl_DbBuffer            = NULL;
> @@ -499,7 +504,7 @@ AcpiDbInitialize (
>      AcpiGbl_DbBuffer = AcpiOsAllocate (ACPI_DEBUG_BUFFER_SIZE);
>      if (!AcpiGbl_DbBuffer)
>      {
> -        return (AE_NO_MEMORY);
> +        return_ACPI_STATUS (AE_NO_MEMORY);
>      }
>      ACPI_MEMSET (AcpiGbl_DbBuffer, 0, ACPI_DEBUG_BUFFER_SIZE);
>
> @@ -522,14 +527,14 @@ AcpiDbInitialize (
>          if (ACPI_FAILURE (Status))
>          {
>              AcpiOsPrintf ("Could not get debugger mutex\n");
> -            return (Status);
> +            return_ACPI_STATUS (Status);
>          }
>
>          Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY);
>          if (ACPI_FAILURE (Status))
>          {
>              AcpiOsPrintf ("Could not get debugger mutex\n");
> -            return (Status);
> +            return_ACPI_STATUS (Status);
>          }
>
>          /* Create the debug execution thread to execute commands */
> @@ -537,8 +542,8 @@ AcpiDbInitialize (
>          Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbExecuteThread, NULL);
>          if (ACPI_FAILURE (Status))
>          {
> -            AcpiOsPrintf ("Could not start debugger thread\n");
> -            return (Status);
> +            ACPI_EXCEPTION ((AE_INFO, Status, "Could not start debugger thread"));
> +            return_ACPI_STATUS (Status);
>          }
>      }
>
> @@ -548,7 +553,7 @@ AcpiDbInitialize (
>          AcpiGbl_DbOpt_stats = FALSE;
>      }
>
> -    return (AE_OK);
> +    return_ACPI_STATUS (AE_OK);
>  }
>
>
> @@ -572,6 +577,7 @@ AcpiDbTerminate (
>      if (AcpiGbl_DbBuffer)
>      {
>          AcpiOsFree (AcpiGbl_DbBuffer);
> +        AcpiGbl_DbBuffer = NULL;
>      }
>  }
>
> diff --git a/src/acpica/source/components/disassembler/dmbuffer.c b/src/acpica/source/components/disassembler/dmbuffer.c
> index e5fdb42..4b33c56 100644
> --- a/src/acpica/source/components/disassembler/dmbuffer.c
> +++ b/src/acpica/source/components/disassembler/dmbuffer.c
> @@ -266,7 +266,6 @@ AcpiDmByteList (
>
>      case ACPI_DASM_BUFFER:
>      default:
> -
>          /*
>           * Not a resource, string, or unicode string.
>           * Just dump the buffer
> diff --git a/src/acpica/source/components/disassembler/dmdeferred.c b/src/acpica/source/components/disassembler/dmdeferred.c
> index 9c6b0e6..0a75b68 100644
> --- a/src/acpica/source/components/disassembler/dmdeferred.c
> +++ b/src/acpica/source/components/disassembler/dmdeferred.c
> @@ -200,6 +200,7 @@ AcpiDmParseDeferredOps (
>              break;
>
>          default:
> +
>              ACPI_ERROR ((AE_INFO, "Unhandled deferred AML opcode [0x%.4X]",
>                   Op->Common.AmlOpcode));
>              break;
> @@ -337,6 +338,7 @@ AcpiDmDeferredParse (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/disassembler/dmnames.c b/src/acpica/source/components/disassembler/dmnames.c
> index 80be710..de5934c 100644
> --- a/src/acpica/source/components/disassembler/dmnames.c
> +++ b/src/acpica/source/components/disassembler/dmnames.c
> @@ -309,20 +309,24 @@ AcpiDmNamestring (
>      switch (ACPI_GET8 (Name))
>      {
>      case 0:
> +
>          SegCount = 0;
>          break;
>
>      case AML_DUAL_NAME_PREFIX:
> +
>          SegCount = 2;
>          Name++;
>          break;
>
>      case AML_MULTI_NAME_PREFIX_OP:
> +
>          SegCount = (UINT32) ACPI_GET8 (Name + 1);
>          Name += 2;
>          break;
>
>      default:
> +
>          SegCount = 1;
>          break;
>      }
> diff --git a/src/acpica/source/components/disassembler/dmobject.c b/src/acpica/source/components/disassembler/dmobject.c
> index b17a3ca..25a2c04 100644
> --- a/src/acpica/source/components/disassembler/dmobject.c
> +++ b/src/acpica/source/components/disassembler/dmobject.c
> @@ -286,7 +286,6 @@ AcpiDmDecodeInternalObject (
>                  ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
>          break;
>
> -
>      case ACPI_TYPE_STRING:
>
>          AcpiOsPrintf ("(%u) \"%.24s",
> @@ -302,7 +301,6 @@ AcpiDmDecodeInternalObject (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          AcpiOsPrintf ("(%u)", ObjDesc->Buffer.Length);
> @@ -312,7 +310,6 @@ AcpiDmDecodeInternalObject (
>          }
>          break;
>
> -
>      default:
>
>          AcpiOsPrintf (" %p", ObjDesc);
> @@ -355,14 +352,17 @@ AcpiDmDecodeNode (
>      /* These types have no attached object */
>
>      case ACPI_TYPE_DEVICE:
> +
>          AcpiOsPrintf (" Device");
>          break;
>
>      case ACPI_TYPE_THERMAL:
> +
>          AcpiOsPrintf (" Thermal Zone");
>          break;
>
>      default:
> +
>          AcpiDmDecodeInternalObject (AcpiNsGetAttachedObject (Node));
>          break;
>      }
> @@ -407,13 +407,11 @@ AcpiDmDisplayInternalObject (
>          AcpiOsPrintf ("<Parser>  ");
>          break;
>
> -
>      case ACPI_DESC_TYPE_NAMED:
>
>          AcpiDmDecodeNode ((ACPI_NAMESPACE_NODE *) ObjDesc);
>          break;
>
> -
>      case ACPI_DESC_TYPE_OPERAND:
>
>          Type = ObjDesc->Common.Type;
> @@ -447,7 +445,6 @@ AcpiDmDisplayInternalObject (
>                  }
>                  break;
>
> -
>              case ACPI_REFCLASS_ARG:
>
>                  AcpiOsPrintf ("%X ", ObjDesc->Reference.Value);
> @@ -460,7 +457,6 @@ AcpiDmDisplayInternalObject (
>                  }
>                  break;
>
> -
>              case ACPI_REFCLASS_INDEX:
>
>                  switch (ObjDesc->Reference.TargetType)
> @@ -492,7 +488,6 @@ AcpiDmDisplayInternalObject (
>                  }
>                  break;
>
> -
>              case ACPI_REFCLASS_REFOF:
>
>                  if (!ObjDesc->Reference.Object)
> @@ -518,20 +513,17 @@ AcpiDmDisplayInternalObject (
>                  }
>                  break;
>
> -
>              case ACPI_REFCLASS_NAME:
>
>                  AcpiDmDecodeNode (ObjDesc->Reference.Node);
>                  break;
>
> -
>              case ACPI_REFCLASS_DEBUG:
>              case ACPI_REFCLASS_TABLE:
>
>                  AcpiOsPrintf ("\n");
>                  break;
>
> -
>              default:    /* Unknown reference class */
>
>                  AcpiOsPrintf ("%2.2X\n", ObjDesc->Reference.Class);
> @@ -539,7 +531,6 @@ AcpiDmDisplayInternalObject (
>              }
>              break;
>
> -
>          default:
>
>              AcpiOsPrintf ("<Obj>            ");
> @@ -548,7 +539,6 @@ AcpiDmDisplayInternalObject (
>          }
>          break;
>
> -
>      default:
>
>          AcpiOsPrintf ("<Not a valid ACPI Object Descriptor> [%s]",
> diff --git a/src/acpica/source/components/disassembler/dmopcode.c b/src/acpica/source/components/disassembler/dmopcode.c
> index 253a4b9..36cfd8a 100644
> --- a/src/acpica/source/components/disassembler/dmopcode.c
> +++ b/src/acpica/source/components/disassembler/dmopcode.c
> @@ -193,6 +193,7 @@ AcpiDmPredefinedDescription (
>      switch (NameString[1])
>      {
>      case 'A':
> +
>          if ((NameString[2] == 'C') && (LastCharIsDigit))
>          {
>              NameString = "_ACx";
> @@ -204,6 +205,7 @@ AcpiDmPredefinedDescription (
>          break;
>
>      case 'E':
> +
>          if ((NameString[2] == 'J') && (LastCharIsDigit))
>          {
>              NameString = "_EJx";
> @@ -215,6 +217,7 @@ AcpiDmPredefinedDescription (
>          break;
>
>      case 'L':
> +
>          if (LastCharsAreHex)
>          {
>              NameString = "_Lxx";
> @@ -222,6 +225,7 @@ AcpiDmPredefinedDescription (
>          break;
>
>      case 'Q':
> +
>          if (LastCharsAreHex)
>          {
>              NameString = "_Qxx";
> @@ -229,6 +233,7 @@ AcpiDmPredefinedDescription (
>          break;
>
>      case 'T':
> +
>          if (NameString[2] == '_')
>          {
>              NameString = "_T_x";
> @@ -236,6 +241,7 @@ AcpiDmPredefinedDescription (
>          break;
>
>      case 'W':
> +
>          if (LastCharsAreHex)
>          {
>              NameString = "_Wxx";
> @@ -243,6 +249,7 @@ AcpiDmPredefinedDescription (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -608,21 +615,26 @@ AcpiDmDisassembleOneOp (
>          return;
>
>      case ACPI_DASM_LNOT_SUFFIX:
> +
>          switch (Op->Common.AmlOpcode)
>          {
>          case AML_LEQUAL_OP:
> +
>              AcpiOsPrintf ("LNotEqual");
>              break;
>
>          case AML_LGREATER_OP:
> +
>              AcpiOsPrintf ("LLessEqual");
>              break;
>
>          case AML_LLESS_OP:
> +
>              AcpiOsPrintf ("LGreaterEqual");
>              break;
>
>          default:
> +
>              break;
>          }
>          Op->Common.DisasmOpcode = 0;
> @@ -661,7 +673,6 @@ AcpiDmDisassembleOneOp (
>          AcpiOsPrintf ("0x%2.2X", (UINT32) Op->Common.Value.Integer);
>          break;
>
> -
>      case AML_WORD_OP:
>
>          if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID)
> @@ -674,7 +685,6 @@ AcpiDmDisassembleOneOp (
>          }
>          break;
>
> -
>      case AML_DWORD_OP:
>
>          if (Op->Common.DisasmOpcode == ACPI_DASM_EISAID)
> @@ -687,22 +697,18 @@ AcpiDmDisassembleOneOp (
>          }
>          break;
>
> -
>      case AML_QWORD_OP:
>
>          AcpiOsPrintf ("0x%8.8X%8.8X",
>              ACPI_FORMAT_UINT64 (Op->Common.Value.Integer));
>          break;
>
> -
>      case AML_STRING_OP:
>
>          AcpiUtPrintString (Op->Common.Value.String, ACPI_UINT8_MAX);
>          break;
>
> -
>      case AML_BUFFER_OP:
> -
>          /*
>           * Determine the type of buffer. We can have one of the following:
>           *
> @@ -752,7 +758,6 @@ AcpiDmDisassembleOneOp (
>          }
>          break;
>
> -
>      case AML_INT_STATICSTRING_OP:
>
>          if (Op->Common.Value.String)
> @@ -765,13 +770,11 @@ AcpiDmDisassembleOneOp (
>          }
>          break;
>
> -
>      case AML_INT_NAMEPATH_OP:
>
>          AcpiDmNamestring (Op->Common.Value.Name);
>          break;
>
> -
>      case AML_INT_NAMEDFIELD_OP:
>
>          Length = AcpiDmDumpName (Op->Named.Name);
> @@ -782,7 +785,6 @@ AcpiDmDisassembleOneOp (
>          Info->BitOffset += (UINT32) Op->Common.Value.Integer;
>          break;
>
> -
>      case AML_INT_RESERVEDFIELD_OP:
>
>          /* Offset() -- Must account for previous offsets */
> @@ -802,7 +804,6 @@ AcpiDmDisassembleOneOp (
>          AcpiDmCommaIfFieldMember (Op);
>          break;
>
> -
>      case AML_INT_ACCESSFIELD_OP:
>      case AML_INT_EXTACCESSFIELD_OP:
>
> @@ -820,9 +821,7 @@ AcpiDmDisassembleOneOp (
>          AcpiDmCommaIfFieldMember (Op);
>          break;
>
> -
>      case AML_INT_CONNECTION_OP:
> -
>          /*
>           * Two types of Connection() - one with a buffer object, the
>           * other with a namestring that points to a buffer object.
> @@ -862,7 +861,6 @@ AcpiDmDisassembleOneOp (
>          AcpiDmByteList (Info, Op);
>          break;
>
> -
>      case AML_INT_METHODCALL_OP:
>
>          Op = AcpiPsGetDepthNext (NULL, Op);
> @@ -871,7 +869,6 @@ AcpiDmDisassembleOneOp (
>          AcpiDmNamestring (Op->Common.Value.Name);
>          break;
>
> -
>      default:
>
>          /* Just get the opcode name and print it */
> diff --git a/src/acpica/source/components/disassembler/dmresrc.c b/src/acpica/source/components/disassembler/dmresrc.c
> index a54aa4e..7dd5693 100644
> --- a/src/acpica/source/components/disassembler/dmresrc.c
> +++ b/src/acpica/source/components/disassembler/dmresrc.c
> @@ -409,6 +409,7 @@ AcpiDmResourceTemplate (
>              return;
>
>          default:
> +
>              break;
>          }
>
> diff --git a/src/acpica/source/components/disassembler/dmresrcl.c b/src/acpica/source/components/disassembler/dmresrcl.c
> index b5ec4db..6d1420d 100644
> --- a/src/acpica/source/components/disassembler/dmresrcl.c
> +++ b/src/acpica/source/components/disassembler/dmresrcl.c
> @@ -225,16 +225,19 @@ AcpiDmMemoryFields (
>          switch (Type)
>          {
>          case 16:
> +
>              AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
>                  AcpiDmMemoryNames[i]);
>              break;
>
>          case 32:
> +
>              AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
>                  AcpiDmMemoryNames[i]);
>              break;
>
>          default:
> +
>              return;
>          }
>      }
> @@ -273,21 +276,25 @@ AcpiDmAddressFields (
>          switch (Type)
>          {
>          case 16:
> +
>              AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
>                  AcpiDmAddressNames[i]);
>              break;
>
>          case 32:
> +
>              AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
>                  AcpiDmAddressNames[i]);
>              break;
>
>          case 64:
> +
>              AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i],
>                  AcpiDmAddressNames[i]);
>              break;
>
>          default:
> +
>              return;
>          }
>      }
> @@ -314,22 +321,27 @@ AcpiDmAddressPrefix (
>      switch (Type)
>      {
>      case ACPI_RESOURCE_TYPE_ADDRESS16:
> +
>          AcpiOsPrintf ("Word");
>          break;
>
>      case ACPI_RESOURCE_TYPE_ADDRESS32:
> +
>          AcpiOsPrintf ("DWord");
>          break;
>
>      case ACPI_RESOURCE_TYPE_ADDRESS64:
> +
>          AcpiOsPrintf ("QWord");
>          break;
>
>      case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
> +
>          AcpiOsPrintf ("Extended");
>          break;
>
>      default:
> +
>          return;
>      }
>  }
> diff --git a/src/acpica/source/components/disassembler/dmresrcl2.c b/src/acpica/source/components/disassembler/dmresrcl2.c
> index 39205f7..b15db88 100644
> --- a/src/acpica/source/components/disassembler/dmresrcl2.c
> +++ b/src/acpica/source/components/disassembler/dmresrcl2.c
> @@ -448,14 +448,17 @@ AcpiDmGpioDescriptor (
>      switch (ConnectionType)
>      {
>      case AML_RESOURCE_GPIO_TYPE_INT:
> +
>          AcpiDmGpioIntDescriptor (Resource, Length, Level);
>          break;
>
>      case AML_RESOURCE_GPIO_TYPE_IO:
> +
>          AcpiDmGpioIoDescriptor (Resource, Length, Level);
>          break;
>
>      default:
> +
>          AcpiOsPrintf ("Unknown GPIO type\n");
>          break;
>      }
> @@ -515,6 +518,7 @@ AcpiDmDumpSerialBusVendorData (
>          break;
>
>      default:
> +
>          return;
>      }
>
> diff --git a/src/acpica/source/components/disassembler/dmwalk.c b/src/acpica/source/components/disassembler/dmwalk.c
> index a924830..882197f 100644
> --- a/src/acpica/source/components/disassembler/dmwalk.c
> +++ b/src/acpica/source/components/disassembler/dmwalk.c
> @@ -533,6 +533,7 @@ AcpiDmDescendingOp (
>                  /* Fallthrough */
>
>              default:
> +
>                  AcpiDmIndent (Level);
>                  break;
>              }
> @@ -771,7 +772,6 @@ AcpiDmDescendingOp (
>              AcpiDmFieldFlags (NextOp);
>              break;
>
> -
>          case AML_BUFFER_OP:
>
>              /* The next op is the size parameter */
> @@ -809,7 +809,6 @@ AcpiDmDescendingOp (
>              NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMLIST;
>              return (AE_OK);
>
> -
>          case AML_VAR_PACKAGE_OP:
>          case AML_IF_OP:
>          case AML_WHILE_OP:
> @@ -823,7 +822,6 @@ AcpiDmDescendingOp (
>              }
>              return (AE_OK);
>
> -
>          case AML_PACKAGE_OP:
>
>              /* The next op is the size parameter */
> @@ -835,13 +833,11 @@ AcpiDmDescendingOp (
>              }
>              return (AE_OK);
>
> -
>          case AML_MATCH_OP:
>
>              AcpiDmMatchOp (Op);
>              break;
>
> -
>          default:
>
>              break;
> @@ -938,7 +934,6 @@ AcpiDmAscendingOp (
>          }
>          break;
>
> -
>      case BLOCK_BRACE:
>      case (BLOCK_BRACE | BLOCK_PAREN):
>
> @@ -978,7 +973,6 @@ AcpiDmAscendingOp (
>          }
>          break;
>
> -
>      case BLOCK_NONE:
>      default:
>
> diff --git a/src/acpica/source/components/dispatcher/dscontrol.c b/src/acpica/source/components/dispatcher/dscontrol.c
> index ca6aaaf..1751e28 100644
> --- a/src/acpica/source/components/dispatcher/dscontrol.c
> +++ b/src/acpica/source/components/dispatcher/dscontrol.c
> @@ -158,7 +158,6 @@ AcpiDsExecBeginControlOp (
>      switch (Op->Common.AmlOpcode)
>      {
>      case AML_WHILE_OP:
> -
>          /*
>           * If this is an additional iteration of a while loop, continue.
>           * There is no need to allocate a new control state.
> @@ -179,7 +178,6 @@ AcpiDsExecBeginControlOp (
>          /*lint -fallthrough */
>
>      case AML_IF_OP:
> -
>          /*
>           * IF/WHILE: Create a new control state to manage these
>           * constructs. We need to manage these as a stack, in order
> @@ -222,6 +220,7 @@ AcpiDsExecBeginControlOp (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -276,12 +275,10 @@ AcpiDsExecEndControlOp (
>          AcpiUtDeleteGenericState (ControlState);
>          break;
>
> -
>      case AML_ELSE_OP:
>
>          break;
>
> -
>      case AML_WHILE_OP:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", Op));
> @@ -324,7 +321,6 @@ AcpiDsExecEndControlOp (
>          AcpiUtDeleteGenericState (ControlState);
>          break;
>
> -
>      case AML_RETURN_OP:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
> @@ -420,12 +416,11 @@ AcpiDsExecEndControlOp (
>          Status = AE_CTRL_TERMINATE;
>          break;
>
> -
>      case AML_NOOP_OP:
>
>          /* Just do nothing! */
> -        break;
>
> +        break;
>
>      case AML_BREAK_POINT_OP:
>
> @@ -445,11 +440,9 @@ AcpiDsExecEndControlOp (
>                      "Executed AML Breakpoint opcode");
>          break;
>
> -
>      case AML_BREAK_OP:
>      case AML_CONTINUE_OP: /* ACPI 2.0 */
>
> -
>          /* Pop and delete control states until we find a while */
>
>          while (WalkState->ControlState &&
> @@ -482,7 +475,6 @@ AcpiDsExecEndControlOp (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown control opcode=0x%X Op=%p",
> diff --git a/src/acpica/source/components/dispatcher/dsfield.c b/src/acpica/source/components/dispatcher/dsfield.c
> index 379ceae..56a8d3e 100644
> --- a/src/acpica/source/components/dispatcher/dsfield.c
> +++ b/src/acpica/source/components/dispatcher/dsfield.c
> @@ -671,21 +671,25 @@ AcpiDsInitFieldObjects (
>      switch (WalkState->Opcode)
>      {
>      case AML_FIELD_OP:
> +
>          Arg = AcpiPsGetArg (Op, 2);
>          Type = ACPI_TYPE_LOCAL_REGION_FIELD;
>          break;
>
>      case AML_BANK_FIELD_OP:
> +
>          Arg = AcpiPsGetArg (Op, 4);
>          Type = ACPI_TYPE_LOCAL_BANK_FIELD;
>          break;
>
>      case AML_INDEX_FIELD_OP:
> +
>          Arg = AcpiPsGetArg (Op, 3);
>          Type = ACPI_TYPE_LOCAL_INDEX_FIELD;
>          break;
>
>      default:
> +
>          return_ACPI_STATUS (AE_BAD_PARAMETER);
>      }
>
> diff --git a/src/acpica/source/components/dispatcher/dsinit.c b/src/acpica/source/components/dispatcher/dsinit.c
> index 9ec1402..119d734 100644
> --- a/src/acpica/source/components/dispatcher/dsinit.c
> +++ b/src/acpica/source/components/dispatcher/dsinit.c
> @@ -200,20 +200,18 @@ AcpiDsInitOneObject (
>          Info->OpRegionCount++;
>          break;
>
> -
>      case ACPI_TYPE_METHOD:
>
>          Info->MethodCount++;
>          break;
>
> -
>      case ACPI_TYPE_DEVICE:
>
>          Info->DeviceCount++;
>          break;
>
> -
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/dispatcher/dsmthdat.c b/src/acpica/source/components/dispatcher/dsmthdat.c
> index 07c4038..2e034e9 100644
> --- a/src/acpica/source/components/dispatcher/dsmthdat.c
> +++ b/src/acpica/source/components/dispatcher/dsmthdat.c
> @@ -387,6 +387,7 @@ AcpiDsMethodDataGetNode (
>          break;
>
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "Type %u is invalid", Type));
>          return_ACPI_STATUS (AE_TYPE);
>      }
> @@ -544,7 +545,6 @@ AcpiDsMethodDataGetValue (
>              return_ACPI_STATUS (AE_AML_UNINITIALIZED_ARG);
>
>          case ACPI_REFCLASS_LOCAL:
> -
>              /*
>               * No error message for this case, will be trapped again later to
>               * detect and ignore cases of Store(LocalX,LocalX)
> diff --git a/src/acpica/source/components/dispatcher/dsobject.c b/src/acpica/source/components/dispatcher/dsobject.c
> index 5cfb3c0..b2e2e61 100644
> --- a/src/acpica/source/components/dispatcher/dsobject.c
> +++ b/src/acpica/source/components/dispatcher/dsobject.c
> @@ -749,7 +749,6 @@ AcpiDsInitObjectFromOp (
>      switch (ObjDesc->Common.Type)
>      {
>      case ACPI_TYPE_BUFFER:
> -
>          /*
>           * Defer evaluation of Buffer TermArg operand
>           */
> @@ -759,9 +758,7 @@ AcpiDsInitObjectFromOp (
>          ObjDesc->Buffer.AmlLength = Op->Named.Length;
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
> -
>          /*
>           * Defer evaluation of Package TermArg operand
>           */
> @@ -771,7 +768,6 @@ AcpiDsInitObjectFromOp (
>          ObjDesc->Package.AmlLength = Op->Named.Length;
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          switch (OpInfo->Type)
> @@ -824,7 +820,6 @@ AcpiDsInitObjectFromOp (
>              }
>              break;
>
> -
>          case AML_TYPE_LITERAL:
>
>              ObjDesc->Integer.Value = Op->Common.Value.Integer;
> @@ -842,8 +837,8 @@ AcpiDsInitObjectFromOp (
>  #endif
>              break;
>
> -
>          default:
> +
>              ACPI_ERROR ((AE_INFO, "Unknown Integer type 0x%X",
>                  OpInfo->Type));
>              Status = AE_AML_OPERAND_TYPE;
> @@ -851,7 +846,6 @@ AcpiDsInitObjectFromOp (
>          }
>          break;
>
> -
>      case ACPI_TYPE_STRING:
>
>          ObjDesc->String.Pointer = Op->Common.Value.String;
> @@ -864,11 +858,9 @@ AcpiDsInitObjectFromOp (
>          ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
>          break;
>
> -
>      case ACPI_TYPE_METHOD:
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_REFERENCE:
>
>          switch (OpInfo->Type)
> @@ -888,7 +880,6 @@ AcpiDsInitObjectFromOp (
>  #endif
>              break;
>
> -
>          case AML_TYPE_METHOD_ARGUMENT:
>
>              /* Arg ID (0-6) is (AML opcode - base AML_ARG_OP) */
> @@ -932,7 +923,6 @@ AcpiDsInitObjectFromOp (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unimplemented data type: 0x%X",
> diff --git a/src/acpica/source/components/dispatcher/dsopcode.c b/src/acpica/source/components/dispatcher/dsopcode.c
> index 530a574..1bca33d 100644
> --- a/src/acpica/source/components/dispatcher/dsopcode.c
> +++ b/src/acpica/source/components/dispatcher/dsopcode.c
> @@ -752,6 +752,7 @@ AcpiDsEvalDataObjectOperands (
>          break;
>
>      default:
> +
>          return_ACPI_STATUS (AE_AML_BAD_OPCODE);
>      }
>
> diff --git a/src/acpica/source/components/dispatcher/dsutils.c b/src/acpica/source/components/dispatcher/dsutils.c
> index d97cad1..d3c9580 100644
> --- a/src/acpica/source/components/dispatcher/dsutils.c
> +++ b/src/acpica/source/components/dispatcher/dsutils.c
> @@ -336,7 +336,6 @@ AcpiDsIsResultUsed (
>
>          case AML_IF_OP:
>          case AML_WHILE_OP:
> -
>              /*
>               * If we are executing the predicate AND this is the predicate op,
>               * we will use the return value
> @@ -349,7 +348,9 @@ AcpiDsIsResultUsed (
>              break;
>
>          default:
> +
>              /* Ignore other control opcodes */
> +
>              break;
>          }
>
> @@ -357,16 +358,13 @@ AcpiDsIsResultUsed (
>
>          goto ResultNotUsed;
>
> -
>      case AML_CLASS_CREATE:
> -
>          /*
>           * These opcodes allow TermArg(s) as operands and therefore
>           * the operands can be method calls. The result is used.
>           */
>          goto ResultUsed;
>
> -
>      case AML_CLASS_NAMED_OBJECT:
>
>          if ((Op->Common.Parent->Common.AmlOpcode == AML_REGION_OP)       ||
> @@ -386,9 +384,7 @@ AcpiDsIsResultUsed (
>
>          goto ResultNotUsed;
>
> -
>      default:
> -
>          /*
>           * In all other cases. the parent will actually use the return
>           * object, so keep it.
> diff --git a/src/acpica/source/components/dispatcher/dswexec.c b/src/acpica/source/components/dispatcher/dswexec.c
> index 3080999..fdc79fe 100644
> --- a/src/acpica/source/components/dispatcher/dswexec.c
> +++ b/src/acpica/source/components/dispatcher/dswexec.c
> @@ -390,7 +390,6 @@ AcpiDsExecBeginOp (
>          Status = AcpiDsExecBeginControlOp (WalkState, Op);
>          break;
>
> -
>      case AML_CLASS_NAMED_OBJECT:
>
>          if (WalkState->WalkType & ACPI_WALK_METHOD)
> @@ -422,14 +421,13 @@ AcpiDsExecBeginOp (
>          }
>          break;
>
> -
>      case AML_CLASS_EXECUTE:
>      case AML_CLASS_CREATE:
>
>          break;
>
> -
>      default:
> +
>          break;
>      }
>
> @@ -513,7 +511,6 @@ AcpiDsExecEndOp (
>          }
>          break;
>
> -
>      case AML_CLASS_EXECUTE:     /* Most operators with arguments */
>
>          /* Build resolved operand stack */
> @@ -586,7 +583,6 @@ AcpiDsExecEndOp (
>          }
>          break;
>
> -
>      default:
>
>          switch (OpType)
> @@ -599,9 +595,7 @@ AcpiDsExecEndOp (
>
>              break;
>
> -
>          case AML_TYPE_METHOD_CALL:
> -
>              /*
>               * If the method is referenced from within a package
>               * declaration, it is not a invocation of the method, just
> @@ -668,7 +662,6 @@ AcpiDsExecEndOp (
>               */
>              return_ACPI_STATUS (Status);
>
> -
>          case AML_TYPE_CREATE_FIELD:
>
>              ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
> @@ -692,7 +685,6 @@ AcpiDsExecEndOp (
>              switch (Op->Common.Parent->Common.AmlOpcode)
>              {
>              case AML_NAME_OP:
> -
>                  /*
>                   * Put the Node on the object stack (Contains the ACPI Name
>                   * of this object)
> @@ -733,7 +725,6 @@ AcpiDsExecEndOp (
>              }
>              break;
>
> -
>          case AML_TYPE_NAMED_FIELD:
>          case AML_TYPE_NAMED_COMPLEX:
>          case AML_TYPE_NAMED_SIMPLE:
> @@ -780,14 +771,12 @@ AcpiDsExecEndOp (
>              }
>              break;
>
> -
>          case AML_TYPE_UNDEFINED:
>
>              ACPI_ERROR ((AE_INFO,
>                  "Undefined opcode type Op=%p", Op));
>              return_ACPI_STATUS (AE_NOT_IMPLEMENTED);
>
> -
>          case AML_TYPE_BOGUS:
>
>              ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
> @@ -795,7 +784,6 @@ AcpiDsExecEndOp (
>                  WalkState->Opcode, Op));
>              break;
>
> -
>          default:
>
>              ACPI_ERROR ((AE_INFO,
> diff --git a/src/acpica/source/components/dispatcher/dswload.c b/src/acpica/source/components/dispatcher/dswload.c
> index e460727..291fced 100644
> --- a/src/acpica/source/components/dispatcher/dswload.c
> +++ b/src/acpica/source/components/dispatcher/dswload.c
> @@ -153,6 +153,7 @@ AcpiDsInitCallbacks (
>      switch (PassNumber)
>      {
>      case 1:
> +
>          WalkState->ParseFlags         = ACPI_PARSE_LOAD_PASS1 |
>                                          ACPI_PARSE_DELETE_TREE;
>          WalkState->DescendingCallback = AcpiDsLoad1BeginOp;
> @@ -160,6 +161,7 @@ AcpiDsInitCallbacks (
>          break;
>
>      case 2:
> +
>          WalkState->ParseFlags         = ACPI_PARSE_LOAD_PASS1 |
>                                          ACPI_PARSE_DELETE_TREE;
>          WalkState->DescendingCallback = AcpiDsLoad2BeginOp;
> @@ -167,6 +169,7 @@ AcpiDsInitCallbacks (
>          break;
>
>      case 3:
> +
>  #ifndef ACPI_NO_METHOD_EXECUTION
>          WalkState->ParseFlags        |= ACPI_PARSE_EXECUTE  |
>                                          ACPI_PARSE_DELETE_TREE;
> @@ -176,6 +179,7 @@ AcpiDsInitCallbacks (
>          break;
>
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> @@ -246,7 +250,6 @@ AcpiDsLoad1BeginOp (
>      switch (WalkState->Opcode)
>      {
>      case AML_SCOPE_OP:
> -
>          /*
>           * The target name of the Scope() operator must exist at this point so
>           * that we can actually open the scope to enter new names underneath it.
> @@ -293,7 +296,6 @@ AcpiDsLoad1BeginOp (
>          case ACPI_TYPE_INTEGER:
>          case ACPI_TYPE_STRING:
>          case ACPI_TYPE_BUFFER:
> -
>              /*
>               * These types we will allow, but we will change the type.
>               * This enables some existing code of the form:
> @@ -314,7 +316,6 @@ AcpiDsLoad1BeginOp (
>              break;
>
>          case ACPI_TYPE_METHOD:
> -
>              /*
>               * Allow scope change to root during execution of module-level
>               * code. Root is typed METHOD during this time.
> @@ -340,7 +341,6 @@ AcpiDsLoad1BeginOp (
>          }
>          break;
>
> -
>      default:
>          /*
>           * For all other named opcodes, we will enter the name into
> diff --git a/src/acpica/source/components/dispatcher/dswload2.c b/src/acpica/source/components/dispatcher/dswload2.c
> index 88d8914..2362d98 100644
> --- a/src/acpica/source/components/dispatcher/dswload2.c
> +++ b/src/acpica/source/components/dispatcher/dswload2.c
> @@ -568,7 +568,6 @@ AcpiDsLoad2EndOp (
>          Status = AcpiDsCreateBufferField (Op, WalkState);
>          break;
>
> -
>       case AML_TYPE_NAMED_FIELD:
>          /*
>           * If we are executing a method, initialize the field
> @@ -597,12 +596,12 @@ AcpiDsLoad2EndOp (
>              break;
>
>          default:
> +
>              /* All NAMED_FIELD opcodes must be handled above */
>              break;
>          }
>          break;
>
> -
>       case AML_TYPE_NAMED_SIMPLE:
>
>          Status = AcpiDsCreateOperands (WalkState, Arg);
> @@ -633,13 +632,13 @@ AcpiDsLoad2EndOp (
>              Status = AcpiExCreateEvent (WalkState);
>              break;
>
> -
>          case AML_ALIAS_OP:
>
>              Status = AcpiExCreateAlias (WalkState);
>              break;
>
>          default:
> +
>              /* Unknown opcode */
>
>              Status = AE_OK;
> @@ -724,13 +723,11 @@ AcpiDsLoad2EndOp (
>              }
>              break;
>
> -
>          case AML_NAME_OP:
>
>              Status = AcpiDsCreateNode (WalkState, Node, Op);
>              break;
>
> -
>          case AML_METHOD_OP:
>              /*
>               * MethodOp PkgLength NameString MethodFlags TermList
> @@ -768,18 +765,17 @@ AcpiDsLoad2EndOp (
>  #endif /* ACPI_NO_METHOD_EXECUTION */
>
>          default:
> +
>              /* All NAMED_COMPLEX opcodes must be handled above */
>              break;
>          }
>          break;
>
> -
>      case AML_CLASS_INTERNAL:
>
>          /* case AML_INT_NAMEPATH_OP: */
>          break;
>
> -
>      case AML_CLASS_METHOD_CALL:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
> @@ -819,6 +815,7 @@ AcpiDsLoad2EndOp (
>
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/events/evglock.c b/src/acpica/source/components/events/evglock.c
> index 14ded10..f92b5de 100644
> --- a/src/acpica/source/components/events/evglock.c
> +++ b/src/acpica/source/components/events/evglock.c
> @@ -216,6 +216,7 @@ AcpiEvRemoveGlobalLockHandler (
>      Status = AcpiRemoveFixedEventHandler (ACPI_EVENT_GLOBAL,
>                  AcpiEvGlobalLockHandler);
>
> +    AcpiOsDeleteLock (AcpiGbl_GlobalLockPendingLock);
>      return_ACPI_STATUS (Status);
>  }
>
> diff --git a/src/acpica/source/components/events/evgpe.c b/src/acpica/source/components/events/evgpe.c
> index 2869e44..64c1167 100644
> --- a/src/acpica/source/components/events/evgpe.c
> +++ b/src/acpica/source/components/events/evgpe.c
> @@ -650,7 +650,6 @@ AcpiEvAsynchExecuteGpeMethod (
>      switch (LocalGpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK)
>      {
>      case ACPI_GPE_DISPATCH_NOTIFY:
> -
>          /*
>           * Implicit notify.
>           * Dispatch a DEVICE_WAKE notify to the appropriate handler.
> @@ -703,6 +702,7 @@ AcpiEvAsynchExecuteGpeMethod (
>          break;
>
>      default:
> +
>          return_VOID; /* Should never happen */
>      }
>
> @@ -889,7 +889,6 @@ AcpiEvGpeDispatch (
>
>      case ACPI_GPE_DISPATCH_METHOD:
>      case ACPI_GPE_DISPATCH_NOTIFY:
> -
>          /*
>           * Execute the method associated with the GPE
>           * NOTE: Level-triggered GPEs are cleared after the method completes.
> @@ -905,7 +904,6 @@ AcpiEvGpeDispatch (
>          break;
>
>      default:
> -
>          /*
>           * No handler or method to run!
>           * 03/2010: This case should no longer be possible. We will not allow
> diff --git a/src/acpica/source/components/events/evgpeblk.c b/src/acpica/source/components/events/evgpeblk.c
> index 342d0df..aed636f 100644
> --- a/src/acpica/source/components/events/evgpeblk.c
> +++ b/src/acpica/source/components/events/evgpeblk.c
> @@ -492,6 +492,8 @@ AcpiEvCreateGpeBlock (
>      Status = AcpiEvInstallGpeBlock (GpeBlock, InterruptNumber);
>      if (ACPI_FAILURE (Status))
>      {
> +        ACPI_FREE (GpeBlock->RegisterInfo);
> +        ACPI_FREE (GpeBlock->EventInfo);
>          ACPI_FREE (GpeBlock);
>          return_ACPI_STATUS (Status);
>      }
> diff --git a/src/acpica/source/components/events/evgpeinit.c b/src/acpica/source/components/events/evgpeinit.c
> index e7a318a..8cf5730 100644
> --- a/src/acpica/source/components/events/evgpeinit.c
> +++ b/src/acpica/source/components/events/evgpeinit.c
> @@ -454,14 +454,17 @@ AcpiEvMatchGpeMethod (
>      switch (Name[1])
>      {
>      case 'L':
> +
>          Type = ACPI_GPE_LEVEL_TRIGGERED;
>          break;
>
>      case 'E':
> +
>          Type = ACPI_GPE_EDGE_TRIGGERED;
>          break;
>
>      default:
> +
>          /* Unknown method type, just ignore it */
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_LOAD,
> diff --git a/src/acpica/source/components/events/evhandler.c b/src/acpica/source/components/events/evhandler.c
> index 0d7e6ad..a92546f 100644
> --- a/src/acpica/source/components/events/evhandler.c
> +++ b/src/acpica/source/components/events/evhandler.c
> @@ -465,36 +465,43 @@ AcpiEvInstallSpaceHandler (
>          switch (SpaceId)
>          {
>          case ACPI_ADR_SPACE_SYSTEM_MEMORY:
> +
>              Handler = AcpiExSystemMemorySpaceHandler;
>              Setup   = AcpiEvSystemMemoryRegionSetup;
>              break;
>
>          case ACPI_ADR_SPACE_SYSTEM_IO:
> +
>              Handler = AcpiExSystemIoSpaceHandler;
>              Setup   = AcpiEvIoSpaceRegionSetup;
>              break;
>
>          case ACPI_ADR_SPACE_PCI_CONFIG:
> +
>              Handler = AcpiExPciConfigSpaceHandler;
>              Setup   = AcpiEvPciConfigRegionSetup;
>              break;
>
>          case ACPI_ADR_SPACE_CMOS:
> +
>              Handler = AcpiExCmosSpaceHandler;
>              Setup   = AcpiEvCmosRegionSetup;
>              break;
>
>          case ACPI_ADR_SPACE_PCI_BAR_TARGET:
> +
>              Handler = AcpiExPciBarSpaceHandler;
>              Setup   = AcpiEvPciBarRegionSetup;
>              break;
>
>          case ACPI_ADR_SPACE_DATA_TABLE:
> +
>              Handler = AcpiExDataTableSpaceHandler;
>              Setup   = NULL;
>              break;
>
>          default:
> +
>              Status = AE_BAD_PARAMETER;
>              goto UnlockAndExit;
>          }
> diff --git a/src/acpica/source/components/events/evmisc.c b/src/acpica/source/components/events/evmisc.c
> index 6528b75..9e871fb 100644
> --- a/src/acpica/source/components/events/evmisc.c
> +++ b/src/acpica/source/components/events/evmisc.c
> @@ -158,6 +158,7 @@ AcpiEvIsNotifyObject (
>          return (TRUE);
>
>      default:
> +
>          return (FALSE);
>      }
>  }
> @@ -378,6 +379,8 @@ AcpiEvTerminate (
>              ACPI_ERROR ((AE_INFO,
>                  "Could not remove Global Lock handler"));
>          }
> +
> +        AcpiGbl_EventsInitialized = FALSE;
>      }
>
>      /* Deallocate all handler objects installed within GPE info structs */
> diff --git a/src/acpica/source/components/events/evrgnini.c b/src/acpica/source/components/events/evrgnini.c
> index e11a7cc..8087f8c 100644
> --- a/src/acpica/source/components/events/evrgnini.c
> +++ b/src/acpica/source/components/events/evrgnini.c
> @@ -736,7 +736,9 @@ AcpiEvInitializeRegion (
>                  break;
>
>              default:
> +
>                  /* Ignore other objects */
> +
>                  break;
>              }
>
> diff --git a/src/acpica/source/components/events/evxfgpe.c b/src/acpica/source/components/events/evxfgpe.c
> index 5bfc77c..4a756c9 100644
> --- a/src/acpica/source/components/events/evxfgpe.c
> +++ b/src/acpica/source/components/events/evxfgpe.c
> @@ -322,14 +322,17 @@ AcpiSetGpe (
>      switch (Action)
>      {
>      case ACPI_GPE_ENABLE:
> +
>          Status = AcpiEvEnableGpe (GpeEventInfo);
>          break;
>
>      case ACPI_GPE_DISABLE:
> +
>          Status = AcpiHwLowSetGpe (GpeEventInfo, ACPI_GPE_DISABLE);
>          break;
>
>      default:
> +
>          Status = AE_BAD_PARAMETER;
>          break;
>      }
> @@ -559,14 +562,17 @@ AcpiSetGpeWakeMask (
>      switch (Action)
>      {
>      case ACPI_GPE_ENABLE:
> +
>          ACPI_SET_BIT (GpeRegisterInfo->EnableForWake, (UINT8) RegisterBit);
>          break;
>
>      case ACPI_GPE_DISABLE:
> +
>          ACPI_CLEAR_BIT (GpeRegisterInfo->EnableForWake, (UINT8) RegisterBit);
>          break;
>
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "%u, Invalid action", Action));
>          Status = AE_BAD_PARAMETER;
>          break;
> diff --git a/src/acpica/source/components/events/evxfregn.c b/src/acpica/source/components/events/evxfregn.c
> index d4acb5e..12ec482 100644
> --- a/src/acpica/source/components/events/evxfregn.c
> +++ b/src/acpica/source/components/events/evxfregn.c
> @@ -221,6 +221,7 @@ AcpiInstallAddressSpaceHandler (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/executer/exconfig.c b/src/acpica/source/components/executer/exconfig.c
> index 935a648..809adb8 100644
> --- a/src/acpica/source/components/executer/exconfig.c
> +++ b/src/acpica/source/components/executer/exconfig.c
> @@ -556,7 +556,6 @@ AcpiExLoadOp (
>          TableDesc.Address = ObjDesc->Region.Address;
>          break;
>
> -
>      case ACPI_TYPE_BUFFER: /* Buffer or resolved RegionField */
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
> @@ -599,8 +598,8 @@ AcpiExLoadOp (
>          TableDesc.Address = ACPI_TO_INTEGER (TableDesc.Pointer);
>          break;
>
> -
>      default:
> +
>          return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
>      }
>
> diff --git a/src/acpica/source/components/executer/exconvrt.c b/src/acpica/source/components/executer/exconvrt.c
> index 3f2edd0..99f03da 100644
> --- a/src/acpica/source/components/executer/exconvrt.c
> +++ b/src/acpica/source/components/executer/exconvrt.c
> @@ -186,6 +186,7 @@ AcpiExConvertToInteger (
>          break;
>
>      default:
> +
>          return_ACPI_STATUS (AE_TYPE);
>      }
>
> @@ -205,7 +206,6 @@ AcpiExConvertToInteger (
>      switch (ObjDesc->Common.Type)
>      {
>      case ACPI_TYPE_STRING:
> -
>          /*
>           * Convert string to an integer - for most cases, the string must be
>           * hexadecimal as per the ACPI specification. The only exception (as
> @@ -219,7 +219,6 @@ AcpiExConvertToInteger (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          /* Check for zero-length buffer */
> @@ -251,10 +250,10 @@ AcpiExConvertToInteger (
>          }
>          break;
>
> -
>      default:
>
>          /* No other types can get here */
> +
>          break;
>      }
>
> @@ -314,7 +313,6 @@ AcpiExConvertToBuffer (
>
>
>      case ACPI_TYPE_INTEGER:
> -
>          /*
>           * Create a new Buffer object.
>           * Need enough space for one integer
> @@ -333,9 +331,7 @@ AcpiExConvertToBuffer (
>                          AcpiGbl_IntegerByteWidth);
>          break;
>
> -
>      case ACPI_TYPE_STRING:
> -
>          /*
>           * Create a new Buffer object
>           * Size will be the string length
> @@ -359,8 +355,8 @@ AcpiExConvertToBuffer (
>              ObjDesc->String.Length);
>          break;
>
> -
>      default:
> +
>          return_ACPI_STATUS (AE_TYPE);
>      }
>
> @@ -416,15 +412,18 @@ AcpiExConvertToAscii (
>          switch (DataWidth)
>          {
>          case 1:
> +
>              DecimalLength = ACPI_MAX8_DECIMAL_DIGITS;
>              break;
>
>          case 4:
> +
>              DecimalLength = ACPI_MAX32_DECIMAL_DIGITS;
>              break;
>
>          case 8:
>          default:
> +
>              DecimalLength = ACPI_MAX64_DECIMAL_DIGITS;
>              break;
>          }
> @@ -533,7 +532,6 @@ AcpiExConvertToString (
>          *ResultDesc = ObjDesc;
>          return_ACPI_STATUS (AE_OK);
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          switch (Type)
> @@ -577,7 +575,6 @@ AcpiExConvertToString (
>          NewBuf [StringLength] = 0;
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          /* Setup string length, base, and separator */
> @@ -676,6 +673,7 @@ AcpiExConvertToString (
>          break;
>
>      default:
> +
>          return_ACPI_STATUS (AE_TYPE);
>      }
>
> @@ -735,6 +733,7 @@ AcpiExConvertToTargetType (
>              break;
>
>          default:
> +
>              /* No conversion allowed for these types */
>
>              if (DestinationType != SourceDesc->Common.Type)
> @@ -748,7 +747,6 @@ AcpiExConvertToTargetType (
>          }
>          break;
>
> -
>      case ARGI_TARGETREF:
>
>          switch (DestinationType)
> @@ -765,7 +763,6 @@ AcpiExConvertToTargetType (
>                          16);
>              break;
>
> -
>          case ACPI_TYPE_STRING:
>              /*
>               * The operand must be a String. We can convert an
> @@ -775,7 +772,6 @@ AcpiExConvertToTargetType (
>                          ACPI_IMPLICIT_CONVERT_HEX);
>              break;
>
> -
>          case ACPI_TYPE_BUFFER:
>              /*
>               * The operand must be a Buffer. We can convert an
> @@ -784,8 +780,8 @@ AcpiExConvertToTargetType (
>              Status = AcpiExConvertToBuffer (SourceDesc, ResultDesc);
>              break;
>
> -
>          default:
> +
>              ACPI_ERROR ((AE_INFO, "Bad destination type during conversion: 0x%X",
>                  DestinationType));
>              Status = AE_AML_INTERNAL;
> @@ -793,15 +789,14 @@ AcpiExConvertToTargetType (
>          }
>          break;
>
> -
>      case ARGI_REFERENCE:
>          /*
>           * CreateXxxxField cases - we are storing the field object into the name
>           */
>          break;
>
> -
>      default:
> +
>          ACPI_ERROR ((AE_INFO,
>              "Unknown Target type ID 0x%X AmlOpcode 0x%X DestType %s",
>              GET_CURRENT_ARG_TYPE (WalkState->OpInfo->RuntimeArgs),
> diff --git a/src/acpica/source/components/executer/excreate.c b/src/acpica/source/components/executer/excreate.c
> index f95c2b0..0b26c48 100644
> --- a/src/acpica/source/components/executer/excreate.c
> +++ b/src/acpica/source/components/executer/excreate.c
> @@ -186,7 +186,6 @@ AcpiExCreateAlias (
>      case ACPI_TYPE_BUFFER:
>      case ACPI_TYPE_PACKAGE:
>      case ACPI_TYPE_BUFFER_FIELD:
> -
>      /*
>       * These types open a new scope, so we need the NS node in order to access
>       * any children.
> @@ -196,7 +195,6 @@ AcpiExCreateAlias (
>      case ACPI_TYPE_PROCESSOR:
>      case ACPI_TYPE_THERMAL:
>      case ACPI_TYPE_LOCAL_SCOPE:
> -
>          /*
>           * The new alias has the type ALIAS and points to the original
>           * NS node, not the object itself.
> @@ -206,7 +204,6 @@ AcpiExCreateAlias (
>          break;
>
>      case ACPI_TYPE_METHOD:
> -
>          /*
>           * Control method aliases need to be differentiated
>           */
> diff --git a/src/acpica/source/components/executer/exdebug.c b/src/acpica/source/components/executer/exdebug.c
> index 8f1d750..b4525ca 100644
> --- a/src/acpica/source/components/executer/exdebug.c
> +++ b/src/acpica/source/components/executer/exdebug.c
> @@ -280,6 +280,7 @@ AcpiExDoDebugObject (
>              return_VOID;
>
>          default:
> +
>              break;
>          }
>
> @@ -313,6 +314,7 @@ AcpiExDoDebugObject (
>                      break;
>
>                  default:
> +
>                      AcpiExDoDebugObject ((SourceDesc->Reference.Node)->Object,
>                          Level+4, 0);
>                      break;
> diff --git a/src/acpica/source/components/executer/exdump.c b/src/acpica/source/components/executer/exdump.c
> index 8d9771a..cb93831 100644
> --- a/src/acpica/source/components/executer/exdump.c
> +++ b/src/acpica/source/components/executer/exdump.c
> @@ -452,6 +452,7 @@ AcpiExDumpObject (
>          switch (Info->Opcode)
>          {
>          case ACPI_EXD_INIT:
> +
>              break;
>
>          case ACPI_EXD_TYPE:
> @@ -613,19 +614,16 @@ AcpiExDumpOperand (
>              AcpiOsPrintf ("\n");
>              break;
>
> -
>          case ACPI_REFCLASS_INDEX:
>
>              AcpiOsPrintf ("%p\n", ObjDesc->Reference.Object);
>              break;
>
> -
>          case ACPI_REFCLASS_TABLE:
>
>              AcpiOsPrintf ("Table Index %X\n", ObjDesc->Reference.Value);
>              break;
>
> -
>          case ACPI_REFCLASS_REFOF:
>
>              AcpiOsPrintf ("%p [%s]\n", ObjDesc->Reference.Object,
> @@ -633,20 +631,17 @@ AcpiExDumpOperand (
>                      ObjDesc->Reference.Object)->Common.Type));
>              break;
>
> -
>          case ACPI_REFCLASS_NAME:
>
>              AcpiOsPrintf ("- [%4.4s]\n", ObjDesc->Reference.Node->Name.Ascii);
>              break;
>
> -
>          case ACPI_REFCLASS_ARG:
>          case ACPI_REFCLASS_LOCAL:
>
>              AcpiOsPrintf ("%X\n", ObjDesc->Reference.Value);
>              break;
>
> -
>          default:    /* Unknown reference class */
>
>              AcpiOsPrintf ("%2.2X\n", ObjDesc->Reference.Class);
> @@ -654,7 +649,6 @@ AcpiExDumpOperand (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          AcpiOsPrintf ("Buffer length %.2X @ %p\n",
> @@ -676,14 +670,12 @@ AcpiExDumpOperand (
>          }
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          AcpiOsPrintf ("Integer %8.8X%8.8X\n",
>              ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
>
>          AcpiOsPrintf ("Package [Len %X] ElementArray %p\n",
> @@ -704,7 +696,6 @@ AcpiExDumpOperand (
>          }
>          break;
>
> -
>      case ACPI_TYPE_REGION:
>
>          AcpiOsPrintf ("Region %s (%X)",
> @@ -727,7 +718,6 @@ AcpiExDumpOperand (
>          }
>          break;
>
> -
>      case ACPI_TYPE_STRING:
>
>          AcpiOsPrintf ("String length %X @ %p ",
> @@ -738,13 +728,11 @@ AcpiExDumpOperand (
>          AcpiOsPrintf ("\n");
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
>
>          AcpiOsPrintf ("BankField\n");
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_REGION_FIELD:
>
>          AcpiOsPrintf ("RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at "
> @@ -759,13 +747,11 @@ AcpiExDumpOperand (
>          AcpiExDumpOperand (ObjDesc->Field.RegionObj, Depth+1);
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_INDEX_FIELD:
>
>          AcpiOsPrintf ("IndexField\n");
>          break;
>
> -
>      case ACPI_TYPE_BUFFER_FIELD:
>
>          AcpiOsPrintf ("BufferField: %X bits at byte %X bit %X of\n",
> @@ -788,13 +774,11 @@ AcpiExDumpOperand (
>          }
>          break;
>
> -
>      case ACPI_TYPE_EVENT:
>
>          AcpiOsPrintf ("Event\n");
>          break;
>
> -
>      case ACPI_TYPE_METHOD:
>
>          AcpiOsPrintf ("Method(%X) @ %p:%X\n",
> @@ -803,38 +787,33 @@ AcpiExDumpOperand (
>              ObjDesc->Method.AmlLength);
>          break;
>
> -
>      case ACPI_TYPE_MUTEX:
>
>          AcpiOsPrintf ("Mutex\n");
>          break;
>
> -
>      case ACPI_TYPE_DEVICE:
>
>          AcpiOsPrintf ("Device\n");
>          break;
>
> -
>      case ACPI_TYPE_POWER:
>
>          AcpiOsPrintf ("Power\n");
>          break;
>
> -
>      case ACPI_TYPE_PROCESSOR:
>
>          AcpiOsPrintf ("Processor\n");
>          break;
>
> -
>      case ACPI_TYPE_THERMAL:
>
>          AcpiOsPrintf ("Thermal\n");
>          break;
>
> -
>      default:
> +
>          /* Unknown Type */
>
>          AcpiOsPrintf ("Unknown Type %X\n", ObjDesc->Common.Type);
> @@ -1077,7 +1056,6 @@ AcpiExDumpPackageObj (
>              ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
>          break;
>
> -
>      case ACPI_TYPE_STRING:
>
>          AcpiOsPrintf ("[String]  Value: ");
> @@ -1085,7 +1063,6 @@ AcpiExDumpPackageObj (
>          AcpiOsPrintf ("\n");
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length);
> @@ -1100,7 +1077,6 @@ AcpiExDumpPackageObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
>
>          AcpiOsPrintf ("[Package] Contains %u Elements:\n",
> @@ -1112,7 +1088,6 @@ AcpiExDumpPackageObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_REFERENCE:
>
>          AcpiOsPrintf ("[Object Reference] Type [%s] %2.2X",
> @@ -1121,7 +1096,6 @@ AcpiExDumpPackageObj (
>          AcpiExDumpReferenceObj (ObjDesc);
>          break;
>
> -
>      default:
>
>          AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Common.Type);
> diff --git a/src/acpica/source/components/executer/exfield.c b/src/acpica/source/components/executer/exfield.c
> index 9e803f5..2ebce9d 100644
> --- a/src/acpica/source/components/executer/exfield.c
> +++ b/src/acpica/source/components/executer/exfield.c
> @@ -432,21 +432,25 @@ AcpiExWriteDataToField (
>      switch (SourceDesc->Common.Type)
>      {
>      case ACPI_TYPE_INTEGER:
> +
>          Buffer = &SourceDesc->Integer.Value;
>          Length = sizeof (SourceDesc->Integer.Value);
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          Buffer = SourceDesc->Buffer.Pointer;
>          Length = SourceDesc->Buffer.Length;
>          break;
>
>      case ACPI_TYPE_STRING:
> +
>          Buffer = SourceDesc->String.Pointer;
>          Length = SourceDesc->String.Length;
>          break;
>
>      default:
> +
>          return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
>      }
>
> diff --git a/src/acpica/source/components/executer/exfldio.c b/src/acpica/source/components/executer/exfldio.c
> index 712af8d..934f024 100644
> --- a/src/acpica/source/components/executer/exfldio.c
> +++ b/src/acpica/source/components/executer/exfldio.c
> @@ -552,9 +552,7 @@ AcpiExFieldDatumIo (
>          Status = AE_OK;
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
> -
>          /*
>           * Ensure that the BankValue is not beyond the capacity of
>           * the register
> @@ -584,7 +582,6 @@ AcpiExFieldDatumIo (
>
>          /*lint -fallthrough */
>
> -
>      case ACPI_TYPE_LOCAL_REGION_FIELD:
>          /*
>           * For simple RegionFields, we just directly access the owning
> @@ -594,10 +591,7 @@ AcpiExFieldDatumIo (
>                      ReadWrite);
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_INDEX_FIELD:
> -
> -
>          /*
>           * Ensure that the IndexValue is not beyond the capacity of
>           * the register
> @@ -647,7 +641,6 @@ AcpiExFieldDatumIo (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Wrong object type in field I/O %u",
> diff --git a/src/acpica/source/components/executer/exmisc.c b/src/acpica/source/components/executer/exmisc.c
> index f1d1279..793abbf 100644
> --- a/src/acpica/source/components/executer/exmisc.c
> +++ b/src/acpica/source/components/executer/exmisc.c
> @@ -188,16 +188,13 @@ AcpiExGetObjectReference (
>          }
>          break;
>
> -
>      case ACPI_DESC_TYPE_NAMED:
> -
>          /*
>           * A named reference that has already been resolved to a Node
>           */
>          ReferencedObj = ObjDesc;
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Invalid descriptor type 0x%X",
> @@ -359,19 +356,23 @@ AcpiExDoConcatenate (
>      switch (Operand0->Common.Type)
>      {
>      case ACPI_TYPE_INTEGER:
> +
>          Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
>          break;
>
>      case ACPI_TYPE_STRING:
> +
>          Status = AcpiExConvertToString (Operand1, &LocalOperand1,
>                      ACPI_IMPLICIT_CONVERT_HEX);
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
>          break;
>
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "Invalid object type: 0x%X",
>              Operand0->Common.Type));
>          Status = AE_AML_INTERNAL;
> @@ -523,37 +524,30 @@ AcpiExDoMathOp (
>
>          return (Integer0 + Integer1);
>
> -
>      case AML_BIT_AND_OP:            /* And (Integer0, Integer1, Result) */
>
>          return (Integer0 & Integer1);
>
> -
>      case AML_BIT_NAND_OP:           /* NAnd (Integer0, Integer1, Result) */
>
>          return (~(Integer0 & Integer1));
>
> -
>      case AML_BIT_OR_OP:             /* Or (Integer0, Integer1, Result) */
>
>          return (Integer0 | Integer1);
>
> -
>      case AML_BIT_NOR_OP:            /* NOr (Integer0, Integer1, Result) */
>
>          return (~(Integer0 | Integer1));
>
> -
>      case AML_BIT_XOR_OP:            /* XOr (Integer0, Integer1, Result) */
>
>          return (Integer0 ^ Integer1);
>
> -
>      case AML_MULTIPLY_OP:           /* Multiply (Integer0, Integer1, Result) */
>
>          return (Integer0 * Integer1);
>
> -
>      case AML_SHIFT_LEFT_OP:         /* ShiftLeft (Operand, ShiftCount, Result)*/
>
>          /*
> @@ -566,7 +560,6 @@ AcpiExDoMathOp (
>          }
>          return (Integer0 << Integer1);
>
> -
>      case AML_SHIFT_RIGHT_OP:        /* ShiftRight (Operand, ShiftCount, Result) */
>
>          /*
> @@ -579,7 +572,6 @@ AcpiExDoMathOp (
>          }
>          return (Integer0 >> Integer1);
>
> -
>      case AML_SUBTRACT_OP:           /* Subtract (Integer0, Integer1, Result) */
>
>          return (Integer0 - Integer1);
> @@ -644,6 +636,7 @@ AcpiExDoLogicalNumericOp (
>          break;
>
>      default:
> +
>          Status = AE_AML_INTERNAL;
>          break;
>      }
> @@ -711,19 +704,23 @@ AcpiExDoLogicalOp (
>      switch (Operand0->Common.Type)
>      {
>      case ACPI_TYPE_INTEGER:
> +
>          Status = AcpiExConvertToInteger (Operand1, &LocalOperand1, 16);
>          break;
>
>      case ACPI_TYPE_STRING:
> +
>          Status = AcpiExConvertToString (Operand1, &LocalOperand1,
>                      ACPI_IMPLICIT_CONVERT_HEX);
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          Status = AcpiExConvertToBuffer (Operand1, &LocalOperand1);
>          break;
>
>      default:
> +
>          Status = AE_AML_INTERNAL;
>          break;
>      }
> @@ -772,6 +769,7 @@ AcpiExDoLogicalOp (
>              break;
>
>          default:
> +
>              Status = AE_AML_INTERNAL;
>              break;
>          }
> @@ -849,6 +847,7 @@ AcpiExDoLogicalOp (
>              break;
>
>          default:
> +
>              Status = AE_AML_INTERNAL;
>              break;
>          }
> diff --git a/src/acpica/source/components/executer/exnames.c b/src/acpica/source/components/executer/exnames.c
> index 6f1c6a3..847cb57 100644
> --- a/src/acpica/source/components/executer/exnames.c
> +++ b/src/acpica/source/components/executer/exnames.c
> @@ -406,7 +406,6 @@ AcpiExGetNameString (
>              HasPrefix = TRUE;
>              break;
>
> -
>          case AML_PARENT_PREFIX:
>
>              /* Increment past possibly multiple parent prefixes */
> @@ -424,7 +423,6 @@ AcpiExGetNameString (
>              HasPrefix = TRUE;
>              break;
>
> -
>          default:
>
>              /* Not a prefix character */
> @@ -460,7 +458,6 @@ AcpiExGetNameString (
>              }
>              break;
>
> -
>          case AML_MULTI_NAME_PREFIX_OP:
>
>              ACPI_DEBUG_PRINT ((ACPI_DB_LOAD, "MultiNamePrefix at %p\n",
> @@ -492,7 +489,6 @@ AcpiExGetNameString (
>
>              break;
>
> -
>          case 0:
>
>              /* NullName valid as of 8-12-98 ASL/AML Grammar Update */
> @@ -515,7 +511,6 @@ AcpiExGetNameString (
>
>              break;
>
> -
>          default:
>
>              /* Name segment string */
> diff --git a/src/acpica/source/components/executer/exoparg1.c b/src/acpica/source/components/executer/exoparg1.c
> index be6ad2d..ee6ffc1 100644
> --- a/src/acpica/source/components/executer/exoparg1.c
> +++ b/src/acpica/source/components/executer/exoparg1.c
> @@ -252,37 +252,31 @@ AcpiExOpcode_1A_0T_0R (
>          Status = AcpiExReleaseMutex (Operand[0], WalkState);
>          break;
>
> -
>      case AML_RESET_OP:      /*  Reset (EventObject) */
>
>          Status = AcpiExSystemResetEvent (Operand[0]);
>          break;
>
> -
>      case AML_SIGNAL_OP:     /*  Signal (EventObject) */
>
>          Status = AcpiExSystemSignalEvent (Operand[0]);
>          break;
>
> -
>      case AML_SLEEP_OP:      /*  Sleep (MsecTime) */
>
>          Status = AcpiExSystemDoSleep (Operand[0]->Integer.Value);
>          break;
>
> -
>      case AML_STALL_OP:      /*  Stall (UsecTime) */
>
>          Status = AcpiExSystemDoStall ((UINT32) Operand[0]->Integer.Value);
>          break;
>
> -
>      case AML_UNLOAD_OP:     /*  Unload (Handle) */
>
>          Status = AcpiExUnloadTable (Operand[0]);
>          break;
>
> -
>      default:                /*  Unknown opcode  */
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> @@ -402,7 +396,6 @@ AcpiExOpcode_1A_1T_1R (
>              ReturnDesc->Integer.Value = ~Operand[0]->Integer.Value;
>              break;
>
> -
>          case AML_FIND_SET_LEFT_BIT_OP:  /* FindSetLeftBit (Operand, Result) */
>
>              ReturnDesc->Integer.Value = Operand[0]->Integer.Value;
> @@ -420,7 +413,6 @@ AcpiExOpcode_1A_1T_1R (
>              ReturnDesc->Integer.Value = Temp32;
>              break;
>
> -
>          case AML_FIND_SET_RIGHT_BIT_OP: /* FindSetRightBit (Operand, Result) */
>
>              ReturnDesc->Integer.Value = Operand[0]->Integer.Value;
> @@ -441,9 +433,7 @@ AcpiExOpcode_1A_1T_1R (
>                  Temp32 == 0 ? 0 : (ACPI_INTEGER_BIT_SIZE + 1) - Temp32;
>              break;
>
> -
>          case AML_FROM_BCD_OP:           /* FromBcd (BCDValue, Result)  */
> -
>              /*
>               * The 64-bit ACPI integer can hold 16 4-bit BCD characters
>               * (if table is 32-bit, integer can hold 8 BCD characters)
> @@ -488,7 +478,6 @@ AcpiExOpcode_1A_1T_1R (
>              }
>              break;
>
> -
>          case AML_TO_BCD_OP:             /* ToBcd (Operand, Result)  */
>
>              ReturnDesc->Integer.Value = 0;
> @@ -520,9 +509,7 @@ AcpiExOpcode_1A_1T_1R (
>              }
>              break;
>
> -
>          case AML_COND_REF_OF_OP:        /* CondRefOf (SourceObject, Result)  */
> -
>              /*
>               * This op is a little strange because the internal return value is
>               * different than the return value stored in the result descriptor
> @@ -557,14 +544,14 @@ AcpiExOpcode_1A_1T_1R (
>
>
>          default:
> +
>              /* No other opcodes get here */
> +
>              break;
>          }
>          break;
>
> -
>      case AML_STORE_OP:              /* Store (Source, Target) */
> -
>          /*
>           * A store operand is typically a number, string, buffer or lvalue
>           * Be careful about deleting the source object,
> @@ -591,7 +578,6 @@ AcpiExOpcode_1A_1T_1R (
>          }
>          return_ACPI_STATUS (Status);
>
> -
>      /*
>       * ACPI 2.0 Opcodes
>       */
> @@ -601,7 +587,6 @@ AcpiExOpcode_1A_1T_1R (
>                      WalkState);
>          break;
>
> -
>      case AML_TO_DECSTRING_OP:       /* ToDecimalString (Data, Result) */
>
>          Status = AcpiExConvertToString (Operand[0], &ReturnDesc,
> @@ -613,7 +598,6 @@ AcpiExOpcode_1A_1T_1R (
>          }
>          break;
>
> -
>      case AML_TO_HEXSTRING_OP:       /* ToHexString (Data, Result) */
>
>          Status = AcpiExConvertToString (Operand[0], &ReturnDesc,
> @@ -625,7 +609,6 @@ AcpiExOpcode_1A_1T_1R (
>          }
>          break;
>
> -
>      case AML_TO_BUFFER_OP:          /* ToBuffer (Data, Result) */
>
>          Status = AcpiExConvertToBuffer (Operand[0], &ReturnDesc);
> @@ -636,7 +619,6 @@ AcpiExOpcode_1A_1T_1R (
>          }
>          break;
>
> -
>      case AML_TO_INTEGER_OP:         /* ToInteger (Data, Result) */
>
>          Status = AcpiExConvertToInteger (Operand[0], &ReturnDesc,
> @@ -648,7 +630,6 @@ AcpiExOpcode_1A_1T_1R (
>          }
>          break;
>
> -
>      case AML_SHIFT_LEFT_BIT_OP:     /* ShiftLeftBit (Source, BitNum)  */
>      case AML_SHIFT_RIGHT_BIT_OP:    /* ShiftRightBit (Source, BitNum) */
>
> @@ -660,7 +641,6 @@ AcpiExOpcode_1A_1T_1R (
>          Status = AE_SUPPORT;
>          goto Cleanup;
>
> -
>      default:                        /* Unknown opcode */
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> @@ -748,10 +728,8 @@ AcpiExOpcode_1A_0T_1R (
>          }
>          break;
>
> -
>      case AML_DECREMENT_OP:          /* Decrement (Operand)  */
>      case AML_INCREMENT_OP:          /* Increment (Operand)  */
> -
>          /*
>           * Create a new integer. Can't just get the base integer and
>           * increment it because it may be an Arg or Field.
> @@ -816,9 +794,7 @@ AcpiExOpcode_1A_0T_1R (
>          Status = AcpiExStore (ReturnDesc, Operand[0], WalkState);
>          break;
>
> -
>      case AML_TYPE_OP:               /* ObjectType (SourceObject) */
> -
>          /*
>           * Note: The operand is not resolved at this point because we want to
>           * get the associated object, not its value. For example, we don't
> @@ -844,9 +820,7 @@ AcpiExOpcode_1A_0T_1R (
>          }
>          break;
>
> -
>      case AML_SIZE_OF_OP:            /* SizeOf (SourceObject)  */
> -
>          /*
>           * Note: The operand is not resolved at this point because we want to
>           * get the associated object, not its value.
> @@ -873,10 +847,12 @@ AcpiExOpcode_1A_0T_1R (
>          switch (Type)
>          {
>          case ACPI_TYPE_INTEGER:
> +
>              Value = AcpiGbl_IntegerByteWidth;
>              break;
>
>          case ACPI_TYPE_STRING:
> +
>              Value = TempDesc->String.Length;
>              break;
>
> @@ -897,6 +873,7 @@ AcpiExOpcode_1A_0T_1R (
>              break;
>
>          default:
> +
>              ACPI_ERROR ((AE_INFO,
>                  "Operand must be Buffer/Integer/String/Package - found type %s",
>                  AcpiUtGetTypeName (Type)));
> @@ -1004,9 +981,11 @@ AcpiExOpcode_1A_0T_1R (
>                  break;
>
>              case ACPI_TYPE_STRING:
> +
>                  break;
>
>              default:
> +
>                  Status = AE_AML_OPERAND_TYPE;
>                  goto Cleanup;
>              }
> @@ -1065,7 +1044,6 @@ AcpiExOpcode_1A_0T_1R (
>              switch (Operand[0]->Reference.Class)
>              {
>              case ACPI_REFCLASS_INDEX:
> -
>                  /*
>                   * The target type for the Index operator must be
>                   * either a Buffer or a Package
> @@ -1097,9 +1075,7 @@ AcpiExOpcode_1A_0T_1R (
>                      }
>                      break;
>
> -
>                  case ACPI_TYPE_PACKAGE:
> -
>                      /*
>                       * Return the referenced element of the package. We must
>                       * add another reference to the referenced object, however.
> @@ -1111,7 +1087,6 @@ AcpiExOpcode_1A_0T_1R (
>                      }
>                      break;
>
> -
>                  default:
>
>                      ACPI_ERROR ((AE_INFO,
> @@ -1122,7 +1097,6 @@ AcpiExOpcode_1A_0T_1R (
>                  }
>                  break;
>
> -
>              case ACPI_REFCLASS_REFOF:
>
>                  ReturnDesc = Operand[0]->Reference.Object;
> @@ -1139,8 +1113,8 @@ AcpiExOpcode_1A_0T_1R (
>                  AcpiUtAddReference (ReturnDesc);
>                  break;
>
> -
>              default:
> +
>                  ACPI_ERROR ((AE_INFO,
>                      "Unknown class in reference(%p) - 0x%2.2X",
>                      Operand[0], Operand[0]->Reference.Class));
> @@ -1151,7 +1125,6 @@ AcpiExOpcode_1A_0T_1R (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> diff --git a/src/acpica/source/components/executer/exoparg2.c b/src/acpica/source/components/executer/exoparg2.c
> index c51efb9..77308f1 100644
> --- a/src/acpica/source/components/executer/exoparg2.c
> +++ b/src/acpica/source/components/executer/exoparg2.c
> @@ -216,7 +216,6 @@ AcpiExOpcode_2A_0T_0R (
>          Status = AcpiEvQueueNotifyRequest (Node, Value);
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> @@ -289,7 +288,6 @@ AcpiExOpcode_2A_2T_1R (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> @@ -403,16 +401,13 @@ AcpiExOpcode_2A_1T_1R (
>                                 &ReturnDesc->Integer.Value);
>          break;
>
> -
>      case AML_CONCAT_OP: /* Concatenate (Data1, Data2, Result) */
>
>          Status = AcpiExDoConcatenate (Operand[0], Operand[1],
>                      &ReturnDesc, WalkState);
>          break;
>
> -
>      case AML_TO_STRING_OP: /* ToString (Buffer, Length, Result) (ACPI 2.0) */
> -
>          /*
>           * Input object is guaranteed to be a buffer at this point (it may have
>           * been converted.)  Copy the raw buffer data to a new object of
> @@ -452,7 +447,6 @@ AcpiExOpcode_2A_1T_1R (
>              Operand[0]->Buffer.Pointer, Length);
>          break;
>
> -
>      case AML_CONCAT_RES_OP:
>
>          /* ConcatenateResTemplate (Buffer, Buffer, Result) (ACPI 2.0) */
> @@ -461,7 +455,6 @@ AcpiExOpcode_2A_1T_1R (
>                      &ReturnDesc, WalkState);
>          break;
>
> -
>      case AML_INDEX_OP:              /* Index (Source Index Result) */
>
>          /* Create the internal return object */
> @@ -551,7 +544,6 @@ AcpiExOpcode_2A_1T_1R (
>          WalkState->ResultObj = ReturnDesc;
>          goto Cleanup;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> @@ -674,7 +666,6 @@ AcpiExOpcode_2A_0T_1R (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> diff --git a/src/acpica/source/components/executer/exoparg3.c b/src/acpica/source/components/executer/exoparg3.c
> index 9a049dc..ce88cac 100644
> --- a/src/acpica/source/components/executer/exoparg3.c
> +++ b/src/acpica/source/components/executer/exoparg3.c
> @@ -202,7 +202,6 @@ AcpiExOpcode_3A_0T_0R (
>          ACPI_FREE (Fatal);
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> @@ -249,7 +248,6 @@ AcpiExOpcode_3A_1T_1R (
>      switch (WalkState->Opcode)
>      {
>      case AML_MID_OP:    /* Mid (Source[0], Index[1], Length[2], Result[3]) */
> -
>          /*
>           * Create the return object. The Source operand is guaranteed to be
>           * either a String or a Buffer, so just use its type.
> @@ -341,7 +339,6 @@ AcpiExOpcode_3A_1T_1R (
>          ReturnDesc->Buffer.Flags |= AOPOBJ_DATA_VALID;
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> diff --git a/src/acpica/source/components/executer/exoparg6.c b/src/acpica/source/components/executer/exoparg6.c
> index 45f8450..9d5eacd 100644
> --- a/src/acpica/source/components/executer/exoparg6.c
> +++ b/src/acpica/source/components/executer/exoparg6.c
> @@ -203,7 +203,6 @@ AcpiExDoMatch (
>          break;
>
>      case MATCH_MEQ:
> -
>          /*
>           * True if equal: (P[i] == M)
>           * Change to:     (M == P[i])
> @@ -217,7 +216,6 @@ AcpiExDoMatch (
>          break;
>
>      case MATCH_MLE:
> -
>          /*
>           * True if less than or equal: (P[i] <= M) (P[i] NotGreater than M)
>           * Change to:                  (M >= P[i]) (M NotLess than P[i])
> @@ -232,7 +230,6 @@ AcpiExDoMatch (
>          break;
>
>      case MATCH_MLT:
> -
>          /*
>           * True if less than: (P[i] < M)
>           * Change to:         (M > P[i])
> @@ -246,7 +243,6 @@ AcpiExDoMatch (
>          break;
>
>      case MATCH_MGE:
> -
>          /*
>           * True if greater than or equal: (P[i] >= M) (P[i] NotLess than M)
>           * Change to:                     (M <= P[i]) (M NotGreater than P[i])
> @@ -261,7 +257,6 @@ AcpiExDoMatch (
>          break;
>
>      case MATCH_MGT:
> -
>          /*
>           * True if greater than: (P[i] > M)
>           * Change to:            (M < P[i])
> @@ -401,13 +396,11 @@ AcpiExOpcode_6A_0T_1R (
>          }
>          break;
>
> -
>      case AML_LOAD_TABLE_OP:
>
>          Status = AcpiExLoadTableOp (WalkState, &ReturnDesc);
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown AML opcode 0x%X",
> diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c
> index f2686e1..88dc577 100644
> --- a/src/acpica/source/components/executer/exprep.c
> +++ b/src/acpica/source/components/executer/exprep.c
> @@ -339,26 +339,31 @@ AcpiExDecodeFieldAccess (
>
>      case AML_FIELD_ACCESS_BYTE:
>      case AML_FIELD_ACCESS_BUFFER:   /* ACPI 2.0 (SMBus Buffer) */
> +
>          ByteAlignment = 1;
>          BitLength     = 8;
>          break;
>
>      case AML_FIELD_ACCESS_WORD:
> +
>          ByteAlignment = 2;
>          BitLength     = 16;
>          break;
>
>      case AML_FIELD_ACCESS_DWORD:
> +
>          ByteAlignment = 4;
>          BitLength     = 32;
>          break;
>
>      case AML_FIELD_ACCESS_QWORD:    /* ACPI 2.0 */
> +
>          ByteAlignment = 8;
>          BitLength     = 64;
>          break;
>
>      default:
> +
>          /* Invalid field access type */
>
>          ACPI_ERROR ((AE_INFO,
> @@ -608,7 +613,6 @@ AcpiExPrepFieldValue (
>              ObjDesc->Field.AccessByteWidth, ObjDesc->Field.RegionObj));
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
>
>          ObjDesc->BankField.Value = Info->BankValue;
> @@ -643,7 +647,6 @@ AcpiExPrepFieldValue (
>
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_INDEX_FIELD:
>
>          /* Get the Index and Data registers */
> @@ -697,7 +700,9 @@ AcpiExPrepFieldValue (
>          break;
>
>      default:
> +
>          /* No other types should get here */
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/executer/exregion.c b/src/acpica/source/components/executer/exregion.c
> index bdc2998..e1ebea2 100644
> --- a/src/acpica/source/components/executer/exregion.c
> +++ b/src/acpica/source/components/executer/exregion.c
> @@ -171,22 +171,27 @@ AcpiExSystemMemorySpaceHandler (
>      switch (BitWidth)
>      {
>      case 8:
> +
>          Length = 1;
>          break;
>
>      case 16:
> +
>          Length = 2;
>          break;
>
>      case 32:
> +
>          Length = 4;
>          break;
>
>      case 64:
> +
>          Length = 8;
>          break;
>
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "Invalid SystemMemory width %u",
>              BitWidth));
>          return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
> @@ -303,23 +308,29 @@ AcpiExSystemMemorySpaceHandler (
>          switch (BitWidth)
>          {
>          case 8:
> +
>              *Value = (UINT64) ACPI_GET8 (LogicalAddrPtr);
>              break;
>
>          case 16:
> +
>              *Value = (UINT64) ACPI_GET16 (LogicalAddrPtr);
>              break;
>
>          case 32:
> +
>              *Value = (UINT64) ACPI_GET32 (LogicalAddrPtr);
>              break;
>
>          case 64:
> +
>              *Value = (UINT64) ACPI_GET64 (LogicalAddrPtr);
>              break;
>
>          default:
> +
>              /* BitWidth was already validated */
> +
>              break;
>          }
>          break;
> @@ -329,28 +340,35 @@ AcpiExSystemMemorySpaceHandler (
>          switch (BitWidth)
>          {
>          case 8:
> +
>              ACPI_SET8 (LogicalAddrPtr, *Value);
>              break;
>
>          case 16:
> +
>              ACPI_SET16 (LogicalAddrPtr, *Value);
>              break;
>
>          case 32:
> +
>              ACPI_SET32 (LogicalAddrPtr, *Value);
>              break;
>
>          case 64:
> +
>              ACPI_SET64 (LogicalAddrPtr, *Value);
>              break;
>
>          default:
> +
>              /* BitWidth was already validated */
> +
>              break;
>          }
>          break;
>
>      default:
> +
>          Status = AE_BAD_PARAMETER;
>          break;
>      }
> @@ -415,6 +433,7 @@ AcpiExSystemIoSpaceHandler (
>          break;
>
>      default:
> +
>          Status = AE_BAD_PARAMETER;
>          break;
>      }
> diff --git a/src/acpica/source/components/executer/exresnte.c b/src/acpica/source/components/executer/exresnte.c
> index 0d83cca..3c0565c 100644
> --- a/src/acpica/source/components/executer/exresnte.c
> +++ b/src/acpica/source/components/executer/exresnte.c
> @@ -236,7 +236,6 @@ AcpiExResolveNodeToValue (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          if (SourceDesc->Common.Type != ACPI_TYPE_BUFFER)
> @@ -256,7 +255,6 @@ AcpiExResolveNodeToValue (
>          }
>          break;
>
> -
>      case ACPI_TYPE_STRING:
>
>          if (SourceDesc->Common.Type != ACPI_TYPE_STRING)
> @@ -272,7 +270,6 @@ AcpiExResolveNodeToValue (
>          AcpiUtAddReference (ObjDesc);
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          if (SourceDesc->Common.Type != ACPI_TYPE_INTEGER)
> @@ -288,7 +285,6 @@ AcpiExResolveNodeToValue (
>          AcpiUtAddReference (ObjDesc);
>          break;
>
> -
>      case ACPI_TYPE_BUFFER_FIELD:
>      case ACPI_TYPE_LOCAL_REGION_FIELD:
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
> @@ -324,7 +320,6 @@ AcpiExResolveNodeToValue (
>
>          return_ACPI_STATUS (AE_AML_OPERAND_TYPE);  /* Cannot be AE_TYPE */
>
> -
>      case ACPI_TYPE_LOCAL_REFERENCE:
>
>          switch (SourceDesc->Reference.Class)
> @@ -340,6 +335,7 @@ AcpiExResolveNodeToValue (
>              break;
>
>          default:
> +
>              /* No named references are allowed here */
>
>              ACPI_ERROR ((AE_INFO,
> @@ -350,7 +346,6 @@ AcpiExResolveNodeToValue (
>          }
>          break;
>
> -
>      default:
>
>          /* Default case is for unknown types */
> diff --git a/src/acpica/source/components/executer/exresolv.c b/src/acpica/source/components/executer/exresolv.c
> index 1d9a6af..c35150a 100644
> --- a/src/acpica/source/components/executer/exresolv.c
> +++ b/src/acpica/source/components/executer/exresolv.c
> @@ -248,7 +248,6 @@ AcpiExResolveObjectToValue (
>          {
>          case ACPI_REFCLASS_LOCAL:
>          case ACPI_REFCLASS_ARG:
> -
>              /*
>               * Get the local from the method's state info
>               * Note: this increments the local's object reference count
> @@ -271,7 +270,6 @@ AcpiExResolveObjectToValue (
>              *StackPtr = ObjDesc;
>              break;
>
> -
>          case ACPI_REFCLASS_INDEX:
>
>              switch (StackDesc->Reference.TargetType)
> @@ -281,7 +279,6 @@ AcpiExResolveObjectToValue (
>                  /* Just return - do not dereference */
>                  break;
>
> -
>              case ACPI_TYPE_PACKAGE:
>
>                  /* If method call or CopyObject - do not dereference */
> @@ -319,7 +316,6 @@ AcpiExResolveObjectToValue (
>                  }
>                  break;
>
> -
>              default:
>
>                  /* Invalid reference object */
> @@ -332,7 +328,6 @@ AcpiExResolveObjectToValue (
>              }
>              break;
>
> -
>          case ACPI_REFCLASS_REFOF:
>          case ACPI_REFCLASS_DEBUG:
>          case ACPI_REFCLASS_TABLE:
> @@ -372,19 +367,16 @@ AcpiExResolveObjectToValue (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          Status = AcpiDsGetBufferArguments (StackDesc);
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
>
>          Status = AcpiDsGetPackageArguments (StackDesc);
>          break;
>
> -
>      case ACPI_TYPE_BUFFER_FIELD:
>      case ACPI_TYPE_LOCAL_REGION_FIELD:
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
> @@ -402,6 +394,7 @@ AcpiExResolveObjectToValue (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -446,10 +439,12 @@ AcpiExResolveMultiple (
>      switch (ACPI_GET_DESCRIPTOR_TYPE (ObjDesc))
>      {
>      case ACPI_DESC_TYPE_OPERAND:
> +
>          Type = ObjDesc->Common.Type;
>          break;
>
>      case ACPI_DESC_TYPE_NAMED:
> +
>          Type = ((ACPI_NAMESPACE_NODE *) ObjDesc)->Type;
>          ObjDesc = AcpiNsGetAttachedObject ((ACPI_NAMESPACE_NODE *) ObjDesc);
>
> @@ -526,7 +521,6 @@ AcpiExResolveMultiple (
>              }
>              break;
>
> -
>          case ACPI_REFCLASS_INDEX:
>
>              /* Get the type of this reference (index into another object) */
> @@ -554,13 +548,11 @@ AcpiExResolveMultiple (
>              }
>              break;
>
> -
>          case ACPI_REFCLASS_TABLE:
>
>              Type = ACPI_TYPE_DDB_HANDLE;
>              goto Exit;
>
> -
>          case ACPI_REFCLASS_LOCAL:
>          case ACPI_REFCLASS_ARG:
>
> @@ -592,7 +584,6 @@ AcpiExResolveMultiple (
>              }
>              break;
>
> -
>          case ACPI_REFCLASS_DEBUG:
>
>              /* The Debug Object is of type "DebugObject" */
> @@ -600,7 +591,6 @@ AcpiExResolveMultiple (
>              Type = ACPI_TYPE_DEBUG_OBJECT;
>              goto Exit;
>
> -
>          default:
>
>              ACPI_ERROR ((AE_INFO,
> @@ -636,7 +626,9 @@ Exit:
>          break;
>
>      default:
> +
>          /* No change to Type required */
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/executer/exresop.c b/src/acpica/source/components/executer/exresop.c
> index 2741bc2..f0705f0 100644
> --- a/src/acpica/source/components/executer/exresop.c
> +++ b/src/acpica/source/components/executer/exresop.c
> @@ -296,7 +296,6 @@ AcpiExResolveOperands (
>              }
>              break;
>
> -
>          case ACPI_DESC_TYPE_OPERAND:
>
>              /* ACPI internal object */
> @@ -349,7 +348,6 @@ AcpiExResolveOperands (
>              }
>              break;
>
> -
>          default:
>
>              /* Invalid descriptor */
> @@ -396,7 +394,6 @@ AcpiExResolveOperands (
>          case ARGI_TARGETREF:     /* Allows implicit conversion rules before store */
>          case ARGI_FIXED_TARGET:  /* No implicit conversion before store to target */
>          case ARGI_SIMPLE_TARGET: /* Name, Local, or Arg - no implicit conversion  */
> -
>              /*
>               * Need an operand of type ACPI_TYPE_LOCAL_REFERENCE
>               * A Namespace Node is OK as-is
> @@ -414,9 +411,7 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_DATAREFOBJ:  /* Store operator only */
> -
>              /*
>               * We don't want to resolve IndexOp reference objects during
>               * a store because this would be an implicit DeRefOf operation.
> @@ -432,7 +427,9 @@ AcpiExResolveOperands (
>              break;
>
>          default:
> +
>              /* All cases covered above */
> +
>              break;
>          }
>
> @@ -525,9 +522,7 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_BUFFER:
> -
>              /*
>               * Need an operand of type ACPI_TYPE_BUFFER,
>               * But we can implicitly convert from a STRING or INTEGER
> @@ -554,9 +549,7 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_STRING:
> -
>              /*
>               * Need an operand of type ACPI_TYPE_STRING,
>               * But we can implicitly convert from a BUFFER or INTEGER
> @@ -584,7 +577,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_COMPUTEDATA:
>
>              /* Need an operand of type INTEGER, STRING or BUFFER */
> @@ -607,7 +599,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_BUFFER_OR_STRING:
>
>              /* Need an operand of type STRING or BUFFER */
> @@ -645,7 +636,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_DATAOBJECT:
>              /*
>               * ARGI_DATAOBJECT is only used by the SizeOf operator.
> @@ -665,6 +655,7 @@ AcpiExResolveOperands (
>                  break;
>
>              default:
> +
>                  ACPI_ERROR ((AE_INFO,
>                      "Needed [Buffer/String/Package/Reference], found [%s] %p",
>                      AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
> @@ -673,7 +664,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_COMPLEXOBJ:
>
>              /* Need a buffer or package or (ACPI 2.0) String */
> @@ -688,6 +678,7 @@ AcpiExResolveOperands (
>                  break;
>
>              default:
> +
>                  ACPI_ERROR ((AE_INFO,
>                      "Needed [Buffer/String/Package], found [%s] %p",
>                      AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
> @@ -696,7 +687,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          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) */
> @@ -710,6 +700,7 @@ AcpiExResolveOperands (
>                  break;
>
>              default:
> +
>                  ACPI_ERROR ((AE_INFO,
>                      "Needed [Region/Buffer], found [%s] %p",
>                      AcpiUtGetObjectTypeName (ObjDesc), ObjDesc));
> @@ -718,7 +709,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          case ARGI_DATAREFOBJ:
>
>              /* Used by the Store() operator only */
> @@ -766,7 +756,6 @@ AcpiExResolveOperands (
>              }
>              goto NextOperand;
>
> -
>          default:
>
>              /* Unknown type */
> diff --git a/src/acpica/source/components/executer/exstore.c b/src/acpica/source/components/executer/exstore.c
> index 47eaddf..4f50aa3 100644
> --- a/src/acpica/source/components/executer/exstore.c
> +++ b/src/acpica/source/components/executer/exstore.c
> @@ -196,6 +196,7 @@ AcpiExStore (
>      switch (DestDesc->Common.Type)
>      {
>      case ACPI_TYPE_LOCAL_REFERENCE:
> +
>          break;
>
>      case ACPI_TYPE_INTEGER:
> @@ -239,7 +240,6 @@ AcpiExStore (
>                      WalkState, ACPI_IMPLICIT_CONVERSION);
>          break;
>
> -
>      case ACPI_REFCLASS_INDEX:
>
>          /* Storing to an Index (pointer into a packager or buffer) */
> @@ -247,7 +247,6 @@ AcpiExStore (
>          Status = AcpiExStoreObjectToIndex (SourceDesc, RefDesc, WalkState);
>          break;
>
> -
>      case ACPI_REFCLASS_LOCAL:
>      case ACPI_REFCLASS_ARG:
>
> @@ -257,9 +256,7 @@ AcpiExStore (
>                      RefDesc->Reference.Value, SourceDesc, WalkState);
>          break;
>
> -
>      case ACPI_REFCLASS_DEBUG:
> -
>          /*
>           * Storing to the Debug object causes the value stored to be
>           * displayed and otherwise has no effect -- see ACPI Specification
> @@ -271,7 +268,6 @@ AcpiExStore (
>          ACPI_DEBUG_OBJECT (SourceDesc, 0, 0);
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Unknown Reference Class 0x%2.2X",
> @@ -380,9 +376,7 @@ AcpiExStoreObjectToIndex (
>
>          break;
>
> -
>      case ACPI_TYPE_BUFFER_FIELD:
> -
>          /*
>           * Store into a Buffer or String (not actually a real BufferField)
>           * at a location defined by an Index.
> @@ -440,7 +434,6 @@ AcpiExStoreObjectToIndex (
>          ObjDesc->Buffer.Pointer[IndexDesc->Reference.Value] = Value;
>          break;
>
> -
>      default:
>          ACPI_ERROR ((AE_INFO,
>              "Target is not a Package or BufferField"));
> @@ -545,11 +538,9 @@ AcpiExStoreObjectToNode (
>                      &WalkState->ResultObj);
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>      case ACPI_TYPE_STRING:
>      case ACPI_TYPE_BUFFER:
> -
>          /*
>           * These target types are all of type Integer/String/Buffer, and
>           * therefore support implicit conversion before the store.
> @@ -583,7 +574,6 @@ AcpiExStoreObjectToNode (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
> diff --git a/src/acpica/source/components/executer/exstoren.c b/src/acpica/source/components/executer/exstoren.c
> index 082f3db..b3d7845 100644
> --- a/src/acpica/source/components/executer/exstoren.c
> +++ b/src/acpica/source/components/executer/exstoren.c
> @@ -166,11 +166,9 @@ AcpiExResolveObject (
>           * These cases all require only Integers or values that
>           * can be converted to Integers (Strings or Buffers)
>           */
> -
>      case ACPI_TYPE_INTEGER:
>      case ACPI_TYPE_STRING:
>      case ACPI_TYPE_BUFFER:
> -
>          /*
>           * Stores into a Field/Region or into a Integer/Buffer/String
>           * are all essentially the same. This case handles the
> @@ -212,10 +210,8 @@ AcpiExResolveObject (
>          }
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_ALIAS:
>      case ACPI_TYPE_LOCAL_METHOD_ALIAS:
> -
>          /*
>           * All aliases should have been resolved earlier, during the
>           * operand resolution phase.
> @@ -224,10 +220,8 @@ AcpiExResolveObject (
>          Status = AE_AML_INTERNAL;
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
>      default:
> -
>          /*
>           * All other types than Alias and the various Fields come here,
>           * including the untyped case - ACPI_TYPE_ANY.
> diff --git a/src/acpica/source/components/hardware/hwacpi.c b/src/acpica/source/components/hardware/hwacpi.c
> index 8c79574..9bef5e9 100644
> --- a/src/acpica/source/components/hardware/hwacpi.c
> +++ b/src/acpica/source/components/hardware/hwacpi.c
> @@ -192,7 +192,6 @@ AcpiHwSetMode (
>          break;
>
>      case ACPI_SYS_MODE_LEGACY:
> -
>          /*
>           * BIOS should clear all fixed status bits and restore fixed event
>           * enable bits to default
> @@ -204,6 +203,7 @@ AcpiHwSetMode (
>          break;
>
>      default:
> +
>          return_ACPI_STATUS (AE_BAD_PARAMETER);
>      }
>
> diff --git a/src/acpica/source/components/hardware/hwgpe.c b/src/acpica/source/components/hardware/hwgpe.c
> index a15a811..118b985 100644
> --- a/src/acpica/source/components/hardware/hwgpe.c
> +++ b/src/acpica/source/components/hardware/hwgpe.c
> @@ -214,14 +214,17 @@ AcpiHwLowSetGpe (
>          /*lint -fallthrough */
>
>      case ACPI_GPE_ENABLE:
> +
>          ACPI_SET_BIT (EnableMask, RegisterBit);
>          break;
>
>      case ACPI_GPE_DISABLE:
> +
>          ACPI_CLEAR_BIT (EnableMask, RegisterBit);
>          break;
>
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "Invalid GPE Action, %u", Action));
>          return (AE_BAD_PARAMETER);
>      }
> diff --git a/src/acpica/source/components/hardware/hwregs.c b/src/acpica/source/components/hardware/hwregs.c
> index be30a09..84895be 100644
> --- a/src/acpica/source/components/hardware/hwregs.c
> +++ b/src/acpica/source/components/hardware/hwregs.c
> @@ -502,7 +502,6 @@ AcpiHwRegisterRead (
>                      &AcpiGbl_XPm1bStatus);
>          break;
>
> -
>      case ACPI_REGISTER_PM1_ENABLE:           /* PM1 A/B: 16-bit access each */
>
>          Status = AcpiHwReadMultiple (&Value,
> @@ -510,7 +509,6 @@ AcpiHwRegisterRead (
>                      &AcpiGbl_XPm1bEnable);
>          break;
>
> -
>      case ACPI_REGISTER_PM1_CONTROL:          /* PM1 A/B: 16-bit access each */
>
>          Status = AcpiHwReadMultiple (&Value,
> @@ -525,26 +523,23 @@ AcpiHwRegisterRead (
>          Value &= ~ACPI_PM1_CONTROL_WRITEONLY_BITS;
>          break;
>
> -
>      case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */
>
>          Status = AcpiHwRead (&Value, &AcpiGbl_FADT.XPm2ControlBlock);
>          break;
>
> -
>      case ACPI_REGISTER_PM_TIMER:             /* 32-bit access */
>
>          Status = AcpiHwRead (&Value, &AcpiGbl_FADT.XPmTimerBlock);
>          break;
>
> -
>      case ACPI_REGISTER_SMI_COMMAND_BLOCK:    /* 8-bit access */
>
>          Status = AcpiHwReadPort (AcpiGbl_FADT.SmiCommand, &Value, 8);
>          break;
>
> -
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "Unknown Register ID: 0x%X",
>              RegisterId));
>          Status = AE_BAD_PARAMETER;
> @@ -618,7 +613,6 @@ AcpiHwRegisterWrite (
>                      &AcpiGbl_XPm1bStatus);
>          break;
>
> -
>      case ACPI_REGISTER_PM1_ENABLE:           /* PM1 A/B: 16-bit access each */
>
>          Status = AcpiHwWriteMultiple (Value,
> @@ -626,9 +620,7 @@ AcpiHwRegisterWrite (
>                      &AcpiGbl_XPm1bEnable);
>          break;
>
> -
>      case ACPI_REGISTER_PM1_CONTROL:          /* PM1 A/B: 16-bit access each */
> -
>          /*
>           * Perform a read first to preserve certain bits (per ACPI spec)
>           * Note: This includes SCI_EN, we never want to change this bit
> @@ -652,9 +644,7 @@ AcpiHwRegisterWrite (
>                      &AcpiGbl_FADT.XPm1bControlBlock);
>          break;
>
> -
>      case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */
> -
>          /*
>           * For control registers, all reserved bits must be preserved,
>           * as per the ACPI spec.
> @@ -672,13 +662,11 @@ AcpiHwRegisterWrite (
>          Status = AcpiHwWrite (Value, &AcpiGbl_FADT.XPm2ControlBlock);
>          break;
>
> -
>      case ACPI_REGISTER_PM_TIMER:             /* 32-bit access */
>
>          Status = AcpiHwWrite (Value, &AcpiGbl_FADT.XPmTimerBlock);
>          break;
>
> -
>      case ACPI_REGISTER_SMI_COMMAND_BLOCK:    /* 8-bit access */
>
>          /* SMI_CMD is currently always in IO space */
> @@ -686,8 +674,8 @@ AcpiHwRegisterWrite (
>          Status = AcpiHwWritePort (AcpiGbl_FADT.SmiCommand, Value, 8);
>          break;
>
> -
>      default:
> +
>          ACPI_ERROR ((AE_INFO, "Unknown Register ID: 0x%X",
>              RegisterId));
>          Status = AE_BAD_PARAMETER;
> diff --git a/src/acpica/source/components/hardware/hwxface.c b/src/acpica/source/components/hardware/hwxface.c
> index 74aed55..61a96de 100644
> --- a/src/acpica/source/components/hardware/hwxface.c
> +++ b/src/acpica/source/components/hardware/hwxface.c
> @@ -664,10 +664,12 @@ AcpiGetSleepTypeData (
>      switch (Info->ReturnObject->Package.Count)
>      {
>      case 0:
> +
>          Status = AE_AML_PACKAGE_LIMIT;
>          break;
>
>      case 1:
> +
>          if (Elements[0]->Common.Type != ACPI_TYPE_INTEGER)
>          {
>              Status = AE_AML_OPERAND_TYPE;
> @@ -682,6 +684,7 @@ AcpiGetSleepTypeData (
>
>      case 2:
>      default:
> +
>          if ((Elements[0]->Common.Type != ACPI_TYPE_INTEGER) ||
>              (Elements[1]->Common.Type != ACPI_TYPE_INTEGER))
>          {
> diff --git a/src/acpica/source/components/hardware/hwxfsleep.c b/src/acpica/source/components/hardware/hwxfsleep.c
> index 1a7abc4..b5ae313 100644
> --- a/src/acpica/source/components/hardware/hwxfsleep.c
> +++ b/src/acpica/source/components/hardware/hwxfsleep.c
> @@ -339,13 +339,14 @@ AcpiHwSleepDispatch (
>
>
>  #if (!ACPI_REDUCED_HARDWARE)
> -
>      /*
>       * If the Hardware Reduced flag is set (from the FADT), we must
> -     * use the extended sleep registers
> +     * use the extended sleep registers (FADT). Note: As per the ACPI
> +     * specification, these extended registers are to be used for HW-reduced
> +     * platforms only. They are not general-purpose replacements for the
> +     * legacy PM register sleep support.
>       */
> -    if (AcpiGbl_ReducedHardware ||
> -        AcpiGbl_FADT.SleepControl.Address)
> +    if (AcpiGbl_ReducedHardware)
>      {
>          Status = SleepFunctions->ExtendedFunction (SleepState);
>      }
> @@ -423,20 +424,24 @@ AcpiEnterSleepStatePrep (
>      switch (SleepState)
>      {
>      case ACPI_STATE_S0:
> +
>          SstValue = ACPI_SST_WORKING;
>          break;
>
>      case ACPI_STATE_S1:
>      case ACPI_STATE_S2:
>      case ACPI_STATE_S3:
> +
>          SstValue = ACPI_SST_SLEEPING;
>          break;
>
>      case ACPI_STATE_S4:
> +
>          SstValue = ACPI_SST_SLEEP_CONTEXT;
>          break;
>
>      default:
> +
>          SstValue = ACPI_SST_INDICATOR_OFF; /* Default is off */
>          break;
>      }
> diff --git a/src/acpica/source/components/namespace/nsaccess.c b/src/acpica/source/components/namespace/nsaccess.c
> index dfc40b1..c09e11b 100644
> --- a/src/acpica/source/components/namespace/nsaccess.c
> +++ b/src/acpica/source/components/namespace/nsaccess.c
> @@ -239,6 +239,7 @@ AcpiNsRootInitialize (
>              switch (InitVal->Type)
>              {
>              case ACPI_TYPE_METHOD:
> +
>                  ObjDesc->Method.ParamCount = (UINT8) ACPI_TO_INTEGER (Val);
>                  ObjDesc->Common.Flags |= AOPOBJ_DATA_VALID;
>
> @@ -260,7 +261,6 @@ AcpiNsRootInitialize (
>                  ObjDesc->Integer.Value = ACPI_TO_INTEGER (Val);
>                  break;
>
> -
>              case ACPI_TYPE_STRING:
>
>                  /* Build an object around the static string */
> @@ -270,7 +270,6 @@ AcpiNsRootInitialize (
>                  ObjDesc->Common.Flags |= AOPOBJ_STATIC_POINTER;
>                  break;
>
> -
>              case ACPI_TYPE_MUTEX:
>
>                  ObjDesc->Mutex.Node = NewNode;
> @@ -303,7 +302,6 @@ AcpiNsRootInitialize (
>                  }
>                  break;
>
> -
>              default:
>
>                  ACPI_ERROR ((AE_INFO, "Unsupported initial type value 0x%X",
> diff --git a/src/acpica/source/components/namespace/nsconvert.c b/src/acpica/source/components/namespace/nsconvert.c
> index fa6c36c..cacd78d 100644
> --- a/src/acpica/source/components/namespace/nsconvert.c
> +++ b/src/acpica/source/components/namespace/nsconvert.c
> @@ -183,6 +183,7 @@ AcpiNsConvertToInteger (
>          break;
>
>      default:
> +
>          return (AE_AML_OPERAND_TYPE);
>      }
>
> @@ -280,6 +281,7 @@ AcpiNsConvertToString (
>          break;
>
>      default:
> +
>          return (AE_AML_OPERAND_TYPE);
>      }
>
> @@ -389,6 +391,7 @@ AcpiNsConvertToBuffer (
>          break;
>
>      default:
> +
>          return (AE_AML_OPERAND_TYPE);
>      }
>
> diff --git a/src/acpica/source/components/namespace/nsdump.c b/src/acpica/source/components/namespace/nsdump.c
> index 045618c..45f009d 100644
> --- a/src/acpica/source/components/namespace/nsdump.c
> +++ b/src/acpica/source/components/namespace/nsdump.c
> @@ -355,10 +355,12 @@ AcpiNsDumpOneObject (
>              case ACPI_TYPE_BUFFER:
>              case ACPI_TYPE_STRING:
>              case ACPI_TYPE_METHOD:
> +
>                  AcpiOsPrintf ("<No attached object>");
>                  break;
>
>              default:
> +
>                  break;
>              }
>
> @@ -375,13 +377,11 @@ AcpiNsDumpOneObject (
>                  ACPI_CAST_PTR (void, ObjDesc->Processor.Address));
>              break;
>
> -
>          case ACPI_TYPE_DEVICE:
>
>              AcpiOsPrintf ("Notify Object: %p\n", ObjDesc);
>              break;
>
> -
>          case ACPI_TYPE_METHOD:
>
>              AcpiOsPrintf ("Args %X Len %.4X Aml %p\n",
> @@ -389,14 +389,12 @@ AcpiNsDumpOneObject (
>                  ObjDesc->Method.AmlLength, ObjDesc->Method.AmlStart);
>              break;
>
> -
>          case ACPI_TYPE_INTEGER:
>
>              AcpiOsPrintf ("= %8.8X%8.8X\n",
>                  ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
>              break;
>
> -
>          case ACPI_TYPE_PACKAGE:
>
>              if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
> @@ -410,7 +408,6 @@ AcpiNsDumpOneObject (
>              }
>              break;
>
> -
>          case ACPI_TYPE_BUFFER:
>
>              if (ObjDesc->Common.Flags & AOPOBJ_DATA_VALID)
> @@ -436,7 +433,6 @@ AcpiNsDumpOneObject (
>              }
>              break;
>
> -
>          case ACPI_TYPE_STRING:
>
>              AcpiOsPrintf ("Len %.2X ", ObjDesc->String.Length);
> @@ -444,7 +440,6 @@ AcpiNsDumpOneObject (
>              AcpiOsPrintf ("\n");
>              break;
>
> -
>          case ACPI_TYPE_REGION:
>
>              AcpiOsPrintf ("[%s]",
> @@ -461,13 +456,11 @@ AcpiNsDumpOneObject (
>              }
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_REFERENCE:
>
>              AcpiOsPrintf ("[%s]\n", AcpiUtGetReferenceName (ObjDesc));
>              break;
>
> -
>          case ACPI_TYPE_BUFFER_FIELD:
>
>              if (ObjDesc->BufferField.BufferObj &&
> @@ -479,7 +472,6 @@ AcpiNsDumpOneObject (
>              }
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_REGION_FIELD:
>
>              AcpiOsPrintf ("Rgn [%4.4s]",
> @@ -487,7 +479,6 @@ AcpiNsDumpOneObject (
>                      ObjDesc->CommonField.RegionObj->Region.Node));
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_BANK_FIELD:
>
>              AcpiOsPrintf ("Rgn [%4.4s] Bnk [%4.4s]",
> @@ -497,7 +488,6 @@ AcpiNsDumpOneObject (
>                      ObjDesc->BankField.BankObj->CommonField.Node));
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_INDEX_FIELD:
>
>              AcpiOsPrintf ("Idx [%4.4s] Dat [%4.4s]",
> @@ -507,7 +497,6 @@ AcpiNsDumpOneObject (
>                      ObjDesc->IndexField.DataObj->CommonField.Node));
>              break;
>
> -
>          case ACPI_TYPE_LOCAL_ALIAS:
>          case ACPI_TYPE_LOCAL_METHOD_ALIAS:
>
> @@ -538,11 +527,11 @@ AcpiNsDumpOneObject (
>              break;
>
>          default:
> +
>              break;
>          }
>          break;
>
> -
>      case ACPI_DISPLAY_OBJECTS:
>
>          AcpiOsPrintf ("O:%p", ObjDesc);
> @@ -591,7 +580,6 @@ AcpiNsDumpOneObject (
>          }
>          break;
>
> -
>      default:
>          AcpiOsPrintf ("\n");
>          break;
> @@ -678,30 +666,37 @@ AcpiNsDumpOneObject (
>              goto Cleanup;
>
>          case ACPI_TYPE_BUFFER_FIELD:
> +
>              ObjDesc = (ACPI_OPERAND_OBJECT *) ObjDesc->BufferField.BufferObj;
>              break;
>
>          case ACPI_TYPE_PACKAGE:
> +
>              ObjDesc = (void *) ObjDesc->Package.Elements;
>              break;
>
>          case ACPI_TYPE_METHOD:
> +
>              ObjDesc = (void *) ObjDesc->Method.AmlStart;
>              break;
>
>          case ACPI_TYPE_LOCAL_REGION_FIELD:
> +
>              ObjDesc = (void *) ObjDesc->Field.RegionObj;
>              break;
>
>          case ACPI_TYPE_LOCAL_BANK_FIELD:
> +
>              ObjDesc = (void *) ObjDesc->BankField.RegionObj;
>              break;
>
>          case ACPI_TYPE_LOCAL_INDEX_FIELD:
> +
>              ObjDesc = (void *) ObjDesc->IndexField.IndexObj;
>              break;
>
>          default:
> +
>              goto Cleanup;
>          }
>
> diff --git a/src/acpica/source/components/namespace/nsinit.c b/src/acpica/source/components/namespace/nsinit.c
> index e6b9d43..8619d68 100644
> --- a/src/acpica/source/components/namespace/nsinit.c
> +++ b/src/acpica/source/components/namespace/nsinit.c
> @@ -368,28 +368,34 @@ AcpiNsInitOneObject (
>      switch (Type)
>      {
>      case ACPI_TYPE_REGION:
> +
>          Info->OpRegionCount++;
>          break;
>
>      case ACPI_TYPE_BUFFER_FIELD:
> +
>          Info->FieldCount++;
>          break;
>
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
> +
>          Info->FieldCount++;
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          Info->BufferCount++;
>          break;
>
>      case ACPI_TYPE_PACKAGE:
> +
>          Info->PackageCount++;
>          break;
>
>      default:
>
>          /* No init required, just exit now */
> +
>          return (AE_OK);
>      }
>
> @@ -441,7 +447,9 @@ AcpiNsInitOneObject (
>          break;
>
>      default:
> +
>          /* No other types can get here */
> +
>          break;
>      }
>
> @@ -528,6 +536,7 @@ AcpiNsFindIniMethods (
>          break;
>
>      default:
> +
>          break;
>      }
>
> @@ -681,6 +690,7 @@ AcpiNsInitOneDevice (
>      ACPI_DEBUG_EXEC (AcpiUtDisplayInitPathname (
>          ACPI_TYPE_METHOD, DeviceNode, METHOD_NAME__INI));
>
> +    ACPI_MEMSET (Info, 0, sizeof (ACPI_EVALUATE_INFO));
>      Info->PrefixNode = DeviceNode;
>      Info->RelativePathname = METHOD_NAME__INI;
>      Info->Parameters = NULL;
> diff --git a/src/acpica/source/components/namespace/nspredef.c b/src/acpica/source/components/namespace/nspredef.c
> index 15a7cf7..941c3bd 100644
> --- a/src/acpica/source/components/namespace/nspredef.c
> +++ b/src/acpica/source/components/namespace/nspredef.c
> @@ -247,7 +247,13 @@ AcpiNsCheckReturnValue (
>          Status = AcpiNsCheckPackage (Info, ReturnObjectPtr);
>          if (ACPI_FAILURE (Status))
>          {
> -            goto Exit;
> +            /* We might be able to fix some errors */
> +
> +            if ((Status != AE_AML_OPERAND_TYPE) &&
> +                (Status != AE_AML_OPERAND_VALUE))
> +            {
> +                goto Exit;
> +            }
>          }
>      }
>
> @@ -449,26 +455,32 @@ AcpiNsGetBitmappedType (
>      switch (ReturnObject->Common.Type)
>      {
>      case ACPI_TYPE_INTEGER:
> +
>          ReturnBtype = ACPI_RTYPE_INTEGER;
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          ReturnBtype = ACPI_RTYPE_BUFFER;
>          break;
>
>      case ACPI_TYPE_STRING:
> +
>          ReturnBtype = ACPI_RTYPE_STRING;
>          break;
>
>      case ACPI_TYPE_PACKAGE:
> +
>          ReturnBtype = ACPI_RTYPE_PACKAGE;
>          break;
>
>      case ACPI_TYPE_LOCAL_REFERENCE:
> +
>          ReturnBtype = ACPI_RTYPE_REFERENCE;
>          break;
>
>      default:
> +
>          /* Not one of the supported objects, must be incorrect */
>
>          ReturnBtype = ACPI_RTYPE_ANY;
> diff --git a/src/acpica/source/components/namespace/nsprepkg.c b/src/acpica/source/components/namespace/nsprepkg.c
> index d766e3a..f199053 100644
> --- a/src/acpica/source/components/namespace/nsprepkg.c
> +++ b/src/acpica/source/components/namespace/nsprepkg.c
> @@ -221,7 +221,6 @@ AcpiNsCheckPackage (
>      switch (Package->RetInfo.Type)
>      {
>      case ACPI_PTYPE1_FIXED:
> -
>          /*
>           * The package count is fixed and there are no sub-packages
>           *
> @@ -248,9 +247,7 @@ AcpiNsCheckPackage (
>                      Package->RetInfo.ObjectType2, Package->RetInfo.Count2, 0);
>          break;
>
> -
>      case ACPI_PTYPE1_VAR:
> -
>          /*
>           * The package count is variable, there are no sub-packages, and all
>           * elements must be of the same type
> @@ -267,9 +264,7 @@ AcpiNsCheckPackage (
>          }
>          break;
>
> -
>      case ACPI_PTYPE1_OPTION:
> -
>          /*
>           * The package count is variable, there are no sub-packages. There are
>           * a fixed number of required elements, and a variable number of
> @@ -313,7 +308,6 @@ AcpiNsCheckPackage (
>          }
>          break;
>
> -
>      case ACPI_PTYPE2_REV_FIXED:
>
>          /* First element is the (Integer) revision */
> @@ -333,7 +327,6 @@ AcpiNsCheckPackage (
>          Status = AcpiNsCheckPackageList (Info, Package, Elements, Count);
>          break;
>
> -
>      case ACPI_PTYPE2_PKG_COUNT:
>
>          /* First element is the (Integer) count of sub-packages to follow */
> @@ -363,13 +356,11 @@ AcpiNsCheckPackage (
>          Status = AcpiNsCheckPackageList (Info, Package, Elements, Count);
>          break;
>
> -
>      case ACPI_PTYPE2:
>      case ACPI_PTYPE2_FIXED:
>      case ACPI_PTYPE2_MIN:
>      case ACPI_PTYPE2_COUNT:
>      case ACPI_PTYPE2_FIX_VAR:
> -
>          /*
>           * These types all return a single Package that consists of a
>           * variable number of sub-Packages.
> @@ -402,7 +393,6 @@ AcpiNsCheckPackage (
>          Status = AcpiNsCheckPackageList (Info, Package, Elements, Count);
>          break;
>
> -
>      default:
>
>          /* Should not get here if predefined info table is correct */
> @@ -510,7 +500,6 @@ AcpiNsCheckPackageList (
>              }
>              break;
>
> -
>          case ACPI_PTYPE2_FIX_VAR:
>              /*
>               * Each subpackage has a fixed number of elements and an
> @@ -533,7 +522,6 @@ AcpiNsCheckPackageList (
>              }
>              break;
>
> -
>          case ACPI_PTYPE2_FIXED:
>
>              /* Each sub-package has a fixed length */
> @@ -557,7 +545,6 @@ AcpiNsCheckPackageList (
>              }
>              break;
>
> -
>          case ACPI_PTYPE2_MIN:
>
>              /* Each sub-package has a variable but minimum length */
> @@ -579,9 +566,7 @@ AcpiNsCheckPackageList (
>              }
>              break;
>
> -
>          case ACPI_PTYPE2_COUNT:
> -
>              /*
>               * First element is the (Integer) count of elements, including
>               * the count field (the ACPI name is NumElements)
> @@ -630,7 +615,6 @@ AcpiNsCheckPackageList (
>              }
>              break;
>
> -
>          default: /* Should not get here, type was validated by caller */
>
>              return (AE_AML_INTERNAL);
> diff --git a/src/acpica/source/components/namespace/nsrepair.c b/src/acpica/source/components/namespace/nsrepair.c
> index ecdfcdc..3593da5 100644
> --- a/src/acpica/source/components/namespace/nsrepair.c
> +++ b/src/acpica/source/components/namespace/nsrepair.c
> @@ -582,6 +582,7 @@ AcpiNsRemoveNullElements (
>      case ACPI_PTYPE2_MIN:
>      case ACPI_PTYPE2_REV_FIXED:
>      case ACPI_PTYPE2_FIX_VAR:
> +
>          break;
>
>      default:
> diff --git a/src/acpica/source/components/namespace/nsrepair2.c b/src/acpica/source/components/namespace/nsrepair2.c
> index b9cf82d..e3ec4a6 100644
> --- a/src/acpica/source/components/namespace/nsrepair2.c
> +++ b/src/acpica/source/components/namespace/nsrepair2.c
> @@ -158,6 +158,11 @@ AcpiNsRepair_CID (
>      ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
>
>  static ACPI_STATUS
> +AcpiNsRepair_CST (
> +    ACPI_EVALUATE_INFO      *Info,
> +    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
> +
> +static ACPI_STATUS
>  AcpiNsRepair_FDE (
>      ACPI_EVALUATE_INFO      *Info,
>      ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
> @@ -168,6 +173,11 @@ AcpiNsRepair_HID (
>      ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
>
>  static ACPI_STATUS
> +AcpiNsRepair_PRT (
> +    ACPI_EVALUATE_INFO      *Info,
> +    ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
> +
> +static ACPI_STATUS
>  AcpiNsRepair_PSS (
>      ACPI_EVALUATE_INFO      *Info,
>      ACPI_OPERAND_OBJECT     **ReturnObjectPtr);
> @@ -181,11 +191,22 @@ static ACPI_STATUS
>  AcpiNsCheckSortedList (
>      ACPI_EVALUATE_INFO      *Info,
>      ACPI_OPERAND_OBJECT     *ReturnObject,
> +    UINT32                  StartIndex,
>      UINT32                  ExpectedCount,
>      UINT32                  SortIndex,
>      UINT8                   SortDirection,
>      char                    *SortKeyName);
>
> +/* Values for SortDirection above */
> +
> +#define ACPI_SORT_ASCENDING     0
> +#define ACPI_SORT_DESCENDING    1
> +
> +static void
> +AcpiNsRemoveElement (
> +    ACPI_OPERAND_OBJECT     *ObjDesc,
> +    UINT32                  Index);
> +
>  static void
>  AcpiNsSortList (
>      ACPI_OPERAND_OBJECT     **Elements,
> @@ -193,11 +214,6 @@ AcpiNsSortList (
>      UINT32                  Index,
>      UINT8                   SortDirection);
>
> -/* Values for SortDirection above */
> -
> -#define ACPI_SORT_ASCENDING     0
> -#define ACPI_SORT_DESCENDING    1
> -
>
>  /*
>   * This table contains the names of the predefined methods for which we can
> @@ -207,9 +223,11 @@ AcpiNsSortList (
>   *
>   * _ALR: Sort the list ascending by AmbientIlluminance
>   * _CID: Strings: uppercase all, remove any leading asterisk
> + * _CST: Sort the list ascending by C state type
>   * _FDE: Convert Buffer of BYTEs to a Buffer of DWORDs
>   * _GTM: Convert Buffer of BYTEs to a Buffer of DWORDs
>   * _HID: Strings: uppercase all, remove any leading asterisk
> + * _PRT: Fix reversed SourceName and SourceIndex
>   * _PSS: Sort the list descending by Power
>   * _TSS: Sort the list descending by Power
>   *
> @@ -224,9 +242,11 @@ static const ACPI_REPAIR_INFO       AcpiNsRepairableNames[] =
>  {
>      {"_ALR", AcpiNsRepair_ALR},
>      {"_CID", AcpiNsRepair_CID},
> +    {"_CST", AcpiNsRepair_CST},
>      {"_FDE", AcpiNsRepair_FDE},
>      {"_GTM", AcpiNsRepair_FDE},     /* _GTM has same repair as _FDE */
>      {"_HID", AcpiNsRepair_HID},
> +    {"_PRT", AcpiNsRepair_PRT},
>      {"_PSS", AcpiNsRepair_PSS},
>      {"_TSS", AcpiNsRepair_TSS},
>      {{0,0,0,0}, NULL}               /* Table terminator */
> @@ -339,7 +359,7 @@ AcpiNsRepair_ALR (
>      ACPI_STATUS             Status;
>
>
> -    Status = AcpiNsCheckSortedList (Info, ReturnObject, 2, 1,
> +    Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 2, 1,
>                  ACPI_SORT_ASCENDING, "AmbientIlluminance");
>
>      return (Status);
> @@ -426,6 +446,7 @@ AcpiNsRepair_FDE (
>          break;
>
>      default:
> +
>          return (AE_AML_OPERAND_TYPE);
>      }
>
> @@ -518,6 +539,97 @@ AcpiNsRepair_CID (
>
>  /******************************************************************************
>   *
> + * FUNCTION:    AcpiNsRepair_CST
> + *
> + * PARAMETERS:  Info                - Method execution information block
> + *              ReturnObjectPtr     - Pointer to the object returned from the
> + *                                    evaluation of a method or object
> + *
> + * RETURN:      Status. AE_OK if object is OK or was repaired successfully
> + *
> + * DESCRIPTION: Repair for the _CST object:
> + *              1. Sort the list ascending by C state type
> + *              2. Ensure type cannot be zero
> + *              3. A sub-package count of zero means _CST is meaningless
> + *              4. Count must match the number of C state sub-packages
> + *
> + *****************************************************************************/
> +
> +static ACPI_STATUS
> +AcpiNsRepair_CST (
> +    ACPI_EVALUATE_INFO      *Info,
> +    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
> +{
> +    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
> +    ACPI_OPERAND_OBJECT     **OuterElements;
> +    UINT32                  OuterElementCount;
> +    ACPI_OPERAND_OBJECT     *ObjDesc;
> +    ACPI_STATUS             Status;
> +    BOOLEAN                 Removing;
> +    UINT32                  i;
> +
> +
> +    ACPI_FUNCTION_NAME (NsRepair_CST);
> +
> +
> +    /*
> +     * Entries (subpackages) in the _CST Package must be sorted by the
> +     * C-state type, in ascending order.
> +     */
> +    Status = AcpiNsCheckSortedList (Info, ReturnObject, 1, 4, 1,
> +                ACPI_SORT_ASCENDING, "C-State Type");
> +    if (ACPI_FAILURE (Status))
> +    {
> +        return (Status);
> +    }
> +
> +    /*
> +     * We now know the list is correctly sorted by C-state type. Check if
> +     * the C-state type values are proportional.
> +     */
> +    OuterElementCount = ReturnObject->Package.Count - 1;
> +    i = 0;
> +    while (i < OuterElementCount)
> +    {
> +        OuterElements = &ReturnObject->Package.Elements[i + 1];
> +        Removing = FALSE;
> +
> +        if ((*OuterElements)->Package.Count == 0)
> +        {
> +            ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags,
> +                "SubPackage[%u] - removing entry due to zero count", i));
> +            Removing = TRUE;
> +        }
> +
> +        ObjDesc = (*OuterElements)->Package.Elements[1]; /* Index1 = Type */
> +        if ((UINT32) ObjDesc->Integer.Value == 0)
> +        {
> +            ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags,
> +                "SubPackage[%u] - removing entry due to invalid Type(0)", i));
> +            Removing = TRUE;
> +        }
> +
> +        if (Removing)
> +        {
> +            AcpiNsRemoveElement (ReturnObject, i + 1);
> +            OuterElementCount--;
> +        }
> +        else
> +        {
> +            i++;
> +        }
> +    }
> +
> +    /* Update top-level package count, Type "Integer" checked elsewhere */
> +
> +    ObjDesc = ReturnObject->Package.Elements[0];
> +    ObjDesc->Integer.Value = OuterElementCount;
> +    return (AE_OK);
> +}
> +
> +
> +/******************************************************************************
> + *
>   * FUNCTION:    AcpiNsRepair_HID
>   *
>   * PARAMETERS:  Info                - Method execution information block
> @@ -608,7 +720,7 @@ AcpiNsRepair_HID (
>
>  /******************************************************************************
>   *
> - * FUNCTION:    AcpiNsRepair_TSS
> + * FUNCTION:    AcpiNsRepair_PRT
>   *
>   * PARAMETERS:  Info                - Method execution information block
>   *              ReturnObjectPtr     - Pointer to the object returned from the
> @@ -616,40 +728,57 @@ AcpiNsRepair_HID (
>   *
>   * RETURN:      Status. AE_OK if object is OK or was repaired successfully
>   *
> - * DESCRIPTION: Repair for the _TSS object. If necessary, sort the object list
> - *              descending by the power dissipation values.
> + * DESCRIPTION: Repair for the _PRT object. If necessary, fix reversed
> + *              SourceName and SourceIndex field, a common BIOS bug.
>   *
>   *****************************************************************************/
>
>  static ACPI_STATUS
> -AcpiNsRepair_TSS (
> +AcpiNsRepair_PRT (
>      ACPI_EVALUATE_INFO      *Info,
>      ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
>  {
> -    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
> -    ACPI_STATUS             Status;
> -    ACPI_NAMESPACE_NODE     *Node;
> +    ACPI_OPERAND_OBJECT     *PackageObject = *ReturnObjectPtr;
> +    ACPI_OPERAND_OBJECT     **TopObjectList;
> +    ACPI_OPERAND_OBJECT     **SubObjectList;
> +    ACPI_OPERAND_OBJECT     *ObjDesc;
> +    UINT32                  ElementCount;
> +    UINT32                  Index;
>
>
> -    /*
> -     * We can only sort the _TSS return package if there is no _PSS in the
> -     * same scope. This is because if _PSS is present, the ACPI specification
> -     * dictates that the _TSS Power Dissipation field is to be ignored, and
> -     * therefore some BIOSs leave garbage values in the _TSS Power field(s).
> -     * In this case, it is best to just return the _TSS package as-is.
> -     * (May, 2011)
> -     */
> -    Status = AcpiNsGetNode (Info->Node, "^_PSS",
> -        ACPI_NS_NO_UPSEARCH, &Node);
> -    if (ACPI_SUCCESS (Status))
> +    /* Each element in the _PRT package is a subpackage */
> +
> +    TopObjectList = PackageObject->Package.Elements;
> +    ElementCount = PackageObject->Package.Count;
> +
> +    for (Index = 0; Index < ElementCount; Index++)
>      {
> -        return (AE_OK);
> -    }
> +        SubObjectList = (*TopObjectList)->Package.Elements;
>
> -    Status = AcpiNsCheckSortedList (Info, ReturnObject, 5, 1,
> -                ACPI_SORT_DESCENDING, "PowerDissipation");
> +        /*
> +         * If the BIOS has erroneously reversed the _PRT SourceName (index 2)
> +         * and the SourceIndex (index 3), fix it. _PRT is important enough to
> +         * workaround this BIOS error. This also provides compatibility with
> +         * other ACPI implementations.
> +         */
> +        ObjDesc = SubObjectList[3];
> +        if (!ObjDesc || (ObjDesc->Common.Type != ACPI_TYPE_INTEGER))
> +        {
> +            SubObjectList[3] = SubObjectList[2];
> +            SubObjectList[2] = ObjDesc;
> +            Info->ReturnFlags |= ACPI_OBJECT_REPAIRED;
>
> -    return (Status);
> +            ACPI_WARN_PREDEFINED ((AE_INFO, Info->FullPathname, Info->NodeFlags,
> +                "PRT[%X]: Fixed reversed SourceName and SourceIndex",
> +                Index));
> +        }
> +
> +        /* Point to the next ACPI_OPERAND_OBJECT in the top level package */
> +
> +        TopObjectList++;
> +    }
> +
> +    return (AE_OK);
>  }
>
>
> @@ -691,7 +820,7 @@ AcpiNsRepair_PSS (
>       * incorrectly sorted, sort it. We sort by CpuFrequency, since this
>       * should be proportional to the power.
>       */
> -    Status =AcpiNsCheckSortedList (Info, ReturnObject, 6, 0,
> +    Status =AcpiNsCheckSortedList (Info, ReturnObject, 0, 6, 0,
>                  ACPI_SORT_DESCENDING, "CpuFrequency");
>      if (ACPI_FAILURE (Status))
>      {
> @@ -728,10 +857,58 @@ AcpiNsRepair_PSS (
>
>  /******************************************************************************
>   *
> + * FUNCTION:    AcpiNsRepair_TSS
> + *
> + * PARAMETERS:  Info                - Method execution information block
> + *              ReturnObjectPtr     - Pointer to the object returned from the
> + *                                    evaluation of a method or object
> + *
> + * RETURN:      Status. AE_OK if object is OK or was repaired successfully
> + *
> + * DESCRIPTION: Repair for the _TSS object. If necessary, sort the object list
> + *              descending by the power dissipation values.
> + *
> + *****************************************************************************/
> +
> +static ACPI_STATUS
> +AcpiNsRepair_TSS (
> +    ACPI_EVALUATE_INFO      *Info,
> +    ACPI_OPERAND_OBJECT     **ReturnObjectPtr)
> +{
> +    ACPI_OPERAND_OBJECT     *ReturnObject = *ReturnObjectPtr;
> +    ACPI_STATUS             Status;
> +    ACPI_NAMESPACE_NODE     *Node;
> +
> +
> +    /*
> +     * We can only sort the _TSS return package if there is no _PSS in the
> +     * same scope. This is because if _PSS is present, the ACPI specification
> +     * dictates that the _TSS Power Dissipation field is to be ignored, and
> +     * therefore some BIOSs leave garbage values in the _TSS Power field(s).
> +     * In this case, it is best to just return the _TSS package as-is.
> +     * (May, 2011)
> +     */
> +    Status = AcpiNsGetNode (Info->Node, "^_PSS",
> +        ACPI_NS_NO_UPSEARCH, &Node);
> +    if (ACPI_SUCCESS (Status))
> +    {
> +        return (AE_OK);
> +    }
> +
> +    Status = AcpiNsCheckSortedList (Info, ReturnObject, 0, 5, 1,
> +                ACPI_SORT_DESCENDING, "PowerDissipation");
> +
> +    return (Status);
> +}
> +
> +
> +/******************************************************************************
> + *
>   * FUNCTION:    AcpiNsCheckSortedList
>   *
>   * PARAMETERS:  Info                - Method execution information block
>   *              ReturnObject        - Pointer to the top-level returned object
> + *              StartIndex          - Index of the first sub-package
>   *              ExpectedCount       - Minimum length of each sub-package
>   *              SortIndex           - Sub-package entry to sort on
>   *              SortDirection       - Ascending or descending
> @@ -749,6 +926,7 @@ static ACPI_STATUS
>  AcpiNsCheckSortedList (
>      ACPI_EVALUATE_INFO      *Info,
>      ACPI_OPERAND_OBJECT     *ReturnObject,
> +    UINT32                  StartIndex,
>      UINT32                  ExpectedCount,
>      UINT32                  SortIndex,
>      UINT8                   SortDirection,
> @@ -777,13 +955,15 @@ AcpiNsCheckSortedList (
>       * Any NULL elements should have been removed by earlier call
>       * to AcpiNsRemoveNullElements.
>       */
> -    OuterElements = ReturnObject->Package.Elements;
>      OuterElementCount = ReturnObject->Package.Count;
> -    if (!OuterElementCount)
> +    if (!OuterElementCount || StartIndex >= OuterElementCount)
>      {
>          return (AE_AML_PACKAGE_LIMIT);
>      }
>
> +    OuterElements = &ReturnObject->Package.Elements[StartIndex];
> +    OuterElementCount -= StartIndex;
> +
>      PreviousValue = 0;
>      if (SortDirection == ACPI_SORT_DESCENDING)
>      {
> @@ -825,7 +1005,7 @@ AcpiNsCheckSortedList (
>              ((SortDirection == ACPI_SORT_DESCENDING) &&
>                  (ObjDesc->Integer.Value > PreviousValue)))
>          {
> -            AcpiNsSortList (ReturnObject->Package.Elements,
> +            AcpiNsSortList (&ReturnObject->Package.Elements[StartIndex],
>                  OuterElementCount, SortIndex, SortDirection);
>
>              Info->ReturnFlags |= ACPI_OBJECT_REPAIRED;
> @@ -898,3 +1078,61 @@ AcpiNsSortList (
>          }
>      }
>  }
> +
> +
> +/******************************************************************************
> + *
> + * FUNCTION:    AcpiNsRemoveElement
> + *
> + * PARAMETERS:  ObjDesc             - Package object element list
> + *              Index               - Index of element to remove
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Remove the requested element of a package and delete it.
> + *
> + *****************************************************************************/
> +
> +static void
> +AcpiNsRemoveElement (
> +    ACPI_OPERAND_OBJECT     *ObjDesc,
> +    UINT32                  Index)
> +{
> +    ACPI_OPERAND_OBJECT     **Source;
> +    ACPI_OPERAND_OBJECT     **Dest;
> +    UINT32                  Count;
> +    UINT32                  NewCount;
> +    UINT32                  i;
> +
> +
> +    ACPI_FUNCTION_NAME (NsRemoveElement);
> +
> +
> +    Count = ObjDesc->Package.Count;
> +    NewCount = Count - 1;
> +
> +    Source = ObjDesc->Package.Elements;
> +    Dest = Source;
> +
> +    /* Examine all elements of the package object, remove matched index */
> +
> +    for (i = 0; i < Count; i++)
> +    {
> +        if (i == Index)
> +        {
> +            AcpiUtRemoveReference (*Source); /* Remove one ref for being in pkg */
> +            AcpiUtRemoveReference (*Source);
> +        }
> +        else
> +        {
> +            *Dest = *Source;
> +            Dest++;
> +        }
> +        Source++;
> +    }
> +
> +    /* NULL terminate list and update the package count */
> +
> +    *Dest = NULL;
> +    ObjDesc->Package.Count = NewCount;
> +}
> diff --git a/src/acpica/source/components/namespace/nsutils.c b/src/acpica/source/components/namespace/nsutils.c
> index 2b5c195..1f5e188 100644
> --- a/src/acpica/source/components/namespace/nsutils.c
> +++ b/src/acpica/source/components/namespace/nsutils.c
> @@ -569,10 +569,12 @@ AcpiNsExternalizeName (
>      switch (InternalName[0])
>      {
>      case AML_ROOT_PREFIX:
> +
>          PrefixLength = 1;
>          break;
>
>      case AML_PARENT_PREFIX:
> +
>          for (i = 0; i < InternalNameLength; i++)
>          {
>              if (ACPI_IS_PARENT_PREFIX (InternalName[i]))
> @@ -593,6 +595,7 @@ AcpiNsExternalizeName (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/namespace/nsxfeval.c b/src/acpica/source/components/namespace/nsxfeval.c
> index 88ec82b..901a931 100644
> --- a/src/acpica/source/components/namespace/nsxfeval.c
> +++ b/src/acpica/source/components/namespace/nsxfeval.c
> @@ -622,6 +622,7 @@ AcpiNsResolveReferences (
>          break;
>
>      default:
> +
>          return;
>      }
>
> diff --git a/src/acpica/source/components/parser/psargs.c b/src/acpica/source/components/parser/psargs.c
> index 3c8a930..938a4f1 100644
> --- a/src/acpica/source/components/parser/psargs.c
> +++ b/src/acpica/source/components/parser/psargs.c
> @@ -519,7 +519,6 @@ AcpiPsGetNextSimpleArg (
>          Length = 1;
>          break;
>
> -
>      case ARGP_WORDDATA:
>
>          /* Get 2 bytes from the AML stream */
> @@ -529,7 +528,6 @@ AcpiPsGetNextSimpleArg (
>          Length = 2;
>          break;
>
> -
>      case ARGP_DWORDDATA:
>
>          /* Get 4 bytes from the AML stream */
> @@ -539,7 +537,6 @@ AcpiPsGetNextSimpleArg (
>          Length = 4;
>          break;
>
> -
>      case ARGP_QWORDDATA:
>
>          /* Get 8 bytes from the AML stream */
> @@ -549,7 +546,6 @@ AcpiPsGetNextSimpleArg (
>          Length = 8;
>          break;
>
> -
>      case ARGP_CHARLIST:
>
>          /* Get a pointer to the string, point past the string */
> @@ -567,7 +563,6 @@ AcpiPsGetNextSimpleArg (
>          Length++;
>          break;
>
> -
>      case ARGP_NAME:
>      case ARGP_NAMESTRING:
>
> @@ -575,7 +570,6 @@ AcpiPsGetNextSimpleArg (
>          Arg->Common.Value.Name = AcpiPsGetNextNamestring (ParserState);
>          return_VOID;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Invalid ArgType 0x%X", ArgType));
> @@ -757,21 +751,25 @@ AcpiPsGetNextField (
>                  switch (Opcode)
>                  {
>                  case AML_BYTE_OP:       /* AML_BYTEDATA_ARG */
> +
>                      BufferLength = ACPI_GET8 (ParserState->Aml);
>                      ParserState->Aml += 1;
>                      break;
>
>                  case AML_WORD_OP:       /* AML_WORDDATA_ARG */
> +
>                      BufferLength = ACPI_GET16 (ParserState->Aml);
>                      ParserState->Aml += 2;
>                      break;
>
>                  case AML_DWORD_OP:      /* AML_DWORDATA_ARG */
> +
>                      BufferLength = ACPI_GET32 (ParserState->Aml);
>                      ParserState->Aml += 4;
>                      break;
>
>                  default:
> +
>                      BufferLength = 0;
>                      break;
>                  }
> @@ -868,7 +866,6 @@ AcpiPsGetNextArg (
>          AcpiPsGetNextSimpleArg (ParserState, ArgType, Arg);
>          break;
>
> -
>      case ARGP_PKGLENGTH:
>
>          /* Package length, nothing returned */
> @@ -876,7 +873,6 @@ AcpiPsGetNextArg (
>          ParserState->PkgEnd = AcpiPsGetNextPackageEnd (ParserState);
>          break;
>
> -
>      case ARGP_FIELDLIST:
>
>          if (ParserState->Aml < ParserState->PkgEnd)
> @@ -908,7 +904,6 @@ AcpiPsGetNextArg (
>          }
>          break;
>
> -
>      case ARGP_BYTELIST:
>
>          if (ParserState->Aml < ParserState->PkgEnd)
> @@ -933,7 +928,6 @@ AcpiPsGetNextArg (
>          }
>          break;
>
> -
>      case ARGP_TARGET:
>      case ARGP_SUPERNAME:
>      case ARGP_SIMPLENAME:
> @@ -981,7 +975,6 @@ AcpiPsGetNextArg (
>          }
>          break;
>
> -
>      case ARGP_DATAOBJ:
>      case ARGP_TERMARG:
>
> @@ -990,7 +983,6 @@ AcpiPsGetNextArg (
>          WalkState->ArgCount = 1;
>          break;
>
> -
>      case ARGP_DATAOBJLIST:
>      case ARGP_TERMLIST:
>      case ARGP_OBJLIST:
> @@ -1003,7 +995,6 @@ AcpiPsGetNextArg (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Invalid ArgType: 0x%X", ArgType));
> diff --git a/src/acpica/source/components/parser/psloop.c b/src/acpica/source/components/parser/psloop.c
> index b4adfd4..d9d4548 100644
> --- a/src/acpica/source/components/parser/psloop.c
> +++ b/src/acpica/source/components/parser/psloop.c
> @@ -246,7 +246,6 @@ AcpiPsGetArguments (
>              case AML_IF_OP:
>              case AML_ELSE_OP:
>              case AML_WHILE_OP:
> -
>                  /*
>                   * Currently supported module-level opcodes are:
>                   * IF/ELSE/WHILE. These appear to be the most common,
> @@ -352,6 +351,7 @@ AcpiPsGetArguments (
>          default:
>
>              /* No action for all other opcodes */
> +
>              break;
>          }
>
> diff --git a/src/acpica/source/components/parser/psobject.c b/src/acpica/source/components/parser/psobject.c
> index 32d1c44..8e5faed 100644
> --- a/src/acpica/source/components/parser/psobject.c
> +++ b/src/acpica/source/components/parser/psobject.c
> @@ -508,8 +508,8 @@ AcpiPsCompleteOp (
>      switch (Status)
>      {
>      case AE_OK:
> -        break;
>
> +        break;
>
>      case AE_CTRL_TRANSFER:
>
> @@ -519,7 +519,6 @@ AcpiPsCompleteOp (
>          WalkState->PrevArgTypes = WalkState->ArgTypes;
>          return_ACPI_STATUS (Status);
>
> -
>      case AE_CTRL_END:
>
>          AcpiPsPopScope (&(WalkState->ParserState), Op,
> @@ -544,7 +543,6 @@ AcpiPsCompleteOp (
>          Status = AE_OK;
>          break;
>
> -
>      case AE_CTRL_BREAK:
>      case AE_CTRL_CONTINUE:
>
> @@ -574,7 +572,6 @@ AcpiPsCompleteOp (
>          Status = AE_OK;
>          break;
>
> -
>      case AE_CTRL_TERMINATE:
>
>          /* Clean up */
> @@ -599,7 +596,6 @@ AcpiPsCompleteOp (
>
>          return_ACPI_STATUS (AE_OK);
>
> -
>      default:  /* All other non-AE_OK status */
>
>          do
> diff --git a/src/acpica/source/components/parser/psparse.c b/src/acpica/source/components/parser/psparse.c
> index 11aa2f5..689c2b8 100644
> --- a/src/acpica/source/components/parser/psparse.c
> +++ b/src/acpica/source/components/parser/psparse.c
> @@ -263,10 +263,10 @@ AcpiPsCompleteThisOp (
>          switch (ParentInfo->Class)
>          {
>          case AML_CLASS_CONTROL:
> +
>              break;
>
>          case AML_CLASS_CREATE:
> -
>              /*
>               * These opcodes contain TermArg operands. The current
>               * op must be replaced by a placeholder return op
> @@ -279,7 +279,6 @@ AcpiPsCompleteThisOp (
>              break;
>
>          case AML_CLASS_NAMED_OBJECT:
> -
>              /*
>               * These opcodes contain TermArg operands. The current
>               * op must be replaced by a placeholder return op
> @@ -424,7 +423,6 @@ AcpiPsNextParseState (
>          Status = AE_CTRL_TERMINATE;
>          break;
>
> -
>      case AE_CTRL_BREAK:
>
>          ParserState->Aml = WalkState->AmlLastWhile;
> @@ -432,14 +430,12 @@ AcpiPsNextParseState (
>          Status = AE_CTRL_BREAK;
>          break;
>
> -
>      case AE_CTRL_CONTINUE:
>
>          ParserState->Aml = WalkState->AmlLastWhile;
>          Status = AE_CTRL_CONTINUE;
>          break;
>
> -
>      case AE_CTRL_PENDING:
>
>          ParserState->Aml = WalkState->AmlLastWhile;
> @@ -462,7 +458,6 @@ AcpiPsNextParseState (
>          Status = AE_CTRL_PENDING;
>          break;
>
> -
>      case AE_CTRL_FALSE:
>          /*
>           * Either an IF/WHILE Predicate was false or we encountered a BREAK
> @@ -479,7 +474,6 @@ AcpiPsNextParseState (
>          Status = AE_CTRL_END;
>          break;
>
> -
>      case AE_CTRL_TRANSFER:
>
>          /* A method call (invocation) -- transfer control */
> @@ -494,7 +488,6 @@ AcpiPsNextParseState (
>          WalkState->ReturnUsed = AcpiDsIsResultUsed (Op, WalkState);
>          break;
>
> -
>      default:
>
>          Status = CallbackStatus;
> diff --git a/src/acpica/source/components/parser/pstree.c b/src/acpica/source/components/parser/pstree.c
> index 4849580..dcb4ded 100644
> --- a/src/acpica/source/components/parser/pstree.c
> +++ b/src/acpica/source/components/parser/pstree.c
> @@ -394,7 +394,6 @@ AcpiPsGetChild (
>          Child = AcpiPsGetArg (Op, 0);
>          break;
>
> -
>      case AML_BUFFER_OP:
>      case AML_PACKAGE_OP:
>      case AML_METHOD_OP:
> @@ -405,23 +404,22 @@ AcpiPsGetChild (
>          Child = AcpiPsGetArg (Op, 1);
>          break;
>
> -
>      case AML_POWER_RES_OP:
>      case AML_INDEX_FIELD_OP:
>
>          Child = AcpiPsGetArg (Op, 2);
>          break;
>
> -
>      case AML_PROCESSOR_OP:
>      case AML_BANK_FIELD_OP:
>
>          Child = AcpiPsGetArg (Op, 3);
>          break;
>
> -
>      default:
> +
>          /* All others have no children */
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/resources/rscalc.c b/src/acpica/source/components/resources/rscalc.c
> index 4daba5a..f8eced5 100644
> --- a/src/acpica/source/components/resources/rscalc.c
> +++ b/src/acpica/source/components/resources/rscalc.c
> @@ -443,8 +443,8 @@ AcpiRsGetAmlLength (
>
>              break;
>
> -
>          default:
> +
>              break;
>          }
>
> @@ -634,6 +634,7 @@ AcpiRsGetListLength (
>              break;
>
>          default:
> +
>              break;
>          }
>
> @@ -748,7 +749,9 @@ AcpiRsGetPciRoutingTableLength (
>
>          NameFound = FALSE;
>
> -        for (TableIndex = 0; TableIndex < 4 && !NameFound; TableIndex++)
> +        for (TableIndex = 0;
> +             TableIndex < PackageElement->Package.Count && !NameFound;
> +             TableIndex++)
>          {
>              if (*SubObjectList && /* Null object allowed */
>
> diff --git a/src/acpica/source/components/resources/rscreate.c b/src/acpica/source/components/resources/rscreate.c
> index 0000731..0e58aee 100644
> --- a/src/acpica/source/components/resources/rscreate.c
> +++ b/src/acpica/source/components/resources/rscreate.c
> @@ -369,16 +369,6 @@ AcpiRsCreatePciRoutingTable (
>           */
>          UserPrt->Length = (sizeof (ACPI_PCI_ROUTING_TABLE) - 4);
>
> -        /* Each element of the top-level package must also be a package */
> -
> -        if ((*TopObjectList)->Common.Type != ACPI_TYPE_PACKAGE)
> -        {
> -            ACPI_ERROR ((AE_INFO,
> -                "(PRT[%u]) Need sub-package, found %s",
> -                Index, AcpiUtGetObjectTypeName (*TopObjectList)));
> -            return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
> -        }
> -
>          /* Each sub-package must be of length 4 */
>
>          if ((*TopObjectList)->Package.Count != 4)
> @@ -421,23 +411,6 @@ AcpiRsCreatePciRoutingTable (
>          UserPrt->Pin = (UINT32) ObjDesc->Integer.Value;
>
>          /*
> -         * If the BIOS has erroneously reversed the _PRT SourceName (index 2)
> -         * and the SourceIndex (index 3), fix it. _PRT is important enough to
> -         * workaround this BIOS error. This also provides compatibility with
> -         * other ACPI implementations.
> -         */
> -        ObjDesc = SubObjectList[3];
> -        if (!ObjDesc || (ObjDesc->Common.Type != ACPI_TYPE_INTEGER))
> -        {
> -            SubObjectList[3] = SubObjectList[2];
> -            SubObjectList[2] = ObjDesc;
> -
> -            ACPI_WARNING ((AE_INFO,
> -                "(PRT[%X].Source) SourceName and SourceIndex are reversed, fixed",
> -                Index));
> -        }
> -
> -        /*
>           * 3) Third subobject: Dereference the PRT.SourceName
>           * The name may be unresolved (slack mode), so allow a null object
>           */
> @@ -472,7 +445,6 @@ AcpiRsCreatePciRoutingTable (
>                  UserPrt->Length += (UINT32) ACPI_STRLEN (UserPrt->Source) + 1;
>                  break;
>
> -
>              case ACPI_TYPE_STRING:
>
>                  ACPI_STRCPY (UserPrt->Source, ObjDesc->String.Pointer);
> @@ -484,7 +456,6 @@ AcpiRsCreatePciRoutingTable (
>                  UserPrt->Length += ObjDesc->String.Length + 1;
>                  break;
>
> -
>              case ACPI_TYPE_INTEGER:
>                  /*
>                   * If this is a number, then the Source Name is NULL, since the
> @@ -495,7 +466,6 @@ AcpiRsCreatePciRoutingTable (
>                  UserPrt->Length += sizeof (UINT32);
>                  break;
>
> -
>              default:
>
>                 ACPI_ERROR ((AE_INFO,
> diff --git a/src/acpica/source/components/resources/rsdump.c b/src/acpica/source/components/resources/rsdump.c
> index f1bae76..26f8315 100644
> --- a/src/acpica/source/components/resources/rsdump.c
> +++ b/src/acpica/source/components/resources/rsdump.c
> @@ -240,16 +240,19 @@ AcpiRsDumpDescriptor (
>          /* Strings */
>
>          case ACPI_RSD_LITERAL:
> +
>              AcpiRsOutString (Name, ACPI_CAST_PTR (char, Table->Pointer));
>              break;
>
>          case ACPI_RSD_STRING:
> +
>              AcpiRsOutString (Name, ACPI_CAST_PTR (char, Target));
>              break;
>
>          /* Data items, 8/16/32/64 bit */
>
>          case ACPI_RSD_UINT8:
> +
>              if (Table->Pointer)
>              {
>                  AcpiRsOutString (Name, ACPI_CAST_PTR (char,
> @@ -262,30 +265,36 @@ AcpiRsDumpDescriptor (
>              break;
>
>          case ACPI_RSD_UINT16:
> +
>              AcpiRsOutInteger16 (Name, ACPI_GET16 (Target));
>              break;
>
>          case ACPI_RSD_UINT32:
> +
>              AcpiRsOutInteger32 (Name, ACPI_GET32 (Target));
>              break;
>
>          case ACPI_RSD_UINT64:
> +
>              AcpiRsOutInteger64 (Name, ACPI_GET64 (Target));
>              break;
>
>          /* Flags: 1-bit and 2-bit flags supported */
>
>          case ACPI_RSD_1BITFLAG:
> +
>              AcpiRsOutString (Name, ACPI_CAST_PTR (char,
>                  Table->Pointer [*Target & 0x01]));
>              break;
>
>          case ACPI_RSD_2BITFLAG:
> +
>              AcpiRsOutString (Name, ACPI_CAST_PTR (char,
>                  Table->Pointer [*Target & 0x03]));
>              break;
>
>          case ACPI_RSD_3BITFLAG:
> +
>              AcpiRsOutString (Name, ACPI_CAST_PTR (char,
>                  Table->Pointer [*Target & 0x07]));
>              break;
> @@ -365,6 +374,7 @@ AcpiRsDumpDescriptor (
>              break;
>
>          default:
> +
>              AcpiOsPrintf ("**** Invalid table opcode [%X] ****\n",
>                  Table->Opcode);
>              return;
> diff --git a/src/acpica/source/components/resources/rsmisc.c b/src/acpica/source/components/resources/rsmisc.c
> index 6d826a5..946d74f 100644
> --- a/src/acpica/source/components/resources/rsmisc.c
> +++ b/src/acpica/source/components/resources/rsmisc.c
> @@ -209,17 +209,14 @@ AcpiRsConvertAmlToResource (
>              Resource->Length = INIT_RESOURCE_LENGTH (Info);
>              break;
>
> -
>          case ACPI_RSC_INITSET:
>              break;
>
> -
>          case ACPI_RSC_FLAGINIT:
>
>              FlagsMode = TRUE;
>              break;
>
> -
>          case ACPI_RSC_1BITFLAG:
>              /*
>               * Mask and shift the flag bit
> @@ -228,7 +225,6 @@ AcpiRsConvertAmlToResource (
>                  ((ACPI_GET8 (Source) >> Info->Value) & 0x01));
>              break;
>
> -
>          case ACPI_RSC_2BITFLAG:
>              /*
>               * Mask and shift the flag bits
> @@ -237,7 +233,6 @@ AcpiRsConvertAmlToResource (
>                  ((ACPI_GET8 (Source) >> Info->Value) & 0x03));
>              break;
>
> -
>          case ACPI_RSC_3BITFLAG:
>              /*
>               * Mask and shift the flag bits
> @@ -246,7 +241,6 @@ AcpiRsConvertAmlToResource (
>                  ((ACPI_GET8 (Source) >> Info->Value) & 0x07));
>              break;
>
> -
>          case ACPI_RSC_COUNT:
>
>              ItemCount = ACPI_GET8 (Source);
> @@ -256,7 +250,6 @@ AcpiRsConvertAmlToResource (
>                  (Info->Value * (ItemCount - 1));
>              break;
>
> -
>          case ACPI_RSC_COUNT16:
>
>              ItemCount = AmlResourceLength;
> @@ -266,7 +259,6 @@ AcpiRsConvertAmlToResource (
>                  (Info->Value * (ItemCount - 1));
>              break;
>
> -
>          case ACPI_RSC_COUNT_GPIO_PIN:
>
>              Target = ACPI_ADD_PTR (void, Aml, Info->Value);
> @@ -277,7 +269,6 @@ AcpiRsConvertAmlToResource (
>              ACPI_SET16 (Destination, ItemCount);
>              break;
>
> -
>          case ACPI_RSC_COUNT_GPIO_VEN:
>
>              ItemCount = ACPI_GET8 (Source);
> @@ -287,9 +278,7 @@ AcpiRsConvertAmlToResource (
>                  (Info->Value * ItemCount);
>              break;
>
> -
>          case ACPI_RSC_COUNT_GPIO_RES:
> -
>              /*
>               * Vendor data is optional (length/offset may both be zero)
>               * Examine vendor data length field first
> @@ -315,7 +304,6 @@ AcpiRsConvertAmlToResource (
>              ACPI_SET16 (Destination, ItemCount);
>              break;
>
> -
>          case ACPI_RSC_COUNT_SERIAL_VEN:
>
>              ItemCount = ACPI_GET16 (Source) - Info->Value;
> @@ -324,7 +312,6 @@ AcpiRsConvertAmlToResource (
>              ACPI_SET16 (Destination, ItemCount);
>              break;
>
> -
>          case ACPI_RSC_COUNT_SERIAL_RES:
>
>              ItemCount = (AmlResourceLength +
> @@ -335,13 +322,11 @@ AcpiRsConvertAmlToResource (
>              ACPI_SET16 (Destination, ItemCount);
>              break;
>
> -
>          case ACPI_RSC_LENGTH:
>
>              Resource->Length = Resource->Length + Info->Value;
>              break;
>
> -
>          case ACPI_RSC_MOVE8:
>          case ACPI_RSC_MOVE16:
>          case ACPI_RSC_MOVE32:
> @@ -357,7 +342,6 @@ AcpiRsConvertAmlToResource (
>              AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_GPIO_PIN:
>
>              /* Generate and set the PIN data pointer */
> @@ -372,7 +356,6 @@ AcpiRsConvertAmlToResource (
>              AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_GPIO_RES:
>
>              /* Generate and set the ResourceSource string pointer */
> @@ -387,7 +370,6 @@ AcpiRsConvertAmlToResource (
>              AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_SERIAL_VEN:
>
>              /* Generate and set the Vendor Data pointer */
> @@ -402,7 +384,6 @@ AcpiRsConvertAmlToResource (
>              AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_SERIAL_RES:
>
>              /* Generate and set the ResourceSource string pointer */
> @@ -417,20 +398,17 @@ AcpiRsConvertAmlToResource (
>              AcpiRsMoveData (Target, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_SET8:
>
>              ACPI_MEMSET (Destination, Info->AmlOffset, Info->Value);
>              break;
>
> -
>          case ACPI_RSC_DATA8:
>
>              Target = ACPI_ADD_PTR (char, Resource, Info->Value);
>              ACPI_MEMCPY (Destination, Source,  ACPI_GET16 (Target));
>              break;
>
> -
>          case ACPI_RSC_ADDRESS:
>              /*
>               * Common handler for address descriptor flags
> @@ -441,7 +419,6 @@ AcpiRsConvertAmlToResource (
>              }
>              break;
>
> -
>          case ACPI_RSC_SOURCE:
>              /*
>               * Optional ResourceSource (Index and String)
> @@ -451,7 +428,6 @@ AcpiRsConvertAmlToResource (
>                      Destination, Aml, NULL);
>              break;
>
> -
>          case ACPI_RSC_SOURCEX:
>              /*
>               * Optional ResourceSource (Index and String). This is the more
> @@ -466,7 +442,6 @@ AcpiRsConvertAmlToResource (
>                      Destination, Aml, Target);
>              break;
>
> -
>          case ACPI_RSC_BITMASK:
>              /*
>               * 8-bit encoded bitmask (DMA macro)
> @@ -481,7 +456,6 @@ AcpiRsConvertAmlToResource (
>              ACPI_SET8 (Target, ItemCount);
>              break;
>
> -
>          case ACPI_RSC_BITMASK16:
>              /*
>               * 16-bit encoded bitmask (IRQ macro)
> @@ -498,7 +472,6 @@ AcpiRsConvertAmlToResource (
>              ACPI_SET8 (Target, ItemCount);
>              break;
>
> -
>          case ACPI_RSC_EXIT_NE:
>              /*
>               * Control - Exit conversion if not equal
> @@ -506,6 +479,7 @@ AcpiRsConvertAmlToResource (
>              switch (Info->ResourceOffset)
>              {
>              case ACPI_RSC_COMPARE_AML_LENGTH:
> +
>                  if (AmlResourceLength != Info->Value)
>                  {
>                      goto Exit;
> @@ -513,6 +487,7 @@ AcpiRsConvertAmlToResource (
>                  break;
>
>              case ACPI_RSC_COMPARE_VALUE:
> +
>                  if (ACPI_GET8 (Source) != Info->Value)
>                  {
>                      goto Exit;
> @@ -526,7 +501,6 @@ AcpiRsConvertAmlToResource (
>              }
>              break;
>
> -
>          default:
>
>              ACPI_ERROR ((AE_INFO, "Invalid conversion opcode"));
> @@ -610,11 +584,9 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceHeader (INIT_RESOURCE_TYPE (Info), AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_INITGET:
>              break;
>
> -
>          case ACPI_RSC_FLAGINIT:
>              /*
>               * Clear the flag byte
> @@ -622,7 +594,6 @@ AcpiRsConvertResourceToAml (
>              ACPI_SET8 (Destination, 0);
>              break;
>
> -
>          case ACPI_RSC_1BITFLAG:
>              /*
>               * Mask and shift the flag bit
> @@ -631,7 +602,6 @@ AcpiRsConvertResourceToAml (
>                  ((ACPI_GET8 (Source) & 0x01) << Info->Value));
>              break;
>
> -
>          case ACPI_RSC_2BITFLAG:
>              /*
>               * Mask and shift the flag bits
> @@ -640,7 +610,6 @@ AcpiRsConvertResourceToAml (
>                  ((ACPI_GET8 (Source) & 0x03) << Info->Value));
>              break;
>
> -
>          case ACPI_RSC_3BITFLAG:
>              /*
>               * Mask and shift the flag bits
> @@ -649,7 +618,6 @@ AcpiRsConvertResourceToAml (
>                  ((ACPI_GET8 (Source) & 0x07) << Info->Value));
>              break;
>
> -
>          case ACPI_RSC_COUNT:
>
>              ItemCount = ACPI_GET8 (Source);
> @@ -658,7 +626,6 @@ AcpiRsConvertResourceToAml (
>              AmlLength = (UINT16) (AmlLength + (Info->Value * (ItemCount - 1)));
>              break;
>
> -
>          case ACPI_RSC_COUNT16:
>
>              ItemCount = ACPI_GET16 (Source);
> @@ -666,7 +633,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_COUNT_GPIO_PIN:
>
>              ItemCount = ACPI_GET16 (Source);
> @@ -678,7 +644,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_COUNT_GPIO_VEN:
>
>              ItemCount = ACPI_GET16 (Source);
> @@ -688,7 +653,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_COUNT_GPIO_RES:
>
>              /* Set resource source string length */
> @@ -711,7 +675,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_COUNT_SERIAL_VEN:
>
>              ItemCount = ACPI_GET16 (Source);
> @@ -720,7 +683,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_COUNT_SERIAL_RES:
>
>              ItemCount = ACPI_GET16 (Source);
> @@ -728,13 +690,11 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_LENGTH:
>
>              AcpiRsSetResourceLength (Info->Value, Aml);
>              break;
>
> -
>          case ACPI_RSC_MOVE8:
>          case ACPI_RSC_MOVE16:
>          case ACPI_RSC_MOVE32:
> @@ -747,7 +707,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_GPIO_PIN:
>
>              Destination = (char *) ACPI_ADD_PTR (void, Aml,
> @@ -756,7 +715,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_GPIO_RES:
>
>              /* Used for both ResourceSource string and VendorData */
> @@ -767,7 +725,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_SERIAL_VEN:
>
>              Destination = (char *) ACPI_ADD_PTR (void, Aml,
> @@ -776,7 +733,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_MOVE_SERIAL_RES:
>
>              Destination = (char *) ACPI_ADD_PTR (void, Aml,
> @@ -785,7 +741,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsMoveData (Destination, Source, ItemCount, Info->Opcode);
>              break;
>
> -
>          case ACPI_RSC_ADDRESS:
>
>              /* Set the Resource Type, General Flags, and Type-Specific Flags */
> @@ -793,7 +748,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetAddressCommon (Aml, Resource);
>              break;
>
> -
>          case ACPI_RSC_SOURCEX:
>              /*
>               * Optional ResourceSource (Index and String)
> @@ -803,7 +757,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_SOURCE:
>              /*
>               * Optional ResourceSource (Index and String). This is the more
> @@ -813,7 +766,6 @@ AcpiRsConvertResourceToAml (
>              AcpiRsSetResourceLength (AmlLength, Aml);
>              break;
>
> -
>          case ACPI_RSC_BITMASK:
>              /*
>               * 8-bit encoded bitmask (DMA macro)
> @@ -823,7 +775,6 @@ AcpiRsConvertResourceToAml (
>                      *ACPI_ADD_PTR (UINT8, Resource, Info->Value)));
>              break;
>
> -
>          case ACPI_RSC_BITMASK16:
>              /*
>               * 16-bit encoded bitmask (IRQ macro)
> @@ -833,7 +784,6 @@ AcpiRsConvertResourceToAml (
>              ACPI_MOVE_16_TO_16 (Destination, &Temp16);
>              break;
>
> -
>          case ACPI_RSC_EXIT_LE:
>              /*
>               * Control - Exit conversion if less than or equal
> @@ -844,7 +794,6 @@ AcpiRsConvertResourceToAml (
>              }
>              break;
>
> -
>          case ACPI_RSC_EXIT_NE:
>              /*
>               * Control - Exit conversion if not equal
> @@ -867,7 +816,6 @@ AcpiRsConvertResourceToAml (
>              }
>              break;
>
> -
>          case ACPI_RSC_EXIT_EQ:
>              /*
>               * Control - Exit conversion if equal
> @@ -879,7 +827,6 @@ AcpiRsConvertResourceToAml (
>              }
>              break;
>
> -
>          default:
>
>              ACPI_ERROR ((AE_INFO, "Invalid conversion opcode"));
> diff --git a/src/acpica/source/components/resources/rsutils.c b/src/acpica/source/components/resources/rsutils.c
> index 110d197..c04ebac 100644
> --- a/src/acpica/source/components/resources/rsutils.c
> +++ b/src/acpica/source/components/resources/rsutils.c
> @@ -248,6 +248,7 @@ AcpiRsMoveData (
>          case ACPI_RSC_MOVE_GPIO_RES:
>          case ACPI_RSC_MOVE_SERIAL_VEN:
>          case ACPI_RSC_MOVE_SERIAL_RES:
> +
>              ACPI_MEMCPY (Destination, Source, ItemCount);
>              return;
>
> @@ -258,21 +259,25 @@ 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]);
>              break;
>
>          case ACPI_RSC_MOVE32:
> +
>              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]);
>              break;
>
>          default:
> +
>              return;
>          }
>      }
> diff --git a/src/acpica/source/components/resources/rsxface.c b/src/acpica/source/components/resources/rsxface.c
> index a40d751..0401b0d 100644
> --- a/src/acpica/source/components/resources/rsxface.c
> +++ b/src/acpica/source/components/resources/rsxface.c
> @@ -524,6 +524,7 @@ AcpiResourceToAddress64 (
>          break;
>
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> diff --git a/src/acpica/source/components/tables/tbinstal.c b/src/acpica/source/components/tables/tbinstal.c
> index c0effc0..a67e26d 100644
> --- a/src/acpica/source/components/tables/tbinstal.c
> +++ b/src/acpica/source/components/tables/tbinstal.c
> @@ -232,7 +232,7 @@ AcpiTbAddTable (
>          ACPI_BIOS_ERROR ((AE_INFO,
>              "Table has invalid signature [%4.4s] (0x%8.8X), "
>              "must be SSDT or OEMx",
> -            AcpiUtValidAcpiName (*(UINT32 *) TableDesc->Pointer->Signature) ?
> +            AcpiUtValidAcpiName (TableDesc->Pointer->Signature) ?
>                  TableDesc->Pointer->Signature : "????",
>              *(UINT32 *) TableDesc->Pointer->Signature));
>
> @@ -586,16 +586,19 @@ AcpiTbDeleteTable (
>      switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK)
>      {
>      case ACPI_TABLE_ORIGIN_MAPPED:
> +
>          AcpiOsUnmapMemory (TableDesc->Pointer, TableDesc->Length);
>          break;
>
>      case ACPI_TABLE_ORIGIN_ALLOCATED:
> +
>          ACPI_FREE (TableDesc->Pointer);
>          break;
>
>      /* Not mapped or allocated, there is nothing we can do */
>
>      default:
> +
>          return;
>      }
>
> diff --git a/src/acpica/source/components/tables/tbprint.c b/src/acpica/source/components/tables/tbprint.c
> new file mode 100644
> index 0000000..d1d4bc9
> --- /dev/null
> +++ b/src/acpica/source/components/tables/tbprint.c
> @@ -0,0 +1,337 @@
> +/******************************************************************************
> + *
> + * Module Name: tbprint - Table output utilities
> + *
> + *****************************************************************************/
> +
> +/******************************************************************************
> + *
> + * 1. Copyright Notice
> + *
> + * Some or all of this work - Copyright (c) 1999 - 2013, 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.
> + *
> + *****************************************************************************/
> +
> +#define __TBPRINT_C__
> +
> +#include "acpi.h"
> +#include "accommon.h"
> +#include "actables.h"
> +
> +#define _COMPONENT          ACPI_TABLES
> +        ACPI_MODULE_NAME    ("tbprint")
> +
> +
> +/* Local prototypes */
> +
> +static void
> +AcpiTbFixString (
> +    char                    *String,
> +    ACPI_SIZE               Length);
> +
> +static void
> +AcpiTbCleanupTableHeader (
> +    ACPI_TABLE_HEADER       *OutHeader,
> +    ACPI_TABLE_HEADER       *Header);
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiTbFixString
> + *
> + * PARAMETERS:  String              - String to be repaired
> + *              Length              - Maximum length
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Replace every non-printable or non-ascii byte in the string
> + *              with a question mark '?'.
> + *
> + ******************************************************************************/
> +
> +static void
> +AcpiTbFixString (
> +    char                    *String,
> +    ACPI_SIZE               Length)
> +{
> +
> +    while (Length && *String)
> +    {
> +        if (!ACPI_IS_PRINT (*String))
> +        {
> +            *String = '?';
> +        }
> +        String++;
> +        Length--;
> +    }
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiTbCleanupTableHeader
> + *
> + * PARAMETERS:  OutHeader           - Where the cleaned header is returned
> + *              Header              - Input ACPI table header
> + *
> + * RETURN:      Returns the cleaned header in OutHeader
> + *
> + * DESCRIPTION: Copy the table header and ensure that all "string" fields in
> + *              the header consist of printable characters.
> + *
> + ******************************************************************************/
> +
> +static void
> +AcpiTbCleanupTableHeader (
> +    ACPI_TABLE_HEADER       *OutHeader,
> +    ACPI_TABLE_HEADER       *Header)
> +{
> +
> +    ACPI_MEMCPY (OutHeader, Header, sizeof (ACPI_TABLE_HEADER));
> +
> +    AcpiTbFixString (OutHeader->Signature, ACPI_NAME_SIZE);
> +    AcpiTbFixString (OutHeader->OemId, ACPI_OEM_ID_SIZE);
> +    AcpiTbFixString (OutHeader->OemTableId, ACPI_OEM_TABLE_ID_SIZE);
> +    AcpiTbFixString (OutHeader->AslCompilerId, ACPI_NAME_SIZE);
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiTbPrintTableHeader
> + *
> + * PARAMETERS:  Address             - Table physical address
> + *              Header              - Table header
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Print an ACPI table header. Special cases for FACS and RSDP.
> + *
> + ******************************************************************************/
> +
> +void
> +AcpiTbPrintTableHeader (
> +    ACPI_PHYSICAL_ADDRESS   Address,
> +    ACPI_TABLE_HEADER       *Header)
> +{
> +    ACPI_TABLE_HEADER       LocalHeader;
> +
> +
> +    /*
> +     * The reason that the Address is cast to a void pointer is so that we
> +     * can use %p which will work properly on both 32-bit and 64-bit hosts.
> +     */
> +    if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS))
> +    {
> +        /* FACS only has signature and length fields */
> +
> +        ACPI_INFO ((AE_INFO, "%4.4s %p %05X",
> +            Header->Signature, ACPI_CAST_PTR (void, Address),
> +            Header->Length));
> +    }
> +    else if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_RSDP))
> +    {
> +        /* RSDP has no common fields */
> +
> +        ACPI_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 %p %05X (v%.2d %6.6s)",
> +            ACPI_CAST_PTR (void, Address),
> +            (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision > 0) ?
> +                ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Length : 20,
> +            ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision,
> +            LocalHeader.OemId));
> +    }
> +    else
> +    {
> +        /* Standard ACPI table with full common header */
> +
> +        AcpiTbCleanupTableHeader (&LocalHeader, Header);
> +
> +        ACPI_INFO ((AE_INFO,
> +            "%4.4s %p %05X (v%.2d %6.6s %8.8s %08X %4.4s %08X)",
> +            LocalHeader.Signature, ACPI_CAST_PTR (void, Address),
> +            LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId,
> +            LocalHeader.OemTableId, LocalHeader.OemRevision,
> +            LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
> +    }
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiTbValidateChecksum
> + *
> + * PARAMETERS:  Table               - ACPI table to verify
> + *              Length              - Length of entire table
> + *
> + * RETURN:      Status
> + *
> + * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns
> + *              exception on bad checksum.
> + *
> + ******************************************************************************/
> +
> +ACPI_STATUS
> +AcpiTbVerifyChecksum (
> +    ACPI_TABLE_HEADER       *Table,
> +    UINT32                  Length)
> +{
> +    UINT8                   Checksum;
> +
> +
> +    /* Compute the checksum on the table */
> +
> +    Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Length);
> +
> +    /* Checksum ok? (should be zero) */
> +
> +    if (Checksum)
> +    {
> +        ACPI_BIOS_WARNING ((AE_INFO,
> +            "Incorrect checksum in table [%4.4s] - 0x%2.2X, "
> +            "should be 0x%2.2X",
> +            Table->Signature, Table->Checksum,
> +            (UINT8) (Table->Checksum - Checksum)));
> +
> +#if (ACPI_CHECKSUM_ABORT)
> +        return (AE_BAD_CHECKSUM);
> +#endif
> +    }
> +
> +    return (AE_OK);
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiTbChecksum
> + *
> + * PARAMETERS:  Buffer          - Pointer to memory region to be checked
> + *              Length          - Length of this memory region
> + *
> + * RETURN:      Checksum (UINT8)
> + *
> + * DESCRIPTION: Calculates circular checksum of memory region.
> + *
> + ******************************************************************************/
> +
> +UINT8
> +AcpiTbChecksum (
> +    UINT8                   *Buffer,
> +    UINT32                  Length)
> +{
> +    UINT8                   Sum = 0;
> +    UINT8                   *End = Buffer + Length;
> +
> +
> +    while (Buffer < End)
> +    {
> +        Sum = (UINT8) (Sum + *(Buffer++));
> +    }
> +
> +    return (Sum);
> +}
> diff --git a/src/acpica/source/components/tables/tbutils.c b/src/acpica/source/components/tables/tbutils.c
> index a70233e..1d4a538 100644
> --- a/src/acpica/source/components/tables/tbutils.c
> +++ b/src/acpica/source/components/tables/tbutils.c
> @@ -1,6 +1,6 @@
>  /******************************************************************************
>   *
> - * Module Name: tbutils   - table utilities
> + * Module Name: tbutils - ACPI Table utilities
>   *
>   *****************************************************************************/
>
> @@ -125,16 +125,6 @@
>
>  /* Local prototypes */
>
> -static void
> -AcpiTbFixString (
> -    char                    *String,
> -    ACPI_SIZE               Length);
> -
> -static void
> -AcpiTbCleanupTableHeader (
> -    ACPI_TABLE_HEADER       *OutHeader,
> -    ACPI_TABLE_HEADER       *Header);
> -
>  static ACPI_PHYSICAL_ADDRESS
>  AcpiTbGetRootTableEntry (
>      UINT8                   *TableEntry,
> @@ -206,207 +196,6 @@ AcpiTbTablesLoaded (
>
>  /*******************************************************************************
>   *
> - * FUNCTION:    AcpiTbFixString
> - *
> - * PARAMETERS:  String              - String to be repaired
> - *              Length              - Maximum length
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Replace every non-printable or non-ascii byte in the string
> - *              with a question mark '?'.
> - *
> - ******************************************************************************/
> -
> -static void
> -AcpiTbFixString (
> -    char                    *String,
> -    ACPI_SIZE               Length)
> -{
> -
> -    while (Length && *String)
> -    {
> -        if (!ACPI_IS_PRINT (*String))
> -        {
> -            *String = '?';
> -        }
> -        String++;
> -        Length--;
> -    }
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiTbCleanupTableHeader
> - *
> - * PARAMETERS:  OutHeader           - Where the cleaned header is returned
> - *              Header              - Input ACPI table header
> - *
> - * RETURN:      Returns the cleaned header in OutHeader
> - *
> - * DESCRIPTION: Copy the table header and ensure that all "string" fields in
> - *              the header consist of printable characters.
> - *
> - ******************************************************************************/
> -
> -static void
> -AcpiTbCleanupTableHeader (
> -    ACPI_TABLE_HEADER       *OutHeader,
> -    ACPI_TABLE_HEADER       *Header)
> -{
> -
> -    ACPI_MEMCPY (OutHeader, Header, sizeof (ACPI_TABLE_HEADER));
> -
> -    AcpiTbFixString (OutHeader->Signature, ACPI_NAME_SIZE);
> -    AcpiTbFixString (OutHeader->OemId, ACPI_OEM_ID_SIZE);
> -    AcpiTbFixString (OutHeader->OemTableId, ACPI_OEM_TABLE_ID_SIZE);
> -    AcpiTbFixString (OutHeader->AslCompilerId, ACPI_NAME_SIZE);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiTbPrintTableHeader
> - *
> - * PARAMETERS:  Address             - Table physical address
> - *              Header              - Table header
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Print an ACPI table header. Special cases for FACS and RSDP.
> - *
> - ******************************************************************************/
> -
> -void
> -AcpiTbPrintTableHeader (
> -    ACPI_PHYSICAL_ADDRESS   Address,
> -    ACPI_TABLE_HEADER       *Header)
> -{
> -    ACPI_TABLE_HEADER       LocalHeader;
> -
> -
> -    /*
> -     * The reason that the Address is cast to a void pointer is so that we
> -     * can use %p which will work properly on both 32-bit and 64-bit hosts.
> -     */
> -    if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_FACS))
> -    {
> -        /* FACS only has signature and length fields */
> -
> -        ACPI_INFO ((AE_INFO, "%4.4s %p %05X",
> -            Header->Signature, ACPI_CAST_PTR (void, Address),
> -            Header->Length));
> -    }
> -    else if (ACPI_COMPARE_NAME (Header->Signature, ACPI_SIG_RSDP))
> -    {
> -        /* RSDP has no common fields */
> -
> -        ACPI_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 %p %05X (v%.2d %6.6s)",
> -            ACPI_CAST_PTR (void, Address),
> -            (ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision > 0) ?
> -                ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Length : 20,
> -            ACPI_CAST_PTR (ACPI_TABLE_RSDP, Header)->Revision,
> -            LocalHeader.OemId));
> -    }
> -    else
> -    {
> -        /* Standard ACPI table with full common header */
> -
> -        AcpiTbCleanupTableHeader (&LocalHeader, Header);
> -
> -        ACPI_INFO ((AE_INFO,
> -            "%4.4s %p %05X (v%.2d %6.6s %8.8s %08X %4.4s %08X)",
> -            LocalHeader.Signature, ACPI_CAST_PTR (void, Address),
> -            LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId,
> -            LocalHeader.OemTableId, LocalHeader.OemRevision,
> -            LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
> -    }
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiTbValidateChecksum
> - *
> - * PARAMETERS:  Table               - ACPI table to verify
> - *              Length              - Length of entire table
> - *
> - * RETURN:      Status
> - *
> - * DESCRIPTION: Verifies that the table checksums to zero. Optionally returns
> - *              exception on bad checksum.
> - *
> - ******************************************************************************/
> -
> -ACPI_STATUS
> -AcpiTbVerifyChecksum (
> -    ACPI_TABLE_HEADER       *Table,
> -    UINT32                  Length)
> -{
> -    UINT8                   Checksum;
> -
> -
> -    /* Compute the checksum on the table */
> -
> -    Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Length);
> -
> -    /* Checksum ok? (should be zero) */
> -
> -    if (Checksum)
> -    {
> -        ACPI_BIOS_WARNING ((AE_INFO,
> -            "Incorrect checksum in table [%4.4s] - 0x%2.2X, "
> -            "should be 0x%2.2X",
> -            Table->Signature, Table->Checksum,
> -            (UINT8) (Table->Checksum - Checksum)));
> -
> -#if (ACPI_CHECKSUM_ABORT)
> -        return (AE_BAD_CHECKSUM);
> -#endif
> -    }
> -
> -    return (AE_OK);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiTbChecksum
> - *
> - * PARAMETERS:  Buffer          - Pointer to memory region to be checked
> - *              Length          - Length of this memory region
> - *
> - * RETURN:      Checksum (UINT8)
> - *
> - * DESCRIPTION: Calculates circular checksum of memory region.
> - *
> - ******************************************************************************/
> -
> -UINT8
> -AcpiTbChecksum (
> -    UINT8                   *Buffer,
> -    UINT32                  Length)
> -{
> -    UINT8                   Sum = 0;
> -    UINT8                   *End = Buffer + Length;
> -
> -
> -    while (Buffer < End)
> -    {
> -        Sum = (UINT8) (Sum + *(Buffer++));
> -    }
> -
> -    return (Sum);
> -}
> -
> -
> -/*******************************************************************************
> - *
>   * FUNCTION:    AcpiTbCheckDsdtHeader
>   *
>   * PARAMETERS:  None
> diff --git a/src/acpica/source/components/tables/tbxfload.c b/src/acpica/source/components/tables/tbxfload.c
> index b7a7c52..734d9a6 100644
> --- a/src/acpica/source/components/tables/tbxfload.c
> +++ b/src/acpica/source/components/tables/tbxfload.c
> @@ -264,6 +264,18 @@ AcpiTbLoadNamespace (
>              continue;
>          }
>
> +        /*
> +         * Optionally do not load any SSDTs from the RSDT/XSDT. This can
> +         * be useful for debugging ACPI problems on some machines.
> +         */
> +        if (AcpiGbl_DisableSsdtTableLoad)
> +        {
> +            ACPI_INFO ((AE_INFO, "Ignoring %4.4s at %p",
> +                AcpiGbl_RootTableList.Tables[i].Signature.Ascii,
> +                ACPI_CAST_PTR (void, AcpiGbl_RootTableList.Tables[i].Address)));
> +            continue;
> +        }
> +
>          /* Ignore errors while loading tables, get as many as possible */
>
>          (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES);
> diff --git a/src/acpica/source/components/utilities/utbuffer.c b/src/acpica/source/components/utilities/utbuffer.c
> new file mode 100644
> index 0000000..13681c5
> --- /dev/null
> +++ b/src/acpica/source/components/utilities/utbuffer.c
> @@ -0,0 +1,292 @@
> +/******************************************************************************
> + *
> + * Module Name: utbuffer - Buffer dump routines
> + *
> + *****************************************************************************/
> +
> +/******************************************************************************
> + *
> + * 1. Copyright Notice
> + *
> + * Some or all of this work - Copyright (c) 1999 - 2013, 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.
> + *
> + *****************************************************************************/
> +
> +#define __UTBUFFER_C__
> +
> +#include "acpi.h"
> +#include "accommon.h"
> +
> +#define _COMPONENT          ACPI_UTILITIES
> +        ACPI_MODULE_NAME    ("utbuffer")
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtDumpBuffer
> + *
> + * PARAMETERS:  Buffer              - Buffer to dump
> + *              Count               - Amount to dump, in bytes
> + *              Display             - BYTE, WORD, DWORD, or QWORD display:
> + *                                      DB_BYTE_DISPLAY
> + *                                      DB_WORD_DISPLAY
> + *                                      DB_DWORD_DISPLAY
> + *                                      DB_QWORD_DISPLAY
> + *              BaseOffset          - Beginning buffer offset (display only)
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Generic dump buffer in both hex and ascii.
> + *
> + ******************************************************************************/
> +
> +void
> +AcpiUtDumpBuffer (
> +    UINT8                   *Buffer,
> +    UINT32                  Count,
> +    UINT32                  Display,
> +    UINT32                  BaseOffset)
> +{
> +    UINT32                  i = 0;
> +    UINT32                  j;
> +    UINT32                  Temp32;
> +    UINT8                   BufChar;
> +
> +
> +    if (!Buffer)
> +    {
> +        AcpiOsPrintf ("Null Buffer Pointer in DumpBuffer!\n");
> +        return;
> +    }
> +
> +    if ((Count < 4) || (Count & 0x01))
> +    {
> +        Display = DB_BYTE_DISPLAY;
> +    }
> +
> +    /* Nasty little dump buffer routine! */
> +
> +    while (i < Count)
> +    {
> +        /* Print current offset */
> +
> +        AcpiOsPrintf ("%6.4X: ", (BaseOffset + i));
> +
> +        /* Print 16 hex chars */
> +
> +        for (j = 0; j < 16;)
> +        {
> +            if (i + j >= Count)
> +            {
> +                /* Dump fill spaces */
> +
> +                AcpiOsPrintf ("%*s", ((Display * 2) + 1), " ");
> +                j += Display;
> +                continue;
> +            }
> +
> +            switch (Display)
> +            {
> +            case DB_BYTE_DISPLAY:
> +            default:    /* Default is BYTE display */
> +
> +                AcpiOsPrintf ("%02X ", Buffer[(ACPI_SIZE) i + j]);
> +                break;
> +
> +            case DB_WORD_DISPLAY:
> +
> +                ACPI_MOVE_16_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
> +                AcpiOsPrintf ("%04X ", Temp32);
> +                break;
> +
> +            case DB_DWORD_DISPLAY:
> +
> +                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
> +                AcpiOsPrintf ("%08X ", Temp32);
> +                break;
> +
> +            case DB_QWORD_DISPLAY:
> +
> +                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
> +                AcpiOsPrintf ("%08X", Temp32);
> +
> +                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j + 4]);
> +                AcpiOsPrintf ("%08X ", Temp32);
> +                break;
> +            }
> +
> +            j += Display;
> +        }
> +
> +        /*
> +         * Print the ASCII equivalent characters but watch out for the bad
> +         * unprintable ones (printable chars are 0x20 through 0x7E)
> +         */
> +        AcpiOsPrintf (" ");
> +        for (j = 0; j < 16; j++)
> +        {
> +            if (i + j >= Count)
> +            {
> +                AcpiOsPrintf ("\n");
> +                return;
> +            }
> +
> +            BufChar = Buffer[(ACPI_SIZE) i + j];
> +            if (ACPI_IS_PRINT (BufChar))
> +            {
> +                AcpiOsPrintf ("%c", BufChar);
> +            }
> +            else
> +            {
> +                AcpiOsPrintf (".");
> +            }
> +        }
> +
> +        /* Done with that line. */
> +
> +        AcpiOsPrintf ("\n");
> +        i += 16;
> +    }
> +
> +    return;
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtDebugDumpBuffer
> + *
> + * PARAMETERS:  Buffer              - Buffer to dump
> + *              Count               - Amount to dump, in bytes
> + *              Display             - BYTE, WORD, DWORD, or QWORD display:
> + *                                      DB_BYTE_DISPLAY
> + *                                      DB_WORD_DISPLAY
> + *                                      DB_DWORD_DISPLAY
> + *                                      DB_QWORD_DISPLAY
> + *              ComponentID         - Caller's component ID
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Generic dump buffer in both hex and ascii.
> + *
> + ******************************************************************************/
> +
> +void
> +AcpiUtDebugDumpBuffer (
> +    UINT8                   *Buffer,
> +    UINT32                  Count,
> +    UINT32                  Display,
> +    UINT32                  ComponentId)
> +{
> +
> +    /* Only dump the buffer if tracing is enabled */
> +
> +    if (!((ACPI_LV_TABLES & AcpiDbgLevel) &&
> +        (ComponentId & AcpiDbgLayer)))
> +    {
> +        return;
> +    }
> +
> +    AcpiUtDumpBuffer (Buffer, Count, Display, 0);
> +}
> diff --git a/src/acpica/source/components/utilities/utcopy.c b/src/acpica/source/components/utilities/utcopy.c
> index 1f4bcdf..83dcb98 100644
> --- a/src/acpica/source/components/utilities/utcopy.c
> +++ b/src/acpica/source/components/utilities/utcopy.c
> @@ -244,7 +244,6 @@ AcpiUtCopyIsimpleToEsimple (
>              (ACPI_SIZE) InternalObject->String.Length + 1);
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          ExternalObject->Buffer.Pointer = DataSpace;
> @@ -257,13 +256,11 @@ AcpiUtCopyIsimpleToEsimple (
>              InternalObject->Buffer.Length);
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          ExternalObject->Integer.Value = InternalObject->Integer.Value;
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_REFERENCE:
>
>          /* This is an object reference. */
> @@ -271,7 +268,6 @@ AcpiUtCopyIsimpleToEsimple (
>          switch (InternalObject->Reference.Class)
>          {
>          case ACPI_REFCLASS_NAME:
> -
>              /*
>               * For namepath, return the object handle ("reference")
>               * We are referring to the namespace node
> @@ -290,7 +286,6 @@ AcpiUtCopyIsimpleToEsimple (
>          }
>          break;
>
> -
>      case ACPI_TYPE_PROCESSOR:
>
>          ExternalObject->Processor.ProcId =
> @@ -301,7 +296,6 @@ AcpiUtCopyIsimpleToEsimple (
>              InternalObject->Processor.Length;
>          break;
>
> -
>      case ACPI_TYPE_POWER:
>
>          ExternalObject->PowerResource.SystemLevel =
> @@ -311,7 +305,6 @@ AcpiUtCopyIsimpleToEsimple (
>              InternalObject->PowerResource.ResourceOrder;
>          break;
>
> -
>      default:
>          /*
>           * There is no corresponding external object type
> @@ -363,7 +356,6 @@ AcpiUtCopyIelementToEelement (
>      switch (ObjectType)
>      {
>      case ACPI_COPY_TYPE_SIMPLE:
> -
>          /*
>           * This is a simple or null object
>           */
> @@ -375,9 +367,7 @@ AcpiUtCopyIelementToEelement (
>          }
>          break;
>
> -
>      case ACPI_COPY_TYPE_PACKAGE:
> -
>          /*
>           * Build the package object
>           */
> @@ -400,8 +390,8 @@ AcpiUtCopyIelementToEelement (
>                              sizeof (ACPI_OBJECT));
>          break;
>
> -
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> @@ -586,6 +576,7 @@ AcpiUtCopyEsimpleToIsimple (
>          return_ACPI_STATUS (AE_OK);
>
>      default:
> +
>          /* All other types are not supported */
>
>          ACPI_ERROR ((AE_INFO,
> @@ -618,7 +609,6 @@ AcpiUtCopyEsimpleToIsimple (
>          InternalObject->String.Length  = ExternalObject->String.Length;
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          InternalObject->Buffer.Pointer =
> @@ -639,7 +629,6 @@ AcpiUtCopyEsimpleToIsimple (
>          InternalObject->Buffer.Flags |= AOPOBJ_DATA_VALID;
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>
>          InternalObject->Integer.Value   = ExternalObject->Integer.Value;
> @@ -654,7 +643,9 @@ AcpiUtCopyEsimpleToIsimple (
>          break;
>
>      default:
> +
>          /* Other types can't get here */
> +
>          break;
>      }
>
> @@ -927,7 +918,9 @@ AcpiUtCopySimpleObject (
>          break;
>
>      default:
> +
>          /* Nothing to do for other simple objects */
> +
>          break;
>      }
>
> @@ -1001,9 +994,7 @@ AcpiUtCopyIelementToIelement (
>          }
>          break;
>
> -
>      case ACPI_COPY_TYPE_PACKAGE:
> -
>          /*
>           * This object is a package - go down another nesting level
>           * Create and build the package object
> @@ -1025,8 +1016,8 @@ AcpiUtCopyIelementToIelement (
>          *ThisTargetPtr = TargetObject;
>          break;
>
> -
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> diff --git a/src/acpica/source/components/utilities/utdebug.c b/src/acpica/source/components/utilities/utdebug.c
> index 7b3ac6b..88fa4d6 100644
> --- a/src/acpica/source/components/utilities/utdebug.c
> +++ b/src/acpica/source/components/utilities/utdebug.c
> @@ -1,6 +1,6 @@
>  /******************************************************************************
>   *
> - * Module Name: utdebug - Debug print routines
> + * Module Name: utdebug - Debug print/trace routines
>   *
>   *****************************************************************************/
>
> @@ -685,168 +685,3 @@ AcpiUtPtrExit (
>  }
>
>  #endif
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtDumpBuffer
> - *
> - * PARAMETERS:  Buffer              - Buffer to dump
> - *              Count               - Amount to dump, in bytes
> - *              Display             - BYTE, WORD, DWORD, or QWORD display
> - *              Offset              - Beginning buffer offset (display only)
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Generic dump buffer in both hex and ascii.
> - *
> - ******************************************************************************/
> -
> -void
> -AcpiUtDumpBuffer (
> -    UINT8                   *Buffer,
> -    UINT32                  Count,
> -    UINT32                  Display,
> -    UINT32                  BaseOffset)
> -{
> -    UINT32                  i = 0;
> -    UINT32                  j;
> -    UINT32                  Temp32;
> -    UINT8                   BufChar;
> -
> -
> -    if (!Buffer)
> -    {
> -        AcpiOsPrintf ("Null Buffer Pointer in DumpBuffer!\n");
> -        return;
> -    }
> -
> -    if ((Count < 4) || (Count & 0x01))
> -    {
> -        Display = DB_BYTE_DISPLAY;
> -    }
> -
> -    /* Nasty little dump buffer routine! */
> -
> -    while (i < Count)
> -    {
> -        /* Print current offset */
> -
> -        AcpiOsPrintf ("%6.4X: ", (BaseOffset + i));
> -
> -        /* Print 16 hex chars */
> -
> -        for (j = 0; j < 16;)
> -        {
> -            if (i + j >= Count)
> -            {
> -                /* Dump fill spaces */
> -
> -                AcpiOsPrintf ("%*s", ((Display * 2) + 1), " ");
> -                j += Display;
> -                continue;
> -            }
> -
> -            switch (Display)
> -            {
> -            case DB_BYTE_DISPLAY:
> -            default:    /* Default is BYTE display */
> -
> -                AcpiOsPrintf ("%02X ", Buffer[(ACPI_SIZE) i + j]);
> -                break;
> -
> -
> -            case DB_WORD_DISPLAY:
> -
> -                ACPI_MOVE_16_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
> -                AcpiOsPrintf ("%04X ", Temp32);
> -                break;
> -
> -
> -            case DB_DWORD_DISPLAY:
> -
> -                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
> -                AcpiOsPrintf ("%08X ", Temp32);
> -                break;
> -
> -
> -            case DB_QWORD_DISPLAY:
> -
> -                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j]);
> -                AcpiOsPrintf ("%08X", Temp32);
> -
> -                ACPI_MOVE_32_TO_32 (&Temp32, &Buffer[(ACPI_SIZE) i + j + 4]);
> -                AcpiOsPrintf ("%08X ", Temp32);
> -                break;
> -            }
> -
> -            j += Display;
> -        }
> -
> -        /*
> -         * Print the ASCII equivalent characters but watch out for the bad
> -         * unprintable ones (printable chars are 0x20 through 0x7E)
> -         */
> -        AcpiOsPrintf (" ");
> -        for (j = 0; j < 16; j++)
> -        {
> -            if (i + j >= Count)
> -            {
> -                AcpiOsPrintf ("\n");
> -                return;
> -            }
> -
> -            BufChar = Buffer[(ACPI_SIZE) i + j];
> -            if (ACPI_IS_PRINT (BufChar))
> -            {
> -                AcpiOsPrintf ("%c", BufChar);
> -            }
> -            else
> -            {
> -                AcpiOsPrintf (".");
> -            }
> -        }
> -
> -        /* Done with that line. */
> -
> -        AcpiOsPrintf ("\n");
> -        i += 16;
> -    }
> -
> -    return;
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtDebugDumpBuffer
> - *
> - * PARAMETERS:  Buffer              - Buffer to dump
> - *              Count               - Amount to dump, in bytes
> - *              Display             - BYTE, WORD, DWORD, or QWORD display
> - *              ComponentID         - Caller's component ID
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Generic dump buffer in both hex and ascii.
> - *
> - ******************************************************************************/
> -
> -void
> -AcpiUtDebugDumpBuffer (
> -    UINT8                   *Buffer,
> -    UINT32                  Count,
> -    UINT32                  Display,
> -    UINT32                  ComponentId)
> -{
> -
> -    /* Only dump the buffer if tracing is enabled */
> -
> -    if (!((ACPI_LV_TABLES & AcpiDbgLevel) &&
> -        (ComponentId & AcpiDbgLayer)))
> -    {
> -        return;
> -    }
> -
> -    AcpiUtDumpBuffer (Buffer, Count, Display, 0);
> -}
> diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c
> index 902ede1..d4f68b0 100644
> --- a/src/acpica/source/components/utilities/utdelete.c
> +++ b/src/acpica/source/components/utilities/utdelete.c
> @@ -190,7 +190,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "**** Buffer %p, ptr %p\n",
> @@ -206,7 +205,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_PACKAGE:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, " **** Package of count %X\n",
> @@ -222,7 +220,6 @@ AcpiUtDeleteInternalObj (
>          ObjPointer = Object->Package.Elements;
>          break;
>
> -
>      /*
>       * These objects have a possible list of notify handlers.
>       * Device object also may have a GPE block.
> @@ -250,7 +247,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_MUTEX:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
> @@ -274,7 +270,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_EVENT:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
> @@ -285,7 +280,6 @@ AcpiUtDeleteInternalObj (
>          Object->Event.OsSemaphore = NULL;
>          break;
>
> -
>      case ACPI_TYPE_METHOD:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
> @@ -301,7 +295,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_REGION:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
> @@ -370,7 +363,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_BUFFER_FIELD:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
> @@ -383,7 +375,6 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_BANK_FIELD:
>
>          ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS,
> @@ -396,8 +387,8 @@ AcpiUtDeleteInternalObj (
>          }
>          break;
>
> -
>      default:
> +
>          break;
>      }
>
> @@ -629,7 +620,6 @@ AcpiUtUpdateObjectReference (
>          case ACPI_TYPE_PROCESSOR:
>          case ACPI_TYPE_POWER:
>          case ACPI_TYPE_THERMAL:
> -
>              /*
>               * Update the notify objects for these types (if present)
>               * Two lists, system and device notify handlers.
> @@ -740,6 +730,7 @@ AcpiUtUpdateObjectReference (
>
>          case ACPI_TYPE_REGION:
>          default:
> +
>              break; /* No subobjects for all other types */
>          }
>
> diff --git a/src/acpica/source/components/utilities/uterror.c b/src/acpica/source/components/utilities/uterror.c
> new file mode 100644
> index 0000000..b3d1a8f
> --- /dev/null
> +++ b/src/acpica/source/components/utilities/uterror.c
> @@ -0,0 +1,399 @@
> +/*******************************************************************************
> + *
> + * Module Name: uterror - Various internal error/warning output functions
> + *
> + ******************************************************************************/
> +
> +/******************************************************************************
> + *
> + * 1. Copyright Notice
> + *
> + * Some or all of this work - Copyright (c) 1999 - 2013, 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.
> + *
> + *****************************************************************************/
> +
> +#define __UTERROR_C__
> +
> +#include "acpi.h"
> +#include "accommon.h"
> +#include "acnamesp.h"
> +
> +
> +#define _COMPONENT          ACPI_UTILITIES
> +        ACPI_MODULE_NAME    ("uterror")
> +
> +
> +/*
> + * This module contains internal error functions that may
> + * be configured out.
> + */
> +#if !defined (ACPI_NO_ERROR_MESSAGES)
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtPredefinedWarning
> + *
> + * PARAMETERS:  ModuleName      - Caller's module name (for error output)
> + *              LineNumber      - Caller's line number (for error output)
> + *              Pathname        - Full pathname to the node
> + *              NodeFlags       - From Namespace node for the method/object
> + *              Format          - Printf format string + additional args
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Warnings for the predefined validation module. Messages are
> + *              only emitted the first time a problem with a particular
> + *              method/object is detected. This prevents a flood of error
> + *              messages for methods that are repeatedly evaluated.
> + *
> + ******************************************************************************/
> +
> +void ACPI_INTERNAL_VAR_XFACE
> +AcpiUtPredefinedWarning (
> +    const char              *ModuleName,
> +    UINT32                  LineNumber,
> +    char                    *Pathname,
> +    UINT8                   NodeFlags,
> +    const char              *Format,
> +    ...)
> +{
> +    va_list                 ArgList;
> +
> +
> +    /*
> +     * Warning messages for this method/object will be disabled after the
> +     * first time a validation fails or an object is successfully repaired.
> +     */
> +    if (NodeFlags & ANOBJ_EVALUATED)
> +    {
> +        return;
> +    }
> +
> +    AcpiOsPrintf (ACPI_MSG_WARNING "%s: ", Pathname);
> +
> +    va_start (ArgList, Format);
> +    AcpiOsVprintf (Format, ArgList);
> +    ACPI_MSG_SUFFIX;
> +    va_end (ArgList);
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtPredefinedInfo
> + *
> + * PARAMETERS:  ModuleName      - Caller's module name (for error output)
> + *              LineNumber      - Caller's line number (for error output)
> + *              Pathname        - Full pathname to the node
> + *              NodeFlags       - From Namespace node for the method/object
> + *              Format          - Printf format string + additional args
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Info messages for the predefined validation module. Messages
> + *              are only emitted the first time a problem with a particular
> + *              method/object is detected. This prevents a flood of
> + *              messages for methods that are repeatedly evaluated.
> + *
> + ******************************************************************************/
> +
> +void ACPI_INTERNAL_VAR_XFACE
> +AcpiUtPredefinedInfo (
> +    const char              *ModuleName,
> +    UINT32                  LineNumber,
> +    char                    *Pathname,
> +    UINT8                   NodeFlags,
> +    const char              *Format,
> +    ...)
> +{
> +    va_list                 ArgList;
> +
> +
> +    /*
> +     * Warning messages for this method/object will be disabled after the
> +     * first time a validation fails or an object is successfully repaired.
> +     */
> +    if (NodeFlags & ANOBJ_EVALUATED)
> +    {
> +        return;
> +    }
> +
> +    AcpiOsPrintf (ACPI_MSG_INFO "%s: ", Pathname);
> +
> +    va_start (ArgList, Format);
> +    AcpiOsVprintf (Format, ArgList);
> +    ACPI_MSG_SUFFIX;
> +    va_end (ArgList);
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtPredefinedBiosError
> + *
> + * PARAMETERS:  ModuleName      - Caller's module name (for error output)
> + *              LineNumber      - Caller's line number (for error output)
> + *              Pathname        - Full pathname to the node
> + *              NodeFlags       - From Namespace node for the method/object
> + *              Format          - Printf format string + additional args
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: BIOS error message for predefined names. Messages
> + *              are only emitted the first time a problem with a particular
> + *              method/object is detected. This prevents a flood of
> + *              messages for methods that are repeatedly evaluated.
> + *
> + ******************************************************************************/
> +
> +void ACPI_INTERNAL_VAR_XFACE
> +AcpiUtPredefinedBiosError (
> +    const char              *ModuleName,
> +    UINT32                  LineNumber,
> +    char                    *Pathname,
> +    UINT8                   NodeFlags,
> +    const char              *Format,
> +    ...)
> +{
> +    va_list                 ArgList;
> +
> +
> +    /*
> +     * Warning messages for this method/object will be disabled after the
> +     * first time a validation fails or an object is successfully repaired.
> +     */
> +    if (NodeFlags & ANOBJ_EVALUATED)
> +    {
> +        return;
> +    }
> +
> +    AcpiOsPrintf (ACPI_MSG_BIOS_ERROR "%s: ", Pathname);
> +
> +    va_start (ArgList, Format);
> +    AcpiOsVprintf (Format, ArgList);
> +    ACPI_MSG_SUFFIX;
> +    va_end (ArgList);
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtNamespaceError
> + *
> + * PARAMETERS:  ModuleName          - Caller's module name (for error output)
> + *              LineNumber          - Caller's line number (for error output)
> + *              InternalName        - Name or path of the namespace node
> + *              LookupStatus        - Exception code from NS lookup
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Print error message with the full pathname for the NS node.
> + *
> + ******************************************************************************/
> +
> +void
> +AcpiUtNamespaceError (
> +    const char              *ModuleName,
> +    UINT32                  LineNumber,
> +    const char              *InternalName,
> +    ACPI_STATUS             LookupStatus)
> +{
> +    ACPI_STATUS             Status;
> +    UINT32                  BadName;
> +    char                    *Name = NULL;
> +
> +
> +    ACPI_MSG_REDIRECT_BEGIN;
> +    AcpiOsPrintf (ACPI_MSG_ERROR);
> +
> +    if (LookupStatus == AE_BAD_CHARACTER)
> +    {
> +        /* There is a non-ascii character in the name */
> +
> +        ACPI_MOVE_32_TO_32 (&BadName, ACPI_CAST_PTR (UINT32, InternalName));
> +        AcpiOsPrintf ("[0x%.8X] (NON-ASCII)", BadName);
> +    }
> +    else
> +    {
> +        /* Convert path to external format */
> +
> +        Status = AcpiNsExternalizeName (ACPI_UINT32_MAX,
> +                    InternalName, NULL, &Name);
> +
> +        /* Print target name */
> +
> +        if (ACPI_SUCCESS (Status))
> +        {
> +            AcpiOsPrintf ("[%s]", Name);
> +        }
> +        else
> +        {
> +            AcpiOsPrintf ("[COULD NOT EXTERNALIZE NAME]");
> +        }
> +
> +        if (Name)
> +        {
> +            ACPI_FREE (Name);
> +        }
> +    }
> +
> +    AcpiOsPrintf (" Namespace lookup failure, %s",
> +        AcpiFormatException (LookupStatus));
> +
> +    ACPI_MSG_SUFFIX;
> +    ACPI_MSG_REDIRECT_END;
> +}
> +
> +
> +/*******************************************************************************
> + *
> + * FUNCTION:    AcpiUtMethodError
> + *
> + * PARAMETERS:  ModuleName          - Caller's module name (for error output)
> + *              LineNumber          - Caller's line number (for error output)
> + *              Message             - Error message to use on failure
> + *              PrefixNode          - Prefix relative to the path
> + *              Path                - Path to the node (optional)
> + *              MethodStatus        - Execution status
> + *
> + * RETURN:      None
> + *
> + * DESCRIPTION: Print error message with the full pathname for the method.
> + *
> + ******************************************************************************/
> +
> +void
> +AcpiUtMethodError (
> +    const char              *ModuleName,
> +    UINT32                  LineNumber,
> +    const char              *Message,
> +    ACPI_NAMESPACE_NODE     *PrefixNode,
> +    const char              *Path,
> +    ACPI_STATUS             MethodStatus)
> +{
> +    ACPI_STATUS             Status;
> +    ACPI_NAMESPACE_NODE     *Node = PrefixNode;
> +
> +
> +    ACPI_MSG_REDIRECT_BEGIN;
> +    AcpiOsPrintf (ACPI_MSG_ERROR);
> +
> +    if (Path)
> +    {
> +        Status = AcpiNsGetNode (PrefixNode, Path, ACPI_NS_NO_UPSEARCH,
> +                    &Node);
> +        if (ACPI_FAILURE (Status))
> +        {
> +            AcpiOsPrintf ("[Could not get node by pathname]");
> +        }
> +    }
> +
> +    AcpiNsPrintNodePathname (Node, Message);
> +    AcpiOsPrintf (", %s", AcpiFormatException (MethodStatus));
> +
> +    ACPI_MSG_SUFFIX;
> +    ACPI_MSG_REDIRECT_END;
> +}
> +
> +#endif /* ACPI_NO_ERROR_MESSAGES */
> diff --git a/src/acpica/source/components/utilities/uteval.c b/src/acpica/source/components/utilities/uteval.c
> index cc2318e..90677b9 100644
> --- a/src/acpica/source/components/utilities/uteval.c
> +++ b/src/acpica/source/components/utilities/uteval.c
> @@ -208,22 +208,27 @@ AcpiUtEvaluateObject (
>      switch ((Info->ReturnObject)->Common.Type)
>      {
>      case ACPI_TYPE_INTEGER:
> +
>          ReturnBtype = ACPI_BTYPE_INTEGER;
>          break;
>
>      case ACPI_TYPE_BUFFER:
> +
>          ReturnBtype = ACPI_BTYPE_BUFFER;
>          break;
>
>      case ACPI_TYPE_STRING:
> +
>          ReturnBtype = ACPI_BTYPE_STRING;
>          break;
>
>      case ACPI_TYPE_PACKAGE:
> +
>          ReturnBtype = ACPI_BTYPE_PACKAGE;
>          break;
>
>      default:
> +
>          ReturnBtype = 0;
>          break;
>      }
> diff --git a/src/acpica/source/components/utilities/utexcep.c b/src/acpica/source/components/utilities/utexcep.c
> index b97263c..2d7c4e0 100644
> --- a/src/acpica/source/components/utilities/utexcep.c
> +++ b/src/acpica/source/components/utilities/utexcep.c
> @@ -239,6 +239,7 @@ AcpiUtValidateException (
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c
> index 0ef1838..7fec698 100644
> --- a/src/acpica/source/components/utilities/utids.c
> +++ b/src/acpica/source/components/utilities/utids.c
> @@ -447,14 +447,17 @@ AcpiUtExecute_CID (
>          switch (CidObjects[i]->Common.Type)
>          {
>          case ACPI_TYPE_INTEGER:
> +
>              StringAreaSize += ACPI_EISAID_STRING_SIZE;
>              break;
>
>          case ACPI_TYPE_STRING:
> +
>              StringAreaSize += CidObjects[i]->String.Length + 1;
>              break;
>
>          default:
> +
>              Status = AE_TYPE;
>              goto Cleanup;
>          }
> diff --git a/src/acpica/source/components/utilities/utmisc.c b/src/acpica/source/components/utilities/utmisc.c
> index de85b37..8f5e43c 100644
> --- a/src/acpica/source/components/utilities/utmisc.c
> +++ b/src/acpica/source/components/utilities/utmisc.c
> @@ -501,10 +501,12 @@ AcpiUtDisplayInitPathname (
>      switch (Type)
>      {
>      case ACPI_TYPE_METHOD:
> +
>          AcpiOsPrintf ("Executing    ");
>          break;
>
>      default:
> +
>          AcpiOsPrintf ("Initializing ");
>          break;
>      }
> diff --git a/src/acpica/source/components/utilities/utobject.c b/src/acpica/source/components/utilities/utobject.c
> index 1657edb..1129fa7 100644
> --- a/src/acpica/source/components/utilities/utobject.c
> +++ b/src/acpica/source/components/utilities/utobject.c
> @@ -212,6 +212,7 @@ AcpiUtCreateInternalObjectDbg (
>          break;
>
>      default:
> +
>          /* All others have no secondary object */
>          break;
>      }
> @@ -469,6 +470,7 @@ AcpiUtValidInternalObject (
>          return (TRUE);
>
>      default:
> +
>          ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
>                  "%p is not not an ACPI operand obj [%s]\n",
>                  Object, AcpiUtGetDescriptorName (Object)));
> @@ -628,13 +630,11 @@ AcpiUtGetSimpleObjectSize (
>          Length += (ACPI_SIZE) InternalObject->String.Length + 1;
>          break;
>
> -
>      case ACPI_TYPE_BUFFER:
>
>          Length += (ACPI_SIZE) InternalObject->Buffer.Length;
>          break;
>
> -
>      case ACPI_TYPE_INTEGER:
>      case ACPI_TYPE_PROCESSOR:
>      case ACPI_TYPE_POWER:
> @@ -643,13 +643,11 @@ AcpiUtGetSimpleObjectSize (
>
>          break;
>
> -
>      case ACPI_TYPE_LOCAL_REFERENCE:
>
>          switch (InternalObject->Reference.Class)
>          {
>          case ACPI_REFCLASS_NAME:
> -
>              /*
>               * Get the actual length of the full pathname to this object.
>               * The reference will be converted to the pathname to the object
> @@ -664,7 +662,6 @@ AcpiUtGetSimpleObjectSize (
>              break;
>
>          default:
> -
>              /*
>               * No other reference opcodes are supported.
>               * Notably, Locals and Args are not supported, but this may be
> @@ -679,7 +676,6 @@ AcpiUtGetSimpleObjectSize (
>          }
>          break;
>
> -
>      default:
>
>          ACPI_ERROR ((AE_INFO, "Cannot convert to external object - "
> @@ -728,7 +724,6 @@ AcpiUtGetElementLength (
>      switch (ObjectType)
>      {
>      case ACPI_COPY_TYPE_SIMPLE:
> -
>          /*
>           * Simple object - just get the size (Null object/entry is handled
>           * here also) and sum it into the running package length
> @@ -742,7 +737,6 @@ AcpiUtGetElementLength (
>          Info->Length += ObjectSpace;
>          break;
>
> -
>      case ACPI_COPY_TYPE_PACKAGE:
>
>          /* Package object - nothing much to do here, let the walk handle it */
> @@ -751,7 +745,6 @@ AcpiUtGetElementLength (
>          State->Pkg.ThisTargetObj = NULL;
>          break;
>
> -
>      default:
>
>          /* No other types allowed */
> diff --git a/src/acpica/source/components/utilities/utstring.c b/src/acpica/source/components/utilities/utstring.c
> index 2fd8dcd..e38deef 100644
> --- a/src/acpica/source/components/utilities/utstring.c
> +++ b/src/acpica/source/components/utilities/utstring.c
> @@ -292,10 +292,13 @@ AcpiUtStrtoul64 (
>      {
>      case ACPI_ANY_BASE:
>      case 16:
> +
>          break;
>
>      default:
> +
>          /* Invalid Base */
> +
>          return_ACPI_STATUS (AE_BAD_PARAMETER);
>      }
>
> @@ -495,36 +498,44 @@ AcpiUtPrintString (
>          switch (String[i])
>          {
>          case 0x07:
> +
>              AcpiOsPrintf ("\\a");       /* BELL */
>              break;
>
>          case 0x08:
> +
>              AcpiOsPrintf ("\\b");       /* BACKSPACE */
>              break;
>
>          case 0x0C:
> +
>              AcpiOsPrintf ("\\f");       /* FORMFEED */
>              break;
>
>          case 0x0A:
> +
>              AcpiOsPrintf ("\\n");       /* LINEFEED */
>              break;
>
>          case 0x0D:
> +
>              AcpiOsPrintf ("\\r");       /* CARRIAGE RETURN*/
>              break;
>
>          case 0x09:
> +
>              AcpiOsPrintf ("\\t");       /* HORIZONTAL TAB */
>              break;
>
>          case 0x0B:
> +
>              AcpiOsPrintf ("\\v");       /* VERTICAL TAB */
>              break;
>
>          case '\'':                      /* Single Quote */
>          case '\"':                      /* Double Quote */
>          case '\\':                      /* Backslash */
> +
>              AcpiOsPrintf ("\\%c", (int) String[i]);
>              break;
>
> @@ -602,7 +613,8 @@ AcpiUtValidAcpiChar (
>   *
>   * FUNCTION:    AcpiUtValidAcpiName
>   *
> - * PARAMETERS:  Name            - The name to be examined
> + * PARAMETERS:  Name            - The name to be examined. Does not have to
> + *                                be NULL terminated string.
>   *
>   * RETURN:      TRUE if the name is valid, FALSE otherwise
>   *
> @@ -615,7 +627,7 @@ AcpiUtValidAcpiChar (
>
>  BOOLEAN
>  AcpiUtValidAcpiName (
> -    UINT32                  Name)
> +    char                    *Name)
>  {
>      UINT32                  i;
>
> @@ -625,7 +637,7 @@ AcpiUtValidAcpiName (
>
>      for (i = 0; i < ACPI_NAME_SIZE; i++)
>      {
> -        if (!AcpiUtValidAcpiChar ((ACPI_CAST_PTR (char, &Name))[i], i))
> +        if (!AcpiUtValidAcpiChar (Name[i], i))
>          {
>              return (FALSE);
>          }
> diff --git a/src/acpica/source/components/utilities/uttrack.c b/src/acpica/source/components/utilities/uttrack.c
> index 85b258a..26a514b 100644
> --- a/src/acpica/source/components/utilities/uttrack.c
> +++ b/src/acpica/source/components/utilities/uttrack.c
> @@ -747,6 +747,7 @@ AcpiUtDumpAllocations (
>                      switch (ACPI_GET_DESCRIPTOR_TYPE (Descriptor))
>                      {
>                      case ACPI_DESC_TYPE_OPERAND:
> +
>                          if (Element->Size == sizeof (ACPI_OPERAND_OBJECT))
>                          {
>                              DescriptorType = ACPI_DESC_TYPE_OPERAND;
> @@ -754,6 +755,7 @@ AcpiUtDumpAllocations (
>                          break;
>
>                      case ACPI_DESC_TYPE_PARSER:
> +
>                          if (Element->Size == sizeof (ACPI_PARSE_OBJECT))
>                          {
>                              DescriptorType = ACPI_DESC_TYPE_PARSER;
> @@ -761,6 +763,7 @@ AcpiUtDumpAllocations (
>                          break;
>
>                      case ACPI_DESC_TYPE_NAMED:
> +
>                          if (Element->Size == sizeof (ACPI_NAMESPACE_NODE))
>                          {
>                              DescriptorType = ACPI_DESC_TYPE_NAMED;
> @@ -768,6 +771,7 @@ AcpiUtDumpAllocations (
>                          break;
>
>                      default:
> +
>                          break;
>                      }
>
> @@ -776,22 +780,26 @@ AcpiUtDumpAllocations (
>                      switch (DescriptorType)
>                      {
>                      case ACPI_DESC_TYPE_OPERAND:
> +
>                          AcpiOsPrintf ("%12.12s  RefCount 0x%04X\n",
>                              AcpiUtGetTypeName (Descriptor->Object.Common.Type),
>                              Descriptor->Object.Common.ReferenceCount);
>                          break;
>
>                      case ACPI_DESC_TYPE_PARSER:
> +
>                          AcpiOsPrintf ("AmlOpcode 0x%04hX\n",
>                              Descriptor->Op.Asl.AmlOpcode);
>                          break;
>
>                      case ACPI_DESC_TYPE_NAMED:
> +
>                          AcpiOsPrintf ("%4.4s\n",
>                              AcpiUtGetNodeName (&Descriptor->Node));
>                          break;
>
>                      default:
> +
>                          AcpiOsPrintf ( "\n");
>                          break;
>                      }
> diff --git a/src/acpica/source/components/utilities/utxferror.c b/src/acpica/source/components/utilities/utxferror.c
> index b50cc5c..3413050 100644
> --- a/src/acpica/source/components/utilities/utxferror.c
> +++ b/src/acpica/source/components/utilities/utxferror.c
> @@ -117,7 +117,6 @@
>
>  #include "acpi.h"
>  #include "accommon.h"
> -#include "acnamesp.h"
>
>
>  #define _COMPONENT          ACPI_UTILITIES
> @@ -126,48 +125,7 @@
>  /*
>   * This module is used for the in-kernel ACPICA as well as the ACPICA
>   * tools/applications.
> - *
> - * For the iASL compiler case, the output is redirected to stderr so that
> - * any of the various ACPI errors and warnings do not appear in the output
> - * files, for either the compiler or disassembler portions of the tool.
> - */
> -#ifdef ACPI_ASL_COMPILER
> -#include <stdio.h>
> -
> -extern FILE                 *AcpiGbl_OutputFile;
> -
> -#define ACPI_MSG_REDIRECT_BEGIN \
> -    FILE                    *OutputFile = AcpiGbl_OutputFile; \
> -    AcpiOsRedirectOutput (stderr);
> -
> -#define ACPI_MSG_REDIRECT_END \
> -    AcpiOsRedirectOutput (OutputFile);
> -
> -#else
> -/*
> - * non-iASL case - no redirection, nothing to do
> - */
> -#define ACPI_MSG_REDIRECT_BEGIN
> -#define ACPI_MSG_REDIRECT_END
> -#endif
> -
> -/*
> - * Common message prefixes
>   */
> -#define ACPI_MSG_ERROR          "ACPI Error: "
> -#define ACPI_MSG_EXCEPTION      "ACPI Exception: "
> -#define ACPI_MSG_WARNING        "ACPI Warning: "
> -#define ACPI_MSG_INFO           "ACPI: "
> -
> -#define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
> -#define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
> -
> -/*
> - * Common message suffix
> - */
> -#define ACPI_MSG_SUFFIX \
> -    AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
> -
>
>  /*******************************************************************************
>   *
> @@ -403,278 +361,3 @@ AcpiBiosWarning (
>  }
>
>  ACPI_EXPORT_SYMBOL (AcpiBiosWarning)
> -
> -
> -/*
> - * The remainder of this module contains internal error functions that may
> - * be configured out.
> - */
> -#if !defined (ACPI_NO_ERROR_MESSAGES) && !defined (ACPI_BIN_APP)
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtPredefinedWarning
> - *
> - * PARAMETERS:  ModuleName      - Caller's module name (for error output)
> - *              LineNumber      - Caller's line number (for error output)
> - *              Pathname        - Full pathname to the node
> - *              NodeFlags       - From Namespace node for the method/object
> - *              Format          - Printf format string + additional args
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Warnings for the predefined validation module. Messages are
> - *              only emitted the first time a problem with a particular
> - *              method/object is detected. This prevents a flood of error
> - *              messages for methods that are repeatedly evaluated.
> - *
> - ******************************************************************************/
> -
> -void ACPI_INTERNAL_VAR_XFACE
> -AcpiUtPredefinedWarning (
> -    const char              *ModuleName,
> -    UINT32                  LineNumber,
> -    char                    *Pathname,
> -    UINT8                   NodeFlags,
> -    const char              *Format,
> -    ...)
> -{
> -    va_list                 ArgList;
> -
> -
> -    /*
> -     * Warning messages for this method/object will be disabled after the
> -     * first time a validation fails or an object is successfully repaired.
> -     */
> -    if (NodeFlags & ANOBJ_EVALUATED)
> -    {
> -        return;
> -    }
> -
> -    AcpiOsPrintf (ACPI_MSG_WARNING "%s: ", Pathname);
> -
> -    va_start (ArgList, Format);
> -    AcpiOsVprintf (Format, ArgList);
> -    ACPI_MSG_SUFFIX;
> -    va_end (ArgList);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtPredefinedInfo
> - *
> - * PARAMETERS:  ModuleName      - Caller's module name (for error output)
> - *              LineNumber      - Caller's line number (for error output)
> - *              Pathname        - Full pathname to the node
> - *              NodeFlags       - From Namespace node for the method/object
> - *              Format          - Printf format string + additional args
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Info messages for the predefined validation module. Messages
> - *              are only emitted the first time a problem with a particular
> - *              method/object is detected. This prevents a flood of
> - *              messages for methods that are repeatedly evaluated.
> - *
> - ******************************************************************************/
> -
> -void ACPI_INTERNAL_VAR_XFACE
> -AcpiUtPredefinedInfo (
> -    const char              *ModuleName,
> -    UINT32                  LineNumber,
> -    char                    *Pathname,
> -    UINT8                   NodeFlags,
> -    const char              *Format,
> -    ...)
> -{
> -    va_list                 ArgList;
> -
> -
> -    /*
> -     * Warning messages for this method/object will be disabled after the
> -     * first time a validation fails or an object is successfully repaired.
> -     */
> -    if (NodeFlags & ANOBJ_EVALUATED)
> -    {
> -        return;
> -    }
> -
> -    AcpiOsPrintf (ACPI_MSG_INFO "%s: ", Pathname);
> -
> -    va_start (ArgList, Format);
> -    AcpiOsVprintf (Format, ArgList);
> -    ACPI_MSG_SUFFIX;
> -    va_end (ArgList);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtPredefinedBiosError
> - *
> - * PARAMETERS:  ModuleName      - Caller's module name (for error output)
> - *              LineNumber      - Caller's line number (for error output)
> - *              Pathname        - Full pathname to the node
> - *              NodeFlags       - From Namespace node for the method/object
> - *              Format          - Printf format string + additional args
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: BIOS error message for predefined names. Messages
> - *              are only emitted the first time a problem with a particular
> - *              method/object is detected. This prevents a flood of
> - *              messages for methods that are repeatedly evaluated.
> - *
> - ******************************************************************************/
> -
> -void ACPI_INTERNAL_VAR_XFACE
> -AcpiUtPredefinedBiosError (
> -    const char              *ModuleName,
> -    UINT32                  LineNumber,
> -    char                    *Pathname,
> -    UINT8                   NodeFlags,
> -    const char              *Format,
> -    ...)
> -{
> -    va_list                 ArgList;
> -
> -
> -    /*
> -     * Warning messages for this method/object will be disabled after the
> -     * first time a validation fails or an object is successfully repaired.
> -     */
> -    if (NodeFlags & ANOBJ_EVALUATED)
> -    {
> -        return;
> -    }
> -
> -    AcpiOsPrintf (ACPI_MSG_BIOS_ERROR "%s: ", Pathname);
> -
> -    va_start (ArgList, Format);
> -    AcpiOsVprintf (Format, ArgList);
> -    ACPI_MSG_SUFFIX;
> -    va_end (ArgList);
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtNamespaceError
> - *
> - * PARAMETERS:  ModuleName          - Caller's module name (for error output)
> - *              LineNumber          - Caller's line number (for error output)
> - *              InternalName        - Name or path of the namespace node
> - *              LookupStatus        - Exception code from NS lookup
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Print error message with the full pathname for the NS node.
> - *
> - ******************************************************************************/
> -
> -void
> -AcpiUtNamespaceError (
> -    const char              *ModuleName,
> -    UINT32                  LineNumber,
> -    const char              *InternalName,
> -    ACPI_STATUS             LookupStatus)
> -{
> -    ACPI_STATUS             Status;
> -    UINT32                  BadName;
> -    char                    *Name = NULL;
> -
> -
> -    ACPI_MSG_REDIRECT_BEGIN;
> -    AcpiOsPrintf (ACPI_MSG_ERROR);
> -
> -    if (LookupStatus == AE_BAD_CHARACTER)
> -    {
> -        /* There is a non-ascii character in the name */
> -
> -        ACPI_MOVE_32_TO_32 (&BadName, ACPI_CAST_PTR (UINT32, InternalName));
> -        AcpiOsPrintf ("[0x%.8X] (NON-ASCII)", BadName);
> -    }
> -    else
> -    {
> -        /* Convert path to external format */
> -
> -        Status = AcpiNsExternalizeName (ACPI_UINT32_MAX,
> -                    InternalName, NULL, &Name);
> -
> -        /* Print target name */
> -
> -        if (ACPI_SUCCESS (Status))
> -        {
> -            AcpiOsPrintf ("[%s]", Name);
> -        }
> -        else
> -        {
> -            AcpiOsPrintf ("[COULD NOT EXTERNALIZE NAME]");
> -        }
> -
> -        if (Name)
> -        {
> -            ACPI_FREE (Name);
> -        }
> -    }
> -
> -    AcpiOsPrintf (" Namespace lookup failure, %s",
> -        AcpiFormatException (LookupStatus));
> -
> -    ACPI_MSG_SUFFIX;
> -    ACPI_MSG_REDIRECT_END;
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    AcpiUtMethodError
> - *
> - * PARAMETERS:  ModuleName          - Caller's module name (for error output)
> - *              LineNumber          - Caller's line number (for error output)
> - *              Message             - Error message to use on failure
> - *              PrefixNode          - Prefix relative to the path
> - *              Path                - Path to the node (optional)
> - *              MethodStatus        - Execution status
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Print error message with the full pathname for the method.
> - *
> - ******************************************************************************/
> -
> -void
> -AcpiUtMethodError (
> -    const char              *ModuleName,
> -    UINT32                  LineNumber,
> -    const char              *Message,
> -    ACPI_NAMESPACE_NODE     *PrefixNode,
> -    const char              *Path,
> -    ACPI_STATUS             MethodStatus)
> -{
> -    ACPI_STATUS             Status;
> -    ACPI_NAMESPACE_NODE     *Node = PrefixNode;
> -
> -
> -    ACPI_MSG_REDIRECT_BEGIN;
> -    AcpiOsPrintf (ACPI_MSG_ERROR);
> -
> -    if (Path)
> -    {
> -        Status = AcpiNsGetNode (PrefixNode, Path, ACPI_NS_NO_UPSEARCH,
> -                    &Node);
> -        if (ACPI_FAILURE (Status))
> -        {
> -            AcpiOsPrintf ("[Could not get node by pathname]");
> -        }
> -    }
> -
> -    AcpiNsPrintNodePathname (Node, Message);
> -    AcpiOsPrintf (", %s", AcpiFormatException (MethodStatus));
> -
> -    ACPI_MSG_SUFFIX;
> -    ACPI_MSG_REDIRECT_END;
> -}
> -
> -#endif /* ACPI_NO_ERROR_MESSAGES */
> diff --git a/src/acpica/source/include/acapps.h b/src/acpica/source/include/acapps.h
> index c02debe..eefa5d6 100644
> --- a/src/acpica/source/include/acapps.h
> +++ b/src/acpica/source/include/acapps.h
> @@ -175,11 +175,18 @@ AcpiGetopt(
>      char                    **argv,
>      char                    *opts);
>
> +int
> +AcpiGetoptArgument (
> +    int                     argc,
> +    char                    **argv);
> +
>  extern int                  AcpiGbl_Optind;
>  extern int                  AcpiGbl_Opterr;
> +extern int                  AcpiGbl_SubOptChar;
>  extern char                 *AcpiGbl_Optarg;
>
>
> +#ifndef ACPI_DUMP_APP
>  /*
>   * adisasm
>   */
> @@ -284,5 +291,6 @@ AdWriteTable (
>      UINT32                  Length,
>      char                    *TableName,
>      char                    *OemTableId);
> +#endif
>
>  #endif /* _ACAPPS */
> diff --git a/src/acpica/source/include/acglobal.h b/src/acpica/source/include/acglobal.h
> index 44c4c7e..66abf13 100644
> --- a/src/acpica/source/include/acglobal.h
> +++ b/src/acpica/source/include/acglobal.h
> @@ -206,6 +206,12 @@ UINT8       ACPI_INIT_GLOBAL (AcpiGbl_TruncateIoAddresses, FALSE);
>   */
>  UINT8       ACPI_INIT_GLOBAL (AcpiGbl_DisableAutoRepair, FALSE);
>
> +/*
> + * Optionally do not load any SSDTs from the RSDT/XSDT during initialization.
> + * This can be useful for debugging ACPI problems on some machines.
> + */
> +UINT8       ACPI_INIT_GLOBAL (AcpiGbl_DisableSsdtTableLoad, FALSE);
> +
>
>  /* AcpiGbl_FADT is a local copy of the FADT, converted to a common format. */
>
> diff --git a/src/acpica/source/include/acpiosxf.h b/src/acpica/source/include/acpiosxf.h
> index 688a17b..32578fe 100644
> --- a/src/acpica/source/include/acpiosxf.h
> +++ b/src/acpica/source/include/acpiosxf.h
> @@ -464,6 +464,28 @@ AcpiOsGetLine (
>
>
>  /*
> + * Obtain ACPI table(s)
> + */
> +ACPI_STATUS
> +AcpiOsGetTableByName (
> +    char                    *Signature,
> +    UINT32                  Instance,
> +    ACPI_TABLE_HEADER       **Table,
> +    ACPI_PHYSICAL_ADDRESS   *Address);
> +
> +ACPI_STATUS
> +AcpiOsGetTableByIndex (
> +    UINT32                  Index,
> +    ACPI_TABLE_HEADER       **Table,
> +    ACPI_PHYSICAL_ADDRESS   *Address);
> +
> +ACPI_STATUS
> +AcpiOsGetTableByAddress (
> +    ACPI_PHYSICAL_ADDRESS   Address,
> +    ACPI_TABLE_HEADER       **Table);
> +
> +
> +/*
>   * Directory manipulation
>   */
>  void *
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 887f81a..56383de 100644
> --- a/src/acpica/source/include/acpixf.h
> +++ b/src/acpica/source/include/acpixf.h
> @@ -119,7 +119,7 @@
>
>  /* Current ACPICA subsystem version in YYYYMMDD format */
>
> -#define ACPI_CA_VERSION                 0x20130418
> +#define ACPI_CA_VERSION                 0x20130517
>
>  #include "acconfig.h"
>  #include "actypes.h"
> @@ -151,6 +151,7 @@ extern UINT8                AcpiGbl_EnableAmlDebugObject;
>  extern UINT8                AcpiGbl_CopyDsdtLocally;
>  extern UINT8                AcpiGbl_TruncateIoAddresses;
>  extern UINT8                AcpiGbl_DisableAutoRepair;
> +extern UINT8                AcpiGbl_DisableSsdtTableLoad;
>
>
>  /*
> diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h
> index 05763e8..f8c48a3 100644
> --- a/src/acpica/source/include/actypes.h
> +++ b/src/acpica/source/include/actypes.h
> @@ -382,6 +382,14 @@ typedef UINT32                          ACPI_PHYSICAL_ADDRESS;
>  #define ACPI_EXPORT_SYMBOL(Symbol)
>  #endif
>
> +/*
> + * Compiler/Clibrary-dependent debug initialization. Used for ACPICA
> + * utilities only.
> + */
> +#ifndef ACPI_DEBUG_INITIALIZE
> +#define ACPI_DEBUG_INITIALIZE()
> +#endif
> +
>
>  /******************************************************************************
>   *
> diff --git a/src/acpica/source/include/acutils.h b/src/acpica/source/include/acutils.h
> index 3ac69d5..fdbc142 100644
> --- a/src/acpica/source/include/acutils.h
> +++ b/src/acpica/source/include/acutils.h
> @@ -160,6 +160,49 @@ extern const char                       *AcpiGbl_FcDecode[];
>  extern const char                       *AcpiGbl_PtDecode[];
>  #endif
>
> +/*
> + * For the iASL compiler case, the output is redirected to stderr so that
> + * any of the various ACPI errors and warnings do not appear in the output
> + * files, for either the compiler or disassembler portions of the tool.
> + */
> +#ifdef ACPI_ASL_COMPILER
> +
> +#include <stdio.h>
> +extern FILE                 *AcpiGbl_OutputFile;
> +
> +#define ACPI_MSG_REDIRECT_BEGIN \
> +    FILE                    *OutputFile = AcpiGbl_OutputFile; \
> +    AcpiOsRedirectOutput (stderr);
> +
> +#define ACPI_MSG_REDIRECT_END \
> +    AcpiOsRedirectOutput (OutputFile);
> +
> +#else
> +/*
> + * non-iASL case - no redirection, nothing to do
> + */
> +#define ACPI_MSG_REDIRECT_BEGIN
> +#define ACPI_MSG_REDIRECT_END
> +#endif
> +
> +/*
> + * Common error message prefixes
> + */
> +#define ACPI_MSG_ERROR          "ACPI Error: "
> +#define ACPI_MSG_EXCEPTION      "ACPI Exception: "
> +#define ACPI_MSG_WARNING        "ACPI Warning: "
> +#define ACPI_MSG_INFO           "ACPI: "
> +
> +#define ACPI_MSG_BIOS_ERROR     "ACPI BIOS Error (bug): "
> +#define ACPI_MSG_BIOS_WARNING   "ACPI BIOS Warning (bug): "
> +
> +/*
> + * Common message suffix
> + */
> +#define ACPI_MSG_SUFFIX \
> +    AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
> +
> +
>  /* Types for Resource descriptor entries */
>
>  #define ACPI_INVALID_RESOURCE           0
> @@ -940,7 +983,7 @@ UtConvertBackslashes (
>
>  BOOLEAN
>  AcpiUtValidAcpiName (
> -    UINT32                  Name);
> +    char                    *Name);
>
>  BOOLEAN
>  AcpiUtValidAcpiChar (
> diff --git a/src/acpica/source/include/platform/acenv.h b/src/acpica/source/include/platform/acenv.h
> index 27b54db..3838e79 100644
> --- a/src/acpica/source/include/platform/acenv.h
> +++ b/src/acpica/source/include/platform/acenv.h
> @@ -169,10 +169,11 @@
>  #endif
>
>  /*
> - * AcpiBin/AcpiHelp/AcpiSrc configuration. All single threaded, with
> - * no debug output.
> + * AcpiBin/AcpiDump/AcpiSrc/AcpiXtract configuration. All single
> + * threaded, with no debug output.
>   */
>  #if (defined ACPI_BIN_APP)   || \
> +    (defined ACPI_DUMP_APP)  || \
>      (defined ACPI_SRC_APP)   || \
>      (defined ACPI_XTRACT_APP)
>  #define ACPI_APPLICATION
> @@ -219,6 +220,9 @@
>  #if defined(_LINUX) || defined(__linux__)
>  #include "aclinux.h"
>
> +#elif defined(_APPLE) || defined(__APPLE__)
> +#include "acmacosx.h"
> +
>  #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
>  #include "acfreebsd.h"
>
> diff --git a/src/acpica/source/os_specific/service_layers/osunixxf.c b/src/acpica/source/os_specific/service_layers/osunixxf.c
> index 2cdfa2c..4be7b9b 100644
> --- a/src/acpica/source/os_specific/service_layers/osunixxf.c
> +++ b/src/acpica/source/os_specific/service_layers/osunixxf.c
> @@ -117,8 +117,6 @@
>  /*
>   * These interfaces are required in order to compile the ASL compiler and the
>   * various ACPICA tools under Linux or other Unix-like system.
> - *
> - * Note: Use #define __APPLE__ for OS X generation.
>   */
>  #include "acpi.h"
>  #include "accommon.h"
> @@ -160,12 +158,6 @@ typedef void* (*PTHREAD_CALLBACK) (void *);
>
>  #define ACPI_VPRINTF_BUFFER_SIZE        512
>
> -/* Apple-specific */
> -
> -#ifdef __APPLE__
> -#define sem_destroy         sem_close
> -#endif
> -
>
>  /******************************************************************************
>   *
> @@ -1158,18 +1150,22 @@ AcpiOsReadPort (
>      switch (Width)
>      {
>      case 8:
> +
>          *Value = 0xFF;
>          break;
>
>      case 16:
> +
>          *Value = 0xFFFF;
>          break;
>
>      case 32:
> +
>          *Value = 0xFFFFFFFF;
>          break;
>
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> @@ -1230,10 +1226,12 @@ AcpiOsReadMemory (
>      case 16:
>      case 32:
>      case 64:
> +
>          *Value = 0;
>          break;
>
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>      return (AE_OK);
> @@ -1333,12 +1331,15 @@ AcpiOsSignal (
>      switch (Function)
>      {
>      case ACPI_SIGNAL_FATAL:
> +
>          break;
>
>      case ACPI_SIGNAL_BREAKPOINT:
> +
>          break;
>
>      default:
> +
>          break;
>      }
>
> diff --git a/src/acpica/source/tools/acpiexec/aehandlers.c b/src/acpica/source/tools/acpiexec/aehandlers.c
> index 02f8ccf..ef869f6 100644
> --- a/src/acpica/source/tools/acpiexec/aehandlers.c
> +++ b/src/acpica/source/tools/acpiexec/aehandlers.c
> @@ -176,14 +176,21 @@ AeInterfaceHandler (
>      UINT32                  Supported);
>
>  static ACPI_STATUS
> -AeInstallOneEcHandler (
> +AeInstallEcHandler (
>      ACPI_HANDLE             ObjHandle,
>      UINT32                  Level,
>      void                    *Context,
>      void                    **ReturnValue);
>
>  static ACPI_STATUS
> -AeInstallEcHandlers (
> +AeInstallPciHandler (
> +    ACPI_HANDLE             ObjHandle,
> +    UINT32                  Level,
> +    void                    *Context,
> +    void                    **ReturnValue);
> +
> +static ACPI_STATUS
> +AeInstallDeviceHandlers (
>      void);
>
>  #if (!ACPI_REDUCED_HARDWARE)
> @@ -331,6 +338,7 @@ AeCommonNotifyHandler (
>      {
>  #if 0
>      case 0:
> +
>          printf ("[AcpiExec] Method Error 0x%X: Results not equal\n", Value);
>          if (AcpiGbl_DebugFile)
>          {
> @@ -338,8 +346,8 @@ AeCommonNotifyHandler (
>          }
>          break;
>
> -
>      case 1:
> +
>          printf ("[AcpiExec] Method Error: Incorrect numeric result\n");
>          if (AcpiGbl_DebugFile)
>          {
> @@ -347,8 +355,8 @@ AeCommonNotifyHandler (
>          }
>          break;
>
> -
>      case 2:
> +
>          printf ("[AcpiExec] Method Error: An operand was overwritten\n");
>          if (AcpiGbl_DebugFile)
>          {
> @@ -359,6 +367,7 @@ AeCommonNotifyHandler (
>  #endif
>
>      default:
> +
>          printf ("[AcpiExec] Handler %u: Received a %s Notify on [%4.4s] %p Value 0x%2.2X (%s)\n",
>              HandlerId, Type, AcpiUtGetNodeName (Device), Device, Value,
>              AcpiUtGetNotifyName (Value));
> @@ -626,14 +635,17 @@ AeGlobalEventHandler (
>      switch (Type)
>      {
>      case ACPI_EVENT_TYPE_GPE:
> +
>          TypeName = "GPE";
>          break;
>
>      case ACPI_EVENT_TYPE_FIXED:
> +
>          TypeName = "FixedEvent";
>          break;
>
>      default:
> +
>          TypeName = "UNKNOWN";
>          break;
>      }
> @@ -737,7 +749,8 @@ AeRegionInit (
>
>  /*******************************************************************************
>   *
> - * FUNCTION:    AeInstallEcHandlers, AeInstallOneEcHandler
> + * FUNCTION:    AeInstallDeviceHandlers, AeInstallEcHandler,
> + *              AeInstallPciHandler
>   *
>   * PARAMETERS:  ACPI_WALK_NAMESPACE callback
>   *
> @@ -749,7 +762,7 @@ AeRegionInit (
>   ******************************************************************************/
>
>  static ACPI_STATUS
> -AeInstallOneEcHandler (
> +AeInstallEcHandler (
>      ACPI_HANDLE             ObjHandle,
>      UINT32                  Level,
>      void                    *Context,
> @@ -773,13 +786,50 @@ AeInstallOneEcHandler (
>  }
>
>  static ACPI_STATUS
> -AeInstallEcHandlers (
> +AeInstallPciHandler (
> +    ACPI_HANDLE             ObjHandle,
> +    UINT32                  Level,
> +    void                    *Context,
> +    void                    **ReturnValue)
> +{
> +    ACPI_STATUS             Status;
> +
> +
> +    /* Install memory and I/O handlers for the PCI device */
> +
> +    Status = AcpiInstallAddressSpaceHandler (ObjHandle, ACPI_ADR_SPACE_SYSTEM_IO,
> +        AeRegionHandler, AeRegionInit, &AeMyContext);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        ACPI_EXCEPTION ((AE_INFO, Status,
> +            "Could not install an OpRegion handler for PCI device (%p)",
> +            ObjHandle));
> +    }
> +
> +    Status = AcpiInstallAddressSpaceHandler (ObjHandle, ACPI_ADR_SPACE_SYSTEM_MEMORY,
> +        AeRegionHandler, AeRegionInit, &AeMyContext);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        ACPI_EXCEPTION ((AE_INFO, Status,
> +            "Could not install an OpRegion handler for PCI device (%p)",
> +            ObjHandle));
> +    }
> +
> +    return (AE_CTRL_TERMINATE);
> +}
> +
> +static ACPI_STATUS
> +AeInstallDeviceHandlers (
>      void)
>  {
>
>      /* Find all Embedded Controller devices */
>
> -    AcpiGetDevices ("PNP0C09", AeInstallOneEcHandler, NULL, NULL);
> +    AcpiGetDevices ("PNP0C09", AeInstallEcHandler, NULL, NULL);
> +
> +    /* Install a PCI handler */
> +
> +    AcpiGetDevices ("PNP0A08", AeInstallPciHandler, NULL, NULL);
>      return (AE_OK);
>  }
>
> @@ -823,9 +873,10 @@ AeInstallLateHandlers (
>      /*
>       * We will install a handler for each EC device, directly under the EC
>       * device definition. This is unlike the other handlers which we install
> -     * at the root node.
> +     * at the root node. Also install memory and I/O handlers at any PCI
> +     * devices.
>       */
> -    AeInstallEcHandlers ();
> +    AeInstallDeviceHandlers ();
>
>      /*
>       * Install handlers for some of the "device driver" address spaces
> @@ -1182,6 +1233,7 @@ AeRegionHandler (
>              break;
>
>          default:
> +
>              Status = AE_BAD_PARAMETER;
>              break;
>          }
> @@ -1206,25 +1258,28 @@ AeRegionHandler (
>          switch (Function & ACPI_IO_MASK)
>          {
>          case ACPI_READ:
> +
>              switch (Function >> 16)
>              {
>              case AML_FIELD_ATTRIB_QUICK:
>              case AML_FIELD_ATTRIB_SEND_RCV:
>              case AML_FIELD_ATTRIB_BYTE:
> +
>                  Length = 1;
>                  break;
>
>              case AML_FIELD_ATTRIB_WORD:
>              case AML_FIELD_ATTRIB_WORD_CALL:
> +
>                  Length = 2;
>                  break;
>
>              case AML_FIELD_ATTRIB_BLOCK:
>              case AML_FIELD_ATTRIB_BLOCK_CALL:
> +
>                  Length = 32;
>                  break;
>
> -
>              case AML_FIELD_ATTRIB_MULTIBYTE:
>              case AML_FIELD_ATTRIB_RAW_BYTES:
>              case AML_FIELD_ATTRIB_RAW_PROCESS:
> @@ -1234,11 +1289,13 @@ AeRegionHandler (
>                  break;
>
>              default:
> +
>                  break;
>              }
>              break;
>
>          case ACPI_WRITE:
> +
>              switch (Function >> 16)
>              {
>              case AML_FIELD_ATTRIB_QUICK:
> @@ -1246,6 +1303,7 @@ AeRegionHandler (
>              case AML_FIELD_ATTRIB_BYTE:
>              case AML_FIELD_ATTRIB_WORD:
>              case AML_FIELD_ATTRIB_BLOCK:
> +
>                  Length = 0;
>                  break;
>
> @@ -1266,11 +1324,13 @@ AeRegionHandler (
>                  break;
>
>              default:
> +
>                  break;
>              }
>              break;
>
>          default:
> +
>              break;
>          }
>
> @@ -1469,6 +1529,7 @@ DoFunction:
>          break;
>
>      default:
> +
>          return (AE_BAD_PARAMETER);
>      }
>
> @@ -1499,6 +1560,7 @@ DoFunction:
>              break;
>
>          default:
> +
>              break;
>          }
>      }
> --
> 1.8.1.2
>

Acked-by: Keng-Yu Lin <kengyu@canonical.com>
Alex Hung - May 23, 2013, 6:12 a.m.
On 05/18/2013 03:58 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> It seems prudent to pick up some recent ACPICA bug fixes, most
> particularly _INI and _CST methods and iASL.
>
> Update to use ACPICA version 20130517, new commits in ACPICA
> since 20130418 (some of which may not be included since we're only
> using a subset of ACPICA):
>

Acked-by: Alex Hung <alex.hung@canonical.com>

Patch

diff --git a/src/acpica/Makefile.am b/src/acpica/Makefile.am
index a6123ab..30f0faa 100644
--- a/src/acpica/Makefile.am
+++ b/src/acpica/Makefile.am
@@ -210,6 +210,7 @@  libfwtsacpica_la_SOURCES =			\
 	$(ACPICA_COMP)/tables/tbxface.c		\
 	$(ACPICA_COMP)/tables/tbxfroot.c	\
 	$(ACPICA_COMP)/tables/tbxfload.c	\
+	$(ACPICA_COMP)/tables/tbprint.c		\
 	$(ACPICA_COMP)/utilities/utaddress.c	\
 	$(ACPICA_COMP)/utilities/utalloc.c	\
 	$(ACPICA_COMP)/utilities/utcache.c	\
@@ -237,6 +238,8 @@  libfwtsacpica_la_SOURCES =			\
 	$(ACPICA_COMP)/utilities/utstring.c	\
 	$(ACPICA_COMP)/utilities/utownerid.c	\
 	$(ACPICA_COMP)/utilities/utxfinit.c	\
+	$(ACPICA_COMP)/utilities/uterror.c	\
+	$(ACPICA_COMP)/utilities/utbuffer.c	\
 	$(ACPICA_SRC)/tools/acpiexec/aehandlers.c
 
 libfwtsacpica_la_LIBADD = \
diff --git a/src/acpica/source/common/adisasm.c b/src/acpica/source/common/adisasm.c
index 5d6f7ba..ea59365 100644
--- a/src/acpica/source/common/adisasm.c
+++ b/src/acpica/source/common/adisasm.c
@@ -700,10 +700,12 @@  AdCreateTableHeader (
     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))
@@ -713,6 +715,7 @@  AdCreateTableHeader (
         break;
 
     default:
+
         break;
     }
     AcpiOsPrintf ("\n");
diff --git a/src/acpica/source/common/adwalk.c b/src/acpica/source/common/adwalk.c
index 0e3c71a..ecb3860 100644
--- a/src/acpica/source/common/adwalk.c
+++ b/src/acpica/source/common/adwalk.c
@@ -447,14 +447,17 @@  AcpiDmDumpDescending (
     case AML_BYTE_OP:
     case AML_WORD_OP:
     case AML_DWORD_OP:
+
         AcpiOsPrintf ("%X", (UINT32) Op->Common.Value.Integer);
         break;
 
     case AML_QWORD_OP:
+
         AcpiOsPrintf ("%8.8X%8.8X", ACPI_FORMAT_UINT64 (Op->Common.Value.Integer));
         break;
 
     case AML_INT_NAMEPATH_OP:
+
         if (Op->Common.Value.String)
         {
             AcpiNsExternalizeName (ACPI_UINT32_MAX, Op->Common.Value.String,
@@ -472,10 +475,12 @@  AcpiDmDumpDescending (
     case AML_METHOD_OP:
     case AML_DEVICE_OP:
     case AML_INT_NAMEDFIELD_OP:
+
         AcpiOsPrintf ("%4.4s", ACPI_CAST_PTR (char, &Op->Named.Name));
         break;
 
     default:
+
         break;
     }
 
@@ -522,6 +527,7 @@  AcpiDmFindOrphanDescending (
     {
 #ifdef ACPI_UNDER_DEVELOPMENT
     case AML_ADD_OP:
+
         ChildOp = Op->Common.Value.Arg;
         if ((ChildOp->Common.AmlOpcode == AML_INT_NAMEPATH_OP) &&
             !ChildOp->Common.Node)
@@ -628,6 +634,7 @@  AcpiDmFindOrphanDescending (
         break;
 
     default:
+
         break;
     }
 
diff --git a/src/acpica/source/common/dmextern.c b/src/acpica/source/common/dmextern.c
index c9f0fda..0cd094f 100644
--- a/src/acpica/source/common/dmextern.c
+++ b/src/acpica/source/common/dmextern.c
@@ -666,6 +666,7 @@  AcpiDmAddExternalsToNamespace (
             break;
 
         default:
+
             break;
         }
 
diff --git a/src/acpica/source/common/dmrestag.c b/src/acpica/source/common/dmrestag.c
index 9ba112b..cc1aece 100644
--- a/src/acpica/source/common/dmrestag.c
+++ b/src/acpica/source/common/dmrestag.c
@@ -870,7 +870,6 @@  AcpiDmGetResourceTag (
     case ACPI_RESOURCE_NAME_ADDRESS32:
     case ACPI_RESOURCE_NAME_ADDRESS64:
     case ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64:
-
         /*
          * Subtype differentiation is the flags.
          * Kindof brute force, but just blindly search for an index match
@@ -918,6 +917,7 @@  AcpiDmGetResourceTag (
         break;
 
     default:
+
         break;
     }
 
diff --git a/src/acpica/source/common/dmtable.c b/src/acpica/source/common/dmtable.c
index 34b855c..35767c1 100644
--- a/src/acpica/source/common/dmtable.c
+++ b/src/acpica/source/common/dmtable.c
@@ -769,48 +769,71 @@  AcpiDmDumpTable (
         case ACPI_DMT_EINJINST:
         case ACPI_DMT_ERSTACT:
         case ACPI_DMT_ERSTINST:
+
             ByteLength = 1;
             break;
+
         case ACPI_DMT_UINT16:
         case ACPI_DMT_DMAR:
         case ACPI_DMT_HEST:
+
             ByteLength = 2;
             break;
+
         case ACPI_DMT_UINT24:
+
             ByteLength = 3;
             break;
+
         case ACPI_DMT_UINT32:
         case ACPI_DMT_NAME4:
         case ACPI_DMT_SIG:
         case ACPI_DMT_SLIC:
+
             ByteLength = 4;
             break;
+
         case ACPI_DMT_UINT40:
+
             ByteLength = 5;
             break;
+
         case ACPI_DMT_UINT48:
         case ACPI_DMT_NAME6:
+
             ByteLength = 6;
             break;
+
         case ACPI_DMT_UINT56:
         case ACPI_DMT_BUF7:
+
             ByteLength = 7;
             break;
+
         case ACPI_DMT_UINT64:
         case ACPI_DMT_NAME8:
+
             ByteLength = 8;
             break;
+
         case ACPI_DMT_BUF16:
         case ACPI_DMT_UUID:
+
             ByteLength = 16;
             break;
+
         case ACPI_DMT_BUF128:
+
             ByteLength = 128;
             break;
+
         case ACPI_DMT_STRING:
+
             ByteLength = ACPI_STRLEN (ACPI_CAST_PTR (char, Target)) + 1;
             break;
+
         case ACPI_DMT_GAS:
+
             if (!LastOutputBlankLine)
             {
                 AcpiOsPrintf ("\n");
@@ -818,7 +841,9 @@  AcpiDmDumpTable (
             }
             ByteLength = sizeof (ACPI_GENERIC_ADDRESS);
             break;
+
         case ACPI_DMT_HESTNTFY:
+
             if (!LastOutputBlankLine)
             {
                 AcpiOsPrintf ("\n");
@@ -826,7 +851,9 @@  AcpiDmDumpTable (
             }
             ByteLength = sizeof (ACPI_HEST_NOTIFY);
             break;
+
         default:
+
             ByteLength = 0;
             break;
         }
@@ -909,7 +936,6 @@  AcpiDmDumpTable (
         case ACPI_DMT_BUF7:
         case ACPI_DMT_BUF16:
         case ACPI_DMT_BUF128:
-
             /*
              * Buffer: Size depends on the opcode and was set above.
              * Each hex byte is separated with a space.
@@ -1218,16 +1244,19 @@  AcpiDmDumpTable (
             switch (Temp8)
             {
             case ACPI_IVRS_TYPE_HARDWARE:
+
                 Name = AcpiDmIvrsSubnames[0];
                 break;
 
             case ACPI_IVRS_TYPE_MEMORY1:
             case ACPI_IVRS_TYPE_MEMORY2:
             case ACPI_IVRS_TYPE_MEMORY3:
+
                 Name = AcpiDmIvrsSubnames[1];
                 break;
 
             default:
+
                 Name = AcpiDmIvrsSubnames[2];
                 break;
             }
@@ -1236,9 +1265,11 @@  AcpiDmDumpTable (
             break;
 
         case ACPI_DMT_EXIT:
+
             return (AE_OK);
 
         default:
+
             ACPI_ERROR ((AE_INFO,
                 "**** Invalid table opcode [0x%X] ****\n", Info->Opcode));
             return (AE_SUPPORT);
diff --git a/src/acpica/source/common/dmtbdump.c b/src/acpica/source/common/dmtbdump.c
index 5125681..3d7ac6d 100644
--- a/src/acpica/source/common/dmtbdump.c
+++ b/src/acpica/source/common/dmtbdump.c
@@ -421,27 +421,33 @@  AcpiDmValidateFadtLength (
     switch (Revision)
     {
     case 0:
+
         AcpiOsPrintf ("// ACPI Warning: Invalid FADT revision: 0\n");
         return;
 
     case 1:
+
         ExpectedLength = ACPI_FADT_V1_SIZE;
         break;
 
     case 2:
+
         ExpectedLength = ACPI_FADT_V2_SIZE;
         break;
 
     case 3:
     case 4:
+
         ExpectedLength = ACPI_FADT_V3_SIZE;
         break;
 
     case 5:
+
         ExpectedLength = ACPI_FADT_V5_SIZE;
         break;
 
     default:
+
         return;
     }
 
@@ -506,10 +512,12 @@  AcpiDmDumpAsf (
         switch (Type)
         {
         case ACPI_ASF_TYPE_INFO:
+
             InfoTable = AcpiDmTableInfoAsf0;
             break;
 
         case ACPI_ASF_TYPE_ALERT:
+
             InfoTable = AcpiDmTableInfoAsf1;
             DataInfoTable = AcpiDmTableInfoAsf1a;
             DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ALERT));
@@ -519,6 +527,7 @@  AcpiDmDumpAsf (
             break;
 
         case ACPI_ASF_TYPE_CONTROL:
+
             InfoTable = AcpiDmTableInfoAsf2;
             DataInfoTable = AcpiDmTableInfoAsf2a;
             DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_REMOTE));
@@ -528,10 +537,12 @@  AcpiDmDumpAsf (
             break;
 
         case ACPI_ASF_TYPE_BOOT:
+
             InfoTable = AcpiDmTableInfoAsf3;
             break;
 
         case ACPI_ASF_TYPE_ADDRESS:
+
             InfoTable = AcpiDmTableInfoAsf4;
             DataTable = ACPI_ADD_PTR (UINT8, SubTable, sizeof (ACPI_ASF_ADDRESS));
             DataLength = ACPI_CAST_PTR (ACPI_ASF_ADDRESS, SubTable)->Devices;
@@ -539,6 +550,7 @@  AcpiDmDumpAsf (
             break;
 
         default:
+
             AcpiOsPrintf ("\n**** Unknown ASF sub-table type 0x%X\n", SubTable->Header.Type);
             return;
         }
@@ -595,6 +607,7 @@  AcpiDmDumpAsf (
             break;
 
         default:
+
             break;
         }
 
@@ -935,22 +948,31 @@  AcpiDmDumpDmar (
         switch (SubTable->Type)
         {
         case ACPI_DMAR_TYPE_HARDWARE_UNIT:
+
             InfoTable = AcpiDmTableInfoDmar0;
             ScopeOffset = sizeof (ACPI_DMAR_HARDWARE_UNIT);
             break;
+
         case ACPI_DMAR_TYPE_RESERVED_MEMORY:
+
             InfoTable = AcpiDmTableInfoDmar1;
             ScopeOffset = sizeof (ACPI_DMAR_RESERVED_MEMORY);
             break;
+
         case ACPI_DMAR_TYPE_ATSR:
+
             InfoTable = AcpiDmTableInfoDmar2;
             ScopeOffset = sizeof (ACPI_DMAR_ATSR);
             break;
+
         case ACPI_DMAR_HARDWARE_AFFINITY:
+
             InfoTable = AcpiDmTableInfoDmar3;
             ScopeOffset = sizeof (ACPI_DMAR_RHSA);
             break;
+
         default:
+
             AcpiOsPrintf ("\n**** Unknown DMAR sub-table type 0x%X\n\n", SubTable->Type);
             return;
         }
@@ -1158,12 +1180,17 @@  AcpiDmDumpFpdt (
         switch (SubTable->Type)
         {
         case ACPI_FPDT_TYPE_BOOT:
+
             InfoTable = AcpiDmTableInfoFpdt0;
             break;
+
         case ACPI_FPDT_TYPE_S3PERF:
+
             InfoTable = AcpiDmTableInfoFpdt1;
             break;
+
         default:
+
             AcpiOsPrintf ("\n**** Unknown FPDT sub-table type 0x%X\n\n", SubTable->Type);
 
             /* Attempt to continue */
@@ -1236,6 +1263,7 @@  AcpiDmDumpHest (
         switch (SubTable->Type)
         {
         case ACPI_HEST_TYPE_IA32_CHECK:
+
             InfoTable = AcpiDmTableInfoHest0;
             SubTableLength = sizeof (ACPI_HEST_IA_MACHINE_CHECK);
             BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_MACHINE_CHECK,
@@ -1243,6 +1271,7 @@  AcpiDmDumpHest (
             break;
 
         case ACPI_HEST_TYPE_IA32_CORRECTED_CHECK:
+
             InfoTable = AcpiDmTableInfoHest1;
             SubTableLength = sizeof (ACPI_HEST_IA_CORRECTED);
             BankCount = (ACPI_CAST_PTR (ACPI_HEST_IA_CORRECTED,
@@ -1250,31 +1279,37 @@  AcpiDmDumpHest (
             break;
 
         case ACPI_HEST_TYPE_IA32_NMI:
+
             InfoTable = AcpiDmTableInfoHest2;
             SubTableLength = sizeof (ACPI_HEST_IA_NMI);
             break;
 
         case ACPI_HEST_TYPE_AER_ROOT_PORT:
+
             InfoTable = AcpiDmTableInfoHest6;
             SubTableLength = sizeof (ACPI_HEST_AER_ROOT);
             break;
 
         case ACPI_HEST_TYPE_AER_ENDPOINT:
+
             InfoTable = AcpiDmTableInfoHest7;
             SubTableLength = sizeof (ACPI_HEST_AER);
             break;
 
         case ACPI_HEST_TYPE_AER_BRIDGE:
+
             InfoTable = AcpiDmTableInfoHest8;
             SubTableLength = sizeof (ACPI_HEST_AER_BRIDGE);
             break;
 
         case ACPI_HEST_TYPE_GENERIC_ERROR:
+
             InfoTable = AcpiDmTableInfoHest9;
             SubTableLength = sizeof (ACPI_HEST_GENERIC);
             break;
 
         default:
+
             /* Cannot continue on unknown type - no length */
 
             AcpiOsPrintf ("\n**** Unknown HEST sub-table type 0x%X\n", SubTable->Type);
@@ -1376,14 +1411,19 @@  AcpiDmDumpIvrs (
         switch (SubTable->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:
+
             AcpiOsPrintf ("\n**** Unknown IVRS sub-table type 0x%X\n",
                 SubTable->Type);
 
@@ -1545,45 +1585,72 @@  AcpiDmDumpMadt (
         switch (SubTable->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;
+
         default:
+
             AcpiOsPrintf ("\n**** Unknown MADT sub-table type 0x%X\n\n", SubTable->Type);
 
             /* Attempt to continue */
@@ -2224,12 +2291,17 @@  AcpiDmDumpS3pt (
         switch (SubTable->Type)
         {
         case ACPI_S3PT_TYPE_RESUME:
+
             InfoTable = AcpiDmTableInfoS3pt0;
             break;
+
         case ACPI_S3PT_TYPE_SUSPEND:
+
             InfoTable = AcpiDmTableInfoS3pt1;
             break;
+
         default:
+
             AcpiOsPrintf ("\n**** Unknown S3PT sub-table type 0x%X\n", SubTable->Type);
 
             /* Attempt to continue */
@@ -2301,12 +2373,17 @@  AcpiDmDumpSlic (
         switch (SubTable->Type)
         {
         case ACPI_SLIC_TYPE_PUBLIC_KEY:
+
             InfoTable = AcpiDmTableInfoSlic0;
             break;
+
         case ACPI_SLIC_TYPE_WINDOWS_MARKER:
+
             InfoTable = AcpiDmTableInfoSlic1;
             break;
+
         default:
+
             AcpiOsPrintf ("\n**** Unknown SLIC sub-table type 0x%X\n", SubTable->Type);
 
             /* Attempt to continue */
@@ -2462,14 +2539,20 @@  AcpiDmDumpSrat (
         switch (SubTable->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;
+
         default:
             AcpiOsPrintf ("\n**** Unknown SRAT sub-table type 0x%X\n", SubTable->Type);
 
diff --git a/src/acpica/source/compiler/aslanalyze.c b/src/acpica/source/compiler/aslanalyze.c
index 99b17e6..e35cff4 100644
--- a/src/acpica/source/compiler/aslanalyze.c
+++ b/src/acpica/source/compiler/aslanalyze.c
@@ -453,6 +453,7 @@  AnIsResultUsed (
         return (TRUE);
 
     default:
+
         break;
     }
 
@@ -483,6 +484,7 @@  AnIsResultUsed (
         return (FALSE);
 
     default:
+
         /* Any other type of parent means that the result is used */
 
         return (TRUE);
diff --git a/src/acpica/source/compiler/aslbtypes.c b/src/acpica/source/compiler/aslbtypes.c
index cb30afd..17240cd 100644
--- a/src/acpica/source/compiler/aslbtypes.c
+++ b/src/acpica/source/compiler/aslbtypes.c
@@ -155,15 +155,19 @@  AnMapArgTypeToBtype (
     /* Simple types */
 
     case ARGI_ANYTYPE:
+
         return (ACPI_BTYPE_OBJECTS_AND_REFS);
 
     case ARGI_PACKAGE:
+
         return (ACPI_BTYPE_PACKAGE);
 
     case ARGI_EVENT:
+
         return (ACPI_BTYPE_EVENT);
 
     case ARGI_MUTEX:
+
         return (ACPI_BTYPE_MUTEX);
 
     case ARGI_DDBHANDLE:
@@ -183,31 +187,36 @@  AnMapArgTypeToBtype (
     case ARGI_BUFFER:
     case ARGI_BUFFER_OR_STRING:
     case ARGI_COMPUTEDATA:
+
         return (ACPI_BTYPE_COMPUTE_DATA);
 
     /* References */
 
     case ARGI_INTEGER_REF:
+
         return (ACPI_BTYPE_INTEGER);
 
     case ARGI_OBJECT_REF:
+
         return (ACPI_BTYPE_ALL_OBJECTS);
 
     case ARGI_DEVICE_REF:
+
         return (ACPI_BTYPE_DEVICE_OBJECTS);
 
     case ARGI_REFERENCE:
+
         return (ACPI_BTYPE_REFERENCE);
 
     case ARGI_TARGETREF:
     case ARGI_FIXED_TARGET:
     case ARGI_SIMPLE_TARGET:
+
         return (ACPI_BTYPE_OBJECTS_AND_REFS);
 
     /* Complex types */
 
     case ARGI_DATAOBJECT:
-
         /*
          * Buffer, string, package or reference to a Op -
          * Used only by SizeOf operator
@@ -222,6 +231,7 @@  AnMapArgTypeToBtype (
         return (ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER | ACPI_BTYPE_PACKAGE);
 
     case ARGI_REF_OR_STRING:
+
         return (ACPI_BTYPE_STRING | ACPI_BTYPE_REFERENCE);
 
     case ARGI_REGION_OR_BUFFER:
@@ -231,10 +241,12 @@  AnMapArgTypeToBtype (
         return (ACPI_BTYPE_REGION | ACPI_BTYPE_BUFFER | ACPI_BTYPE_FIELD_UNIT);
 
     case ARGI_DATAREFOBJ:
+
         return (ACPI_BTYPE_INTEGER |ACPI_BTYPE_STRING | ACPI_BTYPE_BUFFER |
             ACPI_BTYPE_PACKAGE | ACPI_BTYPE_REFERENCE | ACPI_BTYPE_DDB_HANDLE);
 
     default:
+
         break;
     }
 
@@ -279,22 +291,28 @@  AnMapEtypeToBtype (
         switch (Etype)
         {
         case ACPI_TYPE_INTEGER:
+
             return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_DDB_HANDLE);
 
         case ACPI_TYPE_STRING:
         case ACPI_TYPE_BUFFER:
+
             return (ACPI_BTYPE_COMPUTE_DATA);
 
         case ACPI_TYPE_PACKAGE:
+
             return (ACPI_BTYPE_PACKAGE);
 
         case ACPI_TYPE_FIELD_UNIT:
+
             return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_FIELD_UNIT);
 
         case ACPI_TYPE_BUFFER_FIELD:
+
             return (ACPI_BTYPE_COMPUTE_DATA | ACPI_BTYPE_BUFFER_FIELD);
 
         case ACPI_TYPE_DDB_HANDLE:
+
             return (ACPI_BTYPE_INTEGER | ACPI_BTYPE_DDB_HANDLE);
 
         case ACPI_BTYPE_DEBUG_OBJECT:
@@ -304,6 +322,7 @@  AnMapEtypeToBtype (
             return (0);
 
         default:
+
             return (1 << (Etype - 1));
         }
     }
@@ -331,6 +350,7 @@  AnMapEtypeToBtype (
         return (ACPI_BTYPE_REFERENCE);
 
     default:
+
         printf ("Unhandled encoded type: %X\n", Etype);
         return (0);
     }
@@ -510,51 +530,67 @@  AnMapObjTypeToBtype (
     switch (Op->Asl.ParseOpcode)
     {
     case PARSEOP_OBJECTTYPE_BFF:        /* "BuffFieldObj" */
+
         return (ACPI_BTYPE_BUFFER_FIELD);
 
     case PARSEOP_OBJECTTYPE_BUF:        /* "BuffObj" */
+
         return (ACPI_BTYPE_BUFFER);
 
     case PARSEOP_OBJECTTYPE_DDB:        /* "DDBHandleObj" */
+
         return (ACPI_BTYPE_DDB_HANDLE);
 
     case PARSEOP_OBJECTTYPE_DEV:        /* "DeviceObj" */
+
         return (ACPI_BTYPE_DEVICE);
 
     case PARSEOP_OBJECTTYPE_EVT:        /* "EventObj" */
+
         return (ACPI_BTYPE_EVENT);
 
     case PARSEOP_OBJECTTYPE_FLD:        /* "FieldUnitObj" */
+
         return (ACPI_BTYPE_FIELD_UNIT);
 
     case PARSEOP_OBJECTTYPE_INT:        /* "IntObj" */
+
         return (ACPI_BTYPE_INTEGER);
 
     case PARSEOP_OBJECTTYPE_MTH:        /* "MethodObj" */
+
         return (ACPI_BTYPE_METHOD);
 
     case PARSEOP_OBJECTTYPE_MTX:        /* "MutexObj" */
+
         return (ACPI_BTYPE_MUTEX);
 
     case PARSEOP_OBJECTTYPE_OPR:        /* "OpRegionObj" */
+
         return (ACPI_BTYPE_REGION);
 
     case PARSEOP_OBJECTTYPE_PKG:        /* "PkgObj" */
+
         return (ACPI_BTYPE_PACKAGE);
 
     case PARSEOP_OBJECTTYPE_POW:        /* "PowerResObj" */
+
         return (ACPI_BTYPE_POWER);
 
     case PARSEOP_OBJECTTYPE_STR:        /* "StrObj" */
+
         return (ACPI_BTYPE_STRING);
 
     case PARSEOP_OBJECTTYPE_THZ:        /* "ThermalZoneObj" */
+
         return (ACPI_BTYPE_THERMAL);
 
     case PARSEOP_OBJECTTYPE_UNK:        /* "UnknownObj" */
+
         return (ACPI_BTYPE_OBJECTS_AND_REFS);
 
     default:
+
         return (0);
     }
 }
diff --git a/src/acpica/source/compiler/aslcodegen.c b/src/acpica/source/compiler/aslcodegen.c
index 4cbc1ca..9d45ec8 100644
--- a/src/acpica/source/compiler/aslcodegen.c
+++ b/src/acpica/source/compiler/aslcodegen.c
@@ -356,6 +356,7 @@  CgWriteAmlOpcode (
         break;
 
     default:
+
         Aml.Opcode = Op->Asl.AmlOpcode;
         break;
     }
@@ -454,7 +455,9 @@  CgWriteAmlOpcode (
         break;
 
     default:
+
         /* All data opcodes must appear above */
+
         break;
     }
 }
@@ -632,7 +635,9 @@  CgWriteNode (
         return;
 
     default:
+
         /* Internal data opcodes must all appear above */
+
         break;
     }
 
diff --git a/src/acpica/source/compiler/aslcompile.c b/src/acpica/source/compiler/aslcompile.c
index 436a392..4932abd 100644
--- a/src/acpica/source/compiler/aslcompile.c
+++ b/src/acpica/source/compiler/aslcompile.c
@@ -205,7 +205,9 @@  AslCompilerSignon (
         break;
 
     default:
+
         /* No other output types supported */
+
         break;
     }
 
@@ -279,7 +281,9 @@  AslCompilerFileHeader (
         break;
 
     default:
+
         /* No other output types supported */
+
         break;
     }
 
@@ -298,11 +302,14 @@  AslCompilerFileHeader (
     case ASL_FILE_C_SOURCE_OUTPUT:
     case ASL_FILE_C_OFFSET_OUTPUT:
     case ASL_FILE_C_INCLUDE_OUTPUT:
+
         FlPrintFile (FileId, " */\n");
         break;
 
     default:
+
         /* Nothing to do for other output types */
+
         break;
     }
 }
diff --git a/src/acpica/source/compiler/aslcompiler.h b/src/acpica/source/compiler/aslcompiler.h
index 4c2bfcb..19539a5 100644
--- a/src/acpica/source/compiler/aslcompiler.h
+++ b/src/acpica/source/compiler/aslcompiler.h
@@ -363,6 +363,15 @@  AslError (
     ACPI_PARSE_OBJECT       *Op,
     char                    *ExtraMessage);
 
+ACPI_STATUS
+AslDisableException (
+    char                    *MessageIdString);
+
+BOOLEAN
+AslIsExceptionDisabled (
+    UINT8                   Level,
+    UINT8                   MessageId);
+
 void
 AslCoreSubsystemError (
     ACPI_PARSE_OBJECT       *Op,
@@ -863,6 +872,17 @@  void
 LkFindUnreferencedObjects (
     void);
 
+/*
+ * aslmain - startup
+ */
+void
+Usage (
+    void);
+
+void
+AslFilenameHelp (
+    void);
+
 
 /*
  * aslnamesp - namespace output file generation
@@ -875,6 +895,13 @@  void
 NsSetupNamespaceListing (
     void                    *Handle);
 
+/*
+ * asloptions - command line processing
+ */
+int
+AslCommandLine (
+    int                     argc,
+    char                    **argv);
 
 /*
  * aslxref - namespace cross reference
diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
index 01a2013..8863026 100644
--- a/src/acpica/source/compiler/aslerror.c
+++ b/src/acpica/source/compiler/aslerror.c
@@ -273,6 +273,7 @@  AePrintException (
         switch (Enode->Level)
         {
         case ASL_REMARK:
+
             if (!Gbl_DisplayRemarks)
             {
                 return;
@@ -280,6 +281,7 @@  AePrintException (
             break;
 
         case ASL_OPTIMIZATION:
+
             if (!Gbl_DisplayOptimizations)
             {
                 return;
@@ -287,6 +289,7 @@  AePrintException (
             break;
 
         default:
+
             break;
         }
     }
@@ -748,6 +751,113 @@  AslCommonError (
 
 /*******************************************************************************
  *
+ * FUNCTION:    AslDisableException
+ *
+ * PARAMETERS:  MessageIdString     - ID to be disabled
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Enter a message ID into the global disabled messages table
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AslDisableException (
+    char                    *MessageIdString)
+{
+    UINT32                  MessageId;
+
+
+    /* Convert argument to an integer and validate it */
+
+    MessageId = (UINT32) strtoul (MessageIdString, NULL, 0);
+
+    if ((MessageId < 2000) || (MessageId > 5999))
+    {
+        printf ("\"%s\" is not a valid warning/remark ID\n",
+            MessageIdString);
+        return (AE_BAD_PARAMETER);
+    }
+
+    /* Insert value into the global disabled message array */
+
+    if (Gbl_DisabledMessagesIndex >= ASL_MAX_DISABLED_MESSAGES)
+    {
+        printf ("Too many messages have been disabled (max %u)\n",
+            ASL_MAX_DISABLED_MESSAGES);
+        return (AE_LIMIT);
+    }
+
+    Gbl_DisabledMessages[Gbl_DisabledMessagesIndex] = MessageId;
+    Gbl_DisabledMessagesIndex++;
+    return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    AslIsExceptionDisabled
+ *
+ * PARAMETERS:  Level               - Seriousness (Warning/error, etc.)
+ *              MessageId           - Index into global message buffer
+ *
+ * RETURN:      TRUE if exception/message should be ignored
+ *
+ * DESCRIPTION: Check if the user has specified options such that this
+ *              exception should be ignored
+ *
+ ******************************************************************************/
+
+BOOLEAN
+AslIsExceptionDisabled (
+    UINT8                   Level,
+    UINT8                   MessageId)
+{
+    UINT32                  EncodedMessageId;
+    UINT32                  i;
+
+
+    switch (Level)
+    {
+    case ASL_WARNING2:
+    case ASL_WARNING3:
+
+        /* Check for global disable via -w1/-w2/-w3 options */
+
+        if (Level > Gbl_WarningLevel)
+        {
+            return (TRUE);
+        }
+        /* Fall through */
+
+    case ASL_WARNING:
+    case ASL_REMARK:
+        /*
+         * Ignore this warning/remark if it has been disabled by
+         * the user (-vw option)
+         */
+        EncodedMessageId = MessageId + ((Level + 1) * 1000);
+        for (i = 0; i < Gbl_DisabledMessagesIndex; i++)
+        {
+            /* Simple implementation via fixed array */
+
+            if (EncodedMessageId == Gbl_DisabledMessages[i])
+            {
+                return (TRUE);
+            }
+        }
+        break;
+
+    default:
+        break;
+    }
+
+    return (FALSE);
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    AslError
  *
  * PARAMETERS:  Level               - Seriousness (Warning/error, etc.)
@@ -770,32 +880,25 @@  AslError (
     char                    *ExtraMessage)
 {
 
-    switch (Level)
-    {
-    case ASL_WARNING2:
-    case ASL_WARNING3:
-        if (Gbl_WarningLevel < Level)
-        {
-            return;
-        }
-        break;
+    /* Check if user wants to ignore this exception */
 
-    default:
-        break;
+    if (AslIsExceptionDisabled (Level, MessageId))
+    {
+        return;
     }
 
     if (Op)
     {
         AslCommonError (Level, MessageId, Op->Asl.LineNumber,
-                        Op->Asl.LogicalLineNumber,
-                        Op->Asl.LogicalByteOffset,
-                        Op->Asl.Column,
-                        Op->Asl.Filename, ExtraMessage);
+            Op->Asl.LogicalLineNumber,
+            Op->Asl.LogicalByteOffset,
+            Op->Asl.Column,
+            Op->Asl.Filename, ExtraMessage);
     }
     else
     {
         AslCommonError (Level, MessageId, 0,
-                        0, 0, 0, NULL, ExtraMessage);
+            0, 0, 0, NULL, ExtraMessage);
     }
 }
 
diff --git a/src/acpica/source/compiler/aslfold.c b/src/acpica/source/compiler/aslfold.c
index 0644e39..b0a0663 100644
--- a/src/acpica/source/compiler/aslfold.c
+++ b/src/acpica/source/compiler/aslfold.c
@@ -513,7 +513,6 @@  OpcAmlConstantWalk (
                 ACPI_FORMAT_UINT64 (Op->Common.Value.Integer));
             break;
 
-
         case ACPI_TYPE_STRING:
 
             Op->Asl.ParseOpcode = PARSEOP_STRING_LITERAL;
@@ -527,7 +526,6 @@  OpcAmlConstantWalk (
 
             break;
 
-
         case ACPI_TYPE_BUFFER:
 
             Op->Asl.ParseOpcode = PARSEOP_BUFFER;
@@ -565,8 +563,8 @@  OpcAmlConstantWalk (
                 ObjDesc->Buffer.Length);
             break;
 
-
         default:
+
             printf ("Unsupported return type: %s\n",
                 AcpiUtGetObjectTypeName (ObjDesc));
             break;
@@ -608,27 +606,32 @@  OpcUpdateIntegerNode (
     switch (Op->Asl.AmlLength)
     {
     case 1:
+
         TrUpdateNode (PARSEOP_BYTECONST, Op);
         Op->Asl.AmlOpcode = AML_RAW_DATA_BYTE;
         break;
 
     case 2:
+
         TrUpdateNode (PARSEOP_WORDCONST, Op);
         Op->Asl.AmlOpcode = AML_RAW_DATA_WORD;
         break;
 
     case 4:
+
         TrUpdateNode (PARSEOP_DWORDCONST, Op);
         Op->Asl.AmlOpcode = AML_RAW_DATA_DWORD;
         break;
 
     case 8:
+
         TrUpdateNode (PARSEOP_QWORDCONST, Op);
         Op->Asl.AmlOpcode = AML_RAW_DATA_QWORD;
         break;
 
     case 0:
     default:
+
         OpcSetOptimalIntegerSize (Op);
         TrUpdateNode (PARSEOP_INTEGER, Op);
         break;
diff --git a/src/acpica/source/compiler/aslglobal.h b/src/acpica/source/compiler/aslglobal.h
index 9d285eb..5468711 100644
--- a/src/acpica/source/compiler/aslglobal.h
+++ b/src/acpica/source/compiler/aslglobal.h
@@ -182,6 +182,7 @@  extern char                         *AslCompilertext;
 
 #define ASL_DEFAULT_LINE_BUFFER_SIZE    (1024 * 32) /* 32K */
 #define ASL_MSG_BUFFER_SIZE             4096
+#define ASL_MAX_DISABLED_MESSAGES       32
 #define HEX_TABLE_LINE_SIZE             8
 #define HEX_LISTING_LINE_SIZE           8
 
@@ -296,6 +297,7 @@  ASL_EXTERN char                     *Gbl_TemplateSignature;
 ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentHexColumn, 0);
 ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentAmlOffset, 0);
 ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_CurrentLine, 0);
+ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_DisabledMessagesIndex, 0);
 ASL_EXTERN UINT8                    ASL_INIT_GLOBAL (Gbl_HexBytesWereWritten, FALSE);
 ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_NumNamespaceObjects, 0);
 ASL_EXTERN UINT32                   ASL_INIT_GLOBAL (Gbl_ReservedMethods, 0);
@@ -322,6 +324,7 @@  ASL_EXTERN UINT8                    Gbl_AmlBuffer[HEX_LISTING_LINE_SIZE];
 ASL_EXTERN char                     MsgBuffer[ASL_MSG_BUFFER_SIZE];
 ASL_EXTERN char                     StringBuffer[ASL_MSG_BUFFER_SIZE];
 ASL_EXTERN char                     StringBuffer2[ASL_MSG_BUFFER_SIZE];
+ASL_EXTERN UINT32                   Gbl_DisabledMessages[ASL_MAX_DISABLED_MESSAGES];
 
 
 #endif /* __ASLGLOBAL_H */
diff --git a/src/acpica/source/compiler/aslhex.c b/src/acpica/source/compiler/aslhex.c
index d2e56ed..82eb070 100644
--- a/src/acpica/source/compiler/aslhex.c
+++ b/src/acpica/source/compiler/aslhex.c
@@ -179,7 +179,9 @@  HxDoHexOutput (
         break;
 
     default:
+
         /* No other output types supported */
+
         break;
     }
 }
diff --git a/src/acpica/source/compiler/asllength.c b/src/acpica/source/compiler/asllength.c
index 78372f1..e78c97b 100644
--- a/src/acpica/source/compiler/asllength.c
+++ b/src/acpica/source/compiler/asllength.c
@@ -330,6 +330,7 @@  CgGenerateAmlOpcodeLength (
         break;
 
     default:
+
         /* All data opcodes must be above */
         break;
     }
@@ -398,6 +399,7 @@  CgGenerateAmlLengths (
         return;
 
     default:
+
         break;
     }
 
diff --git a/src/acpica/source/compiler/asllisting.c b/src/acpica/source/compiler/asllisting.c
index ba73b28..3d0f85d 100644
--- a/src/acpica/source/compiler/asllisting.c
+++ b/src/acpica/source/compiler/asllisting.c
@@ -229,6 +229,8 @@  LsGenerateListing (
 
     if (FileId == ASL_FILE_C_OFFSET_OUTPUT)
     {
+        Gbl_CurrentAmlOffset = 0;
+
         /* Offset table file has a special header and footer */
 
         LsDoOffsetTableHeader (FileId);
@@ -337,9 +339,10 @@  LsTreeWriteWalk (
 
     DbgPrint (ASL_TREE_OUTPUT,
         "%5.5d [%2d]", Op->Asl.LogicalLineNumber, Level);
+
     UtPrintFormattedName (Op->Asl.ParseOpcode, Level);
 
-    DbgPrint (ASL_TREE_OUTPUT, "\n");
+    DbgPrint (ASL_TREE_OUTPUT, "    (%.4X)\n", Op->Asl.ParseOpcode);
     return (AE_OK);
 }
 
@@ -391,16 +394,20 @@  LsWriteNodeToListing (
             break;
 
         default:
+
             switch (OpClass)
             {
             case AML_CLASS_NAMED_OBJECT:
+
                 switch (Op->Asl.AmlOpcode)
                 {
                 case AML_SCOPE_OP:
                 case AML_ALIAS_OP:
+
                     break;
 
                 default:
+
                     if (Op->Asl.ExternalName)
                     {
                         LsFlushListingBuffer (FileId);
@@ -411,7 +418,9 @@  LsWriteNodeToListing (
                 break;
 
             default:
+
                 /* Don't care about other objects */
+
                 break;
             }
             break;
@@ -499,7 +508,9 @@  LsWriteNodeToListing (
 
 
     default:
+
         /* All other opcodes have an AML opcode */
+
         break;
     }
 
@@ -515,7 +526,6 @@  LsWriteNodeToListing (
 
         break;
 
-
     case AML_CLASS_NAMED_OBJECT:
 
         switch (Op->Asl.AmlOpcode)
@@ -523,7 +533,6 @@  LsWriteNodeToListing (
         case AML_FIELD_OP:
         case AML_INDEX_FIELD_OP:
         case AML_BANK_FIELD_OP:
-
             /*
              * For fields, we want to dump all the AML after the
              * entire definition
@@ -551,6 +560,7 @@  LsWriteNodeToListing (
             break;
 
         default:
+
             LsWriteSourceLines (Op->Asl.LineNumber, Op->Asl.LogicalLineNumber,
                 FileId);
             break;
@@ -575,7 +585,6 @@  LsWriteNodeToListing (
             case ASL_FILE_C_SOURCE_OUTPUT:
             case ASL_FILE_ASM_INCLUDE_OUTPUT:
             case ASL_FILE_C_INCLUDE_OUTPUT:
-
                 /*
                  * For named objects, we will create a valid symbol so that the
                  * AML code can be referenced from C or ASM
@@ -630,7 +639,9 @@  LsWriteNodeToListing (
                 break;
 
             default:
+
                 /* Nothing to do for listing file */
+
                 break;
             }
         }
@@ -651,6 +662,7 @@  LsWriteNodeToListing (
         break;
 
     case AML_CLASS_UNKNOWN:
+
         break;
     }
 }
diff --git a/src/acpica/source/compiler/asllistsup.c b/src/acpica/source/compiler/asllistsup.c
index a3dd3d0..f4eb57a 100644
--- a/src/acpica/source/compiler/asllistsup.c
+++ b/src/acpica/source/compiler/asllistsup.c
@@ -323,7 +323,9 @@  LsWriteListingHexBytes (
                 break;
 
             default:
+
                 /* No other types supported */
+
                 return;
             }
         }
@@ -689,7 +691,9 @@  LsFlushListingBuffer (
         break;
 
     default:
+
         /* No other types supported */
+
         return;
     }
 
diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
index 01278de..338cf1c 100644
--- a/src/acpica/source/compiler/aslload.c
+++ b/src/acpica/source/compiler/aslload.c
@@ -249,7 +249,9 @@  LdLoadFieldElements (
         break;
 
     default:
+
         /* No other opcodes should arrive here */
+
         return (AE_BAD_PARAMETER);
     }
 
@@ -446,6 +448,7 @@  LdNamespace1Begin (
     default:
 
         /* All other opcodes go below */
+
         break;
     }
 
@@ -494,7 +497,6 @@  LdNamespace1Begin (
 
 
     case PARSEOP_EXTERNAL:
-
         /*
          * "External" simply enters a name and type into the namespace.
          * We must be careful to not open a new scope, however, no matter
@@ -538,7 +540,6 @@  LdNamespace1Begin (
 
 
     case PARSEOP_SCOPE:
-
         /*
          * The name referenced by Scope(Name) must already exist at this point.
          * In other words, forward references for Scope() are not supported.
@@ -593,7 +594,6 @@  LdNamespace1Begin (
         case ACPI_TYPE_INTEGER:
         case ACPI_TYPE_STRING:
         case ACPI_TYPE_BUFFER:
-
             /*
              * These types we will allow, but we will change the type.
              * This enables some existing code of the form:
diff --git a/src/acpica/source/compiler/asllookup.c b/src/acpica/source/compiler/asllookup.c
index 9650bfe..82a8334 100644
--- a/src/acpica/source/compiler/asllookup.c
+++ b/src/acpica/source/compiler/asllookup.c
@@ -216,9 +216,11 @@  LkIsObjectUsed (
     case ACPI_TYPE_PROCESSOR:
     case ACPI_TYPE_POWER:
     case ACPI_TYPE_LOCAL_RESOURCE:
+
         return (AE_OK);
 
     default:
+
         break;
     }
 
diff --git a/src/acpica/source/compiler/aslmain.c b/src/acpica/source/compiler/aslmain.c
index 921da42..3a0f750 100644
--- a/src/acpica/source/compiler/aslmain.c
+++ b/src/acpica/source/compiler/aslmain.c
@@ -113,7 +113,6 @@ 
  *
  *****************************************************************************/
 
-
 #define _DECLARE_GLOBALS
 
 #include "aslcompiler.h"
@@ -121,26 +120,11 @@ 
 #include "acdisasm.h"
 #include <signal.h>
 
-#ifdef _DEBUG
-#include <crtdbg.h>
-#endif
-
 #define _COMPONENT          ACPI_COMPILER
         ACPI_MODULE_NAME    ("aslmain")
 
-/* Local prototypes */
-
-static void
-Options (
-    void);
-
-static void
-FilenameHelp (
-    void);
 
-static void
-Usage (
-    void);
+/* Local prototypes */
 
 static void ACPI_SYSTEM_XFACE
 AslSignalHandler (
@@ -150,34 +134,10 @@  static void
 AslInitialize (
     void);
 
-static int
-AslCommandLine (
-    int                     argc,
-    char                    **argv);
-
-static int
-AslDoOptions (
-    int                     argc,
-    char                    **argv,
-    BOOLEAN                 IsResponseFile);
-
-static void
-AslMergeOptionTokens (
-    char                    *InBuffer,
-    char                    *OutBuffer);
-
-static int
-AslDoResponseFile (
-    char                    *Filename);
-
-
-#define ASL_TOKEN_SEPARATORS    " \t\n"
-#define ASL_SUPPORTED_OPTIONS   "@:b|c|d^D:e:fgh^i|I:l^m:no|p:P^r:s|t|T:G^v^w|x:z"
-
 
 /*******************************************************************************
  *
- * FUNCTION:    Options
+ * FUNCTION:    Usage
  *
  * PARAMETERS:  None
  *
@@ -188,10 +148,12 @@  AslDoResponseFile (
  *
  ******************************************************************************/
 
-static void
-Options (
+void
+Usage (
     void)
 {
+    printf ("%s\n\n", ASL_COMPLIANCE);
+    ACPI_USAGE_HEADER ("iasl [Options] [Files]");
 
     printf ("\nGlobal:\n");
     ACPI_OPTION ("-@ <file>",       "Specify command file");
@@ -212,6 +174,7 @@  Options (
     ACPI_OPTION ("-vo",             "Enable optimization comments");
     ACPI_OPTION ("-vr",             "Disable remarks");
     ACPI_OPTION ("-vs",             "Disable signon");
+    ACPI_OPTION ("-vw <messageid>", "Disable specific warning or remark");
     ACPI_OPTION ("-w1 -w2 -w3",     "Set warning reporting level");
     ACPI_OPTION ("-we",             "Report warnings as errors");
 
@@ -281,8 +244,8 @@  Options (
  *
  ******************************************************************************/
 
-static void
-FilenameHelp (
+void
+AslFilenameHelp (
     void)
 {
 
@@ -297,29 +260,6 @@  FilenameHelp (
 }
 
 
-/*******************************************************************************
- *
- * FUNCTION:    Usage
- *
- * PARAMETERS:  None
- *
- * RETURN:      None
- *
- * DESCRIPTION: Display usage and option message
- *
- ******************************************************************************/
-
-static void
-Usage (
-    void)
-{
-
-    printf ("%s\n\n", ASL_COMPLIANCE);
-    ACPI_USAGE_HEADER ("iasl [Options] [Files]");
-    Options ();
-}
-
-
 /******************************************************************************
  *
  * FUNCTION:    AslSignalHandler
@@ -382,11 +322,6 @@  AslInitialize (
     UINT32                  i;
 
 
-#ifdef _DEBUG
-    _CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CrtSetDbgFlag(0));
-#endif
-
-
     for (i = 0; i < ASL_NUM_FILES; i++)
     {
         Gbl_Files[i].Handle = NULL;
@@ -398,675 +333,6 @@  AslInitialize (
 
     Gbl_Files[ASL_FILE_STDERR].Handle   = stderr;
     Gbl_Files[ASL_FILE_STDERR].Filename = "STDERR";
-
-    /* Allocate the line buffer(s) */
-
-    Gbl_LineBufferSize /= 2;
-    UtExpandLineBuffers ();
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AslMergeOptionTokens
- *
- * PARAMETERS:  InBuffer            - Input containing an option string
- *              OutBuffer           - Merged output buffer
- *
- * RETURN:      None
- *
- * DESCRIPTION: Remove all whitespace from an option string.
- *
- ******************************************************************************/
-
-static void
-AslMergeOptionTokens (
-    char                    *InBuffer,
-    char                    *OutBuffer)
-{
-    char                    *Token;
-
-
-    *OutBuffer = 0;
-
-    Token = strtok (InBuffer, ASL_TOKEN_SEPARATORS);
-    while (Token)
-    {
-        strcat (OutBuffer, Token);
-        Token = strtok (NULL, ASL_TOKEN_SEPARATORS);
-    }
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AslDoResponseFile
- *
- * PARAMETERS:  Filename        - Name of the response file
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Open a response file and process all options within.
- *
- ******************************************************************************/
-
-static int
-AslDoResponseFile (
-    char                    *Filename)
-{
-    char                    *argv = StringBuffer2;
-    FILE                    *ResponseFile;
-    int                     OptStatus = 0;
-    int                     Opterr;
-    int                     Optind;
-
-
-    ResponseFile = fopen (Filename, "r");
-    if (!ResponseFile)
-    {
-        printf ("Could not open command file %s, %s\n",
-            Filename, strerror (errno));
-        return (-1);
-    }
-
-    /* Must save the current GetOpt globals */
-
-    Opterr = AcpiGbl_Opterr;
-    Optind = AcpiGbl_Optind;
-
-    /*
-     * Process all lines in the response file. There must be one complete
-     * option per line
-     */
-    while (fgets (StringBuffer, ASL_MSG_BUFFER_SIZE, ResponseFile))
-    {
-        /* Compress all tokens, allowing us to use a single argv entry */
-
-        AslMergeOptionTokens (StringBuffer, StringBuffer2);
-
-        /* Process the option */
-
-        AcpiGbl_Opterr = 0;
-        AcpiGbl_Optind = 0;
-
-        OptStatus = AslDoOptions (1, &argv, TRUE);
-        if (OptStatus)
-        {
-            printf ("Invalid option in command file %s: %s\n",
-                Filename, StringBuffer);
-            break;
-        }
-    }
-
-    /* Restore the GetOpt globals */
-
-    AcpiGbl_Opterr = Opterr;
-    AcpiGbl_Optind = Optind;
-
-    fclose (ResponseFile);
-    return (OptStatus);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AslDoOptions
- *
- * PARAMETERS:  argc/argv           - Standard argc/argv
- *              IsResponseFile      - TRUE if executing a response file.
- *
- * RETURN:      Status
- *
- * DESCRIPTION: Command line option processing
- *
- ******************************************************************************/
-
-static int
-AslDoOptions (
-    int                     argc,
-    char                    **argv,
-    BOOLEAN                 IsResponseFile)
-{
-    int                     j;
-    ACPI_STATUS             Status;
-
-
-    /* Get the command line options */
-
-    while ((j = AcpiGetopt (argc, argv, ASL_SUPPORTED_OPTIONS)) != EOF) switch (j)
-    {
-    case '@':   /* Begin a response file */
-
-        if (IsResponseFile)
-        {
-            printf ("Nested command files are not supported\n");
-            return (-1);
-        }
-
-        if (AslDoResponseFile (AcpiGbl_Optarg))
-        {
-            return (-1);
-        }
-        break;
-
-
-    case 'b':   /* Debug output options */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case 'f':
-            AslCompilerdebug = 1; /* same as yydebug */
-            DtParserdebug = 1;
-            PrParserdebug = 1;
-            break;
-
-        case 't':
-            break;
-
-        default:
-            printf ("Unknown option: -b%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-
-        /* Produce debug output file */
-
-        Gbl_DebugFlag = TRUE;
-        break;
-
-
-    case 'c':
-        switch (AcpiGbl_Optarg[0])
-        {
-        case 'r':
-            Gbl_NoResourceChecking = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -c%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'd':   /* Disassembler */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case '^':
-            Gbl_DoCompile = FALSE;
-            break;
-
-        case 'a':
-            Gbl_DoCompile = FALSE;
-            Gbl_DisassembleAll = TRUE;
-            break;
-
-        case 'b':   /* Do not convert buffers to resource descriptors */
-            AcpiGbl_NoResourceDisassembly = TRUE;
-            break;
-
-        case 'c':
-            break;
-
-        default:
-            printf ("Unknown option: -d%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-
-        Gbl_DisasmFlag = TRUE;
-        break;
-
-
-    case 'D':   /* Define a symbol */
-        PrAddDefine (AcpiGbl_Optarg, NULL, TRUE);
-        break;
-
-
-    case 'e':   /* External files for disassembler */
-        Status = AcpiDmAddToExternalFileList (AcpiGbl_Optarg);
-        if (ACPI_FAILURE (Status))
-        {
-            printf ("Could not add %s to external list\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'f':   /* Ignore errors and force creation of aml file */
-        Gbl_IgnoreErrors = TRUE;
-        break;
-
-
-    case 'G':
-        Gbl_CompileGeneric = TRUE;
-        break;
-
-
-    case 'g':   /* Get all ACPI tables */
-
-        Gbl_GetAllTables = TRUE;
-        Gbl_DoCompile = FALSE;
-        break;
-
-
-    case 'h':
-        switch (AcpiGbl_Optarg[0])
-        {
-        case '^':
-            Usage ();
-            exit (0);
-
-        case 'c':
-            UtDisplayConstantOpcodes ();
-            exit (0);
-
-        case 'f':
-            FilenameHelp ();
-            exit (0);
-
-        case 'r':
-            /* reserved names */
-
-            ApDisplayReservedNames ();
-            exit (0);
-
-        case 't':
-            UtDisplaySupportedTables ();
-            exit (0);
-
-        default:
-            printf ("Unknown option: -h%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-
-
-    case 'I':   /* Add an include file search directory */
-        FlAddIncludeDirectory (AcpiGbl_Optarg);
-        break;
-
-
-    case 'i':   /* Output AML as an include file */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case 'a':
-
-            /* Produce assembly code include file */
-
-            Gbl_AsmIncludeOutputFlag = TRUE;
-            break;
-
-        case 'c':
-
-            /* Produce C include file */
-
-            Gbl_C_IncludeOutputFlag = TRUE;
-            break;
-
-        case 'n':
-
-            /* Compiler/Disassembler: Ignore the NOOP operator */
-
-            AcpiGbl_IgnoreNoopOperator = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -i%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'l':   /* Listing files */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case '^':
-            /* Produce listing file (Mixed source/aml) */
-
-            Gbl_ListingFlag = TRUE;
-            break;
-
-        case 'i':
-            /* Produce preprocessor output file */
-
-            Gbl_PreprocessorOutputFlag = TRUE;
-            break;
-
-        case 'n':
-            /* Produce namespace file */
-
-            Gbl_NsOutputFlag = TRUE;
-            break;
-
-        case 's':
-            /* Produce combined source file */
-
-            Gbl_SourceOutputFlag = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -l%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'm':   /* Set line buffer size */
-        Gbl_LineBufferSize = (UINT32) strtoul (AcpiGbl_Optarg, NULL, 0) * 1024;
-        if (Gbl_LineBufferSize < ASL_DEFAULT_LINE_BUFFER_SIZE)
-        {
-            Gbl_LineBufferSize = ASL_DEFAULT_LINE_BUFFER_SIZE;
-        }
-        printf ("Line Buffer Size: %u\n", Gbl_LineBufferSize);
-        break;
-
-
-    case 'n':   /* Parse only */
-        Gbl_ParseOnlyFlag = TRUE;
-        break;
-
-
-    case 'o':   /* Control compiler AML optimizations */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case 'a':
-
-            /* Disable all optimizations */
-
-            Gbl_FoldConstants = FALSE;
-            Gbl_IntegerOptimizationFlag = FALSE;
-            Gbl_ReferenceOptimizationFlag = FALSE;
-            break;
-
-        case 'f':
-
-            /* Disable folding on "normal" expressions */
-
-            Gbl_FoldConstants = FALSE;
-            break;
-
-        case 'i':
-
-            /* Disable integer optimization to constants */
-
-            Gbl_IntegerOptimizationFlag = FALSE;
-            break;
-
-        case 'n':
-
-            /* Disable named reference optimization */
-
-            Gbl_ReferenceOptimizationFlag = FALSE;
-            break;
-
-        case 't':
-
-            /* Display compile time(s) */
-
-            Gbl_CompileTimesFlag = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -c%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'P':   /* Preprocessor options */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case '^':   /* Proprocess only, emit (.i) file */
-            Gbl_PreprocessOnly = TRUE;
-            Gbl_PreprocessorOutputFlag = TRUE;
-            break;
-
-        case 'n':   /* Disable preprocessor */
-            Gbl_PreprocessFlag = FALSE;
-            break;
-
-        default:
-            printf ("Unknown option: -P%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'p':   /* Override default AML output filename */
-        Gbl_OutputFilenamePrefix = AcpiGbl_Optarg;
-        Gbl_UseDefaultAmlFilename = FALSE;
-        break;
-
-
-    case 'r':   /* Override revision found in table header */
-        Gbl_RevisionOverride = (UINT8) strtoul (AcpiGbl_Optarg, NULL, 0);
-        break;
-
-
-    case 's':   /* Create AML in a source code file */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case 'a':
-
-            /* Produce assembly code output file */
-
-            Gbl_AsmOutputFlag = TRUE;
-            break;
-
-        case 'c':
-
-            /* Produce C hex output file */
-
-            Gbl_C_OutputFlag = TRUE;
-            break;
-
-        case 'o':
-
-            /* Produce AML offset table in C */
-
-            Gbl_C_OffsetTableFlag = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -s%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 't':   /* Produce hex table output file */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case 'a':
-            Gbl_HexOutputFlag = HEX_OUTPUT_ASM;
-            break;
-
-        case 'c':
-            Gbl_HexOutputFlag = HEX_OUTPUT_C;
-            break;
-
-        case 's':
-            Gbl_HexOutputFlag = HEX_OUTPUT_ASL;
-            break;
-
-        default:
-            printf ("Unknown option: -t%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'T':   /* Create a ACPI table template file */
-        Gbl_DoTemplates = TRUE;
-        Gbl_TemplateSignature = AcpiGbl_Optarg;
-        break;
-
-
-    case 'v':   /* Version and verbosity settings */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case '^':
-            printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
-            exit (0);
-
-        case 'a':
-            /* Disable All error/warning messages */
-
-            Gbl_NoErrors = TRUE;
-            break;
-
-        case 'i':
-            /*
-             * Support for integrated development environment(s).
-             *
-             * 1) No compiler signon
-             * 2) Send stderr messages to stdout
-             * 3) Less verbose error messages (single line only for each)
-             * 4) Error/warning messages are formatted appropriately to
-             *    be recognized by MS Visual Studio
-             */
-            Gbl_VerboseErrors = FALSE;
-            Gbl_DoSignon = FALSE;
-            Gbl_Files[ASL_FILE_STDERR].Handle = stdout;
-            break;
-
-        case 'o':
-            Gbl_DisplayOptimizations = TRUE;
-            break;
-
-        case 'r':
-            Gbl_DisplayRemarks = FALSE;
-            break;
-
-        case 's':
-            Gbl_DoSignon = FALSE;
-            break;
-
-        case 't':
-            Gbl_VerboseTemplates = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -v%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'w': /* Set warning levels */
-        switch (AcpiGbl_Optarg[0])
-        {
-        case '1':
-            Gbl_WarningLevel = ASL_WARNING;
-            break;
-
-        case '2':
-            Gbl_WarningLevel = ASL_WARNING2;
-            break;
-
-        case '3':
-            Gbl_WarningLevel = ASL_WARNING3;
-            break;
-
-        case 'e':
-            Gbl_WarningsAsErrors = TRUE;
-            break;
-
-        default:
-            printf ("Unknown option: -w%s\n", AcpiGbl_Optarg);
-            return (-1);
-        }
-        break;
-
-
-    case 'x':   /* Set debug print output level */
-        AcpiDbgLevel = strtoul (AcpiGbl_Optarg, NULL, 16);
-        break;
-
-
-    case 'z':
-        Gbl_UseOriginalCompilerId = TRUE;
-        break;
-
-
-    default:
-        return (-1);
-    }
-
-    return (0);
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    AslCommandLine
- *
- * PARAMETERS:  argc/argv
- *
- * RETURN:      Last argv index
- *
- * DESCRIPTION: Command line processing
- *
- ******************************************************************************/
-
-static int
-AslCommandLine (
-    int                     argc,
-    char                    **argv)
-{
-    int                     BadCommandLine = 0;
-    ACPI_STATUS             Status;
-
-
-    /* Minimum command line contains at least the command and an input file */
-
-    if (argc < 2)
-    {
-        printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
-        Usage ();
-        exit (1);
-    }
-
-    /* Process all command line options */
-
-    BadCommandLine = AslDoOptions (argc, argv, FALSE);
-
-    if (Gbl_DoTemplates)
-    {
-        Status = DtCreateTemplates (Gbl_TemplateSignature);
-        if (ACPI_FAILURE (Status))
-        {
-            exit (-1);
-        }
-        exit (1);
-    }
-
-    /* Next parameter must be the input filename */
-
-    if (!argv[AcpiGbl_Optind] &&
-        !Gbl_DisasmFlag &&
-        !Gbl_GetAllTables)
-    {
-        printf ("Missing input filename\n");
-        BadCommandLine = TRUE;
-    }
-
-    if (Gbl_DoSignon)
-    {
-        printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME));
-        if (Gbl_IgnoreErrors)
-        {
-            printf ("Ignoring all errors, forcing AML file generation\n\n");
-        }
-    }
-
-    /* Abort if anything went wrong on the command line */
-
-    if (BadCommandLine)
-    {
-        printf ("\n");
-        Usage ();
-        exit (1);
-    }
-
-    return (AcpiGbl_Optind);
 }
 
 
@@ -1093,24 +359,24 @@  main (
     int                     Index2;
 
 
-    signal (SIGINT, AslSignalHandler);
+    ACPI_DEBUG_INITIALIZE (); /* For debug version only */
 
+    /* Initialize preprocessor and compiler before command line processing */
+
+    signal (SIGINT, AslSignalHandler);
     AcpiGbl_ExternalFileList = NULL;
     AcpiDbgLevel = 0;
-
-#ifdef _DEBUG
-    _CrtSetDbgFlag (_CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF |
-                    _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG));
-#endif
-
-    /* Init and command line */
+    PrInitializePreprocessor ();
+    AslInitialize ();
 
     Index1 = Index2 = AslCommandLine (argc, argv);
 
-    AslInitialize ();
-    PrInitializePreprocessor ();
+    /* Allocate the line buffer(s), must be after command line */
+
+    Gbl_LineBufferSize /= 2;
+    UtExpandLineBuffers ();
 
-    /* Options that have no additional parameters or pathnames */
+    /* Perform global actions first/only */
 
     if (Gbl_GetAllTables)
     {
diff --git a/src/acpica/source/compiler/aslmessages.h b/src/acpica/source/compiler/aslmessages.h
index b5c4d12..586afca 100644
--- a/src/acpica/source/compiler/aslmessages.h
+++ b/src/acpica/source/compiler/aslmessages.h
@@ -118,17 +118,52 @@ 
 #define __ASLMESSAGES_H
 
 
-#define ASL_WARNING             0
-#define ASL_WARNING2            1
-#define ASL_WARNING3            2
-#define ASL_ERROR               3
-#define ASL_REMARK              4
-#define ASL_OPTIMIZATION        5
-#define ASL_NUM_REPORT_LEVELS   6
+typedef enum
+{
+    ASL_OPTIMIZATION = 0,
+    ASL_REMARK,
+    ASL_WARNING,
+    ASL_WARNING2,
+    ASL_WARNING3,
+    ASL_ERROR,
+    ASL_NUM_REPORT_LEVELS
+
+} ASL_MESSAGE_TYPES;
 
+#ifdef ASL_EXCEPTIONS
+
+/* Strings for message reporting levels, must match values above */
 
-/* Values for all compiler messages */
+const char              *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
+    "Optimize",
+    "Remark  ",
+    "Warning ",
+    "Warning ",
+    "Warning ",
+    "Error   "
+};
+
+/* All lowercase versions for IDEs */
+
+const char              *AslErrorLevelIde [ASL_NUM_REPORT_LEVELS] = {
+    "optimize",
+    "remark  ",
+    "warning ",
+    "warning ",
+    "warning ",
+    "error   "
+};
+
+#define ASL_ERROR_LEVEL_LENGTH          8       /* Length of strings above */
+#endif
 
+/*
+ * Values for all compiler messages.
+ *
+ * NOTE: With the introduction of the -vw option to disable specific messages,
+ * new messages should only be added to the end of this list, so that values
+ * for existing messages are not disturbed.
+ */
 typedef enum
 {
     ASL_MSG_RESERVED = 0,
@@ -252,6 +287,7 @@  typedef enum
     ASL_MSG_SCOPE_TYPE,
     ASL_MSG_SEEK,
     ASL_MSG_SERIALIZED,
+    ASL_MSG_SERIALIZED_REQUIRED,
     ASL_MSG_SINGLE_NAME_OPTIMIZATION,
     ASL_MSG_SOME_NO_RETVAL,
     ASL_MSG_STRING_LENGTH,
@@ -307,9 +343,15 @@  typedef enum
 
 #ifdef ASL_EXCEPTIONS
 
-/* Actual message strings for each compiler message */
-
-char                        *AslMessages [] = {
+/*
+ * Actual message strings for each compiler message.
+ *
+ * NOTE: With the introduction of the -vw option to disable specific messages,
+ * new messages should only be added to the end of this list, so that values
+ * for existing messages are not disturbed.
+ */
+char                        *AslMessages [] =
+{
 /*    The zeroth message is reserved */    "",
 /*    ASL_MSG_ALIGNMENT */                  "Must be a multiple of alignment/granularity value",
 /*    ASL_MSG_ALPHANUMERIC_STRING */        "String must be entirely alphanumeric",
@@ -430,6 +472,7 @@  char                        *AslMessages [] = {
 /*    ASL_MSG_SCOPE_TYPE */                 "Existing object has invalid type for Scope operator",
 /*    ASL_MSG_SEEK */                       "Could not seek file",
 /*    ASL_MSG_SERIALIZED */                 "Control Method marked Serialized",
+/*    ASL_MSG_SERIALIZED_REQUIRED */        "Control Method should be made Serialized",
 /*    ASL_MSG_SINGLE_NAME_OPTIMIZATION */   "NamePath optimized to NameSeg (uses run-time search path)",
 /*    ASL_MSG_SOME_NO_RETVAL */             "Called method may not always return a value",
 /*    ASL_MSG_STRING_LENGTH */              "String literal too long",
@@ -480,27 +523,6 @@  char                        *AslMessages [] = {
 /*    ASL_MSG_ZERO_VALUE */                 "Value must be non-zero"
 };
 
-
-const char              *AslErrorLevel [ASL_NUM_REPORT_LEVELS] = {
-    "Warning ",
-    "Warning ",
-    "Warning ",
-    "Error   ",
-    "Remark  ",
-    "Optimize"
-};
-
-const char              *AslErrorLevelIde [ASL_NUM_REPORT_LEVELS] = {
-    "warning ",
-    "warning ",
-    "warning ",
-    "error   ",
-    "remark  ",
-    "optimize"
-};
-
-#define ASL_ERROR_LEVEL_LENGTH          8       /* Length of strings above */
-
 #endif  /* ASL_EXCEPTIONS */
 
 #endif  /* __ASLMESSAGES_H */
diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
index 3e0f757..f7b82d3 100644
--- a/src/acpica/source/compiler/aslmethod.c
+++ b/src/acpica/source/compiler/aslmethod.c
@@ -116,12 +116,22 @@ 
 
 #include "aslcompiler.h"
 #include "aslcompiler.y.h"
+#include "acparser.h"
+#include "amlcode.h"
 
 
 #define _COMPONENT          ACPI_COMPILER
         ACPI_MODULE_NAME    ("aslmethod")
 
 
+/* Local prototypes */
+
+void
+MtCheckNamedObjectInMethod (
+    ACPI_PARSE_OBJECT       *Op,
+    ASL_METHOD_INFO         *MethodInfo);
+
+
 /*******************************************************************************
  *
  * FUNCTION:    MtMethodAnalysisWalkBegin
@@ -183,6 +193,8 @@  MtMethodAnalysisWalkBegin (
         /* Get the SerializeRule and SyncLevel nodes, ignored here */
 
         Next = Next->Asl.Next;
+        MethodInfo->ShouldBeSerialized = (UINT8) Next->Asl.Value.Integer;
+
         Next = Next->Asl.Next;
         ArgNode = Next;
 
@@ -253,7 +265,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_METHODCALL:
 
         if (MethodInfo &&
@@ -263,7 +274,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_LOCAL0:
     case PARSEOP_LOCAL1:
     case PARSEOP_LOCAL2:
@@ -308,7 +318,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_ARG0:
     case PARSEOP_ARG1:
     case PARSEOP_ARG2:
@@ -359,7 +368,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_RETURN:
 
         if (!MethodInfo)
@@ -392,7 +400,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_BREAK:
     case PARSEOP_CONTINUE:
 
@@ -412,7 +419,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_STALL:
 
         /* We can range check if the argument is an integer */
@@ -424,7 +430,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_DEVICE:
     case PARSEOP_EVENT:
     case PARSEOP_MUTEX:
@@ -444,7 +449,6 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     case PARSEOP_NAME:
 
         /* Typecheck any predefined names statically defined with Name() */
@@ -482,17 +486,76 @@  MtMethodAnalysisWalkBegin (
         }
         break;
 
-
     default:
+
         break;
     }
 
+    /* Check for named object creation within a non-serialized method */
+
+    MtCheckNamedObjectInMethod (Op, MethodInfo);
     return (AE_OK);
 }
 
 
 /*******************************************************************************
  *
+ * FUNCTION:    MtCheckNamedObjectInMethod
+ *
+ * PARAMETERS:  Op                  - Current parser op
+ *              MethodInfo          - Info for method being parsed
+ *
+ * RETURN:      None
+ *
+ * DESCRIPTION: Detect if a non-serialized method is creating a named object,
+ *              which could possibly cause problems if two threads execute
+ *              the method concurrently. Emit a remark in this case.
+ *
+ ******************************************************************************/
+
+void
+MtCheckNamedObjectInMethod (
+    ACPI_PARSE_OBJECT       *Op,
+    ASL_METHOD_INFO         *MethodInfo)
+{
+    const ACPI_OPCODE_INFO  *OpInfo;
+
+
+    /* We don't care about actual method declarations */
+
+    if (Op->Asl.AmlOpcode == AML_METHOD_OP)
+    {
+        return;
+    }
+
+    /* Determine if we are creating a named object */
+
+    OpInfo = AcpiPsGetOpcodeInfo (Op->Asl.AmlOpcode);
+    if (OpInfo->Class == AML_CLASS_NAMED_OBJECT)
+    {
+        /*
+         * If we have a named object created within a non-serialized method,
+         * emit a remark that the method should be serialized.
+         *
+         * Reason: If a thread blocks within the method for any reason, and
+         * another thread enters the method, the method will fail because an
+         * attempt will be made to create the same object twice.
+         */
+        if (MethodInfo && !MethodInfo->ShouldBeSerialized)
+        {
+            AslError (ASL_REMARK, ASL_MSG_SERIALIZED_REQUIRED, MethodInfo->Op,
+                "due to creation of named objects within");
+
+            /* Emit message only ONCE per method */
+
+            MethodInfo->ShouldBeSerialized = TRUE;
+        }
+    }
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    MtMethodAnalysisWalkEnd
  *
  * PARAMETERS:  ASL_WALK_CALLBACK
@@ -518,6 +581,7 @@  MtMethodAnalysisWalkEnd (
     {
     case PARSEOP_METHOD:
     case PARSEOP_RETURN:
+
         if (!MethodInfo)
         {
             printf ("No method info for method! [%s]\n", Op->Asl.Namepath);
@@ -530,6 +594,7 @@  MtMethodAnalysisWalkEnd (
         break;
 
     default:
+
         break;
     }
 
@@ -606,7 +671,6 @@  MtMethodAnalysisWalkEnd (
         ACPI_FREE (MethodInfo);
         break;
 
-
     case PARSEOP_NAME:
 
          /* Special check for two names like _L01 and _E01 in same scope */
@@ -614,7 +678,6 @@  MtMethodAnalysisWalkEnd (
         ApCheckForGpeNameConflict (Op);
         break;
 
-
     case PARSEOP_RETURN:
 
         /*
@@ -644,7 +707,6 @@  MtMethodAnalysisWalkEnd (
         }
         break;
 
-
     case PARSEOP_IF:
 
         if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
@@ -660,7 +722,6 @@  MtMethodAnalysisWalkEnd (
         }
         break;
 
-
     case PARSEOP_ELSE:
 
         if ((Op->Asl.CompileFlags & NODE_HAS_NO_EXIT) &&
diff --git a/src/acpica/source/compiler/aslnamesp.c b/src/acpica/source/compiler/aslnamesp.c
index 0902c4b..149a5db 100644
--- a/src/acpica/source/compiler/aslnamesp.c
+++ b/src/acpica/source/compiler/aslnamesp.c
@@ -266,7 +266,6 @@  NsDoOneNamespaceObject (
                 ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value));
             break;
 
-
         case ACPI_TYPE_STRING:
 
             FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
@@ -275,7 +274,9 @@  NsDoOneNamespaceObject (
             break;
 
         default:
+
             /* Nothing to do for other types */
+
             break;
         }
 
@@ -300,7 +301,6 @@  NsDoOneNamespaceObject (
                 ACPI_FORMAT_UINT64 (Op->Asl.Value.Integer));
             break;
 
-
         case ACPI_TYPE_STRING:
 
             if (Op->Asl.ParseOpcode == PARSEOP_NAME)
@@ -317,7 +317,6 @@  NsDoOneNamespaceObject (
                 Op->Asl.Value.String);
             break;
 
-
         case ACPI_TYPE_LOCAL_REGION_FIELD:
 
             if ((Op->Asl.ParseOpcode == PARSEOP_NAMESEG)  ||
@@ -330,42 +329,47 @@  NsDoOneNamespaceObject (
                 Op->Asl.Parent->Asl.ExtraValue, (UINT32) Op->Asl.Value.Integer);
             break;
 
-
         case ACPI_TYPE_BUFFER_FIELD:
 
             switch (Op->Asl.ParseOpcode)
             {
             case PARSEOP_CREATEBYTEFIELD:
+
                 FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [BYTE  ( 8 bit)]");
                 break;
 
             case PARSEOP_CREATEDWORDFIELD:
+
                 FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [DWORD (32 bit)]");
                 break;
 
             case PARSEOP_CREATEQWORDFIELD:
+
                 FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [QWORD (64 bit)]");
                 break;
 
             case PARSEOP_CREATEWORDFIELD:
+
                 FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [WORD  (16 bit)]");
                 break;
 
             case PARSEOP_CREATEBITFIELD:
+
                 FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [BIT   ( 1 bit)]");
                 break;
 
             case PARSEOP_CREATEFIELD:
+
                 FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT, "   [Arbitrary Bit Field]");
                 break;
 
             default:
+
                 break;
 
             }
             break;
 
-
         case ACPI_TYPE_PACKAGE:
 
             if (Op->Asl.ParseOpcode == PARSEOP_NAME)
@@ -388,7 +392,6 @@  NsDoOneNamespaceObject (
             }
             break;
 
-
         case ACPI_TYPE_BUFFER:
 
             if (Op->Asl.ParseOpcode == PARSEOP_NAME)
@@ -410,7 +413,6 @@  NsDoOneNamespaceObject (
             }
             break;
 
-
         case ACPI_TYPE_METHOD:
 
             FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
@@ -418,14 +420,12 @@  NsDoOneNamespaceObject (
                 Op->Asl.AmlSubtreeLength);
             break;
 
-
         case ACPI_TYPE_LOCAL_RESOURCE:
 
             FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
                 "  [Desc Offset     0x%.4X Bytes]", Node->Value);
             break;
 
-
         case ACPI_TYPE_LOCAL_RESOURCE_FIELD:
 
             FlPrintFile (ASL_FILE_NAMESPACE_OUTPUT,
@@ -444,9 +444,10 @@  NsDoOneNamespaceObject (
             }
             break;
 
-
         default:
+
             /* Nothing to do for other types */
+
             break;
         }
     }
diff --git a/src/acpica/source/compiler/asloffset.c b/src/acpica/source/compiler/asloffset.c
index 22c9ff0..3c6551e 100644
--- a/src/acpica/source/compiler/asloffset.c
+++ b/src/acpica/source/compiler/asloffset.c
@@ -130,7 +130,6 @@  LsEmitOffsetTableEntry (
     UINT32                  FileId,
     ACPI_NAMESPACE_NODE     *Node,
     UINT32                  Offset,
-    UINT32                  Length,
     char                    *OpName,
     UINT64                  Value,
     UINT8                   AmlOpcode);
@@ -149,7 +148,9 @@  LsEmitOffsetTableEntry (
  * Three types of objects are currently emitted to the offset table:
  *   1) Tagged (named) resource descriptors
  *   2) Named integer objects with constant integer values
- *   3) Operation Regions that have constant Offset (address) parameters
+ *   3) Named package objects
+ *   4) Operation Regions that have constant Offset (address) parameters
+ *   5) Control methods
  *
  * The offset table allows the BIOS to dynamically update the values of these
  * objects at boot time.
@@ -166,7 +167,7 @@  LsAmlOffsetWalk (
     ACPI_NAMESPACE_NODE     *Node;
     UINT32                  Length;
     UINT32                  OffsetOfOpcode;
-    ACPI_PARSE_OBJECT       *AddressOp;
+    ACPI_PARSE_OBJECT       *NextOp;
 
 
     /* Ignore actual data blocks for resource descriptors */
@@ -191,13 +192,17 @@  LsAmlOffsetWalk (
         (Op->Asl.CompileFlags & NODE_IS_RESOURCE_DESC))
     {
         LsEmitOffsetTableEntry (FileId, Node, Gbl_CurrentAmlOffset,
-            Op->Asl.FinalAmlLength, Op->Asl.ParseOpName, 0, Op->Asl.Extra);
+            Op->Asl.ParseOpName, 0, Op->Asl.Extra);
+        Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
+        return (AE_OK);
     }
 
-    /* Named object -- Name (NameString, DataRefObject) */
-
-    else if (Op->Asl.AmlOpcode == AML_NAME_OP)
+    switch (Op->Asl.AmlOpcode)
     {
+    case AML_NAME_OP:
+
+        /* Named object -- Name (NameString, DataRefObject) */
+
         if (!Op->Asl.Child)
         {
             FlPrintFile (FileId, "%s NO CHILD!\n", MsgBuffer);
@@ -226,39 +231,50 @@  LsAmlOffsetWalk (
         case AML_DWORD_OP:
         case AML_QWORD_OP:
 
-            /* The +1/-1 is to handle the integer size prefix (opcode) */
+            /* The +1 is to handle the integer size prefix (opcode) */
 
             LsEmitOffsetTableEntry (FileId, Node,
                 (Gbl_CurrentAmlOffset + OffsetOfOpcode + 1),
-                (Op->Asl.FinalAmlLength - 1), Op->Asl.ParseOpName,
-                Op->Asl.Value.Integer, (UINT8) Op->Asl.AmlOpcode);
+                Op->Asl.ParseOpName, Op->Asl.Value.Integer,
+                (UINT8) Op->Asl.AmlOpcode);
             break;
 
-        default:
+        case AML_PACKAGE_OP:
+        case AML_VAR_PACKAGE_OP:
+
+            NextOp = Op->Asl.Child;
+
+            LsEmitOffsetTableEntry (FileId, Node,
+                (Gbl_CurrentAmlOffset + OffsetOfOpcode),
+                Op->Asl.ParseOpName,
+                NextOp->Asl.Value.Integer,
+                (UINT8) Op->Asl.AmlOpcode);
             break;
+
+         default:
+             break;
         }
 
         Gbl_CurrentAmlOffset += Length;
         return (AE_OK);
-    }
 
-    /* OperationRegion (NameString, RegionSpace, RegionOffset, RegionLength) */
+    case AML_REGION_OP:
+
+        /* OperationRegion (NameString, RegionSpace, RegionOffset, RegionLength) */
 
-    else if (Op->Asl.AmlOpcode == AML_REGION_OP)
-    {
         Length = Op->Asl.FinalAmlLength;
 
         /* Get the name/namepath node */
 
-        AddressOp = Op->Asl.Child;
-        OffsetOfOpcode = Length + AddressOp->Asl.FinalAmlLength + 1;
+        NextOp = Op->Asl.Child;
+        OffsetOfOpcode = Length + NextOp->Asl.FinalAmlLength + 1;
 
         /* Get the SpaceId node, then the Offset (address) node */
 
-        AddressOp = AddressOp->Asl.Next;
-        AddressOp = AddressOp->Asl.Next;
+        NextOp = NextOp->Asl.Next;
+        NextOp = NextOp->Asl.Next;
 
-        switch (AddressOp->Asl.AmlOpcode)
+        switch (NextOp->Asl.AmlOpcode)
         {
         /*
          * We are only interested in integer constants that can be changed
@@ -270,12 +286,10 @@  LsAmlOffsetWalk (
         case AML_DWORD_OP:
         case AML_QWORD_OP:
 
-            /* The +1/-1 is to handle the integer size prefix (opcode) */
-
             LsEmitOffsetTableEntry (FileId, Node,
                 (Gbl_CurrentAmlOffset + OffsetOfOpcode + 1),
-                (AddressOp->Asl.FinalAmlLength - 1), Op->Asl.ParseOpName,
-                AddressOp->Asl.Value.Integer, (UINT8) AddressOp->Asl.AmlOpcode);
+                Op->Asl.ParseOpName, NextOp->Asl.Value.Integer,
+                (UINT8) NextOp->Asl.AmlOpcode);
 
             Gbl_CurrentAmlOffset += Length;
             return (AE_OK);
@@ -283,6 +297,31 @@  LsAmlOffsetWalk (
         default:
             break;
         }
+        break;
+
+    case AML_METHOD_OP:
+
+        /* Method (Namepath, ...) */
+
+        Length = Op->Asl.FinalAmlLength;
+
+        /* Get the NameSeg/NamePath Op */
+
+        NextOp = Op->Asl.Child;
+
+        /* Point to the *last* nameseg in the namepath */
+
+        OffsetOfOpcode = NextOp->Asl.FinalAmlLength - ACPI_NAME_SIZE;
+
+        LsEmitOffsetTableEntry (FileId, Node,
+            (Gbl_CurrentAmlOffset + OffsetOfOpcode + Length),
+            Op->Asl.ParseOpName,
+            *((UINT32 *) &NextOp->Asl.Value.Buffer[OffsetOfOpcode]),
+            (UINT8) Op->Asl.AmlOpcode);
+        break;
+
+    default:
+        break;
     }
 
     Gbl_CurrentAmlOffset += Op->Asl.FinalAmlLength;
@@ -297,7 +336,6 @@  LsAmlOffsetWalk (
  * PARAMETERS:  FileId          - ID of current listing file
  *              Node            - Namespace node associated with the name
  *              Offset          - Offset of the value within the AML table
- *              Length          - Length in bytes of the value
  *              OpName          - Name of the AML opcode
  *              Value           - Current value of the AML field
  *              AmlOpcode       - Opcode associated with the field
@@ -313,7 +351,6 @@  LsEmitOffsetTableEntry (
     UINT32                  FileId,
     ACPI_NAMESPACE_NODE     *Node,
     UINT32                  Offset,
-    UINT32                  Length,
     char                    *OpName,
     UINT64                  Value,
     UINT8                   AmlOpcode)
@@ -365,8 +402,6 @@  LsDoOffsetTableHeader (
     UINT32                  FileId)
 {
 
-    Gbl_CurrentAmlOffset = 0;
-
     FlPrintFile (FileId,
         "#ifndef __AML_OFFSET_TABLE_H\n"
         "#define __AML_OFFSET_TABLE_H\n\n");
@@ -374,14 +409,41 @@  LsDoOffsetTableHeader (
     FlPrintFile (FileId, "typedef struct {\n"
         "    char                   *Pathname;\n"
         "    unsigned long          Offset;\n"
-        "    unsigned char          AmlOpcode;\n"
-        "    unsigned long long     AmlValue;\n"
+        "    unsigned char          Opcode;\n"
+        "    unsigned long long     Value;\n"
         "} AML_OFFSET_TABLE_ENTRY;\n\n");
 
     FlPrintFile (FileId,
         "#endif /* __AML_OFFSET_TABLE_H */\n\n");
 
     FlPrintFile (FileId,
+        "/*\n"
+        " * Information about supported object types:\n"
+        " *\n"
+        " * Integers:\n"
+        " *    Offset points to the actual integer data\n"
+        " *    Opcode is the integer prefix, indicates length of the data\n"
+        " *    Value is the existing value in the AML\n"
+        " *\n"
+        " * Packages:\n"
+        " *    Offset points to the package opcode\n"
+        " *    Opcode is the package or var_package opcode\n"
+        " *    Value is the package element cound\n"
+        " *\n"
+        " * Operation Regions:\n"
+        " *    Offset points to the region address data\n"
+        " *    Opcode is the address integer prefix, indicates length of the data\n"
+        " *    Value is the existing address value in the AML\n"
+        " *\n"
+        " * Control Methods:\n"
+        " *    Offset points to the first byte of the namepath\n"
+        " *\n"
+        " * Resource Descriptors:\n"
+        " *    Offset points to the start of the descriptor\n"
+        " *    Opcode is the descriptor type\n"
+        " */\n");
+
+    FlPrintFile (FileId,
         "AML_OFFSET_TABLE_ENTRY   %s_%s_OffsetTable[] =\n{\n",
         Gbl_TableSignature, Gbl_TableId);
 }
diff --git a/src/acpica/source/compiler/aslopcodes.c b/src/acpica/source/compiler/aslopcodes.c
index 2075037..4d26a8b 100644
--- a/src/acpica/source/compiler/aslopcodes.c
+++ b/src/acpica/source/compiler/aslopcodes.c
@@ -338,6 +338,7 @@  OpcSetOptimalIntegerSize (
             break;
 
         default:
+
             break;
         }
     }
@@ -883,7 +884,9 @@  OpcGenerateAmlOpcode (
         break;
 
     default:
+
         /* Nothing to do for other opcodes */
+
         break;
     }
 
diff --git a/src/acpica/source/compiler/asloperands.c b/src/acpica/source/compiler/asloperands.c
index 8f26559..a9f08d0 100644
--- a/src/acpica/source/compiler/asloperands.c
+++ b/src/acpica/source/compiler/asloperands.c
@@ -370,7 +370,6 @@  OpnDoFieldCommon (
             /* Nothing additional to do */
             break;
 
-
         case PARSEOP_OFFSET:
 
             /* New offset into the field */
@@ -414,7 +413,6 @@  OpnDoFieldCommon (
             }
             break;
 
-
         case PARSEOP_NAMESEG:
         case PARSEOP_RESERVED_BYTES:
 
@@ -432,6 +430,7 @@  OpnDoFieldCommon (
                 case AML_FIELD_ACCESS_BYTE:
                 case AML_FIELD_ACCESS_BUFFER:
                 default:
+
                     MinimumLength = 8;
                     break;
 
@@ -452,7 +451,9 @@  OpnDoFieldCommon (
             break;
 
         default:
+
             /* All supported field opcodes must appear above */
+
             break;
         }
 
@@ -682,7 +683,6 @@  OpnDoBuffer (
         }
         break;
 
-
     case PARSEOP_STRING_LITERAL:
 
         /*
@@ -696,18 +696,16 @@  OpnDoBuffer (
         InitializerOp->Asl.ParseOpcode    = PARSEOP_RAW_DATA;
         break;
 
-
     case PARSEOP_RAW_DATA:
 
         /* Buffer nodes are already initialized (e.g. Unicode operator) */
         return;
 
-
     case PARSEOP_DEFAULT_ARG:
         break;
 
-
     default:
+
         AslError (ASL_ERROR, ASL_MSG_INVALID_OPERAND, InitializerOp,
             "Unknown buffer initializer opcode");
         printf ("Unknown buffer initializer opcode [%s]\n",
@@ -1164,6 +1162,7 @@  OpnAttachNameToNode (
         return;
 
     default:
+
         return;
     }
 
@@ -1202,42 +1201,52 @@  OpnGenerateAmlOperands (
     switch (Op->Asl.ParseOpcode)
     {
     case PARSEOP_DEFINITIONBLOCK:
+
         OpnDoDefinitionBlock (Op);
         break;
 
     case PARSEOP_METHOD:
+
         OpnDoMethod (Op);
         break;
 
     case PARSEOP_MUTEX:
+
         OpnDoMutex (Op);
         break;
 
     case PARSEOP_FIELD:
+
         OpnDoField (Op);
         break;
 
     case PARSEOP_INDEXFIELD:
+
         OpnDoIndexField (Op);
         break;
 
     case PARSEOP_BANKFIELD:
+
         OpnDoBankField (Op);
         break;
 
     case PARSEOP_BUFFER:
+
         OpnDoBuffer (Op);
         break;
 
     case PARSEOP_LOADTABLE:
+
         OpnDoLoadTable (Op);
         break;
 
     case PARSEOP_OPERATIONREGION:
+
         OpnDoRegion (Op);
         break;
 
     case PARSEOP_RESOURCETEMPLATE:
+
         RsDoResourceTemplate (Op);
         break;
 
@@ -1245,9 +1254,11 @@  OpnGenerateAmlOperands (
     case PARSEOP_NAMESTRING:
     case PARSEOP_METHODCALL:
     case PARSEOP_STRING_LITERAL:
+
         break;
 
     default:
+
         break;
     }
 
diff --git a/src/acpica/source/compiler/aslpredef.c b/src/acpica/source/compiler/aslpredef.c
index 6d28bbf..09e1f02 100644
--- a/src/acpica/source/compiler/aslpredef.c
+++ b/src/acpica/source/compiler/aslpredef.c
@@ -382,7 +382,6 @@  ApCheckPredefinedReturnValue (
             break;
 
         default:
-
             /*
              * All other ops are very difficult or impossible to typecheck at
              * compile time. These include all Localx, Argx, and method
@@ -451,6 +450,7 @@  ApCheckForPredefinedObject (
         return;
 
     default:
+
         break;
     }
 
@@ -696,33 +696,53 @@  ApCheckObjectType (
     case PARSEOP_ONE:
     case PARSEOP_ONES:
     case PARSEOP_INTEGER:
+
         ReturnBtype = ACPI_RTYPE_INTEGER;
         TypeName = "Integer";
         break;
 
     case PARSEOP_STRING_LITERAL:
+
         ReturnBtype = ACPI_RTYPE_STRING;
         TypeName = "String";
         break;
 
     case PARSEOP_BUFFER:
+
         ReturnBtype = ACPI_RTYPE_BUFFER;
         TypeName = "Buffer";
         break;
 
     case PARSEOP_PACKAGE:
     case PARSEOP_VAR_PACKAGE:
+
         ReturnBtype = ACPI_RTYPE_PACKAGE;
         TypeName = "Package";
         break;
 
     case PARSEOP_NAMESEG:
     case PARSEOP_NAMESTRING:
+        /*
+         * Ignore any named references within a package object.
+         *
+         * For Package objects, references are allowed instead of any of the
+         * standard data types (Integer/String/Buffer/Package). These
+         * references are resolved at runtime. NAMESEG and NAMESTRING are
+         * impossible to typecheck at compile time because the type of
+         * any named object can be changed at runtime (for example,
+         * CopyObject will change the type of the target object).
+         */
+        if (PackageIndex != ACPI_NOT_PACKAGE_ELEMENT)
+        {
+            return (AE_OK);
+        }
+
         ReturnBtype = ACPI_RTYPE_REFERENCE;
         TypeName = "Reference";
         break;
 
     default:
+
         /* Not one of the supported object types */
 
         TypeName = UtGetOpName (Op->Asl.ParseOpcode);
diff --git a/src/acpica/source/compiler/aslresource.c b/src/acpica/source/compiler/aslresource.c
index 9e919e7..4a375b0 100644
--- a/src/acpica/source/compiler/aslresource.c
+++ b/src/acpica/source/compiler/aslresource.c
@@ -391,6 +391,7 @@  RsLargeAddressCheck (
         case ACPI_RESOURCE_FLAG_MIF:
         case ACPI_RESOURCE_FLAG_MAF:
         default:
+
             AslError (ASL_ERROR, ASL_MSG_INVALID_ADDR_FLAGS, LengthOp, NULL);
         }
     }
@@ -436,6 +437,7 @@  RsLargeAddressCheck (
 
         case (ACPI_RESOURCE_FLAG_MIF | ACPI_RESOURCE_FLAG_MAF):
         default:
+
             AslError (ASL_ERROR, ASL_MSG_INVALID_ADDR_FLAGS, LengthOp, NULL);
         }
     }
@@ -727,45 +729,54 @@  RsDoOneResourceDescriptor (
     switch (DescriptorTypeOp->Asl.ParseOpcode)
     {
     case PARSEOP_DMA:
+
         Rnode = RsDoDmaDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_FIXEDDMA:
+
         Rnode = RsDoFixedDmaDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_DWORDIO:
+
         Rnode = RsDoDwordIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_DWORDMEMORY:
+
         Rnode = RsDoDwordMemoryDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_DWORDSPACE:
+
         Rnode = RsDoDwordSpaceDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_ENDDEPENDENTFN:
+
         switch (*State)
         {
         case ACPI_RSTATE_NORMAL:
+
             AslError (ASL_ERROR, ASL_MSG_MISSING_STARTDEPENDENT,
                 DescriptorTypeOp, NULL);
             break;
 
         case ACPI_RSTATE_START_DEPENDENT:
+
             AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
                 DescriptorTypeOp, NULL);
             break;
 
         case ACPI_RSTATE_DEPENDENT_LIST:
         default:
+
             break;
         }
 
@@ -775,89 +786,107 @@  RsDoOneResourceDescriptor (
         break;
 
     case PARSEOP_ENDTAG:
+
         Rnode = RsDoEndTagDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_EXTENDEDIO:
+
         Rnode = RsDoExtendedIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_EXTENDEDMEMORY:
+
         Rnode = RsDoExtendedMemoryDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_EXTENDEDSPACE:
+
         Rnode = RsDoExtendedSpaceDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_FIXEDIO:
+
         Rnode = RsDoFixedIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_INTERRUPT:
+
         Rnode = RsDoInterruptDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_IO:
+
         Rnode = RsDoIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_IRQ:
+
         Rnode = RsDoIrqDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_IRQNOFLAGS:
+
         Rnode = RsDoIrqNoFlagsDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_MEMORY24:
+
         Rnode = RsDoMemory24Descriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_MEMORY32:
+
         Rnode = RsDoMemory32Descriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_MEMORY32FIXED:
+
         Rnode = RsDoMemory32FixedDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_QWORDIO:
+
         Rnode = RsDoQwordIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_QWORDMEMORY:
+
         Rnode = RsDoQwordMemoryDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_QWORDSPACE:
+
         Rnode = RsDoQwordSpaceDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_REGISTER:
+
         Rnode = RsDoGeneralRegisterDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_STARTDEPENDENTFN:
+
         switch (*State)
         {
         case ACPI_RSTATE_START_DEPENDENT:
+
             AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
                 DescriptorTypeOp, NULL);
             break;
@@ -865,6 +894,7 @@  RsDoOneResourceDescriptor (
         case ACPI_RSTATE_NORMAL:
         case ACPI_RSTATE_DEPENDENT_LIST:
         default:
+
             break;
         }
 
@@ -875,9 +905,11 @@  RsDoOneResourceDescriptor (
         break;
 
     case PARSEOP_STARTDEPENDENTFN_NOPRI:
+
         switch (*State)
         {
         case ACPI_RSTATE_START_DEPENDENT:
+
             AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING,
                 DescriptorTypeOp, NULL);
             break;
@@ -885,6 +917,7 @@  RsDoOneResourceDescriptor (
         case ACPI_RSTATE_NORMAL:
         case ACPI_RSTATE_DEPENDENT_LIST:
         default:
+
             break;
         }
 
@@ -895,60 +928,72 @@  RsDoOneResourceDescriptor (
         break;
 
     case PARSEOP_VENDORLONG:
+
         Rnode = RsDoVendorLargeDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_VENDORSHORT:
+
         Rnode = RsDoVendorSmallDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_WORDBUSNUMBER:
+
         Rnode = RsDoWordBusNumberDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_WORDIO:
+
         Rnode = RsDoWordIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_WORDSPACE:
+
         Rnode = RsDoWordSpaceDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_GPIO_INT:
+
         Rnode = RsDoGpioIntDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_GPIO_IO:
+
         Rnode = RsDoGpioIoDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_I2C_SERIALBUS:
+
         Rnode = RsDoI2cSerialBusDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_SPI_SERIALBUS:
+
         Rnode = RsDoSpiSerialBusDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_UART_SERIALBUS:
+
         Rnode = RsDoUartSerialBusDescriptor (DescriptorTypeOp,
                     CurrentByteOffset);
         break;
 
     case PARSEOP_DEFAULT_ARG:
+
         /* Just