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, args: 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(exception: status)); |
83 | } |
84 | |
85 | va_start(arg_list, format); |
86 | acpi_os_vprintf(format, args: 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, args: 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, args: arg_list); |
147 | acpi_os_printf(format: "\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, args: 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(exception: status)); |
220 | } |
221 | |
222 | va_start(arg_list, format); |
223 | acpi_os_vprintf(format, args: 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, args: 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 | |