1*479ab7f0SSascha Wildner /*- 2*479ab7f0SSascha Wildner * Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved. 3*479ab7f0SSascha Wildner * 4*479ab7f0SSascha Wildner * Redistribution and use in source and binary forms, with or without 5*479ab7f0SSascha Wildner * modification, are permitted provided that the following conditions 6*479ab7f0SSascha Wildner * are met: 7*479ab7f0SSascha Wildner * 8*479ab7f0SSascha Wildner * 1. Redistributions of source code must retain the above copyright 9*479ab7f0SSascha Wildner * notice, this list of conditions and the following disclaimer. 10*479ab7f0SSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 11*479ab7f0SSascha Wildner * notice, this list of conditions and the following disclaimer in the 12*479ab7f0SSascha Wildner * documentation and/or other materials provided with the distribution. 13*479ab7f0SSascha Wildner * 14*479ab7f0SSascha Wildner * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15*479ab7f0SSascha Wildner * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*479ab7f0SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*479ab7f0SSascha Wildner * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 18*479ab7f0SSascha Wildner * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19*479ab7f0SSascha Wildner * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20*479ab7f0SSascha Wildner * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21*479ab7f0SSascha Wildner * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22*479ab7f0SSascha Wildner * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23*479ab7f0SSascha Wildner * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 24*479ab7f0SSascha Wildner * THE POSSIBILITY OF SUCH DAMAGE. 25*479ab7f0SSascha Wildner */ 26*479ab7f0SSascha Wildner 27*479ab7f0SSascha Wildner /* 28*479ab7f0SSascha Wildner * Original Module Name: ConsoleControl.h 29*479ab7f0SSascha Wildner * Abstract: Abstraction of a Text mode or GOP/UGA screen 30*479ab7f0SSascha Wildner */ 31*479ab7f0SSascha Wildner 32*479ab7f0SSascha Wildner /* $FreeBSD: head/sys/boot/efi/include/eficonsctl.h 293724 2016-01-12 02:17:39Z smh $ */ 33*479ab7f0SSascha Wildner 34*479ab7f0SSascha Wildner #ifndef _EFI_CONS_CTL_H 35*479ab7f0SSascha Wildner #define _EFI_CONS_CTL_H 36*479ab7f0SSascha Wildner 37*479ab7f0SSascha Wildner #define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \ 38*479ab7f0SSascha Wildner { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21} } 39*479ab7f0SSascha Wildner 40*479ab7f0SSascha Wildner typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL; 41*479ab7f0SSascha Wildner 42*479ab7f0SSascha Wildner 43*479ab7f0SSascha Wildner typedef enum { 44*479ab7f0SSascha Wildner EfiConsoleControlScreenText, 45*479ab7f0SSascha Wildner EfiConsoleControlScreenGraphics, 46*479ab7f0SSascha Wildner EfiConsoleControlScreenMaxValue 47*479ab7f0SSascha Wildner } EFI_CONSOLE_CONTROL_SCREEN_MODE; 48*479ab7f0SSascha Wildner 49*479ab7f0SSascha Wildner 50*479ab7f0SSascha Wildner typedef 51*479ab7f0SSascha Wildner EFI_STATUS 52*479ab7f0SSascha Wildner (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) ( 53*479ab7f0SSascha Wildner IN EFI_CONSOLE_CONTROL_PROTOCOL *This, 54*479ab7f0SSascha Wildner OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode, 55*479ab7f0SSascha Wildner OUT BOOLEAN *GopUgaExists, OPTIONAL 56*479ab7f0SSascha Wildner OUT BOOLEAN *StdInLocked OPTIONAL 57*479ab7f0SSascha Wildner ) 58*479ab7f0SSascha Wildner /*++ 59*479ab7f0SSascha Wildner 60*479ab7f0SSascha Wildner Routine Description: 61*479ab7f0SSascha Wildner Return the current video mode information. Also returns info about existence 62*479ab7f0SSascha Wildner of Graphics Output devices or UGA Draw devices in system, and if the Std In 63*479ab7f0SSascha Wildner device is locked. All the arguments are optional and only returned if a non 64*479ab7f0SSascha Wildner NULL pointer is passed in. 65*479ab7f0SSascha Wildner 66*479ab7f0SSascha Wildner Arguments: 67*479ab7f0SSascha Wildner This - Protocol instance pointer. 68*479ab7f0SSascha Wildner Mode - Are we in text of grahics mode. 69*479ab7f0SSascha Wildner GopUgaExists - TRUE if Console Spliter has found a GOP or UGA device 70*479ab7f0SSascha Wildner StdInLocked - TRUE if StdIn device is keyboard locked 71*479ab7f0SSascha Wildner 72*479ab7f0SSascha Wildner Returns: 73*479ab7f0SSascha Wildner EFI_SUCCESS - Mode information returned. 74*479ab7f0SSascha Wildner 75*479ab7f0SSascha Wildner --*/ 76*479ab7f0SSascha Wildner ; 77*479ab7f0SSascha Wildner 78*479ab7f0SSascha Wildner 79*479ab7f0SSascha Wildner typedef 80*479ab7f0SSascha Wildner EFI_STATUS 81*479ab7f0SSascha Wildner (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) ( 82*479ab7f0SSascha Wildner IN EFI_CONSOLE_CONTROL_PROTOCOL *This, 83*479ab7f0SSascha Wildner IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode 84*479ab7f0SSascha Wildner ) 85*479ab7f0SSascha Wildner /*++ 86*479ab7f0SSascha Wildner 87*479ab7f0SSascha Wildner Routine Description: 88*479ab7f0SSascha Wildner Set the current mode to either text or graphics. Graphics is 89*479ab7f0SSascha Wildner for Quiet Boot. 90*479ab7f0SSascha Wildner 91*479ab7f0SSascha Wildner Arguments: 92*479ab7f0SSascha Wildner This - Protocol instance pointer. 93*479ab7f0SSascha Wildner Mode - Mode to set the 94*479ab7f0SSascha Wildner 95*479ab7f0SSascha Wildner Returns: 96*479ab7f0SSascha Wildner EFI_SUCCESS - Mode information returned. 97*479ab7f0SSascha Wildner 98*479ab7f0SSascha Wildner --*/ 99*479ab7f0SSascha Wildner ; 100*479ab7f0SSascha Wildner 101*479ab7f0SSascha Wildner 102*479ab7f0SSascha Wildner typedef 103*479ab7f0SSascha Wildner EFI_STATUS 104*479ab7f0SSascha Wildner (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) ( 105*479ab7f0SSascha Wildner IN EFI_CONSOLE_CONTROL_PROTOCOL *This, 106*479ab7f0SSascha Wildner IN CHAR16 *Password 107*479ab7f0SSascha Wildner ) 108*479ab7f0SSascha Wildner /*++ 109*479ab7f0SSascha Wildner 110*479ab7f0SSascha Wildner Routine Description: 111*479ab7f0SSascha Wildner Lock Std In devices until Password is typed. 112*479ab7f0SSascha Wildner 113*479ab7f0SSascha Wildner Arguments: 114*479ab7f0SSascha Wildner This - Protocol instance pointer. 115*479ab7f0SSascha Wildner Password - Password needed to unlock screen. NULL means unlock keyboard 116*479ab7f0SSascha Wildner 117*479ab7f0SSascha Wildner Returns: 118*479ab7f0SSascha Wildner EFI_SUCCESS - Mode information returned. 119*479ab7f0SSascha Wildner EFI_DEVICE_ERROR - Std In not locked 120*479ab7f0SSascha Wildner 121*479ab7f0SSascha Wildner --*/ 122*479ab7f0SSascha Wildner ; 123*479ab7f0SSascha Wildner 124*479ab7f0SSascha Wildner 125*479ab7f0SSascha Wildner 126*479ab7f0SSascha Wildner struct _EFI_CONSOLE_CONTROL_PROTOCOL { 127*479ab7f0SSascha Wildner EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode; 128*479ab7f0SSascha Wildner EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode; 129*479ab7f0SSascha Wildner EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn; 130*479ab7f0SSascha Wildner }; 131*479ab7f0SSascha Wildner 132*479ab7f0SSascha Wildner extern EFI_GUID gEfiConsoleControlProtocolGuid; 133*479ab7f0SSascha Wildner 134*479ab7f0SSascha Wildner #endif 135