diff options
author | Hao Wu <hao.a.wu@intel.com> | 2017-02-08 11:20:37 +0800 |
---|---|---|
committer | Hao Wu <hao.a.wu@intel.com> | 2017-02-21 13:56:22 +0800 |
commit | e43adbafe8119df48a8a77a1d151a81f05038af1 (patch) | |
tree | 6db284738961bf2ee40e900c4e017a5c394776d6 /MdeModulePkg/Universal | |
parent | 51f0ceb4eb47a13845c887758da4fbed4ecbb0cd (diff) | |
download | edk2-platforms-e43adbafe8119df48a8a77a1d151a81f05038af1.tar.xz |
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.c | 18 | ||||
-rw-r--r-- | MdeModulePkg/Universal/PrintDxe/PrintDxe.inf | 7 | ||||
-rw-r--r-- | MdeModulePkg/Universal/PrintDxe/PrintDxe.uni | 10 |
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."
|