/*++ | |
Copyright (c) 2006, Intel Corporation | |
All rights reserved. This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
Module Name: | |
PrintLib.c | |
Abstract: | |
Print Library | |
--*/ | |
static EFI_PRINT_PROTOCOL *gPrintProtocol = NULL; | |
UINTN | |
UnicodeVSPrint ( | |
OUT CHAR16 *StartOfBuffer, | |
IN UINTN BufferSize, | |
IN const CHAR16 *FormatString, | |
IN VA_LIST Marker | |
) | |
/*++ | |
Routine Description: | |
VSPrint function to process format and place the results in Buffer. Since a | |
VA_LIST is used this rountine allows the nesting of Vararg routines. Thus | |
this is the main print working routine | |
Arguments: | |
StartOfBuffer - Unicode buffer to print the results of the parsing of Format into. | |
BufferSize - Maximum number of characters to put into buffer. Zero means | |
no limit. | |
FormatString - Unicode format string see file header for more details. | |
Marker - Vararg list consumed by processing Format. | |
Returns: | |
Number of characters printed. | |
--*/ | |
{ | |
EFI_STATUS Status; | |
if (gPrintProtocol == NULL) { | |
Status = gBS->LocateProtocol ( | |
&gEfiPrintProtocolGuid, | |
NULL, | |
(VOID **)&gPrintProtocol | |
); | |
if (EFI_ERROR (Status)) { | |
gPrintProtocol = NULL; | |
} | |
if (gPrintProtocol == NULL) { | |
return 0; | |
} | |
} | |
return gPrintProtocol->VSPrint (StartOfBuffer, BufferSize, FormatString, Marker); | |
} | |
UINTN | |
UnicodeSPrint ( | |
OUT CHAR16 *StartOfBuffer, | |
IN UINTN BufferSize, | |
IN const CHAR16 *FormatString, | |
... | |
) | |
{ | |
UINTN Return; | |
VA_LIST Marker; | |
VA_START (Marker, FormatString); | |
Return = UnicodeVSPrint (StartOfBuffer, BufferSize, FormatString, Marker); | |
VA_END (Marker); | |
return Return; | |
} | |
UINTN | |
AsciiVSPrint ( | |
OUT CHAR8 *StartOfBuffer, | |
IN UINTN BufferSize, | |
IN const CHAR8 *FormatString, | |
IN VA_LIST Marker | |
) | |
/*++ | |
Routine Description: | |
VSPrint function to process format and place the results in Buffer. Since a | |
VA_LIST is used this rountine allows the nesting of Vararg routines. Thus | |
this is the main print working routine | |
Arguments: | |
StartOfBuffer - Unicode buffer to print the results of the parsing of Format into. | |
BufferSize - Maximum number of characters to put into buffer. Zero means | |
no limit. | |
FormatString - Unicode format string see file header for more details. | |
Marker - Vararg list consumed by processing Format. | |
Returns: | |
Number of characters printed. | |
--*/ | |
{ | |
return 0; | |
} | |
UINTN | |
AsciiSPrint ( | |
OUT CHAR8 *StartOfBuffer, | |
IN UINTN BufferSize, | |
IN const CHAR8 *FormatString, | |
... | |
) | |
{ | |
UINTN Return; | |
VA_LIST Marker; | |
VA_START (Marker, FormatString); | |
Return = AsciiVSPrint (StartOfBuffer, BufferSize, FormatString, Marker); | |
VA_END (Marker); | |
return Return; | |
} |