qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/18] QAPI: add cross-references to qapi docs
@ 2025-07-11  5:39 John Snow
  2025-07-11  5:39 ` [PATCH v2 01/18] qapi: add cross-references to acpi.json John Snow
                   ` (19 more replies)
  0 siblings, 20 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Based-on: 20250711051045.51110-1-jsnow@redhat.com
    [PATCH v6 0/4] qapi: add auto-generated return docs

v2:
 - Applied a few new transformations I had missed.
 - Manually excluded those Markus pointed out as being unhelpful.

Hi, this patch series is a *mostly* mechanical application of QAPI
cross-references to the QAPI/QMP documentation. I exported all
cross-referenceable symbols from the QMP QAPI schema and ran them
through a script that converted any matching words to a cross-reference.

I then used `git add -p` and only added changes that looked reasonable,
omitting many cases of converting common words like "stop",
"transaction", "eject", "String" etc when it wasn't immediately clear
that it was appropriate. I probably missed a few ... in either
direction.

I'd like to ask maintainers for each subsystem to review the changes and
confirm that they make sense. To make it easy for you, here's a link to
each module that was changed, in order:

1/18 acpi
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#acpi
2/18 authz
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#user-authorization
3/18 block
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#block-devices
4/18 crypto
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#cryptography-devices
5/18 dump
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#dump-guest-memory
6/18 job
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#background-jobs
7/18 machine
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#machines
8/18 migration
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#migration
9/18 net
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#net-devices
10/18 pci
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#pci
11/18 QOM
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#qemu-object-model-qom
12/18 replay
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#record-replay
13/18 run-state
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#vm-run-state
14/18 sockets
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#socket-data-types
15/18 ui
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#remote-desktop
16/18 virtio
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#virtio-devices
17/18 yank
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#yank-feature
18/18 misc
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#qmp-monitor-control
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#ebpf-objects
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#qmp-introspection
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-misc-arm
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-misc-i386
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-misc
    https://jsnow.gitlab.io/qemu/interop/qemu-qmp-ref.html#module-QMP-stats

A few benefits of doing this:

(1) It makes the docs easier to navigate for users, being able to just
    click to the referred data type / enum / event / command / etc.

(2) It helps prevent bitrot: if the name of a command / event / data
    type / etc changes, the cross-reference will cause the build to
    fail, giving a needed hint that documentation elsewhere needs to be
    updated.

(3) Prompting the maintainers to review the generated HTML documentation
    O:-)

A few hints for maintainers should they wish to try their own hand at
improving the documentation for their subsystems:

 *  Try building docs from your build directory like this:
    > DEBUG=1 pyvenv/bin/sphinx-build -v -j 1 -b html -d docs/manual.p/ ../docs/ docs/manual/;

    Limiting to one thread makes sphinx errors more verbose (and
    helpful), and if you run into rST formatting errors, you can view
    the 'qapi_qapi-schema.ir' artifact in the build directory (DEBUG=1
    causes this to exist) to examine the intermediate rST source code so
    you don't have to fight with the QAPI parsing subsystem to
    understand what happened.

 *  html docs of interest will be in
    docs/manual/interop/qemu-qmp-ref.html

 *  QMP reference index will be at docs/manual/qapi-qmp-index.html

 *  QAPI-specific cross-referencing syntax is documented at
    https://www.qemu.org/docs/master/devel/qapi-domain.html#cross-references

 *  QMP Example syntax is documented towards the bottom of this QAPI
    codegen section:
    https://www.qemu.org/docs/master/devel/qapi-code-gen.html#definition-documentation

John Snow (18):
  qapi: add cross-references to acpi.json
  qapi: add cross-references to authz.json
  qapi: add cross-references to block layer
  qapi: add cross-references to crypto.json
  qapi: add cross-references to dump.json
  qapi: add cross-references to job.json
  qapi: add cross-references to Machine core
  qapi: add cross-references to migration.json
  qapi: add cross-references to net.json
  qapi: add cross-references to pci.json
  qapi: add cross-references to QOM
  qapi: add cross-references to replay.json
  qapi: add cross-references to run-state.json
  qapi: add cross-references to sockets.json
  qapi: add cross-references to ui.json
  qapi: add cross-references to virtio.json
  qapi: add cross-references to yank.json
  qapi: add cross-references to misc modules

 qapi/acpi.json           |   2 +-
 qapi/authz.json          |   2 +-
 qapi/block-core.json     | 188 +++++++++++++++++++--------------------
 qapi/block-export.json   |  36 ++++----
 qapi/block.json          |  14 +--
 qapi/control.json        |   2 +-
 qapi/crypto.json         |   4 +-
 qapi/dump.json           |  12 +--
 qapi/ebpf.json           |   2 +-
 qapi/introspect.json     |  24 ++---
 qapi/job.json            |  71 +++++++--------
 qapi/machine-common.json |  20 ++---
 qapi/machine.json        |  82 ++++++++---------
 qapi/migration.json      |  68 +++++++-------
 qapi/misc-arm.json       |   4 +-
 qapi/misc-i386.json      |   2 +-
 qapi/misc.json           |  12 +--
 qapi/net.json            |   6 +-
 qapi/pci.json            |   2 +-
 qapi/qdev.json           |   4 +-
 qapi/qom.json            |  13 +--
 qapi/replay.json         |  10 +--
 qapi/run-state.json      |  46 +++++-----
 qapi/sockets.json        |   6 +-
 qapi/stats.json          |   8 +-
 qapi/transaction.json    |  12 +--
 qapi/ui.json             |  34 +++----
 qapi/virtio.json         |   8 +-
 qapi/yank.json           |  16 ++--
 29 files changed, 356 insertions(+), 354 deletions(-)

-- 
2.50.0




^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v2 01/18] qapi: add cross-references to acpi.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 02/18] qapi: add cross-references to authz.json John Snow
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/acpi.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi/acpi.json b/qapi/acpi.json
index 2d53b823656..8e48d8874dd 100644
--- a/qapi/acpi.json
+++ b/qapi/acpi.json
@@ -106,7 +106,7 @@
 ##
 # @query-acpi-ospm-status:
 #
-# Return a list of ACPIOSTInfo for devices that support status
+# Return a list of `ACPIOSTInfo` for devices that support status
 # reporting via ACPI _OST method.
 #
 # Since: 2.1
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 02/18] qapi: add cross-references to authz.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
  2025-07-11  5:39 ` [PATCH v2 01/18] qapi: add cross-references to acpi.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 03/18] qapi: add cross-references to block layer John Snow
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/authz.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi/authz.json b/qapi/authz.json
index 7fc6e3032ea..cbd9399c461 100644
--- a/qapi/authz.json
+++ b/qapi/authz.json
@@ -75,7 +75,7 @@
 # Properties for authz-listfile objects.
 #
 # @filename: File name to load the configuration from.  The file must
-#     contain valid JSON for AuthZListProperties.
+#     contain valid JSON for `AuthZListProperties`.
 #
 # @refresh: If true, inotify is used to monitor the file,
 #     automatically reloading changes.  If an error occurs during
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 03/18] qapi: add cross-references to block layer
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
  2025-07-11  5:39 ` [PATCH v2 01/18] qapi: add cross-references to acpi.json John Snow
  2025-07-11  5:39 ` [PATCH v2 02/18] qapi: add cross-references to authz.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  8:48   ` Markus Armbruster
  2025-07-11  5:39 ` [PATCH v2 04/18] qapi: add cross-references to crypto.json John Snow
                   ` (16 subsequent siblings)
  19 siblings, 1 reply; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/block-core.json   | 188 ++++++++++++++++++++---------------------
 qapi/block-export.json |  36 ++++----
 qapi/block.json        |  14 +--
 qapi/transaction.json  |  12 +--
 4 files changed, 125 insertions(+), 125 deletions(-)

diff --git a/qapi/block-core.json b/qapi/block-core.json
index f18db3149a3..ec4ea4ddd19 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -31,7 +31,7 @@
 # @icount: Current instruction count.  Appears when execution
 #     record/replay is enabled.  Used for "time-traveling" to match
 #     the moment in the recorded execution with the snapshots.  This
-#     counter may be obtained through @query-replay command
+#     counter may be obtained through `query-replay` command
 #     (since 5.2)
 #
 # Since: 1.3
@@ -223,7 +223,7 @@
 { 'struct': 'ImageInfoSpecificLUKSWrapper',
   'data': { 'data': 'QCryptoBlockInfoLUKS' } }
 # If we need to add block driver specific parameters for
-# LUKS in future, then we'll subclass QCryptoBlockInfoLUKS
+# LUKS in future, then we'll subclass `QCryptoBlockInfoLUKS`
 # to define a ImageInfoSpecificLUKS
 
 ##
@@ -332,7 +332,7 @@
 # node, annotated with information about that node in relation to its
 # parent.
 #
-# @name: Child name of the root node in the BlockGraphInfo struct, in
+# @name: Child name of the root node in the `BlockGraphInfo` struct, in
 #     its role as the child of some undescribed parent node
 #
 # @info: Block graph information starting at this node
@@ -349,7 +349,7 @@
 # @BlockGraphInfo:
 #
 # Information about all nodes in a block (sub)graph in the form of
-# BlockNodeInfo data.  The base BlockNodeInfo struct contains the
+# `BlockNodeInfo` data.  The base `BlockNodeInfo` struct contains the
 # information for the (sub)graph's root node.
 #
 # @children: Array of links to this node's child nodes' information
@@ -614,7 +614,7 @@
 # @inconsistent: true if this is a persistent bitmap that was
 #     improperly stored.  Implies @persistent to be true; @recording
 #     and @busy to be false.  This bitmap cannot be used.  To remove
-#     it, use @block-dirty-bitmap-remove.  (Since 4.0)
+#     it, use `block-dirty-bitmap-remove`.  (Since 4.0)
 #
 # Since: 1.3
 ##
@@ -709,12 +709,12 @@
 # @tray_open: True if the device's tray is open (only present if it
 #     has a tray)
 #
-# @io-status: @BlockDeviceIoStatus.  Only present if the device
+# @io-status: `BlockDeviceIoStatus`.  Only present if the device
 #     supports it and the VM is configured to stop on errors
 #     (supported device models: virtio-blk, IDE, SCSI except
 #     scsi-generic)
 #
-# @inserted: @BlockDeviceInfo describing the device if media is
+# @inserted: `BlockDeviceInfo` describing the device if media is
 #     present
 #
 # Since: 0.14
@@ -761,7 +761,7 @@
 ##
 # @query-block:
 #
-# Get a list of BlockInfo for all virtual block devices.
+# Get a list of `BlockInfo` for all virtual block devices.
 #
 # Returns: a list describing each virtual block device.
 #     Filter nodes that were created implicitly are skipped over.
@@ -1026,14 +1026,14 @@
 # @timed_stats: Statistics specific to the set of previously defined
 #     intervals of time (Since 2.5)
 #
-# @rd_latency_histogram: @BlockLatencyHistogramInfo.  (Since 4.0)
+# @rd_latency_histogram: `BlockLatencyHistogramInfo`.  (Since 4.0)
 #
-# @wr_latency_histogram: @BlockLatencyHistogramInfo.  (Since 4.0)
+# @wr_latency_histogram: `BlockLatencyHistogramInfo`.  (Since 4.0)
 #
-# @zone_append_latency_histogram: @BlockLatencyHistogramInfo.
+# @zone_append_latency_histogram: `BlockLatencyHistogramInfo`.
 #     (since 8.1)
 #
-# @flush_latency_histogram: @BlockLatencyHistogramInfo.  (Since 4.0)
+# @flush_latency_histogram: `BlockLatencyHistogramInfo`.  (Since 4.0)
 #
 # Since: 0.14
 ##
@@ -1134,7 +1134,7 @@
 # @qdev: The qdev ID, or if no ID is assigned, the QOM path of the
 #     block device.  (since 3.0)
 #
-# @stats: A @BlockDeviceStats for the device.
+# @stats: A `BlockDeviceStats` for the device.
 #
 # @driver-specific: Optional driver-specific stats.  (Since 4.2)
 #
@@ -1158,7 +1158,7 @@
 ##
 # @query-blockstats:
 #
-# Query the @BlockStats for all virtual block devices.
+# Query the `BlockStats` for all virtual block devices.
 #
 # @query-nodes: If true, the command will query all the block nodes
 #     that have a node name, in a list which will include "parent"
@@ -1289,8 +1289,8 @@
 # @report: for guest operations, report the error to the guest; for
 #     jobs, cancel the job
 #
-# @ignore: ignore the error, only report a QMP event (BLOCK_IO_ERROR
-#     or BLOCK_JOB_ERROR).  The backup, mirror and commit block jobs
+# @ignore: ignore the error, only report a QMP event (`BLOCK_IO_ERROR`
+#     or `BLOCK_JOB_ERROR`).  The backup, mirror and commit block jobs
 #     retry the failing request later and may still complete
 #     successfully.  The stream block job continues to stream and will
 #     complete with an error.
@@ -1323,7 +1323,7 @@
 #     (since: 2.4)
 #
 # @bitmap: only copy data described by the dirty bitmap.  Behavior on
-#     completion is determined by the BitmapSyncMode.  (since: 4.2)
+#     completion is determined by the `BitmapSyncMode`.  (since: 4.2)
 #
 # Since: 1.3
 ##
@@ -1530,7 +1530,7 @@
 # @overlay: reference to the existing block device that will become
 #     the overlay of @node, as part of taking the snapshot.  It must
 #     not have a current backing file (this can be achieved by passing
-#     "backing": null to blockdev-add).
+#     "backing": null to `blockdev-add`).
 #
 # Since: 2.5
 ##
@@ -1585,7 +1585,7 @@
 # @bitmap: The name of a dirty bitmap to use.  Must be present if sync
 #     is "bitmap" or "incremental".  Can be present if sync is "full"
 #     or "top".  Must not be present otherwise.
-#     (Since 2.4 (drive-backup), 3.1 (blockdev-backup))
+#     (Since 2.4 (`drive-backup`), 3.1 (`blockdev-backup`))
 #
 # @bitmap-mode: Specifies the type of data the bitmap should contain
 #     after the operation concludes.  Must be present if a bitmap was
@@ -1596,7 +1596,7 @@
 #
 # @on-source-error: the action to take on an error on the source,
 #     default 'report'.  'stop' and 'enospc' can only be used if the
-#     block device supports io-status (see BlockInfo).
+#     block device supports io-status (see `BlockInfo`).
 #
 # @on-target-error: the action to take on an error on the target,
 #     default 'report' (no limitations, since this applies to a
@@ -1606,14 +1606,14 @@
 #     copy-before-write jobs; defaults to break-guest-write.  (Since 10.1)
 #
 # @auto-finalize: When false, this job will wait in a PENDING state
-#     after it has finished its work, waiting for @job-finalize before
+#     after it has finished its work, waiting for `job-finalize` before
 #     making any block graph changes.  When true, this job will
 #     automatically perform its abort or commit actions.  Defaults to
 #     true.  (Since 2.12)
 #
 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
 #     after it has completely ceased all work, and awaits
-#     @job-dismiss.  When true, this job will automatically disappear
+#     `job-dismiss`.  When true, this job will automatically disappear
 #     without user intervention.  Defaults to true.  (Since 2.12)
 #
 # @filter-node-name: the node name that should be assigned to the
@@ -1719,7 +1719,7 @@
 #
 # @allow-write-only-overlay: If present, the check whether this
 #     operation is safe was relaxed so that it can be used to change
-#     backing file of a destination of a blockdev-mirror.  (since 5.0)
+#     backing file of a destination of a `blockdev-mirror`.  (since 5.0)
 #
 # Since: 2.5
 #
@@ -1784,7 +1784,7 @@
 # If top == base, that is an error.  If top has no overlays on top of
 # it, or if it is in use by a writer, the job will not be completed by
 # itself.  The user needs to complete the job with the
-# job-complete command after getting the ready event.  (Since 2.0)
+# `job-complete` command after getting the ready event.  (Since 2.0)
 #
 # If the base image is smaller than top, then the base image will be
 # resized to be the same size as top.  If top is smaller than the base
@@ -1846,14 +1846,14 @@
 #     autogenerated.  (Since: 2.9)
 #
 # @auto-finalize: When false, this job will wait in a PENDING state
-#     after it has finished its work, waiting for @job-finalize before
+#     after it has finished its work, waiting for `job-finalize` before
 #     making any block graph changes.  When true, this job will
 #     automatically perform its abort or commit actions.  Defaults to
 #     true.  (Since 3.1)
 #
 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
 #     after it has completely ceased all work, and awaits
-#     @job-dismiss.  When true, this job will automatically disappear
+#     `job-dismiss`.  When true, this job will automatically disappear
 #     without user intervention.  Defaults to true.  (Since 3.1)
 #
 # Features:
@@ -1889,14 +1889,14 @@
 # @drive-backup:
 #
 # Start a point-in-time copy of a block device to a new destination.
