[PATCH v2 1/4] qemu: capabilities: Add QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM

Boris Fiuczynski posted 4 patches 2 weeks ago
[PATCH v2 1/4] qemu: capabilities: Add QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM
Posted by Boris Fiuczynski 2 weeks ago
Add capability QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM to detect multi boot
device support in QEMU by checking the virtio-blk-ccw device property
existence of loadparm.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_capabilities.c                  |   8 +
 src/qemu/qemu_capabilities.h                  |   1 +
 .../caps_5.2.0_s390x.replies                  | 321 ++++++++++++++++--
 .../caps_6.0.0_s390x.replies                  | 321 ++++++++++++++++--
 .../caps_8.1.0_s390x.replies                  | 321 ++++++++++++++++--
 .../caps_8.2.0_s390x.replies                  | 321 ++++++++++++++++--
 .../caps_9.1.0_s390x.replies                  | 321 ++++++++++++++++--
 7 files changed, 1514 insertions(+), 100 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 38fdade255..6b67da30ec 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -719,6 +719,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
               /* 465 */
               "snapshot-internal-qmp", /* QEMU_CAPS_SNAPSHOT_INTERNAL_QMP */
               "chardev-reconnect-miliseconds", /* QEMU_CAPS_CHARDEV_RECONNECT_MILISECONDS */
+              "virtio-ccw.loadparm", /* QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM */
     );
 
 
@@ -1547,6 +1548,10 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioIOMMU[] =
     { "boot-bypass", QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS, NULL },
 };
 
+static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVirtioBlkCCW[] = {
+    { "loadparm", QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM, NULL },
+};
+
 /* see documentation for virQEMUQAPISchemaPathGet for the query format */
 static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "blockdev-add/arg-type/+file/drop-cache", QEMU_CAPS_MIGRATION_FILE_DROP_CACHE },
@@ -1704,6 +1709,9 @@ static virQEMUCapsDeviceTypeProps virQEMUCapsDeviceProps[] = {
     { "virtio-iommu-pci", virQEMUCapsDevicePropsVirtioIOMMU,
       G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioIOMMU),
       QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI },
