cmd: efidebug: simplify printing GUIDs

Use "%pS" to print text representations of GUIDs.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt 2022-01-16 14:10:23 +01:00
parent 04641c1407
commit 3adae64220
5 changed files with 128 additions and 164 deletions

View File

@ -502,149 +502,6 @@ static int do_efi_show_drivers(struct cmd_tbl *cmdtp, int flag,
return CMD_RET_SUCCESS;
}
static const struct {
const char *text;
const efi_guid_t guid;
} guid_list[] = {
{
"Device Path",
EFI_DEVICE_PATH_PROTOCOL_GUID,
},
{
"Device Path To Text",
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID,
},
{
"Device Path Utilities",
EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID,
},
{
"Unicode Collation 2",
EFI_UNICODE_COLLATION_PROTOCOL2_GUID,
},
{
"Driver Binding",
EFI_DRIVER_BINDING_PROTOCOL_GUID,
},
{
"Simple Text Input",
EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID,
},
{
"Simple Text Input Ex",
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID,
},
{
"Simple Text Output",
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID,
},
{
"Block IO",
EFI_BLOCK_IO_PROTOCOL_GUID,
},
{
"Simple File System",
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID,
},
{
"Loaded Image",
EFI_LOADED_IMAGE_PROTOCOL_GUID,
},
{
"Graphics Output",
EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID,
},
{
"HII String",
EFI_HII_STRING_PROTOCOL_GUID,
},
{
"HII Database",
EFI_HII_DATABASE_PROTOCOL_GUID,
},
{
"HII Config Routing",
EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID,
},
{
"Load File2",
EFI_LOAD_FILE2_PROTOCOL_GUID,
},
{
"Random Number Generator",
EFI_RNG_PROTOCOL_GUID,
},
{
"Simple Network",
EFI_SIMPLE_NETWORK_PROTOCOL_GUID,
},
{
"PXE Base Code",
EFI_PXE_BASE_CODE_PROTOCOL_GUID,
},
{
"Device-Tree Fixup",
EFI_DT_FIXUP_PROTOCOL_GUID,
},
{
"System Partition",
PARTITION_SYSTEM_GUID
},
{
"Firmware Management",
EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID
},
/* Configuration table GUIDs */
{
"ACPI table",
EFI_ACPI_TABLE_GUID,
},
{
"EFI System Resource Table",
EFI_SYSTEM_RESOURCE_TABLE_GUID,
},
{
"device tree",
EFI_FDT_GUID,
},
{
"SMBIOS table",
SMBIOS_TABLE_GUID,
},
{
"Runtime properties",
EFI_RT_PROPERTIES_TABLE_GUID,
},
{
"TCG2 Final Events Table",
EFI_TCG2_FINAL_EVENTS_TABLE_GUID,
},
};
/**
* get_guid_text - get string of GUID
*
* Return description of GUID.
*
* @guid: GUID
* Return: description of GUID or NULL
*/
static const char *get_guid_text(const void *guid)
{
int i;
for (i = 0; i < ARRAY_SIZE(guid_list); i++) {
/*
* As guidcmp uses memcmp() we can safely accept unaligned
* GUIDs.
*/
if (!guidcmp(&guid_list[i].guid, guid))
return guid_list[i].text;
}
return NULL;
}
/**
* do_efi_show_handles() - show UEFI handles
*
@ -664,7 +521,6 @@ static int do_efi_show_handles(struct cmd_tbl *cmdtp, int flag,
efi_handle_t *handles;
efi_guid_t **guid;
efi_uintn_t num, count, i, j;
const char *guid_text;
efi_status_t ret;
ret = EFI_CALL(efi_locate_handle_buffer(ALL_HANDLES, NULL, NULL,
@ -692,11 +548,7 @@ static int do_efi_show_handles(struct cmd_tbl *cmdtp, int flag,
else
putc(' ');
guid_text = get_guid_text(guid[j]);
if (guid_text)
puts(guid_text);
else
printf("%pUl", guid[j]);
printf("%pUs", guid[j]);
}
putc('\n');
}
@ -873,14 +725,10 @@ static int do_efi_show_tables(struct cmd_tbl *cmdtp, int flag,
int argc, char *const argv[])
{
efi_uintn_t i;
const char *guid_str;
for (i = 0; i < systab.nr_tables; ++i) {
guid_str = get_guid_text(&systab.tables[i].guid);
if (!guid_str)
guid_str = "";
printf("%pUl %s\n", &systab.tables[i].guid, guid_str);
}
for (i = 0; i < systab.nr_tables; ++i)
printf("%pUl (%pUs)\n",
&systab.tables[i].guid, &systab.tables[i].guid);
return CMD_RET_SUCCESS;
}

View File

@ -426,6 +426,14 @@ struct efi_runtime_services {
EFI_GUID(0x1e2ed096, 0x30e2, 0x4254, 0xbd, \
0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25)
#define EFI_RNG_PROTOCOL_GUID \
EFI_GUID(0x3152bca5, 0xeade, 0x433d, 0x86, 0x2e, \
0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44)
#define EFI_DT_FIXUP_PROTOCOL_GUID \
EFI_GUID(0xe617d64c, 0xfe08, 0x46da, 0xf4, 0xdc, \
0xbb, 0xd5, 0x87, 0x0c, 0x73, 0x00)
/**
* struct efi_configuration_table - EFI Configuration Table
*

View File

@ -7,10 +7,6 @@
#include <efi_api.h>
#define EFI_DT_FIXUP_PROTOCOL_GUID \
EFI_GUID(0xe617d64c, 0xfe08, 0x46da, 0xf4, 0xdc, \
0xbb, 0xd5, 0x87, 0x0c, 0x73, 0x00)
#define EFI_DT_FIXUP_PROTOCOL_REVISION 0x00010000
/* Add nodes and update properties */

