Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Oct 2019 18:00:41 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r353735 - in vendor-sys/acpica/dist: . generate/unix/acpinames source/common source/compiler source/components/debugger source/components/disassembler source/components/dispatcher sourc...
Message-ID:  <201910181800.x9II0f91088730@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Fri Oct 18 18:00:41 2019
New Revision: 353735
URL: https://svnweb.freebsd.org/changeset/base/353735

Log:
  Import ACPICA 20191018.

Modified:
  vendor-sys/acpica/dist/changes.txt
  vendor-sys/acpica/dist/generate/unix/acpinames/Makefile
  vendor-sys/acpica/dist/source/common/acgetline.c
  vendor-sys/acpica/dist/source/common/adisasm.c
  vendor-sys/acpica/dist/source/common/adwalk.c
  vendor-sys/acpica/dist/source/common/dmtables.c
  vendor-sys/acpica/dist/source/common/dmtbdump1.c
  vendor-sys/acpica/dist/source/common/dmtbdump2.c
  vendor-sys/acpica/dist/source/common/dmtbdump3.c
  vendor-sys/acpica/dist/source/compiler/aslanalyze.c
  vendor-sys/acpica/dist/source/compiler/aslbtypes.c
  vendor-sys/acpica/dist/source/compiler/aslkeywords.y
  vendor-sys/acpica/dist/source/compiler/aslload.c
  vendor-sys/acpica/dist/source/compiler/aslmessages.c
  vendor-sys/acpica/dist/source/compiler/aslmessages.h
  vendor-sys/acpica/dist/source/compiler/aslmethod.c
  vendor-sys/acpica/dist/source/compiler/aslnamesp.c
  vendor-sys/acpica/dist/source/compiler/aslprepkg.c
  vendor-sys/acpica/dist/source/compiler/aslresource.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2.c
  vendor-sys/acpica/dist/source/compiler/aslrestype2s.c
  vendor-sys/acpica/dist/source/compiler/aslutils.c
  vendor-sys/acpica/dist/source/compiler/cvdisasm.c
  vendor-sys/acpica/dist/source/compiler/cvparser.c
  vendor-sys/acpica/dist/source/compiler/dtcompile.c
  vendor-sys/acpica/dist/source/compiler/dtcompiler.h
  vendor-sys/acpica/dist/source/compiler/dtcompilerparser.l
  vendor-sys/acpica/dist/source/compiler/dtcompilerparser.y
  vendor-sys/acpica/dist/source/compiler/dtfield.c
  vendor-sys/acpica/dist/source/compiler/dtio.c
  vendor-sys/acpica/dist/source/compiler/dttable2.c
  vendor-sys/acpica/dist/source/components/debugger/dbconvert.c
  vendor-sys/acpica/dist/source/components/debugger/dbdisply.c
  vendor-sys/acpica/dist/source/components/debugger/dbfileio.c
  vendor-sys/acpica/dist/source/components/debugger/dbinput.c
  vendor-sys/acpica/dist/source/components/debugger/dbmethod.c
  vendor-sys/acpica/dist/source/components/debugger/dbnames.c
  vendor-sys/acpica/dist/source/components/debugger/dbobject.c
  vendor-sys/acpica/dist/source/components/disassembler/dmdeferred.c
  vendor-sys/acpica/dist/source/components/disassembler/dmresrc.c
  vendor-sys/acpica/dist/source/components/disassembler/dmwalk.c
  vendor-sys/acpica/dist/source/components/dispatcher/dscontrol.c
  vendor-sys/acpica/dist/source/components/dispatcher/dsfield.c
  vendor-sys/acpica/dist/source/components/events/evgpeblk.c
  vendor-sys/acpica/dist/source/components/events/evgpeinit.c
  vendor-sys/acpica/dist/source/components/events/evmisc.c
  vendor-sys/acpica/dist/source/components/events/evregion.c
  vendor-sys/acpica/dist/source/components/events/evrgnini.c
  vendor-sys/acpica/dist/source/components/hardware/hwxfsleep.c
  vendor-sys/acpica/dist/source/components/namespace/nsconvert.c
  vendor-sys/acpica/dist/source/components/namespace/nsdump.c
  vendor-sys/acpica/dist/source/components/namespace/nsxfname.c
  vendor-sys/acpica/dist/source/components/parser/psobject.c
  vendor-sys/acpica/dist/source/components/resources/rscreate.c
  vendor-sys/acpica/dist/source/components/tables/tbdata.c
  vendor-sys/acpica/dist/source/components/tables/tbxfload.c
  vendor-sys/acpica/dist/source/components/utilities/utbuffer.c
  vendor-sys/acpica/dist/source/components/utilities/utids.c
  vendor-sys/acpica/dist/source/components/utilities/uttrack.c
  vendor-sys/acpica/dist/source/include/acdebug.h
  vendor-sys/acpica/dist/source/include/acpixf.h
  vendor-sys/acpica/dist/source/include/acstruct.h
  vendor-sys/acpica/dist/source/include/acutils.h
  vendor-sys/acpica/dist/source/include/platform/acfreebsd.h
  vendor-sys/acpica/dist/source/os_specific/service_layers/oswinxf.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aecommon.h
  vendor-sys/acpica/dist/source/tools/acpiexec/aehandlers.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aeinitfile.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c
  vendor-sys/acpica/dist/source/tools/acpiexec/aetests.c
  vendor-sys/acpica/dist/source/tools/acpihelp/ahdecode.c
  vendor-sys/acpica/dist/source/tools/acpinames/anstubs.c
  vendor-sys/acpica/dist/source/tools/acpisrc/asfile.c
  vendor-sys/acpica/dist/source/tools/acpisrc/asremove.c
  vendor-sys/acpica/dist/tests/templates/Makefile

