diff options
| author | Peter Jones <pjones@redhat.com> | 2013-09-27 11:32:49 -0400 |
|---|---|---|
| committer | Peter Jones <pjones@redhat.com> | 2013-10-01 14:03:16 -0400 |
| commit | 09a37bbc69f6c5d6c1d081f4f938f34cff412c4f (patch) | |
| tree | f2054578457ceabee0ce5ef805bafac02866dd54 /lib/console_control.c | |
| parent | f7b849be1c1930a59dab50cf95d315049a2f4267 (diff) | |
| download | efi-boot-shim-09a37bbc69f6c5d6c1d081f4f938f34cff412c4f.tar.gz efi-boot-shim-09a37bbc69f6c5d6c1d081f4f938f34cff412c4f.zip | |
Make verbose stuff use console_notify
Signed-off-by: Peter Jones <pjones@redhat.com>
Diffstat (limited to 'lib/console_control.c')
| -rw-r--r-- | lib/console_control.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/console_control.c b/lib/console_control.c new file mode 100644 index 00000000..604a60f5 --- /dev/null +++ b/lib/console_control.c @@ -0,0 +1,32 @@ +#include <efi.h> +#include <efilib.h> + +#include "console_control.h" + +VOID setup_console (int text) +{ + EFI_STATUS status; + EFI_GUID console_control_guid = EFI_CONSOLE_CONTROL_PROTOCOL_GUID; + EFI_CONSOLE_CONTROL_PROTOCOL *concon; + static EFI_CONSOLE_CONTROL_SCREEN_MODE mode = + EfiConsoleControlScreenGraphics; + EFI_CONSOLE_CONTROL_SCREEN_MODE new_mode; + + status = LibLocateProtocol(&console_control_guid, (VOID **)&concon); + if (status != EFI_SUCCESS) + return; + + if (text) { + new_mode = EfiConsoleControlScreenText; + + status = uefi_call_wrapper(concon->GetMode, 4, concon, &mode, + 0, 0); + /* If that didn't work, assume it's graphics */ + if (status != EFI_SUCCESS) + mode = EfiConsoleControlScreenGraphics; + } else { + new_mode = mode; + } + + uefi_call_wrapper(concon->SetMode, 2, concon, new_mode); +} |
