ReactOS 0.4.15-dev-7924-g5949c20
dswload2.c File Reference
#include "acpi.h"
#include "accommon.h"
#include "acparser.h"
#include "amlcode.h"
#include "acdispat.h"
#include "acinterp.h"
#include "acnamesp.h"
#include "acevents.h"
Include dependency graph for dswload2.c:

Go to the source code of this file.

Macros

#define _COMPONENT   ACPI_DISPATCHER
 

Functions

ACPI_STATUS AcpiDsLoad2BeginOp (ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp)
 
ACPI_STATUS AcpiDsLoad2EndOp (ACPI_WALK_STATE *WalkState)
 

Macro Definition Documentation

◆ _COMPONENT

#define _COMPONENT   ACPI_DISPATCHER

Definition at line 56 of file dswload2.c.

Function Documentation

◆ AcpiDsLoad2BeginOp()

ACPI_STATUS AcpiDsLoad2BeginOp ( ACPI_WALK_STATE WalkState,
ACPI_PARSE_OBJECT **  OutOp 
)

Definition at line 74 of file dswload2.c.

77{
82 char *BufferPtr;
84
85
86 ACPI_FUNCTION_TRACE (DsLoad2BeginOp);
87
88
89 Op = WalkState->Op;
90 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Op=%p State=%p\n", Op, WalkState));
91
92 if (Op)
93 {
94 if ((WalkState->ControlState) &&
95 (WalkState->ControlState->Common.State ==
97 {
98 /* We are executing a while loop outside of a method */
99
100 Status = AcpiDsExecBeginOp (WalkState, OutOp);
102 }
103
104 /* We only care about Namespace opcodes here */
105
106 if ((!(WalkState->OpInfo->Flags & AML_NSOPCODE) &&
107 (WalkState->Opcode != AML_INT_NAMEPATH_OP)) ||
108 (!(WalkState->OpInfo->Flags & AML_NAMED)))
109 {
111 }
112
113 /* Get the name we are going to enter or lookup in the namespace */
114
115 if (WalkState->Opcode == AML_INT_NAMEPATH_OP)
116 {
117 /* For Namepath op, get the path string */
118
119 BufferPtr = Op->Common.Value.String;
120 if (!BufferPtr)
121 {
122 /* No name, just exit */
123
125 }
126 }
127 else
128 {
129 /* Get name from the op */
130
131 BufferPtr = ACPI_CAST_PTR (char, &Op->Named.Name);
132 }
133 }
134 else
135 {
136 /* Get the namestring from the raw AML */
137
138 BufferPtr = AcpiPsGetNextNamestring (&WalkState->ParserState);
139 }
140
141 /* Map the opcode into an internal object type */
142
143 ObjectType = WalkState->OpInfo->ObjectType;
144
146 "State=%p Op=%p Type=%X\n", WalkState, Op, ObjectType));
147
148 switch (WalkState->Opcode)
149 {
150 case AML_FIELD_OP:
153
154 Node = NULL;
155 Status = AE_OK;
156 break;
157
159 /*
160 * The NamePath is an object reference to an existing object.
161 * Don't enter the name into the namespace, but look it up
162 * for use later.
163 */
164 Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
166 WalkState, &(Node));
167 break;
168
169 case AML_SCOPE_OP:
170
171 /* Special case for Scope(\‍) -> refers to the Root node */
172
173 if (Op && (Op->Named.Node == AcpiGbl_RootNode))
174 {
175 Node = Op->Named.Node;
176
178 if (ACPI_FAILURE (Status))
179 {
181 }
182 }
183 else
184 {
185 /*
186 * The Path is an object reference to an existing object.
187 * Don't enter the name into the namespace, but look it up
188 * for use later.
189 */
190 Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
192 WalkState, &(Node));
193 if (ACPI_FAILURE (Status))
194 {
195#ifdef ACPI_ASL_COMPILER
196 if (Status == AE_NOT_FOUND)
197 {
198 Status = AE_OK;
199 }
200 else
201 {
203 BufferPtr, Status);
204 }
205#else
207 BufferPtr, Status);
208#endif
210 }
211 }
212
213 /*
214 * We must check to make sure that the target is
215 * one of the opcodes that actually opens a scope
216 */
217 switch (Node->Type)
218 {
219 case ACPI_TYPE_ANY:
220 case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
221 case ACPI_TYPE_DEVICE:
222 case ACPI_TYPE_POWER:
225
226 /* These are acceptable types */
227 break;
228
230 case ACPI_TYPE_STRING:
231 case ACPI_TYPE_BUFFER:
232
233 /*
234 * These types we will allow, but we will change the type.
235 * This enables some existing code of the form:
236 *
237 * Name (DEB, 0)
238 * Scope (DEB) { ... }
239 */
241 "Type override - [%4.4s] had invalid type (%s) "
242 "for Scope operator, changed to type ANY",
244
245 Node->Type = ACPI_TYPE_ANY;
246 WalkState->ScopeInfo->Common.Value = ACPI_TYPE_ANY;
247 break;
248
249 case ACPI_TYPE_METHOD:
250
251 /*
252 * Allow scope change to root during execution of module-level
253 * code. Root is typed METHOD during this time.
254 */
255 if ((Node == AcpiGbl_RootNode) &&
256 (WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
257 {
258 break;
259 }
260
262
263 default:
264
265 /* All other types are an error */
266
268 "Invalid type (%s) for target of "
269 "Scope operator [%4.4s] (Cannot override)",
271
273 }
274 break;
275
276 default:
277
278 /* All other opcodes */
279
280 if (Op && Op->Common.Node)
281 {
282 /* This op/node was previously entered into the namespace */
283
284 Node = Op->Common.Node;
285
287 {
289 if (ACPI_FAILURE (Status))
290 {
292 }
293 }
294
296 }
297
298 /*
299 * Enter the named type into the internal namespace. We enter the name
300 * as we go downward in the parse tree. Any necessary subobjects that
301 * involve arguments to the opcode must be created as we go back up the
302 * parse tree later.
303 *
304 * Note: Name may already exist if we are executing a deferred opcode.
305 */
306 if (WalkState->DeferredNode)
307 {
308 /* This name is already in the namespace, get the node */
309
310 Node = WalkState->DeferredNode;
311 Status = AE_OK;
312 break;
313 }
314
316 if (WalkState->PassNumber == ACPI_IMODE_EXECUTE)
317 {
318 /* Execution mode, node cannot already exist, node is temporary */
319
321
322 if (!(WalkState->ParseFlags & ACPI_PARSE_MODULE_LEVEL))
323 {
325 }
326 }
327
328#ifdef ACPI_ASL_COMPILER
329
330 /*
331 * Do not open a scope for AML_EXTERNAL_OP
332 * AcpiNsLookup can open a new scope based on the object type
333 * of this op. AML_EXTERNAL_OP is a declaration rather than a
334 * definition. In the case that this external is a method object,
335 * AcpiNsLookup will open a new scope. However, an AML_EXTERNAL_OP
336 * associated with the ACPI_TYPE_METHOD is a declaration, rather than
337 * a definition. Flags is set to avoid opening a scope for any
338 * AML_EXTERNAL_OP.
339 */
340 if (WalkState->Opcode == AML_EXTERNAL_OP)
341 {
343 }
344#endif
345
346 /*
347 * For name creation opcodes, the full namepath prefix must
348 * exist, except for the final (new) nameseg.
349 */
350 if (WalkState->OpInfo->Flags & AML_NAMED)
351 {
353 }
354
355 /* Add new entry or lookup existing entry */
356
357 Status = AcpiNsLookup (WalkState->ScopeInfo, BufferPtr, ObjectType,
358 ACPI_IMODE_LOAD_PASS2, Flags, WalkState, &Node);
359
361 {
363 "***New Node [%4.4s] %p is temporary\n",
365 }
366 break;
367 }
368
369 if (ACPI_FAILURE (Status))
370 {
372 BufferPtr, Status);
374 }
375
376 if (!Op)
377 {
378 /* Create a new op */
379
380 Op = AcpiPsAllocOp (WalkState->Opcode, WalkState->Aml);
381 if (!Op)
382 {
384 }
385
386 /* Initialize the new op */
387
388 if (Node)
389 {
390 Op->Named.Name = Node->Name.Integer;
391 }
392 *OutOp = Op;
393 }
394
395 /*
396 * Put the Node in the "op" object that the parser uses, so we
397 * can get it again quickly when this scope is closed
398 */
399 Op->Common.Node = Node;
401}
unsigned int UINT32
#define ACPI_FAILURE(a)
Definition: acexcep.h:95
#define AE_NOT_FOUND
Definition: acexcep.h:113
#define AE_NO_MEMORY
Definition: acexcep.h:112
#define AE_AML_OPERAND_TYPE
Definition: acexcep.h:182
#define ACPI_SUCCESS(a)
Definition: acexcep.h:94
#define AE_OK
Definition: acexcep.h:97
@ ACPI_IMODE_EXECUTE
Definition: aclocal.h:169
@ ACPI_IMODE_LOAD_PASS2
Definition: aclocal.h:168
#define ACPI_CONTROL_CONDITIONAL_EXECUTING
Definition: aclocal.h:670
#define ACPI_ERROR_NAMESPACE(s, p, e)
Definition: acmacros.h:462
ACPI_STATUS AcpiNsLookup(ACPI_GENERIC_STATE *ScopeInfo, char *Name, ACPI_OBJECT_TYPE Type, ACPI_INTERPRETER_MODE InterpreterMode, UINT32 Flags, ACPI_WALK_STATE *WalkState, ACPI_NAMESPACE_NODE **RetNode)
Definition: nsaccess.c:328
#define ACPI_NS_TEMPORARY
Definition: acnamesp.h:69
#define ACPI_NS_NO_UPSEARCH
Definition: acnamesp.h:62
#define ACPI_NS_ERROR_IF_FOUND
Definition: acnamesp.h:66
#define ACPI_NS_DONT_OPEN_SCOPE
Definition: acnamesp.h:64
#define ACPI_NS_SEARCH_PARENT
Definition: acnamesp.h:63
#define ACPI_NS_PREFIX_MUST_EXIST
Definition: acnamesp.h:72
UINT32 AcpiNsOpensScope(ACPI_OBJECT_TYPE Type)
Definition: nsutils.c:736
#define ACPI_DB_DISPATCH
Definition: acoutput.h:163
#define ACPI_DEBUG_PRINT(pl)
Definition: acoutput.h:475
#define ACPI_WARNING(plist)
Definition: acoutput.h:238
#define return_ACPI_STATUS(s)
Definition: acoutput.h:496
#define ACPI_FUNCTION_TRACE(a)
Definition: acoutput.h:480
#define ACPI_ERROR(plist)
Definition: acoutput.h:240
#define AE_INFO
Definition: acoutput.h:230
char * AcpiPsGetNextNamestring(ACPI_PARSE_STATE *ParserState)
Definition: psargs.c:172
#define ACPI_PARSE_MODULE_LEVEL
Definition: acparser.h:67
ACPI_PARSE_OBJECT * AcpiPsAllocOp(UINT16 Opcode, UINT8 *Aml)
Definition: psutils.c:130
#define ACPI_TYPE_STRING
Definition: actypes.h:689
#define ACPI_TYPE_PROCESSOR
Definition: actypes.h:699
UINT32 ACPI_OBJECT_TYPE
Definition: actypes.h:685
#define ACPI_TYPE_BUFFER
Definition: actypes.h:690
#define ACPI_TYPE_INTEGER
Definition: actypes.h:688
#define ACPI_TYPE_POWER
Definition: actypes.h:698
#define ACPI_TYPE_ANY
Definition: actypes.h:687
UINT32 ACPI_STATUS
Definition: actypes.h:460
#define ACPI_TYPE_DEVICE
Definition: actypes.h:693
#define ACPI_CAST_PTR(t, p)
Definition: actypes.h:544
#define ACPI_TYPE_METHOD
Definition: actypes.h:695
#define ACPI_TYPE_LOCAL_SCOPE
Definition: actypes.h:726
#define ACPI_TYPE_THERMAL
Definition: actypes.h:700
#define ACPI_FALLTHROUGH
Definition: actypes.h:1466
const char * AcpiUtGetTypeName(ACPI_OBJECT_TYPE Type)
Definition: utdecode.c:250
const char * AcpiUtGetNodeName(void *Object)
Definition: utdecode.c:306
#define AML_INDEX_FIELD_OP
Definition: amlcode.h:186
#define AML_BANK_FIELD_OP
Definition: amlcode.h:187
#define AML_EXTERNAL_OP
Definition: amlcode.h:65
#define AML_NSOPCODE
Definition: amlcode.h:325
#define AML_FIELD_OP
Definition: amlcode.h:181
#define AML_SCOPE_OP
Definition: amlcode.h:60
#define AML_INT_NAMEPATH_OP
Definition: amlcode.h:205
#define AML_NAMED
Definition: amlcode.h:323
#define NULL
Definition: types.h:112
union node Node
Definition: types.h:1255
ACPI_STATUS AcpiDsExecBeginOp(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT **OutOp)
Definition: dswexec.c:234
ACPI_STATUS AcpiDsScopeStackPush(ACPI_NAMESPACE_NODE *Node, ACPI_OBJECT_TYPE Type, ACPI_WALK_STATE *WalkState)
Definition: dswscope.c:107
Status
Definition: gdiplustypes.h:25
ObjectType
Definition: metafile.c:81
UINT16 Flags
Definition: aclocal.h:873
UINT8 ObjectType
Definition: aclocal.h:874
UINT8 * Aml
Definition: acstruct.h:91
ACPI_PARSE_OBJECT * Op
Definition: acstruct.h:118
ACPI_GENERIC_STATE * ScopeInfo
Definition: acstruct.h:124
UINT32 ParseFlags
Definition: acstruct.h:95
UINT16 Opcode
Definition: acstruct.h:78
UINT8 PassNumber
Definition: acstruct.h:87
const ACPI_OPCODE_INFO * OpInfo
Definition: acstruct.h:119
ACPI_GENERIC_STATE * ControlState
Definition: acstruct.h:110
struct acpi_namespace_node * DeferredNode
Definition: acstruct.h:111
ACPI_PARSE_STATE ParserState
Definition: acstruct.h:97
ACPI_COMMON_STATE Common
Definition: aclocal.h:822
ACPI_PARSE_OBJ_NAMED Named
Definition: aclocal.h:1079
ACPI_PARSE_OBJ_COMMON Common
Definition: aclocal.h:1078
Definition: dlist.c:348
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Referenced by AcpiDsExecBeginOp(), and AcpiDsInitCallbacks().

