svn commit: r359346 - in head/sys: amd64/vmm/amd contrib/dev/acpica contrib/dev/acpica/common contrib/dev/acpica/compiler contrib/dev/acpica/components/debugger contrib/dev/acpica/components/dispat...

Jung-uk Kim jkim at FreeBSD.org
Fri Mar 27 00:29:49 UTC 2020


Author: jkim
Date: Fri Mar 27 00:29:33 2020
New Revision: 359346
URL: https://svnweb.freebsd.org/changeset/base/359346

Log:
  Merge ACPICA 20200326.

Modified:
  head/sys/amd64/vmm/amd/amdvi_priv.h
  head/sys/amd64/vmm/amd/ivrs_drv.c
  head/sys/contrib/dev/acpica/changes.txt
  head/sys/contrib/dev/acpica/common/ahtable.c
  head/sys/contrib/dev/acpica/common/dmtable.c
  head/sys/contrib/dev/acpica/common/dmtbdump2.c
  head/sys/contrib/dev/acpica/common/dmtbinfo2.c
  head/sys/contrib/dev/acpica/common/dmtbinfo3.c
  head/sys/contrib/dev/acpica/compiler/aslcompile.c
  head/sys/contrib/dev/acpica/compiler/aslcompiler.h
  head/sys/contrib/dev/acpica/compiler/aslcompiler.l
  head/sys/contrib/dev/acpica/compiler/asldefine.h
  head/sys/contrib/dev/acpica/compiler/aslerror.c
  head/sys/contrib/dev/acpica/compiler/aslglobal.h
  head/sys/contrib/dev/acpica/compiler/aslload.c
  head/sys/contrib/dev/acpica/compiler/asloptions.c
  head/sys/contrib/dev/acpica/compiler/asltypes.h
  head/sys/contrib/dev/acpica/compiler/dtcompiler.h
  head/sys/contrib/dev/acpica/compiler/dtcompilerparser.l
  head/sys/contrib/dev/acpica/compiler/dtcompilerparser.y
  head/sys/contrib/dev/acpica/compiler/dtparser.l
  head/sys/contrib/dev/acpica/compiler/dttable1.c
  head/sys/contrib/dev/acpica/compiler/dtutils.c
  head/sys/contrib/dev/acpica/compiler/prparser.l
  head/sys/contrib/dev/acpica/components/debugger/dbinput.c
  head/sys/contrib/dev/acpica/components/debugger/dbxface.c
  head/sys/contrib/dev/acpica/components/dispatcher/dswexec.c
  head/sys/contrib/dev/acpica/components/dispatcher/dswload.c
  head/sys/contrib/dev/acpica/components/dispatcher/dswload2.c
  head/sys/contrib/dev/acpica/components/hardware/hwsleep.c
  head/sys/contrib/dev/acpica/components/namespace/nsnames.c
  head/sys/contrib/dev/acpica/components/utilities/utdecode.c
  head/sys/contrib/dev/acpica/components/utilities/utdelete.c
  head/sys/contrib/dev/acpica/include/acdisasm.h
  head/sys/contrib/dev/acpica/include/acnamesp.h
  head/sys/contrib/dev/acpica/include/acpixf.h
  head/sys/contrib/dev/acpica/include/actbinfo.h
  head/sys/contrib/dev/acpica/include/actbl2.h
  head/sys/contrib/dev/acpica/include/actbl3.h
  head/sys/contrib/dev/acpica/include/acuuid.h
Directory Properties:
  head/sys/contrib/dev/acpica/   (props changed)

Modified: head/sys/amd64/vmm/amd/amdvi_priv.h
==============================================================================
--- head/sys/amd64/vmm/amd/amdvi_priv.h	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/amd64/vmm/amd/amdvi_priv.h	Fri Mar 27 00:29:33 2020	(r359346)
@@ -357,33 +357,15 @@ struct amdvi_domain {
 };
 
 /*
- * I/O Virtualization Hardware Definition Block (IVHD) type 0x10 (legacy)
- * uses ACPI_IVRS_HARDWARE define in contrib/dev/acpica/include/actbl2.h
- * New IVHD types 0x11 and 0x40 as defined in AMD IOMMU spec[48882] are missing in
- * ACPI code. These new types add extra field EFR(Extended Feature Register).
- * XXX : Use definition from ACPI when it is available.
- */
-typedef struct acpi_ivrs_hardware_efr_sup
-{
-	ACPI_IVRS_HEADER Header;
-	UINT16 CapabilityOffset;   /* Offset for IOMMU control fields */
-	UINT64 BaseAddress;        /* IOMMU control registers */
-	UINT16 PciSegmentGroup;
-	UINT16 Info;               /* MSI number and unit ID */
-	UINT32 Attr;               /* IOMMU Feature */
-	UINT64 ExtFR;              /* IOMMU Extended Feature */
-	UINT64 Reserved;           /* v1 feature or v2 attribute */
-} __attribute__ ((__packed__)) ACPI_IVRS_HARDWARE_EFRSUP;
-CTASSERT(sizeof(ACPI_IVRS_HARDWARE_EFRSUP) == 40);
-
-/*
  * Different type of IVHD.
  * XXX: Use AcpiIvrsType once new IVHD types are available.
 */
 enum IvrsType
 {
-	IVRS_TYPE_HARDWARE_LEGACY = 0x10, /* Legacy without EFRi support. */
-	IVRS_TYPE_HARDWARE_EFR 	  = 0x11, /* With EFR support. */
+	IVRS_TYPE_HARDWARE_LEGACY = ACPI_IVRS_TYPE_HARDWARE1,
+					/* Legacy without EFRi support. */
+	IVRS_TYPE_HARDWARE_EFR	  = ACPI_IVRS_TYPE_HARDWARE2,
+						/* With EFR support. */
 	IVRS_TYPE_HARDWARE_MIXED  = 0x40, /* Mixed with EFR support. */
 };
 

