There's a problem for management applications to determine if certain accelerators available. Generic QMP command should help with that.
Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> --- monitor/qmp-cmds.c | 15 +++++++++++++++ qapi/machine.json | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c index a08143b323..0454394e76 100644 --- a/monitor/qmp-cmds.c +++ b/monitor/qmp-cmds.c @@ -62,6 +62,21 @@ KvmInfo *qmp_query_kvm(Error **errp) return info; } +KvmInfo *qmp_query_accel(const char *name, Error **errp) +{ + KvmInfo *info = g_malloc0(sizeof(*info)); + + AccelClass *ac = accel_find(name); + + if (ac) { + info->enabled = *ac->allowed; + info->present = true; + } + + return info; +} + + UuidInfo *qmp_query_uuid(Error **errp) { UuidInfo *info = g_malloc0(sizeof(*info)); diff --git a/qapi/machine.json b/qapi/machine.json index 7c9a263778..11f364fab4 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -591,6 +591,25 @@ ## { 'command': 'query-kvm', 'returns': 'KvmInfo' } +## +# @query-accel: +# +# Returns information about an accelerator +# +# Returns: @KvmInfo +# +# Since: 6.0.0 +# +# Example: +# +# -> { "execute": "query-accel", "arguments": { "name": "kvm" } } +# <- { "return": { "enabled": true, "present": true } } +# +## +{ 'command': 'query-accel', + 'data': { 'name': 'str' }, + 'returns': 'KvmInfo' } + ## # @NumaOptionsType: # -- 2.29.2