[ACPICA] Update to version 20200326. CORE-16783

This commit is contained in:
Thomas Faber 2020-04-01 22:27:34 +02:00
parent bfdd6261f2
commit 040546d8ff
No known key found for this signature in database
GPG key ID: 076E7C3D44720826
16 changed files with 116 additions and 30 deletions

View file

@ -50,7 +50,9 @@
#include "acinterp.h" #include "acinterp.h"
#include "acnamesp.h" #include "acnamesp.h"
#include "acdebug.h" #include "acdebug.h"
#ifdef ACPI_EXEC_APP
#include "aecommon.h"
#endif
#define _COMPONENT ACPI_DISPATCHER #define _COMPONENT ACPI_DISPATCHER
ACPI_MODULE_NAME ("dswexec") ACPI_MODULE_NAME ("dswexec")
@ -396,7 +398,10 @@ AcpiDsExecEndOp (
UINT32 OpClass; UINT32 OpClass;
ACPI_PARSE_OBJECT *NextOp; ACPI_PARSE_OBJECT *NextOp;
ACPI_PARSE_OBJECT *FirstArg; ACPI_PARSE_OBJECT *FirstArg;
#ifdef ACPI_EXEC_APP
char *Namepath;
ACPI_OPERAND_OBJECT *ObjDesc;
#endif
ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState); ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState);
@ -609,6 +614,29 @@ AcpiDsExecEndOp (
} }
Status = AcpiDsEvalBufferFieldOperands (WalkState, Op); 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; break;

View file