Modified: vendor-sys/acpica/dist/changes.txt
==============================================================================
--- vendor-sys/acpica/dist/changes.txt	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/changes.txt	Fri Oct 18 18:00:41 2019	(r353735)
@@ -1,4 +1,51 @@
 ----------------------------------------
+18 October 2019. Summary of changes for version 20191018:
+
+
+1) ACPICA kernel-resident subsystem:
+
+Debugger: added a new command: ?Fields [address space ID]?. This command 
+dumps the contents of all field units that are defined within the 
+namespace with a particular address space ID.
+
+Modified the external interface AcpiLoadTable() to return a table index. 
+This table index can be used for unloading a table for debugging.
+    ACPI_STATUS
+    AcpiLoadTable (
+        ACPI_TABLE_HEADER       *Table,
+        UINT32                  *TableIndex))
+
+Implemented a new external interface: AcpiUnloadTable() This new function 
+takes a table index as an argument and unloads the table. Useful for 
+debugging only.
+    ACPI_STATUS
+    AcpiUnloadTable (
+        UINT32                  TableIndex))
+
+Ported the AcpiNames utility to use the new table initialization 
+sequence. The utility was broken before this change. Also, it was 
+required to include most of the AML interpreter into the utility in order 
+to process table initialization (module-level code execution.)
+
+Update for results from running Clang V8.0.1. This fixes all "dead 
+assignment" warnings. There are still several "Dereference of NULL 
+pointer" warnings, but these have been found to be false positive 
+warnings.
+
+
+2) iASL Compiler/Disassembler and ACPICA tools:
+
+iASL: numerous table compiler changes to ensure that the usage of 
+yacc/bison syntax is POSIX-compliant.
+
+iASL/disassembler: several simple bug fixes in the data table 
+disassembler.
+
+Acpiexec: expanded the initialization file (the -fi option) to initialize 
+strings, buffers, packages, and field units.
+
+
+----------------------------------------
 16 August 2019. Summary of changes for version 20190816:
 
 This release is available at https://acpica.org/downloads

Modified: vendor-sys/acpica/dist/generate/unix/acpinames/Makefile
==============================================================================
--- vendor-sys/acpica/dist/generate/unix/acpinames/Makefile	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/generate/unix/acpinames/Makefile	Fri Oct 18 18:00:41 2019	(r353735)
@@ -22,7 +22,9 @@ PROG = $(OBJDIR)/acpinames
 vpath %.c \
     $(ACPINAMES)\
     $(ACPICA_DISPATCHER)\
+    $(ACPICA_EVENTS)\
     $(ACPICA_EXECUTER)\
+    $(ACPICA_HARDWARE)\
     $(ACPICA_NAMESPACE)\
     $(ACPICA_PARSER)\
     $(ACPICA_TABLES)\
@@ -39,34 +41,69 @@ OBJECTS = \
 	$(OBJDIR)/anstubs.o\
 	$(OBJDIR)/antables.o\
 	$(OBJDIR)/cmfsize.o\
+	$(OBJDIR)/dscontrol.o\
+	$(OBJDIR)/dsdebug.o\
 	$(OBJDIR)/dsfield.o\
 	$(OBJDIR)/dsinit.o\
+	$(OBJDIR)/dsmethod.o\
 	$(OBJDIR)/dsmthdat.o\
 	$(OBJDIR)/dsobject.o\
+	$(OBJDIR)/dsopcode.o\
 	$(OBJDIR)/dspkginit.o\
 	$(OBJDIR)/dsutils.o\
+	$(OBJDIR)/dswexec.o\
 	$(OBJDIR)/dswload.o\
 	$(OBJDIR)/dswload2.o\
 	$(OBJDIR)/dswscope.o\
 	$(OBJDIR)/dswstate.o\
+	$(OBJDIR)/evhandler.o\
+	$(OBJDIR)/evmisc.o\
+	$(OBJDIR)/evregion.o\
+	$(OBJDIR)/evrgnini.o\
+	$(OBJDIR)/evxfregn.o\
+	$(OBJDIR)/exconcat.o\
+	$(OBJDIR)/exconfig.o\
+	$(OBJDIR)/exconvrt.o\
 	$(OBJDIR)/excreate.o\
 	$(OBJDIR)/exdump.o\
+	$(OBJDIR)/exfield.o\
+	$(OBJDIR)/exfldio.o\
+	$(OBJDIR)/exmisc.o\
 	$(OBJDIR)/exmutex.o\
 	$(OBJDIR)/exnames.o\
+	$(OBJDIR)/exoparg1.o\
+	$(OBJDIR)/exoparg2.o\
+	$(OBJDIR)/exoparg3.o\
+	$(OBJDIR)/exoparg6.o\
 	$(OBJDIR)/exprep.o\
+	$(OBJDIR)/exregion.o\
 	$(OBJDIR)/exresnte.o\
 	$(OBJDIR)/exresolv.o\
+	$(OBJDIR)/exresop.o\
+	$(OBJDIR)/exserial.o\
+	$(OBJDIR)/exstore.o\
+	$(OBJDIR)/exstoren.o\
+	$(OBJDIR)/exstorob.o\
 	$(OBJDIR)/exsystem.o\
 	$(OBJDIR)/exutils.o\
 	$(OBJDIR)/getopt.o\
+	$(OBJDIR)/hwpci.o\
+	$(OBJDIR)/hwvalid.o\
 	$(OBJDIR)/nsaccess.o\
 	$(OBJDIR)/nsalloc.o\
+	$(OBJDIR)/nsarguments.o\
+	$(OBJDIR)/nsconvert.o\
 	$(OBJDIR)/nsdump.o\
