summaryrefslogtreecommitdiff
path: root/include/console.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/console.h')
-rw-r--r--include/console.h35
1 files changed, 32 insertions, 3 deletions
diff --git a/include/console.h b/include/console.h
index deb4fa3d..f56b1231 100644
--- a/include/console.h
+++ b/include/console.h
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: BSD-2-Clause-Patent
+
#ifndef SHIM_CONSOLE_H
#define SHIM_CONSOLE_H
@@ -7,11 +9,17 @@
#define PrintAt(fmt, ...) \
({"Do not directly call PrintAt() use console_print_at() instead" = 1;});
+#if !defined(EFI_WARN_UNKNOWN_GLYPH) && defined(EFI_WARN_UNKOWN_GLYPH)
+#define EFI_WARN_UNKNOWN_GLYPH EFI_WARN_UNKOWN_GLYPH
+#elif !defined(EFI_WARN_UNKNOWN_GLYPH)
+#define EFI_WARN_UNKNOWN_GLYPH EFIWARN(1)
+#endif
+
EFI_STATUS
console_get_keystroke(EFI_INPUT_KEY *key);
-UINTN
+UINTN EFIAPI
console_print(const CHAR16 *fmt, ...);
-UINTN
+UINTN EFIAPI
console_print_at(UINTN col, UINTN row, const CHAR16 *fmt, ...);
void
console_print_box_at(CHAR16 *str_arr[], int highlight,
@@ -33,7 +41,15 @@ console_alertbox(CHAR16 **title);
void
console_notify(CHAR16 *string);
void
+console_save_and_set_mode(SIMPLE_TEXT_OUTPUT_MODE * SavedMode);
+void
+console_restore_mode(SIMPLE_TEXT_OUTPUT_MODE * SavedMode);
+int
+console_countdown(CHAR16* title, const CHAR16* message, int timeout);
+void
console_reset(void);
+void
+console_mode_handle(void);
#define NOSEL 0x7fffffff
typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL;
@@ -76,12 +92,25 @@ struct _EFI_CONSOLE_CONTROL_PROTOCOL {
extern VOID console_fini(VOID);
extern VOID setup_verbosity(VOID);
extern UINT32 verbose;
-#define dprint(fmt, ...) ({ \
+#ifndef SHIM_UNIT_TEST
+#define dprint_(fmt, ...) ({ \
UINTN __dprint_ret = 0; \
if (verbose) \
__dprint_ret = console_print((fmt), ##__VA_ARGS__); \
__dprint_ret; \
})
+#define dprint(fmt, ...) \
+ dprint_(L"%a:%d:%a() " fmt, __FILE__, __LINE__ - 1, __func__, \
+ ##__VA_ARGS__)
+#else
+#define dprint_(...)
+#define dprint(fmt, ...)
+#endif
+
+extern EFI_STATUS EFIAPI vdprint_(const CHAR16 *fmt, const char *file, int line,
+ const char *func, ms_va_list args);
+#define vdprint(fmt, ...) \
+ vdprint_(fmt, __FILE__, __LINE__ - 1, __func__, ##__VA_ARGS__)
extern EFI_STATUS print_crypto_errors(EFI_STATUS rc, char *file, const char *func, int line);
#define crypterr(rc) print_crypto_errors((rc), __FILE__, __func__, __LINE__)