@ -48,7 +48,6 @@
#include "acdispat.h" #include "acdispat.h"
#include "acinterp.h" #include "acinterp.h"
#include "acnamesp.h" #include "acnamesp.h"
#ifdef ACPI_ASL_COMPILER #ifdef ACPI_ASL_COMPILER
#include "acdisasm.h" #include "acdisasm.h"
#endif #endif
@ -447,7 +446,6 @@ AcpiDsLoad1EndOp (
ACPI_PARSE_OBJECT *Op; ACPI_PARSE_OBJECT *Op;
ACPI_OBJECT_TYPE ObjectType; ACPI_OBJECT_TYPE ObjectType;
ACPI_STATUS Status = AE_OK; ACPI_STATUS Status = AE_OK;
#ifdef ACPI_ASL_COMPILER #ifdef ACPI_ASL_COMPILER
UINT8 ParamCount; UINT8 ParamCount;
#endif #endif

View file

@ -49,6 +49,9 @@
#include "acinterp.h" #include "acinterp.h"
#include "acnamesp.h" #include "acnamesp.h"
#include "acevents.h" #include "acevents.h"
#ifdef ACPI_EXEC_APP
#include "aecommon.h"
#endif
#define _COMPONENT ACPI_DISPATCHER #define _COMPONENT ACPI_DISPATCHER
ACPI_MODULE_NAME ("dswload2") ACPI_MODULE_NAME ("dswload2")
@ -423,6 +426,10 @@ AcpiDsLoad2EndOp (
ACPI_NAMESPACE_NODE *NewNode; ACPI_NAMESPACE_NODE *NewNode;
UINT32 i; UINT32 i;
UINT8 RegionSpace; UINT8 RegionSpace;
#ifdef ACPI_EXEC_APP
ACPI_OPERAND_OBJECT *ObjDesc;
char *Namepath;
#endif
ACPI_FUNCTION_TRACE (DsLoad2EndOp); ACPI_FUNCTION_TRACE (DsLoad2EndOp);
@ -519,6 +526,11 @@ AcpiDsLoad2EndOp (
* be evaluated later during the execution phase * be evaluated later during the execution phase
*/ */
Status = AcpiDsCreateBufferField (Op, WalkState); Status = AcpiDsCreateBufferField (Op, WalkState);
if ACPI_FAILURE (Status)
{
ACPI_EXCEPTION ((AE_INFO, Status, "CreateBufferField failure"));
goto Cleanup;
}
break; break;
case AML_TYPE_NAMED_FIELD: case AML_TYPE_NAMED_FIELD:
@ -658,6 +670,31 @@ AcpiDsLoad2EndOp (
case AML_NAME_OP: case AML_NAME_OP:
Status = AcpiDsCreateNode (WalkState, Node, 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; break;
case AML_METHOD_OP: case AML_METHOD_OP:

View file

@ -349,6 +349,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs01[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs4[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs8a[];

View file

@ -379,6 +379,10 @@ AcpiNsBuildNormalizedPath (
UINT32 PathSize, UINT32 PathSize,
BOOLEAN NoTrailing); BOOLEAN NoTrailing);
void
AcpiNsNormalizePathname (
char *OriginalPath);
char * char *
AcpiNsGetNormalizedPathname ( AcpiNsGetNormalizedPathname (
ACPI_NAMESPACE_NODE *Node, ACPI_NAMESPACE_NODE *Node,

View file

@ -46,7 +46,7 @@
/* Current ACPICA subsystem version in YYYYMMDD format */ /* Current ACPICA subsystem version in YYYYMMDD format */
#define ACPI_CA_VERSION 0x20200214 #define ACPI_CA_VERSION 0x20200326
#include "acconfig.h" #include "acconfig.h"
#include "actypes.h" #include "actypes.h"

View file

@ -156,7 +156,8 @@
#define ACPI_IORTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f) #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_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_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_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_IVRSD_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DE_HEADER,f)
#define ACPI_IVRS8A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8A,f) #define ACPI_IVRS8A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_DEVICE8A,f)

View file

@ -79,6 +79,7 @@
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */ #define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
#define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */ #define ACPI_SIG_SDEI "SDEI" /* Software Delegated Exception Interface Table */
#define ACPI_SIG_SDEV "SDEV" /* Secure Devices 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 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_MEMORY1 = 0x20,
ACPI_IVRS_TYPE_MEMORY2 = 0x21, ACPI_IVRS_TYPE_MEMORY2 = 0x21,
ACPI_IVRS_TYPE_MEMORY3 = 0x22 ACPI_IVRS_TYPE_MEMORY3 = 0x22
@ -377,16 +379,30 @@ enum AcpiIvrsType
/* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */ /* 0x10: I/O Virtualization Hardware Definition Block (IVHD) */
typedef struct acpi_ivrs_hardware typedef struct acpi_ivrs_hardware_10
{ {
ACPI_IVRS_HEADER Header; ACPI_IVRS_HEADER Header;
UINT16 CapabilityOffset; /* Offset for IOMMU control fields */ UINT16 CapabilityOffset; /* Offset for IOMMU control fields */
UINT64 BaseAddress; /* IOMMU control registers */ UINT64 BaseAddress; /* IOMMU control registers */
UINT16 PciSegmentGroup; UINT16 PciSegmentGroup;
UINT16 Info; /* MSI number and unit ID */ UINT16 Info; /* MSI number and unit ID */
UINT32 Reserved; UINT32 FeatureReporting;
} ACPI_IVRS_HARDWARE; } ACPI_IVRS_HARDWARE1;
/* 0x11: I/O Virtualization Hardware Definition Block (IVHD) */
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 */ /* Masks for Info field above */

View file

@ -75,7 +75,7 @@
#define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */ #define ACPI_SIG_WDDT "WDDT" /* Watchdog Timer Description Table */
#define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */ #define ACPI_SIG_WDRT "WDRT" /* Watchdog Resource Table */
#define ACPI_SIG_WPBT "WPBT" /* Windows Platform Binary 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_XENV "XENV" /* Xen Environment table */
#define ACPI_SIG_XXXX "XXXX" /* Intermediate AML header for ASL/ASL+ converter */ #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 * Version 1
* *
* Conforms to "Windows SMM Security Migrations Table", * Conforms to "Windows SMM Security Mitigations Table",
* Version 1.0, April 18, 2016 * Version 1.0, April 18, 2016
* *
******************************************************************************/ ******************************************************************************/

View file

@ -92,4 +92,4 @@
#define UUID_DEVICE_PROPERTIES "daffd814-6eba-4d8c-8a91-bc9bbf4aa301" #define UUID_DEVICE_PROPERTIES "daffd814-6eba-4d8c-8a91-bc9bbf4aa301"
#endif /* __AUUID_H__ */ #endif /* __ACUUID_H__ */

View file

@ -50,12 +50,6 @@
#define _COMPONENT ACPI_NAMESPACE #define _COMPONENT ACPI_NAMESPACE
ACPI_MODULE_NAME ("nsnames") ACPI_MODULE_NAME ("nsnames")
/* Local Prototypes */
static void
AcpiNsNormalizePathname (
char *OriginalPath);
/******************************************************************************* /*******************************************************************************
* *
@ -508,7 +502,7 @@ Cleanup:
* *
******************************************************************************/ ******************************************************************************/
static void void
AcpiNsNormalizePathname ( AcpiNsNormalizePathname (
char *OriginalPath) char *OriginalPath)
{ {

View file

@ -116,7 +116,7 @@ const char *AcpiGbl_RegionTypes[ACPI_NUM_PREDEFINED_REGIONS] =
"IPMI", /* 0x07 */ "IPMI", /* 0x07 */
"GeneralPurposeIo", /* 0x08 */ "GeneralPurposeIo", /* 0x08 */
"GenericSerialBus", /* 0x09 */ "GenericSerialBus", /* 0x09 */
"PlatformCommChannel"/* 0x0A */ "PCC" /* 0x0A */
}; };

View file

@ -518,13 +518,13 @@ AcpiUtUpdateRefCount (
* *
* FUNCTION: AcpiUtUpdateObjectReference * FUNCTION: AcpiUtUpdateObjectReference
* *
* PARAMETERS: Object - Increment ref count for this object * PARAMETERS: Object - Increment or decrement the ref count for
* and all sub-objects * this object and all sub-objects
* Action - Either REF_INCREMENT or REF_DECREMENT * Action - Either REF_INCREMENT or REF_DECREMENT
* *
* RETURN: Status * RETURN: Status
* *
* DESCRIPTION: Increment the object reference count * DESCRIPTION: Increment or decrement the object reference count
* *
* Object references are incremented when: * Object references are incremented when:
* 1) An object is attached to a Node (namespace object) * 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. * also. Different object types have different subobjects.
*/ */
switch (Object->Common.Type) switch (Object->Common.Type)
@ -632,6 +632,7 @@ AcpiUtUpdateObjectReference (
break; break;
} }
} }
NextObject = NULL; NextObject = NULL;
break; break;

View file

@ -452,7 +452,13 @@ vsnprintf (
Pos = String; Pos = String;
if (Size != ACPI_UINT32_MAX) {
End = String + Size; End = String + Size;
} else {
End = ACPI_CAST_PTR(char, ACPI_UINT32_MAX);
}
for (; *Format; ++Format) for (; *Format; ++Format)
{ {

View file

@ -92,7 +92,7 @@ Used Version: 1.6.37
Website: http://libpng.sourceforge.net/ Website: http://libpng.sourceforge.net/
Title: ACPICA Title: ACPICA
Used Version: 20200110 Used Version: 20200326
Website: https://acpica.org/ Website: https://acpica.org/
Title: Schily Tools, mkisofs Title: Schily Tools, mkisofs