summaryrefslogtreecommitdiff
path: root/source/compiler/aslexternal.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler/aslexternal.c')
-rw-r--r--source/compiler/aslexternal.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/compiler/aslexternal.c b/source/compiler/aslexternal.c
index a814efddd546..8e76aa7236c7 100644
--- a/source/compiler/aslexternal.c
+++ b/source/compiler/aslexternal.c
@@ -325,6 +325,7 @@ ExMoveExternals (
ACPI_PARSE_OBJECT *NextOp;
ACPI_PARSE_OBJECT *Prev;
ACPI_PARSE_OBJECT *Next;
+ char *ExternalName;
ACPI_OBJECT_TYPE ObjType;
UINT32 i;
@@ -345,6 +346,12 @@ ExMoveExternals (
*/
ExternalOp = NextOp->Asl.Child;
+ /* Get/set the fully qualified name */
+
+ ExternalName = AcpiNsGetNormalizedPathname (ExternalOp->Asl.Node, TRUE);
+ ExternalOp->Asl.ExternalName = ExternalName;
+ ExternalOp->Asl.Namepath = ExternalName;
+
/* Set line numbers (for listings, etc.) */
ExternalOp->Asl.LineNumber = 0;
@@ -354,6 +361,14 @@ ExMoveExternals (
Next->Asl.LineNumber = 0;
Next->Asl.LogicalLineNumber = 0;
+ if (Next->Asl.ParseOpcode == PARSEOP_NAMESEG)
+ {
+ Next->Asl.ParseOpcode = PARSEOP_NAMESTRING;
+ }
+ Next->Asl.ExternalName = ExternalName;
+ UtInternalizeName (ExternalName, &Next->Asl.Value.String);
+ Next->Asl.AmlLength = strlen (Next->Asl.Value.String);
+
Next = Next->Asl.Next;
Next->Asl.LineNumber = 0;
Next->Asl.LogicalLineNumber = 0;