On 08/22/14 07:34, reza.jel...@tuhh.de wrote: > From: Reza Jelveh <reza.jel...@tuhh.de> > > Apple's bootloader requires the ConsoleControl protocol to be > implemented. > > The gEfiConsoleControlProtocolGuid is added to the dec file for O to > consume.
Typo in commit message -- "O". Otherwise, "ConsoleControl.h" in this patch is a verbatim copy of "EdkCompatibilityPkg/Foundation/Protocol/ConsoleControl/ConsoleControl.h", so aside of the typo in the commit message, this patch seems OK. Thanks, Laszlo > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Reza Jelveh <reza.jel...@tuhh.de> > --- > OvmfPkg/Include/Protocol/ConsoleControl.h | 122 > ++++++++++++++++++++++++++++++ > OvmfPkg/OvmfPkg.dec | 1 + > 2 files changed, 123 insertions(+) > create mode 100644 OvmfPkg/Include/Protocol/ConsoleControl.h > > diff --git a/OvmfPkg/Include/Protocol/ConsoleControl.h > b/OvmfPkg/Include/Protocol/ConsoleControl.h > new file mode 100644 > index 0000000..c52ef47 > --- /dev/null > +++ b/OvmfPkg/Include/Protocol/ConsoleControl.h > @@ -0,0 +1,122 @@ > +/*++ > + > +Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR> > +This program and the accompanying materials > +are licensed and made available under the terms and conditions of the BSD > License > +which accompanies this distribution. The full text of the license may be > found at > +http://opensource.org/licenses/bsd-license.php > > + > > +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > > +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > + > +Module Name: > + > + ConsoleControl.h > + > +Abstract: > + > + Abstraction of a Text mode or GOP/UGA screen > + > +--*/ > + > +#ifndef __CONSOLE_CONTROL_H__ > +#define __CONSOLE_CONTROL_H__ > + > +#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \ > + { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, > 0x21} } > + > +typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL; > + > + > +typedef enum { > + EfiConsoleControlScreenText, > + EfiConsoleControlScreenGraphics, > + EfiConsoleControlScreenMaxValue > +} EFI_CONSOLE_CONTROL_SCREEN_MODE; > + > + > +typedef > +EFI_STATUS > +(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) ( > + IN EFI_CONSOLE_CONTROL_PROTOCOL *This, > + OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode, > + OUT BOOLEAN *GopUgaExists, OPTIONAL > + OUT BOOLEAN *StdInLocked OPTIONAL > + ) > +/*++ > + > + Routine Description: > + Return the current video mode information. Also returns info about > existence > + of Graphics Output devices or UGA Draw devices in system, and if the Std > In > + device is locked. All the arguments are optional and only returned if a > non > + NULL pointer is passed in. > + > + Arguments: > + This - Protocol instance pointer. > + Mode - Are we in text of grahics mode. > + GopUgaExists - TRUE if Console Spliter has found a GOP or UGA device > + StdInLocked - TRUE if StdIn device is keyboard locked > + > + Returns: > + EFI_SUCCESS - Mode information returned. > + > +--*/ > +; > + > + > +typedef > +EFI_STATUS > +(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) ( > + IN EFI_CONSOLE_CONTROL_PROTOCOL *This, > + IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode > + ) > +/*++ > + > + Routine Description: > + Set the current mode to either text or graphics. Graphics is > + for Quiet Boot. > + > + Arguments: > + This - Protocol instance pointer. > + Mode - Mode to set the > + > + Returns: > + EFI_SUCCESS - Mode information returned. > + > +--*/ > +; > + > + > +typedef > +EFI_STATUS > +(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) ( > + IN EFI_CONSOLE_CONTROL_PROTOCOL *This, > + IN CHAR16 *Password > + ) > +/*++ > + > + Routine Description: > + Lock Std In devices until Password is typed. > + > + Arguments: > + This - Protocol instance pointer. > + Password - Password needed to unlock screen. NULL means unlock keyboard > + > + Returns: > + EFI_SUCCESS - Mode information returned. > + EFI_DEVICE_ERROR - Std In not locked > + > +--*/ > +; > + > + > + > +struct _EFI_CONSOLE_CONTROL_PROTOCOL { > + EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode; > + EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode; > + EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn; > +}; > + > +extern EFI_GUID gEfiConsoleControlProtocolGuid; > + > +#endif > diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec > index c10948d..973fd1a 100644 > --- a/OvmfPkg/OvmfPkg.dec > +++ b/OvmfPkg/OvmfPkg.dec > @@ -47,6 +47,7 @@ > [Protocols] > gVirtioDeviceProtocolGuid = {0xfa920010, 0x6785, 0x4941, {0xb6, > 0xec, 0x49, 0x8c, 0x57, 0x9f, 0x16, 0x0a}} > gBlockMmioProtocolGuid = {0x6b558ce3, 0x69e5, 0x4c67, {0xa6, > 0x34, 0xf7, 0xfe, 0x72, 0xad, 0xbe, 0x84}} > + gEfiConsoleControlProtocolGuid = {0xf42f7782, 0x012e, 0x4c12, {0x99, > 0x56, 0x49, 0xf9, 0x43, 0x04, 0xf7, 0x21}} > > [PcdsFixedAtBuild] > gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase|0x0|UINT32|0 > ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel