qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

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>

+1070 -1022
+2 -2
Makefile
··· 1030 1030 # Note the use of different doctree for each (manual, builder) tuple; 1031 1031 # this works around Sphinx not handling parallel invocation on 1032 1032 # a single doctree: https://github.com/sphinx-doc/sphinx/issues/2946 1033 - 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") 1033 + 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") 1034 1034 # We assume all RST files in the manual's directory are used in it 1035 1035 manual-deps = $(wildcard $(SRC_PATH)/docs/$1/*.rst) \ 1036 1036 $(wildcard $(SRC_PATH)/docs/$1/*.rst.inc) \ ··· 1059 1059 $(call define-manpage-rule,interop,\ 1060 1060 qemu-ga.8 qemu-img.1 qemu-nbd.8 qemu-trace-stap.1\ 1061 1061 virtiofsd.1 virtfs-proxy-helper.1,\ 1062 - $(SRC_PATH/qemu-img-cmds.hx)) 1062 + $(SRC_PATH)/qemu-img-cmds.hx) 1063 1063 1064 1064 $(call define-manpage-rule,system,qemu-block-drivers.7) 1065 1065
+29 -3
configure
··· 914 914 break 915 915 fi 916 916 done 917 + 918 + sphinx_build= 919 + for binary in sphinx-build-3 sphinx-build 920 + do 921 + if has "$binary" 922 + then 923 + sphinx_build=$(command -v "$binary") 924 + break 925 + fi 926 + done 927 + 917 928 : ${smbd=${SMBD-/usr/sbin/smbd}} 918 929 919 930 # Default objcc to clang if available, otherwise use CC ··· 974 985 --install=*) install="$optarg" 975 986 ;; 976 987 --python=*) python="$optarg" 988 + ;; 989 + --sphinx-build=*) sphinx_build="$optarg" 977 990 ;; 978 991 --gcov=*) gcov_tool="$optarg" 979 992 ;; ··· 1677 1690 --make=MAKE use specified make [$make] 1678 1691 --install=INSTALL use specified install [$install] 1679 1692 --python=PYTHON use specified python [$python] 1693 + --sphinx-build=SPHINX use specified sphinx-build [$sphinx_build] 1680 1694 --smbd=SMBD use specified smbd [$smbd] 1681 1695 --with-git=GIT use specified git [$git] 1682 1696 --static enable static build [$static] ··· 4799 4813 # sphinx-build doesn't exist at all or if it is too old. 4800 4814 mkdir -p "$TMPDIR1/sphinx" 4801 4815 touch "$TMPDIR1/sphinx/index.rst" 4802 - sphinx-build -c "$source_path/docs" -b html "$TMPDIR1/sphinx" "$TMPDIR1/sphinx/out" >/dev/null 2>&1 4816 + "$sphinx_build" -c "$source_path/docs" -b html "$TMPDIR1/sphinx" "$TMPDIR1/sphinx/out" >/dev/null 2>&1 4803 4817 } 4804 4818 4805 4819 # Check if tools are available to build documentation. 4806 4820 if test "$docs" != "no" ; then 4807 - if has makeinfo && has pod2man && has_sphinx_build; then 4821 + if has_sphinx_build; then 4822 + sphinx_ok=yes 4823 + else 4824 + sphinx_ok=no 4825 + fi 4826 + if has makeinfo && has pod2man && test "$sphinx_ok" = "yes"; then 4808 4827 docs=yes 4809 4828 else 4810 4829 if test "$docs" = "yes" ; then 4811 - feature_not_found "docs" "Install texinfo, Perl/perl-podlators and python-sphinx" 4830 + if has $sphinx_build && test "$sphinx_ok" != "yes"; then 4831 + echo "Warning: $sphinx_build exists but it is either too old or uses too old a Python version" >&2 4832 + fi 4833 + feature_not_found "docs" "Install texinfo, Perl/perl-podlators and a Python 3 version of python-sphinx" 4812 4834 fi 4813 4835 docs=no 4814 4836 fi ··· 6474 6496 echo "make $make" 6475 6497 echo "install $install" 6476 6498 echo "python $python ($python_version)" 6499 + if test "$docs" != "no"; then 6500 + echo "sphinx-build $sphinx_build" 6501 + fi 6477 6502 echo "slirp support $slirp $(echo_version $slirp $slirp_version)" 6478 6503 if test "$slirp" != "no" ; then 6479 6504 echo "smbd $smbd" ··· 7506 7531 echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak 7507 7532 echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak 7508 7533 echo "PYTHON=$python" >> $config_host_mak 7534 + echo "SPHINX_BUILD=$sphinx_build" >> $config_host_mak 7509 7535 echo "CC=$cc" >> $config_host_mak 7510 7536 if $iasl -h > /dev/null 2>&1; then 7511 7537 echo "IASL=$iasl" >> $config_host_mak
+10
docs/conf.py
··· 28 28 29 29 import os 30 30 import sys 31 + import sphinx 32 + from sphinx.errors import VersionRequirementError 33 + 34 + # Make Sphinx fail cleanly if using an old Python, rather than obscurely 35 + # failing because some code in one of our extensions doesn't work there. 36 + # Unfortunately this doesn't display very neatly (there's an unavoidable 37 + # Python backtrace) but at least the information gets printed... 38 + if sys.version_info < (3,5): 39 + raise VersionRequirementError( 40 + "QEMU requires a Sphinx that uses Python 3.5 or better\n") 31 41 32 42 # The per-manual conf.py will set qemu_docdir for a single-manual build; 33 43 # otherwise set it here if this is an entire-manual-set build.
+570 -569
qapi/block-core.json
··· 162 162 # @backing-image: info of the backing image (since 1.6) 163 163 # 164 164 # @format-specific: structure supplying additional format-specific 165 - # information (since 1.7) 165 + # information (since 1.7) 166 166 # 167 167 # Since: 1.3 168 168 # ··· 550 550 # For the example above, @bins may be something like [3, 1, 5, 2], 551 551 # and corresponding histogram looks like: 552 552 # 553 - # 5| * 554 - # 4| * 555 - # 3| * * 556 - # 2| * * * 557 - # 1| * * * * 558 - # +------------------ 559 - # 10 50 100 553 + # | 5| * 554 + # | 4| * 555 + # | 3| * * 556 + # | 2| * * * 557 + # | 1| * * * * 558 + # | +------------------ 559 + # | 10 50 100 560 560 # 561 561 # Since: 4.0 562 562 ## ··· 708 708 # Get a list of BlockInfo for all virtual block devices. 709 709 # 710 710 # Returns: a list of @BlockInfo describing each virtual block device. Filter 711 - # nodes that were created implicitly are skipped over. 711 + # nodes that were created implicitly are skipped over. 712 712 # 713 713 # Since: 0.14.0 714 714 # ··· 1326 1326 # 1327 1327 # @size: new image size in bytes 1328 1328 # 1329 - # Returns: nothing on success 1330 - # If @device is not a valid block device, DeviceNotFound 1329 + # Returns: - nothing on success 1330 + # - If @device is not a valid block device, DeviceNotFound 1331 1331 # 1332 1332 # Since: 0.14.0 1333 1333 # ··· 1352 1352 # @existing: QEMU should look for an existing image file. 1353 1353 # 1354 1354 # @absolute-paths: QEMU should create a new image with absolute paths 1355 - # for the backing file. If there is no backing file available, the new 1356 - # image will not be backed either. 1355 + # for the backing file. If there is no backing file available, the new 1356 + # image will not be backed either. 1357 1357 # 1358 1358 # Since: 1.1 1359 1359 ## ··· 1370 1370 # @node-name: graph node name to generate the snapshot from (Since 2.0) 1371 1371 # 1372 1372 # @snapshot-file: the target of the new overlay image. If the file 1373 - # exists, or if it is a device, the overlay will be created in the 1374 - # existing file/device. Otherwise, a new file will be created. 1373 + # exists, or if it is a device, the overlay will be created in the 1374 + # existing file/device. Otherwise, a new file will be created. 1375 1375 # 1376 1376 # @snapshot-node-name: the graph node name of the new image (Since 2.0) 1377 1377 # ··· 1456 1456 # a node name is autogenerated. (Since: 4.2) 1457 1457 # 1458 1458 # Note: @on-source-error and @on-target-error only affect background 1459 - # I/O. If an error occurs during a guest write request, the device's 1460 - # rerror/werror actions will be used. 1459 + # I/O. If an error occurs during a guest write request, the device's 1460 + # rerror/werror actions will be used. 1461 1461 # 1462 1462 # Since: 4.2 1463 1463 ## ··· 1510 1510 # 1511 1511 # For the arguments, see the documentation of BlockdevSnapshotSync. 1512 1512 # 1513 - # Returns: nothing on success 1514 - # If @device is not a valid block device, DeviceNotFound 1513 + # Returns: - nothing on success 1514 + # - If @device is not a valid block device, DeviceNotFound 1515 1515 # 1516 1516 # Since: 0.14.0 1517 1517 # ··· 1578 1578 # to verify "image-node-name" is in the chain 1579 1579 # described by "device". 1580 1580 # 1581 - # @device: The device name or node-name of the root node that owns 1582 - # image-node-name. 1581 + # @device: The device name or node-name of the root node that owns 1582 + # image-node-name. 1583 1583 # 1584 - # @backing-file: The string to write as the backing file. This 1585 - # string is not validated, so care should be taken 1586 - # when specifying the string or the image chain may 1587 - # not be able to be reopened again. 1584 + # @backing-file: The string to write as the backing file. This 1585 + # string is not validated, so care should be taken 1586 + # when specifying the string or the image chain may 1587 + # not be able to be reopened again. 1588 1588 # 1589 - # Returns: Nothing on success 1590 - # 1591 - # If "device" does not exist or cannot be determined, DeviceNotFound 1589 + # Returns: - Nothing on success 1590 + # - If "device" does not exist or cannot be determined, DeviceNotFound 1592 1591 # 1593 1592 # Since: 2.1 1594 1593 ## ··· 1605 1604 # @job-id: identifier for the newly-created block job. If 1606 1605 # omitted, the device name will be used. (Since 2.7) 1607 1606 # 1608 - # @device: the device name or node-name of a root node 1607 + # @device: the device name or node-name of a root node 1609 1608 # 1610 1609 # @base-node: The node name of the backing image to write data into. 1611 1610 # If not specified, this is the deepest backing image. ··· 1625 1624 # node; other strings, even if addressing the same file, are not 1626 1625 # accepted (deprecated, use @base-node instead) 1627 1626 # 1628 - # @backing-file: The backing file string to write into the overlay 1629 - # image of 'top'. If 'top' is the active layer, 1630 - # specifying a backing file string is an error. This 1631 - # filename is not validated. 1627 + # @backing-file: The backing file string to write into the overlay 1628 + # image of 'top'. If 'top' is the active layer, 1629 + # specifying a backing file string is an error. This 1630 + # filename is not validated. 1632 1631 # 1633 - # If a pathname string is such that it cannot be 1634 - # resolved by QEMU, that means that subsequent QMP or 1635 - # HMP commands must use node-names for the image in 1636 - # question, as filename lookup methods will fail. 1632 + # If a pathname string is such that it cannot be 1633 + # resolved by QEMU, that means that subsequent QMP or 1634 + # HMP commands must use node-names for the image in 1635 + # question, as filename lookup methods will fail. 1637 1636 # 1638 - # If not specified, QEMU will automatically determine 1639 - # the backing file string to use, or error out if 1640 - # there is no obvious choice. Care should be taken 1641 - # when specifying the string, to specify a valid 1642 - # filename or protocol. 1643 - # (Since 2.1) 1637 + # If not specified, QEMU will automatically determine 1638 + # the backing file string to use, or error out if 1639 + # there is no obvious choice. Care should be taken 1640 + # when specifying the string, to specify a valid 1641 + # filename or protocol. 1642 + # (Since 2.1) 1644 1643 # 1645 - # If top == base, that is an error. 1646 - # If top == active, the job will not be completed by itself, 1647 - # user needs to complete the job with the block-job-complete 1648 - # command after getting the ready event. (Since 2.0) 1644 + # If top == base, that is an error. 1645 + # If top == active, the job will not be completed by itself, 1646 + # user needs to complete the job with the block-job-complete 1647 + # command after getting the ready event. (Since 2.0) 1649 1648 # 1650 - # If the base image is smaller than top, then the base image 1651 - # will be resized to be the same size as top. If top is 1652 - # smaller than the base image, the base will not be 1653 - # truncated. If you want the base image size to match the 1654 - # size of the smaller top, you can safely truncate it 1655 - # yourself once the commit operation successfully completes. 1649 + # If the base image is smaller than top, then the base image 1650 + # will be resized to be the same size as top. If top is 1651 + # smaller than the base image, the base will not be 1652 + # truncated. If you want the base image size to match the 1653 + # size of the smaller top, you can safely truncate it 1654 + # yourself once the commit operation successfully completes. 1656 1655 # 1657 - # @speed: the maximum speed, in bytes per second 1656 + # @speed: the maximum speed, in bytes per second 1658 1657 # 1659 1658 # @filter-node-name: the node name that should be assigned to the 1660 1659 # filter driver that the commit job inserts into the graph ··· 1674 1673 # list without user intervention. 1675 1674 # Defaults to true. (Since 3.1) 1676 1675 # 1677 - # Returns: Nothing on success 1678 - # If @device does not exist, DeviceNotFound 1679 - # Any other error returns a GenericError. 1676 + # Returns: - Nothing on success 1677 + # - If @device does not exist, DeviceNotFound 1678 + # - Any other error returns a GenericError. 1680 1679 # 1681 1680 # Since: 1.3 1682 1681 # ··· 1704 1703 # The operation can be stopped before it has completed using the 1705 1704 # block-job-cancel command. 1706 1705 # 1707 - # Returns: nothing on success 1708 - # If @device is not a valid block device, GenericError 1706 + # Returns: - nothing on success 1707 + # - If @device is not a valid block device, GenericError 1709 1708 # 1710 1709 # Since: 1.6 1711 1710 # ··· 1730 1729 # The operation can be stopped before it has completed using the 1731 1730 # block-job-cancel command. 1732 1731 # 1733 - # Returns: nothing on success 1734 - # If @device is not a valid block device, DeviceNotFound 1732 + # Returns: - nothing on success 1733 + # - If @device is not a valid block device, DeviceNotFound 1735 1734 # 1736 1735 # Since: 2.3 1737 1736 # ··· 1925 1924 # format of the mirror image, default is to probe if mode='existing', 1926 1925 # else the format of the source. 1927 1926 # 1928 - # Returns: nothing on success 1929 - # If @device is not a valid block device, GenericError 1927 + # Returns: - nothing on success 1928 + # - If @device is not a valid block device, GenericError 1930 1929 # 1931 1930 # Since: 1.3 1932 1931 # ··· 2097 2096 # 2098 2097 # Create a dirty bitmap with a name on the node, and start tracking the writes. 2099 2098 # 2100 - # Returns: nothing on success 2101 - # If @node is not a valid block device or node, DeviceNotFound 2102 - # If @name is already taken, GenericError with an explanation 2099 + # Returns: - nothing on success 2100 + # - If @node is not a valid block device or node, DeviceNotFound 2101 + # - If @name is already taken, GenericError with an explanation 2103 2102 # 2104 2103 # Since: 2.4 2105 2104 # ··· 2120 2119 # with block-dirty-bitmap-add. If the bitmap is persistent, remove it from its 2121 2120 # storage too. 2122 2121 # 2123 - # Returns: nothing on success 2124 - # If @node is not a valid block device or node, DeviceNotFound 2125 - # If @name is not found, GenericError with an explanation 2126 - # if @name is frozen by an operation, GenericError 2122 + # Returns: - nothing on success 2123 + # - If @node is not a valid block device or node, DeviceNotFound 2124 + # - If @name is not found, GenericError with an explanation 2125 + # - if @name is frozen by an operation, GenericError 2127 2126 # 2128 2127 # Since: 2.4 2129 2128 # ··· 2144 2143 # backup from this point in time forward will only backup clusters 2145 2144 # modified after this clear operation. 2146 2145 # 2147 - # Returns: nothing on success 2148 - # If @node is not a valid block device, DeviceNotFound 2149 - # If @name is not found, GenericError with an explanation 2146 + # Returns: - nothing on success 2147 + # - If @node is not a valid block device, DeviceNotFound 2148 + # - If @name is not found, GenericError with an explanation 2150 2149 # 2151 2150 # Since: 2.4 2152 2151 # ··· 2165 2164 # 2166 2165 # Enables a dirty bitmap so that it will begin tracking disk changes. 2167 2166 # 2168 - # Returns: nothing on success 2169 - # If @node is not a valid block device, DeviceNotFound 2170 - # If @name is not found, GenericError with an explanation 2167 + # Returns: - nothing on success 2168 + # - If @node is not a valid block device, DeviceNotFound 2169 + # - If @name is not found, GenericError with an explanation 2171 2170 # 2172 2171 # Since: 4.0 2173 2172 # ··· 2186 2185 # 2187 2186 # Disables a dirty bitmap so that it will stop tracking disk changes. 2188 2187 # 2189 - # Returns: nothing on success 2190 - # If @node is not a valid block device, DeviceNotFound 2191 - # If @name is not found, GenericError with an explanation 2188 + # Returns: - nothing on success 2189 + # - If @node is not a valid block device, DeviceNotFound 2190 + # - If @name is not found, GenericError with an explanation 2192 2191 # 2193 2192 # Since: 4.0 2194 2193 # ··· 2215 2214 # of the source bitmaps. This can be used to achieve backup checkpoints, or in 2216 2215 # simpler usages, to copy bitmaps. 2217 2216 # 2218 - # Returns: nothing on success 2219 - # If @node is not a valid block device, DeviceNotFound 2220 - # If any bitmap in @bitmaps or @target is not found, GenericError 2221 - # If any of the bitmaps have different sizes or granularities, 2222 - # GenericError 2217 + # Returns: - nothing on success 2218 + # - If @node is not a valid block device, DeviceNotFound 2219 + # - If any bitmap in @bitmaps or @target is not found, GenericError 2220 + # - If any of the bitmaps have different sizes or granularities, 2221 + # GenericError 2223 2222 # 2224 2223 # Since: 4.0 2225 2224 # ··· 2251 2250 # 2252 2251 # Get bitmap SHA256. 2253 2252 # 2254 - # Returns: BlockDirtyBitmapSha256 on success 2255 - # If @node is not a valid block device, DeviceNotFound 2256 - # If @name is not found or if hashing has failed, GenericError with an 2257 - # explanation 2253 + # Returns: - BlockDirtyBitmapSha256 on success 2254 + # - If @node is not a valid block device, DeviceNotFound 2255 + # - If @name is not found or if hashing has failed, GenericError with an 2256 + # explanation 2258 2257 # 2259 2258 # Since: 2.10 2260 2259 ## ··· 2371 2370 # the device will be removed from its group and the rest of its 2372 2371 # members will not be affected. The 'group' parameter is ignored. 2373 2372 # 2374 - # Returns: Nothing on success 2375 - # If @device is not a valid block device, DeviceNotFound 2373 + # Returns: - Nothing on success 2374 + # - If @device is not a valid block device, DeviceNotFound 2376 2375 # 2377 2376 # Since: 1.1 2378 2377 # ··· 2439 2438 # @iops_wr: write I/O operations per second 2440 2439 # 2441 2440 # @bps_max: total throughput limit during bursts, 2442 - # in bytes (Since 1.7) 2441 + # in bytes (Since 1.7) 2443 2442 # 2444 2443 # @bps_rd_max: read throughput limit during bursts, 2445 - # in bytes (Since 1.7) 2444 + # in bytes (Since 1.7) 2446 2445 # 2447 2446 # @bps_wr_max: write throughput limit during bursts, 2448 - # in bytes (Since 1.7) 2447 + # in bytes (Since 1.7) 2449 2448 # 2450 2449 # @iops_max: total I/O operations per second during bursts, 2451 - # in bytes (Since 1.7) 2450 + # in bytes (Since 1.7) 2452 2451 # 2453 2452 # @iops_rd_max: read I/O operations per second during bursts, 2454 - # in bytes (Since 1.7) 2453 + # in bytes (Since 1.7) 2455 2454 # 2456 2455 # @iops_wr_max: write I/O operations per second during bursts, 2457 - # in bytes (Since 1.7) 2456 + # in bytes (Since 1.7) 2458 2457 # 2459 2458 # @bps_max_length: maximum length of the @bps_max burst 2460 - # period, in seconds. It must only 2461 - # be set if @bps_max is set as well. 2462 - # Defaults to 1. (Since 2.6) 2459 + # period, in seconds. It must only 2460 + # be set if @bps_max is set as well. 2461 + # Defaults to 1. (Since 2.6) 2463 2462 # 2464 2463 # @bps_rd_max_length: maximum length of the @bps_rd_max 2465 - # burst period, in seconds. It must only 2466 - # be set if @bps_rd_max is set as well. 2467 - # Defaults to 1. (Since 2.6) 2464 + # burst period, in seconds. It must only 2465 + # be set if @bps_rd_max is set as well. 2466 + # Defaults to 1. (Since 2.6) 2468 2467 # 2469 2468 # @bps_wr_max_length: maximum length of the @bps_wr_max 2470 - # burst period, in seconds. It must only 2471 - # be set if @bps_wr_max is set as well. 2472 - # Defaults to 1. (Since 2.6) 2469 + # burst period, in seconds. It must only 2470 + # be set if @bps_wr_max is set as well. 2471 + # Defaults to 1. (Since 2.6) 2473 2472 # 2474 2473 # @iops_max_length: maximum length of the @iops burst 2475 - # period, in seconds. It must only 2476 - # be set if @iops_max is set as well. 2477 - # Defaults to 1. (Since 2.6) 2474 + # period, in seconds. It must only 2475 + # be set if @iops_max is set as well. 2476 + # Defaults to 1. (Since 2.6) 2478 2477 # 2479 2478 # @iops_rd_max_length: maximum length of the @iops_rd_max 2480 - # burst period, in seconds. It must only 2481 - # be set if @iops_rd_max is set as well. 2482 - # Defaults to 1. (Since 2.6) 2479 + # burst period, in seconds. It must only 2480 + # be set if @iops_rd_max is set as well. 2481 + # Defaults to 1. (Since 2.6) 2483 2482 # 2484 2483 # @iops_wr_max_length: maximum length of the @iops_wr_max 2485 - # burst period, in seconds. It must only 2486 - # be set if @iops_wr_max is set as well. 2487 - # Defaults to 1. (Since 2.6) 2484 + # burst period, in seconds. It must only 2485 + # be set if @iops_wr_max is set as well. 2486 + # Defaults to 1. (Since 2.6) 2488 2487 # 2489 2488 # @iops_size: an I/O size in bytes (Since 1.7) 2490 2489 # ··· 2511 2510 # transaction. All fields are optional. When setting limits, if a field is 2512 2511 # missing the current value is not changed. 2513 2512 # 2514 - # @iops-total: limit total I/O operations per second 2515 - # @iops-total-max: I/O operations burst 2516 - # @iops-total-max-length: length of the iops-total-max burst period, in seconds 2517 - # It must only be set if @iops-total-max is set as well. 2518 - # @iops-read: limit read operations per second 2519 - # @iops-read-max: I/O operations read burst 2520 - # @iops-read-max-length: length of the iops-read-max burst period, in seconds 2521 - # It must only be set if @iops-read-max is set as well. 2522 - # @iops-write: limit write operations per second 2523 - # @iops-write-max: I/O operations write burst 2524 - # @iops-write-max-length: length of the iops-write-max burst period, in seconds 2525 - # It must only be set if @iops-write-max is set as well. 2526 - # @bps-total: limit total bytes per second 2527 - # @bps-total-max: total bytes burst 2528 - # @bps-total-max-length: length of the bps-total-max burst period, in seconds. 2529 - # It must only be set if @bps-total-max is set as well. 2530 - # @bps-read: limit read bytes per second 2531 - # @bps-read-max: total bytes read burst 2532 - # @bps-read-max-length: length of the bps-read-max burst period, in seconds 2533 - # It must only be set if @bps-read-max is set as well. 2534 - # @bps-write: limit write bytes per second 2535 - # @bps-write-max: total bytes write burst 2536 - # @bps-write-max-length: length of the bps-write-max burst period, in seconds 2537 - # It must only be set if @bps-write-max is set as well. 2538 - # @iops-size: when limiting by iops max size of an I/O in bytes 2513 + # @iops-total: limit total I/O operations per second 2514 + # @iops-total-max: I/O operations burst 2515 + # @iops-total-max-length: length of the iops-total-max burst period, in seconds 2516 + # It must only be set if @iops-total-max is set as well. 2517 + # @iops-read: limit read operations per second 2518 + # @iops-read-max: I/O operations read burst 2519 + # @iops-read-max-length: length of the iops-read-max burst period, in seconds 2520 + # It must only be set if @iops-read-max is set as well. 2521 + # @iops-write: limit write operations per second 2522 + # @iops-write-max: I/O operations write burst 2523 + # @iops-write-max-length: length of the iops-write-max burst period, in seconds 2524 + # It must only be set if @iops-write-max is set as well. 2525 + # @bps-total: limit total bytes per second 2526 + # @bps-total-max: total bytes burst 2527 + # @bps-total-max-length: length of the bps-total-max burst period, in seconds. 2528 + # It must only be set if @bps-total-max is set as well. 2529 + # @bps-read: limit read bytes per second 2530 + # @bps-read-max: total bytes read burst 2531 + # @bps-read-max-length: length of the bps-read-max burst period, in seconds 2532 + # It must only be set if @bps-read-max is set as well. 2533 + # @bps-write: limit write bytes per second 2534 + # @bps-write-max: total bytes write burst 2535 + # @bps-write-max-length: length of the bps-write-max burst period, in seconds 2536 + # It must only be set if @bps-write-max is set as well. 2537 + # @iops-size: when limiting by iops max size of an I/O in bytes 2539 2538 # 2540 2539 # Since: 2.11 2541 2540 ## ··· 2582 2581 # 2583 2582 # @device: the device or node name of the top image 2584 2583 # 2585 - # @base: the common backing file name. 2586 - # It cannot be set if @base-node is also set. 2584 + # @base: the common backing file name. 2585 + # It cannot be set if @base-node is also set. 2587 2586 # 2588 2587 # @base-node: the node name of the backing file. 2589 - # It cannot be set if @base is also set. (Since 2.8) 2588 + # It cannot be set if @base is also set. (Since 2.8) 2590 2589 # 2591 2590 # @backing-file: The backing file string to write into the top 2592 - # image. This filename is not validated. 2591 + # image. This filename is not validated. 2593 2592 # 2594 - # If a pathname string is such that it cannot be 2595 - # resolved by QEMU, that means that subsequent QMP or 2596 - # HMP commands must use node-names for the image in 2597 - # question, as filename lookup methods will fail. 2593 + # If a pathname string is such that it cannot be 2594 + # resolved by QEMU, that means that subsequent QMP or 2595 + # HMP commands must use node-names for the image in 2596 + # question, as filename lookup methods will fail. 2598 2597 # 2599 - # If not specified, QEMU will automatically determine 2600 - # the backing file string to use, or error out if there 2601 - # is no obvious choice. Care should be taken when 2602 - # specifying the string, to specify a valid filename or 2603 - # protocol. 2604 - # (Since 2.1) 2598 + # If not specified, QEMU will automatically determine 2599 + # the backing file string to use, or error out if there 2600 + # is no obvious choice. Care should be taken when 2601 + # specifying the string, to specify a valid filename or 2602 + # protocol. 2603 + # (Since 2.1) 2605 2604 # 2606 - # @speed: the maximum speed, in bytes per second 2605 + # @speed: the maximum speed, in bytes per second 2607 2606 # 2608 2607 # @on-error: the action to take on an error (default report). 2609 2608 # 'stop' and 'enospc' can only be used if the block device ··· 2622 2621 # list without user intervention. 2623 2622 # Defaults to true. (Since 3.1) 2624 2623 # 2625 - # Returns: Nothing on success. If @device does not exist, DeviceNotFound. 2624 + # Returns: - Nothing on success. 2625 + # - If @device does not exist, DeviceNotFound. 2626 2626 # 2627 2627 # Since: 1.1 2628 2628 # ··· 2653 2653 # the name of the parameter), but since QEMU 2.7 it can have 2654 2654 # other values. 2655 2655 # 2656 - # @speed: the maximum speed, in bytes per second, or 0 for unlimited. 2657 - # Defaults to 0. 2656 + # @speed: the maximum speed, in bytes per second, or 0 for unlimited. 2657 + # Defaults to 0. 2658 2658 # 2659 - # Returns: Nothing on success 2660 - # If no background operation is active on this device, DeviceNotActive 2659 + # Returns: - Nothing on success 2660 + # - If no background operation is active on this device, DeviceNotActive 2661 2661 # 2662 2662 # Since: 1.1 2663 2663 ## ··· 2696 2696 # abandon the job immediately (even if it is paused) instead of waiting 2697 2697 # for the destination to complete its final synchronization (since 1.3) 2698 2698 # 2699 - # Returns: Nothing on success 2700 - # If no background operation is active on this device, DeviceNotActive 2699 + # Returns: - Nothing on success 2700 + # - If no background operation is active on this device, DeviceNotActive 2701 2701 # 2702 2702 # Since: 1.1 2703 2703 ## ··· 2720 2720 # the name of the parameter), but since QEMU 2.7 it can have 2721 2721 # other values. 2722 2722 # 2723 - # Returns: Nothing on success 2724 - # If no background operation is active on this device, DeviceNotActive 2723 + # Returns: - Nothing on success 2724 + # - If no background operation is active on this device, DeviceNotActive 2725 2725 # 2726 2726 # Since: 1.3 2727 2727 ## ··· 2742 2742 # the name of the parameter), but since QEMU 2.7 it can have 2743 2743 # other values. 2744 2744 # 2745 - # Returns: Nothing on success 2746 - # If no background operation is active on this device, DeviceNotActive 2745 + # Returns: - Nothing on success 2746 + # - If no background operation is active on this device, DeviceNotActive 2747 2747 # 2748 2748 # Since: 1.3 2749 2749 ## ··· 2770 2770 # the name of the parameter), but since QEMU 2.7 it can have 2771 2771 # other values. 2772 2772 # 2773 - # Returns: Nothing on success 2774 - # If no background operation is active on this device, DeviceNotActive 2773 + # Returns: - Nothing on success 2774 + # - If no background operation is active on this device, DeviceNotActive 2775 2775 # 2776 2776 # Since: 1.3 2777 2777 ## ··· 2820 2820 # 2821 2821 # Determines how to handle discard requests. 2822 2822 # 2823 - # @ignore: Ignore the request 2824 - # @unmap: Forward as an unmap request 2823 + # @ignore: Ignore the request 2824 + # @unmap: Forward as an unmap request 2825 2825 # 2826 2826 # Since: 2.9 2827 2827 ## ··· 2834 2834 # Describes the operation mode for the automatic conversion of plain 2835 2835 # zero writes by the OS to driver specific optimized zero write commands. 2836 2836 # 2837 - # @off: Disabled (default) 2838 - # @on: Enabled 2839 - # @unmap: Enabled and even try to unmap blocks if possible. This requires 2840 - # also that @BlockdevDiscardOptions is set to unmap for this device. 2837 + # @off: Disabled (default) 2838 + # @on: Enabled 2839 + # @unmap: Enabled and even try to unmap blocks if possible. This requires 2840 + # also that @BlockdevDiscardOptions is set to unmap for this device. 2841 2841 # 2842 2842 # Since: 2.1 2843 2843 ## ··· 2849 2849 # 2850 2850 # Selects the AIO backend to handle I/O requests 2851 2851 # 2852 - # @threads: Use qemu's thread pool 2853 - # @native: Use native AIO backend (only Linux and Windows) 2854 - # @io_uring: Use linux io_uring (since 5.0) 2852 + # @threads: Use qemu's thread pool 2853 + # @native: Use native AIO backend (only Linux and Windows) 2854 + # @io_uring: Use linux io_uring (since 5.0) 2855 2855 # 2856 2856 # Since: 2.9 2857 2857 ## ··· 2864 2864 # 2865 2865 # Includes cache-related options for block devices 2866 2866 # 2867 - # @direct: enables use of O_DIRECT (bypass the host page cache; 2868 - # default: false) 2869 - # @no-flush: ignore any flush requests for the device (default: 2870 - # false) 2867 + # @direct: enables use of O_DIRECT (bypass the host page cache; 2868 + # default: false) 2869 + # @no-flush: ignore any flush requests for the device (default: 2870 + # false) 2871 2871 # 2872 2872 # Since: 2.9 2873 2873 ## ··· 2905 2905 # 2906 2906 # Driver specific block device options for the file backend. 2907 2907 # 2908 - # @filename: path to the image file 2909 - # @pr-manager: the id for the object that will handle persistent reservations 2910 - # for this device (default: none, forward the commands via SG_IO; 2911 - # since 2.11) 2912 - # @aio: AIO backend (default: threads) (since: 2.8) 2913 - # @locking: whether to enable file locking. If set to 'auto', only enable 2914 - # when Open File Descriptor (OFD) locking API is available 2915 - # (default: auto, since 2.10) 2916 - # @drop-cache: invalidate page cache during live migration. This prevents 2917 - # stale data on the migration destination with cache.direct=off. 2918 - # Currently only supported on Linux hosts. 2919 - # (default: on, since: 4.0) 2908 + # @filename: path to the image file 2909 + # @pr-manager: the id for the object that will handle persistent reservations 2910 + # for this device (default: none, forward the commands via SG_IO; 2911 + # since 2.11) 2912 + # @aio: AIO backend (default: threads) (since: 2.8) 2913 + # @locking: whether to enable file locking. If set to 'auto', only enable 2914 + # when Open File Descriptor (OFD) locking API is available 2915 + # (default: auto, since 2.10) 2916 + # @drop-cache: invalidate page cache during live migration. This prevents 2917 + # stale data on the migration destination with cache.direct=off. 2918 + # Currently only supported on Linux hosts. 2919 + # (default: on, since: 4.0) 2920 2920 # @x-check-cache-dropped: whether to check that page cache was dropped on live 2921 2921 # migration. May cause noticeable delays if the image 2922 2922 # file is large, do not use in production. ··· 2938 2938 '*pr-manager': 'str', 2939 2939 '*locking': 'OnOffAuto', 2940 2940 '*aio': 'BlockdevAioOptions', 2941 - '*drop-cache': {'type': 'bool', 2942 - 'if': 'defined(CONFIG_LINUX)'}, 2941 + '*drop-cache': {'type': 'bool', 2942 + 'if': 'defined(CONFIG_LINUX)'}, 2943 2943 '*x-check-cache-dropped': 'bool' }, 2944 2944 'features': [ { 'name': 'dynamic-auto-read-only', 2945 2945 'if': 'defined(CONFIG_POSIX)' } ] } ··· 2949 2949 # 2950 2950 # Driver specific block device options for the null backend. 2951 2951 # 2952 - # @size: size of the device in bytes. 2952 + # @size: size of the device in bytes. 2953 2953 # @latency-ns: emulated latency (in nanoseconds) in processing 2954 2954 # requests. Default to zero which completes requests immediately. 2955 2955 # (Since 2.4) ··· 2966 2966 # 2967 2967 # Driver specific block device options for the NVMe backend. 2968 2968 # 2969 - # @device: PCI controller address of the NVMe device in 2970 - # format hhhh:bb:ss.f (host:bus:slot.function) 2969 + # @device: PCI controller address of the NVMe device in 2970 + # format hhhh:bb:ss.f (host:bus:slot.function) 2971 2971 # @namespace: namespace number of the device, starting from 1. 2972 2972 # 2973 2973 # Note that the PCI @device must have been unbound from any host ··· 2983 2983 # 2984 2984 # Driver specific block device options for the vvfat protocol. 2985 2985 # 2986 - # @dir: directory to be exported as FAT image 2987 - # @fat-type: FAT type: 12, 16 or 32 2988 - # @floppy: whether to export a floppy image (true) or 2989 - # partitioned hard disk (false; default) 2990 - # @label: set the volume label, limited to 11 bytes. FAT16 and 2991 - # FAT32 traditionally have some restrictions on labels, which are 2992 - # ignored by most operating systems. Defaults to "QEMU VVFAT". 2993 - # (since 2.4) 2994 - # @rw: whether to allow write operations (default: false) 2986 + # @dir: directory to be exported as FAT image 2987 + # @fat-type: FAT type: 12, 16 or 32 2988 + # @floppy: whether to export a floppy image (true) or 2989 + # partitioned hard disk (false; default) 2990 + # @label: set the volume label, limited to 11 bytes. FAT16 and 2991 + # FAT32 traditionally have some restrictions on labels, which are 2992 + # ignored by most operating systems. Defaults to "QEMU VVFAT". 2993 + # (since 2.4) 2994 + # @rw: whether to allow write operations (default: false) 2995 2995 # 2996 2996 # Since: 2.9 2997 2997 ## ··· 3005 3005 # Driver specific block device options for image format that have no option 3006 3006 # besides their data source. 3007 3007 # 3008 - # @file: reference to or definition of the data source block device 3008 + # @file: reference to or definition of the data source block device 3009 3009 # 3010 3010 # Since: 2.9 3011 3011 ## ··· 3034 3034 # Driver specific block device options for image format that have no option 3035 3035 # besides their data source and an optional backing file. 3036 3036 # 3037 - # @backing: reference to or definition of the backing file block 3038 - # device, null disables the backing file entirely. 3039 - # Defaults to the backing file stored the image file. 3037 + # @backing: reference to or definition of the backing file block 3038 + # device, null disables the backing file entirely. 3039 + # Defaults to the backing file stored the image file. 3040 3040 # 3041 3041 # Since: 2.9 3042 3042 ## ··· 3049 3049 # 3050 3050 # General overlap check modes. 3051 3051 # 3052 - # @none: Do not perform any checks 3052 + # @none: Do not perform any checks 3053 3053 # 3054 - # @constant: Perform only checks which can be done in constant time and 3055 - # without reading anything from disk 3054 + # @constant: Perform only checks which can be done in constant time and 3055 + # without reading anything from disk 3056 3056 # 3057 - # @cached: Perform only checks which can be done without reading anything 3058 - # from disk 3057 + # @cached: Perform only checks which can be done without reading anything 3058 + # from disk 3059 3059 # 3060 - # @all: Perform all available overlap checks 3060 + # @all: Perform all available overlap checks 3061 3061 # 3062 3062 # Since: 2.9 3063 3063 ## ··· 3096 3096 # Specifies which metadata structures should be guarded against unintended 3097 3097 # overwriting. 3098 3098 # 3099 - # @flags: set of flags for separate specification of each metadata structure 3100 - # type 3099 + # @flags: set of flags for separate specification of each metadata structure 3100 + # type 3101 3101 # 3102 - # @mode: named mode which chooses a specific set of flags 3102 + # @mode: named mode which chooses a specific set of flags 3103 3103 # 3104 3104 # Since: 2.9 3105 3105 ## ··· 3132 3132 # 3133 3133 # Driver specific block device options for qcow. 3134 3134 # 3135 - # @encrypt: Image decryption options. Mandatory for 3136 - # encrypted images, except when doing a metadata-only 3137 - # probe of the image. 3135 + # @encrypt: Image decryption options. Mandatory for 3136 + # encrypted images, except when doing a metadata-only 3137 + # probe of the image. 3138 3138 # 3139 3139 # Since: 2.10 3140 3140 ## ··· 3169 3169 # 3170 3170 # Driver specific block device options for qcow2. 3171 3171 # 3172 - # @lazy-refcounts: whether to enable the lazy refcounts 3173 - # feature (default is taken from the image file) 3172 + # @lazy-refcounts: whether to enable the lazy refcounts 3173 + # feature (default is taken from the image file) 3174 3174 # 3175 - # @pass-discard-request: whether discard requests to the qcow2 3176 - # device should be forwarded to the data source 3175 + # @pass-discard-request: whether discard requests to the qcow2 3176 + # device should be forwarded to the data source 3177 3177 # 3178 3178 # @pass-discard-snapshot: whether discard requests for the data source 3179 3179 # should be issued when a snapshot operation (e.g. 3180 3180 # deleting a snapshot) frees clusters in the qcow2 file 3181 3181 # 3182 - # @pass-discard-other: whether discard requests for the data source 3183 - # should be issued on other occasions where a cluster 3184 - # gets freed 3182 + # @pass-discard-other: whether discard requests for the data source 3183 + # should be issued on other occasions where a cluster 3184 + # gets freed 3185 3185 # 3186 - # @overlap-check: which overlap checks to perform for writes 3187 - # to the image, defaults to 'cached' (since 2.2) 3186 + # @overlap-check: which overlap checks to perform for writes 3187 + # to the image, defaults to 'cached' (since 2.2) 3188 3188 # 3189 - # @cache-size: the maximum total size of the L2 table and 3190 - # refcount block caches in bytes (since 2.2) 3189 + # @cache-size: the maximum total size of the L2 table and 3190 + # refcount block caches in bytes (since 2.2) 3191 3191 # 3192 - # @l2-cache-size: the maximum size of the L2 table cache in 3193 - # bytes (since 2.2) 3192 + # @l2-cache-size: the maximum size of the L2 table cache in 3193 + # bytes (since 2.2) 3194 3194 # 3195 - # @l2-cache-entry-size: the size of each entry in the L2 cache in 3196 - # bytes. It must be a power of two between 512 3197 - # and the cluster size. The default value is 3198 - # the cluster size (since 2.12) 3195 + # @l2-cache-entry-size: the size of each entry in the L2 cache in 3196 + # bytes. It must be a power of two between 512 3197 + # and the cluster size. The default value is 3198 + # the cluster size (since 2.12) 3199 3199 # 3200 - # @refcount-cache-size: the maximum size of the refcount block cache 3201 - # in bytes (since 2.2) 3200 + # @refcount-cache-size: the maximum size of the refcount block cache 3201 + # in bytes (since 2.2) 3202 3202 # 3203 - # @cache-clean-interval: clean unused entries in the L2 and refcount 3204 - # caches. The interval is in seconds. The default value 3205 - # is 600 on supporting platforms, and 0 on other 3206 - # platforms. 0 disables this feature. (since 2.5) 3203 + # @cache-clean-interval: clean unused entries in the L2 and refcount 3204 + # caches. The interval is in seconds. The default value 3205 + # is 600 on supporting platforms, and 0 on other 3206 + # platforms. 0 disables this feature. (since 2.5) 3207 3207 # 3208 - # @encrypt: Image decryption options. Mandatory for 3209 - # encrypted images, except when doing a metadata-only 3210 - # probe of the image. (since 2.10) 3208 + # @encrypt: Image decryption options. Mandatory for 3209 + # encrypted images, except when doing a metadata-only 3210 + # probe of the image. (since 2.10) 3211 3211 # 3212 - # @data-file: reference to or definition of the external data file. 3213 - # This may only be specified for images that require an 3214 - # external data file. If it is not specified for such 3215 - # an image, the data file name is loaded from the image 3216 - # file. (since 4.0) 3212 + # @data-file: reference to or definition of the external data file. 3213 + # This may only be specified for images that require an 3214 + # external data file. If it is not specified for such 3215 + # an image, the data file name is loaded from the image 3216 + # file. (since 4.0) 3217 3217 # 3218 3218 # Since: 2.9 3219 3219 ## ··· 3235 3235 ## 3236 3236 # @SshHostKeyCheckMode: 3237 3237 # 3238 - # @none Don't check the host key at all 3239 - # @hash Compare the host key with a given hash 3240 - # @known_hosts Check the host key against the known_hosts file 3238 + # @none: Don't check the host key at all 3239 + # @hash: Compare the host key with a given hash 3240 + # @known_hosts: Check the host key against the known_hosts file 3241 3241 # 3242 3242 # Since: 2.12 3243 3243 ## ··· 3247 3247 ## 3248 3248 # @SshHostKeyCheckHashType: 3249 3249 # 3250 - # @md5 The given hash is an md5 hash 3251 - # @sha1 The given hash is an sha1 hash 3250 + # @md5: The given hash is an md5 hash 3251 + # @sha1: The given hash is an sha1 hash 3252 3252 # 3253 3253 # Since: 2.12 3254 3254 ## ··· 3258 3258 ## 3259 3259 # @SshHostKeyHash: 3260 3260 # 3261 - # @type The hash algorithm used for the hash 3262 - # @hash The expected hash value 3261 + # @type: The hash algorithm used for the hash 3262 + # @hash: The expected hash value 3263 3263 # 3264 3264 # Since: 2.12 3265 3265 ## ··· 3304 3304 # 3305 3305 # Trigger events supported by blkdebug. 3306 3306 # 3307 - # @l1_shrink_write_table: write zeros to the l1 table to shrink image. 3308 - # (since 2.11) 3307 + # @l1_shrink_write_table: write zeros to the l1 table to shrink image. 3308 + # (since 2.11) 3309 3309 # 3310 3310 # @l1_shrink_free_l2_clusters: discard the l2 tables. (since 2.11) 3311 3311 # ··· 3363 3363 # 3364 3364 # Describes a single error injection for blkdebug. 3365 3365 # 3366 - # @event: trigger event 3366 + # @event: trigger event 3367 3367 # 3368 - # @state: the state identifier blkdebug needs to be in to 3369 - # actually trigger the event; defaults to "any" 3368 + # @state: the state identifier blkdebug needs to be in to 3369 + # actually trigger the event; defaults to "any" 3370 3370 # 3371 - # @iotype: the type of I/O operations on which this error should 3372 - # be injected; defaults to "all read, write, 3373 - # write-zeroes, discard, and flush operations" 3374 - # (since: 4.1) 3371 + # @iotype: the type of I/O operations on which this error should 3372 + # be injected; defaults to "all read, write, 3373 + # write-zeroes, discard, and flush operations" 3374 + # (since: 4.1) 3375 3375 # 3376 - # @errno: error identifier (errno) to be returned; defaults to 3377 - # EIO 3376 + # @errno: error identifier (errno) to be returned; defaults to 3377 + # EIO 3378 3378 # 3379 - # @sector: specifies the sector index which has to be affected 3380 - # in order to actually trigger the event; defaults to "any 3381 - # sector" 3379 + # @sector: specifies the sector index which has to be affected 3380 + # in order to actually trigger the event; defaults to "any 3381 + # sector" 3382 3382 # 3383 - # @once: disables further events after this one has been 3384 - # triggered; defaults to false 3383 + # @once: disables further events after this one has been 3384 + # triggered; defaults to false 3385 3385 # 3386 3386 # @immediately: fail immediately; defaults to false 3387 3387 # ··· 3401 3401 # 3402 3402 # Describes a single state-change event for blkdebug. 3403 3403 # 3404 - # @event: trigger event 3404 + # @event: trigger event 3405 3405 # 3406 - # @state: the current state identifier blkdebug needs to be in; 3407 - # defaults to "any" 3406 + # @state: the current state identifier blkdebug needs to be in; 3407 + # defaults to "any" 3408 3408 # 3409 - # @new_state: the state identifier blkdebug is supposed to assume if 3410 - # this event is triggered 3409 + # @new_state: the state identifier blkdebug is supposed to assume if 3410 + # this event is triggered 3411 3411 # 3412 3412 # Since: 2.9 3413 3413 ## ··· 3421 3421 # 3422 3422 # Driver specific block device options for blkdebug. 3423 3423 # 3424 - # @image: underlying raw block device (or image file) 3424 + # @image: underlying raw block device (or image file) 3425 3425 # 3426 - # @config: filename of the configuration file 3426 + # @config: filename of the configuration file 3427 3427 # 3428 - # @align: required alignment for requests in bytes, must be 3429 - # positive power of 2, or 0 for default 3428 + # @align: required alignment for requests in bytes, must be 3429 + # positive power of 2, or 0 for default 3430 3430 # 3431 - # @max-transfer: maximum size for I/O transfers in bytes, must be 3432 - # positive multiple of @align and of the underlying 3433 - # file's request alignment (but need not be a power of 3434 - # 2), or 0 for default (since 2.10) 3431 + # @max-transfer: maximum size for I/O transfers in bytes, must be 3432 + # positive multiple of @align and of the underlying 3433 + # file's request alignment (but need not be a power of 3434 + # 2), or 0 for default (since 2.10) 3435 3435 # 3436 - # @opt-write-zero: preferred alignment for write zero requests in bytes, 3437 - # must be positive multiple of @align and of the 3438 - # underlying file's request alignment (but need not be a 3439 - # power of 2), or 0 for default (since 2.10) 3436 + # @opt-write-zero: preferred alignment for write zero requests in bytes, 3437 + # must be positive multiple of @align and of the 3438 + # underlying file's request alignment (but need not be a 3439 + # power of 2), or 0 for default (since 2.10) 3440 3440 # 3441 - # @max-write-zero: maximum size for write zero requests in bytes, must be 3442 - # positive multiple of @align, of @opt-write-zero, and of 3443 - # the underlying file's request alignment (but need not 3444 - # be a power of 2), or 0 for default (since 2.10) 3441 + # @max-write-zero: maximum size for write zero requests in bytes, must be 3442 + # positive multiple of @align, of @opt-write-zero, and of 3443 + # the underlying file's request alignment (but need not 3444 + # be a power of 2), or 0 for default (since 2.10) 3445 3445 # 3446 - # @opt-discard: preferred alignment for discard requests in bytes, must 3447 - # be positive multiple of @align and of the underlying 3448 - # file's request alignment (but need not be a power of 3449 - # 2), or 0 for default (since 2.10) 3446 + # @opt-discard: preferred alignment for discard requests in bytes, must 3447 + # be positive multiple of @align and of the underlying 3448 + # file's request alignment (but need not be a power of 3449 + # 2), or 0 for default (since 2.10) 3450 3450 # 3451 - # @max-discard: maximum size for discard requests in bytes, must be 3452 - # positive multiple of @align, of @opt-discard, and of 3453 - # the underlying file's request alignment (but need not 3454 - # be a power of 2), or 0 for default (since 2.10) 3451 + # @max-discard: maximum size for discard requests in bytes, must be 3452 + # positive multiple of @align, of @opt-discard, and of 3453 + # the underlying file's request alignment (but need not 3454 + # be a power of 2), or 0 for default (since 2.10) 3455 3455 # 3456 - # @inject-error: array of error injection descriptions 3456 + # @inject-error: array of error injection descriptions 3457 3457 # 3458 - # @set-state: array of state-change descriptions 3458 + # @set-state: array of state-change descriptions 3459 3459 # 3460 3460 # @take-child-perms: Permissions to take on @image in addition to what 3461 3461 # is necessary anyway (which depends on how the ··· 3485 3485 # 3486 3486 # Driver specific block device options for blklogwrites. 3487 3487 # 3488 - # @file: block device 3488 + # @file: block device 3489 3489 # 3490 - # @log: block device used to log writes to @file 3490 + # @log: block device used to log writes to @file 3491 3491 # 3492 3492 # @log-sector-size: sector size used in logging writes to @file, determines 3493 3493 # granularity of offsets and sizes of writes (default: 512) 3494 3494 # 3495 - # @log-append: append to an existing log (default: false) 3495 + # @log-append: append to an existing log (default: false) 3496 3496 # 3497 3497 # @log-super-update-interval: interval of write requests after which the log 3498 3498 # super block is updated to disk (default: 4096) ··· 3511 3511 # 3512 3512 # Driver specific block device options for blkverify. 3513 3513 # 3514 - # @test: block device to be tested 3514 + # @test: block device to be tested 3515 3515 # 3516 - # @raw: raw image used for verification 3516 + # @raw: raw image used for verification 3517 3517 # 3518 3518 # Since: 2.9 3519 3519 ## ··· 3526 3526 # 3527 3527 # Driver specific block device options for blkreplay. 3528 3528 # 3529 - # @image: disk image which should be controlled with blkreplay 3529 + # @image: disk image which should be controlled with blkreplay 3530 3530 # 3531 3531 # Since: 4.2 3532 3532 ## ··· 3551 3551 # 3552 3552 # Driver specific block device options for Quorum 3553 3553 # 3554 - # @blkverify: true if the driver must print content mismatch 3554 + # @blkverify: true if the driver must print content mismatch 3555 3555 # set to false by default 3556 3556 # 3557 - # @children: the children block devices to use 3557 + # @children: the children block devices to use 3558 3558 # 3559 3559 # @vote-threshold: the vote limit under which a read will fail 3560 3560 # ··· 3578 3578 # 3579 3579 # Driver specific block device options for Gluster 3580 3580 # 3581 - # @volume: name of gluster volume where VM image resides 3581 + # @volume: name of gluster volume where VM image resides 3582 3582 # 3583 - # @path: absolute path to image file in gluster volume 3583 + # @path: absolute path to image file in gluster volume 3584 3584 # 3585 - # @server: gluster servers description 3585 + # @server: gluster servers description 3586 3586 # 3587 - # @debug: libgfapi log level (default '4' which is Error) 3588 - # (Since 2.8) 3587 + # @debug: libgfapi log level (default '4' which is Error) 3588 + # (Since 2.8) 3589 3589 # 3590 - # @logfile: libgfapi log file (default /dev/stderr) (Since 2.8) 3590 + # @logfile: libgfapi log file (default /dev/stderr) (Since 2.8) 3591 3591 # 3592 3592 # Since: 2.9 3593 3593 ## ··· 3622 3622 ## 3623 3623 # @BlockdevOptionsIscsi: 3624 3624 # 3625 - # @transport: The iscsi transport type 3625 + # @transport: The iscsi transport type 3626 3626 # 3627 - # @portal: The address of the iscsi portal 3627 + # @portal: The address of the iscsi portal 3628 3628 # 3629 - # @target: The target iqn name 3629 + # @target: The target iqn name 3630 3630 # 3631 - # @lun: LUN to connect to. Defaults to 0. 3631 + # @lun: LUN to connect to. Defaults to 0. 3632 3632 # 3633 - # @user: User name to log in with. If omitted, no CHAP 3634 - # authentication is performed. 3633 + # @user: User name to log in with. If omitted, no CHAP 3634 + # authentication is performed. 3635 3635 # 3636 3636 # @password-secret: The ID of a QCryptoSecret object providing 3637 3637 # the password for the login. This option is required if 3638 3638 # @user is specified. 3639 3639 # 3640 - # @initiator-name: The iqn name we want to identify to the target 3641 - # as. If this option is not specified, an initiator name is 3642 - # generated automatically. 3640 + # @initiator-name: The iqn name we want to identify to the target 3641 + # as. If this option is not specified, an initiator name is 3642 + # generated automatically. 3643 3643 # 3644 - # @header-digest: The desired header digest. Defaults to 3645 - # none-crc32c. 3644 + # @header-digest: The desired header digest. Defaults to 3645 + # none-crc32c. 3646 3646 # 3647 - # @timeout: Timeout in seconds after which a request will 3648 - # timeout. 0 means no timeout and is the default. 3647 + # @timeout: Timeout in seconds after which a request will 3648 + # timeout. 0 means no timeout and is the default. 3649 3649 # 3650 3650 # Driver specific block device options for iscsi 3651 3651 # ··· 3674 3674 ## 3675 3675 # @BlockdevOptionsRbd: 3676 3676 # 3677 - # @pool: Ceph pool name. 3677 + # @pool: Ceph pool name. 3678 3678 # 3679 - # @image: Image name in the Ceph pool. 3679 + # @image: Image name in the Ceph pool. 3680 3680 # 3681 - # @conf: path to Ceph configuration file. Values 3682 - # in the configuration file will be overridden by 3683 - # options specified via QAPI. 3681 + # @conf: path to Ceph configuration file. Values 3682 + # in the configuration file will be overridden by 3683 + # options specified via QAPI. 3684 3684 # 3685 - # @snapshot: Ceph snapshot name. 3685 + # @snapshot: Ceph snapshot name. 3686 3686 # 3687 - # @user: Ceph id name. 3687 + # @user: Ceph id name. 3688 3688 # 3689 3689 # @auth-client-required: Acceptable authentication modes. 3690 - # This maps to Ceph configuration option 3691 - # "auth_client_required". (Since 3.0) 3690 + # This maps to Ceph configuration option 3691 + # "auth_client_required". (Since 3.0) 3692 3692 # 3693 - # @key-secret: ID of a QCryptoSecret object providing a key 3694 - # for cephx authentication. 3695 - # This maps to Ceph configuration option 3696 - # "key". (Since 3.0) 3693 + # @key-secret: ID of a QCryptoSecret object providing a key 3694 + # for cephx authentication. 3695 + # This maps to Ceph configuration option 3696 + # "key". (Since 3.0) 3697 3697 # 3698 - # @server: Monitor host address and port. This maps 3699 - # to the "mon_host" Ceph option. 3698 + # @server: Monitor host address and port. This maps 3699 + # to the "mon_host" Ceph option. 3700 3700 # 3701 3701 # Since: 2.9 3702 3702 ## ··· 3715 3715 # 3716 3716 # Driver specific block device options for sheepdog 3717 3717 # 3718 - # @vdi: Virtual disk image name 3719 - # @server: The Sheepdog server to connect to 3720 - # @snap-id: Snapshot ID 3721 - # @tag: Snapshot tag name 3718 + # @vdi: Virtual disk image name 3719 + # @server: The Sheepdog server to connect to 3720 + # @snap-id: Snapshot ID 3721 + # @tag: Snapshot tag name 3722 3722 # 3723 3723 # Only one of @snap-id and @tag may be present. 3724 3724 # ··· 3768 3768 # 3769 3769 # An enumeration of NFS transport types 3770 3770 # 3771 - # @inet: TCP transport 3771 + # @inet: TCP transport 3772 3772 # 3773 3773 # Since: 2.9 3774 3774 ## ··· 3780 3780 # 3781 3781 # Captures the address of the socket 3782 3782 # 3783 - # @type: transport type used for NFS (only TCP supported) 3783 + # @type: transport type used for NFS (only TCP supported) 3784 3784 # 3785 - # @host: host address for NFS server 3785 + # @host: host address for NFS server 3786 3786 # 3787 3787 # Since: 2.9 3788 3788 ## ··· 3795 3795 # 3796 3796 # Driver specific block device option for NFS 3797 3797 # 3798 - # @server: host address 3798 + # @server: host address 3799 3799 # 3800 - # @path: path of the image on the host 3800 + # @path: path of the image on the host 3801 3801 # 3802 - # @user: UID value to use when talking to the 3803 - # server (defaults to 65534 on Windows and getuid() 3804 - # on unix) 3802 + # @user: UID value to use when talking to the 3803 + # server (defaults to 65534 on Windows and getuid() 3804 + # on unix) 3805 3805 # 3806 - # @group: GID value to use when talking to the 3807 - # server (defaults to 65534 on Windows and getgid() 3808 - # in unix) 3806 + # @group: GID value to use when talking to the 3807 + # server (defaults to 65534 on Windows and getgid() 3808 + # in unix) 3809 3809 # 3810 - # @tcp-syn-count: number of SYNs during the session 3811 - # establishment (defaults to libnfs default) 3810 + # @tcp-syn-count: number of SYNs during the session 3811 + # establishment (defaults to libnfs default) 3812 3812 # 3813 - # @readahead-size: set the readahead size in bytes (defaults 3814 - # to libnfs default) 3813 + # @readahead-size: set the readahead size in bytes (defaults 3814 + # to libnfs default) 3815 3815 # 3816 - # @page-cache-size: set the pagecache size in bytes (defaults 3817 - # to libnfs default) 3816 + # @page-cache-size: set the pagecache size in bytes (defaults 3817 + # to libnfs default) 3818 3818 # 3819 - # @debug: set the NFS debug level (max 2) (defaults 3820 - # to libnfs default) 3819 + # @debug: set the NFS debug level (max 2) (defaults 3820 + # to libnfs default) 3821 3821 # 3822 3822 # Since: 2.9 3823 3823 ## ··· 3837 3837 # Driver specific block device options shared by all protocols supported by the 3838 3838 # curl backend. 3839 3839 # 3840 - # @url: URL of the image file 3840 + # @url: URL of the image file 3841 3841 # 3842 - # @readahead: Size of the read-ahead cache; must be a multiple of 3843 - # 512 (defaults to 256 kB) 3842 + # @readahead: Size of the read-ahead cache; must be a multiple of 3843 + # 512 (defaults to 256 kB) 3844 3844 # 3845 - # @timeout: Timeout for connections, in seconds (defaults to 5) 3845 + # @timeout: Timeout for connections, in seconds (defaults to 5) 3846 3846 # 3847 - # @username: Username for authentication (defaults to none) 3847 + # @username: Username for authentication (defaults to none) 3848 3848 # 3849 - # @password-secret: ID of a QCryptoSecret object providing a password 3850 - # for authentication (defaults to no password) 3849 + # @password-secret: ID of a QCryptoSecret object providing a password 3850 + # for authentication (defaults to no password) 3851 3851 # 3852 - # @proxy-username: Username for proxy authentication (defaults to none) 3852 + # @proxy-username: Username for proxy authentication (defaults to none) 3853 3853 # 3854 - # @proxy-password-secret: ID of a QCryptoSecret object providing a password 3855 - # for proxy authentication (defaults to no password) 3854 + # @proxy-password-secret: ID of a QCryptoSecret object providing a password 3855 + # for proxy authentication (defaults to no password) 3856 3856 # 3857 3857 # Since: 2.9 3858 3858 ## ··· 3871 3871 # Driver specific block device options for HTTP connections over the curl 3872 3872 # backend. URLs must start with "http://". 3873 3873 # 3874 - # @cookie: List of cookies to set; format is 3875 - # "name1=content1; name2=content2;" as explained by 3876 - # CURLOPT_COOKIE(3). Defaults to no cookies. 3874 + # @cookie: List of cookies to set; format is 3875 + # "name1=content1; name2=content2;" as explained by 3876 + # CURLOPT_COOKIE(3). Defaults to no cookies. 3877 3877 # 3878 3878 # @cookie-secret: ID of a QCryptoSecret object providing the cookie data in a 3879 3879 # secure way. See @cookie for the format. (since 2.10) ··· 3891 3891 # Driver specific block device options for HTTPS connections over the curl 3892 3892 # backend. URLs must start with "https://". 3893 3893 # 3894 - # @cookie: List of cookies to set; format is 3895 - # "name1=content1; name2=content2;" as explained by 3896 - # CURLOPT_COOKIE(3). Defaults to no cookies. 3894 + # @cookie: List of cookies to set; format is 3895 + # "name1=content1; name2=content2;" as explained by 3896 + # CURLOPT_COOKIE(3). Defaults to no cookies. 3897 3897 # 3898 - # @sslverify: Whether to verify the SSL certificate's validity (defaults to 3899 - # true) 3898 + # @sslverify: Whether to verify the SSL certificate's validity (defaults to 3899 + # true) 3900 3900 # 3901 3901 # @cookie-secret: ID of a QCryptoSecret object providing the cookie data in a 3902 3902 # secure way. See @cookie for the format. (since 2.10) ··· 3927 3927 # Driver specific block device options for FTPS connections over the curl 3928 3928 # backend. URLs must start with "ftps://". 3929 3929 # 3930 - # @sslverify: Whether to verify the SSL certificate's validity (defaults to 3931 - # true) 3930 + # @sslverify: Whether to verify the SSL certificate's validity (defaults to 3931 + # true) 3932 3932 # 3933 3933 # Since: 2.9 3934 3934 ## ··· 3941 3941 # 3942 3942 # Driver specific block device options for NBD. 3943 3943 # 3944 - # @server: NBD server address 3944 + # @server: NBD server address 3945 3945 # 3946 - # @export: export name 3946 + # @export: export name 3947 3947 # 3948 - # @tls-creds: TLS credentials ID 3948 + # @tls-creds: TLS credentials ID 3949 3949 # 3950 3950 # @x-dirty-bitmap: A "qemu:dirty-bitmap:NAME" string to query in place of 3951 3951 # traditional "base:allocation" block status (see ··· 3973 3973 # 3974 3974 # Driver specific block device options for the raw driver. 3975 3975 # 3976 - # @offset: position where the block device starts 3977 - # @size: the assumed size of the device 3976 + # @offset: position where the block device starts 3977 + # @size: the assumed size of the device 3978 3978 # 3979 3979 # Since: 2.9 3980 3980 ## ··· 3987 3987 # 3988 3988 # Driver specific block device options for VxHS 3989 3989 # 3990 - # @vdisk-id: UUID of VxHS volume 3991 - # @server: vxhs server IP, port 3992 - # @tls-creds: TLS credentials ID 3990 + # @vdisk-id: UUID of VxHS volume 3991 + # @server: vxhs server IP, port 3992 + # @tls-creds: TLS credentials ID 3993 3993 # 3994 3994 # Since: 2.10 3995 3995 ## ··· 4003 4003 # 4004 4004 # Driver specific block device options for the throttle driver 4005 4005 # 4006 - # @throttle-group: the name of the throttle-group object to use. It 4007 - # must already exist. 4008 - # @file: reference to or definition of the data source block device 4006 + # @throttle-group: the name of the throttle-group object to use. It 4007 + # must already exist. 4008 + # @file: reference to or definition of the data source block device 4009 4009 # Since: 2.11 4010 4010 ## 4011 4011 { 'struct': 'BlockdevOptionsThrottle', ··· 4018 4018 # Options for creating a block device. Many options are available for all 4019 4019 # block devices, independent of the block driver: 4020 4020 # 4021 - # @driver: block driver name 4022 - # @node-name: the node name of the new node (Since 2.0). 4023 - # This option is required on the top level of blockdev-add. 4024 - # Valid node names start with an alphabetic character and may 4025 - # contain only alphanumeric characters, '-', '.' and '_'. Their 4026 - # maximum length is 31 characters. 4027 - # @discard: discard-related options (default: ignore) 4028 - # @cache: cache-related options 4029 - # @read-only: whether the block device should be read-only (default: false). 4030 - # Note that some block drivers support only read-only access, 4031 - # either generally or in certain configurations. In this case, 4032 - # the default value does not work and the option must be 4033 - # specified explicitly. 4021 + # @driver: block driver name 4022 + # @node-name: the node name of the new node (Since 2.0). 4023 + # This option is required on the top level of blockdev-add. 4024 + # Valid node names start with an alphabetic character and may 4025 + # contain only alphanumeric characters, '-', '.' and '_'. Their 4026 + # maximum length is 31 characters. 4027 + # @discard: discard-related options (default: ignore) 4028 + # @cache: cache-related options 4029 + # @read-only: whether the block device should be read-only (default: false). 4030 + # Note that some block drivers support only read-only access, 4031 + # either generally or in certain configurations. In this case, 4032 + # the default value does not work and the option must be 4033 + # specified explicitly. 4034 4034 # @auto-read-only: if true and @read-only is false, QEMU may automatically 4035 4035 # decide not to open the image read-write as requested, but 4036 4036 # fall back to read-only instead (and switch between the modes ··· 4039 4039 # (default: false, since 3.1) 4040 4040 # @detect-zeroes: detect and optimize zero writes (Since 2.1) 4041 4041 # (default: off) 4042 - # @force-share: force share all permission on added nodes. 4043 - # Requires read-only=true. (Since 2.10) 4042 + # @force-share: force share all permission on added nodes. 4043 + # Requires read-only=true. (Since 2.10) 4044 4044 # 4045 4045 # Remaining options are determined by the block driver. 4046 4046 # ··· 4106 4106 # 4107 4107 # Reference to a block device. 4108 4108 # 4109 - # @definition: defines a new block device inline 4110 - # @reference: references the ID of an existing block device 4109 + # @definition: defines a new block device inline 4110 + # @reference: references the ID of an existing block device 4111 4111 # 4112 4112 # Since: 2.9 4113 4113 ## ··· 4120 4120 # 4121 4121 # Reference to a block device. 4122 4122 # 4123 - # @definition: defines a new block device inline 4124 - # @reference: references the ID of an existing block device. 4125 - # An empty string means that no block device should 4126 - # be referenced. Deprecated; use null instead. 4127 - # @null: No block device should be referenced (since 2.10) 4123 + # @definition: defines a new block device inline 4124 + # @reference: references the ID of an existing block device. 4125 + # An empty string means that no block device should 4126 + # be referenced. Deprecated; use null instead. 4127 + # @null: No block device should be referenced (since 2.10) 4128 4128 # 4129 4129 # Since: 2.9 4130 4130 ## ··· 4265 4265 # 4266 4266 # Driver specific image creation options for file. 4267 4267 # 4268 - # @filename Filename for the new image file 4269 - # @size Size of the virtual disk in bytes 4270 - # @preallocation Preallocation mode for the new image (default: off; 4271 - # allowed values: off, 4272 - # falloc (if defined CONFIG_POSIX_FALLOCATE), 4273 - # full (if defined CONFIG_POSIX)) 4274 - # @nocow Turn off copy-on-write (valid only on btrfs; default: off) 4268 + # @filename: Filename for the new image file 4269 + # @size: Size of the virtual disk in bytes 4270 + # @preallocation: Preallocation mode for the new image (default: off; 4271 + # allowed values: off, 4272 + # falloc (if defined CONFIG_POSIX_FALLOCATE), 4273 + # full (if defined CONFIG_POSIX)) 4274 + # @nocow: Turn off copy-on-write (valid only on btrfs; default: off) 4275 4275 # 4276 4276 # Since: 2.12 4277 4277 ## ··· 4286 4286 # 4287 4287 # Driver specific image creation options for gluster. 4288 4288 # 4289 - # @location Where to store the new image file 4290 - # @size Size of the virtual disk in bytes 4291 - # @preallocation Preallocation mode for the new image (default: off; 4292 - # allowed values: off, 4293 - # falloc (if defined CONFIG_GLUSTERFS_FALLOCATE), 4294 - # full (if defined CONFIG_GLUSTERFS_ZEROFILL)) 4289 + # @location: Where to store the new image file 4290 + # @size: Size of the virtual disk in bytes 4291 + # @preallocation: Preallocation mode for the new image (default: off; 4292 + # allowed values: off, 4293 + # falloc (if defined CONFIG_GLUSTERFS_FALLOCATE), 4294 + # full (if defined CONFIG_GLUSTERFS_ZEROFILL)) 4295 4295 # 4296 4296 # Since: 2.12 4297 4297 ## ··· 4305 4305 # 4306 4306 # Driver specific image creation options for LUKS. 4307 4307 # 4308 - # @file Node to create the image format on 4309 - # @size Size of the virtual disk in bytes 4310 - # @preallocation Preallocation mode for the new image 4311 - # (since: 4.2) 4312 - # (default: off; allowed values: off, metadata, falloc, full) 4308 + # @file: Node to create the image format on 4309 + # @size: Size of the virtual disk in bytes 4310 + # @preallocation: Preallocation mode for the new image 4311 + # (since: 4.2) 4312 + # (default: off; allowed values: off, metadata, falloc, full) 4313 4313 # 4314 4314 # Since: 2.12 4315 4315 ## ··· 4324 4324 # 4325 4325 # Driver specific image creation options for NFS. 4326 4326 # 4327 - # @location Where to store the new image file 4328 - # @size Size of the virtual disk in bytes 4327 + # @location: Where to store the new image file 4328 + # @size: Size of the virtual disk in bytes 4329 4329 # 4330 4330 # Since: 2.12 4331 4331 ## ··· 4338 4338 # 4339 4339 # Driver specific image creation options for parallels. 4340 4340 # 4341 - # @file Node to create the image format on 4342 - # @size Size of the virtual disk in bytes 4343 - # @cluster-size Cluster size in bytes (default: 1 MB) 4341 + # @file: Node to create the image format on 4342 + # @size: Size of the virtual disk in bytes 4343 + # @cluster-size: Cluster size in bytes (default: 1 MB) 4344 4344 # 4345 4345 # Since: 2.12 4346 4346 ## ··· 4354 4354 # 4355 4355 # Driver specific image creation options for qcow. 4356 4356 # 4357 - # @file Node to create the image format on 4358 - # @size Size of the virtual disk in bytes 4359 - # @backing-file File name of the backing file if a backing file 4360 - # should be used 4361 - # @encrypt Encryption options if the image should be encrypted 4357 + # @file: Node to create the image format on 4358 + # @size: Size of the virtual disk in bytes 4359 + # @backing-file: File name of the backing file if a backing file 4360 + # should be used 4361 + # @encrypt: Encryption options if the image should be encrypted 4362 4362 # 4363 4363 # Since: 2.12 4364 4364 ## ··· 4385 4385 # 4386 4386 # Driver specific image creation options for qcow2. 4387 4387 # 4388 - # @file Node to create the image format on 4389 - # @data-file Node to use as an external data file in which all guest 4390 - # data is stored so that only metadata remains in the qcow2 4391 - # file (since: 4.0) 4392 - # @data-file-raw True if the external data file must stay valid as a 4393 - # standalone (read-only) raw image without looking at qcow2 4394 - # metadata (default: false; since: 4.0) 4395 - # @size Size of the virtual disk in bytes 4396 - # @version Compatibility level (default: v3) 4397 - # @backing-file File name of the backing file if a backing file 4398 - # should be used 4399 - # @backing-fmt Name of the block driver to use for the backing file 4400 - # @encrypt Encryption options if the image should be encrypted 4401 - # @cluster-size qcow2 cluster size in bytes (default: 65536) 4402 - # @preallocation Preallocation mode for the new image (default: off; 4403 - # allowed values: off, falloc, full, metadata) 4404 - # @lazy-refcounts True if refcounts may be updated lazily (default: off) 4405 - # @refcount-bits Width of reference counts in bits (default: 16) 4388 + # @file: Node to create the image format on 4389 + # @data-file: Node to use as an external data file in which all guest 4390 + # data is stored so that only metadata remains in the qcow2 4391 + # file (since: 4.0) 4392 + # @data-file-raw: True if the external data file must stay valid as a 4393 + # standalone (read-only) raw image without looking at qcow2 4394 + # metadata (default: false; since: 4.0) 4395 + # @size: Size of the virtual disk in bytes 4396 + # @version: Compatibility level (default: v3) 4397 + # @backing-file: File name of the backing file if a backing file 4398 + # should be used 4399 + # @backing-fmt: Name of the block driver to use for the backing file 4400 + # @encrypt: Encryption options if the image should be encrypted 4401 + # @cluster-size: qcow2 cluster size in bytes (default: 65536) 4402 + # @preallocation: Preallocation mode for the new image (default: off; 4403 + # allowed values: off, falloc, full, metadata) 4404 + # @lazy-refcounts: True if refcounts may be updated lazily (default: off) 4405 + # @refcount-bits: Width of reference counts in bits (default: 16) 4406 4406 # 4407 4407 # Since: 2.12 4408 4408 ## ··· 4425 4425 # 4426 4426 # Driver specific image creation options for qed. 4427 4427 # 4428 - # @file Node to create the image format on 4429 - # @size Size of the virtual disk in bytes 4430 - # @backing-file File name of the backing file if a backing file 4431 - # should be used 4432 - # @backing-fmt Name of the block driver to use for the backing file 4433 - # @cluster-size Cluster size in bytes (default: 65536) 4434 - # @table-size L1/L2 table size (in clusters) 4428 + # @file: Node to create the image format on 4429 + # @size: Size of the virtual disk in bytes 4430 + # @backing-file: File name of the backing file if a backing file 4431 + # should be used 4432 + # @backing-fmt: Name of the block driver to use for the backing file 4433 + # @cluster-size: Cluster size in bytes (default: 65536) 4434 + # @table-size: L1/L2 table size (in clusters) 4435 4435 # 4436 4436 # Since: 2.12 4437 4437 ## ··· 4448 4448 # 4449 4449 # Driver specific image creation options for rbd/Ceph. 4450 4450 # 4451 - # @location Where to store the new image file. This location cannot 4452 - # point to a snapshot. 4453 - # @size Size of the virtual disk in bytes 4454 - # @cluster-size RBD object size 4451 + # @location: Where to store the new image file. This location cannot 4452 + # point to a snapshot. 4453 + # @size: Size of the virtual disk in bytes 4454 + # @cluster-size: RBD object size 4455 4455 # 4456 4456 # Since: 2.12 4457 4457 ## ··· 4499 4499 # 4500 4500 # Driver specific image creation options for VMDK. 4501 4501 # 4502 - # @file Where to store the new image file. This refers to the image 4503 - # file for monolithcSparse and streamOptimized format, or the 4504 - # descriptor file for other formats. 4505 - # @size Size of the virtual disk in bytes 4506 - # @extents Where to store the data extents. Required for monolithcFlat, 4507 - # twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For 4508 - # monolithicFlat, only one entry is required; for 4509 - # twoGbMaxExtent* formats, the number of entries required is 4510 - # calculated as extent_number = virtual_size / 2GB. Providing 4511 - # more extents than will be used is an error. 4512 - # @subformat The subformat of the VMDK image. Default: "monolithicSparse". 4513 - # @backing-file The path of backing file. Default: no backing file is used. 4514 - # @adapter-type The adapter type used to fill in the descriptor. Default: ide. 4515 - # @hwversion Hardware version. The meaningful options are "4" or "6". 4516 - # Default: "4". 4517 - # @zeroed-grain Whether to enable zeroed-grain feature for sparse subformats. 4518 - # Default: false. 4502 + # @file: Where to store the new image file. This refers to the image 4503 + # file for monolithcSparse and streamOptimized format, or the 4504 + # descriptor file for other formats. 4505 + # @size: Size of the virtual disk in bytes 4506 + # @extents: Where to store the data extents. Required for monolithcFlat, 4507 + # twoGbMaxExtentSparse and twoGbMaxExtentFlat formats. For 4508 + # monolithicFlat, only one entry is required; for 4509 + # twoGbMaxExtent* formats, the number of entries required is 4510 + # calculated as extent_number = virtual_size / 2GB. Providing 4511 + # more extents than will be used is an error. 4512 + # @subformat: The subformat of the VMDK image. Default: "monolithicSparse". 4513 + # @backing-file: The path of backing file. Default: no backing file is used. 4514 + # @adapter-type: The adapter type used to fill in the descriptor. Default: ide. 4515 + # @hwversion: Hardware version. The meaningful options are "4" or "6". 4516 + # Default: "4". 4517 + # @zeroed-grain: Whether to enable zeroed-grain feature for sparse subformats. 4518 + # Default: false. 4519 4519 # 4520 4520 # Since: 4.0 4521 4521 ## ··· 4533 4533 ## 4534 4534 # @SheepdogRedundancyType: 4535 4535 # 4536 - # @full Create a fully replicated vdi with x copies 4537 - # @erasure-coded Create an erasure coded vdi with x data strips and 4538 - # y parity strips 4536 + # @full: Create a fully replicated vdi with x copies 4537 + # @erasure-coded: Create an erasure coded vdi with x data strips and 4538 + # y parity strips 4539 4539 # 4540 4540 # Since: 2.12 4541 4541 ## ··· 4545 4545 ## 4546 4546 # @SheepdogRedundancyFull: 4547 4547 # 4548 - # @copies Number of copies to use (between 1 and 31) 4548 + # @copies: Number of copies to use (between 1 and 31) 4549 4549 # 4550 4550 # Since: 2.12 4551 4551 ## ··· 4555 4555 ## 4556 4556 # @SheepdogRedundancyErasureCoded: 4557 4557 # 4558 - # @data-strips Number of data strips to use (one of {2,4,8,16}) 4559 - # @parity-strips Number of parity strips to use (between 1 and 15) 4558 + # @data-strips: Number of data strips to use (one of {2,4,8,16}) 4559 + # @parity-strips: Number of parity strips to use (between 1 and 15) 4560 4560 # 4561 4561 # Since: 2.12 4562 4562 ## ··· 4580 4580 # 4581 4581 # Driver specific image creation options for Sheepdog. 4582 4582 # 4583 - # @location Where to store the new image file 4584 - # @size Size of the virtual disk in bytes 4585 - # @backing-file File name of a base image 4586 - # @preallocation Preallocation mode for the new image (default: off; 4587 - # allowed values: off, full) 4588 - # @redundancy Redundancy of the image 4589 - # @object-size Object size of the image 4583 + # @location: Where to store the new image file 4584 + # @size: Size of the virtual disk in bytes 4585 + # @backing-file: File name of a base image 4586 + # @preallocation: Preallocation mode for the new image (default: off; 4587 + # allowed values: off, full) 4588 + # @redundancy: Redundancy of the image 4589 + # @object-size: Object size of the image 4590 4590 # 4591 4591 # Since: 2.12 4592 4592 ## ··· 4603 4603 # 4604 4604 # Driver specific image creation options for SSH. 4605 4605 # 4606 - # @location Where to store the new image file 4607 - # @size Size of the virtual disk in bytes 4606 + # @location: Where to store the new image file 4607 + # @size: Size of the virtual disk in bytes 4608 4608 # 4609 4609 # Since: 2.12 4610 4610 ## ··· 4617 4617 # 4618 4618 # Driver specific image creation options for VDI. 4619 4619 # 4620 - # @file Node to create the image format on 4621 - # @size Size of the virtual disk in bytes 4622 - # @preallocation Preallocation mode for the new image (default: off; 4623 - # allowed values: off, metadata) 4620 + # @file: Node to create the image format on 4621 + # @size: Size of the virtual disk in bytes 4622 + # @preallocation: Preallocation mode for the new image (default: off; 4623 + # allowed values: off, metadata) 4624 4624 # 4625 4625 # Since: 2.12 4626 4626 ## ··· 4645 4645 # 4646 4646 # Driver specific image creation options for vhdx. 4647 4647 # 4648 - # @file Node to create the image format on 4649 - # @size Size of the virtual disk in bytes 4650 - # @log-size Log size in bytes, must be a multiple of 1 MB 4651 - # (default: 1 MB) 4652 - # @block-size Block size in bytes, must be a multiple of 1 MB and not 4653 - # larger than 256 MB (default: automatically choose a block 4654 - # size depending on the image size) 4655 - # @subformat vhdx subformat (default: dynamic) 4656 - # @block-state-zero Force use of payload blocks of type 'ZERO'. Non-standard, 4657 - # but default. Do not set to 'off' when using 'qemu-img 4658 - # convert' with subformat=dynamic. 4648 + # @file: Node to create the image format on 4649 + # @size: Size of the virtual disk in bytes 4650 + # @log-size: Log size in bytes, must be a multiple of 1 MB 4651 + # (default: 1 MB) 4652 + # @block-size: Block size in bytes, must be a multiple of 1 MB and not 4653 + # larger than 256 MB (default: automatically choose a block 4654 + # size depending on the image size) 4655 + # @subformat: vhdx subformat (default: dynamic) 4656 + # @block-state-zero: Force use of payload blocks of type 'ZERO'. Non-standard, 4657 + # but default. Do not set to 'off' when using 'qemu-img 4658 + # convert' with subformat=dynamic. 4659 4659 # 4660 4660 # Since: 2.12 4661 4661 ## ··· 4683 4683 # 4684 4684 # Driver specific image creation options for vpc (VHD). 4685 4685 # 4686 - # @file Node to create the image format on 4687 - # @size Size of the virtual disk in bytes 4688 - # @subformat vhdx subformat (default: dynamic) 4689 - # @force-size Force use of the exact byte size instead of rounding to the 4690 - # next size that can be represented in CHS geometry 4691 - # (default: false) 4686 + # @file: Node to create the image format on 4687 + # @size: Size of the virtual disk in bytes 4688 + # @subformat: vhdx subformat (default: dynamic) 4689 + # @force-size: Force use of the exact byte size instead of rounding to the 4690 + # next size that can be represented in CHS geometry 4691 + # (default: false) 4692 4692 # 4693 4693 # Since: 2.12 4694 4694 ## ··· 4703 4703 # 4704 4704 # Options for creating an image format on a given node. 4705 4705 # 4706 - # @driver block driver to create the image format 4706 + # @driver: block driver to create the image format 4707 4707 # 4708 4708 # Since: 2.12 4709 4709 ## ··· 4757 4757 # 4758 4758 # Once the tray opens, a DEVICE_TRAY_MOVED event is emitted. There are cases in 4759 4759 # which no such event will be generated, these include: 4760 + # 4760 4761 # - if the guest has locked the tray, @force is false and the guest does not 4761 4762 # respond to the eject request 4762 4763 # - if the BlockBackend denoted by @device does not have a guest device attached ··· 4765 4766 # 4766 4767 # @device: Block device name (deprecated, use @id instead) 4767 4768 # 4768 - # @id: The name or QOM path of the guest device (since: 2.8) 4769 + # @id: The name or QOM path of the guest device (since: 2.8) 4769 4770 # 4770 - # @force: if false (the default), an eject request will be sent to 4771 - # the guest if it has locked the tray (and the tray will not be opened 4772 - # immediately); if true, the tray will be opened regardless of whether 4773 - # it is locked 4771 + # @force: if false (the default), an eject request will be sent to 4772 + # the guest if it has locked the tray (and the tray will not be opened 4773 + # immediately); if true, the tray will be opened regardless of whether 4774 + # it is locked 4774 4775 # 4775 4776 # Since: 2.5 4776 4777 # ··· 4803 4804 # 4804 4805 # If the tray was already closed before, this will be a no-op. 4805 4806 # 4806 - # @device: Block device name (deprecated, use @id instead) 4807 + # @device: Block device name (deprecated, use @id instead) 4807 4808 # 4808 - # @id: The name or QOM path of the guest device (since: 2.8) 4809 + # @id: The name or QOM path of the guest device (since: 2.8) 4809 4810 # 4810 4811 # Since: 2.5 4811 4812 # ··· 4837 4838 # 4838 4839 # If the tray is open and there is no medium inserted, this will be a no-op. 4839 4840 # 4840 - # @id: The name or QOM path of the guest device 4841 + # @id: The name or QOM path of the guest device 4841 4842 # 4842 4843 # Since: 2.12 4843 4844 # ··· 4877 4878 # device's tray must currently be open (unless there is no attached guest 4878 4879 # device) and there must be no medium inserted already. 4879 4880 # 4880 - # @id: The name or QOM path of the guest device 4881 + # @id: The name or QOM path of the guest device 4881 4882 # 4882 4883 # @node-name: name of a node in the block driver state graph 4883 4884 # ··· 4911 4912 # Specifies the new read-only mode of a block device subject to the 4912 4913 # @blockdev-change-medium command. 4913 4914 # 4914 - # @retain: Retains the current read-only mode 4915 + # @retain: Retains the current read-only mode 4915 4916 # 4916 - # @read-only: Makes the device read-only 4917 + # @read-only: Makes the device read-only 4917 4918 # 4918 - # @read-write: Makes the device writable 4919 + # @read-write: Makes the device writable 4919 4920 # 4920 4921 # Since: 2.3 4921 4922 # ··· 4932 4933 # combines blockdev-open-tray, blockdev-remove-medium, blockdev-insert-medium 4933 4934 # and blockdev-close-tray). 4934 4935 # 4935 - # @device: Block device name (deprecated, use @id instead) 4936 + # @device: Block device name (deprecated, use @id instead) 4936 4937 # 4937 - # @id: The name or QOM path of the guest device 4938 - # (since: 2.8) 4938 + # @id: The name or QOM path of the guest device 4939 + # (since: 2.8) 4939 4940 # 4940 - # @filename: filename of the new image to be loaded 4941 + # @filename: filename of the new image to be loaded 4941 4942 # 4942 - # @format: format to open the new image with (defaults to 4943 - # the probed format) 4943 + # @format: format to open the new image with (defaults to 4944 + # the probed format) 4944 4945 # 4945 - # @read-only-mode: change the read-only mode of the device; defaults 4946 - # to 'retain' 4946 + # @read-only-mode: change the read-only mode of the device; defaults 4947 + # to 'retain' 4947 4948 # 4948 4949 # Since: 2.5 4949 4950 # ··· 5028 5029 # the access size 5029 5030 # 5030 5031 # @fatal: if set, the image is marked corrupt and therefore unusable after this 5031 - # event and must be repaired (Since 2.2; before, every 5032 - # BLOCK_IMAGE_CORRUPTED event was fatal) 5032 + # event and must be repaired (Since 2.2; before, every 5033 + # BLOCK_IMAGE_CORRUPTED event was fatal) 5033 5034 # 5034 5035 # Note: If action is "stop", a STOP event will eventually follow the 5035 5036 # BLOCK_IO_ERROR event. ··· 5077 5078 # 5078 5079 # @reason: human readable string describing the error cause. 5079 5080 # (This field is a debugging aid for humans, it should not 5080 - # be parsed by applications) (since: 2.2) 5081 + # be parsed by applications) (since: 2.2) 5081 5082 # 5082 5083 # Note: If action is "stop", a STOP event will eventually follow the 5083 - # BLOCK_IO_ERROR event 5084 + # BLOCK_IO_ERROR event 5084 5085 # 5085 5086 # Since: 0.13.0 5086 5087 # ··· 5222 5223 # @speed: rate limit, bytes per second 5223 5224 # 5224 5225 # Note: The "ready to complete" status is always reset by a @BLOCK_JOB_ERROR 5225 - # event 5226 + # event 5226 5227 # 5227 5228 # Since: 1.3 5228 5229 # ··· 5356 5357 # @node: the name of the node that will be added. 5357 5358 # 5358 5359 # Note: this command is experimental, and its API is not stable. It 5359 - # does not support all kinds of operations, all kinds of children, nor 5360 - # all block drivers. 5360 + # does not support all kinds of operations, all kinds of children, nor 5361 + # all block drivers. 5361 5362 # 5362 - # FIXME Removing children from a quorum node means introducing gaps in the 5363 - # child indices. This cannot be represented in the 'children' list of 5364 - # BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename(). 5363 + # FIXME Removing children from a quorum node means introducing gaps in the 5364 + # child indices. This cannot be represented in the 'children' list of 5365 + # BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename(). 5365 5366 # 5366 - # Warning: The data in a new quorum child MUST be consistent with that of 5367 - # the rest of the array. 5367 + # Warning: The data in a new quorum child MUST be consistent with that of 5368 + # the rest of the array. 5368 5369 # 5369 5370 # Since: 2.7 5370 5371 # ··· 5411 5412 # is already attached 5412 5413 # 5413 5414 # Note: this command is experimental and intended for test cases that need 5414 - # control over IOThreads only. 5415 + # control over IOThreads only. 5415 5416 # 5416 5417 # Since: 2.12 5417 5418 #
+21 -26
qapi/block.json
··· 115 115 # 116 116 # For the arguments, see the documentation of BlockdevSnapshotInternal. 117 117 # 118 - # Returns: nothing on success 119 - # 120 - # If @device is not a valid block device, GenericError 121 - # 122 - # If any snapshot matching @name exists, or @name is empty, 123 - # GenericError 124 - # 125 - # If the format of the image used does not support it, 126 - # BlockFormatFeatureNotSupported 118 + # Returns: - nothing on success 119 + # - If @device is not a valid block device, GenericError 120 + # - If any snapshot matching @name exists, or @name is empty, 121 + # GenericError 122 + # - If the format of the image used does not support it, 123 + # BlockFormatFeatureNotSupported 127 124 # 128 125 # Since: 1.7 129 126 # ··· 154 151 # 155 152 # @name: optional the snapshot's name to be deleted 156 153 # 157 - # Returns: SnapshotInfo on success 158 - # If @device is not a valid block device, GenericError 159 - # If snapshot not found, GenericError 160 - # If the format of the image used does not support it, 161 - # BlockFormatFeatureNotSupported 162 - # If @id and @name are both not specified, GenericError 154 + # Returns: - SnapshotInfo on success 155 + # - If @device is not a valid block device, GenericError 156 + # - If snapshot not found, GenericError 157 + # - If the format of the image used does not support it, 158 + # BlockFormatFeatureNotSupported 159 + # - If @id and @name are both not specified, GenericError 163 160 # 164 161 # Since: 1.7 165 162 # ··· 190 187 # 191 188 # Ejects a device from a removable drive. 192 189 # 193 - # @device: Block device name (deprecated, use @id instead) 190 + # @device: Block device name (deprecated, use @id instead) 194 191 # 195 - # @id: The name or QOM path of the guest device (since: 2.8) 192 + # @id: The name or QOM path of the guest device (since: 2.8) 196 193 # 197 - # @force: If true, eject regardless of whether the drive is locked. 198 - # If not specified, the default value is false. 194 + # @force: If true, eject regardless of whether the drive is locked. 195 + # If not specified, the default value is false. 199 196 # 200 - # Returns: Nothing on success 201 - # 202 - # If @device is not a valid block device, DeviceNotFound 203 - # 197 + # Returns: - Nothing on success 198 + # - If @device is not a valid block device, DeviceNotFound 204 199 # Notes: Ejecting a device with no media results in success 205 200 # 206 201 # Since: 0.14.0 ··· 254 249 # (Since 5.0) 255 250 # 256 251 # @writable: Whether clients should be able to write to the device via the 257 - # NBD connection (default false). 252 + # NBD connection (default false). 258 253 # 259 254 # @bitmap: Also export the dirty bitmap reachable from @device, so the 260 255 # NBD client can use NBD_OPT_SET_META_CONTEXT with ··· 281 276 # Potential additional modes to be added in the future: 282 277 # 283 278 # hide: Just hide export from new clients, leave existing connections as is. 284 - # Remove export after all clients are disconnected. 279 + # Remove export after all clients are disconnected. 285 280 # 286 281 # soft: Hide export from new clients, answer with ESHUTDOWN for all further 287 - # requests from existing clients. 282 + # requests from existing clients. 288 283 # 289 284 # Since: 2.12 290 285 ##
+6 -4
qapi/char.json
··· 133 133 # @data: data to write 134 134 # 135 135 # @format: data encoding (default 'utf8'). 136 + # 136 137 # - base64: data must be base64 encoded text. Its binary 137 138 # decoding gets written. 138 139 # - utf8: data's UTF-8 encoding is written ··· 167 168 # @size: how many bytes to read at most 168 169 # 169 170 # @format: data encoding (default 'utf8'). 171 + # 170 172 # - base64: the data read is returned in base64 encoding. 171 173 # - utf8: the data read is interpreted as UTF-8. 172 174 # Bug: can screw up when the buffer contains invalid UTF-8 ··· 262 264 # @tn3270: enable tn3270 protocol on server 263 265 # sockets (default: false) (Since: 2.10) 264 266 # @websocket: enable websocket protocol on server 265 - # sockets (default: false) (Since: 3.1) 267 + # sockets (default: false) (Since: 3.1) 266 268 # @reconnect: For a client socket, if a socket is disconnected, 267 - # then attempt a reconnect after the given number of seconds. 268 - # Setting this to zero disables this function. (default: 0) 269 - # (Since: 2.2) 269 + # then attempt a reconnect after the given number of seconds. 270 + # Setting this to zero disables this function. (default: 0) 271 + # (Since: 2.2) 270 272 # 271 273 # Since: 1.4 272 274 ##
+2 -2
qapi/dump.json
··· 38 38 # using gdb to process the core file. 39 39 # 40 40 # IMPORTANT: this option can make QEMU allocate several gigabytes 41 - # of RAM. This can happen for a large guest, or a 42 - # malicious guest pretending to be large. 41 + # of RAM. This can happen for a large guest, or a 42 + # malicious guest pretending to be large. 43 43 # 44 44 # Also, paging=true has the following limitations: 45 45 #
+6 -6
qapi/introspect.json
··· 34 34 # alternate that includes the original type alongside something else. 35 35 # 36 36 # Returns: array of @SchemaInfo, where each element describes an 37 - # entity in the ABI: command, event, type, ... 37 + # entity in the ABI: command, event, type, ... 38 38 # 39 - # The order of the various SchemaInfo is unspecified; however, all 40 - # names are guaranteed to be unique (no name will be duplicated with 41 - # different meta-types). 39 + # The order of the various SchemaInfo is unspecified; however, all 40 + # names are guaranteed to be unique (no name will be duplicated with 41 + # different meta-types). 42 42 # 43 43 # Note: the QAPI schema is also used to help define *internal* 44 - # interfaces, by defining QAPI types. These are not part of the QMP 45 - # wire ABI, and therefore not returned by this command. 44 + # interfaces, by defining QAPI types. These are not part of the QMP 45 + # wire ABI, and therefore not returned by this command. 46 46 # 47 47 # Since: 2.5 48 48 ##
+16 -16
qapi/job.json
··· 214 214 # 215 215 # Information about a job. 216 216 # 217 - # @id: The job identifier 217 + # @id: The job identifier 218 218 # 219 - # @type: The kind of job that is being performed 219 + # @type: The kind of job that is being performed 220 220 # 221 - # @status: Current job state/status 221 + # @status: Current job state/status 222 222 # 223 - # @current-progress: Progress made until now. The unit is arbitrary and the 224 - # value can only meaningfully be used for the ratio of 225 - # @current-progress to @total-progress. The value is 226 - # monotonically increasing. 223 + # @current-progress: Progress made until now. The unit is arbitrary and the 224 + # value can only meaningfully be used for the ratio of 225 + # @current-progress to @total-progress. The value is 226 + # monotonically increasing. 227 227 # 228 - # @total-progress: Estimated @current-progress value at the completion of 229 - # the job. This value can arbitrarily change while the 230 - # job is running, in both directions. 228 + # @total-progress: Estimated @current-progress value at the completion of 229 + # the job. This value can arbitrarily change while the 230 + # job is running, in both directions. 231 231 # 232 - # @error: If this field is present, the job failed; if it is 233 - # still missing in the CONCLUDED state, this indicates 234 - # successful completion. 232 + # @error: If this field is present, the job failed; if it is 233 + # still missing in the CONCLUDED state, this indicates 234 + # successful completion. 235 235 # 236 - # The value is a human-readable error message to describe 237 - # the reason for the job failure. It should not be parsed 238 - # by applications. 236 + # The value is a human-readable error message to describe 237 + # the reason for the job failure. It should not be parsed 238 + # by applications. 239 239 # 240 240 # Since: 3.0 241 241 ##
+9 -9
qapi/machine-target.json
··· 40 40 # model details. 41 41 # 42 42 # Note: When a non-migration-safe CPU model is expanded in static mode, some 43 - # features enabled by the CPU model may be omitted, because they can't be 44 - # implemented by a static CPU model definition (e.g. cache info passthrough and 45 - # PMU passthrough in x86). If you need an accurate representation of the 46 - # features enabled by a non-migration-safe CPU model, use @full. If you need a 47 - # static representation that will keep ABI compatibility even when changing QEMU 48 - # version or machine-type, use @static (but keep in mind that some features may 49 - # be omitted). 43 + # features enabled by the CPU model may be omitted, because they can't be 44 + # implemented by a static CPU model definition (e.g. cache info passthrough and 45 + # PMU passthrough in x86). If you need an accurate representation of the 46 + # features enabled by a non-migration-safe CPU model, use @full. If you need a 47 + # static representation that will keep ABI compatibility even when changing QEMU 48 + # version or machine-type, use @static (but keep in mind that some features may 49 + # be omitted). 50 50 # 51 51 # Since: 2.8.0 52 52 ## ··· 148 148 # with wrong types. 149 149 # 150 150 # Note: this command isn't specific to s390x, but is only implemented 151 - # on this architecture currently. 151 + # on this architecture currently. 152 152 # 153 153 # Since: 2.8.0 154 154 ## ··· 191 191 # with wrong types. 192 192 # 193 193 # Note: this command isn't specific to s390x, but is only implemented 194 - # on this architecture currently. 194 + # on this architecture currently. 195 195 # 196 196 # Since: 2.8.0 197 197 ##
+6 -8
qapi/machine.json
··· 20 20 # prefix to produce the corresponding QEMU executable name. This 21 21 # is true even for "qemu-system-x86_64". 22 22 # 23 - # ppcemb: dropped in 3.1 24 - # 25 23 # Since: 3.0 26 24 ## 27 25 { 'enum' : 'SysEmuTarget', ··· 680 678 # 5.2.27.5: Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec. 681 679 # 682 680 # @none: None (no memory side cache in this proximity domain, 683 - # or cache write policy unknown) 681 + # or cache write policy unknown) 684 682 # 685 683 # @write-back: Write Back (WB) 686 684 # ··· 706 704 # @level: the cache level described in this structure. 707 705 # 708 706 # @associativity: the cache associativity, 709 - # none/direct-mapped/complex(complex cache indexing). 707 + # none/direct-mapped/complex(complex cache indexing). 710 708 # 711 709 # @policy: the write policy, none/write-back/write-through. 712 710 # ··· 823 821 # @core-id: core number within die the CPU belongs to# @thread-id: thread number within core the CPU belongs to 824 822 # 825 823 # Note: currently there are 5 properties that could be present 826 - # but management should be prepared to pass through other 827 - # properties with device_add command to allow for future 828 - # interface extension. This also requires the filed names to be kept in 829 - # sync with the properties passed to -device/device_add. 824 + # but management should be prepared to pass through other 825 + # properties with device_add command to allow for future 826 + # interface extension. This also requires the filed names to be kept in 827 + # sync with the properties passed to -device/device_add. 830 828 # 831 829 # Since: 2.7 832 830 ##
+103 -103
qapi/migration.json
··· 28 28 # @normal-bytes: number of normal bytes sent (since 1.2) 29 29 # 30 30 # @dirty-pages-rate: number of pages dirtied by second by the 31 - # guest (since 1.3) 31 + # guest (since 1.3) 32 32 # 33 33 # @mbps: throughput in megabits/sec. (since 1.6) 34 34 # 35 35 # @dirty-sync-count: number of times that dirty ram was synchronized (since 2.1) 36 36 # 37 37 # @postcopy-requests: The number of page requests received from the destination 38 - # (since 2.7) 38 + # (since 2.7) 39 39 # 40 40 # @page-size: The number of bytes per page for the various page-based 41 - # statistics (since 2.10) 41 + # statistics (since 2.10) 42 42 # 43 43 # @multifd-bytes: The number of bytes sent through multifd (since 3.0) 44 44 # 45 45 # @pages-per-second: the number of memory pages transferred per second 46 - # (Since 4.0) 46 + # (Since 4.0) 47 47 # 48 48 # Since: 0.14.0 49 49 ## ··· 98 98 ## 99 99 { 'struct': 'CompressionStats', 100 100 'data': {'pages': 'int', 'busy': 'int', 'busy-rate': 'number', 101 - 'compressed-size': 'int', 'compression-rate': 'number' } } 101 + 'compressed-size': 'int', 'compression-rate': 'number' } } 102 102 103 103 ## 104 104 # @MigrationStatus: ··· 131 131 # @pre-switchover: Paused before device serialisation. (since 2.11) 132 132 # 133 133 # @device: During device serialisation when pause-before-switchover is enabled 134 - # (since 2.11) 134 + # (since 2.11) 135 135 # 136 136 # @wait-unplug: wait for device unplug request by guest OS to be completed. 137 137 # (since 4.2) ··· 167 167 # status is 'active' or 'completed' (since 1.2) 168 168 # 169 169 # @total-time: total amount of milliseconds since migration started. 170 - # If migration has ended, it returns the total migration 171 - # time. (since 1.2) 170 + # If migration has ended, it returns the total migration 171 + # time. (since 1.2) 172 172 # 173 173 # @downtime: only present when migration finishes correctly 174 - # total downtime in milliseconds for the guest. 175 - # (since 1.3) 174 + # total downtime in milliseconds for the guest. 175 + # (since 1.3) 176 176 # 177 177 # @expected-downtime: only present while migration is active 178 - # expected downtime in milliseconds for the guest in last walk 179 - # of the dirty bitmap. (since 1.3) 178 + # expected downtime in milliseconds for the guest in last walk 179 + # of the dirty bitmap. (since 1.3) 180 180 # 181 - # @setup-time: amount of setup time in milliseconds _before_ the 182 - # iterations begin but _after_ the QMP command is issued. This is designed 183 - # to provide an accounting of any activities (such as RDMA pinning) which 184 - # may be expensive, but do not actually occur during the iterative 185 - # migration rounds themselves. (since 1.6) 181 + # @setup-time: amount of setup time in milliseconds *before* the 182 + # iterations begin but *after* the QMP command is issued. This is designed 183 + # to provide an accounting of any activities (such as RDMA pinning) which 184 + # may be expensive, but do not actually occur during the iterative 185 + # migration rounds themselves. (since 1.6) 186 186 # 187 187 # @cpu-throttle-percentage: percentage of time guest cpus are being 188 - # throttled during auto-converge. This is only present when auto-converge 189 - # has started throttling guest cpus. (Since 2.7) 188 + # throttled during auto-converge. This is only present when auto-converge 189 + # has started throttling guest cpus. (Since 2.7) 190 190 # 191 191 # @error-desc: the human readable error description string, when 192 192 # @status is 'failed'. Clients should not attempt to parse the 193 193 # error strings. (Since 2.7) 194 194 # 195 195 # @postcopy-blocktime: total time when all vCPU were blocked during postcopy 196 - # live migration. This is only present when the postcopy-blocktime 197 - # migration capability is enabled. (Since 3.0) 196 + # live migration. This is only present when the postcopy-blocktime 197 + # migration capability is enabled. (Since 3.0) 198 198 # 199 199 # @postcopy-vcpu-blocktime: list of the postcopy blocktime per vCPU. This is 200 - # only present when the postcopy-blocktime migration capability 201 - # is enabled. (Since 3.0) 200 + # only present when the postcopy-blocktime migration capability 201 + # is enabled. (Since 3.0) 202 202 # 203 203 # @compression: migration compression statistics, only returned if compression 204 - # feature is on and status is 'active' or 'completed' (Since 3.1) 204 + # feature is on and status is 'active' or 'completed' (Since 3.1) 205 205 # 206 206 # @socket-address: Only used for tcp, to know what the real port is (Since 4.0) 207 207 # ··· 355 355 # loads, by sending compressed difference of the pages 356 356 # 357 357 # @rdma-pin-all: Controls whether or not the entire VM memory footprint is 358 - # mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage. 359 - # Disabled by default. (since 2.0) 358 + # mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage. 359 + # Disabled by default. (since 2.0) 360 360 # 361 361 # @zero-blocks: During storage migration encode blocks of zeroes efficiently. This 362 - # essentially saves 1MB of zeroes per block on the wire. Enabling requires 363 - # source and target VM to support this feature. To enable it is sufficient 364 - # to enable the capability on the source VM. The feature is disabled by 365 - # default. (since 1.6) 362 + # essentially saves 1MB of zeroes per block on the wire. Enabling requires 363 + # source and target VM to support this feature. To enable it is sufficient 364 + # to enable the capability on the source VM. The feature is disabled by 365 + # default. (since 1.6) 366 366 # 367 367 # @compress: Use multiple compression threads to accelerate live migration. 368 - # This feature can help to reduce the migration traffic, by sending 369 - # compressed pages. Please note that if compress and xbzrle are both 370 - # on, compress only takes effect in the ram bulk stage, after that, 371 - # it will be disabled and only xbzrle takes effect, this can help to 372 - # minimize migration traffic. The feature is disabled by default. 373 - # (since 2.4 ) 368 + # This feature can help to reduce the migration traffic, by sending 369 + # compressed pages. Please note that if compress and xbzrle are both 370 + # on, compress only takes effect in the ram bulk stage, after that, 371 + # it will be disabled and only xbzrle takes effect, this can help to 372 + # minimize migration traffic. The feature is disabled by default. 373 + # (since 2.4 ) 374 374 # 375 375 # @events: generate events for each migration state change 376 376 # (since 2.4 ) 377 377 # 378 378 # @auto-converge: If enabled, QEMU will automatically throttle down the guest 379 - # to speed up convergence of RAM migration. (since 1.6) 379 + # to speed up convergence of RAM migration. (since 1.6) 380 380 # 381 381 # @postcopy-ram: Start executing on the migration target before all of RAM has 382 - # been migrated, pulling the remaining pages along as needed. The 383 - # capacity must have the same setting on both source and target 384 - # or migration will not even start. NOTE: If the migration fails during 385 - # postcopy the VM will fail. (since 2.6) 382 + # been migrated, pulling the remaining pages along as needed. The 383 + # capacity must have the same setting on both source and target 384 + # or migration will not even start. NOTE: If the migration fails during 385 + # postcopy the VM will fail. (since 2.6) 386 386 # 387 387 # @x-colo: If enabled, migration will never end, and the state of the VM on the 388 - # primary side will be migrated continuously to the VM on secondary 389 - # side, this process is called COarse-Grain LOck Stepping (COLO) for 390 - # Non-stop Service. (since 2.8) 388 + # primary side will be migrated continuously to the VM on secondary 389 + # side, this process is called COarse-Grain LOck Stepping (COLO) for 390 + # Non-stop Service. (since 2.8) 391 391 # 392 392 # @release-ram: if enabled, qemu will free the migrated ram pages on the source 393 - # during postcopy-ram migration. (since 2.9) 393 + # during postcopy-ram migration. (since 2.9) 394 394 # 395 395 # @block: If enabled, QEMU will also migrate the contents of all block 396 - # devices. Default is disabled. A possible alternative uses 397 - # mirror jobs to a builtin NBD server on the destination, which 398 - # offers more flexibility. 399 - # (Since 2.10) 396 + # devices. Default is disabled. A possible alternative uses 397 + # mirror jobs to a builtin NBD server on the destination, which 398 + # offers more flexibility. 399 + # (Since 2.10) 400 400 # 401 401 # @return-path: If enabled, migration will use the return path even 402 402 # for precopy. (since 2.10) 403 403 # 404 404 # @pause-before-switchover: Pause outgoing migration before serialising device 405 - # state and before disabling block IO (since 2.11) 405 + # state and before disabling block IO (since 2.11) 406 406 # 407 407 # @multifd: Use more than one fd for migration (since 4.0) 408 408 # ··· 410 410 # (since 2.12) 411 411 # 412 412 # @postcopy-blocktime: Calculate downtime for postcopy live migration 413 - # (since 3.0) 413 + # (since 3.0) 414 414 # 415 415 # @late-block-activate: If enabled, the destination will not activate block 416 - # devices (and thus take locks) immediately at the end of migration. 417 - # (since 3.0) 416 + # devices (and thus take locks) immediately at the end of migration. 417 + # (since 3.0) 418 418 # 419 419 # @x-ignore-shared: If enabled, QEMU will not migrate shared memory (since 4.0) 420 420 # ··· 494 494 # Migration parameters enumeration 495 495 # 496 496 # @announce-initial: Initial delay (in milliseconds) before sending the first 497 - # announce (Since 4.0) 497 + # announce (Since 4.0) 498 498 # 499 499 # @announce-max: Maximum delay (in milliseconds) between packets in the 500 - # announcement (Since 4.0) 500 + # announcement (Since 4.0) 501 501 # 502 502 # @announce-rounds: Number of self-announce packets sent after migration 503 - # (Since 4.0) 503 + # (Since 4.0) 504 504 # 505 505 # @announce-step: Increase in delay (in milliseconds) between subsequent 506 - # packets in the announcement (Since 4.0) 506 + # packets in the announcement (Since 4.0) 507 507 # 508 508 # @compress-level: Set the compression level to be used in live migration, 509 - # the compression level is an integer between 0 and 9, where 0 means 510 - # no compression, 1 means the best compression speed, and 9 means best 511 - # compression ratio which will consume more CPU. 509 + # the compression level is an integer between 0 and 9, where 0 means 510 + # no compression, 1 means the best compression speed, and 9 means best 511 + # compression ratio which will consume more CPU. 512 512 # 513 513 # @compress-threads: Set compression thread count to be used in live migration, 514 - # the compression thread count is an integer between 1 and 255. 514 + # the compression thread count is an integer between 1 and 255. 515 515 # 516 516 # @compress-wait-thread: Controls behavior when all compression threads are 517 517 # currently busy. If true (default), wait for a free ··· 519 519 # send the page uncompressed. (Since 3.1) 520 520 # 521 521 # @decompress-threads: Set decompression thread count to be used in live 522 - # migration, the decompression thread count is an integer between 1 523 - # and 255. Usually, decompression is at least 4 times as fast as 524 - # compression, so set the decompress-threads to the number about 1/4 525 - # of compress-threads is adequate. 522 + # migration, the decompression thread count is an integer between 1 523 + # and 255. Usually, decompression is at least 4 times as fast as 524 + # compression, so set the decompress-threads to the number about 1/4 525 + # of compress-threads is adequate. 526 526 # 527 527 # @cpu-throttle-initial: Initial percentage of time guest cpus are throttled 528 528 # when migration auto-converge is activated. The ··· 560 560 # downtime in milliseconds (Since 2.8) 561 561 # 562 562 # @x-checkpoint-delay: The delay time (in ms) between two COLO checkpoints in 563 - # periodic mode. (Since 2.8) 563 + # periodic mode. (Since 2.8) 564 564 # 565 565 # @block-incremental: Affects how much storage is migrated when the 566 - # block migration capability is enabled. When false, the entire 567 - # storage backing chain is migrated into a flattened image at 568 - # the destination; when true, only the active qcow2 layer is 569 - # migrated and the destination must already have access to the 570 - # same backing chain as was used on the source. (since 2.10) 566 + # block migration capability is enabled. When false, the entire 567 + # storage backing chain is migrated into a flattened image at 568 + # the destination; when true, only the active qcow2 layer is 569 + # migrated and the destination must already have access to the 570 + # same backing chain as was used on the source. (since 2.10) 571 571 # 572 572 # @multifd-channels: Number of channels used to migrate data in 573 573 # parallel. This is the same number that the ··· 580 580 # (Since 2.11) 581 581 # 582 582 # @max-postcopy-bandwidth: Background transfer bandwidth during postcopy. 583 - # Defaults to 0 (unlimited). In bytes per second. 584 - # (Since 3.0) 583 + # Defaults to 0 (unlimited). In bytes per second. 584 + # (Since 3.0) 585 585 # 586 586 # @max-cpu-throttle: maximum cpu throttle percentage. 587 587 # Defaults to 99. (Since 3.1) ··· 604 604 # @MigrateSetParameters: 605 605 # 606 606 # @announce-initial: Initial delay (in milliseconds) before sending the first 607 - # announce (Since 4.0) 607 + # announce (Since 4.0) 608 608 # 609 609 # @announce-max: Maximum delay (in milliseconds) between packets in the 610 - # announcement (Since 4.0) 610 + # announcement (Since 4.0) 611 611 # 612 612 # @announce-rounds: Number of self-announce packets sent after migration 613 - # (Since 4.0) 613 + # (Since 4.0) 614 614 # 615 615 # @announce-step: Increase in delay (in milliseconds) between subsequent 616 - # packets in the announcement (Since 4.0) 616 + # packets in the announcement (Since 4.0) 617 617 # 618 618 # @compress-level: compression level 619 619 # ··· 665 665 # @x-checkpoint-delay: the delay time between two COLO checkpoints. (Since 2.8) 666 666 # 667 667 # @block-incremental: Affects how much storage is migrated when the 668 - # block migration capability is enabled. When false, the entire 669 - # storage backing chain is migrated into a flattened image at 670 - # the destination; when true, only the active qcow2 layer is 671 - # migrated and the destination must already have access to the 672 - # same backing chain as was used on the source. (since 2.10) 668 + # block migration capability is enabled. When false, the entire 669 + # storage backing chain is migrated into a flattened image at 670 + # the destination; when true, only the active qcow2 layer is 671 + # migrated and the destination must already have access to the 672 + # same backing chain as was used on the source. (since 2.10) 673 673 # 674 674 # @multifd-channels: Number of channels used to migrate data in 675 675 # parallel. This is the same number that the ··· 682 682 # (Since 2.11) 683 683 # 684 684 # @max-postcopy-bandwidth: Background transfer bandwidth during postcopy. 685 - # Defaults to 0 (unlimited). In bytes per second. 686 - # (Since 3.0) 685 + # Defaults to 0 (unlimited). In bytes per second. 686 + # (Since 3.0) 687 687 # 688 688 # @max-cpu-throttle: maximum cpu throttle percentage. 689 689 # The default value is 99. (Since 3.1) ··· 713 713 '*multifd-channels': 'int', 714 714 '*xbzrle-cache-size': 'size', 715 715 '*max-postcopy-bandwidth': 'size', 716 - '*max-cpu-throttle': 'int' } } 716 + '*max-cpu-throttle': 'int' } } 717 717 718 718 ## 719 719 # @migrate-set-parameters: ··· 737 737 # The optional members aren't actually optional. 738 738 # 739 739 # @announce-initial: Initial delay (in milliseconds) before sending the 740 - # first announce (Since 4.0) 740 + # first announce (Since 4.0) 741 741 # 742 742 # @announce-max: Maximum delay (in milliseconds) between packets in the 743 - # announcement (Since 4.0) 743 + # announcement (Since 4.0) 744 744 # 745 745 # @announce-rounds: Number of self-announce packets sent after migration 746 - # (Since 4.0) 746 + # (Since 4.0) 747 747 # 748 748 # @announce-step: Increase in delay (in milliseconds) between subsequent 749 - # packets in the announcement (Since 4.0) 749 + # packets in the announcement (Since 4.0) 750 750 # 751 751 # @compress-level: compression level 752 752 # ··· 799 799 # @x-checkpoint-delay: the delay time between two COLO checkpoints. (Since 2.8) 800 800 # 801 801 # @block-incremental: Affects how much storage is migrated when the 802 - # block migration capability is enabled. When false, the entire 803 - # storage backing chain is migrated into a flattened image at 804 - # the destination; when true, only the active qcow2 layer is 805 - # migrated and the destination must already have access to the 806 - # same backing chain as was used on the source. (since 2.10) 802 + # block migration capability is enabled. When false, the entire 803 + # storage backing chain is migrated into a flattened image at 804 + # the destination; when true, only the active qcow2 layer is 805 + # migrated and the destination must already have access to the 806 + # same backing chain as was used on the source. (since 2.10) 807 807 # 808 808 # @multifd-channels: Number of channels used to migrate data in 809 809 # parallel. This is the same number that the ··· 816 816 # (Since 2.11) 817 817 # 818 818 # @max-postcopy-bandwidth: Background transfer bandwidth during postcopy. 819 - # Defaults to 0 (unlimited). In bytes per second. 820 - # (Since 3.0) 819 + # Defaults to 0 (unlimited). In bytes per second. 820 + # (Since 3.0) 821 821 # 822 822 # @max-cpu-throttle: maximum cpu throttle percentage. 823 823 # Defaults to 99. 824 - # (Since 3.1) 824 + # (Since 3.1) 825 825 # 826 826 # Since: 2.4 827 827 ## ··· 845 845 '*block-incremental': 'bool' , 846 846 '*multifd-channels': 'uint8', 847 847 '*xbzrle-cache-size': 'size', 848 - '*max-postcopy-bandwidth': 'size', 848 + '*max-postcopy-bandwidth': 'size', 849 849 '*max-cpu-throttle':'uint8'} } 850 850 851 851 ## ··· 1047 1047 # The reason for a COLO exit. 1048 1048 # 1049 1049 # @none: failover has never happened. This state does not occur 1050 - # in the COLO_EXIT event, and is only visible in the result of 1051 - # query-colo-status. 1050 + # in the COLO_EXIT event, and is only visible in the result of 1051 + # query-colo-status. 1052 1052 # 1053 1053 # @request: COLO exit is due to an external request. 1054 1054 # ··· 1281 1281 # of the VM are not saved by this command. 1282 1282 # 1283 1283 # @filename: the file to save the state of the devices to as binary 1284 - # data. See xen-save-devices-state.txt for a description of the binary 1285 - # format. 1284 + # data. See xen-save-devices-state.txt for a description of the binary 1285 + # format. 1286 1286 # 1287 1287 # @live: Optional argument to ask QEMU to treat this command as part of a live 1288 - # migration. Default to true. (since 2.11) 1288 + # migration. Default to true. (since 2.11) 1289 1289 # 1290 1290 # Returns: Nothing on success 1291 1291 #
+4 -4
qapi/misc-target.json
··· 230 230 # QEMU/KVM software version, but also decided by the hardware that 231 231 # the program is running upon. 232 232 # 233 - # @version: version of GIC to be described. Currently, only 2 and 3 234 - # are supported. 233 + # @version: version of GIC to be described. Currently, only 2 and 3 234 + # are supported. 235 235 # 236 236 # @emulated: whether current QEMU/hardware supports emulated GIC 237 237 # device in user space. 238 238 # 239 - # @kernel: whether current QEMU/hardware supports hardware 240 - # accelerated GIC device in kernel. 239 + # @kernel: whether current QEMU/hardware supports hardware 240 + # accelerated GIC device in kernel. 241 241 # 242 242 # Since: 2.6 243 243 ##
+87 -79
qapi/misc.json
··· 14 14 # 15 15 # Arguments: 16 16 # 17 - # @enable: An optional list of QMPCapability values to enable. The 18 - # client must not enable any capability that is not 19 - # mentioned in the QMP greeting message. If the field is not 20 - # provided, it means no QMP capabilities will be enabled. 21 - # (since 2.12) 17 + # @enable: An optional list of QMPCapability values to enable. The 18 + # client must not enable any capability that is not 19 + # mentioned in the QMP greeting message. If the field is not 20 + # provided, it means no QMP capabilities will be enabled. 21 + # (since 2.12) 22 22 # 23 23 # Example: 24 24 # ··· 27 27 # <- { "return": {} } 28 28 # 29 29 # Notes: This command is valid exactly when first connecting: it must be 30 - # issued before any other command will be accepted, and will fail once the 31 - # monitor is accepting other commands. (see qemu docs/interop/qmp-spec.txt) 30 + # issued before any other command will be accepted, and will fail once the 31 + # monitor is accepting other commands. (see qemu docs/interop/qmp-spec.txt) 32 32 # 33 - # The QMP client needs to explicitly enable QMP capabilities, otherwise 34 - # all the QMP capabilities will be turned off by default. 33 + # The QMP client needs to explicitly enable QMP capabilities, otherwise 34 + # all the QMP capabilities will be turned off by default. 35 35 # 36 36 # Since: 0.13 37 37 # ··· 46 46 # Enumeration of capabilities to be advertised during initial client 47 47 # connection, used for agreeing on particular QMP extension behaviors. 48 48 # 49 - # @oob: QMP ability to support out-of-band requests. 50 - # (Please refer to qmp-spec.txt for more information on OOB) 49 + # @oob: QMP ability to support out-of-band requests. 50 + # (Please refer to qmp-spec.txt for more information on OOB) 51 51 # 52 52 # Since: 2.12 53 53 # ··· 60 60 # 61 61 # A three-part version number. 62 62 # 63 - # @major: The major version number. 63 + # @major: The major version number. 64 64 # 65 - # @minor: The minor version number. 65 + # @minor: The minor version number. 66 66 # 67 - # @micro: The micro version number. 67 + # @micro: The micro version number. 68 68 # 69 69 # Since: 2.4 70 70 ## ··· 77 77 # 78 78 # A description of QEMU's version. 79 79 # 80 - # @qemu: The version of QEMU. By current convention, a micro 81 - # version of 50 signifies a development branch. A micro version 82 - # greater than or equal to 90 signifies a release candidate for 83 - # the next minor version. A micro version of less than 50 84 - # signifies a stable release. 80 + # @qemu: The version of QEMU. By current convention, a micro 81 + # version of 50 signifies a development branch. A micro version 82 + # greater than or equal to 90 signifies a release candidate for 83 + # the next minor version. A micro version of less than 50 84 + # signifies a stable release. 85 85 # 86 - # @package: QEMU will always set this field to an empty string. Downstream 87 - # versions of QEMU should set this to a non-empty string. The 88 - # exact format depends on the downstream however it highly 89 - # recommended that a unique name is used. 86 + # @package: QEMU will always set this field to an empty string. Downstream 87 + # versions of QEMU should set this to a non-empty string. The 88 + # exact format depends on the downstream however it highly 89 + # recommended that a unique name is used. 90 90 # 91 91 # Since: 0.14.0 92 92 ## ··· 98 98 # 99 99 # Returns the current version of QEMU. 100 100 # 101 - # Returns: A @VersionInfo object describing the current version of QEMU. 101 + # Returns: A @VersionInfo object describing the current version of QEMU. 102 102 # 103 103 # Since: 0.14.0 104 104 # ··· 163 163 ## 164 164 # @LostTickPolicy: 165 165 # 166 - # Policy for handling lost ticks in timer devices. 166 + # Policy for handling lost ticks in timer devices. Ticks end up getting 167 + # lost when, for example, the guest is paused. 167 168 # 168 - # @discard: throw away the missed tick(s) and continue with future injection 169 - # normally. Guest time may be delayed, unless the OS has explicit 170 - # handling of lost ticks 169 + # @discard: throw away the missed ticks and continue with future injection 170 + # normally. The guest OS will see the timer jump ahead by a 171 + # potentially quite significant amount all at once, as if the 172 + # intervening chunk of time had simply not existed; needless to 173 + # say, such a sudden jump can easily confuse a guest OS which is 174 + # not specifically prepared to deal with it. Assuming the guest 175 + # OS can deal correctly with the time jump, the time in the guest 176 + # and in the host should now match. 171 177 # 172 - # @delay: continue to deliver ticks at the normal rate. Guest time will be 173 - # delayed due to the late tick 178 + # @delay: continue to deliver ticks at the normal rate. The guest OS will 179 + # not notice anything is amiss, as from its point of view time will 180 + # have continued to flow normally. The time in the guest should now 181 + # be behind the time in the host by exactly the amount of time during 182 + # which ticks have been missed. 174 183 # 175 - # @slew: deliver ticks at a higher rate to catch up with the missed tick. The 176 - # guest time should not be delayed once catchup is complete. 184 + # @slew: deliver ticks at a higher rate to catch up with the missed ticks. 185 + # The guest OS will not notice anything is amiss, as from its point 186 + # of view time will have continued to flow normally. Once the timer 187 + # has managed to catch up with all the missing ticks, the time in 188 + # the guest and in the host should match. 177 189 # 178 190 # Since: 2.0 179 191 ## ··· 321 333 # Since: 1.2.0 322 334 # 323 335 # Note: This command is deprecated, because its output doesn't reflect 324 - # compile-time configuration. Use query-qmp-schema instead. 336 + # compile-time configuration. Use query-qmp-schema instead. 325 337 # 326 338 # Example: 327 339 # ··· 375 387 # Returns a list of information about each iothread. 376 388 # 377 389 # Note: this list excludes the QEMU main loop thread, which is not declared 378 - # using the -object iothread command-line option. It is always the main thread 379 - # of the process. 390 + # using the -object iothread command-line option. It is always the main thread 391 + # of the process. 380 392 # 381 393 # Returns: a list of @IOThreadInfo for each iothread 382 394 # ··· 418 430 # 419 431 # Return information about the balloon device. 420 432 # 421 - # Returns: @BalloonInfo on success 422 - # 423 - # If the balloon driver is enabled but not functional because the KVM 424 - # kernel module cannot support it, KvmMissingCap 425 - # 426 - # If no balloon device is present, DeviceNotActive 433 + # Returns: - @BalloonInfo on success 434 + # - If the balloon driver is enabled but not functional because the KVM 435 + # kernel module cannot support it, KvmMissingCap 436 + # - If no balloon device is present, DeviceNotActive 427 437 # 428 438 # Since: 0.14.0 429 439 # ··· 480 490 # 481 491 # @bar: the index of the Base Address Register for this region 482 492 # 483 - # @type: 'io' if the region is a PIO region 484 - # 'memory' if the region is a MMIO region 493 + # @type: - 'io' if the region is a PIO region 494 + # - 'memory' if the region is a MMIO region 485 495 # 486 496 # @size: memory size 487 497 # ··· 624 634 # Return information about the PCI bus topology of the guest. 625 635 # 626 636 # Returns: a list of @PciInfo for each PCI bus. Each bus is 627 - # represented by a json-object, which has a key with a json-array of 628 - # all PCI devices attached to it. Each device is represented by a 629 - # json-object. 637 + # represented by a json-object, which has a key with a json-array of 638 + # all PCI devices attached to it. Each device is represented by a 639 + # json-object. 630 640 # 631 641 # Since: 0.14.0 632 642 # ··· 788 798 # 789 799 # Since: 0.14.0 790 800 # 791 - # Notes: This function will succeed even if the guest is already in the stopped 792 - # state. In "inmigrate" state, it will ensure that the guest 793 - # remains paused once migration finishes, as if the -S option was 794 - # passed on the command line. 801 + # Notes: This function will succeed even if the guest is already in the stopped 802 + # state. In "inmigrate" state, it will ensure that the guest 803 + # remains paused once migration finishes, as if the -S option was 804 + # passed on the command line. 795 805 # 796 806 # Example: 797 807 # ··· 847 857 # @filename: the file to save the memory to as binary data 848 858 # 849 859 # @cpu-index: the index of the virtual CPU to use for translating the 850 - # virtual address (defaults to CPU 0) 860 + # virtual address (defaults to CPU 0) 851 861 # 852 862 # Returns: Nothing on success 853 863 # ··· 905 915 # 906 916 # Returns: If successful, nothing 907 917 # 908 - # Notes: This command will succeed if the guest is currently running. It 909 - # will also succeed if the guest is in the "inmigrate" state; in 910 - # this case, the effect of the command is to make sure the guest 911 - # starts once migration finishes, removing the effect of the -S 912 - # command line option if it was passed. 918 + # Notes: This command will succeed if the guest is currently running. It 919 + # will also succeed if the guest is in the "inmigrate" state; in 920 + # this case, the effect of the command is to make sure the guest 921 + # starts once migration finishes, removing the effect of the -S 922 + # command line option if it was passed. 913 923 # 914 924 # Example: 915 925 # ··· 955 965 # Returns: nothing. 956 966 # 957 967 # Note: prior to 4.0, this command does nothing in case the guest 958 - # isn't suspended. 968 + # isn't suspended. 959 969 # 960 970 # Example: 961 971 # ··· 992 1002 # 993 1003 # @value: the target size of the balloon in bytes 994 1004 # 995 - # Returns: Nothing on success 996 - # If the balloon driver is enabled but not functional because the KVM 1005 + # Returns: - Nothing on success 1006 + # - If the balloon driver is enabled but not functional because the KVM 997 1007 # kernel module cannot support it, KvmMissingCap 998 - # If no balloon device is present, DeviceNotActive 1008 + # - If no balloon device is present, DeviceNotActive 999 1009 # 1000 1010 # Notes: This command just issues a request to the guest. When it returns, 1001 1011 # the balloon size may not have changed. A guest can change the balloon ··· 1069 1079 # change password command. Otherwise, this specifies a new server URI 1070 1080 # address to listen to for VNC connections. 1071 1081 # 1072 - # @arg: If @device is a block device, then this is an optional format to open 1073 - # the device with. 1074 - # If @device is 'vnc' and @target is 'password', this is the new VNC 1075 - # password to set. See change-vnc-password for additional notes. 1082 + # @arg: If @device is a block device, then this is an optional format to open 1083 + # the device with. 1084 + # If @device is 'vnc' and @target is 'password', this is the new VNC 1085 + # password to set. See change-vnc-password for additional notes. 1076 1086 # 1077 - # Returns: Nothing on success. 1078 - # If @device is not a valid block device, DeviceNotFound 1087 + # Returns: - Nothing on success. 1088 + # - If @device is not a valid block device, DeviceNotFound 1079 1089 # 1080 - # Notes: This interface is deprecated, and it is strongly recommended that you 1081 - # avoid using it. For changing block devices, use 1082 - # blockdev-change-medium; for changing VNC parameters, use 1083 - # change-vnc-password. 1090 + # Notes: This interface is deprecated, and it is strongly recommended that you 1091 + # avoid using it. For changing block devices, use 1092 + # blockdev-change-medium; for changing VNC parameters, use 1093 + # change-vnc-password. 1084 1094 # 1085 1095 # Since: 0.14.0 1086 1096 # ··· 1225 1235 # 1226 1236 # @opaque: A free-form string that can be used to describe the fd. 1227 1237 # 1228 - # Returns: @AddfdInfo on success 1229 - # 1230 - # If file descriptor was not received, FdNotSupplied 1231 - # 1232 - # If @fdset-id is a negative value, InvalidParameterValue 1238 + # Returns: - @AddfdInfo on success 1239 + # - If file descriptor was not received, FdNotSupplied 1240 + # - If @fdset-id is a negative value, InvalidParameterValue 1233 1241 # 1234 1242 # Notes: The list of fd sets is shared by all monitor connections. 1235 1243 # ··· 1257 1265 # 1258 1266 # @fd: The file descriptor that is to be removed. 1259 1267 # 1260 - # Returns: Nothing on success 1261 - # If @fdset-id or @fd is not found, FdNotFound 1268 + # Returns: - Nothing on success 1269 + # - If @fdset-id or @fd is not found, FdNotFound 1262 1270 # 1263 1271 # Since: 1.2.0 1264 1272 # ··· 1719 1727 # of the VM are not loaded by this command. 1720 1728 # 1721 1729 # @filename: the file to load the state of the devices from as binary 1722 - # data. See xen-save-devices-state.txt for a description of the binary 1723 - # format. 1730 + # data. See xen-save-devices-state.txt for a description of the binary 1731 + # format. 1724 1732 # 1725 1733 # Since: 2.7 1726 1734 #
+11 -15
qapi/net.json
··· 47 47 # Additional arguments depend on the type. 48 48 # 49 49 # TODO: This command effectively bypasses QAPI completely due to its 50 - # "additional arguments" business. It shouldn't have been added to 51 - # the schema in this form. It should be qapified properly, or 52 - # replaced by a properly qapified command. 50 + # "additional arguments" business. It shouldn't have been added to 51 + # the schema in this form. It should be qapified properly, or 52 + # replaced by a properly qapified command. 53 53 # 54 54 # Since: 0.14.0 55 55 # ··· 213 213 # @fd: file descriptor of an already opened tap 214 214 # 215 215 # @fds: multiple file descriptors of already opened multiqueue capable 216 - # tap 216 + # tap 217 217 # 218 218 # @script: script to initialize the interface 219 219 # ··· 232 232 # @vhostfd: file descriptor of an already opened vhost net device 233 233 # 234 234 # @vhostfds: file descriptors of multiple already opened vhost net 235 - # devices 235 + # devices 236 236 # 237 237 # @vhostforce: vhost on for non-MSIX virtio guests 238 238 # 239 239 # @queues: number of queues to be created for multiqueue capable tap 240 240 # 241 241 # @poll-us: maximum number of microseconds that could 242 - # be spent on busy polling for tap (since 2.7) 242 + # be spent on busy polling for tap (since 2.7) 243 243 # 244 244 # Since: 1.2 245 245 ## ··· 446 446 # Available netdev drivers. 447 447 # 448 448 # Since: 2.7 449 - # 450 - # 'dump': dropped in 2.12 451 449 ## 452 450 { 'enum': 'NetClientDriver', 453 451 'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'vde', ··· 464 462 # 465 463 # Since: 1.2 466 464 # 467 - # 'l2tpv3' - since 2.1 465 + # 'l2tpv3' - since 2.1 468 466 ## 469 467 { 'union': 'Netdev', 470 468 'base': { 'id': 'str', 'type': 'NetClientDriver' }, ··· 493 491 # @opts: device type specific properties (legacy) 494 492 # 495 493 # Since: 1.2 496 - # 497 - # 'vlan': dropped in 3.0 498 494 ## 499 495 { 'struct': 'NetLegacy', 500 496 'data': { ··· 691 687 # Parameters for self-announce timers 692 688 # 693 689 # @initial: Initial delay (in ms) before sending the first GARP/RARP 694 - # announcement 690 + # announcement 695 691 # 696 692 # @max: Maximum delay (in ms) between GARP/RARP announcement packets 697 693 # ··· 700 696 # @step: Delay increase (in ms) after each self-announcement attempt 701 697 # 702 698 # @interfaces: An optional list of interface names, which restricts the 703 - # announcement to the listed interfaces. (Since 4.1) 699 + # announcement to the listed interfaces. (Since 4.1) 704 700 # 705 701 # @id: A name to be used to identify an instance of announce-timers 706 - # and to allow it to modified later. Not for use as 707 - # part of the migration parameters. (Since 4.1) 702 + # and to allow it to modified later. Not for use as 703 + # part of the migration parameters. (Since 4.1) 708 704 # 709 705 # Since: 4.0 710 706 ##
+5 -5
qapi/qdev.json
··· 19 19 # Returns: a list of ObjectPropertyInfo describing a devices properties 20 20 # 21 21 # Note: objects can create properties at runtime, for example to describe 22 - # links between different devices and/or objects. These properties 23 - # are not included in the output of this command. 22 + # links between different devices and/or objects. These properties 23 + # are not included in the output of this command. 24 24 # 25 25 # Since: 1.2 26 26 ## ··· 58 58 # <- { "return": {} } 59 59 # 60 60 # TODO: This command effectively bypasses QAPI completely due to its 61 - # "additional arguments" business. It shouldn't have been added to 62 - # the schema in this form. It should be qapified properly, or 63 - # replaced by a properly qapified command. 61 + # "additional arguments" business. It shouldn't have been added to 62 + # the schema in this form. It should be qapified properly, or 63 + # replaced by a properly qapified command. 64 64 # 65 65 # Since: 0.13 66 66 ##
+2 -2
qapi/qom.json
··· 189 189 # @typename: the type name of an object 190 190 # 191 191 # Note: objects can create properties at runtime, for example to describe 192 - # links between different devices and/or objects. These properties 193 - # are not included in the output of this command. 192 + # links between different devices and/or objects. These properties 193 + # are not included in the output of this command. 194 194 # 195 195 # Returns: a list of ObjectPropertyInfo describing object properties 196 196 #
+6 -6
qapi/rocker.json
··· 140 140 # @ip-dst: IP header destination address 141 141 # 142 142 # Note: optional members may or may not appear in the flow key 143 - # depending if they're relevant to the flow key. 143 + # depending if they're relevant to the flow key. 144 144 # 145 145 # Since: 2.4 146 146 ## ··· 170 170 # @ip-tos: IP header TOS field 171 171 # 172 172 # Note: optional members may or may not appear in the flow mask 173 - # depending if they're relevant to the flow mask. 173 + # depending if they're relevant to the flow mask. 174 174 # 175 175 # Since: 2.4 176 176 ## ··· 197 197 # @out-pport: physical output port 198 198 # 199 199 # Note: optional members may or may not appear in the flow action 200 - # depending if they're relevant to the flow action. 200 + # depending if they're relevant to the flow action. 201 201 # 202 202 # Since: 2.4 203 203 ## ··· 235 235 # @name: switch name 236 236 # 237 237 # @tbl-id: flow table ID. If tbl-id is not specified, returns 238 - # flow information for all tables. 238 + # flow information for all tables. 239 239 # 240 240 # Returns: rocker OF-DPA flow information 241 241 # ··· 291 291 # @ttl-check: perform TTL check 292 292 # 293 293 # Note: optional members may or may not appear in the group depending 294 - # if they're relevant to the group type. 294 + # if they're relevant to the group type. 295 295 # 296 296 # Since: 2.4 297 297 ## ··· 311 311 # @name: switch name 312 312 # 313 313 # @type: group type. If type is not specified, returns 314 - # group information for all group types. 314 + # group information for all group types. 315 315 # 316 316 # Returns: rocker OF-DPA group information 317 317 #
+17 -17
qapi/run-state.json
··· 15 15 # @finish-migrate: guest is paused to finish the migration process 16 16 # 17 17 # @inmigrate: guest is paused waiting for an incoming migration. Note 18 - # that this state does not tell whether the machine will start at the 19 - # end of the migration. This depends on the command-line -S option and 20 - # any invocation of 'stop' or 'cont' that has happened since QEMU was 21 - # started. 18 + # that this state does not tell whether the machine will start at the 19 + # end of the migration. This depends on the command-line -S option and 20 + # any invocation of 'stop' or 'cont' that has happened since QEMU was 21 + # started. 22 22 # 23 23 # @internal-error: An internal error that prevents further guest execution 24 - # has occurred 24 + # has occurred 25 25 # 26 26 # @io-error: the last IOP has failed and the device is configured to pause 27 - # on I/O errors 27 + # on I/O errors 28 28 # 29 29 # @paused: guest has been paused via the 'stop' command 30 30 # ··· 85 85 # @guest-panic: Guest panicked, and command line turns that into a shutdown 86 86 # 87 87 # @subsystem-reset: Partial guest reset that does not trigger QMP events and 88 - # ignores --no-reboot. This is useful for sanitizing 89 - # hypercalls on s390 that are used during kexec/kdump/boot 88 + # ignores --no-reboot. This is useful for sanitizing 89 + # hypercalls on s390 that are used during kexec/kdump/boot 90 90 # 91 91 ## 92 92 { 'enum': 'ShutdownCause', ··· 140 140 # about to exit. 141 141 # 142 142 # @guest: If true, the shutdown was triggered by a guest request (such as 143 - # a guest-initiated ACPI shutdown request or other hardware-specific action) 144 - # rather than a host request (such as sending qemu a SIGINT). (since 2.10) 143 + # a guest-initiated ACPI shutdown request or other hardware-specific action) 144 + # rather than a host request (such as sending qemu a SIGINT). (since 2.10) 145 145 # 146 146 # @reason: The @ShutdownCause which resulted in the SHUTDOWN. (since 4.0) 147 147 # 148 148 # Note: If the command-line option "-no-shutdown" has been specified, qemu will 149 - # not exit, and a STOP event will eventually follow the SHUTDOWN event 149 + # not exit, and a STOP event will eventually follow the SHUTDOWN event 150 150 # 151 151 # Since: 0.12.0 152 152 # ··· 180 180 # Emitted when the virtual machine is reset 181 181 # 182 182 # @guest: If true, the reset was triggered by a guest request (such as 183 - # a guest-initiated ACPI reboot request or other hardware-specific action) 184 - # rather than a host request (such as the QMP command system_reset). 185 - # (since 2.10) 183 + # a guest-initiated ACPI reboot request or other hardware-specific action) 184 + # rather than a host request (such as the QMP command system_reset). 185 + # (since 2.10) 186 186 # 187 187 # @reason: The @ShutdownCause of the RESET. (since 4.0) 188 188 # ··· 283 283 # @action: action that has been taken 284 284 # 285 285 # Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is 286 - # followed respectively by the RESET, SHUTDOWN, or STOP events 286 + # followed respectively by the RESET, SHUTDOWN, or STOP events 287 287 # 288 288 # Note: This event is rate-limited. 289 289 # ··· 441 441 # @disabled-wait: the CPU has entered a disabled wait state 442 442 # 443 443 # @extint-loop: clock comparator or cpu timer interrupt with new PSW enabled 444 - # for external interrupts 444 + # for external interrupts 445 445 # 446 446 # @pgmint-loop: program interrupt with BAD new PSW 447 447 # 448 448 # @opint-loop: operation exception interrupt with invalid code at the program 449 - # interrupt new PSW 449 + # interrupt new PSW 450 450 # 451 451 # Since: 2.12 452 452 ##
+4 -4
qapi/sockets.json
··· 89 89 # @port: port 90 90 # 91 91 # Note: string types are used to allow for possible future hostname or 92 - # service resolution support. 92 + # service resolution support. 93 93 # 94 94 # Since: 2.8 95 95 ## ··· 104 104 # Captures the address of a socket, which could also be a named file descriptor 105 105 # 106 106 # Note: This type is deprecated in favor of SocketAddress. The 107 - # difference between SocketAddressLegacy and SocketAddress is that the 108 - # latter is a flat union rather than a simple union. Flat is nicer 109 - # because it avoids nesting on the wire, i.e. that form has fewer {}. 107 + # difference between SocketAddressLegacy and SocketAddress is that the 108 + # latter is a flat union rather than a simple union. Flat is nicer 109 + # because it avoids nesting on the wire, i.e. that form has fewer {}. 110 110 111 111 # 112 112 # Since: 1.3
+2 -2
qapi/tpm.json
··· 96 96 # 97 97 # A union referencing different TPM backend types' configuration options 98 98 # 99 - # @type: 'passthrough' The configuration options for the TPM passthrough type 100 - # 'emulator' The configuration options for TPM emulator backend type 99 + # @type: - 'passthrough' The configuration options for the TPM passthrough type 100 + # - 'emulator' The configuration options for TPM emulator backend type 101 101 # 102 102 # Since: 1.5 103 103 ##
+8 -7
qapi/trace.json
··· 52 52 # 53 53 # Returns: a list of @TraceEventInfo for the matching events 54 54 # 55 - # An event is returned if: 56 - # - its name matches the @name pattern, and 57 - # - if @vcpu is given, the event has the "vcpu" property. 55 + # An event is returned if: 58 56 # 59 - # Therefore, if @vcpu is given, the operation will only match per-vCPU events, 60 - # returning their state on the specified vCPU. Special case: if @name is an 61 - # exact match, @vcpu is given and the event does not have the "vcpu" property, 62 - # an error is returned. 57 + # - its name matches the @name pattern, and 58 + # - if @vcpu is given, the event has the "vcpu" property. 59 + # 60 + # Therefore, if @vcpu is given, the operation will only match per-vCPU events, 61 + # returning their state on the specified vCPU. Special case: if @name is an 62 + # exact match, @vcpu is given and the event does not have the "vcpu" property, 63 + # an error is returned. 63 64 # 64 65 # Since: 2.2 65 66 #
+2 -2
qapi/transaction.json
··· 132 132 # Errors depend on the operations of the transaction 133 133 # 134 134 # Note: The transaction aborts on the first failure. Therefore, there will be 135 - # information on only one failed operation returned in an error condition, and 136 - # subsequent actions will not have been attempted. 135 + # information on only one failed operation returned in an error condition, and 136 + # subsequent actions will not have been attempted. 137 137 # 138 138 # Since: 1.1 139 139 #
+60 -57
qapi/ui.json
··· 12 12 # 13 13 # Sets the password of a remote display session. 14 14 # 15 - # @protocol: `vnc' to modify the VNC server password 16 - # `spice' to modify the Spice server password 15 + # @protocol: - 'vnc' to modify the VNC server password 16 + # - 'spice' to modify the Spice server password 17 17 # 18 18 # @password: the new password 19 19 # 20 20 # @connected: how to handle existing clients when changing the 21 - # password. If nothing is specified, defaults to `keep' 22 - # `fail' to fail the command if clients are connected 23 - # `disconnect' to disconnect existing clients 24 - # `keep' to maintain existing clients 21 + # password. If nothing is specified, defaults to 'keep' 22 + # 'fail' to fail the command if clients are connected 23 + # 'disconnect' to disconnect existing clients 24 + # 'keep' to maintain existing clients 25 25 # 26 - # Returns: Nothing on success 27 - # If Spice is not enabled, DeviceNotFound 26 + # Returns: - Nothing on success 27 + # - If Spice is not enabled, DeviceNotFound 28 28 # 29 29 # Since: 0.14.0 30 30 # ··· 43 43 # 44 44 # Expire the password of a remote display server. 45 45 # 46 - # @protocol: the name of the remote display protocol `vnc' or `spice' 46 + # @protocol: the name of the remote display protocol 'vnc' or 'spice' 47 47 # 48 48 # @time: when to expire the password. 49 - # `now' to expire the password immediately 50 - # `never' to cancel password expiration 51 - # `+INT' where INT is the number of seconds from now (integer) 52 - # `INT' where INT is the absolute time in seconds 49 + # 50 + # - 'now' to expire the password immediately 51 + # - 'never' to cancel password expiration 52 + # - '+INT' where INT is the number of seconds from now (integer) 53 + # - 'INT' where INT is the absolute time in seconds 53 54 # 54 - # Returns: Nothing on success 55 - # If @protocol is `spice' and Spice is not active, DeviceNotFound 55 + # Returns: - Nothing on success 56 + # - If @protocol is 'spice' and Spice is not active, DeviceNotFound 56 57 # 57 58 # Since: 0.14.0 58 59 # ··· 201 202 # @tls-port: The SPICE server's TLS port number. 202 203 # 203 204 # @auth: the current authentication type used by the server 204 - # 'none' if no authentication is being used 205 - # 'spice' uses SASL or direct TLS authentication, depending on command 206 - # line options 205 + # 206 + # - 'none' if no authentication is being used 207 + # - 'spice' uses SASL or direct TLS authentication, depending on command 208 + # line options 207 209 # 208 210 # @mouse-mode: The mode in which the mouse cursor is displayed currently. Can 209 211 # be determined by the client or the server, or unknown if spice ··· 433 435 # @host: The hostname the VNC server is bound to. This depends on 434 436 # the name resolution on the host and may be an IP address. 435 437 # 436 - # @family: 'ipv6' if the host is listening for IPv6 connections 437 - # 'ipv4' if the host is listening for IPv4 connections 438 - # 'unix' if the host is listening on a unix domain socket 439 - # 'unknown' otherwise 438 + # @family: - 'ipv6' if the host is listening for IPv6 connections 439 + # - 'ipv4' if the host is listening for IPv4 connections 440 + # - 'unix' if the host is listening on a unix domain socket 441 + # - 'unknown' otherwise 440 442 # 441 443 # @service: The service name of the server's port. This may depends 442 444 # on the host system's service database so symbolic names should not 443 445 # be relied on. 444 446 # 445 447 # @auth: the current authentication type used by the server 446 - # 'none' if no authentication is being used 447 - # 'vnc' if VNC authentication is being used 448 - # 'vencrypt+plain' if VEncrypt is used with plain text authentication 449 - # 'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication 450 - # 'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication 451 - # 'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth 452 - # 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth 453 - # 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth 454 - # 'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth 455 - # 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth 456 - # 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth 448 + # 449 + # - 'none' if no authentication is being used 450 + # - 'vnc' if VNC authentication is being used 451 + # - 'vencrypt+plain' if VEncrypt is used with plain text authentication 452 + # - 'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication 453 + # - 'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication 454 + # - 'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth 455 + # - 'vencrypt+x509+none' if VEncrypt is used with x509 and no auth 456 + # - 'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth 457 + # - 'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth 458 + # - 'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth 459 + # - 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth 457 460 # 458 461 # @clients: a list of @VncClientInfo of all currently connected clients 459 462 # ··· 591 594 # 592 595 # Change the VNC server password. 593 596 # 594 - # @password: the new password to use with VNC authentication 597 + # @password: the new password to use with VNC authentication 595 598 # 596 599 # Since: 1.1 597 600 # 598 - # Notes: An empty password in this command will set the password to the empty 599 - # string. Existing clients are unaffected by executing this command. 601 + # Notes: An empty password in this command will set the password to the empty 602 + # string. Existing clients are unaffected by executing this command. 600 603 ## 601 604 { 'command': 'change-vnc-password', 602 605 'data': { 'password': 'str' }, ··· 612 615 # @client: client information 613 616 # 614 617 # Note: This event is emitted before any authentication takes place, thus 615 - # the authentication ID is not provided 618 + # the authentication ID is not provided 616 619 # 617 620 # Since: 0.13.0 618 621 # ··· 776 779 # @ac_forward: since 2.10 777 780 # @ac_refresh: since 2.10 778 781 # @ac_bookmarks: since 2.10 779 - # altgr, altgr_r: dropped in 2.10 780 782 # 781 783 # @muhenkan: since 2.12 782 784 # @katakanahiragana: since 2.12 ··· 840 842 # @hold-time: time to delay key up events, milliseconds. Defaults 841 843 # to 100 842 844 # 843 - # Returns: Nothing on success 844 - # If key is unknown or redundant, InvalidParameter 845 + # Returns: - Nothing on success 846 + # - If key is unknown or redundant, InvalidParameter 845 847 # 846 848 # Since: 1.3.0 847 849 # ··· 915 917 # 916 918 # Pointer motion input event. 917 919 # 918 - # @axis: Which axis is referenced by @value. 919 - # @value: Pointer position. For absolute coordinates the 920 - # valid range is 0 -> 0x7ffff 920 + # @axis: Which axis is referenced by @value. 921 + # @value: Pointer position. For absolute coordinates the 922 + # valid range is 0 -> 0x7ffff 921 923 # 922 924 # Since: 2.0 923 925 ## ··· 931 933 # Input event union. 932 934 # 933 935 # @type: the input type, one of: 934 - # - 'key': Input event of Keyboard 935 - # - 'btn': Input event of pointer buttons 936 - # - 'rel': Input event of relative pointer motion 937 - # - 'abs': Input event of absolute pointer motion 936 + # 937 + # - 'key': Input event of Keyboard 938 + # - 'btn': Input event of pointer buttons 939 + # - 'rel': Input event of relative pointer motion 940 + # - 'abs': Input event of absolute pointer motion 938 941 # 939 942 # Since: 2.0 940 943 ## ··· 949 952 # 950 953 # Send input event(s) to guest. 951 954 # 952 - # @device: display device to send event(s) to. 953 - # @head: head to send event(s) to, in case the 954 - # display device supports multiple scanouts. 955 - # @events: List of InputEvent union. 956 - # 957 - # Returns: Nothing on success. 958 - # 959 955 # The @device and @head parameters can be used to send the input event 960 956 # to specific input devices in case (a) multiple input devices of the 961 957 # same kind are added to the virtual machine and (b) you have ··· 967 963 # are admissible, but devices with input routing config take 968 964 # precedence. 969 965 # 966 + # @device: display device to send event(s) to. 967 + # @head: head to send event(s) to, in case the 968 + # display device supports multiple scanouts. 969 + # @events: List of InputEvent union. 970 + # 971 + # Returns: Nothing on success. 972 + # 970 973 # Since: 2.6 971 974 # 972 975 # Note: The consoles are visible in the qom tree, under 973 - # /backend/console[$index]. They have a device link and head property, 974 - # so it is possible to map which console belongs to which device and 975 - # display. 976 + # /backend/console[$index]. They have a device link and head property, 977 + # so it is possible to map which console belongs to which device and 978 + # display. 976 979 # 977 980 # Example: 978 981 #
+82 -74
qga/qapi-schema.json
··· 416 416 # Returns: GuestFsfreezeStatus ("thawed", "frozen", etc., as defined below) 417 417 # 418 418 # Note: This may fail to properly report the current state as a result of 419 - # some other guest processes having issued an fs freeze/thaw. 419 + # some other guest processes having issued an fs freeze/thaw. 420 420 # 421 421 # Since: 0.15.0 422 422 ## ··· 431 431 # unfreeze. 432 432 # 433 433 # Note: On Windows, the command is implemented with the help of a 434 - # Volume Shadow-copy Service DLL helper. The frozen state is limited 435 - # for up to 10 seconds by VSS. 434 + # Volume Shadow-copy Service DLL helper. The frozen state is limited 435 + # for up to 10 seconds by VSS. 436 436 # 437 437 # Returns: Number of file systems currently frozen. On error, all filesystems 438 - # will be thawed. If no filesystems are frozen as a result of this call, 439 - # then @guest-fsfreeze-status will remain "thawed" and calling 440 - # @guest-fsfreeze-thaw is not necessary. 438 + # will be thawed. If no filesystems are frozen as a result of this call, 439 + # then @guest-fsfreeze-status will remain "thawed" and calling 440 + # @guest-fsfreeze-thaw is not necessary. 441 441 # 442 442 # Since: 0.15.0 443 443 ## ··· 455 455 # Invalid mount points are ignored. 456 456 # 457 457 # Returns: Number of file systems currently frozen. On error, all filesystems 458 - # will be thawed. 458 + # will be thawed. 459 459 # 460 460 # Since: 2.2 461 461 ## ··· 510 510 # 511 511 # Discard (or "trim") blocks which are not in use by the filesystem. 512 512 # 513 - # @minimum: 514 - # Minimum contiguous free range to discard, in bytes. Free ranges 515 - # smaller than this may be ignored (this is a hint and the guest 516 - # may not respect it). By increasing this value, the fstrim 517 - # operation will complete more quickly for filesystems with badly 518 - # fragmented free space, although not all blocks will be discarded. 519 - # The default value is zero, meaning "discard every free block". 513 + # @minimum: Minimum contiguous free range to discard, in bytes. Free ranges 514 + # smaller than this may be ignored (this is a hint and the guest 515 + # may not respect it). By increasing this value, the fstrim 516 + # operation will complete more quickly for filesystems with badly 517 + # fragmented free space, although not all blocks will be discarded. 518 + # The default value is zero, meaning "discard every free block". 520 519 # 521 520 # Returns: A @GuestFilesystemTrimResponse which contains the 522 521 # status of all trimmed paths. (since 2.4) ··· 546 545 # (or set its status to "shutdown") due to other reasons. 547 546 # 548 547 # The following errors may be returned: 549 - # If suspend to disk is not supported, Unsupported 548 + # 549 + # - If suspend to disk is not supported, Unsupported 550 550 # 551 551 # Notes: It's strongly recommended to issue the guest-sync command before 552 552 # sending commands when the guest resumes ··· 575 575 # 576 576 # This command does NOT return a response on success. There are two options 577 577 # to check for success: 578 - # 1. Wait for the SUSPEND QMP event from QEMU 579 - # 2. Issue the query-status QMP command to confirm the VM status is 580 - # "suspended" 578 + # 579 + # 1. Wait for the SUSPEND QMP event from QEMU 580 + # 2. Issue the query-status QMP command to confirm the VM status is 581 + # "suspended" 581 582 # 582 583 # The following errors may be returned: 583 - # If suspend to ram is not supported, Unsupported 584 + # 585 + # - If suspend to ram is not supported, Unsupported 584 586 # 585 587 # Notes: It's strongly recommended to issue the guest-sync command before 586 588 # sending commands when the guest resumes ··· 607 609 # 608 610 # This command does NOT return a response on success. There are two options 609 611 # to check for success: 610 - # 1. Wait for the SUSPEND QMP event from QEMU 611 - # 2. Issue the query-status QMP command to confirm the VM status is 612 - # "suspended" 612 + # 613 + # 1. Wait for the SUSPEND QMP event from QEMU 614 + # 2. Issue the query-status QMP command to confirm the VM status is 615 + # "suspended" 613 616 # 614 617 # The following errors may be returned: 615 - # If hybrid suspend is not supported, Unsupported 618 + # 619 + # - If hybrid suspend is not supported, Unsupported 616 620 # 617 621 # Notes: It's strongly recommended to issue the guest-sync command before 618 622 # sending commands when the guest resumes ··· 693 697 # @ip-addresses: List of addresses assigned to @name 694 698 # 695 699 # @statistics: various statistic counters related to @name 696 - # (since 2.11) 700 + # (since 2.11) 697 701 # 698 702 # Since: 1.1 699 703 ## ··· 743 747 # This is a read-only operation. 744 748 # 745 749 # Returns: The list of all VCPUs the guest knows about. Each VCPU is put on the 746 - # list exactly once, but their order is unspecified. 750 + # list exactly once, but their order is unspecified. 747 751 # 748 752 # Since: 1.5 749 753 ## ··· 767 771 # Returns: The length of the initial sublist that has been successfully 768 772 # processed. The guest agent maximizes this value. Possible cases: 769 773 # 770 - # - 0: if the @vcpus list was empty on input. Guest state 771 - # has not been changed. Otherwise, 772 - # - Error: processing the first node of @vcpus failed for the 773 - # reason returned. Guest state has not been changed. 774 - # Otherwise, 775 - # - < length(@vcpus): more than zero initial nodes have been processed, 776 - # but not the entire @vcpus list. Guest state has 777 - # changed accordingly. To retrieve the error 778 - # (assuming it persists), repeat the call with the 779 - # successfully processed initial sublist removed. 780 - # Otherwise, 781 - # - length(@vcpus): call successful. 774 + # - 0: 775 + # if the @vcpus list was empty on input. Guest state 776 + # has not been changed. Otherwise, 777 + # - Error: 778 + # processing the first node of @vcpus failed for the 779 + # reason returned. Guest state has not been changed. 780 + # Otherwise, 781 + # - < length(@vcpus): 782 + # more than zero initial nodes have been processed, 783 + # but not the entire @vcpus list. Guest state has 784 + # changed accordingly. To retrieve the error 785 + # (assuming it persists), repeat the call with the 786 + # successfully processed initial sublist removed. 787 + # Otherwise, 788 + # - length(@vcpus): 789 + # call successful. 782 790 # 783 791 # Since: 1.5 784 792 ## ··· 809 817 # @sas: Win serial-attaches SCSI bus type 810 818 # @mmc: Win multimedia card (MMC) bus type 811 819 # @virtual: Win virtual bus type 812 - # @file-backed virtual: Win file-backed bus type 820 + # @file-backed-virtual: Win file-backed bus type 813 821 # 814 822 # Since: 2.2; 'Unknown' and all entries below since 2.4 815 823 ## ··· 937 945 # This is a read-only operation. 938 946 # 939 947 # Returns: The list of all memory blocks the guest knows about. 940 - # Each memory block is put on the list exactly once, but their order 941 - # is unspecified. 948 + # Each memory block is put on the list exactly once, but their order 949 + # is unspecified. 942 950 # 943 951 # Since: 2.3 944 952 ## ··· 971 979 # @response: the result of memory block operation. 972 980 # 973 981 # @error-code: the error number. 974 - # When memory block operation fails, we assign the value of 975 - # 'errno' to this member, it indicates what goes wrong. 976 - # When the operation succeeds, it will be omitted. 982 + # When memory block operation fails, we assign the value of 983 + # 'errno' to this member, it indicates what goes wrong. 984 + # When the operation succeeds, it will be omitted. 977 985 # 978 986 # Since: 2.3 979 987 ## ··· 1040 1048 # @exited: true if process has already terminated. 1041 1049 # @exitcode: process exit code if it was normally terminated. 1042 1050 # @signal: signal number (linux) or unhandled exception code 1043 - # (windows) if the process was abnormally terminated. 1051 + # (windows) if the process was abnormally terminated. 1044 1052 # @out-data: base64-encoded stdout of the process 1045 1053 # @err-data: base64-encoded stderr of the process 1046 - # Note: @out-data and @err-data are present only 1047 - # if 'capture-output' was specified for 'guest-exec' 1054 + # Note: @out-data and @err-data are present only 1055 + # if 'capture-output' was specified for 'guest-exec' 1048 1056 # @out-truncated: true if stdout was not fully captured 1049 - # due to size limitation. 1057 + # due to size limitation. 1050 1058 # @err-truncated: true if stderr was not fully captured 1051 - # due to size limitation. 1059 + # due to size limitation. 1052 1060 # 1053 1061 # Since: 2.5 1054 1062 ## ··· 1131 1139 1132 1140 ## 1133 1141 # @GuestUser: 1134 - # @user: Username 1135 - # @domain: Logon domain (windows only) 1142 + # @user: Username 1143 + # @domain: Logon domain (windows only) 1136 1144 # @login-time: Time of login of this user on the computer. If multiple 1137 1145 # instances of the user are logged in, the earliest login time is 1138 1146 # reported. The value is in fractional seconds since epoch time. ··· 1156 1164 ## 1157 1165 # @GuestTimezone: 1158 1166 # 1159 - # @zone: Timezone name. These values may differ depending on guest/OS and 1160 - # should only be used for informational purposes. 1161 - # @offset: Offset to UTC in seconds, negative numbers for time zones west of 1162 - # GMT, positive numbers for east 1167 + # @zone: Timezone name. These values may differ depending on guest/OS and 1168 + # should only be used for informational purposes. 1169 + # @offset: Offset to UTC in seconds, negative numbers for time zones west of 1170 + # GMT, positive numbers for east 1163 1171 # 1164 1172 # Since: 2.10 1165 1173 ## ··· 1182 1190 # @GuestOSInfo: 1183 1191 # 1184 1192 # @kernel-release: 1185 - # * POSIX: release field returned by uname(2) 1186 - # * Windows: build number of the OS 1193 + # * POSIX: release field returned by uname(2) 1194 + # * Windows: build number of the OS 1187 1195 # @kernel-version: 1188 - # * POSIX: version field returned by uname(2) 1189 - # * Windows: version number of the OS 1196 + # * POSIX: version field returned by uname(2) 1197 + # * Windows: version number of the OS 1190 1198 # @machine: 1191 - # * POSIX: machine field returned by uname(2) 1192 - # * Windows: one of x86, x86_64, arm, ia64 1199 + # * POSIX: machine field returned by uname(2) 1200 + # * Windows: one of x86, x86_64, arm, ia64 1193 1201 # @id: 1194 - # * POSIX: as defined by os-release(5) 1195 - # * Windows: contains string "mswindows" 1202 + # * POSIX: as defined by os-release(5) 1203 + # * Windows: contains string "mswindows" 1196 1204 # @name: 1197 - # * POSIX: as defined by os-release(5) 1198 - # * Windows: contains string "Microsoft Windows" 1205 + # * POSIX: as defined by os-release(5) 1206 + # * Windows: contains string "Microsoft Windows" 1199 1207 # @pretty-name: 1200 - # * POSIX: as defined by os-release(5) 1201 - # * Windows: product name, e.g. "Microsoft Windows 10 Enterprise" 1208 + # * POSIX: as defined by os-release(5) 1209 + # * Windows: product name, e.g. "Microsoft Windows 10 Enterprise" 1202 1210 # @version: 1203 - # * POSIX: as defined by os-release(5) 1204 - # * Windows: long version string, e.g. "Microsoft Windows Server 2008" 1211 + # * POSIX: as defined by os-release(5) 1212 + # * Windows: long version string, e.g. "Microsoft Windows Server 2008" 1205 1213 # @version-id: 1206 - # * POSIX: as defined by os-release(5) 1207 - # * Windows: short version identifier, e.g. "7" or "20012r2" 1214 + # * POSIX: as defined by os-release(5) 1215 + # * Windows: short version identifier, e.g. "7" or "20012r2" 1208 1216 # @variant: 1209 - # * POSIX: as defined by os-release(5) 1210 - # * Windows: contains string "server" or "client" 1217 + # * POSIX: as defined by os-release(5) 1218 + # * Windows: contains string "server" or "client" 1211 1219 # @variant-id: 1212 - # * POSIX: as defined by os-release(5) 1213 - # * Windows: contains string "server" or "client" 1220 + # * POSIX: as defined by os-release(5) 1221 + # * Windows: contains string "server" or "client" 1214 1222 # 1215 1223 # Notes: 1216 1224 #