Deleted Added
full compact
dswstate.c (107325) dswstate.c (114237)
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: 70 $
4 * $Revision: 75 $
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
5 *
6 *****************************************************************************/
7
8/******************************************************************************
9 *
10 * 1. Copyright Notice
11 *
12 * Some or all of this work - Copyright (c) 1999 - 2002, Intel Corp.
12 * Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
13 * All rights reserved.
14 *
15 * 2. License
16 *
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights. You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
20 * property rights.

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

154 State = WalkState->Results;
155 if (!State)
156 {
157 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result object pushed! State=%p\n",
158 WalkState));
159 return (AE_NOT_EXIST);
160 }
161
13 * All rights reserved.
14 *
15 * 2. License
16 *
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights. You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
20 * property rights.

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

154 State = WalkState->Results;
155 if (!State)
156 {
157 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result object pushed! State=%p\n",
158 WalkState));
159 return (AE_NOT_EXIST);
160 }
161
162 if (Index >= OBJ_NUM_OPERANDS)
162 if (Index >= ACPI_OBJ_NUM_OPERANDS)
163 {
164 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
165 "Index out of range: %X Obj=%p State=%p Num=%X\n",
166 Index, Object, WalkState, State->Results.NumResults));
167 return (AE_BAD_PARAMETER);
168 }
169
170 if (!Object)

--- 45 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
163 {
164 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
165 "Index out of range: %X Obj=%p State=%p Num=%X\n",
166 Index, Object, WalkState, State->Results.NumResults));
167 return (AE_BAD_PARAMETER);
168 }
169
170 if (!Object)

--- 45 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
224 if (Index >= OBJ_MAX_OPERAND)
224 if (Index >= ACPI_OBJ_MAX_OPERAND)
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
231 /* Check for a valid result object */
232

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

268 *
269 ******************************************************************************/
270
271ACPI_STATUS
272AcpiDsResultPop (
273 ACPI_OPERAND_OBJECT **Object,
274 ACPI_WALK_STATE *WalkState)
275{
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
231 /* Check for a valid result object */
232

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

268 *
269 ******************************************************************************/
270
271ACPI_STATUS
272AcpiDsResultPop (
273 ACPI_OPERAND_OBJECT **Object,
274 ACPI_WALK_STATE *WalkState)
275{
276 NATIVE_UINT Index;
276 ACPI_NATIVE_UINT Index;
277 ACPI_GENERIC_STATE *State;
278
279
280 ACPI_FUNCTION_NAME ("DsResultPop");
281
282
283 State = WalkState->Results;
284 if (!State)

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

292 WalkState));
293 return (AE_AML_NO_RETURN_VALUE);
294 }
295
296 /* Remove top element */
297
298 State->Results.NumResults--;
299
277 ACPI_GENERIC_STATE *State;
278
279
280 ACPI_FUNCTION_NAME ("DsResultPop");
281
282
283 State = WalkState->Results;
284 if (!State)

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

