IN VA_LIST Marker\r
)\r
{\r
- ASSERT_UNICODE_BUFFER(StartOfBuffer);\r
- ASSERT_UNICODE_BUFFER(FormatString);\r
- return BasePrintLibVSPrint ((CHAR8 *)StartOfBuffer, BufferSize >> 1, FORMAT_UNICODE | OUTPUT_UNICODE, (CHAR8 *)FormatString, Marker);\r
+ ASSERT_UNICODE_BUFFER (StartOfBuffer);\r
+ ASSERT_UNICODE_BUFFER (FormatString);\r
+ return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, FORMAT_UNICODE | OUTPUT_UNICODE, (CHAR8 *)FormatString, Marker, NULL);\r
+}\r
+\r
+/**\r
+ Produces a Null-terminated Unicode string in an output buffer based on \r
+ a Null-terminated Unicode format string and a BASE_LIST argument list\r
+ \r
+ Produces a Null-terminated Unicode string in the output buffer specified by StartOfBuffer\r
+ and BufferSize. \r
+ The Unicode string is produced by parsing the format string specified by FormatString. \r
+ Arguments are pulled from the variable argument list specified by Marker based on the \r
+ contents of the format string. \r
+ The number of Unicode characters in the produced output buffer is returned not including\r
+ the Null-terminator.\r
+ If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned.\r
+\r
+ If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().\r
+ If BufferSize > 1 and StartOfBuffer is not aligned on a 16-bit boundary, then ASSERT().\r
+ If BufferSize > 1 and FormatString is NULL, then ASSERT().\r
+ If BufferSize > 1 and FormatString is not aligned on a 16-bit boundary, then ASSERT().\r
+ If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than \r
+ PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then\r
+ ASSERT().\r
+ If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string\r
+ contains more than PcdMaximumUnicodeStringLength Unicode characters not including the\r
+ Null-terminator, then ASSERT().\r
+\r
+ @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated \r
+ Unicode string.\r
+ @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.\r
+ @param FormatString Null-terminated Unicode format string.\r
+ @param Marker BASE_LIST marker for the variable argument list.\r
+ \r
+ @return The number of Unicode characters in the produced output buffer not including the\r
+ Null-terminator.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+UnicodeBSPrint (\r
+ OUT CHAR16 *StartOfBuffer,\r
+ IN UINTN BufferSize,\r
+ IN CONST CHAR16 *FormatString,\r
+ IN BASE_LIST Marker\r
+ )\r
+{\r
+ ASSERT_UNICODE_BUFFER (StartOfBuffer);\r
+ ASSERT_UNICODE_BUFFER (FormatString);\r
+ return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, FORMAT_UNICODE | OUTPUT_UNICODE, (CHAR8 *)FormatString, NULL, Marker);\r
}\r
\r
/**\r
IN VA_LIST Marker\r
)\r
{\r
- ASSERT_UNICODE_BUFFER(StartOfBuffer);\r
- return BasePrintLibVSPrint ((CHAR8 *)StartOfBuffer, BufferSize >> 1, OUTPUT_UNICODE,FormatString, Marker);\r
+ ASSERT_UNICODE_BUFFER (StartOfBuffer);\r
+ return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, OUTPUT_UNICODE, FormatString, Marker, NULL);\r
+}\r
+\r
+/**\r
+ Produces a Null-terminated Unicode string in an output buffer based on a Null-terminated\r
+ ASCII format string and a BASE_LIST argument list\r
+ \r
+ Produces a Null-terminated Unicode string in the output buffer specified by StartOfBuffer\r
+ and BufferSize.\r
+ The Unicode string is produced by parsing the format string specified by FormatString.\r
+ Arguments are pulled from the variable argument list specified by Marker based on the \r
+ contents of the format string.\r
+ The number of Unicode characters in the produced output buffer is returned not including\r
+ the Null-terminator.\r
+ If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned.\r
+\r
+ If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().\r
+ If BufferSize > 1 and StartOfBuffer is not aligned on a 16-bit boundary, then ASSERT().\r
+ If BufferSize > 1 and FormatString is NULL, then ASSERT().\r
+ If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than\r
+ PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator, then\r
+ ASSERT().\r
+ If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string\r
+ contains more than PcdMaximumUnicodeStringLength Unicode characters not including the\r
+ Null-terminator, then ASSERT().\r
+\r
+ @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated \r
+ Unicode string.\r
+ @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.\r
+ @param FormatString Null-terminated ASCII format string.\r
+ @param Marker BASE_LIST marker for the variable argument list.\r
+ \r
+ @return The number of Unicode characters in the produced output buffer not including the\r
+ Null-terminator.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+UnicodeBSPrintAsciiFormat (\r
+ OUT CHAR16 *StartOfBuffer,\r
+ IN UINTN BufferSize,\r
+ IN CONST CHAR8 *FormatString,\r
+ IN BASE_LIST Marker\r
+ )\r
+{\r
+ ASSERT_UNICODE_BUFFER (StartOfBuffer);\r
+ return BasePrintLibSPrintMarker ((CHAR8 *)StartOfBuffer, BufferSize >> 1, OUTPUT_UNICODE, FormatString, NULL, Marker);\r
}\r
\r
/**\r
IN VA_LIST Marker\r
)\r
{\r
- return BasePrintLibVSPrint (StartOfBuffer, BufferSize, 0, FormatString, Marker);\r
+ return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, 0, FormatString, Marker, NULL);\r
+}\r
+\r
+/**\r
+ Produces a Null-terminated ASCII string in an output buffer based on a Null-terminated\r
+ ASCII format string and a BASE_LIST argument list.\r
+ \r
+ Produces a Null-terminated ASCII string in the output buffer specified by StartOfBuffer\r
+ and BufferSize.\r
+ The ASCII string is produced by parsing the format string specified by FormatString.\r
+ Arguments are pulled from the variable argument list specified by Marker based on \r
+ the contents of the format string.\r
+ The number of ASCII characters in the produced output buffer is returned not including\r
+ the Null-terminator.\r
+ If BufferSize is 0, then no output buffer is produced and 0 is returned.\r
+\r
+ If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT().\r
+ If BufferSize > 0 and FormatString is NULL, then ASSERT().\r
+ If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than\r
+ PcdMaximumAsciiStringLength ASCII characters not including the Null-terminator, then\r
+ ASSERT().\r
+ If PcdMaximumAsciiStringLength is not zero, and produced Null-terminated ASCII string\r
+ contains more than PcdMaximumAsciiStringLength ASCII characters not including the\r
+ Null-terminator, then ASSERT().\r
+\r
+ @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated \r
+ ASCII string.\r
+ @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.\r
+ @param FormatString Null-terminated ASCII format string.\r
+ @param Marker BASE_LIST marker for the variable argument list.\r
+ \r
+ @return The number of ASCII characters in the produced output buffer not including the\r
+ Null-terminator.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+AsciiBSPrint (\r
+ OUT CHAR8 *StartOfBuffer,\r
+ IN UINTN BufferSize,\r
+ IN CONST CHAR8 *FormatString,\r
+ IN BASE_LIST Marker\r
+ )\r
+{\r
+ return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, 0, FormatString, NULL, Marker);\r
}\r
\r
/**\r
@param FormatString Null-terminated ASCII format string.\r
@param ... Variable argument list whose contents are accessed based on the \r
format string specified by FormatString.\r
- \r
+ \r
@return The number of ASCII characters in the produced output buffer not including the\r
Null-terminator.\r
\r
)\r
{\r
ASSERT_UNICODE_BUFFER (FormatString);\r
- return BasePrintLibVSPrint (StartOfBuffer, BufferSize, FORMAT_UNICODE, (CHAR8 *)FormatString, Marker);\r
+ return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, FORMAT_UNICODE, (CHAR8 *)FormatString, Marker, NULL);\r
+}\r
+\r
+/**\r
+ Produces a Null-terminated ASCII string in an output buffer based on a Null-terminated\r
+ Unicode format string and a BASE_LIST argument list.\r
+ \r
+ Produces a Null-terminated ASCII string in the output buffer specified by StartOfBuffer\r
+ and BufferSize.\r
+ The ASCII string is produced by parsing the format string specified by FormatString.\r
+ Arguments are pulled from the variable argument list specified by Marker based on \r
+ the contents of the format string.\r
+ The number of ASCII characters in the produced output buffer is returned not including\r
+ the Null-terminator.\r
+ If BufferSize is 0, then no output buffer is produced and 0 is returned.\r
+\r
+ If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT().\r
+ If BufferSize > 0 and FormatString is NULL, then ASSERT().\r
+ If BufferSize > 0 and FormatString is not aligned on a 16-bit boundary, then ASSERT().\r
+ If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than\r
+ PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then\r
+ ASSERT().\r
+ If PcdMaximumAsciiStringLength is not zero, and produced Null-terminated ASCII string\r
+ contains more than PcdMaximumAsciiStringLength ASCII characters not including the\r
+ Null-terminator, then ASSERT().\r
+\r
+ @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated \r
+ ASCII string.\r
+ @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.\r
+ @param FormatString Null-terminated Unicode format string.\r
+ @param Marker BASE_LIST marker for the variable argument list.\r
+ \r
+ @return The number of ASCII characters in the produced output buffer not including the\r
+ Null-terminator.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+AsciiBSPrintUnicodeFormat (\r
+ OUT CHAR8 *StartOfBuffer,\r
+ IN UINTN BufferSize,\r
+ IN CONST CHAR16 *FormatString,\r
+ IN BASE_LIST Marker\r
+ )\r
+{\r
+ ASSERT_UNICODE_BUFFER (FormatString);\r
+ return BasePrintLibSPrintMarker (StartOfBuffer, BufferSize, FORMAT_UNICODE, (CHAR8 *)FormatString, NULL, Marker);\r
}\r
\r
/**\r
{\r
return BasePrintLibConvertValueToString (Buffer, Flags, Value, Width, 1);\r
}\r
-\r