# -*- 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:
#
# Returns a list of all realized VirtIODevices
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: List of gathered VirtIODevices
#
# Since: 7.2
#
# 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: VirtioStatus of the virtio device
#
# Since: 7.2
#
# Examples:
#
# 1. 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,
#              "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
#      }
#    }
#
# 2. 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
#
# Since: 7.2
##
{ 'struct': 'VirtioDeviceFeatures',
  'data': { 'transports': [ 'str' ],
            '*dev-features': [ 'str' ],
            '*unknown-dev-features': '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: VirtQueueStatus of the VirtQueue
#
# Notes: 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
#
# Examples:
#
# 1. 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
#      }
#    }
#
# 2. 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 phys. addr.)
#
# @desc-size: vhost_virtqueue desc_size
#
# @avail-phys: vhost_virtqueue avail_phys (driver area phys. addr.)
#
# @avail-size: vhost_virtqueue avail_size
#
# @used-phys: vhost_virtqueue used_phys (device area phys. addr.)
#
# @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: VirtVhostQueueStatus of the vhost_virtqueue
#
# Since: 7.2
#
# Examples:
#
# 1. 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
#      }
#    }
#
# 2. 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.
#
# Returns: VirtioQueueElement information
#
# Since: 7.2
#
# Examples:
#
# 1. 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
#          }
#      }
#    }
#
# 2. 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
#          }
#      }
#    }
#
# 3. 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' ] }
