# -*- Mode: Python -*-
# vim: filetype=python
#

##
# **************
# Virtio devices
# **************
##

##
# @VirtioInfo:
#
# Basic information about a given VirtIODevice
#
# @path: The VirtIODevice's canonical QOM path
#
# @name: Name of the VirtIODevice
#
# Since: 7.2
##
{ 'struct': 'VirtioInfo',
  'data': { 'path': 'str',
            'name': 'str' } }

##
# @x-query-virtio:
#
# Return a list of all realized VirtIODevices
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: List of gathered VirtIODevices
#
# Since: 7.2
#
# .. qmp-example::
#
#     -> { "execute": "x-query-virtio" }
#     <- { "return": [
#              {
#                  "name": "virtio-input",
#                  "path": "/machine/peripheral-anon/device[4]/virtio-backend"
#              },
#              {
#                  "name": "virtio-crypto",
#                  "path": "/machine/peripheral/crypto0/virtio-backend"
#              },
#              {
#                  "name": "virtio-scsi",
#                  "path": "/machine/peripheral-anon/device[2]/virtio-backend"
#              },
#              {
#                  "name": "virtio-net",
#                  "path": "/machine/peripheral-anon/device[1]/virtio-backend"
#              },
#              {
#                  "name": "virtio-serial",
#                  "path": "/machine/peripheral-anon/device[0]/virtio-backend"
#              }
#          ]
#        }
##
{ 'command': 'x-query-virtio',
  'returns': [ 'VirtioInfo' ],
  'features': [ 'unstable' ] }

##
# @VhostStatus:
#
# Information about a vhost device.  This information will only be
# displayed if the vhost device is active.
#
# @n-mem-sections: vhost_dev n_mem_sections
#
# @n-tmp-sections: vhost_dev n_tmp_sections
#
# @nvqs: vhost_dev nvqs (number of virtqueues being used)
#
# @vq-index: vhost_dev vq_index
#
# @features: vhost_dev features
#
# @acked-features: vhost_dev acked_features
#
# @backend-features: vhost_dev backend_features
#
# @protocol-features: vhost_dev protocol_features
#
# @max-queues: vhost_dev max_queues
#
# @backend-cap: vhost_dev backend_cap
#
# @log-enabled: vhost_dev log_enabled flag
#
# @log-size: vhost_dev log_size
#
# Since: 7.2
##
{ 'struct': 'VhostStatus',
  'data': { 'n-mem-sections': 'int',
            'n-tmp-sections': 'int',
            'nvqs': 'uint32',
            'vq-index': 'int',
            'features': 'VirtioDeviceFeatures',
            'acked-features': 'VirtioDeviceFeatures',
            'backend-features': 'VirtioDeviceFeatures',
            'protocol-features': 'VhostDeviceProtocols',
            'max-queues': 'uint64',
            'backend-cap': 'uint64',
            'log-enabled': 'bool',
            'log-size': 'uint64' } }

##
# @VirtioStatus:
#
# Full status of the virtio device with most VirtIODevice members.
# Also includes the full status of the corresponding vhost device if
# the vhost device is active.
#
# @name: VirtIODevice name
#
# @device-id: VirtIODevice ID
#
# @vhost-started: VirtIODevice vhost_started flag
#
# @guest-features: VirtIODevice guest_features
#
# @host-features: VirtIODevice host_features
#
# @backend-features: VirtIODevice backend_features
#
# @device-endian: VirtIODevice device_endian
#
# @num-vqs: VirtIODevice virtqueue count.  This is the number of
#     active virtqueues being used by the VirtIODevice.
#
# @status: VirtIODevice configuration status (`VirtioDeviceStatus`)
#
# @isr: VirtIODevice ISR
#
# @queue-sel: VirtIODevice queue_sel
#
# @vm-running: VirtIODevice vm_running flag
#
# @broken: VirtIODevice broken flag
#
# @disabled: VirtIODevice disabled flag
#
# @use-started: VirtIODevice use_started flag
#
# @started: VirtIODevice started flag
#
# @start-on-kick: VirtIODevice start_on_kick flag
#
# @disable-legacy-check: VirtIODevice disabled_legacy_check flag
#
# @bus-name: VirtIODevice bus_name
#
# @use-guest-notifier-mask: VirtIODevice use_guest_notifier_mask flag
#
# @vhost-dev: Corresponding vhost device info for a given
#     VirtIODevice.  Present if the given VirtIODevice has an active
#     vhost device.
#
# Since: 7.2
##
{ 'struct': 'VirtioStatus',
  'data': { 'name': 'str',
            'device-id': 'uint16',
            'vhost-started': 'bool',
            'device-endian': 'str',
            'guest-features': 'VirtioDeviceFeatures',
            'host-features': 'VirtioDeviceFeatures',
            'backend-features': 'VirtioDeviceFeatures',
            'num-vqs': 'int',
            'status': 'VirtioDeviceStatus',
            'isr': 'uint8',
            'queue-sel': 'uint16',
            'vm-running': 'bool',
            'broken': 'bool',
            'disabled': 'bool',
            'use-started': 'bool',
            'started': 'bool',
            'start-on-kick': 'bool',
            'disable-legacy-check': 'bool',
            'bus-name': 'str',
            'use-guest-notifier-mask': 'bool',
            '*vhost-dev': 'VhostStatus' } }

