Deleted Added
full compact
dswstate.c (91116) dswstate.c (99679)
1/******************************************************************************
2 *
3 * Module Name: dswstate - Dispatcher parse tree walk management routines
1/******************************************************************************
2 *
3 * Module Name: dswstate - Dispatcher parse tree walk management routines
4 * $Revision: 59 $
4 * $Revision: 65 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.

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

113 * such license, approval or letter.
114 *
115 *****************************************************************************/
116
117
118#define __DSWSTATE_C__
119
120#include "acpi.h"
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.

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

113 * such license, approval or letter.
114 *
115 *****************************************************************************/
116
117
118#define __DSWSTATE_C__
119
120#include "acpi.h"
121#include "amlcode.h"
122#include "acparser.h"
123#include "acdispat.h"
124#include "acnamesp.h"
121#include "acparser.h"
122#include "acdispat.h"
123#include "acnamesp.h"
125#include "acinterp.h"
126
127#define _COMPONENT ACPI_DISPATCHER
128 ACPI_MODULE_NAME ("dswstate")
129
130
131/*******************************************************************************
132 *
133 * FUNCTION: AcpiDsResultInsert

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

177 return (AE_BAD_PARAMETER);
178 }
179
180 State->Results.ObjDesc [Index] = Object;
181 State->Results.NumResults++;
182
183 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
184 "Obj=%p [%s] State=%p Num=%X Cur=%X\n",
124
125#define _COMPONENT ACPI_DISPATCHER
126 ACPI_MODULE_NAME ("dswstate")
127
128
129/*******************************************************************************
130 *
131 * FUNCTION: AcpiDsResultInsert

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

175 return (AE_BAD_PARAMETER);
176 }
177
178 State->Results.ObjDesc [Index] = Object;
179 State->Results.NumResults++;
180
181 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
182 "Obj=%p [%s] State=%p Num=%X Cur=%X\n",
185 Object, Object ? AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *) Object)->Common.Type) : "NULL",
183 Object, Object ? AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object) : "NULL",
186 WalkState, State->Results.NumResults, WalkState->CurrentResult));
187
188 return (AE_OK);
189}
190
191
192/*******************************************************************************
193 *

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

218 State = WalkState->Results;
219 if (!State)
220 {
221 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result object pushed! State=%p\n",
222 WalkState));
223 return (AE_NOT_EXIST);
224 }
225
184 WalkState, State->Results.NumResults, WalkState->CurrentResult));
185
186 return (AE_OK);
187}
188
189
190/*******************************************************************************
191 *

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

216 State = WalkState->Results;
217 if (!State)
218 {
219 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result object pushed! State=%p\n",
220 WalkState));
221 return (AE_NOT_EXIST);
222 }
223
226 if (Index >= OBJ_NUM_OPERANDS)
224 if (Index >= OBJ_MAX_OPERAND)
227 {
228 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
229 "Index out of range: %X State=%p Num=%X\n",
230 Index, WalkState, State->Results.NumResults));
231 }
232
225 {
226 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
227 "Index out of range: %X State=%p Num=%X\n",
228 Index, WalkState, State->Results.NumResults));
229 }
230
233
234 /* Check for a valid result object */
235
236 if (!State->Results.ObjDesc [Index])
237 {
238 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
239 "Null operand! State=%p #Ops=%X, Index=%X\n",
240 WalkState, State->Results.NumResults, Index));
241 return (AE_AML_NO_RETURN_VALUE);
242 }
243
244 /* Remove the object */
245
246 State->Results.NumResults--;
247
248 *Object = State->Results.ObjDesc [Index];
249 State->Results.ObjDesc [Index] = NULL;
250
251 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
252 "Obj=%p [%s] Index=%X State=%p Num=%X\n",
231 /* Check for a valid result object */
232
233 if (!State->Results.ObjDesc [Index])
234 {
235 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
236 "Null operand! State=%p #Ops=%X, Index=%X\n",
237 WalkState, State->Results.NumResults, Index));
238 return (AE_AML_NO_RETURN_VALUE);
239 }
240
241 /* Remove the object */
242
243 State->Results.NumResults--;
244
245 *Object = State->Results.ObjDesc [Index];
246 State->Results.ObjDesc [Index] = NULL;
247
248 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
249 "Obj=%p [%s] Index=%X State=%p Num=%X\n",
253 *Object, (*Object) ? AcpiUtGetTypeName ((*Object)->Common.Type) : "NULL",
250 *Object, (*Object) ? AcpiUtGetObjectTypeName (*Object) : "NULL",
254 Index, WalkState, State->Results.NumResults));
255
256 return (AE_OK);
257}
258
259
260/*******************************************************************************
261 *

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

305 /* Check for a valid result object */
306
307 if (State->Results.ObjDesc [Index -1])
308 {
309 *Object = State->Results.ObjDesc [Index -1];
310 State->Results.ObjDesc [Index -1] = NULL;
311
312 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] Index=%X State=%p Num=%X\n",
251 Index, WalkState, State->Results.NumResults));
252
253 return (AE_OK);
254}
255
256
257/*******************************************************************************
258 *

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

302 /* Check for a valid result object */
303
304 if (State->Results.ObjDesc [Index -1])
305 {
306 *Object = State->Results.ObjDesc [Index -1];
307 State->Results.ObjDesc [Index -1] = NULL;
308
309 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] Index=%X State=%p Num=%X\n",
313 *Object, (*Object) ? AcpiUtGetTypeName ((*Object)->Common.Type) : "NULL",
310 *Object, (*Object) ? AcpiUtGetObjectTypeName (*Object) : "NULL",
314 Index -1, WalkState, State->Results.NumResults));
315
316 return (AE_OK);
317 }
318 }
319
320 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result objects! State=%p\n", WalkState));
321 return (AE_AML_NO_RETURN_VALUE);

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

