Devel
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 43 participants
- 40216 discussions
05 Mar '18
The QEMU monitor commmand query-cpus is deprecated starting
with QEMU 2.12.0 because it can adversely affect the performance of
a running virtual machine.
This series enables libvirt to use the new query-cpus-fast interface
if supported by the local QEMU instance and is required in order
to support QEMU once the interface has been removed.
query-cpus-fast doesn't return the halted state for a virtual CPU,
meaning that the vcpu.<n>.halted value won't be reported with
'virsh domstats' anymore. This is OK, as stats values are not
guaranteed to be reported under all circumstances and on all
architectures.
Upstream discussion consensus was that the halted state was
problematic anyway, as it had different semantics per architecture.
The only known exploitation happened for s390, for this architecture
the halted state will be computed based on an architecture-specific
cpu value returned in query-cpus-fast.
Viktor Mihajlovski (6):
qemu: add capability detection for query-cpus-fast
qemu: use query-cpus-fast in JSON monitor
tests: add qemumonitorjson tests for query-cpus-fast
qemu: add architecture-specific CPU info handling
tests: add testcase for s390 query-cpus-fast
qemu: refresh vcpu halted state only via query-cpus-fast
src/qemu/qemu_capabilities.c | 4 +-
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_domain.c | 9 +-
src/qemu/qemu_monitor.c | 14 +-
src/qemu/qemu_monitor_json.c | 149 +++++++++++++++++++--
src/qemu/qemu_monitor_json.h | 3 +-
.../qemumonitorjson-cpuinfo-ppc64-hotplug-4.data | 8 ++
.../qemumonitorjson-cpuinfo-s390-fast-cpus.json | 21 +++
.../qemumonitorjson-cpuinfo-s390-fast-hotplug.json | 21 +++
.../qemumonitorjson-cpuinfo-s390-fast.data | 19 +++
...emumonitorjson-cpuinfo-x86-basic-pluggable.data | 5 +
...qemumonitorjson-cpuinfo-x86-full-fast-cpus.json | 71 ++++++++++
...umonitorjson-cpuinfo-x86-full-fast-hotplug.json | 115 ++++++++++++++++
.../qemumonitorjson-cpuinfo-x86-full-fast.data | 109 +++++++++++++++
.../qemumonitorjson-cpuinfo-x86-node-full.data | 2 +
tests/qemumonitorjsontest.c | 121 +++++++++++++----
tests/qemumonitortestutils.c | 6 +
tests/qemumonitortestutils.h | 1 +
18 files changed, 637 insertions(+), 42 deletions(-)
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-s390-fast-cpus.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-s390-fast-hotplug.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-s390-fast.data
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-fast-cpus.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-fast-hotplug.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-fast.data
--
1.9.1
3
12
03 Mar '18
Hi,
I notice that monitor.sock still exist when I send SIGKILL to qemu process by accident, and I can't find the qemu process
through `ps -ef |grep qemu` command.
Then I execute `virsh list --all`, libvirt just show that the vm still in running state. I can't find log "Received EOF on xxx" either
when set log level to debug.
Any suggestion will be appreciated!
Thanks,
Zongyong Wu
1
0
02 Mar '18
Extracted from a huge work-in-progres series since these look
stand-alone.
Peter Krempa (6):
qemu: Add qemu functions for storage source private data handling
qemu: domain: Split out formating of Job data from private data
formatter
qemu: domain: Don't overwrite job type in private data
qemu: domain: Return early in qemuDomainObjPrivateXMLFormatJob
qemu: domain: Use virXMLFormatElement in
qemuDomainObjPrivateXMLFormatJob
qemu: domain: Extract parsing of job-related private XML
src/qemu/qemu_domain.c | 218 ++++++++++++++++++++++++++++++-------------------
1 file changed, 134 insertions(+), 84 deletions(-)
--
2.16.2
2
8
[libvirt] [PATCH] tests: Add capabilities for QEMU 2.11.0 on s390x
by Shalini Chellathurai Saroja 02 Mar '18
by Shalini Chellathurai Saroja 02 Mar '18
02 Mar '18
Let us introduce the xml and reply files for QEMU 2.11.0 on s390x.
Signed-off-by: Shalini Chellathurai Saroja <shalini(a)linux.vnet.ibm.com>
Reviewed-by: Bjoern Walk <bwalk(a)linux.vnet.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy(a)linux.vnet.ibm.com>
---
.../qemucapabilitiesdata/caps_2.11.0.s390x.replies | 18008 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 2641 +++
tests/qemucapabilitiestest.c | 1 +
3 files changed, 20650 insertions(+)
create mode 100644 tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
new file mode 100644
index 0000000000..6768937bd5
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
@@ -0,0 +1,18008 @@
+{
+ "QMP": {
+ "version": {
+ "qemu": {
+ "micro": 0,
+ "minor": 11,
+ "major": 2
+ },
+ "package": ""
+ },
+ "capabilities": [
+ ]
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 0,
+ "minor": 11,
+ "major": 2
+ },
+ "package": ""
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "arch": "s390x"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": [
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "query-qmp-schema"
+ },
+ {
+ "name": "xen-set-replication"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "xen-load-devices-state"
+ },
+ {
+ "name": "xen-colo-do-checkpoint"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256"
+ },
+ {
+ "name": "x-colo-lost-heartbeat"
+ },
+ {
+ "name": "x-blockdev-remove-medium"
+ },
+ {
+ "name": "x-blockdev-insert-medium"
+ },
+ {
+ "name": "x-blockdev-change"
+ },
+ {
+ "name": "watchdog-set-action"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "trace-event-set-state"
+ },
+ {
+ "name": "trace-event-get-state"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "quit"
+ },
+ {
+ "name": "query-xen-replication-status"
+ },
+ {
+ "name": "query-vnc-servers"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "query-vm-generation-id"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-status"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "query-rocker-ports"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows"
+ },
+ {
+ "name": "query-rocker"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-named-block-nodes"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "query-migrate-parameters"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "query-memory-size-summary"
+ },
+ {
+ "name": "query-memory-devices"
+ },
+ {
+ "name": "query-memdev"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-iothreads"
+ },
+ {
+ "name": "query-hotpluggable-cpus"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-dump-guest-memory-capability"
+ },
+ {
+ "name": "query-dump"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "query-cpu-model-expansion"
+ },
+ {
+ "name": "query-cpu-model-comparison"
+ },
+ {
+ "name": "query-cpu-model-baseline"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-chardev-backends"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-acpi-ospm-status"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "object-del"
+ },
+ {
+ "name": "object-add"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "migrate-start-postcopy"
+ },
+ {
+ "name": "migrate-set-parameters"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate-incoming"
+ },
+ {
+ "name": "migrate-continue"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "input-send-event"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "dump-skeys"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "chardev-send-break"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-change"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "change-backing-file"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot"
+ },
+ {
+ "name": "blockdev-open-tray"
+ },
+ {
+ "name": "blockdev-mirror"
+ },
+ {
+ "name": "blockdev-del"
+ },
+ {
+ "name": "blockdev-close-tray"
+ },
+ {
+ "name": "blockdev-change-medium"
+ },
+ {
+ "name": "blockdev-backup"
+ },
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block-set-write-threshold"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-dirty-bitmap-remove"
+ },
+ {
+ "name": "block-dirty-bitmap-clear"
+ },
+ {
+ "name": "block-dirty-bitmap-add"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "add-fd"
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "return": {
+ "fd": 15,
+ "fdset-id": 0
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "id": "libvirt-6",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'bogus' not found"
+ }
+}
+
+{
+ "return": {
+ "enabled": true,
+ "present": true
+ },
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "WATCHDOG"
+ },
+ {
+ "name": "WAKEUP"
+ },
+ {
+ "name": "VSERPORT_CHANGE"
+ },
+ {
+ "name": "VNC_INITIALIZED"
+ },
+ {
+ "name": "VNC_DISCONNECTED"
+ },
+ {
+ "name": "VNC_CONNECTED"
+ },
+ {
+ "name": "SUSPEND_DISK"
+ },
+ {
+ "name": "SUSPEND"
+ },
+ {
+ "name": "STOP"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED"
+ },
+ {
+ "name": "SPICE_INITIALIZED"
+ },
+ {
+ "name": "SPICE_DISCONNECTED"
+ },
+ {
+ "name": "SPICE_CONNECTED"
+ },
+ {
+ "name": "SHUTDOWN"
+ },
+ {
+ "name": "RTC_CHANGE"
+ },
+ {
+ "name": "RESUME"
+ },
+ {
+ "name": "RESET"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD"
+ },
+ {
+ "name": "QUORUM_FAILURE"
+ },
+ {
+ "name": "POWERDOWN"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED"
+ },
+ {
+ "name": "MIGRATION_PASS"
+ },
+ {
+ "name": "MIGRATION"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR"
+ },
+ {
+ "name": "GUEST_PANICKED"
+ },
+ {
+ "name": "DUMP_COMPLETED"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED"
+ },
+ {
+ "name": "DEVICE_DELETED"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD"
+ },
+ {
+ "name": "BLOCK_JOB_READY"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED"
+ },
+ {
+ "name": "BLOCK_IO_ERROR"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED"
+ },
+ {
+ "name": "BALLOON_CHANGE"
+ },
+ {
+ "name": "ACPI_DEVICE_OST"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "vhost-vsock-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "s390-pcihost",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "virtio-tablet-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "z890.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-storage_attributes-qemu",
+ "parent": "s390-storage_attributes"
+ },
+ {
+ "name": "cryptodev-backend",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-rng-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "iothread",
+ "parent": "object"
+ },
+ {
+ "name": "z990.4-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-gpu-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "z10BC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z196.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z14-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-scsi-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "i2c-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "s390-flic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-vsock-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "z9BC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "zEC12-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z196-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z13-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z990.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "sclplmconsole",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "host-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "scsi-cd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "container",
+ "parent": "object"
+ },
+ {
+ "name": "chardev-null",
+ "parent": "chardev"
+ },
+ {
+ "name": "z9EC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-pcibus",
+ "parent": "bus"
+ },
+ {
+ "name": "zBC12-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "scsi-generic",
+ "parent": "scsi-device"
+ },
+ {
+ "name": "z9EC.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-net-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-9p-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z196.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "qemu-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-mouse-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "virtio-mouse-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "throttle-group",
+ "parent": "object"
+ },
+ {
+ "name": "zEC12.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "rng-egd",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "z800-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-blk-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "s390-ipl",
+ "parent": "device"
+ },
+ {
+ "name": "s390-sclp-events-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "irq",
+ "parent": "object"
+ },
+ {
+ "name": "s390-ccw-virtio-2.8-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "filter-buffer",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtconsole",
+ "parent": "virtserialport"
+ },
+ {
+ "name": "z9EC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-rng-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "PCIE",
+ "parent": "PCI"
+ },
+ {
+ "name": "chardev-pty",
+ "parent": "chardev"
+ },
+ {
+ "name": "z900.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-memory",
+ "parent": "chardev-ringbuf"
+ },
+ {
+ "name": "sclp-cpu-hotplug",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "s390-skeys-kvm",
+ "parent": "s390-skeys"
+ },
+ {
+ "name": "s390-ccw-virtio-2.9-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "x-terminal3270",
+ "parent": "emulated-ccw-3270"
+ },
+ {
+ "name": "chardev-serial",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "virtio-keyboard-ccw",
+ "parent": "virtio-input-hid-ccw"
+ },
+ {
+ "name": "usb-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "vhost-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "filter-rewriter",
+ "parent": "netfilter"
+ },
+ {
+ "name": "sclp",
+ "parent": "device"
+ },
+ {
+ "name": "z900.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-crypto-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z890-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z890-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "or-irq",
+ "parent": "device"
+ },
+ {
+ "name": "virtual-css-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "virtio-tablet-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "filter-redirector",
+ "parent": "netfilter"
+ },
+ {
+ "name": "chardev-pipe",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "unimplemented-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sclpquiesce",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "z990.4-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z10BC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "scsi-disk",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "virtio-9p-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "vfio-pci-igd-lpc-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "z900.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "qio-channel-buffer",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-mmio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "z9BC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z800-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-pci-iommu",
+ "parent": "object"
+ },
+ {
+ "name": "filter-dump",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtio-scsi-device",
+ "parent": "virtio-scsi-common"
+ },
+ {
+ "name": "virtio-blk-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-9p-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "z114-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.4-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "z13-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z990-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-ringbuf",
+ "parent": "chardev"
+ },
+ {
+ "name": "vhost-user-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "System",
+ "parent": "bus"
+ },
+ {
+ "name": "z13s-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "filter-mirror",
+ "parent": "netfilter"
+ },
+ {
+ "name": "qemu-console",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-net-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "colo-compare",
+ "parent": "object"
+ },
+ {
+ "name": "z990.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "sclp-memory-hotplug-dev",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s390-ccw-virtio-2.5-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "chardev-testdev",
+ "parent": "chardev"
+ },
+ {
+ "name": "z14-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-hci",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-keyboard-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "z890.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "input-linux",
+ "parent": "object"
+ },
+ {
+ "name": "virtual-css-bridge",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-stdio",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "qio-dns-resolver",
+ "parent": "object"
+ },
+ {
+ "name": "tls-creds-anon",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "z196-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "diag288",
+ "parent": "device"
+ },
+ {
+ "name": "memory-backend-file",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "z10EC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-keyboard-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "z13s-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-crypto-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "qemu:memory-region",
+ "parent": "object"
+ },
+ {
+ "name": "rng-random",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "z900-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-mux",
+ "parent": "chardev"
+ },
+ {
+ "name": "chardev-udp",
+ "parent": "chardev"
+ },
+ {
+ "name": "z10EC.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-gdb",
+ "parent": "chardev"
+ },
+ {
+ "name": "vhost-user-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-ccw-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "z10EC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z114-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-balloon-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "virtio-scsi-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z990.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z9EC.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "fw_cfg_io",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "s390-ccw-virtio-2.10-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "virtio-crypto-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "z890.3-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "chardev-file",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "chardev-wctablet",
+ "parent": "chardev"
+ },
+ {
+ "name": "z900.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z9BC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vhost-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "pci-bridge-seat",
+ "parent": "pci-bridge"
+ },
+ {
+ "name": "z10BC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z990.5-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "tcg-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "virtio-mmio-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "zEC12.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "mmio_interface",
+ "parent": "device"
+ },
+ {
+ "name": "qio-channel-command",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "s390-ccw-virtio-2.11-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "accel",
+ "parent": "object"
+ },
+ {
+ "name": "z10EC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "pr-manager-helper",
+ "parent": "pr-manager"
+ },
+ {
+ "name": "loader",
+ "parent": "device"
+ },
+ {
+ "name": "z9EC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z9EC.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-serial-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "tpm-emulator",
+ "parent": "tpm-backend"
+ },
+ {
+ "name": "s390-storage_attributes-kvm",
+ "parent": "s390-storage_attributes"
+ },
+ {
+ "name": "virtio-balloon-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "chardev-vc",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-serial-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "chardev-socket",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-serial-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "migration",
+ "parent": "device"
+ },
+ {
+ "name": "qio-channel-file",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "s390-sclp-event-facility",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s390-flic-kvm",
+ "parent": "s390-flic"
+ },
+ {
+ "name": "virtio-input-host-device",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "zEC12-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "vfio-ccw",
+ "parent": "s390-ccw"
+ },
+ {
+ "name": "virtio-gpu-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z990.5-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z10BC-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "none-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "SCSI",
+ "parent": "bus"
+ },
+ {
+ "name": "tls-creds-x509",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "vhost-vsock-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "kvm-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "virtio-tablet-ccw",
+ "parent": "virtio-input-hid-ccw"
+ },
+ {
+ "name": "secret",
+ "parent": "object"
+ },
+ {
+ "name": "scsi-hd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "qtest-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "z900-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-balloon-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "scsi-block",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "virtio-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "fw_cfg_mem",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "s390-ccw-virtio-2.6-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "PCI",
+ "parent": "bus"
+ },
+ {
+ "name": "sclpconsole",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "z13.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-skeys-qemu",
+ "parent": "s390-skeys"
+ },
+ {
+ "name": "zpci",
+ "parent": "device"
+ },
+ {
+ "name": "qio-channel-websock",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-input-host-pci",
+ "parent": "virtio-input-pci"
+ },
+ {
+ "name": "cryptodev-backend-builtin",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "qemu,register",
+ "parent": "device"
+ },
+ {
+ "name": "zBC12-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.7-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "z13.2-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-pci-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "s390-flic-qemu",
+ "parent": "s390-flic"
+ },
+ {
+ "name": "z890.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "filter-replay",
+ "parent": "netfilter"
+ },
+ {
+ "name": "chardev-parallel",
+ "parent": "chardev"
+ },
+ {
+ "name": "chardev-msmouse",
+ "parent": "chardev"
+ },
+ {
+ "name": "qio-channel-tls",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "memory-backend-ram",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-serial-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtserialport",
+ "parent": "virtio-serial-port"
+ },
+ {
+ "name": "smbus-eeprom",
+ "parent": "smbus-device"
+ },
+ {
+ "name": "z990-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-net-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z10EC.2-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-rng-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "vfio-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-gpu-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-mouse-ccw",
+ "parent": "virtio-input-hid-ccw"
+ },
+ {
+ "name": "z9BC-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "z10EC.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "s390-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "qio-channel-socket",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "z990.3-base-s390x-cpu",
+ "parent": "s390x-cpu"
+ },
+ {
+ "name": "virtio-blk-device",
+ "parent": "virtio-device"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "return": [
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "vlan",
+ "description": "Integer VLAN id to connect to",
+ "type": "int32"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-11"
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "virtqueue_size",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-12"
+}
+
+{
+ "return": [
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-13"
+}
+
+{
+ "return": [
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vlan",
+ "description": "Integer VLAN id to connect to",
+ "type": "int32"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-14"
+}
+
+{
+ "return": [
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "virtqueue_size",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-15"
+}
+
+{
+ "id": "libvirt-16",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-18",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'pci-assign' not found"
+ }
+}
+
+{
+ "id": "libvirt-19",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'kvm-pci-assign' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "x-pci-sub-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-no-kvm-msi",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-opregion",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-vga",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-req",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-gms",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-intx",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-msix",
+ "type": "bool"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "x-pci-sub-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-nv-gpudirect-clique",
+ "description": "NVIDIA GPUDirect Clique ID (0 - 15)",
+ "type": "uint4"
+ },
+ {
+ "name": "sysfsdev",
+ "type": "str"
+ },
+ {
+ "name": "x-no-mmap",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "name": "dpofua",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "max_io_size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-21"
+}
+
+{
+ "id": "libvirt-22",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ide-drive' not found"
+ }
+}
+
+{
+ "id": "libvirt-23",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'PIIX4_PM' not found"
+ }
+}
+
+{
+ "id": "libvirt-24",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-redir' not found"
+ }
+}
+
+{
+ "id": "libvirt-25",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-host' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "id": "libvirt-27",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'i440FX-pcihost' not found"
+ }
+}
+
+{
+ "id": "libvirt-28",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'q35-pcihost' not found"
+ }
+}
+
+{
+ "id": "libvirt-29",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-storage' not found"
+ }
+}
+
+{
+ "id": "libvirt-30",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'kvm-pit' not found"
+ }
+}
+
+{
+ "id": "libvirt-31",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'VGA' not found"
+ }
+}
+
+{
+ "id": "libvirt-32",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'vmware-svga' not found"
+ }
+}
+
+{
+ "id": "libvirt-33",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'qxl' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-34"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-35"
+}
+
+{
+ "id": "libvirt-36",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ICH9-LPC' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-37"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-38"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-39"
+}
+
+{
+ "id": "libvirt-40",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'nec-usb-xhci' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.7",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.6",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.11",
+ "is-default": true,
+ "cpu-max": 248,
+ "alias": "s390-ccw-virtio"
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.10",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.5",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.4",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.9",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": true,
+ "name": "s390-ccw-virtio-2.8",
+ "cpu-max": 248
+ }
+ ],
+ "id": "libvirt-41"
+}
+
+{
+ "return": [
+ {
+ "name": "z890.2",
+ "typename": "z890.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4",
+ "typename": "z990.4-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2",
+ "typename": "z10BC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2",
+ "typename": "z196.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14",
+ "typename": "z14-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC-base",
+ "typename": "z9BC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12-base",
+ "typename": "zEC12-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196-base",
+ "typename": "z196-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13-base",
+ "typename": "z13-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3",
+ "typename": "z990.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "host",
+ "typename": "host-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z9EC",
+ "typename": "z9EC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12",
+ "typename": "zBC12-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3",
+ "typename": "z9EC.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2-base",
+ "typename": "z196.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu",
+ "typename": "qemu-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2-base",
+ "typename": "zEC12.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800-base",
+ "typename": "z800-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2",
+ "typename": "z9EC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2-base",
+ "typename": "z900.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3",
+ "typename": "z900.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890-base",
+ "typename": "z890-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890",
+ "typename": "z890-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4-base",
+ "typename": "z990.4-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2-base",
+ "typename": "z10BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2",
+ "typename": "z900.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2-base",
+ "typename": "z9BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800",
+ "typename": "z800-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114",
+ "typename": "z114-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13",
+ "typename": "z13-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990",
+ "typename": "z990-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s-base",
+ "typename": "z13s-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2",
+ "typename": "z990.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14-base",
+ "typename": "z14-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2-base",
+ "typename": "z890.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196",
+ "typename": "z196-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC",
+ "typename": "z10EC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s",
+ "typename": "z13s-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900",
+ "typename": "z900-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3",
+ "typename": "z10EC.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2-base",
+ "typename": "z10EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z114-base",
+ "typename": "z114-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2-base",
+ "typename": "z990.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2-base",
+ "typename": "z9EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3",
+ "typename": "z890.3-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3-base",
+ "typename": "z900.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2",
+ "typename": "z9BC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC",
+ "typename": "z10BC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5",
+ "typename": "z990.5-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2",
+ "typename": "zEC12.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC-base",
+ "typename": "z10EC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC-base",
+ "typename": "z9EC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3-base",
+ "typename": "z9EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12",
+ "typename": "zEC12-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5-base",
+ "typename": "z990.5-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC-base",
+ "typename": "z10BC-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900-base",
+ "typename": "z900-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2",
+ "typename": "z13.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12-base",
+ "typename": "zBC12-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2-base",
+ "typename": "z13.2-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3-base",
+ "typename": "z890.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990-base",
+ "typename": "z990-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2",
+ "typename": "z10EC.2-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC",
+ "typename": "z9BC-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3-base",
+ "typename": "z10EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3-base",
+ "typename": "z990.3-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-42"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-43"
+}
+
+{
+ "return": [
+ "emulator"
+ ],
+ "id": "libvirt-44"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "non-adaptive",
+ "type": "boolean"
+ },
+ {
+ "name": "lossy",
+ "type": "boolean"
+ },
+ {
+ "name": "acl",
+ "type": "boolean"
+ },
+ {
+ "name": "x509verify",
+ "type": "string"
+ },
+ {
+ "name": "tls",
+ "type": "boolean"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "key-delay-ms",
+ "type": "number"
+ },
+ {
+ "name": "lock-key-sync",
+ "type": "boolean"
+ },
+ {
+ "name": "reverse",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "connections",
+ "type": "number"
+ },
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "type": "string"
+ },
+ {
+ "name": "x509",
+ "type": "string"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "websocket",
+ "type": "string"
+ },
+ {
+ "name": "vnc",
+ "type": "string"
+ }
+ ],
+ "option": "vnc"
+ },
+ {
+ "parameters": [
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "mount_tag",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "virtfs"
+ },
+ {
+ "parameters": [
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "fsdev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "string",
+ "help": "Sets content of the blob to be inserted from a string",
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "help": "Sets the name of the file from which\nthe fw_cfg blob will be loaded",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "help": "Sets the fw_cfg name of the blob to be inserted",
+ "type": "string"
+ }
+ ],
+ "option": "fw_cfg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "arg",
+ "type": "string"
+ },
+ {
+ "name": "target",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "semihosting-config"
+ },
+ {
+ "parameters": [
+ {
+ "name": "rrsnapshot",
+ "type": "string"
+ },
+ {
+ "name": "rrfile",
+ "type": "string"
+ },
+ {
+ "name": "rr",
+ "type": "string"
+ },
+ {
+ "name": "sleep",
+ "type": "boolean"
+ },
+ {
+ "name": "align",
+ "type": "boolean"
+ },
+ {
+ "name": "shift",
+ "type": "string"
+ }
+ ],
+ "option": "icount"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "numa"
+ },
+ {
+ "parameters": [
+ {
+ "name": "debug-threads",
+ "help": "When enabled, name the individual threads; defaults off.\nNOTE: The thread names are for debugging and not a\nstable API.",
+ "type": "boolean"
+ },
+ {
+ "name": "process",
+ "help": "Sets the name of the QEMU process, as shown in top etc",
+ "type": "string"
+ },
+ {
+ "name": "guest",
+ "help": "Sets the name of the guest.\nThis name will be displayed in the SDL window caption.\nThe name will also be used for the VNC server",
+ "type": "string"
+ }
+ ],
+ "option": "name"
+ },
+ {
+ "parameters": [
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "mlock",
+ "type": "boolean"
+ }
+ ],
+ "option": "realtime"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "tpmdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "object"
+ },
+ {
+ "parameters": [
+ {
+ "name": "opaque",
+ "help": "free-form string used to describe fd",
+ "type": "string"
+ },
+ {
+ "name": "set",
+ "help": "ID of the fd set to add fd to",
+ "type": "number"
+ },
+ {
+ "name": "fd",
+ "help": "file descriptor of which a duplicate is added to fd set",
+ "type": "number"
+ }
+ ],
+ "option": "add-fd"
+ },
+ {
+ "parameters": [
+ {
+ "name": "resourcecontrol",
+ "type": "string"
+ },
+ {
+ "name": "spawn",
+ "type": "string"
+ },
+ {
+ "name": "elevateprivileges",
+ "type": "string"
+ },
+ {
+ "name": "obsolete",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "sandbox"
+ },
+ {
+ "parameters": [
+ {
+ "name": "strict",
+ "type": "boolean"
+ },
+ {
+ "name": "reboot-timeout",
+ "type": "string"
+ },
+ {
+ "name": "splash-time",
+ "type": "string"
+ },
+ {
+ "name": "splash",
+ "type": "string"
+ },
+ {
+ "name": "menu",
+ "type": "boolean"
+ },
+ {
+ "name": "once",
+ "type": "string"
+ },
+ {
+ "name": "order",
+ "type": "string"
+ }
+ ],
+ "option": "boot-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxcpus",
+ "type": "number"
+ },
+ {
+ "name": "threads",
+ "type": "number"
+ },
+ {
+ "name": "cores",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "cpus",
+ "type": "number"
+ }
+ ],
+ "option": "smp-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxmem",
+ "type": "size"
+ },
+ {
+ "name": "slots",
+ "type": "number"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ }
+ ],
+ "option": "memory"
+ },
+ {
+ "parameters": [
+ {
+ "name": "thread",
+ "help": "Enable/disable multi-threaded TCG",
+ "type": "string"
+ },
+ {
+ "name": "accel",
+ "help": "Select the type of accelerator",
+ "type": "string"
+ }
+ ],
+ "option": "accel"
+ },
+ {
+ "parameters": [
+ {
+ "name": "loadparm",
+ "help": "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars converted to upper case) to pass to machine loader, boot manager, and guest kernel",
+ "type": "string"
+ },
+ {
+ "name": "dea-key-wrap",
+ "help": "enable/disable DEA key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "aes-key-wrap",
+ "help": "enable/disable AES key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "help": "Set on to disable self-describing migration",
+ "type": "boolean"
+ },
+ {
+ "name": "iommu",
+ "help": "Set on/off to enable/disable Intel IOMMU (VT-d)",
+ "type": "boolean"
+ },
+ {
+ "name": "firmware",
+ "help": "firmware image",
+ "type": "string"
+ },
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-merge",
+ "help": "enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "dt_compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "phandle_start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "kvm_shadow_mem",
+ "help": "KVM shadow MMU size",
+ "type": "size"
+ },
+ {
+ "name": "kernel_irqchip",
+ "help": "use KVM in-kernel irqchip",
+ "type": "boolean"
+ },
+ {
+ "name": "accel",
+ "help": "accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "help": "emulated machine",
+ "type": "string"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "type": "boolean"
+ },
+ {
+ "name": "default",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "mode",
+ "type": "string"
+ }
+ ],
+ "option": "mon"
+ },
+ {
+ "parameters": [
+ {
+ "name": "value",
+ "type": "string"
+ },
+ {
+ "name": "property",
+ "type": "string"
+ },
+ {
+ "name": "driver",
+ "type": "string"
+ }
+ ],
+ "option": "global"
+ },
+ {
+ "parameters": [
+ {
+ "name": "driftfix",
+ "type": "string"
+ },
+ {
+ "name": "clock",
+ "type": "string"
+ },
+ {
+ "name": "base",
+ "type": "string"
+ }
+ ],
+ "option": "rtc"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "net"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "netdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "device"
+ },
+ {
+ "parameters": [
+ {
+ "name": "logappend",
+ "type": "boolean"
+ },
+ {
+ "name": "logfile",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ },
+ {
+ "name": "debug",
+ "type": "number"
+ },
+ {
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "name": "signal",
+ "type": "boolean"
+ },
+ {
+ "name": "mux",
+ "type": "boolean"
+ },
+ {
+ "name": "rows",
+ "type": "number"
+ },
+ {
+ "name": "cols",
+ "type": "number"
+ },
+ {
+ "name": "height",
+ "type": "number"
+ },
+ {
+ "name": "width",
+ "type": "number"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "tn3270",
+ "type": "boolean"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "reconnect",
+ "type": "number"
+ },
+ {
+ "name": "delay",
+ "type": "boolean"
+ },
+ {
+ "name": "server",
+ "type": "boolean"
+ },
+ {
+ "name": "wait",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "localport",
+ "type": "string"
+ },
+ {
+ "name": "localaddr",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "backend",
+ "type": "string"
+ }
+ ],
+ "option": "chardev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "copy-on-read",
+ "help": "copy read data from backing file into image file",
+ "type": "boolean"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "file",
+ "help": "file name",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "help": "disk serial number",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "help": "pci address (virtio only)",
+ "type": "string"
+ },
+ {
+ "name": "boot",
+ "help": "(deprecated, ignored)",
+ "type": "boolean"
+ },
+ {
+ "name": "trans",
+ "help": "chs translation (auto, lba, none)",
+ "type": "string"
+ },
+ {
+ "name": "secs",
+ "help": "number of sectors (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "heads",
+ "help": "number of heads (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "cyls",
+ "help": "number of cylinders (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "if",
+ "help": "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
+ "type": "string"
+ },
+ {
+ "name": "media",
+ "help": "media type (disk, cdrom)",
+ "type": "string"
+ },
+ {
+ "name": "index",
+ "help": "index number",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "help": "unit number (i.e. lun for scsi)",
+ "type": "number"
+ },
+ {
+ "name": "bus",
+ "help": "bus number",
+ "type": "number"
+ },
+ {
+ "name": "stats-account-failed",
+ "help": "whether to account for failed I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "stats-account-invalid",
+ "help": "whether to account for invalid I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "detect-zeroes",
+ "help": "try to optimize zero writes (off, on, unmap)",
+ "type": "string"
+ },
+ {
+ "name": "throttling.group",
+ "help": "name of the block throttling group",
+ "type": "string"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "Enable writeback mode",
+ "type": "boolean"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ },
+ {
+ "name": "force-share",
+ "help": "always accept other writers (default: off)",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "Node is opened in read-only mode",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.no-flush",
+ "help": "Ignore flush requests",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.direct",
+ "help": "Bypass software writeback cache on the host",
+ "type": "boolean"
+ },
+ {
+ "name": "driver",
+ "help": "Block driver to use for the node",
+ "type": "string"
+ },
+ {
+ "name": "node-name",
+ "help": "Node name of the block device node",
+ "type": "string"
+ }
+ ],
+ "option": "drive"
+ }
+ ],
+ "id": "libvirt-45"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ },
+ {
+ "state": false,
+ "capability": "compress"
+ },
+ {
+ "state": false,
+ "capability": "events"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-ram"
+ },
+ {
+ "state": false,
+ "capability": "x-colo"
+ },
+ {
+ "state": false,
+ "capability": "release-ram"
+ },
+ {
+ "state": false,
+ "capability": "block"
+ },
+ {
+ "state": false,
+ "capability": "return-path"
+ },
+ {
+ "state": false,
+ "capability": "pause-before-switchover"
+ },
+ {
+ "state": false,
+ "capability": "x-multifd"
+ }
+ ],
+ "id": "libvirt-46"
+}
+
+{
+ "return": [
+ {
+ "name": "ACPI_DEVICE_OST",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "BALLOON_CHANGE",
+ "meta-type": "event",
+ "arg-type": "1"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED",
+ "meta-type": "event",
+ "arg-type": "2"
+ },
+ {
+ "name": "BLOCK_IO_ERROR",
+ "meta-type": "event",
+ "arg-type": "3"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED",
+ "meta-type": "event",
+ "arg-type": "4"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "5"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR",
+ "meta-type": "event",
+ "arg-type": "6"
+ },
+ {
+ "name": "BLOCK_JOB_READY",
+ "meta-type": "event",
+ "arg-type": "7"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD",
+ "meta-type": "event",
+ "arg-type": "8"
+ },
+ {
+ "name": "DEVICE_DELETED",
+ "meta-type": "event",
+ "arg-type": "9"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED",
+ "meta-type": "event",
+ "arg-type": "10"
+ },
+ {
+ "name": "DUMP_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "11"
+ },
+ {
+ "name": "GUEST_PANICKED",
+ "meta-type": "event",
+ "arg-type": "12"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR",
+ "meta-type": "event",
+ "arg-type": "13"
+ },
+ {
+ "name": "MIGRATION",
+ "meta-type": "event",
+ "arg-type": "14"
+ },
+ {
+ "name": "MIGRATION_PASS",
+ "meta-type": "event",
+ "arg-type": "15"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED",
+ "meta-type": "event",
+ "arg-type": "16"
+ },
+ {
+ "name": "POWERDOWN",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "QUORUM_FAILURE",
+ "meta-type": "event",
+ "arg-type": "18"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD",
+ "meta-type": "event",
+ "arg-type": "19"
+ },
+ {
+ "name": "RESET",
+ "meta-type": "event",
+ "arg-type": "20"
+ },
+ {
+ "name": "RESUME",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "RTC_CHANGE",
+ "meta-type": "event",
+ "arg-type": "21"
+ },
+ {
+ "name": "SHUTDOWN",
+ "meta-type": "event",
+ "arg-type": "22"
+ },
+ {
+ "name": "SPICE_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "23"
+ },
+ {
+ "name": "SPICE_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "24"
+ },
+ {
+ "name": "SPICE_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "25"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "STOP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND_DISK",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "VNC_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "26"
+ },
+ {
+ "name": "VNC_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "27"
+ },
+ {
+ "name": "VNC_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "28"
+ },
+ {
+ "name": "VSERPORT_CHANGE",
+ "meta-type": "event",
+ "arg-type": "29"
+ },
+ {
+ "name": "WAKEUP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "WATCHDOG",
+ "meta-type": "event",
+ "arg-type": "30"
+ },
+ {
+ "name": "add-fd",
+ "ret-type": "32",
+ "meta-type": "command",
+ "arg-type": "31"
+ },
+ {
+ "name": "add_client",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "33"
+ },
+ {
+ "name": "balloon",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "34"
+ },
+ {
+ "name": "block-commit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "35"
+ },
+ {
+ "name": "block-dirty-bitmap-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "36"
+ },
+ {
+ "name": "block-dirty-bitmap-clear",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-dirty-bitmap-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-job-cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "38"
+ },
+ {
+ "name": "block-job-complete",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "39"
+ },
+ {
+ "name": "block-job-pause",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "40"
+ },
+ {
+ "name": "block-job-resume",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "41"
+ },
+ {
+ "name": "block-job-set-speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "42"
+ },
+ {
+ "name": "block-set-write-threshold",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "43"
+ },
+ {
+ "name": "block-stream",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "44"
+ },
+ {
+ "name": "block_passwd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block_resize",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "46"
+ },
+ {
+ "name": "block_set_io_throttle",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "47"
+ },
+ {
+ "name": "blockdev-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "48"
+ },
+ {
+ "name": "blockdev-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "49"
+ },
+ {
+ "name": "blockdev-change-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "50"
+ },
+ {
+ "name": "blockdev-close-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "51"
+ },
+ {
+ "name": "blockdev-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "52"
+ },
+ {
+ "name": "blockdev-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "53"
+ },
+ {
+ "name": "blockdev-open-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "54"
+ },
+ {
+ "name": "blockdev-snapshot",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "55"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync",
+ "ret-type": "57",
+ "meta-type": "command",
+ "arg-type": "56"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "58"
+ },
+ {
+ "name": "blockdev-snapshot-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "59"
+ },
+ {
+ "name": "change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "60"
+ },
+ {
+ "name": "change-backing-file",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "61"
+ },
+ {
+ "name": "change-vnc-password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "62"
+ },
+ {
+ "name": "chardev-add",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "63"
+ },
+ {
+ "name": "chardev-change",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "65"
+ },
+ {
+ "name": "chardev-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "66"
+ },
+ {
+ "name": "chardev-send-break",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "67"
+ },
+ {
+ "name": "client_migrate_info",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "68"
+ },
+ {
+ "name": "closefd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "69"
+ },
+ {
+ "name": "cont",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "cpu",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "70"
+ },
+ {
+ "name": "cpu-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "71"
+ },
+ {
+ "name": "device-list-properties",
+ "ret-type": "[73]",
+ "meta-type": "command",
+ "arg-type": "72"
+ },
+ {
+ "name": "device_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "74"
+ },
+ {
+ "name": "device_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "75"
+ },
+ {
+ "name": "drive-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "76"
+ },
+ {
+ "name": "drive-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "77"
+ },
+ {
+ "name": "dump-guest-memory",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "78"
+ },
+ {
+ "name": "dump-skeys",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "79"
+ },
+ {
+ "name": "eject",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "80"
+ },
+ {
+ "name": "expire_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "81"
+ },
+ {
+ "name": "getfd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "82"
+ },
+ {
+ "name": "human-monitor-command",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "83"
+ },
+ {
+ "name": "inject-nmi",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "input-send-event",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "84"
+ },
+ {
+ "name": "memsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "85"
+ },
+ {
+ "name": "migrate",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "86"
+ },
+ {
+ "name": "migrate-continue",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "87"
+ },
+ {
+ "name": "migrate-incoming",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "88"
+ },
+ {
+ "name": "migrate-set-cache-size",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "89"
+ },
+ {
+ "name": "migrate-set-capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "90"
+ },
+ {
+ "name": "migrate-set-parameters",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "91"
+ },
+ {
+ "name": "migrate-start-postcopy",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_set_downtime",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "92"
+ },
+ {
+ "name": "migrate_set_speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "93"
+ },
+ {
+ "name": "nbd-server-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "94"
+ },
+ {
+ "name": "nbd-server-start",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "95"
+ },
+ {
+ "name": "nbd-server-stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "netdev_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "96"
+ },
+ {
+ "name": "netdev_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "97"
+ },
+ {
+ "name": "object-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "98"
+ },
+ {
+ "name": "object-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "99"
+ },
+ {
+ "name": "pmemsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "100"
+ },
+ {
+ "name": "qmp_capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "qom-get",
+ "ret-type": "any",
+ "meta-type": "command",
+ "arg-type": "101"
+ },
+ {
+ "name": "qom-list",
+ "ret-type": "[103]",
+ "meta-type": "command",
+ "arg-type": "102"
+ },
+ {
+ "name": "qom-list-types",
+ "ret-type": "[105]",
+ "meta-type": "command",
+ "arg-type": "104"
+ },
+ {
+ "name": "qom-set",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "106"
+ },
+ {
+ "name": "query-acpi-ospm-status",
+ "ret-type": "[107]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-balloon",
+ "ret-type": "108",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block",
+ "ret-type": "[109]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block-jobs",
+ "ret-type": "[110]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-blockstats",
+ "ret-type": "[112]",
+ "meta-type": "command",
+ "arg-type": "111"
+ },
+ {
+ "name": "query-chardev",
+ "ret-type": "[113]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-chardev-backends",
+ "ret-type": "[114]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-command-line-options",
+ "ret-type": "[116]",
+ "meta-type": "command",
+ "arg-type": "115"
+ },
+ {
+ "name": "query-commands",
+ "ret-type": "[117]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-definitions",
+ "ret-type": "[118]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-model-baseline",
+ "ret-type": "120",
+ "meta-type": "command",
+ "arg-type": "119"
+ },
+ {
+ "name": "query-cpu-model-comparison",
+ "ret-type": "122",
+ "meta-type": "command",
+ "arg-type": "121"
+ },
+ {
+ "name": "query-cpu-model-expansion",
+ "ret-type": "124",
+ "meta-type": "command",
+ "arg-type": "123"
+ },
+ {
+ "name": "query-cpus",
+ "ret-type": "[125]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump",
+ "ret-type": "126",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump-guest-memory-capability",
+ "ret-type": "127",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-events",
+ "ret-type": "[128]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-fdsets",
+ "ret-type": "[129]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-gic-capabilities",
+ "ret-type": "[130]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-hotpluggable-cpus",
+ "ret-type": "[131]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-iothreads",
+ "ret-type": "[132]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-kvm",
+ "ret-type": "133",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-machines",
+ "ret-type": "[134]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memdev",
+ "ret-type": "[135]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memory-devices",
+ "ret-type": "[136]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memory-size-summary",
+ "ret-type": "137",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-mice",
+ "ret-type": "[138]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate",
+ "ret-type": "139",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-cache-size",
+ "ret-type": "int",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-capabilities",
+ "ret-type": "[140]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-parameters",
+ "ret-type": "141",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-name",
+ "ret-type": "142",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-named-block-nodes",
+ "ret-type": "[143]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-pci",
+ "ret-type": "[144]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-qmp-schema",
+ "ret-type": "[145]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-rocker",
+ "ret-type": "147",
+ "meta-type": "command",
+ "arg-type": "146"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows",
+ "ret-type": "[149]",
+ "meta-type": "command",
+ "arg-type": "148"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[151]",
+ "meta-type": "command",
+ "arg-type": "150"
+ },
+ {
+ "name": "query-rocker-ports",
+ "ret-type": "[153]",
+ "meta-type": "command",
+ "arg-type": "152"
+ },
+ {
+ "name": "query-rx-filter",
+ "ret-type": "[155]",
+ "meta-type": "command",
+ "arg-type": "154"
+ },
+ {
+ "name": "query-spice",
+ "ret-type": "156",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-status",
+ "ret-type": "157",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-target",
+ "ret-type": "158",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm",
+ "ret-type": "[159]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-models",
+ "ret-type": "[160]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-types",
+ "ret-type": "[161]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-uuid",
+ "ret-type": "162",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-version",
+ "ret-type": "163",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vm-generation-id",
+ "ret-type": "164",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc",
+ "ret-type": "165",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc-servers",
+ "ret-type": "[166]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-xen-replication-status",
+ "ret-type": "167",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "quit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "remove-fd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "168"
+ },
+ {
+ "name": "ringbuf-read",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "169"
+ },
+ {
+ "name": "ringbuf-write",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "170"
+ },
+ {
+ "name": "rtc-reset-reinjection",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "screendump",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "171"
+ },
+ {
+ "name": "send-key",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "172"
+ },
+ {
+ "name": "set_link",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "173"
+ },
+ {
+ "name": "set_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "174"
+ },
+ {
+ "name": "stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_powerdown",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_reset",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_wakeup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "trace-event-get-state",
+ "ret-type": "[176]",
+ "meta-type": "command",
+ "arg-type": "175"
+ },
+ {
+ "name": "trace-event-set-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "177"
+ },
+ {
+ "name": "transaction",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "178"
+ },
+ {
+ "name": "watchdog-set-action",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "179"
+ },
+ {
+ "name": "x-blockdev-change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "180"
+ },
+ {
+ "name": "x-blockdev-insert-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "181"
+ },
+ {
+ "name": "x-blockdev-remove-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "182"
+ },
+ {
+ "name": "x-colo-lost-heartbeat",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256",
+ "ret-type": "183",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "xen-colo-do-checkpoint",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "xen-load-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "184"
+ },
+ {
+ "name": "xen-save-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "185"
+ },
+ {
+ "name": "xen-set-global-dirty-log",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "186"
+ },
+ {
+ "name": "xen-set-replication",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "187"
+ },
+ {
+ "name": "0",
+ "members": [
+ {
+ "name": "info",
+ "type": "107"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "1",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "2",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "fatal",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "3",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "188"
+ },
+ {
+ "name": "action",
+ "type": "189"
+ },
+ {
+ "name": "nospace",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "4",
+ "members": [
+ {
+ "name": "type",
+ "type": "190"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "5",
+ "members": [
+ {
+ "name": "type",
+ "type": "190"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "6",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "188"
+ },
+ {
+ "name": "action",
+ "type": "189"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "7",
+ "members": [
+ {
+ "name": "type",
+ "type": "190"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "8",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "amount-exceeded",
+ "type": "int"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "9",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "10",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "tray-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "11",
+ "members": [
+ {
+ "name": "result",
+ "type": "126"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "12",
+ "members": [
+ {
+ "name": "action",
+ "type": "191"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "13",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "14",
+ "members": [
+ {
+ "name": "status",
+ "type": "193"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "15",
+ "members": [
+ {
+ "name": "pass",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "16",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "17",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "18",
+ "members": [
+ {
+ "name": "reference",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "19",
+ "members": [
+ {
+ "name": "type",
+ "type": "194"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "20",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "21",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "22",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "23",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "195"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "24",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "195"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "25",
+ "members": [
+ {
+ "name": "server",
+ "type": "196"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "26",
+ "members": [
+ {
+ "name": "server",
+ "type": "198"
+ },
+ {
+ "name": "client",
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "27",
+ "members": [
+ {
+ "name": "server",
+ "type": "198"
+ },
+ {
+ "name": "client",
+ "type": "200"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "28",
+ "members": [
+ {
+ "name": "server",
+ "type": "198"
+ },
+ {
+ "name": "client",
+ "type": "200"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "29",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "30",
+ "members": [
+ {
+ "name": "action",
+ "type": "201"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "31",
+ "members": [
+ {
+ "name": "fdset-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "32",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "33",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "fdname",
+ "type": "str"
+ },
+ {
+ "name": "skipauth",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tls",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "34",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "35",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "top",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "36",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "autoload",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "37",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "38",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "39",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "40",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "41",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "42",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "43",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "44",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "base-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "202"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "45",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "46",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "47",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "48",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "blkdebug",
+ "type": "207"
+ },
+ {
+ "case": "blkverify",
+ "type": "208"
+ },
+ {
+ "case": "bochs",
+ "type": "209"
+ },
+ {
+ "case": "cloop",
+ "type": "209"
+ },
+ {
+ "case": "dmg",
+ "type": "209"
+ },
+ {
+ "case": "file",
+ "type": "210"
+ },
+ {
+ "case": "ftp",
+ "type": "211"
+ },
+ {
+ "case": "ftps",
+ "type": "212"
+ },
+ {
+ "case": "gluster",
+ "type": "213"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "210"
+ },
+ {
+ "case": "host_device",
+ "type": "210"
+ },
+ {
+ "case": "http",
+ "type": "214"
+ },
+ {
+ "case": "https",
+ "type": "215"
+ },
+ {
+ "case": "iscsi",
+ "type": "216"
+ },
+ {
+ "case": "luks",
+ "type": "217"
+ },
+ {
+ "case": "nbd",
+ "type": "218"
+ },
+ {
+ "case": "nfs",
+ "type": "219"
+ },
+ {
+ "case": "null-aio",
+ "type": "220"
+ },
+ {
+ "case": "null-co",
+ "type": "220"
+ },
+ {
+ "case": "parallels",
+ "type": "209"
+ },
+ {
+ "case": "qcow2",
+ "type": "221"
+ },
+ {
+ "case": "qcow",
+ "type": "222"
+ },
+ {
+ "case": "qed",
+ "type": "223"
+ },
+ {
+ "case": "quorum",
+ "type": "224"
+ },
+ {
+ "case": "raw",
+ "type": "225"
+ },
+ {
+ "case": "rbd",
+ "type": "226"
+ },
+ {
+ "case": "replication",
+ "type": "227"
+ },
+ {
+ "case": "sheepdog",
+ "type": "228"
+ },
+ {
+ "case": "ssh",
+ "type": "229"
+ },
+ {
+ "case": "throttle",
+ "type": "230"
+ },
+ {
+ "case": "vdi",
+ "type": "209"
+ },
+ {
+ "case": "vhdx",
+ "type": "209"
+ },
+ {
+ "case": "vmdk",
+ "type": "223"
+ },
+ {
+ "case": "vpc",
+ "type": "209"
+ },
+ {
+ "case": "vvfat",
+ "type": "231"
+ },
+ {
+ "case": "vxhs",
+ "type": "232"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "203"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard",
+ "default": null,
+ "type": "204"
+ },
+ {
+ "name": "cache",
+ "default": null,
+ "type": "205"
+ },
+ {
+ "name": "read-only",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "force-share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detect-zeroes",
+ "default": null,
+ "type": "206"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "49",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "233"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "202"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "50",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "read-only-mode",
+ "default": null,
+ "type": "234"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "51",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "52",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "53",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "233"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "54",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "55",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "overlay",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "56",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "57",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vm-state-size",
+ "type": "int"
+ },
+ {
+ "name": "date-sec",
+ "type": "int"
+ },
+ {
+ "name": "date-nsec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-sec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-nsec",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "58",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "59",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot-file",
+ "type": "str"
+ },
+ {
+ "name": "snapshot-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "235"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "60",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "arg",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "61",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "image-node-name",
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "62",
+ "members": [
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "63",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "236"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "64",
+ "members": [
+ {
+ "name": "pty",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "65",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "236"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "66",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "67",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "68",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "hostname",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cert-subject",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "69",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "70",
+ "members": [
+ {
+ "name": "index",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "71",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "72",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[73]",
+ "element-type": "73",
+ "meta-type": "array"
+ },
+ {
+ "name": "73",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "74",
+ "members": [
+ {
+ "name": "driver",
+ "type": "str"
+ },
+ {
+ "name": "bus",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "75",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "76",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "233"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "202"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "77",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "233"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "unmap",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "78",
+ "members": [
+ {
+ "name": "paging",
+ "type": "bool"
+ },
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "begin",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "237"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "79",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "80",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "81",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "time",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "82",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "83",
+ "members": [
+ {
+ "name": "command-line",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "str",
+ "json-type": "string",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "84",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "events",
+ "type": "[238]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "85",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "86",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ },
+ {
+ "name": "blk",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "87",
+ "members": [
+ {
+ "name": "state",
+ "type": "193"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "88",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "89",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "90",
+ "members": [
+ {
+ "name": "capabilities",
+ "type": "[140]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "91",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "239"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "239"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "x-multifd-channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-multifd-page-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "xbzrle-cache-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "92",
+ "members": [
+ {
+ "name": "value",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "93",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "94",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "95",
+ "members": [
+ {
+ "name": "addr",
+ "type": "240"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "96",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "97",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "98",
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "99",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "100",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "101",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "any",
+ "json-type": "value",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "102",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[103]",
+ "element-type": "103",
+ "meta-type": "array"
+ },
+ {
+ "name": "103",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "104",
+ "members": [
+ {
+ "name": "implements",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[105]",
+ "element-type": "105",
+ "meta-type": "array"
+ },
+ {
+ "name": "105",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "106",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[107]",
+ "element-type": "107",
+ "meta-type": "array"
+ },
+ {
+ "name": "107",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "slot",
+ "type": "str"
+ },
+ {
+ "name": "slot-type",
+ "type": "241"
+ },
+ {
+ "name": "source",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "108",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[109]",
+ "element-type": "109",
+ "meta-type": "array"
+ },
+ {
+ "name": "109",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "qdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "removable",
+ "type": "bool"
+ },
+ {
+ "name": "locked",
+ "type": "bool"
+ },
+ {
+ "name": "inserted",
+ "default": null,
+ "type": "143"
+ },
+ {
+ "name": "tray_open",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "io-status",
+ "default": null,
+ "type": "242"
+ },
+ {
+ "name": "dirty-bitmaps",
+ "default": null,
+ "type": "[243]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[110]",
+ "element-type": "110",
+ "meta-type": "array"
+ },
+ {
+ "name": "110",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "paused",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "io-status",
+ "type": "242"
+ },
+ {
+ "name": "ready",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "111",
+ "members": [
+ {
+ "name": "query-nodes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[112]",
+ "element-type": "112",
+ "meta-type": "array"
+ },
+ {
+ "name": "112",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "244"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "112"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "112"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[113]",
+ "element-type": "113",
+ "meta-type": "array"
+ },
+ {
+ "name": "113",
+ "members": [
+ {
+ "name": "label",
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "frontend-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[114]",
+ "element-type": "114",
+ "meta-type": "array"
+ },
+ {
+ "name": "114",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "115",
+ "members": [
+ {
+ "name": "option",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[116]",
+ "element-type": "116",
+ "meta-type": "array"
+ },
+ {
+ "name": "116",
+ "members": [
+ {
+ "name": "option",
+ "type": "str"
+ },
+ {
+ "name": "parameters",
+ "type": "[245]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[117]",
+ "element-type": "117",
+ "meta-type": "array"
+ },
+ {
+ "name": "117",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[118]",
+ "element-type": "118",
+ "meta-type": "array"
+ },
+ {
+ "name": "118",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "migration-safe",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "static",
+ "type": "bool"
+ },
+ {
+ "name": "unavailable-features",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "119",
+ "members": [
+ {
+ "name": "modela",
+ "type": "246"
+ },
+ {
+ "name": "modelb",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "120",
+ "members": [
+ {
+ "name": "model",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "121",
+ "members": [
+ {
+ "name": "modela",
+ "type": "246"
+ },
+ {
+ "name": "modelb",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "122",
+ "members": [
+ {
+ "name": "result",
+ "type": "247"
+ },
+ {
+ "name": "responsible-properties",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "123",
+ "members": [
+ {
+ "name": "type",
+ "type": "248"
+ },
+ {
+ "name": "model",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "124",
+ "members": [
+ {
+ "name": "model",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[125]",
+ "element-type": "125",
+ "meta-type": "array"
+ },
+ {
+ "name": "125",
+ "tag": "arch",
+ "variants": [
+ {
+ "case": "x86",
+ "type": "251"
+ },
+ {
+ "case": "sparc",
+ "type": "252"
+ },
+ {
+ "case": "ppc",
+ "type": "253"
+ },
+ {
+ "case": "mips",
+ "type": "254"
+ },
+ {
+ "case": "tricore",
+ "type": "255"
+ },
+ {
+ "case": "other",
+ "type": "256"
+ }
+ ],
+ "members": [
+ {
+ "name": "CPU",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "halted",
+ "type": "bool"
+ },
+ {
+ "name": "qom_path",
+ "type": "str"
+ },
+ {
+ "name": "thread_id",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "249"
+ },
+ {
+ "name": "arch",
+ "type": "250"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "126",
+ "members": [
+ {
+ "name": "status",
+ "type": "257"
+ },
+ {
+ "name": "completed",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "127",
+ "members": [
+ {
+ "name": "formats",
+ "type": "[237]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[128]",
+ "element-type": "128",
+ "meta-type": "array"
+ },
+ {
+ "name": "128",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[129]",
+ "element-type": "129",
+ "meta-type": "array"
+ },
+ {
+ "name": "129",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fds",
+ "type": "[258]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[130]",
+ "element-type": "130",
+ "meta-type": "array"
+ },
+ {
+ "name": "130",
+ "members": [
+ {
+ "name": "version",
+ "type": "int"
+ },
+ {
+ "name": "emulated",
+ "type": "bool"
+ },
+ {
+ "name": "kernel",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[131]",
+ "element-type": "131",
+ "meta-type": "array"
+ },
+ {
+ "name": "131",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "vcpus-count",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "type": "249"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[132]",
+ "element-type": "132",
+ "meta-type": "array"
+ },
+ {
+ "name": "132",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ },
+ {
+ "name": "poll-max-ns",
+ "type": "int"
+ },
+ {
+ "name": "poll-grow",
+ "type": "int"
+ },
+ {
+ "name": "poll-shrink",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "133",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "present",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[134]",
+ "element-type": "134",
+ "meta-type": "array"
+ },
+ {
+ "name": "134",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "alias",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "is-default",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cpu-max",
+ "type": "int"
+ },
+ {
+ "name": "hotpluggable-cpus",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[135]",
+ "element-type": "135",
+ "meta-type": "array"
+ },
+ {
+ "name": "135",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "type": "bool"
+ },
+ {
+ "name": "dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "type": "[int]"
+ },
+ {
+ "name": "policy",
+ "type": "259"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[136]",
+ "element-type": "136",
+ "meta-type": "array"
+ },
+ {
+ "name": "136",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dimm",
+ "type": "261"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "260"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "137",
+ "members": [
+ {
+ "name": "base-memory",
+ "type": "int"
+ },
+ {
+ "name": "plugged-memory",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[138]",
+ "element-type": "138",
+ "meta-type": "array"
+ },
+ {
+ "name": "138",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "absolute",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "139",
+ "members": [
+ {
+ "name": "status",
+ "default": null,
+ "type": "193"
+ },
+ {
+ "name": "ram",
+ "default": null,
+ "type": "262"
+ },
+ {
+ "name": "disk",
+ "default": null,
+ "type": "262"
+ },
+ {
+ "name": "xbzrle-cache",
+ "default": null,
+ "type": "263"
+ },
+ {
+ "name": "total-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "expected-downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "setup-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-percentage",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "error-desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "int",
+ "json-type": "int",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "[140]",
+ "element-type": "140",
+ "meta-type": "array"
+ },
+ {
+ "name": "140",
+ "members": [
+ {
+ "name": "capability",
+ "type": "264"
+ },
+ {
+ "name": "state",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "141",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "x-multifd-channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-multifd-page-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "xbzrle-cache-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "142",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[143]",
+ "element-type": "143",
+ "meta-type": "array"
+ },
+ {
+ "name": "143",
+ "members": [
+ {
+ "name": "file",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ro",
+ "type": "bool"
+ },
+ {
+ "name": "drv",
+ "type": "str"
+ },
+ {
+ "name": "backing_file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing_file_depth",
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "type": "bool"
+ },
+ {
+ "name": "encryption_key_missing",
+ "type": "bool"
+ },
+ {
+ "name": "detect_zeroes",
+ "type": "206"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "image",
+ "type": "265"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cache",
+ "type": "266"
+ },
+ {
+ "name": "write_threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[144]",
+ "element-type": "144",
+ "meta-type": "array"
+ },
+ {
+ "name": "144",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "devices",
+ "type": "[267]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[145]",
+ "element-type": "145",
+ "meta-type": "array"
+ },
+ {
+ "name": "145",
+ "tag": "meta-type",
+ "variants": [
+ {
+ "case": "builtin",
+ "type": "269"
+ },
+ {
+ "case": "enum",
+ "type": "270"
+ },
+ {
+ "case": "array",
+ "type": "271"
+ },
+ {
+ "case": "object",
+ "type": "272"
+ },
+ {
+ "case": "alternate",
+ "type": "273"
+ },
+ {
+ "case": "command",
+ "type": "274"
+ },
+ {
+ "case": "event",
+ "type": "275"
+ }
+ ],
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "meta-type",
+ "type": "268"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "146",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "147",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "ports",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "148",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "tbl-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[149]",
+ "element-type": "149",
+ "meta-type": "array"
+ },
+ {
+ "name": "149",
+ "members": [
+ {
+ "name": "cookie",
+ "type": "int"
+ },
+ {
+ "name": "hits",
+ "type": "int"
+ },
+ {
+ "name": "key",
+ "type": "276"
+ },
+ {
+ "name": "mask",
+ "type": "277"
+ },
+ {
+ "name": "action",
+ "type": "278"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "150",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[151]",
+ "element-type": "151",
+ "meta-type": "array"
+ },
+ {
+ "name": "151",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "index",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "set-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pop-vlan",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-ids",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "set-eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "set-eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ttl-check",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "152",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[153]",
+ "element-type": "153",
+ "meta-type": "array"
+ },
+ {
+ "name": "153",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "link-up",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "duplex",
+ "type": "279"
+ },
+ {
+ "name": "autoneg",
+ "type": "280"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "154",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[155]",
+ "element-type": "155",
+ "meta-type": "array"
+ },
+ {
+ "name": "155",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "promiscuous",
+ "type": "bool"
+ },
+ {
+ "name": "multicast",
+ "type": "281"
+ },
+ {
+ "name": "unicast",
+ "type": "281"
+ },
+ {
+ "name": "vlan",
+ "type": "281"
+ },
+ {
+ "name": "broadcast-allowed",
+ "type": "bool"
+ },
+ {
+ "name": "multicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "unicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "main-mac",
+ "type": "str"
+ },
+ {
+ "name": "vlan-table",
+ "type": "[int]"
+ },
+ {
+ "name": "unicast-table",
+ "type": "[str]"
+ },
+ {
+ "name": "multicast-table",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "156",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "migrated",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compiled-version",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mouse-mode",
+ "type": "282"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "[197]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "157",
+ "members": [
+ {
+ "name": "running",
+ "type": "bool"
+ },
+ {
+ "name": "singlestep",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "283"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "158",
+ "members": [
+ {
+ "name": "arch",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[159]",
+ "element-type": "159",
+ "meta-type": "array"
+ },
+ {
+ "name": "159",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "type": "160"
+ },
+ {
+ "name": "options",
+ "type": "284"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[160]",
+ "element-type": "160",
+ "meta-type": "array"
+ },
+ {
+ "name": "160",
+ "meta-type": "enum",
+ "values": [
+ "tpm-tis"
+ ]
+ },
+ {
+ "name": "[161]",
+ "element-type": "161",
+ "meta-type": "array"
+ },
+ {
+ "name": "161",
+ "meta-type": "enum",
+ "values": [
+ "passthrough",
+ "emulator"
+ ]
+ },
+ {
+ "name": "162",
+ "members": [
+ {
+ "name": "UUID",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "163",
+ "members": [
+ {
+ "name": "qemu",
+ "type": "285"
+ },
+ {
+ "name": "package",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "164",
+ "members": [
+ {
+ "name": "guid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "165",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "default": null,
+ "type": "286"
+ },
+ {
+ "name": "service",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "clients",
+ "default": null,
+ "type": "[200]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[166]",
+ "element-type": "166",
+ "meta-type": "array"
+ },
+ {
+ "name": "166",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[287]"
+ },
+ {
+ "name": "clients",
+ "type": "[200]"
+ },
+ {
+ "name": "auth",
+ "type": "288"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "289"
+ },
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "167",
+ "members": [
+ {
+ "name": "error",
+ "type": "bool"
+ },
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "168",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "169",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "290"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "170",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "290"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "171",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "172",
+ "members": [
+ {
+ "name": "keys",
+ "type": "[291]"
+ },
+ {
+ "name": "hold-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "173",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "up",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "174",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "175",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[176]",
+ "element-type": "176",
+ "meta-type": "array"
+ },
+ {
+ "name": "176",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "state",
+ "type": "292"
+ },
+ {
+ "name": "vcpu",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "177",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "ignore-unavailable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "178",
+ "members": [
+ {
+ "name": "actions",
+ "type": "[293]"
+ },
+ {
+ "name": "properties",
+ "default": null,
+ "type": "294"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "179",
+ "members": [
+ {
+ "name": "action",
+ "type": "201"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "180",
+ "members": [
+ {
+ "name": "parent",
+ "type": "str"
+ },
+ {
+ "name": "child",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "181",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "182",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "183",
+ "members": [
+ {
+ "name": "sha256",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "184",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "185",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "live",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "186",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "187",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "primary",
+ "type": "bool"
+ },
+ {
+ "name": "failover",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "bool",
+ "json-type": "boolean",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "188",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write"
+ ]
+ },
+ {
+ "name": "189",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "report",
+ "stop"
+ ]
+ },
+ {
+ "name": "190",
+ "meta-type": "enum",
+ "values": [
+ "commit",
+ "stream",
+ "mirror",
+ "backup"
+ ]
+ },
+ {
+ "name": "191",
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "poweroff"
+ ]
+ },
+ {
+ "name": "192",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "hyper-v",
+ "type": "296"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "295"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "193",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "setup",
+ "cancelling",
+ "cancelled",
+ "active",
+ "postcopy-active",
+ "completed",
+ "failed",
+ "colo",
+ "pre-switchover",
+ "device"
+ ]
+ },
+ {
+ "name": "194",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "flush"
+ ]
+ },
+ {
+ "name": "195",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "196",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "197",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ },
+ {
+ "name": "connection-id",
+ "type": "int"
+ },
+ {
+ "name": "channel-type",
+ "type": "int"
+ },
+ {
+ "name": "channel-id",
+ "type": "int"
+ },
+ {
+ "name": "tls",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "198",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "199",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "200",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "x509_dname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sasl_username",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "201",
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown",
+ "poweroff",
+ "pause",
+ "debug",
+ "none",
+ "inject-nmi"
+ ]
+ },
+ {
+ "name": "202",
+ "meta-type": "enum",
+ "values": [
+ "report",
+ "ignore",
+ "enospc",
+ "stop",
+ "auto"
+ ]
+ },
+ {
+ "name": "203",
+ "meta-type": "enum",
+ "values": [
+ "blkdebug",
+ "blkverify",
+ "bochs",
+ "cloop",
+ "dmg",
+ "file",
+ "ftp",
+ "ftps",
+ "gluster",
+ "host_cdrom",
+ "host_device",
+ "http",
+ "https",
+ "iscsi",
+ "luks",
+ "nbd",
+ "nfs",
+ "null-aio",
+ "null-co",
+ "parallels",
+ "qcow",
+ "qcow2",
+ "qed",
+ "quorum",
+ "raw",
+ "rbd",
+ "replication",
+ "sheepdog",
+ "ssh",
+ "throttle",
+ "vdi",
+ "vhdx",
+ "vmdk",
+ "vpc",
+ "vvfat",
+ "vxhs"
+ ]
+ },
+ {
+ "name": "204",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "unmap"
+ ]
+ },
+ {
+ "name": "205",
+ "members": [
+ {
+ "name": "direct",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "206",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "unmap"
+ ]
+ },
+ {
+ "name": "207",
+ "members": [
+ {
+ "name": "image",
+ "type": "297"
+ },
+ {
+ "name": "config",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "align",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-transfer",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "inject-error",
+ "default": null,
+ "type": "[298]"
+ },
+ {
+ "name": "set-state",
+ "default": null,
+ "type": "[299]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "208",
+ "members": [
+ {
+ "name": "test",
+ "type": "297"
+ },
+ {
+ "name": "raw",
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "209",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "210",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "pr-manager",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "locking",
+ "default": null,
+ "type": "300"
+ },
+ {
+ "name": "aio",
+ "default": null,
+ "type": "301"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "211",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "212",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "213",
+ "members": [
+ {
+ "name": "volume",
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[302]"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "214",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "215",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "216",
+ "members": [
+ {
+ "name": "transport",
+ "type": "303"
+ },
+ {
+ "name": "portal",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "initiator-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "header-digest",
+ "default": null,
+ "type": "304"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "217",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "218",
+ "members": [
+ {
+ "name": "server",
+ "type": "302"
+ },
+ {
+ "name": "export",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "219",
+ "members": [
+ {
+ "name": "server",
+ "type": "305"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tcp-syn-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "readahead-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "page-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "220",
+ "members": [
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "latency-ns",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "221",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "306"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-request",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-snapshot",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-other",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "overlap-check",
+ "default": null,
+ "type": "307"
+ },
+ {
+ "name": "cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "l2-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "refcount-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cache-clean-interval",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "308"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "222",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "306"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "309"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "223",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "306"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "224",
+ "members": [
+ {
+ "name": "blkverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "children",
+ "type": "[297]"
+ },
+ {
+ "name": "vote-threshold",
+ "type": "int"
+ },
+ {
+ "name": "rewrite-corrupted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-pattern",
+ "default": null,
+ "type": "310"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "225",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "226",
+ "members": [
+ {
+ "name": "pool",
+ "type": "str"
+ },
+ {
+ "name": "image",
+ "type": "str"
+ },
+ {
+ "name": "conf",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "[311]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "227",
+ "members": [
+ {
+ "name": "file",
+ "type": "297"
+ },
+ {
+ "name": "mode",
+ "type": "312"
+ },
+ {
+ "name": "top-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "228",
+ "members": [
+ {
+ "name": "server",
+ "type": "302"
+ },
+ {
+ "name": "vdi",
+ "type": "str"
+ },
+ {
+ "name": "snap-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "229",
+ "members": [
+ {
+ "name": "server",
+ "type": "313"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "230",
+ "members": [
+ {
+ "name": "throttle-group",
+ "type": "str"
+ },
+ {
+ "name": "file",
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "231",
+ "members": [
+ {
+ "name": "dir",
+ "type": "str"
+ },
+ {
+ "name": "fat-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "floppy",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "label",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "rw",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "232",
+ "members": [
+ {
+ "name": "vdisk-id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "311"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "233",
+ "meta-type": "enum",
+ "values": [
+ "top",
+ "full",
+ "none",
+ "incremental"
+ ]
+ },
+ {
+ "name": "234",
+ "meta-type": "enum",
+ "values": [
+ "retain",
+ "read-only",
+ "read-write"
+ ]
+ },
+ {
+ "name": "235",
+ "meta-type": "enum",
+ "values": [
+ "existing",
+ "absolute-paths"
+ ]
+ },
+ {
+ "name": "236",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "file",
+ "type": "315"
+ },
+ {
+ "case": "serial",
+ "type": "316"
+ },
+ {
+ "case": "parallel",
+ "type": "316"
+ },
+ {
+ "case": "pipe",
+ "type": "316"
+ },
+ {
+ "case": "socket",
+ "type": "317"
+ },
+ {
+ "case": "udp",
+ "type": "318"
+ },
+ {
+ "case": "pty",
+ "type": "319"
+ },
+ {
+ "case": "null",
+ "type": "319"
+ },
+ {
+ "case": "mux",
+ "type": "320"
+ },
+ {
+ "case": "msmouse",
+ "type": "319"
+ },
+ {
+ "case": "wctablet",
+ "type": "319"
+ },
+ {
+ "case": "braille",
+ "type": "319"
+ },
+ {
+ "case": "testdev",
+ "type": "319"
+ },
+ {
+ "case": "stdio",
+ "type": "321"
+ },
+ {
+ "case": "console",
+ "type": "319"
+ },
+ {
+ "case": "spicevmc",
+ "type": "322"
+ },
+ {
+ "case": "spiceport",
+ "type": "323"
+ },
+ {
+ "case": "vc",
+ "type": "324"
+ },
+ {
+ "case": "ringbuf",
+ "type": "325"
+ },
+ {
+ "case": "memory",
+ "type": "325"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "314"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "237",
+ "meta-type": "enum",
+ "values": [
+ "elf",
+ "kdump-zlib",
+ "kdump-lzo",
+ "kdump-snappy"
+ ]
+ },
+ {
+ "name": "[238]",
+ "element-type": "238",
+ "meta-type": "array"
+ },
+ {
+ "name": "238",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "key",
+ "type": "327"
+ },
+ {
+ "case": "btn",
+ "type": "328"
+ },
+ {
+ "case": "rel",
+ "type": "329"
+ },
+ {
+ "case": "abs",
+ "type": "329"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "326"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "239",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "number",
+ "json-type": "number",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "240",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "331"
+ },
+ {
+ "case": "unix",
+ "type": "332"
+ },
+ {
+ "case": "vsock",
+ "type": "333"
+ },
+ {
+ "case": "fd",
+ "type": "334"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "330"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "241",
+ "meta-type": "enum",
+ "values": [
+ "DIMM",
+ "CPU"
+ ]
+ },
+ {
+ "name": "242",
+ "meta-type": "enum",
+ "values": [
+ "ok",
+ "failed",
+ "nospace"
+ ]
+ },
+ {
+ "name": "[243]",
+ "element-type": "243",
+ "meta-type": "array"
+ },
+ {
+ "name": "243",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "count",
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "335"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "244",
+ "members": [
+ {
+ "name": "rd_bytes",
+ "type": "int"
+ },
+ {
+ "name": "wr_bytes",
+ "type": "int"
+ },
+ {
+ "name": "rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "rd_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_highest_offset",
+ "type": "int"
+ },
+ {
+ "name": "rd_merged",
+ "type": "int"
+ },
+ {
+ "name": "wr_merged",
+ "type": "int"
+ },
+ {
+ "name": "idle_time_ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "failed_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "account_invalid",
+ "type": "bool"
+ },
+ {
+ "name": "account_failed",
+ "type": "bool"
+ },
+ {
+ "name": "timed_stats",
+ "type": "[336]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[245]",
+ "element-type": "245",
+ "meta-type": "array"
+ },
+ {
+ "name": "245",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "337"
+ },
+ {
+ "name": "help",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[str]",
+ "element-type": "str",
+ "meta-type": "array"
+ },
+ {
+ "name": "246",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "247",
+ "meta-type": "enum",
+ "values": [
+ "incompatible",
+ "identical",
+ "superset",
+ "subset"
+ ]
+ },
+ {
+ "name": "248",
+ "meta-type": "enum",
+ "values": [
+ "static",
+ "full"
+ ]
+ },
+ {
+ "name": "249",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "250",
+ "meta-type": "enum",
+ "values": [
+ "x86",
+ "sparc",
+ "ppc",
+ "mips",
+ "tricore",
+ "other"
+ ]
+ },
+ {
+ "name": "251",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "252",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ },
+ {
+ "name": "npc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "253",
+ "members": [
+ {
+ "name": "nip",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "254",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "255",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "256",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "257",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "active",
+ "completed",
+ "failed"
+ ]
+ },
+ {
+ "name": "[237]",
+ "element-type": "237",
+ "meta-type": "array"
+ },
+ {
+ "name": "[258]",
+ "element-type": "258",
+ "meta-type": "array"
+ },
+ {
+ "name": "258",
+ "members": [
+ {
+ "name": "fd",
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[int]",
+ "element-type": "int",
+ "meta-type": "array"
+ },
+ {
+ "name": "259",
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "preferred",
+ "bind",
+ "interleave"
+ ]
+ },
+ {
+ "name": "260",
+ "meta-type": "enum",
+ "values": [
+ "dimm"
+ ]
+ },
+ {
+ "name": "261",
+ "members": [
+ {
+ "name": "data",
+ "type": "338"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "262",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ },
+ {
+ "name": "remaining",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ },
+ {
+ "name": "duplicate",
+ "type": "int"
+ },
+ {
+ "name": "skipped",
+ "type": "int"
+ },
+ {
+ "name": "normal",
+ "type": "int"
+ },
+ {
+ "name": "normal-bytes",
+ "type": "int"
+ },
+ {
+ "name": "dirty-pages-rate",
+ "type": "int"
+ },
+ {
+ "name": "mbps",
+ "type": "number"
+ },
+ {
+ "name": "dirty-sync-count",
+ "type": "int"
+ },
+ {
+ "name": "postcopy-requests",
+ "type": "int"
+ },
+ {
+ "name": "page-size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "263",
+ "members": [
+ {
+ "name": "cache-size",
+ "type": "int"
+ },
+ {
+ "name": "bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss-rate",
+ "type": "number"
+ },
+ {
+ "name": "overflow",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "264",
+ "meta-type": "enum",
+ "values": [
+ "xbzrle",
+ "rdma-pin-all",
+ "auto-converge",
+ "zero-blocks",
+ "compress",
+ "events",
+ "postcopy-ram",
+ "x-colo",
+ "release-ram",
+ "block",
+ "return-path",
+ "pause-before-switchover",
+ "x-multifd"
+ ]
+ },
+ {
+ "name": "265",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "type": "str"
+ },
+ {
+ "name": "dirty-flag",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "actual-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "virtual-size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "compressed",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "full-backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-filename-format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshots",
+ "default": null,
+ "type": "[57]"
+ },
+ {
+ "name": "backing-image",
+ "default": null,
+ "type": "265"
+ },
+ {
+ "name": "format-specific",
+ "default": null,
+ "type": "339"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "266",
+ "members": [
+ {
+ "name": "writeback",
+ "type": "bool"
+ },
+ {
+ "name": "direct",
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[267]",
+ "element-type": "267",
+ "meta-type": "array"
+ },
+ {
+ "name": "267",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "function",
+ "type": "int"
+ },
+ {
+ "name": "class_info",
+ "type": "340"
+ },
+ {
+ "name": "id",
+ "type": "341"
+ },
+ {
+ "name": "irq",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "qdev_id",
+ "type": "str"
+ },
+ {
+ "name": "pci_bridge",
+ "default": null,
+ "type": "342"
+ },
+ {
+ "name": "regions",
+ "type": "[343]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "268",
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "enum",
+ "array",
+ "object",
+ "alternate",
+ "command",
+ "event"
+ ]
+ },
+ {
+ "name": "269",
+ "members": [
+ {
+ "name": "json-type",
+ "type": "344"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "270",
+ "members": [
+ {
+ "name": "values",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "271",
+ "members": [
+ {
+ "name": "element-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "272",
+ "members": [
+ {
+ "name": "members",
+ "type": "[345]"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "variants",
+ "default": null,
+ "type": "[346]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "273",
+ "members": [
+ {
+ "name": "members",
+ "type": "[347]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "274",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ },
+ {
+ "name": "ret-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "275",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "276",
+ "members": [
+ {
+ "name": "priority",
+ "type": "int"
+ },
+ {
+ "name": "tbl-id",
+ "type": "int"
+ },
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-dst",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "277",
+ "members": [
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "278",
+ "members": [
+ {
+ "name": "goto-tbl",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-lport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "279",
+ "meta-type": "enum",
+ "values": [
+ "half",
+ "full"
+ ]
+ },
+ {
+ "name": "280",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on"
+ ]
+ },
+ {
+ "name": "281",
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "none",
+ "all"
+ ]
+ },
+ {
+ "name": "282",
+ "meta-type": "enum",
+ "values": [
+ "client",
+ "server",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[197]",
+ "element-type": "197",
+ "meta-type": "array"
+ },
+ {
+ "name": "283",
+ "meta-type": "enum",
+ "values": [
+ "debug",
+ "inmigrate",
+ "internal-error",
+ "io-error",
+ "paused",
+ "postmigrate",
+ "prelaunch",
+ "finish-migrate",
+ "restore-vm",
+ "running",
+ "save-vm",
+ "shutdown",
+ "suspended",
+ "watchdog",
+ "guest-panicked",
+ "colo"
+ ]
+ },
+ {
+ "name": "284",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "passthrough",
+ "type": "349"
+ },
+ {
+ "case": "emulator",
+ "type": "350"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "348"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "285",
+ "members": [
+ {
+ "name": "major",
+ "type": "int"
+ },
+ {
+ "name": "minor",
+ "type": "int"
+ },
+ {
+ "name": "micro",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "286",
+ "meta-type": "enum",
+ "values": [
+ "ipv4",
+ "ipv6",
+ "unix",
+ "vsock",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[200]",
+ "element-type": "200",
+ "meta-type": "array"
+ },
+ {
+ "name": "[287]",
+ "element-type": "287",
+ "meta-type": "array"
+ },
+ {
+ "name": "287",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "286"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "type": "288"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "289"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "288",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "vnc",
+ "ra2",
+ "ra2ne",
+ "tight",
+ "ultra",
+ "tls",
+ "vencrypt",
+ "sasl"
+ ]
+ },
+ {
+ "name": "289",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "tls-none",
+ "x509-none",
+ "tls-vnc",
+ "x509-vnc",
+ "tls-plain",
+ "x509-plain",
+ "tls-sasl",
+ "x509-sasl"
+ ]
+ },
+ {
+ "name": "290",
+ "meta-type": "enum",
+ "values": [
+ "utf8",
+ "base64"
+ ]
+ },
+ {
+ "name": "[291]",
+ "element-type": "291",
+ "meta-type": "array"
+ },
+ {
+ "name": "291",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "number",
+ "type": "352"
+ },
+ {
+ "case": "qcode",
+ "type": "353"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "351"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "292",
+ "meta-type": "enum",
+ "values": [
+ "unavailable",
+ "disabled",
+ "enabled"
+ ]
+ },
+ {
+ "name": "[293]",
+ "element-type": "293",
+ "meta-type": "array"
+ },
+ {
+ "name": "293",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "abort",
+ "type": "355"
+ },
+ {
+ "case": "block-dirty-bitmap-add",
+ "type": "356"
+ },
+ {
+ "case": "block-dirty-bitmap-clear",
+ "type": "357"
+ },
+ {
+ "case": "blockdev-backup",
+ "type": "358"
+ },
+ {
+ "case": "blockdev-snapshot",
+ "type": "359"
+ },
+ {
+ "case": "blockdev-snapshot-internal-sync",
+ "type": "360"
+ },
+ {
+ "case": "blockdev-snapshot-sync",
+ "type": "361"
+ },
+ {
+ "case": "drive-backup",
+ "type": "362"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "354"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "294",
+ "members": [
+ {
+ "name": "completion-mode",
+ "default": null,
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "295",
+ "meta-type": "enum",
+ "values": [
+ "hyper-v"
+ ]
+ },
+ {
+ "name": "296",
+ "members": [
+ {
+ "name": "arg1",
+ "type": "int"
+ },
+ {
+ "name": "arg2",
+ "type": "int"
+ },
+ {
+ "name": "arg3",
+ "type": "int"
+ },
+ {
+ "name": "arg4",
+ "type": "int"
+ },
+ {
+ "name": "arg5",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "297",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "[298]",
+ "element-type": "298",
+ "meta-type": "array"
+ },
+ {
+ "name": "298",
+ "members": [
+ {
+ "name": "event",
+ "type": "364"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "errno",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "sector",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "once",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "immediately",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[299]",
+ "element-type": "299",
+ "meta-type": "array"
+ },
+ {
+ "name": "299",
+ "members": [
+ {
+ "name": "event",
+ "type": "364"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new_state",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "300",
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "on",
+ "off"
+ ]
+ },
+ {
+ "name": "301",
+ "meta-type": "enum",
+ "values": [
+ "threads",
+ "native"
+ ]
+ },
+ {
+ "name": "[302]",
+ "element-type": "302",
+ "meta-type": "array"
+ },
+ {
+ "name": "302",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "313"
+ },
+ {
+ "case": "unix",
+ "type": "366"
+ },
+ {
+ "case": "vsock",
+ "type": "367"
+ },
+ {
+ "case": "fd",
+ "type": "368"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "365"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "303",
+ "meta-type": "enum",
+ "values": [
+ "tcp",
+ "iser"
+ ]
+ },
+ {
+ "name": "304",
+ "meta-type": "enum",
+ "values": [
+ "crc32c",
+ "none",
+ "crc32c-none",
+ "none-crc32c"
+ ]
+ },
+ {
+ "name": "305",
+ "members": [
+ {
+ "name": "type",
+ "type": "369"
+ },
+ {
+ "name": "host",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "306",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "307",
+ "members": [
+ {
+ "type": "370"
+ },
+ {
+ "type": "371"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "308",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "373"
+ },
+ {
+ "case": "luks",
+ "type": "374"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "372"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "309",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "373"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "375"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[297]",
+ "element-type": "297",
+ "meta-type": "array"
+ },
+ {
+ "name": "310",
+ "meta-type": "enum",
+ "values": [
+ "quorum",
+ "fifo"
+ ]
+ },
+ {
+ "name": "[311]",
+ "element-type": "311",
+ "meta-type": "array"
+ },
+ {
+ "name": "311",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "312",
+ "meta-type": "enum",
+ "values": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "313",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "numeric",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "to",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ipv4",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "314",
+ "meta-type": "enum",
+ "values": [
+ "file",
+ "serial",
+ "parallel",
+ "pipe",
+ "socket",
+ "udp",
+ "pty",
+ "null",
+ "mux",
+ "msmouse",
+ "wctablet",
+ "braille",
+ "testdev",
+ "stdio",
+ "console",
+ "spicevmc",
+ "spiceport",
+ "vc",
+ "ringbuf",
+ "memory"
+ ]
+ },
+ {
+ "name": "315",
+ "members": [
+ {
+ "name": "data",
+ "type": "376"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "316",
+ "members": [
+ {
+ "name": "data",
+ "type": "377"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "317",
+ "members": [
+ {
+ "name": "data",
+ "type": "378"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "318",
+ "members": [
+ {
+ "name": "data",
+ "type": "379"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "319",
+ "members": [
+ {
+ "name": "data",
+ "type": "380"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "320",
+ "members": [
+ {
+ "name": "data",
+ "type": "381"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "321",
+ "members": [
+ {
+ "name": "data",
+ "type": "382"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "322",
+ "members": [
+ {
+ "name": "data",
+ "type": "383"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "323",
+ "members": [
+ {
+ "name": "data",
+ "type": "384"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "324",
+ "members": [
+ {
+ "name": "data",
+ "type": "385"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "325",
+ "members": [
+ {
+ "name": "data",
+ "type": "386"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "326",
+ "meta-type": "enum",
+ "values": [
+ "key",
+ "btn",
+ "rel",
+ "abs"
+ ]
+ },
+ {
+ "name": "327",
+ "members": [
+ {
+ "name": "data",
+ "type": "387"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "328",
+ "members": [
+ {
+ "name": "data",
+ "type": "388"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "329",
+ "members": [
+ {
+ "name": "data",
+ "type": "389"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "null",
+ "json-type": "null",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "330",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "331",
+ "members": [
+ {
+ "name": "data",
+ "type": "313"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "332",
+ "members": [
+ {
+ "name": "data",
+ "type": "366"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "333",
+ "members": [
+ {
+ "name": "data",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "334",
+ "members": [
+ {
+ "name": "data",
+ "type": "368"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "335",
+ "meta-type": "enum",
+ "values": [
+ "active",
+ "disabled",
+ "frozen"
+ ]
+ },
+ {
+ "name": "[336]",
+ "element-type": "336",
+ "meta-type": "array"
+ },
+ {
+ "name": "336",
+ "members": [
+ {
+ "name": "interval_length",
+ "type": "int"
+ },
+ {
+ "name": "min_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_queue_depth",
+ "type": "number"
+ },
+ {
+ "name": "avg_wr_queue_depth",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "337",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "boolean",
+ "number",
+ "size"
+ ]
+ },
+ {
+ "name": "338",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ },
+ {
+ "name": "hotplugged",
+ "type": "bool"
+ },
+ {
+ "name": "hotpluggable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[57]",
+ "element-type": "57",
+ "meta-type": "array"
+ },
+ {
+ "name": "339",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "qcow2",
+ "type": "391"
+ },
+ {
+ "case": "vmdk",
+ "type": "392"
+ },
+ {
+ "case": "luks",
+ "type": "393"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "390"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "340",
+ "members": [
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "class",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "341",
+ "members": [
+ {
+ "name": "device",
+ "type": "int"
+ },
+ {
+ "name": "vendor",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "342",
+ "members": [
+ {
+ "name": "bus",
+ "type": "394"
+ },
+ {
+ "name": "devices",
+ "default": null,
+ "type": "[267]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[343]",
+ "element-type": "343",
+ "meta-type": "array"
+ },
+ {
+ "name": "343",
+ "members": [
+ {
+ "name": "bar",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "address",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "prefetch",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "mem_type_64",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "344",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "number",
+ "int",
+ "boolean",
+ "null",
+ "object",
+ "array",
+ "value"
+ ]
+ },
+ {
+ "name": "[345]",
+ "element-type": "345",
+ "meta-type": "array"
+ },
+ {
+ "name": "345",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[346]",
+ "element-type": "346",
+ "meta-type": "array"
+ },
+ {
+ "name": "346",
+ "members": [
+ {
+ "name": "case",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[347]",
+ "element-type": "347",
+ "meta-type": "array"
+ },
+ {
+ "name": "347",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "348",
+ "meta-type": "enum",
+ "values": [
+ "passthrough",
+ "emulator"
+ ]
+ },
+ {
+ "name": "349",
+ "members": [
+ {
+ "name": "data",
+ "type": "395"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "350",
+ "members": [
+ {
+ "name": "data",
+ "type": "396"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "351",
+ "meta-type": "enum",
+ "values": [
+ "number",
+ "qcode"
+ ]
+ },
+ {
+ "name": "352",
+ "members": [
+ {
+ "name": "data",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "353",
+ "members": [
+ {
+ "name": "data",
+ "type": "397"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "354",
+ "meta-type": "enum",
+ "values": [
+ "abort",
+ "block-dirty-bitmap-add",
+ "block-dirty-bitmap-clear",
+ "blockdev-backup",
+ "blockdev-snapshot",
+ "blockdev-snapshot-internal-sync",
+ "blockdev-snapshot-sync",
+ "drive-backup"
+ ]
+ },
+ {
+ "name": "355",
+ "members": [
+ {
+ "name": "data",
+ "type": "398"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "356",
+ "members": [
+ {
+ "name": "data",
+ "type": "36"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "357",
+ "members": [
+ {
+ "name": "data",
+ "type": "37"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "358",
+ "members": [
+ {
+ "name": "data",
+ "type": "49"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "359",
+ "members": [
+ {
+ "name": "data",
+ "type": "55"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "360",
+ "members": [
+ {
+ "name": "data",
+ "type": "58"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "361",
+ "members": [
+ {
+ "name": "data",
+ "type": "59"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "362",
+ "members": [
+ {
+ "name": "data",
+ "type": "76"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "363",
+ "meta-type": "enum",
+ "values": [
+ "individual",
+ "grouped"
+ ]
+ },
+ {
+ "name": "364",
+ "meta-type": "enum",
+ "values": [
+ "l1_update",
+ "l1_grow_alloc_table",
+ "l1_grow_write_table",
+ "l1_grow_activate_table",
+ "l2_load",
+ "l2_update",
+ "l2_update_compressed",
+ "l2_alloc_cow_read",
+ "l2_alloc_write",
+ "read_aio",
+ "read_backing_aio",
+ "read_compressed",
+ "write_aio",
+ "write_compressed",
+ "vmstate_load",
+ "vmstate_save",
+ "cow_read",
+ "cow_write",
+ "reftable_load",
+ "reftable_grow",
+ "reftable_update",
+ "refblock_load",
+ "refblock_update",
+ "refblock_update_part",
+ "refblock_alloc",
+ "refblock_alloc_hookup",
+ "refblock_alloc_write",
+ "refblock_alloc_write_blocks",
+ "refblock_alloc_write_table",
+ "refblock_alloc_switch_table",
+ "cluster_alloc",
+ "cluster_alloc_bytes",
+ "cluster_free",
+ "flush_to_os",
+ "flush_to_disk",
+ "pwritev_rmw_head",
+ "pwritev_rmw_after_head",
+ "pwritev_rmw_tail",
+ "pwritev_rmw_after_tail",
+ "pwritev",
+ "pwritev_zero",
+ "pwritev_done",
+ "empty_image_prepare",
+ "l1_shrink_write_table",
+ "l1_shrink_free_l2_clusters",
+ "cor_write"
+ ]
+ },
+ {
+ "name": "365",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "366",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "367",
+ "members": [
+ {
+ "name": "cid",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "368",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "369",
+ "meta-type": "enum",
+ "values": [
+ "inet"
+ ]
+ },
+ {
+ "name": "370",
+ "members": [
+ {
+ "name": "template",
+ "default": null,
+ "type": "371"
+ },
+ {
+ "name": "main-header",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l2",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-block",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "snapshot-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l2",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "371",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "constant",
+ "cached",
+ "all"
+ ]
+ },
+ {
+ "name": "372",
+ "meta-type": "enum",
+ "values": [
+ "aes",
+ "luks"
+ ]
+ },
+ {
+ "name": "373",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "374",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "375",
+ "meta-type": "enum",
+ "values": [
+ "aes"
+ ]
+ },
+ {
+ "name": "376",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "in",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "out",
+ "type": "str"
+ },
+ {
+ "name": "append",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "377",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "378",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "type": "240"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "wait",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "nodelay",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "telnet",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tn3270",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reconnect",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "379",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "remote",
+ "type": "240"
+ },
+ {
+ "name": "local",
+ "default": null,
+ "type": "240"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "380",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "381",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "382",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "signal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "383",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "384",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fqdn",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "385",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "width",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "height",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cols",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rows",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "386",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "387",
+ "members": [
+ {
+ "name": "key",
+ "type": "291"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "388",
+ "members": [
+ {
+ "name": "button",
+ "type": "399"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "389",
+ "members": [
+ {
+ "name": "axis",
+ "type": "400"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "390",
+ "meta-type": "enum",
+ "values": [
+ "qcow2",
+ "vmdk",
+ "luks"
+ ]
+ },
+ {
+ "name": "391",
+ "members": [
+ {
+ "name": "data",
+ "type": "401"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "392",
+ "members": [
+ {
+ "name": "data",
+ "type": "402"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "393",
+ "members": [
+ {
+ "name": "data",
+ "type": "403"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "394",
+ "members": [
+ {
+ "name": "number",
+ "type": "int"
+ },
+ {
+ "name": "secondary",
+ "type": "int"
+ },
+ {
+ "name": "subordinate",
+ "type": "int"
+ },
+ {
+ "name": "io_range",
+ "type": "404"
+ },
+ {
+ "name": "memory_range",
+ "type": "404"
+ },
+ {
+ "name": "prefetchable_range",
+ "type": "404"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "395",
+ "members": [
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cancel-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "396",
+ "members": [
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "397",
+ "meta-type": "enum",
+ "values": [
+ "unmapped",
+ "shift",
+ "shift_r",
+ "alt",
+ "alt_r",
+ "ctrl",
+ "ctrl_r",
+ "menu",
+ "esc",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "0",
+ "minus",
+ "equal",
+ "backspace",
+ "tab",
+ "q",
+ "w",
+ "e",
+ "r",
+ "t",
+ "y",
+ "u",
+ "i",
+ "o",
+ "p",
+ "bracket_left",
+ "bracket_right",
+ "ret",
+ "a",
+ "s",
+ "d",
+ "f",
+ "g",
+ "h",
+ "j",
+ "k",
+ "l",
+ "semicolon",
+ "apostrophe",
+ "grave_accent",
+ "backslash",
+ "z",
+ "x",
+ "c",
+ "v",
+ "b",
+ "n",
+ "m",
+ "comma",
+ "dot",
+ "slash",
+ "asterisk",
+ "spc",
+ "caps_lock",
+ "f1",
+ "f2",
+ "f3",
+ "f4",
+ "f5",
+ "f6",
+ "f7",
+ "f8",
+ "f9",
+ "f10",
+ "num_lock",
+ "scroll_lock",
+ "kp_divide",
+ "kp_multiply",
+ "kp_subtract",
+ "kp_add",
+ "kp_enter",
+ "kp_decimal",
+ "sysrq",
+ "kp_0",
+ "kp_1",
+ "kp_2",
+ "kp_3",
+ "kp_4",
+ "kp_5",
+ "kp_6",
+ "kp_7",
+ "kp_8",
+ "kp_9",
+ "less",
+ "f11",
+ "f12",
+ "print",
+ "home",
+ "pgup",
+ "pgdn",
+ "end",
+ "left",
+ "up",
+ "down",
+ "right",
+ "insert",
+ "delete",
+ "stop",
+ "again",
+ "props",
+ "undo",
+ "front",
+ "copy",
+ "open",
+ "paste",
+ "find",
+ "cut",
+ "lf",
+ "help",
+ "meta_l",
+ "meta_r",
+ "compose",
+ "pause",
+ "ro",
+ "hiragana",
+ "henkan",
+ "yen",
+ "kp_comma",
+ "kp_equals",
+ "power",
+ "sleep",
+ "wake",
+ "audionext",
+ "audioprev",
+ "audiostop",
+ "audioplay",
+ "audiomute",
+ "volumeup",
+ "volumedown",
+ "mediaselect",
+ "mail",
+ "calculator",
+ "computer",
+ "ac_home",
+ "ac_back",
+ "ac_forward",
+ "ac_refresh",
+ "ac_bookmarks"
+ ]
+ },
+ {
+ "name": "398",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "399",
+ "meta-type": "enum",
+ "values": [
+ "left",
+ "middle",
+ "right",
+ "wheel-up",
+ "wheel-down",
+ "side",
+ "extra"
+ ]
+ },
+ {
+ "name": "400",
+ "meta-type": "enum",
+ "values": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "name": "401",
+ "members": [
+ {
+ "name": "compat",
+ "type": "str"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "corrupt",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "405"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "402",
+ "members": [
+ {
+ "name": "create-type",
+ "type": "str"
+ },
+ {
+ "name": "cid",
+ "type": "int"
+ },
+ {
+ "name": "parent-cid",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "type": "[265]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "403",
+ "members": [
+ {
+ "name": "cipher-alg",
+ "type": "406"
+ },
+ {
+ "name": "cipher-mode",
+ "type": "407"
+ },
+ {
+ "name": "ivgen-alg",
+ "type": "408"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "409"
+ },
+ {
+ "name": "hash-alg",
+ "type": "409"
+ },
+ {
+ "name": "payload-offset",
+ "type": "int"
+ },
+ {
+ "name": "master-key-iters",
+ "type": "int"
+ },
+ {
+ "name": "uuid",
+ "type": "str"
+ },
+ {
+ "name": "slots",
+ "type": "[410]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "404",
+ "members": [
+ {
+ "name": "base",
+ "type": "int"
+ },
+ {
+ "name": "limit",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "405",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "411"
+ },
+ {
+ "case": "luks",
+ "type": "403"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "372"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[265]",
+ "element-type": "265",
+ "meta-type": "array"
+ },
+ {
+ "name": "406",
+ "meta-type": "enum",
+ "values": [
+ "aes-128",
+ "aes-192",
+ "aes-256",
+ "des-rfb",
+ "3des",
+ "cast5-128",
+ "serpent-128",
+ "serpent-192",
+ "serpent-256",
+ "twofish-128",
+ "twofish-192",
+ "twofish-256"
+ ]
+ },
+ {
+ "name": "407",
+ "meta-type": "enum",
+ "values": [
+ "ecb",
+ "cbc",
+ "xts",
+ "ctr"
+ ]
+ },
+ {
+ "name": "408",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "plain64",
+ "essiv"
+ ]
+ },
+ {
+ "name": "409",
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512",
+ "ripemd160"
+ ]
+ },
+ {
+ "name": "[410]",
+ "element-type": "410",
+ "meta-type": "array"
+ },
+ {
+ "name": "410",
+ "members": [
+ {
+ "name": "active",
+ "type": "bool"
+ },
+ {
+ "name": "iters",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "stripes",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "key-offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "411",
+ "members": [
+ ],
+ "meta-type": "object"
+ }
+ ],
+ "id": "libvirt-47"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "z14-base",
+ "props": {
+ "aen": true,
+ "cmmnt": true,
+ "aefsi": true,
+ "mepoch": true,
+ "msa8": true,
+ "msa7": true,
+ "msa6": true,
+ "msa5": true,
+ "msa4": true,
+ "msa3": true,
+ "msa2": true,
+ "msa1": true,
+ "sthyi": true,
+ "edat": true,
+ "ri": true,
+ "edat2": true,
+ "vx": true,
+ "ipter": true,
+ "vxeh": true,
+ "vxpd": true,
+ "esop": true,
+ "iep": true,
+ "cte": true,
+ "gs": true,
+ "zpci": true,
+ "sea_esop2": true,
+ "te": true,
+ "cmm": true
+ }
+ }
+ },
+ "id": "libvirt-48"
+}
+
+{
+ "id": "libvirt-49",
+ "error": {
+ "class": "GenericError",
+ "desc": "Property '.migratable' not found"
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": [
+ {
+ "name": "z890.2",
+ "typename": "z890.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4",
+ "typename": "z990.4-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2",
+ "typename": "z10BC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2",
+ "typename": "z196.2-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "aefsi",
+ "sthyi",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14",
+ "typename": "z14-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "opc",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC-base",
+ "typename": "z9BC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12-base",
+ "typename": "zEC12-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196-base",
+ "typename": "z196-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13-base",
+ "typename": "z13-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3",
+ "typename": "z990.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "host",
+ "typename": "host-s390x-cpu",
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z9EC",
+ "typename": "z9EC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12",
+ "typename": "zBC12-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3",
+ "typename": "z9EC.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2-base",
+ "typename": "z196.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu",
+ "typename": "qemu-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2-base",
+ "typename": "zEC12.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800-base",
+ "typename": "z800-base-s390x-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2",
+ "typename": "z9EC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2-base",
+ "typename": "z900.2-base-s390x-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3",
+ "typename": "z900.3-s390x-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890-base",
+ "typename": "z890-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890",
+ "typename": "z890-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4-base",
+ "typename": "z990.4-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2-base",
+ "typename": "z10BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2",
+ "typename": "z900.2-s390x-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2-base",
+ "typename": "z9BC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800",
+ "typename": "z800-s390x-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114",
+ "typename": "z114-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "aefsi",
+ "sthyi",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13",
+ "typename": "z13-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990",
+ "typename": "z990-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s-base",
+ "typename": "z13s-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2",
+ "typename": "z990.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z14-base",
+ "typename": "z14-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "opc",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2-base",
+ "typename": "z890.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196",
+ "typename": "z196-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "aefsi",
+ "sthyi",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC",
+ "typename": "z10EC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s",
+ "typename": "z13s-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900",
+ "typename": "z900-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3",
+ "typename": "z10EC.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2-base",
+ "typename": "z10EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z114-base",
+ "typename": "z114-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2-base",
+ "typename": "z990.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2-base",
+ "typename": "z9EC.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3",
+ "typename": "z890.3-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3-base",
+ "typename": "z900.3-base-s390x-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2",
+ "typename": "z9BC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC",
+ "typename": "z10BC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5",
+ "typename": "z990.5-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2",
+ "typename": "zEC12.2-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC-base",
+ "typename": "z10EC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC-base",
+ "typename": "z9EC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3-base",
+ "typename": "z9EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12",
+ "typename": "zEC12-s390x-cpu",
+ "unavailable-features": [
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5-base",
+ "typename": "z990.5-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC-base",
+ "typename": "z10BC-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900-base",
+ "typename": "z900-base-s390x-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2",
+ "typename": "z13.2-s390x-cpu",
+ "unavailable-features": [
+ "ppno-sha-512-drng",
+ "pcc-xts-eaes-256",
+ "pcc-xts-eaes-128",
+ "pcc-xts-aes-256",
+ "pcc-xts-aes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-eaes-192",
+ "pcc-cmac-eaes-128",
+ "pcc-cmac-eaes-256",
+ "pcc-cmac-aes-192",
+ "pcc-cmac-aes-128",
+ "pcc-cmac-etdea-192",
+ "pcc-cmac-etdea-128",
+ "pcc-cmac-edea",
+ "pcc-cmac-tdea-192",
+ "pcc-cmac-tdea-128",
+ "pcc-cmac-dea",
+ "kmo-eaes-256",
+ "kmo-eaes-192",
+ "kmo-eaes-128",
+ "kmo-aes-256",
+ "kmo-aes-192",
+ "kmo-aes-128",
+ "kmo-etdea-192",
+ "kmo-etdea-128",
+ "kmo-edea",
+ "kmo-tdea-192",
+ "kmo-tdea-128",
+ "kmo-dea",
+ "kmf-eaes-256",
+ "kmf-eaes-192",
+ "kmf-eaes-128",
+ "kmf-aes-256",
+ "kmf-aes-192",
+ "kmf-aes-128",
+ "kmf-etdea-192",
+ "kmf-etdea-128",
+ "kmf-edea",
+ "kmf-tdea-192",
+ "kmf-tdea-128",
+ "kmf-dea",
+ "kmctr-eaes-256",
+ "kmctr-eaes-192",
+ "kmctr-eaes-128",
+ "kmctr-aes-256",
+ "kmctr-aes-192",
+ "kmctr-aes-128",
+ "kmctr-etdea-192",
+ "kmctr-etdea-128",
+ "kmctr-edea",
+ "kmctr-tdea-192",
+ "kmctr-tdea-128",
+ "kmctr-dea",
+ "pckmo-aes-256",
+ "pckmo-aes-192",
+ "pckmo-aes-128",
+ "pckmo-etdea-192",
+ "pckmo-etdea-128",
+ "pckmo-edea",
+ "klmd-sha-1",
+ "kimd-ghash",
+ "kimd-sha-1",
+ "km-xts-eaes-256",
+ "km-xts-eaes-128",
+ "km-xts-aes-256",
+ "km-xts-aes-128",
+ "km-eaes-256",
+ "km-eaes-192",
+ "km-eaes-128",
+ "km-etdea-192",
+ "km-etdea-128",
+ "km-edea",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-eaes-256",
+ "kmc-eaes-192",
+ "kmc-eaes-128",
+ "kmc-etdea-192",
+ "kmc-etdea-128",
+ "kmc-edea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-eaes-256",
+ "kmac-eaes-192",
+ "kmac-eaes-128",
+ "kmac-aes-256",
+ "kmac-aes-192",
+ "kmac-aes-128",
+ "kmac-etdea-192",
+ "kmac-etdea-128",
+ "kmac-edea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12-base",
+ "typename": "zBC12-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2-base",
+ "typename": "z13.2-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "dfppc",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "asnlxr",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3-base",
+ "typename": "z890.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990-base",
+ "typename": "z990-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2",
+ "typename": "z10EC.2-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC",
+ "typename": "z9BC-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "asnlxr",
+ "msa1",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3-base",
+ "typename": "z10EC.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "asnlxr",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3-base",
+ "typename": "z990.3-base-s390x-cpu",
+ "unavailable-features": [
+ "klmd-sha-1",
+ "kimd-sha-1",
+ "km-tdea-192",
+ "km-tdea-128",
+ "km-dea",
+ "kmc-tdea-192",
+ "kmc-tdea-128",
+ "kmc-dea",
+ "kmac-tdea-192",
+ "kmac-tdea-128",
+ "kmac-dea",
+ "hfpm",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-2"
+}
+
+{
+ "id": "libvirt-3",
+ "error": {
+ "class": "GenericError",
+ "desc": "The CPU definition 'max' is unknown."
+ }
+}
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
new file mode 100644
index 0000000000..f7f102fe4c
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
@@ -0,0 +1,2641 @@
+<qemuCaps>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <usedQMP/>
+ <flag name='kvm'/>
+ <flag name='mem-path'/>
+ <flag name='drive-serial'/>
+ <flag name='monitor-json'/>
+ <flag name='sdl'/>
+ <flag name='netdev'/>
+ <flag name='rtc'/>
+ <flag name='vhost-net'/>
+ <flag name='nodefconfig'/>
+ <flag name='boot-menu'/>
+ <flag name='fsdev'/>
+ <flag name='name-process'/>
+ <flag name='smbios-type'/>
+ <flag name='vga-none'/>
+ <flag name='boot-index'/>
+ <flag name='drive-aio'/>
+ <flag name='chardev-spicevmc'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='pci-multifunction'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='cache-directsync'/>
+ <flag name='no-shutdown'/>
+ <flag name='cache-unsafe'/>
+ <flag name='fsdev-readonly'/>
+ <flag name='virtio-blk-pci.scsi'/>
+ <flag name='drive-copy-on-read'/>
+ <flag name='fsdev-writeout'/>
+ <flag name='drive-iotune'/>
+ <flag name='system_wakeup'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='transaction'/>
+ <flag name='block-job-async'/>
+ <flag name='scsi-cd'/>
+ <flag name='no-user-config'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='balloon-event'/>
+ <flag name='bridge'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <flag name='scsi-disk.wwn'/>
+ <flag name='seccomp-sandbox'/>
+ <flag name='reboot-timeout'/>
+ <flag name='dump-guest-core'/>
+ <flag name='seamless-migration'/>
+ <flag name='block-commit'/>
+ <flag name='vnc'/>
+ <flag name='drive-mirror'/>
+ <flag name='blockdev-snapshot-sync'/>
+ <flag name='device-video-primary'/>
+ <flag name='s390-sclp'/>
+ <flag name='add-fd'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='virtio-ccw'/>
+ <flag name='dtb'/>
+ <flag name='ipv6-migration'/>
+ <flag name='machine-opt'/>
+ <flag name='machine-usb-opt'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='vfio-pci.bootindex'/>
+ <flag name='scsi-generic'/>
+ <flag name='scsi-generic.bootindex'/>
+ <flag name='mem-merge'/>
+ <flag name='vnc-websocket'/>
+ <flag name='drive-discard'/>
+ <flag name='mlock'/>
+ <flag name='vnc-share-policy'/>
+ <flag name='device-del-event'/>
+ <flag name='virtio-mmio'/>
+ <flag name='boot-strict'/>
+ <flag name='spiceport'/>
+ <flag name='host-pci-multidomain'/>
+ <flag name='msg-timestamp'/>
+ <flag name='active-commit'/>
+ <flag name='change-backing-file'/>
+ <flag name='memory-backend-ram'/>
+ <flag name='numa'/>
+ <flag name='memory-backend-file'/>
+ <flag name='splash-timeout'/>
+ <flag name='iothread'/>
+ <flag name='migrate-rdma'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='machine-vmport-opt'/>
+ <flag name='aes-key-wrap'/>
+ <flag name='dea-key-wrap'/>
+ <flag name='vhost-user-multiqueue'/>
+ <flag name='migration-event'/>
+ <flag name='virtio-net'/>
+ <flag name='gic-version'/>
+ <flag name='incoming-defer'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='chardev-file-append'/>
+ <flag name='vserport-change-event'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='chardev-logfile'/>
+ <flag name='debug-threads'/>
+ <flag name='secret'/>
+ <flag name='device-tray-moved-event'/>
+ <flag name='virtio-scsi-pci.iothread'/>
+ <flag name='name-guest'/>
+ <flag name='drive-detect-zeroes'/>
+ <flag name='tls-creds-x509'/>
+ <flag name='display'/>
+ <flag name='smm'/>
+ <flag name='virtio-pci-disable-legacy'/>
+ <flag name='query-hotpluggable-cpus'/>
+ <flag name='virtio-net.rx_queue_size'/>
+ <flag name='drive-iotune-max-length'/>
+ <flag name='query-qmp-schema'/>
+ <flag name='gluster.debug_level'/>
+ <flag name='vhost-scsi'/>
+ <flag name='drive-iotune-group'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='virtio-net.host_mtu'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='block-write-threshold'/>
+ <flag name='query-named-block-nodes'/>
+ <flag name='kernel-irqchip'/>
+ <flag name='kernel-irqchip.split'/>
+ <flag name='virtio.iommu_platform'/>
+ <flag name='virtio.ats'/>
+ <flag name='loadparm'/>
+ <flag name='vnc-multi-servers'/>
+ <flag name='virtio-net.tx_queue_size'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='virtio-gpu.max_outputs'/>
+ <flag name='vxhs'/>
+ <flag name='virtio-blk.num-queues'/>
+ <flag name='sclplmconsole'/>
+ <flag name='numa.dist'/>
+ <flag name='disk-share-rw'/>
+ <flag name='iscsi.password-secret'/>
+ <flag name='dump-completed'/>
+ <version>2011000</version>
+ <kvmVersion>0</kvmVersion>
+ <microcodeVersion>341724</microcodeVersion>
+ <package></package>
+ <arch>s390x</arch>
+ <hostCPU type='kvm' model='z14-base' migratability='no'>
+ <property name='aen' type='boolean' value='true'/>
+ <property name='cmmnt' type='boolean' value='true'/>
+ <property name='aefsi' type='boolean' value='true'/>
+ <property name='mepoch' type='boolean' value='true'/>
+ <property name='msa8' type='boolean' value='true'/>
+ <property name='msa7' type='boolean' value='true'/>
+ <property name='msa6' type='boolean' value='true'/>
+ <property name='msa5' type='boolean' value='true'/>
+ <property name='msa4' type='boolean' value='true'/>
+ <property name='msa3' type='boolean' value='true'/>
+ <property name='msa2' type='boolean' value='true'/>
+ <property name='msa1' type='boolean' value='true'/>
+ <property name='sthyi' type='boolean' value='true'/>
+ <property name='edat' type='boolean' value='true'/>
+ <property name='ri' type='boolean' value='true'/>
+ <property name='edat2' type='boolean' value='true'/>
+ <property name='vx' type='boolean' value='true'/>
+ <property name='ipter' type='boolean' value='true'/>
+ <property name='vxeh' type='boolean' value='true'/>
+ <property name='vxpd' type='boolean' value='true'/>
+ <property name='esop' type='boolean' value='true'/>
+ <property name='iep' type='boolean' value='true'/>
+ <property name='cte' type='boolean' value='true'/>
+ <property name='gs' type='boolean' value='true'/>
+ <property name='zpci' type='boolean' value='true'/>
+ <property name='sea_esop2' type='boolean' value='true'/>
+ <property name='te' type='boolean' value='true'/>
+ <property name='cmm' type='boolean' value='true'/>
+ </hostCPU>
+ <cpu type='kvm' name='z890.2' usable='yes'/>
+ <cpu type='kvm' name='z990.4' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2' usable='yes'/>
+ <cpu type='kvm' name='z196.2' usable='yes'/>
+ <cpu type='kvm' name='z14' usable='yes'/>
+ <cpu type='kvm' name='z9BC-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12-base' usable='yes'/>
+ <cpu type='kvm' name='z196-base' usable='yes'/>
+ <cpu type='kvm' name='z13-base' usable='yes'/>
+ <cpu type='kvm' name='z990.3' usable='yes'/>
+ <cpu type='kvm' name='host' usable='yes'/>
+ <cpu type='kvm' name='z9EC' usable='yes'/>
+ <cpu type='kvm' name='zBC12' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3' usable='yes'/>
+ <cpu type='kvm' name='z196.2-base' usable='yes'/>
+ <cpu type='kvm' name='qemu' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2-base' usable='yes'/>
+ <cpu type='kvm' name='z800-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2' usable='yes'/>
+ <cpu type='kvm' name='z900.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900.3' usable='yes'/>
+ <cpu type='kvm' name='z890-base' usable='yes'/>
+ <cpu type='kvm' name='z890' usable='yes'/>
+ <cpu type='kvm' name='z990.4-base' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900.2' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z800' usable='yes'/>
+ <cpu type='kvm' name='z114' usable='yes'/>
+ <cpu type='kvm' name='z13' usable='yes'/>
+ <cpu type='kvm' name='z990' usable='yes'/>
+ <cpu type='kvm' name='z13s-base' usable='yes'/>
+ <cpu type='kvm' name='z990.2' usable='yes'/>
+ <cpu type='kvm' name='z14-base' usable='yes'/>
+ <cpu type='kvm' name='z890.2-base' usable='yes'/>
+ <cpu type='kvm' name='z196' usable='yes'/>
+ <cpu type='kvm' name='z10EC' usable='yes'/>
+ <cpu type='kvm' name='z13s' usable='yes'/>
+ <cpu type='kvm' name='z900' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z114-base' usable='yes'/>
+ <cpu type='kvm' name='z990.2-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z890.3' usable='yes'/>
+ <cpu type='kvm' name='z900.3-base' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2' usable='yes'/>
+ <cpu type='kvm' name='z10BC' usable='yes'/>
+ <cpu type='kvm' name='z990.5' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2' usable='yes'/>
+ <cpu type='kvm' name='z10EC-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12' usable='yes'/>
+ <cpu type='kvm' name='z990.5-base' usable='yes'/>
+ <cpu type='kvm' name='z10BC-base' usable='yes'/>
+ <cpu type='kvm' name='z900-base' usable='yes'/>
+ <cpu type='kvm' name='z13.2' usable='yes'/>
+ <cpu type='kvm' name='zBC12-base' usable='yes'/>
+ <cpu type='kvm' name='z13.2-base' usable='yes'/>
+ <cpu type='kvm' name='z890.3-base' usable='yes'/>
+ <cpu type='kvm' name='z990-base' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2' usable='yes'/>
+ <cpu type='kvm' name='z9BC' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3-base' usable='yes'/>
+ <cpu type='kvm' name='z990.3-base' usable='yes'/>
+ <cpu type='tcg' name='z890.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.4' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z196.2' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='iacc2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z14' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='vxeh'/>
+ <blocker name='vxpd'/>
+ <blocker name='gs'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='iep'/>
+ <blocker name='vx'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='opc'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa8'/>
+ <blocker name='msa7'/>
+ <blocker name='msa6'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z196-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='iacc2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z13-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='host'/>
+ <cpu type='tcg' name='z9EC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='zBC12' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z196.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='iacc2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='qemu' usable='yes'/>
+ <cpu type='tcg' name='zEC12.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z800-base' usable='no'>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.2-base' usable='no'>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.3' usable='no'>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z890-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z890' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.4-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.2' usable='no'>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z800' usable='no'>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z114' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='iacc2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z13' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='vx'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z13s-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z14-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='tsi'/>
+ <blocker name='sema'/>
+ <blocker name='minste2'/>
+ <blocker name='eec'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='opc'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z890.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z196' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='iacc2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z13s' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='vx'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900' usable='yes'/>
+ <cpu type='tcg' name='z10EC.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z114-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='iacc2'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z890.3' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900.3-base' usable='no'>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.5' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12.2' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9EC.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='zEC12' usable='no'>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.5-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10BC-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z900-base' usable='yes'/>
+ <cpu type='tcg' name='z13.2' usable='no'>
+ <blocker name='ppno-sha-512-drng'/>
+ <blocker name='pcc-xts-eaes-256'/>
+ <blocker name='pcc-xts-eaes-128'/>
+ <blocker name='pcc-xts-aes-256'/>
+ <blocker name='pcc-xts-aes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-eaes-192'/>
+ <blocker name='pcc-cmac-eaes-128'/>
+ <blocker name='pcc-cmac-eaes-256'/>
+ <blocker name='pcc-cmac-aes-192'/>
+ <blocker name='pcc-cmac-aes-128'/>
+ <blocker name='pcc-cmac-etdea-192'/>
+ <blocker name='pcc-cmac-etdea-128'/>
+ <blocker name='pcc-cmac-edea'/>
+ <blocker name='pcc-cmac-tdea-192'/>
+ <blocker name='pcc-cmac-tdea-128'/>
+ <blocker name='pcc-cmac-dea'/>
+ <blocker name='kmo-eaes-256'/>
+ <blocker name='kmo-eaes-192'/>
+ <blocker name='kmo-eaes-128'/>
+ <blocker name='kmo-aes-256'/>
+ <blocker name='kmo-aes-192'/>
+ <blocker name='kmo-aes-128'/>
+ <blocker name='kmo-etdea-192'/>
+ <blocker name='kmo-etdea-128'/>
+ <blocker name='kmo-edea'/>
+ <blocker name='kmo-tdea-192'/>
+ <blocker name='kmo-tdea-128'/>
+ <blocker name='kmo-dea'/>
+ <blocker name='kmf-eaes-256'/>
+ <blocker name='kmf-eaes-192'/>
+ <blocker name='kmf-eaes-128'/>
+ <blocker name='kmf-aes-256'/>
+ <blocker name='kmf-aes-192'/>
+ <blocker name='kmf-aes-128'/>
+ <blocker name='kmf-etdea-192'/>
+ <blocker name='kmf-etdea-128'/>
+ <blocker name='kmf-edea'/>
+ <blocker name='kmf-tdea-192'/>
+ <blocker name='kmf-tdea-128'/>
+ <blocker name='kmf-dea'/>
+ <blocker name='kmctr-eaes-256'/>
+ <blocker name='kmctr-eaes-192'/>
+ <blocker name='kmctr-eaes-128'/>
+ <blocker name='kmctr-aes-256'/>
+ <blocker name='kmctr-aes-192'/>
+ <blocker name='kmctr-aes-128'/>
+ <blocker name='kmctr-etdea-192'/>
+ <blocker name='kmctr-etdea-128'/>
+ <blocker name='kmctr-edea'/>
+ <blocker name='kmctr-tdea-192'/>
+ <blocker name='kmctr-tdea-128'/>
+ <blocker name='kmctr-dea'/>
+ <blocker name='pckmo-aes-256'/>
+ <blocker name='pckmo-aes-192'/>
+ <blocker name='pckmo-aes-128'/>
+ <blocker name='pckmo-etdea-192'/>
+ <blocker name='pckmo-etdea-128'/>
+ <blocker name='pckmo-edea'/>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-ghash'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-xts-eaes-256'/>
+ <blocker name='km-xts-eaes-128'/>
+ <blocker name='km-xts-aes-256'/>
+ <blocker name='km-xts-aes-128'/>
+ <blocker name='km-eaes-256'/>
+ <blocker name='km-eaes-192'/>
+ <blocker name='km-eaes-128'/>
+ <blocker name='km-etdea-192'/>
+ <blocker name='km-etdea-128'/>
+ <blocker name='km-edea'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-eaes-256'/>
+ <blocker name='kmc-eaes-192'/>
+ <blocker name='kmc-eaes-128'/>
+ <blocker name='kmc-etdea-192'/>
+ <blocker name='kmc-etdea-128'/>
+ <blocker name='kmc-edea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-eaes-256'/>
+ <blocker name='kmac-eaes-192'/>
+ <blocker name='kmac-eaes-128'/>
+ <blocker name='kmac-aes-256'/>
+ <blocker name='kmac-aes-192'/>
+ <blocker name='kmac-aes-128'/>
+ <blocker name='kmac-etdea-192'/>
+ <blocker name='kmac-etdea-128'/>
+ <blocker name='kmac-edea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='esop'/>
+ <blocker name='sea_esop2'/>
+ <blocker name='vx'/>
+ <blocker name='dfppc'/>
+ <blocker name='edat2'/>
+ <blocker name='aefsi'/>
+ <blocker name='sthyi'/>
+ <blocker name='te'/>
+ <blocker name='aen'/>
+ <blocker name='zpci'/>
+ <blocker name='ri'/>
+ <blocker name='iacc2'/>
+ <blocker name='cte'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='ipter'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='zBC12-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z13.2-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='dfppc'/>
+ <blocker name='iacc2'/>
+ <blocker name='dfpzc'/>
+ <blocker name='cmpsceh'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='sprogp'/>
+ <blocker name='fpe'/>
+ <blocker name='emon'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='nonqks'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='gen13ptff'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z890.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.2' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='edat'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa2'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z9BC' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='cmm'/>
+ <blocker name='dateh2'/>
+ <blocker name='sthyi'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='asnlxr'/>
+ <blocker name='msa1'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z10EC.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='dateh2'/>
+ <blocker name='pfpo'/>
+ <blocker name='dfphp'/>
+ <blocker name='dfp'/>
+ <blocker name='ectg'/>
+ <blocker name='parseh'/>
+ <blocker name='hfpue'/>
+ <blocker name='hfpm'/>
+ <blocker name='csske'/>
+ <blocker name='asnlxr'/>
+ <blocker name='tods'/>
+ <blocker name='type'/>
+ </cpu>
+ <cpu type='tcg' name='z990.3-base' usable='no'>
+ <blocker name='klmd-sha-1'/>
+ <blocker name='kimd-sha-1'/>
+ <blocker name='km-tdea-192'/>
+ <blocker name='km-tdea-128'/>
+ <blocker name='km-dea'/>
+ <blocker name='kmc-tdea-192'/>
+ <blocker name='kmc-tdea-128'/>
+ <blocker name='kmc-dea'/>
+ <blocker name='kmac-tdea-192'/>
+ <blocker name='kmac-tdea-128'/>
+ <blocker name='kmac-dea'/>
+ <blocker name='hfpm'/>
+ <blocker name='type'/>
+ </cpu>
+ <machine name='s390-ccw-virtio-2.11' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.7' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.6' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.10' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.5' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.4' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.9' hotplugCpus='yes' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.8' hotplugCpus='yes' maxCpus='248'/>
+</qemuCaps>
diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c
index 87807b4135..87440073e2 100644
--- a/tests/qemucapabilitiestest.c
+++ b/tests/qemucapabilitiestest.c
@@ -188,6 +188,7 @@ mymain(void)
DO_TEST("s390x", "caps_2.8.0");
DO_TEST("s390x", "caps_2.9.0");
DO_TEST("s390x", "caps_2.10.0");
+ DO_TEST("s390x", "caps_2.11.0");
/*
* Run "tests/qemucapsprobe /path/to/qemu/binary >foo.replies"
--
2.13.5
2
1
02 Mar '18
Applies cleanly on top of f565321b26dfb78c1dc2d6cf5456b9b80f04c7f3.
Changes from [v2]:
* replace the old implementation bit by bit using a clever trick
suggested by pkrempa;
* don't move QEMU capability validation;
* add a default: label to all switch statements as recommended
by danpb.
Changes from [v1]:
* error out instead of silently accept invalid options;
* shave quite a lot of yaks.
[v2] https://www.redhat.com/archives/libvir-list/2018-February/msg00813.html
[v1] https://www.redhat.com/archives/libvir-list/2018-February/msg00244.html
Andrea Bolognani (12):
tests: Add some tests for PCI controller options
qemu: Create new qemuDomainDeviceDefValidateControllerPCI()
qemu: Validate PCI controller options (modelName)
qemu: Validate PCI controller options (index)
qemu: Validate PCI controller options (targetIndex)
qemu: Validate PCI controller options (pcihole64)
qemu: Validate PCI controller options (busNr)
qemu: Validate PCI controller options (numaNode)
qemu: Validate PCI controller options (chassisNr)
qemu: Validate PCI controller options (chassis and port)
qemu: Validate PCI controllers (QEMU capabilities)
qemu: Remove old qemuDomainDeviceDefValidateControllerPCI()
src/qemu/qemu_domain.c | 594 +++++++++++++++------
.../i440fx-controllers-pciopts.xml | 36 ++
tests/qemuxml2argvdata/pcie-expander-bus.xml | 3 -
.../pseries-controllers-pciopts.xml | 35 ++
tests/qemuxml2argvdata/q35-controllers-pciopts.xml | 60 +++
tests/qemuxml2argvtest.c | 4 +
tests/qemuxml2xmloutdata/pcie-expander-bus.xml | 4 +-
7 files changed, 575 insertions(+), 161 deletions(-)
create mode 100644 tests/qemuxml2argvdata/i440fx-controllers-pciopts.xml
create mode 100644 tests/qemuxml2argvdata/pseries-controllers-pciopts.xml
create mode 100644 tests/qemuxml2argvdata/q35-controllers-pciopts.xml
--
2.14.3
2
20
[libvirt] [PATCH] conf: set postParseFailed even without ALLOW_POST_PARSE_FAIL
by Ján Tomko 02 Mar '18
by Ján Tomko 02 Mar '18
02 Mar '18
We allow the postParse callbacks to fail for some reasons (missing
emulator binary) when parsing the configs from /etc/libvirt.
In that case, def->postParseFailed is set to true and the post
parse callbacks are re-executed on domain startup.
However this bool was only set when virDomainDefPostParse was called
with the ALLOW_POST_PARSE_FAIL flag set. If the callback failed
again on domain startup, the bool would be reset and subsequent
startups would not attempt to reexecute the callback.
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/conf/domain_conf.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index fcafc8b2f..a248d73de 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5027,6 +5027,9 @@ virDomainDefPostParseCheckFailure(virDomainDefPtr def,
unsigned int parseFlags,
int ret)
{
+ if (ret != 0)
+ def->postParseFailed = true;
+
if (ret <= 0)
return ret;
@@ -5034,7 +5037,6 @@ virDomainDefPostParseCheckFailure(virDomainDefPtr def,
return -1;
virResetLastError();
- def->postParseFailed = true;
return 0;
}
--
2.13.6
2
1
v1 -> v2:
* refactored error paths according to John and Jiri
* added entry to news.xml
Bjoern Walk (2):
qemu: log the crash information for S390
news: add logging of guest crash information on S390
docs/news.xml | 9 +++++++++
src/qemu/qemu_monitor.c | 19 ++++++++++++++++++-
src/qemu/qemu_monitor.h | 12 ++++++++++++
src/qemu/qemu_monitor_json.c | 38 ++++++++++++++++++++++++++++++++++++++
4 files changed, 77 insertions(+), 1 deletion(-)
--
2.13.4
2
5
It needs for the -enable-kvm flag. This qemu flag can be compiled out,
but we already detect that case with the QEMU_CAPS_KVM check.
So this check is redundant and can be removed
Signed-off-by: Klim Kireev <klim.s.kireev(a)gmail.com>
---
src/qemu/qemu_capabilities.c | 13 +------------
src/qemu/qemu_capabilities.h | 2 +-
src/qemu/qemu_command.c | 14 ++------------
tests/qemucaps2xmldata/all_1.6.0-1.caps | 2 +-
tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps | 2 +-
tests/qemuhelptest.c | 8 +++-----
tests/qemuxml2argvdata/controller-order.args | 1 -
tests/qemuxml2argvdata/cpu-host-kvmclock.args | 1 -
tests/qemuxml2argvdata/cpu-kvmclock.args | 1 -
tests/qemuxml2argvtest.c | 11 +++++------
10 files changed, 14 insertions(+), 41 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b5eb8cf46..2a373d3a2 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1091,7 +1091,6 @@ virQEMUCapsInitGuestFromBinary(virCapsPtr caps,
if (virFileExists("/dev/kvm") &&
(virQEMUCapsGet(qemubinCaps, QEMU_CAPS_KVM) ||
- virQEMUCapsGet(qemubinCaps, QEMU_CAPS_ENABLE_KVM) ||
kvmbin))
haskvm = true;
@@ -1260,7 +1259,7 @@ virQEMUCapsComputeCmdFlags(const char *help,
if (strstr(help, "-no-kvm"))
virQEMUCapsSet(qemuCaps, QEMU_CAPS_KVM);
if (strstr(help, "-enable-kvm"))
- virQEMUCapsSet(qemuCaps, QEMU_CAPS_ENABLE_KVM);
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_KVM);
if (strstr(help, ",process="))
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NAME_PROCESS);
@@ -3201,7 +3200,6 @@ virQEMUCapsProbeQMPKVMState(virQEMUCapsPtr qemuCaps,
virQEMUCapsClear(qemuCaps, QEMU_CAPS_KVM);
} else if (!enabled) {
virQEMUCapsClear(qemuCaps, QEMU_CAPS_KVM);
- virQEMUCapsSet(qemuCaps, QEMU_CAPS_ENABLE_KVM);
}
return 0;
@@ -4388,15 +4386,6 @@ virQEMUCapsIsValid(void *data,
kvmUsable = virFileAccessibleAs("/dev/kvm", R_OK | W_OK,
priv->runUid, priv->runGid) == 0;
- if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM) &&
- virQEMUCapsGet(qemuCaps, QEMU_CAPS_ENABLE_KVM) &&
- kvmUsable) {
- VIR_DEBUG("KVM was not enabled when probing '%s', "
- "but it should be usable now",
- qemuCaps->binary);
- return false;
- }
-
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM) &&
!kvmUsable) {
VIR_DEBUG("KVM was enabled when probing '%s', "
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index c2ec2be19..11a10b2f6 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -79,7 +79,7 @@ typedef enum {
X_QEMU_CAPS_XEN_DOMID, /* -xen-domid */
X_QEMU_CAPS_MIGRATE_QEMU_UNIX, /* qemu migration via unix sockets */
X_QEMU_CAPS_CHARDEV, /* Is the new -chardev arg available */
- QEMU_CAPS_ENABLE_KVM, /* -enable-kvm flag */
+ X_QEMU_CAPS_ENABLE_KVM, /* -enable-kvm flag */
QEMU_CAPS_MONITOR_JSON, /* JSON mode for monitor */
/* 25 */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 9b1affd30..a68bf088e 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6992,13 +6992,10 @@ qemuBuildObsoleteAccelArg(virCommandPtr cmd,
const virDomainDef *def,
virQEMUCapsPtr qemuCaps)
{
- bool disableKVM = false;
- bool enableKVM = false;
-
switch ((int)def->virtType) {
case VIR_DOMAIN_VIRT_QEMU:
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM))
- disableKVM = true;
+ virCommandAddArg(cmd, "-no-kvm");
break;
case VIR_DOMAIN_VIRT_KQEMU:
@@ -7007,9 +7004,7 @@ qemuBuildObsoleteAccelArg(virCommandPtr cmd,
break;
case VIR_DOMAIN_VIRT_KVM:
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_ENABLE_KVM)) {
- enableKVM = true;
- } else if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) {
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("the QEMU binary does not support kvm"));
return -1;
@@ -7023,11 +7018,6 @@ qemuBuildObsoleteAccelArg(virCommandPtr cmd,
return -1;
}
- if (disableKVM)
- virCommandAddArg(cmd, "-no-kvm");
- if (enableKVM)
- virCommandAddArg(cmd, "-enable-kvm");
-
return 0;
}
diff --git a/tests/qemucaps2xmldata/all_1.6.0-1.caps b/tests/qemucaps2xmldata/all_1.6.0-1.caps
index d39d0bebb..35b737a40 100644
--- a/tests/qemucaps2xmldata/all_1.6.0-1.caps
+++ b/tests/qemucaps2xmldata/all_1.6.0-1.caps
@@ -2,7 +2,7 @@
<flag name='mem-path'/>
<flag name='drive-serial'/>
<flag name='chardev'/>
- <flag name='enable-kvm'/>
+ <flag name='kvm'/>
<flag name='monitor-json'/>
<flag name='balloon'/>
<flag name='device'/>
diff --git a/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps b/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps
index 5a0372c91..5e99e7d43 100644
--- a/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps
+++ b/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.caps
@@ -2,7 +2,7 @@
<flag name='mem-path'/>
<flag name='drive-serial'/>
<flag name='chardev'/>
- <flag name='enable-kvm'/>
+ <flag name='kvm'/>
<flag name='monitor-json'/>
<flag name='balloon'/>
<flag name='device'/>
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index 1336eeef5..fb1998c84 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -147,7 +147,7 @@ mymain(void)
DO_TEST("qemu-0.12.1", 12001, 0, 0,
QEMU_CAPS_DRIVE_SERIAL,
- QEMU_CAPS_ENABLE_KVM,
+ QEMU_CAPS_KVM,
QEMU_CAPS_SDL,
QEMU_CAPS_RTC,
QEMU_CAPS_NO_HPET,
@@ -182,7 +182,6 @@ mymain(void)
QEMU_CAPS_DRIVE_SERIAL,
QEMU_CAPS_MEM_PATH,
QEMU_CAPS_SDL,
- QEMU_CAPS_ENABLE_KVM,
QEMU_CAPS_RTC,
QEMU_CAPS_NO_HPET,
QEMU_CAPS_NO_KVM_PIT,
@@ -220,7 +219,6 @@ mymain(void)
QEMU_CAPS_DRIVE_SERIAL,
QEMU_CAPS_MEM_PATH,
QEMU_CAPS_SDL,
- QEMU_CAPS_ENABLE_KVM,
QEMU_CAPS_MONITOR_JSON,
QEMU_CAPS_NETDEV,
QEMU_CAPS_RTC,
@@ -267,7 +265,7 @@ mymain(void)
QEMU_CAPS_DRIVE_SERIAL,
QEMU_CAPS_MEM_PATH,
QEMU_CAPS_SDL,
- QEMU_CAPS_ENABLE_KVM,
+ QEMU_CAPS_KVM,
QEMU_CAPS_MONITOR_JSON,
QEMU_CAPS_NETDEV,
QEMU_CAPS_RTC,
@@ -338,7 +336,7 @@ mymain(void)
QEMU_CAPS_DRIVE_SERIAL,
QEMU_CAPS_MEM_PATH,
QEMU_CAPS_SDL,
- QEMU_CAPS_ENABLE_KVM,
+ QEMU_CAPS_KVM,
QEMU_CAPS_MONITOR_JSON,
QEMU_CAPS_NETDEV,
QEMU_CAPS_RTC,
diff --git a/tests/qemuxml2argvdata/controller-order.args b/tests/qemuxml2argvdata/controller-order.args
index 70a8ba9ce..fea56cc05 100644
--- a/tests/qemuxml2argvdata/controller-order.args
+++ b/tests/qemuxml2argvdata/controller-order.args
@@ -8,7 +8,6 @@ QEMU_AUDIO_DRV=spice \
-name fdr \
-S \
-M rhel6.1.0 \
--enable-kvm \
-m 4096 \
-smp 4,sockets=4,cores=1,threads=1 \
-uuid d091ea82-29e6-2e34-3005-f02617b36e87 \
diff --git a/tests/qemuxml2argvdata/cpu-host-kvmclock.args b/tests/qemuxml2argvdata/cpu-host-kvmclock.args
index 1e45f0558..b82962b23 100644
--- a/tests/qemuxml2argvdata/cpu-host-kvmclock.args
+++ b/tests/qemuxml2argvdata/cpu-host-kvmclock.args
@@ -8,7 +8,6 @@ QEMU_AUDIO_DRV=none \
-name QEMUGuest1 \
-S \
-M pc \
--enable-kvm \
-cpu host,-kvmclock \
-m 214 \
-smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-kvmclock.args b/tests/qemuxml2argvdata/cpu-kvmclock.args
index 358b9be05..06a96ae4b 100644
--- a/tests/qemuxml2argvdata/cpu-kvmclock.args
+++ b/tests/qemuxml2argvdata/cpu-kvmclock.args
@@ -8,7 +8,6 @@ QEMU_AUDIO_DRV=none \
-name QEMUGuest1 \
-S \
-M pc \
--enable-kvm \
-cpu core2duo,-kvmclock \
-m 214 \
-smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 688846b9b..67836a936 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -796,16 +796,15 @@ mymain(void)
DO_TEST("clock-france", QEMU_CAPS_RTC);
DO_TEST("clock-hpet-off", QEMU_CAPS_RTC);
DO_TEST("clock-catchup", QEMU_CAPS_RTC);
- DO_TEST("cpu-kvmclock", QEMU_CAPS_ENABLE_KVM);
- DO_TEST("cpu-host-kvmclock", QEMU_CAPS_ENABLE_KVM);
+ DO_TEST("cpu-kvmclock", QEMU_CAPS_KVM);
+ DO_TEST("cpu-host-kvmclock", QEMU_CAPS_KVM);
DO_TEST("kvmclock", QEMU_CAPS_KVM);
DO_TEST("clock-timer-hyperv-rtc", QEMU_CAPS_KVM);
- DO_TEST("cpu-eoi-disabled", QEMU_CAPS_ENABLE_KVM);
- DO_TEST("cpu-eoi-enabled", QEMU_CAPS_ENABLE_KVM);
+ DO_TEST("cpu-eoi-disabled", NONE);
+ DO_TEST("cpu-eoi-enabled", NONE);
DO_TEST("controller-order",
QEMU_CAPS_KVM,
- QEMU_CAPS_ENABLE_KVM,
QEMU_CAPS_BOOT_MENU,
QEMU_CAPS_PIIX3_USB_UHCI,
QEMU_CAPS_PCI_MULTIFUNCTION,
@@ -821,7 +820,7 @@ mymain(void)
DO_TEST("eoi-enabled", NONE);
DO_TEST("pv-spinlock-disabled", NONE);
DO_TEST("pv-spinlock-enabled", NONE);
- DO_TEST("kvmclock+eoi-disabled", QEMU_CAPS_ENABLE_KVM);
+ DO_TEST("kvmclock+eoi-disabled", NONE);
DO_TEST("hyperv", NONE);
DO_TEST("hyperv-off", NONE);
--
2.16.1
2
1
[libvirt] [tck PATCH 0/2] set CTRL_IP_LEARNING and DHCPSERVER in filter during no-ip-spoofing test
by Laine Stump 02 Mar '18
by Laine Stump 02 Mar '18
02 Mar '18
We've recently discovered two separate bugs that caused libvirt's
"DHCP Snooping" feature to not work:
https://bugzilla.redhat.com/show_bug.cgi?id=1529338 - libvirt regression
https://bugzilla.redhat.com/show_bug.cgi?id=1547237 - libpcap regression
Since we didn't have any test suite covering that code, we had the
embarrassment of learning of it from someone else's QE (RHV/oVirt QE
at Red Hat).
This series adds the necessary stuff to the test domain config of
libvirt-tck's "no-ip-spoofing" test to exercise the DHCPSnoop thread.
(There may be a much better way of dealing with a hash-inside-a-hash;
I am an imbecile at perl, and arrived at this code by trial, error,
and google searches).
Laine Stump (2):
new helper function get_network_ip()
set CTRL_IP_LEARNING and DHCPSERVER in filter during no-ip-spoofing
test
lib/Sys/Virt/TCK.pm | 11 ++++++++---
lib/Sys/Virt/TCK/DomainBuilder.pm | 8 +++++++-
lib/Sys/Virt/TCK/NetworkHelpers.pm | 10 ++++++++++
scripts/nwfilter/220-no-ip-spoofing.t | 9 ++++++++-
4 files changed, 33 insertions(+), 5 deletions(-)
--
2.14.3
1
3
Sometimes we don't regenerate QEMU capabilities replies using QEMU
binary but we simply add a new entry manually. In that case you need
to manually fix all the replies ids. This helper will do that for you.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tests/qemucapsfixreplies | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100755 tests/qemucapsfixreplies
diff --git a/tests/qemucapsfixreplies b/tests/qemucapsfixreplies
new file mode 100755
index 0000000000..25b1e597a9
--- /dev/null
+++ b/tests/qemucapsfixreplies
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+if [ "$1" == "--help" ] || [ $# != 1 ] || [ ! -f $1 ]; then
+ echo "This script fixes replies ids in QEMU replies files."
+ echo ""
+ echo " Usage: $0 path/to/qemu.replies"
+ exit 0;
+fi
+
+awk -i inplace \
+ 'BEGIN {count=1; pattern="libvirt-[0-9]+"}
+ {
+ if (match($0, "libvirt-1[^0-9]")) {
+ count=1;
+ }
+ if (match($0, pattern)) {
+ str="libvirt-" count;
+ sub(pattern, str, $0);
+ count++;
+ }
+ print
+ }' $1
--
2.14.3
2
2
Signed-off-by: --help <mprivozn(a)redhat.com>
---
docs/news.xml | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 102 insertions(+)
diff --git a/docs/news.xml b/docs/news.xml
index 86a0c8d18..53bf9a49c 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -44,6 +44,28 @@
using the <code>cachetune</code> element in <code>cputune</code>.
</description>
</change>
+ <change>
+ <summary>
+ Allow opening secondary drivers
+ </summary>
+ <description>
+ Up until now it was possible to connect to only hypervisor drivers
+ (e.g. qemu:///system, lxc:///, vbox:///system, and so on). The
+ internal drivers (like network driver, node device driver, etc.) were
+ hidden from users and users could use them only indirectly. Starting
+ with this release new connection URIs are accepted. For instance
+ network:///system, storage:///system and so on.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virtlogd, virtlockd: Add support for admin protocol
+ </summary>
+ <description>
+ These two daemons now support admin protocol through which some admin
+ info can be gathered or some configuration tweaked on the fly.
+ </description>
+ </change>
</section>
<section title="Improvements">
<change>
@@ -82,8 +104,88 @@
libxl: add support for setting clock offset and adjustment
</summary>
</change>
+ <change>
+ <summary>
+ Make port allocator global
+ </summary>
+ <description>
+ Up until now each driver had their own port allocator module. This
+ meant that info on port usage was not shared. Starting with this
+ release, the port allocator module is made global and therefore
+ drivers allocate ports from global pool.
+ </description>
+ </change>
+ <change>
+ <summary>
+ src: Enable building with GCC 8.0
+ </summary>
+ <description>
+ GCC 8.0 added more warnings which found some genuine problems with our code.
+ </description>
+ </change>
</section>
<section title="Bug fixes">
+ <change>
+ <summary>
+ qemu: Check for unsafe migration more thoroughly
+ </summary>
+ <description>
+ If a domain disk is stored on local filesystem (e.g. ext4) but is
+ not being migrated it is very likely that domain is not able to
+ run on destination. Regardless of share/cache mode.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Fix updating device with boot order
+ </summary>
+ <description>
+ Starting with 3.7.0 release updating any device with boot order would
+ fail with 'boot order X is already used by another device' while in
+ fact it was the very same device.
+ </description>
+ </change>
+ <change>
+ <summary>
+ virlog: determine the hostname on startup CVE-2018-6764
+ </summary>
+ <description>
+ At later point it might not be possible or even safe to use
+ getaddrinfo(). It can in turn result in a load of NSS module which
+ can even be loaded from unsage guest filesystem and thus escape the
+ confinment of its container.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Rework vCPU statistics fetching
+ </summary>
+ <description>
+ Fetching vCPU statistics was very expensive because it lead to waking
+ up vCPU threads in QEMU and thus it degraded performance. The code
+ was reworked so that fetching statistics does not wake up halted
+ vCPUs.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: unlink memory backing file on domain shutdown
+ </summary>
+ <description>
+ Depending on the filesystem where domain memory is stored, some files
+ might have been left behind. This is not a problem on hugetlbfs, but
+ it is a problem on regular filesystems like ext4.
+ </description>
+ </change>
+ <change>
+ <summary>
+ qemu: Fix shutting down domains in parallel
+ </summary>
+ <description>
+ If multiple domains were being shut down in parallel, libvirtd might
+ have deadlocked.
+ </description>
+ </change>
</section>
</release>
<release version="v4.0.0" date="2018-01-19">
--
2.16.1
7
21
The check was trying to use the shell variable $CC instead of
the make variable $(CC); it also interpreted grep's return code
wrong: 1 means the provided pattern was *not* matched. As a
result, pdwtags was never run, not even when building with gcc.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
src/Makefile.am | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 5794915246..3bf2da543d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -668,8 +668,7 @@ struct_prefix = ($(libs_prefix)|$(other_prefix))
# which causes the comparison against expected output to fail, so skip
# if using clang as CC.
PDWTAGS = \
- $(AM_V_GEN)$CC -v 2>&1 | grep -q clang; \
- if test $$? == 1; then \
+ $(AM_V_GEN)if $(CC) -v 2>&1 | grep -q clang; then \
echo 'WARNING: skipping pdwtags test with Clang' >&2; \
exit 0; \
fi; \
--
2.14.3
2
1
01 Mar '18
In QEMU commit 5c0919d02066c3d0eb896c33265ad90101a6a84a
adds new option virtqueue_size. This Patch allows this option
to be set in libvirt.
---
docs/formatdomain.html.in | 6 ++++++
src/conf/domain_conf.c | 12 ++++++++++++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_command.c | 3 +++
4 files changed, 22 insertions(+)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 6fd2189cd..2f33b5e70 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -3867,6 +3867,12 @@
host.
<span class="since">Since 1.2.7 (QEMU and KVM only)</span>
</dd>
+ <dt><code>virtqueue_size</code></dt>
+ <dd>
+ The optional <code>virtqueue_size</code> attribute specifies the size of
+ virtio queue.
+ <span class="since">Since 3.7.0 (QEMU and KVM only)</span>
+ </dd>
<dt><code>max_sectors</code></dt>
<dd>
The optional <code>max_sectors</code> attribute specifies the maximum
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d96b012b9..36a4deea2 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9976,6 +9976,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
char *model = NULL;
char *queues = NULL;
char *cmd_per_lun = NULL;
+ char *virtqueue_size = NULL;
char *max_sectors = NULL;
bool processedModel = false;
char *modelName = NULL;
@@ -10035,6 +10036,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
queues = virXMLPropString(cur, "queues");
cmd_per_lun = virXMLPropString(cur, "cmd_per_lun");
max_sectors = virXMLPropString(cur, "max_sectors");
+ virtqueue_size = virXMLPropString(cur, "virtqueue_size");
ioeventfd = virXMLPropString(cur, "ioeventfd");
iothread = virXMLPropString(cur, "iothread");
@@ -10089,6 +10091,12 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
goto error;
}
+ if (virtqueue_size && virStrToLong_ui(virtqueue_size, NULL, 10, &def->virtqueue_size) < 0) {
+ virReportError(VIR_ERR_XML_ERROR,
+ _("Malformed 'virtqueue_size' value '%s'"), virtqueue_size);
+ goto error;
+ }
+
if (max_sectors && virStrToLong_ui(max_sectors, NULL, 10, &def->max_sectors) < 0) {
virReportError(VIR_ERR_XML_ERROR,
_("Malformed 'max_sectors' value %s"), max_sectors);
@@ -10310,6 +10318,7 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
VIR_FREE(model);
VIR_FREE(queues);
VIR_FREE(cmd_per_lun);
+ VIR_FREE(virtqueue_size);
VIR_FREE(max_sectors);
VIR_FREE(modelName);
VIR_FREE(chassisNr);
@@ -23293,6 +23302,9 @@ virDomainControllerDriverFormat(virBufferPtr buf,
if (def->cmd_per_lun)
virBufferAsprintf(&driverBuf, " cmd_per_lun='%u'", def->cmd_per_lun);
+ if (def->virtqueue_size)
+ virBufferAsprintf(&driverBuf, " virtqueue_size='%u'", def->virtqueue_size);
+
if (def->max_sectors)
virBufferAsprintf(&driverBuf, " max_sectors='%u'", def->max_sectors);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 368f16f3f..141bd1aca 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -816,6 +816,7 @@ struct _virDomainControllerDef {
int model; /* -1 == undef */
unsigned int queues;
unsigned int cmd_per_lun;
+ unsigned int virtqueue_size;
unsigned int max_sectors;
int ioeventfd; /* enum virTristateSwitch */
unsigned int iothread; /* unused = 0, > 0 specific thread # */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index fa0aa5d5c..9b1affd30 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2808,6 +2808,9 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
if (def->queues)
virBufferAsprintf(&buf, ",num_queues=%u", def->queues);
+ if (def->virtqueue_size)
+ virBufferAsprintf(&buf, ",virtqueue_size=%u", def->virtqueue_size);
+
if (def->cmd_per_lun)
virBufferAsprintf(&buf, ",cmd_per_lun=%u", def->cmd_per_lun);
--
2.16.1
2
1
[libvirt] [PATCH] docs: remove legacy XHTML <!DOCTYPE> declaration
by Daniel P. Berrangé 28 Feb '18
by Daniel P. Berrangé 28 Feb '18
28 Feb '18
We have switched the docs to using the HTML5 doctype declaration in
commit b1c81567c7172bc9dcd701cf46ea3f87725d62c7
Author: Daniel P. Berrange <berrange(a)redhat.com>
Date: Wed Jul 26 18:01:25 2017 +0100
docs: switch to using HTML5 doctype declaration
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
Pushed as a trivial fix
docs/pci-hotplug.html.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/pci-hotplug.html.in b/docs/pci-hotplug.html.in
index 4ac87d644f..9a26645aa4 100644
--- a/docs/pci-hotplug.html.in
+++ b/docs/pci-hotplug.html.in
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>PCI topology and hotplug</h1>
--
2.14.3
1
0
28 Feb '18
Changed in v2:
- Dropped VPATH patch, since distcheck is doing that already
- Skip pdwtags when building with clang
- Run install & dist on OS-X
- Test systemd as well as upstart
- Pass initscript configure flags to distcheck, not autogen.sh
Daniel P. Berrangé (5):
make: skip pdwtags when building with CLang
travis: drop precise distro jobs
travis: run "make distcheck" instead of just "make check"
travis: test "make install" and "make dist" on OS-X
travis: test upstart/systemd init script handling
.travis.yml | 22 +++++++++++-----------
src/Makefile.am | 10 +++++++++-
2 files changed, 20 insertions(+), 12 deletions(-)
--
2.14.3
2
13
28 Feb '18
Commit v3.7.0-14-gc57f3fd2f8 prevented adding a <boot order='x'/>
element to an inactive domain with global <boot dev='...'/> element.
However, as a result of that change updating any device with boot order
would fail with 'boot order X is already used by another device', where
"another device" is in fact the device which is being updated.
To fix this we have to ignore the device which we're about to update
when checking for boot order conflicts.
https://bugzilla.redhat.com/show_bug.cgi?id=1546971
Jiri Denemark (3):
lxc: Drop useless check in live device update
Pass oldDev to virDomainDefCompatibleDevice on device update
qemu: Fix updating device with boot order
src/conf/domain_conf.c | 30 ++++++++++++++++++++++-------
src/conf/domain_conf.h | 3 ++-
src/lxc/lxc_driver.c | 18 +++++++++---------
src/qemu/qemu_driver.c | 51 ++++++++++++++++++++++++++++++++++++++++----------
4 files changed, 75 insertions(+), 27 deletions(-)
--
2.16.2
3
5
I didn't sent a warning mail, but people reminded me that it's time to
roll the releases, so I just tagged rc1 in git head and pushed signed tarball
and rpms to the usual place:
ftp://libvirt.org/libvirt/
Looks fine with my limited testing, amazingly
https://ci.centos.org/view/libvirt/ is all green so things seems they should
go smoothly, that said the devil is in the details so please give this RC1
some testing especially on other platforms and OSes !
It all goes well I will push rc2 on Wed and the final release early Fri,
but in the meantime, please test it :-)
thanks,
Daniel
--
Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
1
1
[libvirt] [PATCH] vshCommandOpt: Do more checking if skipChecks is set
by Michal Privoznik 28 Feb '18
by Michal Privoznik 28 Feb '18
28 Feb '18
Currently if cmd->skipChecks is set (done only from completers)
some basic checks are skipped because we're working over
partially parsed command. See a26ff63ae4 for more detailed
explanation. Anyway, the referenced commit was too aggressive in
disabling checks and effectively returned success even in clear
case of failure. For instance:
# domif-getlink --interface <TAB><TAB>
causes virshDomainInterfaceCompleter() to be called, which calls
virshDomainGetXML() which eventually calls
vshCommandOptStringReq(.., name = "domain"); The --domain
argument is required for the command and if not present -1 should
be returned to tell the caller the argument was not found. Well,
zero is returned meaning the argument was not found but it's not
required either.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
tools/vsh.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/tools/vsh.c b/tools/vsh.c
index 37c292a03..73ec007e5 100644
--- a/tools/vsh.c
+++ b/tools/vsh.c
@@ -817,18 +817,17 @@ vshCommandOpt(const vshCmd *cmd, const char *name, vshCmdOpt **opt,
/* See if option is valid and/or required. */
*opt = NULL;
- if (!cmd->skipChecks) {
- while (valid && valid->name) {
- if (STREQ(name, valid->name))
- break;
- valid++;
- }
+ while (valid && valid->name) {
+ if (STREQ(name, valid->name))
+ break;
+ valid++;
+ }
+ if (!cmd->skipChecks)
assert(valid && (!needData || valid->type != VSH_OT_BOOL));
- if (valid->flags & VSH_OFLAG_REQ)
- ret = -1;
- }
+ if (valid && valid->flags & VSH_OFLAG_REQ)
+ ret = -1;
/* See if option is present on command line. */
while (candidate) {
@@ -1065,7 +1064,8 @@ vshCommandOptStringReq(vshControl *ctl,
error = N_("Option argument is empty");
if (error) {
- vshError(ctl, _("Failed to get option '%s': %s"), name, _(error));
+ if (!cmd->skipChecks)
+ vshError(ctl, _("Failed to get option '%s': %s"), name, _(error));
return -1;
}
--
2.16.1
2
1
[libvirt] [PATCH] vz: fix ref/unref of domain obj in vzDomainRevertToSnapshot
by Nikolay Shirokovskiy 28 Feb '18
by Nikolay Shirokovskiy 28 Feb '18
28 Feb '18
---
src/vz/vz_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
index dab1ba8..18f4b4c 100644
--- a/src/vz/vz_driver.c
+++ b/src/vz/vz_driver.c
@@ -2732,7 +2732,7 @@ vzDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, unsigned int flags)
virCheckFlags(VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED, -1);
- if (!(dom = vzDomObjFromDomain(snapshot->domain)))
+ if (!(dom = vzDomObjFromDomainRef(snapshot->domain)))
return -1;
if (virDomainRevertToSnapshotEnsureACL(snapshot->domain->conn, dom->def) < 0)
--
1.8.3.1
4
5
The precise distro is marked deprecated in travis and will be dropped
entirely in 2 months time.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
.travis.yml | 4 ----
1 file changed, 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 3f26a1eeee..9219ccd173 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,12 +4,8 @@ cache: ccache
matrix:
include:
- - compiler: gcc
- dist: precise
- compiler: gcc
dist: trusty
- - compiler: clang
- dist: precise
- compiler: clang
dist: trusty
- compiler: clang
--
2.14.3
1
0
From: root <root(a)localhost.localdomain>
qemuDomainObjExitMonitor is unsafe
domain lock released when qemuDomainObjEnterMonitor finish,
So other thread (qemuProcessStop) has chance to modify priv->mon
to NULL. qemuDomainObjExitMonitor will never release the mon->lock,
that may cause problem:
thread get monitor ptr early, and then try to get mon->lock,
it will block forerver cause mon->lock not released by
qemuDomainObjExitMonitor.
Signed-off-by: Wang Yechao <wang.yechao255(a)zte.com.cn>
Signed-off-by: Peng Hao <peng.hao2(a)zte.com.cn>
---
src/qemu/THREADS.txt | 12 +-
src/qemu/qemu_block.c | 5 +-
src/qemu/qemu_domain.c | 64 +++++----
src/qemu/qemu_domain.h | 12 +-
src/qemu/qemu_driver.c | 258 ++++++++++++++++++++--------------
src/qemu/qemu_hotplug.c | 296 ++++++++++++++++++++++-----------------
src/qemu/qemu_migration.c | 104 ++++++++------
src/qemu/qemu_migration_cookie.c | 5 +-
src/qemu/qemu_process.c | 108 ++++++++------
9 files changed, 507 insertions(+), 357 deletions(-)
mode change 100644 => 100755 src/qemu/THREADS.txt
mode change 100644 => 100755 src/qemu/qemu_block.c
mode change 100644 => 100755 src/qemu/qemu_domain.c
mode change 100644 => 100755 src/qemu/qemu_domain.h
mode change 100644 => 100755 src/qemu/qemu_driver.c
mode change 100644 => 100755 src/qemu/qemu_hotplug.c
mode change 100644 => 100755 src/qemu/qemu_migration.c
mode change 100644 => 100755 src/qemu/qemu_migration_cookie.c
mode change 100644 => 100755 src/qemu/qemu_process.c
diff --git a/src/qemu/THREADS.txt b/src/qemu/THREADS.txt
old mode 100644
new mode 100755
index 7243161..6a56003
--- a/src/qemu/THREADS.txt
+++ b/src/qemu/THREADS.txt
@@ -228,6 +228,7 @@ Design patterns
virDomainObjPtr obj;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
obj = qemuDomObjFromDomain(dom);
@@ -236,9 +237,9 @@ Design patterns
...do prep work...
if (virDomainObjIsActive(vm)) {
- qemuDomainObjEnterMonitor(obj);
+ mon = qemuDomainObjEnterMonitor(obj);
qemuMonitorXXXX(priv->mon);
- qemuDomainObjExitMonitor(obj);
+ qemuDomainObjExitMonitor(obj, mon);
}
...do final work...
@@ -251,6 +252,7 @@ Design patterns
virDomainObjPtr obj;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
obj = qemuDomObjFromDomain(dom);
@@ -260,12 +262,12 @@ Design patterns
...do prep work...
if (qemuDomainObjEnterMonitorAsync(driver, obj,
- QEMU_ASYNC_JOB_TYPE) < 0) {
+ QEMU_ASYNC_JOB_TYPE, &mon) < 0) {
/* domain died in the meantime */
goto error;
}
...start qemu job...
- qemuDomainObjExitMonitor(driver, obj);
+ qemuDomainObjExitMonitor(driver, obj, mon);
while (!finished) {
if (qemuDomainObjEnterMonitorAsync(driver, obj,
@@ -274,7 +276,7 @@ Design patterns
goto error;
}
...monitor job progress...
- qemuDomainObjExitMonitor(driver, obj);
+ qemuDomainObjExitMonitor(driver, obj, mon);
virObjectUnlock(obj);
sleep(aWhile);
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
old mode 100644
new mode 100755
index 585f025..d437802
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -327,17 +327,18 @@ qemuBlockNodeNamesDetect(virQEMUDriverPtr driver,
virDomainDiskDefPtr disk;
size_t i;
int ret = -1;
+ qemuMonitorPtr mon;
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_QUERY_NAMED_BLOCK_NODES))
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
data = qemuMonitorQueryNamedBlockNodes(qemuDomainGetMonitor(vm));
blockstats = qemuMonitorQueryBlockstats(qemuDomainGetMonitor(vm));
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || !data || !blockstats)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || !data || !blockstats)
goto cleanup;
if (!(disktable = qemuBlockNodeNameGetBackingChain(data, blockstats)))
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
old mode 100644
new mode 100755
index aa65295..a09235e
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5602,15 +5602,16 @@ qemuDomainObjEnterMonitorInternal(virQEMUDriverPtr driver,
static void ATTRIBUTE_NONNULL(1)
qemuDomainObjExitMonitorInternal(virQEMUDriverPtr driver,
- virDomainObjPtr obj)
+ virDomainObjPtr obj,
+ qemuMonitorPtr mon)
{
qemuDomainObjPrivatePtr priv = obj->privateData;
bool hasRefs;
- hasRefs = virObjectUnref(priv->mon);
+ hasRefs = virObjectUnref(mon);
if (hasRefs)
- virObjectUnlock(priv->mon);
+ virObjectUnlock(mon);
virObjectLock(obj);
VIR_DEBUG("Exited monitor (mon=%p vm=%p name=%s)",
@@ -5624,11 +5625,13 @@ qemuDomainObjExitMonitorInternal(virQEMUDriverPtr driver,
qemuDomainObjEndJob(driver, obj);
}
-void qemuDomainObjEnterMonitor(virQEMUDriverPtr driver,
+qemuMonitorPtr qemuDomainObjEnterMonitor(virQEMUDriverPtr driver,
virDomainObjPtr obj)
{
+ qemuMonitorPtr mon = qemuDomainGetMonitor(obj);
ignore_value(qemuDomainObjEnterMonitorInternal(driver, obj,
QEMU_ASYNC_JOB_NONE));
+ return mon;
}
/* obj must NOT be locked before calling
@@ -5642,9 +5645,10 @@ void qemuDomainObjEnterMonitor(virQEMUDriverPtr driver,
* from the live definition could no longer be valid.
*/
int qemuDomainObjExitMonitor(virQEMUDriverPtr driver,
- virDomainObjPtr obj)
+ virDomainObjPtr obj,
+ qemuMonitorPtr mon)
{
- qemuDomainObjExitMonitorInternal(driver, obj);
+ qemuDomainObjExitMonitorInternal(driver, obj, mon);
if (!virDomainObjIsActive(obj)) {
if (!virGetLastError())
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
@@ -5671,8 +5675,10 @@ int qemuDomainObjExitMonitor(virQEMUDriverPtr driver,
int
qemuDomainObjEnterMonitorAsync(virQEMUDriverPtr driver,
virDomainObjPtr obj,
- qemuDomainAsyncJob asyncJob)
+ qemuDomainAsyncJob asyncJob,
+ qemuMonitorPtr *mon)
{
+ *mon = qemuDomainGetMonitor(obj);
return qemuDomainObjEnterMonitorInternal(driver, obj, asyncJob);
}
@@ -6621,6 +6627,7 @@ qemuDomainSnapshotDiscard(virQEMUDriverPtr driver,
{
char *snapFile = NULL;
int ret = -1;
+ qemuMonitorPtr mon;
qemuDomainObjPrivatePtr priv;
virDomainSnapshotObjPtr parentsnap = NULL;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
@@ -6633,10 +6640,10 @@ qemuDomainSnapshotDiscard(virQEMUDriverPtr driver,
goto cleanup;
} else {
priv = vm->privateData;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
/* we continue on even in the face of error */
qemuMonitorDeleteSnapshot(priv->mon, snap->def->name);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
}
}
@@ -7477,14 +7484,15 @@ qemuDomainUpdateDeviceList(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
char **aliases;
int rc;
+ qemuMonitorPtr mon;
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT))
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rc = qemuMonitorGetDeviceAliases(priv->mon, &aliases);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
if (rc < 0)
return -1;
@@ -7504,16 +7512,17 @@ qemuDomainUpdateMemoryDeviceInfo(virQEMUDriverPtr driver,
virHashTablePtr meminfo = NULL;
int rc;
size_t i;
+ qemuMonitorPtr mon;
if (vm->def->nmems == 0)
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rc = qemuMonitorGetMemoryDeviceInfo(priv->mon, &meminfo);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
virHashFree(meminfo);
return -1;
}
@@ -8243,6 +8252,7 @@ qemuDomainUpdateCurrentMemorySize(virQEMUDriverPtr driver,
virDomainObjPtr vm)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
unsigned long long balloon;
int ret = -1;
@@ -8275,9 +8285,9 @@ qemuDomainUpdateCurrentMemorySize(virQEMUDriverPtr driver,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetBalloonInfo(priv->mon, &balloon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -8608,15 +8618,16 @@ qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver,
bool hotplug;
int rc;
int ret = -1;
+ qemuMonitorPtr mon;
hotplug = qemuDomainSupportsNewVcpuHotplug(vm);
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rc = qemuMonitorGetCPUInfo(qemuDomainGetMonitor(vm), &info, maxvcpus, hotplug);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0)
@@ -8721,6 +8732,7 @@ qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver,
virBitmapPtr haltedmap = NULL;
size_t i;
int ret = -1;
+ qemuMonitorPtr mon;
/* Not supported currently for TCG, see qemuDomainRefreshVcpuInfo */
if (vm->def->virtType == VIR_DOMAIN_VIRT_QEMU)
@@ -8731,12 +8743,12 @@ qemuDomainRefreshVcpuHalted(virQEMUDriverPtr driver,
if (!ARCH_IS_S390(vm->def->os.arch))
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
haltedmap = qemuMonitorGetCpuHalted(qemuDomainGetMonitor(vm), maxvcpus);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || !haltedmap)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || !haltedmap)
goto cleanup;
for (i = 0; i < maxvcpus; i++) {
@@ -9081,13 +9093,14 @@ qemuDomainCheckMonitor(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
ret = qemuMonitorCheck(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
return ret;
@@ -11399,13 +11412,14 @@ qemuDomainCheckMigrationCapabilities(virQEMUDriverPtr driver,
char **capStr;
int ret = -1;
int rc;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rc = qemuMonitorGetMigrationCapabilities(priv->mon, &caps);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
goto cleanup;
if (!caps) {
@@ -11429,14 +11443,14 @@ qemuDomainCheckMigrationCapabilities(virQEMUDriverPtr driver,
}
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_EVENT)) {
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
rc = qemuMonitorSetMigrationCapability(priv->mon,
QEMU_MONITOR_MIGRATION_CAPS_EVENTS,
true);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0) {
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
old mode 100644
new mode 100755
index f3ec5d8..ceee781
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -517,17 +517,19 @@ void qemuDomainObjReleaseAsyncJob(virDomainObjPtr obj);
qemuMonitorPtr qemuDomainGetMonitor(virDomainObjPtr vm)
ATTRIBUTE_NONNULL(1);
-void qemuDomainObjEnterMonitor(virQEMUDriverPtr driver,
+qemuMonitorPtr qemuDomainObjEnterMonitor(virQEMUDriverPtr driver,
virDomainObjPtr obj)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuDomainObjExitMonitor(virQEMUDriverPtr driver,
- virDomainObjPtr obj)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
+ virDomainObjPtr obj,
+ qemuMonitorPtr mon)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
ATTRIBUTE_RETURN_CHECK;
int qemuDomainObjEnterMonitorAsync(virQEMUDriverPtr driver,
virDomainObjPtr obj,
- qemuDomainAsyncJob asyncJob)
- ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
+ qemuDomainAsyncJob asyncJob,
+ qemuMonitorPtr *mon)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4) ATTRIBUTE_RETURN_CHECK;
qemuAgentPtr qemuDomainObjEnterAgent(virDomainObjPtr obj)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
old mode 100644
new mode 100755
index 8d77d89..ef84596
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1987,6 +1987,7 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, unsigned int flags)
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
+ qemuMonitorPtr mon;
int ret = -1;
qemuDomainObjPrivatePtr priv;
bool useAgent = false, agentRequested, acpiRequested;
@@ -2057,9 +2058,9 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, unsigned int flags)
}
qemuDomainSetFakeReboot(driver, vm, isReboot);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSystemPowerdown(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
}
@@ -2082,6 +2083,7 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
+ qemuMonitorPtr mon;
int ret = -1;
qemuDomainObjPrivatePtr priv;
bool useAgent = false, agentRequested, acpiRequested;
@@ -2159,9 +2161,9 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags)
}
#endif
qemuDomainSetFakeReboot(driver, vm, isReboot);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSystemPowerdown(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
}
@@ -2179,6 +2181,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags)
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
+ qemuMonitorPtr mon;
int ret = -1;
qemuDomainObjPrivatePtr priv;
virDomainState state;
@@ -2201,9 +2204,9 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags)
}
priv = vm->privateData;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSystemReset(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
priv->fakeReboot = false;
@@ -2360,6 +2363,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
virDomainObjPtr vm;
virDomainDefPtr def;
virDomainDefPtr persistentDef;
+ qemuMonitorPtr mon;
int ret = -1, r;
virQEMUDriverConfigPtr cfg = NULL;
@@ -2438,9 +2442,9 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
if (def) {
priv = vm->privateData;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
r = qemuMonitorSetBalloon(priv->mon, newmem);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || r < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || r < 0)
goto endjob;
/* Lack of balloon support is a fatal error */
@@ -2488,6 +2492,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPtr dom, int period,
virDomainObjPtr vm;
virDomainDefPtr def;
virDomainDefPtr persistentDef;
+ qemuMonitorPtr mon;
int ret = -1, r;
virQEMUDriverConfigPtr cfg = NULL;
@@ -2520,9 +2525,9 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPtr dom, int period,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
r = qemuMonitorSetMemoryStatsPeriod(priv->mon, def->memballoon, period);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (r < 0) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
@@ -2562,6 +2567,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, unsigned int flags)
{
virQEMUDriverPtr driver = domain->conn->privateData;
virDomainObjPtr vm = NULL;
+ qemuMonitorPtr mon;
int ret = -1;
qemuDomainObjPrivatePtr priv;
@@ -2584,9 +2590,9 @@ static int qemuDomainInjectNMI(virDomainPtr domain, unsigned int flags)
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorInjectNMI(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -2608,6 +2614,7 @@ static int qemuDomainSendKey(virDomainPtr domain,
virDomainObjPtr vm = NULL;
int ret = -1;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
virCheckFlags(0, -1);
@@ -2647,9 +2654,9 @@ static int qemuDomainSendKey(virDomainPtr domain,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSendKey(priv->mon, holdtime, keycodes, nkeycodes);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -3806,6 +3813,7 @@ qemuDumpToFd(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
bool detach = false;
int ret = -1;
+ qemuMonitorPtr mon;
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DUMP_GUEST_MEMORY)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
@@ -3825,7 +3833,7 @@ qemuDumpToFd(virQEMUDriverPtr driver,
priv->job.dump_memory_only = true;
}
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
if (dumpformat) {
@@ -3837,14 +3845,14 @@ qemuDumpToFd(virQEMUDriverPtr driver,
"for this QEMU binary"),
dumpformat);
ret = -1;
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
}
ret = qemuMonitorDumpToFd(priv->mon, fd, dumpformat, detach);
- if ((qemuDomainObjExitMonitor(driver, vm) < 0) || ret < 0)
+ if ((qemuDomainObjExitMonitor(driver, vm, mon) < 0) || ret < 0)
goto cleanup;
if (detach)
@@ -3961,6 +3969,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom,
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
+ qemuMonitorPtr mon;
qemuDomainObjPrivatePtr priv = NULL;
bool resume = false, paused = false;
int ret = -1;
@@ -4025,9 +4034,9 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom,
} else if (((resume && paused) || (flags & VIR_DUMP_RESET)) &&
virDomainObjIsActive(vm)) {
if ((ret == 0) && (flags & VIR_DUMP_RESET)) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSystemReset(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
}
@@ -4075,6 +4084,7 @@ qemuDomainScreenshot(virDomainPtr dom,
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
+ qemuMonitorPtr mon;
qemuDomainObjPrivatePtr priv;
char *tmp = NULL;
int tmp_fd = -1;
@@ -4122,12 +4132,12 @@ qemuDomainScreenshot(virDomainPtr dom,
qemuSecuritySetSavedStateLabel(driver->securityManager, vm->def, tmp);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorScreendump(priv->mon, tmp) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto endjob;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (VIR_CLOSE(tmp_fd) < 0) {
@@ -4603,6 +4613,7 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainDeviceDef dev;
virDomainNetDefPtr def;
+ qemuMonitorPtr mon;
virNetDevRxFilterPtr guestFilter = NULL;
virNetDevRxFilterPtr hostFilter = NULL;
int ret;
@@ -4648,9 +4659,9 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr driver,
VIR_DEBUG("process NIC_RX_FILTER_CHANGED event for network "
"device %s in domain %s", def->info.alias, vm->def->name);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorQueryRxFilter(priv->mon, devAlias, &guestFilter);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
goto endjob;
@@ -5552,6 +5563,7 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv;
qemuMonitorIOThreadInfoPtr *iothreads = NULL;
virDomainIOThreadInfoPtr *info_ret = NULL;
+ qemuMonitorPtr mon;
int niothreads = 0;
size_t i;
int ret = -1;
@@ -5572,9 +5584,9 @@ qemuDomainGetIOThreadsLive(virQEMUDriverPtr driver,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
niothreads = qemuMonitorGetIOThreads(priv->mon, &iothreads);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (niothreads < 0)
goto endjob;
@@ -5872,11 +5884,12 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver,
int new_niothreads = 0;
qemuMonitorIOThreadInfoPtr *new_iothreads = NULL;
virDomainIOThreadIDDefPtr iothrid;
+ qemuMonitorPtr mon;
if (virAsprintf(&alias, "iothread%u", iothread_id) < 0)
return -1;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorAddObject(priv->mon, "iothread", alias, NULL);
exp_niothreads++;
@@ -5891,7 +5904,7 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver,
&new_iothreads)) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (new_niothreads != exp_niothreads) {
@@ -5940,7 +5953,7 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver,
return ret;
exit_monitor:
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
@@ -5958,11 +5971,12 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver,
unsigned int exp_niothreads = vm->def->niothreadids;
int new_niothreads = 0;
qemuMonitorIOThreadInfoPtr *new_iothreads = NULL;
+ qemuMonitorPtr mon;
if (virAsprintf(&alias, "iothread%u", iothread_id) < 0)
return -1;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelObject(priv->mon, alias);
exp_niothreads--;
@@ -5973,7 +5987,7 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver,
&new_iothreads)) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (new_niothreads != exp_niothreads) {
@@ -6004,7 +6018,7 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver,
return ret;
exit_monitor:
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
@@ -10826,6 +10840,7 @@ qemuDomainBlockResize(virDomainPtr dom,
int ret = -1;
char *device = NULL;
virDomainDiskDefPtr disk = NULL;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_DOMAIN_BLOCK_RESIZE_BYTES, -1);
@@ -10879,12 +10894,12 @@ qemuDomainBlockResize(virDomainPtr dom,
if (!(device = qemuAliasFromDisk(disk)))
goto endjob;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorBlockResize(priv->mon, device, size) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto endjob;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
ret = 0;
@@ -10945,6 +10960,7 @@ qemuDomainBlocksStatsGather(virQEMUDriverPtr driver,
virDomainDiskDefPtr disk;
virHashTablePtr blockstats = NULL;
qemuBlockStatsPtr stats;
+ qemuMonitorPtr mon;
int nstats;
char *diskAlias = NULL;
int ret = -1;
@@ -10965,9 +10981,9 @@ qemuDomainBlocksStatsGather(virQEMUDriverPtr driver,
goto cleanup;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
nstats = qemuMonitorGetAllBlockStatsInfo(priv->mon, &blockstats, false);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || nstats < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || nstats < 0)
goto cleanup;
if (VIR_ALLOC(*retstats) < 0)
@@ -11499,6 +11515,7 @@ qemuDomainMemoryStatsInternal(virQEMUDriverPtr driver,
{
int ret = -1;
long rss;
+ qemuMonitorPtr mon;
if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID,
@@ -11508,10 +11525,10 @@ qemuDomainMemoryStatsInternal(virQEMUDriverPtr driver,
if (vm->def->memballoon &&
vm->def->memballoon->model == VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetMemoryStats(qemuDomainGetMonitor(vm),
vm->def->memballoon, stats, nr_stats);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0 || ret >= nr_stats)
@@ -11634,6 +11651,7 @@ qemuDomainMemoryPeek(virDomainPtr dom,
int fd = -1, ret = -1;
qemuDomainObjPrivatePtr priv;
virQEMUDriverConfigPtr cfg = NULL;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_MEMORY_VIRTUAL | VIR_MEMORY_PHYSICAL, -1);
@@ -11673,19 +11691,19 @@ qemuDomainMemoryPeek(virDomainPtr dom,
qemuSecuritySetSavedStateLabel(driver->securityManager, vm->def, tmp);
priv = vm->privateData;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (flags == VIR_MEMORY_VIRTUAL) {
if (qemuMonitorSaveVirtualMemory(priv->mon, offset, size, tmp) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto endjob;
}
} else {
if (qemuMonitorSavePhysicalMemory(priv->mon, offset, size, tmp) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto endjob;
}
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
/* Read the memory file into buffer. */
@@ -11898,6 +11916,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom,
virHashTablePtr stats = NULL;
qemuBlockStats *entry;
char *alias = NULL;
+ qemuMonitorPtr mon;
virCheckFlags(0, -1);
@@ -11945,14 +11964,14 @@ qemuDomainGetBlockInfo(virDomainPtr dom,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorGetAllBlockStatsInfo(qemuDomainGetMonitor(vm),
&stats, false);
if (rc >= 0)
rc = qemuMonitorBlockStatsUpdateCapacity(qemuDomainGetMonitor(vm),
stats, false);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
goto endjob;
if (!(entry = virHashLookup(stats, alias))) {
@@ -13239,13 +13258,14 @@ qemuDomainGetJobInfoDumpStats(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
qemuMonitorDumpStats stats = { 0 };
int rc;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_NONE) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, QEMU_ASYNC_JOB_NONE, &mon) < 0)
return -1;
rc = qemuMonitorQueryDump(priv->mon, &stats);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
return -1;
jobInfo->stats.dump = stats;
@@ -13431,6 +13451,7 @@ static int qemuDomainAbortJob(virDomainPtr dom)
virDomainObjPtr vm;
int ret = -1;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
int reason;
if (!(vm = qemuDomObjFromDomain(dom)))
@@ -13474,9 +13495,9 @@ static int qemuDomainAbortJob(virDomainPtr dom)
VIR_DEBUG("Cancelling job at client request");
qemuDomainObjAbortAsyncJob(vm);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorMigrateCancel(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -13496,6 +13517,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
int ret = -1;
virCheckFlags(0, -1);
@@ -13518,9 +13540,9 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom,
priv = vm->privateData;
VIR_DEBUG("Setting migration downtime to %llums", downtime);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSetMigrationDowntime(priv->mon, downtime);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -13540,6 +13562,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
qemuMonitorMigrationParams migparams = { 0 };
int ret = -1;
@@ -13561,7 +13584,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom,
}
priv = vm->privateData;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorGetMigrationParams(priv->mon, &migparams) == 0) {
if (migparams.downtimeLimit_set) {
@@ -13574,7 +13597,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom,
}
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -13594,6 +13617,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
int ret = -1;
virCheckFlags(0, -1);
@@ -13622,11 +13646,11 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr dom,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetMigrationCacheSize(priv->mon, cacheSize);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -13645,6 +13669,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
int ret = -1;
virCheckFlags(0, -1);
@@ -13673,12 +13698,12 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr dom,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
VIR_DEBUG("Setting compression cache to %llu B", cacheSize);
ret = qemuMonitorSetMigrationCacheSize(priv->mon, cacheSize);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -13697,6 +13722,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
int ret = -1;
virCheckFlags(0, -1);
@@ -13727,9 +13753,9 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom,
}
VIR_DEBUG("Setting migration bandwidth to %luMbs", bandwidth);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSetMigrationSpeed(priv->mon, bandwidth);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret == 0)
@@ -13782,6 +13808,7 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
int ret = -1;
virCheckFlags(0, -1);
@@ -13818,9 +13845,9 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom,
}
VIR_DEBUG("Starting post-copy");
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorMigrateStartPostCopy(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -14018,6 +14045,7 @@ qemuDomainSnapshotCreateActiveInternal(virConnectPtr conn,
virObjectEventPtr event = NULL;
bool resume = false;
int ret = -1;
+ qemuMonitorPtr mon;
if (!qemuMigrationIsAllowed(driver, vm, false, 0))
goto cleanup;
@@ -14040,13 +14068,13 @@ qemuDomainSnapshotCreateActiveInternal(virConnectPtr conn,
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_SNAPSHOT) < 0) {
+ QEMU_ASYNC_JOB_SNAPSHOT, &mon) < 0) {
resume = false;
goto cleanup;
}
ret = qemuMonitorCreateSnapshot(priv->mon, snap->def->name);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
goto cleanup;
@@ -14696,6 +14724,7 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
char *source = NULL;
const char *formatStr = NULL;
int ret = -1, rc;
+ qemuMonitorPtr mon;
if (!(device = qemuAliasFromDisk(dd->disk)))
goto cleanup;
@@ -14728,13 +14757,13 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
* Otherwise the following monitor command only constructs the command.
*/
if (!actions &&
- qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = rc = qemuMonitorDiskSnapshot(priv->mon, actions, device, source,
formatStr, reuse);
if (!actions) {
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
}
@@ -14765,6 +14794,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
virQEMUDriverConfigPtr cfg = NULL;
qemuDomainSnapshotDiskDataPtr diskdata = NULL;
virErrorPtr orig_err = NULL;
+ qemuMonitorPtr mon;
if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID,
@@ -14812,12 +14842,12 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
}
if (actions && do_transaction) {
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = qemuMonitorTransaction(priv->mon, actions);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || ret < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || ret < 0) {
ret = -1;
goto error;
}
@@ -15755,6 +15785,7 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
bool was_stopped = false;
qemuDomainSaveCookiePtr cookie;
virCPUDefPtr origCPU = NULL;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING |
VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED |
@@ -15942,10 +15973,10 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_START) < 0)
+ QEMU_ASYNC_JOB_START, &mon) < 0)
goto endjob;
rc = qemuMonitorLoadSnapshot(priv->mon, snap->def->name);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (rc < 0) {
/* XXX resume domain if it was running before the
@@ -16307,6 +16338,7 @@ static int qemuDomainQemuMonitorCommand(virDomainPtr domain, const char *cmd,
virDomainObjPtr vm = NULL;
int ret = -1;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
bool hmp;
virCheckFlags(VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP, -1);
@@ -16332,9 +16364,9 @@ static int qemuDomainQemuMonitorCommand(virDomainPtr domain, const char *cmd,
hmp = !!(flags & VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorArbitraryCommand(priv->mon, cmd, result, hmp);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -16608,6 +16640,7 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver,
qemuMonitorBlockJobInfo info;
virStorageSourcePtr oldsrc = NULL;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+ qemuMonitorPtr mon;
if (!disk->mirror) {
virReportError(VIR_ERR_OPERATION_INVALID,
@@ -16618,9 +16651,9 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver,
/* Probe the status, if needed. */
if (!disk->mirrorState) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorGetBlockJobInfo(priv->mon, disk->info.alias, &info);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0)
goto cleanup;
@@ -16687,9 +16720,9 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver,
* that pivot failed, we need to reflect that failure into the
* overall return value. */
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_PIVOT;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDrivePivot(priv->mon, device);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
ret = -1;
goto cleanup;
}
@@ -16729,6 +16762,7 @@ qemuDomainBlockPullCommon(virQEMUDriverPtr driver,
char *backingPath = NULL;
unsigned long long speed = bandwidth;
int ret = -1;
+ qemuMonitorPtr mon;
if (flags & VIR_DOMAIN_BLOCK_REBASE_RELATIVE && !base) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
@@ -16797,14 +16831,14 @@ qemuDomainBlockPullCommon(virQEMUDriverPtr driver,
speed <<= 20;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (baseSource)
basePath = qemuMonitorDiskNameLookup(priv->mon, device, disk->src,
baseSource);
if (!baseSource || basePath)
ret = qemuMonitorBlockStream(priv->mon, device, basePath, backingPath,
speed);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
@@ -16843,6 +16877,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom,
bool async = !!(flags & VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC);
virDomainObjPtr vm;
int ret = -1;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC |
VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT, -1);
@@ -16891,9 +16926,9 @@ qemuDomainBlockJobAbort(virDomainPtr dom,
save = true;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorBlockJobCancel(qemuDomainGetMonitor(vm), device);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
ret = -1;
goto endjob;
}
@@ -16994,6 +17029,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom,
virDomainDiskDefPtr disk;
int ret = -1;
qemuMonitorBlockJobInfo rawInfo;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_DOMAIN_BLOCK_JOB_INFO_BANDWIDTH_BYTES, -1);
@@ -17022,10 +17058,10 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetBlockJobInfo(qemuDomainGetMonitor(vm),
disk->info.alias, &rawInfo);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret <= 0)
goto endjob;
@@ -17071,6 +17107,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom,
virDomainObjPtr vm;
const char *device;
unsigned long long speed = bandwidth;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_BYTES, -1);
@@ -17109,11 +17146,11 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom,
if (!(device = qemuAliasFromDisk(disk)))
goto endjob;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorBlockJobSetSpeed(qemuDomainGetMonitor(vm),
device,
speed);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -17206,6 +17243,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
const char *format = NULL;
virErrorPtr monitor_error = NULL;
bool reuse = !!(flags & VIR_DOMAIN_BLOCK_COPY_REUSE_EXT);
+ qemuMonitorPtr mon;
/* Preliminaries: find the disk we are editing, sanity checks */
virCheckFlags(VIR_DOMAIN_BLOCK_COPY_SHALLOW |
@@ -17325,13 +17363,13 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
}
/* Actually start the mirroring */
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
/* qemuMonitorDriveMirror needs to honor the REUSE_EXT flag as specified
* by the user regardless of how @reuse was modified */
ret = qemuMonitorDriveMirror(priv->mon, device, mirror->path, format,
bandwidth, granularity, buf_size, flags);
virDomainAuditDisk(vm, NULL, mirror, "mirror", ret >= 0);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0) {
monitor_error = virSaveLastError();
@@ -17565,6 +17603,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
char *backingPath = NULL;
virStorageSourcePtr mirror = NULL;
unsigned long long speed = bandwidth;
+ qemuMonitorPtr mon;
/* XXX Add support for COMMIT_DELETE */
virCheckFlags(VIR_DOMAIN_BLOCK_COMMIT_SHALLOW |
@@ -17728,7 +17767,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
disk->mirror = mirror;
disk->mirrorJob = VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
basePath = qemuMonitorDiskNameLookup(priv->mon, device, disk->src,
baseSource);
topPath = qemuMonitorDiskNameLookup(priv->mon, device, disk->src,
@@ -17737,7 +17776,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
ret = qemuMonitorBlockCommit(priv->mon, device,
topPath, basePath, backingPath,
speed);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
ret = -1;
goto endjob;
}
@@ -17790,6 +17829,7 @@ qemuDomainOpenGraphics(virDomainPtr dom,
virDomainObjPtr vm = NULL;
int ret = -1;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
const char *protocol;
virCheckFlags(VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH, -1);
@@ -17833,10 +17873,10 @@ qemuDomainOpenGraphics(virDomainPtr dom,
if (qemuSecuritySetImageFDLabel(driver->securityManager, vm->def, fd) < 0)
goto endjob;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorOpenGraphics(priv->mon, protocol, fd, "graphicsfd",
(flags & VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH) != 0);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -17856,6 +17896,7 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom,
virDomainObjPtr vm = NULL;
int ret = -1;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
const char *protocol;
int pair[2] = {-1, -1};
@@ -17905,10 +17946,10 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom,
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorOpenGraphics(priv->mon, protocol, pair[1], "graphicsfd",
(flags & VIR_DOMAIN_OPEN_GRAPHICS_SKIPAUTH));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
qemuDomainObjEndJob(driver, vm);
if (ret < 0)
@@ -18023,6 +18064,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
virTypedParameterPtr eventParams = NULL;
int eventNparams = 0;
int eventMaxparams = 0;
+ qemuMonitorPtr mon;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
VIR_DOMAIN_AFFECT_CONFIG, -1);
@@ -18287,12 +18329,12 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
/* NB: Let's let QEMU decide how to handle issues with _length
* via the JSON error code from the block_set_io_throttle call */
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSetBlockIoThrottle(priv->mon, device,
&info, supportMaxOptions,
set_fields & QEMU_BLOCK_IOTUNE_SET_GROUP_NAME,
supportMaxLengthOptions);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
goto endjob;
@@ -18360,6 +18402,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
virDomainDefPtr def = NULL;
virDomainDefPtr persistentDef = NULL;
virDomainBlockIoTuneInfo reply = {0};
+ qemuMonitorPtr mon;
char *device = NULL;
int ret = -1;
int maxparams;
@@ -18423,9 +18466,9 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
if (!(device = qemuAliasFromDisk(disk)))
goto endjob;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetBlockIoThrottle(priv->mon, device, &reply);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (ret < 0)
goto endjob;
@@ -18514,6 +18557,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom,
virDomainObjPtr vm = NULL;
qemuDomainObjPrivatePtr priv;
virHashTablePtr table = NULL;
+ qemuMonitorPtr mon;
int ret = -1;
size_t i;
int n = 0;
@@ -18542,9 +18586,9 @@ qemuDomainGetDiskErrors(virDomainPtr dom,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
table = qemuMonitorGetBlockInfo(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (!table)
goto endjob;
@@ -18799,6 +18843,7 @@ qemuDomainPMWakeup(virDomainPtr dom,
virDomainObjPtr vm;
int ret = -1;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
virCheckFlags(0, -1);
@@ -18826,9 +18871,9 @@ qemuDomainPMWakeup(virDomainPtr dom,
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSystemWakeup(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
endjob:
@@ -19206,6 +19251,7 @@ qemuDomainSetTime(virDomainPtr dom,
qemuDomainObjPrivatePtr priv;
virDomainObjPtr vm;
qemuAgentPtr agent;
+ qemuMonitorPtr mon;
bool rtcSync = flags & VIR_DOMAIN_TIME_SYNC;
int ret = -1;
int rv;
@@ -19259,9 +19305,9 @@ qemuDomainSetTime(virDomainPtr dom,
/* Don't try to call rtc-reset-reinjection if it's not available */
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_RTC_RESET_REINJECTION)) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rv = qemuMonitorRTCResetReinjection(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (rv < 0)
@@ -20062,6 +20108,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
virHashTablePtr stats = NULL;
virHashTablePtr nodestats = NULL;
virJSONValuePtr nodedata = NULL;
+ qemuMonitorPtr mon;
qemuDomainObjPrivatePtr priv = dom->privateData;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
bool fetchnodedata = virQEMUCapsGet(priv->qemuCaps,
@@ -20071,7 +20118,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
bool visitBacking = !!(privflags & QEMU_DOMAIN_STATS_BACKING);
if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
- qemuDomainObjEnterMonitor(driver, dom);
+ mon = qemuDomainObjEnterMonitor(driver, dom);
rc = qemuMonitorGetAllBlockStatsInfo(priv->mon, &stats,
visitBacking);
if (rc >= 0)
@@ -20081,7 +20128,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
if (fetchnodedata)
nodedata = qemuMonitorQueryNamedBlockNodes(priv->mon);
- if (qemuDomainObjExitMonitor(driver, dom) < 0)
+ if (qemuDomainObjExitMonitor(driver, dom, mon) < 0)
goto cleanup;
/* failure to retrieve stats is fine at this point */
@@ -21096,6 +21143,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom,
qemuDomainObjPrivatePtr priv;
virDomainObjPtr vm = NULL;
virStorageSourcePtr src;
+ qemuMonitorPtr mon;
char *nodename = NULL;
int rc;
int ret = -1;
@@ -21142,9 +21190,9 @@ qemuDomainSetBlockThreshold(virDomainPtr dom,
if (VIR_STRDUP(nodename, src->nodestorage) < 0)
goto endjob;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorSetBlockThreshold(priv->mon, nodename, threshold);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
goto endjob;
ret = 0;
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
old mode 100644
new mode 100755
index 53bfe47..6f436e0
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -203,6 +203,7 @@ qemuHotplugWaitForTrayEject(virQEMUDriverPtr driver,
{
unsigned long long now;
int rc;
+ qemuMonitorPtr mon;
if (virTimeMillisNow(&now) < 0)
return -1;
@@ -223,9 +224,9 @@ qemuHotplugWaitForTrayEject(virQEMUDriverPtr driver,
}
/* re-issue ejection command to pop out the media */
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorEjectMedia(qemuDomainGetMonitor(vm), driveAlias, false);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
return -1;
return 0;
@@ -260,6 +261,7 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
qemuDomainDiskPrivatePtr diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
qemuDomainStorageSourcePrivatePtr srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
qemuDomainSecretInfoPtr secinfo = NULL;
+ qemuMonitorPtr mon;
const char *format = NULL;
char *sourcestr = NULL;
@@ -286,9 +288,9 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
if (!(driveAlias = qemuAliasFromDisk(disk)))
goto error;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorEjectMedia(priv->mon, driveAlias, force);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
/* If the tray is present and tray change event is supported wait for it to open. */
@@ -315,12 +317,12 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
format = virStorageFileFormatTypeToString(disk->src->format);
}
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorChangeMedia(priv->mon,
driveAlias,
sourcestr,
format);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
}
@@ -377,6 +379,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn,
qemuDomainStorageSourcePrivatePtr srcPriv;
qemuDomainSecretInfoPtr secinfo = NULL;
qemuDomainSecretInfoPtr encinfo = NULL;
+ qemuMonitorPtr mon;
if (qemuHotplugPrepareDiskAccess(driver, vm, disk, NULL, false) < 0)
goto cleanup;
@@ -418,7 +421,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn,
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
goto error;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (secobjProps) {
rv = qemuMonitorAddObject(priv->mon, "secret", secinfo->s.aes.alias,
@@ -445,7 +448,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn,
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
ret = -2;
goto error;
}
@@ -475,7 +478,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn,
ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias));
if (encobjAdded)
ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -2;
virErrorRestore(&orig_err);
@@ -523,6 +526,7 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
virDomainDeviceDef dev = { VIR_DOMAIN_DEVICE_CONTROLLER,
{ .controller = controller } };
bool releaseaddr = false;
+ qemuMonitorPtr mon;
if (controller->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
@@ -561,9 +565,9 @@ int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
if (VIR_REALLOC_N(vm->def->controllers, vm->def->ncontrollers+1) < 0)
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorAddDevice(priv->mon, devstr);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
releaseaddr = false;
ret = -1;
goto cleanup;
@@ -846,6 +850,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
bool charDevPlugged = false;
bool netdevPlugged = false;
bool hostPlugged = false;
+ qemuMonitorPtr mon;
/* preallocate new slot for device */
if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets + 1) < 0)
@@ -1081,11 +1086,11 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
goto cleanup;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER) {
if (qemuMonitorAttachCharDev(priv->mon, charDevAlias, net->data.vhostuser) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virDomainAuditNet(vm, NULL, net, "attach", false);
goto cleanup;
}
@@ -1096,7 +1101,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
if (qemuMonitorAddNetdev(priv->mon, netstr,
tapfd, tapfdName, tapfdSize,
vhostfd, vhostfdName, vhostfdSize) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virDomainAuditNet(vm, NULL, net, "attach", false);
goto try_remove;
}
@@ -1105,14 +1110,14 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
if (qemuMonitorAddHostNetwork(priv->mon, netstr,
tapfd, tapfdName, tapfdSize,
vhostfd, vhostfdName, vhostfdSize) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virDomainAuditNet(vm, NULL, net, "attach", false);
goto try_remove;
}
hostPlugged = true;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
for (i = 0; i < tapfdSize; i++)
@@ -1124,13 +1129,13 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
queueSize, priv->qemuCaps)))
goto try_remove;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorAddDevice(priv->mon, nicstr) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virDomainAuditNet(vm, NULL, net, "attach", false);
goto try_remove;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
/* set link state */
@@ -1139,11 +1144,11 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("device alias not found: cannot set link state to down"));
} else {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
if (qemuMonitorSetLink(priv->mon, net->info.alias, VIR_DOMAIN_NET_INTERFACE_LINK_STATE_DOWN) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virDomainAuditNet(vm, NULL, net, "attach", false);
goto try_remove;
}
@@ -1152,7 +1157,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
_("setting of link state not supported: Link is up"));
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
}
/* link set to down */
@@ -1220,7 +1225,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
char *netdev_name;
if (virAsprintf(&netdev_name, "host%s", net->info.alias) >= 0) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (charDevPlugged &&
qemuMonitorDetachCharDev(priv->mon, charDevAlias) < 0)
VIR_WARN("Failed to remove associated chardev %s", charDevAlias);
@@ -1228,7 +1233,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
VIR_WARN("Failed to remove network backend for netdev %s",
netdev_name);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
VIR_FREE(netdev_name);
}
} else {
@@ -1237,12 +1242,12 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
} else {
char *hostnet_name;
if (virAsprintf(&hostnet_name, "host%s", net->info.alias) >= 0) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (hostPlugged &&
qemuMonitorRemoveHostNetwork(priv->mon, vlan, hostnet_name) < 0)
VIR_WARN("Failed to remove network backend for vlan %d, net %s",
vlan, hostnet_name);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
VIR_FREE(hostnet_name);
}
}
@@ -1271,6 +1276,7 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver,
int backend;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
unsigned int flags = 0;
+ qemuMonitorPtr mon;
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0)
goto cleanup;
@@ -1363,10 +1369,10 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver,
configfd_name, priv->qemuCaps)))
goto error;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorAddDeviceWithFd(priv->mon, devstr,
configfd, configfd_name);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto error;
virDomainAuditHostdev(vm, hostdev, "attach", ret == 0);
@@ -1416,13 +1422,14 @@ qemuDomainDelTLSObjects(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
virErrorPtr orig_err;
+ qemuMonitorPtr mon;
if (!tlsAlias && !secAlias)
return;
virErrorPreserveLast(&orig_err);
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
if (tlsAlias)
@@ -1431,7 +1438,7 @@ qemuDomainDelTLSObjects(virQEMUDriverPtr driver,
if (secAlias)
ignore_value(qemuMonitorDelObject(priv->mon, secAlias));
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
cleanup:
virErrorRestore(&orig_err);
@@ -1450,11 +1457,12 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
int rc;
virErrorPtr orig_err;
+ qemuMonitorPtr mon;
if (!tlsAlias && !secAlias)
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
if (secAlias) {
@@ -1473,11 +1481,11 @@ qemuDomainAddTLSObjects(virQEMUDriverPtr driver,
goto error;
}
- return qemuDomainObjExitMonitor(driver, vm);
+ return qemuDomainObjExitMonitor(driver, vm, mon);
error:
virErrorPreserveLast(&orig_err);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virErrorRestore(&orig_err);
qemuDomainDelTLSObjects(driver, vm, asyncJob, secAlias, tlsAlias);
@@ -1588,6 +1596,7 @@ qemuDomainDelChardevTLSObjects(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
char *tlsAlias = NULL;
char *secAlias = NULL;
+ qemuMonitorPtr mon;
if (dev->type != VIR_DOMAIN_CHR_TYPE_TCP ||
dev->data.tcp.haveTLS != VIR_TRISTATE_BOOL_YES) {
@@ -1606,13 +1615,13 @@ qemuDomainDelChardevTLSObjects(virQEMUDriverPtr driver,
!(secAlias = qemuDomainGetSecretAESAlias(inAlias, false)))
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ignore_value(qemuMonitorDelObject(priv->mon, tlsAlias));
if (secAlias)
ignore_value(qemuMonitorDelObject(priv->mon, secAlias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
ret = 0;
@@ -1640,6 +1649,7 @@ int qemuDomainAttachRedirdevDevice(virConnectPtr conn,
char *secAlias = NULL;
bool need_release = false;
virErrorPtr orig_err;
+ qemuMonitorPtr mon;
if (qemuAssignDeviceRedirdevAlias(def, redirdev, -1) < 0)
goto cleanup;
@@ -1662,7 +1672,7 @@ int qemuDomainAttachRedirdevDevice(virConnectPtr conn,
&tlsAlias, &secAlias) < 0)
goto audit;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorAttachCharDev(priv->mon,
charAlias,
@@ -1673,7 +1683,7 @@ int qemuDomainAttachRedirdevDevice(virConnectPtr conn,
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto audit;
def->redirdevs[def->nredirdevs++] = redirdev;
@@ -1694,7 +1704,7 @@ int qemuDomainAttachRedirdevDevice(virConnectPtr conn,
/* detach associated chardev on error */
if (chardevAdded)
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virErrorRestore(&orig_err);
qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE,
secAlias, tlsAlias);
@@ -1882,6 +1892,7 @@ int qemuDomainAttachChrDevice(virConnectPtr conn,
char *tlsAlias = NULL;
char *secAlias = NULL;
bool need_release = false;
+ qemuMonitorPtr mon;
if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
qemuDomainPrepareChannel(chr, priv->channelTargetDir) < 0)
@@ -1921,7 +1932,7 @@ int qemuDomainAttachChrDevice(virConnectPtr conn,
&tlsAlias, &secAlias) < 0)
goto audit;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorAttachCharDev(priv->mon, charAlias, chr->source) < 0)
goto exit_monitor;
@@ -1930,7 +1941,7 @@ int qemuDomainAttachChrDevice(virConnectPtr conn,
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto audit;
qemuDomainChrInsertPreAlloced(vmdef, chr);
@@ -1961,7 +1972,7 @@ int qemuDomainAttachChrDevice(virConnectPtr conn,
/* detach associated chardev on error */
if (chardevAttached)
qemuMonitorDetachCharDev(priv->mon, charAlias);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virErrorRestore(&orig_err);
qemuDomainDelTLSObjects(driver, vm, QEMU_ASYNC_JOB_NONE,
@@ -1993,6 +2004,7 @@ qemuDomainAttachRNGDevice(virConnectPtr conn,
const char *type;
int ret = -1;
int rv;
+ qemuMonitorPtr mon;
if (qemuAssignDeviceRNGAlias(vm->def, rng) < 0)
goto cleanup;
@@ -2033,7 +2045,7 @@ qemuDomainAttachRNGDevice(virConnectPtr conn,
goto audit;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD &&
qemuMonitorAttachCharDev(priv->mon, charAlias,
@@ -2050,7 +2062,7 @@ qemuDomainAttachRNGDevice(virConnectPtr conn,
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
releaseaddr = false;
goto cleanup;
}
@@ -2085,7 +2097,7 @@ qemuDomainAttachRNGDevice(virConnectPtr conn,
ignore_value(qemuMonitorDelObject(priv->mon, objAlias));
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD && chardevAdded)
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
releaseaddr = false;
virErrorRestore(&orig_err);
@@ -2127,6 +2139,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
int id;
int ret = -1;
int rv;
+ qemuMonitorPtr mon;
qemuDomainMemoryDeviceAlignSize(vm->def, mem);
@@ -2172,7 +2185,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
if (qemuDomainAdjustMaxMemLock(vm) < 0)
goto removedef;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rv = qemuMonitorAddObject(priv->mon, backendType, objalias, props);
props = NULL; /* qemuMonitorAddObject consumes */
if (rv < 0)
@@ -2182,7 +2195,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
/* we shouldn't touch mem now, as the def might be freed */
mem = NULL;
goto audit;
@@ -2227,7 +2240,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
virErrorPreserveLast(&orig_err);
if (objAdded)
ignore_value(qemuMonitorDelObject(priv->mon, objalias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
mem = NULL;
virErrorRestore(&orig_err);
if (!mem)
@@ -2261,6 +2274,7 @@ qemuDomainAttachHostUSBDevice(virQEMUDriverPtr driver,
bool teardownlabel = false;
bool teardowndevice = false;
int ret = -1;
+ qemuMonitorPtr mon;
if (priv->usbaddrs) {
if (virDomainUSBAddressEnsure(priv->usbaddrs, hostdev->info) < 0)
@@ -2293,9 +2307,9 @@ qemuDomainAttachHostUSBDevice(virQEMUDriverPtr driver,
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0)
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorAddDevice(priv->mon, devstr);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
ret = -1;
goto cleanup;
}
@@ -2348,6 +2362,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn,
virJSONValuePtr secobjProps = NULL;
virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi;
qemuDomainSecretInfoPtr secinfo = NULL;
+ qemuMonitorPtr mon;
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_SCSI_GENERIC)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -2411,7 +2426,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn,
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0)
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (secobjProps) {
rv = qemuMonitorAddObject(priv->mon, "secret", secinfo->s.aes.alias,
@@ -2429,7 +2444,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn,
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditHostdev(vm, hostdev, "attach", true);
@@ -2466,7 +2481,7 @@ qemuDomainAttachHostSCSIDevice(virConnectPtr conn,
}
if (secobjAdded)
ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias));
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
virErrorRestore(&orig_err);
virDomainAuditHostdev(vm, hostdev, "attach", false);
@@ -2491,6 +2506,7 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driver,
bool teardownlabel = false;
bool teardowndevice = false;
bool releaseaddr = false;
+ qemuMonitorPtr mon;
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_SCSI_GENERIC)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
@@ -2550,11 +2566,11 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driver,
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0)
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorAddDeviceWithFd(priv->mon, devstr, vhostfd, vhostfdName);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || ret < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || ret < 0)
goto audit;
vm->def->hostdevs[vm->def->nhostdevs++] = hostdev;
@@ -2652,6 +2668,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
virJSONValuePtr props = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainDeviceDef dev = { VIR_DOMAIN_DEVICE_SHMEM, { .shmem = shmem } };
+ qemuMonitorPtr mon;
switch ((virDomainShmemModel)shmem->model) {
case VIR_DOMAIN_SHMEM_MODEL_IVSHMEM_PLAIN:
@@ -2695,7 +2712,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
goto cleanup;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (shmem->server.enabled) {
if (qemuMonitorAttachCharDev(priv->mon, charAlias,
@@ -2715,7 +2732,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
if (qemuMonitorAddDevice(priv->mon, shmstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
release_address = false;
goto cleanup;
}
@@ -2750,7 +2767,7 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
ignore_value(qemuMonitorDelObject(priv->mon, memAlias));
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
release_address = false;
virErrorRestore(&orig_err);
@@ -2772,6 +2789,7 @@ qemuDomainAttachWatchdog(virQEMUDriverPtr driver,
char *watchdogstr = NULL;
bool releaseAddress = false;
int rv;
+ qemuMonitorPtr mon;
if (vm->def->watchdog) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
@@ -2804,14 +2822,14 @@ qemuDomainAttachWatchdog(virQEMUDriverPtr driver,
actionStr = virDomainWatchdogActionTypeToString(actualAction);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rv = qemuMonitorSetWatchdogAction(priv->mon, actionStr);
if (rv >= 0)
rv = qemuMonitorAddDevice(priv->mon, watchdogstr);
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
releaseAddress = false;
goto cleanup;
}
@@ -2846,6 +2864,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver,
bool teardowndevice = false;
bool teardownlabel = false;
bool teardowncgroup = false;
+ qemuMonitorPtr mon;
if (input->bus != VIR_DOMAIN_INPUT_BUS_USB &&
input->bus != VIR_DOMAIN_INPUT_BUS_VIRTIO) {
@@ -2887,11 +2906,11 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver,
if (VIR_REALLOC_N(vm->def->inputs, vm->def->ninputs + 1) < 0)
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorAddDevice(priv->mon, devstr) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
releaseaddr = false;
goto cleanup;
}
@@ -2921,7 +2940,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver,
return ret;
exit_monitor:
- if (qemuDomainObjExitMonitor(driver, vm) < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0) {
releaseaddr = false;
goto cleanup;
}
@@ -3026,6 +3045,7 @@ int qemuDomainChangeNetLinkState(virQEMUDriverPtr driver,
{
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if (!dev->info.alias) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
@@ -3035,7 +3055,7 @@ int qemuDomainChangeNetLinkState(virQEMUDriverPtr driver,
VIR_DEBUG("dev: %s, state: %d", dev->info.alias, linkstate);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorSetLink(priv->mon, dev->info.alias, linkstate);
if (ret < 0)
@@ -3045,7 +3065,7 @@ int qemuDomainChangeNetLinkState(virQEMUDriverPtr driver,
dev->linkstate = linkstate;
cleanup:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
return ret;
@@ -3733,6 +3753,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
char *drivestr;
char *objAlias = NULL;
char *encAlias = NULL;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing disk %s from domain %p %s",
disk->info.alias, vm, vm->def->name);
@@ -3770,7 +3791,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
}
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
qemuMonitorDriveDel(priv->mon, drivestr);
VIR_FREE(drivestr);
@@ -3788,7 +3809,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver,
if (disk->src->haveTLS)
ignore_value(qemuMonitorDelObject(priv->mon, disk->src->tlsAlias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
virDomainAuditDisk(vm, disk->src, NULL, "detach", true);
@@ -3867,6 +3888,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
char *backendAlias = NULL;
int rc;
int idx;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing memory device %s from domain %p %s",
mem->info.alias, vm, vm->def->name);
@@ -3874,9 +3896,9 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
if (virAsprintf(&backendAlias, "mem%s", mem->info.alias) < 0)
return -1;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelObject(priv->mon, backendAlias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
rc = -1;
VIR_FREE(backendAlias);
@@ -3963,6 +3985,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
char *drivealias = NULL;
char *objAlias = NULL;
bool is_vfio = false;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing host device %s from domain %p %s",
hostdev->info->alias, vm, vm->def->name);
@@ -3989,14 +4012,14 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
goto cleanup;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
qemuMonitorDriveDel(priv->mon, drivealias);
/* If it fails, then so be it - it was a best shot */
if (objAlias)
ignore_value(qemuMonitorDelObject(priv->mon, objAlias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
}
@@ -4086,6 +4109,7 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
size_t i;
int ret = -1;
int actualType = virDomainNetGetActualType(net);
+ qemuMonitorPtr mon;
if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
/* this function handles all hostdev and netdev cleanup */
@@ -4102,10 +4126,10 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV)) {
if (qemuMonitorRemoveNetdev(priv->mon, hostnet_name) < 0) {
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditNet(vm, net, NULL, "detach", false);
goto cleanup;
@@ -4118,7 +4142,7 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("unable to determine original VLAN"));
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditNet(vm, net, NULL, "detach", false);
goto cleanup;
@@ -4135,7 +4159,7 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
}
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditNet(vm, net, NULL, "detach", true);
@@ -4192,6 +4216,7 @@ qemuDomainRemoveChrDevice(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
int rc;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing character device %s from domain %p %s",
chr->info.alias, vm, vm->def->name);
@@ -4199,10 +4224,10 @@ qemuDomainRemoveChrDevice(virQEMUDriverPtr driver,
if (!(charAlias = qemuAliasChardevFromDevAlias(chr->info.alias)))
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDetachCharDev(priv->mon, charAlias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc == 0 &&
@@ -4248,6 +4273,7 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver,
ssize_t idx;
int ret = -1;
int rc;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing RNG device %s from domain %p %s",
rng->info.alias, vm, vm->def->name);
@@ -4259,11 +4285,11 @@ qemuDomainRemoveRNGDevice(virQEMUDriverPtr driver,
if (!(charAlias = qemuAliasChardevFromDevAlias(rng->info.alias)))
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelObject(priv->mon, objAlias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rng->backend == VIR_DOMAIN_RNG_BACKEND_EGD &&
@@ -4311,6 +4337,7 @@ qemuDomainRemoveShmemDevice(virQEMUDriverPtr driver,
char *memAlias = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData;
virObjectEventPtr event = NULL;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing shmem device %s from domain %p %s",
shmem->info.alias, vm, vm->def->name);
@@ -4323,14 +4350,14 @@ qemuDomainRemoveShmemDevice(virQEMUDriverPtr driver,
return -1;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (shmem->server.enabled)
rc = qemuMonitorDetachCharDev(priv->mon, charAlias);
else
rc = qemuMonitorDelObject(priv->mon, memAlias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditShmem(vm, shmem, "detach", rc == 0);
@@ -4418,6 +4445,7 @@ qemuDomainRemoveRedirdevDevice(virQEMUDriverPtr driver,
char *charAlias = NULL;
ssize_t idx;
int ret = -1;
+ qemuMonitorPtr mon;
VIR_DEBUG("Removing redirdev device %s from domain %p %s",
dev->info.alias, vm, vm->def->name);
@@ -4425,13 +4453,13 @@ qemuDomainRemoveRedirdevDevice(virQEMUDriverPtr driver,
if (!(charAlias = qemuAliasChardevFromDevAlias(dev->info.alias)))
goto cleanup;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
/* DeviceDel from Detach may remove chardev,
* so we cannot rely on return status to delete TLS chardevs.
*/
ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (qemuDomainDelChardevTLSObjects(driver, vm, dev->source, charAlias) < 0)
@@ -4629,6 +4657,7 @@ qemuDomainDetachVirtioDiskDevice(virQEMUDriverPtr driver,
{
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
virReportError(VIR_ERR_OPERATION_FAILED,
@@ -4644,14 +4673,14 @@ qemuDomainDetachVirtioDiskDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, detach->info.alias) < 0) {
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditDisk(vm, detach->src, NULL, "detach", false);
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -4669,20 +4698,21 @@ qemuDomainDetachDiskDevice(virQEMUDriverPtr driver,
{
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if (qemuDomainDiskBlockJobIsActive(detach))
goto cleanup;
qemuDomainMarkDeviceForRemoval(vm, &detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, detach->info.alias) < 0) {
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditDisk(vm, detach->src, NULL, "detach", false);
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -4812,6 +4842,7 @@ int qemuDomainDetachControllerDevice(virQEMUDriverPtr driver,
int idx, ret = -1;
virDomainControllerDefPtr detach = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if ((idx = virDomainControllerFind(vm->def,
dev->data.controller->type,
@@ -4861,12 +4892,12 @@ int qemuDomainDetachControllerDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, detach->info.alias)) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -4885,6 +4916,7 @@ qemuDomainDetachHostPCIDevice(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainHostdevSubsysPCIPtr pcisrc = &detach->source.subsys.u.pci;
int ret;
+ qemuMonitorPtr mon;
if (qemuIsMultiFunctionDevice(vm->def, detach->info)) {
virReportError(VIR_ERR_OPERATION_FAILED,
@@ -4896,9 +4928,9 @@ qemuDomainDetachHostPCIDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDelDevice(priv->mon, detach->info->alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -4911,6 +4943,7 @@ qemuDomainDetachHostUSBDevice(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret;
+ qemuMonitorPtr mon;
if (!detach->info->alias) {
virReportError(VIR_ERR_OPERATION_FAILED,
@@ -4920,9 +4953,9 @@ qemuDomainDetachHostUSBDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDelDevice(priv->mon, detach->info->alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -4935,6 +4968,7 @@ qemuDomainDetachHostSCSIDevice(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
+ qemuMonitorPtr mon;
if (!detach->info->alias) {
virReportError(VIR_ERR_OPERATION_FAILED,
@@ -4944,10 +4978,10 @@ qemuDomainDetachHostSCSIDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDelDevice(priv->mon, detach->info->alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
return ret;
@@ -4960,6 +4994,7 @@ qemuDomainDetachSCSIVHostDevice(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
+ qemuMonitorPtr mon;
if (!detach->info->alias) {
virReportError(VIR_ERR_OPERATION_FAILED,
@@ -4969,10 +5004,10 @@ qemuDomainDetachSCSIVHostDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDelDevice(priv->mon, detach->info->alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
return ret;
@@ -5107,6 +5142,7 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver,
ssize_t idx = -1;
virDomainShmemDefPtr shmem = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if ((idx = virDomainShmemDefFind(vm->def, dev)) < 0) {
virReportError(VIR_ERR_DEVICE_MISSING,
@@ -5133,11 +5169,11 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver,
}
qemuDomainMarkDeviceForRemoval(vm, &shmem->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDelDevice(priv->mon, shmem->info.alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret == 0) {
@@ -5160,6 +5196,7 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver,
int ret = -1;
virDomainWatchdogDefPtr watchdog = vm->def->watchdog;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
/* While domains can have up to one watchdog, the one supplied by the user
* doesn't necessarily match the one domain has. Refuse to detach in such
@@ -5183,11 +5220,11 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver,
}
qemuDomainMarkDeviceForRemoval(vm, &watchdog->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorDelDevice(priv->mon, watchdog->info.alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret == 0) {
@@ -5211,6 +5248,7 @@ qemuDomainDetachRedirdevDevice(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainRedirdevDefPtr tmpRedirdevDef;
ssize_t idx;
+ qemuMonitorPtr mon;
if ((idx = virDomainRedirdevDefFind(vm->def, dev)) < 0) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
@@ -5228,12 +5266,12 @@ qemuDomainDetachRedirdevDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &tmpRedirdevDef->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, tmpRedirdevDef->info.alias) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -5253,6 +5291,7 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver,
int detachidx, ret = -1;
virDomainNetDefPtr detach = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if ((detachidx = virDomainNetFindIdx(vm->def, dev->data.net)) < 0)
goto cleanup;
@@ -5291,14 +5330,14 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &detach->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, detach->info.alias) < 0) {
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -5325,6 +5364,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
const char *password;
int ret = -1;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+ qemuMonitorPtr mon;
if (!auth->passwd && !defaultPasswd) {
ret = 0;
@@ -5335,7 +5375,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
if (auth->connected)
connected = virDomainGraphicsAuthConnectedTypeToString(auth->connected);
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = qemuMonitorSetPassword(priv->mon, type, password, connected);
@@ -5376,7 +5416,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
}
end_job:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
cleanup:
VIR_FREE(validTo);
@@ -5439,6 +5479,7 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver,
virDomainDefPtr vmdef = vm->def;
virDomainChrDefPtr tmpChr;
char *devstr = NULL;
+ qemuMonitorPtr mon;
if (!(tmpChr = virDomainChrFind(vmdef, chr))) {
virReportError(VIR_ERR_DEVICE_MISSING,
@@ -5458,12 +5499,12 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &tmpChr->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (devstr && qemuMonitorDelDevice(priv->mon, tmpChr->info.alias) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1) {
@@ -5488,6 +5529,7 @@ qemuDomainDetachRNGDevice(virQEMUDriverPtr driver,
virDomainRNGDefPtr tmpRNG;
int rc;
int ret = -1;
+ qemuMonitorPtr mon;
if ((idx = virDomainRNGFind(vm->def, rng)) < 0) {
virReportError(VIR_ERR_DEVICE_MISSING,
@@ -5507,9 +5549,9 @@ qemuDomainDetachRNGDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &tmpRNG->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelDevice(priv->mon, tmpRNG->info.alias);
- if (qemuDomainObjExitMonitor(driver, vm) || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) || rc < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -5531,6 +5573,7 @@ qemuDomainDetachMemoryDevice(virQEMUDriverPtr driver,
int idx;
int rc;
int ret = -1;
+ qemuMonitorPtr mon;
qemuDomainMemoryDeviceAlignSize(vm->def, memdef);
@@ -5552,9 +5595,9 @@ qemuDomainDetachMemoryDevice(virQEMUDriverPtr driver,
qemuDomainMarkDeviceForRemoval(vm, &mem->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelDevice(priv->mon, mem->info.alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
@@ -5645,6 +5688,7 @@ qemuDomainHotplugDelVcpu(virQEMUDriverPtr driver,
unsigned int nvcpus = vcpupriv->vcpus;
int rc;
int ret = -1;
+ qemuMonitorPtr mon;
if (!vcpupriv->alias) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
@@ -5654,11 +5698,11 @@ qemuDomainHotplugDelVcpu(virQEMUDriverPtr driver,
qemuDomainMarkDeviceAliasForRemoval(vm, vcpupriv->alias);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorDelDevice(qemuDomainGetMonitor(vm), vcpupriv->alias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0) {
@@ -5705,6 +5749,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver,
int rc;
int oldvcpus = virDomainDefGetVcpus(vm->def);
size_t i;
+ qemuMonitorPtr mon;
if (newhotplug) {
if (virAsprintf(&vcpupriv->alias, "vcpu%u", vcpu) < 0)
@@ -5714,7 +5759,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver,
goto cleanup;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (newhotplug) {
rc = qemuMonitorAddDeviceArgs(qemuDomainGetMonitor(vm), vcpuprops);
@@ -5723,7 +5768,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver,
rc = qemuMonitorSetCPU(qemuDomainGetMonitor(vm), vcpu, true);
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
virDomainAuditVcpu(vm, oldvcpus, oldvcpus + nvcpus, "update", rc == 0);
@@ -6236,6 +6281,7 @@ qemuDomainDetachInputDevice(virDomainObjPtr vm,
virDomainInputDefPtr input;
int ret = -1;
int idx;
+ qemuMonitorPtr mon;
if ((idx = virDomainInputDefFind(vm->def, def)) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
@@ -6261,12 +6307,12 @@ qemuDomainDetachInputDevice(virDomainObjPtr vm,
qemuDomainMarkDeviceForRemoval(vm, &input->info);
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, input->info.alias)) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
old mode 100644
new mode 100755
index 5ee9e5c..9acff21
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -106,8 +106,9 @@ qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver,
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
qemuMonitorMigrationParams migParams = { 0 };
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
if (qemuMonitorGetMigrationParams(priv->mon, &migParams) < 0)
@@ -119,7 +120,7 @@ qemuMigrationCheckTLSCreds(virQEMUDriverPtr driver,
ret = 0;
cleanup:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
qemuMigrationParamsClear(&migParams);
@@ -501,6 +502,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
unsigned short port = 0;
char *diskAlias = NULL;
size_t i;
+ qemuMonitorPtr mon;
if (nbdPort < 0 || nbdPort > USHRT_MAX) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
@@ -527,7 +529,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
goto cleanup;
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_IN) < 0)
+ QEMU_ASYNC_JOB_MIGRATION_IN, &mon) < 0)
goto cleanup;
if (port == 0) {
@@ -542,7 +544,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
if (qemuMonitorNBDServerAdd(priv->mon, diskAlias, true) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
}
@@ -556,7 +558,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
return ret;
exit_monitor:
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
@@ -567,17 +569,18 @@ qemuMigrationStopNBDServer(virQEMUDriverPtr driver,
qemuMigrationCookiePtr mig)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if (!mig->nbd)
return 0;
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_IN) < 0)
+ QEMU_ASYNC_JOB_MIGRATION_IN, &mon) < 0)
return -1;
if (qemuMonitorNBDServerStop(priv->mon) < 0)
VIR_WARN("Unable to stop NBD server");
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
virPortAllocatorRelease(driver->migrationPorts, priv->nbdPort);
@@ -756,6 +759,7 @@ qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver,
int ret = -1;
int status;
int rv;
+ qemuMonitorPtr mon;
status = qemuBlockJobUpdate(driver, vm, asyncJob, disk, &error);
switch (status) {
@@ -781,12 +785,12 @@ qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver,
if (!(diskAlias = qemuAliasFromDisk(disk)))
return -1;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
rv = qemuMonitorBlockJobCancel(priv->mon, diskAlias);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rv < 0)
goto cleanup;
ret = 0;
@@ -920,6 +924,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
unsigned int mirror_flags = VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT;
int rv;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+ qemuMonitorPtr mon;
VIR_DEBUG("Starting drive mirrors for domain %s", vm->def->name);
@@ -961,7 +966,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
goto cleanup;
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
+ QEMU_ASYNC_JOB_MIGRATION_OUT, &mon) < 0)
goto cleanup;
qemuBlockJobSyncBegin(disk);
@@ -971,7 +976,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
VIR_FREE(diskAlias);
VIR_FREE(nbd_dest);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || mon_ret < 0) {
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || mon_ret < 0) {
qemuBlockJobSyncEnd(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, disk);
goto cleanup;
}
@@ -1296,6 +1301,7 @@ qemuMigrationSetOption(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret;
+ qemuMonitorPtr mon;
if (!qemuMigrationCapsGet(vm, capability)) {
if (!state) {
@@ -1317,12 +1323,12 @@ qemuMigrationSetOption(virQEMUDriverPtr driver,
return -1;
}
- if (qemuDomainObjEnterMonitorAsync(driver, vm, job) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, job, &mon) < 0)
return -1;
ret = qemuMonitorSetMigrationCapability(priv->mon, capability, state);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -1416,13 +1422,14 @@ qemuMigrationFetchStats(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
qemuMonitorMigrationStats stats;
int rv;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rv = qemuMonitorGetMigrationStats(priv->mon, &stats, error);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rv < 0)
return -1;
jobInfo->stats.mig = stats;
@@ -1702,6 +1709,7 @@ qemuDomainMigrateGraphicsRelocate(virQEMUDriverPtr driver,
int port = -1;
int tlsPort = -1;
const char *tlsSubject = NULL;
+ qemuMonitorPtr mon;
if (!cookie || (!cookie->graphics && !graphicsuri))
return 0;
@@ -1772,11 +1780,11 @@ qemuDomainMigrateGraphicsRelocate(virQEMUDriverPtr driver,
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_OUT) == 0) {
+ QEMU_ASYNC_JOB_MIGRATION_OUT, &mon) == 0) {
ret = qemuMonitorGraphicsRelocate(priv->mon, type, listenAddress,
port, tlsPort, tlsSubject);
priv->job.spiceMigration = !ret;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
}
@@ -1872,15 +1880,16 @@ qemuMigrationRunIncoming(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
int rv;
+ qemuMonitorPtr mon;
VIR_DEBUG("Setting up incoming migration with URI %s", uri);
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rv = qemuMonitorMigrateIncoming(priv->mon, uri);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rv < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rv < 0)
goto cleanup;
if (asyncJob == QEMU_ASYNC_JOB_MIGRATION_IN) {
@@ -2326,6 +2335,7 @@ qemuMigrationSetCompression(virQEMUDriverPtr driver,
{
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
if (qemuMigrationSetOption(driver, vm,
QEMU_MONITOR_MIGRATION_CAPS_XBZRLE,
@@ -2341,7 +2351,7 @@ qemuMigrationSetCompression(virQEMUDriverPtr driver,
job) < 0)
return -1;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, job) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, job, &mon) < 0)
return -1;
migParams->compressLevel_set = compression->level_set;
@@ -2361,7 +2371,7 @@ qemuMigrationSetCompression(virQEMUDriverPtr driver,
ret = 0;
cleanup:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -2478,8 +2488,9 @@ qemuMigrationSetParams(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, job) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, job, &mon) < 0)
return -1;
if (qemuMonitorSetMigrationParams(priv->mon, migParams) < 0)
@@ -2488,7 +2499,7 @@ qemuMigrationSetParams(virQEMUDriverPtr driver,
ret = 0;
cleanup:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -3644,13 +3655,14 @@ qemuMigrationContinue(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
ret = qemuMonitorMigrateContinue(priv->mon, status);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -3694,6 +3706,7 @@ qemuMigrationRun(virQEMUDriverPtr driver,
virDomainDefPtr persistDef = NULL;
char *timestamp;
int rc;
+ qemuMonitorPtr mon;
VIR_DEBUG("driver=%p, vm=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, flags=0x%lx, resource=%lu, "
@@ -3836,7 +3849,7 @@ qemuMigrationRun(virQEMUDriverPtr driver,
goto error;
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
+ QEMU_ASYNC_JOB_MIGRATION_OUT, &mon) < 0)
goto error;
if (priv->job.abortJob) {
@@ -3893,7 +3906,7 @@ qemuMigrationRun(virQEMUDriverPtr driver,
break;
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
goto error;
/* From this point onwards we *must* call cancel to abort the
@@ -4026,9 +4039,9 @@ qemuMigrationRun(virQEMUDriverPtr driver,
priv->job.current->status != QEMU_DOMAIN_JOB_STATUS_QEMU_COMPLETED &&
virDomainObjIsActive(vm) &&
qemuDomainObjEnterMonitorAsync(driver, vm,
- QEMU_ASYNC_JOB_MIGRATION_OUT) == 0) {
+ QEMU_ASYNC_JOB_MIGRATION_OUT, &mon) == 0) {
qemuMonitorMigrateCancel(priv->mon);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
}
/* cancel any outstanding NBD jobs */
@@ -4046,7 +4059,7 @@ qemuMigrationRun(virQEMUDriverPtr driver,
goto cleanup;
exit_monitor:
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto error;
}
@@ -5550,14 +5563,15 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
unsigned long saveMigBandwidth = priv->migMaxBandwidth;
char *errbuf = NULL;
virErrorPtr orig_err = NULL;
+ qemuMonitorPtr mon;
/* Increase migration bandwidth to unlimited since target is a file.
* Failure to change migration speed is not fatal. */
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) == 0) {
qemuMonitorSetMigrationSpeed(priv->mon,
QEMU_DOMAIN_MIG_BANDWIDTH_MAX);
priv->migMaxBandwidth = QEMU_DOMAIN_MIG_BANDWIDTH_MAX;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
}
@@ -5582,7 +5596,7 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
compressor ? pipeFD[1] : fd) < 0)
goto cleanup;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
if (!compressor) {
@@ -5605,11 +5619,11 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
if (virSetCloseExec(pipeFD[1]) < 0) {
virReportSystemError(errno, "%s",
_("Unable to set cloexec flag"));
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
if (virCommandRunAsync(cmd, NULL) < 0) {
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
goto cleanup;
}
rc = qemuMonitorMigrateToFd(priv->mon,
@@ -5619,7 +5633,7 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
VIR_CLOSE(pipeFD[1]) < 0)
VIR_WARN("failed to close intermediate pipe");
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0)
goto cleanup;
@@ -5631,9 +5645,9 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
orig_err = virSaveLastError();
virCommandAbort(cmd);
if (virDomainObjIsActive(vm) &&
- qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
+ qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) == 0) {
qemuMonitorMigrateCancel(priv->mon);
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
}
}
goto cleanup;
@@ -5651,10 +5665,10 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
/* Restore max migration bandwidth */
if (virDomainObjIsActive(vm) &&
- qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
+ qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) == 0) {
qemuMonitorSetMigrationSpeed(priv->mon, saveMigBandwidth);
priv->migMaxBandwidth = saveMigBandwidth;
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
}
VIR_FORCE_CLOSE(pipeFD[0]);
@@ -5683,6 +5697,7 @@ qemuMigrationCancel(virQEMUDriverPtr driver,
bool storage = false;
size_t i;
int ret = -1;
+ qemuMonitorPtr mon;
VIR_DEBUG("Canceling unfinished outgoing migration of domain %s",
vm->def->name);
@@ -5695,13 +5710,13 @@ qemuMigrationCancel(virQEMUDriverPtr driver,
}
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ignore_value(qemuMonitorMigrateCancel(priv->mon));
if (storage)
blockJobs = qemuMonitorGetAllBlockJobInfo(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || (storage && !blockJobs))
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || (storage && !blockJobs))
goto endsyncjob;
if (!storage) {
@@ -6071,6 +6086,7 @@ qemuMigrationFetchMirrorStats(virQEMUDriverPtr driver,
bool nbd = false;
virHashTablePtr blockinfo = NULL;
qemuDomainMirrorStatsPtr stats = &jobInfo->mirrorStats;
+ qemuMonitorPtr mon;
for (i = 0; i < vm->def->ndisks; i++) {
virDomainDiskDefPtr disk = vm->def->disks[i];
@@ -6083,12 +6099,12 @@ qemuMigrationFetchMirrorStats(virQEMUDriverPtr driver,
if (!nbd)
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
blockinfo = qemuMonitorGetAllBlockJobInfo(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockinfo)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || !blockinfo)
return -1;
memset(stats, 0, sizeof(*stats));
diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c
old mode 100644
new mode 100755
index 945530c..27003c6
--- a/src/qemu/qemu_migration_cookie.c
+++ b/src/qemu/qemu_migration_cookie.c
@@ -452,6 +452,7 @@ qemuMigrationCookieAddNBD(qemuMigrationCookiePtr mig,
virHashTablePtr stats = NULL;
size_t i;
int ret = -1, rc;
+ qemuMonitorPtr mon;
/* It is not a bug if there already is a NBD data */
qemuMigrationCookieNBDFree(mig->nbd);
@@ -473,10 +474,10 @@ qemuMigrationCookieAddNBD(qemuMigrationCookiePtr mig,
goto cleanup;
if (qemuDomainObjEnterMonitorAsync(driver, vm,
- priv->job.asyncJob) < 0)
+ priv->job.asyncJob, &mon) < 0)
goto cleanup;
rc = qemuMonitorBlockStatsUpdateCapacity(priv->mon, stats, false);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0)
goto cleanup;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
old mode 100644
new mode 100755
index c1da3bb..6961348
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -543,6 +543,7 @@ qemuProcessFakeReboot(void *opaque)
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
virDomainRunningReason reason = VIR_DOMAIN_RUNNING_BOOTED;
int ret = -1, rc;
+ qemuMonitorPtr mon;
VIR_DEBUG("vm=%p", vm);
virObjectLock(vm);
@@ -555,10 +556,10 @@ qemuProcessFakeReboot(void *opaque)
goto endjob;
}
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
rc = qemuMonitorSystemReset(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto endjob;
if (rc < 0)
@@ -1767,13 +1768,14 @@ qemuProcessInitMonitor(virQEMUDriverPtr driver,
qemuDomainAsyncJob asyncJob)
{
int ret;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
ret = qemuMonitorSetCapabilities(QEMU_DOMAIN_PRIVATE(vm)->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
@@ -2094,12 +2096,13 @@ qemuRefreshVirtioChannelState(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virHashTablePtr info = NULL;
int ret = -1;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = qemuMonitorGetChardevInfo(priv->mon, &info);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
@@ -2121,15 +2124,16 @@ qemuRefreshRTC(virQEMUDriverPtr driver,
struct tm thenbits;
long localOffset;
int rv;
+ qemuMonitorPtr mon;
if (vm->def->clock.offset != VIR_DOMAIN_CLOCK_OFFSET_VARIABLE)
return;
memset(&thenbits, 0, sizeof(thenbits));
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
now = time(NULL);
rv = qemuMonitorGetRTCTime(priv->mon, &thenbits);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
rv = -1;
if (rv < 0)
@@ -2156,6 +2160,7 @@ qemuProcessRefreshBalloonState(virQEMUDriverPtr driver,
{
unsigned long long balloon;
int rc;
+ qemuMonitorPtr mon;
/* if no ballooning is available, the current size equals to the current
* full memory size */
@@ -2164,11 +2169,11 @@ qemuProcessRefreshBalloonState(virQEMUDriverPtr driver,
return 0;
}
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
rc = qemuMonitorGetBalloonInfo(qemuDomainGetMonitor(vm), &balloon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0 || rc < 0)
return -1;
vm->def->mem.cur_balloon = balloon;
@@ -2186,6 +2191,7 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver,
int ret = -1;
virHashTablePtr info = NULL;
qemuDomainObjPrivatePtr priv;
+ qemuMonitorPtr mon;
VIR_DEBUG("Connect monitor to %p '%s'", vm, vm->def->name);
if (qemuConnectMonitor(driver, vm, asyncJob, logCtxt) < 0)
@@ -2196,11 +2202,11 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver,
* Note that the monitor itself can be on a pty, so we still need to try the
* log output method. */
priv = vm->privateData;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = qemuMonitorGetChardevInfo(priv->mon, &info);
VIR_DEBUG("qemuMonitorGetChardevInfo returned %i", ret);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret == 0) {
@@ -2235,6 +2241,7 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driver,
int niothreads = 0;
int ret = -1;
size_t i;
+ qemuMonitorPtr mon;
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_OBJECT_IOTHREAD)) {
ret = 0;
@@ -2242,10 +2249,10 @@ qemuProcessDetectIOThreadPIDs(virQEMUDriverPtr driver,
}
/* Get the list of IOThreads from qemu */
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
niothreads = qemuMonitorGetIOThreads(priv->mon, &iothreads);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (niothreads < 0)
goto cleanup;
@@ -2374,8 +2381,9 @@ qemuProcessSetLinkStates(virQEMUDriverPtr driver,
size_t i;
int ret = -1;
int rv;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
for (i = 0; i < def->nnets; i++) {
@@ -2409,7 +2417,7 @@ qemuProcessSetLinkStates(virQEMUDriverPtr driver,
ret = 0;
cleanup:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
}
@@ -2578,6 +2586,7 @@ qemuProcessInitPasswords(virConnectPtr conn,
size_t i;
char *alias = NULL;
char *secret = NULL;
+ qemuMonitorPtr mon;
for (i = 0; i < vm->def->ngraphics; ++i) {
virDomainGraphicsDefPtr graphics = vm->def->graphics[i];
@@ -2621,10 +2630,10 @@ qemuProcessInitPasswords(virConnectPtr conn,
VIR_FREE(alias);
if (!(alias = qemuAliasFromDisk(vm->def->disks[i])))
goto cleanup;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = qemuMonitorSetDrivePassphrase(priv->mon, alias, secret);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
goto cleanup;
@@ -2695,8 +2704,9 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainVideoDefPtr video = NULL;
virQEMUDriverConfigPtr cfg = NULL;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
for (i = 0; i < vm->def->nvideos; i++) {
@@ -2748,7 +2758,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver,
}
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
cfg = virQEMUDriverGetConfig(driver);
@@ -2758,7 +2768,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver,
return ret;
error:
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
return -1;
}
@@ -2862,6 +2872,7 @@ qemuProcessStartCPUs(virQEMUDriverPtr driver, virDomainObjPtr vm,
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+ qemuMonitorPtr mon;
/* Bring up netdevs before starting CPUs */
if (qemuInterfaceStartDevices(vm->def) < 0)
@@ -2878,11 +2889,11 @@ qemuProcessStartCPUs(virQEMUDriverPtr driver, virDomainObjPtr vm,
}
VIR_FREE(priv->lockState);
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto release;
ret = qemuMonitorStartCPUs(priv->mon, conn);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
@@ -2909,14 +2920,15 @@ int qemuProcessStopCPUs(virQEMUDriverPtr driver,
{
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
+ qemuMonitorPtr mon;
VIR_FREE(priv->lockState);
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
ret = qemuMonitorStopCPUs(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
if (ret < 0)
@@ -2986,10 +2998,11 @@ qemuProcessUpdateState(virQEMUDriverPtr driver, virDomainObjPtr vm)
bool running;
char *msg = NULL;
int ret;
+ qemuMonitorPtr mon;
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ret = qemuMonitorGetStatus(priv->mon, &running, &reason);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
if (ret < 0)
@@ -3203,6 +3216,7 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainState state;
int reason;
+ qemuMonitorPtr mon;
state = virDomainObjGetState(vm, &reason);
@@ -3222,9 +3236,9 @@ qemuProcessRecoverJob(virQEMUDriverPtr driver,
case QEMU_ASYNC_JOB_SAVE:
case QEMU_ASYNC_JOB_DUMP:
case QEMU_ASYNC_JOB_SNAPSHOT:
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
ignore_value(qemuMonitorMigrateCancel(priv->mon));
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
return -1;
/* resume the domain but only if it was paused as a result of
* running a migration-to-file operation. Although we are
@@ -3814,6 +3828,7 @@ qemuProcessFetchGuestCPU(virQEMUDriverPtr driver,
virCPUDataPtr dataEnabled = NULL;
virCPUDataPtr dataDisabled = NULL;
int rc;
+ qemuMonitorPtr mon;
*enabled = NULL;
*disabled = NULL;
@@ -3821,13 +3836,13 @@ qemuProcessFetchGuestCPU(virQEMUDriverPtr driver,
if (!ARCH_IS_X86(vm->def->os.arch))
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto error;
rc = qemuMonitorGetGuestCPU(priv->mon, vm->def->os.arch,
&dataEnabled, &dataDisabled);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto error;
if (rc == -1)
@@ -3945,13 +3960,14 @@ qemuProcessFetchCPUDefinitions(virQEMUDriverPtr driver,
{
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainCapsCPUModelsPtr models = NULL;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto error;
models = virQEMUCapsFetchCPUDefinitions(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto error;
return models;
@@ -4569,11 +4585,12 @@ qemuProcessSetupBalloon(virQEMUDriverPtr driver,
unsigned long long balloon = vm->def->mem.cur_balloon;
qemuDomainObjPrivatePtr priv = vm->privateData;
int ret = -1;
+ qemuMonitorPtr mon;
if (!virDomainDefHasMemballoon(vm->def))
return 0;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
return -1;
if (vm->def->memballoon->period)
@@ -4585,7 +4602,7 @@ qemuProcessSetupBalloon(virQEMUDriverPtr driver,
ret = 0;
cleanup:
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
ret = -1;
return ret;
}
@@ -5322,6 +5339,7 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr driver,
size_t i;
int ret = -1;
int rc;
+ qemuMonitorPtr mon;
virDomainVcpuDefPtr *bootHotplug = NULL;
size_t nbootHotplug = 0;
@@ -5357,13 +5375,13 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriverPtr driver,
if (!(vcpuprops = qemuBuildHotpluggableCPUProps(vcpu)))
goto cleanup;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) < 0)
goto cleanup;
rc = qemuMonitorAddDeviceArgs(qemuDomainGetMonitor(vm), vcpuprops);
vcpuprops = NULL;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
if (rc < 0)
@@ -6765,6 +6783,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
virCapsPtr caps = NULL;
bool active = false;
+ qemuMonitorPtr mon;
VIR_DEBUG("Beginning VM attach process");
@@ -6911,14 +6930,14 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
goto error;
VIR_DEBUG("Getting initial memory amount");
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorGetBalloonInfo(priv->mon, &vm->def->mem.cur_balloon) < 0)
goto exit_monitor;
if (qemuMonitorGetStatus(priv->mon, &running, &reason) < 0)
goto exit_monitor;
if (qemuMonitorGetVirtType(priv->mon, &vm->def->virtType) < 0)
goto exit_monitor;
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto error;
if (running) {
@@ -6927,10 +6946,10 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
if (vm->def->memballoon &&
vm->def->memballoon->model == VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO &&
vm->def->memballoon->period) {
- qemuDomainObjEnterMonitor(driver, vm);
+ mon = qemuDomainObjEnterMonitor(driver, vm);
qemuMonitorSetMemoryStatsPeriod(priv->mon, vm->def->memballoon,
vm->def->memballoon->period);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto error;
}
} else {
@@ -6967,7 +6986,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
return 0;
exit_monitor:
- ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ ignore_value(qemuDomainObjExitMonitor(driver, vm, mon));
error:
/* We jump here if we failed to attach to the VM for any reason.
* Leave the domain running, but pretend we never attempted to
@@ -7075,10 +7094,11 @@ qemuProcessRefreshDisks(virQEMUDriverPtr driver,
virHashTablePtr table = NULL;
int ret = -1;
size_t i;
+ qemuMonitorPtr mon;
- if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
+ if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob, &mon) == 0) {
table = qemuMonitorGetBlockInfo(priv->mon);
- if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ if (qemuDomainObjExitMonitor(driver, vm, mon) < 0)
goto cleanup;
}
--
1.8.3.1
4
3
28 Feb '18
This patch series provides support for launching an encrypted guest using
AMD's new Secure Encrypted Virtualization (SEV) feature.
SEV is an extension to the AMD-V architecture which supports running
multiple VMs under the control of a hypervisor. When enabled, SEV feature
allows the memory contents of a virtual machine (VM) to be transparently
encrypted with a key unique to the guest VM.
In order to launch SEV guest we need QEMU SEV patch [1].
[1] https://marc.info/?l=kvm&m=151871349515849&w=2
The patch series implements some of recommendation from Daniel [2]
[2] https://www.redhat.com/archives/libvir-list/2017-September/msg00197.html
At very high level the flow looks this:
1. mgmt tool calls virConnectGetDomainCapabilities. This returns an XML document
that includes the following
<feature>
...
<sev supported='yes'>
<cbitpos> </cbitpos>
<reduced-phys-bits> </reduced-phys-bits>
<pdh> </pdh>
<cert-chain> </cert-chain>
</feature>
If <sev> is provided then we indicate that hypervisor is capable of launching
SEV guest.
2. (optional) mgmt tool can provide the PDH and Cert-chain to guest owner in case
if guest owner wish to establish a secure connection with SEV firmware to
negotiate a key used for validating the measurement.
3. mgmt tool requests to start a guest calling virCreateXML(), passing VIR_DOMAIN_START_PAUSED.
The xml would include
<sev>
<cbitpos> </cbitpos> /* the value is same as what is obtained via virConnectGetDomainCapabilities()
<reduced-phys-bits> </reduced-phys-bits> /* the value is same as what is obtained via virConnectGetDomainCapabilities()
<dh-cert> .. </dh> /* guest owners diffie-hellman key */ (optional)
<session> ..</session> /* guest owners session blob */ (optional)
<policy> ..</policy> /* guest policy */ (optional)
4. Libvirt generate the QEMU cli arg to enable the SEV feature, a typical
args looks like this:
# $QEMU ..
-machine memory-encryption=sev0 \
-object sev-guest,id=sev0,dh-cert-file=<file>....
5. Libvirt generates lifecycle VIR_DOMAIN_EVENT_SUSPENDED_PAUSED event
6. mgmt tool gets the VIR_DOMAIN_EVENT_SUSPENDED_PAUSED and calls virDomainGetSevVmMeasurement()
to retrieve the measurement of encrypted memory.
7. (optional) mgmt tool can provide the measurement value to guest owner, which can
validate the measurement and gives GO/NO-GO answer. If mgmt tool gets GO then
it resumes the guest otherwise it calls destroy() to kill the guest.
8. mgmt tool resumes the guest
TODO:
* SEV guest require to use DMA apis for the virtio devices. In order to use the DMA
apis the virtio devices must have this tag
<driver iommu=on ats=on>
It is a bit unclear to me where these changes need to go. Do we need to
modify the libvirt to automatically add these when SEV is enabled or
we ask mgmt tool to make sure that it creates XML with right tag to enable
the DMA APIs for virtio devices. I am looking for some suggestions.
Using these patches we have succesfully booted and tested a guest both with and
without SEV enabled.
SEV Firmware API spec is available at:
https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf
Brijesh Singh (4):
qemu: provide support to query the SEV capability
qemu: introduce SEV feature in hypervisor capabilities
conf: introduce sev element in domain
libvirt-domain: add new virDomainGetSevVmMeasurement() API
docs/formatdomain.html.in | 71 ++++++++++++++++++++++
docs/formatdomaincaps.html.in | 31 ++++++++++
docs/schemas/domaincaps.rng | 10 ++++
include/libvirt/libvirt-domain.h | 4 ++
src/conf/domain_capabilities.c | 19 ++++++
src/conf/domain_capabilities.h | 25 ++++++++
src/conf/domain_conf.c | 64 ++++++++++++++++++++
src/conf/domain_conf.h | 18 ++++++
src/driver-hypervisor.h | 4 ++
src/libvirt-domain.c | 41 +++++++++++++
src/libvirt_public.syms | 1 +
src/qemu/qemu_capabilities.c | 69 +++++++++++++++++++++-
src/qemu/qemu_capspriv.h | 4 ++
src/qemu/qemu_command.c | 77 ++++++++++++++++++++++++
src/qemu/qemu_driver.c | 51 ++++++++++++++++
src/qemu/qemu_monitor.c | 17 ++++++
src/qemu/qemu_monitor.h | 6 ++
src/qemu/qemu_monitor_json.c | 124 +++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 5 ++
19 files changed, 640 insertions(+), 1 deletion(-)
--
2.14.3
5
22
[libvirt] [PATCH] virsh: fixing segfault by pool autocompleter function.
by Julio Faracco 28 Feb '18
by Julio Faracco 28 Feb '18
28 Feb '18
The commands which requires a pool to perform any action for a volume is
throwing a segfault when you pass the volume name before a pool name or
without the argument '--pool'.
An example that works:
virsh # vol-list loops-pool
Name Path
-------------------------------------------------------------------
loop0 /mnt/loop0
virsh # vol-info --pool loops-pool lo<TAB>
An example that does not work:
virsh # vol-list loops-pool
Name Path
-------------------------------------------------------------------
loop0 /mnt/loop0
virsh # vol-info lo<TAB>
Segmentation Fault
The example 'vol-info' can be executed as 'vol-info loop0 --pool
loops-pool'. So, this commit fixes this problem when the arguments are
inverted and avoids the segfault.
Signed-off-by: Julio Faracco <jcfaracco(a)gmail.com>
---
tools/virsh-pool.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index 56b6cfc73..24a4d1ee7 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -143,6 +143,9 @@ virshCommandOptPoolBy(vshControl *ctl, const vshCmd *cmd, const char *optname,
if (vshCommandOptStringReq(ctl, cmd, optname, &n) < 0)
return NULL;
+ if (!n)
+ return NULL;
+
vshDebug(ctl, VSH_ERR_INFO, "%s: found option <%s>: %s\n",
cmd->def->name, optname, n);
--
2.14.1
2
1
28 Feb '18
12 bytes in 1 blocks are definitely lost in loss record 188 of 1,145
at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5D2CD77: xmlStrndup (in /lib/x86_64-linux-gnu/libxml2.so.2.7.8)
by 0x514E137: virXMLPropString (virxml.c:506)
by 0x234F51: qemuMigrationCookieNetworkXMLParse qemu_migration.c:1001)
by 0x235FF8: qemuMigrationCookieXMLParse (qemu_migration.c:1333)
by 0x236214: qemuMigrationCookieXMLParseStr (qemu_migration.c:1372)
by 0x2365D2: qemuMigrationEatCookie (qemu_migration.c:1456)
by 0x243DBA: qemuMigrationFinish (qemu_migration.c:6381)
by 0x204032: qemuDomainMigrateFinish3 (qemu_driver.c:13228)
by 0x521CCBB: virDomainMigrateFinish3 (libvirt-domain.c:4788)
by 0x1936DE: remoteDispatchDomainMigrateFinish3 (remote.c:4580)
by 0x16DBB1: remoteDispatchDomainMigrateFinish3Helper(remote_dispatch.h:7582)
Signed-off-by: ZhangZijian <zhang.zijian(a)h3c.com>
---
src/qemu/qemu_migration_cookie.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c
index 945530c..5a1e299 100644
--- a/src/qemu/qemu_migration_cookie.c
+++ b/src/qemu/qemu_migration_cookie.c
@@ -900,6 +900,7 @@ qemuMigrationCookieNetworkXMLParse(xmlXPathContextPtr ctxt)
goto error;
}
optr->net[i].vporttype = virNetDevVPortTypeFromString(vporttype);
+ VIR_FREE(vporttype);
}
VIR_FREE(interfaces);
--
2.9.5
2
1
[CC +libvirt]
On Tue, 27 Feb 2018 09:52:02 +0100
Gerd Hoffmann <kraxel(a)redhat.com> wrote:
> This series adds support for a vgpu display to the qemu vfio code.
>
> v5:
> - rebase to latest master
> - drop DeviceState->hotpluggable patch, use separate vfio-pci-display
> device instead so we can use DeviceClass->hotpluggable.
I can't imagine that management layers are going to be happy with this
approach, it's one thing to have certain USB controllers where the
version intimately tied to the machine chipset is not hotpluggable,
while standalone versions are, but having a fork of an entirely
standalone device for this purpose sounds very invasive. What does the
XML look like that would make libvirt select this option? I'm still
thinking that a separate display device, which vfio-pci can bind to as
a device option, not affecting the hotplug-ability of the vfio-pci
device itself is the correct, but clearly difficult, approach to this.
I can't agree to a separate device unless libvirt is willing to sign up
for enabling it.
Furthermore, if we take the separate device approach, shouldn't it be
something like vfio-pci-nohotplug, where display is an option only for
this version of the DeviceClass? Thanks,
Alex
> - add vfio dma-buf patch. Right now this can be tested with '-display
> egl-headless' only. gtk and spice support is almost ready for merge
> and should follow soon.
>
> cheers,
> Gerd
>
> Gerd Hoffmann (7):
> linux-headers: update to 4.16-rc1
> standard-headers: add drm/drm_fourcc.h
> ui/pixman: add qemu_drm_format_to_pixman()
> vfio/common: cleanup in vfio_region_finalize
> vfio/display: core & wireup
> vfio/display: adding region support
> vfio/display: adding dmabuf support
>
> hw/vfio/pci.h | 4 +
> include/hw/vfio/vfio-common.h | 22 ++
> include/standard-headers/drm/drm_fourcc.h | 411 +++++++++++++++++++++
> include/standard-headers/linux/input-event-codes.h | 1 +
> include/standard-headers/linux/input.h | 11 +
> include/standard-headers/linux/pci_regs.h | 30 +-
> include/standard-headers/linux/virtio_net.h | 13 +
> include/ui/qemu-pixman.h | 5 +
> linux-headers/asm-powerpc/kvm.h | 2 +
> linux-headers/asm-powerpc/unistd.h | 3 +
> linux-headers/asm-s390/unistd.h | 401 +-------------------
> linux-headers/asm-s390/unistd_32.h | 364 ++++++++++++++++++
> linux-headers/asm-s390/unistd_64.h | 331 +++++++++++++++++
> linux-headers/asm-x86/kvm_para.h | 4 +
> linux-headers/linux/kvm.h | 90 +++++
> linux-headers/linux/psci.h | 3 +
> linux-headers/linux/vfio.h | 72 ++++
> hw/vfio/common.c | 7 +
> hw/vfio/display.c | 286 ++++++++++++++
> hw/vfio/pci.c | 30 ++
> ui/qemu-pixman.c | 22 ++
> hw/vfio/Makefile.objs | 2 +-
> scripts/update-linux-headers.sh | 7 +
> 23 files changed, 1710 insertions(+), 411 deletions(-)
> create mode 100644 include/standard-headers/drm/drm_fourcc.h
> create mode 100644 linux-headers/asm-s390/unistd_32.h
> create mode 100644 linux-headers/asm-s390/unistd_64.h
> create mode 100644 hw/vfio/display.c
>
1
0