-# The status of ongoing drive-backup operations can be checked with
-# query-block-jobs where the BlockJobInfo.type field has the value
+# The status of ongoing `drive-backup` operations can be checked with
+# `query-block-jobs` where the `BlockJobInfo`.type field has the value
 # 'backup'.  The operation can be stopped before it has completed
-# using the job-cancel or block-job-cancel command.
+# using the `job-cancel` or `block-job-cancel` command.
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @blockdev-backup
+# @deprecated: This command is deprecated.  Use `blockdev-backup`
 #     instead.
 #
 # Errors:
@@ -1920,10 +1920,10 @@
 # @blockdev-backup:
 #
 # Start a point-in-time copy of a block device to a new destination.
-# The status of ongoing blockdev-backup operations can be checked with
-# query-block-jobs where the BlockJobInfo.type field has the value
+# The status of ongoing `blockdev-backup` operations can be checked with
+# `query-block-jobs` where the `BlockJobInfo`.type field has the value
 # 'backup'.  The operation can be stopped before it has completed
-# using the job-cancel or block-job-cancel command.
+# using the `job-cancel` or `block-job-cancel` command.
 #
 # Errors:
 #     - If @device is not a valid block device, DeviceNotFound
@@ -2024,7 +2024,7 @@
 # @XDbgBlockGraphNode:
 #
 # @id: Block graph node identifier.  This @id is generated only for
-#     x-debug-query-block-graph and does not relate to any other
+#     `x-debug-query-block-graph` and does not relate to any other
 #     identifiers in QEMU.
 #
 # @type: Type of graph node.  Can be one of block-backend, block-job
@@ -2073,7 +2073,7 @@
 ##
 # @XDbgBlockGraphEdge:
 #
-# Block Graph edge description for x-debug-query-block-graph.
+# Block Graph edge description for `x-debug-query-block-graph`.
 #
 # @parent: parent id
 #
@@ -2191,7 +2191,7 @@
 #
 # @on-source-error: the action to take on an error on the source,
 #     default 'report'.  'stop' and 'enospc' can only be used if the
-#     block device supports io-status (see BlockInfo).
+#     block device supports io-status (see `BlockInfo`).
 #
 # @on-target-error: the action to take on an error on the target,
 #     default 'report' (no limitations, since this applies to a
@@ -2207,14 +2207,14 @@
 #     'background' (Since: 3.0)
 #
 # @auto-finalize: When false, this job will wait in a PENDING state
-#     after it has finished its work, waiting for @job-finalize before
+#     after it has finished its work, waiting for `job-finalize` before
 #     making any block graph changes.  When true, this job will
 #     automatically perform its abort or commit actions.  Defaults to
 #     true.  (Since 3.1)
 #
 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
 #     after it has completely ceased all work, and awaits
-#     @job-dismiss.  When true, this job will automatically disappear
+#     `job-dismiss`.  When true, this job will automatically disappear
 #     without user intervention.  Defaults to true.  (Since 3.1)
 #
 # Since: 1.3
@@ -2249,16 +2249,16 @@
 # @name: name of the dirty bitmap (must be less than 1024 bytes)
 #
 # @granularity: the bitmap granularity, default is 64k for
-#     block-dirty-bitmap-add
+#     `block-dirty-bitmap-add`
 #
 # @persistent: the bitmap is persistent, i.e. it will be saved to the
 #     corresponding block device image file on its close.  For now
 #     only Qcow2 disks support persistent bitmaps.  Default is false
-#     for block-dirty-bitmap-add.  (Since: 2.10)
+#     for `block-dirty-bitmap-add`.  (Since: 2.10)
 #
 # @disabled: the bitmap is created in the disabled state, which means
 #     that it will not track drive changes.  The bitmap may be enabled
-#     with block-dirty-bitmap-enable.  Default is false.  (Since: 4.0)
+#     with `block-dirty-bitmap-enable`.  Default is false.  (Since: 4.0)
 #
 # Since: 2.4
 ##
@@ -2288,7 +2288,7 @@
 # @target: name of the destination dirty bitmap
 #
 # @bitmaps: name(s) of the source dirty bitmap(s) at @node and/or
-#     fully specified BlockDirtyBitmap elements.  The latter are
+#     fully specified `BlockDirtyBitmap` elements.  The latter are
 #     supported since 4.1.
 #
 # Since: 4.0
@@ -2323,7 +2323,7 @@
 # @block-dirty-bitmap-remove:
 #
 # Stop write tracking and remove the dirty bitmap that was created
-# with block-dirty-bitmap-add.  If the bitmap is persistent, remove it
+# with `block-dirty-bitmap-add`.  If the bitmap is persistent, remove it
 # from its storage too.
 #
 # Errors:
@@ -2507,7 +2507,7 @@
 #
 # @on-source-error: the action to take on an error on the source,
 #     default 'report'.  'stop' and 'enospc' can only be used if the
-#     block device supports io-status (see BlockInfo).
+#     block device supports io-status (see `BlockInfo`).
 #
 # @on-target-error: the action to take on an error on the target,
 #     default 'report' (no limitations, since this applies to a
@@ -2522,14 +2522,14 @@
 #     'background' (Since: 3.0)
 #
 # @auto-finalize: When false, this job will wait in a PENDING state
-#     after it has finished its work, waiting for @job-finalize before
+#     after it has finished its work, waiting for `job-finalize` before
 #     making any block graph changes.  When true, this job will
 #     automatically perform its abort or commit actions.  Defaults to
 #     true.  (Since 3.1)
 #
 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
 #     after it has completely ceased all work, and awaits
-#     @job-dismiss.  When true, this job will automatically disappear
+#     `job-dismiss`.  When true, this job will automatically disappear
 #     without user intervention.  Defaults to true.  (Since 3.1)
 #
 # @target-is-zero: Assume the destination reads as all zeroes before
@@ -2777,9 +2777,9 @@
 # The block streaming operation is performed in the background until
 # the entire backing file has been copied.  This command returns
 # immediately once streaming has started.  The status of ongoing block
-# streaming operations can be checked with query-block-jobs.  The
+# streaming operations can be checked with `query-block-jobs`.  The
 # operation can be stopped before it has completed using the
-# job-cancel or block-job-cancel command.
+# `job-cancel` or `block-job-cancel` command.
 #
 # The node that receives the data is called the top image, can be
 # located in any part of the chain (but always above the base image;
@@ -2798,9 +2798,9 @@
 # will be the new backing file.
 #
 # On successful completion the image file is updated to drop the
-# backing file and the BLOCK_JOB_COMPLETED event is emitted.
+# backing file and the `BLOCK_JOB_COMPLETED` event is emitted.
 #
-# In case @device is a filter node, block-stream modifies the first
+# In case @device is a filter node, `block-stream` modifies the first
 # non-filter overlay node below it to point to the new backing node
 # instead of modifying @device itself.
 #
@@ -2841,7 +2841,7 @@
 #
 # @on-error: the action to take on an error (default report).  'stop'
 #     and 'enospc' can only be used if the block device supports
-#     io-status (see BlockInfo).  (Since 1.3)
+#     io-status (see `BlockInfo`).  (Since 1.3)
 #
 # @filter-node-name: the node name that should be assigned to the
 #     filter driver that the stream job inserts into the graph above
@@ -2849,14 +2849,14 @@
 #     autogenerated.  (Since: 6.0)
 #
 # @auto-finalize: When false, this job will wait in a PENDING state
-#     after it has finished its work, waiting for @job-finalize before
+#     after it has finished its work, waiting for `job-finalize` before
 #     making any block graph changes.  When true, this job will
 #     automatically perform its abort or commit actions.  Defaults to
 #     true.  (Since 3.1)
 #
 # @auto-dismiss: When false, this job will wait in a CONCLUDED state
 #     after it has completely ceased all work, and awaits
-#     @job-dismiss.  When true, this job will automatically disappear
+#     `job-dismiss`.  When true, this job will automatically disappear
 #     without user intervention.  Defaults to true.  (Since 3.1)
 #
 # Errors:
@@ -2917,13 +2917,13 @@
 # command if no operation is in progress.
 #
 # The operation will cancel as soon as possible and then emit the
-# BLOCK_JOB_CANCELLED event.  Before that happens the job is still
-# visible when enumerated using query-block-jobs.
+# `BLOCK_JOB_CANCELLED` event.  Before that happens the job is still
+# visible when enumerated using `query-block-jobs`.
 #
-# Note that if you issue 'block-job-cancel' after 'drive-mirror' has
-# indicated (via the event BLOCK_JOB_READY) that the source and
+# Note that if you issue `block-job-cancel` after `drive-mirror` has
+# indicated (via the event `BLOCK_JOB_READY`) that the source and
 # destination are synchronized, then the event triggered by this
-# command changes to BLOCK_JOB_COMPLETED, to indicate that the
+# command changes to `BLOCK_JOB_COMPLETED`, to indicate that the
 # mirroring has ended and the destination now has a point-in-time copy
 # tied to the time of the cancellation.
 #
@@ -2937,7 +2937,7 @@
 #     values.
 #
 # @force: If true, and the job has already emitted the event
-#     BLOCK_JOB_READY, abandon the job immediately (even if it is
+#     `BLOCK_JOB_READY`, abandon the job immediately (even if it is
 #     paused) instead of waiting for the destination to complete its
 #     final synchronization (since 1.3)
 #
@@ -2960,7 +2960,7 @@
 #
 # The job will pause as soon as possible, which means transitioning
 # into the PAUSED state if it was RUNNING, or into STANDBY if it was
-# READY.  The corresponding JOB_STATUS_CHANGE event will be emitted.
+# READY.  The corresponding `JOB_STATUS_CHANGE` event will be emitted.
 #
 # Cancelling a paused job automatically resumes it.
 #
@@ -2970,7 +2970,7 @@
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @job-pause
+# @deprecated: This command is deprecated.  Use `job-pause`
 #     instead.
 #
 # Errors:
@@ -2999,7 +2999,7 @@
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @job-resume
+# @deprecated: This command is deprecated.  Use `job-resume`
 #     instead.
 #
 # Errors:
@@ -3020,14 +3020,14 @@
 #
 # This is supported only for drive mirroring, where it also switches
 # the device to write to the target path only.  Note that drive
-# mirroring includes drive-mirror, blockdev-mirror and block-commit
+# mirroring includes `drive-mirror`, `blockdev-mirror` and `block-commit`
 # job (only in case of "active commit", when the node being commited
 # is used by the guest).  The ability to complete is signaled with a
-# BLOCK_JOB_READY event.
+# `BLOCK_JOB_READY` event.
 #
 # This command completes an active background block operation
 # synchronously.  The ordering of this command's return with the
-# BLOCK_JOB_COMPLETED event is not defined.  Note that if an I/O error
+# `BLOCK_JOB_COMPLETED` event is not defined.  Note that if an I/O error
 # occurs during the processing of this command: 1) the command itself
 # will fail; 2) the error will be processed according to the
 # rerror/werror arguments that were specified when starting the
@@ -3039,7 +3039,7 @@
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @job-complete
+# @deprecated: This command is deprecated.  Use `job-complete`
 #     instead.
 #
 # Errors:
@@ -3058,21 +3058,21 @@
 # Deletes a job that is in the CONCLUDED state.  This command only
 # needs to be run explicitly for jobs that don't have automatic
 # dismiss enabled.  In turn, automatic dismiss may be enabled only
-# for jobs that have @auto-dismiss option, which are drive-backup,
-# blockdev-backup, drive-mirror, blockdev-mirror, block-commit and
-# block-stream.  @auto-dismiss is enabled by default for these
+# for jobs that have @auto-dismiss option, which are `drive-backup`,
+# `blockdev-backup`, `drive-mirror`, `blockdev-mirror`, `block-commit` and
+# `block-stream`.  @auto-dismiss is enabled by default for these
 # jobs.
 #
 # This command will refuse to operate on any job that has not yet
 # reached its terminal state, CONCLUDED.  For jobs that make use of
-# the BLOCK_JOB_READY event, job-cancel, block-job-cancel or
-# job-complete will still need to be used as appropriate.
+# the `BLOCK_JOB_READY` event, `job-cancel`, `block-job-cancel` or
+# `job-complete` will still need to be used as appropriate.
 #
 # @id: The job identifier.
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @job-dismiss
+# @deprecated: This command is deprecated.  Use `job-dismiss`
 #     instead.
 #
 # Since: 2.12
@@ -3089,7 +3089,7 @@
 # necessary cleanup.  This command requires that all involved jobs are
 # in the PENDING state.
 #
-# For jobs in a transaction, instructing one job to finalize will
+# For jobs in a :qapi:cmd:`transaction`, instructing one job to finalize will
 # force ALL jobs in the transaction to finalize, so it is only
 # necessary to instruct a single member job to finalize.
 #
@@ -3100,7 +3100,7 @@
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @job-finalize
+# @deprecated: This command is deprecated.  Use `job-finalize`
 #     instead.
 #
 # Since: 2.12
@@ -3172,7 +3172,7 @@
 # @on: Enabled
 #
 # @unmap: Enabled and even try to unmap blocks if possible.  This
-#     requires also that @BlockdevDiscardOptions is set to unmap for
+#     requires also that `BlockdevDiscardOptions` is set to unmap for
 #     this device.
 #
 # Since: 2.1
@@ -4714,7 +4714,7 @@
 # @driver: block driver name
 #
 # @node-name: the node name of the new node.  This option is required
-#     on the top level of blockdev-add.  Valid node names start with
+#     on the top level of `blockdev-add`.  Valid node names start with
 #     an alphabetic character and may contain only alphanumeric
 #     characters, '-', '.' and '_'.  Their maximum length is 31
 #     characters.  (Since 2.0)
@@ -4918,7 +4918,7 @@
 # cancelled.
 #
 # The command receives a list of block devices to reopen.  For each
-# one of them, the top-level @node-name option (from BlockdevOptions)
+# one of them, the top-level @node-name option (from `BlockdevOptions`)
 # must be specified and is used to select the block device to be
 # reopened.  Other @node-name options must be either omitted or set to
 # the current name of the appropriate node.  This command won't change
@@ -4927,7 +4927,7 @@
 # In the case of options that refer to child nodes, the behavior of
 # this command depends on the value:
 #
-#  1) A set of options (BlockdevOptions): the child is reopened with
+#  1) A set of options (`BlockdevOptions`): the child is reopened with
 #     the specified set of options.
 #
 #  2) A reference to the current child: the child is reopened using
@@ -4941,7 +4941,7 @@
 # Options (1) and (2) are supported in all cases.  Option (3) is
 # supported for @file and @backing, and option (4) for @backing only.
 #
-# Unlike with blockdev-add, the @backing option must always be present
+# Unlike with `blockdev-add`, the @backing option must always be present
 # unless the node being reopened does not have a backing file and its
 # image does not have a default backing file name as part of its
 # metadata.
@@ -4955,7 +4955,7 @@
 ##
 # @blockdev-del:
 #
-# Deletes a block device that has been added using blockdev-add.  The
+# Deletes a block device that has been added using `blockdev-add`.  The
 # command will fail if the node is attached to a device or is
 # otherwise being used.
 #
@@ -5510,7 +5510,7 @@
 # @blockdev-create:
 #
 # Starts a job to create an image format on a given node.  The job is
-# automatically finalized, but a manual job-dismiss is required.
+# automatically finalized, but a manual `job-dismiss` is required.
 #
 # @job-id: Identifier for the newly created job.
 #
@@ -5570,7 +5570,7 @@
 #
 # Starts a job to amend format specific options of an existing open
 # block device.  The job is automatically finalized, but a manual
-# job-dismiss is required.
+# `job-dismiss` is required.
 #
 # @job-id: Identifier for the newly created job.
 #
@@ -5639,10 +5639,10 @@
 #
 # @fatal: if set, the image is marked corrupt and therefore unusable
 #     after this event and must be repaired (Since 2.2; before, every
-#     BLOCK_IMAGE_CORRUPTED event was fatal)
+#     `BLOCK_IMAGE_CORRUPTED` event was fatal)
 #
-# .. note:: If action is "stop", a STOP event will eventually follow
-#    the BLOCK_IO_ERROR event.
+# .. note:: If action is "stop", a `STOP` event will eventually follow
+#    the `BLOCK_IO_ERROR` event.
 #
 # .. qmp-example::
 #
@@ -5683,15 +5683,15 @@
 #
 # @nospace: true if I/O error was caused due to a no-space condition.
 #     This key is only present if query-block's io-status is present,
-#     please see query-block documentation for more information
+#     please see `query-block` documentation for more information
 #     (since: 2.2)
 #
 # @reason: human readable string describing the error cause.  (This
 #     field is a debugging aid for humans, it should not be parsed by
 #     applications) (since: 2.2)
 #
-# .. note:: If action is "stop", a STOP event will eventually follow
-#    the BLOCK_IO_ERROR event.
+# .. note:: If action is "stop", a `STOP` event will eventually follow
+#    the `BLOCK_IO_ERROR` event.
 #
 # .. note:: This event is rate-limited.
 #
