#include "acpi.h"
#include "accommon.h"
#include "acparser.h"
#include "acdispat.h"
#include "acnamesp.h"
Go to the source code of this file.
|
static ACPI_STATUS | AcpiDsResultStackPush (ACPI_WALK_STATE *WalkState) |
|
static ACPI_STATUS | AcpiDsResultStackPop (ACPI_WALK_STATE *WalkState) |
|
ACPI_STATUS | AcpiDsResultPop (ACPI_OPERAND_OBJECT **Object, ACPI_WALK_STATE *WalkState) |
|
ACPI_STATUS | AcpiDsResultPush (ACPI_OPERAND_OBJECT *Object, ACPI_WALK_STATE *WalkState) |
|
ACPI_STATUS | AcpiDsObjStackPush (void *Object, ACPI_WALK_STATE *WalkState) |
|
ACPI_STATUS | AcpiDsObjStackPop (UINT32 PopCount, ACPI_WALK_STATE *WalkState) |
|
void | AcpiDsObjStackPopAndDelete (UINT32 PopCount, ACPI_WALK_STATE *WalkState) |
|
ACPI_WALK_STATE * | AcpiDsGetCurrentWalkState (ACPI_THREAD_STATE *Thread) |
|
void | AcpiDsPushWalkState (ACPI_WALK_STATE *WalkState, ACPI_THREAD_STATE *Thread) |
|
ACPI_WALK_STATE * | AcpiDsPopWalkState (ACPI_THREAD_STATE *Thread) |
|
ACPI_WALK_STATE * | AcpiDsCreateWalkState (ACPI_OWNER_ID OwnerId, ACPI_PARSE_OBJECT *Origin, ACPI_OPERAND_OBJECT *MethodDesc, ACPI_THREAD_STATE *Thread) |
|
ACPI_STATUS | AcpiDsInitAmlWalk (ACPI_WALK_STATE *WalkState, ACPI_PARSE_OBJECT *Op, ACPI_NAMESPACE_NODE *MethodNode, UINT8 *AmlStart, UINT32 AmlLength, ACPI_EVALUATE_INFO *Info, UINT8 PassNumber) |
|
void | AcpiDsDeleteWalkState (ACPI_WALK_STATE *WalkState) |
|
◆ _COMPONENT
◆ AcpiDsCreateWalkState()
Definition at line 600 of file dswstate.c.
605{
607
608
610
611
613 if (!WalkState)
614 {
616 }
617
621 WalkState->
Origin = Origin;
623
625
626
627
628#ifndef ACPI_CONSTANT_EVAL_ONLY
630#endif
631
632
633
635 {
637 }
638
640}
#define ACPI_DESC_TYPE_WALK
#define ACPI_FUNCTION_TRACE(a)
#define ACPI_ALLOCATE_ZEROED(a)
void AcpiDsMethodDataInit(ACPI_WALK_STATE *WalkState)
void AcpiDsPushWalkState(ACPI_WALK_STATE *WalkState, ACPI_THREAD_STATE *Thread)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_opt_ PVOID OwnerId
union acpi_parse_object * StartOp
union acpi_operand_object * MethodDesc
ACPI_PARSE_OBJECT * Origin
ACPI_THREAD_STATE * Thread
ACPI_PARSE_STATE ParserState
Referenced by AcpiDsAutoSerializeMethod(), AcpiDsCallControlMethod(), AcpiDsExecuteArguments(), AcpiNsOneCompleteParse(), AcpiPsExecuteMethod(), and AcpiPsExecuteTable().
◆ AcpiDsDeleteWalkState()
◆ AcpiDsGetCurrentWalkState()
Definition at line 494 of file dswstate.c.
496{
498
499
501 {
503 }
504
507
508 return (
Thread->WalkStateList);
509}
#define ACPI_DEBUG_PRINT(pl)
#define ACPI_FUNCTION_NAME(a)
Referenced by AcpiPsParseAml().
◆ AcpiDsInitAmlWalk()
Definition at line 662 of file dswstate.c.
670{
674
675
677
678
683
684
685
688
690 {
693 }
694
697 {
699 }
700
701 if (MethodNode)
702 {
707
708
709
713 {
715 }
716
717
718
722 {
724 }
725 }
726 else
727 {
728
729
730
731
732
733
734 ExtraOp = ParserState->
StartOp;
735 while (ExtraOp && !ExtraOp->
Common.Node)
736 {
737 ExtraOp = ExtraOp->
Common.Parent;
738 }
739
740 if (!ExtraOp)
741 {
743 }
744 else
745 {
747 }
748
750 {
751
752
754 ParserState->
StartNode->Type, WalkState);
756 {
758 }
759 }
760 }
761
764}
ACPI_OPERAND_OBJECT * AcpiNsGetAttachedObject(ACPI_NAMESPACE_NODE *Node)
#define return_ACPI_STATUS(s)
ACPI_STATUS AcpiPsInitScope(ACPI_PARSE_STATE *ParserState, ACPI_PARSE_OBJECT *Root)
#define ACPI_METHOD_NUM_ARGS
ACPI_STATUS AcpiDsMethodDataInitArgs(ACPI_OPERAND_OBJECT **Params, UINT32 MaxParamCount, ACPI_WALK_STATE *WalkState)
ACPI_STATUS AcpiDsInitCallbacks(ACPI_WALK_STATE *WalkState, UINT32 PassNumber)
ACPI_STATUS AcpiDsScopeStackPush(ACPI_NAMESPACE_NODE *Node, ACPI_OBJECT_TYPE Type, ACPI_WALK_STATE *WalkState)
struct acpi_namespace_node * StartNode
struct acpi_namespace_node * MethodNode
ACPI_PARSE_OBJECT * NextOp
union acpi_operand_object ** Params
union acpi_operand_object ** CallerReturnDesc
ACPI_PARSE_OBJ_COMMON Common
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Referenced by AcpiDsAutoSerializeMethod(), AcpiDsCallControlMethod(), AcpiDsExecuteArguments(), AcpiNsOneCompleteParse(), AcpiPsExecuteMethod(), and AcpiPsExecuteTable().
◆ AcpiDsObjStackPop()
Definition at line 391 of file dswstate.c.
394{
396
397
399
400
401 for (
i = 0;
i < PopCount;
i++)
402 {
403
404
406 {
408 "Object stack underflow! Count=%X State=%p #Ops=%u",
411 }
412
413
414
417 }
418
421
423}
#define AE_STACK_UNDERFLOW
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
union acpi_operand_object * Operands[ACPI_OBJ_NUM_OPERANDS+1]
Referenced by AcpiDsEvalDataObjectOperands(), and AcpiDsEvaluateNamePath().
◆ AcpiDsObjStackPopAndDelete()
Definition at line 441 of file dswstate.c.
444{
447
448
450
451
452 if (PopCount == 0)
453 {
454 return;
455 }
456
457 for (
i = (
INT32) PopCount - 1;
i >= 0;
i--)
458 {
460 {
461 return;
462 }
463
464
465
468 if (ObjDesc)
469 {
472 }
473 }
474
477}
void AcpiUtRemoveReference(ACPI_OPERAND_OBJECT *Object)
Referenced by AcpiDsCreateOperands().
◆ AcpiDsObjStackPush()
Definition at line 342 of file dswstate.c.
345{
347
348
349
350
352 {
354 "Object stack overflow! Obj=%p State=%p #Ops=%u",
357 }
358
359
360
363
364
365
367
371
373}
#define AE_STACK_OVERFLOW
const char * AcpiUtGetObjectTypeName(ACPI_OPERAND_OBJECT *ObjDesc)
#define ACPI_OBJ_NUM_OPERANDS
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
Referenced by AcpiDsCreateOperand().
◆ AcpiDsPopWalkState()
Definition at line 555 of file dswstate.c.
557{
559
560
562
563
564 WalkState =
Thread->WalkStateList;
565
566 if (WalkState)
567 {
568
569
571
572
573
574
575
576
577 }
578
580}
struct acpi_walk_state * Next
Referenced by AcpiPsParseAml().
◆ AcpiDsPushWalkState()
◆ AcpiDsResultPop()
Definition at line 78 of file dswstate.c.
81{
85
86
88
89
91
92
93
95 {
98 }
99
101 {
104 }
105
106
107
109 {
112 }
113
114
115
118
121 {
123 WalkState));
125 }
126
129 {
132 {
134 }
135 }
136
138 "Obj=%p [%s] Index=%X State=%p Num=%X\n", *
Object,
141
143}
#define AE_AML_NO_RETURN_VALUE
#define ACPI_RESULTS_FRAME_OBJ_NUM
static ACPI_STATUS AcpiDsResultStackPop(ACPI_WALK_STATE *WalkState)
_In_ WDFCOLLECTION _In_ ULONG Index
Referenced by AcpiDsCreateOperand(), AcpiDsDeleteResultIfNotUsed(), and AcpiDsGetPredicateValue().
◆ AcpiDsResultPush()
◆ AcpiDsResultStackPop()
Definition at line 289 of file dswstate.c.
291{
293
294
296
297
298
299
301 {
303 "Result stack underflow - State=%p\n", WalkState));
305 }
306
308 {
311 }
312
315
316
317
319
321 "Result=%p RemainingResults=%X State=%p\n",
323
325}
#define AE_AML_NO_OPERAND
ACPI_GENERIC_STATE * AcpiUtPopGenericState(ACPI_GENERIC_STATE **ListHead)
Referenced by AcpiDsResultPop().
◆ AcpiDsResultStackPush()
Definition at line 237 of file dswstate.c.
239{
241
242
244
245
246
247
250 {
254 }
255
258 {
260 }
261
264
265
266
268
271
273}
#define ACPI_DESC_TYPE_STATE_RESULT
ACPI_GENERIC_STATE * AcpiUtCreateGenericState(void)
void AcpiUtPushGenericState(ACPI_GENERIC_STATE **ListHead, ACPI_GENERIC_STATE *State)
#define ACPI_RESULTS_OBJ_NUM_MAX
Referenced by AcpiDsResultPush().