+    { "virtio-blk-ccw", virQEMUCapsDevicePropsVirtioBlkCCW,
+      G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlkCCW),
+      QEMU_CAPS_VIRTIO_CCW },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFile[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 261abcc1b4..e49fda6721 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -698,6 +698,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     /* 465 */
     QEMU_CAPS_SNAPSHOT_INTERNAL_QMP, /* internal snapshot support via QMP commands 'snapshot-save'/'snapshot-delete' */
     QEMU_CAPS_CHARDEV_RECONNECT_MILISECONDS, /* 'reconnect-ms' option for chardevs supported */
+    QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM, /* loadparm available on CCW device for multi device boot */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies b/tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies
index 3dfd0b502d..4ee6725d90 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies
@@ -18830,12 +18830,293 @@
   "id": "libvirt-28"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "virtio-blk-ccw"
+  },
+  "id": "libvirt-29"
+}
+
+{
+  "return": [
+    {
+      "name": "dev_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "devno",
+      "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "subch_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "default-value": 2,
+      "name": "max_revision",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "ioeventfd",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "notify_on_empty",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "share-rw",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "lcyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 256,
+      "name": "queue-size",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "lsecs",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "heads",
+      "type": "uint32"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-invalid",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "iothread",
+      "type": "link<iothread>"
+    },
+    {
+      "default-value": 0,
+      "name": "lheads",
+      "type": "uint32"
+    },
+    {
+      "default-value": 65535,
+      "name": "num-queues",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "cyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "secs",
+      "type": "uint32"
+    },
+    {
+      "name": "virtio-backend",
+      "type": "child<virtio-blk-device>"
+    },
+    {
+      "default-value": 0,
+      "name": "min_io_size",
+      "type": "size"
+    },
+    {
+      "name": "bootindex",
+      "type": "int32"
+    },
+    {
+      "default-value": true,
+      "name": "config-wce",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "seg-max-adjust",
+      "type": "bool"
+    },
+    {
+      "name": "drive",
+      "description": "Node name or ID of a block device to use as a backend",
+      "type": "str"
+    },
+    {
+      "default-value": "auto",
+      "name": "werror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": true,
+      "name": "report-discard-granularity",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "rerror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": "auto",
+      "name": "write-cache",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "use-disabled-flag",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "x-disable-legacy-check",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "use-started",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "iommu_platform",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "physical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": false,
+      "name": "scsi",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "any_layout",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "opt_io_size",
+      "type": "size"
+    },
+    {
+      "default-value": 0,
+      "name": "logical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-discard-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "discard",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4294967295,
+      "name": "discard_granularity",
+      "type": "size"
+    },
+    {
+      "default-value": true,
+      "name": "request-merging",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "queue_reset",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "write-zeroes",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-write-zeroes-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": false,
+      "name": "packed",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-failed",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "indirect_desc",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "event_idx",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "x-enable-wce-if-config-wce",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "backend_defaults",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "serial",
+      "type": "str"
+    }
+  ],
+  "id": "libvirt-29"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -18905,7 +19186,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -18913,7 +19194,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -18982,12 +19263,12 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -19156,7 +19437,7 @@
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -19164,7 +19445,7 @@
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -19249,12 +19530,12 @@
       "type": "string"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -19860,32 +20141,32 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "return": [],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -21032,12 +21313,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -21115,7 +21396,7 @@
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -21126,7 +21407,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -21182,7 +21463,7 @@
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies b/tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies
index 6fcc0a484b..cc42499fa1 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies
@@ -20471,12 +20471,293 @@
   "id": "libvirt-28"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "virtio-blk-ccw"
+  },
+  "id": "libvirt-29"
+}
+
+{
+  "return": [
+    {
+      "name": "dev_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "devno",
+      "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "subch_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "default-value": 2,
+      "name": "max_revision",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "ioeventfd",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "notify_on_empty",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "share-rw",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "lcyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 256,
+      "name": "queue-size",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "lsecs",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "heads",
+      "type": "uint32"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-invalid",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "iothread",
+      "type": "link<iothread>"
+    },
+    {
+      "default-value": 0,
+      "name": "lheads",
+      "type": "uint32"
+    },
+    {
+      "default-value": 65535,
+      "name": "num-queues",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "cyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "secs",
+      "type": "uint32"
+    },
+    {
+      "name": "virtio-backend",
+      "type": "child<virtio-blk-device>"
+    },
+    {
+      "default-value": 0,
+      "name": "min_io_size",
+      "type": "size"
+    },
+    {
+      "name": "bootindex",
+      "type": "int32"
+    },
+    {
+      "default-value": true,
+      "name": "config-wce",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "seg-max-adjust",
+      "type": "bool"
+    },
+    {
+      "name": "drive",
+      "description": "Node name or ID of a block device to use as a backend",
+      "type": "str"
+    },
+    {
+      "default-value": "auto",
+      "name": "werror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": true,
+      "name": "report-discard-granularity",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "rerror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": "auto",
+      "name": "write-cache",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "use-disabled-flag",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "x-disable-legacy-check",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "use-started",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "iommu_platform",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "physical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": false,
+      "name": "scsi",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "any_layout",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "opt_io_size",
+      "type": "size"
+    },
+    {
+      "default-value": 0,
+      "name": "logical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-discard-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "discard",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4294967295,
+      "name": "discard_granularity",
+      "type": "size"
+    },
+    {
+      "default-value": true,
+      "name": "request-merging",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "queue_reset",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "write-zeroes",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-write-zeroes-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": false,
+      "name": "packed",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-failed",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "indirect_desc",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "event_idx",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "x-enable-wce-if-config-wce",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "backend_defaults",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "serial",
+      "type": "str"
+    }
+  ],
+  "id": "libvirt-29"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -20546,7 +20827,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -20554,7 +20835,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -20623,12 +20904,12 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -20806,7 +21087,7 @@
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -20814,7 +21095,7 @@
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -20912,12 +21193,12 @@
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -21523,32 +21804,32 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "return": [],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -22715,12 +22996,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -22802,7 +23083,7 @@
       "capability": "background-snapshot"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -22813,7 +23094,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -22870,7 +23151,7 @@
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_s390x.replies b/tests/qemucapabilitiesdata/caps_8.1.0_s390x.replies
index 77014169cb..032c102d4b 100644
--- a/tests/qemucapabilitiesdata/caps_8.1.0_s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_8.1.0_s390x.replies
@@ -27524,12 +27524,293 @@
   "id": "libvirt-28"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "virtio-blk-ccw"
+  },
+  "id": "libvirt-29"
+}
+
+{
+  "return": [
+    {
+      "name": "dev_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "devno",
+      "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "subch_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "default-value": 2,
+      "name": "max_revision",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "ioeventfd",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "notify_on_empty",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "share-rw",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "lcyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 256,
+      "name": "queue-size",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "lsecs",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "heads",
+      "type": "uint32"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-invalid",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "iothread",
+      "type": "link<iothread>"
+    },
+    {
+      "default-value": 0,
+      "name": "lheads",
+      "type": "uint32"
+    },
+    {
+      "default-value": 65535,
+      "name": "num-queues",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "cyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "secs",
+      "type": "uint32"
+    },
+    {
+      "name": "virtio-backend",
+      "type": "child<virtio-blk-device>"
+    },
+    {
+      "default-value": 0,
+      "name": "min_io_size",
+      "type": "size"
+    },
+    {
+      "name": "bootindex",
+      "type": "int32"
+    },
+    {
+      "default-value": true,
+      "name": "config-wce",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "seg-max-adjust",
+      "type": "bool"
+    },
+    {
+      "name": "drive",
+      "description": "Node name or ID of a block device to use as a backend",
+      "type": "str"
+    },
+    {
+      "default-value": "auto",
+      "name": "werror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": true,
+      "name": "report-discard-granularity",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "rerror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": "auto",
+      "name": "write-cache",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "use-disabled-flag",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "x-disable-legacy-check",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "use-started",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "iommu_platform",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "physical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": false,
+      "name": "scsi",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "any_layout",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "opt_io_size",
+      "type": "size"
+    },
+    {
+      "default-value": 0,
+      "name": "logical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-discard-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "discard",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4294967295,
+      "name": "discard_granularity",
+      "type": "size"
+    },
+    {
+      "default-value": true,
+      "name": "request-merging",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "queue_reset",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "write-zeroes",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-write-zeroes-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": false,
+      "name": "packed",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-failed",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "indirect_desc",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "event_idx",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "x-enable-wce-if-config-wce",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "backend_defaults",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "serial",
+      "type": "str"
+    }
+  ],
+  "id": "libvirt-29"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -27614,7 +27895,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -27622,7 +27903,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -27701,12 +27982,12 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -27981,7 +28262,7 @@
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -27989,7 +28270,7 @@
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -28102,12 +28383,12 @@
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -28871,32 +29152,32 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "return": [],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -30119,12 +30400,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -30222,7 +30503,7 @@
       "capability": "dirty-limit"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -30233,7 +30514,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -30282,7 +30563,7 @@
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_s390x.replies b/tests/qemucapabilitiesdata/caps_8.2.0_s390x.replies
index fa9051c305..222a9fdfdc 100644
--- a/tests/qemucapabilitiesdata/caps_8.2.0_s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_8.2.0_s390x.replies
@@ -28217,12 +28217,293 @@
   "id": "libvirt-28"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "virtio-blk-ccw"
+  },
+  "id": "libvirt-29"
+}
+
+{
+  "return": [
+    {
+      "name": "dev_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "devno",
+      "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "subch_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "default-value": 2,
+      "name": "max_revision",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "ioeventfd",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "notify_on_empty",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "share-rw",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "lcyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 256,
+      "name": "queue-size",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "lsecs",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "heads",
+      "type": "uint32"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-invalid",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "iothread",
+      "type": "link<iothread>"
+    },
+    {
+      "default-value": 0,
+      "name": "lheads",
+      "type": "uint32"
+    },
+    {
+      "default-value": 65535,
+      "name": "num-queues",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "cyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "secs",
+      "type": "uint32"
+    },
+    {
+      "name": "virtio-backend",
+      "type": "child<virtio-blk-device>"
+    },
+    {
+      "default-value": 0,
+      "name": "min_io_size",
+      "type": "size"
+    },
+    {
+      "name": "bootindex",
+      "type": "int32"
+    },
+    {
+      "default-value": true,
+      "name": "config-wce",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "seg-max-adjust",
+      "type": "bool"
+    },
+    {
+      "name": "drive",
+      "description": "Node name or ID of a block device to use as a backend",
+      "type": "str"
+    },
+    {
+      "default-value": "auto",
+      "name": "werror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": true,
+      "name": "report-discard-granularity",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "rerror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": "auto",
+      "name": "write-cache",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "use-disabled-flag",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "x-disable-legacy-check",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "use-started",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "iommu_platform",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "physical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": false,
+      "name": "scsi",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "any_layout",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "opt_io_size",
+      "type": "size"
+    },
+    {
+      "default-value": 0,
+      "name": "logical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-discard-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "discard",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4294967295,
+      "name": "discard_granularity",
+      "type": "size"
+    },
+    {
+      "default-value": true,
+      "name": "request-merging",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "queue_reset",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "write-zeroes",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-write-zeroes-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": false,
+      "name": "packed",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-failed",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "indirect_desc",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "event_idx",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "x-enable-wce-if-config-wce",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "backend_defaults",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "serial",
+      "type": "str"
+    }
+  ],
+  "id": "libvirt-29"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -28312,7 +28593,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
@@ -28320,7 +28601,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -28399,12 +28680,12 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -28689,7 +28970,7 @@
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -28697,7 +28978,7 @@
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -28810,12 +29091,12 @@
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -29579,32 +29860,32 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "return": [],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
@@ -30835,12 +31116,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -30938,7 +31219,7 @@
       "capability": "dirty-limit"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -30949,7 +31230,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -30998,7 +31279,7 @@
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.replies b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.replies
index 4e54acb5b1..2d4ab8ed75 100644
--- a/tests/qemucapabilitiesdata/caps_9.1.0_s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_s390x.replies
@@ -29266,12 +29266,293 @@
   "id": "libvirt-29"
 }
 
