Deleted Added
full compact
dswload.c (77424) dswload.c (82367)
1/******************************************************************************
2 *
3 * Module Name: dswload - Dispatcher namespace load callbacks
1/******************************************************************************
2 *
3 * Module Name: dswload - Dispatcher namespace load callbacks
4 * $Revision: 37 $
4 * $Revision: 40 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.

--- 139 unchanged lines hidden (view full) ---

152{
153 ACPI_NAMESPACE_NODE *Node;
154 ACPI_STATUS Status;
155 ACPI_OBJECT_TYPE8 DataType;
156 NATIVE_CHAR *Path;
157
158
159 PROC_NAME ("DsLoad1BeginOp");
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.

--- 139 unchanged lines hidden (view full) ---

152{
153 ACPI_NAMESPACE_NODE *Node;
154 ACPI_STATUS Status;
155 ACPI_OBJECT_TYPE8 DataType;
156 NATIVE_CHAR *Path;
157
158
159 PROC_NAME ("DsLoad1BeginOp");
160 DEBUG_PRINTP (TRACE_DISPATCH, ("Op=%p State=%p\n", Op, WalkState));
160 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
161
162
163 /* We are only interested in opcodes that have an associated name */
164
165 if (!AcpiPsIsNamedOp (Opcode))
166 {
167 *OutOp = Op;
168 return (AE_OK);

--- 10 unchanged lines hidden (view full) ---

179
180 Path = AcpiPsGetNextNamestring (WalkState->ParserState);
181
182 /* Map the raw opcode into an internal object type */
183
184 DataType = AcpiDsMapNamedOpcodeToDataType (Opcode);
185
186
161
162
163 /* We are only interested in opcodes that have an associated name */
164
165 if (!AcpiPsIsNamedOp (Opcode))
166 {
167 *OutOp = Op;
168 return (AE_OK);

--- 10 unchanged lines hidden (view full) ---

179
180 Path = AcpiPsGetNextNamestring (WalkState->ParserState);
181
182 /* Map the raw opcode into an internal object type */
183
184 DataType = AcpiDsMapNamedOpcodeToDataType (Opcode);
185
186
187 DEBUG_PRINTP (TRACE_DISPATCH,
188 ("State=%p Op=%p Type=%x\n", WalkState, Op, DataType));
187 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
188 "State=%p Op=%p Type=%x\n", WalkState, Op, DataType));
189
190
191 if (Opcode == AML_SCOPE_OP)
192 {
189
190
191 if (Opcode == AML_SCOPE_OP)
192 {
193 DEBUG_PRINTP (TRACE_DISPATCH,
194 ("State=%p Op=%p Type=%x\n", WalkState, Op, DataType));
193 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
194 "State=%p Op=%p Type=%x\n", WalkState, Op, DataType));
195 }
196
197 /*
198 * Enter the named type into the internal namespace. We enter the name
199 * as we go downward in the parse tree. Any necessary subobjects that involve
200 * arguments to the opcode must be created as we go back up the parse tree later.
201 */
202 Status = AcpiNsLookup (WalkState->ScopeInfo, Path, DataType,

--- 53 unchanged lines hidden (view full) ---

256AcpiDsLoad1EndOp (
257 ACPI_WALK_STATE *WalkState,
258 ACPI_PARSE_OBJECT *Op)
259{
260 ACPI_OBJECT_TYPE8 DataType;
261
262
263 PROC_NAME ("DsLoad1EndOp");
195 }
196
197 /*
198 * Enter the named type into the internal namespace. We enter the name
199 * as we go downward in the parse tree. Any necessary subobjects that involve
200 * arguments to the opcode must be created as we go back up the parse tree later.
201 */
202 Status = AcpiNsLookup (WalkState->ScopeInfo, Path, DataType,

--- 53 unchanged lines hidden (view full) ---

256AcpiDsLoad1EndOp (
257 ACPI_WALK_STATE *WalkState,
258 ACPI_PARSE_OBJECT *Op)
259{
260 ACPI_OBJECT_TYPE8 DataType;
261
262
263 PROC_NAME ("DsLoad1EndOp");
264 DEBUG_PRINT (TRACE_DISPATCH, ("Op=%p State=%p\n", Op, WalkState));
264 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
265
266 /* We are only interested in opcodes that have an associated name */
267
268 if (!AcpiPsIsNamedOp (Op->Opcode))
269 {
270 return (AE_OK);
271 }
272

--- 15 unchanged lines hidden (view full) ---

288 }
289 }
290
291
292 /* Pop the scope stack */
293
294 if (AcpiNsOpensScope (DataType))
295 {
265
266 /* We are only interested in opcodes that have an associated name */
267
268 if (!AcpiPsIsNamedOp (Op->Opcode))
269 {
270 return (AE_OK);
271 }
272

--- 15 unchanged lines hidden (view full) ---

288 }
289 }
290
291
292 /* Pop the scope stack */
293
294 if (AcpiNsOpensScope (DataType))
295 {
296 DEBUG_PRINTP (TRACE_DISPATCH, ("(%s): Popping scope for Op %p\n",
296 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s): Popping scope for Op %p\n",
297 AcpiUtGetTypeName (DataType), Op));
298
299 AcpiDsScopeStackPop (WalkState);
300 }
301
302 return (AE_OK);
303
304}