292 WalkState));
293 return (AE_AML_NO_RETURN_VALUE);
294 }
295
296 /* Remove top element */
297
298 State->Results.NumResults--;
299
300 for (Index = OBJ_NUM_OPERANDS; Index; Index--)
300 for (Index = ACPI_OBJ_NUM_OPERANDS; Index; Index--)
301 {
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

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

332 *
333 ******************************************************************************/
334
335ACPI_STATUS
336AcpiDsResultPopFromBottom (
337 ACPI_OPERAND_OBJECT **Object,
338 ACPI_WALK_STATE *WalkState)
339{
301 {
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

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

332 *
333 ******************************************************************************/
334
335ACPI_STATUS
336AcpiDsResultPopFromBottom (
337 ACPI_OPERAND_OBJECT **Object,
338 ACPI_WALK_STATE *WalkState)
339{
340 NATIVE_UINT Index;
340 ACPI_NATIVE_UINT Index;
341 ACPI_GENERIC_STATE *State;
342
343
344 ACPI_FUNCTION_NAME ("DsResultPopFromBottom");
345
346
347 State = WalkState->Results;
348 if (!State)

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

415
416 State = WalkState->Results;
417 if (!State)
418 {
419 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result stack frame\n"));
420 return (AE_AML_INTERNAL);
421 }
422
341 ACPI_GENERIC_STATE *State;
342
343
344 ACPI_FUNCTION_NAME ("DsResultPopFromBottom");
345
346
347 State = WalkState->Results;
348 if (!State)

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

415
416 State = WalkState->Results;
417 if (!State)
418 {
419 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "No result stack frame\n"));
420 return (AE_AML_INTERNAL);
421 }
422
423 if (State->Results.NumResults == OBJ_NUM_OPERANDS)
423 if (State->Results.NumResults == ACPI_OBJ_NUM_OPERANDS)
424 {
425 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
426 "Result stack overflow: Obj=%p State=%p Num=%X\n",
427 Object, WalkState, State->Results.NumResults));
428 return (AE_STACK_OVERFLOW);
429 }
430
431 if (!Object)

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

547 UINT32 i;
548
549
550 ACPI_FUNCTION_TRACE_PTR ("DsObjStackDeleteAll", WalkState);
551
552
553 /* The stack size is configurable, but fixed */
554
424 {
425 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
426 "Result stack overflow: Obj=%p State=%p Num=%X\n",
427 Object, WalkState, State->Results.NumResults));
428 return (AE_STACK_OVERFLOW);
429 }
430
431 if (!Object)

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

547 UINT32 i;
548
549
550 ACPI_FUNCTION_TRACE_PTR ("DsObjStackDeleteAll", WalkState);
551
552
553 /* The stack size is configurable, but fixed */
554
555 for (i = 0; i < OBJ_NUM_OPERANDS; i++)
555 for (i = 0; i < ACPI_OBJ_NUM_OPERANDS; i++)
556 {
557 if (WalkState->Operands[i])
558 {
559 AcpiUtRemoveReference (WalkState->Operands[i]);
560 WalkState->Operands[i] = NULL;
561 }
562 }
563

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

583 void *Object,
584 ACPI_WALK_STATE *WalkState)
585{
586 ACPI_FUNCTION_NAME ("DsObjStackPush");
587
588
589 /* Check for stack overflow */
590
556 {
557 if (WalkState->Operands[i])
558 {
559 AcpiUtRemoveReference (WalkState->Operands[i]);
560 WalkState->Operands[i] = NULL;
561 }
562 }
563

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

583 void *Object,
584 ACPI_WALK_STATE *WalkState)
585{
586 ACPI_FUNCTION_NAME ("DsObjStackPush");
587
588
589 /* Check for stack overflow */
590
591 if (WalkState->NumOperands >= OBJ_NUM_OPERANDS)
591 if (WalkState->NumOperands >= ACPI_OBJ_NUM_OPERANDS)
592 {
593 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
594 "overflow! Obj=%p State=%p #Ops=%X\n",
595 Object, WalkState, WalkState->NumOperands));
596 return (AE_STACK_OVERFLOW);
597 }
598
599 /* Put the object onto the stack */

--- 208 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
592 {
593 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
594 "overflow! Obj=%p State=%p #Ops=%X\n",
595 Object, WalkState, WalkState->NumOperands));
596 return (AE_STACK_OVERFLOW);
597 }
598
599 /* Put the object onto the stack */

