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, args: 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(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
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, args: 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, args: arg_list);
147 acpi_os_printf(format: "\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, args: 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(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
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, args: 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

source code of linux/drivers/acpi/acpica/utxferror.c