]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/boot/efi/console.h
Merge pull request #21838 from lnussel/logind-refactor
[thirdparty/systemd.git] / src / boot / efi / console.h
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
7a3c343c 2#pragma once
0fa2cac4 3
95ba433a 4#include "missing_efi.h"
0fa2cac4
KS
5
6#define EFI_CONTROL_PRESSED (EFI_RIGHT_CONTROL_PRESSED|EFI_LEFT_CONTROL_PRESSED)
7#define EFI_ALT_PRESSED (EFI_RIGHT_ALT_PRESSED|EFI_LEFT_ALT_PRESSED)
de699c7a 8#define KEYPRESS(keys, scan, uni) ((((UINT64)keys) << 32) | (((UINT64)scan) << 16) | (uni))
0fa2cac4
KS
9#define KEYCHAR(k) ((k) & 0xffff)
10#define CHAR_CTRL(c) ((c) - 'a' + 1)
11
134144ab
JJ
12enum {
13 /* Console mode is a INT32 in EFI. We use INT64 to make room for our special values. */
14 CONSOLE_MODE_RANGE_MIN = 0,
15 CONSOLE_MODE_RANGE_MAX = INT32_MAX, /* This is just the theoretical limit. */
16 CONSOLE_MODE_INVALID = -1, /* UEFI uses -1 if the device is not in a valid text mode. */
17
18 CONSOLE_MODE_80_25 = 0, /* 80x25 is required by UEFI spec. */
19 CONSOLE_MODE_80_50 = 1, /* 80x50 may be supported. */
20 CONSOLE_MODE_FIRMWARE_FIRST = 2, /* First custom mode, if supported. */
21
22 /* These are our own mode values that map to concrete values at runtime. */
23 CONSOLE_MODE_KEEP = CONSOLE_MODE_RANGE_MAX + 1LL,
1b965abc 24 CONSOLE_MODE_NEXT,
68d4b8ac 25 CONSOLE_MODE_AUTO,
134144ab 26 CONSOLE_MODE_FIRMWARE_MAX, /* 'max' in config. */
68d4b8ac
HDA
27};
28
e98d271e 29EFI_STATUS console_key_read(UINT64 *key, UINT64 timeout_usec);
134144ab
JJ
30EFI_STATUS console_set_mode(INT64 mode);
31EFI_STATUS console_query_mode(UINTN *x_max, UINTN *y_max);
1926a114 32EFI_STATUS query_screen_resolution(UINT32 *ret_width, UINT32 *ret_height);