efi_loader: clear screen should move cursor to home
On a VT100 terminal <ESC>[2J should be enough to both clear the whole screen and set the cursor to position (1, 1). But the Linux console does not behave like this. So send an extra <ESC>[H. For reference see the console_codes(4) man page. Add a function description. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
		
							parent
							
								
									3510280960
								
							
						
					
					
						commit
						b0ad9b5b2a
					
				|  | @ -360,12 +360,26 @@ static efi_status_t EFIAPI efi_cout_set_attribute( | |||
| 	return EFI_EXIT(EFI_SUCCESS); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * efi_cout_clear_screen() - clear screen | ||||
|  * | ||||
|  * This function implements the ClearScreen service of the | ||||
|  * EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL. See the Unified Extensible Firmware | ||||
|  * Interface (UEFI) specification for details. | ||||
|  * | ||||
|  * @this:	pointer to the protocol instance | ||||
|  * Return:	status code | ||||
|  */ | ||||
| static efi_status_t EFIAPI efi_cout_clear_screen( | ||||
| 			struct efi_simple_text_output_protocol *this) | ||||
| { | ||||
| 	EFI_ENTRY("%p", this); | ||||
| 
 | ||||
| 	printf(ESC"[2J"); | ||||
| 	/*
 | ||||
| 	 * The Linux console wants both a clear and a home command. The video | ||||
| 	 * uclass does not support <ESC>[H without coordinates, yet. | ||||
| 	 */ | ||||
| 	printf(ESC "[2J" ESC "[1;1H"); | ||||
| 	efi_con_mode.cursor_column = 0; | ||||
| 	efi_con_mode.cursor_row = 0; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue