aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2008-09-26 22:40:39 -0400
committerLen Brown <len.brown@intel.com>2008-10-22 23:14:44 -0400
commit57e664cfd968ec8e4b0bfd80a5e8f903307e598b (patch)
tree1a4ab73f5a9f3a0e07ba2801494379373a461b66
parent93851b4d13de48753eaae76ed190eef7355e2c19 (diff)
ACPICA: Update for Reference ACPI_OPERAND_OBJECT
1) Add new field for use by DdbHandle (Value) 2) Use ACPI_CAST_INDIRECT_PTR to eliminate strict type warnings 3) Cleanup debug output Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/dispatcher/dsobject.c16
-rw-r--r--drivers/acpi/executer/exconfig.c6
-rw-r--r--drivers/acpi/executer/exdump.c29
-rw-r--r--drivers/acpi/executer/exstore.c4
-rw-r--r--include/acpi/acobject.h1
5 files changed, 30 insertions, 26 deletions
diff --git a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c
index 0f2805899210..09af39fff1a3 100644
--- a/drivers/acpi/dispatcher/dsobject.c
+++ b/drivers/acpi/dispatcher/dsobject.c
@@ -741,10 +741,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
741 obj_desc-> 741 obj_desc->
742 reference.offset, 742 reference.offset,
743 walk_state, 743 walk_state,
744 ACPI_CAST_INDIRECT_PTR
744 (struct 745 (struct
745 acpi_namespace_node 746 acpi_namespace_node,
746 **)&obj_desc-> 747 &obj_desc->
747 reference.object); 748 reference.
749 object));
748#endif 750#endif
749 break; 751 break;
750 752
@@ -760,10 +762,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
760 obj_desc-> 762 obj_desc->
761 reference.offset, 763 reference.offset,
762 walk_state, 764 walk_state,
765 ACPI_CAST_INDIRECT_PTR
763 (struct 766 (struct
764 acpi_namespace_node 767 acpi_namespace_node,
765 **)&obj_desc-> 768 &obj_desc->
766 reference.object); 769 reference.
770 object));
767#endif 771#endif
768 break; 772 break;
769 773
diff --git a/drivers/acpi/executer/exconfig.c b/drivers/acpi/executer/exconfig.c
index 4c512c2990e5..5f2b1ebf70a3 100644
--- a/drivers/acpi/executer/exconfig.c
+++ b/drivers/acpi/executer/exconfig.c
@@ -96,7 +96,7 @@ acpi_ex_add_table(u32 table_index,
96 96
97 /* Install the new table into the local data structures */ 97 /* Install the new table into the local data structures */
98 98
99 obj_desc->reference.object = ACPI_TO_POINTER(table_index); 99 obj_desc->reference.value = table_index;
100 100
101 /* Add the table to the namespace */ 101 /* Add the table to the namespace */
102 102
@@ -505,9 +505,9 @@ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle)
505 return_ACPI_STATUS(AE_BAD_PARAMETER); 505 return_ACPI_STATUS(AE_BAD_PARAMETER);
506 } 506 }
507 507
508 /* Get the table index from the ddb_handle (acpi_size for 64-bit case) */ 508 /* Get the table index from the ddb_handle */
509 509
510 table_index = (u32) (acpi_size) table_desc->reference.object; 510 table_index = table_desc->reference.value;
511 511
512 /* Invoke table handler if present */ 512 /* Invoke table handler if present */
513 513
diff --git a/drivers/acpi/executer/exdump.c b/drivers/acpi/executer/exdump.c
index 2be2e2bf95bf..7d4123256cf1 100644
--- a/drivers/acpi/executer/exdump.c
+++ b/drivers/acpi/executer/exdump.c
@@ -214,10 +214,11 @@ static struct acpi_exdump_info acpi_ex_dump_index_field[5] = {
214 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(index_field.data_obj), "Data Object"} 214 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(index_field.data_obj), "Data Object"}
215}; 215};
216 216
217static struct acpi_exdump_info acpi_ex_dump_reference[7] = { 217static struct acpi_exdump_info acpi_ex_dump_reference[8] = {
218 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_reference), NULL}, 218 {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_reference), NULL},
219 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(reference.target_type), "Target Type"}, 219 {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(reference.target_type), "Target Type"},
220 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.offset), "Offset"}, 220 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.offset), "Offset"},
221 {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.value), "Value"},
221 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.object), "Object Desc"}, 222 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.object), "Object Desc"},
222 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"}, 223 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"},
223 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.where), "Where"}, 224 {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.where), "Where"},
@@ -497,24 +498,24 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
497 switch (obj_desc->reference.opcode) { 498 switch (obj_desc->reference.opcode) {
498 case AML_DEBUG_OP: 499 case AML_DEBUG_OP:
499 500
500 acpi_os_printf("Reference: Debug\n"); 501 acpi_os_printf("Reference: [Debug]\n");
501 break; 502 break;
502 503
503 case AML_INDEX_OP: 504 case AML_INDEX_OP:
504 505
505 acpi_os_printf("Reference: Index %p\n", 506 acpi_os_printf("Reference: [Index] %p\n",
506 obj_desc->reference.object); 507 obj_desc->reference.object);
507 break; 508 break;
508 509
509 case AML_LOAD_OP: 510 case AML_LOAD_OP:
510 511
511 acpi_os_printf("Reference: [DdbHandle] TableIndex %p\n", 512 acpi_os_printf("Reference: [DdbHandle] TableIndex %X\n",
512 obj_desc->reference.object); 513 obj_desc->reference.value);
513 break; 514 break;
514 515
515 case AML_REF_OF_OP: 516 case AML_REF_OF_OP:
516 517
517 acpi_os_printf("Reference: (RefOf) %p [%s]\n", 518 acpi_os_printf("Reference: [RefOf] %p [%s]\n",
518 obj_desc->reference.object, 519 obj_desc->reference.object,
519 acpi_ut_get_type_name(((union 520 acpi_ut_get_type_name(((union
520 acpi_operand_object 521 acpi_operand_object
@@ -526,7 +527,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
526 527
527 case AML_ARG_OP: 528 case AML_ARG_OP:
528 529
529 acpi_os_printf("Reference: Arg%d", 530 acpi_os_printf("Reference: [Arg%d]",
530 obj_desc->reference.offset); 531 obj_desc->reference.offset);
531 532
532 if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) { 533 if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
@@ -544,7 +545,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
544 545
545 case AML_LOCAL_OP: 546 case AML_LOCAL_OP:
546 547
547 acpi_os_printf("Reference: Local%d", 548 acpi_os_printf("Reference: [Local%d]",
548 obj_desc->reference.offset); 549 obj_desc->reference.offset);
549 550
550 if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) { 551 if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
@@ -562,7 +563,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
562 563
563 case AML_INT_NAMEPATH_OP: 564 case AML_INT_NAMEPATH_OP:
564 565
565 acpi_os_printf("Reference: Namepath %X [%4.4s]\n", 566 acpi_os_printf("Reference: [Namepath] %X [%4.4s]\n",
566 obj_desc->reference.node->name.integer, 567 obj_desc->reference.node->name.integer,
567 obj_desc->reference.node->name.ascii); 568 obj_desc->reference.node->name.ascii);
568 break; 569 break;
@@ -883,13 +884,11 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc)
883 acpi_os_printf(" Target: %p", 884 acpi_os_printf(" Target: %p",
884 obj_desc->reference.object); 885 obj_desc->reference.object);
885 if (obj_desc->reference.opcode == AML_LOAD_OP) { 886 if (obj_desc->reference.opcode == AML_LOAD_OP) {
886 /* 887 acpi_os_printf(" [DDBHandle] Table Index: %X\n",
887 * For DDBHandle reference, 888 obj_desc->reference.value);
888 * obj_desc->Reference.Object is the table index
889 */
890 acpi_os_printf(" [DDBHandle]\n");
891 } else { 889 } else {
892 acpi_os_printf(" [%s]\n", 890 acpi_os_printf(" Target: %p [%s]\n",
891 obj_desc->reference.object,
893 acpi_ut_get_type_name(((union 892 acpi_ut_get_type_name(((union
894 acpi_operand_object 893 acpi_operand_object
895 *) 894 *)
diff --git a/drivers/acpi/executer/exstore.c b/drivers/acpi/executer/exstore.c
index 09e96846d155..20b4893e06ed 100644
--- a/drivers/acpi/executer/exstore.c
+++ b/drivers/acpi/executer/exstore.c
@@ -193,8 +193,8 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
193 193
194 if (source_desc->reference.opcode == AML_LOAD_OP) { /* Load and load_table */ 194 if (source_desc->reference.opcode == AML_LOAD_OP) { /* Load and load_table */
195 ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, 195 ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
196 " Table OwnerId %p\n", 196 " Table Index %X\n",
197 source_desc->reference.object)); 197 source_desc->reference.value));
198 break; 198 break;
199 } 199 }
200 200
diff --git a/include/acpi/acobject.h b/include/acpi/acobject.h
index 0ca39265bb0f..7a8a652ffb78 100644
--- a/include/acpi/acobject.h
+++ b/include/acpi/acobject.h
@@ -318,6 +318,7 @@ struct acpi_object_reference {
318 struct acpi_namespace_node *node; 318 struct acpi_namespace_node *node;
319 union acpi_operand_object **where; 319 union acpi_operand_object **where;
320 u32 offset; /* Used for arg_op, local_op, and index_op */ 320 u32 offset; /* Used for arg_op, local_op, and index_op */
321 u32 value; /* Used for ddb_handle */
321}; 322};
322 323
323/* 324/*