##
# @x-query-virtio-status:
#
# Poll for a comprehensive status of a given virtio device
#
# @path: Canonical QOM path of the VirtIODevice
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: Status of the virtio device
#
# Since: 7.2
#
# .. qmp-example::
#    :annotated:
#
#    Poll for the status of virtio-crypto (no vhost-crypto active)
#    ::
#
#     -> { "execute": "x-query-virtio-status",
#          "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend" }
#        }
#     <- { "return": {
#              "device-endian": "little",
#              "bus-name": "",
#              "disable-legacy-check": false,
#              "name": "virtio-crypto",
#              "started": true,
#              "device-id": 20,
#              "backend-features": {
#                  "transports": [],
#                  "dev-features": []
#              },
#              "start-on-kick": false,
#              "isr": 1,
#              "broken": false,
#              "status": {
#                  "statuses": [
#                      "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found",
#                      "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with device",
#                      "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation complete",
#                      "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready"
#                  ]
#              },
#              "num-vqs": 2,
#              "guest-features": {
#                  "dev-features": [],
#                  "transports": [
#                      "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                      "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                      "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"
#                  ]
#              },
#              "host-features": {
#                  "unknown-dev-features": 1073741824,
#                  "unknown-dev-features2": 0,
#                  "dev-features": [],
#                  "transports": [
#                      "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                      "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                      "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
#                      "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
#                      "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
#                  ]
#              },
#              "use-guest-notifier-mask": true,
#              "vm-running": true,
#              "queue-sel": 1,
#              "disabled": false,
#              "vhost-started": false,
#              "use-started": true
#          }
#        }
#
# .. qmp-example::
#    :annotated:
#
#    Poll for the status of virtio-net (vhost-net is active)
#    ::
#
#     -> { "execute": "x-query-virtio-status",
#          "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-backend" }
#        }
#     <- { "return": {
#              "device-endian": "little",
#              "bus-name": "",
#              "disabled-legacy-check": false,
#              "name": "virtio-net",
#              "started": true,
#              "device-id": 1,
#              "vhost-dev": {
#                  "n-tmp-sections": 4,
#                  "n-mem-sections": 4,
#                  "max-queues": 1,
#                  "backend-cap": 2,
#                  "log-size": 0,
#                  "backend-features": {
#                      "dev-features": [],
#                      "transports": []
#                  },
#                  "nvqs": 2,
#                  "protocol-features": {
#                      "protocols": []
#                  },
#                  "vq-index": 0,
#                  "log-enabled": false,
#                  "acked-features": {
#                      "dev-features": [
#                          "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers"
#                      ],
#                      "transports": [
#                          "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                          "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                          "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"
#                      ]
#                  },
#                  "features": {
#                      "dev-features": [
#                          "VHOST_F_LOG_ALL: Logging write descriptors supported",
#                          "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers"
#                      ],
#                      "transports": [
#                          "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                          "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                          "VIRTIO_F_IOMMU_PLATFORM: Device can be used on IOMMU platform",
#                          "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
#                          "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
#                          "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
#                      ]
#                  }
#              },
#              "backend-features": {
#                  "dev-features": [
#                      "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features negotiation supported",
#                      "VIRTIO_NET_F_GSO: Handling GSO-type packets supported",
#                      "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control channel",
#                      "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packets supported",
#                      "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supported",
#                      "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering supported",
#                      "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported",
#                      "VIRTIO_NET_F_CTRL_VQ: Control channel available",
#                      "VIRTIO_NET_F_STATUS: Configuration status field available",
#                      "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers",
#                      "VIRTIO_NET_F_HOST_UFO: Device can receive UFO",
#                      "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN",
#                      "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6",
#                      "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4",
#                      "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO",
#                      "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN",
#                      "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6",
#                      "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4",
#                      "VIRTIO_NET_F_MAC: Device has given MAC address",
#                      "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading reconfig. supported",
#                      "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial checksum supported",
#                      "VIRTIO_NET_F_CSUM: Device handling packets with partial checksum supported"
#                  ],
#                  "transports": [
#                      "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                      "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                      "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
#                      "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
#                      "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
#                  ]
#              },
#              "start-on-kick": false,
#              "isr": 1,
#              "broken": false,
#              "status": {
#                  "statuses": [
#                      "VIRTIO_CONFIG_S_ACKNOWLEDGE: Valid virtio device found",
#                      "VIRTIO_CONFIG_S_DRIVER: Guest OS compatible with device",
#                      "VIRTIO_CONFIG_S_FEATURES_OK: Feature negotiation complete",
#                      "VIRTIO_CONFIG_S_DRIVER_OK: Driver setup and ready"
#                  ]
#              },
#              "num-vqs": 3,
#              "guest-features": {
#                  "dev-features": [
#                      "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control channel",
#                      "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packets supported",
#                      "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering supported",
#                      "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported",
#                      "VIRTIO_NET_F_CTRL_VQ: Control channel available",
#                      "VIRTIO_NET_F_STATUS: Configuration status field available",
#                      "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers",
#                      "VIRTIO_NET_F_HOST_UFO: Device can receive UFO",
#                      "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN",
#                      "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6",
#                      "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4",
#                      "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO",
#                      "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN",
#                      "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6",
#                      "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4",
#                      "VIRTIO_NET_F_MAC: Device has given MAC address",
#                      "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading reconfig. supported",
#                      "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial checksum supported",
#                      "VIRTIO_NET_F_CSUM: Device handling packets with partial checksum supported"
#                  ],
#                  "transports": [
#                      "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                      "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                      "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)"
#                 ]
#              },
#              "host-features": {
#                  "dev-features": [
#                      "VHOST_USER_F_PROTOCOL_FEATURES: Vhost-user protocol features negotiation supported",
#                      "VIRTIO_NET_F_GSO: Handling GSO-type packets supported",
#                      "VIRTIO_NET_F_CTRL_MAC_ADDR: MAC address set through control channel",
#                      "VIRTIO_NET_F_GUEST_ANNOUNCE: Driver sending gratuitous packets supported",
#                      "VIRTIO_NET_F_CTRL_RX_EXTRA: Extra RX mode control supported",
#                      "VIRTIO_NET_F_CTRL_VLAN: Control channel VLAN filtering supported",
#                      "VIRTIO_NET_F_CTRL_RX: Control channel RX mode supported",
#                      "VIRTIO_NET_F_CTRL_VQ: Control channel available",
#                      "VIRTIO_NET_F_STATUS: Configuration status field available",
#                      "VIRTIO_NET_F_MRG_RXBUF: Driver can merge receive buffers",
#                      "VIRTIO_NET_F_HOST_UFO: Device can receive UFO",
#                      "VIRTIO_NET_F_HOST_ECN: Device can receive TSO with ECN",
#                      "VIRTIO_NET_F_HOST_TSO6: Device can receive TSOv6",
#                      "VIRTIO_NET_F_HOST_TSO4: Device can receive TSOv4",
#                      "VIRTIO_NET_F_GUEST_UFO: Driver can receive UFO",
#                      "VIRTIO_NET_F_GUEST_ECN: Driver can receive TSO with ECN",
#                      "VIRTIO_NET_F_GUEST_TSO6: Driver can receive TSOv6",
#                      "VIRTIO_NET_F_GUEST_TSO4: Driver can receive TSOv4",
#                      "VIRTIO_NET_F_MAC: Device has given MAC address",
#                      "VIRTIO_NET_F_CTRL_GUEST_OFFLOADS: Control channel offloading reconfig. supported",
#                      "VIRTIO_NET_F_GUEST_CSUM: Driver handling packets with partial checksum supported",
#                      "VIRTIO_NET_F_CSUM: Device handling packets with partial checksum supported"
#                  ],
#                  "transports": [
#                      "VIRTIO_RING_F_EVENT_IDX: Used & avail. event fields enabled",
#                      "VIRTIO_RING_F_INDIRECT_DESC: Indirect descriptors supported",
#                      "VIRTIO_F_VERSION_1: Device compliant for v1 spec (legacy)",
#                      "VIRTIO_F_ANY_LAYOUT: Device accepts arbitrary desc. layouts",
#                      "VIRTIO_F_NOTIFY_ON_EMPTY: Notify when device runs out of avail. descs. on VQ"
#                 ]
#              },
#              "use-guest-notifier-mask": true,
#              "vm-running": true,
#              "queue-sel": 2,
#              "disabled": false,
#              "vhost-started": true,
#              "use-started": true
#          }
#        }
##
{ 'command': 'x-query-virtio-status',
  'data': { 'path': 'str' },
  'returns': 'VirtioStatus',
  'features': [ 'unstable' ] }

