[ACPI] Update ACPICA library to version 20190215.
authorThomas Faber <thomas.faber@reactos.org>
Fri, 15 Feb 2019 18:43:25 +0000 (19:43 +0100)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 17 Feb 2019 08:51:20 +0000 (09:51 +0100)
44 files changed:
drivers/bus/acpi/acpica/dispatcher/dsfield.c
drivers/bus/acpi/acpica/dispatcher/dsopcode.c
drivers/bus/acpi/acpica/dispatcher/dswload2.c
drivers/bus/acpi/acpica/events/evgpe.c
drivers/bus/acpi/acpica/events/evregion.c
drivers/bus/acpi/acpica/events/evrgnini.c
drivers/bus/acpi/acpica/events/evxfgpe.c
drivers/bus/acpi/acpica/executer/exconvrt.c
drivers/bus/acpi/acpica/executer/exfield.c
drivers/bus/acpi/acpica/executer/exserial.c
drivers/bus/acpi/acpica/executer/exutils.c
drivers/bus/acpi/acpica/include/acclib.h
drivers/bus/acpi/acpica/include/acconfig.h
drivers/bus/acpi/acpica/include/acdebug.h
drivers/bus/acpi/acpica/include/acdisasm.h
drivers/bus/acpi/acpica/include/acexcep.h
drivers/bus/acpi/acpica/include/aclocal.h
drivers/bus/acpi/acpica/include/acmacros.h
drivers/bus/acpi/acpica/include/acobject.h
drivers/bus/acpi/acpica/include/acpixf.h
drivers/bus/acpi/acpica/include/acpredef.h
drivers/bus/acpi/acpica/include/acrestyp.h
drivers/bus/acpi/acpica/include/actbinfo.h
drivers/bus/acpi/acpica/include/actbl1.h
drivers/bus/acpi/acpica/include/actbl2.h
drivers/bus/acpi/acpica/include/actbl3.h
drivers/bus/acpi/acpica/include/actypes.h
drivers/bus/acpi/acpica/include/platform/acefi.h
drivers/bus/acpi/acpica/namespace/nsload.c
drivers/bus/acpi/acpica/namespace/nsparse.c
drivers/bus/acpi/acpica/namespace/nsutils.c
drivers/bus/acpi/acpica/parser/psloop.c
drivers/bus/acpi/acpica/parser/psparse.c
drivers/bus/acpi/acpica/resources/rsdumpinfo.c
drivers/bus/acpi/acpica/resources/rsirq.c
drivers/bus/acpi/acpica/resources/rsserial.c
drivers/bus/acpi/acpica/tables/tbfadt.c
drivers/bus/acpi/acpica/tables/tbxface.c
drivers/bus/acpi/acpica/tables/tbxfload.c
drivers/bus/acpi/acpica/utilities/utclib.c
drivers/bus/acpi/acpica/utilities/utdecode.c
drivers/bus/acpi/acpica/utilities/utdelete.c
drivers/bus/acpi/acpica/utilities/uterror.c
drivers/bus/acpi/buspdo.c

index 44e2889..ec1c125 100644 (file)
@@ -577,6 +577,12 @@ AcpiDsCreateField (
     Info.RegionNode = RegionNode;
 
     Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
+    if (Info.RegionNode->Type == ACPI_ADR_SPACE_PLATFORM_COMM &&
+        !(RegionNode->Object->Field.InternalPccBuffer
+        = ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length)))
+    {
+        return_ACPI_STATUS (AE_NO_MEMORY);
+    }
     return_ACPI_STATUS (Status);
 }
 