+	$(OBJDIR)/nseval.o\
 	$(OBJDIR)/nsinit.o\
 	$(OBJDIR)/nsload.o\
 	$(OBJDIR)/nsnames.o\
 	$(OBJDIR)/nsobject.o\
 	$(OBJDIR)/nsparse.o\
+	$(OBJDIR)/nspredef.o\
+	$(OBJDIR)/nsprepkg.o\
+	$(OBJDIR)/nsrepair.o\
+	$(OBJDIR)/nsrepair2.o\
 	$(OBJDIR)/nssearch.o\
 	$(OBJDIR)/nsutils.o\
 	$(OBJDIR)/nswalk.o\
@@ -99,6 +136,7 @@ OBJECTS = \
 	$(OBJDIR)/utascii.o\
 	$(OBJDIR)/utbuffer.o\
 	$(OBJDIR)/utcache.o\
+	$(OBJDIR)/utcopy.o\
 	$(OBJDIR)/utdebug.o\
 	$(OBJDIR)/utdecode.o\
 	$(OBJDIR)/utdelete.o\
@@ -117,8 +155,12 @@ OBJECTS = \
 	$(OBJDIR)/utobject.o\
 	$(OBJDIR)/utosi.o\
 	$(OBJDIR)/utownerid.o\
+	$(OBJDIR)/utpredef.o\
+	$(OBJDIR)/utresrc.o\
 	$(OBJDIR)/utstate.o\
 	$(OBJDIR)/utstring.o\
+	$(OBJDIR)/utstrsuppt.o\
+	$(OBJDIR)/utstrtoul64.o\
 	$(OBJDIR)/utxface.o\
 	$(OBJDIR)/utxferror.o\
 	$(OBJDIR)/utxfinit.o

Modified: vendor-sys/acpica/dist/source/common/acgetline.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/acgetline.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/acgetline.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -532,7 +532,7 @@ AcpiOsGetLine (
                  * Ignore the various keys like insert/delete/home/end, etc.
                  * But we must eat the final character of the ESC sequence.
                  */
-                InputChar = getchar ();
+                (void) getchar ();
                 continue;
 
             default:

Modified: vendor-sys/acpica/dist/source/common/adisasm.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/adisasm.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/adisasm.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -746,7 +746,6 @@ AdDoExternalFileList (
             {
                 ExternalFileList = ExternalFileList->Next;
                 GlobalStatus = AE_TYPE;
-                Status = AE_OK;
                 continue;
             }
 

Modified: vendor-sys/acpica/dist/source/common/adwalk.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/adwalk.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/adwalk.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -601,7 +601,9 @@ AcpiDmFindOrphanDescending (
         return (AE_OK);
     }
 
+#ifdef ACPI_UNDER_DEVELOPMENT
     OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
+#endif
 
     switch (Op->Common.AmlOpcode)
     {
@@ -1100,7 +1102,7 @@ AcpiDmCommonDescendingOp (
     /* Switch/Case conversion */
 
     Status = AcpiDmProcessSwitch (Op);
-    return (AE_OK);
+    return (Status);
 }
 
 

Modified: vendor-sys/acpica/dist/source/common/dmtables.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/dmtables.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/dmtables.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -327,7 +327,7 @@ AdCreateTableHeader (
      * makes it easier to rename the disassembled ASL file if needed.
      */
     AcpiOsPrintf (
-        "DefinitionBlock (\"\", \"%4.4s\", %hu, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
+        "DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
         Table->Signature, Table->Revision,
         Table->OemId, Table->OemTableId, Table->OemRevision);
 }
@@ -601,7 +601,7 @@ AdParseTable (
     fprintf (stderr,
         "Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)\n");
 
-    Status = AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot);
+    (void) AcpiDmParseDeferredOps (AcpiGbl_ParseOpRoot);
     fprintf (stderr, "\n");
 
     /* Process Resource Templates */

Modified: vendor-sys/acpica/dist/source/common/dmtbdump1.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/dmtbdump1.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/dmtbdump1.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -474,7 +474,6 @@ AcpiDmDumpCsrt (
                 {
                     return;
                 }
-                SubSubOffset += InfoLength;
             }
 
             /* Point to next sub-subtable */
@@ -1401,7 +1400,6 @@ AcpiDmDumpHmat (
     while (Offset < Table->Length)
     {
         AcpiOsPrintf ("\n");
-        SubtableOffset = 0;
 
         /* Dump HMAT structure header */
 
@@ -1484,6 +1482,11 @@ AcpiDmDumpHmat (
                 Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
                     ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
                     4, AcpiDmTableInfoHmat1a);
+                if (ACPI_FAILURE (Status))
+                {
+                    return;
+                }
+
                 SubtableOffset += 4;
             }
 
@@ -1500,6 +1503,11 @@ AcpiDmDumpHmat (
                 Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
                     ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
                     4, AcpiDmTableInfoHmat1b);
+                if (ACPI_FAILURE (Status))
+                {
+                    return;
+                }
+
                 SubtableOffset += 4;
             }
 
@@ -1519,6 +1527,11 @@ AcpiDmDumpHmat (
                     Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
                         ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
                         2, AcpiDmTableInfoHmat1c);
+                    if (ACPI_FAILURE(Status))
+                    {
+                        return;
+                    }
+
                     SubtableOffset += 2;
                 }
             }
@@ -1542,6 +1555,11 @@ AcpiDmDumpHmat (
                 Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
                     ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
                     2, AcpiDmTableInfoHmat2a);
+                if (ACPI_FAILURE (Status))
+                {
+                    return;
+                }
+
                 SubtableOffset += 2;
             }
             break;