--- 208 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
816 return_PTR (WalkState->Operands[(NATIVE_UINT)(WalkState->NumOperands - 1) -
816 return_PTR (WalkState->Operands[(ACPI_NATIVE_UINT)(WalkState->NumOperands - 1) -
817 Index]);
818}
819
820
821/*******************************************************************************
822 *
823 * FUNCTION: AcpiDsGetCurrentWalkState
824 *

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

839 ACPI_FUNCTION_NAME ("DsGetCurrentWalkState");
840
841
842 if (!Thread)
843 {
844 return (NULL);
845 }
846
817 Index]);
818}
819
820
821/*******************************************************************************
822 *
823 * FUNCTION: AcpiDsGetCurrentWalkState
824 *

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

839 ACPI_FUNCTION_NAME ("DsGetCurrentWalkState");
840
841
842 if (!Thread)
843 {
844 return (NULL);
845 }
846
847 ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "DsGetCurrentWalkState, =%p\n",
847 ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "Current WalkState %p\n",
848 Thread->WalkStateList));
849
850 return (Thread->WalkStateList);
851}
852
853
854/*******************************************************************************
855 *

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

1049 Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState);
1050 if (ACPI_FAILURE (Status))
1051 {
1052 return_ACPI_STATUS (Status);
1053 }
1054
1055 /* Init the method arguments */
1056
848 Thread->WalkStateList));
849
850 return (Thread->WalkStateList);
851}
852
853
854/*******************************************************************************
855 *

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

1049 Status = AcpiDsScopeStackPush (MethodNode, ACPI_TYPE_METHOD, WalkState);
1050 if (ACPI_FAILURE (Status))
1051 {
1052 return_ACPI_STATUS (Status);
1053 }
1054
1055 /* Init the method arguments */
1056
1057 Status = AcpiDsMethodDataInitArgs (Params, MTH_NUM_ARGS, WalkState);
1057 Status = AcpiDsMethodDataInitArgs (Params, ACPI_METHOD_NUM_ARGS, WalkState);
1058 if (ACPI_FAILURE (Status))
1059 {
1060 return_ACPI_STATUS (Status);
1061 }
1062 }
1063 else
1064 {
1058 if (ACPI_FAILURE (Status))
1059 {
1060 return_ACPI_STATUS (Status);
1061 }
1062 }
1063 else
1064 {
1065 /*
1065 /*
1066 * Setup the current scope.
1067 * Find a Named Op that has a namespace node associated with it.
1068 * search upwards from this Op. Current scope is the first
1069 * Op with a namespace node.
1070 */
1071 ExtraOp = ParserState->StartOp;
1072 while (ExtraOp && !ExtraOp->Common.Node)
1073 {
1074 ExtraOp = ExtraOp->Common.Parent;
1075 }
1076 if (!ExtraOp)
1077 {
1078 ParserState->StartNode = NULL;
1079 }
1080 else
1081 {
1082 ParserState->StartNode = ExtraOp->Common.Node;
1083 }
1066 * Setup the current scope.
1067 * Find a Named Op that has a namespace node associated with it.
1068 * search upwards from this Op. Current scope is the first
1069 * Op with a namespace node.
1070 */
1071 ExtraOp = ParserState->StartOp;
1072 while (ExtraOp && !ExtraOp->Common.Node)
1073 {
1074 ExtraOp = ExtraOp->Common.Parent;
1075 }
1076 if (!ExtraOp)
1077 {
1078 ParserState->StartNode = NULL;
1079 }
1080 else
1081 {
1082 ParserState->StartNode = ExtraOp->Common.Node;
1083 }
1084
1084
1085 if (ParserState->StartNode)
1086 {
1087 /* Push start scope on scope stack and make it current */
1088
1089 Status = AcpiDsScopeStackPush (ParserState->StartNode,
1090 ParserState->StartNode->Type, WalkState);
1091 if (ACPI_FAILURE (Status))
1092 {

--- 108 unchanged lines hidden ---
1085 if (ParserState->StartNode)
1086 {
1087 /* Push start scope on scope stack and make it current */
1088
1089 Status = AcpiDsScopeStackPush (ParserState->StartNode,
1090 ParserState->StartNode->Type, WalkState);
1091 if (ACPI_FAILURE (Status))
1092 {

--- 108 unchanged lines hidden ---