diff options
Diffstat (limited to 'drivers/acpi/utilities/utdebug.c')
| -rw-r--r-- | drivers/acpi/utilities/utdebug.c | 400 | 
1 files changed, 200 insertions, 200 deletions
diff --git a/drivers/acpi/utilities/utdebug.c b/drivers/acpi/utilities/utdebug.c index 794c7df3f2a..d80e9263993 100644 --- a/drivers/acpi/utilities/utdebug.c +++ b/drivers/acpi/utilities/utdebug.c @@ -46,15 +46,16 @@  #include <acpi/acpi.h>  #define _COMPONENT          ACPI_UTILITIES -	 ACPI_MODULE_NAME    ("utdebug") - +ACPI_MODULE_NAME("utdebug")  #ifdef ACPI_DEBUG_OUTPUT +static u32 acpi_gbl_prev_thread_id = 0xFFFFFFFF; +static char *acpi_gbl_fn_entry_str = "----Entry"; +static char *acpi_gbl_fn_exit_str = "----Exit-"; -static u32   acpi_gbl_prev_thread_id = 0xFFFFFFFF; -static char     *acpi_gbl_fn_entry_str = "----Entry"; -static char     *acpi_gbl_fn_exit_str = "----Exit-"; +/* Local prototypes */ +static const char *acpi_ut_trim_function_name(const char *function_name);  /*******************************************************************************   * @@ -68,17 +69,13 @@ static char     *acpi_gbl_fn_exit_str = "----Exit-";   *   ******************************************************************************/ -void -acpi_ut_init_stack_ptr_trace ( -	void) +void acpi_ut_init_stack_ptr_trace(void)  { -	u32                         current_sp; - +	u32 current_sp; -	acpi_gbl_entry_stack_pointer = ACPI_PTR_DIFF (¤t_sp, NULL); +	acpi_gbl_entry_stack_pointer = ACPI_PTR_DIFF(¤t_sp, NULL);  } -  /*******************************************************************************   *   * FUNCTION:    acpi_ut_track_stack_ptr @@ -91,14 +88,11 @@ acpi_ut_init_stack_ptr_trace (   *   ******************************************************************************/ -void -acpi_ut_track_stack_ptr ( -	void) +void acpi_ut_track_stack_ptr(void)  { -	acpi_size                   current_sp; - +	acpi_size current_sp; -	current_sp = ACPI_PTR_DIFF (¤t_sp, NULL); +	current_sp = ACPI_PTR_DIFF(¤t_sp, NULL);  	if (current_sp < acpi_gbl_lowest_stack_pointer) {  		acpi_gbl_lowest_stack_pointer = current_sp; @@ -109,6 +103,39 @@ acpi_ut_track_stack_ptr (  	}  } +/******************************************************************************* + * + * FUNCTION:    acpi_ut_trim_function_name + * + * PARAMETERS:  function_name       - Ascii string containing a procedure name + * + * RETURN:      Updated pointer to the function name + * + * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present. + *              This allows compiler macros such as __FUNCTION__ to be used + *              with no change to the debug output. + * + ******************************************************************************/ + +static const char *acpi_ut_trim_function_name(const char *function_name) +{ + +	/* All Function names are longer than 4 chars, check is safe */ + +	if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_PREFIX_MIXED) { +		/* This is the case where the original source has not been modified */ + +		return (function_name + 4); +	} + +	if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_PREFIX_LOWER) { +		/* This is the case where the source has been 'linuxized' */ + +		return (function_name + 5); +	} + +	return (function_name); +}  /*******************************************************************************   * @@ -116,10 +143,9 @@ acpi_ut_track_stack_ptr (   *   * PARAMETERS:  requested_debug_level - Requested debug print level   *              line_number         - Caller's line number (for error output) - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Format              - Printf format field   *              ...                 - Optional printf arguments   * @@ -130,36 +156,33 @@ acpi_ut_track_stack_ptr (   *   ******************************************************************************/ -void  ACPI_INTERNAL_VAR_XFACE -acpi_ut_debug_print ( -	u32                             requested_debug_level, -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	char                            *format, -	...) +void ACPI_INTERNAL_VAR_XFACE +acpi_ut_debug_print(u32 requested_debug_level, +		    u32 line_number, +		    const char *function_name, +		    char *module_name, u32 component_id, char *format, ...)  { -	u32                             thread_id; -	va_list                 args; - +	u32 thread_id; +	va_list args;  	/*  	 * Stay silent if the debug level or component ID is disabled  	 */  	if (!(requested_debug_level & acpi_dbg_level) || -		!(dbg_info->component_id & acpi_dbg_layer)) { +	    !(component_id & acpi_dbg_layer)) {  		return;  	}  	/*  	 * Thread tracking and context switch notification  	 */ -	thread_id = acpi_os_get_thread_id (); +	thread_id = acpi_os_get_thread_id();  	if (thread_id != acpi_gbl_prev_thread_id) {  		if (ACPI_LV_THREADS & acpi_dbg_level) { -			acpi_os_printf ( -				"\n**** Context Switch from TID %X to TID %X ****\n\n", -				acpi_gbl_prev_thread_id, thread_id); +			acpi_os_printf +			    ("\n**** Context Switch from TID %X to TID %X ****\n\n", +			     acpi_gbl_prev_thread_id, thread_id);  		}  		acpi_gbl_prev_thread_id = thread_id; @@ -169,17 +192,18 @@ acpi_ut_debug_print (  	 * Display the module name, current line number, thread ID (if requested),  	 * current procedure nesting level, and the current procedure name  	 */ -	acpi_os_printf ("%8s-%04ld ", dbg_info->module_name, line_number); +	acpi_os_printf("%8s-%04ld ", module_name, line_number);  	if (ACPI_LV_THREADS & acpi_dbg_level) { -		acpi_os_printf ("[%04lX] ", thread_id); +		acpi_os_printf("[%04lX] ", thread_id);  	} -	acpi_os_printf ("[%02ld] %-22.22s: ", -		acpi_gbl_nesting_level, dbg_info->proc_name); +	acpi_os_printf("[%02ld] %-22.22s: ", +		       acpi_gbl_nesting_level, +		       acpi_ut_trim_function_name(function_name)); -	va_start (args, format); -	acpi_os_vprintf (format, args); +	va_start(args, format); +	acpi_os_vprintf(format, args);  }  EXPORT_SYMBOL(acpi_ut_debug_print); @@ -190,10 +214,9 @@ EXPORT_SYMBOL(acpi_ut_debug_print);   *   * PARAMETERS:  requested_debug_level - Requested debug print level   *              line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Format              - Printf format field   *              ...                 - Optional printf arguments   * @@ -204,37 +227,33 @@ EXPORT_SYMBOL(acpi_ut_debug_print);   *   ******************************************************************************/ -void  ACPI_INTERNAL_VAR_XFACE -acpi_ut_debug_print_raw ( -	u32                             requested_debug_level, -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	char                            *format, -	...) +void ACPI_INTERNAL_VAR_XFACE +acpi_ut_debug_print_raw(u32 requested_debug_level, +			u32 line_number, +			const char *function_name, +			char *module_name, u32 component_id, char *format, ...)  { -	va_list                 args; - +	va_list args;  	if (!(requested_debug_level & acpi_dbg_level) || -		!(dbg_info->component_id & acpi_dbg_layer)) { +	    !(component_id & acpi_dbg_layer)) {  		return;  	} -	va_start (args, format); -	acpi_os_vprintf (format, args); +	va_start(args, format); +	acpi_os_vprintf(format, args);  } -EXPORT_SYMBOL(acpi_ut_debug_print_raw); +EXPORT_SYMBOL(acpi_ut_debug_print_raw);  /*******************************************************************************   *   * FUNCTION:    acpi_ut_trace   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *   * RETURN:      None   * @@ -244,29 +263,28 @@ EXPORT_SYMBOL(acpi_ut_debug_print_raw);   ******************************************************************************/  void -acpi_ut_trace ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info) +acpi_ut_trace(u32 line_number, +	      const char *function_name, char *module_name, u32 component_id)  {  	acpi_gbl_nesting_level++; -	acpi_ut_track_stack_ptr (); +	acpi_ut_track_stack_ptr(); -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s\n", acpi_gbl_fn_entry_str); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s\n", acpi_gbl_fn_entry_str);  } -EXPORT_SYMBOL(acpi_ut_trace); +EXPORT_SYMBOL(acpi_ut_trace);  /*******************************************************************************   *   * FUNCTION:    acpi_ut_trace_ptr   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Pointer             - Pointer to display   *   * RETURN:      None @@ -277,28 +295,27 @@ EXPORT_SYMBOL(acpi_ut_trace);   ******************************************************************************/  void -acpi_ut_trace_ptr ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	void                            *pointer) +acpi_ut_trace_ptr(u32 line_number, +		  const char *function_name, +		  char *module_name, u32 component_id, void *pointer)  {  	acpi_gbl_nesting_level++; -	acpi_ut_track_stack_ptr (); +	acpi_ut_track_stack_ptr(); -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s %p\n", acpi_gbl_fn_entry_str, pointer); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s %p\n", acpi_gbl_fn_entry_str, +			    pointer);  } -  /*******************************************************************************   *   * FUNCTION:    acpi_ut_trace_str   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              String              - Additional string to display   *   * RETURN:      None @@ -309,29 +326,28 @@ acpi_ut_trace_ptr (   ******************************************************************************/  void -acpi_ut_trace_str ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	char                            *string) +acpi_ut_trace_str(u32 line_number, +		  const char *function_name, +		  char *module_name, u32 component_id, char *string)  {  	acpi_gbl_nesting_level++; -	acpi_ut_track_stack_ptr (); +	acpi_ut_track_stack_ptr(); -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s %s\n", acpi_gbl_fn_entry_str, string); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s %s\n", acpi_gbl_fn_entry_str, +			    string);  } -  /*******************************************************************************   *   * FUNCTION:    acpi_ut_trace_u32   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Integer             - Integer to display   *   * RETURN:      None @@ -342,29 +358,28 @@ acpi_ut_trace_str (   ******************************************************************************/  void -acpi_ut_trace_u32 ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	u32                             integer) +acpi_ut_trace_u32(u32 line_number, +		  const char *function_name, +		  char *module_name, u32 component_id, u32 integer)  {  	acpi_gbl_nesting_level++; -	acpi_ut_track_stack_ptr (); +	acpi_ut_track_stack_ptr(); -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s %08X\n", acpi_gbl_fn_entry_str, integer); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s %08X\n", acpi_gbl_fn_entry_str, +			    integer);  } -  /*******************************************************************************   *   * FUNCTION:    acpi_ut_exit   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *   * RETURN:      None   * @@ -374,28 +389,27 @@ acpi_ut_trace_u32 (   ******************************************************************************/  void -acpi_ut_exit ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info) +acpi_ut_exit(u32 line_number, +	     const char *function_name, char *module_name, u32 component_id)  { -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s\n", acpi_gbl_fn_exit_str); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s\n", acpi_gbl_fn_exit_str);  	acpi_gbl_nesting_level--;  } -EXPORT_SYMBOL(acpi_ut_exit); +EXPORT_SYMBOL(acpi_ut_exit);  /*******************************************************************************   *   * FUNCTION:    acpi_ut_status_exit   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Status              - Exit status code   *   * RETURN:      None @@ -406,37 +420,38 @@ EXPORT_SYMBOL(acpi_ut_exit);   ******************************************************************************/  void -acpi_ut_status_exit ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	acpi_status                     status) +acpi_ut_status_exit(u32 line_number, +		    const char *function_name, +		    char *module_name, u32 component_id, acpi_status status)  { -	if (ACPI_SUCCESS (status)) { -		acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -				"%s %s\n", acpi_gbl_fn_exit_str, -				acpi_format_exception (status)); -	} -	else { -		acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -				"%s ****Exception****: %s\n", acpi_gbl_fn_exit_str, -				acpi_format_exception (status)); +	if (ACPI_SUCCESS(status)) { +		acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +				    line_number, function_name, module_name, +				    component_id, "%s %s\n", +				    acpi_gbl_fn_exit_str, +				    acpi_format_exception(status)); +	} else { +		acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +				    line_number, function_name, module_name, +				    component_id, "%s ****Exception****: %s\n", +				    acpi_gbl_fn_exit_str, +				    acpi_format_exception(status));  	}  	acpi_gbl_nesting_level--;  } -EXPORT_SYMBOL(acpi_ut_status_exit); +EXPORT_SYMBOL(acpi_ut_status_exit);  /*******************************************************************************   *   * FUNCTION:    acpi_ut_value_exit   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Value               - Value to be printed with exit msg   *   * RETURN:      None @@ -447,30 +462,29 @@ EXPORT_SYMBOL(acpi_ut_status_exit);   ******************************************************************************/  void -acpi_ut_value_exit ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	acpi_integer                    value) +acpi_ut_value_exit(u32 line_number, +		   const char *function_name, +		   char *module_name, u32 component_id, acpi_integer value)  { -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s %8.8X%8.8X\n", acpi_gbl_fn_exit_str, -			ACPI_FORMAT_UINT64 (value)); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s %8.8X%8.8X\n", +			    acpi_gbl_fn_exit_str, ACPI_FORMAT_UINT64(value));  	acpi_gbl_nesting_level--;  } -EXPORT_SYMBOL(acpi_ut_value_exit); +EXPORT_SYMBOL(acpi_ut_value_exit);  /*******************************************************************************   *   * FUNCTION:    acpi_ut_ptr_exit   *   * PARAMETERS:  line_number         - Caller's line number - *              dbg_info            - Contains: - *                  proc_name           - Caller's procedure name - *                  module_name         - Caller's module name - *                  component_id        - Caller's component ID + *              function_name       - Caller's procedure name + *              module_name         - Caller's module name + *              component_id        - Caller's component ID   *              Ptr                 - Pointer to display   *   * RETURN:      None @@ -481,21 +495,20 @@ EXPORT_SYMBOL(acpi_ut_value_exit);   ******************************************************************************/  void -acpi_ut_ptr_exit ( -	u32                             line_number, -	struct acpi_debug_print_info    *dbg_info, -	u8                              *ptr) +acpi_ut_ptr_exit(u32 line_number, +		 const char *function_name, +		 char *module_name, u32 component_id, u8 * ptr)  { -	acpi_ut_debug_print (ACPI_LV_FUNCTIONS, line_number, dbg_info, -			"%s %p\n", acpi_gbl_fn_exit_str, ptr); +	acpi_ut_debug_print(ACPI_LV_FUNCTIONS, +			    line_number, function_name, module_name, +			    component_id, "%s %p\n", acpi_gbl_fn_exit_str, ptr);  	acpi_gbl_nesting_level--;  }  #endif -  /*******************************************************************************   *   * FUNCTION:    acpi_ut_dump_buffer @@ -511,23 +524,17 @@ acpi_ut_ptr_exit (   *   ******************************************************************************/ -void -acpi_ut_dump_buffer ( -	u8                              *buffer, -	u32                             count, -	u32                             display, -	u32                             component_id) +void acpi_ut_dump_buffer(u8 * buffer, u32 count, u32 display, u32 component_id)  { -	acpi_native_uint                i = 0; -	acpi_native_uint                j; -	u32                             temp32; -	u8                              buf_char; - +	acpi_native_uint i = 0; +	acpi_native_uint j; +	u32 temp32; +	u8 buf_char;  	/* Only dump the buffer if tracing is enabled */  	if (!((ACPI_LV_TABLES & acpi_dbg_level) && -		(component_id & acpi_dbg_layer))) { +	      (component_id & acpi_dbg_layer))) {  		return;  	} @@ -540,7 +547,7 @@ acpi_ut_dump_buffer (  	while (i < count) {  		/* Print current offset */ -		acpi_os_printf ("%6.4X: ", (u32) i); +		acpi_os_printf("%6.4X: ", (u32) i);  		/* Print 16 hex chars */ @@ -548,73 +555,66 @@ acpi_ut_dump_buffer (  			if (i + j >= count) {  				/* Dump fill spaces */ -				acpi_os_printf ("%*s", ((display * 2) + 1), " "); -				j += display; +				acpi_os_printf("%*s", ((display * 2) + 1), " "); +				j += (acpi_native_uint) display;  				continue;  			}  			switch (display) { -			default:    /* Default is BYTE display */ +			default:	/* Default is BYTE display */ -				acpi_os_printf ("%02X ", buffer[i + j]); +				acpi_os_printf("%02X ", buffer[i + j]);  				break; -  			case DB_WORD_DISPLAY: -				ACPI_MOVE_16_TO_32 (&temp32, &buffer[i + j]); -				acpi_os_printf ("%04X ", temp32); +				ACPI_MOVE_16_TO_32(&temp32, &buffer[i + j]); +				acpi_os_printf("%04X ", temp32);  				break; -  			case DB_DWORD_DISPLAY: -				ACPI_MOVE_32_TO_32 (&temp32, &buffer[i + j]); -				acpi_os_printf ("%08X ", temp32); +				ACPI_MOVE_32_TO_32(&temp32, &buffer[i + j]); +				acpi_os_printf("%08X ", temp32);  				break; -  			case DB_QWORD_DISPLAY: -				ACPI_MOVE_32_TO_32 (&temp32, &buffer[i + j]); -				acpi_os_printf ("%08X", temp32); +				ACPI_MOVE_32_TO_32(&temp32, &buffer[i + j]); +				acpi_os_printf("%08X", temp32); -				ACPI_MOVE_32_TO_32 (&temp32, &buffer[i + j + 4]); -				acpi_os_printf ("%08X ", temp32); +				ACPI_MOVE_32_TO_32(&temp32, &buffer[i + j + 4]); +				acpi_os_printf("%08X ", temp32);  				break;  			} -			j += display; +			j += (acpi_native_uint) display;  		}  		/* -		 * Print the ASCII equivalent characters -		 * But watch out for the bad unprintable ones... +		 * Print the ASCII equivalent characters but watch out for the bad +		 * unprintable ones (printable chars are 0x20 through 0x7E)  		 */ -		acpi_os_printf (" "); +		acpi_os_printf(" ");  		for (j = 0; j < 16; j++) {  			if (i + j >= count) { -				acpi_os_printf ("\n"); +				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 ("."); +			if (ACPI_IS_PRINT(buf_char)) { +				acpi_os_printf("%c", buf_char); +			} else { +				acpi_os_printf(".");  			}  		}  		/* Done with that line. */ -		acpi_os_printf ("\n"); +		acpi_os_printf("\n");  		i += 16;  	}  	return;  } -  | 
