summaryrefslogtreecommitdiffstats
path: root/src/boot/efi/proto/console-control.h
blob: d3a92ea5370de6fe59cf19bfc00ca23402b49f4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

#include "efi.h"

#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \
        GUID_DEF(0xf42f7782, 0x12e, 0x4c12, 0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21)

typedef enum {
        EfiConsoleControlScreenText,
        EfiConsoleControlScreenGraphics,
        EfiConsoleControlScreenMaxValue,
} EFI_CONSOLE_CONTROL_SCREEN_MODE;

typedef struct EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL;
struct EFI_CONSOLE_CONTROL_PROTOCOL {
        EFI_STATUS (EFIAPI *GetMode)(
                        EFI_CONSOLE_CONTROL_PROTOCOL *This,
                        EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,
                        bool *UgaExists,
                        bool *StdInLocked);
        EFI_STATUS (EFIAPI *SetMode)(
                        EFI_CONSOLE_CONTROL_PROTOCOL *This,
                        EFI_CONSOLE_CONTROL_SCREEN_MODE Mode);
        EFI_STATUS(EFIAPI *LockStdIn)(
                        EFI_CONSOLE_CONTROL_PROTOCOL *This,
                        char16_t *Password);
};