public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Kinney, Michael D" <michael.d.kinney@intel.com>
To: edk2-devel@lists.01.org
Cc: Sean Brogan <sean.brogan@microsoft.com>,
	Bret Barkelew <Bret.Barkelew@microsoft.com>,
	Jiewen Yao <jiewen.yao@intel.com>,
	Star Zeng <star.zeng@intel.com>, Eric Dong <eric.dong@intel.com>,
	Michael D Kinney <michael.d.kinney@intel.com>
Subject: [Patch v2 1/3] MdeModulePkg: Add Boot Logo 2 Protocol
Date: Thu, 15 Feb 2018 14:52:03 -0800	[thread overview]
Message-ID: <20180215225205.16856-2-michael.d.kinney@intel.com> (raw)
In-Reply-To: <20180215225205.16856-1-michael.d.kinney@intel.com>

https://bugzilla.tianocore.org/show_bug.cgi?id=799

Based on content from the following branch/commit:
https://github.com/Microsoft/MS_UEFI/tree/share/MsCapsuleSupport
https://github.com/Microsoft/MS_UEFI/commit/33bab4031a417d7d5a7d356c15a14c2e60302b2d

Add new Boot Logo 2 Protocol that adds a GetBootLogo()
service that can be used to retrieve the GOP BLT buffer,
location, and size of the boot logo that was previously
registered with the SetBootLogo() service.

The Boot Logo 2 Protocol service GetBootLogo() is amended
to return the pointer to the GOP BLT buffer previously
registered with the SetBootLogo() service.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
 MdeModulePkg/Include/Protocol/BootLogo2.h | 118 ++++++++++++++++++++++++++++++
 MdeModulePkg/MdeModulePkg.dec             |   3 +
 2 files changed, 121 insertions(+)
 create mode 100644 MdeModulePkg/Include/Protocol/BootLogo2.h