@@ -5833,7 +5833,7 @@
 # @speed: rate limit, bytes per second
 #
 # .. note:: The "ready to complete" status is always reset by a
-#    @BLOCK_JOB_ERROR event.
+#    `BLOCK_JOB_ERROR` event.
 #
 # Since: 1.3
 #
@@ -5855,8 +5855,8 @@
 # @BLOCK_JOB_PENDING:
 #
 # Emitted when a block job is awaiting explicit authorization to
-# finalize graph changes via @job-finalize.  If this job is part
-# of a transaction, it will not emit this event until the transaction
+# finalize graph changes via `job-finalize`.  If this job is part
+# of a :qapi:cmd:`transaction`, it will not emit this event until the transaction
 # has converged first.
 #
 # @type: job type
@@ -5904,7 +5904,7 @@
 # configured write threshold.  For thin-provisioned devices, this
 # means the device should be extended to avoid pausing for disk
 # exhaustion.  The event is one shot.  Once triggered, it needs to be
-# re-registered with another block-set-write-threshold command.
+# re-registered with another `block-set-write-threshold` command.
 #
 # @node-name: graph node name on which the threshold was exceeded.
 #
@@ -5975,7 +5975,7 @@
 #
 # TODO: Removing children from a quorum node means introducing
 #     gaps in the child indices.  This cannot be represented in the
-#     'children' list of BlockdevOptionsQuorum, as returned by
+#     'children' list of `BlockdevOptionsQuorum`, as returned by
 #     .bdrv_refresh_filename().
 #
 # Since: 2.7
@@ -6188,7 +6188,7 @@
 # Synchronously delete an internal snapshot of a block device, when
 # the format of the image used support it.  The snapshot is identified
 # by name or id or both.  One of the name or id is required.  Return
-# SnapshotInfo for the successfully deleted snapshot.
+# `SnapshotInfo` for the successfully deleted snapshot.
 #
 # @device: the device name or node-name of a root node to delete the
 #     snapshot from
diff --git a/qapi/block-export.json b/qapi/block-export.json
index 3edbc5436a3..776740fe6fd 100644
--- a/qapi/block-export.json
+++ b/qapi/block-export.json
@@ -37,9 +37,9 @@
 ##
 # @NbdServerOptions:
 #
-# Keep this type consistent with the NbdServerOptionsLegacy type.  The
-# only intended difference is using SocketAddress instead of
-# SocketAddressLegacy.
+# Keep this type consistent with the `NbdServerOptionsLegacy` type.  The
+# only intended difference is using `SocketAddress` instead of
+# `SocketAddressLegacy`.
 #
 # @addr: Address on which to listen (since 4.2).
 ##
@@ -50,9 +50,9 @@
 ##
 # @NbdServerOptionsLegacy:
 #
-# Keep this type consistent with the NbdServerOptions type.  The only
-# intended difference is using SocketAddressLegacy instead of
-# SocketAddress.
+# Keep this type consistent with the `NbdServerOptions` type.  The only
+# intended difference is using `SocketAddressLegacy` instead of
+# `SocketAddress`.
 #
 # @addr: Address on which to listen (since 1.3).
 ##
@@ -64,7 +64,7 @@
 # @nbd-server-start:
 #
 # Start an NBD server listening on the given host and port.  Block
-# devices can then be exported using @nbd-server-add.  The NBD server
+# devices can then be exported using `nbd-server-add`.  The NBD server
 # will present them as named exports; for example, another QEMU
 # instance could refer to them as "nbd:HOST:PORT:exportname=NAME".
 #
@@ -80,8 +80,8 @@
 ##
 # @BlockExportOptionsNbdBase:
 #
-# An NBD block export (common options shared between nbd-server-add
-# and the NBD branch of block-export-add).
+# An NBD block export (common options shared between `nbd-server-add`
+# and the NBD branch of `block-export-add`).
 #
 # @name: Export name.  If unspecified, the @device parameter is used
 #     as the export name.  (Since 2.12)
@@ -98,7 +98,7 @@
 # @BlockExportOptionsNbd:
 #
 # An NBD block export (distinct options used in the NBD branch of
-# block-export-add).
+# `block-export-add`).
 #
 # @bitmaps: Also export each of the named dirty bitmaps reachable from
 #     @device, so the NBD client can use NBD_OPT_SET_META_CONTEXT with
@@ -124,7 +124,7 @@
 # A vhost-user-blk block export.
 #
 # @addr: The vhost-user socket on which to listen.  Both 'unix' and
-#     'fd' SocketAddress types are supported.  Passed fds must be UNIX
+#     'fd' `SocketAddress` types are supported.  Passed fds must be UNIX
 #     domain sockets.
 #
 # @logical-block-size: Logical block size in bytes.  Defaults to 512
@@ -216,7 +216,7 @@
 ##
 # @NbdServerAddOptions:
 #
-# An NBD block export, per legacy nbd-server-add command.
+# An NBD block export, per legacy `nbd-server-add` command.
 #
 # @device: The device name or node name of the node to be exported
 #
@@ -245,7 +245,7 @@
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @block-export-add
+# @deprecated: This command is deprecated.  Use `block-export-add`
 #     instead.
 #
 # Errors:
@@ -288,12 +288,12 @@
 #
 # @name: Block export id.
 #
-# @mode: Mode of command operation.  See @BlockExportRemoveMode
+# @mode: Mode of command operation.  See `BlockExportRemoveMode`
 #     description.  Default is 'safe'.
 #
 # Features:
 #
-# @deprecated: This command is deprecated.  Use @block-export-del
+# @deprecated: This command is deprecated.  Use `block-export-del`
 #     instead.
 #
 # Errors:
@@ -312,7 +312,7 @@
 # @nbd-server-stop:
 #
 # Stop QEMU's embedded NBD server, and unregister all devices
-# previously added via @nbd-server-add.
+# previously added via `nbd-server-add`.
 #
 # Since: 1.3
 ##
@@ -421,7 +421,7 @@
 #
 # @id: Block export id.
 #
-# @mode: Mode of command operation.  See @BlockExportRemoveMode
+# @mode: Mode of command operation.  See `BlockExportRemoveMode`
 #     description.  Default is 'safe'.
 #
 # Errors:
@@ -459,7 +459,7 @@
 # @node-name: The node name of the block node that is exported
 #
 # @shutting-down: True if the export is shutting down (e.g. after a
-#     block-export-del command, but before the shutdown has completed)
+#     `block-export-del` command, but before the shutdown has completed)
 #
 # Since: 5.2
 ##
diff --git a/qapi/block.json b/qapi/block.json
index d288344c648..13f717cd8e8 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -137,7 +137,7 @@
 #
 # If the tray was already open before, this will be a no-op.
 #
-# Once the tray opens, a DEVICE_TRAY_MOVED event is emitted.  There
+# Once the tray opens, a `DEVICE_TRAY_MOVED` event is emitted.  There
 # are cases in which no such event will be generated, these include:
 #
 # - if the guest has locked the tray, @force is false and the guest
@@ -296,7 +296,7 @@
 # @BlockdevChangeReadOnlyMode:
 #
 # Specifies the new read-only mode of a block device subject to the
-# @blockdev-change-medium command.
+# `blockdev-change-medium` command.
 #
 # @retain: Retains the current read-only mode
 #
@@ -314,9 +314,9 @@
 #
 # Changes the medium inserted into a block device by ejecting the
 # current medium and loading a new image file which is inserted as the
-# new medium (this command combines blockdev-open-tray,
-# blockdev-remove-medium, blockdev-insert-medium and
-# blockdev-close-tray).
+# new medium (this command combines `blockdev-open-tray`,
+# `blockdev-remove-medium`, `blockdev-insert-medium` and
+# `blockdev-close-tray`).
 #
 # @device: Block device name
 #
@@ -331,7 +331,7 @@
 #     to 'retain'
 #
 # @force: if false (the default), an eject request through
-#     blockdev-open-tray will be sent to the guest if it has locked
+#     `blockdev-open-tray` will be sent to the guest if it has locked
 #     the tray (and the tray will not be opened immediately); if true,
 #     the tray will be opened regardless of whether it is locked.
 #     (since 7.1)
@@ -519,7 +519,7 @@
 # @id: The name or QOM path of the guest device.
 #
 # @boundaries: list of interval boundary values (see description in
-#     BlockLatencyHistogramInfo definition).  If specified, all
+#     `BlockLatencyHistogramInfo` definition).  If specified, all
 #     latency histograms are removed, and empty ones created for all
 #     io types with intervals corresponding to @boundaries (except for
 #     io types, for which specific boundaries are set through the
diff --git a/qapi/transaction.json b/qapi/transaction.json
index 9d9e7af26cb..ba0fcfff496 100644
--- a/qapi/transaction.json
+++ b/qapi/transaction.json
@@ -67,8 +67,8 @@
 #
 # Features:
 #
-# @deprecated: Member @drive-backup is deprecated.  Use member
-#     @blockdev-backup instead.
+# @deprecated: Member `drive-backup` is deprecated.  Use member
+#     `blockdev-backup` instead.
 #
 # Since: 1.1
 ##
@@ -156,7 +156,7 @@
 # @TransactionAction:
 #
 # A discriminated record of operations that can be performed with
-# @transaction.
+# `transaction`.
 #
 # @type: the operation to be performed
 #
@@ -187,7 +187,7 @@
 #
 # @completion-mode: Controls how jobs launched asynchronously by
 #     Actions will complete or fail as a group.  See
-#     @ActionCompletionMode for details.
+#     `ActionCompletionMode` for details.
 #
 # Since: 2.5
 ##
@@ -227,11 +227,11 @@
 # in the transaction.  When an I/O error occurs during deletion, the
 # user needs to fix it later with qemu-img or other command.
 #
-# @actions: List of @TransactionAction; information needed for the
+# @actions: List of `TransactionAction`; information needed for the
 #     respective operations.
 #
 # @properties: structure of additional options to control the
-#     execution of the transaction.  See @TransactionProperties for
+#     execution of the transaction.  See `TransactionProperties` for
 #     additional detail.
 #
 # Errors:
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 04/18] qapi: add cross-references to crypto.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (2 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 03/18] qapi: add cross-references to block layer John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  9:15   ` Markus Armbruster
  2025-07-11  5:39 ` [PATCH v2 05/18] qapi: add cross-references to dump.json John Snow
                   ` (15 subsequent siblings)
  19 siblings, 1 reply; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/crypto.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/qapi/crypto.json b/qapi/crypto.json
index 9ec6301e188..57620d95da6 100644
--- a/qapi/crypto.json
+++ b/qapi/crypto.json
@@ -589,9 +589,9 @@
 #
 # Specific parameters for RSA algorithm.
 #
-# @hash-alg: QCryptoHashAlgo
+# @hash-alg: `QCryptoHashAlgo`
 #
-# @padding-alg: QCryptoRSAPaddingAlgo
+# @padding-alg: `QCryptoRSAPaddingAlgo`
 #
 # Since: 7.1
 ##
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 05/18] qapi: add cross-references to dump.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (3 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 04/18] qapi: add cross-references to crypto.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 06/18] qapi: add cross-references to job.json John Snow
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/dump.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/qapi/dump.json b/qapi/dump.json
index 3a9b67efb1b..a615e73a64a 100644
--- a/qapi/dump.json
+++ b/qapi/dump.json
@@ -110,7 +110,7 @@
 #
 # Describe the status of a long-running background guest memory dump.
 #
-# @none: no dump-guest-memory has started yet.
+# @none: no `dump-guest-memory` has started yet.
 #
 # @active: there is one dump running in background.
 #
@@ -126,9 +126,9 @@
 ##
 # @DumpQueryResult:
 #
-# The result format for 'query-dump'.
+# The result format for `query-dump`.
 #
-# @status: enum of @DumpStatus, which shows current dump status
+# @status: enum of `DumpStatus`, which shows current dump status
 #
 # @completed: bytes written in latest dump (uncompressed)
 #
@@ -184,7 +184,7 @@
 ##
 # @DumpGuestMemoryCapability:
 #
-# @formats: the available formats for dump-guest-memory
+# @formats: the available formats for `dump-guest-memory`
 #
 # Since: 2.0
 ##
@@ -195,9 +195,9 @@
 ##
 # @query-dump-guest-memory-capability:
 #
-# Return the available formats for dump-guest-memory
+# Return the available formats for `dump-guest-memory`
 #
-# Returns: An object listing available formats for dump-guest-memory
+# Returns: An object listing available formats for `dump-guest-memory`
 #
 # Since: 2.0
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 06/18] qapi: add cross-references to job.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (4 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 05/18] qapi: add cross-references to dump.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  8:33   ` Markus Armbruster
  2025-07-11  5:39 ` [PATCH v2 07/18] qapi: add cross-references to Machine core John Snow
                   ` (13 subsequent siblings)
  19 siblings, 1 reply; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/job.json | 71 ++++++++++++++++++++++++++-------------------------
 1 file changed, 36 insertions(+), 35 deletions(-)

diff --git a/qapi/job.json b/qapi/job.json
index c1ddae9c0fe..a6026f6a810 100644
--- a/qapi/job.json
+++ b/qapi/job.json
@@ -10,26 +10,26 @@
 #
 # Type of a background job.
 #
-# @commit: block commit job type, see "block-commit"
+# @commit: block commit job type, see `block-commit`
 #
-# @stream: block stream job type, see "block-stream"
+# @stream: block stream job type, see `block-stream`
 #
-# @mirror: drive mirror job type, see "drive-mirror"
+# @mirror: drive mirror job type, see `drive-mirror`
 #
-# @backup: drive backup job type, see "drive-backup"
+# @backup: drive backup job type, see `drive-backup`
 #
-# @create: image creation job type, see "blockdev-create" (since 3.0)
+# @create: image creation job type, see `blockdev-create` (since 3.0)
 #
-# @amend: image options amend job type, see "x-blockdev-amend"
+# @amend: image options amend job type, see `x-blockdev-amend`
 #     (since 5.1)
 #
-# @snapshot-load: snapshot load job type, see "snapshot-load"
+# @snapshot-load: snapshot load job type, see `snapshot-load`
 #     (since 6.0)
 #
-# @snapshot-save: snapshot save job type, see "snapshot-save"
+# @snapshot-save: snapshot save job type, see `snapshot-save`
 #     (since 6.0)
 #
-# @snapshot-delete: snapshot delete job type, see "snapshot-delete"
+# @snapshot-delete: snapshot delete job type, see `snapshot-delete`
 #     (since 6.0)
 #
 # Since: 1.7
@@ -59,13 +59,14 @@
 # @standby: The job is ready, but paused.  This is nearly identical to
 #     @paused.  The job may return to @ready or otherwise be canceled.
 #
-# @waiting: The job is waiting for other jobs in the transaction to
-#     converge to the waiting state.  This status will likely not be
-#     visible for the last job in a transaction.
+# @waiting: The job is waiting for other jobs in the
+#     transaction to converge to the waiting state.  This
+#     status will likely not be visible for the last job in a
+#     transaction.
 #
 # @pending: The job has finished its work, but has finalization steps
 #     that it needs to make prior to completing.  These changes will
-#     require manual intervention via @job-finalize if auto-finalize
+#     require manual intervention via `job-finalize` if auto-finalize
 #     was set to false.  These pending changes may still fail.
 #
 # @aborting: The job is in the process of being aborted, and will
@@ -75,7 +76,7 @@
 #
 # @concluded: The job has finished all work.  If auto-dismiss was set
 #     to false, the job will remain in this state until it is
-#     dismissed via @job-dismiss.
+#     dismissed via `job-dismiss`.
 #
 # @null: The job is in the process of being dismantled.  This state
 #     should not ever be visible externally.
@@ -91,21 +92,21 @@
 #
 # Represents command verbs that can be applied to a job.
 #
-# @cancel: see @job-cancel
+# @cancel: see `job-cancel`
 #
-# @pause: see @job-pause
+# @pause: see `job-pause`
 #
-# @resume: see @job-resume
+# @resume: see `job-resume`
 #
-# @set-speed: see @block-job-set-speed
+# @set-speed: see `block-job-set-speed`
 #
-# @complete: see @job-complete
+# @complete: see `job-complete`
 #
-# @dismiss: see @job-dismiss
+# @dismiss: see `job-dismiss`
 #
-# @finalize: see @job-finalize
+# @finalize: see `job-finalize`
 #
-# @change: see @block-job-change (since 8.2)
+# @change: see `block-job-change` (since 8.2)
 #
 # Since: 2.12
 ##
@@ -138,7 +139,7 @@
 #
 # The job will pause as soon as possible, which means transitioning
 # into the PAUSED state if it was RUNNING, or into STANDBY if it was
-# READY.  The corresponding JOB_STATUS_CHANGE event will be emitted.
+# READY.  The corresponding `JOB_STATUS_CHANGE` event will be emitted.
 #
 # Cancelling a paused job automatically resumes it.
 #
