1 /** @file
2   Boot Logo protocol is used to convey information of Logo dispayed during boot.
3 
4 Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials are licensed and made available under
6 the terms and conditions of the BSD License that accompanies this distribution.
7 The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php.
9 
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef _BOOT_LOGO_H_
16 #define _BOOT_LOGO_H_
17 
18 #include <Protocol/GraphicsOutput.h>
19 
20 #define EFI_BOOT_LOGO_PROTOCOL_GUID \
21   { \
22     0xcdea2bd3, 0xfc25, 0x4c1c, { 0xb9, 0x7c, 0xb3, 0x11, 0x86, 0x6, 0x49, 0x90 } \
23   }
24 
25 //
26 // Forward reference for pure ANSI compatability
27 //
28 typedef struct _EFI_BOOT_LOGO_PROTOCOL  EFI_BOOT_LOGO_PROTOCOL;
29 
30 /**
31   Update information of logo image drawn on screen.
32 
33   @param  This           The pointer to the Boot Logo protocol instance.
34   @param  BltBuffer      The BLT buffer for logo drawn on screen. If BltBuffer
35                          is set to NULL, it indicates that logo image is no
36                          longer on the screen.
37   @param  DestinationX   X coordinate of destination for the BltBuffer.
38   @param  DestinationY   Y coordinate of destination for the BltBuffer.
39   @param  Width          Width of rectangle in BltBuffer in pixels.
40   @param  Height         Hight of rectangle in BltBuffer in pixels.
41 
42   @retval EFI_SUCCESS             The boot logo information was updated.
43   @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid value.
44   @retval EFI_OUT_OF_RESOURCES    The logo information was not updated due to
45                                   insufficient memory resources.
46 
47 **/
48 typedef
49 EFI_STATUS
50 (EFIAPI *EFI_SET_BOOT_LOGO)(
51   IN EFI_BOOT_LOGO_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 struct _EFI_BOOT_LOGO_PROTOCOL {
60   EFI_SET_BOOT_LOGO        SetBootLogo;
61 };
62 
63 extern EFI_GUID gEfiBootLogoProtocolGuid;
64 
65 #endif
66