# -*- Mode: Python -*-
# vim: filetype=python
#
# SPDX-License-Identifier: GPL-2.0-or-later

##
# ************
# Accelerators
# ************
##

{ 'include': 'common.json' }

##
# @KvmInfo:
#
# Information about support for KVM acceleration
#
# @enabled: true if KVM acceleration is active
#
# @present: true if KVM acceleration is built into this executable
#
# Since: 0.14
##
{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }

##
# @query-kvm:
#
# Return information about KVM acceleration
#
# Since: 0.14
#
# .. qmp-example::
#
#     -> { "execute": "query-kvm" }
#     <- { "return": { "enabled": true, "present": true } }
##
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }

##
# @x-accel-stats:
#
# Query accelerator statistics
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: accelerator statistics
#
# Since: 10.1
##
{ 'command': 'x-accel-stats',
  'returns': 'HumanReadableText',
  'features': [ 'unstable' ] }

##
# @Accelerator:
#
# Information about support for MSHV acceleration
#
# @hvf: Apple Hypervisor.framework
#
# @kvm: KVM
#
# @mshv: Hyper-V
#
# @nvmm: NetBSD NVMM
#
# @qtest: QTest (dummy accelerator)
#
# @tcg: TCG (dynamic translation)
#
# @whpx: Windows Hypervisor Platform
#
# @xen: Xen
#
# Since: 10.2.0
##
{ 'enum': 'Accelerator', 'data': ['hvf', 'kvm', 'mshv', 'nvmm', 'qtest', 'tcg', 'whpx', 'xen'] }

##
# @AcceleratorInfo:
#
# Information about support for various accelerators
#
# @enabled: the accelerator that is in use
#
# @present: the list of accelerators that are built into this
#     executable
#
# Since: 10.2.0
##
{ 'struct': 'AcceleratorInfo', 'data': {'enabled': 'Accelerator', 'present': ['Accelerator']} }

##
# @query-accelerators:
#
# Return information about accelerators
#
# Returns: @AcceleratorInfo
#
# Since: 10.2.0
#
# .. qmp-example::
#
#     -> { "execute": "query-accelerators" }
#     <- { "return": { "enabled": "mshv", "present": ["kvm", "mshv", "qtest", "tcg"] } }
##
{ 'command': 'query-accelerators', 'returns': 'AcceleratorInfo' }
