aboutsummaryrefslogtreecommitdiff
path: root/src/include/ipxe/tls.h
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2021-01-26 20:46:57 +0000
committerMichael Brown <mcb30@ipxe.org>2021-01-26 21:05:37 +0000
commitb5d8ed7e285029d4e91e96122dba076cf9ebeebf (patch)
tree6f0f7153a1722f94b54ffa502a24563d7dcbf951 /src/include/ipxe/tls.h
parentf4c3a01470289d450dbe437fdfb1e85309459374 (diff)
downloadipxe-simpletextinputex.zip
ipxe-simpletextinputex.tar.gz
ipxe-simpletextinputex.tar.bz2
[efi] Use EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL if availablesimpletextinputex
The original EFI_SIMPLE_TEXT_INPUT_PROTOCOL is not technically required to handle the use of the Ctrl key, and the long-obsolete EFI 1.10 specification lists only backspace, tab, linefeed, and carriage return as required. Some particularly brain-dead vendor UEFI firmware implementations dutifully put in the extra effort of ensuring that all other control characters (such as Ctrl-C) are impossible to type via EFI_SIMPLE_TEXT_INPUT_PROTOCOL. Current versions of the UEFI specification mandate that the console input handle must support both EFI_SIMPLE_TEXT_INPUT_PROTOCOL and EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL, the latter of which at least provides access to modifier key state. Unlike EFI_SIMPLE_TEXT_INPUT_PROTOCOL, the pointer to the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance does not appear within the EFI system table and must therefore be opened explicitly. The UEFI specification provides no safe way to do so, since we cannot open the handle BY_DRIVER or BY_CHILD_CONTROLLER and so nothing guarantees that this pointer will remain valid for the lifetime of iPXE. We must simply hope that no UEFI firmware implementation ever discovers a motivation for reinstalling the EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL instance. Use EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL if available, falling back to the existing EFI_SIMPLE_TEXT_PROTOCOL otherwise. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/tls.h')
0 files changed, 0 insertions, 0 deletions