##
# @VirtioDeviceStatus:
#
# A structure defined to list the configuration statuses of a virtio
# device
#
# @statuses: List of decoded configuration statuses of the virtio
#     device
#
# @unknown-statuses: Virtio device statuses bitmap that have not been
#     decoded
#
# Since: 7.2
##
{ 'struct': 'VirtioDeviceStatus',
  'data': { 'statuses': [ 'str' ],
            '*unknown-statuses': 'uint8' } }

##
# @VhostDeviceProtocols:
#
# A structure defined to list the vhost user protocol features of a
# Vhost User device
#
# @protocols: List of decoded vhost user protocol features of a vhost
#     user device
#
# @unknown-protocols: Vhost user device protocol features bitmap that
#     have not been decoded
#
# Since: 7.2
##
{ 'struct': 'VhostDeviceProtocols',
  'data': { 'protocols': [ 'str' ],
            '*unknown-protocols': 'uint64' } }

##
# @VirtioDeviceFeatures:
#
# The common fields that apply to most Virtio devices.  Some devices
# may not have their own device-specific features (e.g. virtio-rng).
#
# @transports: List of transport features of the virtio device
#
# @dev-features: List of device-specific features (if the device has
#     unique features)
#
# @unknown-dev-features: Virtio device features bitmap that have not
#     been decoded (bits 0-63)
#
# @unknown-dev-features2: Virtio device features bitmap that have not
#     been decoded (bits 64-127) (since 10.2)
#
# Since: 7.2
##
{ 'struct': 'VirtioDeviceFeatures',
  'data': { 'transports': [ 'str' ],
            '*dev-features': [ 'str' ],
            '*unknown-dev-features': 'uint64',
            '*unknown-dev-features2': 'uint64' } }