@@ -173,7 +174,7 @@
 # cancellation.
 #
 # The job will cancel as soon as possible and then emit a
-# JOB_STATUS_CHANGE event.  Usually, the status will change to
+# `JOB_STATUS_CHANGE` event.  Usually, the status will change to
 # ABORTING, but it is possible that a job successfully completes (e.g.
 # because it was almost done and there was no opportunity to cancel
 # earlier than completing the job) and transitions to PENDING instead.
@@ -192,14 +193,14 @@
 #
 # This is supported only for drive mirroring, where it also switches
 # the device to write to the target path only.  Note that drive
-# mirroring includes drive-mirror, blockdev-mirror and block-commit
+# mirroring includes `drive-mirror`, `blockdev-mirror` and `block-commit`
 # job (only in case of "active commit", when the node being commited
 # is used by the guest).  The ability to complete is signaled with a
-# BLOCK_JOB_READY event.
+# `BLOCK_JOB_READY` event.
 #
 # This command completes an active background block operation
 # synchronously.  The ordering of this command's return with the
-# BLOCK_JOB_COMPLETED event is not defined.  Note that if an I/O error
+# `BLOCK_JOB_COMPLETED` event is not defined.  Note that if an I/O error
 # occurs during the processing of this command: 1) the command itself
 # will fail; 2) the error will be processed according to the
 # rerror/werror arguments that were specified when starting the
@@ -217,14 +218,14 @@
 # Deletes a job that is in the CONCLUDED state.  This command only
 # needs to be run explicitly for jobs that don't have automatic
 # dismiss enabled.  In turn, automatic dismiss may be enabled only
-# for jobs that have @auto-dismiss option, which are drive-backup,
-# blockdev-backup, drive-mirror, blockdev-mirror, block-commit and
-# block-stream.  @auto-dismiss is enabled by default for these
+# for jobs that have @auto-dismiss option, which are `drive-backup`,
+# `blockdev-backup`, `drive-mirror`, `blockdev-mirror`, `block-commit` and
+# `block-stream`.  @auto-dismiss is enabled by default for these
 # jobs.
 #
 # This command will refuse to operate on any job that has not yet
 # reached its terminal state, CONCLUDED.  For jobs that make use of
-# the JOB_READY event, job-cancel or job-complete will still need to
+# the JOB_READY event, `job-cancel` or `job-complete` will still need to
 # be used as appropriate.
 #
 # @id: The job identifier.
@@ -236,10 +237,10 @@
 ##
 # @job-finalize:
 #
-# Instructs all jobs in a transaction (or a single job if it is not
-# part of any transaction) to finalize any graph changes and do any
-# necessary cleanup.  This command requires that all involved jobs are
-# in the PENDING state.
+# Instructs all jobs in a :qapi:cmd:`transaction` (or a single job if it
+# is not part of any transaction) to finalize any graph changes and do
+# any necessary cleanup.  This command requires that all involved jobs
+# are in the PENDING state.
 #
 # For jobs in a transaction, instructing one job to finalize will
 # force ALL jobs in the transaction to finalize, so it is only
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 07/18] qapi: add cross-references to Machine core
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (5 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 06/18] qapi: add cross-references to job.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 08/18] qapi: add cross-references to migration.json John Snow
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/machine-common.json | 20 +++++-----
 qapi/machine.json        | 82 ++++++++++++++++++++--------------------
 2 files changed, 51 insertions(+), 51 deletions(-)

diff --git a/qapi/machine-common.json b/qapi/machine-common.json
index 298e51f373a..a9f56cbbb43 100644
--- a/qapi/machine-common.json
+++ b/qapi/machine-common.json
@@ -26,29 +26,29 @@
 #
 # @thread: thread level, which would also be called SMT level or
 #     logical processor level.  The @threads option in
-#     SMPConfiguration is used to configure the topology of this
+#     `SMPConfiguration` is used to configure the topology of this
 #     level.
 #
-# @core: core level.  The @cores option in SMPConfiguration is used
+# @core: core level.  The @cores option in `SMPConfiguration` is used
 #     to configure the topology of this level.
 #
-# @module: module level.  The @modules option in SMPConfiguration is
+# @module: module level.  The @modules option in `SMPConfiguration` is
 #     used to configure the topology of this level.
 #
-# @cluster: cluster level.  The @clusters option in SMPConfiguration
+# @cluster: cluster level.  The @clusters option in `SMPConfiguration`
 #     is used to configure the topology of this level.
 #
-# @die: die level.  The @dies option in SMPConfiguration is used to
+# @die: die level.  The @dies option in `SMPConfiguration` is used to
 #     configure the topology of this level.
 #
 # @socket: socket level, which would also be called package level.
-#     The @sockets option in SMPConfiguration is used to configure
+#     The @sockets option in `SMPConfiguration` is used to configure
 #     the topology of this level.
 #
-# @book: book level.  The @books option in SMPConfiguration is used
+# @book: book level.  The @books option in `SMPConfiguration` is used
 #     to configure the topology of this level.
 #
-# @drawer: drawer level.  The @drawers option in SMPConfiguration is
+# @drawer: drawer level.  The @drawers option in `SMPConfiguration` is
 #     used to configure the topology of this level.
 #
 # @default: default level.  Some architectures will have default
@@ -102,9 +102,9 @@
 ##
 # @SmpCachePropertiesWrapper:
 #
-# List wrapper of SmpCacheProperties.
+# List wrapper of `SmpCacheProperties`.
 #
-# @caches: the list of SmpCacheProperties.
+# @caches: the list of `SmpCacheProperties`.
 #
 # Since 9.2
 ##
diff --git a/qapi/machine.json b/qapi/machine.json
index b2062f21088..5fb0348e6cf 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -186,7 +186,7 @@
 # @acpi: machine type supports ACPI (since 8.0)
 #
 # @compat-props: The machine type's compatibility properties.  Only
-#     present when query-machines argument @compat-props is true.
+#     present when `query-machines` argument @compat-props is true.
 #     (since 9.1)
 #
 # Features:
@@ -375,7 +375,7 @@
 #
 # Wake up guest from suspend.  If the guest has wake-up from suspend
 # support enabled (wakeup-suspend-support flag from
-# query-current-machine), wake-up guest from suspend if the guest is
+# `query-current-machine`), wake-up guest from suspend if the guest is
 # in SUSPENDED state.  Return an error otherwise.
 #
 # Since: 1.1
@@ -587,7 +587,7 @@
 #
 # List of CXL Fixed Memory Windows.
 #
-# @cxl-fmw: List of CXLFixedMemoryWindowOptions
+# @cxl-fmw: List of `CXLFixedMemoryWindowOptions`
 #
 # Since: 7.1
 ##
@@ -642,10 +642,10 @@
 ##
 # @NumaCpuOptions:
 #
-# Option "-numa cpu" overrides default cpu to node mapping.  It
-# accepts the same set of cpu properties as returned by
-# query-hotpluggable-cpus[].props, where node-id could be used to
-# override default node mapping.
+# Option "-numa cpu" overrides default cpu to node mapping.  It accepts
+# the same set of cpu properties as returned by
+# `query-hotpluggable-cpus[].props <query-hotpluggable-cpus>`, where
+# node-id could be used to override default node mapping.
 #
 # Since: 2.10
 ##
@@ -659,7 +659,7 @@
 # The memory hierarchy in the System Locality Latency and Bandwidth
 # Information Structure of HMAT (Heterogeneous Memory Attribute Table)
 #
-# For more information about @HmatLBMemoryHierarchy, see chapter
+# For more information about `HmatLBMemoryHierarchy`, see chapter
 # 5.2.27.4: Table 5-146: Field "Flags" of ACPI 6.3 spec.
 #
 # @memory: the structure represents the memory performance
@@ -681,7 +681,7 @@
 # Data type in the System Locality Latency and Bandwidth Information
 # Structure of HMAT (Heterogeneous Memory Attribute Table)
 #
-# For more information about @HmatLBDataType, see chapter 5.2.27.4:
+# For more information about `HmatLBDataType`, see chapter 5.2.27.4:
 # Table 5-146: Field "Data Type" of ACPI 6.3 spec.
 #
 # @access-latency: access latency (nanoseconds)
@@ -708,7 +708,7 @@
 # Set the system locality latency and bandwidth information between
 # Initiator and Target proximity Domains.
 #
-# For more information about @NumaHmatLBOptions, see chapter 5.2.27.4:
+# For more information about `NumaHmatLBOptions`, see chapter 5.2.27.4:
 # Table 5-146 of ACPI 6.3 spec.
 #
 # @initiator: the Initiator Proximity Domain.
@@ -744,7 +744,7 @@
 # Cache associativity in the Memory Side Cache Information Structure
 # of HMAT
 #
-# For more information of @HmatCacheAssociativity, see chapter
+# For more information of `HmatCacheAssociativity`, see chapter
 # 5.2.27.5: Table 5-147 of ACPI 6.3 spec.
 #
 # @none: None (no memory side cache in this proximity domain, or cache
@@ -765,7 +765,7 @@
 # Cache write policy in the Memory Side Cache Information Structure of
 # HMAT
 #
-# For more information of @HmatCacheWritePolicy, see chapter 5.2.27.5:
+# For more information of `HmatCacheWritePolicy`, see chapter 5.2.27.5:
 # Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
 #
 # @none: None (no memory side cache in this proximity domain, or cache
@@ -785,7 +785,7 @@
 #
 # Set the memory side cache information for a given memory domain.
 #
-# For more information of @NumaHmatCacheOptions, see chapter 5.2.27.5:
+# For more information of `NumaHmatCacheOptions`, see chapter 5.2.27.5:
 # Table 5-147: Field "Cache Attributes" of ACPI 6.3 spec.
 #
 # @node-id: the memory proximity domain to which the memory belongs.
@@ -962,7 +962,7 @@
 #
 # The ids other than the node-id specify the position of the CPU
 # within the CPU topology (as defined by the machine property "smp",
-# thus see also type @SMPConfiguration)
+# thus see also type `SMPConfiguration`)
 #
 # @node-id: NUMA node ID the CPU belongs to
 #
