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);