265 lines · c
1// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.02/*******************************************************************************3 *4 * Module Name: utxferror - Various error/warning output functions5 *6 ******************************************************************************/7 8#define EXPORT_ACPI_INTERFACES9 10#include <acpi/acpi.h>11#include "accommon.h"12 13#define _COMPONENT ACPI_UTILITIES14ACPI_MODULE_NAME("utxferror")15 16/*17 * This module is used for the in-kernel ACPICA as well as the ACPICA18 * tools/applications.19 */20#ifndef ACPI_NO_ERROR_MESSAGES /* Entire module */21/*******************************************************************************22 *23 * FUNCTION: acpi_error24 *25 * PARAMETERS: module_name - Caller's module name (for error output)26 * line_number - Caller's line number (for error output)27 * format - Printf format string + additional args28 *29 * RETURN: None30 *31 * DESCRIPTION: Print "ACPI Error" message with module/line/version info32 *33 ******************************************************************************/34void ACPI_INTERNAL_VAR_XFACE35acpi_error(const char *module_name, u32 line_number, const char *format, ...)36{37 va_list arg_list;38 39 ACPI_MSG_REDIRECT_BEGIN;40 acpi_os_printf(ACPI_MSG_ERROR);41 42 va_start(arg_list, format);43 acpi_os_vprintf(format, arg_list);44 ACPI_MSG_SUFFIX;45 va_end(arg_list);46 47 ACPI_MSG_REDIRECT_END;48}49 50ACPI_EXPORT_SYMBOL(acpi_error)51 52/*******************************************************************************53 *54 * FUNCTION: acpi_exception55 *56 * PARAMETERS: module_name - Caller's module name (for error output)57 * line_number - Caller's line number (for error output)58 * status - Status value to be decoded/formatted59 * format - Printf format string + additional args60 *61 * RETURN: None62 *63 * DESCRIPTION: Print an "ACPI Error" message with module/line/version64 * info as well as decoded acpi_status.65 *66 ******************************************************************************/67void ACPI_INTERNAL_VAR_XFACE68acpi_exception(const char *module_name,69 u32 line_number, acpi_status status, const char *format, ...)70{71 va_list arg_list;72 73 ACPI_MSG_REDIRECT_BEGIN;74 75 /* For AE_OK, just print the message */76 77 if (ACPI_SUCCESS(status)) {78 acpi_os_printf(ACPI_MSG_ERROR);79 80 } else {81 acpi_os_printf(ACPI_MSG_ERROR "%s, ",82 acpi_format_exception(status));83 }84 85 va_start(arg_list, format);86 acpi_os_vprintf(format, arg_list);87 ACPI_MSG_SUFFIX;88 va_end(arg_list);89 90 ACPI_MSG_REDIRECT_END;91}92 93ACPI_EXPORT_SYMBOL(acpi_exception)94 95/*******************************************************************************96 *97 * FUNCTION: acpi_warning98 *99 * PARAMETERS: module_name - Caller's module name (for warning output)100 * line_number - Caller's line number (for warning output)101 * format - Printf format string + additional args102 *103 * RETURN: None104 *105 * DESCRIPTION: Print "ACPI Warning" message with module/line/version info106 *107 ******************************************************************************/108void ACPI_INTERNAL_VAR_XFACE109acpi_warning(const char *module_name, u32 line_number, const char *format, ...)110{111 va_list arg_list;112 113 ACPI_MSG_REDIRECT_BEGIN;114 acpi_os_printf(ACPI_MSG_WARNING);115 116 va_start(arg_list, format);117 acpi_os_vprintf(format, arg_list);118 ACPI_MSG_SUFFIX;119 va_end(arg_list);120 121 ACPI_MSG_REDIRECT_END;122}123 124ACPI_EXPORT_SYMBOL(acpi_warning)125 126/*******************************************************************************127 *128 * FUNCTION: acpi_info129 *130 * PARAMETERS: format - Printf format string + additional args131 *132 * RETURN: None133 *134 * DESCRIPTION: Print generic "ACPI:" information message. There is no135 * module/line/version info in order to keep the message simple.136 *137 ******************************************************************************/138void ACPI_INTERNAL_VAR_XFACE acpi_info(const char *format, ...)139{140 va_list arg_list;141 142 ACPI_MSG_REDIRECT_BEGIN;143 acpi_os_printf(ACPI_MSG_INFO);144 145 va_start(arg_list, format);146 acpi_os_vprintf(format, arg_list);147 acpi_os_printf("\n");148 va_end(arg_list);149 150 ACPI_MSG_REDIRECT_END;151}152 153ACPI_EXPORT_SYMBOL(acpi_info)154 155/*******************************************************************************156 *157 * FUNCTION: acpi_bios_error158 *159 * PARAMETERS: module_name - Caller's module name (for error output)160 * line_number - Caller's line number (for error output)161 * format - Printf format string + additional args162 *163 * RETURN: None164 *165 * DESCRIPTION: Print "ACPI Firmware Error" message with module/line/version166 * info167 *168 ******************************************************************************/169void ACPI_INTERNAL_VAR_XFACE170acpi_bios_error(const char *module_name,171 u32 line_number, const char *format, ...)172{173 va_list arg_list;174 175 ACPI_MSG_REDIRECT_BEGIN;176 acpi_os_printf(ACPI_MSG_BIOS_ERROR);177 178 va_start(arg_list, format);179 acpi_os_vprintf(format, arg_list);180 ACPI_MSG_SUFFIX;181 va_end(arg_list);182 183 ACPI_MSG_REDIRECT_END;184}185 186ACPI_EXPORT_SYMBOL(acpi_bios_error)187 188/*******************************************************************************189 *190 * FUNCTION: acpi_bios_exception191 *192 * PARAMETERS: module_name - Caller's module name (for error output)193 * line_number - Caller's line number (for error output)194 * status - Status value to be decoded/formatted195 * format - Printf format string + additional args196 *197 * RETURN: None198 *199 * DESCRIPTION: Print an "ACPI Firmware Error" message with module/line/version200 * info as well as decoded acpi_status.201 *202 ******************************************************************************/203void ACPI_INTERNAL_VAR_XFACE204acpi_bios_exception(const char *module_name,205 u32 line_number,206 acpi_status status, const char *format, ...)207{208 va_list arg_list;209 210 ACPI_MSG_REDIRECT_BEGIN;211 212 /* For AE_OK, just print the message */213 214 if (ACPI_SUCCESS(status)) {215 acpi_os_printf(ACPI_MSG_BIOS_ERROR);216 217 } else {218 acpi_os_printf(ACPI_MSG_BIOS_ERROR "%s, ",219 acpi_format_exception(status));220 }221 222 va_start(arg_list, format);223 acpi_os_vprintf(format, arg_list);224 ACPI_MSG_SUFFIX;225 va_end(arg_list);226 227 ACPI_MSG_REDIRECT_END;228}229 230ACPI_EXPORT_SYMBOL(acpi_bios_exception)231 232/*******************************************************************************233 *234 * FUNCTION: acpi_bios_warning235 *236 * PARAMETERS: module_name - Caller's module name (for warning output)237 * line_number - Caller's line number (for warning output)238 * format - Printf format string + additional args239 *240 * RETURN: None241 *242 * DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version243 * info244 *245 ******************************************************************************/246void ACPI_INTERNAL_VAR_XFACE247acpi_bios_warning(const char *module_name,248 u32 line_number, const char *format, ...)249{250 va_list arg_list;251 252 ACPI_MSG_REDIRECT_BEGIN;253 acpi_os_printf(ACPI_MSG_BIOS_WARNING);254 255 va_start(arg_list, format);256 acpi_os_vprintf(format, arg_list);257 ACPI_MSG_SUFFIX;258 va_end(arg_list);259 260 ACPI_MSG_REDIRECT_END;261}262 263ACPI_EXPORT_SYMBOL(acpi_bios_warning)264#endif /* ACPI_NO_ERROR_MESSAGES */265