@@ -990,7 +990,7 @@
 # Since: 2.7
 ##
 { 'struct': 'CpuInstanceProperties',
-  # Keep these in sync with the properties device_add accepts
+  # Keep these in sync with the properties `device_add` accepts
   'data': { '*node-id': 'int',
             '*drawer-id': 'int',
             '*book-id': 'int',
@@ -1006,19 +1006,19 @@
 ##
 # @HotpluggableCPU:
 #
-# @type: CPU object type for usage with device_add command
+# @type: CPU object type for usage with `device_add` command
 #
 # @props: list of properties to pass for hotplugging a CPU with
-#     device_add
+#     `device_add`
 #
-# @vcpus-count: number of logical VCPU threads @HotpluggableCPU
+# @vcpus-count: number of logical VCPU threads `HotpluggableCPU`
 #     provides
 #
 # @qom-path: link to existing CPU object if CPU is present or omitted
 #     if CPU is not present.
 #
 # .. note:: Management should be prepared to pass through additional
-#    properties with device_add.
+#    properties with `device_add`.
 #
 # Since: 2.7
 ##
@@ -1177,7 +1177,7 @@
 # @BALLOON_CHANGE:
 #
 # Emitted when the guest changes the actual BALLOON level.  This value
-# is equivalent to the @actual field return by the 'query-balloon'
+# is equivalent to the @actual field return by the `query-balloon`
 # command
 #
 # @actual: the logical size of the VM in bytes.  Formula used:
@@ -1963,7 +1963,7 @@
 #
 # The result of a CPU model baseline.
 #
-# @model: the baselined CpuModelInfo.
+# @model: the baselined `CpuModelInfo`.
 #
 # Since: 2.8
 ##
@@ -2012,28 +2012,28 @@
 #
 # * QEMU version: CPU models may look different depending on the QEMU
 #   version.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * machine-type: CPU model may look different depending on the
 #   machine-type.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * machine options (including accelerator): in some architectures,
 #   CPU models may look different depending on machine and accelerator
 #   options.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * "-cpu" arguments and global properties: arguments to the -cpu
 #   option and global properties may affect expansion of CPU models.
-#   Using query-cpu-model-expansion while using these is not advised.
+#   Using `query-cpu-model-expansion` while using these is not advised.
 #
 # Some architectures may not support comparing CPU models.  s390x
 # supports comparing CPU models.
 #
 # @modela: description of the first CPU model to compare, referred to
-#     as "model A" in CpuModelCompareResult
+#     as "model A" in `CpuModelCompareResult`
 #
 # @modelb: description of the second CPU model to compare, referred to
-#     as "model B" in CpuModelCompareResult
+#     as "model B" in `CpuModelCompareResult`
 #
-# Returns: a CpuModelCompareInfo describing how both CPU models
+# Returns: a `CpuModelCompareInfo` describing how both CPU models
 #     compare
 #
 # Errors:
@@ -2066,17 +2066,17 @@
 #
 # * QEMU version: CPU models may look different depending on the QEMU
 #   version.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * machine-type: CPU model may look different depending on the
 #   machine-type.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * machine options (including accelerator): in some architectures,
 #   CPU models may look different depending on machine and accelerator
 #   options.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * "-cpu" arguments and global properties: arguments to the -cpu
 #   option and global properties may affect expansion of CPU models.
-#   Using query-cpu-model-expansion while using these is not advised.
+#   Using `query-cpu-model-expansion` while using these is not advised.
 #
 # Some architectures may not support baselining CPU models.  s390x
 # supports baselining CPU models.
@@ -2085,7 +2085,7 @@
 #
 # @modelb: description of the second CPU model to baseline
 #
-# Returns: a CpuModelBaselineInfo describing the baselined CPU model
+# Returns: a `CpuModelBaselineInfo` describing the baselined CPU model
 #
 # Errors:
 #     - if baselining CPU models is not supported by the target
@@ -2105,7 +2105,7 @@
 #
 # The result of a cpu model expansion.
 #
-# @model: the expanded CpuModelInfo.
+# @model: the expanded `CpuModelInfo`.
 #
 # @deprecated-props: an optional list of properties that are flagged as
 #     deprecated by the CPU vendor.  The list depends on the
@@ -2134,17 +2134,17 @@
 #
 # * QEMU version: CPU models may look different depending on the QEMU
 #   version.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * machine-type: CPU model may look different depending on the
 #   machine-type.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * machine options (including accelerator): in some architectures,
 #   CPU models may look different depending on machine and accelerator
 #   options.  (Except for CPU models reported as "static" in
-#   query-cpu-definitions.)
+#   `query-cpu-definitions`.)
 # * "-cpu" arguments and global properties: arguments to the -cpu
 #   option and global properties may affect expansion of CPU models.
-#   Using query-cpu-model-expansion while using these is not advised.
+#   Using `query-cpu-model-expansion` while using these is not advised.
 #
 # Some architectures may not support all expansion types.  s390x
 # supports "full" and "static".  Arm only supports "full".
@@ -2153,7 +2153,7 @@
 #
 # @type: expansion type, specifying how to expand the CPU model
 #
-# Returns: a CpuModelExpansionInfo describing the expanded CPU model
+# Returns: a `CpuModelExpansionInfo` describing the expanded CPU model
 #
 # Errors:
 #     - if expanding CPU models is not supported
@@ -2192,7 +2192,7 @@
 #     from running in the current host.  (since 2.8)
 #
 # @typename: Type name that can be used as argument to
-#     @device-list-properties, to introspect properties configurable
+#     `device-list-properties`, to introspect properties configurable
 #     using -cpu or -global.  (since 2.9)
 #
 # @alias-of: Name of CPU model this model is an alias for.  The target
@@ -2236,7 +2236,7 @@
 #
 # Return a list of supported virtual CPU definitions
 #
-# Returns: a list of CpuDefinitionInfo
+# Returns: a list of `CpuDefinitionInfo`
 #
 # Since: 1.2
 ##
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 08/18] qapi: add cross-references to migration.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (6 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 07/18] qapi: add cross-references to Machine core John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  8:55   ` Markus Armbruster
  2025-07-11  5:39 ` [PATCH v2 09/18] qapi: add cross-references to net.json John Snow
                   ` (11 subsequent siblings)
  19 siblings, 1 reply; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/migration.json | 68 ++++++++++++++++++++++-----------------------
 1 file changed, 34 insertions(+), 34 deletions(-)

diff --git a/qapi/migration.json b/qapi/migration.json
index 59a213aeb6c..eda27c18102 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -193,14 +193,14 @@
 #
 # Information about current migration process.
 #
-# @status: @MigrationStatus describing the current migration status.
+# @status: `MigrationStatus` describing the current migration status.
 #     If this field is not returned, no migration process has been
 #     initiated
 #
-# @ram: @MigrationStats containing detailed migration status, only
+# @ram: `MigrationStats` containing detailed migration status, only
 #     returned if status is 'active' or 'completed'(since 1.2)
 #
-# @xbzrle-cache: @XBZRLECacheStats containing detailed XBZRLE
+# @xbzrle-cache: `XBZRLECacheStats` containing detailed XBZRLE
 #     migration statistics, only returned if XBZRLE feature is on and
 #     status is 'active' or 'completed' (since 1.2)
 #
@@ -239,7 +239,7 @@
 # @socket-address: Only used for tcp, to know what the real port is
 #     (Since 4.0)
 #
-# @vfio: @VfioStats containing detailed VFIO devices migration
+# @vfio: `VfioStats` containing detailed VFIO devices migration
 #     statistics, only returned if VFIO device is present, migration
 #     is supported by all VFIO devices and status is 'active' or
 #     'completed' (since 5.2)
@@ -250,7 +250,7 @@
 #
 # @dirty-limit-throttle-time-per-round: Maximum throttle time (in
 #     microseconds) of virtual CPUs each dirty ring full round, which
-#     shows how MigrationCapability dirty-limit affects the guest
+#     shows how `MigrationCapability` dirty-limit affects the guest
 #     during live migration.  (Since 8.1)
 #
 # @dirty-limit-ring-full-time: Estimated average dirty ring full time
@@ -587,7 +587,7 @@
 #
 # @normal: the original form of migration.  (since 8.2)
 #
-# @cpr-reboot: The migrate command stops the VM and saves state to the
+# @cpr-reboot: The `migrate` command stops the VM and saves state to the
 #     URI.  After quitting QEMU, the user resumes by running QEMU
 #     -incoming.
 #
@@ -637,7 +637,7 @@
 #
 #     New QEMU reads the CPR channel before opening a monitor, hence
 #     the CPR channel cannot be specified in the list of channels for
-#     a migrate-incoming command.  It may only be specified on the
+#     a `migrate-incoming` command.  It may only be specified on the
 #     command line.
 #
 #     The main channel address cannot be a file type, and for an
@@ -648,10 +648,10 @@
 #     memory-backend-epc is not supported.  The VM must be started
 #     with the '-machine aux-ram-share=on' option.
 #
-#     When using -incoming defer, you must issue the migrate command
+#     When using -incoming defer, you must issue the `migrate` command
 #     to old QEMU before issuing any monitor commands to new QEMU.
 #     However, new QEMU does not open and read the migration stream
-#     until you issue the migrate incoming command.
+#     until you issue the `migrate-incoming` command.
 #
 #     (since 10.0)
 ##
@@ -873,11 +873,11 @@
 # @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration.
 #     Defaults to 1.  (Since 8.1)
 #
-# @mode: Migration mode.  See description in @MigMode.  Default is
+# @mode: Migration mode.  See description in `MigMode`.  Default is
 #     'normal'.  (Since 8.2)
 #
 # @zero-page-detection: Whether and how to detect zero pages.
-#     See description in @ZeroPageDetection.  Default is 'multifd'.
+#     See description in `ZeroPageDetection`.  Default is 'multifd'.
 #     (since 9.0)
 #
 # @direct-io: Open migration files with O_DIRECT when possible.  This
@@ -1054,11 +1054,11 @@
 # @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration.
 #     Defaults to 1.  (Since 8.1)
 #
-# @mode: Migration mode.  See description in @MigMode.  Default is
+# @mode: Migration mode.  See description in `MigMode`.  Default is
 #     'normal'.  (Since 8.2)
 #
 # @zero-page-detection: Whether and how to detect zero pages.
-#     See description in @ZeroPageDetection.  Default is 'multifd'.
+#     See description in `ZeroPageDetection`.  Default is 'multifd'.
 #     (since 9.0)
 #
 # @direct-io: Open migration files with O_DIRECT when possible.  This
@@ -1070,8 +1070,8 @@
 # @unstable: Members @x-checkpoint-delay and
 #     @x-vcpu-dirty-limit-period are experimental.
 #
-# TODO: either fuse back into MigrationParameters, or make
-#     MigrationParameters members mandatory
+# TODO: either fuse back into `MigrationParameters`, or make
+#     `MigrationParameters` members mandatory
 #
 # Since: 2.4
 ##
@@ -1264,11 +1264,11 @@
 # @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration.
 #     Defaults to 1.  (Since 8.1)
 #
-# @mode: Migration mode.  See description in @MigMode.  Default is
+# @mode: Migration mode.  See description in `MigMode`.  Default is
 #     'normal'.  (Since 8.2)
 #
 # @zero-page-detection: Whether and how to detect zero pages.
-#     See description in @ZeroPageDetection.  Default is 'multifd'.
+#     See description in `ZeroPageDetection`.  Default is 'multifd'.
 #     (since 9.0)
 #
 # @direct-io: Open migration files with O_DIRECT when possible.  This
@@ -1358,7 +1358,7 @@
 #
 # Emitted when a migration event happens
 #
-# @status: @MigrationStatus describing the current migration status.
+# @status: `MigrationStatus` describing the current migration status.
 #
 # Since: 2.4
 #
@@ -1479,8 +1479,8 @@
 # The reason for a COLO exit.
 #
 # @none: failover has never happened.  This state does not occur in
-#     the COLO_EXIT event, and is only visible in the result of
-#     query-colo-status.
+#     the `COLO_EXIT` event, and is only visible in the result of
+#     `query-colo-status`.
 #
 # @request: COLO exit is due to an external request.
 #
@@ -1735,8 +1735,8 @@
 #     list connected to a destination interface endpoint.
 #
 # @exit-on-error: Exit on incoming migration failure.  Default true.
-#     When set to false, the failure triggers a MIGRATION event, and
-#     error details could be retrieved with query-migrate.
+#     When set to false, the failure triggers a :qapi:event:`MIGRATION`
+#     event, and error details could be retrieved with `query-migrate`.
 #     (since 9.1)
 #
 # Since: 2.3
@@ -1748,7 +1748,7 @@
 #        already exposed above libvirt.
 #
 #     2. QEMU must be started with -incoming defer to allow
-#        migrate-incoming to be used.
+#        `migrate-incoming` to be used.
 #
 #     3. The uri format is the same as for -incoming
 #
@@ -1801,7 +1801,7 @@
 # devices of the VM are not saved by this command.
 #
 # @filename: the file to save the state of the devices to as binary
-#     data.  See xen-save-devices-state.txt for a description of the
+#     data.  See `xen-save-devices-state`.txt for a description of the
 #     binary format.
 #
 # @live: Optional argument to ask QEMU to treat this command as part
@@ -1842,7 +1842,7 @@
 # devices of the VM are not loaded by this command.
 #
 # @filename: the file to load the state of the devices from as binary
-#     data.  See xen-save-devices-state.txt for a description of the
+#     data.  See `xen-save-devices-state`.txt for a description of the
 #     binary format.
 #
 # Since: 2.7
@@ -1882,7 +1882,7 @@
 ##
 # @ReplicationStatus:
 #
-# The result format for 'query-xen-replication-status'.
+# The result format for `query-xen-replication-status`.
 #
 # @error: true if an error happened, false if replication is normal.
 #
@@ -1931,7 +1931,7 @@
 ##
 # @COLOStatus:
 #
-# The result format for 'query-colo-status'.
+# The result format for `query-colo-status`.
 #
 # @mode: COLO running mode.  If COLO is running, this field will
 #     return 'primary' or 'secondary'.
@@ -2055,7 +2055,7 @@
 # @DirtyRateMeasureMode:
 #
 # Method used to measure dirty page rate.  Differences between
-# available methods are explained in @calc-dirty-rate.
+# available methods are explained in `calc-dirty-rate`.
 #
 # @page-sampling: use page sampling
 #
@@ -2123,7 +2123,7 @@
 # @calc-dirty-rate:
 #
 # Start measuring dirty page rate of the VM.  Results can be retrieved
-# with @query-dirty-rate after measurements are completed.
+# with `query-dirty-rate` after measurements are completed.
 #
 # Dirty page rate is the number of pages changed in a given time
 # period expressed in MiB/s.  The following methods of calculation are
@@ -2196,7 +2196,7 @@
 ##
 # @query-dirty-rate:
 #
-# Query results of the most recent invocation of @calc-dirty-rate.
+# Query results of the most recent invocation of `calc-dirty-rate`.
 #
 # @calc-time-unit: time unit in which to report calculation time.
 #     By default it is reported in seconds.  (Since 8.2)
@@ -2246,7 +2246,7 @@
 #
 # Requires KVM with accelerator property "dirty-ring-size" set.  A
 # virtual CPU's dirty page rate is a measure of its memory load.  To
-# observe dirty page rates, use @calc-dirty-rate.
+# observe dirty page rates, use `calc-dirty-rate`.
 #
 # @cpu-index: index of a virtual CPU, default is all.
 #
@@ -2271,8 +2271,8 @@
 # Cancel the upper limit of dirty page rate for virtual CPUs.
 #
 # Cancel the dirty page limit for the vCPU which has been set with
-# set-vcpu-dirty-limit command.  Note that this command requires
-# support from dirty ring, same as the "set-vcpu-dirty-limit".
+# `set-vcpu-dirty-limit` command.  Note that this command requires
+# support from dirty ring, same as the `set-vcpu-dirty-limit`.
 #
 # @cpu-index: index of a virtual CPU, default is all.
 #
@@ -2429,7 +2429,7 @@
 # time it takes to load the snapshot.
 #
 # It is strongly recommended that @devices contain all writable block
-# device nodes that can have changed since the original @snapshot-save
+# device nodes that can have changed since the original `snapshot-save`
 # command execution.
 #
 # .. qmp-example::
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 09/18] qapi: add cross-references to net.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (7 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 08/18] qapi: add cross-references to migration.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 10/18] qapi: add cross-references to pci.json John Snow
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/net.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/qapi/net.json b/qapi/net.json
index 371ade0dc6a..8631c8dd61c 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -655,7 +655,7 @@
 #     this to zero disables this function.  This member is mutually
 #     exclusive with @reconnect.  (default: 0) (Since: 9.2)
 #
-# Only SocketAddress types 'unix', 'inet' and 'fd' are supported.
+# Only `SocketAddress` types 'unix', 'inet' and 'fd' are supported.
 #
 # Features:
 #
@@ -680,7 +680,7 @@
 #
 # @local: local address
 #
-# Only SocketAddress types 'unix', 'inet' and 'fd' are supported.
+# Only `SocketAddress` types 'unix', 'inet' and 'fd' are supported.
 #
 # If remote address is present and it's a multicast address, local
 # address is optional.  Otherwise local address is required and remote
@@ -890,7 +890,7 @@
 ##
 # @NIC_RX_FILTER_CHANGED:
 #
-# Emitted once until the 'query-rx-filter' command is executed, the
+# Emitted once until the `query-rx-filter` command is executed, the
 # first event will always be emitted
 #
 # @name: net client name
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 10/18] qapi: add cross-references to pci.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (8 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 09/18] qapi: add cross-references to net.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 11/18] qapi: add cross-references to QOM John Snow
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/pci.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qapi/pci.json b/qapi/pci.json
index 29549d94551..4aad5f98e2a 100644
--- a/qapi/pci.json
+++ b/qapi/pci.json
@@ -83,7 +83,7 @@
 #
 # @bus: information about the bus the device resides on
 #
-# @devices: a list of @PciDeviceInfo for each device on this bridge
+# @devices: a list of `PciDeviceInfo` for each device on this bridge
 #
 # Since: 0.14
 ##
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 11/18] qapi: add cross-references to QOM
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (9 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 10/18] qapi: add cross-references to pci.json John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:39 ` [PATCH v2 12/18] qapi: add cross-references to replay.json John Snow
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/qdev.json |  4 ++--
 qapi/qom.json  | 13 +++++++------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/qapi/qdev.json b/qapi/qdev.json
index 5d18fb8e0e0..ff3f06a36d6 100644
--- a/qapi/qdev.json
+++ b/qapi/qdev.json
@@ -95,10 +95,10 @@
 #    from the guest.  Hot removal is an operation that requires guest
 #    cooperation.  This command merely requests that the guest begin
 #    the hot removal process.  Completion of the device removal
-#    process is signaled with a DEVICE_DELETED event.  Guest reset
+#    process is signaled with a `DEVICE_DELETED` event.  Guest reset
 #    will automatically complete removal for all devices.  If a
 #    guest-side error in the hot removal process is detected, the
-#    device will not be removed and a DEVICE_UNPLUG_GUEST_ERROR event
+#    device will not be removed and a `DEVICE_UNPLUG_GUEST_ERROR` event
 #    is sent.  Some errors cannot be detected.
 #
 # Since: 0.14
diff --git a/qapi/qom.json b/qapi/qom.json
index c6fdce7f7bc..e8ba3ee4907 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -51,7 +51,7 @@
 # This command will list any properties of a object given a path in
 # the object model.
 #
-# @path: the path within the object model.  See @qom-get for a
+# @path: the path within the object model.  See `qom-get` for a
 #     description of this parameter.
 #
 # Returns: a list that describe the properties of the object.
@@ -129,12 +129,12 @@
 #
 # This command will set a property from a object model path.
 #
-# @path: see @qom-get for a description of this parameter
+# @path: see `qom-get` for a description of this parameter
 #
 # @property: the property name to set
 #
 # @value: a value who's type is appropriate for the property type.
-#     See @qom-get for a description of type mapping.
+#     See `qom-get` for a description of type mapping.
 #
 # Since: 1.2
 #
@@ -153,7 +153,7 @@
 ##
 # @ObjectTypeInfo:
 #
-# This structure describes a search result from @qom-list-types
+# This structure describes a search result from `qom-list-types`
 #
 # @name: the type name found in the search
 #
@@ -193,6 +193,7 @@
 #
 # @typename: the type name of an object
 #
+#
 # .. note:: Objects can create properties at runtime, for example to
 #    describe links between different devices and/or objects.  These
 #    properties are not included in the output of this command.
@@ -787,7 +788,7 @@
 #
 # Properties for x-remote-object objects.
 #
-# @fd: file descriptor name previously passed via 'getfd' command
+# @fd: file descriptor name previously passed via `getfd` command
 #
 # @devid: the id of the device to be associated with the file
 #     descriptor
@@ -816,7 +817,7 @@
 #
 # Properties for iommufd objects.
 #
-# @fd: file descriptor name previously passed via 'getfd' command,
+# @fd: file descriptor name previously passed via `getfd` command,
 #     which represents a pre-opened /dev/iommu.  This allows the
 #     iommufd object to be shared across several subsystems (VFIO,
 #     VDPA, ...), and the file descriptor to be shared with other
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 12/18] qapi: add cross-references to replay.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (10 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 11/18] qapi: add cross-references to QOM John Snow
@ 2025-07-11  5:39 ` John Snow
  2025-07-11  5:40 ` [PATCH v2 13/18] qapi: add cross-references to run-state.json John Snow
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:39 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/replay.json | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/qapi/replay.json b/qapi/replay.json
index 35e0c4a6926..78244a9d0bf 100644
--- a/qapi/replay.json
+++ b/qapi/replay.json
@@ -47,8 +47,8 @@
 # @query-replay:
 #
 # Retrieve the record/replay information.  It includes current
-# instruction count which may be used for @replay-break and
-# @replay-seek commands.
+# instruction count which may be used for `replay-break` and
+# `replay-seek` commands.
 #
 # Returns: record/replay information.
 #
@@ -70,7 +70,7 @@
 # breakpoint.  When breakpoint is set, any prior one is removed.  The
 # breakpoint may be set only in replay mode and only "in the future",
 # i.e. at instruction counts greater than the current one.  The
-# current instruction count can be observed with @query-replay.
+# current instruction count can be observed with `query-replay`.
 #
 # @icount: instruction count to stop at
 #
@@ -86,7 +86,7 @@
 ##
 # @replay-delete-break:
 #
-# Remove replay breakpoint which was set with @replay-break.  The
+# Remove replay breakpoint which was set with `replay-break`.  The
 # command is ignored when there are no replay breakpoints.
 #
 # Since: 5.2
@@ -106,7 +106,7 @@
 # snapshot and replays the execution to find the desired instruction.
 # When there is no preceding snapshot or the execution is not
 # replayed, then the command fails.  Instruction count can be obtained
