aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2020-02-16 21:15:25 +0000
committerPeter Maydell <peter.maydell@linaro.org>2020-02-16 21:15:26 +0000
commit9ced5c7c20cb16dff0c2fa3242c3ee96b68cec2a (patch)
tree4d4c523a7001f0c1bab3617065700b41795e2f44
parent971b2a1e5b1a8cc8f597ac5d7016908f9fa880de (diff)
parentbb5ccf225e81d2801c03e63d16c371f0617270e8 (diff)
Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2020-02-15' into staging
QAPI patches for 2020-02-15 # gpg: Signature made Sat 15 Feb 2020 10:44:28 GMT # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-qapi-2020-02-15: qapi: Delete all the "foo: dropped in n.n" notes qapi/migration.json: Replace _this_ with *this* qapi: Add blank lines before bulleted lists qapi: Use explicit bulleted lists qapi/ui.json: Avoid `...' Texinfo style quoting qapi/ui.json: Put input-send-event body text in the right place qapi: Remove hardcoded tabs qapi: Fix indent level on doc comments in json files qapi: Fix incorrect "Not documented" claims in QMP documentation qapi/block-core.json: Use literal block for ascii art qga/qapi-schema.json: minor format fixups for rST qga/qapi-schema.json: Fix indent level on doc comments qga/qapi-schema.json: Fix missing '-' in GuestDiskBusType doc comment Makefile: Fix typo in dependency list for interop manpages configure: Check that sphinx-build is using Python 3 configure: Pick sphinx-build-3 when available configure: Allow user to specify sphinx-build binary qapi: Expand documentation for LostTickPolicy Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--Makefile4
-rwxr-xr-xconfigure32
-rw-r--r--docs/conf.py10
-rw-r--r--qapi/block-core.json1149
-rw-r--r--qapi/block.json47
-rw-r--r--qapi/char.json10
-rw-r--r--qapi/dump.json4
-rw-r--r--qapi/introspect.json12
-rw-r--r--qapi/job.json32
-rw-r--r--qapi/machine-target.json18
-rw-r--r--qapi/machine.json14
-rw-r--r--qapi/migration.json206
-rw-r--r--qapi/misc-target.json8
-rw-r--r--qapi/misc.json172
-rw-r--r--qapi/net.json26
-rw-r--r--qapi/qdev.json10
-rw-r--r--qapi/qom.json4
-rw-r--r--qapi/rocker.json12
-rw-r--r--qapi/run-state.json34
-rw-r--r--qapi/sockets.json8
-rw-r--r--qapi/tpm.json4
-rw-r--r--qapi/trace.json15
-rw-r--r--qapi/transaction.json4
-rw-r--r--qapi/ui.json117
-rw-r--r--qga/qapi-schema.json156
25 files changed, 1078 insertions, 1030 deletions
diff --git a/Makefile b/Makefile
index f0e1a2fc1d..b5a7377cb1 100644
--- a/Makefile
+++ b/Makefile
@@ -1030,7 +1030,7 @@ sphinxdocs: $(MANUAL_BUILDDIR)/devel/index.html \
# Note the use of different doctree for each (manual, builder) tuple;
# this works around Sphinx not handling parallel invocation on
# a single doctree: https://github.com/sphinx-doc/sphinx/issues/2946
-build-manual = $(call quiet-command,CONFDIR="$(qemu_confdir)" sphinx-build $(if $(V),,-q) -W -b $2 -D version=$(VERSION) -D release="$(FULL_VERSION)" -d .doctrees/$1-$2 $(SRC_PATH)/docs/$1 $(MANUAL_BUILDDIR)/$1 ,"SPHINX","$(MANUAL_BUILDDIR)/$1")
+build-manual = $(call quiet-command,CONFDIR="$(qemu_confdir)" $(SPHINX_BUILD) $(if $(V),,-q) -W -b $2 -D version=$(VERSION) -D release="$(FULL_VERSION)" -d .doctrees/$1-$2 $(SRC_PATH)/docs/$1 $(MANUAL_BUILDDIR)/$1 ,"SPHINX","$(MANUAL_BUILDDIR)/$1")
# We assume all RST files in the manual's directory are used in it
manual-deps = $(wildcard $(SRC_PATH)/docs/$1/*.rst) \
$(wildcard $(SRC_PATH)/docs/$1/*.rst.inc) \
@@ -1059,7 +1059,7 @@ $(MANUAL_BUILDDIR)/system/index.html: $(call manual-deps,system)
$(call define-manpage-rule,interop,\
qemu-ga.8 qemu-img.1 qemu-nbd.8 qemu-trace-stap.1\
virtiofsd.1 virtfs-proxy-helper.1,\
- $(SRC_PATH/qemu-img-cmds.hx))
+ $(SRC_PATH)/qemu-img-cmds.hx)
$(call define-manpage-rule,system,qemu-block-drivers.7)
diff --git a/configure b/configure
index ed870933b2..6f5d850949 100755
--- a/configure
+++ b/configure
@@ -914,6 +914,17 @@ do
break
fi
done
+
+sphinx_build=
+for binary in sphinx-build-3 sphinx-build
+do
+ if has "$binary"
+ then
+ sphinx_build=$(command -v "$binary")
+ break
+ fi
+done
+
: ${smbd=${SMBD-/usr/sbin/smbd}}
# Default objcc to clang if available, otherwise use CC
@@ -975,6 +986,8 @@ for opt do
;;
--python=*) python="$optarg"
;;
+ --sphinx-build=*) sphinx_build="$optarg"
+ ;;
--gcov=*) gcov_tool="$optarg"
;;
--smbd=*) smbd="$optarg"
@@ -1677,6 +1690,7 @@ Advanced options (experts only):
--make=MAKE use specified make [$make]
--install=INSTALL use specified install [$install]
--python=PYTHON use specified python [$python]
+ --sphinx-build=SPHINX use specified sphinx-build [$sphinx_build]
--smbd=SMBD use specified smbd [$smbd]
--with-git=GIT use specified git [$git]
--static enable static build [$static]
@@ -4799,16 +4813,24 @@ has_sphinx_build() {
# sphinx-build doesn't exist at all or if it is too old.
mkdir -p "$TMPDIR1/sphinx"
touch "$TMPDIR1/sphinx/index.rst"
- sphinx-build -c "$source_path/docs" -b html "$TMPDIR1/sphinx" "$TMPDIR1/sphinx/out" >/dev/null 2>&1
+ "$sphinx_build" -c "$source_path/docs" -b html "$TMPDIR1/sphinx" "$TMPDIR1/sphinx/out" >/dev/null 2>&1
}
# Check if tools are available to build documentation.
if test "$docs" != "no" ; then
- if has makeinfo && has pod2man && has_sphinx_build; then
+ if has_sphinx_build; then
+ sphinx_ok=yes
+ else
+ sphinx_ok=no
+ fi
+ if has makeinfo && has pod2man && test "$sphinx_ok" = "yes"; then
docs=yes
else
if test "$docs" = "yes" ; then
- feature_not_found "docs" "Install texinfo, Perl/perl-podlators and python-sphinx"
+ if has $sphinx_build && test "$sphinx_ok" != "yes"; then
+ echo "Warning: $sphinx_build exists but it is either too old or uses too old a Python version" >&2
+ fi
+ feature_not_found "docs" "Install texinfo, Perl/perl-podlators and a Python 3 version of python-sphinx"
fi
docs=no
fi
@@ -6474,6 +6496,9 @@ echo "QEMU_LDFLAGS $QEMU_LDFLAGS"
echo "make $make"
echo "install $install"
echo "python $python ($python_version)"
+if test "$docs" != "no"; then
+ echo "sphinx-build $sphinx_build"
+fi
echo "slirp support $slirp $(echo_version $slirp $slirp_version)"
if test "$slirp" != "no" ; then
echo "smbd $smbd"
@@ -7506,6 +7531,7 @@ echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak
echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak
echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak
echo "PYTHON=$python" >> $config_host_mak
+echo "SPHINX_BUILD=$sphinx_build" >> $config_host_mak
echo "CC=$cc" >> $config_host_mak
if $iasl -h > /dev/null 2>&1; then
echo "IASL=$iasl" >> $config_host_mak
diff --git a/docs/conf.py b/docs/conf.py
index ee7faa6b4e..7588bf192e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -28,6 +28,16 @@
import os
import sys
+import sphinx
+from sphinx.errors import VersionRequirementError
+
+# Make Sphinx fail cleanly if using an old Python, rather than obscurely
+# failing because some code in one of our extensions doesn't work there.
+# Unfortunately this doesn't display very neatly (there's an unavoidable
+# Python backtrace) but at least the information gets printed...
+if sys.version_info < (3,5):
+ raise VersionRequirementError(
+ "QEMU requires a Sphinx that uses Python 3.5 or better\n")
# The per-manual conf.py will set qemu_docdir for a single-manual build;
# otherwise set it here if this is an entire-manual-set build.
diff --git a/qapi/block-core.json b/qapi/block-core.json
index ef94a29686..13dad62f44 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -162,7 +162,7 @@
# @backing-image: info of the backing image (since 1.6)
#
# @format-specific: structure supplying additional format-specific
-# information (since 1.7)
+# information (since 1.7)
#
# Since: 1.3
#
@@ -550,13 +550,13 @@
# For the example above, @bins may be something like [3, 1, 5, 2],
# and corresponding histogram looks like:
#
-# 5| *
-# 4| *
-# 3| * *
-# 2| * * *
-# 1| * * * *
-# +------------------
-# 10 50 100
+# | 5| *
+# | 4| *
+# | 3| * *
+# | 2| * * *
+# | 1| * * * *
+# | +------------------
+# | 10 50 100
#
# Since: 4.0
##
@@ -708,7 +708,7 @@
# Get a list of BlockInfo for all virtual block devices.
#
# Returns: a list of @BlockInfo describing each virtual block device. Filter
-# nodes that were created implicitly are skipped over.
+# nodes that were created implicitly are skipped over.
#
# Since: 0.14.0
#
@@ -1326,8 +1326,8 @@
#
# @size: new image size in bytes
#
-# Returns: nothing on success
-# If @device is not a valid block device, DeviceNotFound
+# Returns: - nothing on success
+# - If @device is not a valid block device, DeviceNotFound
#
# Since: 0.14.0
#
@@ -1352,8 +1352,8 @@
# @existing: QEMU should look for an existing image file.
#
# @absolute-paths: QEMU should create a new image with absolute paths
-# for the backing file. If there is no backing file available, the new
-# image will not be backed either.
+# for the backing file. If there is no backing file available, the new
+# image will not be backed either.
#
# Since: 1.1
##
@@ -1370,8 +1370,8 @@
# @node-name: graph node name to generate the snapshot from (Since 2.0)
#
# @snapshot-file: the target of the new overlay image. If the file
-# exists, or if it is a device, the overlay will be created in the
-# existing file/device. Otherwise, a new file will be created.
+# exists, or if it is a device, the overlay will be created in the
+# existing file/device. Otherwise, a new file will be created.
#
# @snapshot-node-name: the graph node name of the new image (Since 2.0)
#
@@ -1456,8 +1456,8 @@
# a node name is autogenerated. (Since: 4.2)
#
# Note: @on-source-error and @on-target-error only affect background
-# I/O. If an error occurs during a guest write request, the device's
-# rerror/werror actions will be used.
+# I/O. If an error occurs during a guest write request, the device's
+# rerror/werror actions will be used.
#
# Since: 4.2
##
@@ -1510,8 +1510,8 @@
#
# For the arguments, see the documentation of BlockdevSnapshotSync.
#
-# Returns: nothing on success
-# If @device is not a valid block device, DeviceNotFound
+# Returns: - nothing on success
+# - If @device is not a valid block device, DeviceNotFound
#
# Since: 0.14.0
#
@@ -1578,17 +1578,16 @@
# to verify "image-node-name" is in the chain
# described by "device".
#
-# @device: The device name or node-name of the root node that owns
-# image-node-name.
+# @device: The device name or node-name of the root node that owns
+# image-node-name.
#
-# @backing-file: The string to write as the backing file. This
-# string is not validated, so care should be taken
-# when specifying the string or the image chain may
-# not be able to be reopened again.
+# @backing-file: The string to write as the backing file. This
+# string is not validated, so care should be taken
+# when specifying the string or the image chain may
+# not be able to be reopened again.
#
-# Returns: Nothing on success
-#
-# If "device" does not exist or cannot be determined, DeviceNotFound
+# Returns: - Nothing on success
+# - If "device" does not exist or cannot be determined, DeviceNotFound
#
# Since: 2.1
##
@@ -1605,7 +1604,7 @@
# @job-id: identifier for the newly-created block job. If
# omitted, the device name will be used. (Since 2.7)
#
-# @device: the device name or node-name of a root node
+# @device: the device name or node-name of a root node
#
# @base-node: The node name of the backing image to write data into.
# If not specified, this is the deepest backing image.
@@ -1625,36 +1624,36 @@
# node; other strings, even if addressing the same file, are not
# accepted (deprecated, use @base-node instead)
#
-# @backing-file: The backing file string to write into the overlay
-# image of 'top'. If 'top' is the active layer,
-# specifying a backing file string is an error. This
-# filename is not validated.
-#
-# If a pathname string is such that it cannot be
-# resolved by QEMU, that means that subsequent QMP or
-# HMP commands must use node-names for the image in
-# question, as filename lookup methods will fail.
-#
-# If not specified, QEMU will automatically determine
-# the backing file string to use, or error out if
-# there is no obvious choice. Care should be taken
-# when specifying the string, to specify a valid
-# filename or protocol.
-# (Since 2.1)
-#
-# If top == base, that is an error.
-# If top == active, the job will not be completed by itself,
-# user needs to complete the job with the block-job-complete
-# command after getting the ready event. (Since 2.0)
-#
-# If the base image is smaller than top, then the base image
-# will be resized to be the same size as top. If top is
-# smaller than the base image, the base will not be
-# truncated. If you want the base image size to match the
-# size of the smaller top, you can safely truncate it
-# yourself once the commit operation successfully completes.
-#
-# @speed: the maximum speed, in bytes per second
+# @backing-file: The backing file string to write into the overlay
+# image of 'top'. If 'top' is the active layer,
+# specifying a backing file string is an error. This
+# filename is not validated.
+#
+# If a pathname string is such that it cannot be
+# resolved by QEMU, that means that subsequent QMP or
+# HMP commands must use node-names for the image in
+# question, as filename lookup methods will fail.
+#
+# If not specified, QEMU will automatically determine
+# the backing file string to use, or error out if
+# there is no obvious choice. Care should be taken
+# when specifying the string, to specify a valid
+# filename or protocol.
+# (Since 2.1)
+#
+# If top == base, that is an error.
+# If top == active, the job will not be completed by itself,
+# user needs to complete the job with the block-job-complete
+# command after getting the ready event. (Since 2.0)
+#
+# If the base image is smaller than top, then the base image
+# will be resized to be the same size as top. If top is
+# smaller than the base image, the base will not be
+# truncated. If you want the base image size to match the
+# size of the smaller top, you can safely truncate it
+# yourself once the commit operation successfully completes.
+#
+# @speed: the maximum speed, in bytes per second
#
# @filter-node-name: the node name that should be assigned to the
# filter driver that the commit job inserts into the graph
@@ -1674,9 +1673,9 @@
# list without user intervention.
# Defaults to true. (Since 3.1)
#
-# Returns: Nothing on success
-# If @device does not exist, DeviceNotFound
-# Any other error returns a GenericError.
+# Returns: - Nothing on success
+# - If @device does not exist, DeviceNotFound
+# - Any other error returns a GenericError.
#
# Since: 1.3
#
@@ -1704,8 +1703,8 @@
# The operation can be stopped before it has completed using the
# block-job-cancel command.
#
-# Returns: nothing on success
-# If @device is not a valid block device, GenericError
+# Returns: - nothing on success
+# - If @device is not a valid block device, GenericError
#
# Since: 1.6
#
@@ -1730,8 +1729,8 @@
# The operation can be stopped before it has completed using the
# block-job-cancel command.
#
-# Returns: nothing on success
-# If @device is not a valid block device, DeviceNotFound
+# Returns: - nothing on success
+# - If @device is not a valid block device, DeviceNotFound
#
# Since: 2.3
#
@@ -1925,8 +1924,8 @@
# format of the mirror image, default is to probe if mode='existing',
# else the format of the source.
#
-# Returns: nothing on success
-# If @device is not a valid block device, GenericError
+# Returns: - nothing on success
+# - If @device is not a valid block device, GenericError
#
# Since: 1.3
#
@@ -2097,9 +2096,9 @@
#
# Create a dirty bitmap with a name on the node, and start tracking the writes.
#
-# Returns: nothing on success
-# If @node is not a valid block device or node, DeviceNotFound
-# If @name is already taken, GenericError with an explanation
+# Returns: - nothing on success
+# - If @node is not a valid block device or node, DeviceNotFound
+# - If @name is already taken, GenericError with an explanation
#
# Since: 2.4
#
@@ -2120,10 +2119,10 @@
# with block-dirty-bitmap-add. If the bitmap is persistent, remove it from its
# storage too.
#
-# Returns: nothing on success
-# If @node is not a valid block device or node, DeviceNotFound
-# If @name is not found, GenericError with an explanation
-# if @name is frozen by an operation, GenericError
+# Returns: - nothing on success
+# - If @node is not a valid block device or node, DeviceNotFound
+# - If @name is not found, GenericError with an explanation
+# - if @name is frozen by an operation, GenericError
#
# Since: 2.4
#
@@ -2144,9 +2143,9 @@
# backup from this point in time forward will only backup clusters
# modified after this clear operation.
#
-# Returns: nothing on success
-# If @node is not a valid block device, DeviceNotFound
-# If @name is not found, GenericError with an explanation
+# Returns: - nothing on success
+# - If @node is not a valid block device, DeviceNotFound
+# - If @name is not found, GenericError with an explanation
#
# Since: 2.4
#
@@ -2165,9 +2164,9 @@
#
# Enables a dirty bitmap so that it will begin tracking disk changes.
#
-# Returns: nothing on success
-# If @node is not a valid block device, DeviceNotFound
-# If @name is not found, GenericError with an explanation
+# Returns: - nothing on success
+# - If @node is not a valid block device, DeviceNotFound
+# - If @name is not found, GenericError with an explanation
#
# Since: 4.0
#
@@ -2186,9 +2185,9 @@
#
# Disables a dirty bitmap so that it will stop tracking disk changes.
#
-# Returns: nothing on success
-# If @node is not a valid block device, DeviceNotFound
-# If @name is not found, GenericError with an explanation
+# Returns: - nothing on success
+# - If @node is not a valid block device, DeviceNotFound
+# - If @name is not found, GenericError with an explanation
#
# Since: 4.0
#
@@ -2215,11 +2214,11 @@
# of the source bitmaps. This can be used to achieve backup checkpoints, or in
# simpler usages, to copy bitmaps.
#
-# Returns: nothing on success
-# If @node is not a valid block device, DeviceNotFound
-# If any bitmap in @bitmaps or @target is not found, GenericError
-# If any of the bitmaps have different sizes or granularities,
-# GenericError
+# Returns: - nothing on success
+# - If @node is not a valid block device, DeviceNotFound
+# - If any bitmap in @bitmaps or @target is not found, GenericError
+# - If any of the bitmaps have different sizes or granularities,
+# GenericError
#
# Since: 4.0
#
@@ -2251,10 +2250,10 @@
#
# Get bitmap SHA256.
#
-# Returns: BlockDirtyBitmapSha256 on success
-# If @node is not a valid block device, DeviceNotFound
-# If @name is not found or if hashing has failed, GenericError with an
-# explanation
+# Returns: - BlockDirtyBitmapSha256 on success
+# - If @node is not a valid block device, DeviceNotFound
+# - If @name is not found or if hashing has failed, GenericError with an
+# explanation
#
# Since: 2.10
##
@@ -2371,8 +2370,8 @@
# the device will be removed from its group and the rest of its
# members will not be affected. The 'group' parameter is ignored.
#
-# Returns: Nothing on success
-# If @device is not a valid block device, DeviceNotFound
+# Returns: - Nothing on success
+# - If @device is not a valid block device, DeviceNotFound
#
# Since: 1.1
#
@@ -2439,52 +2438,52 @@
# @iops_wr: write I/O operations per second
#
# @bps_max: total throughput limit during bursts,
-# in bytes (Since 1.7)
+# in bytes (Since 1.7)
#
# @bps_rd_max: read throughput limit during bursts,
-# in bytes (Since 1.7)
+# in bytes (Since 1.7)
#
# @bps_wr_max: write throughput limit during bursts,
-# in bytes (Since 1.7)
+# in bytes (Since 1.7)
#
# @iops_max: total I/O operations per second during bursts,
-# in bytes (Since 1.7)
+# in bytes (Since 1.7)
#
# @iops_rd_max: read I/O operations per second during bursts,
-# in bytes (Since 1.7)
+# in bytes (Since 1.7)
#
# @iops_wr_max: write I/O operations per second during bursts,
-# in bytes (Since 1.7)
+# in bytes (Since 1.7)
#
# @bps_max_length: maximum length of the @bps_max burst
-# period, in seconds. It must only
-# be set if @bps_max is set as well.
-# Defaults to 1. (Since 2.6)
+# period, in seconds. It must only
+# be set if @bps_max is set as well.
+# Defaults to 1. (Since 2.6)
#
# @bps_rd_max_length: maximum length of the @bps_rd_max
-# burst period, in seconds. It must only
-# be set if @bps_rd_max is set as well.
-# Defaults to 1. (Since 2.6)
+# burst period, in seconds. It must only
+# be set if @bps_rd_max is set as well.
+# Defaults to 1. (Since 2.6)
#
# @bps_wr_max_length: maximum length of the @bps_wr_max
-# burst period, in seconds. It must only
-# be set if @bps_wr_max is set as well.
-# Defaults to 1. (Since 2.6)
+# burst period, in seconds. It must only
+# be set if @bps_wr_max is set as well.
+# Defaults to 1. (Since 2.6)
#
# @iops_max_length: maximum length of the @iops burst
-# period, in seconds. It must only
-# be set if @iops_max is set as well.
-# Defaults to 1. (Since 2.6)
+# period, in seconds. It must only
+# be set if @iops_max is set as well.
+# Defaults to 1. (Since 2.6)
#
# @iops_rd_max_length: maximum length of the @iops_rd_max
-# burst period, in seconds. It must only
-# be set if @iops_rd_max is set as well.
-# Defaults to 1. (Since 2.6)
+# burst period, in seconds. It must only
+# be set if @iops_rd_max is set as well.
+# Defaults to 1. (Since 2.6)
#
# @iops_wr_max_length: maximum length of the @iops_wr_max
-# burst period, in seconds. It must only
-# be set if @iops_wr_max is set as well.
-# Defaults to 1. (Since 2.6)
+# burst period, in seconds. It must only
+# be set if @iops_wr_max is set as well.
+# Defaults to 1. (Since 2.6)
#
# @iops_size: an I/O size in bytes (Since 1.7)
#
@@ -2511,31 +2510,31 @@
# transaction. All fields are optional. When setting limits, if a field is
# missing the current value is not changed.
#
-# @iops-total: limit total I/O operations per second
-# @iops-total-max: I/O operations burst
-# @iops-total-max-length: length of the iops-total-max burst period, in seconds
-# It must only be set if @iops-total-max is set as well.
-# @iops-read: limit read operations per second
-# @iops-read-max: I/O operations read burst
-# @iops-read-max-length: length of the iops-read-max burst period, in seconds
-# It must only be set if @iops-read-max is set as well.
-# @iops-write: limit write operations per second
-# @iops-write-max: I/O operations write burst
-# @iops-write-max-length: length of the iops-write-max burst period, in seconds
-# It must only be set if @iops-write-max is set as well.
-# @bps-total: limit total bytes per second
-# @bps-total-max: total bytes burst
-# @bps-total-max-length: length of the bps-total-max burst period, in seconds.
-# It must only be set if @bps-total-max is set as well.
-# @bps-read: limit read bytes per second
-# @bps-read-max: total bytes read burst
-# @bps-read-max-length: length of the bps-read-max burst period, in seconds
-# It must only be set if @bps-read-max is set as well.
-# @bps-write: limit write bytes per second
-# @bps-write-max: total bytes write burst
-# @bps-write-max-length: length of the bps-write-max burst period, in seconds
-# It must only be set if @bps-write-max is set as well.
-# @iops-size: when limiting by iops max size of an I/O in bytes
+# @iops-total: limit total I/O operations per second
+# @iops-total-max: I/O operations burst
+# @iops-total-max-length: length of the iops-total-max burst period, in seconds
+# It must only be set if @iops-total-max is set as well.
+# @iops-read: limit read operations per second
+# @iops-read-max: I/O operations read burst
+# @iops-read-max-length: length of the iops-read-max burst period, in seconds
+# It must only be set if @iops-read-max is set as well.
+# @iops-write: limit write operations per second
+# @iops-write-max: I/O operations write burst
+# @iops-write-max-length: length of the iops-write-max burst period, in seconds
+# It must only be set if @iops-write-max is set as well.
+# @bps-total: limit total bytes per second
+# @bps-total-max: total bytes burst
+# @bps-total-max-length: length of the bps-total-max burst period, in seconds.
+# It must only be set if @bps-total-max is set as well.
+# @bps-read: limit read bytes per second
+# @bps-read-max: total bytes read burst
+# @bps-read-max-length: length of the bps-read-max burst period, in seconds
+# It must only be set if @bps-read-max is set as well.
+# @bps-write: limit write bytes per second
+# @bps-write-max: total bytes write burst
+# @bps-write-max-length: length of the bps-write-max burst period, in seconds
+# It must only be set if @bps-write-max is set as well.
+# @iops-size: when limiting by iops max size of an I/O in bytes
#
# Since: 2.11
##
@@ -2582,28 +2581,28 @@
#
# @device: the device or node name of the top image
#
-# @base: the common backing file name.
-# It cannot be set if @base-node is also set.
+# @base: the common backing file name.
+# It cannot be set if @base-node is also set.
#
# @base-node: the node name of the backing file.
-# It cannot be set if @base is also set. (Since 2.8)
+# It cannot be set if @base is also set. (Since 2.8)
#
# @backing-file: The backing file string to write into the top
-# image. This filename is not validated.
+# image. This filename is not validated.
#
-# If a pathname string is such that it cannot be
-# resolved by QEMU, that means that subsequent QMP or
-# HMP commands must use node-names for the image in
-# question, as filename lookup methods will fail.
+# If a pathname string is such that it cannot be
+# resolved by QEMU, that means that subsequent QMP or
+# HMP commands must use node-names for the image in
+# question, as filename lookup methods will fail.
#
-# If not specified, QEMU will automatically determine
-# the backing file string to use, or error out if there
-# is no obvious choice. Care should be taken when
-# specifying the string, to specify a valid filename or
-# protocol.
-# (Since 2.1)
+# If not specified, QEMU will automatically determine
+# the backing file string to use, or error out if there
+# is no obvious choice. Care should be taken when
+# specifying the string, to specify a valid filename or
+# protocol.
+# (Since 2.1)
#
-# @speed: the maximum speed, in bytes per second
+# @speed: the maximum speed, in bytes per second
#
# @on-error: the action to take on an error (default report).
# 'stop' and 'enospc' can only be used if the block device
@@ -2622,7 +2621,8 @@
# list without user intervention.
# Defaults to true. (Since 3.1)
#
-# Returns: Nothing on success. If @device does not exist, DeviceNotFound.
+# Returns: - Nothing on success.
+# - If @device does not exist, DeviceNotFound.
#
# Since: 1.1
#
@@ -2653,11 +2653,11 @@
# the name of the parameter), but since QEMU 2.7 it can have
# other values.
#
-# @speed: the maximum speed, in bytes per second, or 0 for unlimited.
-# Defaults to 0.
+# @speed: the maximum speed, in bytes per second, or 0 for unlimited.
+# Defaults to 0.
#
-# Returns: Nothing on success
-# If no background operation is active on this device, DeviceNotActive
+# Returns: - Nothing on success
+# - If no background operation is active on this device, DeviceNotActive
#
# Since: 1.1
##
@@ -2696,8 +2696,8 @@
# abandon the job immediately (even if it is paused) instead of waiting
# for the destination to complete its final synchronization (since 1.3)
#
-# Returns: Nothing on success
-# If no background operation is active on this device, DeviceNotActive
+# Returns: - Nothing on success
+# - If no background operation is active on this device, DeviceNotActive
#
# Since: 1.1
##
@@ -2720,8 +2720,8 @@
# the name of the parameter), but since QEMU 2.7 it can have
# other values.
#
-# Returns: Nothing on success
-# If no background operation is active on this device, DeviceNotActive
+# Returns: - Nothing on success
+# - If no background operation is active on this device, DeviceNotActive
#
# Since: 1.3
##
@@ -2742,8 +2742,8 @@
# the name of the parameter), but since QEMU 2.7 it can have
# other values.
#
-# Returns: Nothing on success
-# If no background operation is active on this device, DeviceNotActive
+# Returns: - Nothing on success
+# - If no background operation is active on this device, DeviceNotActive
#
# Since: 1.3
##
@@ -2770,8 +2770,8 @@
# the name of the parameter), but since QEMU 2.7 it can have
# other values.
#
-# Returns: Nothing on success
-# If no background operation is active on this device, DeviceNotActive
+# Returns: - Nothing on success
+# - If no background operation is active on this device, DeviceNotActive
#
# Since: 1.3
##
@@ -2820,8 +2820,8 @@
#
# Determines how to handle discard requests.
#
-# @ignore: Ignore the request
-# @unmap: Forward as an unmap request
+# @ignore: Ignore the request
+# @unmap: Forward as an unmap request
#
# Since: 2.9
##
@@ -2834,10 +2834,10 @@
# Describes the operation mode for the automatic conversion of plain
# zero writes by the OS to driver specific optimized zero write commands.
#
-# @off: Disabled (default)
-# @on: Enabled
-# @unmap: Enabled and even try to unmap blocks if possible. This requires
-# also that @BlockdevDiscardOptions is set to unmap for this device.
+# @off: Disabled (default)
+# @on: Enabled
+# @unmap: Enabled and even try to unmap blocks if possible. This requires
+# also that @BlockdevDiscardOptions is set to unmap for this device.
#
# Since: 2.1
##
@@ -2849,9 +2849,9 @@
#
# Selects the AIO backend to handle I/O requests
#
-# @threads: Use qemu's thread pool
-# @native: Use native AIO backend (only Linux and Windows)
-# @io_uring: Use linux io_uring (since 5.0)
+# @threads: Use qemu's thread pool
+# @native: Use native AIO backend (only Linux and Windows)
+# @io_uring: Use linux io_uring (since 5.0)
#
# Since: 2.9
##
@@ -2864,10 +2864,10 @@
#
# Includes cache-related options for block devices
#
-# @direct: enables use of O_DIRECT (bypass the host page cache;
-# default: false)
-# @no-flush: ignore any flush requests for the device (default:
-# false)
+# @direct: enables use of O_DIRECT (bypass the host page cache;
+# default: false)
+# @no-flush: ignore any flush requests for the device (default:
+# false)
#
# Since: 2.9
##
@@ -2905,18 +2905,18 @@
#
# Driver specific block device options for the file backend.
#
-# @filename: path to the image file
-# @pr-manager: the id for the object that will handle persistent reservations
-# for this device (default: none, forward the commands via SG_IO;
-# since 2.11)
-# @aio: AIO backend (default: threads) (since: 2.8)
-# @locking: whether to enable file locking. If set to 'auto', only enable
-# when Open File Descriptor (OFD) locking API is available
-# (default: auto, since 2.10)
-# @drop-cache: invalidate page cache during live migration. This prevents
-# stale data on the migration destination with cache.direct=off.
-# Currently only supported on Linux hosts.
-# (default: on, since: 4.0)
+# @filename: path to the image file
+# @pr-manager: the id for the object that will handle persistent reservations
+# for this device (default: none, forward the commands via SG_IO;
+# since 2.11)
+# @aio: AIO backend (default: threads) (since: 2.8)
+# @locking: whether to enable file locking. If set to 'auto', only enable
+# when Open File Descriptor (OFD) locking API is available
+# (default: auto, since 2.10)
+# @drop-cache: invalidate page cache during live migration. This prevents
+# stale data on the migration destination with cache.direct=off.
+# Currently only supported on Linux hosts.
+# (default: on, since: 4.0)
# @x-check-cache-dropped: whether to check that page cache was dropped on live
# migration. May cause noticeable delays if the image
# file is large, do not use in production.
@@ -2938,8 +2938,8 @@
'*pr-manager': 'str',
'*locking': 'OnOffAuto',
'*aio': 'BlockdevAioOptions',
- '*drop-cache': {'type': 'bool',
- 'if': 'defined(CONFIG_LINUX)'},
+ '*drop-cache': {'type': 'bool',
+ 'if': 'defined(CONFIG_LINUX)'},
'*x-check-cache-dropped': 'bool' },
'features': [ { 'name': 'dynamic-auto-read-only',
'if': 'defined(CONFIG_POSIX)' } ] }
@@ -2949,7 +2949,7 @@
#
# Driver specific block device options for the null backend.
#
-# @size: size of the device in bytes.
+# @size: size of the device in bytes.
# @latency-ns: emulated latency (in nanoseconds) in processing
# requests. Default to zero which completes requests immediately.
# (Since 2.4)
@@ -2966,8 +2966,8 @@
#
# Driver specific block device options for the NVMe backend.
#
-# @device: PCI controller address of the NVMe device in
-# format hhhh:bb:ss.f (host:bus:slot.function)
+# @device: PCI controller address of the NVMe device in
+# format hhhh:bb:ss.f (host:bus:slot.function)
# @namespace: namespace number of the device, starting from 1.
#
# Note that the PCI @device must have been unbound from any host
@@ -2983,15 +2983,15 @@
#
# Driver specific block device options for the vvfat protocol.
#
-# @dir: directory to be exported as FAT image
-# @fat-type: FAT type: 12, 16 or 32
-# @floppy: whether to export a floppy image (true) or
-# partitioned hard disk (false; default)
-# @label: set the volume label, limited to 11 bytes. FAT16 and
-# FAT32 traditionally have some restrictions on labels, which are
-# ignored by most operating systems. Defaults to "QEMU VVFAT".
-# (since 2.4)
-# @rw: whether to allow write operations (default: false)
+# @dir: directory to be exported as FAT image
+# @fat-type: FAT type: 12, 16 or 32
+# @floppy: whether to export a floppy image (true) or
+# partitioned hard disk (false; default)
+# @label: set the volume label, limited to 11 bytes. FAT16 and
+# FAT32 traditionally have some restrictions on labels, which are
+# ignored by most operating systems. Defaults to "QEMU VVFAT".
+# (since 2.4)
+# @rw: whether to allow write operations (default: false)
#
# Since: 2.9
##
@@ -3005,7 +3005,7 @@
# Driver specific block device options for image format that have no option
# besides their data source.
#
-# @file: reference to or definition of the data source block device
+# @file: reference to or definition of the data source block device
#
# Since: 2.9
##
@@ -3034,9 +3034,9 @@
# Driver specific block device options for image format that have no option
# besides their data source and an optional backing file.
#
-# @backing: reference to or definition of the backing file block
-# device, null disables the backing file entirely.
-# Defaults to the backing file stored the image file.
+# @backing: reference to or definition of the backing file block
+# device, null disables the backing file entirely.
+# Defaults to the backing file stored the image file.
#
# Since: 2.9
##
@@ -3049,15 +3049,15 @@
#
# General overlap check modes.
#
-# @none: Do not perform any checks
+# @none: Do not perform any checks
#
-# @constant: Perform only checks which can be done in constant time and
-# without reading anything from disk
+# @constant: Perform only checks which can be done in constant time and
+# without reading anything from disk
#
-# @cached: Perform only checks which can be done without reading anything
-# from disk
+# @cached: Perform only checks which can be done without reading anything
+# from disk
#
-# @all: Perform all available overlap checks
+# @all: Perform all available overlap checks
#
# Since: 2.9
##
@@ -3096,10 +3096,10 @@
# Specifies which metadata structures should be guarded against unintended
# overwriting.
#
-# @flags: set of flags for separate specification of each metadata structure
-# type
+# @flags: set of flags for separate specification of each metadata structure
+# type
#
-# @mode: named mode which chooses a specific set of flags
+# @mode: named mode which chooses a specific set of flags
#
# Since: 2.9
##
@@ -3132,9 +3132,9 @@
#
# Driver specific block device options for qcow.
#
-# @encrypt: Image decryption options. Mandatory for
-# encrypted images, except when doing a metadata-only
-# probe of the image.
+# @encrypt: Image decryption options. Mandatory for
+# encrypted images, except when doing a metadata-only
+# probe of the image.
#
# Since: 2.10
##
@@ -3169,51 +3169,51 @@
#
# Driver specific block device options for qcow2.
#
-# @lazy-refcounts: whether to enable the lazy refcounts
-# feature (default is taken from the image file)
+# @lazy-refcounts: whether to enable the lazy refcounts
+# feature (default is taken from the image file)
#
-# @pass-discard-request: whether discard requests to the qcow2
-# device should be forwarded to the data source
+# @pass-discard-request: whether discard requests to the qcow2
+# device should be forwarded to the data source
#
# @pass-discard-snapshot: whether discard requests for the data source
# should be issued when a snapshot operation (e.g.
# deleting a snapshot) frees clusters in the qcow2 file
#
-# @pass-discard-other: whether discard requests for the data source
-# should be issued on other occasions where a cluster
-# gets freed
+# @pass-discard-other: whether discard requests for the data source
+# should be issued on other occasions where a cluster
+# gets freed
#
-# @overlap-check: which overlap checks to perform for writes
-# to the image, defaults to 'cached' (since 2.2)
+# @overlap-check: which overlap checks to perform for writes
+# to the image, defaults to 'cached' (since 2.2)
#
-# @cache-size: the maximum total size of the L2 table and
-# refcount block caches in bytes (since 2.2)
+# @cache-size: the maximum total size of the L2 table and
+# refcount block caches in bytes (since 2.2)
#
-# @l2-cache-size: the maximum size of the L2 table cache in
-# bytes (since 2.2)
+# @l2-cache-size: the maximum size of the L2 table cache in
+# bytes (since 2.2)
#
-# @l2-cache-entry-size: the size of each entry in the L2 cache in
-# bytes. It must be a power of two between 512
-# and the cluster size. The default value is
-# the cluster size (since 2.12)
+# @l2-cache-entry-size: the size of each entry in the L2 cache in
+# bytes. It must be a power of two between 512
+# and the cluster size. The default value is
+# the cluster size (since 2.12)
#
-# @refcount-cache-size: the maximum size of the refcount block cache
-# in bytes (since 2.2)
+# @refcount-cache-size: the maximum size of the refcount block cache
+# in bytes (since 2.2)
#
-# @cache-clean-interval: clean unused entries in the L2 and refcount
-# caches. The interval is in seconds. The default value
-# is 600 on supporting platforms, and 0 on other
-# platforms. 0 disables this feature. (since 2.5)
+# @cache-clean-interval: clean unused entries in the L2 and refcount
+# caches. The interval is in seconds. The default value
+# is 600 on supporting platforms, and 0 on other
+# platforms. 0 disables this feature. (since 2.5)
#
-# @encrypt: Image decryption options. Mandatory for
-# encrypted images, except when doing a metadata-only
-# probe of the image. (since 2.10)
+# @encrypt: Image decryption options. Mandatory for
+# encrypted images, except when doing a metadata-only
+# probe of the image. (since 2.10)
#
-# @data-file: reference to or definition of the external data file.
-# This may only be specified for images that require an
-# external data file. If it is not specified for such
-# an image, the data file name is loaded from the image
-# file. (since 4.0)
+# @data-file: reference to or definition of the external data file.
+# This may only be specified for images that require an
+# external data file. If it is not specified for such
+# an image, the data file name is loaded from the image
+# file. (since 4.0)
#
# Since: 2.9
##
@@ -3235,9 +3235,9 @@
##
# @SshHostKeyCheckMode:
#
-# @none Don't check the host key at all
-# @hash Compare the host key with a given hash
-# @known_hosts Check the host key against the known_hosts file
+# @none: Don't check the host key at all
+# @hash: Compare the host key with a given hash
+# @known_hosts: Check the host key against the known_hosts file
#
# Since: 2.12
##
@@ -3247,8 +3247,8 @@
##
# @SshHostKeyCheckHashType:
#
-# @md5 The given hash is an md5 hash
-# @sha1 The given hash is an sha1 hash
+# @md5: The given hash is an md5 hash
+# @sha1: The given hash is an sha1 hash
#
# Since: 2.12
##
@@ -3258,8 +3258,8 @@
##
# @SshHostKeyHash:
#
-# @type The hash algorithm used for the hash
-# @hash The expected hash value
+# @type: The hash algorithm used for the hash
+# @hash: The expected hash value
#
# Since: 2.12
##
@@ -3304,8 +3304,8 @@
#
# Trigger events supported by blkdebug.
#
-# @l1_shrink_write_table: write zeros to the l1 table to shrink image.
-# (since 2.11)
+# @l1_shrink_write_table: write zeros to the l1 table to shrink image.
+# (since 2.11)
#
# @l1_shrink_free_l2_clusters: discard the l2 tables. (since 2.11)
#
@@ -3363,25 +3363,25 @@
#
# Describes a single error injection for blkdebug.
#
-# @event: trigger event
+# @event: trigger event
#
-# @state: the state identifier blkdebug needs to be in to
-# actually trigger the event; defaults to "any"
+# @state: the state identifier blkdebug needs to be in to
+# actually trigger the event; defaults to "any"
#
-# @iotype: the type of I/O operations on which this error should
-# be injected; defaults to "all read, write,
-# write-zeroes, discard, and flush operations"
-# (since: 4.1)
+# @iotype: the type of I/O operations on which this error should
+# be injected; defaults to "all read, write,
+# write-zeroes, discard, and flush operations"
+# (since: 4.1)
#
-# @errno: error identifier (errno) to be returned; defaults to
-# EIO
+# @errno: error identifier (errno) to be returned; defaults to
+# EIO
#
-# @sector: specifies the sector index which has to be affected
-# in order to actually trigger the event; defaults to "any
-# sector"
+# @sector: specifies the sector index which has to be affected
+# in order to actually trigger the event; defaults to "any
+# sector"
#
-# @once: disables further events after this one has been
-# triggered; defaults to false
+# @once: disables further events after this one has been
+# triggered; defaults to false
#
# @immediately: fail immediately; defaults to false
#
@@ -3401,13 +3401,13 @@
#
# Describes a single state-change event for blkdebug.
#
-# @event: trigger event
+# @event: trigger event
#
-# @state: the current state identifier blkdebug needs to be in;
-# defaults to "any"
+# @state: the current state identifier blkdebug needs to be in;
+# defaults to "any"
#
-# @new_state: the state identifier blkdebug is supposed to assume if
-# this event is triggered
+# @new_state: the state identifier blkdebug is supposed to assume if
+# this event is triggered
#
# Since: 2.9
##
@@ -3421,41 +3421,41 @@
#
# Driver specific block device options for blkdebug.
#
-# @image: underlying raw block device (or image file)
+# @image: underlying raw block device (or image file)
#
-# @config: filename of the configuration file
+# @config: filename of the configuration file
#
-# @align: required alignment for requests in bytes, must be
-# positive power of 2, or 0 for default
+# @align: required alignment for requests in bytes, must be
+# positive power of 2, or 0 for default
#
-# @max-transfer: maximum size for I/O transfers in bytes, must be
-# positive multiple of @align and of the underlying
-# file's request alignment (but need not be a power of
-# 2), or 0 for default (since 2.10)
+# @max-transfer: maximum size for I/O transfers in bytes, must be
+# positive multiple of @align and of the underlying
+# file's request alignment (but need not be a power of
+# 2), or 0 for default (since 2.10)
#
-# @opt-write-zero: preferred alignment for write zero requests in bytes,
-# must be positive multiple of @align and of the
-# underlying file's request alignment (but need not be a
-# power of 2), or 0 for default (since 2.10)
+# @opt-write-zero: preferred alignment for write zero requests in bytes,
+# must be positive multiple of @align and of the
+# underlying file's request alignment (but need not be a
+# power of 2), or 0 for default (since 2.10)
#
-# @max-write-zero: maximum size for write zero requests in bytes, must be
-# positive multiple of @align, of @opt-write-zero, and of
-# the underlying file's request alignment (but need not
-# be a power of 2), or 0 for default (since 2.10)
+# @max-write-zero: maximum size for write zero requests in bytes, must be
+# positive multiple of @align, of @opt-write-zero, and of
+# the underlying file's request alignment (but need not
+# be a power of 2), or 0 for default (since 2.10)
#
-# @opt-discard: preferred alignment for discard requests in bytes, must
-# be positive multiple of @align and of the underlying
-# file's request alignment (but need not be a power of
-# 2), or 0 for default (since 2.10)
+# @opt-discard: preferred alignment for discard requests in bytes, must
+# be positive multiple of @align and of the underlying
+# file's request alignment (but need not be a power of
+# 2), or 0 for default (since 2.10)
#
-# @max-discard: maximum size for discard requests in bytes, must be
-# positive multiple of @align, of @opt-discard, and of
-# the underlying file's request alignment (but need not
-# be a power of 2), or 0 for default (since 2.10)
+# @max-discard: maximum size for discard requests in bytes, must be
+# positive multiple of @align, of @opt-discard, and of
+# the underlying file's request alignment (but need not
+# be a power of 2), or 0 for default (since 2.10)
#
-# @inject-error: array of error injection descriptions
+# @inject-error: array of error injection descriptions
#
-# @set-state: array of state-change descriptions
+# @set-state: array of state-change descriptions
#
# @take-child-perms: Permissions to take on @image in addition to what
# is necessary anyway (which depends on how the
@@ -3485,14 +3485,14 @@
#
# Driver specific block device options for blklogwrites.
#
-# @file: block device
+# @file: block device
#
-# @log: block device used to log writes to @file
+# @log: block device used to log writes to @file
#
# @log-sector-size: sector size used in logging writes to @file, determines
# granularity of offsets and sizes of writes (default: 512)
#
-# @log-append: append to an existing log (default: false)
+# @log-append: append to an existing log (default: false)
#
# @log-super-update-interval: interval of write requests after which the log
# super block is updated to disk (default: 4096)
@@ -3511,9 +3511,9 @@
#
# Driver specific block device options for blkverify.
#
-# @test: block device to be tested
+# @test: block device to be tested
#
-# @raw: raw image used for verification
+# @raw: raw image used for verification
#
# Since: 2.9
##
@@ -3526,7 +3526,7 @@
#
# Driver specific block device options for blkreplay.
#
-# @image: disk image which should be controlled with blkreplay
+# @image: disk image which should be controlled with blkreplay
#
# Since: 4.2
##
@@ -3551,10 +3551,10 @@
#
# Driver specific block device options for Quorum
#
-# @blkverify: true if the driver must print content mismatch
+# @blkverify: true if the driver must print content mismatch
# set to false by default
#
-# @children: the children block devices to use
+# @children: the children block devices to use
#
# @vote-threshold: the vote limit under which a read will fail
#
@@ -3578,16 +3578,16 @@
#
# Driver specific block device options for Gluster
#
-# @volume: name of gluster volume where VM image resides
+# @volume: name of gluster volume where VM image resides
#
-# @path: absolute path to image file in gluster volume
+# @path: absolute path to image file in gluster volume
#
-# @server: gluster servers description
+# @server: gluster servers description
#
-# @debug: libgfapi log level (default '4' which is Error)
-# (Since 2.8)
+# @debug: libgfapi log level (default '4' which is Error)
+# (Since 2.8)
#
-# @logfile: libgfapi log file (default /dev/stderr) (Since 2.8)
+# @logfile: libgfapi log file (default /dev/stderr) (Since 2.8)
#
# Since: 2.9
##
@@ -3622,30 +3622,30 @@
##
# @BlockdevOptionsIscsi:
#
-# @transport: The iscsi transport type
+# @transport: The iscsi transport type
#
-# @portal: The address of the iscsi portal
+# @portal: The address of the iscsi portal
#
-# @target: The target iqn name
+# @target: The target iqn name
#
-# @lun: LUN to connect to. Defaults to 0.
+# @lun: LUN to connect to. Defaults to 0.
#
-# @user: User name to log in with. If omitted, no CHAP
-# authentication is performed.
+# @user: User name to log in with. If omitted, no CHAP
+# authentication is performed.
#
# @password-secret: The ID of a QCryptoSecret object providing
# the password for the login. This option is required if
# @user is specified.
#
-# @initiator-name: The iqn name we want to identify to the target
-# as. If this option is not specified, an initiator name is
-# generated automatically.
+# @initiator-name: The iqn name we want to identify to the target
+# as. If this option is not specified, an initiator name is
+# generated automatically.
#
-# @header-digest: The desired header digest. Defaults to
-# none-crc32c.
+# @header-digest: The desired header digest. Defaults to
+# none-crc32c.
#
-# @timeout: Timeout in seconds after which a request will
-# timeout. 0 means no timeout and is the default.
+# @timeout: Timeout in seconds after which a request will
+# timeout. 0 means no timeout and is the default.
#
# Driver specific block device options for iscsi
#
@@ -3674,29 +3674,29 @@
##
# @BlockdevOptionsRbd:
#
-# @pool: Ceph pool name.
+# @pool: Ceph pool name.
#
-# @image: Image name in the Ceph pool.
+# @image: Image name in the Ceph pool.
#
-# @conf: path to Ceph configuration file. Values
-# in the configuration file will be overridden by
-# options specified via QAPI.
+# @conf: path to Ceph configuration file. Values
+# in the configuration file will be overridden by
+# options specified via QAPI.
#
-# @snapshot: Ceph snapshot name.
+# @snapshot: Ceph snapshot name.
#
-# @user: Ceph id name.
+# @user: Ceph id name.
#
# @auth-client-required: Acceptable authentication modes.
-# This maps to Ceph configuration option
-# "auth_client_required". (Since 3.0)
+# This maps to Ceph configuration option
+# "auth_client_required". (Since 3.0)
#
-# @key-secret: ID of a QCryptoSecret object providing a key
-# for cephx authentication.
-# This maps to Ceph configuration option
-# "key". (Since 3.0)
+# @key-secret: ID of a QCryptoSecret object providing a key
+# for cephx authentication.
+# This maps to Ceph configuration option
+# "key". (Since 3.0)
#
-# @server: Monitor host address and port. This maps
-# to the "mon_host" Ceph option.
+# @server: Monitor host address and port. This maps
+# to the "mon_host" Ceph option.
#
# Since: 2.9
##
@@ -3715,10 +3715,10 @@
#
# Driver specific block device options for sheepdog
#
-# @vdi: Virtual disk image name
-# @server: The Sheepdog server to connect to
-# @snap-id: Snapshot ID
-# @tag: Snapshot tag name
+# @vdi: Virtual disk image name
+# @server: The Sheepdog server to connect to
+# @snap-id: Snapshot ID
+# @tag: Snapshot tag name
#
# Only one of @snap-id and @tag may be present.
#
@@ -3768,7 +3768,7 @@
#
# An enumeration of NFS transport types
#
-# @inet: TCP transport
+# @inet: TCP transport
#
# Since: 2.9
##
@@ -3780,9 +3780,9 @@
#
# Captures the address of the socket
#
-# @type: transport type used for NFS (only TCP supported)
+# @type: transport type used for NFS (only TCP supported)
#
-# @host: host address for NFS server
+# @host: host address for NFS server
#
# Since: 2.9
##
@@ -3795,29 +3795,29 @@
#
# Driver specific block device option for NFS
#
-# @server: host address
+# @server: host address
#
-# @path: path of the image on the host
+# @path: path of the image on the host
#
-# @user: UID value to use when talking to the
-# server (defaults to 65534 on Windows and getuid()
-# on unix)
+# @user: UID value to use when talking to the
+# server (defaults to 65534 on Windows and getuid()
+# on unix)
#
-# @group: GID value to use when talking to the
-# server (defaults to 65534 on Windows and getgid()
-# in unix)
+# @group: GID value to use when talking to the
+# server (defaults to 65534 on Windows and getgid()
+# in unix)
#
-# @tcp-syn-count: number of SYNs during the session
-# establishment (defaults to libnfs default)
+# @tcp-syn-count: number of SYNs during the session
+# establishment (defaults to libnfs default)
#
-# @readahead-size: set the readahead size in bytes (defaults
-# to libnfs default)
+# @readahead-size: set the readahead size in bytes (defaults
+# to libnfs default)
#
-# @page-cache-size: set the pagecache size in bytes (defaults
-# to libnfs default)
+# @page-cache-size: set the pagecache size in bytes (defaults
+# to libnfs default)
#
-# @debug: set the NFS debug level (max 2) (defaults
-# to libnfs default)
+# @debug: set the NFS debug level (max 2) (defaults
+# to libnfs default)
#
# Since: 2.9
##
@@ -3837,22 +3837,22 @@
# Driver specific block device options shared by all protocols supported by the
# curl backend.
#
-# @url: URL of the image file
+# @url: URL of the image file
#
-# @readahead: Size of the read-ahead cache; must be a multiple of
-# 512 (defaults to 256 kB)
+# @readahead: Size of the read-ahead cache; must be a multiple of
+# 512 (defaults to 256 kB)
#
-# @timeout: Timeout for connections, in seconds (defaults to 5)
+# @timeout: Timeout for connections, in seconds (defaults to 5)
#
-# @username: Username for authentication (defaults to none)
+# @username: Username for authentication (defaults to none)
#
-# @password-secret: ID of a QCryptoSecret object providing a password
-# for authentication (defaults to no password)
+# @password-secret: ID of a QCryptoSecret object providing a password
+# for authentication (defaults to no password)
#
-# @proxy-username: Username for proxy authentication (defaults to none)
+# @proxy-username: Username for proxy authentication (defaults to none)
#
-# @proxy-password-secret: ID of a QCryptoSecret object providing a password
-# for proxy authentication (defaults to no password)
+# @proxy-password-secret: ID of a QCryptoSecret object providing a password
+# for proxy authentication (defaults to no password)
#
# Since: 2.9
##
@@ -3871,9 +3871,9 @@
# Driver specific block device options for HTTP connections over the curl
# backend. URLs must start with "http://".
#
-# @cookie: List of cookies to set; format is
-# "name1=content1; name2=content2;" as explained by
-# CURLOPT_COOKIE(3). Defaults to no cookies.
+# @cookie: List of cookies to set; format is
+# "name1=content1; name2=content2;" as explained by
+# CURLOPT_COOKIE(3). Defaults to no cookies.
#
# @cookie-secret: ID of a QCryptoSecret object providing the cookie data in a
# secure way. See @cookie for the format. (since 2.10)
@@ -3891,12 +3891,12 @@
# Driver specific block device options for HTTPS connections over the curl
# backend. URLs must start with "https://".
#
-# @cookie: List of cookies to set; format is
-# "name1=content1; name2=content2;" as explained by
-# CURLOPT_COOKIE(3). Defaults to no cookies.
+# @cookie: List of cookies to set; format is
+# "name1=content1; name2=content2;" as explained by
+# CURLOPT_COOKIE(3). Defaults to no cookies.
#
-# @sslverify: Whether to verify the SSL certificate's validity (defaults to
-# true)
+# @sslverify: Whether to verify the SSL certificate's validity (defaults to
+# true)
#
# @cookie-secret: ID of a QCryptoSecret object providing the cookie data in a
# secure way. See @cookie for the format. (since 2.10)
@@ -3927,8 +3927,8 @@
# Driver specific block device options for FTPS connections over the curl
# backend. URLs must start with "ftps://".
#
-# @sslverify: Whether to verify the SSL certificate's validity (defaults to
-# true)
+# @sslverify: Whether to verify the SSL certificate's validity (defaults to
+# true)
#
# Since: 2.9
##
@@ -3941,11 +3941,11 @@
#
# Driver specific block device options for NBD.
#
-# @server: NBD server address
+# @server: NBD server address
#
-# @export: export name
+# @export: export name
#
-# @tls-creds: TLS credentials ID
+# @tls-creds: TLS credentials ID
#
# @x-dirty-bitmap: A "qemu:dirty-bitmap:NAME" string to query in place of
# traditional "base:allocation" block status (see
@@ -3973,8 +3973,8 @@
#
# Driver specific block device options for the raw driver.
#
-# @offset: position where the block device starts
-# @size: the assumed size of the device
+# @offset: position where the block device starts
+# @size: the assumed size of the device
#
# Since: 2.9
##
@@ -3987,9 +3987,9 @@
#
# Driver specific block device options for VxHS
#
-# @vdisk-id: UUID of VxHS volume
-# @server: vxhs server IP, port
-# @tls-creds: TLS credentials ID
+# @vdisk-id: UUID of VxHS volume
+# @server: vxhs server IP, port
+# @tls-creds: TLS credentials ID
#
# Since: 2.10
##
@@ -4003,9 +4003,9 @@
#
# Driver specific block device options for the throttle driver
#
-# @throttle-group: the name of the throttle-group object to use. It
-# must already exist.
-# @file: reference to or definition of the data source block device
+# @throttle-group: the name of the throttle-group object to use. It
+# must already exist.
+# @file: reference to or definition of the data source block device
# Since: 2.11
##
{ 'struct': 'BlockdevOptionsThrottle',
@@ -4018,19 +4018,19 @@
# Options for creating a block device. Many options are available for all
# block devices, independent of the block driver:
#
-# @driver: block driver name
-# @node-name: the node name of the new node (Since 2.0).
-# This option is required on the top level of blockdev-add.
-# Valid node names start with an alphabetic character and may
-# contain only alphanumeric characters, '-', '.' and '_'. Their
-# maximum length is 31 characters.
-# @discard: discard-related options (default: ignore)
-# @cache: cache-related options
-# @read-only: whether the block device should be read-only (default: false).
-# Note that some block drivers support only read-only access,
-# either generally or in certain configurations. In this case,
-# the default value does not work and the option must be
-# specified explicitly.
+# @driver: block driver name
+# @node-name: the node name of the new node (Since 2.0).
+# This option is required on the top level of blockdev-add.
+# Valid node names start with an alphabetic character and may
+# contain only alphanumeric characters, '-', '.' and '_'. Their
+# maximum length is 31 characters.
+# @discard: discard-related options (default: ignore)
+# @cache: cache-related options
+# @read-only: whether the block device should be read-only (default: false).
+# Note that some block drivers support only read-only access,
+# either generally or in certain configurations. In this case,
+# the default value does not work and the option must be
+# specified explicitly.
# @auto-read-only: if true and @read-only is false, QEMU may automatically
# decide not to open the image read-write as requested, but
# fall back to read-only instead (and switch between the modes
@@ -4039,8 +4039,8 @@
# (default: false, since 3.1)
# @detect-zeroes: detect and optimize zero writes (Since 2.1)
# (default: off)
-# @force-share: force share all permission on added nodes.
-# Requires read-only=true. (Since 2.10)
+# @force-share: force share all permission on added nodes.
+# Requires read-only=true. (Since 2.10)
#
# Remaining options are determined by the block driver.
#
@@ -4106,8 +4106,8 @@
#
# Reference to a block device.
#
-# @definition: defines a new block device inline
-# @reference: references the ID of an existing block device
+# @definition: defines a new block device inline
+# @reference: references the ID of an existing block device
#
# Since: 2.9
##
@@ -4120,11 +4120,11 @@
#
# Reference to a block device.
#
-# @definition: defines a new block device inline
-# @reference: references the ID of an existing block device.
-# An empty string means that no block device should
-# be referenced. Deprecated; use null instead.
-# @null: No block device should be referenced (since 2.10)
+# @definition: defines a new block device inline
+# @reference: references the ID of an existing block device.
+# An empty string means that no block device should
+# be referenced. Deprecated; use null instead.
+# @null: No block device should be referenced (since 2.10)
#
# Since: 2.9
##
@@ -4265,13 +4265,13 @@
#
# Driver specific image creation options for file.
#
-# @filename Filename for the new image file
-# @size Size of the virtual disk in bytes
-# @preallocation Preallocation mode for the new image (default: off;
-# allowed values: off,
-# falloc (if defined CONFIG_POSIX_FALLOCATE),
-# full (if defined CONFIG_POSIX))
-# @nocow Turn off copy-on-write (valid only on btrfs; default: off)
+# @filename: Filename for the new image file
+# @size: Size of the virtual disk in bytes
+# @preallocation: Preallocation mode for the new image (default: off;
+# allowed values: off,
+# falloc (if defined CONFIG_POSIX_FALLOCATE),
+# full (if defined CONFIG_POSIX))
+# @nocow: Turn off copy-on-write (valid only on btrfs; default: off)
#
# Since: 2.12
##
@@ -4286,12 +4286,12 @@
#
# Driver specific image creation options for gluster.
#
-# @location Where to store the new image file
-# @size Size of the virtual disk in bytes
-# @preallocation Preallocation mode for the new image (default: off;
-# allowed values: off,
-# falloc (if defined CONFIG_GLUSTERFS_FALLOCATE),
-# full (if defined CONFIG_GLUSTERFS_ZEROFILL))
+# @location: Where to store the new image file
+# @size: Size of the virtual disk in bytes
+# @preallocation: Preallocation mode for the new image (default: off;
+# allowed values: off,
+# falloc (if defined CONFIG_GLUSTERFS_FALLOCATE),
+# full (if defined CONFIG_GLUSTERFS_ZEROFILL))
#
# Since: 2.12
##
@@ -4305,11 +4305,11 @@
#
# Driver specific image creation options for LUKS.
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @preallocation Preallocation mode for the new image
-# (since: 4.2)
-# (default: off; allowed values: off, metadata, falloc, full)
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @preallocation: Preallocation mode for the new image
+# (since: 4.2)
+# (default: off; allowed values: off, metadata, falloc, full)
#
# Since: 2.12
##
@@ -4324,8 +4324,8 @@
#
# Driver specific image creation options for NFS.
#
-# @location Where to store the new image file
-# @size Size of the virtual disk in bytes
+# @location: Where to store the new image file
+# @size: Size of the virtual disk in bytes
#
# Since: 2.12
##
@@ -4338,9 +4338,9 @@
#
# Driver specific image creation options for parallels.
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @cluster-size Cluster size in bytes (default: 1 MB)
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @cluster-size: Cluster size in bytes (default: 1 MB)
#
# Since: 2.12
##
@@ -4354,11 +4354,11 @@
#
# Driver specific image creation options for qcow.
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @backing-file File name of the backing file if a backing file
-# should be used
-# @encrypt Encryption options if the image should be encrypted
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @backing-file: File name of the backing file if a backing file
+# should be used
+# @encrypt: Encryption options if the image should be encrypted
#
# Since: 2.12
##
@@ -4385,24 +4385,24 @@
#
# Driver specific image creation options for qcow2.
#
-# @file Node to create the image format on
-# @data-file Node to use as an external data file in which all guest
-# data is stored so that only metadata remains in the qcow2
-# file (since: 4.0)
-# @data-file-raw True if the external data file must stay valid as a
-# standalone (read-only) raw image without looking at qcow2
-# metadata (default: false; since: 4.0)
-# @size Size of the virtual disk in bytes
-# @version Compatibility level (default: v3)
-# @backing-file File name of the backing file if a backing file
-# should be used
-# @backing-fmt Name of the block driver to use for the backing file
-# @encrypt Encryption options if the image should be encrypted
-# @cluster-size qcow2 cluster size in bytes (default: 65536)
-# @preallocation Preallocation mode for the new image (default: off;
-# allowed values: off, falloc, full, metadata)
-# @lazy-refcounts True if refcounts may be updated lazily (default: off)
-# @refcount-bits Width of reference counts in bits (default: 16)
+# @file: Node to create the image format on
+# @data-file: Node to use as an external data file in which all guest
+# data is stored so that only metadata remains in the qcow2
+# file (since: 4.0)
+# @data-file-raw: True if the external data file must stay valid as a
+# standalone (read-only) raw image without looking at qcow2
+# metadata (default: false; since: 4.0)
+# @size: Size of the virtual disk in bytes
+# @version: Compatibility level (default: v3)
+# @backing-file: File name of the backing file if a backing file
+# should be used
+# @backing-fmt: Name of the block driver to use for the backing file
+# @encrypt: Encryption options if the image should be encrypted
+# @cluster-size: qcow2 cluster size in bytes (default: 65536)
+# @preallocation: Preallocation mode for the new image (default: off;
+# allowed values: off, falloc, full, metadata)
+# @lazy-refcounts: True if refcounts may be updated lazily (default: off)
+# @refcount-bits: Width of reference counts in bits (default: 16)
#
# Since: 2.12
##
@@ -4425,13 +4425,13 @@
#
# Driver specific image creation options for qed.
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @backing-file File name of the backing file if a backing file
-# should be used
-# @backing-fmt Name of the block driver to use for the backing file
-# @cluster-size Cluster size in bytes (default: 65536)
-# @table-size L1/L2 table size (in clusters)
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @backing-file: File name of the backing file if a backing file
+# should be used
+# @backing-fmt: Name of the block driver to use for the backing file
+# @cluster-size: Cluster size in bytes (default: 65536)
+# @table-size: L1/L2 table size (in clusters)
#
# Since: 2.12
##
@@ -4448,10 +4448,10 @@
#
# Driver specific image creation options for rbd/Ceph.
#
-# @location Where to store the new image file. This location cannot
-# point to a snapshot.
-# @size Size of the virtual disk in bytes
-# @cluster-size RBD object size
+# @location: Where to store the new image file. This location cannot
+# point to a snapshot.
+# @size: Size of the virtual disk in bytes
+# @cluster-size: RBD object size
#
# Since: 2.12
##
@@ -4499,23 +4499,23 @@
#
# Driver specific image creation options for VMDK.
#
-# @file Where to store the new image file. This refers to the image
-# file for monolithcSparse and streamOptimized format, or the
-# descriptor file for other formats.
-# @size Size of the virtual disk in bytes
-# @extents Where to store the data extents. Required for monolithcFlat,
-# twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For
-# monolithicFlat, only one entry is required; for
-# twoGbMaxExtent* formats, the number of entries required is
-# calculated as extent_number = virtual_size / 2GB. Providing
-# more extents than will be used is an error.
-# @subformat The subformat of the VMDK image. Default: "monolithicSparse".
-# @backing-file The path of backing file. Default: no backing file is used.
-# @adapter-type The adapter type used to fill in the descriptor. Default: ide.
-# @hwversion Hardware version. The meaningful options are "4" or "6".
-# Default: "4".
-# @zeroed-grain Whether to enable zeroed-grain feature for sparse subformats.
-# Default: false.
+# @file: Where to store the new image file. This refers to the image
+# file for monolithcSparse and streamOptimized format, or the
+# descriptor file for other formats.
+# @size: Size of the virtual disk in bytes
+# @extents: Where to store the data extents. Required for monolithcFlat,
+# twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For
+# monolithicFlat, only one entry is required; for
+# twoGbMaxExtent* formats, the number of entries required is
+# calculated as extent_number = virtual_size / 2GB. Providing
+# more extents than will be used is an error.
+# @subformat: The subformat of the VMDK image. Default: "monolithicSparse".
+# @backing-file: The path of backing file. Default: no backing file is used.
+# @adapter-type: The adapter type used to fill in the descriptor. Default: ide.
+# @hwversion: Hardware version. The meaningful options are "4" or "6".
+# Default: "4".
+# @zeroed-grain: Whether to enable zeroed-grain feature for sparse subformats.
+# Default: false.
#
# Since: 4.0
##
@@ -4533,9 +4533,9 @@
##
# @SheepdogRedundancyType:
#
-# @full Create a fully replicated vdi with x copies
-# @erasure-coded Create an erasure coded vdi with x data strips and
-# y parity strips
+# @full: Create a fully replicated vdi with x copies
+# @erasure-coded: Create an erasure coded vdi with x data strips and
+# y parity strips
#
# Since: 2.12
##
@@ -4545,7 +4545,7 @@
##
# @SheepdogRedundancyFull:
#
-# @copies Number of copies to use (between 1 and 31)
+# @copies: Number of copies to use (between 1 and 31)
#
# Since: 2.12
##
@@ -4555,8 +4555,8 @@
##
# @SheepdogRedundancyErasureCoded:
#
-# @data-strips Number of data strips to use (one of {2,4,8,16})
-# @parity-strips Number of parity strips to use (between 1 and 15)
+# @data-strips: Number of data strips to use (one of {2,4,8,16})
+# @parity-strips: Number of parity strips to use (between 1 and 15)
#
# Since: 2.12
##
@@ -4580,13 +4580,13 @@
#
# Driver specific image creation options for Sheepdog.
#
-# @location Where to store the new image file
-# @size Size of the virtual disk in bytes
-# @backing-file File name of a base image
-# @preallocation Preallocation mode for the new image (default: off;
-# allowed values: off, full)
-# @redundancy Redundancy of the image
-# @object-size Object size of the image
+# @location: Where to store the new image file
+# @size: Size of the virtual disk in bytes
+# @backing-file: File name of a base image
+# @preallocation: Preallocation mode for the new image (default: off;
+# allowed values: off, full)
+# @redundancy: Redundancy of the image
+# @object-size: Object size of the image
#
# Since: 2.12
##
@@ -4603,8 +4603,8 @@
#
# Driver specific image creation options for SSH.
#
-# @location Where to store the new image file
-# @size Size of the virtual disk in bytes
+# @location: Where to store the new image file
+# @size: Size of the virtual disk in bytes
#
# Since: 2.12
##
@@ -4617,10 +4617,10 @@
#
# Driver specific image creation options for VDI.
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @preallocation Preallocation mode for the new image (default: off;
-# allowed values: off, metadata)
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @preallocation: Preallocation mode for the new image (default: off;
+# allowed values: off, metadata)
#
# Since: 2.12
##
@@ -4645,17 +4645,17 @@
#
# Driver specific image creation options for vhdx.
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @log-size Log size in bytes, must be a multiple of 1 MB
-# (default: 1 MB)
-# @block-size Block size in bytes, must be a multiple of 1 MB and not
-# larger than 256 MB (default: automatically choose a block
-# size depending on the image size)
-# @subformat vhdx subformat (default: dynamic)
-# @block-state-zero Force use of payload blocks of type 'ZERO'. Non-standard,
-# but default. Do not set to 'off' when using 'qemu-img
-# convert' with subformat=dynamic.
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @log-size: Log size in bytes, must be a multiple of 1 MB
+# (default: 1 MB)
+# @block-size: Block size in bytes, must be a multiple of 1 MB and not
+# larger than 256 MB (default: automatically choose a block
+# size depending on the image size)
+# @subformat: vhdx subformat (default: dynamic)
+# @block-state-zero: Force use of payload blocks of type 'ZERO'. Non-standard,
+# but default. Do not set to 'off' when using 'qemu-img
+# convert' with subformat=dynamic.
#
# Since: 2.12
##
@@ -4683,12 +4683,12 @@
#
# Driver specific image creation options for vpc (VHD).
#
-# @file Node to create the image format on
-# @size Size of the virtual disk in bytes
-# @subformat vhdx subformat (default: dynamic)
-# @force-size Force use of the exact byte size instead of rounding to the
-# next size that can be represented in CHS geometry
-# (default: false)
+# @file: Node to create the image format on
+# @size: Size of the virtual disk in bytes
+# @subformat: vhdx subformat (default: dynamic)
+# @force-size: Force use of the exact byte size instead of rounding to the
+# next size that can be represented in CHS geometry
+# (default: false)
#
# Since: 2.12
##
@@ -4703,7 +4703,7 @@
#
# Options for creating an image format on a given node.
#
-# @driver block driver to create the image format
+# @driver: block driver to create the image format
#
# Since: 2.12
##
@@ -4757,6 +4757,7 @@
#
# Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are cases in
# which no such event will be generated, these include:
+#
# - if the guest has locked the tray, @force is false and the guest does not
# respond to the eject request
# - if the BlockBackend denoted by @device does not have a guest device attached
@@ -4765,12 +4766,12 @@
#
# @device: Block device name (deprecated, use @id instead)
#
-# @id: The name or QOM path of the guest device (since: 2.8)
+# @id: The name or QOM path of the guest device (since: 2.8)
#
-# @force: if false (the default), an eject request will be sent to
-# the guest if it has locked the tray (and the tray will not be opened
-# immediately); if true, the tray will be opened regardless of whether
-# it is locked
+# @force: if false (the default), an eject request will be sent to
+# the guest if it has locked the tray (and the tray will not be opened
+# immediately); if true, the tray will be opened regardless of whether
+# it is locked
#
# Since: 2.5
#
@@ -4803,9 +4804,9 @@
#
# If the tray was already closed before, this will be a no-op.
#
-# @device: Block device name (deprecated, use @id instead)
+# @device: Block device name (deprecated, use @id instead)
#
-# @id: The name or QOM path of the guest device (since: 2.8)
+# @id: The name or QOM path of the guest device (since: 2.8)
#
# Since: 2.5
#
@@ -4837,7 +4838,7 @@
#
# If the tray is open and there is no medium inserted, this will be a no-op.
#
-# @id: The name or QOM path of the guest device
+# @id: The name or QOM path of the guest device
#
# Since: 2.12
#
@@ -4877,7 +4878,7 @@
# device's tray must currently be open (unless there is no attached guest
# device) and there must be no medium inserted already.
#
-# @id: The name or QOM path of the guest device
+# @id: The name or QOM path of the guest device
#
# @node-name: name of a node in the block driver state graph
#
@@ -4911,11 +4912,11 @@
# Specifies the new read-only mode of a block device subject to the
# @blockdev-change-medium command.
#
-# @retain: Retains the current read-only mode
+# @retain: Retains the current read-only mode
#
-# @read-only: Makes the device read-only
+# @read-only: Makes the device read-only
#
-# @read-write: Makes the device writable
+# @read-write: Makes the device writable
#
# Since: 2.3
#
@@ -4932,18 +4933,18 @@
# combines blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium
# and blockdev-close-tray).
#
-# @device: Block device name (deprecated, use @id instead)
+# @device: Block device name (deprecated, use @id instead)
#
-# @id: The name or QOM path of the guest device
-# (since: 2.8)
+# @id: The name or QOM path of the guest device
+# (since: 2.8)
#
-# @filename: filename of the new image to be loaded
+# @filename: filename of the new image to be loaded
#
-# @format: format to open the new image with (defaults to
-# the probed format)
+# @format: format to open the new image with (defaults to
+# the probed format)
#
-# @read-only-mode: change the read-only mode of the device; defaults
-# to 'retain'
+# @read-only-mode: change the read-only mode of the device; defaults
+# to 'retain'
#
# Since: 2.5
#
@@ -5028,8 +5029,8 @@
# the access size
#
# @fatal: if set, the image is marked corrupt and therefore unusable after this
-# event and must be repaired (Since 2.2; before, every
-# BLOCK_IMAGE_CORRUPTED event was fatal)
+# event and must be repaired (Since 2.2; before, every
+# BLOCK_IMAGE_CORRUPTED event was fatal)
#
# Note: If action is "stop", a STOP event will eventually follow the
# BLOCK_IO_ERROR event.
@@ -5077,10 +5078,10 @@
#
# @reason: human readable string describing the error cause.
# (This field is a debugging aid for humans, it should not
-# be parsed by applications) (since: 2.2)
+# be parsed by applications) (since: 2.2)
#
# Note: If action is "stop", a STOP event will eventually follow the
-# BLOCK_IO_ERROR event
+# BLOCK_IO_ERROR event
#
# Since: 0.13.0
#
@@ -5222,7 +5223,7 @@
# @speed: rate limit, bytes per second
#
# Note: The "ready to complete" status is always reset by a @BLOCK_JOB_ERROR
-# event
+# event
#
# Since: 1.3
#
@@ -5356,15 +5357,15 @@
# @node: the name of the node that will be added.
#
# Note: this command is experimental, and its API is not stable. It
-# does not support all kinds of operations, all kinds of children, nor
-# all block drivers.
+# does not support all kinds of operations, all kinds of children, nor
+# all block drivers.
#
-# FIXME Removing children from a quorum node means introducing gaps in the
-# child indices. This cannot be represented in the 'children' list of
-# BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
+# FIXME Removing children from a quorum node means introducing gaps in the
+# child indices. This cannot be represented in the 'children' list of
+# BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
#
-# Warning: The data in a new quorum child MUST be consistent with that of
-# the rest of the array.
+# Warning: The data in a new quorum child MUST be consistent with that of
+# the rest of the array.
#
# Since: 2.7
#
@@ -5411,7 +5412,7 @@
# is already attached
#
# Note: this command is experimental and intended for test cases that need
-# control over IOThreads only.
+# control over IOThreads only.
#
# Since: 2.12
#
diff --git a/qapi/block.json b/qapi/block.json
index 7898104dae..da19834db4 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -115,15 +115,12 @@
#
# For the arguments, see the documentation of BlockdevSnapshotInternal.
#
-# Returns: nothing on success
-#
-# If @device is not a valid block device, GenericError
-#
-# If any snapshot matching @name exists, or @name is empty,
-# GenericError
-#
-# If the format of the image used does not support it,
-# BlockFormatFeatureNotSupported
+# Returns: - nothing on success
+# - If @device is not a valid block device, GenericError
+# - If any snapshot matching @name exists, or @name is empty,
+# GenericError
+# - If the format of the image used does not support it,
+# BlockFormatFeatureNotSupported
#
# Since: 1.7
#
@@ -154,12 +151,12 @@
#
# @name: optional the snapshot's name to be deleted
#
-# Returns: SnapshotInfo on success
-# If @device is not a valid block device, GenericError
-# If snapshot not found, GenericError
-# If the format of the image used does not support it,
-# BlockFormatFeatureNotSupported
-# If @id and @name are both not specified, GenericError
+# Returns: - SnapshotInfo on success
+# - If @device is not a valid block device, GenericError
+# - If snapshot not found, GenericError
+# - If the format of the image used does not support it,
+# BlockFormatFeatureNotSupported
+# - If @id and @name are both not specified, GenericError
#
# Since: 1.7
#
@@ -190,17 +187,15 @@
#
# Ejects a device from a removable drive.
#
-# @device: Block device name (deprecated, use @id instead)
-#
-# @id: The name or QOM path of the guest device (since: 2.8)
-#
-# @force: If true, eject regardless of whether the drive is locked.
-# If not specified, the default value is false.
+# @device: Block device name (deprecated, use @id instead)
#
-# Returns: Nothing on success
+# @id: The name or QOM path of the guest device (since: 2.8)
#
-# If @device is not a valid block device, DeviceNotFound
+# @force: If true, eject regardless of whether the drive is locked.
+# If not specified, the default value is false.
#
+# Returns: - Nothing on success
+# - If @device is not a valid block device, DeviceNotFound
# Notes: Ejecting a device with no media results in success
#
# Since: 0.14.0
@@ -254,7 +249,7 @@
# (Since 5.0)
#
# @writable: Whether clients should be able to write to the device via the
-# NBD connection (default false).
+# NBD connection (default false).
#
# @bitmap: Also export the dirty bitmap reachable from @device, so the
# NBD client can use NBD_OPT_SET_META_CONTEXT with
@@ -281,10 +276,10 @@
# Potential additional modes to be added in the future:
#
# hide: Just hide export from new clients, leave existing connections as is.
-# Remove export after all clients are disconnected.
+# Remove export after all clients are disconnected.
#
# soft: Hide export from new clients, answer with ESHUTDOWN for all further
-# requests from existing clients.
+# requests from existing clients.
#
# Since: 2.12
##
diff --git a/qapi/char.json b/qapi/char.json
index a6e81ac7bc..6907b2bfdb 100644
--- a/qapi/char.json
+++ b/qapi/char.json
@@ -133,6 +133,7 @@
# @data: data to write
#
# @format: data encoding (default 'utf8').
+#
# - base64: data must be base64 encoded text. Its binary
# decoding gets written.
# - utf8: data's UTF-8 encoding is written
@@ -167,6 +168,7 @@
# @size: how many bytes to read at most
#
# @format: data encoding (default 'utf8').
+#
# - base64: the data read is returned in base64 encoding.
# - utf8: the data read is interpreted as UTF-8.
# Bug: can screw up when the buffer contains invalid UTF-8
@@ -262,11 +264,11 @@
# @tn3270: enable tn3270 protocol on server
# sockets (default: false) (Since: 2.10)
# @websocket: enable websocket protocol on server
-# sockets (default: false) (Since: 3.1)
+# sockets (default: false) (Since: 3.1)
# @reconnect: For a client socket, if a socket is disconnected,
-# then attempt a reconnect after the given number of seconds.
-# Setting this to zero disables this function. (default: 0)
-# (Since: 2.2)
+# then attempt a reconnect after the given number of seconds.
+# Setting this to zero disables this function. (default: 0)
+# (Since: 2.2)
#
# Since: 1.4
##
diff --git a/qapi/dump.json b/qapi/dump.json
index 2b35409a7b..a1eed7b15c 100644
--- a/qapi/dump.json
+++ b/qapi/dump.json
@@ -38,8 +38,8 @@
# using gdb to process the core file.
#
# IMPORTANT: this option can make QEMU allocate several gigabytes
-# of RAM. This can happen for a large guest, or a
-# malicious guest pretending to be large.
+# of RAM. This can happen for a large guest, or a
+# malicious guest pretending to be large.
#
# Also, paging=true has the following limitations:
#
diff --git a/qapi/introspect.json b/qapi/introspect.json
index 031a954fa9..8756e7920e 100644
--- a/qapi/introspect.json
+++ b/qapi/introspect.json
@@ -34,15 +34,15 @@
# alternate that includes the original type alongside something else.
#
# Returns: array of @SchemaInfo, where each element describes an
-# entity in the ABI: command, event, type, ...
+# entity in the ABI: command, event, type, ...
#
-# The order of the various SchemaInfo is unspecified; however, all
-# names are guaranteed to be unique (no name will be duplicated with
-# different meta-types).
+# The order of the various SchemaInfo is unspecified; however, all
+# names are guaranteed to be unique (no name will be duplicated with
+# different meta-types).
#
# Note: the QAPI schema is also used to help define *internal*
-# interfaces, by defining QAPI types. These are not part of the QMP
-# wire ABI, and therefore not returned by this command.
+# interfaces, by defining QAPI types. These are not part of the QMP
+# wire ABI, and therefore not returned by this command.
#
# Since: 2.5
##
diff --git a/qapi/job.json b/qapi/job.json
index a121b615fb..5e658281f5 100644
--- a/qapi/job.json
+++ b/qapi/job.json
@@ -214,28 +214,28 @@
#
# Information about a job.
#
-# @id: The job identifier
+# @id: The job identifier
#
-# @type: The kind of job that is being performed
+# @type: The kind of job that is being performed
#
-# @status: Current job state/status
+# @status: Current job state/status
#
-# @current-progress: Progress made until now. The unit is arbitrary and the
-# value can only meaningfully be used for the ratio of
-# @current-progress to @total-progress. The value is
-# monotonically increasing.
+# @current-progress: Progress made until now. The unit is arbitrary and the
+# value can only meaningfully be used for the ratio of
+# @current-progress to @total-progress. The value is
+# monotonically increasing.
#
-# @total-progress: Estimated @current-progress value at the completion of
-# the job. This value can arbitrarily change while the
-# job is running, in both directions.
+# @total-progress: Estimated @current-progress value at the completion of
+# the job. This value can arbitrarily change while the
+# job is running, in both directions.
#
-# @error: If this field is present, the job failed; if it is
-# still missing in the CONCLUDED state, this indicates
-# successful completion.
+# @error: If this field is present, the job failed; if it is
+# still missing in the CONCLUDED state, this indicates
+# successful completion.
#
-# The value is a human-readable error message to describe
-# the reason for the job failure. It should not be parsed
-# by applications.
+# The value is a human-readable error message to describe
+# the reason for the job failure. It should not be parsed
+# by applications.
#
# Since: 3.0
##
diff --git a/qapi/machine-target.json b/qapi/machine-target.json
index 0462322472..f2c82949d8 100644
--- a/qapi/machine-target.json
+++ b/qapi/machine-target.json
@@ -40,13 +40,13 @@
# model details.
#
# Note: When a non-migration-safe CPU model is expanded in static mode, some
-# features enabled by the CPU model may be omitted, because they can't be
-# implemented by a static CPU model definition (e.g. cache info passthrough and
-# PMU passthrough in x86). If you need an accurate representation of the
-# features enabled by a non-migration-safe CPU model, use @full. If you need a
-# static representation that will keep ABI compatibility even when changing QEMU
-# version or machine-type, use @static (but keep in mind that some features may
-# be omitted).
+# features enabled by the CPU model may be omitted, because they can't be
+# implemented by a static CPU model definition (e.g. cache info passthrough and
+# PMU passthrough in x86). If you need an accurate representation of the
+# features enabled by a non-migration-safe CPU model, use @full. If you need a
+# static representation that will keep ABI compatibility even when changing QEMU
+# version or machine-type, use @static (but keep in mind that some features may
+# be omitted).
#
# Since: 2.8.0
##
@@ -148,7 +148,7 @@
# with wrong types.
#
# Note: this command isn't specific to s390x, but is only implemented
-# on this architecture currently.
+# on this architecture currently.
#
# Since: 2.8.0
##
@@ -191,7 +191,7 @@
# with wrong types.
#
# Note: this command isn't specific to s390x, but is only implemented
-# on this architecture currently.
+# on this architecture currently.
#
# Since: 2.8.0
##
diff --git a/qapi/machine.json b/qapi/machine.json
index b3d30bc816..6c11e3cf3a 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -20,8 +20,6 @@
# prefix to produce the corresponding QEMU executable name. This
# is true even for "qemu-system-x86_64".
#
-# ppcemb: dropped in 3.1
-#
# Since: 3.0
##
{ 'enum' : 'SysEmuTarget',
@@ -680,7 +678,7 @@
# 5.2.27.5: Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
#
# @none: None (no memory side cache in this proximity domain,
-# or cache write policy unknown)
+# or cache write policy unknown)
#
# @write-back: Write Back (WB)
#
@@ -706,7 +704,7 @@
# @level: the cache level described in this structure.
#
# @associativity: the cache associativity,
-# none/direct-mapped/complex(complex cache indexing).
+# none/direct-mapped/complex(complex cache indexing).
#
# @policy: the write policy, none/write-back/write-through.
#
@@ -823,10 +821,10 @@
# @core-id: core number within die the CPU belongs to# @thread-id: thread number within core the CPU belongs to
#
# Note: currently there are 5 properties that could be present
-# but management should be prepared to pass through other
-# properties with device_add command to allow for future
-# interface extension. This also requires the filed names to be kept in
-# sync with the properties passed to -device/device_add.
+# but management should be prepared to pass through other
+# properties with device_add command to allow for future
+# interface extension. This also requires the filed names to be kept in
+# sync with the properties passed to -device/device_add.
#
# Since: 2.7
##
diff --git a/qapi/migration.json b/qapi/migration.json
index b7348d0c8b..52f3429969 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -28,22 +28,22 @@
# @normal-bytes: number of normal bytes sent (since 1.2)
#
# @dirty-pages-rate: number of pages dirtied by second by the
-# guest (since 1.3)
+# guest (since 1.3)
#
# @mbps: throughput in megabits/sec. (since 1.6)
#
# @dirty-sync-count: number of times that dirty ram was synchronized (since 2.1)
#
# @postcopy-requests: The number of page requests received from the destination
-# (since 2.7)
+# (since 2.7)
#
# @page-size: The number of bytes per page for the various page-based
-# statistics (since 2.10)
+# statistics (since 2.10)
#
# @multifd-bytes: The number of bytes sent through multifd (since 3.0)
#
# @pages-per-second: the number of memory pages transferred per second
-# (Since 4.0)
+# (Since 4.0)
#
# Since: 0.14.0
##
@@ -98,7 +98,7 @@
##
{ 'struct': 'CompressionStats',
'data': {'pages': 'int', 'busy': 'int', 'busy-rate': 'number',
- 'compressed-size': 'int', 'compression-rate': 'number' } }
+ 'compressed-size': 'int', 'compression-rate': 'number' } }
##
# @MigrationStatus:
@@ -131,7 +131,7 @@
# @pre-switchover: Paused before device serialisation. (since 2.11)
#
# @device: During device serialisation when pause-before-switchover is enabled
-# (since 2.11)
+# (since 2.11)
#
# @wait-unplug: wait for device unplug request by guest OS to be completed.
# (since 4.2)
@@ -167,41 +167,41 @@
# status is 'active' or 'completed' (since 1.2)
#
# @total-time: total amount of milliseconds since migration started.
-# If migration has ended, it returns the total migration
-# time. (since 1.2)
+# If migration has ended, it returns the total migration
+# time. (since 1.2)
#
# @downtime: only present when migration finishes correctly
-# total downtime in milliseconds for the guest.
-# (since 1.3)
+# total downtime in milliseconds for the guest.
+# (since 1.3)
#
# @expected-downtime: only present while migration is active
-# expected downtime in milliseconds for the guest in last walk
-# of the dirty bitmap. (since 1.3)
+# expected downtime in milliseconds for the guest in last walk
+# of the dirty bitmap. (since 1.3)
#
-# @setup-time: amount of setup time in milliseconds _before_ the
-# iterations begin but _after_ the QMP command is issued. This is designed
-# to provide an accounting of any activities (such as RDMA pinning) which
-# may be expensive, but do not actually occur during the iterative
-# migration rounds themselves. (since 1.6)
+# @setup-time: amount of setup time in milliseconds *before* the
+# iterations begin but *after* the QMP command is issued. This is designed
+# to provide an accounting of any activities (such as RDMA pinning) which
+# may be expensive, but do not actually occur during the iterative
+# migration rounds themselves. (since 1.6)
#
# @cpu-throttle-percentage: percentage of time guest cpus are being
-# throttled during auto-converge. This is only present when auto-converge
-# has started throttling guest cpus. (Since 2.7)
+# throttled during auto-converge. This is only present when auto-converge
+# has started throttling guest cpus. (Since 2.7)
#
# @error-desc: the human readable error description string, when
# @status is 'failed'. Clients should not attempt to parse the
# error strings. (Since 2.7)
#
# @postcopy-blocktime: total time when all vCPU were blocked during postcopy
-# live migration. This is only present when the postcopy-blocktime
-# migration capability is enabled. (Since 3.0)
+# live migration. This is only present when the postcopy-blocktime
+# migration capability is enabled. (Since 3.0)
#
# @postcopy-vcpu-blocktime: list of the postcopy blocktime per vCPU. This is
-# only present when the postcopy-blocktime migration capability
-# is enabled. (Since 3.0)
+# only present when the postcopy-blocktime migration capability
+# is enabled. (Since 3.0)
#
# @compression: migration compression statistics, only returned if compression
-# feature is on and status is 'active' or 'completed' (Since 3.1)
+# feature is on and status is 'active' or 'completed' (Since 3.1)
#
# @socket-address: Only used for tcp, to know what the real port is (Since 4.0)
#
@@ -355,54 +355,54 @@
# loads, by sending compressed difference of the pages
#
# @rdma-pin-all: Controls whether or not the entire VM memory footprint is
-# mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage.
-# Disabled by default. (since 2.0)
+# mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage.
+# Disabled by default. (since 2.0)
#
# @zero-blocks: During storage migration encode blocks of zeroes efficiently. This
-# essentially saves 1MB of zeroes per block on the wire. Enabling requires
-# source and target VM to support this feature. To enable it is sufficient
-# to enable the capability on the source VM. The feature is disabled by
-# default. (since 1.6)
+# essentially saves 1MB of zeroes per block on the wire. Enabling requires
+# source and target VM to support this feature. To enable it is sufficient
+# to enable the capability on the source VM. The feature is disabled by
+# default. (since 1.6)
#
# @compress: Use multiple compression threads to accelerate live migration.
-# This feature can help to reduce the migration traffic, by sending
-# compressed pages. Please note that if compress and xbzrle are both
-# on, compress only takes effect in the ram bulk stage, after that,
-# it will be disabled and only xbzrle takes effect, this can help to
-# minimize migration traffic. The feature is disabled by default.
-# (since 2.4 )
+# This feature can help to reduce the migration traffic, by sending
+# compressed pages. Please note that if compress and xbzrle are both
+# on, compress only takes effect in the ram bulk stage, after that,
+# it will be disabled and only xbzrle takes effect, this can help to
+# minimize migration traffic. The feature is disabled by default.
+# (since 2.4 )
#
# @events: generate events for each migration state change
# (since 2.4 )
#
# @auto-converge: If enabled, QEMU will automatically throttle down the guest
-# to speed up convergence of RAM migration. (since 1.6)
+# to speed up convergence of RAM migration. (since 1.6)
#
# @postcopy-ram: Start executing on the migration target before all of RAM has
-# been migrated, pulling the remaining pages along as needed. The
-# capacity must have the same setting on both source and target
-# or migration will not even start. NOTE: If the migration fails during
-# postcopy the VM will fail. (since 2.6)
+# been migrated, pulling the remaining pages along as needed. The
+# capacity must have the same setting on both source and target
+# or migration will not even start. NOTE: If the migration fails during
+# postcopy the VM will fail. (since 2.6)
#
# @x-colo: If enabled, migration will never end, and the state of the VM on the
-# primary side will be migrated continuously to the VM on secondary
-# side, this process is called COarse-Grain LOck Stepping (COLO) for
-# Non-stop Service. (since 2.8)
+# primary side will be migrated continuously to the VM on secondary
+# side, this process is called COarse-Grain LOck Stepping (COLO) for
+# Non-stop Service. (since 2.8)
#
# @release-ram: if enabled, qemu will free the migrated ram pages on the source
-# during postcopy-ram migration. (since 2.9)
+# during postcopy-ram migration. (since 2.9)
#
# @block: If enabled, QEMU will also migrate the contents of all block
-# devices. Default is disabled. A possible alternative uses
-# mirror jobs to a builtin NBD server on the destination, which
-# offers more flexibility.
-# (Since 2.10)
+# devices. Default is disabled. A possible alternative uses
+# mirror jobs to a builtin NBD server on the destination, which
+# offers more flexibility.
+# (Since 2.10)
#
# @return-path: If enabled, migration will use the return path even
# for precopy. (since 2.10)
#
# @pause-before-switchover: Pause outgoing migration before serialising device
-# state and before disabling block IO (since 2.11)
+# state and before disabling block IO (since 2.11)
#
# @multifd: Use more than one fd for migration (since 4.0)
#
@@ -410,11 +410,11 @@
# (since 2.12)
#
# @postcopy-blocktime: Calculate downtime for postcopy live migration
-# (since 3.0)
+# (since 3.0)
#
# @late-block-activate: If enabled, the destination will not activate block
-# devices (and thus take locks) immediately at the end of migration.
-# (since 3.0)
+# devices (and thus take locks) immediately at the end of migration.
+# (since 3.0)
#
# @x-ignore-shared: If enabled, QEMU will not migrate shared memory (since 4.0)
#
@@ -494,24 +494,24 @@
# Migration parameters enumeration
#
# @announce-initial: Initial delay (in milliseconds) before sending the first
-# announce (Since 4.0)
+# announce (Since 4.0)
#
# @announce-max: Maximum delay (in milliseconds) between packets in the
-# announcement (Since 4.0)
+# announcement (Since 4.0)
#
# @announce-rounds: Number of self-announce packets sent after migration
-# (Since 4.0)
+# (Since 4.0)
#
# @announce-step: Increase in delay (in milliseconds) between subsequent
-# packets in the announcement (Since 4.0)
+# packets in the announcement (Since 4.0)
#
# @compress-level: Set the compression level to be used in live migration,
-# the compression level is an integer between 0 and 9, where 0 means
-# no compression, 1 means the best compression speed, and 9 means best
-# compression ratio which will consume more CPU.
+# the compression level is an integer between 0 and 9, where 0 means
+# no compression, 1 means the best compression speed, and 9 means best
+# compression ratio which will consume more CPU.
#
# @compress-threads: Set compression thread count to be used in live migration,
-# the compression thread count is an integer between 1 and 255.
+# the compression thread count is an integer between 1 and 255.
#
# @compress-wait-thread: Controls behavior when all compression threads are
# currently busy. If true (default), wait for a free
@@ -519,10 +519,10 @@
# send the page uncompressed. (Since 3.1)
#
# @decompress-threads: Set decompression thread count to be used in live
-# migration, the decompression thread count is an integer between 1
-# and 255. Usually, decompression is at least 4 times as fast as
-# compression, so set the decompress-threads to the number about 1/4
-# of compress-threads is adequate.
+# migration, the decompression thread count is an integer between 1
+# and 255. Usually, decompression is at least 4 times as fast as
+# compression, so set the decompress-threads to the number about 1/4
+# of compress-threads is adequate.
#
# @cpu-throttle-initial: Initial percentage of time guest cpus are throttled
# when migration auto-converge is activated. The
@@ -560,14 +560,14 @@
# downtime in milliseconds (Since 2.8)
#
# @x-checkpoint-delay: The delay time (in ms) between two COLO checkpoints in
-# periodic mode. (Since 2.8)
+# periodic mode. (Since 2.8)
#
# @block-incremental: Affects how much storage is migrated when the
-# block migration capability is enabled. When false, the entire
-# storage backing chain is migrated into a flattened image at
-# the destination; when true, only the active qcow2 layer is
-# migrated and the destination must already have access to the
-# same backing chain as was used on the source. (since 2.10)
+# block migration capability is enabled. When false, the entire
+# storage backing chain is migrated into a flattened image at
+# the destination; when true, only the active qcow2 layer is
+# migrated and the destination must already have access to the
+# same backing chain as was used on the source. (since 2.10)
#
# @multifd-channels: Number of channels used to migrate data in
# parallel. This is the same number that the
@@ -580,8 +580,8 @@
# (Since 2.11)
#
# @max-postcopy-bandwidth: Background transfer bandwidth during postcopy.
-# Defaults to 0 (unlimited). In bytes per second.
-# (Since 3.0)
+# Defaults to 0 (unlimited). In bytes per second.
+# (Since 3.0)
#
# @max-cpu-throttle: maximum cpu throttle percentage.
# Defaults to 99. (Since 3.1)
@@ -604,16 +604,16 @@
# @MigrateSetParameters:
#
# @announce-initial: Initial delay (in milliseconds) before sending the first
-# announce (Since 4.0)
+# announce (Since 4.0)
#
# @announce-max: Maximum delay (in milliseconds) between packets in the
-# announcement (Since 4.0)
+# announcement (Since 4.0)
#
# @announce-rounds: Number of self-announce packets sent after migration
-# (Since 4.0)
+# (Since 4.0)
#
# @announce-step: Increase in delay (in milliseconds) between subsequent
-# packets in the announcement (Since 4.0)
+# packets in the announcement (Since 4.0)
#
# @compress-level: compression level
#
@@ -665,11 +665,11 @@
# @x-checkpoint-delay: the delay time between two COLO checkpoints. (Since 2.8)
#
# @block-incremental: Affects how much storage is migrated when the
-# block migration capability is enabled. When false, the entire
-# storage backing chain is migrated into a flattened image at
-# the destination; when true, only the active qcow2 layer is
-# migrated and the destination must already have access to the
-# same backing chain as was used on the source. (since 2.10)
+# block migration capability is enabled. When false, the entire
+# storage backing chain is migrated into a flattened image at
+# the destination; when true, only the active qcow2 layer is
+# migrated and the destination must already have access to the
+# same backing chain as was used on the source. (since 2.10)
#
# @multifd-channels: Number of channels used to migrate data in
# parallel. This is the same number that the
@@ -682,8 +682,8 @@
# (Since 2.11)
#
# @max-postcopy-bandwidth: Background transfer bandwidth during postcopy.
-# Defaults to 0 (unlimited). In bytes per second.
-# (Since 3.0)
+# Defaults to 0 (unlimited). In bytes per second.
+# (Since 3.0)
#
# @max-cpu-throttle: maximum cpu throttle percentage.
# The default value is 99. (Since 3.1)
@@ -713,7 +713,7 @@
'*multifd-channels': 'int',
'*xbzrle-cache-size': 'size',
'*max-postcopy-bandwidth': 'size',
- '*max-cpu-throttle': 'int' } }
+ '*max-cpu-throttle': 'int' } }
##
# @migrate-set-parameters:
@@ -737,16 +737,16 @@
# The optional members aren't actually optional.
#
# @announce-initial: Initial delay (in milliseconds) before sending the
-# first announce (Since 4.0)
+# first announce (Since 4.0)
#
# @announce-max: Maximum delay (in milliseconds) between packets in the
-# announcement (Since 4.0)
+# announcement (Since 4.0)
#
# @announce-rounds: Number of self-announce packets sent after migration
-# (Since 4.0)
+# (Since 4.0)
#
# @announce-step: Increase in delay (in milliseconds) between subsequent
-# packets in the announcement (Since 4.0)
+# packets in the announcement (Since 4.0)
#
# @compress-level: compression level
#
@@ -799,11 +799,11 @@
# @x-checkpoint-delay: the delay time between two COLO checkpoints. (Since 2.8)
#
# @block-incremental: Affects how much storage is migrated when the
-# block migration capability is enabled. When false, the entire
-# storage backing chain is migrated into a flattened image at
-# the destination; when true, only the active qcow2 layer is
-# migrated and the destination must already have access to the
-# same backing chain as was used on the source. (since 2.10)
+# block migration capability is enabled. When false, the entire
+# storage backing chain is migrated into a flattened image at
+# the destination; when true, only the active qcow2 layer is
+# migrated and the destination must already have access to the
+# same backing chain as was used on the source. (since 2.10)
#
# @multifd-channels: Number of channels used to migrate data in
# parallel. This is the same number that the
@@ -816,12 +816,12 @@
# (Since 2.11)
#
# @max-postcopy-bandwidth: Background transfer bandwidth during postcopy.
-# Defaults to 0 (unlimited). In bytes per second.
-# (Since 3.0)
+# Defaults to 0 (unlimited). In bytes per second.
+# (Since 3.0)
#
# @max-cpu-throttle: maximum cpu throttle percentage.
# Defaults to 99.
-# (Since 3.1)
+# (Since 3.1)
#
# Since: 2.4
##
@@ -845,7 +845,7 @@
'*block-incremental': 'bool' ,
'*multifd-channels': 'uint8',
'*xbzrle-cache-size': 'size',
- '*max-postcopy-bandwidth': 'size',
+ '*max-postcopy-bandwidth': 'size',
'*max-cpu-throttle':'uint8'} }
##
@@ -1047,8 +1047,8 @@
# The reason for a COLO exit.
#
# @none: failover has never happened. This state does not occur
-# in the COLO_EXIT event, and is only visible in the result of
-# query-colo-status.
+# in the COLO_EXIT event, and is only visible in the result of
+# query-colo-status.
#
# @request: COLO exit is due to an external request.
#
@@ -1281,11 +1281,11 @@
# of the VM are not saved by this command.
#
# @filename: the file to save the state of the devices to as binary
-# data. See xen-save-devices-state.txt for a description of the binary
-# format.
+# data. See xen-save-devices-state.txt for a description of the binary
+# format.
#
# @live: Optional argument to ask QEMU to treat this command as part of a live
-# migration. Default to true. (since 2.11)
+# migration. Default to true. (since 2.11)
#
# Returns: Nothing on success
#
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index a00fd821eb..dee3b45930 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -230,14 +230,14 @@
# QEMU/KVM software version, but also decided by the hardware that
# the program is running upon.
#
-# @version: version of GIC to be described. Currently, only 2 and 3
-# are supported.
+# @version: version of GIC to be described. Currently, only 2 and 3
+# are supported.
#
# @emulated: whether current QEMU/hardware supports emulated GIC
# device in user space.
#
-# @kernel: whether current QEMU/hardware supports hardware
-# accelerated GIC device in kernel.
+# @kernel: whether current QEMU/hardware supports hardware
+# accelerated GIC device in kernel.
#
# Since: 2.6
##
diff --git a/qapi/misc.json b/qapi/misc.json
index 33b94e3589..af00279e7b 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -14,11 +14,11 @@
#
# Arguments:
#
-# @enable: An optional list of QMPCapability values to enable. The
-# client must not enable any capability that is not
-# mentioned in the QMP greeting message. If the field is not
-# provided, it means no QMP capabilities will be enabled.
-# (since 2.12)
+# @enable: An optional list of QMPCapability values to enable. The
+# client must not enable any capability that is not
+# mentioned in the QMP greeting message. If the field is not
+# provided, it means no QMP capabilities will be enabled.
+# (since 2.12)
#
# Example:
#
@@ -27,11 +27,11 @@
# <- { "return": {} }
#
# Notes: This command is valid exactly when first connecting: it must be
-# issued before any other command will be accepted, and will fail once the
-# monitor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
+# issued before any other command will be accepted, and will fail once the
+# monitor is accepting other commands. (see qemu docs/interop/qmp-spec.txt)
#
-# The QMP client needs to explicitly enable QMP capabilities, otherwise
-# all the QMP capabilities will be turned off by default.
+# The QMP client needs to explicitly enable QMP capabilities, otherwise
+# all the QMP capabilities will be turned off by default.
#
# Since: 0.13
#
@@ -46,8 +46,8 @@
# Enumeration of capabilities to be advertised during initial client
# connection, used for agreeing on particular QMP extension behaviors.
#
-# @oob: QMP ability to support out-of-band requests.
-# (Please refer to qmp-spec.txt for more information on OOB)
+# @oob: QMP ability to support out-of-band requests.
+# (Please refer to qmp-spec.txt for more information on OOB)
#
# Since: 2.12
#
@@ -60,11 +60,11 @@
#
# A three-part version number.
#
-# @major: The major version number.
+# @major: The major version number.
#
-# @minor: The minor version number.
+# @minor: The minor version number.
#
-# @micro: The micro version number.
+# @micro: The micro version number.
#
# Since: 2.4
##
@@ -77,16 +77,16 @@
#
# A description of QEMU's version.
#
-# @qemu: The version of QEMU. By current convention, a micro
-# version of 50 signifies a development branch. A micro version
-# greater than or equal to 90 signifies a release candidate for
-# the next minor version. A micro version of less than 50
-# signifies a stable release.
+# @qemu: The version of QEMU. By current convention, a micro
+# version of 50 signifies a development branch. A micro version
+# greater than or equal to 90 signifies a release candidate for
+# the next minor version. A micro version of less than 50
+# signifies a stable release.
#
-# @package: QEMU will always set this field to an empty string. Downstream
-# versions of QEMU should set this to a non-empty string. The
-# exact format depends on the downstream however it highly
-# recommended that a unique name is used.
+# @package: QEMU will always set this field to an empty string. Downstream
+# versions of QEMU should set this to a non-empty string. The
+# exact format depends on the downstream however it highly
+# recommended that a unique name is used.
#
# Since: 0.14.0
##
@@ -98,7 +98,7 @@
#
# Returns the current version of QEMU.
#
-# Returns: A @VersionInfo object describing the current version of QEMU.
+# Returns: A @VersionInfo object describing the current version of QEMU.
#
# Since: 0.14.0
#
@@ -163,17 +163,29 @@
##
# @LostTickPolicy:
#
-# Policy for handling lost ticks in timer devices.
-#
-# @discard: throw away the missed tick(s) and continue with future injection
-# normally. Guest time may be delayed, unless the OS has explicit
-# handling of lost ticks
-#
-# @delay: continue to deliver ticks at the normal rate. Guest time will be
-# delayed due to the late tick
-#
-# @slew: deliver ticks at a higher rate to catch up with the missed tick. The
-# guest time should not be delayed once catchup is complete.
+# Policy for handling lost ticks in timer devices. Ticks end up getting
+# lost when, for example, the guest is paused.
+#
+# @discard: throw away the missed ticks and continue with future injection
+# normally. The guest OS will see the timer jump ahead by a
+# potentially quite significant amount all at once, as if the
+# intervening chunk of time had simply not existed; needless to
+# say, such a sudden jump can easily confuse a guest OS which is
+# not specifically prepared to deal with it. Assuming the guest
+# OS can deal correctly with the time jump, the time in the guest
+# and in the host should now match.
+#
+# @delay: continue to deliver ticks at the normal rate. The guest OS will
+# not notice anything is amiss, as from its point of view time will
+# have continued to flow normally. The time in the guest should now
+# be behind the time in the host by exactly the amount of time during
+# which ticks have been missed.
+#
+# @slew: deliver ticks at a higher rate to catch up with the missed ticks.
+# The guest OS will not notice anything is amiss, as from its point
+# of view time will have continued to flow normally. Once the timer
+# has managed to catch up with all the missing ticks, the time in
+# the guest and in the host should match.
#
# Since: 2.0
##
@@ -321,7 +333,7 @@
# Since: 1.2.0
#
# Note: This command is deprecated, because its output doesn't reflect
-# compile-time configuration. Use query-qmp-schema instead.
+# compile-time configuration. Use query-qmp-schema instead.
#
# Example:
#
@@ -375,8 +387,8 @@
# Returns a list of information about each iothread.
#
# Note: this list excludes the QEMU main loop thread, which is not declared
-# using the -object iothread command-line option. It is always the main thread
-# of the process.
+# using the -object iothread command-line option. It is always the main thread
+# of the process.
#
# Returns: a list of @IOThreadInfo for each iothread
#
@@ -418,12 +430,10 @@
#
# Return information about the balloon device.
#
-# Returns: @BalloonInfo on success
-#
-# If the balloon driver is enabled but not functional because the KVM
-# kernel module cannot support it, KvmMissingCap
-#
-# If no balloon device is present, DeviceNotActive
+# Returns: - @BalloonInfo on success
+# - If the balloon driver is enabled but not functional because the KVM
+# kernel module cannot support it, KvmMissingCap
+# - If no balloon device is present, DeviceNotActive
#
# Since: 0.14.0
#
@@ -480,8 +490,8 @@
#
# @bar: the index of the Base Address Register for this region
#
-# @type: 'io' if the region is a PIO region
-# 'memory' if the region is a MMIO region
+# @type: - 'io' if the region is a PIO region
+# - 'memory' if the region is a MMIO region
#
# @size: memory size
#
@@ -624,9 +634,9 @@
# Return information about the PCI bus topology of the guest.
#
# Returns: a list of @PciInfo for each PCI bus. Each bus is
-# represented by a json-object, which has a key with a json-array of
-# all PCI devices attached to it. Each device is represented by a
-# json-object.
+# represented by a json-object, which has a key with a json-array of
+# all PCI devices attached to it. Each device is represented by a
+# json-object.
#
# Since: 0.14.0
#
@@ -788,10 +798,10 @@
#
# Since: 0.14.0
#
-# Notes: This function will succeed even if the guest is already in the stopped
-# state. In "inmigrate" state, it will ensure that the guest
-# remains paused once migration finishes, as if the -S option was
-# passed on the command line.
+# Notes: This function will succeed even if the guest is already in the stopped
+# state. In "inmigrate" state, it will ensure that the guest
+# remains paused once migration finishes, as if the -S option was
+# passed on the command line.
#
# Example:
#
@@ -847,7 +857,7 @@
# @filename: the file to save the memory to as binary data
#
# @cpu-index: the index of the virtual CPU to use for translating the
-# virtual address (defaults to CPU 0)
+# virtual address (defaults to CPU 0)
#
# Returns: Nothing on success
#
@@ -905,11 +915,11 @@
#
# Returns: If successful, nothing
#
-# Notes: This command will succeed if the guest is currently running. It
-# will also succeed if the guest is in the "inmigrate" state; in
-# this case, the effect of the command is to make sure the guest
-# starts once migration finishes, removing the effect of the -S
-# command line option if it was passed.
+# Notes: This command will succeed if the guest is currently running. It
+# will also succeed if the guest is in the "inmigrate" state; in
+# this case, the effect of the command is to make sure the guest
+# starts once migration finishes, removing the effect of the -S
+# command line option if it was passed.
#
# Example:
#
@@ -955,7 +965,7 @@
# Returns: nothing.
#
# Note: prior to 4.0, this command does nothing in case the guest
-# isn't suspended.
+# isn't suspended.
#
# Example:
#
@@ -992,10 +1002,10 @@
#
# @value: the target size of the balloon in bytes
#
-# Returns: Nothing on success
-# If the balloon driver is enabled but not functional because the KVM
+# Returns: - Nothing on success
+# - If the balloon driver is enabled but not functional because the KVM
# kernel module cannot support it, KvmMissingCap
-# If no balloon device is present, DeviceNotActive
+# - If no balloon device is present, DeviceNotActive
#
# Notes: This command just issues a request to the guest. When it returns,
# the balloon size may not have changed. A guest can change the balloon
@@ -1069,18 +1079,18 @@
# change password command. Otherwise, this specifies a new server URI
# address to listen to for VNC connections.
#
-# @arg: If @device is a block device, then this is an optional format to open
-# the device with.
-# If @device is 'vnc' and @target is 'password', this is the new VNC
-# password to set. See change-vnc-password for additional notes.
+# @arg: If @device is a block device, then this is an optional format to open
+# the device with.
+# If @device is 'vnc' and @target is 'password', this is the new VNC
+# password to set. See change-vnc-password for additional notes.
#
-# Returns: Nothing on success.
-# If @device is not a valid block device, DeviceNotFound
+# Returns: - Nothing on success.
+# - If @device is not a valid block device, DeviceNotFound
#
-# Notes: This interface is deprecated, and it is strongly recommended that you
-# avoid using it. For changing block devices, use
-# blockdev-change-medium; for changing VNC parameters, use
-# change-vnc-password.
+# Notes: This interface is deprecated, and it is strongly recommended that you
+# avoid using it. For changing block devices, use
+# blockdev-change-medium; for changing VNC parameters, use
+# change-vnc-password.
#
# Since: 0.14.0
#
@@ -1225,11 +1235,9 @@
#
# @opaque: A free-form string that can be used to describe the fd.
#
-# Returns: @AddfdInfo on success
-#
-# If file descriptor was not received, FdNotSupplied
-#
-# If @fdset-id is a negative value, InvalidParameterValue
+# Returns: - @AddfdInfo on success
+# - If file descriptor was not received, FdNotSupplied
+# - If @fdset-id is a negative value, InvalidParameterValue
#
# Notes: The list of fd sets is shared by all monitor connections.
#
@@ -1257,8 +1265,8 @@
#
# @fd: The file descriptor that is to be removed.
#
-# Returns: Nothing on success
-# If @fdset-id or @fd is not found, FdNotFound
+# Returns: - Nothing on success
+# - If @fdset-id or @fd is not found, FdNotFound
#
# Since: 1.2.0
#
@@ -1719,8 +1727,8 @@
# of the VM are not loaded by this command.
#
# @filename: the file to load the state of the devices from as binary
-# data. See xen-save-devices-state.txt for a description of the binary
-# format.
+# data. See xen-save-devices-state.txt for a description of the binary
+# format.
#
# Since: 2.7
#
diff --git a/qapi/net.json b/qapi/net.json
index 335295be50..1cb9a7d782 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -47,9 +47,9 @@
# Additional arguments depend on the type.
#
# TODO: This command effectively bypasses QAPI completely due to its
-# "additional arguments" business. It shouldn't have been added to
-# the schema in this form. It should be qapified properly, or
-# replaced by a properly qapified command.
+# "additional arguments" business. It shouldn't have been added to
+# the schema in this form. It should be qapified properly, or
+# replaced by a properly qapified command.
#
# Since: 0.14.0
#
@@ -213,7 +213,7 @@
# @fd: file descriptor of an already opened tap
#
# @fds: multiple file descriptors of already opened multiqueue capable
-# tap
+# tap
#
# @script: script to initialize the interface
#
@@ -232,14 +232,14 @@
# @vhostfd: file descriptor of an already opened vhost net device
#
# @vhostfds: file descriptors of multiple already opened vhost net
-# devices
+# devices
#
# @vhostforce: vhost on for non-MSIX virtio guests
#
# @queues: number of queues to be created for multiqueue capable tap
#
# @poll-us: maximum number of microseconds that could
-# be spent on busy polling for tap (since 2.7)
+# be spent on busy polling for tap (since 2.7)
#
# Since: 1.2
##
@@ -446,8 +446,6 @@
# Available netdev drivers.
#
# Since: 2.7
-#
-# 'dump': dropped in 2.12
##
{ 'enum': 'NetClientDriver',
'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde',
@@ -464,7 +462,7 @@
#
# Since: 1.2
#
-# 'l2tpv3' - since 2.1
+# 'l2tpv3' - since 2.1
##
{ 'union': 'Netdev',
'base': { 'id': 'str', 'type': 'NetClientDriver' },
@@ -493,8 +491,6 @@
# @opts: device type specific properties (legacy)
#
# Since: 1.2
-#
-# 'vlan': dropped in 3.0
##
{ 'struct': 'NetLegacy',
'data': {
@@ -691,7 +687,7 @@
# Parameters for self-announce timers
#
# @initial: Initial delay (in ms) before sending the first GARP/RARP
-# announcement
+# announcement
#
# @max: Maximum delay (in ms) between GARP/RARP announcement packets
#
@@ -700,11 +696,11 @@
# @step: Delay increase (in ms) after each self-announcement attempt
#
# @interfaces: An optional list of interface names, which restricts the
-# announcement to the listed interfaces. (Since 4.1)
+# announcement to the listed interfaces. (Since 4.1)
#
# @id: A name to be used to identify an instance of announce-timers
-# and to allow it to modified later. Not for use as
-# part of the migration parameters. (Since 4.1)
+# and to allow it to modified later. Not for use as
+# part of the migration parameters. (Since 4.1)
#
# Since: 4.0
##
diff --git a/qapi/qdev.json b/qapi/qdev.json
index c6d05032f4..f4ed9735c4 100644
--- a/qapi/qdev.json
+++ b/qapi/qdev.json
@@ -19,8 +19,8 @@
# Returns: a list of ObjectPropertyInfo describing a devices properties
#
# Note: objects can create properties at runtime, for example to describe
-# links between different devices and/or objects. These properties
-# are not included in the output of this command.
+# links between different devices and/or objects. These properties
+# are not included in the output of this command.
#
# Since: 1.2
##
@@ -58,9 +58,9 @@
# <- { "return": {} }
#
# TODO: This command effectively bypasses QAPI completely due to its
-# "additional arguments" business. It shouldn't have been added to
-# the schema in this form. It should be qapified properly, or
-# replaced by a properly qapified command.
+# "additional arguments" business. It shouldn't have been added to
+# the schema in this form. It should be qapified properly, or
+# replaced by a properly qapified command.
#
# Since: 0.13
##
diff --git a/qapi/qom.json b/qapi/qom.json
index 1e3c2ad555..ecc60c4401 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -189,8 +189,8 @@
# @typename: the type name of an object
#
# Note: objects can create properties at runtime, for example to describe
-# links between different devices and/or objects. These properties
-# are not included in the output of this command.
+# links between different devices and/or objects. These properties
+# are not included in the output of this command.
#
# Returns: a list of ObjectPropertyInfo describing object properties
#
diff --git a/qapi/rocker.json b/qapi/rocker.json
index 3587661161..52597db491 100644
--- a/qapi/rocker.json
+++ b/qapi/rocker.json
@@ -140,7 +140,7 @@
# @ip-dst: IP header destination address
#
# Note: optional members may or may not appear in the flow key
-# depending if they're relevant to the flow key.
+# depending if they're relevant to the flow key.
#
# Since: 2.4
##
@@ -170,7 +170,7 @@
# @ip-tos: IP header TOS field
#
# Note: optional members may or may not appear in the flow mask
-# depending if they're relevant to the flow mask.
+# depending if they're relevant to the flow mask.
#
# Since: 2.4
##
@@ -197,7 +197,7 @@
# @out-pport: physical output port
#
# Note: optional members may or may not appear in the flow action
-# depending if they're relevant to the flow action.
+# depending if they're relevant to the flow action.
#
# Since: 2.4
##
@@ -235,7 +235,7 @@
# @name: switch name
#
# @tbl-id: flow table ID. If tbl-id is not specified, returns
-# flow information for all tables.
+# flow information for all tables.
#
# Returns: rocker OF-DPA flow information
#
@@ -291,7 +291,7 @@
# @ttl-check: perform TTL check
#
# Note: optional members may or may not appear in the group depending
-# if they're relevant to the group type.
+# if they're relevant to the group type.
#
# Since: 2.4
##
@@ -311,7 +311,7 @@
# @name: switch name
#
# @type: group type. If type is not specified, returns
-# group information for all group types.
+# group information for all group types.
#
# Returns: rocker OF-DPA group information
#
diff --git a/qapi/run-state.json b/qapi/run-state.json
index b83a436a3e..2e22907740 100644
--- a/qapi/run-state.json
+++ b/qapi/run-state.json
@@ -15,16 +15,16 @@
# @finish-migrate: guest is paused to finish the migration process
#
# @inmigrate: guest is paused waiting for an incoming migration. Note
-# that this state does not tell whether the machine will start at the
-# end of the migration. This depends on the command-line -S option and
-# any invocation of 'stop' or 'cont' that has happened since QEMU was
-# started.
+# that this state does not tell whether the machine will start at the
+# end of the migration. This depends on the command-line -S option and
+# any invocation of 'stop' or 'cont' that has happened since QEMU was
+# started.
#
# @internal-error: An internal error that prevents further guest execution
-# has occurred
+# has occurred
#
# @io-error: the last IOP has failed and the device is configured to pause
-# on I/O errors
+# on I/O errors
#
# @paused: guest has been paused via the 'stop' command
#
@@ -85,8 +85,8 @@
# @guest-panic: Guest panicked, and command line turns that into a shutdown
#
# @subsystem-reset: Partial guest reset that does not trigger QMP events and
-# ignores --no-reboot. This is useful for sanitizing
-# hypercalls on s390 that are used during kexec/kdump/boot
+# ignores --no-reboot. This is useful for sanitizing
+# hypercalls on s390 that are used during kexec/kdump/boot
#
##
{ 'enum': 'ShutdownCause',
@@ -140,13 +140,13 @@
# about to exit.
#
# @guest: If true, the shutdown was triggered by a guest request (such as
-# a guest-initiated ACPI shutdown request or other hardware-specific action)
-# rather than a host request (such as sending qemu a SIGINT). (since 2.10)
+# a guest-initiated ACPI shutdown request or other hardware-specific action)
+# rather than a host request (such as sending qemu a SIGINT). (since 2.10)
#
# @reason: The @ShutdownCause which resulted in the SHUTDOWN. (since 4.0)
#
# Note: If the command-line option "-no-shutdown" has been specified, qemu will
-# not exit, and a STOP event will eventually follow the SHUTDOWN event
+# not exit, and a STOP event will eventually follow the SHUTDOWN event
#
# Since: 0.12.0
#
@@ -180,9 +180,9 @@
# Emitted when the virtual machine is reset
#
# @guest: If true, the reset was triggered by a guest request (such as
-# a guest-initiated ACPI reboot request or other hardware-specific action)
-# rather than a host request (such as the QMP command system_reset).
-# (since 2.10)
+# a guest-initiated ACPI reboot request or other hardware-specific action)
+# rather than a host request (such as the QMP command system_reset).
+# (since 2.10)
#
# @reason: The @ShutdownCause of the RESET. (since 4.0)
#
@@ -283,7 +283,7 @@
# @action: action that has been taken
#
# Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is
-# followed respectively by the RESET, SHUTDOWN, or STOP events
+# followed respectively by the RESET, SHUTDOWN, or STOP events
#
# Note: This event is rate-limited.
#
@@ -441,12 +441,12 @@
# @disabled-wait: the CPU has entered a disabled wait state
#
# @extint-loop: clock comparator or cpu timer interrupt with new PSW enabled
-# for external interrupts
+# for external interrupts
#
# @pgmint-loop: program interrupt with BAD new PSW
#
# @opint-loop: operation exception interrupt with invalid code at the program
-# interrupt new PSW
+# interrupt new PSW
#
# Since: 2.12
##
diff --git a/qapi/sockets.json b/qapi/sockets.json
index 32375f3a36..ea933ed4b2 100644
--- a/qapi/sockets.json
+++ b/qapi/sockets.json
@@ -89,7 +89,7 @@
# @port: port
#
# Note: string types are used to allow for possible future hostname or
-# service resolution support.
+# service resolution support.
#
# Since: 2.8
##
@@ -104,9 +104,9 @@
# Captures the address of a socket, which could also be a named file descriptor
#
# Note: This type is deprecated in favor of SocketAddress. The
-# difference between SocketAddressLegacy and SocketAddress is that the
-# latter is a flat union rather than a simple union. Flat is nicer
-# because it avoids nesting on the wire, i.e. that form has fewer {}.
+# difference between SocketAddressLegacy and SocketAddress is that the
+# latter is a flat union rather than a simple union. Flat is nicer
+# because it avoids nesting on the wire, i.e. that form has fewer {}.
#
# Since: 1.3
diff --git a/qapi/tpm.json b/qapi/tpm.json
index 63878aa0f4..dc1f081739 100644
--- a/qapi/tpm.json
+++ b/qapi/tpm.json
@@ -96,8 +96,8 @@
#
# A union referencing different TPM backend types' configuration options
#
-# @type: 'passthrough' The configuration options for the TPM passthrough type
-# 'emulator' The configuration options for TPM emulator backend type
+# @type: - 'passthrough' The configuration options for the TPM passthrough type
+# - 'emulator' The configuration options for TPM emulator backend type
#
# Since: 1.5
##
diff --git a/qapi/trace.json b/qapi/trace.json
index 799b254a18..47c68f04da 100644
--- a/qapi/trace.json
+++ b/qapi/trace.json
@@ -52,14 +52,15 @@
#
# Returns: a list of @TraceEventInfo for the matching events
#
-# An event is returned if:
-# - its name matches the @name pattern, and
-# - if @vcpu is given, the event has the "vcpu" property.
+# An event is returned if:
#
-# Therefore, if @vcpu is given, the operation will only match per-vCPU events,
-# returning their state on the specified vCPU. Special case: if @name is an
-# exact match, @vcpu is given and the event does not have the "vcpu" property,
-# an error is returned.
+# - its name matches the @name pattern, and
+# - if @vcpu is given, the event has the "vcpu" property.
+#
+# Therefore, if @vcpu is given, the operation will only match per-vCPU events,
+# returning their state on the specified vCPU. Special case: if @name is an
+# exact match, @vcpu is given and the event does not have the "vcpu" property,
+# an error is returned.
#
# Since: 2.2
#
diff --git a/qapi/transaction.json b/qapi/transaction.json
index 0590dbcd1a..04301f1be7 100644
--- a/qapi/transaction.json
+++ b/qapi/transaction.json
@@ -132,8 +132,8 @@
# Errors depend on the operations of the transaction
#
# Note: The transaction aborts on the first failure. Therefore, there will be
-# information on only one failed operation returned in an error condition, and
-# subsequent actions will not have been attempted.
+# information on only one failed operation returned in an error condition, and
+# subsequent actions will not have been attempted.
#
# Since: 1.1
#
diff --git a/qapi/ui.json b/qapi/ui.json
index f8c803fe43..e16e98a060 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -12,19 +12,19 @@
#
# Sets the password of a remote display session.
#
-# @protocol: `vnc' to modify the VNC server password
-# `spice' to modify the Spice server password
+# @protocol: - 'vnc' to modify the VNC server password
+# - 'spice' to modify the Spice server password
#
# @password: the new password
#
# @connected: how to handle existing clients when changing the
-# password. If nothing is specified, defaults to `keep'
-# `fail' to fail the command if clients are connected
-# `disconnect' to disconnect existing clients
-# `keep' to maintain existing clients
+# password. If nothing is specified, defaults to 'keep'
+# 'fail' to fail the command if clients are connected
+# 'disconnect' to disconnect existing clients
+# 'keep' to maintain existing clients
#
-# Returns: Nothing on success
-# If Spice is not enabled, DeviceNotFound
+# Returns: - Nothing on success
+# - If Spice is not enabled, DeviceNotFound
#
# Since: 0.14.0
#
@@ -43,16 +43,17 @@
#
# Expire the password of a remote display server.
#
-# @protocol: the name of the remote display protocol `vnc' or `spice'
+# @protocol: the name of the remote display protocol 'vnc' or 'spice'
#
# @time: when to expire the password.
-# `now' to expire the password immediately
-# `never' to cancel password expiration
-# `+INT' where INT is the number of seconds from now (integer)
-# `INT' where INT is the absolute time in seconds
#
-# Returns: Nothing on success
-# If @protocol is `spice' and Spice is not active, DeviceNotFound
+# - 'now' to expire the password immediately
+# - 'never' to cancel password expiration
+# - '+INT' where INT is the number of seconds from now (integer)
+# - 'INT' where INT is the absolute time in seconds
+#
+# Returns: - Nothing on success
+# - If @protocol is 'spice' and Spice is not active, DeviceNotFound
#
# Since: 0.14.0
#
@@ -201,9 +202,10 @@
# @tls-port: The SPICE server's TLS port number.
#
# @auth: the current authentication type used by the server
-# 'none' if no authentication is being used
-# 'spice' uses SASL or direct TLS authentication, depending on command
-# line options
+#
+# - 'none' if no authentication is being used
+# - 'spice' uses SASL or direct TLS authentication, depending on command
+# line options
#
# @mouse-mode: The mode in which the mouse cursor is displayed currently. Can
# be determined by the client or the server, or unknown if spice
@@ -433,27 +435,28 @@
# @host: The hostname the VNC server is bound to. This depends on
# the name resolution on the host and may be an IP address.
#
-# @family: 'ipv6' if the host is listening for IPv6 connections
-# 'ipv4' if the host is listening for IPv4 connections
-# 'unix' if the host is listening on a unix domain socket
-# 'unknown' otherwise
+# @family: - 'ipv6' if the host is listening for IPv6 connections
+# - 'ipv4' if the host is listening for IPv4 connections
+# - 'unix' if the host is listening on a unix domain socket
+# - 'unknown' otherwise
#
# @service: The service name of the server's port. This may depends
# on the host system's service database so symbolic names should not
# be relied on.
#
# @auth: the current authentication type used by the server
-# 'none' if no authentication is being used
-# 'vnc' if VNC authentication is being used
-# 'vencrypt+plain' if VEncrypt is used with plain text authentication
-# 'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
-# 'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
-# 'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
-# 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
-# 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
-# 'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
-# 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
-# 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
+#
+# - 'none' if no authentication is being used
+# - 'vnc' if VNC authentication is being used
+# - 'vencrypt+plain' if VEncrypt is used with plain text authentication
+# - 'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
+# - 'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
+# - 'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
+# - 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
+# - 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
+# - 'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
+# - 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
+# - 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
#
# @clients: a list of @VncClientInfo of all currently connected clients
#
@@ -591,12 +594,12 @@
#
# Change the VNC server password.
#
-# @password: the new password to use with VNC authentication
+# @password: the new password to use with VNC authentication
#
# Since: 1.1
#
-# Notes: An empty password in this command will set the password to the empty
-# string. Existing clients are unaffected by executing this command.
+# Notes: An empty password in this command will set the password to the empty
+# string. Existing clients are unaffected by executing this command.
##
{ 'command': 'change-vnc-password',
'data': { 'password': 'str' },
@@ -612,7 +615,7 @@
# @client: client information
#
# Note: This event is emitted before any authentication takes place, thus
-# the authentication ID is not provided
+# the authentication ID is not provided
#
# Since: 0.13.0
#
@@ -776,7 +779,6 @@
# @ac_forward: since 2.10
# @ac_refresh: since 2.10
# @ac_bookmarks: since 2.10
-# altgr, altgr_r: dropped in 2.10
#
# @muhenkan: since 2.12
# @katakanahiragana: since 2.12
@@ -840,8 +842,8 @@
# @hold-time: time to delay key up events, milliseconds. Defaults
# to 100
#
-# Returns: Nothing on success
-# If key is unknown or redundant, InvalidParameter
+# Returns: - Nothing on success
+# - If key is unknown or redundant, InvalidParameter
#
# Since: 1.3.0
#
@@ -915,9 +917,9 @@
#
# Pointer motion input event.
#
-# @axis: Which axis is referenced by @value.
-# @value: Pointer position. For absolute coordinates the
-# valid range is 0 -> 0x7ffff
+# @axis: Which axis is referenced by @value.
+# @value: Pointer position. For absolute coordinates the
+# valid range is 0 -> 0x7ffff
#
# Since: 2.0
##
@@ -931,10 +933,11 @@
# Input event union.
#
# @type: the input type, one of:
-# - 'key': Input event of Keyboard
-# - 'btn': Input event of pointer buttons
-# - 'rel': Input event of relative pointer motion
-# - 'abs': Input event of absolute pointer motion
+#
+# - 'key': Input event of Keyboard
+# - 'btn': Input event of pointer buttons
+# - 'rel': Input event of relative pointer motion
+# - 'abs': Input event of absolute pointer motion
#
# Since: 2.0
##
@@ -949,13 +952,6 @@
#
# Send input event(s) to guest.
#
-# @device: display device to send event(s) to.
-# @head: head to send event(s) to, in case the
-# display device supports multiple scanouts.
-# @events: List of InputEvent union.
-#
-# Returns: Nothing on success.
-#
# The @device and @head parameters can be used to send the input event
# to specific input devices in case (a) multiple input devices of the
# same kind are added to the virtual machine and (b) you have
@@ -967,12 +963,19 @@
# are admissible, but devices with input routing config take
# precedence.
#
+# @device: display device to send event(s) to.
+# @head: head to send event(s) to, in case the
+# display device supports multiple scanouts.
+# @events: List of InputEvent union.
+#
+# Returns: Nothing on success.
+#
# Since: 2.6
#
# Note: The consoles are visible in the qom tree, under
-# /backend/console[$index]. They have a device link and head property,
-# so it is possible to map which console belongs to which device and
-# display.
+# /backend/console[$index]. They have a device link and head property,
+# so it is possible to map which console belongs to which device and
+# display.
#
# Example:
#
diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json
index fb4605cc19..f6fcb59f34 100644
--- a/qga/qapi-schema.json
+++ b/qga/qapi-schema.json
@@ -416,7 +416,7 @@
# Returns: GuestFsfreezeStatus ("thawed", "frozen", etc., as defined below)
#
# Note: This may fail to properly report the current state as a result of
-# some other guest processes having issued an fs freeze/thaw.
+# some other guest processes having issued an fs freeze/thaw.
#
# Since: 0.15.0
##
@@ -431,13 +431,13 @@
# unfreeze.
#
# Note: On Windows, the command is implemented with the help of a
-# Volume Shadow-copy Service DLL helper. The frozen state is limited
-# for up to 10 seconds by VSS.
+# Volume Shadow-copy Service DLL helper. The frozen state is limited
+# for up to 10 seconds by VSS.
#
# Returns: Number of file systems currently frozen. On error, all filesystems
-# will be thawed. If no filesystems are frozen as a result of this call,
-# then @guest-fsfreeze-status will remain "thawed" and calling
-# @guest-fsfreeze-thaw is not necessary.
+# will be thawed. If no filesystems are frozen as a result of this call,
+# then @guest-fsfreeze-status will remain "thawed" and calling
+# @guest-fsfreeze-thaw is not necessary.
#
# Since: 0.15.0
##
@@ -455,7 +455,7 @@
# Invalid mount points are ignored.
#
# Returns: Number of file systems currently frozen. On error, all filesystems
-# will be thawed.
+# will be thawed.
#
# Since: 2.2
##
@@ -510,13 +510,12 @@
#
# Discard (or "trim") blocks which are not in use by the filesystem.
#
-# @minimum:
-# Minimum contiguous free range to discard, in bytes. Free ranges
-# smaller than this may be ignored (this is a hint and the guest
-# may not respect it). By increasing this value, the fstrim
-# operation will complete more quickly for filesystems with badly
-# fragmented free space, although not all blocks will be discarded.
-# The default value is zero, meaning "discard every free block".
+# @minimum: Minimum contiguous free range to discard, in bytes. Free ranges
+# smaller than this may be ignored (this is a hint and the guest
+# may not respect it). By increasing this value, the fstrim
+# operation will complete more quickly for filesystems with badly
+# fragmented free space, although not all blocks will be discarded.
+# The default value is zero, meaning "discard every free block".
#
# Returns: A @GuestFilesystemTrimResponse which contains the
# status of all trimmed paths. (since 2.4)
@@ -546,7 +545,8 @@
# (or set its status to "shutdown") due to other reasons.
#
# The following errors may be returned:
-# If suspend to disk is not supported, Unsupported
+#
+# - If suspend to disk is not supported, Unsupported
#
# Notes: It's strongly recommended to issue the guest-sync command before
# sending commands when the guest resumes
@@ -575,12 +575,14 @@
#
# This command does NOT return a response on success. There are two options
# to check for success:
-# 1. Wait for the SUSPEND QMP event from QEMU
-# 2. Issue the query-status QMP command to confirm the VM status is
-# "suspended"
+#
+# 1. Wait for the SUSPEND QMP event from QEMU
+# 2. Issue the query-status QMP command to confirm the VM status is
+# "suspended"
#
# The following errors may be returned:
-# If suspend to ram is not supported, Unsupported
+#
+# - If suspend to ram is not supported, Unsupported
#
# Notes: It's strongly recommended to issue the guest-sync command before
# sending commands when the guest resumes
@@ -607,12 +609,14 @@
#
# This command does NOT return a response on success. There are two options
# to check for success:
-# 1. Wait for the SUSPEND QMP event from QEMU
-# 2. Issue the query-status QMP command to confirm the VM status is
-# "suspended"
+#
+# 1. Wait for the SUSPEND QMP event from QEMU
+# 2. Issue the query-status QMP command to confirm the VM status is
+# "suspended"
#
# The following errors may be returned:
-# If hybrid suspend is not supported, Unsupported
+#
+# - If hybrid suspend is not supported, Unsupported
#
# Notes: It's strongly recommended to issue the guest-sync command before
# sending commands when the guest resumes
@@ -693,7 +697,7 @@
# @ip-addresses: List of addresses assigned to @name
#
# @statistics: various statistic counters related to @name
-# (since 2.11)
+# (since 2.11)
#
# Since: 1.1
##
@@ -743,7 +747,7 @@
# This is a read-only operation.
#
# Returns: The list of all VCPUs the guest knows about. Each VCPU is put on the
-# list exactly once, but their order is unspecified.
+# list exactly once, but their order is unspecified.
#
# Since: 1.5
##
@@ -767,18 +771,22 @@
# Returns: The length of the initial sublist that has been successfully
# processed. The guest agent maximizes this value. Possible cases:
#
-# - 0: if the @vcpus list was empty on input. Guest state
-# has not been changed. Otherwise,
-# - Error: processing the first node of @vcpus failed for the
-# reason returned. Guest state has not been changed.
-# Otherwise,
-# - < length(@vcpus): more than zero initial nodes have been processed,
-# but not the entire @vcpus list. Guest state has
-# changed accordingly. To retrieve the error
-# (assuming it persists), repeat the call with the
-# successfully processed initial sublist removed.
-# Otherwise,
-# - length(@vcpus): call successful.
+# - 0:
+# if the @vcpus list was empty on input. Guest state
+# has not been changed. Otherwise,
+# - Error:
+# processing the first node of @vcpus failed for the
+# reason returned. Guest state has not been changed.
+# Otherwise,
+# - < length(@vcpus):
+# more than zero initial nodes have been processed,
+# but not the entire @vcpus list. Guest state has
+# changed accordingly. To retrieve the error
+# (assuming it persists), repeat the call with the
+# successfully processed initial sublist removed.
+# Otherwise,
+# - length(@vcpus):
+# call successful.
#
# Since: 1.5
##
@@ -809,7 +817,7 @@
# @sas: Win serial-attaches SCSI bus type
# @mmc: Win multimedia card (MMC) bus type
# @virtual: Win virtual bus type
-# @file-backed virtual: Win file-backed bus type
+# @file-backed-virtual: Win file-backed bus type
#
# Since: 2.2; 'Unknown' and all entries below since 2.4
##
@@ -937,8 +945,8 @@
# This is a read-only operation.
#
# Returns: The list of all memory blocks the guest knows about.
-# Each memory block is put on the list exactly once, but their order
-# is unspecified.
+# Each memory block is put on the list exactly once, but their order
+# is unspecified.
#
# Since: 2.3
##
@@ -971,9 +979,9 @@
# @response: the result of memory block operation.
#
# @error-code: the error number.
-# When memory block operation fails, we assign the value of
-# 'errno' to this member, it indicates what goes wrong.
-# When the operation succeeds, it will be omitted.
+# When memory block operation fails, we assign the value of
+# 'errno' to this member, it indicates what goes wrong.
+# When the operation succeeds, it will be omitted.
#
# Since: 2.3
##
@@ -1040,15 +1048,15 @@
# @exited: true if process has already terminated.
# @exitcode: process exit code if it was normally terminated.
# @signal: signal number (linux) or unhandled exception code
-# (windows) if the process was abnormally terminated.
+# (windows) if the process was abnormally terminated.
# @out-data: base64-encoded stdout of the process
# @err-data: base64-encoded stderr of the process
-# Note: @out-data and @err-data are present only
-# if 'capture-output' was specified for 'guest-exec'
+# Note: @out-data and @err-data are present only
+# if 'capture-output' was specified for 'guest-exec'
# @out-truncated: true if stdout was not fully captured
-# due to size limitation.
+# due to size limitation.
# @err-truncated: true if stderr was not fully captured
-# due to size limitation.
+# due to size limitation.
#
# Since: 2.5
##
@@ -1131,8 +1139,8 @@
##
# @GuestUser:
-# @user: Username
-# @domain: Logon domain (windows only)
+# @user: Username
+# @domain: Logon domain (windows only)
# @login-time: Time of login of this user on the computer. If multiple
# instances of the user are logged in, the earliest login time is
# reported. The value is in fractional seconds since epoch time.
@@ -1156,10 +1164,10 @@
##
# @GuestTimezone:
#
-# @zone: Timezone name. These values may differ depending on guest/OS and
-# should only be used for informational purposes.
-# @offset: Offset to UTC in seconds, negative numbers for time zones west of
-# GMT, positive numbers for east
+# @zone: Timezone name. These values may differ depending on guest/OS and
+# should only be used for informational purposes.
+# @offset: Offset to UTC in seconds, negative numbers for time zones west of
+# GMT, positive numbers for east
#
# Since: 2.10
##
@@ -1182,35 +1190,35 @@
# @GuestOSInfo:
#
# @kernel-release:
-# * POSIX: release field returned by uname(2)
-# * Windows: build number of the OS
+# * POSIX: release field returned by uname(2)
+# * Windows: build number of the OS
# @kernel-version:
-# * POSIX: version field returned by uname(2)
-# * Windows: version number of the OS
+# * POSIX: version field returned by uname(2)
+# * Windows: version number of the OS
# @machine:
-# * POSIX: machine field returned by uname(2)
-# * Windows: one of x86, x86_64, arm, ia64
+# * POSIX: machine field returned by uname(2)
+# * Windows: one of x86, x86_64, arm, ia64
# @id:
-# * POSIX: as defined by os-release(5)
-# * Windows: contains string "mswindows"
+# * POSIX: as defined by os-release(5)
+# * Windows: contains string "mswindows"
# @name:
-# * POSIX: as defined by os-release(5)
-# * Windows: contains string "Microsoft Windows"
+# * POSIX: as defined by os-release(5)
+# * Windows: contains string "Microsoft Windows"
# @pretty-name:
-# * POSIX: as defined by os-release(5)
-# * Windows: product name, e.g. "Microsoft Windows 10 Enterprise"
+# * POSIX: as defined by os-release(5)
+# * Windows: product name, e.g. "Microsoft Windows 10 Enterprise"
# @version:
-# * POSIX: as defined by os-release(5)
-# * Windows: long version string, e.g. "Microsoft Windows Server 2008"
+# * POSIX: as defined by os-release(5)
+# * Windows: long version string, e.g. "Microsoft Windows Server 2008"
# @version-id:
-# * POSIX: as defined by os-release(5)
-# * Windows: short version identifier, e.g. "7" or "20012r2"
+# * POSIX: as defined by os-release(5)
+# * Windows: short version identifier, e.g. "7" or "20012r2"
# @variant:
-# * POSIX: as defined by os-release(5)
-# * Windows: contains string "server" or "client"
+# * POSIX: as defined by os-release(5)
+# * Windows: contains string "server" or "client"
# @variant-id:
-# * POSIX: as defined by os-release(5)
-# * Windows: contains string "server" or "client"
+# * POSIX: as defined by os-release(5)
+# * Windows: contains string "server" or "client"
#
# Notes:
#