loader: lsefi: Print more information
Printing the EFI_HANDLE pointer isn't very useful. If the handle have a IMAGE_DEVICE_PATH or a DEVICE_PATH protocol print it. This makes it easier to see which devices are present and what protocol they expose. Reviewed by: imp, tsoome Differential Revision: https://reviews.freebsd.org/D32991 Sponsored by: Beckhoff Automation GmbH & Co. KG
This commit is contained in:
parent
2bbaed4d7f
commit
2e0d67c3ed
@ -1402,6 +1402,30 @@ command_mode(int argc, char *argv[])
|
|||||||
|
|
||||||
COMMAND_SET(lsefi, "lsefi", "list EFI handles", command_lsefi);
|
COMMAND_SET(lsefi, "lsefi", "list EFI handles", command_lsefi);
|
||||||
|
|
||||||
|
static void
|
||||||
|
lsefi_print_handle_info(EFI_HANDLE handle)
|
||||||
|
{
|
||||||
|
EFI_DEVICE_PATH *devpath;
|
||||||
|
EFI_DEVICE_PATH *imagepath;
|
||||||
|
CHAR16 *dp_name;
|
||||||
|
|
||||||
|
imagepath = efi_lookup_image_devpath(handle);
|
||||||
|
if (imagepath != NULL) {
|
||||||
|
dp_name = efi_devpath_name(imagepath);
|
||||||
|
printf("Handle for image %S", dp_name);
|
||||||
|
efi_free_devpath_name(dp_name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
devpath = efi_lookup_devpath(handle);
|
||||||
|
if (devpath != NULL) {
|
||||||
|
dp_name = efi_devpath_name(devpath);
|
||||||
|
printf("Handle for device %S", dp_name);
|
||||||
|
efi_free_devpath_name(dp_name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
printf("Handle %p", handle);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
command_lsefi(int argc __unused, char *argv[] __unused)
|
command_lsefi(int argc __unused, char *argv[] __unused)
|
||||||
{
|
{
|
||||||
@ -1437,7 +1461,7 @@ command_lsefi(int argc __unused, char *argv[] __unused)
|
|||||||
EFI_GUID **protocols = NULL;
|
EFI_GUID **protocols = NULL;
|
||||||
|
|
||||||
handle = buffer[i];
|
handle = buffer[i];
|
||||||
printf("Handle %p", handle);
|
lsefi_print_handle_info(handle);
|
||||||
if (pager_output("\n"))
|
if (pager_output("\n"))
|
||||||
break;
|
break;
|
||||||
/* device path */
|
/* device path */
|
||||||
|
Loading…
Reference in New Issue
Block a user