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
acpi_error(const char * module_name,u32 line_number,const char * format,...)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
ACPI_EXPORT_SYMBOL(acpi_error)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
ACPI_EXPORT_SYMBOL(acpi_exception)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
ACPI_EXPORT_SYMBOL(acpi_warning)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
ACPI_EXPORT_SYMBOL(acpi_info)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
ACPI_EXPORT_SYMBOL(acpi_bios_error)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
ACPI_EXPORT_SYMBOL(acpi_bios_exception)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