/drivers/acpi/acpica/utxferror.c
C | 415 lines | 165 code | 54 blank | 196 comment | 11 complexity | e653ed2e42999a7ceb4e4ebcc4b0808b MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
- /*******************************************************************************
- *
- * Module Name: utxferror - Various error/warning output functions
- *
- ******************************************************************************/
- /*
- * Copyright (C) 2000 - 2011, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
- #include <acpi/acpi.h>
- #include "accommon.h"
- #include "acnamesp.h"
- #define _COMPONENT ACPI_UTILITIES
- ACPI_MODULE_NAME("utxferror")
- /*
- * This module is used for the in-kernel ACPICA as well as the ACPICA
- * tools/applications.
- *
- * For the i_aSL compiler case, the output is redirected to stderr so that
- * any of the various ACPI errors and warnings do not appear in the output
- * files, for either the compiler or disassembler portions of the tool.
- */
- #ifdef ACPI_ASL_COMPILER
- #include <stdio.h>
- extern FILE *acpi_gbl_output_file;
- #define ACPI_MSG_REDIRECT_BEGIN \
- FILE *output_file = acpi_gbl_output_file; \
- acpi_os_redirect_output (stderr);
- #define ACPI_MSG_REDIRECT_END \
- acpi_os_redirect_output (output_file);
- #else
- /*
- * non-i_aSL case - no redirection, nothing to do
- */
- #define ACPI_MSG_REDIRECT_BEGIN
- #define ACPI_MSG_REDIRECT_END
- #endif
- /*
- * Common message prefixes
- */
- #define ACPI_MSG_ERROR "ACPI Error: "
- #define ACPI_MSG_EXCEPTION "ACPI Exception: "
- #define ACPI_MSG_WARNING "ACPI Warning: "
- #define ACPI_MSG_INFO "ACPI: "
- /*
- * Common message suffix
- */
- #define ACPI_MSG_SUFFIX \
- acpi_os_printf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, module_name, line_number)
- /*******************************************************************************
- *
- * FUNCTION: acpi_error
- *
- * PARAMETERS: module_name - Caller's module name (for error output)
- * line_number - Caller's line number (for error output)
- * Format - Printf format string + additional args
- *
- * RETURN: None
- *
- * DESCRIPTION: Print "ACPI Error" message with module/line/version info
- *
- ******************************************************************************/
- void ACPI_INTERNAL_VAR_XFACE
- acpi_error(const char *module_name, u32 line_number, const char *format, ...)
- {
- va_list arg_list;
- ACPI_MSG_REDIRECT_BEGIN;
- acpi_os_printf(ACPI_MSG_ERROR);
- va_start(arg_list, format);
- acpi_os_vprintf(format, arg_list);
- ACPI_MSG_SUFFIX;
- va_end(arg_list);
- ACPI_MSG_REDIRECT_END;
- }
- ACPI_EXPORT_SYMBOL(acpi_error)
- /*******************************************************************************
- *
- * FUNCTION: acpi_exception
- *
- * PARAMETERS: module_name - Caller's module name (for error output)
- * line_number - Caller's line number (for error output)
- * Status - Status to be formatted
- * Format - Printf format string + additional args
- *
- * RETURN: None
- *
- * DESCRIPTION: Print "ACPI Exception" message with module/line/version info
- * and decoded acpi_status.
- *
- ******************************************************************************/
- void ACPI_INTERNAL_VAR_XFACE
- acpi_exception(const char *module_name,
- u32 line_number, acpi_status status, const char *format, ...)
- {
- va_list arg_list;
- ACPI_MSG_REDIRECT_BEGIN;
- acpi_os_printf(ACPI_MSG_EXCEPTION "%s, ",
- acpi_format_exception(status));
- va_start(arg_list, format);
- acpi_os_vprintf(format, arg_list);
- ACPI_MSG_SUFFIX;
- va_end(arg_list);
- ACPI_MSG_REDIRECT_END;
- }
- ACPI_EXPORT_SYMBOL(acpi_exception)
- /*******************************************************************************
- *
- * FUNCTION: acpi_warning
- *
- * PARAMETERS: module_name - Caller's module name (for error output)
- * line_number - Caller's line number (for error output)
- * Format - Printf format string + additional args
- *
- * RETURN: None
- *
- * DESCRIPTION: Print "ACPI Warning" message with module/line/version info
- *
- ******************************************************************************/
- void ACPI_INTERNAL_VAR_XFACE
- acpi_warning(const char *module_name, u32 line_number, const char *format, ...)
- {
- va_list arg_list;
- ACPI_MSG_REDIRECT_BEGIN;
- acpi_os_printf(ACPI_MSG_WARNING);
- va_start(arg_list, format);
- acpi_os_vprintf(format, arg_list);
- ACPI_MSG_SUFFIX;
- va_end(arg_list);
- ACPI_MSG_REDIRECT_END;
- }
- ACPI_EXPORT_SYMBOL(acpi_warning)
- /*******************************************************************************
- *
- * FUNCTION: acpi_info
- *
- * PARAMETERS: module_name - Caller's module name (for error output)
- * line_number - Caller's line number (for error output)
- * Format - Printf format string + additional args
- *
- * RETURN: None
- *
- * DESCRIPTION: Print generic "ACPI:" information message. There is no
- * module/line/version info in order to keep the message simple.
- *
- * TBD: module_name and line_number args are not needed, should be removed.
- *
- ******************************************************************************/
- void ACPI_INTERNAL_VAR_XFACE
- acpi_info(const char *module_name, u32 line_number, const char *format, ...)
- {
- va_list arg_list;
- ACPI_MSG_REDIRECT_BEGIN;
- acpi_os_printf(ACPI_MSG_INFO);
- va_start(arg_list, format);
- acpi_os_vprintf(format, arg_list);
- acpi_os_printf("\n");
- va_end(arg_list);
- ACPI_MSG_REDIRECT_END;
- }
- ACPI_EXPORT_SYMBOL(acpi_info)
- /*
- * The remainder of this module contains internal error functions that may
- * be configured out.
- */
- #if !defined (ACPI_NO_ERROR_MESSAGES) && !defined (ACPI_BIN_APP)
- /*******************************************************************************
- *
- * FUNCTION: acpi_ut_predefined_warning
- *
- * PARAMETERS: module_name - Caller's module name (for error output)
- * line_number - Caller's line number (for error output)
- * Pathname - Full pathname to the node
- * node_flags - From Namespace node for the method/object
- * Format - Printf format string + additional args
- *
- * RETURN: None
- *
- * DESCRIPTION: Warnings for the predefined validation module. Messages are
- * only emitted the first time a problem with a particular
- * method/object is detected. This prevents a flood of error
- * messages for methods that are repeatedly evaluated.
- *
- ******************************************************************************/
- void ACPI_INTERNAL_VAR_XFACE
- acpi_ut_predefined_warning(const char *module_name,
- u32 line_number,
- char *pathname,
- u8 node_flags, const char *format, ...)