335 *
336 ******************************************************************************/
337
338ACPI_STATUS
339AcpiDsResultPopFromBottom (
340 ACPI_OPERAND_OBJECT **Object,
341 ACPI_WALK_STATE *WalkState)
342{
311 Index -1, WalkState, State->Results.NumResults));
312
313 return (AE_OK);
314 }
315 }
316
317 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result objects! State=%p\n", WalkState));
318 return (AE_AML_NO_RETURN_VALUE);

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

332 *
333 ******************************************************************************/
334
335ACPI_STATUS
336AcpiDsResultPopFromBottom (
337 ACPI_OPERAND_OBJECT **Object,
338 ACPI_WALK_STATE *WalkState)
339{
343 UINT32 Index;
340 NATIVE_UINT Index;
344 ACPI_GENERIC_STATE *State;
345
346
347 ACPI_FUNCTION_NAME ("DsResultPopFromBottom");
348
349
350 State = WalkState->Results;
351 if (!State)
352 {
353 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
354 "Warning: No result object pushed! State=%p\n", WalkState));
355 return (AE_NOT_EXIST);
356 }
357
341 ACPI_GENERIC_STATE *State;
342
343
344 ACPI_FUNCTION_NAME ("DsResultPopFromBottom");
345
346
347 State = WalkState->Results;
348 if (!State)
349 {
350 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
351 "Warning: No result object pushed! State=%p\n", WalkState));
352 return (AE_NOT_EXIST);
353 }
354
358
359 if (!State->Results.NumResults)
360 {
361 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result objects! State=%p\n", WalkState));
362 return (AE_AML_NO_RETURN_VALUE);
363 }
364
365 /* Remove Bottom element */
366

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

