[PATCH] acpica: update to ACPICA version 20130517.
Keng-Yu Lin
kengyu at canonical.com
Wed May 22 09:20:37 UTC 2013
On Sat, May 18, 2013 at 3:58 AM, Colin King <colin.king at canonical.com> wrote:
> From: Colin Ian King <colin.king at 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 at 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 at canonical.com>
More information about the fwts-devel
mailing list