mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/PrintLib: Use EFI_PRINT2S_PROTOCOL for this instance
The commit updates the PrintLib instance MdeModulePkg/Library/DxePrintLibPrint2Protocol to use EFI_PRINT2S_PROTOCOL to implement the APIs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
e43adbafe8
commit
f0c74f5a6e
|
@ -36,11 +36,11 @@
|
||||||
PcdLib
|
PcdLib
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEfiPrint2ProtocolGuid ## CONSUMES
|
gEfiPrint2SProtocolGuid ## CONSUMES
|
||||||
|
|
||||||
[Pcd]
|
[Pcd]
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CONSUMES
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength ## SOMETIMES_CONSUMES
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CONSUMES
|
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength ## SOMETIMES_CONSUMES
|
||||||
|
|
||||||
[Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER]
|
[Depex.common.DXE_DRIVER, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SAL_DRIVER, Depex.common.DXE_SMM_DRIVER]
|
||||||
gEfiPrint2ProtocolGuid
|
gEfiPrint2SProtocolGuid
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
// /** @file
|
// /** @file
|
||||||
// Library instance that implements Print Library class based on protocol gEfiPrint2ProtocolGuid.
|
// Library instance that implements Print Library class based on protocol gEfiPrint2SProtocolGuid.
|
||||||
//
|
//
|
||||||
// Library instance that implements Print Library class based on protocol gEfiPrint2ProtocolGuid.
|
// Library instance that implements Print Library class based on protocol gEfiPrint2SProtocolGuid.
|
||||||
//
|
//
|
||||||
// Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
|
// Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
//
|
//
|
||||||
// This program and the accompanying materials
|
// This program and the accompanying materials
|
||||||
// are licensed and made available under the terms and conditions of the BSD License
|
// are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
// **/
|
// **/
|
||||||
|
|
||||||
|
|
||||||
#string STR_MODULE_ABSTRACT #language en-US "Implements Print Library class based on protocol gEfiPrint2ProtocolGuid"
|
#string STR_MODULE_ABSTRACT #language en-US "Implements Print Library class based on protocol gEfiPrint2SProtocolGuid"
|
||||||
|
|
||||||
#string STR_MODULE_DESCRIPTION #language en-US "Library instance that implements Print Library class based on protocol gEfiPrint2ProtocolGuid."
|
#string STR_MODULE_DESCRIPTION #language en-US "Library instance that implements Print Library class based on protocol gEfiPrint2SProtocolGuid."
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/** @file
|
/** @file
|
||||||
Instance of Print Library based on gEfiPrint2ProtocolGuid.
|
Instance of Print Library based on gEfiPrint2SProtocolGuid.
|
||||||
|
|
||||||
Implement the print library instance by wrap the interface
|
Implement the print library instance by wrap the interface
|
||||||
provided in the Print2 protocol. This protocol is defined as the internal
|
provided in the Print2S protocol. This protocol is defined as the internal
|
||||||
protocol related to this implementation, not in the public spec. So, this
|
protocol related to this implementation, not in the public spec. So, this
|
||||||
library instance is only for this code base.
|
library instance is only for this code base.
|
||||||
|
|
||||||
|
@ -43,12 +43,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
} \
|
} \
|
||||||
} while (FALSE)
|
} while (FALSE)
|
||||||
|
|
||||||
EFI_PRINT2_PROTOCOL *mPrint2Protocol = NULL;
|
EFI_PRINT2S_PROTOCOL *mPrint2SProtocol = NULL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
The constructor function caches the pointer to Print2 protocol.
|
The constructor function caches the pointer to Print2S protocol.
|
||||||
|
|
||||||
The constructor function locates Print2 protocol from protocol database.
|
The constructor function locates Print2S protocol from protocol database.
|
||||||
It will ASSERT() if that operation fails and it will always return EFI_SUCCESS.
|
It will ASSERT() if that operation fails and it will always return EFI_SUCCESS.
|
||||||
|
|
||||||
@param ImageHandle The firmware allocated handle for the EFI image.
|
@param ImageHandle The firmware allocated handle for the EFI image.
|
||||||
|
@ -67,12 +67,12 @@ PrintLibConstructor (
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
Status = SystemTable->BootServices->LocateProtocol (
|
Status = SystemTable->BootServices->LocateProtocol (
|
||||||
&gEfiPrint2ProtocolGuid,
|
&gEfiPrint2SProtocolGuid,
|
||||||
NULL,
|
NULL,
|
||||||
(VOID**) &mPrint2Protocol
|
(VOID**) &mPrint2SProtocol
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
ASSERT (mPrint2Protocol != NULL);
|
ASSERT (mPrint2SProtocol != NULL);
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
@ -362,7 +362,7 @@ UnicodeBSPrint (
|
||||||
{
|
{
|
||||||
ASSERT_UNICODE_BUFFER (StartOfBuffer);
|
ASSERT_UNICODE_BUFFER (StartOfBuffer);
|
||||||
ASSERT_UNICODE_BUFFER (FormatString);
|
ASSERT_UNICODE_BUFFER (FormatString);
|
||||||
return mPrint2Protocol->UnicodeBSPrint (StartOfBuffer, BufferSize, FormatString, Marker);
|
return mPrint2SProtocol->UnicodeBSPrint (StartOfBuffer, BufferSize, FormatString, Marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -537,7 +537,7 @@ UnicodeBSPrintAsciiFormat (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ASSERT_UNICODE_BUFFER (StartOfBuffer);
|
ASSERT_UNICODE_BUFFER (StartOfBuffer);
|
||||||
return mPrint2Protocol->UnicodeBSPrintAsciiFormat (StartOfBuffer, BufferSize, FormatString, Marker);
|
return mPrint2SProtocol->UnicodeBSPrintAsciiFormat (StartOfBuffer, BufferSize, FormatString, Marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -648,7 +648,21 @@ UnicodeValueToString (
|
||||||
IN UINTN Width
|
IN UINTN Width
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return mPrint2Protocol->UnicodeValueToString (Buffer, Flags, Value, Width);
|
RETURN_STATUS Status;
|
||||||
|
UINTN BufferSize;
|
||||||
|
|
||||||
|
if (Width == 0) {
|
||||||
|
BufferSize = (MAXIMUM_VALUE_CHARACTERS + 1) * sizeof (CHAR16);
|
||||||
|
} else {
|
||||||
|
BufferSize = (Width + 1) * sizeof (CHAR16);
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = mPrint2SProtocol->UnicodeValueToStringS (Buffer, BufferSize, Flags, Value, Width);
|
||||||
|
if (RETURN_ERROR (Status)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return StrnLenS (Buffer, BufferSize / sizeof (CHAR16));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -758,7 +772,7 @@ AsciiBSPrint (
|
||||||
IN BASE_LIST Marker
|
IN BASE_LIST Marker
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return mPrint2Protocol->AsciiBSPrint (StartOfBuffer, BufferSize, FormatString, Marker);
|
return mPrint2SProtocol->AsciiBSPrint (StartOfBuffer, BufferSize, FormatString, Marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -931,7 +945,7 @@ AsciiBSPrintUnicodeFormat (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ASSERT_UNICODE_BUFFER (FormatString);
|
ASSERT_UNICODE_BUFFER (FormatString);
|
||||||
return mPrint2Protocol->AsciiBSPrintUnicodeFormat (StartOfBuffer, BufferSize, FormatString, Marker);
|
return mPrint2SProtocol->AsciiBSPrintUnicodeFormat (StartOfBuffer, BufferSize, FormatString, Marker);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1042,7 +1056,21 @@ AsciiValueToString (
|
||||||
IN UINTN Width
|
IN UINTN Width
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return mPrint2Protocol->AsciiValueToString (Buffer, Flags, Value, Width);
|
RETURN_STATUS Status;
|
||||||
|
UINTN BufferSize;
|
||||||
|
|
||||||
|
if (Width == 0) {
|
||||||
|
BufferSize = (MAXIMUM_VALUE_CHARACTERS + 1) * sizeof (CHAR8);
|
||||||
|
} else {
|
||||||
|
BufferSize = (Width + 1) * sizeof (CHAR8);
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = mPrint2SProtocol->AsciiValueToStringS (Buffer, BufferSize, Flags, Value, Width);
|
||||||
|
if (RETURN_ERROR (Status)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return AsciiStrnLenS (Buffer, BufferSize / sizeof (CHAR8));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PREFIX_SIGN BIT1
|
#define PREFIX_SIGN BIT1
|
||||||
|
|
Loading…
Reference in New Issue