📄 cmdebug.c
字号:
function_value_exit (
NATIVE_CHAR *module_name,
u32 line_number,
u32 component_id,
NATIVE_CHAR *function_name,
ACPI_INTEGER value)
{
debug_print (module_name, line_number, component_id, TRACE_FUNCTIONS,
" %2.2ld Exiting Function: %s, %X\n",
acpi_gbl_nesting_level, function_name, value);
acpi_gbl_nesting_level--;
}
/*****************************************************************************
*
* FUNCTION: Function_ptr_exit
*
* PARAMETERS: Module_name - Caller's module name (for error output)
* Line_number - Caller's line number (for error output)
* Component_id - Caller's component ID (for error output)
* Function_name - Name of Caller's function
* Value - Value to be printed with exit msg
*
* RETURN: None
*
* DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is
* set in Debug_level. Prints exit value also.
*
****************************************************************************/
void
function_ptr_exit (
NATIVE_CHAR *module_name,
u32 line_number,
u32 component_id,
NATIVE_CHAR *function_name,
u8 *ptr)
{
debug_print (module_name, line_number, component_id, TRACE_FUNCTIONS,
" %2.2ld Exiting Function: %s, %p\n",
acpi_gbl_nesting_level, function_name, ptr);
acpi_gbl_nesting_level--;
}
/*****************************************************************************
*
* FUNCTION: Debug_print
*
* PARAMETERS: Module_name - Caller's module name (for error output)
* Line_number - Caller's line number (for error output)
* Component_id - Caller's component ID (for error output)
* Print_level - Requested debug print level
* Format - Printf format field
* ... - Optional printf arguments
*
* RETURN: None
*
* DESCRIPTION: Print error message with prefix consisting of the module name,
* line number, and component ID.
*
****************************************************************************/
void
debug_print (
NATIVE_CHAR *module_name,
u32 line_number,
u32 component_id,
u32 print_level,
NATIVE_CHAR *format,
...)
{
va_list args;
/* Both the level and the component must be enabled */
if ((print_level & acpi_dbg_level) &&
(component_id & acpi_dbg_layer)) {
va_start (args, format);
acpi_os_printf ("%8s-%04d: ", module_name, line_number);
acpi_os_vprintf (format, args);
}
}
/*****************************************************************************
*
* FUNCTION: Debug_print_prefix
*
* PARAMETERS: Module_name - Caller's module name (for error output)
* Line_number - Caller's line number (for error output)
* Component_id - Caller's component ID (for error output)
*
* RETURN: None
*
* DESCRIPTION: Print the prefix part of an error message, consisting of the
* module name, and line number
*
****************************************************************************/
void
debug_print_prefix (
NATIVE_CHAR *module_name,
u32 line_number)
{
acpi_os_printf ("%8s-%04d: ", module_name, line_number);
}
/*****************************************************************************
*
* FUNCTION: Debug_print_raw
*
* PARAMETERS: Format - Printf format field
* ... - Optional printf arguments
*
* RETURN: None
*
* DESCRIPTION: Print error message -- without module/line indentifiers
*
****************************************************************************/
void
debug_print_raw (
NATIVE_CHAR *format,
...)
{
va_list args;
va_start (args, format);
acpi_os_vprintf (format, args);
va_end (args);
}
/*****************************************************************************
*
* FUNCTION: Acpi_cm_dump_buffer
*
* PARAMETERS: Buffer - Buffer to dump
* Count - Amount to dump, in bytes
* Component_iD - Caller's component ID
*
* RETURN: None
*
* DESCRIPTION: Generic dump buffer in both hex and ascii.
*
****************************************************************************/
void
acpi_cm_dump_buffer (
u8 *buffer,
u32 count,
u32 display,
u32 component_id)
{
u32 i = 0;
u32 j;
u32 temp32;
u8 buf_char;
/* Only dump the buffer if tracing is enabled */
if (!((TRACE_TABLES & acpi_dbg_level) &&
(component_id & acpi_dbg_layer))) {
return;
}
/*
* Nasty little dump buffer routine!
*/
while (i < count) {
/* Print current offset */
acpi_os_printf ("%05X ", i);
/* Print 16 hex chars */
for (j = 0; j < 16;) {
if (i + j >= count) {
acpi_os_printf ("\n");
return;
}
/* Make sure that the s8 doesn't get sign-extended! */
switch (display) {
/* Default is BYTE display */
default:
acpi_os_printf ("%02X ",
*((u8 *) &buffer[i + j]));
j += 1;
break;
case DB_WORD_DISPLAY:
MOVE_UNALIGNED16_TO_32 (&temp32,
&buffer[i + j]);
acpi_os_printf ("%04X ", temp32);
j += 2;
break;
case DB_DWORD_DISPLAY:
MOVE_UNALIGNED32_TO_32 (&temp32,
&buffer[i + j]);
acpi_os_printf ("%08X ", temp32);
j += 4;
break;
case DB_QWORD_DISPLAY:
MOVE_UNALIGNED32_TO_32 (&temp32,
&buffer[i + j]);
acpi_os_printf ("%08X", temp32);
MOVE_UNALIGNED32_TO_32 (&temp32,
&buffer[i + j + 4]);
acpi_os_printf ("%08X ", temp32);
j += 8;
break;
}
}
/*
* Print the ASCII equivalent characters
* But watch out for the bad unprintable ones...
*/
for (j = 0; j < 16; j++) {
if (i + j >= count) {
acpi_os_printf ("\n");
return;
}
buf_char = buffer[i + j];
if ((buf_char > 0x1F && buf_char < 0x2E) ||
(buf_char > 0x2F && buf_char < 0x61) ||
(buf_char > 0x60 && buf_char < 0x7F)) {
acpi_os_printf ("%c", buf_char);
}
else {
acpi_os_printf (".");
}
}
/* Done with that line. */
acpi_os_printf ("\n");
i += 16;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -