summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2019-09-02 13:53:02 +0300
committerToomas Soome <tsoome@me.com>2019-09-11 17:54:38 +0300
commit169b638e2b6e15b2589c3769e4a0d96188adf56d (patch)
tree36bdb5ed91f3b8630f69ab6ea0ead637eaff13e1
parent81ff72c5f2cea16235aa4a42d83d07e20090498d (diff)
downloadillumos-joyent-169b638e2b6e15b2589c3769e4a0d96188adf56d.tar.gz
11649 loader.efi: some systems do not translate scan code 0x8 to backspace
Reviewed by: Gergő Doma <domag02@gmail.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
-rw-r--r--usr/src/boot/Makefile.version2
-rw-r--r--usr/src/boot/sys/boot/efi/libefi/efi_console.c13
2 files changed, 9 insertions, 6 deletions
diff --git a/usr/src/boot/Makefile.version b/usr/src/boot/Makefile.version
index f50f4129be..02fbcc53bf 100644
--- a/usr/src/boot/Makefile.version
+++ b/usr/src/boot/Makefile.version
@@ -33,4 +33,4 @@ LOADER_VERSION = 1.1
# Use date like formatting here, YYYY.MM.DD.XX, without leading zeroes.
# The version is processed from left to right, the version number can only
# be increased.
-BOOT_VERSION = $(LOADER_VERSION)-2019.09.02.1
+BOOT_VERSION = $(LOADER_VERSION)-2019.09.02.2
diff --git a/usr/src/boot/sys/boot/efi/libefi/efi_console.c b/usr/src/boot/sys/boot/efi/libefi/efi_console.c
index 1e60d2488a..cc64bd5b0c 100644
--- a/usr/src/boot/sys/boot/efi/libefi/efi_console.c
+++ b/usr/src/boot/sys/boot/efi/libefi/efi_console.c
@@ -597,27 +597,30 @@ keybuf_inschar(EFI_INPUT_KEY *key)
{
switch (key->ScanCode) {
- case 0x1: /* UP */
+ case SCAN_UP: /* UP */
keybuf[0] = 0x1b; /* esc */
keybuf[1] = '[';
keybuf[2] = 'A';
break;
- case 0x2: /* DOWN */
+ case SCAN_DOWN: /* DOWN */
keybuf[0] = 0x1b; /* esc */
keybuf[1] = '[';
keybuf[2] = 'B';
break;
- case 0x3: /* RIGHT */
+ case SCAN_RIGHT: /* RIGHT */
keybuf[0] = 0x1b; /* esc */
keybuf[1] = '[';
keybuf[2] = 'C';
break;
- case 0x4: /* LEFT */
+ case SCAN_LEFT: /* LEFT */
keybuf[0] = 0x1b; /* esc */
keybuf[1] = '[';
keybuf[2] = 'D';
break;
- case 0x17:
+ case SCAN_DELETE:
+ keybuf[0] = CHAR_BACKSPACE;
+ break;
+ case SCAN_ESC:
keybuf[0] = 0x1b; /* esc */
break;
default: