https://git.reactos.org/?p=reactos.git;a=commitdiff;h=040546d8ff3b9163335a7eeb1ab137f205cd949e

commit 040546d8ff3b9163335a7eeb1ab137f205cd949e
Author:     Thomas Faber <[email protected]>
AuthorDate: Wed Apr 1 22:27:34 2020 +0200
Commit:     Thomas Faber <[email protected]>
CommitDate: Sun Apr 5 14:44:53 2020 +0200

    [ACPICA] Update to version 20200326. CORE-16783
---
 drivers/bus/acpi/acpica/dispatcher/dswexec.c  | 32 +++++++++++++++++++++--
 drivers/bus/acpi/acpica/dispatcher/dswload.c  |  2 --
 drivers/bus/acpi/acpica/dispatcher/dswload2.c | 37 +++++++++++++++++++++++++++
 drivers/bus/acpi/acpica/hardware/hwsleep.c    |  4 +--
 drivers/bus/acpi/acpica/include/acdisasm.h    |  1 +
 drivers/bus/acpi/acpica/include/acnamesp.h    |  4 +++
 drivers/bus/acpi/acpica/include/acpixf.h      |  2 +-
 drivers/bus/acpi/acpica/include/actbinfo.h    |  3 ++-
 drivers/bus/acpi/acpica/include/actbl2.h      | 24 ++++++++++++++---
 drivers/bus/acpi/acpica/include/actbl3.h      |  6 ++---
 drivers/bus/acpi/acpica/include/acuuid.h      |  2 +-
 drivers/bus/acpi/acpica/namespace/nsnames.c   |  8 +-----
 drivers/bus/acpi/acpica/utilities/utdecode.c  |  2 +-
 drivers/bus/acpi/acpica/utilities/utdelete.c  |  9 ++++---
 drivers/bus/acpi/acpica/utilities/utprint.c   |  8 +++++-
 media/doc/3rd Party Files.txt                 |  2 +-
 16 files changed, 116 insertions(+), 30 deletions(-)

diff --git a/drivers/bus/acpi/acpica/dispatcher/dswexec.c 
b/drivers/bus/acpi/acpica/dispatcher/dswexec.c
index 32444a2128b..d9d79be2080 100644
--- a/drivers/bus/acpi/acpica/dispatcher/dswexec.c
+++ b/drivers/bus/acpi/acpica/dispatcher/dswexec.c
@@ -50,7 +50,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acdebug.h"
-
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
         ACPI_MODULE_NAME    ("dswexec")
@@ -396,7 +398,10 @@ AcpiDsExecEndOp (
     UINT32                  OpClass;
     ACPI_PARSE_OBJECT       *NextOp;
     ACPI_PARSE_OBJECT       *FirstArg;
-
+#ifdef ACPI_EXEC_APP
+    char                    *Namepath;
+    ACPI_OPERAND_OBJECT     *ObjDesc;
+#endif
 
     ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState);
 
@@ -609,6 +614,29 @@ AcpiDsExecEndOp (
             }
 
             Status = AcpiDsEvalBufferFieldOperands (WalkState, Op);
