public AmlInterpreterThread InvokeMethodOnNewThread(MethodResultCallback callback,
                                                            AbsoluteNodePath nodePath, AcpiObject.AcpiObject[] parameters)
        {
            AmlInterpreterThread thread = new AmlInterpreterThread(acpiNamespace, callback, operationRegionAccessor);

            thread.InvokeMethod(nodePath, parameters);
            threadsReadyToRun.Enqueue(thread);
            return(thread);
        }
        public override void Visit(MethodCall node)
        {
            IoLocation methodLocation = thread.Pop();
            Method     method         = methodLocation.Read().GetAsMethod();

            AcpiObject.AcpiObject[] args = new AcpiObject.AcpiObject[method.ArgCount];
            for (int i = 0; i < method.ArgCount; i++)
            {
                args[i] = thread.Pop().Read();
            }

            thread.InvokeMethod(method, args);
        }