hw/uefi: add 'info firmware-log' hmp monitor command.

This adds the hmp variant of the query-firmware-log qmp command.

Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-ID: <20251017115006.2696991-3-kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2025-10-17 13:50:04 +02:00
parent 1b2fda5916
commit c8aa812031
3 changed files with 41 additions and 0 deletions

View file

@ -995,3 +995,16 @@ SRST
``info cryptodev``
Show the crypto devices.
ERST
{
.name = "firmware-log",
.args_type = "",
.params = "",
.help = "show the firmware (ovmf) debug log",
.cmd = hmp_info_firmware_log,
},
SRST
``info firmware-log``
Show the firmware (ovmf) debug log.
ERST

View file

@ -231,3 +231,30 @@ FirmwareLog *qmp_query_firmware_log(Error **errp)
ret->log = g_base64_encode((const guchar *)log->str, log->len);
return ret;
}
void hmp_info_firmware_log(Monitor *mon, const QDict *qdict)
{
g_autofree gchar *log_esc = NULL;
g_autofree guchar *log_out = NULL;
Error *err = NULL;
FirmwareLog *log;
gsize log_len;
log = qmp_query_firmware_log(&err);
if (err) {
hmp_handle_error(mon, err);
return;
}
g_assert(log != NULL);
g_assert(log->log != NULL);
if (log->version) {
g_autofree gchar *esc = g_strescape(log->version, NULL);
monitor_printf(mon, "[ firmware version: %s ]\n", esc);
}
log_out = g_base64_decode(log->log, &log_len);
log_esc = g_strescape((gchar *)log_out, "\r\n");
monitor_printf(mon, "%s\n", log_esc);
}

View file

@ -179,5 +179,6 @@ void hmp_boot_set(Monitor *mon, const QDict *qdict);
void hmp_info_mtree(Monitor *mon, const QDict *qdict);
void hmp_info_cryptodev(Monitor *mon, const QDict *qdict);
void hmp_dumpdtb(Monitor *mon, const QDict *qdict);
void hmp_info_firmware_log(Monitor *mon, const QDict *qdict);
#endif