xref: /titanic_53/usr/src/boot/sys/boot/efi/include/eficonsctl.h (revision 4a5d661a82b942b6538acd26209d959ce98b593a)
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