1212700Sjkim/*******************************************************************************
2212700Sjkim *
3212700Sjkim * Module Name: utxferror - Various error/warning output functions
4212700Sjkim *
5212700Sjkim ******************************************************************************/
6212700Sjkim
7217365Sjkim/*
8245582Sjkim * Copyright (C) 2000 - 2013, Intel Corp.
9212700Sjkim * All rights reserved.
10212700Sjkim *
11217365Sjkim * Redistribution and use in source and binary forms, with or without
12217365Sjkim * modification, are permitted provided that the following conditions
13217365Sjkim * are met:
14217365Sjkim * 1. Redistributions of source code must retain the above copyright
15217365Sjkim *    notice, this list of conditions, and the following disclaimer,
16217365Sjkim *    without modification.
17217365Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
18217365Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
19217365Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
20217365Sjkim *    including a substantially similar Disclaimer requirement for further
21217365Sjkim *    binary redistribution.
22217365Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
23217365Sjkim *    of any contributors may be used to endorse or promote products derived
24217365Sjkim *    from this software without specific prior written permission.
25212700Sjkim *
26217365Sjkim * Alternatively, this software may be distributed under the terms of the
27217365Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
28217365Sjkim * Software Foundation.
29212700Sjkim *
30217365Sjkim * NO WARRANTY
31217365Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
32217365Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
33217365Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
34217365Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
35217365Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36217365Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37217365Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38217365Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39217365Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
40217365Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
41217365Sjkim * POSSIBILITY OF SUCH DAMAGES.
42217365Sjkim */
43212700Sjkim
44212700Sjkim#define __UTXFERROR_C__
45212700Sjkim
46212761Sjkim#include <contrib/dev/acpica/include/acpi.h>
47212761Sjkim#include <contrib/dev/acpica/include/accommon.h>
48212700Sjkim
49212700Sjkim
50212700Sjkim#define _COMPONENT          ACPI_UTILITIES
51212700Sjkim        ACPI_MODULE_NAME    ("utxferror")
52212700Sjkim
53212700Sjkim/*
54212700Sjkim * This module is used for the in-kernel ACPICA as well as the ACPICA
55212700Sjkim * tools/applications.
56212700Sjkim */
57212700Sjkim
58212700Sjkim/*******************************************************************************
59212700Sjkim *
60212700Sjkim * FUNCTION:    AcpiError
61212700Sjkim *
62212700Sjkim * PARAMETERS:  ModuleName          - Caller's module name (for error output)
63212700Sjkim *              LineNumber          - Caller's line number (for error output)
64212700Sjkim *              Format              - Printf format string + additional args
65212700Sjkim *
66212700Sjkim * RETURN:      None
67212700Sjkim *
68212700Sjkim * DESCRIPTION: Print "ACPI Error" message with module/line/version info
69212700Sjkim *
70212700Sjkim ******************************************************************************/
71212700Sjkim
72212700Sjkimvoid ACPI_INTERNAL_VAR_XFACE
73212700SjkimAcpiError (
74212700Sjkim    const char              *ModuleName,
75212700Sjkim    UINT32                  LineNumber,
76212700Sjkim    const char              *Format,
77212700Sjkim    ...)
78212700Sjkim{
79212700Sjkim    va_list                 ArgList;
80212700Sjkim
81212700Sjkim
82212700Sjkim    ACPI_MSG_REDIRECT_BEGIN;
83212700Sjkim    AcpiOsPrintf (ACPI_MSG_ERROR);
84212700Sjkim
85212700Sjkim    va_start (ArgList, Format);
86212700Sjkim    AcpiOsVprintf (Format, ArgList);
87212700Sjkim    ACPI_MSG_SUFFIX;
88212700Sjkim    va_end (ArgList);
89212700Sjkim
90212700Sjkim    ACPI_MSG_REDIRECT_END;
91212700Sjkim}
92212700Sjkim
93212700SjkimACPI_EXPORT_SYMBOL (AcpiError)
94212700Sjkim
95212700Sjkim
96212700Sjkim/*******************************************************************************
97212700Sjkim *
98212700Sjkim * FUNCTION:    AcpiException
99212700Sjkim *
100212700Sjkim * PARAMETERS:  ModuleName          - Caller's module name (for error output)
101212700Sjkim *              LineNumber          - Caller's line number (for error output)
102212700Sjkim *              Status              - Status to be formatted
103212700Sjkim *              Format              - Printf format string + additional args
104212700Sjkim *
105212700Sjkim * RETURN:      None
106212700Sjkim *
107212700Sjkim * DESCRIPTION: Print "ACPI Exception" message with module/line/version info
108212700Sjkim *              and decoded ACPI_STATUS.
109212700Sjkim *
110212700Sjkim ******************************************************************************/
111212700Sjkim
112212700Sjkimvoid ACPI_INTERNAL_VAR_XFACE
113212700SjkimAcpiException (
114212700Sjkim    const char              *ModuleName,
115212700Sjkim    UINT32                  LineNumber,
116212700Sjkim    ACPI_STATUS             Status,
117212700Sjkim    const char              *Format,
118212700Sjkim    ...)
119212700Sjkim{
120212700Sjkim    va_list                 ArgList;
121212700Sjkim
122212700Sjkim
123212700Sjkim    ACPI_MSG_REDIRECT_BEGIN;
124212700Sjkim    AcpiOsPrintf (ACPI_MSG_EXCEPTION "%s, ", AcpiFormatException (Status));
125212700Sjkim
126212700Sjkim    va_start (ArgList, Format);
127212700Sjkim    AcpiOsVprintf (Format, ArgList);
128212700Sjkim    ACPI_MSG_SUFFIX;
129212700Sjkim    va_end (ArgList);
130212700Sjkim
131212700Sjkim    ACPI_MSG_REDIRECT_END;
132212700Sjkim}
133212700Sjkim
134212700SjkimACPI_EXPORT_SYMBOL (AcpiException)
135212700Sjkim
136212700Sjkim
137212700Sjkim/*******************************************************************************
138212700Sjkim *
139212700Sjkim * FUNCTION:    AcpiWarning
140212700Sjkim *
141212700Sjkim * PARAMETERS:  ModuleName          - Caller's module name (for error output)
142212700Sjkim *              LineNumber          - Caller's line number (for error output)
143212700Sjkim *              Format              - Printf format string + additional args
144212700Sjkim *
145212700Sjkim * RETURN:      None
146212700Sjkim *
147212700Sjkim * DESCRIPTION: Print "ACPI Warning" message with module/line/version info
148212700Sjkim *
149212700Sjkim ******************************************************************************/
150212700Sjkim
151212700Sjkimvoid ACPI_INTERNAL_VAR_XFACE
152212700SjkimAcpiWarning (
153212700Sjkim    const char              *ModuleName,
154212700Sjkim    UINT32                  LineNumber,
155212700Sjkim    const char              *Format,
156212700Sjkim    ...)
157212700Sjkim{
158212700Sjkim    va_list                 ArgList;
159212700Sjkim
160212700Sjkim
161212700Sjkim    ACPI_MSG_REDIRECT_BEGIN;
162212700Sjkim    AcpiOsPrintf (ACPI_MSG_WARNING);
163212700Sjkim
164212700Sjkim    va_start (ArgList, Format);
165212700Sjkim    AcpiOsVprintf (Format, ArgList);
166212700Sjkim    ACPI_MSG_SUFFIX;
167212700Sjkim    va_end (ArgList);
168212700Sjkim
169212700Sjkim    ACPI_MSG_REDIRECT_END;
170212700Sjkim}
171212700Sjkim
172212700SjkimACPI_EXPORT_SYMBOL (AcpiWarning)
173212700Sjkim
174212700Sjkim
175212700Sjkim/*******************************************************************************
176212700Sjkim *
177212700Sjkim * FUNCTION:    AcpiInfo
178212700Sjkim *
179212700Sjkim * PARAMETERS:  ModuleName          - Caller's module name (for error output)
180212700Sjkim *              LineNumber          - Caller's line number (for error output)
181212700Sjkim *              Format              - Printf format string + additional args
182212700Sjkim *
183212700Sjkim * RETURN:      None
184212700Sjkim *
185212700Sjkim * DESCRIPTION: Print generic "ACPI:" information message. There is no
186212700Sjkim *              module/line/version info in order to keep the message simple.
187212700Sjkim *
188212700Sjkim * TBD: ModuleName and LineNumber args are not needed, should be removed.
189212700Sjkim *
190212700Sjkim ******************************************************************************/
191212700Sjkim
192212700Sjkimvoid ACPI_INTERNAL_VAR_XFACE
193212700SjkimAcpiInfo (
194212700Sjkim    const char              *ModuleName,
195212700Sjkim    UINT32                  LineNumber,
196212700Sjkim    const char              *Format,
197212700Sjkim    ...)
198212700Sjkim{
199212700Sjkim    va_list                 ArgList;
200212700Sjkim
201212761Sjkim#ifdef _KERNEL
202212761Sjkim    /* Temporarily hide too verbose printfs. */
203212761Sjkim    if (!bootverbose)
204212761Sjkim	return;
205212761Sjkim#endif
206212700Sjkim
207212700Sjkim    ACPI_MSG_REDIRECT_BEGIN;
208212700Sjkim    AcpiOsPrintf (ACPI_MSG_INFO);
209212700Sjkim
210212700Sjkim    va_start (ArgList, Format);
211212700Sjkim    AcpiOsVprintf (Format, ArgList);
212212700Sjkim    AcpiOsPrintf ("\n");
213212700Sjkim    va_end (ArgList);
214212700Sjkim
215212700Sjkim    ACPI_MSG_REDIRECT_END;
216212700Sjkim}
217212700Sjkim
218212700SjkimACPI_EXPORT_SYMBOL (AcpiInfo)
219212700Sjkim
220212700Sjkim
221238381Sjkim/*******************************************************************************
222238381Sjkim *
223238381Sjkim * FUNCTION:    AcpiBiosError
224238381Sjkim *
225238381Sjkim * PARAMETERS:  ModuleName          - Caller's module name (for error output)
226238381Sjkim *              LineNumber          - Caller's line number (for error output)
227238381Sjkim *              Format              - Printf format string + additional args
228238381Sjkim *
229238381Sjkim * RETURN:      None
230238381Sjkim *
231238381Sjkim * DESCRIPTION: Print "ACPI Firmware Error" message with module/line/version
232238381Sjkim *              info
233238381Sjkim *
234238381Sjkim ******************************************************************************/
235238381Sjkim
236238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
237238381SjkimAcpiBiosError (
238238381Sjkim    const char              *ModuleName,
239238381Sjkim    UINT32                  LineNumber,
240238381Sjkim    const char              *Format,
241238381Sjkim    ...)
242238381Sjkim{
243238381Sjkim    va_list                 ArgList;
244238381Sjkim
245238381Sjkim
246238381Sjkim    ACPI_MSG_REDIRECT_BEGIN;
247238381Sjkim    AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
248238381Sjkim
249238381Sjkim    va_start (ArgList, Format);
250238381Sjkim    AcpiOsVprintf (Format, ArgList);
251238381Sjkim    ACPI_MSG_SUFFIX;
252238381Sjkim    va_end (ArgList);
253238381Sjkim
254238381Sjkim    ACPI_MSG_REDIRECT_END;
255238381Sjkim}
256238381Sjkim
257238381SjkimACPI_EXPORT_SYMBOL (AcpiBiosError)
258238381Sjkim
259238381Sjkim
260238381Sjkim/*******************************************************************************
261238381Sjkim *
262238381Sjkim * FUNCTION:    AcpiBiosWarning
263238381Sjkim *
264238381Sjkim * PARAMETERS:  ModuleName          - Caller's module name (for error output)
265238381Sjkim *              LineNumber          - Caller's line number (for error output)
266238381Sjkim *              Format              - Printf format string + additional args
267238381Sjkim *
268238381Sjkim * RETURN:      None
269238381Sjkim *
270238381Sjkim * DESCRIPTION: Print "ACPI Firmware Warning" message with module/line/version
271238381Sjkim *              info
272238381Sjkim *
273238381Sjkim ******************************************************************************/
274238381Sjkim
275238381Sjkimvoid ACPI_INTERNAL_VAR_XFACE
276238381SjkimAcpiBiosWarning (
277238381Sjkim    const char              *ModuleName,
278238381Sjkim    UINT32                  LineNumber,
279238381Sjkim    const char              *Format,
280238381Sjkim    ...)
281238381Sjkim{
282238381Sjkim    va_list                 ArgList;
283238381Sjkim
284238381Sjkim
285238381Sjkim    ACPI_MSG_REDIRECT_BEGIN;
286238381Sjkim    AcpiOsPrintf (ACPI_MSG_BIOS_WARNING);
287238381Sjkim
288238381Sjkim    va_start (ArgList, Format);
289238381Sjkim    AcpiOsVprintf (Format, ArgList);
290238381Sjkim    ACPI_MSG_SUFFIX;
291238381Sjkim    va_end (ArgList);
292238381Sjkim
293238381Sjkim    ACPI_MSG_REDIRECT_END;
294238381Sjkim}
295238381Sjkim
296238381SjkimACPI_EXPORT_SYMBOL (AcpiBiosWarning)
297