Sync ACPICA with Intel's version 20150515.
[dragonfly.git] / sys / contrib / dev / acpica / source / components / utilities / utxferror.c
1 /*******************************************************************************
2  *
3  * Module Name: utxferror - Various error/warning output functions
4  *
5  ******************************************************************************/
6
7 /*
8  * Copyright (C) 2000 - 2015, Intel Corp.
9  * All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions, and the following disclaimer,
16  *    without modification.
17  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18  *    substantially similar to the "NO WARRANTY" disclaimer below
19  *    ("Disclaimer") and any redistribution must be conditioned upon
20  *    including a substantially similar Disclaimer requirement for further
21  *    binary redistribution.
22  * 3. Neither the names of the above-listed copyright holders nor the names
23  *    of any contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * Alternatively, this software may be distributed under the terms of the
27  * GNU General Public License ("GPL") version 2 as published by the Free
28  * Software Foundation.
29  *
30  * NO WARRANTY
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41  * POSSIBILITY OF SUCH DAMAGES.
42  */
43
44 #define EXPORT_ACPI_INTERFACES
45
46 #include "acpi.h"
47 #include "accommon.h"
48
49
50 #define _COMPONENT          ACPI_UTILITIES
51         ACPI_MODULE_NAME    ("utxferror")
52
53 /*
54  * This module is used for the in-kernel ACPICA as well as the ACPICA
55  * tools/applications.
56  */
57
58 #ifndef ACPI_NO_ERROR_MESSAGES /* Entire module */
59
60 /*******************************************************************************
61  *
62  * FUNCTION:    AcpiError
63  *
64  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
65  *              LineNumber          - Caller's line number (for error output)
66  *              Format              - Printf format string + additional args
67  *
68  * RETURN:      None
69  *
70  * DESCRIPTION: Print "ACPI Error" message with module/line/version info
71  *
72  ******************************************************************************/
73
74 void ACPI_INTERNAL_VAR_XFACE
75 AcpiError (
76     const char              *ModuleName,
77     UINT32                  LineNumber,
78     const char              *Format,
79     ...)
80 {
81     va_list                 ArgList;
82
83
84     ACPI_MSG_REDIRECT_BEGIN;
85     AcpiOsPrintf (ACPI_MSG_ERROR);
86
87     va_start (ArgList, Format);
88     AcpiOsVprintf (Format, ArgList);
89     ACPI_MSG_SUFFIX;
90     va_end (ArgList);
91
92     ACPI_MSG_REDIRECT_END;
93 }
94
95 ACPI_EXPORT_SYMBOL (AcpiError)
96
97
98 /*******************************************************************************
99  *
100  * FUNCTION:    AcpiException
101  *
102  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
103  *              LineNumber          - Caller's line number (for error output)
104  *              Status              - Status to be formatted
105  *              Format              - Printf format string + additional args
106  *
107  * RETURN:      None
108  *
109  * DESCRIPTION: Print "ACPI Exception" message with module/line/version info
110  *              and decoded ACPI_STATUS.
111  *
112  ******************************************************************************/
113
114 void ACPI_INTERNAL_VAR_XFACE
115 AcpiException (
116     const char              *ModuleName,
117     UINT32                  LineNumber,
118     ACPI_STATUS             Status,
119     const char              *Format,
120     ...)
121 {
122     va_list                 ArgList;
123
124
125     ACPI_MSG_REDIRECT_BEGIN;
126
127     /* For AE_OK, just print the message */
128
129     if (ACPI_SUCCESS (Status))
130     {
131         AcpiOsPrintf (ACPI_MSG_EXCEPTION);
132
133     }
134     else
135     {
136         AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", AcpiFormatException (Status));
137     }
138     va_start (ArgList, Format);
139     AcpiOsVprintf (Format, ArgList);
140     ACPI_MSG_SUFFIX;
141     va_end (ArgList);
142
143     ACPI_MSG_REDIRECT_END;
144 }
145
146 ACPI_EXPORT_SYMBOL (AcpiException)
147
148
149 /*******************************************************************************
150  *
151  * FUNCTION:    AcpiWarning
152  *
153  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
154  *              LineNumber          - Caller's line number (for error output)
155  *              Format              - Printf format string + additional args
156  *
157  * RETURN:      None
158  *
159  * DESCRIPTION: Print "ACPI Warning" message with module/line/version info
160  *
161  ******************************************************************************/
162
163 void ACPI_INTERNAL_VAR_XFACE
164 AcpiWarning (
165     const char              *ModuleName,
166     UINT32                  LineNumber,
167     const char              *Format,
168     ...)
169 {
170     va_list                 ArgList;
171
172
173     ACPI_MSG_REDIRECT_BEGIN;
174     AcpiOsPrintf (ACPI_MSG_WARNING);
175
176     va_start (ArgList, Format);
177     AcpiOsVprintf (Format, ArgList);
178     ACPI_MSG_SUFFIX;
179     va_end (ArgList);
180
181     ACPI_MSG_REDIRECT_END;
182 }
183
184 ACPI_EXPORT_SYMBOL (AcpiWarning)
185
186
187 /*******************************************************************************
188  *
189  * FUNCTION:    AcpiInfo
190  *
191  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
192  *              LineNumber          - Caller's line number (for error output)
193  *              Format              - Printf format string + additional args
194  *
195  * RETURN:      None
196  *
197  * DESCRIPTION: Print generic "ACPI:" information message. There is no
198  *              module/line/version info in order to keep the message simple.
199  *
200  * TBD: ModuleName and LineNumber args are not needed, should be removed.
201  *
202  ******************************************************************************/
203
204 void ACPI_INTERNAL_VAR_XFACE
205 AcpiInfo (
206     const char              *ModuleName,
207     UINT32                  LineNumber,
208     const char              *Format,
209     ...)
210 {
211     va_list                 ArgList;
212
213
214     ACPI_MSG_REDIRECT_BEGIN;
215     AcpiOsPrintf (ACPI_MSG_INFO);
216
217     va_start (ArgList, Format);
218     AcpiOsVprintf (Format, ArgList);
219     AcpiOsPrintf ("\n");
220     va_end (ArgList);
221
222     ACPI_MSG_REDIRECT_END;
223 }
224
225 ACPI_EXPORT_SYMBOL (AcpiInfo)
226
227
228 /*******************************************************************************
229  *
230  * FUNCTION:    AcpiBiosError
231  *
232  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
233  *              LineNumber          - Caller's line number (for error output)
234  *              Format              - Printf format string + additional args
235  *
236  * RETURN:      None
237  *
238  * DESCRIPTION: Print "ACPI Firmware Error" message with module/line/version
239  *              info
240  *
241  ******************************************************************************/
242
243 void ACPI_INTERNAL_VAR_XFACE
244 AcpiBiosError (
245     const char              *ModuleName,
246     UINT32                  LineNumber,
247     const char              *Format,
248     ...)
249 {
250     va_list                 ArgList;
251
252
253     ACPI_MSG_REDIRECT_BEGIN;
254     AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
255
256     va_start (ArgList, Format);
257     AcpiOsVprintf (Format, ArgList);
258     ACPI_MSG_SUFFIX;
259     va_end (ArgList);
260
261     ACPI_MSG_REDIRECT_END;
262 }
263
264 ACPI_EXPORT_SYMBOL (AcpiBiosError)
265
266
267 /*******************************************************************************
268  *
269  * FUNCTION:    AcpiBiosWarning
270  *
271  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
272  *              LineNumber          - Caller's line number (for error output)
273  *              Format              - Printf format string + additional args
274  *
275  * RETURN:      None
276  *
277  * DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version
278  *              info
279  *
280  ******************************************************************************/
281
282 void ACPI_INTERNAL_VAR_XFACE
283 AcpiBiosWarning (
284     const char              *ModuleName,
285     UINT32                  LineNumber,
286     const char              *Format,
287     ...)
288 {
289     va_list                 ArgList;
290
291
292     ACPI_MSG_REDIRECT_BEGIN;
293     AcpiOsPrintf (ACPI_MSG_BIOS_WARNING);
294
295     va_start (ArgList, Format);
296     AcpiOsVprintf (Format, ArgList);
297     ACPI_MSG_SUFFIX;
298     va_end (ArgList);
299
300     ACPI_MSG_REDIRECT_END;
301 }
302
303 ACPI_EXPORT_SYMBOL (AcpiBiosWarning)
304
305 #endif /* ACPI_NO_ERROR_MESSAGES */