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 14 ACPI_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 ******************************************************************************/ 34 void ACPI_INTERNAL_VAR_XFACE 35 acpi_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 50 ACPI_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 ******************************************************************************/ 67 void ACPI_INTERNAL_VAR_XFACE 68 acpi_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 93 ACPI_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 ******************************************************************************/ 108 void ACPI_INTERNAL_VAR_XFACE 109 acpi_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 124 ACPI_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 ******************************************************************************/ 138 void 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 153 ACPI_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 ******************************************************************************/ 169 void ACPI_INTERNAL_VAR_XFACE 170 acpi_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 186 ACPI_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 ******************************************************************************/ 203 void ACPI_INTERNAL_VAR_XFACE 204 acpi_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 230 ACPI_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 ******************************************************************************/ 246 void ACPI_INTERNAL_VAR_XFACE 247 acpi_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 263 ACPI_EXPORT_SYMBOL(acpi_bios_warning) 264 #endif /* ACPI_NO_ERROR_MESSAGES */ 265