Only print boot order / boot current if we can get the variables from

the loader. Some UEFI implementations don't return all of them.

Sponsored by: Netflix
This commit is contained in:
Warner Losh 2018-03-16 18:12:50 +00:00
parent bf22ec69ef
commit 1ce0264e67
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=331067

View File

@ -467,16 +467,18 @@ efi_main(EFI_HANDLE Ximage, EFI_SYSTEM_TABLE *Xsystab)
boot_current = 0;
sz = sizeof(boot_current);
efi_global_getenv("BootCurrent", &boot_current, &sz);
printf(" BootCurrent: %04x\n", boot_current);
if (efi_global_getenv("BootCurrent", &boot_current, &sz) == EFI_SUCCESS) {
printf(" BootCurrent: %04x\n", boot_current);
sz = sizeof(boot_order);
efi_global_getenv("BootOrder", &boot_order, &sz);
printf(" BootOrder:");
for (i = 0; i < sz / sizeof(boot_order[0]); i++)
printf(" %04x%s", boot_order[i],
boot_order[i] == boot_current ? "[*]" : "");
printf("\n");
sz = sizeof(boot_order);
if (efi_global_getenv("BootOrder", &boot_order, &sz) == EFI_SUCCESS) {
printf(" BootOrder:");
for (i = 0; i < sz / sizeof(boot_order[0]); i++)
printf(" %04x%s", boot_order[i],
boot_order[i] == boot_current ? "[*]" : "");
printf("\n");
}
}
#ifdef TEST_FAILURE
/*