--- 23 unchanged lines hidden (view full) ---

328 ACPI_NAMESPACE_NODE *Node;
329 ACPI_STATUS Status;
330 ACPI_OBJECT_TYPE8 DataType;
331 NATIVE_CHAR *BufferPtr;
332 void *Original = NULL;
333
334
335 PROC_NAME ("DsLoad2BeginOp");
297 AcpiUtGetTypeName (DataType), Op));
298
299 AcpiDsScopeStackPop (WalkState);
300 }
301
302 return (AE_OK);
303
304}

--- 23 unchanged lines hidden (view full) ---

328 ACPI_NAMESPACE_NODE *Node;
329 ACPI_STATUS Status;
330 ACPI_OBJECT_TYPE8 DataType;
331 NATIVE_CHAR *BufferPtr;
332 void *Original = NULL;
333
334
335 PROC_NAME ("DsLoad2BeginOp");
336 DEBUG_PRINTP (TRACE_DISPATCH, ("Op=%p State=%p\n", Op, WalkState));
336 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
337
338
339 /* We only care about Namespace opcodes here */
340
341 if (!AcpiPsIsNamespaceOp (Opcode) &&
342 Opcode != AML_INT_NAMEPATH_OP)
343 {
344 return (AE_OK);

--- 38 unchanged lines hidden (view full) ---

383 BufferPtr = AcpiPsGetNextNamestring (WalkState->ParserState);
384 }
385
386
387 /* Map the raw opcode into an internal object type */
388
389 DataType = AcpiDsMapNamedOpcodeToDataType (Opcode);
390
337
338
339 /* We only care about Namespace opcodes here */
340
341 if (!AcpiPsIsNamespaceOp (Opcode) &&
342 Opcode != AML_INT_NAMEPATH_OP)
343 {
344 return (AE_OK);

--- 38 unchanged lines hidden (view full) ---

383 BufferPtr = AcpiPsGetNextNamestring (WalkState->ParserState);
384 }
385
386
387 /* Map the raw opcode into an internal object type */
388
389 DataType = AcpiDsMapNamedOpcodeToDataType (Opcode);
390
391 DEBUG_PRINTP (TRACE_DISPATCH,
392 ("State=%p Op=%p Type=%x\n", WalkState, Op, DataType));
391 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
392 "State=%p Op=%p Type=%x\n", WalkState, Op, DataType));
393
394
395 if (Opcode == AML_FIELD_OP ||
396 Opcode == AML_BANK_FIELD_OP ||
397 Opcode == AML_INDEX_FIELD_OP)
398 {
399 Node = NULL;
400 Status = AE_OK;
401 }
402
403 else if (Opcode == AML_INT_NAMEPATH_OP)
404 {
405 /*
406 * The NamePath is an object reference to an existing object. Don't enter the
407 * name into the namespace, but look it up for use later
408 */
393
394
395 if (Opcode == AML_FIELD_OP ||
396 Opcode == AML_BANK_FIELD_OP ||
397 Opcode == AML_INDEX_FIELD_OP)
398 {
399 Node = NULL;
400 Status = AE_OK;
401 }
402
403 else if (Opcode == AML_INT_NAMEPATH_OP)
404 {
405 /*
406 * The NamePath is an object reference to an existing object. Don't enter the
407 * name into the namespace, but look it up for use later
408 */
409 Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr,
410 DataType, IMODE_EXECUTE,
411 NS_SEARCH_PARENT, WalkState,
412 &(Node));
409 Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, DataType,
410 IMODE_EXECUTE, NS_SEARCH_PARENT, WalkState, &(Node));
413 }
414
415 else
416 {
417 if (Op && Op->Node)
418 {
419 Original = Op->Node;
420 Node = Op->Node;
421
422 if (AcpiNsOpensScope (DataType))
423 {
411 }
412
413 else
414 {
415 if (Op && Op->Node)
416 {
417 Original = Op->Node;
418 Node = Op->Node;
419
420 if (AcpiNsOpensScope (DataType))
421 {
424 Status = AcpiDsScopeStackPush (Node,
425 DataType,
426 WalkState);
422 Status = AcpiDsScopeStackPush (Node, DataType, WalkState);
427 if (ACPI_FAILURE (Status))
428 {
429 return (Status);
430 }
431
432 }
433 return (AE_OK);
434 }

--- 29 unchanged lines hidden (view full) ---

464 /*
465 * Put the Node in the "op" object that the parser uses, so we
466 * can get it again quickly when this scope is closed
467 */
468 Op->Node = Node;
469
470 if (Original)
471 {
423 if (ACPI_FAILURE (Status))
424 {
425 return (Status);
426 }
427
428 }
429 return (AE_OK);
430 }

--- 29 unchanged lines hidden (view full) ---

460 /*
461 * Put the Node in the "op" object that the parser uses, so we
462 * can get it again quickly when this scope is closed
463 */
464 Op->Node = Node;
465
466 if (Original)
467 {
472 DEBUG_PRINTP (ACPI_INFO, ("old %p new %p\n", Original, Node));
468 ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "old %p new %p\n", Original, Node));
473
474 if (Original != Node)
475 {
469
470 if (Original != Node)
471 {
476 DEBUG_PRINTP (ACPI_INFO,
477 ("Lookup match error: old %p new %p\n", Original, Node));
472 ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
473 "Lookup match error: old %p new %p\n", Original, Node));
478 }
479 }
480 }
481
482 return (Status);
483}
484
485

