[PATCH 6/6] uefi: uefidump: Add support for SignatureSupport variable

Colin King colin.king at canonical.com
Mon Sep 3 15:52:45 UTC 2012


From: Colin Ian King <colin.king at canonical.com>

SignatureSupport contains an array of GUIDs, so it is relatively
easy to dump out, so add it to uefidump.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/uefi/uefidump/uefidump.c |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
index d7f4dd6..71c0cc5 100644
--- a/src/uefi/uefidump/uefidump.c
+++ b/src/uefi/uefidump/uefidump.c
@@ -617,6 +617,30 @@ static void uefidump_info_acpi_global_variable(fwts_framework *fw, fwts_uefi_var
 	}
 }
 
+/*
+ *  Dump Supported Signature GUIDs
+ */
+static void uefidump_info_signature_support(fwts_framework *fw, fwts_uefi_var *var)
+{
+	if (var->datalen % 16) {
+		/* Should be multiple of 16 bytes, of not, dump it out as a hex dump */
+		uefidump_var_hexdump(fw, var);
+	} else {
+		/* Signatures are an array of GUIDs */
+		uint8_t *data = var->data;
+		char guid_str[37];
+
+		if (var->datalen)
+			fwts_log_info_verbatum(fw, "  Signature GUIDs:");
+
+		while (data - var->data < var->datalen) {
+			fwts_guid_buf_to_str(data, guid_str, sizeof(guid_str));
+			fwts_log_info_verbatum(fw, "    %s", guid_str);
+			data += 16;
+		}
+	}
+}
+
 static uefidump_info uefidump_info_table[] = {
 	{ "PlatformLangCodes",	uefidump_info_platform_langcodes },
 	{ "PlatformLang",	uefidump_info_platform_lang },
@@ -640,6 +664,7 @@ static uefidump_info uefidump_info_table[] = {
 	{ "SetupMode",		uefidump_info_setup_mode },
 	{ "MemoryOverwriteRequestControl",	uefidump_info_morc },
 	{ "AcpiGlobalVariable",	uefidump_info_acpi_global_variable },
+	{ "SignatureSupport",	uefidump_info_signature_support },
 	{ NULL, NULL }
 };
 
-- 
1.7.10.4




More information about the fwts-devel mailing list