Module Name:    src
Committed By:   christos
Date:           Sat Aug 18 14:17:56 UTC 2018

Modified Files:
        src/sys/external/bsd/acpica/dist/compiler: aslload.c asloptions.c
        src/sys/external/bsd/acpica/dist/debugger: dbinput.c dbmethod.c
            dbnames.c
        src/sys/external/bsd/acpica/dist/executer: exconfig.c
        src/sys/external/bsd/acpica/dist/hardware: hwregs.c hwsleep.c
            hwxfsleep.c
        src/sys/external/bsd/acpica/dist/include: acdisasm.h acexcep.h
            aclocal.h acnamesp.h acoutput.h acpixf.h acutils.h
        src/sys/external/bsd/acpica/dist/namespace: nsaccess.c nsdump.c
            nseval.c nsinit.c
        src/sys/external/bsd/acpica/dist/tables: tbdata.c
        src/sys/external/bsd/acpica/dist/utilities: utdelete.c

Log Message:
merge conflicts


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 \
    src/sys/external/bsd/acpica/dist/compiler/aslload.c
cvs rdiff -u -r1.7 -r1.8 \
    src/sys/external/bsd/acpica/dist/compiler/asloptions.c
cvs rdiff -u -r1.15 -r1.16 \
    src/sys/external/bsd/acpica/dist/debugger/dbinput.c
cvs rdiff -u -r1.10 -r1.11 \
    src/sys/external/bsd/acpica/dist/debugger/dbmethod.c \
    src/sys/external/bsd/acpica/dist/debugger/dbnames.c
cvs rdiff -u -r1.12 -r1.13 \
    src/sys/external/bsd/acpica/dist/executer/exconfig.c
cvs rdiff -u -r1.6 -r1.7 src/sys/external/bsd/acpica/dist/hardware/hwregs.c
cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/acpica/dist/hardware/hwsleep.c
cvs rdiff -u -r1.10 -r1.11 \
    src/sys/external/bsd/acpica/dist/hardware/hwxfsleep.c
cvs rdiff -u -r1.16 -r1.17 \
    src/sys/external/bsd/acpica/dist/include/acdisasm.h \
    src/sys/external/bsd/acpica/dist/include/aclocal.h
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/acpica/dist/include/acexcep.h
cvs rdiff -u -r1.13 -r1.14 \
    src/sys/external/bsd/acpica/dist/include/acnamesp.h
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/acpica/dist/include/acoutput.h
cvs rdiff -u -r1.19 -r1.20 src/sys/external/bsd/acpica/dist/include/acpixf.h
cvs rdiff -u -r1.17 -r1.18 src/sys/external/bsd/acpica/dist/include/acutils.h
cvs rdiff -u -r1.14 -r1.15 \
    src/sys/external/bsd/acpica/dist/namespace/nsaccess.c \
    src/sys/external/bsd/acpica/dist/namespace/nsinit.c
cvs rdiff -u -r1.12 -r1.13 \
    src/sys/external/bsd/acpica/dist/namespace/nsdump.c
cvs rdiff -u -r1.11 -r1.12 \
    src/sys/external/bsd/acpica/dist/namespace/nseval.c
cvs rdiff -u -r1.10 -r1.11 src/sys/external/bsd/acpica/dist/tables/tbdata.c
cvs rdiff -u -r1.1.1.10 -r1.2 \
    src/sys/external/bsd/acpica/dist/utilities/utdelete.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/acpica/dist/compiler/aslload.c
diff -u src/sys/external/bsd/acpica/dist/compiler/aslload.c:1.11 src/sys/external/bsd/acpica/dist/compiler/aslload.c:1.12
--- src/sys/external/bsd/acpica/dist/compiler/aslload.c:1.11	Fri May  4 20:12:15 2018
+++ src/sys/external/bsd/acpica/dist/compiler/aslload.c	Sat Aug 18 10:17:55 2018
@@ -125,7 +125,11 @@ LdLoadNamespace (
 
     /* Dump the namespace if debug is enabled */
 
-    AcpiNsDumpTables (ACPI_NS_ALL, ACPI_UINT32_MAX);
+    if (AcpiDbgLevel & ACPI_LV_TABLES)
+    {
+        AcpiNsDumpTables (ACPI_NS_ALL, ACPI_UINT32_MAX);
+    }
+
     ACPI_FREE (WalkState);
     return (AE_OK);
 }
@@ -209,8 +213,7 @@ LdLoadFieldElements (
                     return (Status);
                 }
                 else if (Status == AE_ALREADY_EXISTS &&
-                    (Node->Flags & ANOBJ_IS_EXTERNAL) &&
-                    Node->OwnerId != WalkState->OwnerId)
+                    (Node->Flags & ANOBJ_IS_EXTERNAL))
                 {
                     Node->Type = (UINT8) ACPI_TYPE_LOCAL_REGION_FIELD;
                 }
