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);
|
||||
|
||||
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
|
||||
command_lsefi(int argc __unused, char *argv[] __unused)
|
||||
{
|
||||
@ -1437,7 +1461,7 @@ command_lsefi(int argc __unused, char *argv[] __unused)
|
||||
EFI_GUID **protocols = NULL;
|
||||
|
||||
handle = buffer[i];
|
||||
printf("Handle %p", handle);
|
||||
lsefi_print_handle_info(handle);
|
||||
if (pager_output("\n"))
|
||||
break;
|
||||
/* device path */
|
||||
|
Loading…
Reference in New Issue
Block a user