--- 20 unchanged lines hidden (view full) ---

506 ACPI_STATUS Status = AE_OK;
507 ACPI_OBJECT_TYPE8 DataType;
508 ACPI_NAMESPACE_NODE *Node;
509 ACPI_PARSE_OBJECT *Arg;
510 ACPI_NAMESPACE_NODE *NewNode;
511
512
513 PROC_NAME ("DsLoad2EndOp");
474 }
475 }
476 }
477
478 return (Status);
479}
480
481

--- 20 unchanged lines hidden (view full) ---

502 ACPI_STATUS Status = AE_OK;
503 ACPI_OBJECT_TYPE8 DataType;
504 ACPI_NAMESPACE_NODE *Node;
505 ACPI_PARSE_OBJECT *Arg;
506 ACPI_NAMESPACE_NODE *NewNode;
507
508
509 PROC_NAME ("DsLoad2EndOp");
514 DEBUG_PRINTP (TRACE_DISPATCH, ("Op=%p State=%p\n", Op, WalkState));
510 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
515
516 if (!AcpiPsIsNamespaceObjectOp (Op->Opcode))
517 {
518 return (AE_OK);
519 }
520
521 if (Op->Opcode == AML_SCOPE_OP)
522 {
511
512 if (!AcpiPsIsNamespaceObjectOp (Op->Opcode))
513 {
514 return (AE_OK);
515 }
516
517 if (Op->Opcode == AML_SCOPE_OP)
518 {
523 DEBUG_PRINTP (TRACE_DISPATCH,
524 ("Ending scope Op=%p State=%p\n", Op, WalkState));
519 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
520 "Ending scope Op=%p State=%p\n", Op, WalkState));
525
526 if (((ACPI_PARSE2_OBJECT *)Op)->Name == -1)
527 {
521
522 if (((ACPI_PARSE2_OBJECT *)Op)->Name == -1)
523 {
528 DEBUG_PRINTP (ACPI_ERROR, ("Unnamed scope! Op=%p State=%p\n",
524 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Unnamed scope! Op=%p State=%p\n",
529 Op, WalkState));
530 return (AE_OK);
531 }
532 }
533
534
535 DataType = AcpiDsMapNamedOpcodeToDataType (Op->Opcode);
536

