[PATCH 3/6] uefidump: add dumping global variable OsRecoveryOrder
Ivan Hu
ivan.hu at canonical.com
Fri Dec 18 06:31:51 UTC 2015
sync up with uefi spec 2.5
Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
src/uefi/uefidump/uefidump.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
index a96eb2f..a618010 100644
--- a/src/uefi/uefidump/uefidump.c
+++ b/src/uefi/uefidump/uefidump.c
@@ -1309,6 +1309,27 @@ static void uefidump_info_deployed_mode(fwts_framework *fw, fwts_uefi_var *var)
}
}
+static void uefidump_info_osrecoverorder(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 {
+ /* OSRecoveryOrder are an array of GUIDs */
+ uint8_t *data = var->data;
+ char guid_str[37];
+
+ if (var->datalen)
+ fwts_log_info_verbatum(fw, " OSRecoveryOrder GUIDs:");
+
+ while (data - var->data < (ptrdiff_t)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 },
@@ -1341,6 +1362,7 @@ static uefidump_info uefidump_info_table[] = {
{ "PK", uefidump_info_signaturedatabase },
{ "AuditMode", uefidump_info_audit_mode },
{ "DeployedMode", uefidump_info_deployed_mode },
+ { "OsRecoveryOrder", uefidump_info_osrecoverorder },
{ NULL, NULL }
};
--
1.9.1
More information about the fwts-devel
mailing list