summaryrefslogtreecommitdiffstats
path: root/src/interface/efi/efi_console.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface/efi/efi_console.c')
-rw-r--r--src/interface/efi/efi_console.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/interface/efi/efi_console.c b/src/interface/efi/efi_console.c
index a30ca301b..d86d30c91 100644
--- a/src/interface/efi/efi_console.c
+++ b/src/interface/efi/efi_console.c
@@ -20,6 +20,8 @@
FILE_LICENCE ( GPL2_OR_LATER );
#include <stddef.h>
+#include <string.h>
+#include <errno.h>
#include <assert.h>
#include <ipxe/efi/efi.h>
#include <ipxe/ansiesc.h>
@@ -227,6 +229,7 @@ static int efi_getchar ( void ) {
const char *ansi_seq;
EFI_INPUT_KEY key;
EFI_STATUS efirc;
+ int rc;
/* If we are mid-sequence, pass out the next byte */
if ( *ansi_input )
@@ -234,8 +237,8 @@ static int efi_getchar ( void ) {
/* Read key from real EFI console */
if ( ( efirc = conin->ReadKeyStroke ( conin, &key ) ) != 0 ) {
- DBG ( "EFI could not read keystroke: %s\n",
- efi_strerror ( efirc ) );
+ rc = -EEFI ( efirc );
+ DBG ( "EFI could not read keystroke: %s\n", strerror ( rc ) );
return 0;
}
DBG2 ( "EFI read key stroke with unicode %04x scancode %04x\n",