From f32723663b464ab82285b22af57bf58bd32f759f Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Sat, 15 Oct 2022 11:13:59 +0200 Subject: efi_loader: avoid EFI_CALL() for clearing screen Carve out function efi_clear_screen. Signed-off-by: Heinrich Schuchardt --- lib/efi_loader/efi_console.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'lib/efi_loader/efi_console.c') diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 3354b217a9a..6d4784e1408 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -460,6 +460,20 @@ static efi_status_t EFIAPI efi_cout_set_attribute( return EFI_EXIT(EFI_SUCCESS); } +/** + * efi_cout_clear_screen() - clear screen + */ +static void efi_clear_screen(void) +{ + /* + * The Linux console wants both a clear and a home command. The video + * uclass does not support [H without coordinates, yet. + */ + printf(ESC "[2J" ESC "[1;1H"); + efi_con_mode.cursor_column = 0; + efi_con_mode.cursor_row = 0; +} + /** * efi_cout_clear_screen() - clear screen * @@ -475,13 +489,7 @@ static efi_status_t EFIAPI efi_cout_clear_screen( { EFI_ENTRY("%p", this); - /* - * The Linux console wants both a clear and a home command. The video - * uclass does not support [H without coordinates, yet. - */ - printf(ESC "[2J" ESC "[1;1H"); - efi_con_mode.cursor_column = 0; - efi_con_mode.cursor_row = 0; + efi_clear_screen(); return EFI_EXIT(EFI_SUCCESS); } @@ -510,7 +518,7 @@ static efi_status_t EFIAPI efi_cout_set_mode( return EFI_EXIT(EFI_UNSUPPORTED); efi_con_mode.mode = mode_number; - EFI_CALL(efi_cout_clear_screen(this)); + efi_clear_screen(); return EFI_EXIT(EFI_SUCCESS); } @@ -536,7 +544,7 @@ static efi_status_t EFIAPI efi_cout_reset( efi_con_mode.attribute = 0x07; printf(ESC "[0;37;40m"); /* Clear screen */ - EFI_CALL(efi_cout_clear_screen(this)); + efi_clear_screen(); return EFI_EXIT(EFI_SUCCESS); } -- cgit v1.2.3 From 7831d36f5bd8c321a9054912c1675c840978314d Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Sat, 15 Oct 2022 12:22:37 +0200 Subject: efi_loader: avoid EFI_CALL() when draining console Use internal function. Signed-off-by: Heinrich Schuchardt --- lib/efi_loader/efi_console.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'lib/efi_loader/efi_console.c') diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 6d4784e1408..ab83f8bf828 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -1359,9 +1359,7 @@ efi_status_t efi_console_get_u16_string(struct efi_simple_text_input_protocol *c ANSI_CLEAR_LINE_TO_END ANSI_CURSOR_SHOW, row, col); - ret = EFI_CALL(cin->reset(cin, false)); - if (ret != EFI_SUCCESS) - return ret; + efi_cin_empty_buffer(); for (;;) { do { -- cgit v1.2.3