1 | /** @file
|
---|
2 | Boot Logo 2 Protocol is used to convey information of Logo dispayed during boot.
|
---|
3 |
|
---|
4 | The Boot Logo 2 Protocol is a replacement for the Boot Logo Protocol. If a
|
---|
5 | platform produces both the Boot Logo 2 Protocol and the Boot Logo Protocol
|
---|
6 | then the Boot Logo 2 Protocol must be used instead of the Boot Logo Protocol.
|
---|
7 |
|
---|
8 | Copyright (c) 2016, Microsoft Corporation
|
---|
9 | Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
---|
10 |
|
---|
11 | All rights reserved.
|
---|
12 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
13 |
|
---|
14 | **/
|
---|
15 |
|
---|
16 | #ifndef _BOOT_LOGO2_H_
|
---|
17 | #define _BOOT_LOGO2_H_
|
---|
18 |
|
---|
19 | #include <Protocol/GraphicsOutput.h>
|
---|
20 |
|
---|
21 | #define EDKII_BOOT_LOGO2_PROTOCOL_GUID \
|
---|
22 | { \
|
---|
23 | 0x4b5dc1df, 0x1eaa, 0x48b2, { 0xa7, 0xe9, 0xea, 0xc4, 0x89, 0xa0, 0xb, 0x5c } \
|
---|
24 | }
|
---|
25 |
|
---|
26 | //
|
---|
27 | // Forward reference for pure ANSI compatability
|
---|
28 | //
|
---|
29 | typedef struct _EDKII_BOOT_LOGO2_PROTOCOL EDKII_BOOT_LOGO2_PROTOCOL;
|
---|
30 |
|
---|
31 | /**
|
---|
32 | Update information of logo image drawn on screen.
|
---|
33 |
|
---|
34 | @param[in] This The pointer to the Boot Logo protocol 2 instance.
|
---|
35 | @param[in] BltBuffer The BLT buffer for logo drawn on screen. If BltBuffer
|
---|
36 | is set to NULL, it indicates that logo image is no
|
---|
37 | longer on the screen.
|
---|
38 | @param[in] DestinationX X coordinate of destination for the BltBuffer.
|
---|
39 | @param[in] DestinationY Y coordinate of destination for the BltBuffer.
|
---|
40 | @param[in] Width Width of rectangle in BltBuffer in pixels.
|
---|
41 | @param[in] Height Hight of rectangle in BltBuffer in pixels.
|
---|
42 |
|
---|
43 | @retval EFI_SUCCESS The boot logo information was updated.
|
---|
44 | @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
|
---|
45 | @retval EFI_OUT_OF_RESOURCES The logo information was not updated due to
|
---|
46 | insufficient memory resources.
|
---|
47 | **/
|
---|
48 | typedef
|
---|
49 | EFI_STATUS
|
---|
50 | (EFIAPI *EDKII_SET_BOOT_LOGO2)(
|
---|
51 | IN EDKII_BOOT_LOGO2_PROTOCOL *This,
|
---|
52 | IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer OPTIONAL,
|
---|
53 | IN UINTN DestinationX,
|
---|
54 | IN UINTN DestinationY,
|
---|
55 | IN UINTN Width,
|
---|
56 | IN UINTN Height
|
---|
57 | );
|
---|
58 |
|
---|
59 | /**
|
---|
60 | Get the location of the boot logo on the screen.
|
---|
61 |
|
---|
62 | @param[in] This The pointer to the Boot Logo Protocol 2 instance
|
---|
63 | @param[out] BltBuffer Returns pointer to the GOP BLT buffer that was
|
---|
64 | previously registered with SetBootLogo2(). The
|
---|
65 | buffer returned must not be modified or freed.
|
---|
66 | @param[out] DestinationX Returns the X start position of the GOP BLT buffer
|
---|
67 | that was previously registered with SetBootLogo2().
|
---|
68 | @param[out] DestinationY Returns the Y start position of the GOP BLT buffer
|
---|
69 | that was previously registered with SetBootLogo2().
|
---|
70 | @param[out] Width Returns the width of the GOP BLT buffer
|
---|
71 | that was previously registered with SetBootLogo2().
|
---|
72 | @param[out] Height Returns the height of the GOP BLT buffer
|
---|
73 | that was previously registered with SetBootLogo2().
|
---|
74 |
|
---|
75 | @retval EFI_SUCCESS The location of the boot logo was returned.
|
---|
76 | @retval EFI_NOT_READY The boot logo has not been set.
|
---|
77 | @retval EFI_INVALID_PARAMETER BltBuffer is NULL.
|
---|
78 | @retval EFI_INVALID_PARAMETER DestinationX is NULL.
|
---|
79 | @retval EFI_INVALID_PARAMETER DestinationY is NULL.
|
---|
80 | @retval EFI_INVALID_PARAMETER Width is NULL.
|
---|
81 | @retval EFI_INVALID_PARAMETER Height is NULL.
|
---|
82 | **/
|
---|
83 | typedef
|
---|
84 | EFI_STATUS
|
---|
85 | (EFIAPI *EDKII_GET_BOOT_LOGO2)(
|
---|
86 | IN EDKII_BOOT_LOGO2_PROTOCOL *This,
|
---|
87 | OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **BltBuffer,
|
---|
88 | OUT UINTN *DestinationX,
|
---|
89 | OUT UINTN *DestinationY,
|
---|
90 | OUT UINTN *Width,
|
---|
91 | OUT UINTN *Height
|
---|
92 | );
|
---|
93 |
|
---|
94 | struct _EDKII_BOOT_LOGO2_PROTOCOL {
|
---|
95 | EDKII_SET_BOOT_LOGO2 SetBootLogo;
|
---|
96 | EDKII_GET_BOOT_LOGO2 GetBootLogo;
|
---|
97 | };
|
---|
98 |
|
---|
99 | extern EFI_GUID gEdkiiBootLogo2ProtocolGuid;
|
---|
100 |
|
---|
101 | #endif
|
---|