Provides services to print a formatted string to a buffer. All combinations of\r
Unicode and ASCII strings are supported.\r
\r
-Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials are licensed and made available under \r
-the terms and conditions of the BSD License that accompanies this distribution. \r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under\r
+the terms and conditions of the BSD License that accompanies this distribution.\r
The full text of the license may be found at\r
http://opensource.org/licenses/bsd-license.php.\r
\r
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
- The Print Library functions provide a simple means to produce formatted output \r
- strings. Many of the output functions use a format string to describe how to \r
- format the output of variable arguments. The format string consists of normal \r
- text and argument descriptors. There are no restrictions for how the normal \r
- text and argument descriptors can be mixed. The following end of line(EOL) \r
+ The Print Library functions provide a simple means to produce formatted output\r
+ strings. Many of the output functions use a format string to describe how to\r
+ format the output of variable arguments. The format string consists of normal\r
+ text and argument descriptors. There are no restrictions for how the normal\r
+ text and argument descriptors can be mixed. The following end of line(EOL)\r
translations must be performed on the contents of the format string:\r
- \r
+\r
- '\\r' is translated to '\\r'\r
- '\\r\\n' is translated to '\\r\\n'\r
- - '\\n' is translated to '\\r\\n' \r
+ - '\\n' is translated to '\\r\\n'\r
- '\\n\\r' is translated to '\\r\\n'\r
- \r
- This does not follow the ANSI C standard for sprint(). The format of argument \r
- descriptors is described below. The ANSI C standard for sprint() has been \r
- followed for some of the format types, and has not been followed for others. \r
+\r
+ This does not follow the ANSI C standard for sprint(). The format of argument\r
+ descriptors is described below. The ANSI C standard for sprint() has been\r
+ followed for some of the format types, and has not been followed for others.\r
The exceptions are noted below.\r
\r
%[flags][width][.precision]type\r
\r
[flags]:\r
- - - \r
- - The field is left justified. If not flag is not specified, then the \r
+ - -\r
+ - The field is left justified. If not flag is not specified, then the\r
field is right justified.\r
- - space \r
+ - space\r
- Prefix a space character to a number. Only valid for types X, x, and d.\r
- - + \r
- - Prefix a plus character to a number. Only valid for types X, x, and d. \r
+ - +\r
+ - Prefix a plus character to a number. Only valid for types X, x, and d.\r
If both space and + are specified, then space is ignored.\r
- 0\r
- - Pad with 0 characters to the left of a number. Only valid for types \r
+ - Pad with 0 characters to the left of a number. Only valid for types\r
X, x, and d.\r
- ,\r
- Place a comma every 3rd digit of the number. Only valid for type d.\r
[width]:\r
\r
- *\r
- - The width of the field is specified by a UINTN argument in the \r
+ - The width of the field is specified by a UINTN argument in the\r
argument list.\r
- number\r
- - The number specified as a decimal value represents the width of \r
+ - The number specified as a decimal value represents the width of\r
the field.\r
- NOTE: If [width] is not specified, then a field width of 0 is assumed.\r
\r
[.precision]:\r
\r
- *\r
- - The precision of the field is specified by a UINTN argument in the \r
+ - The precision of the field is specified by a UINTN argument in the\r
argument list.\r
- number\r
- - The number specified as a decimal value represents the precision of \r
+ - The number specified as a decimal value represents the precision of\r
the field.\r
- NOTE: If [.precision] is not specified, then a precision of 0 is assumed.\r
\r
- %\r
- Print a %%.\r
- c\r
- - The argument is a Unicode character. ASCII characters can be printed \r
+ - The argument is a Unicode character. ASCII characters can be printed\r
using this type too by making sure bits 8..15 of the argument are set to 0.\r
- x\r
- - The argument is an unsigned hexadecimal number. The characters used are 0..9 and \r
- A..F. If the flag 'L' is not specified, then the argument is assumed \r
+ - The argument is an unsigned hexadecimal number. The characters used are 0..9 and\r
+ A..F. If the flag 'L' is not specified, then the argument is assumed\r
to be size int. This does not follow ANSI C.\r
- X\r
- - The argument is an unsigned hexadecimal number and the number is padded with \r
- zeros. This is equivalent to a format string of "0x". If the flag \r
- 'L' is not specified, then the argument is assumed to be size int. \r
+ - The argument is an unsigned hexadecimal number and the number is padded with\r
+ zeros. This is equivalent to a format string of "0x". If the flag\r
+ 'L' is not specified, then the argument is assumed to be size int.\r
This does not follow ANSI C.\r
- d\r
- - The argument is a signed decimal number. If the flag 'L' is not specified, \r
- then the argument is assumed to be size int. \r
+ - The argument is a signed decimal number. If the flag 'L' is not specified,\r
+ then the argument is assumed to be size int.\r
- u\r
- - The argument is a unsigned decimal number. If the flag 'L' is not specified, \r
+ - The argument is a unsigned decimal number. If the flag 'L' is not specified,\r
then the argument is assumed to be size int.\r
- p\r
- - The argument is a pointer that is a (VOID *), and it is printed as an \r
+ - The argument is a pointer that is a (VOID *), and it is printed as an\r
unsigned hexadecimal number The characters used are 0..9 and A..F.\r
- a\r
- - The argument is a pointer to an ASCII string. \r
+ - The argument is a pointer to an ASCII string.\r
This does not follow ANSI C.\r
- S, s\r
- - The argument is a pointer to a Unicode string. \r
+ - The argument is a pointer to a Unicode string.\r
This does not follow ANSI C.\r
- g\r
- - The argument is a pointer to a GUID structure. The GUID is printed \r
- in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. \r
+ - The argument is a pointer to a GUID structure. The GUID is printed\r
+ in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.\r
This does not follow ANSI C.\r
- t\r
- - The argument is a pointer to an EFI_TIME structure. The time and \r
- date are printed in the format "mm/dd/yyyy hh:mm" where mm is the \r
- month zero padded, dd is the day zero padded, yyyy is the year zero \r
- padded, hh is the hour zero padded, and mm is minutes zero padded. \r
- This does not follow ANSI C. \r
+ - The argument is a pointer to an EFI_TIME structure. The time and\r
+ date are printed in the format "mm/dd/yyyy hh:mm" where mm is the\r
+ month zero padded, dd is the day zero padded, yyyy is the year zero\r
+ padded, hh is the hour zero padded, and mm is minutes zero padded.\r
+ This does not follow ANSI C.\r
- r\r
- - The argument is a RETURN_STATUS value. This value is converted to \r
- a string following the table below. This does not follow ANSI C. \r
- - RETURN_SUCCESS \r
+ - The argument is a RETURN_STATUS value. This value is converted to\r
+ a string following the table below. This does not follow ANSI C.\r
+ - RETURN_SUCCESS\r
- "Success"\r
- - RETURN_LOAD_ERROR \r
+ - RETURN_LOAD_ERROR\r
- "Load Error"\r
- - RETURN_INVALID_PARAMETER \r
+ - RETURN_INVALID_PARAMETER\r
- "Invalid Parameter"\r
- - RETURN_UNSUPPORTED \r
+ - RETURN_UNSUPPORTED\r
- "Unsupported"\r
- - RETURN_BAD_BUFFER_SIZE \r
+ - RETURN_BAD_BUFFER_SIZE\r
- "Bad Buffer Size"\r
- - RETURN_BUFFER_TOO_SMALL \r
+ - RETURN_BUFFER_TOO_SMALL\r
- "Buffer Too Small"\r
- - RETURN_NOT_READY \r
+ - RETURN_NOT_READY\r
- "Not Ready"\r
- - RETURN_DEVICE_ERROR \r
+ - RETURN_DEVICE_ERROR\r
- "Device Error"\r
- - RETURN_WRITE_PROTECTED \r
+ - RETURN_WRITE_PROTECTED\r
- "Write Protected"\r
- - RETURN_OUT_OF_RESOURCES \r
+ - RETURN_OUT_OF_RESOURCES\r
- "Out of Resources"\r
- - RETURN_VOLUME_CORRUPTED \r
+ - RETURN_VOLUME_CORRUPTED\r
- "Volume Corrupt"\r
- - RETURN_VOLUME_FULL \r
+ - RETURN_VOLUME_FULL\r
- "Volume Full"\r
- - RETURN_NO_MEDIA \r
+ - RETURN_NO_MEDIA\r
- "No Media"\r
- - RETURN_MEDIA_CHANGED \r
+ - RETURN_MEDIA_CHANGED\r
- "Media changed"\r
- - RETURN_NOT_FOUND \r
+ - RETURN_NOT_FOUND\r
- "Not Found"\r
- - RETURN_ACCESS_DENIED \r
+ - RETURN_ACCESS_DENIED\r
- "Access Denied"\r
- - RETURN_NO_RESPONSE \r
+ - RETURN_NO_RESPONSE\r
- "No Response"\r
- - RETURN_NO_MAPPING \r
+ - RETURN_NO_MAPPING\r
- "No mapping"\r
- - RETURN_TIMEOUT \r
+ - RETURN_TIMEOUT\r
- "Time out"\r
- - RETURN_NOT_STARTED \r
+ - RETURN_NOT_STARTED\r
- "Not started"\r
- - RETURN_ALREADY_STARTED \r
+ - RETURN_ALREADY_STARTED\r
- "Already started"\r
- - RETURN_ABORTED \r
+ - RETURN_ABORTED\r
- "Aborted"\r
- - RETURN_ICMP_ERROR \r
+ - RETURN_ICMP_ERROR\r
- "ICMP Error"\r
- - RETURN_TFTP_ERROR \r
+ - RETURN_TFTP_ERROR\r
- "TFTP Error"\r
- - RETURN_PROTOCOL_ERROR \r
+ - RETURN_PROTOCOL_ERROR\r
- "Protocol Error"\r
- - RETURN_WARN_UNKNOWN_GLYPH \r
+ - RETURN_WARN_UNKNOWN_GLYPH\r
- "Warning Unknown Glyph"\r
- - RETURN_WARN_DELETE_FAILURE \r
+ - RETURN_WARN_DELETE_FAILURE\r
- "Warning Delete Failure"\r
- - RETURN_WARN_WRITE_FAILURE \r
+ - RETURN_WARN_WRITE_FAILURE\r
- "Warning Write Failure"\r
- - RETURN_WARN_BUFFER_TOO_SMALL \r
+ - RETURN_WARN_BUFFER_TOO_SMALL\r
- "Warning Buffer Too Small"\r
\r
**/\r
\r
///\r
/// Define the maximum number of characters that are required to\r
-/// encode with a NULL terminator a decimal, hexadecimal, GUID, \r
+/// encode with a NULL terminator a decimal, hexadecimal, GUID,\r
/// or TIME value.\r
-/// \r
+///\r
/// Maximum Length Decimal String = 28\r
/// "-9,223,372,036,854,775,808"\r
/// Maximum Length Hexadecimal String = 17\r
#define MAXIMUM_VALUE_CHARACTERS 38\r
\r
///\r
-/// Flags bitmask values use in UnicodeValueToString() and \r
+/// Flags bitmask values use in UnicodeValueToString() and\r
/// AsciiValueToString()\r
///\r
#define LEFT_JUSTIFY 0x01\r
[ATTENTION] This function is deprecated for security reason.\r
\r
Converts a decimal value to a Null-terminated Unicode string.\r
- \r
- Converts the decimal number specified by Value to a Null-terminated Unicode \r
- string specified by Buffer containing at most Width characters. No padding of spaces \r
+\r
+ Converts the decimal number specified by Value to a Null-terminated Unicode\r
+ string specified by Buffer containing at most Width characters. No padding of spaces\r
is ever performed. If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.\r
The number of Unicode characters in Buffer is returned, not including the Null-terminator.\r
If the conversion contains more than Width characters, then only the first\r
- Width characters are returned, and the total number of characters \r
+ Width characters are returned, and the total number of characters\r
required to perform the conversion is returned.\r
- Additional conversion parameters are specified in Flags. \r
- \r
+ Additional conversion parameters are specified in Flags.\r
+\r
The Flags bit LEFT_JUSTIFY is always ignored.\r
All conversions are left justified in Buffer.\r
If Width is 0, PREFIX_ZERO is ignored in Flags.\r
If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas\r
are inserted every 3rd digit starting from the right.\r
- If RADIX_HEX is set in Flags, then the output buffer will be \r
+ If RADIX_HEX is set in Flags, then the output buffer will be\r
formatted in hexadecimal format.\r
If Value is < 0 and RADIX_HEX is not set in Flags, then the fist character in Buffer is a '-'.\r
- If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored, \r
- then Buffer is padded with '0' characters so the combination of the optional '-' \r
+ If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,\r
+ then Buffer is padded with '0' characters so the combination of the optional '-'\r
sign character, '0' characters, digit characters for Value, and the Null-terminator\r
add up to Width characters.\r
If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().\r
@param Value The 64-bit signed value to convert to a string.\r
@param Width The maximum number of Unicode characters to place in Buffer, not including\r
the Null-terminator.\r
- \r
+\r
@return The number of Unicode characters in Buffer, not including the Null-terminator.\r
\r
**/\r
[ATTENTION] This function is deprecated for security reason.\r
\r
Converts a decimal value to a Null-terminated ASCII string.\r
- \r
- Converts the decimal number specified by Value to a Null-terminated ASCII string \r
- specified by Buffer containing at most Width characters. No padding of spaces \r
+\r
+ Converts the decimal number specified by Value to a Null-terminated ASCII string\r
+ specified by Buffer containing at most Width characters. No padding of spaces\r
is ever performed.\r
If Width is 0 then a width of MAXIMUM_VALUE_CHARACTERS is assumed.\r
The number of ASCII characters in Buffer is returned, not including the Null-terminator.\r
If the conversion contains more than Width characters, then only the first Width\r
characters are returned, and the total number of characters required to perform\r
the conversion is returned.\r
- Additional conversion parameters are specified in Flags. \r
+ Additional conversion parameters are specified in Flags.\r
The Flags bit LEFT_JUSTIFY is always ignored.\r
All conversions are left justified in Buffer.\r
If Width is 0, PREFIX_ZERO is ignored in Flags.\r
If COMMA_TYPE is set in Flags, then PREFIX_ZERO is ignored in Flags, and commas\r
are inserted every 3rd digit starting from the right.\r
- If RADIX_HEX is set in Flags, then the output buffer will be \r
+ If RADIX_HEX is set in Flags, then the output buffer will be\r
formatted in hexadecimal format.\r
If Value is < 0 and RADIX_HEX is not set in Flags, then the fist character in Buffer is a '-'.\r
- If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored, \r
- then Buffer is padded with '0' characters so the combination of the optional '-' \r
+ If PREFIX_ZERO is set in Flags and PREFIX_ZERO is not being ignored,\r
+ then Buffer is padded with '0' characters so the combination of the optional '-'\r
sign character, '0' characters, digit characters for Value, and the Null-terminator\r
add up to Width characters.\r
- \r
+\r
If Buffer is NULL, then ASSERT().\r
If unsupported bits are set in Flags, then ASSERT().\r
If both COMMA_TYPE and RADIX_HEX are set in Flags, then ASSERT().\r
@param Value The 64-bit signed value to convert to a string.\r
@param Width The maximum number of ASCII characters to place in Buffer, not including\r
the Null-terminator.\r
- \r
+\r
@return The number of ASCII characters in Buffer, not including the Null-terminator.\r
\r
**/\r
);\r
\r
/**\r
- Returns the number of characters that would be produced by if the formatted \r
+ Returns the number of characters that would be produced by if the formatted\r
output were produced not including the Null-terminator.\r
\r
If FormatString is not aligned on a 16-bit boundary, then ASSERT().\r
@param[in] FormatString A Null-terminated Unicode format string.\r
@param[in] Marker VA_LIST marker for the variable argument list.\r
\r
- @return The number of characters that would be produced, not including the \r
+ @return The number of characters that would be produced, not including the\r
Null-terminator.\r
**/\r
UINTN\r
);\r
\r
/**\r
- Returns the number of characters that would be produced by if the formatted \r
+ Returns the number of characters that would be produced by if the formatted\r
output were produced not including the Null-terminator.\r
\r
If FormatString is NULL, then ASSERT() and 0 is returned.\r
@param[in] FormatString A Null-terminated ASCII format string.\r
@param[in] Marker VA_LIST marker for the variable argument list.\r
\r
- @return The number of characters that would be produced, not including the \r
+ @return The number of characters that would be produced, not including the\r
Null-terminator.\r
**/\r
UINTN\r