ACPICA: Update for Reference ACPI_OPERAND_OBJECT
authorBob Moore <robert.moore@intel.com>
Sat, 27 Sep 2008 02:40:39 +0000 (10:40 +0800)
committerLen Brown <len.brown@intel.com>
Thu, 23 Oct 2008 03:14:44 +0000 (23:14 -0400)
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>
drivers/acpi/dispatcher/dsobject.c
drivers/acpi/executer/exconfig.c
drivers/acpi/executer/exdump.c
drivers/acpi/executer/exstore.c
include/acpi/acobject.h

index 0f280589921025c5e8f9f4e8caebc3ea5efc21b0..09af39fff1a3ca6e6d8a86b12dcf01acff6fdec4 100644 (file)
@@ -741,10 +741,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
                                                              obj_desc->
                                                              reference.offset,
                                                              walk_state,
+                                                             ACPI_CAST_INDIRECT_PTR
                                                              (struct
-                                                              acpi_namespace_node
-                                                              **)&obj_desc->
-                                                             reference.object);
+                                                              acpi_namespace_node,
+                                                              &obj_desc->
+                                                              reference.
+                                                              object));
 #endif
                        break;
 
@@ -760,10 +762,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
                                                              obj_desc->
                                                              reference.offset,
                                                              walk_state,
+                                                             ACPI_CAST_INDIRECT_PTR
                                                              (struct
-                                                              acpi_namespace_node
-                                                              **)&obj_desc->
-                                                             reference.object);
+                                                              acpi_namespace_node,
+                                                              &obj_desc->
+                                                              reference.
+                                                              object));
 #endif
                        break;
 
index 4c512c2990e5dae1e756619b2d3e80ed56f1befd..5f2b1ebf70a395d376c68ea3c6d5bc707875dd13 100644 (file)
@@ -96,7 +96,7 @@ acpi_ex_add_table(u32 table_index,
 
        /* Install the new table into the local data structures */
 
-       obj_desc->reference.object = ACPI_TO_POINTER(table_index);
+       obj_desc->reference.value = table_index;
 
        /* Add the table to the namespace */
 
@@ -505,9 +505,9 @@ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle)
                return_ACPI_STATUS(AE_BAD_PARAMETER);
        }
 
-       /* Get the table index from the ddb_handle (acpi_size for 64-bit case) */
+       /* Get the table index from the ddb_handle */
 
-       table_index = (u32) (acpi_size) table_desc->reference.object;
+       table_index = table_desc->reference.value;
 
        /* Invoke table handler if present */
 
index 2be2e2bf95bf1447aa031be9d1cf3a33a46f39a9..7d4123256cf173aa24591da8cc7411433d725300 100644 (file)
@@ -214,10 +214,11 @@ static struct acpi_exdump_info acpi_ex_dump_index_field[5] = {
        {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(index_field.data_obj), "Data Object"}
 };
 
-static struct acpi_exdump_info acpi_ex_dump_reference[7] = {
+static struct acpi_exdump_info acpi_ex_dump_reference[8] = {
        {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_reference), NULL},
        {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(reference.target_type), "Target Type"},
        {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.offset), "Offset"},
+       {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.value), "Value"},
        {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.object), "Object Desc"},
        {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"},
        {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)
                switch (obj_desc->reference.opcode) {
                case AML_DEBUG_OP:
 
-                       acpi_os_printf("Reference: Debug\n");
+                       acpi_os_printf("Reference: [Debug]\n");
                        break;
 
                case AML_INDEX_OP:
 
-                       acpi_os_printf("Reference: Index %p\n",
+                       acpi_os_printf("Reference: [Index] %p\n",
                                       obj_desc->reference.object);
                        break;
 
                case AML_LOAD_OP:
 
-                       acpi_os_printf("Reference: [DdbHandle] TableIndex %p\n",
-                                      obj_desc->reference.object);
+                       acpi_os_printf("Reference: [DdbHandle] TableIndex %X\n",
+                                      obj_desc->reference.value);
                        break;
 
                case AML_REF_OF_OP:
 
-                       acpi_os_printf("Reference: (RefOf) %p [%s]\n",
+                       acpi_os_printf("Reference: [RefOf] %p [%s]\n",
                                       obj_desc->reference.object,
                                       acpi_ut_get_type_name(((union
                                                               acpi_operand_object
@@ -526,7 +527,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
 
                case AML_ARG_OP:
 
-                       acpi_os_printf("Reference: Arg%d",
+                       acpi_os_printf("Reference: [Arg%d]",
                                       obj_desc->reference.offset);
 
                        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)
 
                case AML_LOCAL_OP:
 
-                       acpi_os_printf("Reference: Local%d",
+                       acpi_os_printf("Reference: [Local%d]",
                                       obj_desc->reference.offset);
 
                        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)
 
                case AML_INT_NAMEPATH_OP:
 
-                       acpi_os_printf("Reference: Namepath %X [%4.4s]\n",
+                       acpi_os_printf("Reference: [Namepath] %X [%4.4s]\n",
                                       obj_desc->reference.node->name.integer,
                                       obj_desc->reference.node->name.ascii);
                        break;
@@ -883,13 +884,11 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc)
                        acpi_os_printf(" Target: %p",
                                       obj_desc->reference.object);
                        if (obj_desc->reference.opcode == AML_LOAD_OP) {
-                               /*
-                                * For DDBHandle reference,
-                                * obj_desc->Reference.Object is the table index
-                                */
-                               acpi_os_printf(" [DDBHandle]\n");
+                               acpi_os_printf(" [DDBHandle] Table Index: %X\n",
+                                              obj_desc->reference.value);
                        } else {
-                               acpi_os_printf(" [%s]\n",
+                               acpi_os_printf(" Target: %p [%s]\n",
+                                              obj_desc->reference.object,
                                               acpi_ut_get_type_name(((union
                                                                       acpi_operand_object
                                                                       *)
index 09e96846d155e9576cb7c01d4c24879fe2e236ea..20b4893e06ed08a2725da97dda9aa5f03ff02e94 100644 (file)
@@ -193,8 +193,8 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
 
                if (source_desc->reference.opcode == AML_LOAD_OP) {     /* Load and load_table */
                        ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
-                                             " Table OwnerId %p\n",
-                                             source_desc->reference.object));
+                                             " Table Index %X\n",
+                                             source_desc->reference.value));
                        break;
                }
 
index 0ca39265bb0f477a3ab63c920233817bc7f61c3c..7a8a652ffb78217d50d83a3ac767015538b25c8c 100644 (file)
@@ -318,6 +318,7 @@ struct acpi_object_reference {
        struct acpi_namespace_node *node;
        union acpi_operand_object **where;
        u32 offset;             /* Used for arg_op, local_op, and index_op */
+       u32 value;              /* Used for ddb_handle */
 };
 
 /*