375
376 State->Results.NumResults--;
377
378 /* Check for a valid result object */
379
380 if (!*Object)
381 {
382 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null operand! State=%p #Ops=%X, Index=%X\n",
355 if (!State->Results.NumResults)
356 {
357 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result objects! State=%p\n", WalkState));
358 return (AE_AML_NO_RETURN_VALUE);
359 }
360
361 /* Remove Bottom element */
362

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

371
372 State->Results.NumResults--;
373
374 /* Check for a valid result object */
375
376 if (!*Object)
377 {
378 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null operand! State=%p #Ops=%X, Index=%X\n",
383 WalkState, State->Results.NumResults, Index));
379 WalkState, State->Results.NumResults, (UINT32) Index));
384 return (AE_AML_NO_RETURN_VALUE);
385 }
386
387 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s], Results=%p State=%p\n",
380 return (AE_AML_NO_RETURN_VALUE);
381 }
382
383 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s], Results=%p State=%p\n",
388 *Object, (*Object) ? AcpiUtGetTypeName ((*Object)->Common.Type) : "NULL",
384 *Object, (*Object) ? AcpiUtGetObjectTypeName (*Object) : "NULL",
389 State, WalkState));
390
391
392 return (AE_OK);
393}
394
395
396/*******************************************************************************

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

434
435 if (!Object)
436 {
437 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null Object! Obj=%p State=%p Num=%X\n",
438 Object, WalkState, State->Results.NumResults));
439 return (AE_BAD_PARAMETER);
440 }
441
385 State, WalkState));
386
387
388 return (AE_OK);
389}
390
391
392/*******************************************************************************

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

430
431 if (!Object)
432 {
433 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Null Object! Obj=%p State=%p Num=%X\n",
434 Object, WalkState, State->Results.NumResults));
435 return (AE_BAD_PARAMETER);
436 }
437
442
443 State->Results.ObjDesc [State->Results.NumResults] = Object;
444 State->Results.NumResults++;
445
446 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p Num=%X Cur=%X\n",
438 State->Results.ObjDesc [State->Results.NumResults] = Object;
439 State->Results.NumResults++;
440
441 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p Num=%X Cur=%X\n",
447 Object, Object ? AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *) Object)->Common.Type) : "NULL",
442 Object, Object ? AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object) : "NULL",
448 WalkState, State->Results.NumResults, WalkState->CurrentResult));
449
450 return (AE_OK);
451}
452
453
454/*******************************************************************************
455 *

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

602 }
603
604 /* Put the object onto the stack */
605
606 WalkState->Operands [WalkState->NumOperands] = Object;
607 WalkState->NumOperands++;
608
609 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p #Ops=%X\n",
443 WalkState, State->Results.NumResults, WalkState->CurrentResult));
444
445 return (AE_OK);
446}
447
448
449/*******************************************************************************
450 *

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

597 }
598
599 /* Put the object onto the stack */
600
601 WalkState->Operands [WalkState->NumOperands] = Object;
602 WalkState->NumOperands++;
603
604 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p #Ops=%X\n",
610 Object, AcpiUtGetTypeName (((ACPI_OPERAND_OBJECT *) Object)->Common.Type),
605 Object, AcpiUtGetObjectTypeName ((ACPI_OPERAND_OBJECT *) Object),
611 WalkState, WalkState->NumOperands));
612
613 return (AE_OK);
614}
615
616
617#if 0
618/*******************************************************************************

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

664 }
665
666 /* Get operand and set stack entry to null */
667
668 *Object = WalkState->Operands [WalkState->NumOperands];
669 WalkState->Operands [WalkState->NumOperands] = NULL;
670
671 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p #Ops=%X\n",
606 WalkState, WalkState->NumOperands));
607
608 return (AE_OK);
609}
610
611
612#if 0
613/*******************************************************************************

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

659 }
660
661 /* Get operand and set stack entry to null */
662
663 *Object = WalkState->Operands [WalkState->NumOperands];
664 WalkState->Operands [WalkState->NumOperands] = NULL;
665
666 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Obj=%p [%s] State=%p #Ops=%X\n",
672 *Object, AcpiUtGetTypeName ((*Object)->Common.Type),
667 *Object, AcpiUtGetObjectTypeName (*Object),
673 WalkState, WalkState->NumOperands));
674
675 return (AE_OK);
676}
677#endif
678
679/*******************************************************************************
680 *

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

813
814 /* or if the index is past the top of the stack */
815
816 if (Index > (WalkState->NumOperands - (UINT32) 1))
817 {
818 return_PTR (NULL);
819 }
820
668 WalkState, WalkState->NumOperands));
669
670 return (AE_OK);
671}
672#endif
673
674/*******************************************************************************
675 *

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

808
809 /* or if the index is past the top of the stack */
810
811 if (Index > (WalkState->NumOperands - (UINT32) 1))
812 {
813 return_PTR (NULL);
814 }
815
821
822 return_PTR (WalkState->Operands[(NATIVE_UINT)(WalkState->NumOperands - 1) -
823 Index]);
824}
825
826
827/*******************************************************************************
828 *
829 * FUNCTION: AcpiDsGetCurrentWalkState

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

848 if (!Thread)
849 {
850 return (NULL);
851 }
852
853 ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "DsGetCurrentWalkState, =%p\n",
854 Thread->WalkStateList));
855
816 return_PTR (WalkState->Operands[(NATIVE_UINT)(WalkState->NumOperands - 1) -
817 Index]);
818}
819
820
821/*******************************************************************************
822 *
823 * FUNCTION: AcpiDsGetCurrentWalkState

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

842 if (!Thread)
843 {
844 return (NULL);
845 }
846
847 ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "DsGetCurrentWalkState, =%p\n",
848 Thread->WalkStateList));
849
856
857 return (Thread->WalkStateList);
858}
859
860
861/*******************************************************************************
862 *
863 * FUNCTION: AcpiDsPushWalkState
864 *

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

1044
1045 if (MethodNode)
1046 {
1047 WalkState->ParserState.StartNode = MethodNode;
1048 WalkState->WalkType = ACPI_WALK_METHOD;
1049 WalkState->MethodNode = MethodNode;
1050 WalkState->MethodDesc = AcpiNsGetAttachedObject (MethodNode);
1051
850 return (Thread->WalkStateList);
851}
852
853
854/*******************************************************************************
855 *
856 * FUNCTION: AcpiDsPushWalkState
857 *

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

1037
1038 if (MethodNode)
1039 {
1040 WalkState->ParserState.StartNode = MethodNode;
1041 WalkState->WalkType = ACPI_WALK_METHOD;
1042 WalkState->MethodNode = MethodNode;
1043 WalkState->MethodDesc = AcpiNsGetAttachedObject (MethodNode);
1044
1052
1053 /* Push start scope on scope stack and make it current */
1054
1055 Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState);
1056 if (ACPI_FAILURE (Status))
1057 {
1058 return_ACPI_STATUS (Status);
1059 }
1060
1061 /* Init the method arguments */
1062
1045 /* Push start scope on scope stack and make it current */
1046
1047 Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState);
1048 if (ACPI_FAILURE (Status))
1049 {
1050 return_ACPI_STATUS (Status);
1051 }
1052
1053 /* Init the method arguments */
1054
1063 AcpiDsMethodDataInitArgs (Params, MTH_NUM_ARGS, WalkState);
1055 Status = AcpiDsMethodDataInitArgs (Params, MTH_NUM_ARGS, WalkState);
1056 if (ACPI_FAILURE (Status))
1057 {
1058 return_ACPI_STATUS (Status);
1059 }
1064 }
1060 }
1065
1066 else
1067 {
1068 /* Setup the current scope */
1069
1061 else
1062 {
1063 /* Setup the current scope */
1064
1070 ParserState->StartNode = ParserState->StartOp->Node;
1065 ParserState->StartNode = ParserState->StartOp->Common.Node;
1071 if (ParserState->StartNode)
1072 {
1073 /* Push start scope on scope stack and make it current */
1074
1075 Status = AcpiDsScopeStackPush (ParserState->StartNode,
1076 ParserState->StartNode->Type, WalkState);
1077 if (ACPI_FAILURE (Status))
1078 {
1079 return_ACPI_STATUS (Status);
1080 }
1081 }
1082 }
1083
1066 if (ParserState->StartNode)
1067 {
1068 /* Push start scope on scope stack and make it current */
1069
1070 Status = AcpiDsScopeStackPush (ParserState->StartNode,
1071 ParserState->StartNode->Type, WalkState);
1072 if (ACPI_FAILURE (Status))
1073 {
1074 return_ACPI_STATUS (Status);
1075 }
1076 }
1077 }
1078
1084 AcpiDsInitCallbacks (WalkState, PassNumber);
1085
1086 return_ACPI_STATUS (AE_OK);
1079 Status = AcpiDsInitCallbacks (WalkState, PassNumber);
1080 return_ACPI_STATUS (Status);
1087}
1088#endif
1089
1090
1091/*******************************************************************************
1092 *
1093 * FUNCTION: AcpiDsDeleteWalkState
1094 *

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

1116 }
1117
1118 if (WalkState->DataType != ACPI_DESC_TYPE_WALK)
1119 {
1120 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%p is not a valid walk state\n", WalkState));
1121 return;
1122 }
1123
1081}
1082#endif
1083
1084
1085/*******************************************************************************
1086 *
1087 * FUNCTION: AcpiDsDeleteWalkState
1088 *

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

1110 }
1111
1112 if (WalkState->DataType != ACPI_DESC_TYPE_WALK)
1113 {
1114 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%p is not a valid walk state\n", WalkState));
1115 return;
1116 }
1117
1124
1125 if (WalkState->ParserState.Scope)
1126 {
1127 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%p walk still has a scope list\n", WalkState));
1128 }
1129
1130 /* Always must free any linked control states */
1131
1132 while (WalkState->ControlState)

--- 57 unchanged lines hidden ---
1118 if (WalkState->ParserState.Scope)
1119 {
1120 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "%p walk still has a scope list\n", WalkState));
1121 }
1122
1123 /* Always must free any linked control states */
1124
1125 while (WalkState->ControlState)

--- 57 unchanged lines hidden ---