summaryrefslogtreecommitdiff
path: root/source/components
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2018-12-13 19:04:25 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2018-12-13 19:04:25 +0000
commitd28459aaaf532373b12c80aa5b869f8b591954e7 (patch)
tree22941844047df08d63d286d7dfbf38f3a8f79e0f /source/components
parent4d4b15a0e8524e15826ac932bd05252dbd246422 (diff)
Notes
Diffstat (limited to 'source/components')
-rw-r--r--source/components/dispatcher/dsmethod.c12
-rw-r--r--source/components/dispatcher/dsobject.c10
-rw-r--r--source/components/dispatcher/dspkginit.c26
-rw-r--r--source/components/dispatcher/dsutils.c2
-rw-r--r--source/components/dispatcher/dswload.c6
-rw-r--r--source/components/dispatcher/dswload2.c6
-rw-r--r--source/components/dispatcher/dswstate.c2
-rw-r--r--source/components/executer/exconvrt.c49
-rw-r--r--source/components/executer/excreate.c2
-rw-r--r--source/components/executer/exoparg2.c6
-rw-r--r--source/components/executer/exserial.c20
-rw-r--r--source/components/executer/exutils.c2
-rw-r--r--source/components/namespace/nseval.c12
-rw-r--r--source/components/namespace/nsload.c2
-rw-r--r--source/components/namespace/nsparse.c10
-rw-r--r--source/components/parser/psloop.c2
-rw-r--r--source/components/parser/psparse.c12
-rw-r--r--source/components/parser/psxface.c6
-rw-r--r--source/components/utilities/utglobal.c3
-rw-r--r--source/components/utilities/utmisc.c3
-rw-r--r--source/components/utilities/utosi.c2
21 files changed, 127 insertions, 68 deletions
diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c
index 3db8010f7311..009151f91061 100644
--- a/source/components/dispatcher/dsmethod.c
+++ b/source/components/dispatcher/dsmethod.c
@@ -720,6 +720,8 @@ AcpiDsCallControlMethod (
goto Cleanup;
}
+ NextWalkState->MethodNestingDepth = ThisWalkState->MethodNestingDepth + 1;
+
/*
* Delete the operands on the previous walkstate operand stack
* (they were copied to new objects)
@@ -738,6 +740,16 @@ AcpiDsCallControlMethod (
"**** Begin nested execution of [%4.4s] **** WalkState=%p\n",
MethodNode->Name.Ascii, NextWalkState));
+ ThisWalkState->MethodPathname = AcpiNsGetNormalizedPathname (MethodNode, TRUE);
+ ThisWalkState->MethodIsNested = TRUE;
+
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: %*s%s\n", " Nested method call",
+ NextWalkState->MethodNestingDepth * 3, " ",
+ &ThisWalkState->MethodPathname[1]));
+
/* Invoke an internal method if necessary */
if (ObjDesc->Method.InfoFlags & ACPI_METHOD_INTERNAL_ONLY)
diff --git a/source/components/dispatcher/dsobject.c b/source/components/dispatcher/dsobject.c
index e9b7413a2feb..4ec23d466c48 100644
--- a/source/components/dispatcher/dsobject.c
+++ b/source/components/dispatcher/dsobject.c
@@ -161,7 +161,6 @@
ACPI_MODULE_NAME ("dsobject")
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiDsBuildInternalObject
@@ -460,7 +459,6 @@ AcpiDsCreateNode (
return_ACPI_STATUS (Status);
}
-#endif /* ACPI_NO_METHOD_EXECUTION */
/*******************************************************************************
@@ -571,9 +569,7 @@ AcpiDsInitObjectFromOp (
/* Truncate value if we are executing from a 32-bit ACPI table */
-#ifndef ACPI_NO_METHOD_EXECUTION
(void) AcpiExTruncateFor32bitTable (ObjDesc);
-#endif
break;
case AML_REVISION_OP:
@@ -594,7 +590,6 @@ AcpiDsInitObjectFromOp (
ObjDesc->Integer.Value = Op->Common.Value.Integer;
-#ifndef ACPI_NO_METHOD_EXECUTION
if (AcpiExTruncateFor32bitTable (ObjDesc))
{
/* Warn if we found a 64-bit constant in a 32-bit table */
@@ -604,7 +599,6 @@ AcpiDsInitObjectFromOp (
ACPI_FORMAT_UINT64 (Op->Common.Value.Integer),
(UINT32) ObjDesc->Integer.Value));
}
-#endif
break;
default:
@@ -642,12 +636,10 @@ AcpiDsInitObjectFromOp (
ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_FIRST_LOCAL_OP;
ObjDesc->Reference.Class = ACPI_REFCLASS_LOCAL;
-#ifndef ACPI_NO_METHOD_EXECUTION
Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_LOCAL,
ObjDesc->Reference.Value, WalkState,
ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,
&ObjDesc->Reference.Object));
-#endif
break;
case AML_TYPE_METHOD_ARGUMENT:
@@ -657,12 +649,10 @@ AcpiDsInitObjectFromOp (
ObjDesc->Reference.Value = ((UINT32) Opcode) - AML_FIRST_ARG_OP;
ObjDesc->Reference.Class = ACPI_REFCLASS_ARG;
-#ifndef ACPI_NO_METHOD_EXECUTION
Status = AcpiDsMethodDataGetNode (ACPI_REFCLASS_ARG,
ObjDesc->Reference.Value, WalkState,
ACPI_CAST_INDIRECT_PTR (ACPI_NAMESPACE_NODE,
&ObjDesc->Reference.Object));
-#endif
break;
default: /* Object name or Debug object */
diff --git a/source/components/dispatcher/dspkginit.c b/source/components/dispatcher/dspkginit.c
index 9e1cd6115fd4..1e7e7383a088 100644
--- a/source/components/dispatcher/dspkginit.c
+++ b/source/components/dispatcher/dspkginit.c
@@ -308,6 +308,32 @@ AcpiDsBuildInternalPackageObj (
{
if (Arg->Common.AmlOpcode == AML_INT_RETURN_VALUE_OP)
{
+ if (!Arg->Common.Node)
+ {
+ /*
+ * This is the case where an expression has returned a value.
+ * The use of expressions (TermArgs) within individual
+ * package elements is not supported by the AML interpreter,
+ * even though the ASL grammar supports it. Example:
+ *
+ * Name (INT1, 0x1234)
+ *
+ * Name (PKG3, Package () {
+ * Add (INT1, 0xAAAA0000)
+ * })
+ *
+ * 1) No known AML interpreter supports this type of construct
+ * 2) This fixes a fault if the construct is encountered
+ */
+ ACPI_EXCEPTION ((AE_INFO, AE_SUPPORT,
+ "Expressions within package elements are not supported"));
+
+ /* Cleanup the return object, it is not needed */
+
+ AcpiUtRemoveReference (WalkState->Results->Results.ObjDesc[0]);
+ return_ACPI_STATUS (AE_SUPPORT);
+ }
+
if (Arg->Common.Node->Type == ACPI_TYPE_METHOD)
{
/*
diff --git a/source/components/dispatcher/dsutils.c b/source/components/dispatcher/dsutils.c
index c03f9268f886..20a9e25602d4 100644
--- a/source/components/dispatcher/dsutils.c
+++ b/source/components/dispatcher/dsutils.c
@@ -209,7 +209,6 @@ AcpiDsClearImplicitReturn (
}
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiDsDoImplicitReturn
@@ -583,7 +582,6 @@ AcpiDsClearOperands (
WalkState->NumOperands = 0;
return_VOID;
}
-#endif
/*******************************************************************************
diff --git a/source/components/dispatcher/dswload.c b/source/components/dispatcher/dswload.c
index 91f5b3050042..db0f0e8596dd 100644
--- a/source/components/dispatcher/dswload.c
+++ b/source/components/dispatcher/dswload.c
@@ -221,12 +221,10 @@ AcpiDsInitCallbacks (
/* Execution pass */
-#ifndef ACPI_NO_METHOD_EXECUTION
WalkState->ParseFlags |= ACPI_PARSE_EXECUTE |
ACPI_PARSE_DELETE_TREE;
WalkState->DescendingCallback = AcpiDsExecBeginOp;
WalkState->AscendingCallback = AcpiDsExecEndOp;
-#endif
break;
default:
@@ -517,7 +515,7 @@ AcpiDsLoad1BeginOp (
/* Initialize the op */
-#if (defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY))
+#ifdef ACPI_CONSTANT_EVAL_ONLY
Op->Named.Path = Path;
#endif
@@ -580,7 +578,6 @@ AcpiDsLoad1EndOp (
ObjectType = WalkState->OpInfo->ObjectType;
-#ifndef ACPI_NO_METHOD_EXECUTION
if (WalkState->OpInfo->Flags & AML_FIELD)
{
/*
@@ -626,7 +623,6 @@ AcpiDsLoad1EndOp (
}
}
}
-#endif
if (Op->Common.AmlOpcode == AML_NAME_OP)
{
diff --git a/source/components/dispatcher/dswload2.c b/source/components/dispatcher/dswload2.c
index 4b6e41d8dd30..7387690e2a09 100644
--- a/source/components/dispatcher/dswload2.c
+++ b/source/components/dispatcher/dswload2.c
@@ -529,10 +529,8 @@ AcpiDsLoad2EndOp (
ACPI_NAMESPACE_NODE *Node;
ACPI_PARSE_OBJECT *Arg;
ACPI_NAMESPACE_NODE *NewNode;
-#ifndef ACPI_NO_METHOD_EXECUTION
UINT32 i;
UINT8 RegionSpace;
-#endif
ACPI_FUNCTION_TRACE (DsLoad2EndOp);
@@ -622,7 +620,6 @@ AcpiDsLoad2EndOp (
switch (WalkState->OpInfo->Type)
{
-#ifndef ACPI_NO_METHOD_EXECUTION
case AML_TYPE_CREATE_FIELD:
/*
@@ -718,13 +715,11 @@ AcpiDsLoad2EndOp (
}
break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
case AML_TYPE_NAMED_COMPLEX:
switch (Op->Common.AmlOpcode)
{
-#ifndef ACPI_NO_METHOD_EXECUTION
case AML_REGION_OP:
case AML_DATA_REGION_OP:
@@ -809,7 +804,6 @@ AcpiDsLoad2EndOp (
}
break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
default:
diff --git a/source/components/dispatcher/dswstate.c b/source/components/dispatcher/dswstate.c
index 7994cb12dd1c..409d7f71fa64 100644
--- a/source/components/dispatcher/dswstate.c
+++ b/source/components/dispatcher/dswstate.c
@@ -733,7 +733,7 @@ AcpiDsCreateWalkState (
/* Init the method args/local */
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
+#ifndef ACPI_CONSTANT_EVAL_ONLY
AcpiDsMethodDataInit (WalkState);
#endif
diff --git a/source/components/executer/exconvrt.c b/source/components/executer/exconvrt.c
index 5c58746e3a4d..a147ba214107 100644
--- a/source/components/executer/exconvrt.c
+++ b/source/components/executer/exconvrt.c
@@ -496,7 +496,7 @@ AcpiExConvertToAscii (
/* HexLength: 2 ascii hex chars per data byte */
- HexLength = ACPI_MUL_2 (DataWidth);
+ HexLength = (DataWidth * 2);
for (i = 0, j = (HexLength-1); i < HexLength; i++, j--)
{
/* Get one hex digit, most significant digits first */
@@ -539,7 +539,8 @@ AcpiExConvertToAscii (
*
* RETURN: Status
*
- * DESCRIPTION: Convert an ACPI Object to a string
+ * DESCRIPTION: Convert an ACPI Object to a string. Supports both implicit
+ * and explicit conversions and related rules.
*
******************************************************************************/
@@ -574,9 +575,11 @@ AcpiExConvertToString (
switch (Type)
{
case ACPI_EXPLICIT_CONVERT_DECIMAL:
-
- /* Make room for maximum decimal number */
-
+ /*
+ * From ToDecimalString, integer source.
+ *
+ * Make room for the maximum decimal number size
+ */
StringLength = ACPI_MAX_DECIMAL_DIGITS;
Base = 10;
break;
@@ -620,8 +623,10 @@ AcpiExConvertToString (
{
case ACPI_EXPLICIT_CONVERT_DECIMAL: /* Used by ToDecimalString */
/*
- * From ACPI: "If Data is a buffer, it is converted to a string of
- * decimal values separated by commas."
+ * Explicit conversion from the ToDecimalString ASL operator.
+ *
+ * From ACPI: "If the input is a buffer, it is converted to a
+ * a string of decimal values separated by commas."
*/
Base = 10;
@@ -648,20 +653,29 @@ AcpiExConvertToString (
case ACPI_IMPLICIT_CONVERT_HEX:
/*
+ * Implicit buffer-to-string conversion
+ *
* From the ACPI spec:
- *"The entire contents of the buffer are converted to a string of
+ * "The entire contents of the buffer are converted to a string of
* two-character hexadecimal numbers, each separated by a space."
+ *
+ * Each hex number is prefixed with 0x (11/2018)
*/
Separator = ' ';
- StringLength = (ObjDesc->Buffer.Length * 3);
+ StringLength = (ObjDesc->Buffer.Length * 5);
break;
- case ACPI_EXPLICIT_CONVERT_HEX: /* Used by ToHexString */
+ case ACPI_EXPLICIT_CONVERT_HEX:
/*
+ * Explicit conversion from the ToHexString ASL operator.
+ *
* From ACPI: "If Data is a buffer, it is converted to a string of
* hexadecimal values separated by commas."
+ *
+ * Each hex number is prefixed with 0x (11/2018)
*/
- StringLength = (ObjDesc->Buffer.Length * 3);
+ Separator = ',';
+ StringLength = (ObjDesc->Buffer.Length * 5);
break;
default:
@@ -692,9 +706,20 @@ AcpiExConvertToString (
*/
for (i = 0; i < ObjDesc->Buffer.Length; i++)
{
+ if (Base == 16)
+ {
+ /* Emit 0x prefix for explict/implicit hex conversion */
+
+ *NewBuf++ = '0';
+ *NewBuf++ = 'x';
+ }
+
NewBuf += AcpiExConvertToAscii (
(UINT64) ObjDesc->Buffer.Pointer[i], Base, NewBuf, 1);
- *NewBuf++ = Separator; /* each separated by a comma or space */
+
+ /* Each digit is separated by either a comma or space */
+
+ *NewBuf++ = Separator;
}
/*
diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c
index 524960c2f5cc..f4dd8298f4c4 100644
--- a/source/components/executer/excreate.c
+++ b/source/components/executer/excreate.c
@@ -161,7 +161,6 @@
ACPI_MODULE_NAME ("excreate")
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiExCreateAlias
@@ -573,7 +572,6 @@ AcpiExCreatePowerResource (
AcpiUtRemoveReference (ObjDesc);
return_ACPI_STATUS (Status);
}
-#endif
/*******************************************************************************
diff --git a/source/components/executer/exoparg2.c b/source/components/executer/exoparg2.c
index 73d0bd26cc39..0693dcbe2441 100644
--- a/source/components/executer/exoparg2.c
+++ b/source/components/executer/exoparg2.c
@@ -460,9 +460,9 @@ AcpiExOpcode_2A_1T_1R (
* NOTE: A length of zero is ok, and will create a zero-length, null
* terminated string.
*/
- while ((Length < Operand[0]->Buffer.Length) &&
- (Length < Operand[1]->Integer.Value) &&
- (Operand[0]->Buffer.Pointer[Length]))
+ while ((Length < Operand[0]->Buffer.Length) && /* Length of input buffer */
+ (Length < Operand[1]->Integer.Value) && /* Length operand */
+ (Operand[0]->Buffer.Pointer[Length])) /* Null terminator */
{
Length++;
}
diff --git a/source/components/executer/exserial.c b/source/components/executer/exserial.c
index 73f2aa4a3e12..553aedfb6312 100644
--- a/source/components/executer/exserial.c
+++ b/source/components/executer/exserial.c
@@ -445,14 +445,12 @@ AcpiExWriteSerialBus (
case ACPI_ADR_SPACE_SMBUS:
BufferLength = ACPI_SMBUS_BUFFER_SIZE;
- DataLength = ACPI_SMBUS_DATA_SIZE;
Function = ACPI_WRITE | (ObjDesc->Field.Attribute << 16);
break;
case ACPI_ADR_SPACE_IPMI:
BufferLength = ACPI_IPMI_BUFFER_SIZE;
- DataLength = ACPI_IPMI_DATA_SIZE;
Function = ACPI_WRITE;
break;
@@ -471,7 +469,6 @@ AcpiExWriteSerialBus (
/* Add header length to get the full size of the buffer */
BufferLength += ACPI_SERIAL_HEADER_SIZE;
- DataLength = SourceDesc->Buffer.Pointer[1];
Function = ACPI_WRITE | (AccessorType << 16);
break;
@@ -479,21 +476,6 @@ AcpiExWriteSerialBus (
return_ACPI_STATUS (AE_AML_INVALID_SPACE_ID);
}
-#if 0
-OBSOLETE?
- /* Check for possible buffer overflow */
-
- if (DataLength > SourceDesc->Buffer.Length)
- {
- ACPI_ERROR ((AE_INFO,
- "Length in buffer header (%u)(%u) is greater than "
- "the physical buffer length (%u) and will overflow",
- DataLength, BufferLength, SourceDesc->Buffer.Length));
-
- return_ACPI_STATUS (AE_AML_BUFFER_LIMIT);
- }
-#endif
-
/* Create the transfer/bidirectional/return buffer */
BufferDesc = AcpiUtCreateBufferObject (BufferLength);
@@ -505,6 +487,8 @@ OBSOLETE?
/* Copy the input buffer data to the transfer buffer */
Buffer = BufferDesc->Buffer.Pointer;
+ DataLength = (BufferLength < SourceDesc->Buffer.Length ?
+ BufferLength : SourceDesc->Buffer.Length);
memcpy (Buffer, SourceDesc->Buffer.Pointer, DataLength);
/* Lock entire transaction if requested */
diff --git a/source/components/executer/exutils.c b/source/components/executer/exutils.c
index a38ce940c481..06ad2b5f32b3 100644
--- a/source/components/executer/exutils.c
+++ b/source/components/executer/exutils.c
@@ -181,7 +181,6 @@ AcpiExDigitsNeeded (
UINT32 Base);
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiExEnterInterpreter
@@ -615,4 +614,3 @@ AcpiIsValidSpaceId (
return (TRUE);
}
-#endif
diff --git a/source/components/namespace/nseval.c b/source/components/namespace/nseval.c
index 8262d992fec5..0dbac5bf0f9c 100644
--- a/source/components/namespace/nseval.c
+++ b/source/components/namespace/nseval.c
@@ -259,6 +259,12 @@ AcpiNsEvaluate (
return_ACPI_STATUS (AE_NO_MEMORY);
}
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: %s (%s)\n", " Enter evaluation",
+ &Info->FullPathname[1], AcpiUtGetTypeName (Info->Node->Type)));
+
/* Count the number of arguments being passed in */
Info->ParamCount = 0;
@@ -445,6 +451,12 @@ AcpiNsEvaluate (
Info->RelativePathname));
Cleanup:
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: %s\n", " Exit evaluation",
+ &Info->FullPathname[1]));
+
/*
* Namespace was unlocked by the handling AcpiNs* function, so we
* just free the pathname and return
diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c
index 698d3a572326..68946074e18d 100644
--- a/source/components/namespace/nsload.c
+++ b/source/components/namespace/nsload.c
@@ -173,7 +173,6 @@ AcpiNsDeleteSubtree (
#endif
-#ifndef ACPI_NO_METHOD_EXECUTION
/*******************************************************************************
*
* FUNCTION: AcpiNsLoadTable
@@ -477,4 +476,3 @@ AcpiNsUnloadNamespace (
return_ACPI_STATUS (Status);
}
#endif
-#endif
diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c
index 8e86ee4c5de9..e781a4ded6b0 100644
--- a/source/components/namespace/nsparse.c
+++ b/source/components/namespace/nsparse.c
@@ -261,8 +261,18 @@ AcpiNsExecuteTable (
goto Cleanup;
}
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: (Definition Block level)\n", "Module-level evaluation"));
+
Status = AcpiPsExecuteTable (Info);
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION,
+ "%-26s: (Definition Block level)\n", "Module-level complete"));
+
Cleanup:
if (Info)
{
diff --git a/source/components/parser/psloop.c b/source/components/parser/psloop.c
index 9625834c56f6..1fa2c880ca43 100644
--- a/source/components/parser/psloop.c
+++ b/source/components/parser/psloop.c
@@ -580,7 +580,7 @@ AcpiPsParseLoop (
ParserState = &WalkState->ParserState;
WalkState->ArgTypes = 0;
-#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
+#ifndef ACPI_CONSTANT_EVAL_ONLY
if (WalkState->WalkType & ACPI_WALK_METHOD_RESTART)
{
diff --git a/source/components/parser/psparse.c b/source/components/parser/psparse.c
index 0ad62b771bef..378bfab5b212 100644
--- a/source/components/parser/psparse.c
+++ b/source/components/parser/psparse.c
@@ -637,6 +637,18 @@ AcpiPsParseAml (
"Completed one call to walk loop, %s State=%p\n",
AcpiFormatException (Status), WalkState));
+ if (WalkState->MethodPathname && WalkState->MethodIsNested)
+ {
+ /* Optional object evaluation log */
+
+ ACPI_DEBUG_PRINT_RAW ((ACPI_DB_EVALUATION, "%-26s: %*s%s\n",
+ " Exit nested method",
+ (WalkState->MethodNestingDepth + 1) * 3, " ",
+ &WalkState->MethodPathname[1]));
+
+ ACPI_FREE (WalkState->MethodPathname);
+ WalkState->MethodIsNested = FALSE;
+ }
if (Status == AE_CTRL_TRANSFER)
{
/*
diff --git a/source/components/parser/psxface.c b/source/components/parser/psxface.c
index 8516fe3a35df..54f54eab15cd 100644
--- a/source/components/parser/psxface.c
+++ b/source/components/parser/psxface.c
@@ -307,6 +307,9 @@ AcpiPsExecuteMethod (
goto Cleanup;
}
+ WalkState->MethodPathname = Info->FullPathname;
+ WalkState->MethodIsNested = FALSE;
+
if (Info->ObjDesc->Method.InfoFlags & ACPI_METHOD_MODULE_LEVEL)
{
WalkState->ParseFlags |= ACPI_PARSE_MODULE_LEVEL;
@@ -437,6 +440,9 @@ AcpiPsExecuteTable (
goto Cleanup;
}
+ WalkState->MethodPathname = Info->FullPathname;
+ WalkState->MethodIsNested = FALSE;
+
if (Info->ObjDesc->Method.InfoFlags & ACPI_METHOD_MODULE_LEVEL)
{
WalkState->ParseFlags |= ACPI_PARSE_MODULE_LEVEL;
diff --git a/source/components/utilities/utglobal.c b/source/components/utilities/utglobal.c
index a41c17da727b..d4cde4dbea99 100644
--- a/source/components/utilities/utglobal.c
+++ b/source/components/utilities/utglobal.c
@@ -235,10 +235,7 @@ const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
{"_REV", ACPI_TYPE_INTEGER, ACPI_CAST_PTR (char, 2)},
{"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
{"_GL_", ACPI_TYPE_MUTEX, ACPI_CAST_PTR (char, 1)},
-
-#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
{"_OSI", ACPI_TYPE_METHOD, ACPI_CAST_PTR (char, 1)},
-#endif
/* Table terminator */
diff --git a/source/components/utilities/utmisc.c b/source/components/utilities/utmisc.c
index 0e04aff06972..c6dbf915c513 100644
--- a/source/components/utilities/utmisc.c
+++ b/source/components/utilities/utmisc.c
@@ -217,7 +217,8 @@ AcpiUtIsAmlTable (
if (ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_DSDT) ||
ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_PSDT) ||
ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_SSDT) ||
- ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_OSDT))
+ ACPI_COMPARE_NAME (Table->Signature, ACPI_SIG_OSDT) ||
+ ACPI_IS_OEM_SIG (Table->Signature))
{
return (TRUE);
}
diff --git a/source/components/utilities/utosi.c b/source/components/utilities/utosi.c
index e63690786417..3713d033b7e7 100644
--- a/source/components/utilities/utosi.c
+++ b/source/components/utilities/utosi.c
@@ -217,6 +217,8 @@ static ACPI_INTERFACE_INFO AcpiDefaultSupportedInterfaces[] =
{"Windows 2016", NULL, 0, ACPI_OSI_WIN_10_RS1}, /* Windows 10 version 1607 - Added 12/2017 */
{"Windows 2017", NULL, 0, ACPI_OSI_WIN_10_RS2}, /* Windows 10 version 1703 - Added 12/2017 */
{"Windows 2017.2", NULL, 0, ACPI_OSI_WIN_10_RS3}, /* Windows 10 version 1709 - Added 02/2018 */
+ {"Windows 2018", NULL, 0, ACPI_OSI_WIN_10_RS4}, /* Windows 10 version 1803 - Added 11/2018 */
+ {"Windows 2018.2", NULL, 0, ACPI_OSI_WIN_10_RS5}, /* Windows 10 version 1809 - Added 11/2018 */
/* Feature Group Strings */