From a0afd0193727f6fe4405853ac8c173707bd5296d Mon Sep 17 00:00:00 2001 From: vanjeff Date: Tue, 3 Jul 2007 08:33:07 +0000 Subject: Import DxeCorePerformanceLib DxePerformanceLib PeiPerformanceLib and EdkDxePrintLib git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2995 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c | 159 +++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c (limited to 'MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c') diff --git a/MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c b/MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c new file mode 100644 index 0000000000..7dbbcb7d73 --- /dev/null +++ b/MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c @@ -0,0 +1,159 @@ +/*++ + +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 + +--*/ + + + +// +// The package level header files this module uses +// +#include +// +// The protocols, PPI and GUID defintions for this module +// +#include +// +// The Library classes this module consumes +// +#include +#include + +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; +} -- cgit v1.2.3