Modified: vendor-sys/acpica/dist/source/common/dmtbdump2.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/dmtbdump2.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/dmtbdump2.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -187,6 +187,7 @@ AcpiDmDumpIort (
     ACPI_DMTABLE_INFO       *InfoTable;
     char                    *String;
     UINT32                  i;
+    UINT32                  MappingByteLength;
 
 
     /* Main table */
@@ -314,6 +315,11 @@ AcpiDmDumpIort (
                     Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
                         ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
                         4, AcpiDmTableInfoIort0a);
+                    if (ACPI_FAILURE (Status))
+                    {
+                        return;
+                    }
+
                     NodeOffset += 4;
                 }
             }
@@ -325,8 +331,10 @@ AcpiDmDumpIort (
 
             if (IortNode->Length > NodeOffset)
             {
+                MappingByteLength =
+                    IortNode->MappingCount * sizeof (ACPI_IORT_ID_MAPPING);
                 Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
-                    Table, IortNode->Length - NodeOffset,
+                    Table, IortNode->Length - NodeOffset - MappingByteLength,
                     AcpiDmTableInfoIort1a);
                 if (ACPI_FAILURE (Status))
                 {
@@ -410,7 +418,6 @@ NextSubtable:
         /* Point to next node subtable */
 
         Offset += IortNode->Length;
-        IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, IortNode->Length);
     }
 }
 
@@ -1211,7 +1218,6 @@ AcpiDmDumpNfit (
             /* Has a variable number of 32-bit values at the end */
 
             InfoTable = AcpiDmTableInfoNfit2;
-            Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable);
             FieldOffset = sizeof (ACPI_NFIT_INTERLEAVE);
             break;
 
@@ -1236,7 +1242,6 @@ AcpiDmDumpNfit (
             /* Has a variable number of 64-bit addresses at the end */
 
             InfoTable = AcpiDmTableInfoNfit6;
-            Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable);
             FieldOffset = sizeof (ACPI_NFIT_FLUSH_ADDRESS) - sizeof (UINT64);
             break;
 