##
# @VirtQueueStatus:
#
# Information of a VirtIODevice VirtQueue, including most members of
# the VirtQueue data structure.
#
# @name: Name of the VirtIODevice that uses this VirtQueue
#
# @queue-index: VirtQueue queue_index
#
# @inuse: VirtQueue inuse
#
# @vring-num: VirtQueue vring.num
#
# @vring-num-default: VirtQueue vring.num_default
#
# @vring-align: VirtQueue vring.align
#
# @vring-desc: VirtQueue vring.desc (descriptor area)
#
# @vring-avail: VirtQueue vring.avail (driver area)
#
# @vring-used: VirtQueue vring.used (device area)
#
# @last-avail-idx: VirtQueue last_avail_idx or return of vhost_dev
#     vhost_get_vring_base (if vhost active)
#
# @shadow-avail-idx: VirtQueue shadow_avail_idx
#
# @used-idx: VirtQueue used_idx
#
# @signalled-used: VirtQueue signalled_used
#
# @signalled-used-valid: VirtQueue signalled_used_valid flag
#
# Since: 7.2
##
{ 'struct': 'VirtQueueStatus',
  'data': { 'name': 'str',
            'queue-index': 'uint16',
            'inuse': 'uint32',
            'vring-num': 'uint32',
            'vring-num-default': 'uint32',
            'vring-align': 'uint32',
            'vring-desc': 'uint64',
            'vring-avail': 'uint64',
            'vring-used': 'uint64',
            '*last-avail-idx': 'uint16',
            '*shadow-avail-idx': 'uint16',
            'used-idx': 'uint16',
            'signalled-used': 'uint16',
            'signalled-used-valid': 'bool' } }

