xref: /illumos-gate/usr/src/boot/efi/include/eficonsctl.h (revision 22028508fd28d36ff74dc02c5774a8ba1f0db045)
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