xref: /openbmc/linux/drivers/acpi/acpica/utxferror.c (revision 96de2506)
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_warning
191  *
192  * PARAMETERS:  module_name         - Caller's module name (for warning output)
193  *              line_number         - Caller's line number (for warning output)
194  *              format              - Printf format string + additional args
195  *
196  * RETURN:      None
197  *
198  * DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version
199  *              info
200  *
201  ******************************************************************************/
202 void ACPI_INTERNAL_VAR_XFACE
203 acpi_bios_warning(const char *module_name,
204 		  u32 line_number, const char *format, ...)
205 {
206 	va_list arg_list;
207 
208 	ACPI_MSG_REDIRECT_BEGIN;
209 	acpi_os_printf(ACPI_MSG_BIOS_WARNING);
210 
211 	va_start(arg_list, format);
212 	acpi_os_vprintf(format, arg_list);
213 	ACPI_MSG_SUFFIX;
214 	va_end(arg_list);
215 
216 	ACPI_MSG_REDIRECT_END;
217 }
218 
219 ACPI_EXPORT_SYMBOL(acpi_bios_warning)
220 #endif				/* ACPI_NO_ERROR_MESSAGES */
221