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>
This commit is contained in:
parent
93851b4d13
commit
57e664cfd9
5 changed files with 30 additions and 26 deletions
|
@ -741,10 +741,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
|
||||||
obj_desc->
|
obj_desc->
|
||||||
reference.offset,
|
reference.offset,
|
||||||
walk_state,
|
walk_state,
|
||||||
|
ACPI_CAST_INDIRECT_PTR
|
||||||
(struct
|
(struct
|
||||||
acpi_namespace_node
|
acpi_namespace_node,
|
||||||
**)&obj_desc->
|
&obj_desc->
|
||||||
reference.object);
|
reference.
|
||||||
|
object));
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -760,10 +762,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
|
||||||
obj_desc->
|
obj_desc->
|
||||||
reference.offset,
|
reference.offset,
|
||||||
walk_state,
|
walk_state,
|
||||||
|
ACPI_CAST_INDIRECT_PTR
|
||||||
(struct
|
(struct
|
||||||
acpi_namespace_node
|
acpi_namespace_node,
|
||||||
**)&obj_desc->
|
&obj_desc->
|
||||||
reference.object);
|
reference.
|
||||||
|
object));
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ acpi_ex_add_table(u32 table_index,
|
||||||
|
|
||||||
/* Install the new table into the local data structures */
|
/* 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 */
|
/* 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);
|
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 */
|
/* Invoke table handler if present */
|
||||||
|
|
||||||
|
|
|
@ -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"}
|
{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_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_reference), NULL},
|
||||||
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(reference.target_type), "Target Type"},
|
{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.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.object), "Object Desc"},
|
||||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"},
|
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"},
|
||||||
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.where), "Where"},
|
{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) {
|
switch (obj_desc->reference.opcode) {
|
||||||
case AML_DEBUG_OP:
|
case AML_DEBUG_OP:
|
||||||
|
|
||||||
acpi_os_printf("Reference: Debug\n");
|
acpi_os_printf("Reference: [Debug]\n");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AML_INDEX_OP:
|
case AML_INDEX_OP:
|
||||||
|
|
||||||
acpi_os_printf("Reference: Index %p\n",
|
acpi_os_printf("Reference: [Index] %p\n",
|
||||||
obj_desc->reference.object);
|
obj_desc->reference.object);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AML_LOAD_OP:
|
case AML_LOAD_OP:
|
||||||
|
|
||||||
acpi_os_printf("Reference: [DdbHandle] TableIndex %p\n",
|
acpi_os_printf("Reference: [DdbHandle] TableIndex %X\n",
|
||||||
obj_desc->reference.object);
|
obj_desc->reference.value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AML_REF_OF_OP:
|
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,
|
obj_desc->reference.object,
|
||||||
acpi_ut_get_type_name(((union
|
acpi_ut_get_type_name(((union
|
||||||
acpi_operand_object
|
acpi_operand_object
|
||||||
|
@ -526,7 +527,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
|
||||||
|
|
||||||
case AML_ARG_OP:
|
case AML_ARG_OP:
|
||||||
|
|
||||||
acpi_os_printf("Reference: Arg%d",
|
acpi_os_printf("Reference: [Arg%d]",
|
||||||
obj_desc->reference.offset);
|
obj_desc->reference.offset);
|
||||||
|
|
||||||
if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
|
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:
|
case AML_LOCAL_OP:
|
||||||
|
|
||||||
acpi_os_printf("Reference: Local%d",
|
acpi_os_printf("Reference: [Local%d]",
|
||||||
obj_desc->reference.offset);
|
obj_desc->reference.offset);
|
||||||
|
|
||||||
if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
|
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:
|
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.integer,
|
||||||
obj_desc->reference.node->name.ascii);
|
obj_desc->reference.node->name.ascii);
|
||||||
break;
|
break;
|
||||||
|
@ -883,13 +884,11 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc)
|
||||||
acpi_os_printf(" Target: %p",
|
acpi_os_printf(" Target: %p",
|
||||||
obj_desc->reference.object);
|
obj_desc->reference.object);
|
||||||
if (obj_desc->reference.opcode == AML_LOAD_OP) {
|
if (obj_desc->reference.opcode == AML_LOAD_OP) {
|
||||||
/*
|
acpi_os_printf(" [DDBHandle] Table Index: %X\n",
|
||||||
* For DDBHandle reference,
|
obj_desc->reference.value);
|
||||||
* obj_desc->Reference.Object is the table index
|
|
||||||
*/
|
|
||||||
acpi_os_printf(" [DDBHandle]\n");
|
|
||||||
} else {
|
} else {
|
||||||
acpi_os_printf(" [%s]\n",
|
acpi_os_printf(" Target: %p [%s]\n",
|
||||||
|
obj_desc->reference.object,
|
||||||
acpi_ut_get_type_name(((union
|
acpi_ut_get_type_name(((union
|
||||||
acpi_operand_object
|
acpi_operand_object
|
||||||
*)
|
*)
|
||||||
|
|
|
@ -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 */
|
if (source_desc->reference.opcode == AML_LOAD_OP) { /* Load and load_table */
|
||||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
|
||||||
" Table OwnerId %p\n",
|
" Table Index %X\n",
|
||||||
source_desc->reference.object));
|
source_desc->reference.value));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -318,6 +318,7 @@ struct acpi_object_reference {
|
||||||
struct acpi_namespace_node *node;
|
struct acpi_namespace_node *node;
|
||||||
union acpi_operand_object **where;
|
union acpi_operand_object **where;
|
||||||
u32 offset; /* Used for arg_op, local_op, and index_op */
|
u32 offset; /* Used for arg_op, local_op, and index_op */
|
||||||
|
u32 value; /* Used for ddb_handle */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Reference in a new issue