+            if (ACPI_FAILURE (Status))
+            {
+                break;
+            }
+
+#ifdef ACPI_EXEC_APP
+            /*
+             * AcpiExec support for namespace initialization file (initialize
+             * BufferFields in this code.)
+             */
+            Namepath = AcpiNsGetExternalPathname (Op->Common.Node);
+            Status = AeLookupInitFileEntry (Namepath, &ObjDesc);
+            if (ACPI_SUCCESS (Status))
+            {
+                Status = AcpiExWriteDataToField (ObjDesc, 
Op->Common.Node->Object, NULL);
+                if ACPI_FAILURE (Status)
+                {
+                    ACPI_EXCEPTION ((AE_INFO, Status, "While writing to buffer 
field"));
+                }
+            }
+            ACPI_FREE (Namepath);
+            Status = AE_OK;
+#endif
             break;
 
 
diff --git a/drivers/bus/acpi/acpica/dispatcher/dswload.c 
b/drivers/bus/acpi/acpica/dispatcher/dswload.c
index dbcf8f123f2..d3e11bc661e 100644
--- a/drivers/bus/acpi/acpica/dispatcher/dswload.c
+++ b/drivers/bus/acpi/acpica/dispatcher/dswload.c
@@ -48,7 +48,6 @@
 #include "acdispat.h"
 #include "acinterp.h"
 #include "acnamesp.h"
-
 #ifdef ACPI_ASL_COMPILER
 #include "acdisasm.h"
 #endif
@@ -447,7 +446,6 @@ AcpiDsLoad1EndOp (
     ACPI_PARSE_OBJECT       *Op;
     ACPI_OBJECT_TYPE        ObjectType;
     ACPI_STATUS             Status = AE_OK;
-
 #ifdef ACPI_ASL_COMPILER
     UINT8                   ParamCount;
 #endif
diff --git a/drivers/bus/acpi/acpica/dispatcher/dswload2.c 
b/drivers/bus/acpi/acpica/dispatcher/dswload2.c
index df6e4c486c0..a916eec7fd9 100644
--- a/drivers/bus/acpi/acpica/dispatcher/dswload2.c
+++ b/drivers/bus/acpi/acpica/dispatcher/dswload2.c
@@ -49,6 +49,9 @@
 #include "acinterp.h"
 #include "acnamesp.h"
 #include "acevents.h"
+#ifdef ACPI_EXEC_APP
+#include "aecommon.h"
+#endif
 
 #define _COMPONENT          ACPI_DISPATCHER
         ACPI_MODULE_NAME    ("dswload2")
@@ -423,6 +426,10 @@ AcpiDsLoad2EndOp (
     ACPI_NAMESPACE_NODE     *NewNode;
     UINT32                  i;
     UINT8                   RegionSpace;
+#ifdef ACPI_EXEC_APP
+    ACPI_OPERAND_OBJECT     *ObjDesc;
+    char                    *Namepath;
+#endif
 
 
     ACPI_FUNCTION_TRACE (DsLoad2EndOp);
@@ -519,6 +526,11 @@ AcpiDsLoad2EndOp (
          * be evaluated later during the execution phase
          */
         Status = AcpiDsCreateBufferField (Op, WalkState);
+        if ACPI_FAILURE (Status)
+        {
+            ACPI_EXCEPTION ((AE_INFO, Status, "CreateBufferField failure"));
+            goto Cleanup;
+        }
         break;
 
      case AML_TYPE_NAMED_FIELD:
@@ -658,6 +670,31 @@ AcpiDsLoad2EndOp (
         case AML_NAME_OP:
 
             Status = AcpiDsCreateNode (WalkState, Node, Op);
+            if (ACPI_FAILURE (Status))
+            {
+                goto Cleanup;
+            }
+
+#ifdef ACPI_EXEC_APP
+            /*
+             * AcpiExec support for namespace initialization file (initialize
+             * Name opcodes in this code.)
+             */
+            Namepath = AcpiNsGetExternalPathname (Node);
+            Status = AeLookupInitFileEntry (Namepath, &ObjDesc);
+            if (ACPI_SUCCESS (Status))
+            {
+                /* Detach any existing object, attach new object */
+
+                if (Node->Object)
+                {
+                    AcpiNsDetachObject (Node);
+                }
+                AcpiNsAttachObject (Node, ObjDesc, ObjDesc->Common.Type);
+            }
+            ACPI_FREE (Namepath);
+            Status = AE_OK;
+#endif
             break;
 
         case AML_METHOD_OP:
diff --git a/drivers/bus/acpi/acpica/hardware/hwsleep.c 
b/drivers/bus/acpi/acpica/hardware/hwsleep.c
index 3d65e4394ff..6963d4e6826 100644
--- a/drivers/bus/acpi/acpica/hardware/hwsleep.c
+++ b/drivers/bus/acpi/acpica/hardware/hwsleep.c
@@ -358,11 +358,11 @@ AcpiHwLegacyWake (
 
     /* Enable sleep button */
 
-       (void) AcpiWriteBitRegister (
+    (void) AcpiWriteBitRegister (
             AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].EnableRegisterId,
             ACPI_ENABLE_EVENT);
 
-       (void) AcpiWriteBitRegister (
+    (void) AcpiWriteBitRegister (
             AcpiGbl_FixedEventInfo[ACPI_EVENT_SLEEP_BUTTON].StatusRegisterId,
             ACPI_CLEAR_STATUS);
 
diff --git a/drivers/bus/acpi/acpica/include/acdisasm.h 
b/drivers/bus/acpi/acpica/include/acdisasm.h
index f8b9b8cc3c4..c998022f469 100644
--- a/drivers/bus/acpi/acpica/include/acdisasm.h
+++ b/drivers/bus/acpi/acpica/include/acdisasm.h
@@ -349,6 +349,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortPad[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs0[];
+extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs01[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs1[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs4[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIvrs8a[];
diff --git a/drivers/bus/acpi/acpica/include/acnamesp.h 
b/drivers/bus/acpi/acpica/include/acnamesp.h
index f0c1e98dc79..2a81d278f01 100644
--- a/drivers/bus/acpi/acpica/include/acnamesp.h
+++ b/drivers/bus/acpi/acpica/include/acnamesp.h
@@ -379,6 +379,10 @@ AcpiNsBuildNormalizedPath (
     UINT32                  PathSize,
     BOOLEAN                 NoTrailing);
 
+void
+AcpiNsNormalizePathname (
+    char                    *OriginalPath);
+
 char *
 AcpiNsGetNormalizedPathname (
     ACPI_NAMESPACE_NODE     *Node,
diff --git a/drivers/bus/acpi/acpica/include/acpixf.h 
b/drivers/bus/acpi/acpica/include/acpixf.h
index 0669a5712cf..d3503841c27 100644
--- a/drivers/bus/acpi/acpica/include/acpixf.h
+++ b/drivers/bus/acpi/acpica/include/acpixf.h
@@ -46,7 +46,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20200214
+#define ACPI_CA_VERSION                 0x20200326
 
 #include "acconfig.h"
 #include "actypes.h"
diff --git a/drivers/bus/acpi/acpica/include/actbinfo.h 
b/drivers/bus/acpi/acpica/include/actbinfo.h
index 4f05863d97d..ee6c1f63034 100644
--- a/drivers/bus/acpi/acpica/include/actbinfo.h
+++ b/drivers/bus/acpi/acpica/include/actbinfo.h
@@ -156,7 +156,8 @@
 #define ACPI_IORTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f)
 #define ACPI_IORTM_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_IORT_ID_MAPPING,f)
 #define ACPI_IVRSH_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_IVRS_HEADER,f)
-#define ACPI_IVRS0_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_IVRS_HARDWARE,f)
+#define ACPI_IVRS0_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_IVRS_HARDWARE1,f)
+#define ACPI_IVRS01_OFFSET(f)           (UINT16) ACPI_OFFSET 
(ACPI_IVRS_HARDWARE2,f)
 #define ACPI_IVRS1_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_IVRS_MEMORY,f)
 #define ACPI_IVRSD_OFFSET(f)            (UINT16) ACPI_OFFSET 
(ACPI_IVRS_DE_HEADER,f)
 #define ACPI_IVRS8A_OFFSET(f)           (UINT16) ACPI_OFFSET 
(ACPI_IVRS_DEVICE8A,f)
diff --git a/drivers/bus/acpi/acpica/include/actbl2.h 
b/drivers/bus/acpi/acpica/include/actbl2.h
index b1d33ab7975..fff11574a89 100644
--- a/drivers/bus/acpi/acpica/include/actbl2.h
+++ b/drivers/bus/acpi/acpica/include/actbl2.h
@@ -79,6 +79,7 @@
 #define ACPI_SIG_SBST           "SBST"      /* Smart Battery Specification 
Table */
 #define ACPI_SIG_SDEI           "SDEI"      /* Software Delegated Exception 
Interface Table */
 #define ACPI_SIG_SDEV           "SDEV"      /* Secure Devices table */
+#define ACPI_SIG_NHLT           "NHLT"      /* Non-HDAudio Link Table */
 
 
 /*
@@ -349,7 +350,8 @@ typedef struct acpi_ivrs_header
 
 enum AcpiIvrsType
 {
-    ACPI_IVRS_TYPE_HARDWARE         = 0x10,
+    ACPI_IVRS_TYPE_HARDWARE1        = 0x10,
+    ACPI_IVRS_TYPE_HARDWARE2        = 0x11,
     ACPI_IVRS_TYPE_MEMORY1          = 0x20,
     ACPI_IVRS_TYPE_MEMORY2          = 0x21,
     ACPI_IVRS_TYPE_MEMORY3          = 0x22
@@ -377,16 +379,30 @@ enum AcpiIvrsType
 
 /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */
 
-typedef struct acpi_ivrs_hardware
+typedef struct acpi_ivrs_hardware_10
 {
     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                  Reserved;
+    UINT32                  FeatureReporting;
+
+} ACPI_IVRS_HARDWARE1;
+
+/* 0x11: I/O Virtualization Hardware Definition Block (IVHD) */
 
-} ACPI_IVRS_HARDWARE;
+typedef struct acpi_ivrs_hardware_11
+{
+    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                  Attributes;
+    UINT64                  EfrRegisterImage;
+    UINT64                  Reserved;
+} ACPI_IVRS_HARDWARE2;
 
 /* Masks for Info field above */
 
diff --git a/drivers/bus/acpi/acpica/include/actbl3.h 
b/drivers/bus/acpi/acpica/include/actbl3.h
index 2d877cd9a1a..7a9c90917f3 100644
--- a/drivers/bus/acpi/acpica/include/actbl3.h
+++ b/drivers/bus/acpi/acpica/include/actbl3.h
@@ -75,7 +75,7 @@
 #define ACPI_SIG_WDDT           "WDDT"      /* Watchdog Timer Description 
Table */
 #define ACPI_SIG_WDRT           "WDRT"      /* Watchdog Resource Table */
 #define ACPI_SIG_WPBT           "WPBT"      /* Windows Platform Binary Table */
-#define ACPI_SIG_WSMT           "WSMT"      /* Windows SMM Security Migrations 
Table */
+#define ACPI_SIG_WSMT           "WSMT"      /* Windows SMM Security 
Mitigations Table */
 #define ACPI_SIG_XENV           "XENV"      /* Xen Environment table */
 #define ACPI_SIG_XXXX           "XXXX"      /* Intermediate AML header for 
ASL/ASL+ converter */
 
@@ -796,10 +796,10 @@ typedef struct acpi_table_wpbt
 
 
/*******************************************************************************
  *
- * WSMT - Windows SMM Security Migrations Table
+ * WSMT - Windows SMM Security Mitigations Table
  *        Version 1
  *
- * Conforms to "Windows SMM Security Migrations Table",
+ * Conforms to "Windows SMM Security Mitigations Table",
  * Version 1.0, April 18, 2016
  *
  
******************************************************************************/
diff --git a/drivers/bus/acpi/acpica/include/acuuid.h 
b/drivers/bus/acpi/acpica/include/acuuid.h
index 104f6482ff3..39e3d2d9231 100644
--- a/drivers/bus/acpi/acpica/include/acuuid.h
+++ b/drivers/bus/acpi/acpica/include/acuuid.h
@@ -92,4 +92,4 @@
 #define UUID_DEVICE_PROPERTIES          "daffd814-6eba-4d8c-8a91-bc9bbf4aa301"
 
 
-#endif /* __AUUID_H__ */
+#endif /* __ACUUID_H__ */
diff --git a/drivers/bus/acpi/acpica/namespace/nsnames.c 
b/drivers/bus/acpi/acpica/namespace/nsnames.c
index 87f4bea030f..ef3108e328a 100644
--- a/drivers/bus/acpi/acpica/namespace/nsnames.c
+++ b/drivers/bus/acpi/acpica/namespace/nsnames.c
@@ -50,12 +50,6 @@
 #define _COMPONENT          ACPI_NAMESPACE
         ACPI_MODULE_NAME    ("nsnames")
 
-/* Local Prototypes */
-
-static void
-AcpiNsNormalizePathname (
-    char                    *OriginalPath);
-
 
 
/*******************************************************************************
  *
@@ -508,7 +502,7 @@ Cleanup:
  *
  
******************************************************************************/
 
-static void
+void
 AcpiNsNormalizePathname (
     char                    *OriginalPath)
 {
diff --git a/drivers/bus/acpi/acpica/utilities/utdecode.c 
b/drivers/bus/acpi/acpica/utilities/utdecode.c
index dbbd12bc245..5726f2f15e5 100644
--- a/drivers/bus/acpi/acpica/utilities/utdecode.c
+++ b/drivers/bus/acpi/acpica/utilities/utdecode.c
@@ -116,7 +116,7 @@ const char        
*AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
     "IPMI",              /* 0x07 */
     "GeneralPurposeIo",  /* 0x08 */
     "GenericSerialBus",  /* 0x09 */
-    "PlatformCommChannel"/* 0x0A */
+    "PCC"                /* 0x0A */
 };
 
 
diff --git a/drivers/bus/acpi/acpica/utilities/utdelete.c 
b/drivers/bus/acpi/acpica/utilities/utdelete.c
index fc8cefb5a34..c339dba4557 100644
--- a/drivers/bus/acpi/acpica/utilities/utdelete.c
+++ b/drivers/bus/acpi/acpica/utilities/utdelete.c
@@ -518,13 +518,13 @@ AcpiUtUpdateRefCount (
  *
  * FUNCTION:    AcpiUtUpdateObjectReference
  *
- * PARAMETERS:  Object              - Increment ref count for this object
- *                                    and all sub-objects
+ * PARAMETERS:  Object              - Increment or decrement the ref count for
+ *                                    this object and all sub-objects
  *              Action              - Either REF_INCREMENT or REF_DECREMENT
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Increment the object reference count
+ * DESCRIPTION: Increment or decrement the object reference count
  *
  * Object references are incremented when:
  * 1) An object is attached to a Node (namespace object)
@@ -563,7 +563,7 @@ AcpiUtUpdateObjectReference (
         }
 
         /*
-         * All sub-objects must have their reference count incremented
+         * All sub-objects must have their reference count updated
          * also. Different object types have different subobjects.
          */
         switch (Object->Common.Type)
@@ -632,6 +632,7 @@ AcpiUtUpdateObjectReference (
                     break;
                 }
             }
+
             NextObject = NULL;
             break;
 
diff --git a/drivers/bus/acpi/acpica/utilities/utprint.c 
b/drivers/bus/acpi/acpica/utilities/utprint.c
index 81316fc56c5..89c1d3bda57 100644
--- a/drivers/bus/acpi/acpica/utilities/utprint.c
+++ b/drivers/bus/acpi/acpica/utilities/utprint.c
@@ -452,7 +452,13 @@ vsnprintf (
 
 
     Pos = String;
-    End = String + Size;
+
+
+    if (Size != ACPI_UINT32_MAX) {
+        End = String + Size;
+    } else {
+        End = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
+    }
 
     for (; *Format; ++Format)
     {
diff --git a/media/doc/3rd Party Files.txt b/media/doc/3rd Party Files.txt
index 9d7850fd3f6..c39445c5321 100644
--- a/media/doc/3rd Party Files.txt     
+++ b/media/doc/3rd Party Files.txt     
@@ -92,7 +92,7 @@ Used Version: 1.6.37
 Website: http://libpng.sourceforge.net/
 
 Title: ACPICA
-Used Version: 20200110
+Used Version: 20200326
 Website: https://acpica.org/
 
 Title: Schily Tools, mkisofs

Reply via email to