Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:05

0001 /*-
0002  * Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.
0003  *
0004  * Redistribution and use in source and binary forms, with or without
0005  * modification, are permitted provided that the following conditions
0006  * are met:
0007  *
0008  * 1. Redistributions of source code must retain the above copyright
0009  *    notice, this list of conditions and the following disclaimer.
0010  * 2. Redistributions in binary form must reproduce the above copyright
0011  *    notice, this list of conditions and the following disclaimer in the
0012  *    documentation and/or other materials provided with the distribution.
0013  *
0014  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0015  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0016  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0017  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
0018  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0019  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0020  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0021  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0022  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0023  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
0024  * THE POSSIBILITY OF SUCH DAMAGE.
0025  */
0026 
0027 /*
0028  * Original Module Name: ConsoleControl.h
0029  * Abstract: Abstraction of a Text mode or GOP/UGA screen
0030  */
0031 
0032 /* $FreeBSD$ */
0033 
0034 #ifndef _EFI_CONS_CTL_H
0035 #define _EFI_CONS_CTL_H
0036 
0037 #define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \
0038     { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21} }
0039 
0040 typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL   EFI_CONSOLE_CONTROL_PROTOCOL;
0041 
0042 
0043 typedef enum {
0044   EfiConsoleControlScreenText,
0045   EfiConsoleControlScreenGraphics,
0046   EfiConsoleControlScreenMaxValue
0047 } EFI_CONSOLE_CONTROL_SCREEN_MODE;
0048 
0049 
0050 typedef
0051 EFI_STATUS
0052 (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) (
0053   IN  EFI_CONSOLE_CONTROL_PROTOCOL      *This,
0054   OUT EFI_CONSOLE_CONTROL_SCREEN_MODE   *Mode,
0055   OUT BOOLEAN                           *GopUgaExists,  OPTIONAL
0056   OUT BOOLEAN                           *StdInLocked    OPTIONAL
0057   )
0058 /*++
0059 
0060   Routine Description:
0061     Return the current video mode information. Also returns info about existence
0062     of Graphics Output devices or UGA Draw devices in system, and if the Std In
0063     device is locked. All the arguments are optional and only returned if a non
0064     NULL pointer is passed in.
0065 
0066   Arguments:
0067     This         - Protocol instance pointer.
0068     Mode         - Are we in text of grahics mode.
0069     GopUgaExists - TRUE if Console Spliter has found a GOP or UGA device
0070     StdInLocked  - TRUE if StdIn device is keyboard locked
0071 
0072   Returns:
0073     EFI_SUCCESS     - Mode information returned.
0074 
0075 --*/
0076 ;
0077 
0078 
0079 typedef
0080 EFI_STATUS
0081 (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) (
0082   IN  EFI_CONSOLE_CONTROL_PROTOCOL      *This,
0083   IN  EFI_CONSOLE_CONTROL_SCREEN_MODE   Mode
0084   )
0085 /*++
0086 
0087   Routine Description:
0088     Set the current mode to either text or graphics. Graphics is
0089     for Quiet Boot.
0090 
0091   Arguments:
0092     This  - Protocol instance pointer.
0093     Mode  - Mode to set the
0094 
0095   Returns:
0096     EFI_SUCCESS     - Mode information returned.
0097 
0098 --*/
0099 ;
0100 
0101 
0102 typedef
0103 EFI_STATUS
0104 (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) (
0105   IN  EFI_CONSOLE_CONTROL_PROTOCOL      *This,
0106   IN CHAR16                             *Password
0107   )
0108 /*++
0109 
0110   Routine Description:
0111     Lock Std In devices until Password is typed.
0112 
0113   Arguments:
0114     This     - Protocol instance pointer.
0115     Password - Password needed to unlock screen. NULL means unlock keyboard
0116 
0117   Returns:
0118     EFI_SUCCESS      - Mode information returned.
0119     EFI_DEVICE_ERROR - Std In not locked
0120 
0121 --*/
0122 ;
0123 
0124 
0125 
0126 struct _EFI_CONSOLE_CONTROL_PROTOCOL {
0127   EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE           GetMode;
0128   EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE           SetMode;
0129   EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN        LockStdIn;
0130 };
0131 
0132 extern EFI_GUID gEfiConsoleControlProtocolGuid;
0133 
0134 #endif