Add 2 functions to UefiLib library class: CatSPrint and CatVSPrint.

Implement these functions in the UefiLib instance.

Add 2 functions to PrintLib library class: SPrintLengthAsciiFormat and SPrintLength.
Implement these functions in the BasePrintLib instance and the DxePrintLib2Protocol instance.

Signed-off-by: jcarsey
Reviewed-by: jljusten
Reviewed-by: geekboy15a

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12081 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2011-08-02 23:33:06 +00:00
parent 274402de46
commit f405c0674a
7 changed files with 1240 additions and 46 deletions

View File

@@ -2,7 +2,7 @@
Provides services to print a formatted string to a buffer. All combinations of
Unicode and ASCII strings are supported.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2011, 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 that accompanies this distribution.
The full text of the license may be found at
@@ -806,4 +806,43 @@ AsciiValueToString (
IN UINTN Width
);
/**
Returns the number of characters that would be produced by if the formatted
output were produced not including the Null-terminator.
If Format is NULL, then ASSERT().
If Format is not aligned on a 16-bit boundary, then ASSERT().
@param[in] FormatString A Null-terminated Unicode format string.
@param[in] Marker VA_LIST marker for the variable argument list.
@return The number of characters that would be produced, not including the
Null-terminator.
**/
UINTN
EFIAPI
SPrintLength (
IN CONST CHAR16 *FormatString,
IN VA_LIST Marker
);
/**
Returns the number of characters that would be produced by if the formatted
output were produced not including the Null-terminator.
If Format is NULL, then ASSERT().
@param[in] FormatString A Null-terminated ASCII format string.
@param[in] Marker VA_LIST marker for the variable argument list.
@return The number of characters that would be produced, not including the
Null-terminator.
**/
UINTN
EFIAPI
SPrintLengthAsciiFormat (
IN CONST CHAR8 *FormatString,
IN VA_LIST Marker
);
#endif

View File

@@ -12,7 +12,7 @@
of size reduction when compiler optimization is disabled. If MDEPKG_NDEBUG is
defined, then debug and assert related macros wrapped by it are the NULL implementations.
Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2006 - 2011, 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 that accompanies this distribution.
The full text of the license may be found at
@@ -1334,4 +1334,64 @@ EfiLibInstallAllDriverProtocols2 (
IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL
);
/**
Appends a formatted Unicode string to a Null-terminated Unicode string
This function appends a formatted Unicode string to the Null-terminated
Unicode string specified by String. String is optional and may be NULL.
Storage for the formatted Unicode string returned is allocated using
AllocatePool(). The pointer to the appended string is returned. The caller
is responsible for freeing the returned string.
If String is not NULL and not aligned on a 16-bit boundary, then ASSERT().
If FormatString is NULL, then ASSERT().
If FormatString is not aligned on a 16-bit boundary, then ASSERT().
@param[in] String A Null-terminated Unicode string.
@param[in] FormatString A Null-terminated Unicode format string.
@param[in] Marker VA_LIST marker for the variable argument list.
@retval NULL There was not enough available memory.
@return Null-terminated Unicode string is that is the formatted
string appended to String.
**/
CHAR16*
EFIAPI
CatVSPrint (
IN CHAR16 *String, OPTIONAL
IN CONST CHAR16 *FormatString,
IN VA_LIST Marker
);
/**
Appends a formatted Unicode string to a Null-terminated Unicode string
This function appends a formatted Unicode string to the Null-terminated
Unicode string specified by String. String is optional and may be NULL.
Storage for the formatted Unicode string returned is allocated using
AllocatePool(). The pointer to the appended string is returned. The caller
is responsible for freeing the returned string.
If String is not NULL and not aligned on a 16-bit boundary, then ASSERT().
If FormatString is NULL, then ASSERT().
If FormatString is not aligned on a 16-bit boundary, then ASSERT().
@param[in] String A Null-terminated Unicode string.
@param[in] FormatString A Null-terminated Unicode format string.
@param[in] ... The variable argument list whose contents are
accessed based on the format string specified by
FormatString.
@retval NULL There was not enough available memory.
@return Null-terminated Unicode string is that is the formatted
string appended to String.
**/
CHAR16 *
EFIAPI
CatSPrint (
IN CHAR16 *String, OPTIONAL
IN CONST CHAR16 *FormatString,
...
);
#endif