xref: /dflybsd-src/stand/boot/efi/include/eficonsctl.h (revision 479ab7f0492f2a51b48e8537e4f1dc686fc6014b)
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