1 /*******************************************************************************
2  *
3  * Module Name: utxferror - Various error/warning output functions
4  *
5  ******************************************************************************/
6 
7 /*
8  * Copyright (C) 2000 - 2014, 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 __UTXFERROR_C__
45 #define EXPORT_ACPI_INTERFACES
46 
47 #include "acpi.h"
48 #include "accommon.h"
49 
50 
51 #define _COMPONENT          ACPI_UTILITIES
52         ACPI_MODULE_NAME    ("utxferror")
53 
54 /*
55  * This module is used for the in-kernel ACPICA as well as the ACPICA
56  * tools/applications.
57  */
58 
59 /*******************************************************************************
60  *
61  * FUNCTION:    AcpiError
62  *
63  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
64  *              LineNumber          - Caller's line number (for error output)
65  *              Format              - Printf format string + additional args
66  *
67  * RETURN:      None
68  *
69  * DESCRIPTION: Print "ACPI Error" message with module/line/version info
70  *
71  ******************************************************************************/
72 
73 void ACPI_INTERNAL_VAR_XFACE
74 AcpiError (
75     const char              *ModuleName,
76     UINT32                  LineNumber,
77     const char              *Format,
78     ...)
79 {
80     va_list                 ArgList;
81 
82 
83     ACPI_MSG_REDIRECT_BEGIN;
84     AcpiOsPrintf (ACPI_MSG_ERROR);
85 
86     va_start (ArgList, Format);
87     AcpiOsVprintf (Format, ArgList);
88     ACPI_MSG_SUFFIX;
89     va_end (ArgList);
90 
91     ACPI_MSG_REDIRECT_END;
92 }
93 
94 ACPI_EXPORT_SYMBOL (AcpiError)
95 
96 
97 /*******************************************************************************
98  *
99  * FUNCTION:    AcpiException
100  *
101  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
102  *              LineNumber          - Caller's line number (for error output)
103  *              Status              - Status to be formatted
104  *              Format              - Printf format string + additional args
105  *
106  * RETURN:      None
107  *
108  * DESCRIPTION: Print "ACPI Exception" message with module/line/version info
109  *              and decoded ACPI_STATUS.
110  *
111  ******************************************************************************/
112 
113 void ACPI_INTERNAL_VAR_XFACE
114 AcpiException (
115     const char              *ModuleName,
116     UINT32                  LineNumber,
117     ACPI_STATUS             Status,
118     const char              *Format,
119     ...)
120 {
121     va_list                 ArgList;
122 
123 
124     ACPI_MSG_REDIRECT_BEGIN;
125     AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", AcpiFormatException (Status));
126 
127     va_start (ArgList, Format);
128     AcpiOsVprintf (Format, ArgList);
129     ACPI_MSG_SUFFIX;
130     va_end (ArgList);
131 
132     ACPI_MSG_REDIRECT_END;
133 }
134 
135 ACPI_EXPORT_SYMBOL (AcpiException)
136 
137 
138 /*******************************************************************************
139  *
140  * FUNCTION:    AcpiWarning
141  *
142  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
143  *              LineNumber          - Caller's line number (for error output)
144  *              Format              - Printf format string + additional args
145  *
146  * RETURN:      None
147  *
148  * DESCRIPTION: Print "ACPI Warning" message with module/line/version info
149  *
150  ******************************************************************************/
151 
152 void ACPI_INTERNAL_VAR_XFACE
153 AcpiWarning (
154     const char              *ModuleName,
155     UINT32                  LineNumber,
156     const char              *Format,
157     ...)
158 {
159     va_list                 ArgList;
160 
161 
162     ACPI_MSG_REDIRECT_BEGIN;
163     AcpiOsPrintf (ACPI_MSG_WARNING);
164 
165     va_start (ArgList, Format);
166     AcpiOsVprintf (Format, ArgList);
167     ACPI_MSG_SUFFIX;
168     va_end (ArgList);
169 
170     ACPI_MSG_REDIRECT_END;
171 }
172 
173 ACPI_EXPORT_SYMBOL (AcpiWarning)
174 
175 
176 /*******************************************************************************
177  *
178  * FUNCTION:    AcpiInfo
179  *
180  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
181  *              LineNumber          - Caller's line number (for error output)
182  *              Format              - Printf format string + additional args
183  *
184  * RETURN:      None
185  *
186  * DESCRIPTION: Print generic "ACPI:" information message. There is no
187  *              module/line/version info in order to keep the message simple.
188  *
189  * TBD: ModuleName and LineNumber args are not needed, should be removed.
190  *
191  ******************************************************************************/
192 
193 void ACPI_INTERNAL_VAR_XFACE
194 AcpiInfo (
195     const char              *ModuleName,
196     UINT32                  LineNumber,
197     const char              *Format,
198     ...)
199 {
200     va_list                 ArgList;
201 
202 
203     ACPI_MSG_REDIRECT_BEGIN;
204     AcpiOsPrintf (ACPI_MSG_INFO);
205 
206     va_start (ArgList, Format);
207     AcpiOsVprintf (Format, ArgList);
208     AcpiOsPrintf ("\n");
209     va_end (ArgList);
210 
211     ACPI_MSG_REDIRECT_END;
212 }
213 
214 ACPI_EXPORT_SYMBOL (AcpiInfo)
215 
216 
217 /*******************************************************************************
218  *
219  * FUNCTION:    AcpiBiosError
220  *
221  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
222  *              LineNumber          - Caller's line number (for error output)
223  *              Format              - Printf format string + additional args
224  *
225  * RETURN:      None
226  *
227  * DESCRIPTION: Print "ACPI Firmware Error" message with module/line/version
228  *              info
229  *
230  ******************************************************************************/
231 
232 void ACPI_INTERNAL_VAR_XFACE
233 AcpiBiosError (
234     const char              *ModuleName,
235     UINT32                  LineNumber,
236     const char              *Format,
237     ...)
238 {
239     va_list                 ArgList;
240 
241 
242     ACPI_MSG_REDIRECT_BEGIN;
243     AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
244 
245     va_start (ArgList, Format);
246     AcpiOsVprintf (Format, ArgList);
247     ACPI_MSG_SUFFIX;
248     va_end (ArgList);
249 
250     ACPI_MSG_REDIRECT_END;
251 }
252 
253 ACPI_EXPORT_SYMBOL (AcpiBiosError)
254 
255 
256 /*******************************************************************************
257  *
258  * FUNCTION:    AcpiBiosWarning
259  *
260  * PARAMETERS:  ModuleName          - Caller's module name (for error output)
261  *              LineNumber          - Caller's line number (for error output)
262  *              Format              - Printf format string + additional args
263  *
264  * RETURN:      None
265  *
266  * DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version
267  *              info
268  *
269  ******************************************************************************/
270 
271 void ACPI_INTERNAL_VAR_XFACE
272 AcpiBiosWarning (
273     const char              *ModuleName,
274     UINT32                  LineNumber,
275     const char              *Format,
276     ...)
277 {
278     va_list                 ArgList;
279 
280 
281     ACPI_MSG_REDIRECT_BEGIN;
282     AcpiOsPrintf (ACPI_MSG_BIOS_WARNING);
283 
284     va_start (ArgList, Format);
285     AcpiOsVprintf (Format, ArgList);
286     ACPI_MSG_SUFFIX;
287     va_end (ArgList);
288 
289     ACPI_MSG_REDIRECT_END;
290 }
291 
292 ACPI_EXPORT_SYMBOL (AcpiBiosWarning)
293