efi_loader: EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset()
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 5 Jul 2018 17:58:07 +0000 (19:58 +0200)
committerAlexander Graf <agraf@suse.de>
Mon, 20 Aug 2018 22:01:01 +0000 (00:01 +0200)
Implement the reset service of the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.

This should resolve the error reported by the SCT in
Protocol/SimpleTextOut/BlackBoxTest/SimpleTextOutBBTestFunction_uefi.c:639

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_console.c

index 3fd0d2fd516e2438c8c0ede96bd7646f239756e4..b487288785347a5c03c9e7d8d9a15d0a2b5a7085 100644 (file)
@@ -105,14 +105,6 @@ static int term_read_reply(int *n, int num, char end_char)
        return 0;
 }
 
-static efi_status_t EFIAPI efi_cout_reset(
-                       struct efi_simple_text_output_protocol *this,
-                       char extended_verification)
-{
-       EFI_ENTRY("%p, %d", this, extended_verification);
-       return EFI_EXIT(EFI_UNSUPPORTED);
-}
-
 static efi_status_t EFIAPI efi_cout_output_string(
                        struct efi_simple_text_output_protocol *this,
                        const efi_string_t string)
@@ -341,6 +333,20 @@ static efi_status_t EFIAPI efi_cout_clear_screen(
        return EFI_EXIT(EFI_SUCCESS);
 }
 
+static efi_status_t EFIAPI efi_cout_reset(
+                       struct efi_simple_text_output_protocol *this,
+                       char extended_verification)
+{
+       EFI_ENTRY("%p, %d", this, extended_verification);
+
+       /* Clear screen */
+       EFI_CALL(efi_cout_clear_screen(this));
+       /* Set default colors */
+       printf(ESC "[0;37;40m");
+
+       return EFI_EXIT(EFI_SUCCESS);
+}
+
 static efi_status_t EFIAPI efi_cout_set_cursor_position(
                        struct efi_simple_text_output_protocol *this,
                        unsigned long column, unsigned long row)