1 /*++ 2 3 Copyright (c) 2004 - 2007, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 EfiPrintLib.h 15 16 Abstract: 17 18 Light weight lib to support EFI drivers. 19 20 --*/ 21 22 #ifndef _EFI_PRINT_LIB_H_ 23 #define _EFI_PRINT_LIB_H_ 24 25 #include EFI_PROTOCOL_DEFINITION(GraphicsOutput) 26 #include EFI_PROTOCOL_DEFINITION(UgaDraw) 27 #include EFI_PROTOCOL_DEFINITION(Print) 28 29 UINTN 30 ErrorPrint ( 31 IN CONST CHAR16 *ErrorString, 32 IN CONST CHAR8 *Format, 33 ... 34 ) 35 /*++ 36 37 Routine Description: 38 39 Print function for a maximum of EFI_DRIVER_LIB_MAX_PRINT_BUFFER ascii 40 characters. 41 42 Arguments: 43 44 ErrorString - Error message printed first 45 46 Format - Ascii format string see file header for more details. 47 48 ... - Vararg list consumed by processing Format. 49 50 Returns: 51 52 Number of characters printed. 53 54 --*/ 55 ; 56 57 VOID 58 ErrorDumpHex ( 59 IN UINTN Indent, 60 IN UINTN Offset, 61 IN UINTN DataSize, 62 IN VOID *UserData 63 ) 64 /*++ 65 66 Routine Description: 67 68 Dump error info by hex. 69 70 Arguments: 71 72 Indent - Indent number 73 Offset - Offset number 74 DataSize - Size of user data 75 UserData - User data to dump 76 77 Returns: 78 79 None 80 81 --*/ 82 ; 83 84 UINTN 85 Print ( 86 IN CONST CHAR16 *Format, 87 ... 88 ) 89 /*++ 90 91 Routine Description: 92 93 Prints a formatted unicode string to the default console 94 95 Arguments: 96 97 fmt - Format string 98 99 Returns: 100 101 Length of string printed to the console 102 103 --*/ 104 ; 105 106 UINTN 107 PrintXY ( 108 IN UINTN X, 109 IN UINTN Y, 110 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Foreground, OPTIONAL 111 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Background, OPTIONAL 112 IN CHAR16 *Fmt, 113 ... 114 ) 115 /*++ 116 117 Routine Description: 118 119 Prints a formatted unicode string to the default console 120 121 Arguments: 122 123 X - X coordinate to start printing 124 125 Y - Y coordinate to start printing 126 127 ForeGround - Foreground color 128 129 BackGround - Background color 130 131 Fmt - Format string 132 133 ... - Print arguments 134 135 Returns: 136 137 Length of string printed to the console 138 139 --*/ 140 ; 141 142 UINTN 143 Aprint ( 144 IN CONST CHAR8 *Format, 145 ... 146 ) 147 /*++ 148 149 Routine Description: 150 151 Print function for a maximum of EFI_DRIVER_LIB_MAX_PRINT_BUFFER ascii 152 characters. 153 154 Arguments: 155 156 Format - Ascii format string see file header for more details. 157 158 ... - Vararg list consumed by processing Format. 159 160 Returns: 161 162 Number of characters printed. 163 164 --*/ 165 ; 166 167 UINTN 168 UPrint ( 169 IN CONST CHAR16 *Format, 170 ... 171 ) 172 /*++ 173 174 Routine Description: 175 176 Print function for a maximum of EFI_DRIVER_LIB_MAX_PRINT_BUFFER ascii 177 characters. 178 179 Arguments: 180 181 Format - Ascii format string see file header for more details. 182 183 ... - Vararg list consumed by processing Format. 184 185 Returns: 186 187 Number of characters printed. 188 189 --*/ 190 ; 191 192 UINTN 193 EFIAPI 194 VSPrint ( 195 OUT CHAR16 *StartOfBuffer, 196 IN UINTN StrLen, 197 IN CONST CHAR16 *Format, 198 IN VA_LIST Marker 199 ) 200 /*++ 201 202 Routine Description: 203 204 Prints a formatted unicode string to a buffer 205 206 Arguments: 207 208 StartOfBuffer - Output buffer to print the formatted string into 209 StrLen - Size of Str. String is truncated to this size. 210 A size of 0 means there is no limit 211 Format - The format string 212 Marker - Vararg list consumed by processing Format. 213 214 Returns: 215 216 String length returned in buffer 217 218 --*/ 219 ; 220 221 UINTN 222 SPrint ( 223 OUT CHAR16 *Buffer, 224 IN UINTN BufferSize, 225 IN CONST CHAR16 *Format, 226 ... 227 ) 228 /*++ 229 230 Routine Description: 231 232 SPrint function to process format and place the results in Buffer. 233 234 Arguments: 235 236 Buffer - Wide char buffer to print the results of the parsing of Format into. 237 238 BufferSize - Maximum number of characters to put into buffer. Zero means no 239 limit. 240 241 Format - Format string see file header for more details. 242 243 ... - Vararg list consumed by processing Format. 244 245 Returns: 246 247 Number of characters printed. 248 249 --*/ 250 ; 251 252 // 253 // BoxDraw support 254 // 255 BOOLEAN 256 IsValidEfiCntlChar ( 257 IN CHAR16 CharC 258 ) 259 /*++ 260 261 Routine Description: 262 263 Test whether a wide char is a valid control char. 264 265 Arguments: 266 267 CharC - A char 268 269 Returns: 270 271 TRUE - A control char 272 273 FALSE - Not a control char 274 275 --*/ 276 ; 277 278 BOOLEAN 279 IsValidAscii ( 280 IN CHAR16 Ascii 281 ) 282 /*++ 283 284 Routine Description: 285 286 Test whether a wide char is a normal printable char 287 288 Arguments: 289 290 Ascii - A char 291 292 Returns: 293 294 True - A normal, printable char 295 FALSE - Not a normal, printable char 296 297 --*/ 298 ; 299 300 BOOLEAN 301 LibIsValidTextGraphics ( 302 IN CHAR16 Graphic, 303 OUT CHAR8 *PcAnsi, OPTIONAL 304 OUT CHAR8 *Ascii OPTIONAL 305 ) 306 /*++ 307 308 Routine Description: 309 310 Detects if a Unicode char is for Box Drawing text graphics. 311 312 Arguments: 313 314 Graphic - Unicode char to test. 315 316 PcAnsi - Optional pointer to return PCANSI equivalent of Graphic. 317 318 Ascii - Optional pointer to return Ascii equivalent of Graphic. 319 320 Returns: 321 322 TRUE if Gpaphic is a supported Unicode Box Drawing character. 323 324 --*/ 325 ; 326 327 #endif 328