eficonfig: add vertical scroll support
authorMasahisa Kojima <masahisa.kojima@linaro.org>
Tue, 24 Jan 2023 06:56:15 +0000 (15:56 +0900)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 27 Jan 2023 17:32:00 +0000 (18:32 +0100)
commit8dbd0a0f8e4c59c4fa705585ee2d552acdc5bdb2
tree8dd3df55d1c632d7e3ca9e55cecb5b252a350383
parent0d59085235589f47323d84b7e412d1b6acb10286
eficonfig: add vertical scroll support

The current eficonfig menu does not support vertical scroll,
so it can not display the menu entries greater than
the console row size.

This commit add the vertial scroll support.
The console size is retrieved by
SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode() service, then
calculates the row size for menu entry by subtracting
menu header and description row size from the console row size.
"start" and "end" are added in the efimenu structure.
"start" keeps the menu entry index at the top, "end" keeps
the bottom menu entry index. item_data_print() menu function
only draws the menu entry between "start" and "end".

This commit also fixes the issue that "Save" and "Quit"
entries can be moved by BKEY_PLUS in change boot order menu.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
cmd/eficonfig.c
include/efi_config.h
include/efi_loader.h