From bee675553c31877c58d825787232f76e4b0d1b33 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Mon, 23 Feb 2009 03:03:39 +0000 Subject: [PATCH] Rename EdkPrintLib to DxePrintLibPrint2Protocol to better reflect its functionality. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7570 6f19259b-4bc3-4df7-8a09-765794883524 --- .../DxePrintLibPrint2Protocol.inf} | 15 ++- .../PrintLib.c | 91 +++++++------------ 2 files changed, 44 insertions(+), 62 deletions(-) rename MdeModulePkg/Library/{EdkDxePrintLib/EdkDxePrintLib.inf => DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf} (72%) rename MdeModulePkg/Library/{EdkDxePrintLib => DxePrintLibPrint2Protocol}/PrintLib.c (90%) diff --git a/MdeModulePkg/Library/EdkDxePrintLib/EdkDxePrintLib.inf b/MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf similarity index 72% rename from MdeModulePkg/Library/EdkDxePrintLib/EdkDxePrintLib.inf rename to MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf index 1e0f2312c9..6f5d6e3e36 100644 --- a/MdeModulePkg/Library/EdkDxePrintLib/EdkDxePrintLib.inf +++ b/MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf @@ -1,7 +1,8 @@ #/** @file -# Instance of Print Library based on EFI_PRINT2_PROTOCOL. +# Library instance that implements Print Library class based on protocol +# gEfiPrint2ProtocolGuid. # -# Copyright (c) 2006 - 2008, Intel Corporation. +# Copyright (c) 2009, 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 @@ -15,12 +16,14 @@ [Defines] INF_VERSION = 0x00010005 - BASE_NAME = EdkDxePrintLib - FILE_GUID = 50bcb105-6634-441d-b403-659110a03ad2 + BASE_NAME = DxePrintLibPrint2Protocol + FILE_GUID = 55D460DB-8FEA-415a-B95D-70145AE0675C MODULE_TYPE = DXE_DRIVER VERSION_STRING = 1.0 LIBRARY_CLASS = PrintLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER + CONSTRUCTOR = PrintLibConstructor + # # The following information is for reference only and not required by the build tools. # @@ -38,8 +41,10 @@ [LibraryClasses] UefiBootServicesTableLib - + DebugLib [Protocols] gEfiPrint2ProtocolGuid ## CONSUMES +[Depex] + gEfiPrint2ProtocolGuid diff --git a/MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c b/MdeModulePkg/Library/DxePrintLibPrint2Protocol/PrintLib.c similarity index 90% rename from MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c rename to MdeModulePkg/Library/DxePrintLibPrint2Protocol/PrintLib.c index 78c49ad386..3923f956cb 100644 --- a/MdeModulePkg/Library/EdkDxePrintLib/PrintLib.c +++ b/MdeModulePkg/Library/DxePrintLibPrint2Protocol/PrintLib.c @@ -1,12 +1,12 @@ /** @file - Instance of Print Library based on EFI_PRINT2_PROTOCOL. + Instance of Print Library based on gEfiPrint2ProtocolGuid. Implement the print library instance by wrap the interface - provided in the Print protocol. This protocol is defined as the internal + provided in the Print2 protocol. This protocol is defined as the internal protocol related to this implementation, not in the public spec. So, this library instance is only for this code base. -Copyright (c) 2006 - 2008, Intel Corporation +Copyright (c) 2009, 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 @@ -18,44 +18,45 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #include - #include - -#include #include +#include -EFI_PRINT2_PROTOCOL *gPrintProtocol = NULL; +EFI_PRINT2_PROTOCOL *mPrint2Protocol = NULL; /** - Internal function to locate the EFI_PRINT2_PROTOCOL. + The constructor function caches the pointer to Print2 protocol. + + The constructor function locates Print2 protocol from protocol database. + It will ASSERT() if that operation fails and it will always return EFI_SUCCESS. - @retval EFI_SUCCESS EFI_PRINT2_PROTOCOL is successfuly located. - @retval EFI_NOT_FOUND EFI_PRINT2_PROTOCOL cannot be found. + @param ImageHandle The firmware allocated handle for the EFI image. + @param SystemTable A pointer to the EFI System Table. + + @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS. **/ EFI_STATUS EFIAPI -InternalLocatePrintProtocol ( - VOID +PrintLibConstructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable ) { - EFI_STATUS Status; - - if (gPrintProtocol == NULL) { - Status = gBS->LocateProtocol ( - &gEfiPrint2ProtocolGuid, - NULL, - (VOID **)&gPrintProtocol - ); - if (EFI_ERROR (Status)) { - gPrintProtocol = NULL; - return Status; - } - } - - return EFI_SUCCESS; + EFI_STATUS Status; + + Status = gBS->LocateProtocol ( + &gEfiPrint2ProtocolGuid, + NULL, + (VOID**) &mPrint2Protocol + ); + ASSERT_EFI_ERROR (Status); + ASSERT (mPrint2Protocol != NULL); + + return Status; } + /** Produces a Null-terminated Unicode string in an output buffer based on a Null-terminated Unicode format string and a VA_LIST argument list @@ -99,11 +100,7 @@ UnicodeVSPrint ( IN VA_LIST Marker ) { - if (InternalLocatePrintProtocol() != EFI_SUCCESS) { - return 0; - } - - return gPrintProtocol->VSPrint (StartOfBuffer, BufferSize, FormatString, Marker); + return mPrint2Protocol->UnicodeVSPrint (StartOfBuffer, BufferSize, FormatString, Marker); } /** @@ -197,11 +194,7 @@ UnicodeVSPrintAsciiFormat ( IN VA_LIST Marker ) { - if (InternalLocatePrintProtocol() != EFI_SUCCESS) { - return 0; - } - - return gPrintProtocol->UniVSPrintAscii (StartOfBuffer, BufferSize, FormatString, Marker); + return mPrint2Protocol->UnicodeSPrintAsciiFormat (StartOfBuffer, BufferSize, FormatString, Marker); } /** @@ -303,11 +296,7 @@ UnicodeValueToString ( IN UINTN Width ) { - if (InternalLocatePrintProtocol() != EFI_SUCCESS) { - return 0; - } - - return gPrintProtocol->UniValueToString (Buffer, Flags, Value, Width); + return mPrint2Protocol->UnicodeValueToString (Buffer, Flags, Value, Width); } /** @@ -351,11 +340,7 @@ AsciiVSPrint ( IN VA_LIST Marker ) { - if (InternalLocatePrintProtocol() != EFI_SUCCESS) { - return 0; - } - - return gPrintProtocol->AsciiVSPrint (StartOfBuffer, BufferSize, FormatString, Marker); + return mPrint2Protocol->AsciiVSPrint (StartOfBuffer, BufferSize, FormatString, Marker); } /** @@ -448,11 +433,7 @@ AsciiVSPrintUnicodeFormat ( IN VA_LIST Marker ) { - if (InternalLocatePrintProtocol() != EFI_SUCCESS) { - return 0; - } - - return gPrintProtocol->AsciiVSPrintUni (StartOfBuffer, BufferSize, FormatString, Marker); + return mPrint2Protocol->AsciiVSPrintUnicodeFormat (StartOfBuffer, BufferSize, FormatString, Marker); } /** @@ -554,9 +535,5 @@ AsciiValueToString ( IN UINTN Width ) { - if (InternalLocatePrintProtocol() != EFI_SUCCESS) { - return 0; - } - - return gPrintProtocol->AsciiValueToString (Buffer, Flags, Value, Width); + return mPrint2Protocol->AsciiValueToString (Buffer, Flags, Value, Width); } -- 2.39.2