From 45a3634cb925301cbf2ce9018bda24022fc3bce2 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Mon, 23 Feb 2009 03:23:43 +0000 Subject: [PATCH] Add Print.h, an EDKII public include file for thunk driver git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7583 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Compatibility/Include/Protocol/Print.h | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 EdkCompatibilityPkg/Compatibility/Include/Protocol/Print.h diff --git a/EdkCompatibilityPkg/Compatibility/Include/Protocol/Print.h b/EdkCompatibilityPkg/Compatibility/Include/Protocol/Print.h new file mode 100644 index 0000000000..3e26c520f9 --- /dev/null +++ b/EdkCompatibilityPkg/Compatibility/Include/Protocol/Print.h @@ -0,0 +1,78 @@ +/** @file + + The lite print protocol defines only one print function to + print the format unicode string. + +Copyright (c) 2006 - 2008, Intel Corporation +All rights reserved. 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 +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __PPRINT_H__ +#define __PPRINT_H__ + +#define EFI_PRINT_PROTOCOL_GUID \ + { 0xdf2d868e, 0x32fc, 0x4cf0, {0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0} } + +// +// Forward reference for pure ANSI compatability +// +typedef struct _EFI_PRINT_PROTOCOL EFI_PRINT_PROTOCOL; + +/** + Produces a Null-terminated Unicode string in an output buffer based on + a Null-terminated Unicode format string and a VA_LIST argument list + + Produces a Null-terminated Unicode string in the output buffer specified by StartOfBuffer + and BufferSize. + The Unicode string is produced by parsing the format string specified by FormatString. + Arguments are pulled from the variable argument list specified by Marker based on the + contents of the format string. + The number of Unicode characters in the produced output buffer is returned not including + the Null-terminator. + If BufferSize is 0 or 1, then no output buffer is produced and 0 is returned. + + If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT(). + If BufferSize > 1 and StartOfBuffer is not aligned on a 16-bit boundary, then ASSERT(). + If BufferSize > 1 and FormatString is NULL, then ASSERT(). + If BufferSize > 1 and FormatString is not aligned on a 16-bit boundary, then ASSERT(). + If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than + PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then + ASSERT(). + If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string + contains more than PcdMaximumUnicodeStringLength Unicode characters not including the + Null-terminator, then ASSERT(). + + @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated + Unicode string. + @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer. + @param FormatString Null-terminated Unicode format string. + @param Marker VA_LIST marker for the variable argument list. + + @return The number of Unicode characters in the produced output buffer not including the + Null-terminator. + +**/ +typedef +UINTN +(EFIAPI *UNI_VSPRINT)( + OUT CHAR16 *StartOfBuffer, + IN UINTN BufferSize, + IN CONST CHAR16 *FormatString, + IN VA_LIST Marker + ); + + +struct _EFI_PRINT_PROTOCOL { + UNI_VSPRINT VSPrint; +}; + +extern EFI_GUID gEfiPrintProtocolGuid; + +#endif -- 2.39.2