diff options
Diffstat (limited to 'sys/contrib/dev/acpica/psargs.c')
-rw-r--r-- | sys/contrib/dev/acpica/psargs.c | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/sys/contrib/dev/acpica/psargs.c b/sys/contrib/dev/acpica/psargs.c index ed0fc76..4034788 100644 --- a/sys/contrib/dev/acpica/psargs.c +++ b/sys/contrib/dev/acpica/psargs.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: psargs - Parse AML opcode arguments - * $Revision: 61 $ + * $Revision: 62 $ * *****************************************************************************/ @@ -435,7 +435,7 @@ AcpiPsGetNextNamepath ( NATIVE_CHAR *Path; ACPI_PARSE_OBJECT *NameOp; ACPI_STATUS Status; - ACPI_NAMESPACE_NODE *MethodNode = NULL; + ACPI_OPERAND_OBJECT *MethodDesc; ACPI_NAMESPACE_NODE *Node; ACPI_GENERIC_STATE ScopeInfo; @@ -476,32 +476,38 @@ AcpiPsGetNextNamepath ( { if (Node->Type == ACPI_TYPE_METHOD) { - MethodNode = Node; - ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "method - %p Path=%p\n", - MethodNode, Path)); + MethodDesc = AcpiNsGetAttachedObject (Node); + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Desc %p Path=%p\n", + Node, MethodDesc, Path)); NameOp = AcpiPsAllocOp (AML_INT_NAMEPATH_OP); - if (NameOp) + if (!NameOp) { - /* Change arg into a METHOD CALL and attach name to it */ + return_VOID; + } - AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP); + /* Change arg into a METHOD CALL and attach name to it */ - NameOp->Common.Value.Name = Path; + AcpiPsInitOp (Arg, AML_INT_METHODCALL_OP); - /* Point METHODCALL/NAME to the METHOD Node */ + NameOp->Common.Value.Name = Path; - NameOp->Common.Node = MethodNode; - AcpiPsAppendArg (Arg, NameOp); + /* Point METHODCALL/NAME to the METHOD Node */ - if (!AcpiNsGetAttachedObject (MethodNode)) - { - return_VOID; - } + NameOp->Common.Node = Node; + AcpiPsAppendArg (Arg, NameOp); - *ArgCount = (AcpiNsGetAttachedObject (MethodNode))->Method.ParamCount; + if (!MethodDesc) + { + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p has no attached object\n", + Node)); + return_VOID; } + ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Control Method - %p Args %X\n", + Node, MethodDesc->Method.ParamCount)); + + *ArgCount = MethodDesc->Method.ParamCount; return_VOID; } |