--- 11 unchanged lines hidden (view full) ---

548 WalkState->Operands[0] = (void *) Node;
549 WalkState->NumOperands = 1;
550
551 /* Pop the scope stack */
552
553 if (AcpiNsOpensScope (DataType))
554 {
555
525 Op, WalkState));
526 return (AE_OK);
527 }
528 }
529
530
531 DataType = AcpiDsMapNamedOpcodeToDataType (Op->Opcode);
532

--- 11 unchanged lines hidden (view full) ---

544 WalkState->Operands[0] = (void *) Node;
545 WalkState->NumOperands = 1;
546
547 /* Pop the scope stack */
548
549 if (AcpiNsOpensScope (DataType))
550 {
551
556 DEBUG_PRINTP (TRACE_DISPATCH, ("(%s) Popping scope for Op %p\n",
552 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s) Popping scope for Op %p\n",
557 AcpiUtGetTypeName (DataType), Op));
558 AcpiDsScopeStackPop (WalkState);
559 }
560
561
562 /*
563 * Named operations are as follows:
564 *

--- 36 unchanged lines hidden (view full) ---

601 case AML_CREATE_DWORD_FIELD_OP:
602 case AML_CREATE_QWORD_FIELD_OP:
603
604 /*
605 * Create the field object, but the field buffer and index must
606 * be evaluated later during the execution phase
607 */
608
553 AcpiUtGetTypeName (DataType), Op));
554 AcpiDsScopeStackPop (WalkState);
555 }
556
557
558 /*
559 * Named operations are as follows:
560 *

--- 36 unchanged lines hidden (view full) ---

597 case AML_CREATE_DWORD_FIELD_OP:
598 case AML_CREATE_QWORD_FIELD_OP:
599
600 /*
601 * Create the field object, but the field buffer and index must
602 * be evaluated later during the execution phase
603 */
604
609 DEBUG_PRINTP (TRACE_DISPATCH,
610 ("CreateXxxField: State=%p Op=%p NamedObj=%p\n",
605 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
606 "CreateXxxField: State=%p Op=%p NamedObj=%p\n",
611 WalkState, Op, Node));
612
613 /* Get the NameString argument */
614
615 if (Op->Opcode == AML_CREATE_FIELD_OP)
616 {
617 Arg = AcpiPsGetArg (Op, 3);
618 }

--- 43 unchanged lines hidden (view full) ---

662 ((ACPI_PARSE2_OBJECT *) Op)->Length,
663 NewNode, WalkState);
664 }
665 break;
666
667
668 case AML_INT_METHODCALL_OP:
669
607 WalkState, Op, Node));
608
609 /* Get the NameString argument */
610
611 if (Op->Opcode == AML_CREATE_FIELD_OP)
612 {
613 Arg = AcpiPsGetArg (Op, 3);
614 }

--- 43 unchanged lines hidden (view full) ---

658 ((ACPI_PARSE2_OBJECT *) Op)->Length,
659 NewNode, WalkState);
660 }
661 break;
662
663
664 case AML_INT_METHODCALL_OP:
665
670 DEBUG_PRINTP (TRACE_DISPATCH,
671 ("RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
666 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
667 "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
672 WalkState, Op, Node));
673
674 /*
675 * Lookup the method name and save the Node
676 */
677
678 Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Value.String,
679 ACPI_TYPE_ANY, IMODE_LOAD_PASS2,

--- 18 unchanged lines hidden (view full) ---

698
699 break;
700
701
702 case AML_PROCESSOR_OP:
703
704 /* Nothing to do other than enter object into namespace */
705
668 WalkState, Op, Node));
669
670 /*
671 * Lookup the method name and save the Node
672 */
673
674 Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Value.String,
675 ACPI_TYPE_ANY, IMODE_LOAD_PASS2,

--- 18 unchanged lines hidden (view full) ---

