efi: Split out table-listing code into a new file

This code is used with EFI_LOADER but is also useful (with some
modifications) for the EFI app and payload. Move it into a shared
file.

Show the address of the table so it can be examined if needed. Also show
the table name as unknown if necessary. Our list of GUIDs is fairly
small.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2023-03-20 08:30:14 +13:00
committed by Heinrich Schuchardt
parent 30c9646eff
commit 041840eeeb
4 changed files with 37 additions and 6 deletions

26
cmd/efi_common.c Normal file
View File

@@ -0,0 +1,26 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Common code for EFI commands
*
* Copyright 2023 Google LLC
* Written by Simon Glass <sjg@chromium.org>
*/
#include <common.h>
#include <efi.h>
#include <efi_api.h>
#include <uuid.h>
void efi_show_tables(struct efi_system_table *systab)
{
int i;
for (i = 0; i < systab->nr_tables; i++) {
struct efi_configuration_table *tab = &systab->tables[i];
char guid_str[37];
uuid_bin_to_str(tab->guid.b, guid_str, 1);
printf("%p %pUl %s\n", tab->table, guid_str,
uuid_guid_get_str(tab->guid.b) ?: "(unknown)");
}
}