exresolv.c (cb5629b10d64a8006622ce3a52bc887d91057d69) exresolv.c (3371c19c294a4cb3649aa4e84606be8a1d999e61)
1
2/******************************************************************************
3 *
4 * Module Name: exresolv - AML Interpreter object resolution
5 *
6 *****************************************************************************/
7
8/*

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

144 u8 ref_type;
145
146 ACPI_FUNCTION_TRACE(ex_resolve_object_to_value);
147
148 stack_desc = *stack_ptr;
149
150 /* This is a union acpi_operand_object */
151
1
2/******************************************************************************
3 *
4 * Module Name: exresolv - AML Interpreter object resolution
5 *
6 *****************************************************************************/
7
8/*

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

144 u8 ref_type;
145
146 ACPI_FUNCTION_TRACE(ex_resolve_object_to_value);
147
148 stack_desc = *stack_ptr;
149
150 /* This is a union acpi_operand_object */
151
152 switch (ACPI_GET_OBJECT_TYPE(stack_desc)) {
152 switch (stack_desc->common.type) {
153 case ACPI_TYPE_LOCAL_REFERENCE:
154
155 ref_type = stack_desc->reference.class;
156
157 switch (ref_type) {
158 case ACPI_REFCLASS_LOCAL:
159 case ACPI_REFCLASS_ARG:
160

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

292
293 case ACPI_TYPE_BUFFER_FIELD:
294 case ACPI_TYPE_LOCAL_REGION_FIELD:
295 case ACPI_TYPE_LOCAL_BANK_FIELD:
296 case ACPI_TYPE_LOCAL_INDEX_FIELD:
297
298 ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
299 "FieldRead SourceDesc=%p Type=%X\n",
153 case ACPI_TYPE_LOCAL_REFERENCE:
154
155 ref_type = stack_desc->reference.class;
156
157 switch (ref_type) {
158 case ACPI_REFCLASS_LOCAL:
159 case ACPI_REFCLASS_ARG:
160

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

292
293 case ACPI_TYPE_BUFFER_FIELD:
294 case ACPI_TYPE_LOCAL_REGION_FIELD:
295 case ACPI_TYPE_LOCAL_BANK_FIELD:
296 case ACPI_TYPE_LOCAL_INDEX_FIELD:
297
298 ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
299 "FieldRead SourceDesc=%p Type=%X\n",
300 stack_desc,
301 ACPI_GET_OBJECT_TYPE(stack_desc)));
300 stack_desc, stack_desc->common.type));
302
303 status =
304 acpi_ex_read_data_from_field(walk_state, stack_desc,
305 &obj_desc);
306
307 /* Remove a reference to the original operand, then override */
308
309 acpi_ut_remove_reference(*stack_ptr);

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

381 }
382
383 /*
384 * For reference objects created via the ref_of, Index, or Load/load_table
385 * operators, we need to get to the base object (as per the ACPI
386 * specification of the object_type and size_of operators). This means
387 * traversing the list of possibly many nested references.
388 */
301
302 status =
303 acpi_ex_read_data_from_field(walk_state, stack_desc,
304 &obj_desc);
305
306 /* Remove a reference to the original operand, then override */
307
308 acpi_ut_remove_reference(*stack_ptr);

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

380 }
381
382 /*
383 * For reference objects created via the ref_of, Index, or Load/load_table
384 * operators, we need to get to the base object (as per the ACPI
385 * specification of the object_type and size_of operators). This means
386 * traversing the list of possibly many nested references.
387 */
389 while (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REFERENCE) {
388 while (obj_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) {
390 switch (obj_desc->reference.class) {
391 case ACPI_REFCLASS_REFOF:
392 case ACPI_REFCLASS_NAME:
393
394 /* Dereference the reference pointer */
395
396 if (obj_desc->reference.class == ACPI_REFCLASS_REFOF) {
397 node = obj_desc->reference.object;

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

513 return_ACPI_STATUS(AE_AML_INTERNAL);
514 }
515 }
516
517 /*
518 * Now we are guaranteed to have an object that has not been created
519 * via the ref_of or Index operators.
520 */
389 switch (obj_desc->reference.class) {
390 case ACPI_REFCLASS_REFOF:
391 case ACPI_REFCLASS_NAME:
392
393 /* Dereference the reference pointer */
394
395 if (obj_desc->reference.class == ACPI_REFCLASS_REFOF) {
396 node = obj_desc->reference.object;

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

512 return_ACPI_STATUS(AE_AML_INTERNAL);
513 }
514 }
515
516 /*
517 * Now we are guaranteed to have an object that has not been created
518 * via the ref_of or Index operators.
519 */
521 type = ACPI_GET_OBJECT_TYPE(obj_desc);
520 type = obj_desc->common.type;
522
523 exit:
524 /* Convert internal types to external types */
525
526 switch (type) {
527 case ACPI_TYPE_LOCAL_REGION_FIELD:
528 case ACPI_TYPE_LOCAL_BANK_FIELD:
529 case ACPI_TYPE_LOCAL_INDEX_FIELD:

--- 22 unchanged lines hidden ---
521
522 exit:
523 /* Convert internal types to external types */
524
525 switch (type) {
526 case ACPI_TYPE_LOCAL_REGION_FIELD:
527 case ACPI_TYPE_LOCAL_BANK_FIELD:
528 case ACPI_TYPE_LOCAL_INDEX_FIELD:

--- 22 unchanged lines hidden ---