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