-# with the @query-replay command.
+# with the `query-replay` command.
 #
 # @icount: target instruction count
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 13/18] qapi: add cross-references to run-state.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (11 preceding siblings ...)
  2025-07-11  5:39 ` [PATCH v2 12/18] qapi: add cross-references to replay.json John Snow
@ 2025-07-11  5:40 ` John Snow
  2025-07-11  5:40 ` [PATCH v2 14/18] qapi: add cross-references to sockets.json John Snow
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/run-state.json | 46 ++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/qapi/run-state.json b/qapi/run-state.json
index 759f8730059..bafbbf695b2 100644
--- a/qapi/run-state.json
+++ b/qapi/run-state.json
@@ -68,9 +68,9 @@
 #
 # @host-error: An error prevents further use of guest
 #
-# @host-qmp-quit: Reaction to the QMP command 'quit'
+# @host-qmp-quit: Reaction to the QMP command `quit`
 #
-# @host-qmp-system-reset: Reaction to the QMP command 'system_reset'
+# @host-qmp-system-reset: Reaction to the QMP command `system_reset`
 #
 # @host-signal: Reaction to a signal, such as SIGINT
 #
@@ -106,7 +106,7 @@
 #
 # @running: true if all VCPUs are runnable, false if not runnable
 #
-# @status: the virtual machine @RunState
+# @status: the virtual machine `RunState`
 #
 # Since: 0.14
 ##
@@ -141,12 +141,12 @@
 #     hardware-specific action) rather than a host request (such as
 #     sending QEMU a SIGINT).  (since 2.10)
 #
-# @reason: The @ShutdownCause which resulted in the SHUTDOWN.
+# @reason: The `ShutdownCause` which resulted in the `SHUTDOWN`.
 #     (since 4.0)
 #
 # .. note:: If the command-line option ``-no-shutdown`` has been
-#    specified, QEMU will not exit, and a STOP event will eventually
-#    follow the SHUTDOWN event.
+#    specified, QEMU will not exit, and a `STOP` event will eventually
+#    follow the `SHUTDOWN` event.
 #
 # Since: 0.12
 #
@@ -181,9 +181,9 @@
 # @guest: If true, the reset was triggered by a guest request (such as
 #     a guest-initiated ACPI reboot request or other hardware-specific
 #     action) rather than a host request (such as the QMP command
-#     system_reset).  (since 2.10)
+#     `system_reset`).  (since 2.10)
 #
-# @reason: The @ShutdownCause of the RESET.  (since 4.0)
+# @reason: The `ShutdownCause` of the `RESET`.  (since 4.0)
 #
 # Since: 0.12
 #
@@ -245,7 +245,7 @@
 # saved on disk, for example, S4 state, which is sometimes called
 # hibernate state
 #
-# .. note:: QEMU shuts down (similar to event @SHUTDOWN) when entering
+# .. note:: QEMU shuts down (similar to event `SHUTDOWN`) when entering
 #    this state.
 #
 # Since: 1.2
@@ -279,8 +279,8 @@
 #
 # @action: action that has been taken
 #
-# .. note:: If action is "reset", "shutdown", or "pause" the WATCHDOG
-#    event is followed respectively by the RESET, SHUTDOWN, or STOP
+# .. note:: If action is "reset", "shutdown", or "pause" the `WATCHDOG`
+#    event is followed respectively by the `RESET`, `SHUTDOWN`, or `STOP`
 #    events.
 #
 # .. note:: This event is rate-limited.
@@ -376,7 +376,7 @@
 #
 # Set watchdog action.
 #
-# @action: @WatchdogAction action taken when watchdog timer expires.
+# @action: `WatchdogAction` action taken when watchdog timer expires.
 #
 # Since: 2.11
 #
@@ -394,13 +394,13 @@
 # Set the actions that will be taken by the emulator in response to
 # guest events.
 #
-# @reboot: @RebootAction action taken on guest reboot.
+# @reboot: `RebootAction` action taken on guest reboot.
 #
-# @shutdown: @ShutdownAction action taken on guest shutdown.
+# @shutdown: `ShutdownAction` action taken on guest shutdown.
 #
-# @panic: @PanicAction action taken on guest panic.
+# @panic: `PanicAction` action taken on guest panic.
 #
-# @watchdog: @WatchdogAction action taken when watchdog timer expires.
+# @watchdog: `WatchdogAction` action taken when watchdog timer expires.
 #
 # Since: 6.0
 #
@@ -527,20 +527,20 @@
 #
 # Hyper-V specific guest panic information (HV crash MSRs)
 #
-# @arg1: for Windows, STOP code for the guest crash.  For Linux,
+# @arg1: for Windows, `STOP` code for the guest crash.  For Linux,
 #     an error code.
 #
-# @arg2: for Windows, first argument of the STOP.  For Linux, the
+# @arg2: for Windows, first argument of the `STOP`.  For Linux, the
 #     guest OS ID, which has the kernel version in bits 16-47 and
 #     0x8100 in bits 48-63.
 #
-# @arg3: for Windows, second argument of the STOP.  For Linux, the
+# @arg3: for Windows, second argument of the `STOP`.  For Linux, the
 #     program counter of the guest.
 #
-# @arg4: for Windows, third argument of the STOP.  For Linux, the
+# @arg4: for Windows, third argument of the `STOP`.  For Linux, the
 #     RAX register (x86) or the stack pointer (aarch64) of the guest.
 #
-# @arg5: for Windows, fourth argument of the STOP.  For x86 Linux, the
+# @arg5: for Windows, fourth argument of the `STOP`.  For x86 Linux, the
 #     stack pointer of the guest.
 #
 # Since: 2.9
@@ -628,11 +628,11 @@
 #
 # Emitted when a memory failure occurs on host side.
 #
-# @recipient: recipient is defined as @MemoryFailureRecipient.
+# @recipient: recipient is defined as `MemoryFailureRecipient`.
 #
 # @action: action that has been taken.
 #
-# @flags: flags for MemoryFailureAction.
+# @flags: flags for `MemoryFailureAction`.
 #
 # Since: 5.2
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 14/18] qapi: add cross-references to sockets.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (12 preceding siblings ...)
  2025-07-11  5:40 ` [PATCH v2 13/18] qapi: add cross-references to run-state.json John Snow
@ 2025-07-11  5:40 ` John Snow
  2025-07-11  5:40 ` [PATCH v2 15/18] qapi: add cross-references to ui.json John Snow
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
 qapi/sockets.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/qapi/sockets.json b/qapi/sockets.json
index f9f559dabae..e7f8b42bda3 100644
--- a/qapi/sockets.json
+++ b/qapi/sockets.json
@@ -209,14 +209,14 @@
     'unix': 'UnixSocketAddressWrapper',
     'vsock': 'VsockSocketAddressWrapper',
     'fd': 'FdSocketAddressWrapper' } }
-# Note: This type is deprecated in favor of SocketAddress.  The
-# difference between SocketAddressLegacy and SocketAddress is that the
+# Note: This type is deprecated in favor of `SocketAddress`.  The
+# difference between `SocketAddressLegacy` and `SocketAddress` is that the
 # latter has fewer ``{}`` on the wire.
 
 ##
 # @SocketAddressType:
 #
-# Available SocketAddress types
+# Available `SocketAddress` types
 #
 # @inet: Internet address
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 15/18] qapi: add cross-references to ui.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (13 preceding siblings ...)
  2025-07-11  5:40 ` [PATCH v2 14/18] qapi: add cross-references to sockets.json John Snow
@ 2025-07-11  5:40 ` John Snow
  2025-07-11  5:40 ` [PATCH v2 16/18] qapi: add cross-references to virtio.json John Snow
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/ui.json | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/qapi/ui.json b/qapi/ui.json
index 7136c985c38..5bc54403cc2 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -39,7 +39,7 @@
 ##
 # @SetPasswordOptions:
 #
-# Options for set_password.
+# Options for `set_password`.
 #
 # @protocol:
 #     - 'vnc' to modify the VNC server password
@@ -63,7 +63,7 @@
 ##
 # @SetPasswordOptionsVnc:
 #
-# Options for set_password specific to the VNC protocol.
+# Options for `set_password` specific to the VNC protocol.
 #
 # @display: The id of the display where the password should be
 #     changed.  Defaults to the first.
@@ -94,7 +94,7 @@
 ##
 # @ExpirePasswordOptions:
 #
-# General options for expire_password.
+# General options for `expire_password`.
 #
 # @protocol:
 #     - 'vnc' to modify the VNC server expiration
@@ -124,7 +124,7 @@
 ##
 # @ExpirePasswordOptionsVnc:
 #
-# Options for expire_password specific to the VNC protocol.
+# Options for `expire_password` specific to the VNC protocol.
 #
 # @display: The id of the display where the expiration should be
 #     changed.  Defaults to the first.
@@ -183,7 +183,7 @@
 #     the head can only be specified in conjunction with the device
 #     ID.  (Since 2.12)
 #
-# @format: image format for screendump.  (default: ppm) (Since 7.1)
+# @format: image format for `screendump`.  (default: ppm) (Since 7.1)
 #
 # Since: 0.14
 #
@@ -310,7 +310,7 @@
 #     unknown if spice server doesn't provide this information.
 #     (since: 1.1)
 #
-# @channels: a list of @SpiceChannel for each active spice channel
+# @channels: a list of `SpiceChannel` for each active spice channel
 #
 # Since: 0.14
 ##
@@ -559,7 +559,7 @@
 #     - 'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL
 #       auth
 #
-# @clients: a list of @VncClientInfo of all currently connected
+# @clients: a list of `VncClientInfo` of all currently connected
 #     clients
 #
 # Since: 0.14
@@ -622,12 +622,12 @@
 #
 # @id: vnc server name.
 #
-# @server: A list of @VncBasincInfo describing all listening sockets.
+# @server: A list of `VncBasicInfo` describing all listening sockets.
 #     The list can be empty (in case the vnc server is disabled).  It
 #     also may have multiple entries: normal + websocket, possibly
 #     also ipv4 + ipv6 in the future.
 #
-# @clients: A list of @VncClientInfo of all currently connected
+# @clients: A list of `VncClientInfo` of all currently connected
 #     clients.  The list can be empty, for obvious reasons.
 #
 # @auth: The current authentication type used by the non-websockets
@@ -846,7 +846,7 @@
 #
 # An enumeration of key name.
 #
-# This is used by the @send-key command.
+# This is used by the `send-key` command.
 #
 # @unmapped: since 2.0
 #
@@ -1017,10 +1017,10 @@
 #
 # Send keys to guest.
 #
-# @keys: An array of @KeyValue elements.  All @KeyValues in this array
-#     are simultaneously sent to the guest.  A @KeyValue.number value
-#     is sent directly to the guest, while @KeyValue.qcode must be a
-#     valid @QKeyCode value
+# @keys: An array of `KeyValue` elements.  All @KeyValues in this array
+#     are simultaneously sent to the guest.  A `KeyValue`.number value
+#     is sent directly to the guest, while `KeyValue`.qcode must be a
+#     valid `QKeyCode` value
 #
 # @hold-time: time to delay key up events, milliseconds.  Defaults to
 #     100
@@ -1257,7 +1257,7 @@
 # @head: head to send event(s) to, in case the display device supports
 #     multiple scanouts.
 #
-# @events: List of InputEvent union.
+# @events: List of `InputEvent` union.
 #
 # Since: 2.6
 #
@@ -1361,7 +1361,7 @@
 #     first available node on the host.
 #
 # @p2p: Whether to use peer-to-peer connections (accepted through
-#     @add_client).
+#     `add_client`).
 #
 # @audiodev: Use the specified DBus audiodev to export audio.
 #
@@ -1520,7 +1520,7 @@
 #
 # Display (user interface) options.
 #
-# @type: Which DisplayType QEMU should use.
+# @type: Which `DisplayType` QEMU should use.
 #
 # @full-screen: Start user interface in fullscreen mode
 #     (default: off).
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 16/18] qapi: add cross-references to virtio.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (14 preceding siblings ...)
  2025-07-11  5:40 ` [PATCH v2 15/18] qapi: add cross-references to ui.json John Snow
@ 2025-07-11  5:40 ` John Snow
  2025-07-11  5:40 ` [PATCH v2 17/18] qapi: add cross-references to yank.json John Snow
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/virtio.json | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/qapi/virtio.json b/qapi/virtio.json
index d1556dbf24a..3bc8700e943 100644
--- a/qapi/virtio.json
+++ b/qapi/virtio.json
@@ -135,7 +135,7 @@
 # @num-vqs: VirtIODevice virtqueue count.  This is the number of
 #     active virtqueues being used by the VirtIODevice.
 #
-# @status: VirtIODevice configuration status (VirtioDeviceStatus)
+# @status: VirtIODevice configuration status (`VirtioDeviceStatus`)
 #
 # @isr: VirtIODevice ISR
 #
@@ -577,7 +577,7 @@
 # .. qmp-example::
 #    :annotated:
 #
-#    Get VirtQueueStatus for virtio-vsock (vhost-vsock running)
+#    Get `VirtQueueStatus` for virtio-vsock (vhost-vsock running)
 #    ::
 #
 #     -> { "execute": "x-query-virtio-queue-status",
@@ -604,7 +604,7 @@
 # .. qmp-example::
 #    :annotated:
 #
-#    Get VirtQueueStatus for virtio-serial (no vhost)
+#    Get `VirtQueueStatus` for virtio-serial (no vhost)
 #    ::
 #
 #     -> { "execute": "x-query-virtio-queue-status",
@@ -816,7 +816,7 @@
 #
 # @index: Index of the element in the queue
 #
-# @descs: List of descriptors (VirtioRingDesc)
+# @descs: List of descriptors (`VirtioRingDesc`)
 #
 # @avail: VRingAvail info
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 17/18] qapi: add cross-references to yank.json
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (15 preceding siblings ...)
  2025-07-11  5:40 ` [PATCH v2 16/18] qapi: add cross-references to virtio.json John Snow
@ 2025-07-11  5:40 ` John Snow
  2025-07-11  5:40 ` [PATCH v2 18/18] qapi: add cross-references to misc modules John Snow
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

Signed-off-by: John Snow <jsnow@redhat.com>
Acked-by: Lukas Straub <lukasstraub2@web.de>
---
 qapi/yank.json | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/qapi/yank.json b/qapi/yank.json
index 5f26d6c0149..f1b737e87d6 100644
--- a/qapi/yank.json
+++ b/qapi/yank.json
@@ -9,7 +9,7 @@
 ##
 # @YankInstanceType:
 #
-# An enumeration of yank instance types.  See @YankInstance for more
+# An enumeration of yank instance types.  See `YankInstance` for more
 # information.
 #
 # Since: 6.0
@@ -20,7 +20,7 @@
 ##
 # @YankInstanceBlockNode:
 #
-# Specifies which block graph node to yank.  See @YankInstance for
+# Specifies which block graph node to yank.  See `YankInstance` for
 # more information.
 #
 # @node-name: the name of the block graph node
@@ -33,7 +33,7 @@
 ##
 # @YankInstanceChardev:
 #
-# Specifies which character device to yank.  See @YankInstance for
+# Specifies which character device to yank.  See `YankInstance` for
 # more information.
 #
 # @id: the chardev's ID
@@ -46,7 +46,7 @@
 ##
 # @YankInstance:
 #
-# A yank instance can be yanked with the @yank qmp command to recover
+# A yank instance can be yanked with the `yank` qmp command to recover
 # from a hanging QEMU.
 #
 # @type: yank instance type
@@ -57,9 +57,9 @@
 #   nbd server without attempting to reconnect.
 # - socket chardev: Yanking it will shut down the connected socket.
 # - migration: Yanking it will shut down all migration connections.
-#   Unlike @migrate_cancel, it will not notify the migration process,
+#   Unlike `migrate_cancel`, it will not notify the migration process,
 #   so migration will go into @failed state, instead of @cancelled
-#   state.  @yank should be used to recover from hangs.
+#   state.  `yank` should be used to recover from hangs.
 #
 # Since: 6.0
 ##
@@ -74,7 +74,7 @@
 # @yank:
 #
 # Try to recover from hanging QEMU by yanking the specified instances.
-# See @YankInstance for more information.
+# See `YankInstance` for more information.
 #
 # @instances: the instances to be yanked
 #
@@ -100,7 +100,7 @@
 ##
 # @query-yank:
 #
-# Query yank instances.  See @YankInstance for more information.
+# Query yank instances.  See `YankInstance` for more information.
 #
 # TODO: This line is a hack to separate the example from the body
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* [PATCH v2 18/18] qapi: add cross-references to misc modules
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (16 preceding siblings ...)
  2025-07-11  5:40 ` [PATCH v2 17/18] qapi: add cross-references to yank.json John Snow
