summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal
diff options
context:
space:
mode:
authorHao Wu <hao.a.wu@intel.com>2017-02-08 11:20:37 +0800
committerHao Wu <hao.a.wu@intel.com>2017-02-21 13:56:22 +0800
commite43adbafe8119df48a8a77a1d151a81f05038af1 (patch)
tree6db284738961bf2ee40e900c4e017a5c394776d6 /MdeModulePkg/Universal
parent51f0ceb4eb47a13845c887758da4fbed4ecbb0cd (diff)
downloadedk2-e43adbafe8119df48a8a77a1d151a81f05038af1.tar.gz
edk2-e43adbafe8119df48a8a77a1d151a81f05038af1.tar.bz2
edk2-e43adbafe8119df48a8a77a1d151a81f05038af1.zip
MdeModulePkg: Add the EFI_PRINT2S_PROTOCOL
Add the EFI_PRINT2S_PROTOCOL as a safe version of the EFI_PRINT2_PROTOCOL, the EFI_PRINT2S_PROTOCOL replaces the following 2 services in EFI_PRINT2_PROTOCOL: UNICODE_VALUE_TO_STRING ASCII_VALUE_TO_STRING with: UNICODE_VALUE_TO_STRING_S ASCII_VALUE_TO_STRING_S The 2 new services perform checks to the input parameters and will return relative status to reflect the check result. Return RETURN_INVALID_PARAMETER when: 1). The input Buffer is NULL. 2). The input BufferSize is greater than (PcdMaximumUnicodeStringLength * sizeof (CHAR16) + 1) for UnicodeValueToStringS or greater than PcdMaximumAsciiStringLength for AsciiValueToStringS. 3). The input Flags is not set properly. 4). The input Width is not smaller than MAXIMUM_VALUE_CHARACTERS. Return RETURN_BUFFER_TOO_SMALL when: 1). The input BufferSize cannot hold the converted value. 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>
Diffstat (limited to 'MdeModulePkg/Universal')
-rw-r--r--MdeModulePkg/Universal/PrintDxe/Print.c18
-rw-r--r--MdeModulePkg/Universal/PrintDxe/PrintDxe.inf7
-rw-r--r--MdeModulePkg/Universal/PrintDxe/PrintDxe.uni10
3 files changed, 25 insertions, 10 deletions
diff --git a/MdeModulePkg/Universal/PrintDxe/Print.c b/MdeModulePkg/Universal/PrintDxe/Print.c
index af55acfd2b..85bc724a90 100644
--- a/MdeModulePkg/Universal/PrintDxe/Print.c
+++ b/MdeModulePkg/Universal/PrintDxe/Print.c
@@ -1,7 +1,7 @@
/** @file
- This driver produces Print2 protocol layered on top of the PrintLib from the MdePkg.
+ This driver produces Print2 protocols layered on top of the PrintLib from the MdePkg.
-Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.<BR>
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
@@ -35,6 +35,19 @@ CONST EFI_PRINT2_PROTOCOL mPrint2Protocol = {
AsciiValueToString
};
+CONST EFI_PRINT2S_PROTOCOL mPrint2SProtocol = {
+ UnicodeBSPrint,
+ UnicodeSPrint,
+ UnicodeBSPrintAsciiFormat,
+ UnicodeSPrintAsciiFormat,
+ UnicodeValueToStringS,
+ AsciiBSPrint,
+ AsciiSPrint,
+ AsciiBSPrintUnicodeFormat,
+ AsciiSPrintUnicodeFormat,
+ AsciiValueToStringS
+};
+
/**
The user Entry Point for Print module.
@@ -59,6 +72,7 @@ PrintEntryPoint (
Status = gBS->InstallMultipleProtocolInterfaces (
&mPrintThunkHandle,
&gEfiPrint2ProtocolGuid, &mPrint2Protocol,
+ &gEfiPrint2SProtocolGuid, &mPrint2SProtocol,
NULL
);
ASSERT_EFI_ERROR (Status);
diff --git a/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf b/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
index 9ea06520d1..19eef5a8a8 100644
--- a/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
+++ b/MdeModulePkg/Universal/PrintDxe/PrintDxe.inf
@@ -1,9 +1,9 @@
## @file
-# Print DXE driver that produces Print2 Protocol.
+# Print DXE driver that produces Print2 Protocols.
#
-# This driver produces Print2 protocol layered on top of the PrintLib from the MdePkg.
+# This driver produces Print2 protocols layered on top of the PrintLib from the MdePkg.
#
-# 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
# 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
@@ -44,6 +44,7 @@
[Protocols]
gEfiPrint2ProtocolGuid ## PRODUCES
+ gEfiPrint2SProtocolGuid ## PRODUCES
[Depex]
TRUE
diff --git a/MdeModulePkg/Universal/PrintDxe/PrintDxe.uni b/MdeModulePkg/Universal/PrintDxe/PrintDxe.uni
index accb114fa6..10f0ff81c5 100644
--- a/MdeModulePkg/Universal/PrintDxe/PrintDxe.uni
+++ b/MdeModulePkg/Universal/PrintDxe/PrintDxe.uni
@@ -1,9 +1,9 @@
// /** @file
-// Print DXE driver that produces Print2 Protocol.
+// Print DXE driver that produces Print2 Protocols.
//
-// This driver produces Print2 protocol layered on top of the PrintLib from the MdePkg.
+// This driver produces Print2 protocols layered on top of the PrintLib from the MdePkg.
//
-// 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
// are licensed and made available under the terms and conditions of the BSD License
@@ -16,7 +16,7 @@
// **/
-#string STR_MODULE_ABSTRACT #language en-US "Print DXE driver that produces Print2 Protocol"
+#string STR_MODULE_ABSTRACT #language en-US "Print DXE driver that produces Print2 Protocols"
-#string STR_MODULE_DESCRIPTION #language en-US "This driver produces Print2 protocol layered on top of the PrintLib from the MdePkg."
+#string STR_MODULE_DESCRIPTION #language en-US "This driver produces Print2 protocols layered on top of the PrintLib from the MdePkg."