Modified: head/sys/amd64/vmm/amd/ivrs_drv.c
==============================================================================
--- head/sys/amd64/vmm/amd/ivrs_drv.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/amd64/vmm/amd/ivrs_drv.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -54,7 +54,7 @@ int	ivhd_count;			/* Number of IVHD header. */
  * Cached IVHD header list.
  * Single entry for each IVHD, filtered the legacy one.
  */
-ACPI_IVRS_HARDWARE *ivhd_hdrs[10];	
+ACPI_IVRS_HARDWARE1 *ivhd_hdrs[10];	
 
 extern int amdvi_ptp_level;		/* Page table levels. */
 
@@ -161,7 +161,7 @@ ivrs_hdr_find_iter(ACPI_IVRS_HEADER * ivrs_hdr, void *
 	return (1);
 }
 
-static ACPI_IVRS_HARDWARE *
+static ACPI_IVRS_HARDWARE1 *
 ivhd_find_by_index(int idx)
 {
 	struct find_ivrs_hdr_args fi;
@@ -171,7 +171,7 @@ ivhd_find_by_index(int idx)
 
 	ivrs_hdr_iterate_tbl(ivrs_hdr_find_iter, &fi);
 
-	return ((ACPI_IVRS_HARDWARE *)fi.ptr);
+	return ((ACPI_IVRS_HARDWARE1 *)fi.ptr);
 }
 
 static void