index 97d6b3f..1d35c5b 100644 (file)
@@ -413,6 +413,7 @@ AcpiDsEvalRegionOperands (
     ACPI_OPERAND_OBJECT     *OperandDesc;
     ACPI_NAMESPACE_NODE     *Node;
     ACPI_PARSE_OBJECT       *NextOp;
+    ACPI_ADR_SPACE_TYPE     SpaceId;
 
 
     ACPI_FUNCTION_TRACE_PTR (DsEvalRegionOperands, Op);
@@ -422,11 +423,12 @@ AcpiDsEvalRegionOperands (
      * This is where we evaluate the address and length fields of the
      * OpRegion declaration
      */
-    Node =  Op->Common.Node;
+    Node = Op->Common.Node;
 
     /* NextOp points to the op that holds the SpaceID */
 
     NextOp = Op->Common.Value.Arg;
+    SpaceId = (ACPI_ADR_SPACE_TYPE) NextOp->Common.Value.Integer;
 
     /* NextOp points to address op */
 
@@ -464,6 +466,15 @@ AcpiDsEvalRegionOperands (
     ObjDesc->Region.Length = (UINT32) OperandDesc->Integer.Value;
     AcpiUtRemoveReference (OperandDesc);
 
+    /* A zero-length operation region is unusable. Just warn */
+
+    if (!ObjDesc->Region.Length && (SpaceId < ACPI_NUM_PREDEFINED_REGIONS))
+    {
+        ACPI_WARNING ((AE_INFO,
+            "Operation Region [%4.4s] has zero length (SpaceId %X)",
+            Node->Name.Ascii, SpaceId));
+    }
+
     /*
      * Get the address and save it
      * (at top of stack - 1)
index 13677be..373e265 100644 (file)
@@ -59,7 +59,7 @@
  * FUNCTION:    AcpiDsLoad2BeginOp
  *
  * PARAMETERS:  WalkState       - Current state of the parse tree walk
- *              OutOp           - Wher to return op if a new one is created
+ *              OutOp           - Where to return op if a new one is created
  *
  * RETURN:      Status
  *
index bfef37a..7527a00 100644 (file)
@@ -904,7 +904,7 @@ AcpiEvGpeDispatch (
             GpeDevice, GpeNumber,
             GpeEventInfo->Dispatch.Handler->Context);
 
-        /* If requested, clear (if level-triggered) and reenable the GPE */
+        /* If requested, clear (if level-triggered) and re-enable the GPE */
 
         if (ReturnValue & ACPI_REENABLE_GPE)
         {
index dd37eca..ea774e2 100644 (file)
@@ -301,7 +301,7 @@ AcpiEvAddressSpaceDispatch (
         /*
          * For handlers other than the default (supplied) handlers, we must
          * exit the interpreter because the handler *might* block -- we don't
-         * know what it will do, so we can't hold the lock on the intepreter.
+         * know what it will do, so we can't hold the lock on the interpreter.
          */
         AcpiExExitInterpreter();
     }
index dc144e1..063afaa 100644 (file)
@@ -616,24 +616,6 @@ AcpiEvInitializeRegion (
                 HandlerObj = ObjDesc->CommonNotify.Handler;
                 break;
 
-            case ACPI_TYPE_METHOD:
-                /*
-                 * If we are executing module level code, the original
-                 * Node's object was replaced by this Method object and we
-                 * saved the handler in the method object.
-                 *
-                 * Note: Only used for the legacy MLC support. Will
-                 * be removed in the future.
-                 *
-                 * See AcpiNsExecModuleCode
-                 */
-                if (!AcpiGbl_ExecuteTablesAsMethods &&
-                    ObjDesc->Method.InfoFlags & ACPI_METHOD_MODULE_LEVEL)
-                {
-                    HandlerObj = ObjDesc->Method.Dispatch.Handler;
-                }
-                break;
-
             default:
 
                 /* Ignore other objects */
index 1870d6a..161f3c7 100644 (file)
@@ -777,9 +777,9 @@ ACPI_EXPORT_SYMBOL (AcpiGetGpeStatus)
  *
  * RETURN:      Status
  *
- * DESCRIPTION: Clear and conditionally reenable a GPE. This completes the GPE
+ * DESCRIPTION: Clear and conditionally re-enable a GPE. This completes the GPE
  *              processing. Intended for use by asynchronous host-installed
- *              GPE handlers. The GPE is only reenabled if the EnableForRun bit
+ *              GPE handlers. The GPE is only re-enabled if the EnableForRun bit
  *              is set in the GPE info.
  *
  ******************************************************************************/
index 398a700..b32bb2f 100644 (file)
@@ -600,7 +600,7 @@ AcpiExConvertToString (
         {
             if (Base == 16)
             {
-                /* Emit 0x prefix for explict/implicit hex conversion */
+                /* Emit 0x prefix for explicit/implicit hex conversion */
 
                 *NewBuf++ = '0';
                 *NewBuf++ = 'x';
index 917cd2f..f4c4139 100644 (file)
@@ -79,6 +79,17 @@ const UINT8     AcpiProtocolLengths[] =
     0xFF                        /* F - ATTRIB_RAW_PROCESS_BYTES */
 };
 
+#define PCC_MASTER_SUBSPACE     3
+
+/*
+ * The following macros determine a given offset is a COMD field.
+ * According to the specification, generic subspaces (types 0-2) contains a
+ * 2-byte COMD field at offset 4 and master subspaces (type 3) contains a 4-byte
+ * COMD field starting at offset 12.
+ */
+#define GENERIC_SUBSPACE_COMMAND(a)     (4 == a || a == 5)
+#define MASTER_SUBSPACE_COMMAND(a)      (12 <= a && a <= 15)
+
 
 /*******************************************************************************
  *
@@ -229,6 +240,23 @@ AcpiExReadDataFromField (
         Status = AcpiExReadGpio (ObjDesc, Buffer);
         goto Exit;
     }
+    else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+        (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM))
+    {
+        /*
+         * Reading from a PCC field unit does not require the handler because
+         * it only requires reading from the InternalPccBuffer.
+         */
+        ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+            "PCC FieldRead bits %u\n", ObjDesc->Field.BitLength));
+
+        memcpy (Buffer, ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
+        ObjDesc->Field.BaseByteOffset, (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
+            ObjDesc->Field.BitLength));
+
+        *RetBufferDesc = BufferDesc;
+        return AE_OK;
+    }
 
     ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
         "FieldRead [TO]:   Obj %p, Type %X, Buf %p, ByteLen %X\n",
@@ -285,6 +313,7 @@ AcpiExWriteDataToField (
 {
     ACPI_STATUS             Status;
     UINT32                  BufferLength;
+    UINT32                  DataLength;
     void                    *Buffer;
 
 
@@ -331,6 +360,39 @@ AcpiExWriteDataToField (
         Status = AcpiExWriteSerialBus (SourceDesc, ObjDesc, ResultDesc);
         return_ACPI_STATUS (Status);
     }
+    else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+             (ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM))
+    {
+        /*
+         * According to the spec a write to the COMD field will invoke the
+         * region handler. Otherwise, write to the PccInternal buffer. This
+         * implementation will use the offsets specified rather than the name
+         * of the field. This is considered safer because some firmware tools
+         * are known to obfiscate named objects.
+         */
+        DataLength = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
+            ObjDesc->Field.BitLength);
+        memcpy (ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
+            ObjDesc->Field.BaseByteOffset,
+            SourceDesc->Buffer.Pointer, DataLength);
+
+        if ((ObjDesc->Field.RegionObj->Region.Address == PCC_MASTER_SUBSPACE &&
+           MASTER_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) ||
+           GENERIC_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset))
+        {
+            /* Perform the write */
+
+            ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
+                "PCC COMD field has been written. Invoking PCC handler now.\n"));
+
+            Status = AcpiExAccessRegion (
+                ObjDesc, 0, (UINT64 *) ObjDesc->Field.RegionObj->Field.InternalPccBuffer,
+                ACPI_WRITE);
+            return_ACPI_STATUS (Status);
+        }
+        return (AE_OK);
+    }
+
 
     /* Get a pointer to the data to be written */
 
index 2c7bf8b..005e7d5 100644 (file)
@@ -57,7 +57,7 @@
  * FUNCTION:    AcpiExReadGpio
  *
  * PARAMETERS:  ObjDesc             - The named field to read
- *              Buffer              - Where the return data is returnd
+ *              Buffer              - Where the return data is returned
  *
  * RETURN:      Status
  *
index 0c2820b..1334471 100644 (file)
@@ -217,7 +217,7 @@ AcpiExTruncateFor32bitTable (
  * RETURN:      None
  *
  * DESCRIPTION: Obtain the ACPI hardware Global Lock, only if the field
- *              flags specifiy that it is to be obtained before field access.
+ *              flags specify that it is to be obtained before field access.
  *
  ******************************************************************************/
 
index 6e23fc9..44f79d0 100644 (file)
@@ -237,7 +237,7 @@ sprintf (
 
 /*
  * NOTE: Currently we only need to update errno for file IOs. Other
- *       Clibrary invocations in ACPICA do not make descisions according to
+ *       Clibrary invocations in ACPICA do not make decisions according to
  *       the errno.
  */
 extern int errno;
index 12267bf..4a95e20 100644 (file)
 
 /*
  * Maximal number of elements the Result Stack can contain,
- * it may be an arbitray value not exceeding the types of
+ * it may be an arbitrary value not exceeding the types of
  * ResultSize and ResultCount (now UINT8).
  */
 #define ACPI_RESULTS_OBJ_NUM_MAX        255
index 4d9d3ac..6db3e36 100644 (file)
@@ -51,7 +51,8 @@
 #endif
 
 
-#define ACPI_DEBUG_BUFFER_SIZE  0x4000      /* 16K buffer for return objects */
+#define ACPI_DEBUG_BUFFER_SIZE      0x4000      /* 16K buffer for return objects */
+#define ACPI_DEBUG_LENGTH_FORMAT    " (%.4X bits, %.3X bytes)"
 
 typedef struct acpi_db_command_info
 {
index 573f287..7e69251 100644 (file)
@@ -301,6 +301,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTableInfoFpdt1[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGas[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtHdr[];
+extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdtEl2[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt0a[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoGtdt1[];
@@ -445,6 +446,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat1[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat2[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat3[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat4[];
+extern ACPI_DMTABLE_INFO        AcpiDmTableInfoSrat5[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStao[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoStaoStr[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoTcpaHdr[];
index fe2f19b..3b86b7d 100644 (file)
@@ -326,7 +326,7 @@ static const ACPI_EXCEPTION_INFO    AcpiGbl_ExceptionNames_Aml[] =
     EXCEP_TXT ("AE_AML_DIVIDE_BY_ZERO",         "During execution of AML Divide operator"),
     EXCEP_TXT ("AE_AML_BAD_NAME",               "An ACPI name contains invalid character(s)"),
     EXCEP_TXT ("AE_AML_NAME_NOT_FOUND",         "Could not resolve a named reference"),
-    EXCEP_TXT ("AE_AML_INTERNAL",               "An internal error within the interprete"),
+    EXCEP_TXT ("AE_AML_INTERNAL",               "An internal error within the interpreter"),
     EXCEP_TXT ("AE_AML_INVALID_SPACE_ID",       "An Operation Region SpaceID is invalid"),
     EXCEP_TXT ("AE_AML_STRING_LIMIT",           "String is longer than 200 characters"),
     EXCEP_TXT ("AE_AML_NO_RETURN_VALUE",        "A method did not return a required value"),
index 37e3f7f..bd0a25d 100644 (file)
@@ -997,7 +997,7 @@ typedef struct acpi_comment_addr_node
 
 /*
  * File node - used for "Include" operator file stack and
- * depdendency tree for the -ca option
+ * dependency tree for the -ca option
  */
 typedef struct acpi_file_node
 {
index ddb96cb..c216ea2 100644 (file)
 
 
 /*
- * Macors used for the ASL-/ASL+ converter utility
+ * Macros used for the ASL-/ASL+ converter utility
  */
 #ifdef ACPI_ASL_COMPILER
 
index 10bf5ef..150f6fb 100644 (file)
@@ -345,6 +345,7 @@ typedef struct acpi_object_region_field
     union acpi_operand_object       *RegionObj;         /* Containing OpRegion object */
     UINT8                           *ResourceBuffer;    /* ResourceTemplate for serial regions/fields */
     UINT16                          PinNumberIndex;     /* Index relative to previous Connection/Template */
+    UINT8                           *InternalPccBuffer; /* Internal buffer for fields associated with PCC */
 
 } ACPI_OBJECT_REGION_FIELD;
 
index e8818bf..ba6b8bb 100644 (file)
@@ -46,7 +46,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20190108
+#define ACPI_CA_VERSION                 0x20190215
 
 #include "acconfig.h"
 #include "actypes.h"
@@ -192,14 +192,6 @@ ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_CopyDsdtLocally, FALSE);
  */
 ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_DoNotUseXsdt, FALSE);
 
-/*
- * Optionally support module level code by parsing an entire table as
- * a method as it is loaded. Default is TRUE.
- * NOTE, this is essentially obsolete and will be removed soon
- * (01/2018).
- */
-ACPI_INIT_GLOBAL (UINT8,            AcpiGbl_ExecuteTablesAsMethods, TRUE);
-
 /*
  * Optionally use 32-bit FADT addresses if and when there is a conflict
  * (address mismatch) between the 32-bit and 64-bit versions of the
index a42a6ab..58610ad 100644 (file)
@@ -652,6 +652,21 @@ const ACPI_PREDEFINED_INFO          AcpiGbl_PredefinedMethods[] =
     {{"_MTL",   METHOD_0ARGS,                          /* ACPI 6.0 */
                 METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
 
+    {{"_NBS",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NCH",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NIC",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NIG",   METHOD_1ARGS (ACPI_TYPE_BUFFER),       /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
+    {{"_NIH",   METHOD_0ARGS,                          /* ACPI 6.3 */
+                METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
+
     {{"_NTT",   METHOD_0ARGS,
                 METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
 
index ab42a2a..847bc50 100644 (file)
@@ -179,7 +179,7 @@ typedef struct acpi_resource_irq
     UINT8                           DescriptorLength;
     UINT8                           Triggering;
     UINT8                           Polarity;
-    UINT8                           Sharable;
+    UINT8                           Shareable;
     UINT8                           WakeCapable;
     UINT8                           InterruptCount;
     UINT8                           Interrupts[1];
@@ -426,7 +426,7 @@ typedef struct acpi_resource_extended_irq
     UINT8                           ProducerConsumer;
     UINT8                           Triggering;
     UINT8                           Polarity;
-    UINT8                           Sharable;
+    UINT8                           Shareable;
     UINT8                           WakeCapable;
     UINT8                           InterruptCount;
     ACPI_RESOURCE_SOURCE            ResourceSource;
@@ -450,7 +450,7 @@ typedef struct acpi_resource_gpio
     UINT8                           ConnectionType;
     UINT8                           ProducerConsumer;   /* For values, see Producer/Consumer above */
     UINT8                           PinConfig;
-    UINT8                           Sharable;           /* For values, see Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see Interrupt Attributes above */
     UINT8                           WakeCapable;        /* For values, see Interrupt Attributes above */
     UINT8                           IoRestriction;
     UINT8                           Triggering;         /* For values, see Interrupt Attributes above */
@@ -628,7 +628,7 @@ typedef struct acpi_resource_pin_function
 {
     UINT8                           RevisionId;
     UINT8                           PinConfig;
-    UINT8                           Sharable;           /* For values, see Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see Interrupt Attributes above */
     UINT16                          FunctionNumber;
     UINT16                          PinTableLength;
     UINT16                          VendorLength;
@@ -642,7 +642,7 @@ typedef struct acpi_resource_pin_config
 {
     UINT8                           RevisionId;
     UINT8                           ProducerConsumer;   /* For values, see Producer/Consumer above */
-    UINT8                           Sharable;           /* For values, see Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see Interrupt Attributes above */
     UINT8                           PinConfigType;
     UINT32                          PinConfigValue;
     UINT16                          PinTableLength;
@@ -686,7 +686,7 @@ typedef struct acpi_resource_pin_group_function
 {
     UINT8                           RevisionId;
     UINT8                           ProducerConsumer;   /* For values, see Producer/Consumer above */
-    UINT8                           Sharable;           /* For values, see Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see Interrupt Attributes above */
     UINT16                          FunctionNumber;
     UINT16                          VendorLength;
     ACPI_RESOURCE_SOURCE            ResourceSource;
@@ -699,7 +699,7 @@ typedef struct acpi_resource_pin_group_config
 {
     UINT8                           RevisionId;
     UINT8                           ProducerConsumer;   /* For values, see Producer/Consumer above */
-    UINT8                           Sharable;           /* For values, see Interrupt Attributes above */
+    UINT8                           Shareable;           /* For values, see Interrupt Attributes above */
     UINT8                           PinConfigType;      /* For values, see PinConfigType above */
     UINT32                          PinConfigValue;
     UINT16                          VendorLength;
index 47e79f2..327c533 100644 (file)
 #define ACPI_GTDT0a_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_GTDT_TIMER_ENTRY,f)
 #define ACPI_GTDT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_GTDT_WATCHDOG,f)
 #define ACPI_GTDTH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_GTDT_HEADER,f)
+#define ACPI_GTDT_EL2_OFFSET(f)         (UINT16) ACPI_OFFSET (ACPI_GTDT_EL2,f)
 #define ACPI_HEST0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f)
 #define ACPI_HEST1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_CORRECTED,f)
 #define ACPI_HEST2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_NMI,f)
 #define ACPI_HEST11_OFFSET(f)           (UINT16) ACPI_OFFSET (ACPI_HEST_IA_DEFERRED_CHECK,f)
 #define ACPI_HESTN_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_NOTIFY,f)
 #define ACPI_HESTB_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HEST_IA_ERROR_BANK,f)
-#define ACPI_HMAT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HMAT_ADDRESS_RANGE,f)
+#define ACPI_HMAT0_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HMAT_PROXIMITY_DOMAIN,f)
 #define ACPI_HMAT1_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HMAT_LOCALITY,f)
 #define ACPI_HMAT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HMAT_CACHE,f)
 #define ACPI_HMATH_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_HMAT_STRUCTURE,f)
 #define ACPI_SRAT2_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f)
 #define ACPI_SRAT3_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_GICC_AFFINITY,f)
 #define ACPI_SRAT4_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_GIC_ITS_AFFINITY,f)
+#define ACPI_SRAT5_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f)
 #define ACPI_TCPA_CLIENT_OFFSET(f)      (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f)
 #define ACPI_TCPA_SERVER_OFFSET(f)      (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f)
 #define ACPI_TPM2A_OFFSET(f)            (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f)
 #define ACPI_SRAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
 #define ACPI_SRAT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
 #define ACPI_SRAT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_GICC_AFFINITY,f,o)
+#define ACPI_SRAT5_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f,o)
 #define ACPI_GTDT_FLAG_OFFSET(f,o)      ACPI_FLAG_OFFSET (ACPI_TABLE_GTDT,f,o)
 #define ACPI_GTDT0a_FLAG_OFFSET(f,o)    ACPI_FLAG_OFFSET (ACPI_GTDT_TIMER_ENTRY,f,o)
 #define ACPI_GTDT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_GTDT_WATCHDOG,f,o)
-#define ACPI_HMAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HMAT_ADDRESS_RANGE,f,o)
+#define ACPI_HMAT0_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HMAT_PROXIMITY_DOMAIN,f,o)
 #define ACPI_HMAT1_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HMAT_LOCALITY,f,o)
 #define ACPI_HMAT2_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_HMAT_CACHE,f,o)
 #define ACPI_IORT3_FLAG_OFFSET(f,o)     ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o)
index 14b8ade..4c761c8 100644 (file)
@@ -689,7 +689,7 @@ typedef struct acpi_dmar_hardware_unit
 #define ACPI_DMAR_INCLUDE_ALL       (1)
 
 
-/* 1: Reserved Memory Defininition */
+/* 1: Reserved Memory Definition */
 
 typedef struct acpi_dmar_reserved_memory
 {
@@ -1211,6 +1211,12 @@ typedef struct acpi_table_gtdt
 #define ACPI_GTDT_INTERRUPT_POLARITY    (1<<1)
 #define ACPI_GTDT_ALWAYS_ON             (1<<2)
 
+typedef struct acpi_gtdt_el2
+{
+    UINT32                  VirtualEL2TimerGsiv;
+    UINT32                  VirtualEL2TimerFlags;
+} ACPI_GTDT_EL2;
+
 
 /* Common GTDT subtable header */
 
@@ -1670,7 +1676,7 @@ typedef struct acpi_table_hmat
 
 enum AcpiHmatType
 {
-    ACPI_HMAT_TYPE_ADDRESS_RANGE        = 0,   /* Memory subystem address range */
+    ACPI_HMAT_TYPE_ADDRESS_RANGE        = 0,   /* Memory subsystem address range */
     ACPI_HMAT_TYPE_LOCALITY             = 1,   /* System locality latency and bandwidth information */
     ACPI_HMAT_TYPE_CACHE                = 2,   /* Memory side cache information */
     ACPI_HMAT_TYPE_RESERVED             = 3    /* 3 and greater are reserved */
@@ -1689,9 +1695,9 @@ typedef struct acpi_hmat_structure
  * HMAT Structures, correspond to Type in ACPI_HMAT_STRUCTURE
  */
 
-/* 0: Memory subystem address range */
+/* 0: Memory proximity domain attributes */
 
-typedef struct acpi_hmat_address_range
+typedef struct acpi_hmat_proximity_domain
 {
     ACPI_HMAT_STRUCTURE     Header;
     UINT16                  Flags;
@@ -1699,10 +1705,10 @@ typedef struct acpi_hmat_address_range
     UINT32                  ProcessorPD;            /* Processor proximity domain */
     UINT32                  MemoryPD;               /* Memory proximity domain */
     UINT32                  Reserved2;
-    UINT64                  PhysicalAddressBase;    /* Physical address range base */
-    UINT64                  PhysicalAddressLength;  /* Physical address range length */
+    UINT64                  Reserved3;
+    UINT64                  Reserved4;
 
-} ACPI_HMAT_ADDRESS_RANGE;
+} ACPI_HMAT_PROXIMITY_DOMAIN;
 
 /* Masks for Flags field above */
 
index 3d2c070..330445f 100644 (file)
@@ -195,7 +195,7 @@ typedef struct acpi_iort_memory_access
 typedef struct acpi_iort_its_group
 {
     UINT32                  ItsCount;
-    UINT32                  Identifiers[1];         /* GIC ITS identifier arrary */
+    UINT32                  Identifiers[1];         /* GIC ITS identifier array */
 
 } ACPI_IORT_ITS_GROUP;
 
@@ -765,7 +765,7 @@ typedef struct acpi_madt_local_x2apic_nmi
 } ACPI_MADT_LOCAL_X2APIC_NMI;
 
 
-/* 11: Generic Interrupt (ACPI 5.0 + ACPI 6.0 changes) */
+/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */
 
 typedef struct acpi_madt_generic_interrupt
 {
@@ -784,7 +784,8 @@ typedef struct acpi_madt_generic_interrupt
     UINT64                  GicrBaseAddress;
     UINT64                  ArmMpidr;
     UINT8                   EfficiencyClass;
-    UINT8                   Reserved2[3];
+    UINT8                   Reserved2[1];
+    UINT16                  SpeInterrupt;       /* ACPI 6.3 */
 
 } ACPI_MADT_GENERIC_INTERRUPT;
 
@@ -1629,6 +1630,7 @@ typedef struct acpi_pdtt_channel
 
 #define ACPI_PDTT_RUNTIME_TRIGGER           (1)
 #define ACPI_PDTT_WAIT_COMPLETION           (1<<1)
+#define ACPI_PDTT_TRIGGER_ORDER             (1<<2)
 
 
 /*******************************************************************************
@@ -1765,8 +1767,11 @@ typedef struct acpi_pptt_processor
 
 /* Flags */
 
-#define ACPI_PPTT_PHYSICAL_PACKAGE          (1)     /* Physical package */
-#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID   (2)     /* ACPI Processor ID valid */
+#define ACPI_PPTT_PHYSICAL_PACKAGE          (1)
+#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID   (1<<1)
+#define ACPI_PPTT_ACPI_PROCESSOR_IS_THREAD  (1<<2)  /* ACPI 6.3 */
+#define ACPI_PPTT_ACPI_LEAF_NODE            (1<<3)  /* ACPI 6.3 */
+#define ACPI_PPTT_ACPI_IDENTICAL            (1<<4)  /* ACPI 6.3 */
 
 
 /* 1: Cache Type Structure */
index 85d41d9..0f2743f 100644 (file)
@@ -242,8 +242,9 @@ enum AcpiSratType
     ACPI_SRAT_TYPE_MEMORY_AFFINITY      = 1,
     ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY  = 2,
     ACPI_SRAT_TYPE_GICC_AFFINITY        = 3,
-    ACPI_SRAT_TYPE_GIC_ITS_AFFINITY     = 4,    /* ACPI 6.2 */
-    ACPI_SRAT_TYPE_RESERVED             = 5     /* 5 and greater are reserved */
+    ACPI_SRAT_TYPE_GIC_ITS_AFFINITY     = 4, /* ACPI 6.2 */
+    ACPI_SRAT_TYPE_GENERIC_AFFINITY     = 5, /* ACPI 6.3 */
+    ACPI_SRAT_TYPE_RESERVED             = 6  /* 5 and greater are reserved */
 };
 
 /*
@@ -339,6 +340,24 @@ typedef struct acpi_srat_gic_its_affinity
 } ACPI_SRAT_GIC_ITS_AFFINITY;
 
 
+/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
+
+typedef struct acpi_srat_generic_affinity
+{
+    ACPI_SUBTABLE_HEADER    Header;
+    UINT8                   Reserved;
+    UINT8                   DeviceHandleType;
+    UINT32                  ProximityDomain;
+    UINT8                   DeviceHandle[16];
+    UINT32                  Flags;
+    UINT32                  Reserved1;
+
+} ACPI_SRAT_GENERIC_AFFINITY;
+
+/* Flags for ACPI_SRAT_GENERIC_AFFINITY */
+
+#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */
+
 /*******************************************************************************
  *
  * STAO - Status Override Table (_STA override) - ACPI 6.0
index 0c96c82..b7c645f 100644 (file)
@@ -659,8 +659,9 @@ typedef UINT64                          ACPI_INTEGER;
 #define ACPI_NOTIFY_SHUTDOWN_REQUEST    (UINT8) 0x0C
 #define ACPI_NOTIFY_AFFINITY_UPDATE     (UINT8) 0x0D
 #define ACPI_NOTIFY_MEMORY_UPDATE       (UINT8) 0x0E
+#define ACPI_NOTIFY_DISCONNECT_RECOVER  (UINT8) 0x0F
 
-#define ACPI_GENERIC_NOTIFY_MAX         0x0E
+#define ACPI_GENERIC_NOTIFY_MAX         0x0F
 #define ACPI_SPECIFIC_NOTIFY_MAX        0x84
 
 /*
index a879088..198e34d 100644 (file)
@@ -52,7 +52,7 @@
 #define DEBUGGER_THREADING          DEBUGGER_SINGLE_THREADED
 #endif /* !DEBUGGER_THREADING */
 
-/* EDK2 EFI environemnt */
+/* EDK2 EFI environment */
 
 #if defined(_EDK2_EFI)
 
index c5a1921..07f5b6b 100644 (file)
@@ -125,7 +125,7 @@ AcpiNsLoadTable (
         /*
          * On error, delete any namespace objects created by this table.
          * We cannot initialize these objects, so delete them. There are
-         * a couple of expecially bad cases:
+         * a couple of especially bad cases:
          * AE_ALREADY_EXISTS - namespace collision.
          * AE_NOT_FOUND - the target of a Scope operator does not
          * exist. This target of Scope must already exist in the
index 542c9c9..c7e3397 100644 (file)
@@ -314,66 +314,18 @@ AcpiNsParseTable (
     ACPI_FUNCTION_TRACE (NsParseTable);
 
 
-    if (AcpiGbl_ExecuteTablesAsMethods)
-    {
-        /*
-         * This case executes the AML table as one large control method.
-         * The point of this is to execute any module-level code in-place
-         * as the table is parsed. Some AML code depends on this behavior.
-         *
-         * It is a run-time option at this time, but will eventually become
-         * the default.
-         *
-         * Note: This causes the table to only have a single-pass parse.
-         * However, this is compatible with other ACPI implementations.
-         */
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
-            "%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
-
-        Status = AcpiNsExecuteTable (TableIndex, StartNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
-    else
-    {
-        /*
-         * AML Parse, pass 1
-         *
-         * In this pass, we load most of the namespace. Control methods
-         * are not parsed until later. A parse tree is not created.
-         * Instead, each Parser Op subtree is deleted when it is finished.
-         * This saves a great deal of memory, and allows a small cache of
-         * parse objects to service the entire parse. The second pass of
-         * the parse then performs another complete parse of the AML.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
-
-        Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1,
-            TableIndex, StartNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
+    /*
+     * Executes the AML table as one large control method.
+     * The point of this is to execute any module-level code in-place
+     * as the table is parsed. Some AML code depends on this behavior.
+     *
+     * Note: This causes the table to only have a single-pass parse.
+     * However, this is compatible with other ACPI implementations.
+     */
+    ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
+        "%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
 
-        /*
-         * AML Parse, pass 2
-         *
-         * In this pass, we resolve forward references and other things
-         * that could not be completed during the first pass.
-         * Another complete parse of the AML is performed, but the
-         * overhead of this is compensated for by the fact that the
-         * parse objects are all cached.
-         */
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n"));
-        Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2,
-            TableIndex, StartNode);
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
-    }
+    Status = AcpiNsExecuteTable (TableIndex, StartNode);
 
     return_ACPI_STATUS (Status);
 }
index e234855..fe0fd35 100644 (file)
@@ -453,7 +453,7 @@ AcpiNsInternalizeName (
  *
  * FUNCTION:    AcpiNsExternalizeName
  *
- * PARAMETERS:  InternalNameLength  - Lenth of the internal name below
+ * PARAMETERS:  InternalNameLength  - Length of the internal name below
  *              InternalName        - Internal representation of name
  *              ConvertedNameLength - Where the length is returned
  *              ConvertedName       - Where the resulting external name
index 61ff2d1..3170992 100644 (file)
@@ -70,13 +70,6 @@ AcpiPsGetArguments (
     UINT8                   *AmlOpStart,
     ACPI_PARSE_OBJECT       *Op);
 
-static void
-AcpiPsLinkModuleCode (
-    ACPI_PARSE_OBJECT       *ParentOp,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_OWNER_ID           OwnerId);
-
 
 /*******************************************************************************
  *
@@ -100,7 +93,6 @@ AcpiPsGetArguments (
 {
     ACPI_STATUS             Status = AE_OK;
     ACPI_PARSE_OBJECT       *Arg = NULL;
-    const ACPI_OPCODE_INFO  *OpInfo;
 
 
     ACPI_FUNCTION_TRACE_PTR (PsGetArguments, WalkState);
@@ -179,82 +171,6 @@ AcpiPsGetArguments (
             "Final argument count: %8.8X pass %u\n",
             WalkState->ArgCount, WalkState->PassNumber));
 
-        /*
-         * This case handles the legacy option that groups all module-level
-         * code blocks together and defers execution until all of the tables
-         * are loaded. Execute all of these blocks at this time.
-         * Execute any module-level code that was detected during the table
-         * load phase.
-         *
-         * Note: this option is deprecated and will be eliminated in the
-         * future. Use of this option can cause problems with AML code that
-         * depends upon in-order immediate execution of module-level code.
-         */
-        if (!AcpiGbl_ExecuteTablesAsMethods &&
-            (WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2) &&
-            ((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) == 0))
-        {
-            /*
-             * We want to skip If/Else/While constructs during Pass1 because we
-             * want to actually conditionally execute the code during Pass2.
-             *
-             * Except for disassembly, where we always want to walk the
-             * If/Else/While packages
-             */
-            switch (Op->Common.AmlOpcode)
-            {
-            case AML_IF_OP:
-            case AML_ELSE_OP:
-            case AML_WHILE_OP:
-                /*
-                 * Currently supported module-level opcodes are:
-                 * IF/ELSE/WHILE. These appear to be the most common,
-                 * and easiest to support since they open an AML
-                 * package.
-                 */
-                if (WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1)
-                {
-                    AcpiPsLinkModuleCode (Op->Common.Parent, AmlOpStart,
-                        (UINT32) (WalkState->ParserState.PkgEnd - AmlOpStart),
-                        WalkState->OwnerId);
-                }
-
-                ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-                    "Pass1: Skipping an If/Else/While body\n"));
-
-                /* Skip body of if/else/while in pass 1 */
-
-                WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
-                WalkState->ArgCount = 0;
-                break;
-
-            default:
-                /*
-                 * Check for an unsupported executable opcode at module
-                 * level. We must be in PASS1, the parent must be a SCOPE,
-                 * The opcode class must be EXECUTE, and the opcode must
-                 * not be an argument to another opcode.
-                 */
-                if ((WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1) &&
-                    (Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
-                {
-                    OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
-                    if ((OpInfo->Class == AML_CLASS_EXECUTE) &&
-                        (!Arg))
-                    {
-                        ACPI_WARNING ((AE_INFO,
-                            "Unsupported module-level executable opcode "
-                            "0x%.2X at table offset 0x%.4X",
-                            Op->Common.AmlOpcode,
-                            (UINT32) (ACPI_PTR_DIFF (AmlOpStart,
-                                WalkState->ParserState.AmlStart) +
-                                sizeof (ACPI_TABLE_HEADER))));
-                    }
-                }
-                break;
-            }
-        }
-
         /* Special processing for certain opcodes */
 
         switch (Op->Common.AmlOpcode)
@@ -326,117 +242,6 @@ AcpiPsGetArguments (
 }
 
 
-/*******************************************************************************
- *
- * FUNCTION:    AcpiPsLinkModuleCode
- *
- * PARAMETERS:  ParentOp            - Parent parser op
- *              AmlStart            - Pointer to the AML
- *              AmlLength           - Length of executable AML
- *              OwnerId             - OwnerId of module level code
- *
- * RETURN:      None.
- *
- * DESCRIPTION: Wrap the module-level code with a method object and link the
- *              object to the global list. Note, the mutex field of the method
- *              object is used to link multiple module-level code objects.
- *
- * NOTE: In this legacy option, each block of detected executable AML
- * code that is outside of any control method is wrapped with a temporary
- * control method object and placed on a global list below.
- *
- * This function executes the module-level code for all tables only after
- * all of the tables have been loaded. It is a legacy option and is
- * not compatible with other ACPI implementations. See AcpiNsLoadTable.
- *
- * This function will be removed when the legacy option is removed.
- *
- ******************************************************************************/
-
-static void
-AcpiPsLinkModuleCode (
-    ACPI_PARSE_OBJECT       *ParentOp,
-    UINT8                   *AmlStart,
-    UINT32                  AmlLength,
-    ACPI_OWNER_ID           OwnerId)
-{
-    ACPI_OPERAND_OBJECT     *Prev;
-    ACPI_OPERAND_OBJECT     *Next;
-    ACPI_OPERAND_OBJECT     *MethodObj;
-    ACPI_NAMESPACE_NODE     *ParentNode;
-
-
-    ACPI_FUNCTION_TRACE (PsLinkModuleCode);
-
-
-    /* Get the tail of the list */
-
-    Prev = Next = AcpiGbl_ModuleCodeList;
-    while (Next)
-    {
-        Prev = Next;
-        Next = Next->Method.Mutex;
-    }
-
-    /*
-     * Insert the module level code into the list. Merge it if it is
-     * adjacent to the previous element.
-     */
-    if (!Prev ||
-       ((Prev->Method.AmlStart + Prev->Method.AmlLength) != AmlStart))
-    {
-        /* Create, initialize, and link a new temporary method object */
-
-        MethodObj = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
-        if (!MethodObj)
-        {
-            return_VOID;
-        }
-
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Create/Link new code block: %p\n", MethodObj));
-
-        if (ParentOp->Common.Node)
-        {
-            ParentNode = ParentOp->Common.Node;
-        }
-        else
-        {
-            ParentNode = AcpiGbl_RootNode;
-        }
-
-        MethodObj->Method.AmlStart = AmlStart;
-        MethodObj->Method.AmlLength = AmlLength;
-        MethodObj->Method.OwnerId = OwnerId;
-        MethodObj->Method.InfoFlags |= ACPI_METHOD_MODULE_LEVEL;
-
-        /*
-         * Save the parent node in NextObject. This is cheating, but we
-         * don't want to expand the method object.
-         */
-        MethodObj->Method.NextObject =
-            ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParentNode);
-
-        if (!Prev)
-        {
-            AcpiGbl_ModuleCodeList = MethodObj;
-        }
-        else
-        {
-            Prev->Method.Mutex = MethodObj;
-        }
-    }
-    else
-    {
-        ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
-            "Appending to existing code block: %p\n", Prev));
-
-        Prev->Method.AmlLength += AmlLength;
-    }
-
-    return_VOID;
-}
-
 /*******************************************************************************
  *
  * FUNCTION:    AcpiPsParseLoop
index f4181b9..dfd1469 100644 (file)
@@ -572,12 +572,12 @@ AcpiPsParseAml (
             if (Status == AE_ABORT_METHOD)
             {
                 AcpiNsPrintNodePathname (
-                    WalkState->MethodNode, "Method aborted:");
+                    WalkState->MethodNode, "Aborting method");
                 AcpiOsPrintf ("\n");
             }
             else
             {
-                ACPI_ERROR_METHOD ("Method parse/execution failed",
+                ACPI_ERROR_METHOD ("Aborting method",
                     WalkState->MethodNode, NULL, Status);
             }
             AcpiExEnterInterpreter ();
index bb6fe48..12bd7d0 100644 (file)
@@ -72,7 +72,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpIrq[7] =
     {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.DescriptorLength),             "Descriptor Length",        NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering),                   "Triggering",               AcpiGbl_HeDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity),                     "Polarity",                 AcpiGbl_LlDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable),                     "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable),                    "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT8 ,   ACPI_RSD_OFFSET (Irq.InterruptCount),               "Interrupt Count",          NULL},
     {ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]),                "Interrupt List",           NULL}
 };
@@ -216,7 +216,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpExtIrq[8] =
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer),     "Type",                     AcpiGbl_ConsumeDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering),           "Triggering",               AcpiGbl_HeDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity),             "Polarity",                 AcpiGbl_LlDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable),             "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable),            "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource),       NULL,                       NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount),       "Interrupt Count",          NULL},
     {ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]),        "Interrupt List",           NULL}
@@ -239,7 +239,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpGpio[16] =
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Gpio.ConnectionType),              "ConnectionType",           AcpiGbl_CtDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.ProducerConsumer),            "ProducerConsumer",         AcpiGbl_ConsumeDecode},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (Gpio.PinConfig),                   "PinConfig",                AcpiGbl_PpcDecode},
-    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Sharable),                    "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Shareable),                   "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.IoRestriction),               "IoRestriction",            AcpiGbl_IorDecode},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.Triggering),                  "Triggering",               AcpiGbl_HeDecode},
     {ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Polarity),                    "Polarity",                 AcpiGbl_LlDecode},
@@ -257,7 +257,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinFunction[10] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinFunction),        "PinFunction",              NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinFunction.RevisionId),           "RevisionId",               NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinFunction.PinConfig),            "PinConfig",                AcpiGbl_PpcDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Sharable),             "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Shareable),            "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (PinFunction.FunctionNumber),       "FunctionNumber",           NULL},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (PinFunction.ResourceSource),       "ResourceSource",           NULL},
     {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (PinFunction.PinTableLength),       "PinTableLength",           NULL},
@@ -271,7 +271,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinConfig[11] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig),          "PinConfig",                NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinConfig.RevisionId),             "RevisionId",               NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.ProducerConsumer),       "ProducerConsumer",         AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Sharable),               "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Shareable),              "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinConfig.PinConfigType),          "PinConfigType",            NULL},
     {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (PinConfig.PinConfigValue),         "PinConfigValue",           NULL},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (PinConfig.ResourceSource),         "ResourceSource",           NULL},
@@ -298,7 +298,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinGroupFunction[9] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupFunction),   "PinGroupFunction",         NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinGroupFunction.RevisionId),      "RevisionId",               NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.ProducerConsumer), "ProducerConsumer",        AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Sharable),        "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Shareable),       "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT16,   ACPI_RSD_OFFSET (PinGroupFunction.FunctionNumber),  "FunctionNumber",           NULL},
     {ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET (PinGroupFunction.ResourceSourceLabel), "ResourceSourceLabel", NULL},
     {ACPI_RSD_SOURCE,   ACPI_RSD_OFFSET (PinGroupFunction.ResourceSource),  "ResourceSource",           NULL},
@@ -311,7 +311,7 @@ ACPI_RSDUMP_INFO        AcpiRsDumpPinGroupConfig[10] =
     {ACPI_RSD_TITLE,    ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupConfig),     "PinGroupConfig",           NULL},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinGroupConfig.RevisionId),        "RevisionId",               NULL},
     {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.ProducerConsumer),  "ProducerConsumer",         AcpiGbl_ConsumeDecode},
-    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Sharable),          "Sharing",                  AcpiGbl_ShrDecode},
+    {ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Shareable),         "Sharing",                  AcpiGbl_ShrDecode},
     {ACPI_RSD_UINT8,    ACPI_RSD_OFFSET (PinGroupConfig.PinConfigType),     "PinConfigType",            NULL},
     {ACPI_RSD_UINT32,   ACPI_RSD_OFFSET (PinGroupConfig.PinConfigValue),    "PinConfigValue",           NULL},
     {ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET (PinGroupConfig.ResourceSourceLabel), "ResourceSourceLabel", NULL},
index 8514445..50a6001 100644 (file)
@@ -93,7 +93,7 @@ ACPI_RSCONVERT_INFO     AcpiRsGetIrq[9] =
                         AML_OFFSET (Irq.Flags),
                         3},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
                         AML_OFFSET (Irq.Flags),
                         4},
 
@@ -133,7 +133,7 @@ ACPI_RSCONVERT_INFO     AcpiRsSetIrq[14] =
                         AML_OFFSET (Irq.Flags),
                         3},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
                         AML_OFFSET (Irq.Flags),
                         4},
 
@@ -180,7 +180,7 @@ ACPI_RSCONVERT_INFO     AcpiRsSetIrq[14] =
                         ACPI_ACTIVE_HIGH},
 
     {ACPI_RSC_EXIT_NE,  ACPI_RSC_COMPARE_VALUE,
-                        ACPI_RS_OFFSET (Data.Irq.Sharable),
+                        ACPI_RS_OFFSET (Data.Irq.Shareable),
                         ACPI_EXCLUSIVE},
 
     /* We can optimize to a 2-byte IrqNoFlags() descriptor */
@@ -221,7 +221,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertExtIrq[10] =
                         AML_OFFSET (ExtendedIrq.Flags),
                         2},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Shareable),
                         AML_OFFSET (ExtendedIrq.Flags),
                         3},
 
index 31edd72..aed946b 100644 (file)
@@ -78,7 +78,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertGpio[18] =
                         AML_OFFSET (Gpio.Flags),
                         0},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Shareable),
                         AML_OFFSET (Gpio.IntFlags),
                         3},
 
@@ -166,7 +166,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinFunction[13] =
                         AML_OFFSET (PinFunction.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Shareable),
                         AML_OFFSET (PinFunction.Flags),
                         0},
 
@@ -531,7 +531,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinConfig[14] =
                         AML_OFFSET (PinConfig.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Shareable),
                         AML_OFFSET (PinConfig.Flags),
                         0},
 
@@ -667,7 +667,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinGroupFunction[13] =
                         AML_OFFSET (PinGroupFunction.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Shareable),
                         AML_OFFSET (PinGroupFunction.Flags),
                         0},
 
@@ -734,7 +734,7 @@ ACPI_RSCONVERT_INFO     AcpiRsConvertPinGroupConfig[14] =
                         AML_OFFSET (PinGroupConfig.RevisionId),
                         1},
 
-    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Sharable),
+    {ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Shareable),
                         AML_OFFSET (PinGroupConfig.Flags),
                         0},
 
index f56d31e..7a1c82f 100644 (file)
@@ -632,7 +632,7 @@ AcpiTbConvertFadt (
                  * 64-bit X length field.
                  * Note: If the legacy length field is > 0xFF bits, ignore
                  * this check. (GPE registers can be larger than the
-                 * 64-bit GAS structure can accomodate, 0xFF bits).
+                 * 64-bit GAS structure can accommodate, 0xFF bits).
                  */
                 if ((ACPI_MUL_8 (Length) <= ACPI_UINT8_MAX) &&
                     (Address64->BitWidth != ACPI_MUL_8 (Length)))
index 2ceb049..6974964 100644 (file)
@@ -155,7 +155,7 @@ AcpiInitializeTables (
     /*
      * Get the root table (RSDT or XSDT) and extract all entries to the local
      * Root Table Array. This array contains the information of the RSDT/XSDT
-     * in a common, more useable format.
+     * in a common, more usable format.
      */
     Status = AcpiTbParseRootTable (RsdpAddress);
     return_ACPI_STATUS (Status);
@@ -226,7 +226,7 @@ AcpiReallocateRootTable (
     {
         /*
          * Now it's safe to do full table validation. We can do deferred
-         * table initilization here once the flag is set.
+         * table initialization here once the flag is set.
          */
         AcpiGbl_EnableTableValidation = TRUE;
         for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
index ad2b766..32095dc 100644 (file)
@@ -111,25 +111,19 @@ AcpiLoadTables (
             "While loading namespace from ACPI tables"));
     }
 
-    if (AcpiGbl_ExecuteTablesAsMethods)
+    /*
+     * Initialize the objects in the namespace that remain uninitialized.
+     * This runs the executable AML that may be part of the declaration of
+     * these name objects:
+     *     OperationRegions, BufferFields, Buffers, and Packages.
+     *
+     */
+    Status = AcpiNsInitializeObjects ();
+    if (ACPI_SUCCESS (Status))
     {
-        /*
-         * If the module-level code support is enabled, initialize the objects
-         * in the namespace that remain uninitialized. This runs the executable
-         * AML that may be part of the declaration of these name objects:
-         *     OperationRegions, BufferFields, Buffers, and Packages.
-         *
-         * Note: The module-level code is optional at this time, but will
-         * become the default in the future.
-         */
-        Status = AcpiNsInitializeObjects ();
-        if (ACPI_FAILURE (Status))
-        {
-            return_ACPI_STATUS (Status);
-        }
+        AcpiGbl_NamespaceInitialized = TRUE;
     }
 
-    AcpiGbl_NamespaceInitialized = TRUE;
     return_ACPI_STATUS (Status);
 }
 
index d0547cf..2afe7f1 100644 (file)
@@ -291,7 +291,7 @@ strlen (
  * PARAMETERS:  String              - Null terminated string
  *              Delimiters          - Delimiters to match
  *
- * RETURN:      The first occurance in the string of any of the bytes in the
+ * RETURN:      The first occurrence in the string of any of the bytes in the
  *              delimiters
  *
  * DESCRIPTION: Search a string for any of a set of the delimiters
@@ -681,7 +681,7 @@ strstr (
  * FUNCTION:    strtoul
  *
  * PARAMETERS:  String          - Null terminated string
- *              Terminater      - Where a pointer to the terminating byte is
+ *              Terminator      - Where a pointer to the terminating byte is
  *                                returned
  *              Base            - Radix of the string
  *
index d8423a9..9bd3d50 100644 (file)
@@ -525,6 +525,7 @@ static const char           *AcpiGbl_GenericNotify[ACPI_GENERIC_NOTIFY_MAX + 1]
     /* 0C */ "Reserved (was previously Shutdown Request)",  /* Reserved in ACPI 6.0 */
     /* 0D */ "System Resource Affinity Update",
     /* 0E */ "Heterogeneous Memory Attributes Update"       /* ACPI 6.2 */
+    /* 0F */ "Error Disconnect Recover"                     /* ACPI 6.3 */
 };
 
 static const char           *AcpiGbl_DeviceNotify[5] =
@@ -561,14 +562,14 @@ AcpiUtGetNotifyName (
     ACPI_OBJECT_TYPE        Type)
 {
 
-    /* 00 - 0D are "common to all object types" (from ACPI Spec) */
+    /* 00 - 0F are "common to all object types" (from ACPI Spec) */
 
     if (NotifyValue <= ACPI_GENERIC_NOTIFY_MAX)
     {
         return (AcpiGbl_GenericNotify[NotifyValue]);
     }
 
-    /* 0E - 7F are reserved */
+    /* 10 - 7F are reserved */
 
     if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
     {
index 68fd650..ff41fac 100644 (file)
@@ -304,6 +304,11 @@ AcpiUtDeleteInternalObj (
 
             AcpiUtDeleteObjectDesc (SecondDesc);
         }
+        if (Object->Field.InternalPccBuffer)
+        {
+            ACPI_FREE(Object->Field.InternalPccBuffer);
+        }
+
         break;
 
     case ACPI_TYPE_BUFFER_FIELD:
index 1082009..7677894 100644 (file)
@@ -245,19 +245,19 @@ AcpiUtPrefixedNamespaceError (
     case AE_ALREADY_EXISTS:
 
         AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
-        Message = "Failure creating";
+        Message = "Failure creating named object";
         break;
 
     case AE_NOT_FOUND:
 
         AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
-        Message = "Could not resolve";
+        Message = "Could not resolve symbol";
         break;
 
     default:
 
         AcpiOsPrintf (ACPI_MSG_ERROR);
-        Message = "Failure resolving";
+        Message = "Failure resolving symbol";
         break;
     }
 
@@ -392,7 +392,8 @@ AcpiUtMethodError (
     }
 
     AcpiNsPrintNodePathname (Node, Message);
-    AcpiOsPrintf (", %s", AcpiFormatException (MethodStatus));
+    AcpiOsPrintf (" due to previous error (%s)",
+        AcpiFormatException (MethodStatus));
 
     ACPI_MSG_SUFFIX;
     ACPI_MSG_REDIRECT_END;
index 9abd48a..ac43a84 100644 (file)
@@ -971,7 +971,7 @@ Bus_PDO_QueryResources(
                     ResourceDescriptor->Type = CmResourceTypeInterrupt;
 
                     ResourceDescriptor->ShareDisposition =
-                    (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
+                    (irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
                     ResourceDescriptor->Flags =
                     (irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
                     ResourceDescriptor->u.Interrupt.Level =
@@ -990,7 +990,7 @@ Bus_PDO_QueryResources(
                     ResourceDescriptor->Type = CmResourceTypeInterrupt;
 
                     ResourceDescriptor->ShareDisposition =
-                    (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
+                    (irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
                     ResourceDescriptor->Flags =
                     (irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
                     ResourceDescriptor->u.Interrupt.Level =
@@ -1445,7 +1445,7 @@ Bus_PDO_QueryResourceRequirements(
                 {
                     RequirementDescriptor->Option = (i == 0) ? IO_RESOURCE_PREFERRED : IO_RESOURCE_ALTERNATIVE;
                     RequirementDescriptor->Type = CmResourceTypeInterrupt;
-                    RequirementDescriptor->ShareDisposition = (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
+                    RequirementDescriptor->ShareDisposition = (irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
                     RequirementDescriptor->Flags =(irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
                     RequirementDescriptor->u.Interrupt.MinimumVector =
                     RequirementDescriptor->u.Interrupt.MaximumVector = irq_data->Interrupts[i];
@@ -1461,7 +1461,7 @@ Bus_PDO_QueryResourceRequirements(
                 {
                     RequirementDescriptor->Option = (i == 0) ? IO_RESOURCE_PREFERRED : IO_RESOURCE_ALTERNATIVE;
                     RequirementDescriptor->Type = CmResourceTypeInterrupt;
-                    RequirementDescriptor->ShareDisposition = (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
+                    RequirementDescriptor->ShareDisposition = (irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
                     RequirementDescriptor->Flags =(irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
                     RequirementDescriptor->u.Interrupt.MinimumVector =
                     RequirementDescriptor->u.Interrupt.MaximumVector = irq_data->Interrupts[i];