summaryrefslogtreecommitdiff
path: root/source/compiler/aslload.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2019-12-13 16:51:08 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2019-12-13 16:51:08 +0000
commit856462eaaec9052a60d62b66076257e7fad337c7 (patch)
treef331b79154052fd6dc5f70c176975966370af8d9 /source/compiler/aslload.c
parent858f47305dae045d81f39451ade697ba99b3266f (diff)
Notes
Diffstat (limited to 'source/compiler/aslload.c')
-rw-r--r--source/compiler/aslload.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c
index db6c2d41eeeff..6e3d7e7d99eb3 100644
--- a/source/compiler/aslload.c
+++ b/source/compiler/aslload.c
@@ -357,7 +357,7 @@ LdLoadFieldElements (
* The name already exists in this scope
* But continue processing the elements
*/
- AslDualParseOpError (ASL_WARNING, ASL_MSG_NAME_EXISTS, Child,
+ AslDualParseOpError (ASL_ERROR, ASL_MSG_NAME_EXISTS, Child,
Child->Asl.Value.String, ASL_MSG_FOUND_HERE, Node->Op,
Node->Op->Asl.ExternalName);
}
@@ -986,12 +986,19 @@ FinishNode:
Op->Asl.Node = Node;
Node->Op = Op;
- /* Set the actual data type if appropriate (EXTERNAL term only) */
-
+ /*
+ * Set the actual data type if appropriate (EXTERNAL term only)
+ * As of 11/19/2019, ASL External() does not support parameter
+ * counts. When an External method is loaded, the parameter count is
+ * unknown setting Node->Value to ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS
+ * indicates that the parameter count for this method is unknown.
+ * This information is used in ASL cross reference to help determine the
+ * parameter count through method calls.
+ */
if (ActualObjectType != ACPI_TYPE_ANY)
{
Node->Type = (UINT8) ActualObjectType;
- Node->Value = ASL_EXTERNAL_METHOD;
+ Node->Value = ASL_EXTERNAL_METHOD_UNKNOWN_PARAMS;
}
if (Op->Asl.ParseOpcode == PARSEOP_METHOD)