]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Compatibility/Include/Protocol/Print.h
Correction to remove Apple lines from Disclaimers. These were introduced after r1022...
[mirror_edk2.git] / EdkCompatibilityPkg / Compatibility / Include / Protocol / Print.h
1 /** @file
2
3 The lite print protocol defines only one print function to
4 print the format unicode string.
5
6 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved<BR>
7 All rights reserved. This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php.
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef __PPRINT_H__
18 #define __PPRINT_H__
19
20 #define EFI_PRINT_PROTOCOL_GUID \
21 { 0xdf2d868e, 0x32fc, 0x4cf0, {0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0} }
22
23 //
24 // Forward reference for pure ANSI compatability
25 //
26 typedef struct _EFI_PRINT_PROTOCOL EFI_PRINT_PROTOCOL;
27
28 /**
29 Produces a Null-terminated Unicode string in an output buffer, based on
30 a Null-terminated Unicode format string and a VA_LIST argument list.
31
32 Produces a Null-terminated Unicode string in the output buffer specified by StartOfBuffer
33 and BufferSize.
34 The Unicode string is produced by parsing the format string specified by FormatString.
35 Arguments are pulled from the variable argument list specified by Marker based on the
36 contents of the format string.
37 The number of Unicode characters in the produced output buffer is returned, not including
38 the Null-terminator.
39 If BufferSize is 0 or 1, then no output buffer is produced, and 0 is returned.
40
41 If BufferSize > 1 and StartOfBuffer is NULL, then ASSERT().
42 If BufferSize > 1 and StartOfBuffer is not aligned on a 16-bit boundary, then ASSERT().
43 If BufferSize > 1 and FormatString is NULL, then ASSERT().
44 If BufferSize > 1 and FormatString is not aligned on a 16-bit boundary, then ASSERT().
45 If PcdMaximumUnicodeStringLength is not zero, and FormatString contains more than
46 PcdMaximumUnicodeStringLength Unicode characters not including the Null-terminator, then
47 ASSERT().
48 If PcdMaximumUnicodeStringLength is not zero, and produced Null-terminated Unicode string
49 contains more than PcdMaximumUnicodeStringLength Unicode characters, not including the
50 Null-terminator, then ASSERT().
51
52 @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated
53 Unicode string.
54 @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
55 @param FormatString A Null-terminated Unicode format string.
56 @param Marker VA_LIST marker for the variable argument list.
57
58 @return The number of Unicode characters in the produced output buffer not including the
59 Null-terminator.
60
61 **/
62 typedef
63 UINTN
64 (EFIAPI *UNI_VSPRINT)(
65 OUT CHAR16 *StartOfBuffer,
66 IN UINTN BufferSize,
67 IN CONST CHAR16 *FormatString,
68 IN VA_LIST Marker
69 );
70
71 /**
72 EFI_PRINT_PROTOCOL provides one service to produce a Null-terminated Unicode string,
73 based on a Null-terminated Unicode format string and a VA_LIST argument list, and fills into
74 the buffer as output.
75 **/
76 struct _EFI_PRINT_PROTOCOL {
77 UNI_VSPRINT VSPrint;
78 };
79
80 extern EFI_GUID gEfiPrintProtocolGuid;
81
82 #endif