##
# @x-query-virtio-queue-status:
#
# Return the status of a given VirtIODevice's VirtQueue
#
# @path: VirtIODevice canonical QOM path
#
# @queue: VirtQueue index to examine
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: Status of the queue
#
# .. note:: last_avail_idx will not be displayed in the case where the
#    selected VirtIODevice has a running vhost device and the
#    VirtIODevice VirtQueue index (queue) does not exist for the
#    corresponding vhost device vhost_virtqueue.  Also,
#    shadow_avail_idx will not be displayed in the case where the
#    selected VirtIODevice has a running vhost device.
#
# Since: 7.2
#
# .. qmp-example::
#    :annotated:
#
#    Get `VirtQueueStatus` for virtio-vsock (vhost-vsock running)
#    ::
#
#     -> { "execute": "x-query-virtio-queue-status",
#          "arguments": { "path": "/machine/peripheral/vsock0/virtio-backend",
#                         "queue": 1 }
#        }
#     <- { "return": {
#              "signalled-used": 0,
#              "inuse": 0,
#              "name": "vhost-vsock",
#              "vring-align": 4096,
#              "vring-desc": 5217370112,
#              "signalled-used-valid": false,
#              "vring-num-default": 128,
#              "vring-avail": 5217372160,
#              "queue-index": 1,
#              "last-avail-idx": 0,
#              "vring-used": 5217372480,
#              "used-idx": 0,
#              "vring-num": 128
#          }
#        }
#
# .. qmp-example::
#    :annotated:
#
#    Get `VirtQueueStatus` for virtio-serial (no vhost)
#    ::
#
#     -> { "execute": "x-query-virtio-queue-status",
#          "arguments": { "path": "/machine/peripheral-anon/device[0]/virtio-backend",
#                         "queue": 20 }
#        }
#     <- { "return": {
#              "signalled-used": 0,
#              "inuse": 0,
#              "name": "virtio-serial",
#              "vring-align": 4096,
#              "vring-desc": 5182074880,
#              "signalled-used-valid": false,
#              "vring-num-default": 128,
#              "vring-avail": 5182076928,
#              "queue-index": 20,
#              "last-avail-idx": 0,
#              "vring-used": 5182077248,
#              "used-idx": 0,
#              "shadow-avail-idx": 0,
#              "vring-num": 128
#          }
#        }
##
{ 'command': 'x-query-virtio-queue-status',
  'data': { 'path': 'str', 'queue': 'uint16' },
  'returns': 'VirtQueueStatus',
  'features': [ 'unstable' ] }

##
# @VirtVhostQueueStatus:
#
# Information of a vhost device's vhost_virtqueue, including most
# members of the vhost_dev vhost_virtqueue data structure.
#
# @name: Name of the VirtIODevice that uses this vhost_virtqueue
#
# @kick: vhost_virtqueue kick
#
# @call: vhost_virtqueue call
#
# @desc: vhost_virtqueue desc
#
# @avail: vhost_virtqueue avail
#
# @used: vhost_virtqueue used
#
# @num: vhost_virtqueue num
#
# @desc-phys: vhost_virtqueue desc_phys (descriptor area physical
#     address)
#
# @desc-size: vhost_virtqueue desc_size
#
# @avail-phys: vhost_virtqueue avail_phys (driver area physical
#     address)
#
# @avail-size: vhost_virtqueue avail_size
#
# @used-phys: vhost_virtqueue used_phys (device area physical address)
#
# @used-size: vhost_virtqueue used_size
#
# Since: 7.2
##
{ 'struct': 'VirtVhostQueueStatus',
  'data': { 'name': 'str',
            'kick': 'int',
            'call': 'int',
            'desc': 'uint64',
            'avail': 'uint64',
            'used': 'uint64',
            'num': 'int',
            'desc-phys': 'uint64',
            'desc-size': 'uint32',
            'avail-phys': 'uint64',
            'avail-size': 'uint32',
            'used-phys': 'uint64',
            'used-size': 'uint32' } }