@@ -362,7 +365,6 @@ LdNamespace1Begin (
     ACPI_PARSE_OBJECT       *Arg;
     UINT32                  i;
     BOOLEAN                 ForceNewScope = FALSE;
-    ACPI_OWNER_ID           OwnerId = 0;
     const ACPI_OPCODE_INFO  *OpInfo;
     ACPI_PARSE_OBJECT       *ParentOp;
 
@@ -373,23 +375,6 @@ LdNamespace1Begin (
     ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op %p [%s]\n",
         Op, Op->Asl.ParseOpName));
 
-    if (Op->Asl.ParseOpcode == PARSEOP_DEFINITION_BLOCK)
-    {
-        /*
-         * Allocate an OwnerId for this block. This helps identify the owners
-         * of each namespace node. This is used in determining whether if
-         * certain external declarations cause redefinition errors.
-         */
-        Status = AcpiUtAllocateOwnerId (&OwnerId);
-        WalkState->OwnerId = OwnerId;
-        if (ACPI_FAILURE (Status))
-        {
-            AslCoreSubsystemError (Op, Status,
-                "Failure to allocate owner ID to this definition block.", FALSE);
-            return_ACPI_STATUS (Status);
-        }
-    }
-
     /*
      * We are only interested in opcodes that have an associated name
      * (or multiple names)
@@ -765,9 +750,7 @@ LdNamespace1Begin (
             {
                 /*
                  * Allow one create on an object or segment that was
-                 * previously declared External only if WalkState->OwnerId and
-                 * Node->OwnerId are different (meaning that the current WalkState
-                 * and the Node are in different tables).
+                 * previously declared External
                  */
                 Node->Flags &= ~ANOBJ_IS_EXTERNAL;
                 Node->Type = (UINT8) ObjectType;
@@ -784,18 +767,6 @@ LdNamespace1Begin (
                 }
 
                 Status = AE_OK;
-
-                if (Node->OwnerId == WalkState->OwnerId &&
-                    !(Node->Flags & IMPLICIT_EXTERNAL))
-                {
-                    AslDualParseOpError (ASL_WARNING, ASL_MSG_EXTERN_COLLISION, Op,
-                        Op->Asl.ExternalName, ASL_MSG_EXTERN_FOUND_HERE, Node->Op,
-                        Node->Op->Asl.ExternalName);
-                }
-                if (Node->Flags & IMPLICIT_EXTERNAL)
-                {
-                    Node->Flags &= ~IMPLICIT_EXTERNAL;
-                }
             }
             else if (!(Node->Flags & ANOBJ_IS_EXTERNAL) &&
                      (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL))
