# -*- 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' ] }