View File

@ -10,10 +10,6 @@
#include <efi_api.h>
/* EFI random number generation protocol related GUID definitions */
#define EFI_RNG_PROTOCOL_GUID \
EFI_GUID(0x3152bca5, 0xeade, 0x433d, 0x86, 0x2e, \
0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44)
#define EFI_RNG_ALGORITHM_RAW \
EFI_GUID(0xe43176d7, 0xb6e8, 0x4827, 0xb7, 0x84, \
0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61)

View File

@ -5,6 +5,7 @@
#include <common.h>
#include <command.h>
#include <efi_api.h>
#include <env.h>
#include <rand.h>
#include <time.h>
@ -101,6 +102,121 @@ static const struct {
{"lvm", PARTITION_LINUX_LVM_GUID},
{"u-boot-env", PARTITION_U_BOOT_ENVIRONMENT},
#endif
#ifdef CONFIG_CMD_EFIDEBUG
{
"Device Path",
EFI_DEVICE_PATH_PROTOCOL_GUID,
},
{
"Device Path To Text",
EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID,
},
{
"Device Path Utilities",
EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID,
},
{
"Unicode Collation 2",
EFI_UNICODE_COLLATION_PROTOCOL2_GUID,
},
{
"Driver Binding",
EFI_DRIVER_BINDING_PROTOCOL_GUID,
},
{
"Simple Text Input",
EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID,
},
{
"Simple Text Input Ex",
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID,
},
{
"Simple Text Output",
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID,
},
{
"Block IO",
EFI_BLOCK_IO_PROTOCOL_GUID,
},
{
"Simple File System",
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID,
},
{
"Loaded Image",
EFI_LOADED_IMAGE_PROTOCOL_GUID,
},
{
"Graphics Output",
EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID,
},
{
"HII String",
EFI_HII_STRING_PROTOCOL_GUID,
},
{
"HII Database",
EFI_HII_DATABASE_PROTOCOL_GUID,
},
{
"HII Config Routing",
EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID,
},
{
"Load File2",
EFI_LOAD_FILE2_PROTOCOL_GUID,
},
{
"Random Number Generator",
EFI_RNG_PROTOCOL_GUID,
},
{
"Simple Network",
EFI_SIMPLE_NETWORK_PROTOCOL_GUID,
},
{
"PXE Base Code",
EFI_PXE_BASE_CODE_PROTOCOL_GUID,
},
{
"Device-Tree Fixup",
EFI_DT_FIXUP_PROTOCOL_GUID,
},
{
"System Partition",
PARTITION_SYSTEM_GUID
},
{
"Firmware Management",
EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID
},
/* Configuration table GUIDs */
{
"ACPI table",
EFI_ACPI_TABLE_GUID,
},
{
"EFI System Resource Table",
EFI_SYSTEM_RESOURCE_TABLE_GUID,
},
{
"device tree",
EFI_FDT_GUID,
},
{
"SMBIOS table",
SMBIOS_TABLE_GUID,
},
{
"Runtime properties",
EFI_RT_PROPERTIES_TABLE_GUID,
},
{
"TCG2 Final Events Table",
EFI_TCG2_FINAL_EVENTS_TABLE_GUID,
},
#endif
};
/*