utdebug.c revision db38bf5a57a955975986b514c6bbd7cb324fddc3
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/****************************************************************************** 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Module Name: utdebug - Debug print routines 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *****************************************************************************/ 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 877848130e53b06c22fe37a7b6acbb82bb3e9bfbaBob Moore * Copyright (C) 2000 - 2012, Intel Corp. 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * All rights reserved. 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Redistribution and use in source and binary forms, with or without 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * modification, are permitted provided that the following conditions 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * are met: 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 1. Redistributions of source code must retain the above copyright 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * notice, this list of conditions, and the following disclaimer, 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * without modification. 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2. Redistributions in binary form must reproduce at minimum a disclaimer 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * substantially similar to the "NO WARRANTY" disclaimer below 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ("Disclaimer") and any redistribution must be conditioned upon 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * including a substantially similar Disclaimer requirement for further 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * binary redistribution. 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3. Neither the names of the above-listed copyright holders nor the names 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * of any contributors may be used to endorse or promote products derived 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * from this software without specific prior written permission. 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Alternatively, this software may be distributed under the terms of the 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * GNU General Public License ("GPL") version 2 as published by the Free 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Software Foundation. 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * NO WARRANTY 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * POSSIBILITY OF SUCH DAMAGES. 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 44214f2c90b970e098e75cf719c0c5b0f1fe69b716Paul Gortmaker#include <linux/export.h> 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <acpi/acpi.h> 46e2f7a7772880458edff1b1cc5a988947229fac26Len Brown#include "accommon.h" 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _COMPONENT ACPI_UTILITIES 494be44fcd3bf648b782f4460fd06dfae6c42ded4bLen BrownACPI_MODULE_NAME("utdebug") 506d33b6be17dd6a0934396704f969ceb7f3206347Lv Zheng 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifdef ACPI_DEBUG_OUTPUT 526d33b6be17dd6a0934396704f969ceb7f3206347Lv Zhengstatic acpi_thread_id acpi_gbl_prev_thread_id = (acpi_thread_id) 0xFFFFFFFF; 534be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownstatic char *acpi_gbl_fn_entry_str = "----Entry"; 544be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownstatic char *acpi_gbl_fn_exit_str = "----Exit-"; 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 560c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore/* Local prototypes */ 570c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 584be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownstatic const char *acpi_ut_trim_function_name(const char *function_name); 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_init_stack_ptr_trace 631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 641da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: None 651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 6844f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * DESCRIPTION: Save the current CPU stack pointer at subsystem startup 691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 7044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 724be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid acpi_ut_init_stack_ptr_trace(void) 731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 741d18c05825c3f2b8933a7fc7f7528881e98deb04Bob Moore acpi_size current_sp; 751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 761d18c05825c3f2b8933a7fc7f7528881e98deb04Bob Moore acpi_gbl_entry_stack_pointer = ¤t_sp; 771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 7944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_track_stack_ptr 821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: None 841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 8744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * DESCRIPTION: Save the current CPU stack pointer 881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 8944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 914be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid acpi_ut_track_stack_ptr(void) 921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 934be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_size current_sp; 941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 951d18c05825c3f2b8933a7fc7f7528881e98deb04Bob Moore if (¤t_sp < acpi_gbl_lowest_stack_pointer) { 961d18c05825c3f2b8933a7fc7f7528881e98deb04Bob Moore acpi_gbl_lowest_stack_pointer = ¤t_sp; 971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (acpi_gbl_nesting_level > acpi_gbl_deepest_nesting) { 1001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_deepest_nesting = acpi_gbl_nesting_level; 1011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 1031da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 10444f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 1051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 1060c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * FUNCTION: acpi_ut_trim_function_name 1070c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * 1080c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * PARAMETERS: function_name - Ascii string containing a procedure name 1090c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * 1100c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * RETURN: Updated pointer to the function name 1110c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * 1120c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * DESCRIPTION: Remove the "Acpi" prefix from the function name, if present. 1136d33b6be17dd6a0934396704f969ceb7f3206347Lv Zheng * This allows compiler macros such as __FUNCTION__ to be used 1140c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * with no change to the debug output. 1150c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * 1160c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore ******************************************************************************/ 1170c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 1184be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownstatic const char *acpi_ut_trim_function_name(const char *function_name) 1190c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore{ 1200c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 1210c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore /* All Function names are longer than 4 chars, check is safe */ 1220c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 123a18ecf413ca9846becb760f7f990c2c62c15965eBob Moore if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_PREFIX_MIXED) { 12452fc0b026e99b5d5d585095148d997d5634bbc25Bob Moore 1250c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore /* This is the case where the original source has not been modified */ 1260c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 1270c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore return (function_name + 4); 1280c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore } 1290c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 130a18ecf413ca9846becb760f7f990c2c62c15965eBob Moore if (*(ACPI_CAST_PTR(u32, function_name)) == ACPI_PREFIX_LOWER) { 13152fc0b026e99b5d5d585095148d997d5634bbc25Bob Moore 1320c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore /* This is the case where the source has been 'linuxized' */ 1330c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 1340c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore return (function_name + 5); 1350c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore } 1360c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 1370c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore return (function_name); 1380c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore} 1390c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore 1400c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore/******************************************************************************* 1410c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * 14250df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore * FUNCTION: acpi_debug_print 1431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 14444f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore * PARAMETERS: requested_debug_level - Requested debug print level 1451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * line_number - Caller's line number (for error output) 146f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 147f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 148f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 149ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * format - Printf format field 1501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ... - Optional printf arguments 1511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 1521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 1531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 1541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * DESCRIPTION: Print error message with prefix consisting of the module name, 1551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * line number, and component ID. 1561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 15744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 1581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1594be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid ACPI_INTERNAL_VAR_XFACE 16050df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Mooreacpi_debug_print(u32 requested_debug_level, 16150df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore u32 line_number, 16250df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore const char *function_name, 16350df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore const char *module_name, 16450df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore u32 component_id, const char *format, ...) 1651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 1668313524a0d466f451a62709aaedf988d8257b21cBob Moore acpi_thread_id thread_id; 1674be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown va_list args; 1681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 169db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if debug output enabled */ 170db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 171db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (!ACPI_IS_DEBUG_ENABLED(requested_debug_level, component_id)) { 1721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return; 1731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 1761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Thread tracking and context switch notification 1771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1784be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown thread_id = acpi_os_get_thread_id(); 1791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (thread_id != acpi_gbl_prev_thread_id) { 1801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (ACPI_LV_THREADS & acpi_dbg_level) { 1814be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf 18228eb3fcf8762a3b52f4fef5af29dce50d23c7151Lin Ming ("\n**** Context Switch from TID %u to TID %u ****\n\n", 18328eb3fcf8762a3b52f4fef5af29dce50d23c7151Lin Ming (u32)acpi_gbl_prev_thread_id, (u32)thread_id); 1841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_prev_thread_id = thread_id; 1871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 1901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Display the module name, current line number, thread ID (if requested), 1911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * current procedure nesting level, and the current procedure name 1921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 1934be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%8s-%04ld ", module_name, line_number); 1941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (ACPI_LV_THREADS & acpi_dbg_level) { 19628eb3fcf8762a3b52f4fef5af29dce50d23c7151Lin Ming acpi_os_printf("[%u] ", (u32)thread_id); 1971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 1981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 1994be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("[%02ld] %-22.22s: ", 2004be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_gbl_nesting_level, 2014be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_ut_trim_function_name(function_name)); 2021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2034be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown va_start(args, format); 2044be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_vprintf(format, args); 205507f046c4dd17e9c94b5130ba184f8da90504685Bob Moore va_end(args); 2061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 2071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 20850df4d8b0f6e1971b930f3158c9ee0e4263e636dBob MooreACPI_EXPORT_SYMBOL(acpi_debug_print) 2091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 21044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 2111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 21250df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore * FUNCTION: acpi_debug_print_raw 2131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: requested_debug_level - Requested debug print level 2151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * line_number - Caller's line number 216f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 217f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 218f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 219ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * format - Printf format field 2201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * ... - Optional printf arguments 2211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 2231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 22473a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Print message with no headers. Has same interface as 2251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * debug_print so that the same macros can be used. 2261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 22744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 2284be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownvoid ACPI_INTERNAL_VAR_XFACE 22950df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Mooreacpi_debug_print_raw(u32 requested_debug_level, 23050df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore u32 line_number, 23150df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore const char *function_name, 23250df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore const char *module_name, 23350df4d8b0f6e1971b930f3158c9ee0e4263e636dBob Moore u32 component_id, const char *format, ...) 2341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2354be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown va_list args; 2361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 237db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if debug output enabled */ 238db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 239db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (!ACPI_IS_DEBUG_ENABLED(requested_debug_level, component_id)) { 2401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return; 2411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 2421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2434be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown va_start(args, format); 2444be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_vprintf(format, args); 245507f046c4dd17e9c94b5130ba184f8da90504685Bob Moore va_end(args); 2461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 2471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 24850df4d8b0f6e1971b930f3158c9ee0e4263e636dBob MooreACPI_EXPORT_SYMBOL(acpi_debug_print_raw) 2491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 25044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 2511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_trace 2531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 255f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 256f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 257f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 2581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 2601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 26173a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is 2621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level 2631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 26444f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 2651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 2664be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_trace(u32 line_number, 2674b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *function_name, 2684b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, u32 component_id) 2691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 2701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level++; 2724be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_ut_track_stack_ptr(); 2731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 274db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 275db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 276db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 277db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 278db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 279db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s\n", acpi_gbl_fn_entry_str); 280db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 2811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 2821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 2838313524a0d466f451a62709aaedf988d8257b21cBob MooreACPI_EXPORT_SYMBOL(acpi_ut_trace) 2841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 28544f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 2861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_trace_ptr 2881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 290f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 291f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 292f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 293ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * pointer - Pointer to display 2941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 2951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 2961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 29773a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is 2981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level 2991da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 30044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 3011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 3024be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_trace_ptr(u32 line_number, 3034be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown const char *function_name, 3044b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, u32 component_id, void *pointer) 3051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 30668aafc35161dcc9d365a32c2f9f077aedc61754dBob Moore 3071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level++; 3084be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_ut_track_stack_ptr(); 3091da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 310db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 311db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 312db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 313db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 314db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 315db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s %p\n", acpi_gbl_fn_entry_str, 316db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore pointer); 317db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 3181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 3191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 32044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 3211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_trace_str 3231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 325f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 326f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 327f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 328ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * string - Additional string to display 3291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 3311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 33273a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is 3331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level 3341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 33544f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 3361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 3384be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_trace_str(u32 line_number, 3394be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown const char *function_name, 3404b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, u32 component_id, char *string) 3411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level++; 3444be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_ut_track_stack_ptr(); 3451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 346db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 347db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 348db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 349db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 350db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 351db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s %s\n", acpi_gbl_fn_entry_str, 352db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore string); 353db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 3541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 3551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 35644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 3571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_trace_u32 3591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 361f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 362f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 363f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 364ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * integer - Integer to display 3651da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 3671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 36873a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function entry trace. Prints only if TRACE_FUNCTIONS bit is 3691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level 3701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 37144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 3721da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 3744be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_trace_u32(u32 line_number, 3754be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown const char *function_name, 3764b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, u32 component_id, u32 integer) 3771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 3781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 3791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level++; 3804be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_ut_track_stack_ptr(); 3811da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 382db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 383db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 384db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 385db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 386db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 387db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s %08X\n", 388db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_gbl_fn_entry_str, integer); 389db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 3901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 3911da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 39244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 3931da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_exit 3951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 3961da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 397f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 398f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 399f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 4001da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 4021da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 40373a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is 4041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level 4051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 40644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 4071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 4094be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_exit(u32 line_number, 4104b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *function_name, 4114b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, u32 component_id) 4121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 414db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 415db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 416db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 417db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 418db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 419db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s\n", acpi_gbl_fn_exit_str); 420db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 4211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level--; 4231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 4241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4258313524a0d466f451a62709aaedf988d8257b21cBob MooreACPI_EXPORT_SYMBOL(acpi_ut_exit) 4261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 42744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 4281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_status_exit 4301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 432f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 433f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 434f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 435ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * status - Exit status code 4361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 4381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 43973a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is 4401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level. Prints exit status also. 4411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 44244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 4431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 4444be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_status_exit(u32 line_number, 4454be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown const char *function_name, 4464b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, 4474b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore u32 component_id, acpi_status status) 4481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 450db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 451db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 452db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 453db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_SUCCESS(status)) { 454db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 455db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, 456db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore module_name, component_id, "%s %s\n", 457db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_gbl_fn_exit_str, 458db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_format_exception(status)); 459db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } else { 460db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 461db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, 462db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore module_name, component_id, 463db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore "%s ****Exception****: %s\n", 464db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_gbl_fn_exit_str, 465db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_format_exception(status)); 466db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 4671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 4681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4691da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level--; 4701da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 4711da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 4728313524a0d466f451a62709aaedf988d8257b21cBob MooreACPI_EXPORT_SYMBOL(acpi_ut_status_exit) 4731da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 47444f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 4751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_value_exit 4771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4781da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 479f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 480f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 481f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 482ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * value - Value to be printed with exit msg 4831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 4841da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 4851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 48673a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is 4871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level. Prints exit value also. 4881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 48944f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 4901da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 4914be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_value_exit(u32 line_number, 4924be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown const char *function_name, 4935df7e6cb42da36c7d878239bebc81907b15f3943Bob Moore const char *module_name, u32 component_id, u64 value) 4941da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 4951da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 496db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 497db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 498db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 499db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 500db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 501db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s %8.8X%8.8X\n", 502db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_gbl_fn_exit_str, 503db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore ACPI_FORMAT_UINT64(value)); 504db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 5051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level--; 5071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 5081da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5098313524a0d466f451a62709aaedf988d8257b21cBob MooreACPI_EXPORT_SYMBOL(acpi_ut_value_exit) 5101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 51144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 5121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_ptr_exit 5141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * PARAMETERS: line_number - Caller's line number 516f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * function_name - Caller's procedure name 517f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * module_name - Caller's module name 518f9f4601f331aa1226d7a798a01950efbb388f07fRobert Moore * component_id - Caller's component ID 519ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * ptr - Pointer to display 5201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 5221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 52373a3090a2160fb01317f5a44af6ee5a064a29625Bob Moore * DESCRIPTION: Function exit trace. Prints only if TRACE_FUNCTIONS bit is 5241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * set in debug_level. Prints exit value also. 5251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 52644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 5271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid 5284be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brownacpi_ut_ptr_exit(u32 line_number, 5294be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown const char *function_name, 5304b8ed631679070c183c8ae7519d2bdb9df124ae4Bob Moore const char *module_name, u32 component_id, u8 *ptr) 5311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 5321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 533db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore /* Check if enabled up-front for performance */ 534db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore 535db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_FUNCTIONS, component_id)) { 536db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore acpi_debug_print(ACPI_LV_FUNCTIONS, 537db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore line_number, function_name, module_name, 538db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore component_id, "%s %p\n", acpi_gbl_fn_exit_str, 539db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore ptr); 540db38bf5a57a955975986b514c6bbd7cb324fddc3Bob Moore } 5411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds acpi_gbl_nesting_level--; 5431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 5441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 5461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 54744f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore/******************************************************************************* 5481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * FUNCTION: acpi_ut_dump_buffer 5501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 551ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * PARAMETERS: buffer - Buffer to dump 552ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * count - Amount to dump, in bytes 553ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * display - BYTE, WORD, DWORD, or QWORD display 55497171c6be3088a68b403c7285d34c151f7dbfb18Bob Moore * offset - Beginning buffer offset (display only) 5551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * RETURN: None 5571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 5581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * DESCRIPTION: Generic dump buffer in both hex and ascii. 5591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 56044f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore ******************************************************************************/ 5611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 56297171c6be3088a68b403c7285d34c151f7dbfb18Bob Moorevoid acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 base_offset) 5631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 56467a119f990063f5662574f6d6414fe9bc5ece86aBob Moore u32 i = 0; 56567a119f990063f5662574f6d6414fe9bc5ece86aBob Moore u32 j; 5664be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u32 temp32; 5674be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown u8 buf_char; 5681da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5695eb691805f7ec5960fe9d5d7fc57a7fc3097bbd0Bob Moore if (!buffer) { 5705eb691805f7ec5960fe9d5d7fc57a7fc3097bbd0Bob Moore acpi_os_printf("Null Buffer Pointer in DumpBuffer!\n"); 5715eb691805f7ec5960fe9d5d7fc57a7fc3097bbd0Bob Moore return; 5725eb691805f7ec5960fe9d5d7fc57a7fc3097bbd0Bob Moore } 5735eb691805f7ec5960fe9d5d7fc57a7fc3097bbd0Bob Moore 5741da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if ((count < 4) || (count & 0x01)) { 5751da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds display = DB_BYTE_DISPLAY; 5761da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 5771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 57844f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore /* Nasty little dump buffer routine! */ 5791da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5801da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds while (i < count) { 58152fc0b026e99b5d5d585095148d997d5634bbc25Bob Moore 5821da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* Print current offset */ 5831da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 58497171c6be3088a68b403c7285d34c151f7dbfb18Bob Moore acpi_os_printf("%6.4X: ", (base_offset + i)); 5851da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5861da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* Print 16 hex chars */ 5871da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5881da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds for (j = 0; j < 16;) { 5891da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (i + j >= count) { 59052fc0b026e99b5d5d585095148d997d5634bbc25Bob Moore 59144f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore /* Dump fill spaces */ 5921da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5934be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%*s", ((display * 2) + 1), " "); 59467a119f990063f5662574f6d6414fe9bc5ece86aBob Moore j += display; 59544f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore continue; 59644f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore } 5971da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 5981da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds switch (display) { 599793c2388cae3fd023b3b5166354931752d42353cBob Moore case DB_BYTE_DISPLAY: 6004be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown default: /* Default is BYTE display */ 6011da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 60267a119f990063f5662574f6d6414fe9bc5ece86aBob Moore acpi_os_printf("%02X ", 60367a119f990063f5662574f6d6414fe9bc5ece86aBob Moore buffer[(acpi_size) i + j]); 6041da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds break; 6051da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6061da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case DB_WORD_DISPLAY: 6071da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 60867a119f990063f5662574f6d6414fe9bc5ece86aBob Moore ACPI_MOVE_16_TO_32(&temp32, 60967a119f990063f5662574f6d6414fe9bc5ece86aBob Moore &buffer[(acpi_size) i + j]); 6104be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%04X ", temp32); 6111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds break; 6121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case DB_DWORD_DISPLAY: 6141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 61567a119f990063f5662574f6d6414fe9bc5ece86aBob Moore ACPI_MOVE_32_TO_32(&temp32, 61667a119f990063f5662574f6d6414fe9bc5ece86aBob Moore &buffer[(acpi_size) i + j]); 6174be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%08X ", temp32); 6181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds break; 6191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds case DB_QWORD_DISPLAY: 6211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 62267a119f990063f5662574f6d6414fe9bc5ece86aBob Moore ACPI_MOVE_32_TO_32(&temp32, 62367a119f990063f5662574f6d6414fe9bc5ece86aBob Moore &buffer[(acpi_size) i + j]); 6244be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%08X", temp32); 6251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 62667a119f990063f5662574f6d6414fe9bc5ece86aBob Moore ACPI_MOVE_32_TO_32(&temp32, 62767a119f990063f5662574f6d6414fe9bc5ece86aBob Moore &buffer[(acpi_size) i + j + 62867a119f990063f5662574f6d6414fe9bc5ece86aBob Moore 4]); 6294be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%08X ", temp32); 6301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds break; 6311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 63244f6c01242da4e162f28d8e1216a8c7a91174605Robert Moore 63367a119f990063f5662574f6d6414fe9bc5ece86aBob Moore j += display; 6341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 6351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* 6370c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * Print the ASCII equivalent characters but watch out for the bad 6380c9938cc75057c0fca1af55a55dcfc2842436695Robert Moore * unprintable ones (printable chars are 0x20 through 0x7E) 6391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 6404be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf(" "); 6411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds for (j = 0; j < 16; j++) { 6421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if (i + j >= count) { 6434be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("\n"); 6441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return; 6451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 6461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 64767a119f990063f5662574f6d6414fe9bc5ece86aBob Moore buf_char = buffer[(acpi_size) i + j]; 6484be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown if (ACPI_IS_PRINT(buf_char)) { 6494be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("%c", buf_char); 6504be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown } else { 6514be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("."); 6521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 6531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 6541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds /* Done with that line. */ 6561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6574be44fcd3bf648b782f4460fd06dfae6c42ded4bLen Brown acpi_os_printf("\n"); 6581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds i += 16; 6591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } 6601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 6611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds return; 6621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 663793c2388cae3fd023b3b5166354931752d42353cBob Moore 664793c2388cae3fd023b3b5166354931752d42353cBob Moore/******************************************************************************* 665793c2388cae3fd023b3b5166354931752d42353cBob Moore * 66697171c6be3088a68b403c7285d34c151f7dbfb18Bob Moore * FUNCTION: acpi_ut_debug_dump_buffer 667793c2388cae3fd023b3b5166354931752d42353cBob Moore * 668ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * PARAMETERS: buffer - Buffer to dump 669ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * count - Amount to dump, in bytes 670ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * display - BYTE, WORD, DWORD, or QWORD display 671ba494beeaa69bc0fb01eb89464ad5d57d26e3901Bob Moore * component_ID - Caller's component ID 672793c2388cae3fd023b3b5166354931752d42353cBob Moore * 673793c2388cae3fd023b3b5166354931752d42353cBob Moore * RETURN: None 674793c2388cae3fd023b3b5166354931752d42353cBob Moore * 675793c2388cae3fd023b3b5166354931752d42353cBob Moore * DESCRIPTION: Generic dump buffer in both hex and ascii. 676793c2388cae3fd023b3b5166354931752d42353cBob Moore * 677793c2388cae3fd023b3b5166354931752d42353cBob Moore ******************************************************************************/ 678793c2388cae3fd023b3b5166354931752d42353cBob Moore 67997171c6be3088a68b403c7285d34c151f7dbfb18Bob Moorevoid 68097171c6be3088a68b403c7285d34c151f7dbfb18Bob Mooreacpi_ut_debug_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id) 681793c2388cae3fd023b3b5166354931752d42353cBob Moore{ 682793c2388cae3fd023b3b5166354931752d42353cBob Moore 683793c2388cae3fd023b3b5166354931752d42353cBob Moore /* Only dump the buffer if tracing is enabled */ 684793c2388cae3fd023b3b5166354931752d42353cBob Moore 685793c2388cae3fd023b3b5166354931752d42353cBob Moore if (!((ACPI_LV_TABLES & acpi_dbg_level) && 686793c2388cae3fd023b3b5166354931752d42353cBob Moore (component_id & acpi_dbg_layer))) { 687793c2388cae3fd023b3b5166354931752d42353cBob Moore return; 688793c2388cae3fd023b3b5166354931752d42353cBob Moore } 689793c2388cae3fd023b3b5166354931752d42353cBob Moore 69097171c6be3088a68b403c7285d34c151f7dbfb18Bob Moore acpi_ut_dump_buffer(buffer, count, display, 0); 691793c2388cae3fd023b3b5166354931752d42353cBob Moore} 692