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)