@@ -803,53 +774,15 @@ LdNamespace1Begin (
                 /*
                  * Allow externals in same scope as the definition of the
                  * actual object. Similar to C. Allows multiple definition
-                 * blocks that refer to each other in the same file. However,
-                 * do not allow name declaration and an external declaration
-                 * within the same table. This is considered a re-declaration.
+                 * blocks that refer to each other in the same file.
                  */
                 Status = AE_OK;
-
-                if (Node->OwnerId == WalkState->OwnerId)
-                {
-                    AslDualParseOpError (ASL_WARNING, ASL_MSG_EXTERN_COLLISION, Op,
-                        Op->Asl.ExternalName, ASL_MSG_EXTERN_FOUND_HERE, Node->Op,
-                        Node->Op->Asl.ExternalName);
-                }
             }
             else if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
                      (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
                      (ObjectType == ACPI_TYPE_ANY))
             {
-                /*
-                 * Allow update of externals of unknown type.
-                 * In the case that multiple definition blocks are being
-                 * parsed, updating the OwnerId allows enables subsequent calls
-                 * of this method to understand which table the most recent
-                 * external declaration was seen. Without this OwnerId update,
-                 * code like the following is allowed to compile:
-                 *
-                 * DefinitionBlock("externtest.aml", "DSDT", 0x02, "Intel", "Many", 0x00000001)
-                 * {
-                 *     External(ERRS,methodobj)
-                 *     Method (MAIN)
-                 *     {
-                 *         Name(NUM2, 0)
-                 *         ERRS(1,2,3)
-                 *     }
-                 * }
-                 *
-                 * DefinitionBlock("externtest.aml", "SSDT", 0x02, "Intel", "Many", 0x00000001)
-                 * {
-                 *     if (0)
-                 *     {
-                 *         External(ERRS,methodobj)
-                 *     }
-                 *     Method (ERRS,3)
-                 *     {}
-                 *
-                 * }
-                 */
-                Node->OwnerId = WalkState->OwnerId;
+                /* Allow update of externals of unknown type. */
 
                 if (AcpiNsOpensScope (ActualObjectType))
                 {

Index: src/sys/external/bsd/acpica/dist/compiler/asloptions.c
diff -u src/sys/external/bsd/acpica/dist/compiler/asloptions.c:1.7 src/sys/external/bsd/acpica/dist/compiler/asloptions.c:1.8
--- src/sys/external/bsd/acpica/dist/compiler/asloptions.c:1.7	Sat Apr  7 11:49:50 2018
+++ src/sys/external/bsd/acpica/dist/compiler/asloptions.c	Sat Aug 18 10:17:55 2018
@@ -972,7 +972,7 @@ AslDoResponseFile (
      * Process all lines in the response file. There must be one complete
      * option per line
      */
-    while (fgets (StringBuffer, ASL_MSG_BUFFER_SIZE, ResponseFile))
+    while (fgets (StringBuffer, ASL_STRING_BUFFER_SIZE, ResponseFile))
     {
         /* Compress all tokens, allowing us to use a single argv entry */
 

Index: src/sys/external/bsd/acpica/dist/debugger/dbinput.c
diff -u src/sys/external/bsd/acpica/dist/debugger/dbinput.c:1.15 src/sys/external/bsd/acpica/dist/debugger/dbinput.c:1.16
--- src/sys/external/bsd/acpica/dist/debugger/dbinput.c:1.15	Sat Apr  7 11:49:50 2018
+++ src/sys/external/bsd/acpica/dist/debugger/dbinput.c	Sat Aug 18 10:17:55 2018
@@ -861,7 +861,11 @@ AcpiDbCommandDispatch (
     case CMD_DISASSEMBLE:
     case CMD_DISASM:
 
+#ifdef ACPI_DISASSEMBLER
         (void) AcpiDbDisassembleMethod (AcpiGbl_DbArgs[1]);
+#else
+        AcpiOsPrintf ("The AML Disassembler is not configured/present\n");
+#endif
         break;
 
     case CMD_DUMP:
@@ -975,7 +979,11 @@ AcpiDbCommandDispatch (
 
     case CMD_LIST:
 
-        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);
+#ifdef ACPI_DISASSEMBLER
+        AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op);;
+#else
+        AcpiOsPrintf ("The AML Disassembler is not configured/present\n");
+#endif
         break;
 
     case CMD_LOCKS:

Index: src/sys/external/bsd/acpica/dist/debugger/dbmethod.c
diff -u src/sys/external/bsd/acpica/dist/debugger/dbmethod.c:1.10 src/sys/external/bsd/acpica/dist/debugger/dbmethod.c:1.11
--- src/sys/external/bsd/acpica/dist/debugger/dbmethod.c:1.10	Sat Apr  7 11:49:50 2018
+++ src/sys/external/bsd/acpica/dist/debugger/dbmethod.c	Sat Aug 18 10:17:55 2018
@@ -285,6 +285,7 @@ Cleanup:
 }
 
 
+#ifdef ACPI_DISASSEMBLER
 /*******************************************************************************
  *
  * FUNCTION:    AcpiDbDisassembleAml
@@ -318,9 +319,7 @@ AcpiDbDisassembleAml (
         NumStatements = strtoul (Statements, NULL, 0);
     }
 
-#ifdef ACPI_DISASSEMBLER
     AcpiDmDisassemble (NULL, Op, NumStatements);
-#endif
 }
 
 
@@ -403,8 +402,6 @@ AcpiDbDisassembleMethod (
     WalkState->ParseFlags |= ACPI_PARSE_DISASSEMBLE;
 
     Status = AcpiPsParseAml (WalkState);
-
-#ifdef ACPI_DISASSEMBLER
     (void) AcpiDmParseDeferredOps (Op);
 
     /* Now we can disassemble the method */
@@ -412,7 +409,6 @@ AcpiDbDisassembleMethod (
     AcpiGbl_DmOpt_Verbose = FALSE;
     AcpiDmDisassemble (NULL, Op, 0);
     AcpiGbl_DmOpt_Verbose = TRUE;
-#endif
 
     AcpiPsDeleteParseTree (Op);
 
@@ -423,6 +419,7 @@ AcpiDbDisassembleMethod (
     AcpiUtReleaseOwnerId (&ObjDesc->Method.OwnerId);
     return (AE_OK);
 }
+#endif
 
 
 /*******************************************************************************
Index: src/sys/external/bsd/acpica/dist/debugger/dbnames.c
diff -u src/sys/external/bsd/acpica/dist/debugger/dbnames.c:1.10 src/sys/external/bsd/acpica/dist/debugger/dbnames.c:1.11
--- src/sys/external/bsd/acpica/dist/debugger/dbnames.c:1.10	Fri May  4 20:12:15 2018
+++ src/sys/external/bsd/acpica/dist/debugger/dbnames.c	Sat Aug 18 10:17:55 2018
@@ -414,6 +414,7 @@ AcpiDbWalkAndMatchName (
     }
     else
     {
+        Info.Count = 0;
         Info.OwnerId = ACPI_OWNER_ID_MAX;
         Info.DebugLevel = ACPI_UINT32_MAX;
         Info.DisplayType = ACPI_DISPLAY_SUMMARY | ACPI_DISPLAY_SHORT;

Index: src/sys/external/bsd/acpica/dist/executer/exconfig.c
diff -u src/sys/external/bsd/acpica/dist/executer/exconfig.c:1.12 src/sys/external/bsd/acpica/dist/executer/exconfig.c:1.13
--- src/sys/external/bsd/acpica/dist/executer/exconfig.c:1.12	Sat Apr  7 11:49:50 2018
+++ src/sys/external/bsd/acpica/dist/executer/exconfig.c	Sat Aug 18 10:17:55 2018
@@ -233,6 +233,11 @@ AcpiExLoadTableOp (
         return_ACPI_STATUS (Status);
     }
 
+    /* Complete the initialization/resolution of package objects */
+
+    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
+        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
+
     /* Parameter Data (optional) */
 
     if (ParameterNode)
@@ -506,6 +511,11 @@ AcpiExLoadOp (
         return_ACPI_STATUS (Status);
     }
 
+    /* Complete the initialization/resolution of package objects */
+
+    Status = AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, ACPI_ROOT_OBJECT,
+        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
+
     /* Store the DdbHandle into the Target operand */
 
     Status = AcpiExStore (DdbHandle, Target, WalkState);
@@ -559,6 +569,17 @@ AcpiExUnloadTable (
         "Received request to unload an ACPI table"));
 
     /*
+     * May 2018: Unload is no longer supported for the following reasons:
+     * 1) A correct implementation on some hosts may not be possible.
+     * 2) Other ACPI implementations do not correctly/fully support it.
+     * 3) It requires host device driver support which does not exist.
+     *    (To properly support namespace unload out from underneath.)
+     * 4) This AML operator has never been seen in the field.
+     */
+    ACPI_EXCEPTION ((AE_INFO, AE_NOT_IMPLEMENTED,
+        "AML Unload operator is not supported"));
+
+    /*
      * Validate the handle
      * Although the handle is partially validated in AcpiExReconfiguration()
      * when it calls AcpiExResolveOperands(), the handle is more completely

Index: src/sys/external/bsd/acpica/dist/hardware/hwregs.c
diff -u src/sys/external/bsd/acpica/dist/hardware/hwregs.c:1.6 src/sys/external/bsd/acpica/dist/hardware/hwregs.c:1.7
--- src/sys/external/bsd/acpica/dist/hardware/hwregs.c:1.6	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/hardware/hwregs.c	Sat Aug 18 10:17:55 2018
@@ -616,13 +616,20 @@ AcpiHwRegisterRead (
     case ACPI_REGISTER_PM2_CONTROL:          /* 8-bit access */
 
         Status = AcpiHwRead (&Value64, &AcpiGbl_FADT.XPm2ControlBlock);
-        Value = (UINT32) Value64;
+        if (ACPI_SUCCESS (Status))
+        {
+            Value = (UINT32) Value64;
+        }
         break;
 
     case ACPI_REGISTER_PM_TIMER:             /* 32-bit access */
 
         Status = AcpiHwRead (&Value64, &AcpiGbl_FADT.XPmTimerBlock);
-        Value = (UINT32) Value64;
+        if (ACPI_SUCCESS (Status))
+        {
+            Value = (UINT32) Value64;
+        }
+
         break;
 
     case ACPI_REGISTER_SMI_COMMAND_BLOCK:    /* 8-bit access */

Index: src/sys/external/bsd/acpica/dist/hardware/hwsleep.c
diff -u src/sys/external/bsd/acpica/dist/hardware/hwsleep.c:1.7 src/sys/external/bsd/acpica/dist/hardware/hwsleep.c:1.8
--- src/sys/external/bsd/acpica/dist/hardware/hwsleep.c:1.7	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/hardware/hwsleep.c	Sat Aug 18 10:17:55 2018
@@ -90,17 +90,28 @@ AcpiHwLegacySleep (
         return_ACPI_STATUS (Status);
     }
 
-    /*
-     * 1) Disable all GPEs
-     * 2) Enable all wakeup GPEs
-     */
+    /* Disable all GPEs */
+
     Status = AcpiHwDisableAllGpes ();
     if (ACPI_FAILURE (Status))
     {
         return_ACPI_STATUS (Status);
     }
+    /*
+     * If the target sleep state is S5, clear all GPEs and fixed events too
+     */
+    if (SleepState == ACPI_STATE_S5)
+    {
+        Status = AcpiHwClearAcpiStatus();
+        if (ACPI_FAILURE (Status))
+        {
+            return_ACPI_STATUS (Status);
+        }
+    }
     AcpiGbl_SystemAwakeAndRunning = FALSE;
 
+    /* Enable all wakeup GPEs */
+
     Status = AcpiHwEnableAllWakeupGpes ();
     if (ACPI_FAILURE (Status))
     {

Index: src/sys/external/bsd/acpica/dist/hardware/hwxfsleep.c
diff -u src/sys/external/bsd/acpica/dist/hardware/hwxfsleep.c:1.10 src/sys/external/bsd/acpica/dist/hardware/hwxfsleep.c:1.11
--- src/sys/external/bsd/acpica/dist/hardware/hwxfsleep.c:1.10	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/hardware/hwxfsleep.c	Sat Aug 18 10:17:55 2018
@@ -76,17 +76,17 @@ AcpiHwSleepDispatch (
 
 static ACPI_SLEEP_FUNCTIONS         AcpiSleepDispatch[] =
 {
-    {ACPI_STRUCT_INIT (legacy_function,
+    {ACPI_STRUCT_INIT (LegacyFunction,
                        ACPI_HW_OPTIONAL_FUNCTION (AcpiHwLegacySleep)),
-     ACPI_STRUCT_INIT (extended_function,
+     ACPI_STRUCT_INIT (ExtendedFunction,
                        AcpiHwExtendedSleep) },
-    {ACPI_STRUCT_INIT (legacy_function,
+    {ACPI_STRUCT_INIT (LegacyFunction,
                        ACPI_HW_OPTIONAL_FUNCTION (AcpiHwLegacyWakePrep)),
-     ACPI_STRUCT_INIT (extended_function,
+     ACPI_STRUCT_INIT (ExtendedFunction,
                        AcpiHwExtendedWakePrep) },
-    {ACPI_STRUCT_INIT (legacy_function,
+    {ACPI_STRUCT_INIT (Legacy_function,
                        ACPI_HW_OPTIONAL_FUNCTION (AcpiHwLegacyWake)),
-     ACPI_STRUCT_INIT (extended_function,
+     ACPI_STRUCT_INIT (ExtendedFunction,
                        AcpiHwExtendedWake) }
 };
 

Index: src/sys/external/bsd/acpica/dist/include/acdisasm.h
diff -u src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.16 src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.17
--- src/sys/external/bsd/acpica/dist/include/acdisasm.h:1.16	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/include/acdisasm.h	Sat Aug 18 10:17:55 2018
@@ -341,6 +341,7 @@ extern ACPI_DMTABLE_INFO        AcpiDmTa
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3b[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort3c[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort4[];
+extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIort5[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortAcc[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortHdr[];
 extern ACPI_DMTABLE_INFO        AcpiDmTableInfoIortMap[];
Index: src/sys/external/bsd/acpica/dist/include/aclocal.h
diff -u src/sys/external/bsd/acpica/dist/include/aclocal.h:1.16 src/sys/external/bsd/acpica/dist/include/aclocal.h:1.17
--- src/sys/external/bsd/acpica/dist/include/aclocal.h:1.16	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/include/aclocal.h	Sat Aug 18 10:17:55 2018
@@ -218,8 +218,8 @@ typedef struct acpi_namespace_node
 #define ANOBJ_SUBTREE_HAS_INI           0x10    /* Used to optimize device initialization */
 #define ANOBJ_EVALUATED                 0x20    /* Set on first evaluation of node */
 #define ANOBJ_ALLOCATED_BUFFER          0x40    /* Method AML buffer is dynamic (InstallMethod) */
+#define ANOBJ_NODE_EARLY_INIT           0x80    /* AcpiExec only: Node was create via init file (-fi) */
 
-#define IMPLICIT_EXTERNAL               0x02    /* iASL only: This object created implicitly via External */
 #define ANOBJ_IS_EXTERNAL               0x08    /* iASL only: This object created via External() */
 #define ANOBJ_METHOD_NO_RETVAL          0x10    /* iASL only: Method has no return value */
 #define ANOBJ_METHOD_SOME_NO_RETVAL     0x20    /* iASL only: Method has at least one return value */

Index: src/sys/external/bsd/acpica/dist/include/acexcep.h
diff -u src/sys/external/bsd/acpica/dist/include/acexcep.h:1.9 src/sys/external/bsd/acpica/dist/include/acexcep.h:1.10
--- src/sys/external/bsd/acpica/dist/include/acexcep.h:1.9	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/include/acexcep.h	Sat Aug 18 10:17:55 2018
@@ -96,6 +96,13 @@ typedef struct acpi_exception_info
 
 #define AE_OK                           (ACPI_STATUS) 0x0000
 
+#define ACPI_ENV_EXCEPTION(Status)      (Status & AE_CODE_ENVIRONMENTAL)
+#define ACPI_AML_EXCEPTION(Status)      (Status & AE_CODE_AML)
+#define ACPI_PROG_EXCEPTION(Status)     (Status & AE_CODE_PROGRAMMER)
+#define ACPI_TABLE_EXCEPTION(Status)    (Status & AE_CODE_ACPI_TABLES)
+#define ACPI_CNTL_EXCEPTION(Status)     (Status & AE_CODE_CONTROL)
+
+
 /*
  * Environmental exceptions
  */

Index: src/sys/external/bsd/acpica/dist/include/acnamesp.h
diff -u src/sys/external/bsd/acpica/dist/include/acnamesp.h:1.13 src/sys/external/bsd/acpica/dist/include/acnamesp.h:1.14
--- src/sys/external/bsd/acpica/dist/include/acnamesp.h:1.13	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/include/acnamesp.h	Sat Aug 18 10:17:55 2018
@@ -60,14 +60,15 @@
 /* Flags for AcpiNsLookup, AcpiNsSearchAndEnter */
 
 #define ACPI_NS_NO_UPSEARCH         0
-#define ACPI_NS_SEARCH_PARENT       0x01
-#define ACPI_NS_DONT_OPEN_SCOPE     0x02
-#define ACPI_NS_NO_PEER_SEARCH      0x04
-#define ACPI_NS_ERROR_IF_FOUND      0x08
-#define ACPI_NS_PREFIX_IS_SCOPE     0x10
-#define ACPI_NS_EXTERNAL            0x20
-#define ACPI_NS_TEMPORARY           0x40
-#define ACPI_NS_OVERRIDE_IF_FOUND   0x80
+#define ACPI_NS_SEARCH_PARENT       0x0001
+#define ACPI_NS_DONT_OPEN_SCOPE     0x0002
+#define ACPI_NS_NO_PEER_SEARCH      0x0004
+#define ACPI_NS_ERROR_IF_FOUND      0x0008
+#define ACPI_NS_PREFIX_IS_SCOPE     0x0010
+#define ACPI_NS_EXTERNAL            0x0020
+#define ACPI_NS_TEMPORARY           0x0040
+#define ACPI_NS_OVERRIDE_IF_FOUND   0x0080
+#define ACPI_NS_EARLY_INIT          0x0100
 
 /* Flags for AcpiNsWalkNamespace */
 
@@ -96,6 +97,12 @@ ACPI_STATUS
 AcpiNsInitializeDevices (
     UINT32                  Flags);
 
+ACPI_STATUS
+AcpiNsInitOnePackage (
+    ACPI_HANDLE             ObjHandle,
+    UINT32                  Level,
+    void                    *Context,
+    void                    **ReturnValue);
 
 /*
  * nsload -  Namespace loading

Index: src/sys/external/bsd/acpica/dist/include/acoutput.h
diff -u src/sys/external/bsd/acpica/dist/include/acoutput.h:1.8 src/sys/external/bsd/acpica/dist/include/acoutput.h:1.9
--- src/sys/external/bsd/acpica/dist/include/acoutput.h:1.8	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/include/acoutput.h	Sat Aug 18 10:17:55 2018
@@ -115,7 +115,8 @@
 #define ACPI_LV_ALLOCATIONS         0x00100000
 #define ACPI_LV_FUNCTIONS           0x00200000
 #define ACPI_LV_OPTIMIZATIONS       0x00400000
-#define ACPI_LV_VERBOSITY2          0x00700000 | ACPI_LV_VERBOSITY1
+#define ACPI_LV_PARSE_TREES         0x00800000
+#define ACPI_LV_VERBOSITY2          0x00F00000 | ACPI_LV_VERBOSITY1
 #define ACPI_LV_ALL                 ACPI_LV_VERBOSITY2
 
 /* Trace verbosity level 3 [Threading, I/O, and Interrupts] */
@@ -167,6 +168,7 @@
 #define ACPI_DB_TABLES              ACPI_DEBUG_LEVEL (ACPI_LV_TABLES)
 #define ACPI_DB_FUNCTIONS           ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS)
 #define ACPI_DB_OPTIMIZATIONS       ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS)
+#define ACPI_DB_PARSE_TREES         ACPI_DEBUG_LEVEL (ACPI_LV_PARSE_TREES)
 #define ACPI_DB_VALUES              ACPI_DEBUG_LEVEL (ACPI_LV_VALUES)
 #define ACPI_DB_OBJECTS             ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS)
 #define ACPI_DB_ALLOCATIONS         ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS)

Index: src/sys/external/bsd/acpica/dist/include/acpixf.h
diff -u src/sys/external/bsd/acpica/dist/include/acpixf.h:1.19 src/sys/external/bsd/acpica/dist/include/acpixf.h:1.20
--- src/sys/external/bsd/acpica/dist/include/acpixf.h:1.19	Fri May  4 20:12:15 2018
+++ src/sys/external/bsd/acpica/dist/include/acpixf.h	Sat Aug 18 10:17:55 2018
@@ -46,7 +46,7 @@
 
 /* Current ACPICA subsystem version in YYYYMMDD format */
 
-#define ACPI_CA_VERSION                 0x20180427
+#define ACPI_CA_VERSION                 0x20180810
 
 #include "acconfig.h"
 #include "actypes.h"

Index: src/sys/external/bsd/acpica/dist/include/acutils.h
diff -u src/sys/external/bsd/acpica/dist/include/acutils.h:1.17 src/sys/external/bsd/acpica/dist/include/acutils.h:1.18
--- src/sys/external/bsd/acpica/dist/include/acutils.h:1.17	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/include/acutils.h	Sat Aug 18 10:17:55 2018
@@ -254,6 +254,10 @@ BOOLEAN
 AcpiUtDetectHexPrefix (
     char                    **String);
 
+void
+AcpiUtRemoveHexPrefix (
+    char                    **String);
+
 BOOLEAN
 AcpiUtDetectOctalPrefix (
     char                    **String);

Index: src/sys/external/bsd/acpica/dist/namespace/nsaccess.c
diff -u src/sys/external/bsd/acpica/dist/namespace/nsaccess.c:1.14 src/sys/external/bsd/acpica/dist/namespace/nsaccess.c:1.15
--- src/sys/external/bsd/acpica/dist/namespace/nsaccess.c:1.14	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/namespace/nsaccess.c	Sat Aug 18 10:17:56 2018
@@ -616,6 +616,15 @@ AcpiNsLookup (
                     CurrentNode));
             }
 
+#ifdef ACPI_EXEC_APP
+            if ((Status == AE_ALREADY_EXISTS) &&
+                (ThisNode->Flags & ANOBJ_NODE_EARLY_INIT))
+            {
+                ThisNode->Flags &= ~ANOBJ_NODE_EARLY_INIT;
+                Status = AE_OK;
+            }
+#endif
+
 #ifdef ACPI_ASL_COMPILER
             /*
              * If this ACPI name already exists within the namespace as an
@@ -673,13 +682,6 @@ AcpiNsLookup (
 
         else
         {
-#ifdef ACPI_ASL_COMPILER
-            if (!AcpiGbl_DisasmFlag && (ThisNode->Flags & ANOBJ_IS_EXTERNAL))
-            {
-                ThisNode->Flags &= ~IMPLICIT_EXTERNAL;
-            }
-#endif
-
             /*
              * Sanity typecheck of the target object:
              *
@@ -744,6 +746,13 @@ AcpiNsLookup (
         }
     }
 
+#ifdef ACPI_EXEC_APP
+    if (Flags & ACPI_NS_EARLY_INIT)
+    {
+        ThisNode->Flags |= ANOBJ_NODE_EARLY_INIT;
+    }
+#endif
+
     *ReturnNode = ThisNode;
     return_ACPI_STATUS (AE_OK);
 }
Index: src/sys/external/bsd/acpica/dist/namespace/nsinit.c
diff -u src/sys/external/bsd/acpica/dist/namespace/nsinit.c:1.14 src/sys/external/bsd/acpica/dist/namespace/nsinit.c:1.15
--- src/sys/external/bsd/acpica/dist/namespace/nsinit.c:1.14	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/namespace/nsinit.c	Sat Aug 18 10:17:56 2018
@@ -300,6 +300,65 @@ ErrorExit:
 
 /*******************************************************************************
  *
+ * FUNCTION:    AcpiNsInitOnePackage
+ *
+ * PARAMETERS:  ObjHandle       - Node
+ *              Level           - Current nesting level
+ *              Context         - Not used
+ *              ReturnValue     - Not used
+ *
+ * RETURN:      Status
+ *
+ * DESCRIPTION: Callback from AcpiWalkNamespace. Invoked for every package
+ *              within the namespace. Used during dynamic load of an SSDT.
+ *
+ ******************************************************************************/
+
+ACPI_STATUS
+AcpiNsInitOnePackage (
+    ACPI_HANDLE             ObjHandle,
+    UINT32                  Level,
+    void                    *Context,
+    void                    **ReturnValue)
+{
+    ACPI_STATUS             Status;
+    ACPI_OPERAND_OBJECT     *ObjDesc;
+    ACPI_NAMESPACE_NODE     *Node = (ACPI_NAMESPACE_NODE *) ObjHandle;
+
+
+    ObjDesc = AcpiNsGetAttachedObject (Node);
+    if (!ObjDesc)
+    {
+        return (AE_OK);
+    }
+
+    /* Exit if package is already initialized */
+
+    if (ObjDesc->Package.Flags & AOPOBJ_DATA_VALID)
+    {
+        return (AE_OK);
+    }
+
+    Status = AcpiDsGetPackageArguments (ObjDesc);
+    if (ACPI_FAILURE (Status))
+    {
+        return (AE_OK);
+    }
+
+    Status = AcpiUtWalkPackageTree (ObjDesc, NULL, AcpiDsInitPackageElement,
+        NULL);
+    if (ACPI_FAILURE (Status))
+    {
+        return (AE_OK);
+    }
+
+    ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
+    return (AE_OK);
+}
+
+
+/*******************************************************************************
+ *
  * FUNCTION:    AcpiNsInitOneObject
  *
  * PARAMETERS:  ObjHandle       - Node
@@ -425,27 +484,10 @@ AcpiNsInitOneObject (
 
     case ACPI_TYPE_PACKAGE:
 
-        Info->PackageInit++;
-        Status = AcpiDsGetPackageArguments (ObjDesc);
-        if (ACPI_FAILURE (Status))
-        {
-            break;
-        }
-
-        ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
-            "%s: Completing resolution of Package elements\n",
-            ACPI_GET_FUNCTION_NAME));
-
-        /*
-         * Resolve all named references in package objects (and all
-         * sub-packages). This action has been deferred until the entire
-         * namespace has been loaded, in order to support external and
-         * forward references from individual package elements (05/2017).
-         */
-        Status = AcpiUtWalkPackageTree (ObjDesc, NULL,
-            AcpiDsInitPackageElement, NULL);
+        /* Complete the initialization/resolution of the package object */
 
-        ObjDesc->Package.Flags |= AOPOBJ_DATA_VALID;
+        Info->PackageInit++;
+        Status = AcpiNsInitOnePackage (ObjHandle, Level, NULL, NULL);
         break;
 
     default:

Index: src/sys/external/bsd/acpica/dist/namespace/nsdump.c
diff -u src/sys/external/bsd/acpica/dist/namespace/nsdump.c:1.12 src/sys/external/bsd/acpica/dist/namespace/nsdump.c:1.13
--- src/sys/external/bsd/acpica/dist/namespace/nsdump.c:1.12	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/namespace/nsdump.c	Sat Aug 18 10:17:56 2018
@@ -184,6 +184,7 @@ AcpiNsDumpPathname (
 }
 #endif
 
+
 /*******************************************************************************
  *
  * FUNCTION:    AcpiNsDumpOneObject
@@ -242,6 +243,7 @@ AcpiNsDumpOneObject (
     }
 
     Type = ThisNode->Type;
+    Info->Count++;
 
     /* Check if the owner matches */
 
@@ -706,6 +708,7 @@ AcpiNsDumpObjects (
         return;
     }
 
+    Info.Count = 0;
     Info.DebugLevel = ACPI_LV_TABLES;
     Info.OwnerId = OwnerId;
     Info.DisplayType = DisplayType;
@@ -714,6 +717,7 @@ AcpiNsDumpObjects (
         ACPI_NS_WALK_NO_UNLOCK | ACPI_NS_WALK_TEMP_NODES,
         AcpiNsDumpOneObject, NULL, (void *) &Info, NULL);
 
+    AcpiOsPrintf ("\nNamespace node count: %u\n\n", Info.Count);
     (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
 }
 

Index: src/sys/external/bsd/acpica/dist/namespace/nseval.c
diff -u src/sys/external/bsd/acpica/dist/namespace/nseval.c:1.11 src/sys/external/bsd/acpica/dist/namespace/nseval.c:1.12
--- src/sys/external/bsd/acpica/dist/namespace/nseval.c:1.11	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/namespace/nseval.c	Sat Aug 18 10:17:56 2018
@@ -320,11 +320,11 @@ AcpiNsEvaluate (
 
         Status = AE_OK;
     }
-    else if (ACPI_FAILURE(Status)) 
+    else if (ACPI_FAILURE(Status))
     {
         /* If ReturnObject exists, delete it */
 
-        if (Info->ReturnObject) 
+        if (Info->ReturnObject)
         {
             AcpiUtRemoveReference (Info->ReturnObject);
             Info->ReturnObject = NULL;

Index: src/sys/external/bsd/acpica/dist/tables/tbdata.c
diff -u src/sys/external/bsd/acpica/dist/tables/tbdata.c:1.10 src/sys/external/bsd/acpica/dist/tables/tbdata.c:1.11
--- src/sys/external/bsd/acpica/dist/tables/tbdata.c:1.10	Sat Apr  7 11:49:51 2018
+++ src/sys/external/bsd/acpica/dist/tables/tbdata.c	Sat Aug 18 10:17:56 2018
@@ -603,9 +603,9 @@ AcpiTbVerifyTempTable (
             {
                 if (Status != AE_CTRL_TERMINATE)
                 {
-                    ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY,
+                    ACPI_EXCEPTION ((AE_INFO, Status,
                         "%4.4s 0x%8.8X%8.8X"
-                        " Table is duplicated",
+                        " Table is already loaded",
                         AcpiUtValidNameseg (TableDesc->Signature.Ascii) ?
                             TableDesc->Signature.Ascii : "????",
                         ACPI_FORMAT_UINT64 (TableDesc->Address)));

Index: src/sys/external/bsd/acpica/dist/utilities/utdelete.c
diff -u src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.1.1.10 src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.2
--- src/sys/external/bsd/acpica/dist/utilities/utdelete.c:1.1.1.10	Sat Aug 18 05:10:55 2018
+++ src/sys/external/bsd/acpica/dist/utilities/utdelete.c	Sat Aug 18 10:17:56 2018
@@ -412,7 +412,7 @@ AcpiUtUpdateRefCount (
     UINT16                  OriginalCount;
     UINT16                  NewCount = 0;
     ACPI_CPU_FLAGS          LockFlags;
-    char                    *Message;
+    const char              *Message;
 
 
     ACPI_FUNCTION_NAME (UtUpdateRefCount);

Reply via email to