@ 2025-07-11  5:40 ` John Snow
  2025-07-11  9:04 ` [PATCH v2 00/18] QAPI: add cross-references to qapi docs Markus Armbruster
  2025-07-14 13:41 ` Markus Armbruster
  19 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11  5:40 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Marcel Apfelbaum, John Snow, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Markus Armbruster,
	Igor Mammedov, Fabiano Rosas

These modules don't have specific maintainers, so they're lumped in
together here as miscellaneous.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 qapi/control.json    |  2 +-
 qapi/ebpf.json       |  2 +-
 qapi/introspect.json | 24 ++++++++++++------------
 qapi/misc-arm.json   |  4 ++--
 qapi/misc-i386.json  |  2 +-
 qapi/misc.json       | 12 ++++++------
 qapi/stats.json      |  8 ++++----
 7 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/qapi/control.json b/qapi/control.json
index 3aeb8f4f6fb..91de9fcd3b6 100644
--- a/qapi/control.json
+++ b/qapi/control.json
@@ -11,7 +11,7 @@
 #
 # Enable QMP capabilities.
 #
-# @enable: An optional list of QMPCapability values to enable.  The
+# @enable: An optional list of `QMPCapability` values to enable.  The
 #     client must not enable any capability that is not mentioned in
 #     the QMP greeting message.  If the field is not provided, it
 #     means no QMP capabilities will be enabled.  (since 2.12)
diff --git a/qapi/ebpf.json b/qapi/ebpf.json
index db19ae850fc..834e28d1aba 100644
--- a/qapi/ebpf.json
+++ b/qapi/ebpf.json
@@ -32,7 +32,7 @@
 ##
 # @EbpfProgramID:
 #
-# The eBPF programs that can be gotten with request-ebpf.
+# The eBPF programs that can be gotten with `request-ebpf`.
 #
 # @rss: Receive side scaling, technology that allows steering traffic
 #     between queues by calculation hash.  Users may set up
diff --git a/qapi/introspect.json b/qapi/introspect.json
index a5340268d13..4ccce77483e 100644
--- a/qapi/introspect.json
+++ b/qapi/introspect.json
@@ -16,11 +16,11 @@
 ##
 # @query-qmp-schema:
 #
-# Command query-qmp-schema exposes the QMP wire ABI as an array of
-# SchemaInfo.  This lets QMP clients figure out what commands and
+# Command `query-qmp-schema` exposes the QMP wire ABI as an array of
+# `SchemaInfo`.  This lets QMP clients figure out what commands and
 # events are available in this QEMU, and their parameters and results.
 #
-# However, the SchemaInfo can't reflect all the rules and restrictions
+# However, the `SchemaInfo` can't reflect all the rules and restrictions
 # that apply to QMP.  It's interface introspection (figuring out
 # what's there), not interface specification.  The specification is in
 # the QAPI schema.
@@ -54,7 +54,7 @@
 ##
 # @SchemaMetaType:
 #
-# This is a @SchemaInfo's meta type, i.e. the kind of entity it
+# This is a `SchemaInfo`'s meta type, i.e. the kind of entity it
 # describes.
 #
 # @builtin: a predefined type such as 'int' or 'bool'.
@@ -80,7 +80,7 @@
 ##
 # @SchemaInfo:
 #
-# @name: the entity's name, inherited from @base.  The SchemaInfo is
+# @name: the entity's name, inherited from @base.  The `SchemaInfo` is
 #     always referenced by this name.  Commands and events have the
 #     name defined in the QAPI schema.  Unlike command and event
 #     names, type names are not part of the wire ABI.  Consequently,
@@ -111,7 +111,7 @@
 ##
 # @SchemaInfoBuiltin:
 #
-# Additional SchemaInfo members for meta-type 'builtin'.
+# Additional `SchemaInfo` members for meta-type 'builtin'.
 #
 # @json-type: the JSON type used for this type on the wire.
 #
@@ -152,7 +152,7 @@
 ##
 # @SchemaInfoEnum:
 #
-# Additional SchemaInfo members for meta-type 'enum'.
+# Additional `SchemaInfo` members for meta-type 'enum'.
 #
 # @members: the enum type's members, in no particular order.
 #     (since 6.2)
@@ -192,7 +192,7 @@
 ##
 # @SchemaInfoArray:
 #
-# Additional SchemaInfo members for meta-type 'array'.
+# Additional `SchemaInfo` members for meta-type 'array'.
 #
 # @element-type: the array type's element type.
 #
@@ -206,7 +206,7 @@
 ##
 # @SchemaInfoObject:
 #
-# Additional SchemaInfo members for meta-type 'object'.
+# Additional `SchemaInfo` members for meta-type 'object'.
 #
 # @members: the object type's (non-variant) members, in no particular
 #     order.
@@ -271,7 +271,7 @@
 ##
 # @SchemaInfoAlternate:
 #
-# Additional SchemaInfo members for meta-type 'alternate'.
+# Additional `SchemaInfo` members for meta-type 'alternate'.
 #
 # @members: the alternate type's members, in no particular order.  The
 #     members' wire encoding is distinct, see
@@ -299,7 +299,7 @@
 ##
 # @SchemaInfoCommand:
 #
-# Additional SchemaInfo members for meta-type 'command'.
+# Additional `SchemaInfo` members for meta-type 'command'.
 #
 # @arg-type: the name of the object type that provides the command's
 #     parameters.
@@ -321,7 +321,7 @@
 ##
 # @SchemaInfoEvent:
 #
-# Additional SchemaInfo members for meta-type 'event'.
+# Additional `SchemaInfo` members for meta-type 'event'.
 #
 # @arg-type: the name of the object type that provides the event's
 #     parameters.
diff --git a/qapi/misc-arm.json b/qapi/misc-arm.json
index f5341372f5a..7f16ecf5390 100644
--- a/qapi/misc-arm.json
+++ b/qapi/misc-arm.json
@@ -30,13 +30,13 @@
 ##
 # @query-gic-capabilities:
 #
-# It will return a list of GICCapability objects that describe its
+# It will return a list of `GICCapability` objects that describe its
 # capability bits.
 #
 # On non-ARM targets this command will report an error as the GIC
 # technology is not applicable.
 #
-# Returns: a list of GICCapability objects.
+# Returns: a list of `GICCapability` objects.
 #
 # Since: 2.6
 #
diff --git a/qapi/misc-i386.json b/qapi/misc-i386.json
index c0c57f9ab25..24ba3bc8690 100644
--- a/qapi/misc-i386.json
+++ b/qapi/misc-i386.json
@@ -26,7 +26,7 @@
 ##
 # @SevState:
 #
-# An enumeration of SEV state information used during @query-sev.
+# An enumeration of SEV state information used during `query-sev`.
 #
 # @uninit: The guest is uninitialized.
 #
diff --git a/qapi/misc.json b/qapi/misc.json
index 70dbcb0aecf..5ac41dc55f2 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -21,7 +21,7 @@
 #     "@dbus-display" or the name of a character device (e.g. from
 #     -chardev id=XXXX)
 #
-# @fdname: file descriptor name previously passed via 'getfd' command
+# @fdname: file descriptor name previously passed via `getfd` command
 #
 # @skipauth: whether to skip authentication.  Only applies to "vnc"
 #     and "spice" protocols
@@ -226,7 +226,7 @@
 #    Known limitations:
 #
 #    * This command is stateless, this means that commands that depend
-#      on state information (such as getfd) might not work.
+#      on state information (such as `getfd`) might not work.
 #
 #    * Commands that prompt the user for data don't currently work.
 #
@@ -253,7 +253,7 @@
 # .. note:: If @fdname already exists, the file descriptor assigned to
 #    it will be closed and replaced by the received file descriptor.
 #
-#    The 'closefd' command can be used to explicitly close the file
+#    The `closefd` command can be used to explicitly close the file
 #    descriptor when it is no longer needed.
 #
 # .. qmp-example::
@@ -280,7 +280,7 @@
 # .. note:: If @fdname already exists, the file descriptor assigned to
 #    it will be closed and replaced by the received file descriptor.
 #
-#    The 'closefd' command can be used to explicitly close the file
+#    The `closefd` command can be used to explicitly close the file
 #    descriptor when it is no longer needed.
 #
 # .. qmp-example::
@@ -473,7 +473,7 @@
 #
 # @name: parameter name
 #
-# @type: parameter @CommandLineParameterType
+# @type: parameter `CommandLineParameterType`
 #
 # @help: human readable text string, not suitable for parsing.
 #
@@ -495,7 +495,7 @@
 #
 # @option: option name
 #
-# @parameters: an array of @CommandLineParameterInfo
+# @parameters: an array of `CommandLineParameterInfo`
 #
 # Since: 1.5
 ##
diff --git a/qapi/stats.json b/qapi/stats.json
index 7e7f1dabbc3..f00785879d6 100644
--- a/qapi/stats.json
+++ b/qapi/stats.json
@@ -87,7 +87,7 @@
 # @StatsRequest:
 #
 # Indicates a set of statistics that should be returned by
-# query-stats.
+# `query-stats`.
 #
 # @provider: provider for which to return statistics.
 #
@@ -112,7 +112,7 @@
 ##
 # @StatsFilter:
 #
-# The arguments to the query-stats command; specifies a target for
+# The arguments to the `query-stats` command; specifies a target for
 # which to request statistics and optionally the required subset of
 # information for that target.
 #
@@ -183,7 +183,7 @@
 # Return runtime-collected statistics for objects such as the VM or
 # its vCPUs.
 #
-# The arguments are a StatsFilter and specify the provider and objects
+# The arguments are a `StatsFilter` and specify the provider and objects
 # to return statistics about.
 #
 # Returns: a list of statistics, one for each provider and object
@@ -203,7 +203,7 @@
 #
 # @name: name of the statistic; each element of the schema is uniquely
 #     identified by a target, a provider (both available in
-#     @StatsSchema) and the name.
+#     `StatsSchema`) and the name.
 #
 # @type: kind of statistic.
 #
-- 
2.50.0



^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 06/18] qapi: add cross-references to job.json
  2025-07-11  5:39 ` [PATCH v2 06/18] qapi: add cross-references to job.json John Snow
@ 2025-07-11  8:33   ` Markus Armbruster
  0 siblings, 0 replies; 28+ messages in thread
From: Markus Armbruster @ 2025-07-11  8:33 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

John Snow <jsnow@redhat.com> writes:

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  qapi/job.json | 71 ++++++++++++++++++++++++++-------------------------
>  1 file changed, 36 insertions(+), 35 deletions(-)
>
> diff --git a/qapi/job.json b/qapi/job.json
> index c1ddae9c0fe..a6026f6a810 100644
> --- a/qapi/job.json
> +++ b/qapi/job.json
> @@ -10,26 +10,26 @@
>  #
>  # Type of a background job.
>  #
> -# @commit: block commit job type, see "block-commit"
> +# @commit: block commit job type, see `block-commit`
>  #
> -# @stream: block stream job type, see "block-stream"
> +# @stream: block stream job type, see `block-stream`
>  #
> -# @mirror: drive mirror job type, see "drive-mirror"
> +# @mirror: drive mirror job type, see `drive-mirror`
>  #
> -# @backup: drive backup job type, see "drive-backup"
> +# @backup: drive backup job type, see `drive-backup`
>  #
> -# @create: image creation job type, see "blockdev-create" (since 3.0)
> +# @create: image creation job type, see `blockdev-create` (since 3.0)
>  #
> -# @amend: image options amend job type, see "x-blockdev-amend"
> +# @amend: image options amend job type, see `x-blockdev-amend`
>  #     (since 5.1)
>  #
> -# @snapshot-load: snapshot load job type, see "snapshot-load"
> +# @snapshot-load: snapshot load job type, see `snapshot-load`
>  #     (since 6.0)
>  #
> -# @snapshot-save: snapshot save job type, see "snapshot-save"
> +# @snapshot-save: snapshot save job type, see `snapshot-save`
>  #     (since 6.0)
>  #
> -# @snapshot-delete: snapshot delete job type, see "snapshot-delete"
> +# @snapshot-delete: snapshot delete job type, see `snapshot-delete`
>  #     (since 6.0)
>  #
>  # Since: 1.7
> @@ -59,13 +59,14 @@
>  # @standby: The job is ready, but paused.  This is nearly identical to
>  #     @paused.  The job may return to @ready or otherwise be canceled.
>  #
> -# @waiting: The job is waiting for other jobs in the transaction to
> -#     converge to the waiting state.  This status will likely not be
> -#     visible for the last job in a transaction.
> +# @waiting: The job is waiting for other jobs in the
> +#     transaction to converge to the waiting state.  This
> +#     status will likely not be visible for the last job in a
> +#     transaction.

Line breaks only, looks like an accident.  Let's drop the hunk.

>  #
>  # @pending: The job has finished its work, but has finalization steps
>  #     that it needs to make prior to completing.  These changes will
> -#     require manual intervention via @job-finalize if auto-finalize
> +#     require manual intervention via `job-finalize` if auto-finalize
>  #     was set to false.  These pending changes may still fail.
>  #
>  # @aborting: The job is in the process of being aborted, and will
> @@ -75,7 +76,7 @@
>  #
>  # @concluded: The job has finished all work.  If auto-dismiss was set
>  #     to false, the job will remain in this state until it is
> -#     dismissed via @job-dismiss.
> +#     dismissed via `job-dismiss`.
>  #
>  # @null: The job is in the process of being dismantled.  This state
>  #     should not ever be visible externally.
> @@ -91,21 +92,21 @@
>  #
>  # Represents command verbs that can be applied to a job.
>  #
> -# @cancel: see @job-cancel
> +# @cancel: see `job-cancel`
>  #
> -# @pause: see @job-pause
> +# @pause: see `job-pause`
>  #
> -# @resume: see @job-resume
> +# @resume: see `job-resume`
>  #
> -# @set-speed: see @block-job-set-speed
> +# @set-speed: see `block-job-set-speed`
>  #
> -# @complete: see @job-complete
> +# @complete: see `job-complete`
>  #
> -# @dismiss: see @job-dismiss
> +# @dismiss: see `job-dismiss`
>  #
> -# @finalize: see @job-finalize
> +# @finalize: see `job-finalize`
>  #
> -# @change: see @block-job-change (since 8.2)
> +# @change: see `block-job-change` (since 8.2)
>  #
>  # Since: 2.12
>  ##
> @@ -138,7 +139,7 @@
>  #
>  # The job will pause as soon as possible, which means transitioning
>  # into the PAUSED state if it was RUNNING, or into STANDBY if it was
> -# READY.  The corresponding JOB_STATUS_CHANGE event will be emitted.
> +# READY.  The corresponding `JOB_STATUS_CHANGE` event will be emitted.
>  #
>  # Cancelling a paused job automatically resumes it.
>  #
> @@ -173,7 +174,7 @@
>  # cancellation.
>  #
>  # The job will cancel as soon as possible and then emit a
> -# JOB_STATUS_CHANGE event.  Usually, the status will change to
> +# `JOB_STATUS_CHANGE` event.  Usually, the status will change to
>  # ABORTING, but it is possible that a job successfully completes (e.g.
>  # because it was almost done and there was no opportunity to cancel
>  # earlier than completing the job) and transitions to PENDING instead.
> @@ -192,14 +193,14 @@
>  #
>  # This is supported only for drive mirroring, where it also switches
>  # the device to write to the target path only.  Note that drive
> -# mirroring includes drive-mirror, blockdev-mirror and block-commit
> +# mirroring includes `drive-mirror`, `blockdev-mirror` and `block-commit`
>  # job (only in case of "active commit", when the node being commited
>  # is used by the guest).  The ability to complete is signaled with a
> -# BLOCK_JOB_READY event.
> +# `BLOCK_JOB_READY` event.
>  #
>  # This command completes an active background block operation
>  # synchronously.  The ordering of this command's return with the
> -# BLOCK_JOB_COMPLETED event is not defined.  Note that if an I/O error
> +# `BLOCK_JOB_COMPLETED` event is not defined.  Note that if an I/O error
>  # occurs during the processing of this command: 1) the command itself
>  # will fail; 2) the error will be processed according to the
>  # rerror/werror arguments that were specified when starting the
> @@ -217,14 +218,14 @@
>  # Deletes a job that is in the CONCLUDED state.  This command only
>  # needs to be run explicitly for jobs that don't have automatic
>  # dismiss enabled.  In turn, automatic dismiss may be enabled only
> -# for jobs that have @auto-dismiss option, which are drive-backup,
> -# blockdev-backup, drive-mirror, blockdev-mirror, block-commit and
> -# block-stream.  @auto-dismiss is enabled by default for these
> +# for jobs that have @auto-dismiss option, which are `drive-backup`,
> +# `blockdev-backup`, `drive-mirror`, `blockdev-mirror`, `block-commit` and
> +# `block-stream`.  @auto-dismiss is enabled by default for these
>  # jobs.
>  #
>  # This command will refuse to operate on any job that has not yet
>  # reached its terminal state, CONCLUDED.  For jobs that make use of
> -# the JOB_READY event, job-cancel or job-complete will still need to
> +# the JOB_READY event, `job-cancel` or `job-complete` will still need to
>  # be used as appropriate.
>  #
>  # @id: The job identifier.
> @@ -236,10 +237,10 @@
>  ##
>  # @job-finalize:
>  #
> -# Instructs all jobs in a transaction (or a single job if it is not
> -# part of any transaction) to finalize any graph changes and do any
> -# necessary cleanup.  This command requires that all involved jobs are
> -# in the PENDING state.
> +# Instructs all jobs in a :qapi:cmd:`transaction` (or a single job if it
> +# is not part of any transaction) to finalize any graph changes and do
> +# any necessary cleanup.  This command requires that all involved jobs
> +# are in the PENDING state.
>  #
>  # For jobs in a transaction, instructing one job to finalize will
>  # force ALL jobs in the transaction to finalize, so it is only

You dropped the `transaction` references I asked you to drop except for
this one.  Looks like an accident.  Let's drop the hunk.



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 03/18] qapi: add cross-references to block layer
  2025-07-11  5:39 ` [PATCH v2 03/18] qapi: add cross-references to block layer John Snow
