hmp: add cryptodev info command
Example of this command: # virsh qemu-monitor-command vm --hmp info cryptodev cryptodev1: service=[akcipher|mac|hash|cipher] queue 0: type=builtin cryptodev0: service=[akcipher] queue 0: type=lkcf Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20230301105847.253084-8-pizhenwei@bytedance.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
abca0fc329
commit
ef52091aeb
54
backends/cryptodev-hmp-cmds.c
Normal file
54
backends/cryptodev-hmp-cmds.c
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* HMP commands related to cryptodev
|
||||
*
|
||||
* Copyright (c) 2023 Bytedance.Inc
|
||||
*
|
||||
* Authors:
|
||||
* zhenwei pi<pizhenwei@bytedance.com>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "monitor/hmp.h"
|
||||
#include "monitor/monitor.h"
|
||||
#include "qapi/qapi-commands-cryptodev.h"
|
||||
#include "qapi/qmp/qdict.h"
|
||||
|
||||
|
||||
void hmp_info_cryptodev(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
QCryptodevInfoList *il;
|
||||
QCryptodevBackendServiceTypeList *sl;
|
||||
QCryptodevBackendClientList *cl;
|
||||
|
||||
for (il = qmp_query_cryptodev(NULL); il; il = il->next) {
|
||||
g_autofree char *services = NULL;
|
||||
QCryptodevInfo *info = il->value;
|
||||
char *tmp_services;
|
||||
|
||||
/* build a string like 'service=[akcipher|mac|hash|cipher]' */
|
||||
for (sl = info->service; sl; sl = sl->next) {
|
||||
const char *service = QCryptodevBackendServiceType_str(sl->value);
|
||||
|
||||
if (!services) {
|
||||
services = g_strdup(service);
|
||||
} else {
|
||||
tmp_services = g_strjoin("|", services, service, NULL);
|
||||
g_free(services);
|
||||
services = tmp_services;
|
||||
}
|
||||
}
|
||||
monitor_printf(mon, "%s: service=[%s]\n", info->id, services);
|
||||
|
||||
for (cl = info->client; cl; cl = cl->next) {
|
||||
QCryptodevBackendClient *client = cl->value;
|
||||
monitor_printf(mon, " queue %" PRIu32 ": type=%s\n",
|
||||
client->queue,
|
||||
QCryptodevBackendType_str(client->type));
|
||||
}
|
||||
}
|
||||
|
||||
qapi_free_QCryptodevInfoList(il);
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
softmmu_ss.add([files(
|
||||
'cryptodev-builtin.c',
|
||||
'cryptodev-hmp-cmds.c',
|
||||
'cryptodev.c',
|
||||
'hostmem-ram.c',
|
||||
'hostmem.c',
|
||||
|
@ -993,3 +993,17 @@ SRST
|
||||
``info virtio-queue-element`` *path* *queue* [*index*]
|
||||
Display element of a given virtio queue
|
||||
ERST
|
||||
|
||||
{
|
||||
.name = "cryptodev",
|
||||
.args_type = "",
|
||||
.params = "",
|
||||
.help = "show the crypto devices",
|
||||
.cmd = hmp_info_cryptodev,
|
||||
.flags = "p",
|
||||
},
|
||||
|
||||
SRST
|
||||
``info cryptodev``
|
||||
Show the crypto devices.
|
||||
ERST
|
||||
|
@ -180,5 +180,6 @@ void hmp_ioport_read(Monitor *mon, const QDict *qdict);
|
||||
void hmp_ioport_write(Monitor *mon, const QDict *qdict);
|
||||
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);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user