Skip to content

Commit

Permalink
ACPICA: Add starting offset parameter to common dump buffer routine
Browse files Browse the repository at this point in the history
Rename the dump buffer routines. Offset parameter can specify the
buffer starting offset that is used when displaying each line of
the buffer.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Bob Moore authored and Rafael J. Wysocki committed Nov 14, 2012
1 parent eed9525 commit 97171c6
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 25 deletions.
2 changes: 1 addition & 1 deletion drivers/acpi/acpica/acmacros.h
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@
#define ACPI_DUMP_OPERANDS(a, b ,c) acpi_ex_dump_operands(a, b, c)
#define ACPI_DUMP_ENTRY(a, b) acpi_ns_dump_entry (a, b)
#define ACPI_DUMP_PATHNAME(a, b, c, d) acpi_ns_dump_pathname(a, b, c, d)
#define ACPI_DUMP_BUFFER(a, b) acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT)
#define ACPI_DUMP_BUFFER(a, b) acpi_ut_debug_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT)

#else
/*
Expand Down
5 changes: 3 additions & 2 deletions drivers/acpi/acpica/acutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,10 @@ acpi_ut_ptr_exit(u32 line_number,
const char *function_name,
const char *module_name, u32 component_id, u8 *ptr);

void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id);
void
acpi_ut_debug_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id);

void acpi_ut_dump_buffer2(u8 *buffer, u32 count, u32 display);
void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 offset);

void acpi_ut_report_error(char *module_name, u32 line_number);

Expand Down
8 changes: 4 additions & 4 deletions drivers/acpi/acpica/exdebug.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,10 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
case ACPI_TYPE_BUFFER:

acpi_os_printf("[0x%.2X]\n", (u32)source_desc->buffer.length);
acpi_ut_dump_buffer2(source_desc->buffer.pointer,
(source_desc->buffer.length < 256) ?
source_desc->buffer.length : 256,
DB_BYTE_DISPLAY);
acpi_ut_dump_buffer(source_desc->buffer.pointer,
(source_desc->buffer.length < 256) ?
source_desc->buffer.length : 256,
DB_BYTE_DISPLAY, 0);
break;

case ACPI_TYPE_STRING:
Expand Down
9 changes: 5 additions & 4 deletions drivers/acpi/acpica/exdump.c
Original file line number Diff line number Diff line change
Expand Up @@ -942,10 +942,11 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
acpi_os_printf("[Buffer] Length %.2X = ",
obj_desc->buffer.length);
if (obj_desc->buffer.length) {
acpi_ut_dump_buffer(ACPI_CAST_PTR
(u8, obj_desc->buffer.pointer),
obj_desc->buffer.length,
DB_DWORD_DISPLAY, _COMPONENT);
acpi_ut_debug_dump_buffer(ACPI_CAST_PTR
(u8,
obj_desc->buffer.pointer),
obj_desc->buffer.length,
DB_DWORD_DISPLAY, _COMPONENT);
} else {
acpi_os_printf("\n");
}
Expand Down
22 changes: 14 additions & 8 deletions drivers/acpi/acpica/psloop.c
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ static acpi_status acpi_ps_get_aml_opcode(struct acpi_walk_state *walk_state)

case AML_CLASS_UNKNOWN:

/* The opcode is unrecognized. Just skip unknown opcodes */
/* The opcode is unrecognized. Complain and skip unknown opcodes */

if (walk_state->pass_number == 2) {
ACPI_ERROR((AE_INFO,
Expand All @@ -142,28 +142,34 @@ static acpi_status acpi_ps_get_aml_opcode(struct acpi_walk_state *walk_state)
walk_state->aml_offset +
sizeof(struct acpi_table_header)));

ACPI_DUMP_BUFFER(walk_state->parser_state.aml, 128);
ACPI_DUMP_BUFFER(walk_state->parser_state.aml - 16, 48);

#ifdef ACPI_ASL_COMPILER

/*
* This is executed for the disassembler only. Output goes
* to the disassembled ASL output file.
*/
acpi_os_printf
("/*\nError: Unknown opcode 0x%.2X at table offset 0x%.4X, context:\n",
walk_state->opcode,
walk_state->aml_offset +
sizeof(struct acpi_table_header));

/* TBD: Pass current offset to dump_buffer */
/* Dump the context surrounding the invalid opcode */

acpi_ut_dump_buffer2(((u8 *)walk_state->parser_state.
aml - 16), 48, DB_BYTE_DISPLAY);
acpi_ut_dump_buffer(((u8 *)walk_state->parser_state.
aml - 16), 48, DB_BYTE_DISPLAY,
walk_state->aml_offset +
sizeof(struct acpi_table_header) -
16);
acpi_os_printf(" */\n");
#endif
}

/* Increment past one or two-byte opcode */
/* Increment past one-byte or two-byte opcode */

walk_state->parser_state.aml++;
if (walk_state->opcode > 0xFF) {
if (walk_state->opcode > 0xFF) { /* Can only happen if first byte is 0x5B */
walk_state->parser_state.aml++;
}

Expand Down
13 changes: 7 additions & 6 deletions drivers/acpi/acpica/utdebug.c
Original file line number Diff line number Diff line change
Expand Up @@ -513,15 +513,15 @@ acpi_ut_ptr_exit(u32 line_number,
* PARAMETERS: buffer - Buffer to dump
* count - Amount to dump, in bytes
* display - BYTE, WORD, DWORD, or QWORD display
* component_ID - Caller's component ID
* offset - Beginning buffer offset (display only)
*
* RETURN: None
*
* DESCRIPTION: Generic dump buffer in both hex and ascii.
*
******************************************************************************/

void acpi_ut_dump_buffer2(u8 *buffer, u32 count, u32 display)
void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 base_offset)
{
u32 i = 0;
u32 j;
Expand All @@ -543,7 +543,7 @@ void acpi_ut_dump_buffer2(u8 *buffer, u32 count, u32 display)

/* Print current offset */

acpi_os_printf("%6.4X: ", i);
acpi_os_printf("%6.4X: ", (base_offset + i));

/* Print 16 hex chars */

Expand Down Expand Up @@ -625,7 +625,7 @@ void acpi_ut_dump_buffer2(u8 *buffer, u32 count, u32 display)

/*******************************************************************************
*
* FUNCTION: acpi_ut_dump_buffer
* FUNCTION: acpi_ut_debug_dump_buffer
*
* PARAMETERS: buffer - Buffer to dump
* count - Amount to dump, in bytes
Expand All @@ -638,7 +638,8 @@ void acpi_ut_dump_buffer2(u8 *buffer, u32 count, u32 display)
*
******************************************************************************/

void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id)
void
acpi_ut_debug_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id)
{

/* Only dump the buffer if tracing is enabled */
Expand All @@ -648,5 +649,5 @@ void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id)
return;
}

acpi_ut_dump_buffer2(buffer, count, display);
acpi_ut_dump_buffer(buffer, count, display, 0);
}

0 comments on commit 97171c6

Please sign in to comment.