]>
Commit | Line | Data |
---|---|---|
ae38c976 | 1 | /** @file\r |
b7c7ec8c KM |
2 | Boot Logo 2 Protocol is used to convey information of Logo dispayed during boot.\r |
3 | \r | |
4 | The Boot Logo 2 Protocol is a replacement for the Boot Logo Protocol. If a\r | |
5 | platform produces both the Boot Logo 2 Protocol and the Boot Logo Protocol\r | |
6 | then the Boot Logo 2 Protocol must be used instead of the Boot Logo Protocol.\r | |
7 | \r | |
8 | Copyright (c) 2016, Microsoft Corporation\r | |
9 | Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r | |
10 | \r | |
11 | All rights reserved.\r | |
12 | Redistribution and use in source and binary forms, with or without\r | |
13 | modification, are permitted provided that the following conditions are met:\r | |
14 | 1. Redistributions of source code must retain the above copyright notice,\r | |
15 | this list of conditions and the following disclaimer.\r | |
16 | 2. Redistributions in binary form must reproduce the above copyright notice,\r | |
17 | this list of conditions and the following disclaimer in the documentation\r | |
18 | and/or other materials provided with the distribution.\r | |
19 | \r | |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r | |
21 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r | |
22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r | |
23 | IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r | |
24 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r | |
25 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r | |
26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r | |
27 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r | |
28 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r | |
29 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r | |
30 | \r | |
31 | **/\r | |
32 | \r | |
33 | #ifndef _BOOT_LOGO2_H_\r | |
34 | #define _BOOT_LOGO2_H_\r | |
35 | \r | |
36 | #include <Protocol/GraphicsOutput.h>\r | |
37 | \r | |
38 | #define EDKII_BOOT_LOGO2_PROTOCOL_GUID \\r | |
39 | { \\r | |
40 | 0x4b5dc1df, 0x1eaa, 0x48b2, { 0xa7, 0xe9, 0xea, 0xc4, 0x89, 0xa0, 0xb, 0x5c } \\r | |
41 | }\r | |
42 | \r | |
43 | //\r | |
44 | // Forward reference for pure ANSI compatability\r | |
45 | //\r | |
46 | typedef struct _EDKII_BOOT_LOGO2_PROTOCOL EDKII_BOOT_LOGO2_PROTOCOL;\r | |
47 | \r | |
48 | /**\r | |
49 | Update information of logo image drawn on screen.\r | |
50 | \r | |
51 | @param[in] This The pointer to the Boot Logo protocol 2 instance.\r | |
52 | @param[in] BltBuffer The BLT buffer for logo drawn on screen. If BltBuffer\r | |
53 | is set to NULL, it indicates that logo image is no\r | |
54 | longer on the screen.\r | |
55 | @param[in] DestinationX X coordinate of destination for the BltBuffer.\r | |
56 | @param[in] DestinationY Y coordinate of destination for the BltBuffer.\r | |
57 | @param[in] Width Width of rectangle in BltBuffer in pixels.\r | |
58 | @param[in] Height Hight of rectangle in BltBuffer in pixels.\r | |
59 | \r | |
60 | @retval EFI_SUCCESS The boot logo information was updated.\r | |
61 | @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.\r | |
62 | @retval EFI_OUT_OF_RESOURCES The logo information was not updated due to\r | |
63 | insufficient memory resources.\r | |
64 | **/\r | |
65 | typedef\r | |
66 | EFI_STATUS\r | |
67 | (EFIAPI *EDKII_SET_BOOT_LOGO2)(\r | |
68 | IN EDKII_BOOT_LOGO2_PROTOCOL *This,\r | |
69 | IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,\r | |
70 | IN UINTN DestinationX,\r | |
71 | IN UINTN DestinationY,\r | |
72 | IN UINTN Width,\r | |
73 | IN UINTN Height\r | |
74 | );\r | |
75 | \r | |
76 | /**\r | |
77 | Get the location of the boot logo on the screen.\r | |
78 | \r | |
79 | @param[in] This The pointer to the Boot Logo Protocol 2 instance\r | |
80 | @param[out] BltBuffer Returns pointer to the GOP BLT buffer that was\r | |
81 | previously registered with SetBootLogo2(). The\r | |
82 | buffer returned must not be modified or freed.\r | |
83 | @param[out] DestinationX Returns the X start position of the GOP BLT buffer\r | |
84 | that was previously registered with SetBootLogo2().\r | |
85 | @param[out] DestinationY Returns the Y start position of the GOP BLT buffer\r | |
86 | that was previously registered with SetBootLogo2().\r | |
87 | @param[out] Width Returns the width of the GOP BLT buffer\r | |
88 | that was previously registered with SetBootLogo2().\r | |
89 | @param[out] Height Returns the height of the GOP BLT buffer\r | |
90 | that was previously registered with SetBootLogo2().\r | |
91 | \r | |
92 | @retval EFI_SUCCESS The location of the boot logo was returned.\r | |
93 | @retval EFI_NOT_READY The boot logo has not been set.\r | |
94 | @retval EFI_INVALID_PARAMETER BltBuffer is NULL.\r | |
95 | @retval EFI_INVALID_PARAMETER DestinationX is NULL.\r | |
96 | @retval EFI_INVALID_PARAMETER DestinationY is NULL.\r | |
97 | @retval EFI_INVALID_PARAMETER Width is NULL.\r | |
98 | @retval EFI_INVALID_PARAMETER Height is NULL.\r | |
99 | **/\r | |
100 | typedef\r | |
101 | EFI_STATUS\r | |
102 | (EFIAPI *EDKII_GET_BOOT_LOGO2)(\r | |
103 | IN EDKII_BOOT_LOGO2_PROTOCOL *This,\r | |
104 | OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **BltBuffer,\r | |
105 | OUT UINTN *DestinationX,\r | |
106 | OUT UINTN *DestinationY,\r | |
107 | OUT UINTN *Width,\r | |
108 | OUT UINTN *Height\r | |
109 | );\r | |
110 | \r | |
111 | struct _EDKII_BOOT_LOGO2_PROTOCOL {\r | |
112 | EDKII_SET_BOOT_LOGO2 SetBootLogo;\r | |
113 | EDKII_GET_BOOT_LOGO2 GetBootLogo;\r | |
114 | };\r | |
115 | \r | |
116 | extern EFI_GUID gEdkiiBootLogo2ProtocolGuid;\r | |
117 | \r | |
118 | #endif\r |