@ 2025-07-11  8:48   ` Markus Armbruster
  0 siblings, 0 replies; 28+ messages in thread
From: Markus Armbruster @ 2025-07-11  8:48 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

John Snow <jsnow@redhat.com> writes:

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  qapi/block-core.json   | 188 ++++++++++++++++++++---------------------
>  qapi/block-export.json |  36 ++++----
>  qapi/block.json        |  14 +--
>  qapi/transaction.json  |  12 +--
>  4 files changed, 125 insertions(+), 125 deletions(-)
>
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index f18db3149a3..ec4ea4ddd19 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json

[...]

> @@ -3089,7 +3089,7 @@
>  # necessary cleanup.  This command requires that all involved jobs are
>  # in the PENDING state.
>  #
> -# For jobs in a transaction, instructing one job to finalize will
> +# For jobs in a :qapi:cmd:`transaction`, instructing one job to finalize will
>  # force ALL jobs in the transaction to finalize, so it is only
>  # necessary to instruct a single member job to finalize.
>  #

You dropped the `transaction` references I asked you to drop except for
this one and ...

[...]

> @@ -5855,8 +5855,8 @@
>  # @BLOCK_JOB_PENDING:
>  #
>  # Emitted when a block job is awaiting explicit authorization to
> -# finalize graph changes via @job-finalize.  If this job is part
> -# of a transaction, it will not emit this event until the transaction
> +# finalize graph changes via `job-finalize`.  If this job is part
> +# of a :qapi:cmd:`transaction`, it will not emit this event until the transaction
>  # has converged first.
>  #
>  # @type: job type

... this one.  Looks like an accident.  Let's drop these hunks.

[...]



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 08/18] qapi: add cross-references to migration.json
  2025-07-11  5:39 ` [PATCH v2 08/18] qapi: add cross-references to migration.json John Snow
@ 2025-07-11  8:55   ` Markus Armbruster
  2025-07-11 14:29     ` John Snow
  0 siblings, 1 reply; 28+ messages in thread
From: Markus Armbruster @ 2025-07-11  8:55 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

John Snow <jsnow@redhat.com> writes:

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  qapi/migration.json | 68 ++++++++++++++++++++++-----------------------
>  1 file changed, 34 insertions(+), 34 deletions(-)
>
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 59a213aeb6c..eda27c18102 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json

[...]

> @@ -1735,8 +1735,8 @@
>  #     list connected to a destination interface endpoint.
>  #
>  # @exit-on-error: Exit on incoming migration failure.  Default true.
> -#     When set to false, the failure triggers a MIGRATION event, and
> -#     error details could be retrieved with query-migrate.
> +#     When set to false, the failure triggers a :qapi:event:`MIGRATION`
> +#     event, and error details could be retrieved with `query-migrate`.
>  #     (since 9.1)

Suggest to have the the commit message note why we need :qapi:event:.
Perhaps like this:

  Note that a reference to MIGRATION needs to be disambiguated with a
  :qapi:event: prefix.  Without this, Sphinx complains

      more than one target found for 'any' cross-reference 'MIGRATION': could be :std:ref:`Migration framework` or :qapi:event:`QMP:migration.MIGRATION`

Aside: this fuzzy matching of references feels too clever by half.

>  #
>  # Since: 2.3

[...]



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 00/18] QAPI: add cross-references to qapi docs
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (17 preceding siblings ...)
  2025-07-11  5:40 ` [PATCH v2 18/18] qapi: add cross-references to misc modules John Snow
@ 2025-07-11  9:04 ` Markus Armbruster
  2025-07-11  9:26   ` Markus Armbruster
  2025-07-11 15:13   ` John Snow
  2025-07-14 13:41 ` Markus Armbruster
  19 siblings, 2 replies; 28+ messages in thread
From: Markus Armbruster @ 2025-07-11  9:04 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

John Snow <jsnow@redhat.com> writes:

> Based-on: 20250711051045.51110-1-jsnow@redhat.com
>     [PATCH v6 0/4] qapi: add auto-generated return docs
>
> v2:
>  - Applied a few new transformations I had missed.
>  - Manually excluded those Markus pointed out as being unhelpful.

You missed a few.  Can drop them in my tree.  I also suggested a commit
message amendment.  Can do that in my tree, too.  With that, series
Reviewed-by: Markus Armbruster <armbru@redhat.com>

> Hi, this patch series is a *mostly* mechanical application of QAPI
> cross-references to the QAPI/QMP documentation. I exported all
> cross-referenceable symbols from the QMP QAPI schema and ran them
> through a script that converted any matching words to a cross-reference.
>
> I then used `git add -p` and only added changes that looked reasonable,
> omitting many cases of converting common words like "stop",
> "transaction", "eject", "String" etc when it wasn't immediately clear
> that it was appropriate. I probably missed a few ... in either
> direction.
>
> I'd like to ask maintainers for each subsystem to review the changes and
> confirm that they make sense. To make it easy for you, here's a link to
> each module that was changed, in order:

[...]

> A few benefits of doing this:
>
> (1) It makes the docs easier to navigate for users, being able to just
>     click to the referred data type / enum / event / command / etc.

A *huge* usability win!

> (2) It helps prevent bitrot: if the name of a command / event / data
>     type / etc changes, the cross-reference will cause the build to
>     fail, giving a needed hint that documentation elsewhere needs to be
>     updated.

Can also catch typos.

> (3) Prompting the maintainers to review the generated HTML documentation
>     O:-)

WAT?!?  We're supposed to actually look at the doc we expect our users
to read?

[...]



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 04/18] qapi: add cross-references to crypto.json
  2025-07-11  5:39 ` [PATCH v2 04/18] qapi: add cross-references to crypto.json John Snow
@ 2025-07-11  9:15   ` Markus Armbruster
  0 siblings, 0 replies; 28+ messages in thread
From: Markus Armbruster @ 2025-07-11  9:15 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

John Snow <jsnow@redhat.com> writes:

> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  qapi/crypto.json | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/qapi/crypto.json b/qapi/crypto.json
> index 9ec6301e188..57620d95da6 100644
> --- a/qapi/crypto.json
> +++ b/qapi/crypto.json
> @@ -589,9 +589,9 @@
>  #
>  # Specific parameters for RSA algorithm.
>  #
> -# @hash-alg: QCryptoHashAlgo
> +# @hash-alg: `QCryptoHashAlgo`
>  #
> -# @padding-alg: QCryptoRSAPaddingAlgo
> +# @padding-alg: `QCryptoRSAPaddingAlgo`
>  #
>  # Since: 7.1
>  ##

Not this patch's problem: these come out like

    Members:

            hash-alg (QCryptoHashAlgo) – QCryptoHashAlgo

            padding-alg (QCryptoRSAPaddingAlgo) – QCryptoRSAPaddingAlgo

which is crap.



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 00/18] QAPI: add cross-references to qapi docs
  2025-07-11  9:04 ` [PATCH v2 00/18] QAPI: add cross-references to qapi docs Markus Armbruster
@ 2025-07-11  9:26   ` Markus Armbruster
  2025-07-11 15:13   ` John Snow
  1 sibling, 0 replies; 28+ messages in thread
From: Markus Armbruster @ 2025-07-11  9:26 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

Markus Armbruster <armbru@redhat.com> writes:

> John Snow <jsnow@redhat.com> writes:
>
>> Based-on: 20250711051045.51110-1-jsnow@redhat.com
>>     [PATCH v6 0/4] qapi: add auto-generated return docs
>>
>> v2:
>>  - Applied a few new transformations I had missed.
>>  - Manually excluded those Markus pointed out as being unhelpful.
>
> You missed a few.  Can drop them in my tree.  I also suggested a commit
> message amendment.  Can do that in my tree, too.  With that, series
> Reviewed-by: Markus Armbruster <armbru@redhat.com>

One more thing: docs/devel/qapi-code-gen.rst needs an update.
Specifically:

    Use ``@foo`` to reference a name in the schema.  This is an rST
    extension.  It is rendered the same way as ````foo````, but carries
    additional meaning.

Let's do that on top.



^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 08/18] qapi: add cross-references to migration.json
  2025-07-11  8:55   ` Markus Armbruster
@ 2025-07-11 14:29     ` John Snow
  0 siblings, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11 14:29 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, Qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

[-- Attachment #1: Type: text/plain, Size: 2042 bytes --]

On Fri, Jul 11, 2025, 4:55 AM Markus Armbruster <armbru@redhat.com> wrote:

> John Snow <jsnow@redhat.com> writes:
>
> > Signed-off-by: John Snow <jsnow@redhat.com>
> > ---
> >  qapi/migration.json | 68 ++++++++++++++++++++++-----------------------
> >  1 file changed, 34 insertions(+), 34 deletions(-)
> >
> > diff --git a/qapi/migration.json b/qapi/migration.json
> > index 59a213aeb6c..eda27c18102 100644
> > --- a/qapi/migration.json
> > +++ b/qapi/migration.json
>
> [...]
>
> > @@ -1735,8 +1735,8 @@
> >  #     list connected to a destination interface endpoint.
> >  #
> >  # @exit-on-error: Exit on incoming migration failure.  Default true.
> > -#     When set to false, the failure triggers a MIGRATION event, and
> > -#     error details could be retrieved with query-migrate.
> > +#     When set to false, the failure triggers a :qapi:event:`MIGRATION`
> > +#     event, and error details could be retrieved with `query-migrate`.
> >  #     (since 9.1)
>
> Suggest to have the the commit message note why we need :qapi:event:.
> Perhaps like this:
>
>   Note that a reference to MIGRATION needs to be disambiguated with a
>   :qapi:event: prefix.  Without this, Sphinx complains
>
>       more than one target found for 'any' cross-reference 'MIGRATION':
> could be :std:ref:`Migration framework` or
> :qapi:event:`QMP:migration.MIGRATION`
>

OK


> Aside: this fuzzy matching of references feels too clever by half.
>

That's the perils of the `any` syntax. In exchange for something very
terse, you have to contend with multiple domains of possible match targets.

On the whole, I think it's nice that you can reference `something` without
needing to know the precise geospatial coordinates of where that thing is.
Downside is that the matches may occasionally be fuzzier than you'd prefer.

The QAPI domain only ever matches in a case sensitive way, but other
domains in Sphinx aren't as strict, and I don't control those!


> >  #
> >  # Since: 2.3
>
> [...]
>
>

[-- Attachment #2: Type: text/html, Size: 3296 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 00/18] QAPI: add cross-references to qapi docs
  2025-07-11  9:04 ` [PATCH v2 00/18] QAPI: add cross-references to qapi docs Markus Armbruster
  2025-07-11  9:26   ` Markus Armbruster
@ 2025-07-11 15:13   ` John Snow
  1 sibling, 0 replies; 28+ messages in thread
From: John Snow @ 2025-07-11 15:13 UTC (permalink / raw)
  To: Markus Armbruster
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, Qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

[-- Attachment #1: Type: text/plain, Size: 2322 bytes --]

On Fri, Jul 11, 2025, 5:04 AM Markus Armbruster <armbru@redhat.com> wrote:

> John Snow <jsnow@redhat.com> writes:
>
> > Based-on: 20250711051045.51110-1-jsnow@redhat.com
> >     [PATCH v6 0/4] qapi: add auto-generated return docs
> >
> > v2:
> >  - Applied a few new transformations I had missed.
> >  - Manually excluded those Markus pointed out as being unhelpful.
>
> You missed a few.  Can drop them in my tree.  I also suggested a commit
> message amendment.  Can do that in my tree, too.  With that, series
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>

Please do feel free. I read your reviews and I'm happy with all the
changes, including the commit message changes to highlist the
cross-reference lookup ambiguity problems where they arise.

(Sorry I missed some...)


> > Hi, this patch series is a *mostly* mechanical application of QAPI
> > cross-references to the QAPI/QMP documentation. I exported all
> > cross-referenceable symbols from the QMP QAPI schema and ran them
> > through a script that converted any matching words to a cross-reference.
> >
> > I then used `git add -p` and only added changes that looked reasonable,
> > omitting many cases of converting common words like "stop",
> > "transaction", "eject", "String" etc when it wasn't immediately clear
> > that it was appropriate. I probably missed a few ... in either
> > direction.
> >
> > I'd like to ask maintainers for each subsystem to review the changes and
> > confirm that they make sense. To make it easy for you, here's a link to
> > each module that was changed, in order:
>
> [...]
>
> > A few benefits of doing this:
> >
> > (1) It makes the docs easier to navigate for users, being able to just
> >     click to the referred data type / enum / event / command / etc.
>
> A *huge* usability win!
>
> > (2) It helps prevent bitrot: if the name of a command / event / data
> >     type / etc changes, the cross-reference will cause the build to
> >     fail, giving a needed hint that documentation elsewhere needs to be
> >     updated.
>
> Can also catch typos.
>
> > (3) Prompting the maintainers to review the generated HTML documentation
> >     O:-)
>
> WAT?!?  We're supposed to actually look at the doc we expect our users
> to read?
>
> [...]
>
>

[-- Attachment #2: Type: text/html, Size: 3453 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v2 00/18] QAPI: add cross-references to qapi docs
  2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
                   ` (18 preceding siblings ...)
  2025-07-11  9:04 ` [PATCH v2 00/18] QAPI: add cross-references to qapi docs Markus Armbruster
@ 2025-07-14 13:41 ` Markus Armbruster
  19 siblings, 0 replies; 28+ messages in thread
From: Markus Armbruster @ 2025-07-14 13:41 UTC (permalink / raw)
  To: John Snow
  Cc: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Eric Blake,
	Marc-André Lureau, Paolo Bonzini, Ani Sinha,
	Philippe Mathieu-Daudé, qemu-block, Kevin Wolf, Hanna Reitz,
	Daniel P. Berrangé, Lukas Straub,
	Vladimir Sementsov-Ogievskiy, Zhao Liu, Eduardo Habkost, Peter Xu,
	Yanan Wang, Alex Bennée, Jason Wang, Igor Mammedov,
	Fabiano Rosas

Queued for 10.1.  Thanks!



^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2025-07-14 15:09 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-11  5:39 [PATCH v2 00/18] QAPI: add cross-references to qapi docs John Snow
2025-07-11  5:39 ` [PATCH v2 01/18] qapi: add cross-references to acpi.json John Snow
2025-07-11  5:39 ` [PATCH v2 02/18] qapi: add cross-references to authz.json John Snow
2025-07-11  5:39 ` [PATCH v2 03/18] qapi: add cross-references to block layer John Snow
2025-07-11  8:48   ` Markus Armbruster
2025-07-11  5:39 ` [PATCH v2 04/18] qapi: add cross-references to crypto.json John Snow
2025-07-11  9:15   ` Markus Armbruster
2025-07-11  5:39 ` [PATCH v2 05/18] qapi: add cross-references to dump.json John Snow
2025-07-11  5:39 ` [PATCH v2 06/18] qapi: add cross-references to job.json John Snow
2025-07-11  8:33   ` Markus Armbruster
2025-07-11  5:39 ` [PATCH v2 07/18] qapi: add cross-references to Machine core John Snow
2025-07-11  5:39 ` [PATCH v2 08/18] qapi: add cross-references to migration.json John Snow
2025-07-11  8:55   ` Markus Armbruster
2025-07-11 14:29     ` John Snow
2025-07-11  5:39 ` [PATCH v2 09/18] qapi: add cross-references to net.json John Snow
2025-07-11  5:39 ` [PATCH v2 10/18] qapi: add cross-references to pci.json John Snow
2025-07-11  5:39 ` [PATCH v2 11/18] qapi: add cross-references to QOM John Snow
2025-07-11  5:39 ` [PATCH v2 12/18] qapi: add cross-references to replay.json John Snow
2025-07-11  5:40 ` [PATCH v2 13/18] qapi: add cross-references to run-state.json John Snow
2025-07-11  5:40 ` [PATCH v2 14/18] qapi: add cross-references to sockets.json John Snow
2025-07-11  5:40 ` [PATCH v2 15/18] qapi: add cross-references to ui.json John Snow
2025-07-11  5:40 ` [PATCH v2 16/18] qapi: add cross-references to virtio.json John Snow
2025-07-11  5:40 ` [PATCH v2 17/18] qapi: add cross-references to yank.json John Snow
2025-07-11  5:40 ` [PATCH v2 18/18] qapi: add cross-references to misc modules John Snow
2025-07-11  9:04 ` [PATCH v2 00/18] QAPI: add cross-references to qapi docs Markus Armbruster
2025-07-11  9:26   ` Markus Armbruster
2025-07-11 15:13   ` John Snow
2025-07-14 13:41 ` Markus Armbruster

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).