+{
+  "execute": "device-list-properties",
+  "arguments": {
+    "typename": "virtio-blk-ccw"
+  },
+  "id": "libvirt-30"
+}
+
+{
+  "return": [
+    {
+      "name": "dev_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "devno",
+      "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "name": "subch_id",
+      "description": "Read-only identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+      "type": "str"
+    },
+    {
+      "default-value": 2,
+      "name": "max_revision",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "ioeventfd",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "notify_on_empty",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "share-rw",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "lcyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 256,
+      "name": "queue-size",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "lsecs",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "heads",
+      "type": "uint32"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-invalid",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "iothread",
+      "type": "link<iothread>"
+    },
+    {
+      "default-value": 0,
+      "name": "lheads",
+      "type": "uint32"
+    },
+    {
+      "default-value": 65535,
+      "name": "num-queues",
+      "type": "uint16"
+    },
+    {
+      "default-value": 0,
+      "name": "cyls",
+      "type": "uint32"
+    },
+    {
+      "default-value": 0,
+      "name": "secs",
+      "type": "uint32"
+    },
+    {
+      "name": "virtio-backend",
+      "type": "child<virtio-blk-device>"
+    },
+    {
+      "default-value": 0,
+      "name": "min_io_size",
+      "type": "size"
+    },
+    {
+      "name": "bootindex",
+      "type": "int32"
+    },
+    {
+      "default-value": true,
+      "name": "config-wce",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "seg-max-adjust",
+      "type": "bool"
+    },
+    {
+      "name": "drive",
+      "description": "Node name or ID of a block device to use as a backend",
+      "type": "str"
+    },
+    {
+      "default-value": "auto",
+      "name": "werror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": true,
+      "name": "report-discard-granularity",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "rerror",
+      "description": "Error handling policy, report/ignore/enospc/stop/auto",
+      "type": "BlockdevOnError"
+    },
+    {
+      "default-value": "auto",
+      "name": "write-cache",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "use-disabled-flag",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "x-disable-legacy-check",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "use-started",
+      "type": "bool"
+    },
+    {
+      "default-value": false,
+      "name": "iommu_platform",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "physical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": false,
+      "name": "scsi",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "any_layout",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 0,
+      "name": "opt_io_size",
+      "type": "size"
+    },
+    {
+      "default-value": 0,
+      "name": "logical_block_size",
+      "description": "A power of two between 512 B and 2 MiB",
+      "type": "size"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-discard-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": true,
+      "name": "discard",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4294967295,
+      "name": "discard_granularity",
+      "type": "size"
+    },
+    {
+      "default-value": true,
+      "name": "request-merging",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "queue_reset",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "write-zeroes",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": 4194303,
+      "name": "max-write-zeroes-sectors",
+      "type": "uint32"
+    },
+    {
+      "default-value": false,
+      "name": "packed",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "account-failed",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "default-value": true,
+      "name": "indirect_desc",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "event_idx",
+      "description": "on/off",
+      "type": "bool"
+    },
+    {
+      "default-value": true,
+      "name": "x-enable-wce-if-config-wce",
+      "type": "bool"
+    },
+    {
+      "default-value": "auto",
+      "name": "backend_defaults",
+      "description": "on/off/auto",
+      "type": "OnOffAuto"
+    },
+    {
+      "name": "serial",
+      "type": "str"
+    }
+  ],
+  "id": "libvirt-30"
+}
+
 {
   "execute": "qom-list-properties",
   "arguments": {
     "typename": "memory-backend-file"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -29361,7 +29642,7 @@
       "type": "bool"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
@@ -29369,7 +29650,7 @@
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
@@ -29448,12 +29729,12 @@
       "type": "int"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -29758,7 +30039,7 @@
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
@@ -29766,7 +30047,7 @@
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
@@ -29879,12 +30160,12 @@
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
@@ -30522,32 +30803,32 @@
       "deprecated": false
     }
   ],
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
   "execute": "query-tpm-models",
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "return": [],
-  "id": "libvirt-35"
+  "id": "libvirt-36"
 }
 
 {
   "execute": "query-tpm-types",
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "return": [],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-command-line-options",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
@@ -31786,12 +32067,12 @@
       "option": "drive"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -31885,7 +32166,7 @@
       "capability": "mapped-ram"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
@@ -31896,7 +32177,7 @@
       "name": "host"
     }
   },
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
@@ -31968,7 +32249,7 @@
       }
     }
   },
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
-- 
2.45.0