提交 2ad238fc 编写于 作者: H Heinrich Schuchardt

efi_loader: fix SetMode()

Correct the check of the mode number in SetMode() service of the simple
text output protocol.

Clear the screen in SetMode().
Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
上级 c5b63bec
......@@ -316,23 +316,6 @@ static efi_status_t EFIAPI efi_cout_query_mode(
return EFI_EXIT(EFI_SUCCESS);
}
static efi_status_t EFIAPI efi_cout_set_mode(
struct efi_simple_text_output_protocol *this,
unsigned long mode_number)
{
EFI_ENTRY("%p, %ld", this, mode_number);
if (mode_number > efi_con_mode.max_mode)
return EFI_EXIT(EFI_UNSUPPORTED);
efi_con_mode.mode = mode_number;
efi_con_mode.cursor_column = 0;
efi_con_mode.cursor_row = 0;
return EFI_EXIT(EFI_SUCCESS);
}
static const struct {
unsigned int fg;
unsigned int bg;
......@@ -378,6 +361,20 @@ static efi_status_t EFIAPI efi_cout_clear_screen(
return EFI_EXIT(EFI_SUCCESS);
}
static efi_status_t EFIAPI efi_cout_set_mode(
struct efi_simple_text_output_protocol *this,
unsigned long mode_number)
{
EFI_ENTRY("%p, %ld", this, mode_number);
if (mode_number >= efi_con_mode.max_mode)
return EFI_EXIT(EFI_UNSUPPORTED);
efi_con_mode.mode = mode_number;
EFI_CALL(efi_cout_clear_screen(this));
return EFI_EXIT(EFI_SUCCESS);
}
static efi_status_t EFIAPI efi_cout_reset(
struct efi_simple_text_output_protocol *this,
char extended_verification)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册