diff options
author | jkim <jkim@FreeBSD.org> | 2010-07-06 17:18:05 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-07-06 17:18:05 +0000 |
commit | 9ef1b91c0f59a1a15565c354b3e372ab265c7b5a (patch) | |
tree | 514e3ade7be23ac83127870abf009b5e5ae1d36f /dispatcher/dsobject.c | |
parent | d54ec0eced2867779a0ed7f3c8043be7a3325934 (diff) | |
download | FreeBSD-src-9ef1b91c0f59a1a15565c354b3e372ab265c7b5a.zip FreeBSD-src-9ef1b91c0f59a1a15565c354b3e372ab265c7b5a.tar.gz |
Import ACPICA 20100702.
Diffstat (limited to 'dispatcher/dsobject.c')
-rw-r--r-- | dispatcher/dsobject.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/dispatcher/dsobject.c b/dispatcher/dsobject.c index 3d8fce4..9963bd3 100644 --- a/dispatcher/dsobject.c +++ b/dispatcher/dsobject.c @@ -159,6 +159,7 @@ AcpiDsBuildInternalObject ( { ACPI_OPERAND_OBJECT *ObjDesc; ACPI_STATUS Status; + ACPI_OBJECT_TYPE Type; ACPI_FUNCTION_TRACE (DsBuildInternalObject); @@ -241,7 +242,20 @@ AcpiDsBuildInternalObject ( return_ACPI_STATUS (Status); } - switch (Op->Common.Node->Type) + /* + * Special handling for Alias objects. We need to setup the type + * and the Op->Common.Node to point to the Alias target. Note, + * Alias has at most one level of indirection internally. + */ + Type = Op->Common.Node->Type; + if (Type == ACPI_TYPE_LOCAL_ALIAS) + { + Type = ObjDesc->Common.Type; + Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, + Op->Common.Node->Object); + } + + switch (Type) { /* * For these types, we need the actual node, not the subobject. |