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 --- |