@@ -195,7 +195,7 @@ ivhd_dev_add_entry(struct amdvi_softc *softc, uint32_t
  * Record device attributes as suggested by BIOS.
  */
 static int
-ivhd_dev_parse(ACPI_IVRS_HARDWARE* ivhd, struct amdvi_softc *softc)
+ivhd_dev_parse(ACPI_IVRS_HARDWARE1 *ivhd, struct amdvi_softc *softc)
 {
 	ACPI_IVRS_DE_HEADER *de;
 	uint8_t *p, *end;
@@ -209,12 +209,12 @@ ivhd_dev_parse(ACPI_IVRS_HARDWARE* ivhd, struct amdvi_
 
 	switch (ivhd->Header.Type) {
 		case IVRS_TYPE_HARDWARE_LEGACY:
-			p = (uint8_t *)ivhd + sizeof(ACPI_IVRS_HARDWARE);
+			p = (uint8_t *)ivhd + sizeof(ACPI_IVRS_HARDWARE1);
 			break;
 
 		case IVRS_TYPE_HARDWARE_EFR:
 		case IVRS_TYPE_HARDWARE_MIXED:
-			p = (uint8_t *)ivhd + sizeof(ACPI_IVRS_HARDWARE_EFRSUP);
+			p = (uint8_t *)ivhd + sizeof(ACPI_IVRS_HARDWARE2);
 			break;
 
 		default:
@@ -327,7 +327,7 @@ static void
 ivhd_identify(driver_t *driver, device_t parent)
 {
 	ACPI_TABLE_IVRS *ivrs;
-	ACPI_IVRS_HARDWARE *ivhd;
+	ACPI_IVRS_HARDWARE1 *ivhd;
 	ACPI_STATUS status;
 	int i, count = 0;
 	uint32_t ivrs_ivinfo;
@@ -408,7 +408,7 @@ ivhd_identify(driver_t *driver, device_t parent)
 static int
 ivhd_probe(device_t dev)
 {
-	ACPI_IVRS_HARDWARE *ivhd;
+	ACPI_IVRS_HARDWARE1 *ivhd;
 	int unit;
 
 	if (acpi_get_handle(dev) != NULL)
@@ -582,7 +582,7 @@ ivhd_print_ext_feature(device_t dev, uint64_t ext_feat
 }
 
 static int
-ivhd_print_cap(struct amdvi_softc *softc, ACPI_IVRS_HARDWARE * ivhd)
+ivhd_print_cap(struct amdvi_softc *softc, ACPI_IVRS_HARDWARE1 * ivhd)
 {
 	device_t dev;
 	int max_ptp_level;
@@ -612,8 +612,8 @@ ivhd_print_cap(struct amdvi_softc *softc, ACPI_IVRS_HA
 static int
 ivhd_attach(device_t dev)
 {
-	ACPI_IVRS_HARDWARE *ivhd;
-	ACPI_IVRS_HARDWARE_EFRSUP *ivhd_efr;
+	ACPI_IVRS_HARDWARE1 *ivhd;
+	ACPI_IVRS_HARDWARE2 *ivhd_efr;
 	struct amdvi_softc *softc;
 	int status, unit;
 
@@ -637,7 +637,7 @@ ivhd_attach(device_t dev)
 	 * On lgeacy IVHD type(0x10), it is documented as feature
 	 * but in newer type it is attribute.
 	 */
-	softc->ivhd_feature = ivhd->Reserved;
+	softc->ivhd_feature = ivhd->FeatureReporting;
 	/* 
 	 * PCI capability has more capabilities that are not part of IVRS.
 	 */
@@ -648,12 +648,11 @@ ivhd_attach(device_t dev)
 	softc->event_msix = ivhd->Info & 0x1F;
 #endif
 	switch (ivhd->Header.Type) {
-		case IVRS_TYPE_HARDWARE_EFR:
-		case IVRS_TYPE_HARDWARE_MIXED:
-			ivhd_efr = (ACPI_IVRS_HARDWARE_EFRSUP *)ivhd;
-			softc->ext_feature = ivhd_efr->ExtFR;
-			break;
-
+	case IVRS_TYPE_HARDWARE_EFR:
+	case IVRS_TYPE_HARDWARE_MIXED:
+		ivhd_efr = (ACPI_IVRS_HARDWARE2 *)ivhd;
+		softc->ext_feature = ivhd_efr->EfrRegisterImage;
+		break;
 	}
 
 	softc->ctrl = (struct amdvi_ctrl *) PHYS_TO_DMAP(ivhd->BaseAddress);

Modified: head/sys/contrib/dev/acpica/changes.txt
==============================================================================
--- head/sys/contrib/dev/acpica/changes.txt	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/changes.txt	Fri Mar 27 00:29:33 2020	(r359346)
@@ -1,4 +1,99 @@
 ----------------------------------------
+26 March 2020. Summary of changes for version 20200326:
+
+
+1) ACPICA kernel-resident subsystem:
+
+Performed a code clean-up to prevent build errors on early versions of 
+GCC-10.
+
+Added the NHLT table signature. iASL data table compiler/disassembler 
+support for this table is coming soon.
+
+
+2) iASL Compiler/Disassembler and ACPICA tools: 
+
+AcpiExec: Fixed several problems with the namespace initialization file 
+(-fi<filename> option). Includes fixes to prevent AE_ALREADY_EXISTS 
+errors, several seg faults, and enhancements to line parsing within the 
+init file. In addition, each object found in the init file and it's new 
+value is displayed, as well as any such entries that do not have a 
+corresponding name in the namespace. For reference, the syntax for the 
+various supported data types are presented below:
+	PCHG 0x777788889999BBBB	// Integer
+	\DEV1.STR1 "XYZ"			// String
+	BUF1 (88 99 AA)			// Buffer
+	PKG1 [0x1111 0x2222]		// Package
+	\BF1 0x7980				// BufferField
+	RCRV 0x0123456789ABCDEF	// Field Unit
+
+iASL: Added a custom iASL macro __EXPECT__(iASL-Error-Code). This macro 
+can be used anywhere in a given ASL file to configure iASL to expect an 
+iASL compiler error code on the line where this macro was placed. If the 
+error code does not exist, an error is generated. This is intended to be 
+used for ACPICA's ASL test suite, but can be used by ASL developers as 
+well.
+
+iASL: table compiler: Implemented IVRS IVHD type 11h parsing. The AMD 
+IVRS table parsing supported only IVHD type 10h structures. Parsing an 
+IVHD type 11h caused the iasl to report unknown subtable type. Add 
+necessary structure definition for IVHD type 11h and apply correct 
+parsing method based on subtable type. Micha? ?ygowski.
+
+iASL: table compiler: Fixed IVRS table IVHD type 10h reserved field name 
+According to AMD IOMMU Specification Revision 3.05 the reserved field 
+should be IOMMU Feature Reporting. Change the name of the field to the 
+correct one. Micha? ?ygowski.
+
+acpiexec: removed redeclaration of AcpiGbl_DbOpt_NoRegionSupport. Patch 
+based on suggestions by David Seifert and Benjamin Berg.
+
+iASL: table compiler: removed an unused variable (DtCompilerParserResult) 
+causing linking errors. Patch based on suggestions by David Seifert and 
+Benjamin Berg.
+
+iASL: table compiler: make LexBuffer static to avoid linking errors in 
+newer compilers. Patch based on suggestions by David Seifert and Benjamin 
+Berg.
+
+iASL: fixed type matching between External and Named objects. External 
+object types can only be expressed with ACPI object type values that are 
+defined in the ACPI spec. However, iASL uses ACPI object type values that 
+are local to ACPICA in addition to the values defined in the ACPI spec. 
+This change implements type matching to map some object type values 
+specific to ACPICA to ones that are defined in the ACPI spec.
+
+iASL: Dropped the type mismatch compiler error that can arise from 
+External declarations to a warning. This warning can occur when there is 
+a type difference between the external declaration and the actual object 
+declaration (when compiling multiple files/modules simultaneously).
+
+iASL: removed an incorrect error message regarding externals. This change 
+removes an incorrect error that is emitted when a duplicate external 
+declaration does not contain a type that opens a scope. This is incorrect 
+because the duplicate external with conflicting types are already caught 
+by iASL and it doesn't make any sense to enforce what this conflicting 
+type should be.
+
+AcpiXtract: fix AX_IS_TABLE_BLOCK_HEADER macro. This macro needs to be 
+surrounded by parens. Otherwise, a logical statement that applies a 
+logical not operator to this macro could result in a computation that 
+applies the operator to the left side of the logical and but not the 
+right. Reported-by: John Levon <john.levon at joyent.com>
+
+Fixed a problem with the local version of sprint(): On 32-bit, the 
+provided sprintf() is non-functional: with a size of ACPI_UINT32_MAX, 
+String + Size will wrap, meaning End < Start, and 
+AcpiUtBoundStringOutput() will never output anything as a result. The 
+symptom seen of this was acpixtract failing to output anything -- with a 
+custom build that included utprint.c. Signed-off-by: John Levon 
+<john.levon at joyent.com>
+
+iASL: Changed the "PlatformCommChannel" ASL keyword to "PCC", as per the 
+ACPI specification.
+
+
+----------------------------------------
 14 February 2020. Summary of changes for version 20200214:
 
 

Modified: head/sys/contrib/dev/acpica/common/ahtable.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/ahtable.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/common/ahtable.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -258,7 +258,7 @@ const AH_TABLE      AcpiGbl_SupportedTables[] =
     {ACPI_SIG_WDDT, "Watchdog Description Table"},
     {ACPI_SIG_WDRT, "Watchdog Resource Table"},
     {ACPI_SIG_WPBT, "Windows Platform Binary Table"},
-    {ACPI_SIG_WSMT, "Windows SMM Security Migrations Table"},
+    {ACPI_SIG_WSMT, "Windows SMM Security Mitigations Table"},
     {ACPI_SIG_XENV, "Xen Environment table"},
     {ACPI_SIG_XSDT, "Extended System Description Table"},
     {NULL,          NULL}

Modified: head/sys/contrib/dev/acpica/common/dmtable.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtable.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/common/dmtable.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -1676,7 +1676,8 @@ AcpiDmDumpTable (
             Temp8 = *Target;
             switch (Temp8)
             {
-            case ACPI_IVRS_TYPE_HARDWARE:
+            case ACPI_IVRS_TYPE_HARDWARE1:
+            case ACPI_IVRS_TYPE_HARDWARE2:
 
                 Name = AcpiDmIvrsSubnames[0];
                 break;

Modified: head/sys/contrib/dev/acpica/common/dmtbdump2.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtbdump2.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/common/dmtbdump2.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -475,11 +475,16 @@ AcpiDmDumpIvrs (
 
         switch (Subtable->Type)
         {
-        case ACPI_IVRS_TYPE_HARDWARE:
+        case ACPI_IVRS_TYPE_HARDWARE1:
 
             InfoTable = AcpiDmTableInfoIvrs0;
             break;
 
+        case ACPI_IVRS_TYPE_HARDWARE2:
+
+            InfoTable = AcpiDmTableInfoIvrs01;
+            break;
+
         case ACPI_IVRS_TYPE_MEMORY1:
         case ACPI_IVRS_TYPE_MEMORY2:
         case ACPI_IVRS_TYPE_MEMORY3:
@@ -514,11 +519,21 @@ AcpiDmDumpIvrs (
 
         /* The hardware subtable can contain multiple device entries */
 
-        if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE)
+        if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE1 ||
+            Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2)
         {
-            EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE);
-            DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable,
-                sizeof (ACPI_IVRS_HARDWARE));
+            if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE1)
+            {
+                EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE1);
+                DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable,
+                    sizeof (ACPI_IVRS_HARDWARE1));
+            }
+            else if (Subtable->Type == ACPI_IVRS_TYPE_HARDWARE2)
+            {
+                EntryOffset = Offset + sizeof (ACPI_IVRS_HARDWARE2);
+                DeviceEntry = ACPI_ADD_PTR (ACPI_IVRS_DE_HEADER, Subtable,
+                    sizeof (ACPI_IVRS_HARDWARE2));
+            }
 
             while (EntryOffset < (Offset + Subtable->Length))
             {

Modified: head/sys/contrib/dev/acpica/common/dmtbinfo2.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtbinfo2.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/common/dmtbinfo2.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -403,7 +403,21 @@ ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs0[] =
     {ACPI_DMT_UINT64,   ACPI_IVRS0_OFFSET (BaseAddress),            "Base Address", 0},
     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (PciSegmentGroup),        "PCI Segment Group", 0},
     {ACPI_DMT_UINT16,   ACPI_IVRS0_OFFSET (Info),                   "Virtualization Info", 0},
-    {ACPI_DMT_UINT32,   ACPI_IVRS0_OFFSET (Reserved),               "Reserved", 0},
+    {ACPI_DMT_UINT32,   ACPI_IVRS0_OFFSET (FeatureReporting),       "Feature Reporting", 0},
+    ACPI_DMT_TERMINATOR
+};
+
+/* 0x10: I/O Virtualization Hardware Definition (IVHD) Block */
+
+ACPI_DMTABLE_INFO           AcpiDmTableInfoIvrs01[] =
+{
+    {ACPI_DMT_UINT16,   ACPI_IVRS01_OFFSET (CapabilityOffset),       "Capability Offset", 0},
+    {ACPI_DMT_UINT64,   ACPI_IVRS01_OFFSET (BaseAddress),            "Base Address", 0},
+    {ACPI_DMT_UINT16,   ACPI_IVRS01_OFFSET (PciSegmentGroup),        "PCI Segment Group", 0},
+    {ACPI_DMT_UINT16,   ACPI_IVRS01_OFFSET (Info),                   "Virtualization Info", 0},
+    {ACPI_DMT_UINT32,   ACPI_IVRS01_OFFSET (Attributes),             "Attributes", 0},
+    {ACPI_DMT_UINT64,   ACPI_IVRS01_OFFSET (EfrRegisterImage),       "EFR Image", 0},
+    {ACPI_DMT_UINT64,   ACPI_IVRS01_OFFSET (Reserved),               "Reserved", 0},
     ACPI_DMT_TERMINATOR
 };
 

Modified: head/sys/contrib/dev/acpica/common/dmtbinfo3.c
==============================================================================
--- head/sys/contrib/dev/acpica/common/dmtbinfo3.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/common/dmtbinfo3.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -691,7 +691,7 @@ ACPI_DMTABLE_INFO           AcpiDmTableInfoWpbt0[] =
 
 /*******************************************************************************
  *
- * WSMT - Windows SMM Security Migrations Table
+ * WSMT - Windows SMM Security Mitigations Table
  *
  ******************************************************************************/
 

Modified: head/sys/contrib/dev/acpica/compiler/aslcompile.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslcompile.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/aslcompile.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -283,6 +283,7 @@ CmDoCompile (
 
     LsDumpParseTree ();
 
+    UtEndEvent (Event);
     UtEndEvent (FullCompile);
     return (AE_OK);
 

Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslcompiler.h	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/aslcompiler.h	Fri Mar 27 00:29:33 2020	(r359346)
@@ -488,7 +488,7 @@ AslCheckExpectedExceptions (
     void);
 
 ACPI_STATUS
-AslExpectException (
+AslLogExpectedException (
     char                    *MessageIdString);
 
 ACPI_STATUS
@@ -501,8 +501,14 @@ AslDisableException (
 
 BOOLEAN
 AslIsExceptionIgnored (
+    char                    *Filename,
+    UINT32                  LineNumber,
     UINT8                   Level,
     UINT16                  MessageId);
+
+void
+AslLogExpectedExceptionByLine (
+    char                    *MessageIdString);
 
 void
 AslCoreSubsystemError (

Modified: head/sys/contrib/dev/acpica/compiler/aslcompiler.l
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslcompiler.l	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/aslcompiler.l	Fri Mar 27 00:29:33 2020	(r359346)
@@ -156,7 +156,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-YYSTYPE AslCompilerlval;
 
 /*
  * Generation:  Use the following command line:
@@ -195,6 +194,7 @@ count (int type);
 
 LeadNameChar                [A-Za-z_]
 DigitChar                   [0-9]
+ErrorCode                   [(][ ]*[1-9][0-9][0-9][0-9][ ]*[)]
 OctalChar                   [0-7]
 HexDigitChar                [A-Fa-f0-9]
 RootChar                    [\\]
@@ -692,7 +692,7 @@ NamePathTail                [.]{NameSeg}
 "IPMI"                      { count (0); return (PARSEOP_REGIONSPACE_IPMI); }
 "GeneralPurposeIo"          { count (0); return (PARSEOP_REGIONSPACE_GPIO); }       /* ACPI 5.0 */
 "GenericSerialBus"          { count (0); return (PARSEOP_REGIONSPACE_GSBUS); }      /* ACPI 5.0 */
-"PlatformCommChannel"       { count (0); return (PARSEOP_REGIONSPACE_PCC); }        /* ACPI 5.0 */
+"PCC"                       { count (0); return (PARSEOP_REGIONSPACE_PCC); }        /* ACPI 5.0 */
 "FFixedHW"                  { count (0); return (PARSEOP_REGIONSPACE_FFIXEDHW); }
 
     /* ResourceTypeKeyword: Resource Usage - Resource Descriptors */
@@ -810,6 +810,22 @@ NamePathTail                [.]{NameSeg}
 "__LINE__"                  { count (0); return (PARSEOP___LINE__); }
 "__PATH__"                  { count (0); return (PARSEOP___PATH__); }
 "__METHOD__"                { count (0); return (PARSEOP___METHOD__); }
+"__EXPECT__"{ErrorCode}     { char *s;
+                                int index = 0;
+                                count (0);
+                                while (!isdigit (AslCompilertext[index]))
+                                {
+                                    index++;
+                                }
+
+                                /*
+                                 * The eror code is contained inside the
+                                 * {ErrorCode} pattern. Extract it and log it
+                                 * as the expected error code.
+                                 */
+                                s = UtLocalCacheCalloc (ASL_ERROR_CODE_LENGTH + 1);
+                                memcpy (s, AslCompilertext + index, ASL_ERROR_CODE_LENGTH);
+                                AslLogExpectedExceptionByLine (s); }
 
 {NameSeg}                   { char *s;
                                 count (0);

Modified: head/sys/contrib/dev/acpica/compiler/asldefine.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/asldefine.h	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/asldefine.h	Fri Mar 27 00:29:33 2020	(r359346)
@@ -227,6 +227,7 @@
 #define ASL_NO_ABORT                        FALSE
 #define ASL_EOF                             ACPI_UINT32_MAX
 #define ASL_IGNORE_LINE                     (ACPI_UINT32_MAX -1)
+#define ASL_ERROR_CODE_LENGTH               4
 
 
 /* Listings */

Modified: head/sys/contrib/dev/acpica/compiler/aslerror.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslerror.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/aslerror.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -162,6 +162,8 @@ AeAddToErrorLog (
 
 static BOOLEAN
 AslIsExceptionExpected (
+    char                    *Filename,
+    UINT32                  LineNumber,
     UINT8                   Level,
     UINT16                  MessageId);
 
@@ -170,7 +172,8 @@ AslIsExceptionDisabled (
     UINT8                   Level,
     UINT16                  MessageId);
 
-static void AslInitEnode (
+static void
+AslInitEnode (
     ASL_ERROR_MSG           **Enode,
     UINT8                   Level,
     UINT16                  MessageId,
@@ -956,7 +959,7 @@ AslCommonError (
 {
     /* Check if user wants to ignore this exception */
 
-    if (AslIsExceptionIgnored (Level, MessageId))
+    if (AslIsExceptionIgnored (Filename, LogicalLineNumber, Level, MessageId))
     {
         return;
     }
@@ -1087,6 +1090,8 @@ GetModifiedLevel (
 
 BOOLEAN
 AslIsExceptionIgnored (
+    char                    *Filename,
+    UINT32                  LineNumber,
     UINT8                   Level,
     UINT16                  MessageId)
 {
@@ -1096,7 +1101,8 @@ AslIsExceptionIgnored (
     /* Note: this allows exception to be disabled and expected */
 
     ExceptionIgnored = AslIsExceptionDisabled (Level, MessageId);
-    ExceptionIgnored |= AslIsExceptionExpected (Level, MessageId);
+    ExceptionIgnored |=
+        AslIsExceptionExpected (Filename, LineNumber, Level, MessageId);
 
     return (AslGbl_AllExceptionsDisabled || ExceptionIgnored);
 }
@@ -1104,7 +1110,7 @@ AslIsExceptionIgnored (
 
 /*******************************************************************************
  *
- * FUNCTION:    AslCheckExpectException
+ * FUNCTION:    AslCheckExpectedException
  *
  * PARAMETERS:  none
  *
@@ -1120,6 +1126,8 @@ AslCheckExpectedExceptions (
     void)
 {
     UINT8                   i;
+    ASL_EXPECTED_MSG_NODE   *Current = AslGbl_ExpectedErrorCodeList;
+    ASL_LOCATION_NODE       *LocationNode;
 
 
     for (i = 0; i < AslGbl_ExpectedMessagesIndex; ++i)
@@ -1130,12 +1138,32 @@ AslCheckExpectedExceptions (
                 AslGbl_ExpectedMessages[i].MessageIdStr);
         }
     }
+
+    while (Current)
+    {
+        LocationNode = Current->LocationList;
+
+        while (LocationNode)
+        {
+            if (!LocationNode->MessageReceived)
+            {
+                AslCommonError (ASL_ERROR, ASL_MSG_EXCEPTION_NOT_RECEIVED,
+                    LocationNode->LineNumber, LocationNode->LineNumber,
+                    LocationNode->LogicalByteOffset, LocationNode->Column,
+                    LocationNode->Filename, Current->MessageIdStr);
+            }
+
+            LocationNode = LocationNode->Next;
+        }
+
+        Current = Current->Next;
+    }
 }
 
 
 /*******************************************************************************
  *
- * FUNCTION:    AslExpectException
+ * FUNCTION:    AslLogExpectedException
  *
  * PARAMETERS:  MessageIdString     - ID of excepted exception during compile
  *
@@ -1148,7 +1176,7 @@ AslCheckExpectedExceptions (
  ******************************************************************************/
 
 ACPI_STATUS
-AslExpectException (
+AslLogExpectedException (
     char                    *MessageIdString)
 {
     UINT32                  MessageId;
@@ -1184,6 +1212,61 @@ AslExpectException (
 
 /*******************************************************************************
  *
+ * FUNCTION:    AslLogExpectedExceptionByLine
+ *
+ * PARAMETERS:  MessageIdString     - ID of excepted exception during compile
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Enter a message ID into the global expected messages table
+ *              based on file and line number. If these messages are not raised
+ *              during the compilation, throw an error.
+ *
+ ******************************************************************************/
+
+void
+AslLogExpectedExceptionByLine (
+    char                    *MessageIdString)
+{
+    ASL_LOCATION_NODE       *NewErrorLocationNode;
+    ASL_EXPECTED_MSG_NODE   *Current = AslGbl_ExpectedErrorCodeList;
+    UINT32                  MessageId;
+
+
+    NewErrorLocationNode = UtLocalCalloc (sizeof (ASL_LOCATION_NODE));
+
+    NewErrorLocationNode->LineNumber = AslGbl_CurrentLineNumber;
+    NewErrorLocationNode->Filename = AslGbl_Files[ASL_FILE_INPUT].Filename;
+    NewErrorLocationNode->LogicalByteOffset = AslGbl_CurrentLineOffset;
+    NewErrorLocationNode->Column = AslGbl_CurrentColumn;
+
+    MessageId = (UINT32) strtoul (MessageIdString, NULL, 0);
+
+    /* search the existing list for a matching message ID */
+
+    while (Current && Current->MessageId != MessageId )
+    {
+        Current = Current->Next;
+    }
+    if (!Current)
+    {
+        /* ID was not found, create a new node for this message ID */
+
+        Current = UtLocalCalloc (sizeof (ASL_EXPECTED_MSG_NODE));
+
+        Current->Next = AslGbl_ExpectedErrorCodeList;
+        Current->MessageIdStr = MessageIdString;
+        Current->MessageId = MessageId;
+        AslGbl_ExpectedErrorCodeList = Current;
+    }
+
+    NewErrorLocationNode->Next = Current->LocationList;
+    Current->LocationList = NewErrorLocationNode;
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    AslDisableException
  *
  * PARAMETERS:  MessageIdString     - ID to be disabled
@@ -1272,6 +1355,7 @@ AslElevateException (
     return (AE_OK);
 }
 
+
 /*******************************************************************************
  *
  * FUNCTION:    AslIsExceptionDisabled
@@ -1288,9 +1372,13 @@ AslElevateException (
 
 static BOOLEAN
 AslIsExceptionExpected (
+    char                    *Filename,
+    UINT32                  LineNumber,
     UINT8                   Level,
     UINT16                  MessageId)
 {
+    ASL_EXPECTED_MSG_NODE   *Current = AslGbl_ExpectedErrorCodeList;
+    ASL_LOCATION_NODE       *CurrentErrorLocation;
     UINT32                  EncodedMessageId;
     UINT32                  i;
 
@@ -1308,6 +1396,28 @@ AslIsExceptionExpected (
         }
     }
 
+    while (Current && Current->MessageId != EncodedMessageId)
+    {
+        Current = Current->Next;
+    }
+    if (!Current)
+    {
+        return (FALSE);
+    }
+
+    CurrentErrorLocation = Current->LocationList;
+
+    while (CurrentErrorLocation)
+    {
+        if (!strcmp (CurrentErrorLocation->Filename, Filename) &&
+            CurrentErrorLocation->LineNumber == LineNumber)
+        {
+            return (CurrentErrorLocation->MessageReceived = TRUE);
+        }
+
+        CurrentErrorLocation = CurrentErrorLocation->Next;
+    }
+
     return (FALSE);
 }
 
@@ -1410,7 +1520,8 @@ AslDualParseOpError (
 
     /* Check if user wants to ignore this exception */
 
-    if (AslIsExceptionIgnored (Level, MainMsgId) || !MainOp)
+    if (!MainOp || AslIsExceptionIgnored (MainOp->Asl.Filename,
+        MainOp->Asl.LogicalLineNumber, Level, MainMsgId))
     {
         return;
     }

Modified: head/sys/contrib/dev/acpica/compiler/aslglobal.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslglobal.h	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/aslglobal.h	Fri Mar 27 00:29:33 2020	(r359346)
@@ -420,6 +420,7 @@ ASL_EXTERN char                     ASL_INIT_GLOBAL (*
 ASL_EXTERN char                     ASL_INIT_GLOBAL (*AslGbl_TableId, "NO_ID");
 ASL_EXTERN ASL_FILE_INFO            ASL_INIT_GLOBAL (*AslGbl_Files, NULL);
 ASL_EXTERN ASL_GLOBAL_FILE_NODE     ASL_INIT_GLOBAL (*AslGbl_FilesList, NULL);
+ASL_EXTERN ASL_EXPECTED_MSG_NODE    ASL_INIT_GLOBAL (*AslGbl_ExpectedErrorCodeList, NULL);
 
 /* Specific to the -q option */
 

Modified: head/sys/contrib/dev/acpica/compiler/aslload.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/aslload.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/aslload.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -1022,6 +1022,74 @@ FinishNode:
  *
  * FUNCTION:    LdAnalyzeExternals
  *
+ * PARAMETERS:  Type1
+ *              Type2
+ *
+ * RETURN:      BOOLEAN
+ *
+ * DESCRIPTION: Match Type1 and Type2 with the assumption that one might be
+ *              using external types and another might be using local types.
+ *              This should be used to compare the types found in external
+ *              declarations with types found in other external declarations or
+ *              named object declaration. This should not be used to match two
+ *              object type declarations.
+ *
+ ******************************************************************************/
+
+static BOOLEAN
+LdTypesMatchExternType (
+    ACPI_OBJECT_TYPE        Type1,
+    ACPI_OBJECT_TYPE        Type2)
+{
+    BOOLEAN                 Type1IsLocal = Type1 > ACPI_TYPE_EXTERNAL_MAX;
+    BOOLEAN                 Type2IsLocal = Type2 > ACPI_TYPE_EXTERNAL_MAX;
+    ACPI_OBJECT_TYPE        ExternalType;
+    ACPI_OBJECT_TYPE        LocalType;
+
+
+    /*
+     * The inputs could represent types that are local to ACPICA or types that
+     * are known externally. Some local types, such as the OperationRegion
+     * field units, are defined with more granularity than ACPICA local types.
+     *
+     * Therefore, map the local types to the external types before matching.
+     */
+    if (Type1IsLocal && !Type2IsLocal)
+    {
+        LocalType = Type1;
+        ExternalType = Type2;
+    }
+    else if (!Type1IsLocal && Type2IsLocal)
+    {
+        LocalType = Type2;
+        ExternalType = Type1;
+    }
+    else
+    {
+        return (Type1 == Type2);
+    }
+
+    switch (LocalType)
+    {
+        case ACPI_TYPE_LOCAL_REGION_FIELD:
+        case ACPI_TYPE_LOCAL_BANK_FIELD:
+        case ACPI_TYPE_LOCAL_INDEX_FIELD:
+
+            LocalType = ACPI_TYPE_FIELD_UNIT;
+            break;
+
+        default:
+            break;
+    }
+
+    return (LocalType == ExternalType);
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION:    LdAnalyzeExternals
+ *
  * PARAMETERS:  Node            - Node that represents the named object
  *              Op              - Named object declaring this named object
  *              ExternalOpType  - Type of ExternalOp
@@ -1072,12 +1140,12 @@ LdAnalyzeExternals (
 
     if ((ActualOpType != ACPI_TYPE_ANY) &&
         (ActualExternalOpType != ACPI_TYPE_ANY) &&
-        (ActualExternalOpType != ActualOpType))
+        !LdTypesMatchExternType (ActualExternalOpType, ActualOpType))
     {
         if (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL &&
             Node->Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)
         {
-            AslDualParseOpError (ASL_ERROR,
+            AslDualParseOpError (ASL_WARNING,
                 ASL_MSG_DUPLICATE_EXTERN_MISMATCH, Op, NULL,
                 ASL_MSG_DUPLICATE_EXTERN_FOUND_HERE, Node->Op, NULL);
         }
@@ -1094,7 +1162,7 @@ LdAnalyzeExternals (
                 ExternalOp = Node->Op;
                 ActualOp = Op;
             }
-            AslDualParseOpError (ASL_ERROR,
+            AslDualParseOpError (ASL_WARNING,
                 ASL_MSG_DECLARATION_TYPE_MISMATCH, ExternalOp, NULL,
                 ASL_MSG_TYPE_MISMATCH_FOUND_HERE, ActualOp, NULL);
         }
@@ -1139,18 +1207,8 @@ LdAnalyzeExternals (
     {
         /* Allow update of externals of unknown type. */
 
-        if (AcpiNsOpensScope (ExternalOpType))
-        {
-            Node->Type = (UINT8) ExternalOpType;
-            Status = AE_OK;
-        }
-        else
-        {
-            sprintf (AslGbl_MsgBuffer, "%s [%s]", Op->Asl.ExternalName,
-                AcpiUtGetTypeName (Node->Type));
-            AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, AslGbl_MsgBuffer);
-            Status = AE_ERROR;
-        }
+        Node->Type = (UINT8) ExternalOpType;
+        Status = AE_OK;
     }
 
     return (Status);

Modified: head/sys/contrib/dev/acpica/compiler/asloptions.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/asloptions.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/asloptions.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -942,7 +942,7 @@ AslDoOptions (
                 return (-1);
             }
 
-            Status = AslExpectException (AcpiGbl_Optarg);
+            Status = AslLogExpectedException (AcpiGbl_Optarg);
             if (ACPI_FAILURE (Status))
             {
                 return (-1);

Modified: head/sys/contrib/dev/acpica/compiler/asltypes.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/asltypes.h	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/asltypes.h	Fri Mar 27 00:29:33 2020	(r359346)
@@ -381,11 +381,36 @@ typedef struct asl_error_msg
 
 typedef struct asl_expected_message
 {
-    UINT32                       MessageId;
-    char                         *MessageIdStr;
-    BOOLEAN                      MessageReceived;
+    UINT32                      MessageId;
+    char                        *MessageIdStr;
+    BOOLEAN                     MessageReceived;
 
 } ASL_EXPECTED_MESSAGE;
+
+/*
+ * An entry in the line-based expected messages list
+ *
+ * TBD: might be possible to merge this with ASL_EXPECTED_MESSAGE
+ */
+typedef struct asl_expected_msg_node
+{
+    struct asl_expected_msg_node    *Next;
+    UINT32                          MessageId;
+    char                            *MessageIdStr;
+    struct asl_location_node        *LocationList;
+
+} ASL_EXPECTED_MSG_NODE;
+
+typedef struct asl_location_node
+{
+    struct asl_location_node    *Next;
+    char                        *Filename;
+    UINT32                      LineNumber;
+    UINT32                      Column;
+    UINT32                      LogicalByteOffset;
+    BOOLEAN                     MessageReceived;
+
+} ASL_LOCATION_NODE;
 
 
 /* An entry in the listing file stack (for include files) */

Modified: head/sys/contrib/dev/acpica/compiler/dtcompiler.h
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/dtcompiler.h	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/dtcompiler.h	Fri Mar 27 00:29:33 2020	(r359346)
@@ -461,7 +461,6 @@ DtCreateTableUnit (
 
 /* dtparser - lex/yacc files */
 
-UINT64                      DtCompilerParserResult; /* Expression return value */
 int
 DtCompilerParserparse (
     void);

Modified: head/sys/contrib/dev/acpica/compiler/dtcompilerparser.l
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/dtcompilerparser.l	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/dtcompilerparser.l	Fri Mar 27 00:29:33 2020	(r359346)
@@ -153,7 +153,6 @@
 #include <contrib/dev/acpica/compiler/aslcompiler.h>
 #include "dtcompilerparser.y.h"
 
-YYSTYPE DtCompilerlval;
 
 #define _COMPONENT          ACPI_COMPILER
         ACPI_MODULE_NAME    ("dtcompilerscanner")

Modified: head/sys/contrib/dev/acpica/compiler/dtcompilerparser.y
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/dtcompilerparser.y	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/dtcompilerparser.y	Fri Mar 27 00:29:33 2020	(r359346)
@@ -170,7 +170,6 @@ 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;

Modified: head/sys/contrib/dev/acpica/compiler/dtparser.l
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/dtparser.l	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/dtparser.l	Fri Mar 27 00:29:33 2020	(r359346)
@@ -208,7 +208,7 @@ NewLine         [\n]
 /*
  * Local support functions
  */
-YY_BUFFER_STATE         LexBuffer;
+static YY_BUFFER_STATE         LexBuffer;
 
 /******************************************************************************
  *

Modified: head/sys/contrib/dev/acpica/compiler/dttable1.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/dttable1.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/dttable1.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -1967,11 +1967,16 @@ DtCompileIvrs (
 
         switch (IvrsHeader->Type)
         {
-        case ACPI_IVRS_TYPE_HARDWARE:
+        case ACPI_IVRS_TYPE_HARDWARE1:
 
             InfoTable = AcpiDmTableInfoIvrs0;
             break;
 
+        case ACPI_IVRS_TYPE_HARDWARE2:
+
+            InfoTable = AcpiDmTableInfoIvrs01;
+            break;
+
         case ACPI_IVRS_TYPE_MEMORY1:
         case ACPI_IVRS_TYPE_MEMORY2:
         case ACPI_IVRS_TYPE_MEMORY3:
@@ -1994,7 +1999,8 @@ DtCompileIvrs (
         ParentTable = DtPeekSubtable ();
         DtInsertSubtable (ParentTable, Subtable);
 
-        if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE)
+        if (IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE1 ||
+            IvrsHeader->Type == ACPI_IVRS_TYPE_HARDWARE2)
         {
             while (*PFieldList &&
                 !strcmp ((*PFieldList)->Name, "Entry Type"))

Modified: head/sys/contrib/dev/acpica/compiler/dtutils.c
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/dtutils.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/dtutils.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -189,7 +189,8 @@ DtError (
 
     /* Check if user wants to ignore this exception */
 
-    if (AslIsExceptionIgnored (Level, MessageId))
+    if (AslIsExceptionIgnored (AslGbl_Files[ASL_FILE_INPUT].Filename,
+        FieldObject->Line, Level, MessageId))
     {
         return;
     }

Modified: head/sys/contrib/dev/acpica/compiler/prparser.l
==============================================================================
--- head/sys/contrib/dev/acpica/compiler/prparser.l	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/compiler/prparser.l	Fri Mar 27 00:29:33 2020	(r359346)
@@ -224,7 +224,7 @@ Identifier      [a-zA-Z][0-9a-zA-Z]*
 /*
  * Local support functions
  */
-YY_BUFFER_STATE         LexBuffer;
+static YY_BUFFER_STATE         LexBuffer;
 
 
 /******************************************************************************

Modified: head/sys/contrib/dev/acpica/components/debugger/dbinput.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/debugger/dbinput.c	Thu Mar 26 22:08:31 2020	(r359345)
+++ head/sys/contrib/dev/acpica/components/debugger/dbinput.c	Fri Mar 27 00:29:33 2020	(r359346)
@@ -637,19 +637,16 @@ AcpiDbGetNextToken (
         return (NULL);
     }
 
-    /* Remove any spaces at the beginning */
+    /* Remove any spaces at the beginning, ignore blank lines */
 
-    if (*String == ' ')
+    while (*String && isspace (*String))
     {
-        while (*String && (*String == ' '))
-        {
-            String++;
-        }
+        String++;
+    }
 
-        if (!(*String))
-        {
-            return (NULL);
-        }
+    if (!(*String))
+    {
+        return (NULL);
     }

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


More information about the svn-src-all mailing list