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