diff --git a/MdeModulePkg/Include/Protocol/BootLogo2.h b/MdeModulePkg/Include/Protocol/BootLogo2.h
new file mode 100644
index 0000000000..6c4c4cf30a
--- /dev/null
+++ b/MdeModulePkg/Include/Protocol/BootLogo2.h
@@ -0,0 +1,118 @@
+/**
+Boot Logo 2 Protocol is used to convey information of Logo dispayed during boot.
+
+The Boot Logo 2 Protocol is a replacement for the Boot Logo Protocol.  If a
+platform produces both the Boot Logo 2 Protocol and the Boot Logo Protocol
+then the Boot Logo 2 Protocol must be used instead of the Boot Logo Protocol.
+
+Copyright (c) 2016, Microsoft Corporation
+Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
+
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+**/
+
+#ifndef _BOOT_LOGO2_H_
+#define _BOOT_LOGO2_H_
+
+#include <Protocol/GraphicsOutput.h>
+
+#define EDKII_BOOT_LOGO2_PROTOCOL_GUID \
+  { \
+    0x4b5dc1df, 0x1eaa, 0x48b2, { 0xa7, 0xe9, 0xea, 0xc4, 0x89, 0xa0, 0xb, 0x5c } \
+  }
+
+//
+// Forward reference for pure ANSI compatability
+//
+typedef struct _EDKII_BOOT_LOGO2_PROTOCOL EDKII_BOOT_LOGO2_PROTOCOL;
+
+/**
+  Update information of logo image drawn on screen.
+
+  @param[in] This          The pointer to the Boot Logo protocol 2 instance.
+  @param[in] BltBuffer     The BLT buffer for logo drawn on screen. If BltBuffer
+                           is set to NULL, it indicates that logo image is no
+                           longer on the screen.
+  @param[in] DestinationX  X coordinate of destination for the BltBuffer.
+  @param[in] DestinationY  Y coordinate of destination for the BltBuffer.
+  @param[in] Width         Width of rectangle in BltBuffer in pixels.
+  @param[in] Height        Hight of rectangle in BltBuffer in pixels.
+
+  @retval EFI_SUCCESS            The boot logo information was updated.
+  @retval EFI_INVALID_PARAMETER  One of the parameters has an invalid value.
+  @retval EFI_OUT_OF_RESOURCES   The logo information was not updated due to
+                                 insufficient memory resources.
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EDKII_SET_BOOT_LOGO2)(
+  IN EDKII_BOOT_LOGO2_PROTOCOL      *This,
+  IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL  *BltBuffer       OPTIONAL,
+  IN UINTN                          DestinationX,
+  IN UINTN                          DestinationY,
+  IN UINTN                          Width,
+  IN UINTN                          Height
+  );
+
+/**
+  Get the location of the boot logo on the screen.
+
+  @param[in]  This          The pointer to the Boot Logo Protocol 2 instance
+  @param[out] BltBuffer     Returns pointer to the GOP BLT buffer that was
+                            previously registered with SetBootLogo2(). The
+                            buffer returned must not be modified or freed.
+  @param[out] DestinationX  Returns the X start position of the GOP BLT buffer
+                            that was previously registers with SetBootLogo2().
+  @param[out] DestinationY  Returns the Y start position of the GOP BLT buffer
+                            that was previously registers with SetBootLogo2().
+  @param[out] Width         Returns the width of the GOP BLT buffer
+                            that was previously registers with SetBootLogo2().
+  @param[out] Height        Returns the height of the GOP BLT buffer
+                            that was previously registers with SetBootLogo2().
+
+  @retval EFI_SUCCESS            The location of the boot logo was returned.
+  @retval EFI_NOT_READY          The boot logo has not been set.
+  @retval EFI_INVALID_PARAMETER  BltBuffer is NULL.
+  @retval EFI_INVALID_PARAMETER  DestinationX is NULL.
+  @retval EFI_INVALID_PARAMETER  DestinationY is NULL.
+  @retval EFI_INVALID_PARAMETER  Width is NULL.
+  @retval EFI_INVALID_PARAMETER  Height is NULL.
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EDKII_GET_BOOT_LOGO2)(
+  IN  EDKII_BOOT_LOGO2_PROTOCOL      *This,
+  OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL  **BltBuffer,
+  OUT UINTN                          *DestinationX,
+  OUT UINTN                          *DestinationY,
+  OUT UINTN                          *Width,
+  OUT UINTN                          *Height
+  );
+
+struct _EDKII_BOOT_LOGO2_PROTOCOL {
+  EDKII_SET_BOOT_LOGO2  SetBootLogo;
+  EDKII_GET_BOOT_LOGO2  GetBootLogo;
+};
+
+extern EFI_GUID  gEdkiiBootLogo2ProtocolGuid;
+
+#endif
diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
index 455979386e..ba0585936b 100644
--- a/MdeModulePkg/MdeModulePkg.dec
+++ b/MdeModulePkg/MdeModulePkg.dec
@@ -538,6 +538,9 @@ [Protocols]
   ## Include/Protocol/BootLogo.h
   gEfiBootLogoProtocolGuid = { 0xcdea2bd3, 0xfc25, 0x4c1c, { 0xb9, 0x7c, 0xb3, 0x11, 0x86, 0x6, 0x49, 0x90 } }
 
+  # Include/Protocol/BootLogo2.h
+  gEdkiiBootLogo2ProtocolGuid = { 0x4b5dc1df, 0x1eaa, 0x48b2, { 0xa7, 0xe9, 0xea, 0xc4, 0x89, 0xa0, 0xb, 0x5c } }
+
   ## Include/Protocol/DisplayProtocol.h
   gEdkiiFormDisplayEngineProtocolGuid = { 0x9bbe29e9, 0xfda1, 0x41ec, { 0xad, 0x52, 0x45, 0x22, 0x13, 0x74, 0x2d, 0x2e } }
 
-- 
2.14.2.windows.3



  reply	other threads:[~2018-02-15 22:46 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-15 22:52 [Patch v2 0/3] MdeModulePkg: Add Boot Logo 2 Protocol Kinney, Michael D
2018-02-15 22:52 ` Kinney, Michael D [this message]
2018-02-15 22:52 ` [Patch v2 2/3] MdeModulePkg/BootGraphicsResourceDxe: " Kinney, Michael D
2018-02-15 22:52 ` [Patch v2 3/3] MdeModulePkg/BootLogoLib: Use " Kinney, Michael D
2018-02-23  3:24 ` [Patch v2 0/3] MdeModulePkg: Add " Zeng, Star
2018-02-27 19:16 ` Sean Brogan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180215225205.16856-2-michael.d.kinney@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox