https://git.reactos.org/?p=reactos.git;a=commitdiff;h=040546d8ff3b9163335a7…
commit 040546d8ff3b9163335a7eeb1ab137f205cd949e
Author: Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Wed Apr 1 22:27:34 2020 +0200
Commit: Thomas Faber <thomas.faber(a)reactos.org>
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