◆ AcpiDsLoad2EndOp()

ACPI_STATUS AcpiDsLoad2EndOp ( ACPI_WALK_STATE WalkState)

Definition at line 418 of file dswload2.c.

420{
426 ACPI_NAMESPACE_NODE *NewNode;
427 UINT32 i;
428 UINT8 RegionSpace;
429#ifdef ACPI_EXEC_APP
430 ACPI_OPERAND_OBJECT *ObjDesc;
431 char *Namepath;
432#endif
433
434
435 ACPI_FUNCTION_TRACE (DsLoad2EndOp);
436
437 Op = WalkState->Op;
438 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
439 WalkState->OpInfo->Name, Op, WalkState));
440
441 /* Check if opcode had an associated namespace object */
442
443 if (!(WalkState->OpInfo->Flags & AML_NSOBJECT))
444 {
446 }
447
448 if (Op->Common.AmlOpcode == AML_SCOPE_OP)
449 {
451 "Ending scope Op=%p State=%p\n", Op, WalkState));
452 }
453
454 ObjectType = WalkState->OpInfo->ObjectType;
455
456 /*
457 * Get the Node/name from the earlier lookup
458 * (It was saved in the *op structure)
459 */
460 Node = Op->Common.Node;
461
462 /*
463 * Put the Node on the object stack (Contains the ACPI Name of
464 * this object)
465 */
466 WalkState->Operands[0] = (void *) Node;
467 WalkState->NumOperands = 1;
468
469 /* Pop the scope stack */
470
472 (Op->Common.AmlOpcode != AML_INT_METHODCALL_OP))
473 {
474 ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "(%s) Popping scope for Op %p\n",
476
477 Status = AcpiDsScopeStackPop (WalkState);
478 if (ACPI_FAILURE (Status))
479 {
480 goto Cleanup;
481 }
482 }
483
484 /*
485 * Named operations are as follows:
486 *
487 * AML_ALIAS
488 * AML_BANKFIELD
489 * AML_CREATEBITFIELD
490 * AML_CREATEBYTEFIELD
491 * AML_CREATEDWORDFIELD
492 * AML_CREATEFIELD
493 * AML_CREATEQWORDFIELD
494 * AML_CREATEWORDFIELD
495 * AML_DATA_REGION
496 * AML_DEVICE
497 * AML_EVENT
498 * AML_FIELD
499 * AML_INDEXFIELD
500 * AML_METHOD
501 * AML_METHODCALL
502 * AML_MUTEX
503 * AML_NAME
504 * AML_NAMEDFIELD
505 * AML_OPREGION
506 * AML_POWERRES
507 * AML_PROCESSOR
508 * AML_SCOPE
509 * AML_THERMALZONE
510 */
511
513 "Create-Load [%s] State=%p Op=%p NamedObj=%p\n",
514 AcpiPsGetOpcodeName (Op->Common.AmlOpcode), WalkState, Op, Node));
515
516 /* Decode the opcode */
517
518 Arg = Op->Common.Value.Arg;
519
520 switch (WalkState->OpInfo->Type)
521 {
522
524 /*
525 * Create the field object, but the field buffer and index must
526 * be evaluated later during the execution phase
527 */
528 Status = AcpiDsCreateBufferField (Op, WalkState);
530 {
531 ACPI_EXCEPTION ((AE_INFO, Status, "CreateBufferField failure"));
532 goto Cleanup;
533 }
534 break;
535
537 /*
538 * If we are executing a method, initialize the field
539 */
540 if (WalkState->MethodNode)
541 {
542 Status = AcpiDsInitFieldObjects (Op, WalkState);
543 }
544
545 switch (Op->Common.AmlOpcode)
546 {
548
550 Op, (ACPI_HANDLE) Arg->Common.Node, WalkState);
551 break;
552
554
555 Status = AcpiDsCreateBankField (Op, Arg->Common.Node, WalkState);
556 break;
557
558 case AML_FIELD_OP:
559
560 Status = AcpiDsCreateField (Op, Arg->Common.Node, WalkState);
561 break;
562
563 default:
564
565 /* All NAMED_FIELD opcodes must be handled above */
566 break;
567 }
568 break;
569
571
572 Status = AcpiDsCreateOperands (WalkState, Arg);
573 if (ACPI_FAILURE (Status))
574 {
575 goto Cleanup;
576 }
577
578 switch (Op->Common.AmlOpcode)
579 {
580 case AML_PROCESSOR_OP:
581
582 Status = AcpiExCreateProcessor (WalkState);
583 break;
584
586
587 Status = AcpiExCreatePowerResource (WalkState);
588 break;
589
590 case AML_MUTEX_OP:
591
592 Status = AcpiExCreateMutex (WalkState);
593 break;
594
595 case AML_EVENT_OP:
596
597 Status = AcpiExCreateEvent (WalkState);
598 break;
599
600 case AML_ALIAS_OP:
601
602 Status = AcpiExCreateAlias (WalkState);
603 break;
604
605 default:
606
607 /* Unknown opcode */
608
609 Status = AE_OK;
610 goto Cleanup;
611 }
612
613 /* Delete operands */
614
615 for (i = 1; i < WalkState->NumOperands; i++)
616 {
617 AcpiUtRemoveReference (WalkState->Operands[i]);
618 WalkState->Operands[i] = NULL;
619 }
620
621 break;
622
624
625 switch (Op->Common.AmlOpcode)
626 {
627 case AML_REGION_OP:
629
630 if (Op->Common.AmlOpcode == AML_REGION_OP)
631 {
632 RegionSpace = (ACPI_ADR_SPACE_TYPE)
633 ((Op->Common.Value.Arg)->Common.Value.Integer);
634 }
635 else
636 {
637 RegionSpace = ACPI_ADR_SPACE_DATA_TABLE;
638 }
639
640 /*
641 * The OpRegion is not fully parsed at this time. The only valid
642 * argument is the SpaceId. (We must save the address of the
643 * AML of the address and length operands)
644 *
645 * If we have a valid region, initialize it. The namespace is
646 * unlocked at this point.
647 *
648 * Need to unlock interpreter if it is locked (if we are running
649 * a control method), in order to allow _REG methods to be run
650 * during AcpiEvInitializeRegion.
651 */
652 if (WalkState->MethodNode)
653 {
654 /*
655 * Executing a method: initialize the region and unlock
656 * the interpreter
657 */
659 Op->Named.Length, RegionSpace, WalkState);
660 if (ACPI_FAILURE (Status))
661 {
663 }
664 }
665
668 break;
669
670 case AML_NAME_OP:
671
672 Status = AcpiDsCreateNode (WalkState, Node, Op);
673 if (ACPI_FAILURE (Status))
674 {
675 goto Cleanup;
676 }
677
678#ifdef ACPI_EXEC_APP
679 /*
680 * AcpiExec support for namespace initialization file (initialize
681 * Name opcodes in this code.)
682 */
683 Namepath = AcpiNsGetExternalPathname (Node);
684 Status = AeLookupInitFileEntry (Namepath, &ObjDesc);
685 if (ACPI_SUCCESS (Status))
686 {
687 /* Detach any existing object, attach new object */
688
689 if (Node->Object)
690 {
692 }
693 AcpiNsAttachObject (Node, ObjDesc, ObjDesc->Common.Type);
694 }
695 ACPI_FREE (Namepath);
696 Status = AE_OK;
697#endif
698 break;
699
700 case AML_METHOD_OP:
701 /*
702 * MethodOp PkgLength NameString MethodFlags TermList
703 *
704 * Note: We must create the method node/object pair as soon as we
705 * see the method declaration. This allows later pass1 parsing
706 * of invocations of the method (need to know the number of
707 * arguments.)
708 */
710 "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
711 WalkState, Op, Op->Named.Node));
712
713 if (!AcpiNsGetAttachedObject (Op->Named.Node))
714 {
715 WalkState->Operands[0] = ACPI_CAST_PTR (void, Op->Named.Node);
716 WalkState->NumOperands = 1;
717
719 WalkState, Op->Common.Value.Arg);
720 if (ACPI_SUCCESS (Status))
721 {
723 Op->Named.Data, Op->Named.Length, WalkState);
724 }
725
726 WalkState->Operands[0] = NULL;
727 WalkState->NumOperands = 0;
728
729 if (ACPI_FAILURE (Status))
730 {
732 }
733 }
734 break;
735
736
737 default:
738
739 /* All NAMED_COMPLEX opcodes must be handled above */
740 break;
741 }
742 break;
743
745
746 /* case AML_INT_NAMEPATH_OP: */
747 break;
748
750
752 "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
753 WalkState, Op, Node));
754
755 /*
756 * Lookup the method name and save the Node
757 */
758 Status = AcpiNsLookup (WalkState->ScopeInfo, Arg->Common.Value.String,
761 WalkState, &(NewNode));
762 if (ACPI_SUCCESS (Status))
763 {
764 /*
765 * Make sure that what we found is indeed a method
766 * We didn't search for a method on purpose, to see if the name
767 * would resolve
768 */
769 if (NewNode->Type != ACPI_TYPE_METHOD)
770 {
772 }
773
774 /* We could put the returned object (Node) on the object stack for
775 * later, but for now, we will put it in the "op" object that the
776 * parser uses, so we can get it again at the end of this scope
777 */
778 Op->Common.Node = NewNode;
779 }
780 else
781 {
783 Arg->Common.Value.String, Status);
784 }
785 break;
786
787
788 default:
789
790 break;
791 }
792
793Cleanup:
794
795 /* Remove the Node pushed at the very beginning */
796
797 WalkState->Operands[0] = NULL;
798 WalkState->NumOperands = 0;
800}
unsigned char UINT8
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:308
char * AcpiNsGetExternalPathname(ACPI_NAMESPACE_NODE *Node)
Definition: nsnames.c:70
ACPI_STATUS AcpiNsAttachObject(ACPI_NAMESPACE_NODE *Node, ACPI_OPERAND_OBJECT *Object, ACPI_OBJECT_TYPE Type)
Definition: nsobject.c:76
void AcpiNsDetachObject(ACPI_NAMESPACE_NODE *Node)
Definition: nsobject.c:220
#define ACPI_EXCEPTION(plist)
Definition: acoutput.h:239
const char * AcpiPsGetOpcodeName(UINT16 Opcode)
Definition: psopinfo.c:169
UINT8 ACPI_ADR_SPACE_TYPE
Definition: actypes.h:859
#define ACPI_FREE(a)
Definition: actypes.h:386
#define ACPI_ADR_SPACE_DATA_TABLE
Definition: actypes.h:884
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Definition: utdelete.c:790
#define AML_PROCESSOR_OP
Definition: amlcode.h:183
#define AML_REGION_OP
Definition: amlcode.h:180
#define AML_TYPE_CREATE_FIELD
Definition: amlcode.h:379
#define AML_NAME_OP
Definition: amlcode.h:54
#define AML_TYPE_NAMED_SIMPLE
Definition: amlcode.h:384
#define AML_INT_METHODCALL_OP
Definition: amlcode.h:210
#define AML_CLASS_METHOD_CALL
Definition: amlcode.h:409
#define AML_DATA_REGION_OP
Definition: amlcode.h:188
#define AML_METHOD_OP
Definition: amlcode.h:64
#define AML_TYPE_NAMED_FIELD
Definition: amlcode.h:383
#define AML_MUTEX_OP
Definition: amlcode.h:158
#define AML_EVENT_OP
Definition: amlcode.h:159
#define AML_POWER_RESOURCE_OP
Definition: amlcode.h:184
#define AML_NSOBJECT
Definition: amlcode.h:326
#define AML_CLASS_INTERNAL
Definition: amlcode.h:407
#define AML_ALIAS_OP
Definition: amlcode.h:53
#define AML_TYPE_NAMED_COMPLEX
Definition: amlcode.h:385
static const WCHAR Cleanup[]
Definition: register.c:80
ACPI_STATUS AcpiDsCreateField(ACPI_PARSE_OBJECT *Op, ACPI_NAMESPACE_NODE *RegionNode, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:534
ACPI_STATUS AcpiDsCreateBankField(ACPI_PARSE_OBJECT *Op, ACPI_NAMESPACE_NODE *RegionNode, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:748
ACPI_STATUS AcpiDsCreateBufferField(ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:165
ACPI_STATUS AcpiDsCreateIndexField(ACPI_PARSE_OBJECT *Op, ACPI_NAMESPACE_NODE *RegionNode, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:842
ACPI_STATUS AcpiDsInitFieldObjects(ACPI_PARSE_OBJECT *Op, ACPI_WALK_STATE *WalkState)
Definition: dsfield.c:617
ACPI_STATUS AcpiDsCreateNode(ACPI_WALK_STATE *WalkState, ACPI_NAMESPACE_NODE *Node, ACPI_PARSE_OBJECT *Op)
Definition: dsobject.c:302
ACPI_STATUS AcpiDsCreateOperands(ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *FirstArg)
Definition: dsutils.c:753
ACPI_STATUS AcpiDsScopeStackPop(ACPI_WALK_STATE *WalkState)
Definition: dswscope.c:192
ACPI_STATUS AcpiEvInitializeRegion(ACPI_OPERAND_OBJECT *RegionObj)
Definition: evrgnini.c:629
ACPI_STATUS AcpiExCreateRegion(UINT8 *AmlStart, UINT32 AmlLength, UINT8 SpaceId, ACPI_WALK_STATE *WalkState)
Definition: excreate.c:268
ACPI_STATUS AcpiExCreateAlias(ACPI_WALK_STATE *WalkState)
Definition: excreate.c:68
ACPI_STATUS AcpiExCreateMutex(ACPI_WALK_STATE *WalkState)
Definition: excreate.c:206
ACPI_STATUS AcpiExCreateEvent(ACPI_WALK_STATE *WalkState)
Definition: excreate.c:147
ACPI_STATUS AcpiExCreateProcessor(ACPI_WALK_STATE *WalkState)
Definition: excreate.c:381
ACPI_STATUS AcpiExCreatePowerResource(ACPI_WALK_STATE *WalkState)
Definition: excreate.c:433
ACPI_STATUS AcpiExCreateMethod(UINT8 *AmlStart, UINT32 AmlLength, ACPI_WALK_STATE *WalkState)
Definition: excreate.c:484
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
union acpi_operand_object * Operands[ACPI_OBJ_NUM_OPERANDS+1]
Definition: acstruct.h:105
struct acpi_namespace_node * MethodNode
Definition: acstruct.h:116
UINT8 NumOperands
Definition: acstruct.h:80
ACPI_OBJECT_COMMON Common
Definition: acobject.h:519

Referenced by AcpiDsExecEndOp(), and AcpiDsInitCallbacks().