summaryrefslogtreecommitdiffstats
path: root/source/compiler/aslload.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2014-09-29 19:53:38 +0000
committerjkim <jkim@FreeBSD.org>2014-09-29 19:53:38 +0000
commit4a5720e5f30ea6a8d31e75f94046c76ace845126 (patch)
treec09826b28ca0b50455664fa1d18a4efff33181e4 /source/compiler/aslload.c
parent9f91b0b83a53651519b3bbe3b8c1f2a324da984e (diff)
downloadFreeBSD-src-4a5720e5f30ea6a8d31e75f94046c76ace845126.zip
FreeBSD-src-4a5720e5f30ea6a8d31e75f94046c76ace845126.tar.gz
Import ACPICA 20140926.
Diffstat (limited to 'source/compiler/aslload.c')
-rw-r--r--source/compiler/aslload.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c
index ff02d53..1207f43 100644
--- a/source/compiler/aslload.c
+++ b/source/compiler/aslload.c
@@ -360,7 +360,6 @@ LdNamespace1Begin (
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op %p [%s]\n",
Op, Op->Asl.ParseOpName));
-
/*
* We are only interested in opcodes that have an associated name
* (or multiple names)
@@ -374,6 +373,34 @@ LdNamespace1Begin (
Status = LdLoadFieldElements (Op, WalkState);
return (Status);
+ case AML_INT_CONNECTION_OP:
+
+
+ if (Op->Asl.Child->Asl.AmlOpcode != AML_INT_NAMEPATH_OP)
+ {
+ break;
+ }
+ Arg = Op->Asl.Child;
+
+ Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Asl.ExternalName,
+ ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
+ WalkState, &Node);
+ if (ACPI_FAILURE (Status))
+ {
+ break;
+ }
+
+ if (Node->Type == ACPI_TYPE_BUFFER)
+ {
+ Arg->Asl.Node = Node;
+
+ Arg = Node->Op->Asl.Child; /* Get namepath */
+ Arg = Arg->Asl.Next; /* Get actual buffer */
+ Arg = Arg->Asl.Child; /* Buffer length */
+ Arg = Arg->Asl.Next; /* RAW_DATA buffer */
+ }
+ break;
+
default:
/* All other opcodes go below */
@@ -467,7 +494,6 @@ LdNamespace1Begin (
ObjectType = AslMapNamedOpcodeToDataType (Op->Asl.AmlOpcode);
break;
-
case PARSEOP_SCOPE:
/*
* The name referenced by Scope(Name) must already exist at this point.
OpenPOWER on IntegriCloud