]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: capabilities: Add QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM
authorBoris Fiuczynski <fiuczy@linux.ibm.com>
Wed, 6 Nov 2024 07:48:14 +0000 (08:48 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 11 Nov 2024 09:15:06 +0000 (10:15 +0100)
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
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies
tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies
tests/qemucapabilitiesdata/caps_8.1.0_s390x.replies
tests/qemucapabilitiesdata/caps_8.2.0_s390x.replies
tests/qemucapabilitiesdata/caps_9.1.0_s390x.replies

index 38fdade255fefa646fce673dd77724321d7d0383..6b67da30ec9c0e413b76eccb3709bddc2eae2350 100644 (file)
@@ -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[] = {
index 261abcc1b4738d2ad96c2930c3b4e3165be94ced..e49fda672181babfcb7faad3d4ba02c96d32a809 100644 (file)
@@ -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;
index 3dfd0b502d55631db5f4b679ea66aa116c24b0e4..4ee6725d90df4ced63b74fe6878171968c60ff1c 100644 (file)
   "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"
 }
 
 {
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "type": "string"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
       "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"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "validate-uuid"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
index 6fcc0a484b94da9fcb2bbdf63c71f3755a60814b..cc42499fa1d328602150cc281a8c3e3851fac618 100644 (file)
   "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"
 }
 
 {
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
       "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"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "background-snapshot"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
index 77014169cb2d3268c5f4b4d3aa39fd119f3c1890..032c102d4b57b0f1e635e257f456ecb64ad3896a 100644 (file)
   "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"
 }
 
 {
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
       "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"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "dirty-limit"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
index fa9051c30594c67a5e2dcf12155c2dd045a338f3..222a9fdfdcc6ed5749c99c0bcede49722cdaab44 100644 (file)
   "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"
 }
 
 {
       "type": "bool"
     }
   ],
-  "id": "libvirt-29"
+  "id": "libvirt-30"
 }
 
 {
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
       "type": "int"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
       "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"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-36"
+  "id": "libvirt-37"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "capability": "dirty-limit"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
       "name": "host"
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
index 4e54acb5b12ca5a83f48a5cc90c089712049b8cc..2d4ab8ed756e0fc1cc381814e9651f0896d4b8c7 100644 (file)
   "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"
 }
 
 {
       "type": "bool"
     }
   ],
-  "id": "libvirt-30"
+  "id": "libvirt-31"
 }
 
 {
   "arguments": {
     "typename": "memory-backend-memfd"
   },
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
       "type": "int"
     }
   ],
-  "id": "libvirt-31"
+  "id": "libvirt-32"
 }
 
 {
   "execute": "query-machines",
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
       "default-ram-id": "s390.ram"
     }
   ],
-  "id": "libvirt-32"
+  "id": "libvirt-33"
 }
 
 {
   "arguments": {
     "typename": "none-machine"
   },
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
       "type": "child<container>"
     }
   ],
-  "id": "libvirt-33"
+  "id": "libvirt-34"
 }
 
 {
   "execute": "query-cpu-definitions",
-  "id": "libvirt-34"
+  "id": "libvirt-35"
 }
 
 {
       "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"
 }
 
 {
       "option": "drive"
     }
   ],
-  "id": "libvirt-37"
+  "id": "libvirt-38"
 }
 
 {
   "execute": "query-migrate-capabilities",
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       "capability": "mapped-ram"
     }
   ],
-  "id": "libvirt-38"
+  "id": "libvirt-39"
 }
 
 {
       "name": "host"
     }
   },
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-39"
+  "id": "libvirt-40"
 }
 
 {