694
695 break;
696
697
698 case AML_PROCESSOR_OP:
699
700 /* Nothing to do other than enter object into namespace */
701
706 DEBUG_PRINTP (TRACE_DISPATCH,
707 ("LOADING-Processor: State=%p Op=%p NamedObj=%p\n",
702 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
703 "LOADING-Processor: State=%p Op=%p NamedObj=%p\n",
708 WalkState, Op, Node));
709
710 Status = AcpiExCreateProcessor (Op, Node);
711 if (ACPI_FAILURE (Status))
712 {
713 goto Cleanup;
714 }
715
704 WalkState, Op, Node));
705
706 Status = AcpiExCreateProcessor (Op, Node);
707 if (ACPI_FAILURE (Status))
708 {
709 goto Cleanup;
710 }
711
716 DEBUG_PRINT (TRACE_DISPATCH,
717 ("Completed Processor Init, Op=%p State=%p entry=%p\n",
712 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
713 "Completed Processor Init, Op=%p State=%p entry=%p\n",
718 Op, WalkState, Node));
719 break;
720
721
722 case AML_POWER_RES_OP:
723
724 /* Nothing to do other than enter object into namespace */
725
714 Op, WalkState, Node));
715 break;
716
717
718 case AML_POWER_RES_OP:
719
720 /* Nothing to do other than enter object into namespace */
721
726 DEBUG_PRINTP (TRACE_DISPATCH,
727 ("LOADING-PowerResource: State=%p Op=%p NamedObj=%p\n",
722 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
723 "LOADING-PowerResource: State=%p Op=%p NamedObj=%p\n",
728 WalkState, Op, Node));
729
730 Status = AcpiExCreatePowerResource (Op, Node);
731 if (ACPI_FAILURE (Status))
732 {
733 goto Cleanup;
734 }
735
724 WalkState, Op, Node));
725
726 Status = AcpiExCreatePowerResource (Op, Node);
727 if (ACPI_FAILURE (Status))
728 {
729 goto Cleanup;
730 }
731
736 DEBUG_PRINT (TRACE_DISPATCH,
737 ("Completed PowerResource Init, Op=%p State=%p entry=%p\n",
732 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
733 "Completed PowerResource Init, Op=%p State=%p entry=%p\n",
738 Op, WalkState, Node));
739 break;
740
741
742 case AML_THERMAL_ZONE_OP:
743
744 /* Nothing to do other than enter object into namespace */
745
734 Op, WalkState, Node));
735 break;
736
737
738 case AML_THERMAL_ZONE_OP:
739
740 /* Nothing to do other than enter object into namespace */
741
746 DEBUG_PRINTP (TRACE_DISPATCH,
747 ("LOADING-ThermalZone: State=%p Op=%p NamedObj=%p\n",
742 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
743 "LOADING-ThermalZone: State=%p Op=%p NamedObj=%p\n",
748 WalkState, Op, Node));
749 break;
750
751
752 case AML_FIELD_OP:
753
744 WalkState, Op, Node));
745 break;
746
747
748 case AML_FIELD_OP:
749
754 DEBUG_PRINTP (TRACE_DISPATCH,
755 ("LOADING-Field: State=%p Op=%p NamedObj=%p\n",
750 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
751 "LOADING-Field: State=%p Op=%p NamedObj=%p\n",
756 WalkState, Op, Node));
757
758 Arg = Op->Value.Arg;
759
760 Status = AcpiDsCreateField (Op, Arg->Node, WalkState);
761 break;
762
763
764 case AML_INDEX_FIELD_OP:
765
752 WalkState, Op, Node));
753
754 Arg = Op->Value.Arg;
755
756 Status = AcpiDsCreateField (Op, Arg->Node, WalkState);
757 break;
758
759
760 case AML_INDEX_FIELD_OP:
761
766 DEBUG_PRINTP (TRACE_DISPATCH,
767 ("LOADING-IndexField: State=%p Op=%p NamedObj=%p\n",
762 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
763 "LOADING-IndexField: State=%p Op=%p NamedObj=%p\n",
768 WalkState, Op, Node));
769
770 Arg = Op->Value.Arg;
771
772 Status = AcpiDsCreateIndexField (Op, (ACPI_HANDLE) Arg->Node,
773 WalkState);
774 break;
775
776
777 case AML_BANK_FIELD_OP:
778
764 WalkState, Op, Node));
765
766 Arg = Op->Value.Arg;
767
768 Status = AcpiDsCreateIndexField (Op, (ACPI_HANDLE) Arg->Node,
769 WalkState);
770 break;
771
772
773 case AML_BANK_FIELD_OP:
774
779 DEBUG_PRINTP (TRACE_DISPATCH,
780 ("LOADING-BankField: State=%p Op=%p NamedObj=%p\n",
775 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
776 "LOADING-BankField: State=%p Op=%p NamedObj=%p\n",
781 WalkState, Op, Node));
782
783 Arg = Op->Value.Arg;
784 Status = AcpiDsCreateBankField (Op, Arg->Node, WalkState);
785 break;
786
787
788 /*
789 * MethodOp PkgLength NamesString MethodFlags TermList
790 */
791 case AML_METHOD_OP:
792
777 WalkState, Op, Node));
778
779 Arg = Op->Value.Arg;
780 Status = AcpiDsCreateBankField (Op, Arg->Node, WalkState);
781 break;
782
783
784 /*
785 * MethodOp PkgLength NamesString MethodFlags TermList
786 */
787 case AML_METHOD_OP:
788
793 DEBUG_PRINTP (TRACE_DISPATCH,
794 ("LOADING-Method: State=%p Op=%p NamedObj=%p\n",
789 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
790 "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
795 WalkState, Op, Node));
796
797 if (!Node->Object)
798 {
799 Status = AcpiExCreateMethod (((ACPI_PARSE2_OBJECT *) Op)->Data,
800 ((ACPI_PARSE2_OBJECT *) Op)->Length,
791 WalkState, Op, Node));
792
793 if (!Node->Object)
794 {
795 Status = AcpiExCreateMethod (((ACPI_PARSE2_OBJECT *) Op)->Data,
796 ((ACPI_PARSE2_OBJECT *) Op)->Length,
801 Arg->Value.Integer, Node);
797 Arg->Value.Integer32, Node);
802 }
803 break;
804
805
806 case AML_MUTEX_OP:
807
798 }
799 break;
800
801
802 case AML_MUTEX_OP:
803
808 DEBUG_PRINTP (TRACE_DISPATCH,
809 ("LOADING-Mutex: Op=%p State=%p\n", Op, WalkState));
804 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
805 "LOADING-Mutex: Op=%p State=%p\n", Op, WalkState));
810
811 Status = AcpiDsCreateOperands (WalkState, Arg);
812 if (ACPI_FAILURE (Status))
813 {
814 goto Cleanup;
815 }
816
817 Status = AcpiExCreateMutex (WalkState);
818 break;
819
820
821 case AML_EVENT_OP:
822
806
807 Status = AcpiDsCreateOperands (WalkState, Arg);
808 if (ACPI_FAILURE (Status))
809 {
810 goto Cleanup;
811 }
812
813 Status = AcpiExCreateMutex (WalkState);
814 break;
815
816
817 case AML_EVENT_OP:
818
823 DEBUG_PRINTP (TRACE_DISPATCH,
824 ("LOADING-Event: Op=%p State=%p\n", Op, WalkState));
819 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
820 "LOADING-Event: Op=%p State=%p\n", Op, WalkState));
825
826 Status = AcpiDsCreateOperands (WalkState, Arg);
827 if (ACPI_FAILURE (Status))
828 {
829 goto Cleanup;
830 }
831
832 Status = AcpiExCreateEvent (WalkState);
833 break;
834
835
836 case AML_REGION_OP:
837
838 if (Node->Object)
839 {
840 break;
841 }
842
821
822 Status = AcpiDsCreateOperands (WalkState, Arg);
823 if (ACPI_FAILURE (Status))
824 {
825 goto Cleanup;
826 }
827
828 Status = AcpiExCreateEvent (WalkState);
829 break;
830
831
832 case AML_REGION_OP:
833
834 if (Node->Object)
835 {
836 break;
837 }
838
843 DEBUG_PRINTP (TRACE_DISPATCH,
844 ("LOADING-Opregion: Op=%p State=%p NamedObj=%p\n",
839 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
840 "LOADING-Opregion: Op=%p State=%p NamedObj=%p\n",
845 Op, WalkState, Node));
846
847 /*
848 * The OpRegion is not fully parsed at this time. Only valid argument is the SpaceId.
849 * (We must save the address of the AML of the address and length operands)
850 */
851 Status = AcpiExCreateRegion (((ACPI_PARSE2_OBJECT *) Op)->Data,
852 ((ACPI_PARSE2_OBJECT *) Op)->Length,
853 (ACPI_ADR_SPACE_TYPE) Arg->Value.Integer, WalkState);
854
841 Op, WalkState, Node));
842
843 /*
844 * The OpRegion is not fully parsed at this time. Only valid argument is the SpaceId.
845 * (We must save the address of the AML of the address and length operands)
846 */
847 Status = AcpiExCreateRegion (((ACPI_PARSE2_OBJECT *) Op)->Data,
848 ((ACPI_PARSE2_OBJECT *) Op)->Length,
849 (ACPI_ADR_SPACE_TYPE) Arg->Value.Integer, WalkState);
850
855 DEBUG_PRINT (TRACE_DISPATCH,
856 ("Completed OpRegion Init, Op=%p State=%p entry=%p\n",
851 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
852 "Completed OpRegion Init, Op=%p State=%p entry=%p\n",
857 Op, WalkState, Node));
858 break;
859
860
861 /* Namespace Modifier Opcodes */
862
863 case AML_ALIAS_OP:
864
853 Op, WalkState, Node));
854 break;
855
856
857 /* Namespace Modifier Opcodes */
858
859 case AML_ALIAS_OP:
860
865 DEBUG_PRINTP (TRACE_DISPATCH,
866 ("LOADING-Alias: Op=%p State=%p\n", Op, WalkState));
861 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
862 "LOADING-Alias: Op=%p State=%p\n", Op, WalkState));
867
868 Status = AcpiDsCreateOperands (WalkState, Arg);
869 if (ACPI_FAILURE (Status))
870 {
871 goto Cleanup;
872 }
873
874 Status = AcpiExCreateAlias (WalkState);
875 break;
876
877
878 case AML_NAME_OP:
879
863
864 Status = AcpiDsCreateOperands (WalkState, Arg);
865 if (ACPI_FAILURE (Status))
866 {
867 goto Cleanup;
868 }
869
870 Status = AcpiExCreateAlias (WalkState);
871 break;
872
873
874 case AML_NAME_OP:
875
880 DEBUG_PRINTP (TRACE_DISPATCH,
881 ("LOADING-Name: Op=%p State=%p\n", Op, WalkState));
876 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
877 "LOADING-Name: Op=%p State=%p\n", Op, WalkState));
882
883 /*
884 * Because of the execution pass through the non-control-method
885 * parts of the table, we can arrive here twice. Only init
886 * the named object node the first time through
887 */
878
879 /*
880 * Because of the execution pass through the non-control-method
881 * parts of the table, we can arrive here twice. Only init
882 * the named object node the first time through
883 */
888
889 if (!Node->Object)
890 {
891 Status = AcpiDsCreateNode (WalkState, Node, Op);
892 }
893
894 break;
895
896
897 case AML_INT_NAMEPATH_OP:
898
884 if (!Node->Object)
885 {
886 Status = AcpiDsCreateNode (WalkState, Node, Op);
887 }
888
889 break;
890
891
892 case AML_INT_NAMEPATH_OP:
893
899 DEBUG_PRINTP (TRACE_DISPATCH,
900 ("LOADING-NamePath object: State=%p Op=%p NamedObj=%p\n",
894 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
895 "LOADING-NamePath object: State=%p Op=%p NamedObj=%p\n",
901 WalkState, Op, Node));
902 break;
903
904
905 default:
906 break;
907 }
908
909
910Cleanup:
911
912 /* Remove the Node pushed at the very beginning */
913
914 AcpiDsObjStackPop (1, WalkState);
915 return (Status);
916}
917
918
896 WalkState, Op, Node));
897 break;
898
899
900 default:
901 break;
902 }
903
904
905Cleanup:
906
907 /* Remove the Node pushed at the very beginning */
908
909 AcpiDsObjStackPop (1, WalkState);
910 return (Status);
911}
912
913