##
# @x-query-virtio-vhost-queue-status:
#
# Return information of a given vhost device's vhost_virtqueue
#
# @path: VirtIODevice canonical QOM path
#
# @queue: vhost_virtqueue index to examine
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: Status of the vhost_virtqueue
#
# Since: 7.2
#
# .. qmp-example::
#    :title: Get vhost_virtqueue status for vhost-crypto
#
#     -> { "execute": "x-query-virtio-vhost-queue-status",
#          "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend",
#                         "queue": 0 }
#        }
#     <- { "return": {
#              "avail-phys": 5216124928,
#              "name": "virtio-crypto",
#              "used-phys": 5216127040,
#              "avail-size": 2054,
#              "desc-size": 16384,
#              "used-size": 8198,
#              "desc": 140141447430144,
#              "num": 1024,
#              "call": 0,
#              "avail": 140141447446528,
#              "desc-phys": 5216108544,
#              "used": 140141447448640,
#              "kick": 0
#          }
#        }
#
# .. qmp-example::
#    :title: Get vhost_virtqueue status for vhost-vsock
#
#     -> { "execute": "x-query-virtio-vhost-queue-status",
#          "arguments": { "path": "/machine/peripheral/vsock0/virtio-backend",
#                         "queue": 0 }
#        }
#     <- { "return": {
#              "avail-phys": 5182261248,
#              "name": "vhost-vsock",
#              "used-phys": 5182261568,
#              "avail-size": 262,
#              "desc-size": 2048,
#              "used-size": 1030,
#              "desc": 140141413580800,
#              "num": 128,
#              "call": 0,
#              "avail": 140141413582848,
#              "desc-phys": 5182259200,
#              "used": 140141413583168,
#              "kick": 0
#          }
#        }
##
{ 'command': 'x-query-virtio-vhost-queue-status',
  'data': { 'path': 'str', 'queue': 'uint16' },
  'returns': 'VirtVhostQueueStatus',
  'features': [ 'unstable' ] }

##
# @VirtioRingDesc:
#
# Information regarding the vring descriptor area
#
# @addr: Guest physical address of the descriptor area
#
# @len: Length of the descriptor area
#
# @flags: List of descriptor flags
#
# Since: 7.2
##
{ 'struct': 'VirtioRingDesc',
  'data': { 'addr': 'uint64',
            'len': 'uint32',
            'flags': [ 'str' ] } }

##
# @VirtioRingAvail:
#
# Information regarding the avail vring (a.k.a. driver area)
#
# @flags: VRingAvail flags
#
# @idx: VRingAvail index
#
# @ring: VRingAvail ring[] entry at provided index
#
# Since: 7.2
##
{ 'struct': 'VirtioRingAvail',
  'data': { 'flags': 'uint16',
            'idx': 'uint16',
            'ring': 'uint16' } }

##
# @VirtioRingUsed:
#
# Information regarding the used vring (a.k.a. device area)
#
# @flags: VRingUsed flags
#
# @idx: VRingUsed index
#
# Since: 7.2
##
{ 'struct': 'VirtioRingUsed',
  'data': { 'flags': 'uint16',
            'idx': 'uint16' } }

##
# @VirtioQueueElement:
#
# Information regarding a VirtQueue's VirtQueueElement including
# descriptor, driver, and device areas
#
# @name: Name of the VirtIODevice that uses this VirtQueue
#
# @index: Index of the element in the queue
#
# @descs: List of descriptors (`VirtioRingDesc`)
#
# @avail: VRingAvail info
#
# @used: VRingUsed info
#
# Since: 7.2
##
{ 'struct': 'VirtioQueueElement',
  'data': { 'name': 'str',
            'index': 'uint32',
            'descs': [ 'VirtioRingDesc' ],
            'avail': 'VirtioRingAvail',
            'used': 'VirtioRingUsed' } }

