1// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 2/******************************************************************************* 3 * 4 * Module Name: utxferror - Various error/warning output functions 5 * 6 ******************************************************************************/ 7 8#define EXPORT_ACPI_INTERFACES 9 10#include <acpi/acpi.h> 11#include "accommon.h" 12 13#define _COMPONENT ACPI_UTILITIES 14ACPI_MODULE_NAME("utxferror") 15 16/* 17 * This module is used for the in-kernel ACPICA as well as the ACPICA 18 * tools/applications. 19 */ 20#ifndef ACPI_NO_ERROR_MESSAGES /* Entire module */ 21/******************************************************************************* 22 * 23 * FUNCTION: acpi_error 24 * 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 args 28 * 29 * RETURN: None 30 * 31 * DESCRIPTION: Print "ACPI Error" message with module/line/version info 32 * 33 ******************************************************************************/ 34void ACPI_INTERNAL_VAR_XFACE 35acpi_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_exception 55 * 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/formatted 59 * format - Printf format string + additional args 60 * 61 * RETURN: None 62 * 63 * DESCRIPTION: Print an "ACPI Error" message with module/line/version 64 * info as well as decoded acpi_status. 65 * 66 ******************************************************************************/ 67void ACPI_INTERNAL_VAR_XFACE 68acpi_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_warning 98 * 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 args 102 * 103 * RETURN: None 104 * 105 * DESCRIPTION: Print "ACPI Warning" message with module/line/version info 106 * 107 ******************************************************************************/ 108void ACPI_INTERNAL_VAR_XFACE 109acpi_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_info 129 * 130 * PARAMETERS: format - Printf format string + additional args 131 * 132 * RETURN: None 133 * 134 * DESCRIPTION: Print generic "ACPI:" information message. There is no 135 * 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_error 158 * 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 args 162 * 163 * RETURN: None 164 * 165 * DESCRIPTION: Print "ACPI Firmware Error" message with module/line/version 166 * info 167 * 168 ******************************************************************************/ 169void ACPI_INTERNAL_VAR_XFACE 170acpi_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_exception 191 * 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/formatted 195 * format - Printf format string + additional args 196 * 197 * RETURN: None 198 * 199 * DESCRIPTION: Print an "ACPI Firmware Error" message with module/line/version 200 * info as well as decoded acpi_status. 201 * 202 ******************************************************************************/ 203void ACPI_INTERNAL_VAR_XFACE 204acpi_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_warning 235 * 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 args 239 * 240 * RETURN: None 241 * 242 * DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version 243 * info 244 * 245 ******************************************************************************/ 246void ACPI_INTERNAL_VAR_XFACE 247acpi_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