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