xref: /haiku/headers/private/kernel/platform/efi/protocol/console-control.h (revision 9adc70887e06e23975eeea6e62b3d8921ef2b1a1)
1*9adc7088SAlexander von Gluck IV // Copyright 2020 Haiku, Inc. All rights reserved
2*9adc7088SAlexander von Gluck IV // Released under the terms of the MIT License
3*9adc7088SAlexander von Gluck IV 
4*9adc7088SAlexander von Gluck IV #pragma once
5*9adc7088SAlexander von Gluck IV 
6*9adc7088SAlexander von Gluck IV #include <efi/types.h>
7*9adc7088SAlexander von Gluck IV 
8*9adc7088SAlexander von Gluck IV #define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \
9*9adc7088SAlexander von Gluck IV 	{0xf42f7782, 0x012e, 0x4c12, \
10*9adc7088SAlexander von Gluck IV 		{0x99, 0x56, 0x49, 0xf9, 0x43, 0x04, 0xf7, 0x21}}
11*9adc7088SAlexander von Gluck IV 
12*9adc7088SAlexander von Gluck IV extern efi_guid ConsoleControlProtocol;
13*9adc7088SAlexander von Gluck IV 
14*9adc7088SAlexander von Gluck IV typedef enum {
15*9adc7088SAlexander von Gluck IV 	EfiConsoleControlScreenText,
16*9adc7088SAlexander von Gluck IV 	EfiConsoleControlScreenGraphics,
17*9adc7088SAlexander von Gluck IV 	EfiConsoleControlScreenMax
18*9adc7088SAlexander von Gluck IV } efi_console_control_screen_mode;
19*9adc7088SAlexander von Gluck IV 
20*9adc7088SAlexander von Gluck IV typedef struct efi_console_control_protocol {
21*9adc7088SAlexander von Gluck IV 	uint64_t Revision;
22*9adc7088SAlexander von Gluck IV 
23*9adc7088SAlexander von Gluck IV 	efi_status (*GetMode) (struct efi_console_control_protocol* self,
24*9adc7088SAlexander von Gluck IV 		efi_console_control_screen_mode* mode,
25*9adc7088SAlexander von Gluck IV 		bool* gopUgaExists,
26*9adc7088SAlexander von Gluck IV 		bool* stdInLocked) EFIAPI;
27*9adc7088SAlexander von Gluck IV 
28*9adc7088SAlexander von Gluck IV 	efi_status (*SetMode) (struct efi_console_control_protocol* self,
29*9adc7088SAlexander von Gluck IV 		efi_console_control_screen_mode mode) EFIAPI;
30*9adc7088SAlexander von Gluck IV 
31*9adc7088SAlexander von Gluck IV 	efi_status (*LockStdIn) (struct efi_console_control_protocol* self,
32*9adc7088SAlexander von Gluck IV 		uint16_t* password);
33*9adc7088SAlexander von Gluck IV 
34*9adc7088SAlexander von Gluck IV } efi_console_control_protocol;
35