##
# @x-query-virtio-queue-element:
#
# Return the information about a VirtQueue's VirtQueueElement
#
# @path: VirtIODevice canonical QOM path
#
# @queue: VirtQueue index to examine
#
# @index: Index of the element in the queue (default: head of the
#     queue)
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Since: 7.2
#
# .. qmp-example::
#    :title: Introspect on virtio-net's VirtQueue 0 at index 5
#
#     -> { "execute": "x-query-virtio-queue-element",
#          "arguments": { "path": "/machine/peripheral-anon/device[1]/virtio-backend",
#                         "queue": 0,
#                         "index": 5 }
#        }
#     <- { "return": {
#              "index": 5,
#              "name": "virtio-net",
#              "descs": [
#                  {
#                      "flags": ["write"],
#                      "len": 1536,
#                      "addr": 5257305600
#                  }
#              ],
#              "avail": {
#                  "idx": 256,
#                  "flags": 0,
#                  "ring": 5
#              },
#              "used": {
#                  "idx": 13,
#                  "flags": 0
#              }
#          }
#        }
#
# .. qmp-example::
#    :title: Introspect on virtio-crypto's VirtQueue 1 at head
#
#     -> { "execute": "x-query-virtio-queue-element",
#          "arguments": { "path": "/machine/peripheral/crypto0/virtio-backend",
#                         "queue": 1 }
#        }
#     <- { "return": {
#              "index": 0,
#              "name": "virtio-crypto",
#              "descs": [
#                  {
#                      "flags": [],
#                      "len": 0,
#                      "addr": 8080268923184214134
#                  }
#              ],
#              "avail": {
#                  "idx": 280,
#                  "flags": 0,
#                  "ring": 0
#              },
#              "used": {
#                  "idx": 280,
#                  "flags": 0
#              }
#          }
#        }
#
# .. qmp-example::
#    :title: Introspect on virtio-scsi's VirtQueue 2 at head
#
#     -> { "execute": "x-query-virtio-queue-element",
#          "arguments": { "path": "/machine/peripheral-anon/device[2]/virtio-backend",
#                         "queue": 2 }
#        }
#     <- { "return": {
#              "index": 19,
#              "name": "virtio-scsi",
#              "descs": [
#                  {
#                      "flags": ["used", "indirect", "write"],
#                      "len": 4099327944,
#                      "addr": 12055409292258155293
#                  }
#              ],
#              "avail": {
#                  "idx": 1147,
#                  "flags": 0,
#                  "ring": 19
#              },
#              "used": {
#                  "idx": 280,
#                  "flags": 0
#              }
#          }
#        }
##
{ 'command': 'x-query-virtio-queue-element',
  'data': { 'path': 'str', 'queue': 'uint16', '*index': 'uint16' },
  'returns': 'VirtioQueueElement',
  'features': [ 'unstable' ] }

##
# @IOThreadVirtQueueMapping:
#
# Describes the subset of virtqueues assigned to an IOThread.
#
# @iothread: the id of IOThread object
#
# @vqs: an optional array of virtqueue indices that will be handled by
#     this IOThread.  When absent, virtqueues are assigned round-robin
#     across all IOThreadVirtQueueMappings provided.  Either all
#     IOThreadVirtQueueMappings must have @vqs or none of them must
#     have it.
#
# Since: 9.0
##
{ 'struct': 'IOThreadVirtQueueMapping',
  'data': { 'iothread': 'str', '*vqs': ['uint16'] } }

##
# @VirtIOGPUOutput:
#
# Describes configuration of a VirtIO GPU output.
#
# @name: the name of the output
#
# Since: 10.1
##

{ 'struct': 'VirtIOGPUOutput',
  'data': { 'name': 'str' } }

##
# @DummyVirtioForceArrays:
#
# Not used by QMP; hack to let us use IOThreadVirtQueueMappingList and
# VirtIOGPUOutputList internally
#
# Since: 9.0
##
{ 'struct': 'DummyVirtioForceArrays',
  'data': { 'unused-iothread-vq-mapping': ['IOThreadVirtQueueMapping'],
            'unused-virtio-gpu-output': ['VirtIOGPUOutput'] } }

##
# @GranuleMode:
#
# @4k: granule page size of 4KiB
#
# @8k: granule page size of 8KiB
#
# @16k: granule page size of 16KiB
#
# @64k: granule page size of 64KiB
#
# @host: granule matches the host page size
#
# Since: 9.0
##
{ 'enum': 'GranuleMode',
  'data': [ '4k', '8k', '16k', '64k', 'host' ] }

##
# @VMAppleVirtioBlkVariant:
#
# @unspecified: The default, not a valid setting.
#
# @root: Block device holding the root volume
#
# @aux: Block device holding auxiliary data required for boot
#
# Since: 9.2
##
{ 'enum': 'VMAppleVirtioBlkVariant',
  'data': [ 'unspecified', 'root', 'aux' ] }