@@ -1273,6 +1278,7 @@ AcpiDmDumpNfit (
         {
         case ACPI_NFIT_TYPE_INTERLEAVE:
 
+            Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable);
             for (i = 0; i < Interleave->LineCount; i++)
             {
                 Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
@@ -1308,6 +1314,7 @@ AcpiDmDumpNfit (
 
         case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
 
+            Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable);
             for (i = 0; i < Hint->HintCount; i++)
             {
                 Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
@@ -1806,6 +1813,11 @@ AcpiDmDumpPptt (
                 Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
                     ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, SubtableOffset),
                     4, AcpiDmTableInfoPptt0a);
+                if (ACPI_FAILURE (Status))
+                {
+                    return;
+                }
+
                 SubtableOffset += 4;
             }
             break;
@@ -2063,6 +2075,10 @@ AcpiDmDumpSdev (
                 Status = AcpiDmDumpTable (Table->Length, 0,
                     ACPI_ADD_PTR (UINT8, Pcie, VendorDataOffset),
                     VendorDataLength, AcpiDmTableInfoSdev1b);
+                if (ACPI_FAILURE (Status))
+                {
+                    return;
+                }
             }
             break;
 

Modified: vendor-sys/acpica/dist/source/common/dmtbdump3.c
==============================================================================
--- vendor-sys/acpica/dist/source/common/dmtbdump3.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/common/dmtbdump3.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -410,7 +410,7 @@ AcpiDmDumpStao (
         Namepath = ACPI_ADD_PTR (char, Table, Offset);
         StringLength = strlen (Namepath) + 1;
 
-        AcpiDmLineHeader (Offset, StringLength, "Namestring");
+        AcpiDmLineHeader (Offset, StringLength, "Namepath");
         AcpiOsPrintf ("\"%s\"\n", Namepath);
 
         /* Point to next namepath */
@@ -526,7 +526,7 @@ AcpiDmDumpTpm2Rev3 (
     {
     case ACPI_TPM23_ACPI_START_METHOD:
 
-        Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+        (void) AcpiDmDumpTable (Table->Length, Offset, Subtable,
             Table->Length - Offset, AcpiDmTableInfoTpm23a);
         break;
 
@@ -591,7 +591,7 @@ AcpiDmDumpTpm2 (
         Offset += sizeof (ACPI_TPM2_TRAILER);
 
         AcpiOsPrintf ("\n");
-        Status = AcpiDmDumpTable (Table->Length, Offset, ArmSubtable,
+        (void) AcpiDmDumpTable (Table->Length, Offset, ArmSubtable,
             Table->Length - Offset, AcpiDmTableInfoTpm211);
         break;
 

Modified: vendor-sys/acpica/dist/source/compiler/aslanalyze.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslanalyze.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslanalyze.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -569,7 +569,7 @@ ApCheckForGpeNameConflict (
 
     /* Need a null-terminated string version of NameSeg */
 
-    ACPI_MOVE_32_TO_32 (Name, &Op->Asl.NameSeg);
+    ACPI_MOVE_32_TO_32 (Name, Op->Asl.NameSeg);
     Name[ACPI_NAMESEG_SIZE] = 0;
 
     /*

Modified: vendor-sys/acpica/dist/source/compiler/aslbtypes.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslbtypes.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslbtypes.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -474,7 +474,6 @@ AnFormatBtype (
             strcat (Buffer, "|");
         }
 
-        First = FALSE;
         strcat (Buffer, "Resource");
     }
 }

Modified: vendor-sys/acpica/dist/source/compiler/aslkeywords.y
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslkeywords.y	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslkeywords.y	Fri Oct 18 18:00:41 2019	(r353735)
@@ -202,7 +202,7 @@ AddressKeyword
     ;
 
 AddressSpaceKeyword
-    : ByteConst                             {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
+    : ByteConst                             {$$ = UtCheckIntegerRange ($1, ACPI_NUM_PREDEFINED_REGIONS, 0xFF);}
     | RegionSpaceKeyword                    {}
     ;
 

Modified: vendor-sys/acpica/dist/source/compiler/aslload.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslload.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslload.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -526,13 +526,12 @@ LdNamespace1Begin (
 
     case AML_INT_CONNECTION_OP:
 
-
         if (Op->Asl.Child->Asl.AmlOpcode != AML_INT_NAMEPATH_OP)
         {
             break;
         }
-        Arg = Op->Asl.Child;
 
+        Arg = Op->Asl.Child;
         Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Asl.ExternalName,
             ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
             WalkState, &Node);
@@ -541,15 +540,6 @@ LdNamespace1Begin (
             break;
         }
 
-        if (Node->Type == ACPI_TYPE_BUFFER)
-        {
-            Arg->Asl.Node = Node;
-
-            Arg = Node->Op->Asl.Child;  /* Get namepath */
-            Arg = Arg->Asl.Next;        /* Get actual buffer */
-            Arg = Arg->Asl.Child;       /* Buffer length */
-            Arg = Arg->Asl.Next;        /* RAW_DATA buffer */
-        }
         break;
 
     default:
@@ -576,7 +566,6 @@ LdNamespace1Begin (
          * These opcodes are guaranteed to have a parent.
          * Examine the parent opcode.
          */
-        Status = AE_OK;
         ParentOp = Op->Asl.Parent;
         OpInfo = AcpiPsGetOpcodeInfo (ParentOp->Asl.AmlOpcode);
 

Modified: vendor-sys/acpica/dist/source/compiler/aslmessages.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslmessages.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslmessages.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -387,7 +387,10 @@ const char                      *AslTableCompilerMsgs 
 /*    ASL_MSG_UNKNOWN_LABEL */              "Label is undefined",
 /*    ASL_MSG_UNKNOWN_SUBTABLE */           "Unknown subtable type",
 /*    ASL_MSG_UNKNOWN_TABLE */              "Unknown ACPI table signature",
-/*    ASL_MSG_ZERO_VALUE */                 "Value must be non-zero"
+/*    ASL_MSG_ZERO_VALUE */                 "Value must be non-zero",
+/*    ASL_MSG_INVALID_LABEL */              "Invalid field label detected",
+/*    ASL_MSG_BUFFER_LIST */                "Invalid buffer initializer list",
+/*    ASL_MSG_ENTRY_LIST */                 "Invalid entry initializer list"
 };
 
 /* Preprocessor */

Modified: vendor-sys/acpica/dist/source/compiler/aslmessages.h
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslmessages.h	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslmessages.h	Fri Oct 18 18:00:41 2019	(r353735)
@@ -387,6 +387,9 @@ typedef enum
     ASL_MSG_UNKNOWN_SUBTABLE,
     ASL_MSG_UNKNOWN_TABLE,
     ASL_MSG_ZERO_VALUE,
+    ASL_MSG_INVALID_LABEL,
+    ASL_MSG_BUFFER_LIST,
+    ASL_MSG_ENTRY_LIST,
 
     /* These messages are used by the Preprocessor only */
 

Modified: vendor-sys/acpica/dist/source/compiler/aslmethod.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslmethod.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslmethod.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -199,6 +199,8 @@ MtMethodAnalysisWalkBegin (
     ACPI_PARSE_OBJECT       *NextType;
     ACPI_PARSE_OBJECT       *NextParamType;
     UINT8                   ActualArgs = 0;
+    BOOLEAN                 HidExists;
+    BOOLEAN                 AdrExists;
 
 
     /* Build cross-reference output file if requested */
@@ -535,11 +537,25 @@ MtMethodAnalysisWalkBegin (
 
     case PARSEOP_DEVICE:
 
-        if (!ApFindNameInDeviceTree (METHOD_NAME__HID, Op) &&
-            !ApFindNameInDeviceTree (METHOD_NAME__ADR, Op))
+        /* Check usage of _HID and _ADR objects */
+
+        HidExists = ApFindNameInDeviceTree (METHOD_NAME__HID, Op);
+        AdrExists = ApFindNameInDeviceTree (METHOD_NAME__ADR, Op);
+
+        if (!HidExists && !AdrExists)
         {
             AslError (ASL_WARNING, ASL_MSG_MISSING_DEPENDENCY, Op,
                 "Device object requires a _HID or _ADR in same scope");
+        }
+        else if (HidExists && AdrExists)
+        {
+            /*
+             * According to the ACPI spec, "A device object must contain
+             * either an _HID object or an _ADR object, but should not contain
+             * both".
+             */
+            AslError (ASL_WARNING, ASL_MSG_MULTIPLE_TYPES, Op,
+                "Device object requires either a _HID or _ADR, but not both");
         }
         break;
 

Modified: vendor-sys/acpica/dist/source/compiler/aslnamesp.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslnamesp.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslnamesp.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -234,6 +234,10 @@ NsDisplayNamespace (
     Status = AcpiNsWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
         ACPI_UINT32_MAX, FALSE, NsDoOneNamespaceObject, NULL,
         NULL, NULL);
+    if (ACPI_FAILURE (Status))
+    {
+        return (Status);
+    }
 
     /* Print the full pathname for each namespace node */
 

Modified: vendor-sys/acpica/dist/source/compiler/aslprepkg.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslprepkg.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslprepkg.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -458,7 +458,7 @@ ApCheckPackage (
 
         for (i = 0; i < Package->RetInfo4.Count1; ++i)
         {
-            Status = ApCheckObjectType (Predefined->Info.Name, Op,
+            ApCheckObjectType (Predefined->Info.Name, Op,
                 Package->RetInfo4.ObjectType1, i);
             Op = Op->Asl.Next;
         }

Modified: vendor-sys/acpica/dist/source/compiler/aslresource.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslresource.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslresource.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -1226,7 +1226,7 @@ RsDoResourceTemplate (
     BufferOp->Asl.AmlOpcode           = AML_RAW_DATA_CHAIN;
     BufferOp->Asl.AmlOpcodeLength     = 0;
     BufferOp->Asl.AmlLength           = CurrentByteOffset;
-    BufferOp->Asl.Value.Buffer        = (UINT8 *) HeadRnode.Next;
+    BufferOp->Asl.Value.Buffer        = ACPI_CAST_PTR (UINT8,  HeadRnode.Next);
     BufferOp->Asl.CompileFlags       |= OP_IS_RESOURCE_DATA;
     UtSetParseOpName (BufferOp);
 

Modified: vendor-sys/acpica/dist/source/compiler/aslrestype2.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslrestype2.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslrestype2.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -487,10 +487,7 @@ RsDoInterruptDescriptor (
 
     if (StringLength && ResSourceString)
     {
-
         strcpy ((char *) Rover, (char *) ResSourceString);
-        Rover = ACPI_ADD_PTR (
-                    AML_RESOURCE, &(Rover->ByteItem), StringLength);
 
         Descriptor->ExtendedIrq.ResourceLength = (UINT16)
             (Descriptor->ExtendedIrq.ResourceLength + StringLength);

Modified: vendor-sys/acpica/dist/source/compiler/aslrestype2s.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslrestype2s.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslrestype2s.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -674,7 +674,6 @@ RsDoGpioIoDescriptor (
     ResSourceLength = RsGetStringDataLength (InitializerOp);
     VendorLength = RsGetBufferDataLength (InitializerOp);
     InterruptLength = RsGetInterruptDataLength (InitializerOp, 10);
-    PinList = InterruptList;
 
     DescriptorSize = ACPI_AML_SIZE_LARGE (AML_RESOURCE_GPIO) +
         ResSourceLength + VendorLength + InterruptLength;

Modified: vendor-sys/acpica/dist/source/compiler/aslutils.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/aslutils.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/aslutils.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -223,7 +223,7 @@ UtQueryForOverwrite (
     char                    *Pathname)
 {
     struct stat             StatInfo;
-    int                     InChar = 0x34;
+    int                     InChar;
 
 
     if (!stat (Pathname, &StatInfo))

Modified: vendor-sys/acpica/dist/source/compiler/cvdisasm.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/cvdisasm.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/cvdisasm.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -544,8 +544,11 @@ CvSwitchFiles(
         Current = Current->Parent;
     }
 
-    /* Redirect output to Op->Common.CvFilename */
+    if (FNode)
+    {
+        /* Redirect output to Op->Common.CvFilename */
 
-    AcpiOsRedirectOutput (FNode->File);
-    AcpiGbl_CurrentFilename = FNode->Filename;
+        AcpiOsRedirectOutput (FNode->File);
+        AcpiGbl_CurrentFilename = FNode->Filename;
+    }
 }

Modified: vendor-sys/acpica/dist/source/compiler/cvparser.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/cvparser.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/cvparser.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -912,7 +912,6 @@ CvCaptureCommentsOnly (
 
                     /* Not a valid comment option. Revert the AML */
 
-                    Aml -= 2;
                     goto DefBlock;
 
             } /* End switch statement */

Modified: vendor-sys/acpica/dist/source/compiler/dtcompile.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/dtcompile.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/dtcompile.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -276,7 +276,10 @@ DtDoCompile (
 
     if (ACPI_FAILURE (Status))
     {
-        FileNode->ParserErrorDetected = TRUE;
+        if (FileNode)
+        {
+            FileNode->ParserErrorDetected = TRUE;
+        }
 
         /* TBD: temporary error message. Msgs should come from function above */
 
@@ -572,7 +575,7 @@ DtCompileTable (
     ACPI_STATUS             Status = AE_OK;
 
 
-    if (!Field)
+    if (!Field || !Info)
     {
         return (AE_BAD_PARAMETER);
     }
@@ -642,6 +645,14 @@ DtCompileTable (
 
         FieldType = DtGetFieldType (Info);
         AslGbl_InputFieldCount++;
+
+        if (FieldType != DT_FIELD_TYPE_INLINE_SUBTABLE &&
+            strcmp (Info->Name, LocalField->Name))
+        {
+            sprintf (AslGbl_MsgBuffer, "found \"%s\" expected \"%s\"",
+                LocalField->Name, Info->Name);
+            DtError (ASL_ERROR, ASL_MSG_INVALID_LABEL, LocalField, AslGbl_MsgBuffer);
+        }
 
         switch (FieldType)
         {

Modified: vendor-sys/acpica/dist/source/compiler/dtcompiler.h
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/dtcompiler.h	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/dtcompiler.h	Fri Oct 18 18:00:41 2019	(r353735)
@@ -210,7 +210,18 @@ typedef struct dt_field
 
 #define DT_FIELD_NOT_ALLOCATED      1
 
+/*
+ * Structure used for each individual key or value
+ */
+typedef struct dt_table_unit
+{
+    char                    *Value;      /* Field value (from name : value) */
+    UINT32                  Line;        /* Line number for this field */
+    UINT32                  Column;      /* Start column for field value */
 
+} DT_TABLE_UNIT;
+
+
 /*
  * Structure used for individual subtables within an ACPI table
  */
@@ -292,14 +303,6 @@ DtCompilePadding (
     UINT32                  Length,
     DT_SUBTABLE             **RetSubtable);
 
-void
-DtCreateField (
-    char                    *Name,
-    char                    *Value,
-    UINT32                  Line,
-    UINT32                  Offset,
-    UINT32                  Column,
-    UINT32                  NameColumn);
 
 /* dtio - binary and text input/output */
 
@@ -435,6 +438,26 @@ DtCompileFlag (
     UINT8                   *Buffer,
     DT_FIELD                *Field,
     ACPI_DMTABLE_INFO       *Info);
+
+
+/* dtfield - DT_FIELD operations */
+
+void
+DtLinkField (
+    DT_FIELD                *Field);
+
+void
+DtCreateField (
+    DT_TABLE_UNIT           *FieldKey,
+    DT_TABLE_UNIT           *FieldValue,
+    UINT32                  Offset);
+
+DT_TABLE_UNIT *
+DtCreateTableUnit (
+    char                    *Data,
+    UINT32                  Line,
+    UINT32                  Column);
+
 
 
 /* dtparser - lex/yacc files */

Modified: vendor-sys/acpica/dist/source/compiler/dtcompilerparser.l
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/dtcompilerparser.l	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/dtcompilerparser.l	Fri Oct 18 18:00:41 2019	(r353735)
@@ -161,18 +161,20 @@ YYSTYPE DtCompilerlval;
 /* handle locations */
 
 int DtCompilerParsercolumn = 1;
+int DtLabelByteOffset = 0;
 int DtCompilerParserByteOffset = 0;
 
+UINT32 DtTokenFirstLine = 0;
+UINT32 DtTokenFirstColumn = 0;
+
 #define YY_USER_ACTION \
-            DtCompilerParserlloc.first_line = DtCompilerParserlloc.last_line = DtCompilerParserlineno; \
-            DtCompilerParserlloc.first_column = DtCompilerParsercolumn; \
-            DtCompilerParserlloc.first_byte_offset = DtCompilerParserByteOffset; \
-            DtCompilerParserlloc.last_column = DtCompilerParsercolumn + DtCompilerParserleng-1; \
+            DtTokenFirstLine = DtCompilerParserlineno; \
+            DtTokenFirstColumn = DtCompilerParsercolumn; \
             DtCompilerParsercolumn += DtCompilerParserleng; \
             DtCompilerParserByteOffset += DtCompilerParserleng; \
             DbgPrint (ASL_PARSE_OUTPUT,\
-                "user action occurred. DtCompilerParserlloc.first_line: %u offset: %u\n",\
-                DtCompilerParserlloc.first_line, DtCompilerParserlloc.first_byte_offset);
+                "user action occurred. DtCompilerParserlloc.first_line: %u\n",\
+                DtTokenFirstLine);
 %}
 
 %option nounput noinput yylineno
@@ -236,7 +238,11 @@ CommentField    {LabelName}{WhiteSpace}*:{WhiteSpace}{
     int size = strlen (DtCompilerParsertext);
     s=UtLocalCacheCalloc (size + 1);
     AcpiUtSafeStrncpy (s, DtCompilerParsertext, size + 1);
-    DtCompilerParserlval.s = s;
+    DtCompilerParserlval.u = (DT_TABLE_UNIT *) UtLocalCacheCalloc (sizeof (DT_TABLE_UNIT));
+    DtCompilerParserlval.u->Value = s;
+    DtCompilerParserlval.u->Line = DtCompilerParserlineno;
+    DtCompilerParserlval.u->Column = DtCompilerParsercolumn;
+    DtLabelByteOffset = DtCompilerParserByteOffset;
     DbgPrint (ASL_PARSE_OUTPUT, "Label: %s\n", s);
     return (DT_PARSEOP_LABEL);
 }

Modified: vendor-sys/acpica/dist/source/compiler/dtcompilerparser.y
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/dtcompilerparser.y	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/dtcompilerparser.y	Fri Oct 18 18:00:41 2019	(r353735)
@@ -169,9 +169,13 @@ void                        DtCompilerParsererror (cha
 extern char                 *DtCompilerParsertext;
 extern DT_FIELD             *AslGbl_CurrentField;
 
+extern int                  DtLabelByteOffset;
 extern UINT64               DtCompilerParserResult; /* Expression return value */
 extern UINT64               DtCompilerParserlineno; /* Current line number */
 
+extern UINT32               DtTokenFirstLine;
+extern UINT32               DtTokenFirstColumn;
+
 /* Bison/yacc configuration */
 
 #define yytname             DtCompilerParsername
@@ -186,42 +190,30 @@ extern UINT64               DtCompilerParserlineno; /*
 
 %}
 
-%code requires {
 
-    typedef struct YYLTYPE {
-        int first_line;
-        int last_line;
-        int first_column;
-        int last_column;
-        int first_byte_offset;
-    } YYLTYPE;
-
-    #define YYLTYPE_IS_DECLARED 1
-}
-
-
 %union {
     char                *s;
     DT_FIELD            *f;
+    DT_TABLE_UNIT       *u;
 }
 
 
 %type  <f> Table
-%token <s> DT_PARSEOP_DATA
-%token <s> DT_PARSEOP_LABEL
-%token <s> DT_PARSEOP_STRING_DATA
-%token <s> DT_PARSEOP_LINE_CONTINUATION
-%type  <s> Data
-%type  <s> Datum
-%type  <s> MultiLineData
-%type  <s> MultiLineDataList
+%token <u> DT_PARSEOP_DATA
+%token <u> DT_PARSEOP_LABEL
+%token <u> DT_PARSEOP_STRING_DATA
+%token <u> DT_PARSEOP_LINE_CONTINUATION
+%type  <u> Data
+%type  <u> Datum
+%type  <u> MultiLineData
+%type  <u> MultiLineDataList
 
 
 %%
 
 Table
     :
-    FieldList { DtCompilerParserResult = 5;}
+    FieldList { }
     ;
 
 FieldList
@@ -230,7 +222,7 @@ FieldList
     ;
 
 Field
-    : DT_PARSEOP_LABEL ':' Data { DtCreateField ($1, $3, (@3).first_line, (@1).first_byte_offset, (@1).first_column, (@3).first_column); }
+    : DT_PARSEOP_LABEL ':' Data { DtCreateField ($1, $3, DtLabelByteOffset); }
     ;
 
 Data
@@ -240,7 +232,7 @@ Data
     ;
 
 MultiLineDataList
-    : MultiLineDataList MultiLineData { $$ = AcpiUtStrcat(AcpiUtStrcat($1, " "), $2); } /* combine the strings with strcat */
+    : MultiLineDataList MultiLineData { $$ = DtCreateTableUnit (AcpiUtStrcat(AcpiUtStrcat($1->Value, " "), $2->Value), $1->Line, $1->Column); } /* combine the strings with strcat */
     | MultiLineData                   { $$ = $1; }
     ;
 
@@ -249,8 +241,14 @@ MultiLineData
     ;
 
 Datum
-    : DT_PARSEOP_DATA        { DbgPrint (ASL_PARSE_OUTPUT, "parser        data: [%s]\n", DtCompilerParserlval.s); $$ = AcpiUtStrdup(DtCompilerParserlval.s); }
-    | DT_PARSEOP_STRING_DATA { DbgPrint (ASL_PARSE_OUTPUT, "parser string data: [%s]\n", DtCompilerParserlval.s); $$ = AcpiUtStrdup(DtCompilerParserlval.s); }
+    : DT_PARSEOP_DATA        {
+                                 DbgPrint (ASL_PARSE_OUTPUT, "parser        data: [%s]\n", DtCompilerParserlval.s);
+                                 $$ = DtCreateTableUnit (AcpiUtStrdup(DtCompilerParserlval.s), DtTokenFirstLine, DtTokenFirstColumn);
+                             }
+    | DT_PARSEOP_STRING_DATA {
+                                 DbgPrint (ASL_PARSE_OUTPUT, "parser string data: [%s]\n", DtCompilerParserlval.s);
+                                 $$ = DtCreateTableUnit (AcpiUtStrdup(DtCompilerParserlval.s), DtTokenFirstLine, DtTokenFirstColumn);
+                             }
     ;
 
 

Modified: vendor-sys/acpica/dist/source/compiler/dtfield.c
==============================================================================
--- vendor-sys/acpica/dist/source/compiler/dtfield.c	Fri Oct 18 17:36:42 2019	(r353734)
+++ vendor-sys/acpica/dist/source/compiler/dtfield.c	Fri Oct 18 18:00:41 2019	(r353735)
@@ -576,6 +576,14 @@ DtCompileBuffer (
 
     StringValue = DtNormalizeBuffer (StringValue, &Count);
     Substring = StringValue;
+    if (Count != ByteLength)
+    {
+        sprintf(AslGbl_MsgBuffer,
+            "Found %u values, must match expected count: %u",
+            Count, ByteLength);
+        DtError (ASL_ERROR, ASL_MSG_BUFFER_LIST, Field, AslGbl_MsgBuffer);
+        goto Exit;
+    }
 
     /* Each element of StringValue is now three chars (2 hex + 1 space) */
 
@@ -720,4 +728,123 @@ DtCompileFlag (
     }
 
     *Buffer |= (UINT8) (Value << BitPosition);
+}
+
+
+/******************************************************************************
+ *
+ * FUNCTION:    DtCreateField
+ *
+ * PARAMETERS: Name
+ *             Value
+ *             Line
+ *             Offset
+ *             Column
+ *             NameColumn
+ *
+ * RETURN:     None
+ *
+ * DESCRIPTION: Create a field
+ *
+ *****************************************************************************/
+
+void
+DtCreateField (
+    DT_TABLE_UNIT           *FieldKey,
+    DT_TABLE_UNIT           *FieldValue,
+    UINT32                  Offset)
+{
+    DT_FIELD                *Field = UtFieldCacheCalloc ();
+
+
+    Field->StringLength = 0;
+    if (FieldKey->Value)
+    {
+        Field->Name =
+            strcpy (UtLocalCacheCalloc (strlen (FieldKey->Value) + 1), FieldKey->Value);
+    }
+
+    if (FieldValue->Value)
+    {
+        Field->StringLength = strlen (FieldValue->Value);
+        Field->Value =
+            strcpy (UtLocalCacheCalloc (Field->StringLength + 1), FieldValue->Value);
+    }
+
+    Field->Line = FieldValue->Line;
+    Field->ByteOffset = Offset;
+    Field->NameColumn = FieldKey->Column;
+    Field->Column = FieldValue->Column;
+    DtLinkField (Field);
+
+    DtDumpFieldList (AslGbl_FieldList);
+}
+
+
+/******************************************************************************
+ *
+ * FUNCTION:    DtCreateTableUnit
+ *
+ * PARAMETERS: Data
+ *             Line
+ *             Column
+ *
+ * RETURN:     a table unit
+ *
+ * DESCRIPTION: Create a table unit
+ *
+ *****************************************************************************/
+
+DT_TABLE_UNIT *
+DtCreateTableUnit (
+    char                    *Data,
+    UINT32                  Line,
+    UINT32                  Column)
+{
+    DT_TABLE_UNIT           *Unit = (DT_TABLE_UNIT *) UtFieldCacheCalloc ();
+
+
+    Unit->Value = Data;
+    Unit->Line = Line;
+    Unit->Column = Column;
+    return (Unit);
+}
+
+
+/******************************************************************************
+ *
+ * FUNCTION:    DtLinkField
+ *

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910181800.x9II0f91088730>