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
- 18 participants
- 40170 discussions
The attribute is used (and formatted) as virTristateBool() and even in
schema defined as virYesNo, so the values are supposed to be `yes` and
`no`.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
docs/formatdomain.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 4d03768c5f4e..3bbf94e192c9 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -6740,7 +6740,7 @@ interaction with the admin.
<graphics type='dbus'/>
- ``p2p`` (accepts ``on`` or ``off``) enables peer-to-peer connections,
+ ``p2p`` (accepts ``yes`` or ``no``) enables peer-to-peer connections,
established through virDomainOpenGraphics() APIs.
``address`` (accepts a `D-Bus address
--
2.48.1
2
1
11 Mar '25
Use the common check which produces hard errors instead of the
post-start check adding a warning which wasn't updated with the new
logic.
Peter Krempa (3):
qemuxmlconftest: Include shared memory 'net-vhostuser' test cases
qemuValidateDomainDeviceDefNetwork: Require shared memory for all
vhost-user interfaces
qemu: process: Remove un-updated 'qemuProcessStartWarnShmem'
src/qemu/qemu_process.c | 54 -------------------
src/qemu/qemu_validate.c | 9 ++--
.../net-vhostuser-fail.x86_64-latest.xml | 3 ++
tests/qemuxmlconfdata/net-vhostuser-fail.xml | 3 ++
.../net-vhostuser-multiq.x86_64-latest.args | 2 +-
.../net-vhostuser-multiq.x86_64-latest.xml | 3 ++
.../qemuxmlconfdata/net-vhostuser-multiq.xml | 3 ++
...vhostuser-passt-no-shmem.x86_64-latest.err | 2 +-
.../net-vhostuser.x86_64-latest.args | 2 +-
.../net-vhostuser.x86_64-latest.xml | 3 ++
tests/qemuxmlconfdata/net-vhostuser.xml | 3 ++
11 files changed, 24 insertions(+), 63 deletions(-)
--
2.48.1
2
4
11 Mar '25
With a specific combination of compiler options gcc reported the
following bogus warning (I added a context to it to make the issue
visible):
../src/esx/esx_vi.c: In function ‘esxVI_LookupHostScsiTopologyLunListByTargetName’:
../src/esx/esx_vi.c:4674:32: error: potential null pointer dereference [-Werror=null-dereference]
4671 | if (!found || !hostScsiTopologyTarget)
4672 | goto cleanup;
4673 |
4674 | if (!hostScsiTopologyTarget->lun) {
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~
Most likely this is caused by found and hostScsiTopologyTarget doing
essentially the same thing as found is true if and only if
hostScsiTopologyTarget is non-NULL. The found variable is completely
redundant. Removing it would be enough, but I decided to make the code a
little bit easier to read by not using the iterator variable directly.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/esx/esx_vi.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index e2589aa69a..aee649b86e 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -4616,7 +4616,6 @@ esxVI_LookupHostScsiTopologyLunListByTargetName
esxVI_HostScsiTopologyInterface *hostScsiInterfaceList = NULL;
esxVI_HostScsiTopologyInterface *hostScsiInterface = NULL;
esxVI_HostScsiTopologyTarget *hostScsiTopologyTarget = NULL;
- bool found = false;
esxVI_HostInternetScsiTargetTransport *candidate = NULL;
ESX_VI_CHECK_ARG_LIST(hostScsiTopologyLunList);
@@ -4653,22 +4652,21 @@ esxVI_LookupHostScsiTopologyLunListByTargetName
/* See vSphere API documentation about HostScsiTopologyInterface */
for (hostScsiInterface = hostScsiInterfaceList;
- hostScsiInterface && !found;
+ hostScsiInterface && !hostScsiTopologyTarget;
hostScsiInterface = hostScsiInterface->_next) {
- for (hostScsiTopologyTarget = hostScsiInterface->target;
- hostScsiTopologyTarget;
- hostScsiTopologyTarget = hostScsiTopologyTarget->_next) {
+ esxVI_HostScsiTopologyTarget *target;
+ for (target = hostScsiInterface->target; target; target = target->_next) {
candidate = esxVI_HostInternetScsiTargetTransport_DynamicCast
- (hostScsiTopologyTarget->transport);
+ (target->transport);
if (candidate && STREQ(candidate->iScsiName, name)) {
- found = true;
+ hostScsiTopologyTarget = target;
break;
}
}
}
- if (!found || !hostScsiTopologyTarget)
+ if (!hostScsiTopologyTarget)
goto cleanup;
if (!hostScsiTopologyTarget->lun) {
--
2.48.1
2
1
This series adds on s390x full boot order support which has been
introduced recently in QEMU with the PR
https://lore.kernel.org/qemu-devel/20241023131710.906748-1-thuth@redhat.com/
The replies and xml files are removed from the patch in this series and
are available in https://gitlab.com/fiuczy/libvirt/-/commits/fullbootorder
Boris Fiuczynski (3):
qemu: capabilities: Add QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM
tests: add capabilities for QEMU 9.2.0 on s390x
qemu: command: add multi boot device support on s390x
src/qemu/qemu_capabilities.c | 8 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 40 +-
src/qemu/qemu_command.h | 6 +-
src/qemu/qemu_hotplug.c | 6 +-
tests/domaincapsdata/qemu_9.2.0.s390x.xml | 311 +
.../caps_5.2.0_s390x.replies | 321 +-
.../caps_6.0.0_s390x.replies | 321 +-
.../caps_8.1.0_s390x.replies | 321 +-
.../caps_8.2.0_s390x.replies | 321 +-
.../caps_9.1.0_s390x.replies | 321 +-
.../caps_9.2.0_s390x.replies | 36741 ++++++++++++++++
.../qemucapabilitiesdata/caps_9.2.0_s390x.xml | 3752 ++
.../machine-loadparm-hostdev.s390x-9.1.0.args | 33 +
.../machine-loadparm-hostdev.s390x-9.1.0.xml | 33 +
...machine-loadparm-hostdev.s390x-latest.args | 4 +-
...-multiple-disks-nets-s390.s390x-9.1.0.args | 40 +
...m-multiple-disks-nets-s390.s390x-9.1.0.xml | 51 +
...multiple-disks-nets-s390.s390x-latest.args | 8 +-
...machine-loadparm-net-s390.s390x-9.1.0.args | 34 +
.../machine-loadparm-net-s390.s390x-9.1.0.xml | 32 +
...achine-loadparm-net-s390.s390x-latest.args | 4 +-
.../machine-loadparm-s390.s390x-9.1.0.args | 34 +
.../machine-loadparm-s390.s390x-9.1.0.xml | 33 +
.../machine-loadparm-s390.s390x-latest.args | 4 +-
tests/qemuxmlconftest.c | 4 +
26 files changed, 42664 insertions(+), 120 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_9.2.0.s390x.xml
create mode 100644 tests/qemucapabilitiesdata/caps_9.2.0_s390x.replies
create mode 100644 tests/qemucapabilitiesdata/caps_9.2.0_s390x.xml
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-9.1.0.args
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-hostdev.s390x-9.1.0.xml
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-multiple-disks-nets-s390.s390x-9.1.0.args
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-multiple-disks-nets-s390.s390x-9.1.0.xml
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-net-s390.s390x-9.1.0.args
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-net-s390.s390x-9.1.0.xml
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-s390.s390x-9.1.0.args
create mode 100644 tests/qemuxmlconfdata/machine-loadparm-s390.s390x-9.1.0.xml
--
2.45.0
2
11
11 Mar '25
From: Hyman Huang <yong.huang(a)smartx.com>
This patchset is the prerequisite for the vCPU dirty-limit feature:
https://patchew.org/Libvirt/cover.1703135535.git.yong.huang@smartx.com/
As suggested by Daniel:
We've generally tried to avoid adding single purpose APIs for
tunable parameters, instead using APIs with virTypedParameter
arrays to allow bulk updates.
I note that we don't appear to have any mechanism currently
to set the VCPU scheduler tunables either
Perhaps we should have a more general
virDomainSetVCPUTuneParameters(virDomainPtr domain,
int vcpu,
virTypedParameterPtr params,
unsigned int params,
unsigned int flags);
Refer the following link to see more details:
https://patchew.org/Libvirt/169397083100.4628.15196043252714532301-0@git.sr…
We present the qemuDomainSetVcpuTuneParameters API separately
because the patchset is somewhat self-contained.
Please review,
Yong
Hyman Huang (3):
libvirt: Add virDomainSetVcpuTuneParameters API
qemu_driver: Implement qemuDomainSetVcpuTuneParameters
virsh: Use the new API to implement cmdSetvcpu
include/libvirt/libvirt-domain.h | 25 ++++++++++++++
src/driver-hypervisor.h | 8 +++++
src/libvirt-domain.c | 56 ++++++++++++++++++++++++++++++++
src/libvirt_public.syms | 5 +++
src/qemu/qemu_driver.c | 29 +++++++++++++++++
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 20 +++++++++++-
tools/virsh-domain.c | 10 +++++-
8 files changed, 152 insertions(+), 2 deletions(-)
--
2.27.0
4
6
[PATCH] conf: parse interface/source/@dev for all interface types (with backend type='passt')
by Laine Stump 10 Mar '25
by Laine Stump 10 Mar '25
10 Mar '25
The original implementation of the passt backend for vhost-user
interfaces erroneously forgot to parse:
<source dev='blah'/>
for interface type='vhostuser', so it wasn't being added to the passt
commandline, and also wasn't being saved to the domain config. Now we
parse it no matter what the interface type, and then throw an error
during validation if source/@dev was specified and backend type !=
'passt' (or if interface type != 'user|vhostuser').
Fixes: 1e9054b9c79d721a55f413c2983c5370044f8f60
Resolves: https://issues.redhat.com/browse/RHEL-82539
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
src/conf/domain_conf.c | 10 +++++++---
src/conf/domain_validate.c | 5 +++++
.../net-vhostuser-passt.x86_64-latest.xml | 2 ++
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index d555873848..5daa1f89e8 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9938,14 +9938,18 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt,
break;
case VIR_DOMAIN_NET_TYPE_USER:
- def->sourceDev = virXMLPropString(source_node, "dev");
- break;
-
case VIR_DOMAIN_NET_TYPE_NULL:
case VIR_DOMAIN_NET_TYPE_LAST:
break;
}
+ /* source/@dev is used for two different interface types and *not*
+ * stored inside the union, so we can parse it out always, and
+ * then log an error during validation if it was specified for one
+ * of the interface types that doesn't support it.
+ */
+ def->sourceDev = virXMLPropString(source_node, "dev");
+
if ((virtualport_node = virXPathNode("./virtualport", ctxt))) {
if (virtualport_flags == 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index f2a98f143d..9de442d7d7 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -2196,6 +2196,11 @@ virDomainNetDefValidate(const virDomainNetDef *net)
}
}
+ if (net->sourceDev && net->backend.type != VIR_DOMAIN_NET_BACKEND_PASST) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("The 'dev' attribute of the <source> element can only be used with interface type='user' or type='vhostuser' and backend='passt'."));
+ }
+
if (net->nPortForwards > 0) {
size_t p;
diff --git a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
index a1f9366722..529aff11f8 100644
--- a/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
@@ -33,6 +33,7 @@
<controller type='pci' index='0' model='pci-root'/>
<interface type='vhostuser'>
<mac address='00:11:22:33:44:55'/>
+ <source dev='eth42'/>
<ip address='172.17.2.0' family='ipv4' prefix='24'/>
<ip address='2001:db8:ac10:fd01::feed' family='ipv6'/>
<portForward proto='tcp' address='2001:db8:ac10:fd01::1:10'>
@@ -63,6 +64,7 @@
</interface>
<interface type='vhostuser'>
<mac address='00:11:22:33:44:11'/>
+ <source dev='eth43'/>
<model type='virtio'/>
<backend type='passt'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
--
2.48.1
2
2
This version introduces virStringFormatHex method and uses this method while sending host_data to cloud-hypervisor.
Praveen K Paladugu (2):
util: Introduce virStringFormatHex
ch: Enable SEV SNP support
src/ch/ch_monitor.c | 65 ++++++++++++++++++++++++++++++++--------
src/libvirt_private.syms | 1 +
src/util/virstring.c | 19 ++++++++++++
src/util/virstring.h | 1 +
4 files changed, 74 insertions(+), 12 deletions(-)
--
2.47.0
2
6
[PATCH 0/4] hw/s390x: Alias @dump-skeys -> @dump-s390-skey and deprecate
by Philippe Mathieu-Daudé 10 Mar '25
by Philippe Mathieu-Daudé 10 Mar '25
10 Mar '25
We are trying to unify all qemu-system-FOO to a single binary.
In order to do that we need to remove QAPI target specific code.
@dump-skeys is only available on qemu-system-s390x. This series
rename it as @dump-s390-skey, making it available on other
binaries. We take care of backward compatibility via deprecation.
Philippe Mathieu-Daudé (4):
hw/s390x: Introduce the @dump-s390-skeys QMP command
hw/s390x: Introduce the 'dump_s390_skeys' HMP command
hw/s390x: Deprecate the HMP 'dump_skeys' command
hw/s390x: Deprecate the QMP @dump-skeys command
docs/about/deprecated.rst | 5 +++++
qapi/misc-target.json | 5 +++++
qapi/misc.json | 18 ++++++++++++++++++
include/monitor/hmp.h | 1 +
hw/s390x/s390-skeys-stub.c | 24 ++++++++++++++++++++++++
hw/s390x/s390-skeys.c | 19 +++++++++++++++++--
hmp-commands.hx | 17 +++++++++++++++--
hw/s390x/meson.build | 5 +++++
8 files changed, 90 insertions(+), 4 deletions(-)
create mode 100644 hw/s390x/s390-skeys-stub.c
--
2.41.0
7
24
[PATCH 00/16] qemu: Bump minimum qemu to qemu-6.2.0 and clean up capabilities
by Peter Krempa 10 Mar '25
by Peter Krempa 10 Mar '25
10 Mar '25
Summary:
This series was originally just meant to clean up non-release
capabilities but it grew since we dropped debian-11 and Michal asked me
to add dev-version for amdsev variant.
Some of the long patches were truncated, fetch the proper patches at
git fetch https://gitlab.com/pipo.sk/libvirt.git qemu_caps
Note that this series also drops caps dumps which were not updated from
the development version after final version was released. This includes:
- caps_6.2.0_aarch64
- caps_7.0.0_aarch64
- caps_8.0.0_riscv64
If anyone cares enough I'll accept a replacement patch updating the caps
but as outlined in the commit message I don't think we need to do
archaeology for these as we have newer versions.
I also pinged the original author of caps_9.2.0_s390x who promised to
update the caps.
This series also contains current git caps for the 'amdsev' variant per
Michal's request.
Peter Krempa (16):
conf: Drop support for 'sheepdog' disks
qemuxmlconftest: Drop tests pinned to qemu-5.2
qemuxmlconftest: Drop tests pinned to qemu-6.0
qemuxmlconftest: Drop tests pinned to qemu-6.1
qemucapabilitiestest: Drop qemu-5.2 data
qemucapabilitiestest: Drop qemu-6.0 data
qemucapabilitiestest: Drop qemu-6.1 data
qemucapabilitiestest: Add 'qemu_9.2.0.aarch64+hvf' test data
qemucapabilitiestest: Drop unused fake data 'caps_7.0.0_aarch64+hvf'
qemucapabilitiesdata: Drop un-updated 'qemu_6.2.0_aarch64' data
qemucapabilitiesdata: Drop un-updated 'caps_7.0.0_aarch64' data
qemucapabilitiesdata: Drop un-updated 'qemu_8.0.0_riscv64' data
qemu: capabilities: Bump minimum qemu to qemu-6.2
qemu: block: Drop 'sheepdog' protocol support
qemucapabilitiestest: Update 'caps_10.0.0_x86_64' to
'v9.2.0-2369-g98c7362b1e'
qemucapabilitiestest: Add data for the qemu-10.0 dev cycle on x86_64
for the '+amdsev' variant
src/conf/domain_validate.c | 7 +
src/qemu/qemu_block.c | 44 +-
src/qemu/qemu_capabilities.c | 2 +-
....xml => qemu_10.0.0-q35.x86_64+amdsev.xml} | 870 +-
....xml => qemu_10.0.0-tcg.x86_64+amdsev.xml} | 1245 +-
...6_64.xml => qemu_10.0.0.x86_64+amdsev.xml} | 868 +-
.../qemu_5.2.0-tcg-virt.riscv64.xml | 163 -
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 1643 -
.../qemu_5.2.0-virt.aarch64.xml | 221 -
.../qemu_5.2.0-virt.riscv64.xml | 166 -
tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 221 -
tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 187 -
tests/domaincapsdata/qemu_5.2.0.s390x.xml | 288 -
.../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 1047 -
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 1744 -
.../qemu_6.0.0-virt.aarch64.xml | 227 -
tests/domaincapsdata/qemu_6.0.0.aarch64.xml | 227 -
tests/domaincapsdata/qemu_6.0.0.s390x.xml | 293 -
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 1047 -
.../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 1139 -
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 1139 -
.../qemu_6.2.0-virt.aarch64.xml | 234 -
tests/domaincapsdata/qemu_6.2.0.aarch64.xml | 234 -
.../qemu_7.0.0-virt.aarch64.xml | 233 -
tests/domaincapsdata/qemu_7.0.0.aarch64.xml | 233 -
.../qemu_8.0.0-tcg-virt.riscv64.xml | 174 -
.../qemu_8.0.0-virt.riscv64.xml | 177 -
...hvf.xml => qemu_9.2.0-hvf.aarch64+hvf.xml} | 26 +-
...lies => caps_10.0.0_x86_64+amdsev.replies} | 26336 +++++++++----
...6_64.xml => caps_10.0.0_x86_64+amdsev.xml} | 2994 +-
.../caps_10.0.0_x86_64.replies | 388 +-
.../caps_10.0.0_x86_64.xml | 70 +-
.../caps_5.2.0_aarch64.replies | 24859 ------------
.../caps_5.2.0_aarch64.xml | 428 -
.../caps_5.2.0_ppc64.replies | 28246 -------------
.../qemucapabilitiesdata/caps_5.2.0_ppc64.xml | 1081 -
.../caps_5.2.0_riscv64.replies | 20531 ----------
.../caps_5.2.0_riscv64.xml | 131 -
.../caps_5.2.0_s390x.replies | 25181 ------------
.../qemucapabilitiesdata/caps_5.2.0_s390x.xml | 3221 --
.../caps_5.2.0_x86_64.replies | 30637 ---------------
.../caps_5.2.0_x86_64.xml | 3113 --
.../caps_6.0.0_aarch64.replies | 26869 -------------
.../caps_6.0.0_aarch64.xml | 454 -
.../caps_6.0.0_s390x.replies | 26878 -------------
.../qemucapabilitiesdata/caps_6.0.0_s390x.xml | 3235 --
.../caps_6.0.0_x86_64.replies | 32715 ----------------
.../caps_6.0.0_x86_64.xml | 3261 --
.../caps_6.2.0_aarch64.replies | 28023 -------------
.../caps_6.2.0_aarch64.xml | 485 -
.../caps_7.0.0_aarch64.replies | 31776 ---------------
.../caps_7.0.0_aarch64.xml | 501 -
.../caps_8.0.0_riscv64.replies | 27913 -------------
.../caps_8.0.0_riscv64.xml | 157 -
...replies => caps_9.2.0_aarch64+hvf.replies} | 27603 +++++++------
...h64+hvf.xml => caps_9.2.0_aarch64+hvf.xml} | 647 +-
tests/qemusecuritytest.c | 1 -
.../cpu-fallback.x86_64-5.2.0.args | 34 -
.../cpu-fallback.x86_64-5.2.0.xml | 40 -
...-host-model-fallback-kvm.x86_64-5.2.0.args | 34 -
...u-host-model-fallback-kvm.x86_64-5.2.0.xml | 29 -
...-host-model-fallback-kvm.x86_64-6.0.0.args | 34 -
...u-host-model-fallback-kvm.x86_64-6.0.0.xml | 29 -
...-host-model-fallback-kvm.x86_64-6.1.0.args | 34 -
...u-host-model-fallback-kvm.x86_64-6.1.0.xml | 29 -
...-host-model-fallback-tcg.x86_64-5.2.0.args | 34 -
...u-host-model-fallback-tcg.x86_64-5.2.0.xml | 29 -
...-host-model-fallback-tcg.x86_64-6.0.0.args | 34 -
...u-host-model-fallback-tcg.x86_64-6.0.0.xml | 29 -
...-host-model-fallback-tcg.x86_64-6.1.0.args | 34 -
...u-host-model-fallback-tcg.x86_64-6.1.0.xml | 29 -
.../cpu-host-model-kvm.x86_64-5.2.0.args | 39 -
.../cpu-host-model-kvm.x86_64-5.2.0.xml | 48 -
.../cpu-host-model-kvm.x86_64-6.0.0.args | 39 -
.../cpu-host-model-kvm.x86_64-6.0.0.xml | 48 -
.../cpu-host-model-kvm.x86_64-6.1.0.args | 39 -
.../cpu-host-model-kvm.x86_64-6.1.0.xml | 48 -
...ost-model-nofallback-kvm.x86_64-5.2.0.args | 34 -
...host-model-nofallback-kvm.x86_64-5.2.0.xml | 29 -
...ost-model-nofallback-kvm.x86_64-6.0.0.args | 34 -
...host-model-nofallback-kvm.x86_64-6.0.0.xml | 29 -
...ost-model-nofallback-kvm.x86_64-6.1.0.args | 34 -
...host-model-nofallback-kvm.x86_64-6.1.0.xml | 29 -
...ost-model-nofallback-tcg.x86_64-5.2.0.args | 34 -
...host-model-nofallback-tcg.x86_64-5.2.0.xml | 29 -
...ost-model-nofallback-tcg.x86_64-6.0.0.args | 34 -
...host-model-nofallback-tcg.x86_64-6.0.0.xml | 29 -
...ost-model-nofallback-tcg.x86_64-6.1.0.args | 34 -
...host-model-nofallback-tcg.x86_64-6.1.0.xml | 29 -
.../cpu-host-model-tcg.x86_64-5.2.0.args | 39 -
.../cpu-host-model-tcg.x86_64-5.2.0.xml | 48 -
.../cpu-host-model-tcg.x86_64-6.0.0.args | 39 -
.../cpu-host-model-tcg.x86_64-6.0.0.xml | 48 -
.../cpu-host-model-tcg.x86_64-6.1.0.args | 39 -
.../cpu-host-model-tcg.x86_64-6.1.0.xml | 48 -
.../cpu-nofallback.x86_64-5.2.0.err | 1 -
.../cpu-nofallback.x86_64-5.2.0.xml | 40 -
...sk-network-rbd-encryption.x86_64-6.0.0.err | 1 -
.../disk-network-sheepdog.x86_64-6.0.0.args | 39 -
.../disk-network-sheepdog.x86_64-6.0.0.xml | 46 -
.../disk-network-sheepdog.x86_64-latest.err | 1 +
...disk-network-tlsx509-nbd.x86_64-5.2.0.args | 38 -
.../disk-network-tlsx509-nbd.x86_64-5.2.0.xml | 37 -
...virtio-scsi-reservations.x86_64-5.2.0.args | 43 -
...-virtio-scsi-reservations.x86_64-5.2.0.xml | 53 -
.../graphics-vnc-tls-secret.x86_64-5.2.0.args | 37 -
.../graphics-vnc-tls-secret.x86_64-5.2.0.xml | 39 -
...ch64-virt-headless.aarch64-latest+hvf.args | 8 +-
.../hyperv-passthrough.x86_64-6.1.0.args | 32 -
.../hyperv-passthrough.x86_64-6.1.0.xml | 34 -
...othreads-virtio-scsi-pci.x86_64-5.2.0.args | 42 -
...iothreads-virtio-scsi-pci.x86_64-5.2.0.xml | 49 -
...ev-missing-platform-info.x86_64-6.0.0.args | 37 -
...sev-missing-platform-info.x86_64-6.0.0.xml | 43 -
.../launch-security-sev.x86_64-6.0.0.args | 37 -
.../launch-security-sev.x86_64-6.0.0.xml | 45 -
.../luks-disks-source-qcow2.x86_64-5.2.0.args | 62 -
.../luks-disks-source-qcow2.x86_64-5.2.0.xml | 107 -
...ory-hotplug-nvdimm-align.x86_64-5.2.0.args | 40 -
...mory-hotplug-nvdimm-align.x86_64-5.2.0.xml | 60 -
...ory-hotplug-nvdimm-label.x86_64-5.2.0.args | 40 -
...mory-hotplug-nvdimm-label.x86_64-5.2.0.xml | 62 -
...mory-hotplug-nvdimm-pmem.x86_64-5.2.0.args | 40 -
...emory-hotplug-nvdimm-pmem.x86_64-5.2.0.xml | 60 -
...-hotplug-nvdimm-readonly.x86_64-5.2.0.args | 40 -
...y-hotplug-nvdimm-readonly.x86_64-5.2.0.xml | 60 -
...mory-hotplug-virtio-pmem.x86_64-5.2.0.args | 40 -
...emory-hotplug-virtio-pmem.x86_64-5.2.0.xml | 55 -
.../misc-no-reboot.x86_64-5.2.0.args | 36 -
.../misc-no-reboot.x86_64-5.2.0.xml | 38 -
.../numatune-memnode.x86_64-5.2.0.args | 39 -
.../numatune-memnode.x86_64-5.2.0.xml | 41 -
...0-async-teardown-disabled.s390x-6.0.0.args | 35 -
...90-async-teardown-disabled.s390x-6.0.0.xml | 36 -
.../s390-async-teardown.s390x-6.0.0.err | 1 -
.../virtio-iommu-x86_64.x86_64-6.1.0.err | 1 -
.../virtio-rng-builtin.x86_64-5.2.0.args | 36 -
.../virtio-rng-builtin.x86_64-5.2.0.xml | 35 -
.../virtio-rng-egd-unix.x86_64-5.2.0.args | 37 -
.../virtio-rng-egd-unix.x86_64-5.2.0.xml | 37 -
tests/qemuxmlconftest.c | 47 +-
141 files changed, 37729 insertions(+), 357243 deletions(-)
rename tests/domaincapsdata/{qemu_5.2.0-q35.x86_64.xml => qemu_10.0.0-q35.x86_64+amdsev.xml} (51%)
rename tests/domaincapsdata/{qemu_6.1.0-tcg.x86_64.xml => qemu_10.0.0-tcg.x86_64+amdsev.xml} (67%)
rename tests/domaincapsdata/{qemu_5.2.0.x86_64.xml => qemu_10.0.0.x86_64+amdsev.xml} (51%)
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-tcg-virt.riscv64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0-virt.riscv64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0.ppc64.xml
delete mode 100644 tests/domaincapsdata/qemu_5.2.0.s390x.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0.s390x.xml
delete mode 100644 tests/domaincapsdata/qemu_6.0.0.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.1.0.x86_64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_6.2.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_7.0.0.aarch64.xml
delete mode 100644 tests/domaincapsdata/qemu_8.0.0-tcg-virt.riscv64.xml
delete mode 100644 tests/domaincapsdata/qemu_8.0.0-virt.riscv64.xml
rename tests/domaincapsdata/{qemu_7.0.0-hvf.aarch64+hvf.xml => qemu_9.2.0-hvf.aarch64+hvf.xml} (91%)
rename tests/qemucapabilitiesdata/{caps_6.1.0_x86_64.replies => caps_10.0.0_x86_64+amdsev.replies} (68%)
rename tests/qemucapabilitiesdata/{caps_6.1.0_x86_64.xml => caps_10.0.0_x86_64+amdsev.xml} (63%)
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_ppc64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_ppc64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_riscv64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_riscv64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_s390x.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_s390x.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_s390x.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_s390x.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_6.2.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_6.2.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_7.0.0_aarch64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_7.0.0_aarch64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_8.0.0_riscv64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_8.0.0_riscv64.xml
rename tests/qemucapabilitiesdata/{caps_7.0.0_aarch64+hvf.replies => caps_9.2.0_aarch64+hvf.replies} (82%)
rename tests/qemucapabilitiesdata/{caps_7.0.0_aarch64+hvf.xml => caps_9.2.0_aarch64+hvf.xml} (58%)
delete mode 100644 tests/qemuxmlconfdata/cpu-fallback.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-fallback.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-fallback-tcg.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-nofallback-tcg.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/cpu-host-model-tcg.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/cpu-nofallback.x86_64-5.2.0.err
delete mode 100644 tests/qemuxmlconfdata/cpu-nofallback.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/disk-network-rbd-encryption.x86_64-6.0.0.err
delete mode 100644 tests/qemuxmlconfdata/disk-network-sheepdog.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/disk-network-sheepdog.x86_64-6.0.0.xml
create mode 100644 tests/qemuxmlconfdata/disk-network-sheepdog.x86_64-latest.err
delete mode 100644 tests/qemuxmlconfdata/disk-network-tlsx509-nbd.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/disk-network-tlsx509-nbd.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/disk-virtio-scsi-reservations.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/graphics-vnc-tls-secret.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/hyperv-passthrough.x86_64-6.1.0.args
delete mode 100644 tests/qemuxmlconfdata/hyperv-passthrough.x86_64-6.1.0.xml
delete mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-pci.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-pci.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev-missing-platform-info.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev-missing-platform-info.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev.x86_64-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/launch-security-sev.x86_64-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/luks-disks-source-qcow2.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/luks-disks-source-qcow2.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-align.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-align.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-label.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-label.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-pmem.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-pmem.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-readonly.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-nvdimm-readonly.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-virtio-pmem.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/memory-hotplug-virtio-pmem.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/misc-no-reboot.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/misc-no-reboot.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/numatune-memnode.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/numatune-memnode.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/s390-async-teardown-disabled.s390x-6.0.0.args
delete mode 100644 tests/qemuxmlconfdata/s390-async-teardown-disabled.s390x-6.0.0.xml
delete mode 100644 tests/qemuxmlconfdata/s390-async-teardown.s390x-6.0.0.err
delete mode 100644 tests/qemuxmlconfdata/virtio-iommu-x86_64.x86_64-6.1.0.err
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-builtin.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-builtin.x86_64-5.2.0.xml
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-egd-unix.x86_64-5.2.0.args
delete mode 100644 tests/qemuxmlconfdata/virtio-rng-egd-unix.x86_64-5.2.0.xml
--
2.48.1
3
18
Hi,
i just playing around with the "new" backup API for switching from the old way and simply want
to do full backup's in push mode. If i do so,
virsh backup-begin <domain>
the backup-Image files are always created in the image directory
As the place on the fast nvme's, where the images are lying is very limited, i want to place the
backup-image files to be on another harddisk on an mounted dir whithout temporary save them
in the image directory.
To do so, an --targetdir option on backup-begin would be very useful.
best regards
Michael
2
1
[PATCH RESEND 0/6] Add support for configuring PCI high memory MMIO size
by Matthew R. Ochs 08 Mar '25
by Matthew R. Ochs 08 Mar '25
08 Mar '25
Resending this series since it appears my first attempt was not sent to
the list due to the "first post" manual moderation delay. =)
This patch series adds support for configuring the PCI high memory MMIO
window size for aarch64 virt machine types. This feature was recently merged
into the QEMU upstream master branch [1] and will be available in QEMU 10.0.
It allows users to configure the size of the high memory MMIO window above
4GB, which is particularly useful for systems with large amounts of PCI
memory requirements.
The feature is exposed through the domain XML as a new PCI feature:
<features>
<pci>
<highmem-mmio-size unit='G'>512</highmem-mmio-size>
</pci>
</features>
When enabled, this configures the size of the PCI high memory MMIO window
via QEMU's highmem-mmio-size machine property. The feature is only
available for aarch64 virt machine types and requires QEMU support.
This series depends on [2] and should be applied on top of those patches.
For your convenience, this series is also available on Github [3].
[1] https://github.com/qemu/qemu/commit/f10104aeae3a17f181d5bb37b7fd7dad7fe86cba
[2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/Z4NQ…
[3] git fetch https://github.com/nvmochs/libvirt.git pci_highmem_mmio_size
Signed-off-by: Matthew R. Ochs <mochs(a)nvidia.com>
Matthew R. Ochs (6):
domain: Add PCI configuration feature infrastructure
schema: Add PCI configuration feature schema
conf: Add PCI configuration XML parsing and formatting
qemu: Add capability for PCI high memory MMIO size
qemu: Add command line support for PCI high memory MMIO size
tests: Add tests for machine PCI features
src/conf/domain_conf.c | 103 ++++++++++++++++++
src/conf/domain_conf.h | 6 +
src/conf/schemas/domaincommon.rng | 9 ++
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 6 +
src/qemu/qemu_validate.c | 15 +++
.../caps_10.0.0_aarch64.replies | 10 ++
.../caps_10.0.0_aarch64.xml | 1 +
...rch64-virt-machine-pci.aarch64-latest.args | 31 ++++++
...arch64-virt-machine-pci.aarch64-latest.xml | 30 +++++
.../aarch64-virt-machine-pci.xml | 20 ++++
tests/qemuxmlconftest.c | 2 +
13 files changed, 236 insertions(+)
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml
--
2.46.0
1
6
virNetDevBridgeSetupVlans() calls virNetlinkBridgeVlanFilterSet(),
which requires libnl. Use the function only when libnl is available
to avoid breaking builds.
Signed-off-by: Akihiko Odaki <akihiko.odaki(a)daynix.com>
---
src/util/virnetdevbridge.c | 122 ++++++++++++++++++++++-----------------------
1 file changed, 61 insertions(+), 61 deletions(-)
diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
index c79d0c79b7b16a0a070b5013ed7df9d0a63b1c38..70e82a0029634ddf44c2b933577bf783c89f035c 100644
--- a/src/util/virnetdevbridge.c
+++ b/src/util/virnetdevbridge.c
@@ -313,66 +313,6 @@ virNetDevBridgePortSetIsolated(const char *brname,
return virNetDevBridgePortSet(brname, ifname, "isolated", enable ? 1 : 0);
}
-static int
-virNetDevBridgeSetupVlans(const char *ifname, const virNetDevVlan *virtVlan)
-{
- int error = 0;
- unsigned short flags;
-
- if (!virtVlan || !virtVlan->nTags)
- return 0;
-
- // The interface will have been automatically added to vlan 1, so remove it
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_DELLINK, 0, 1, &error) < 0) {
- if (error != 0) {
- virReportSystemError(-error,
- _("error removing vlan filter from interface %1$s"),
- ifname);
- }
- return -1;
- }
-
- // If trunk mode, add the native VLAN then add the others, if any
- if (virtVlan->trunk) {
- size_t i;
-
- if (virtVlan->nativeTag) {
- flags = BRIDGE_VLAN_INFO_PVID;
- if (virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_UNTAGGED ||
- virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_DEFAULT) {
- flags |= BRIDGE_VLAN_INFO_UNTAGGED;
- }
-
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
- virtVlan->nativeTag, &error) < 0) {
- goto error;
- }
- }
-
- for (i = 0; i < virtVlan->nTags; i++) {
- if (virtVlan->tag[i] != virtVlan->nativeTag)
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, 0,
- virtVlan->tag[i], &error) < 0) {
- goto error;
- }
- }
- } else {
- // In native mode, add the single VLAN as pvid untagged
- flags = BRIDGE_VLAN_INFO_PVID | BRIDGE_VLAN_INFO_UNTAGGED;
- if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
- virtVlan->tag[0], &error) < 0) {
- goto error;
- }
- }
-
- return 0;
-
- error:
- if (error != 0)
- virReportSystemError(-error, _("error adding vlan filter to interface %1$s"), ifname);
- return -1;
-}
-
#else
int
@@ -651,7 +591,67 @@ int virNetDevBridgeDelete(const char *brname G_GNUC_UNUSED)
*
* Returns 0 in case of success or an errno code in case of failure.
*/
-#if defined(WITH_STRUCT_IFREQ) && defined(SIOCBRADDIF)
+#if defined(WITH_STRUCT_IFREQ) && defined(SIOCBRADDIF) && defined(WITH_LIBNL)
+static int
+virNetDevBridgeSetupVlans(const char *ifname, const virNetDevVlan *virtVlan)
+{
+ int error = 0;
+ unsigned short flags;
+
+ if (!virtVlan || !virtVlan->nTags)
+ return 0;
+
+ // The interface will have been automatically added to vlan 1, so remove it
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_DELLINK, 0, 1, &error) < 0) {
+ if (error != 0) {
+ virReportSystemError(-error,
+ _("error removing vlan filter from interface %1$s"),
+ ifname);
+ }
+ return -1;
+ }
+
+ // If trunk mode, add the native VLAN then add the others, if any
+ if (virtVlan->trunk) {
+ size_t i;
+
+ if (virtVlan->nativeTag) {
+ flags = BRIDGE_VLAN_INFO_PVID;
+ if (virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_UNTAGGED ||
+ virtVlan->nativeMode == VIR_NATIVE_VLAN_MODE_DEFAULT) {
+ flags |= BRIDGE_VLAN_INFO_UNTAGGED;
+ }
+
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
+ virtVlan->nativeTag, &error) < 0) {
+ goto error;
+ }
+ }
+
+ for (i = 0; i < virtVlan->nTags; i++) {
+ if (virtVlan->tag[i] != virtVlan->nativeTag)
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, 0,
+ virtVlan->tag[i], &error) < 0) {
+ goto error;
+ }
+ }
+ } else {
+ // In native mode, add the single VLAN as pvid untagged
+ flags = BRIDGE_VLAN_INFO_PVID | BRIDGE_VLAN_INFO_UNTAGGED;
+ if (virNetlinkBridgeVlanFilterSet(ifname, RTM_SETLINK, flags,
+ virtVlan->tag[0], &error) < 0) {
+ goto error;
+ }
+ }
+
+ return 0;
+
+ error:
+ if (error != 0)
+ virReportSystemError(-error, _("error adding vlan filter to interface %1$s"), ifname);
+ return -1;
+}
+
int virNetDevBridgeAddPort(const char *brname,
const char *ifname,
const virNetDevVlan *virtVlan)
---
base-commit: e5299ddf86121d3c792ca271ffcb54900eb19dc3
change-id: 20250304-nl-605e05b8c5f2
Best regards,
--
Akihiko Odaki <akihiko.odaki(a)daynix.com>
2
3
= Overview =
This patch set introduces support for acpi-generic-initiator devices,
supported by QEMU [1].
The acpi-generic-initiator object is required to support Multi-Instance GPU
(MIG) configurations on NVIDIA GPUs [2]. MIG enables partitioning of GPU
resources into multiple isolated instances, each requiring a dedicated NUMA
node definition.
= Implementation =
This patch set implements the libvirt counterpart to the QEMU feature,
enabling users to configure acpi-generic-initiator objects within libvirt
domain XML.
This includes:
- adding XML syntax to define acpi-generic-initiator objects,
- adding a new qemu capability flag,
- resolving the acpi-generic-initiator definitions into the proper QEMU
command-line arguments,
- ensuring compatibility with existing NUMA configuration.
= Example =
- Domain XML:
```
...
<cpu mode='host-passthrough' check='none'>
<numa>
<cell id='0' cpus='0-15' memory='8388608' unit='KiB'/>
<cell id='1' memory='0' unit='KiB'/>
<cell id='2' memory='0' unit='KiB'/>
<cell id='3' memory='0' unit='KiB'/>
<cell id='4' memory='0' unit='KiB'/>
<cell id='5' memory='0' unit='KiB'/>
<cell id='6' memory='0' unit='KiB'/>
<cell id='7' memory='0' unit='KiB'/>
<cell id='8' memory='0' unit='KiB'/>
</numa>
</cpu>
...
<devices>
...
<acpi-generic-initiator>
<alias name="gi1" />
<pci-dev>hostdev0</pci-dev>
<numa-node>1</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi2" />
<pci-dev>hostdev0</pci-dev>
<numa-node>2</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi3" />
<pci-dev>hostdev0</pci-dev>
<numa-node>3</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi4" />
<pci-dev>hostdev0</pci-dev>
<numa-node>4</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi5" />
<pci-dev>hostdev0</pci-dev>
<numa-node>5</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi6" />
<pci-dev>hostdev0</pci-dev>
<numa-node>6</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi7" />
<pci-dev>hostdev0</pci-dev>
<numa-node>7</numa-node>
</acpi-generic-initiator>
<acpi-generic-initiator>
<alias name="gi8" />
<pci-dev>hostdev0</pci-dev>
<numa-node>8</numa-node>
</acpi-generic-initiator>
</devices>
```
- Generated QEMU command line options:
```
... /usr/bin/qemu-system-aarch64 \
...
-object '{"qom-type":"memory-backend-ram","id":"ram-node0","size":8589934592}' \
-numa node,nodeid=0,cpus=0-15,memdev=ram-node0 \
-numa node,nodeid=1 \
-numa node,nodeid=2 \
-numa node,nodeid=3 \
-numa node,nodeid=4 \
-numa node,nodeid=5 \
-numa node,nodeid=6 \
-numa node,nodeid=7 \
-numa node,nodeid=8 \
...
-object '{"qom-type":"acpi-generic-initiator","id":"gi1","pci-dev":"hostdev0","node":1}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi2","pci-dev":"hostdev0","node":2}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi3","pci-dev":"hostdev0","node":3}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi4","pci-dev":"hostdev0","node":4}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi5","pci-dev":"hostdev0","node":5}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi6","pci-dev":"hostdev0","node":6}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi7","pci-dev":"hostdev0","node":7}' \
-object '{"qom-type":"acpi-generic-initiator","id":"gi8","pci-dev":"hostdev0","node":8}'
```
= References =
[1] https://lore.kernel.org/all/20231225045603.7654-2-ankita@nvidia.com/
[2] https://www.nvidia.com/en-in/technologies/multi-instance-gpu/
ChangeLog v1 -> v2:
- split parser and driver changes in separate patches
- introduce a new qemu capability flag
- introduce test in qemuxmlconftest
Andrea Righi (6):
schema: Introduce acpi-generic-initiator definition
conf: Introduce acpi-generic-initiator device
qemu: Allow to define NUMA nodes without memory or CPUs assigned
qemu: capabilies: Introduce QEMU_CAPS_ACPI_GENERIC_INITIATOR
qemu: support acpi-generic-initiator
qemu: Add test case for acpi-generic-initiator
src/ch/ch_domain.c | 1 +
src/conf/domain_conf.c | 153 +++++++++++++++++++++
src/conf/domain_conf.h | 14 ++
src/conf/domain_postparse.c | 1 +
src/conf/domain_validate.c | 40 ++++++
src/conf/numa_conf.c | 3 +
src/conf/schemas/domaincommon.rng | 19 +++
src/conf/virconftypes.h | 2 +
src/libxl/libxl_driver.c | 6 +
src/lxc/lxc_driver.c | 6 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 48 +++++--
src/qemu/qemu_domain.c | 2 +
src/qemu/qemu_domain_address.c | 4 +
src/qemu/qemu_driver.c | 3 +
src/qemu/qemu_hotplug.c | 5 +
src/qemu/qemu_postparse.c | 1 +
src/qemu/qemu_validate.c | 1 +
src/test/test_driver.c | 4 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_riscv64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 +
.../acpi-generic-initiator.x86_64-latest.args | 55 ++++++++
.../acpi-generic-initiator.x86_64-latest.xml | 102 ++++++++++++++
tests/qemuxmlconfdata/acpi-generic-initiator.xml | 102 ++++++++++++++
tests/qemuxmlconftest.c | 1 +
29 files changed, 573 insertions(+), 8 deletions(-)
create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/acpi-generic-initiator.xml
2
10
- Remove EOL Debian 11
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
This depends on this MR [1] to update libvirt-ci as well.
[1] <https://gitlab.com/libvirt/libvirt-ci/-/merge_requests/527>
ci/buildenv/debian-11-cross-aarch64.sh | 117 ----------------
ci/buildenv/debian-11-cross-armv6l.sh | 116 ----------------
ci/buildenv/debian-11-cross-armv7l.sh | 117 ----------------
ci/buildenv/debian-11-cross-i686.sh | 116 ----------------
ci/buildenv/debian-11-cross-mips64el.sh | 116 ----------------
ci/buildenv/debian-11-cross-mipsel.sh | 116 ----------------
ci/buildenv/debian-11-cross-ppc64le.sh | 116 ----------------
ci/buildenv/debian-11-cross-s390x.sh | 116 ----------------
ci/buildenv/debian-11.sh | 100 --------------
.../debian-11-cross-aarch64.Dockerfile | 123 -----------------
.../debian-11-cross-armv6l.Dockerfile | 122 -----------------
.../debian-11-cross-armv7l.Dockerfile | 123 -----------------
ci/containers/debian-11-cross-i686.Dockerfile | 122 -----------------
.../debian-11-cross-mips64el.Dockerfile | 122 -----------------
.../debian-11-cross-mipsel.Dockerfile | 122 -----------------
.../debian-11-cross-ppc64le.Dockerfile | 122 -----------------
.../debian-11-cross-s390x.Dockerfile | 122 -----------------
ci/containers/debian-11.Dockerfile | 103 --------------
ci/gitlab/builds.yml | 128 ------------------
ci/gitlab/containers.yml | 72 ----------
ci/manifest.yml | 40 ------
21 files changed, 2351 deletions(-)
delete mode 100644 ci/buildenv/debian-11-cross-aarch64.sh
delete mode 100644 ci/buildenv/debian-11-cross-armv6l.sh
delete mode 100644 ci/buildenv/debian-11-cross-armv7l.sh
delete mode 100644 ci/buildenv/debian-11-cross-i686.sh
delete mode 100644 ci/buildenv/debian-11-cross-mips64el.sh
delete mode 100644 ci/buildenv/debian-11-cross-mipsel.sh
delete mode 100644 ci/buildenv/debian-11-cross-ppc64le.sh
delete mode 100644 ci/buildenv/debian-11-cross-s390x.sh
delete mode 100644 ci/buildenv/debian-11.sh
delete mode 100644 ci/containers/debian-11-cross-aarch64.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-armv6l.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-armv7l.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-i686.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-mips64el.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-mipsel.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-ppc64le.Dockerfile
delete mode 100644 ci/containers/debian-11-cross-s390x.Dockerfile
delete mode 100644 ci/containers/debian-11.Dockerfile
diff --git a/ci/buildenv/debian-11-cross-aarch64.sh b/ci/buildenv/debian-11-cross-aarch64.sh
deleted file mode 100644
index a52164a851..0000000000
--- a/ci/buildenv/debian-11-cross-aarch64.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture arm64
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-aarch64-linux-gnu \
- libacl1-dev:arm64 \
- libapparmor-dev:arm64 \
- libattr1-dev:arm64 \
- libaudit-dev:arm64 \
- libblkid-dev:arm64 \
- libc6-dev:arm64 \
- libcap-ng-dev:arm64 \
- libcurl4-gnutls-dev:arm64 \
- libdevmapper-dev:arm64 \
- libfuse-dev:arm64 \
- libglib2.0-dev:arm64 \
- libglusterfs-dev:arm64 \
- libgnutls28-dev:arm64 \
- libiscsi-dev:arm64 \
- libjson-c-dev:arm64 \
- libnl-3-dev:arm64 \
- libnl-route-3-dev:arm64 \
- libnuma-dev:arm64 \
- libparted-dev:arm64 \
- libpcap0.8-dev:arm64 \
- libpciaccess-dev:arm64 \
- librbd-dev:arm64 \
- libreadline-dev:arm64 \
- libsanlock-dev:arm64 \
- libsasl2-dev:arm64 \
- libselinux1-dev:arm64 \
- libssh-dev:arm64 \
- libssh2-1-dev:arm64 \
- libtirpc-dev:arm64 \
- libudev-dev:arm64 \
- libxen-dev:arm64 \
- libxml2-dev:arm64 \
- systemtap-sdt-dev:arm64
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
-ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'aarch64'\n\
-cpu = 'aarch64'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="aarch64-linux-gnu"
-export MESON_OPTS="--cross-file=aarch64-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-armv6l.sh b/ci/buildenv/debian-11-cross-armv6l.sh
deleted file mode 100644
index caef8e80a4..0000000000
--- a/ci/buildenv/debian-11-cross-armv6l.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture armel
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabi \
- libacl1-dev:armel \
- libapparmor-dev:armel \
- libattr1-dev:armel \
- libaudit-dev:armel \
- libblkid-dev:armel \
- libc6-dev:armel \
- libcap-ng-dev:armel \
- libcurl4-gnutls-dev:armel \
- libdevmapper-dev:armel \
- libfuse-dev:armel \
- libglib2.0-dev:armel \
- libglusterfs-dev:armel \
- libgnutls28-dev:armel \
- libiscsi-dev:armel \
- libjson-c-dev:armel \
- libnl-3-dev:armel \
- libnl-route-3-dev:armel \
- libnuma-dev:armel \
- libparted-dev:armel \
- libpcap0.8-dev:armel \
- libpciaccess-dev:armel \
- librbd-dev:armel \
- libreadline-dev:armel \
- libsanlock-dev:armel \
- libsasl2-dev:armel \
- libselinux1-dev:armel \
- libssh-dev:armel \
- libssh2-1-dev:armel \
- libtirpc-dev:armel \
- libudev-dev:armel \
- libxml2-dev:armel \
- systemtap-sdt-dev:armel
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'arm'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="arm-linux-gnueabi"
-export MESON_OPTS="--cross-file=arm-linux-gnueabi"
diff --git a/ci/buildenv/debian-11-cross-armv7l.sh b/ci/buildenv/debian-11-cross-armv7l.sh
deleted file mode 100644
index 81d92e6386..0000000000
--- a/ci/buildenv/debian-11-cross-armv7l.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture armhf
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabihf \
- libacl1-dev:armhf \
- libapparmor-dev:armhf \
- libattr1-dev:armhf \
- libaudit-dev:armhf \
- libblkid-dev:armhf \
- libc6-dev:armhf \
- libcap-ng-dev:armhf \
- libcurl4-gnutls-dev:armhf \
- libdevmapper-dev:armhf \
- libfuse-dev:armhf \
- libglib2.0-dev:armhf \
- libglusterfs-dev:armhf \
- libgnutls28-dev:armhf \
- libiscsi-dev:armhf \
- libjson-c-dev:armhf \
- libnl-3-dev:armhf \
- libnl-route-3-dev:armhf \
- libnuma-dev:armhf \
- libparted-dev:armhf \
- libpcap0.8-dev:armhf \
- libpciaccess-dev:armhf \
- librbd-dev:armhf \
- libreadline-dev:armhf \
- libsanlock-dev:armhf \
- libsasl2-dev:armhf \
- libselinux1-dev:armhf \
- libssh-dev:armhf \
- libssh2-1-dev:armhf \
- libtirpc-dev:armhf \
- libudev-dev:armhf \
- libxen-dev:armhf \
- libxml2-dev:armhf \
- systemtap-sdt-dev:armhf
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'armhf'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="arm-linux-gnueabihf"
-export MESON_OPTS="--cross-file=arm-linux-gnueabihf"
diff --git a/ci/buildenv/debian-11-cross-i686.sh b/ci/buildenv/debian-11-cross-i686.sh
deleted file mode 100644
index 7ab7242654..0000000000
--- a/ci/buildenv/debian-11-cross-i686.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture i386
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-i686-linux-gnu \
- libacl1-dev:i386 \
- libapparmor-dev:i386 \
- libattr1-dev:i386 \
- libaudit-dev:i386 \
- libblkid-dev:i386 \
- libc6-dev:i386 \
- libcap-ng-dev:i386 \
- libcurl4-gnutls-dev:i386 \
- libdevmapper-dev:i386 \
- libfuse-dev:i386 \
- libglib2.0-dev:i386 \
- libglusterfs-dev:i386 \
- libgnutls28-dev:i386 \
- libiscsi-dev:i386 \
- libjson-c-dev:i386 \
- libnl-3-dev:i386 \
- libnl-route-3-dev:i386 \
- libnuma-dev:i386 \
- libparted-dev:i386 \
- libpcap0.8-dev:i386 \
- libpciaccess-dev:i386 \
- librbd-dev:i386 \
- libreadline-dev:i386 \
- libsanlock-dev:i386 \
- libsasl2-dev:i386 \
- libselinux1-dev:i386 \
- libssh-dev:i386 \
- libssh2-1-dev:i386 \
- libtirpc-dev:i386 \
- libudev-dev:i386 \
- libxml2-dev:i386 \
- systemtap-sdt-dev:i386
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/i686-linux-gnu-gcc'\n\
-ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/i686-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'x86'\n\
-cpu = 'i686'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="i686-linux-gnu"
-export MESON_OPTS="--cross-file=i686-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-mips64el.sh b/ci/buildenv/debian-11-cross-mips64el.sh
deleted file mode 100644
index f983ab2981..0000000000
--- a/ci/buildenv/debian-11-cross-mips64el.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture mips64el
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-mips64el-linux-gnuabi64 \
- libacl1-dev:mips64el \
- libapparmor-dev:mips64el \
- libattr1-dev:mips64el \
- libaudit-dev:mips64el \
- libblkid-dev:mips64el \
- libc6-dev:mips64el \
- libcap-ng-dev:mips64el \
- libcurl4-gnutls-dev:mips64el \
- libdevmapper-dev:mips64el \
- libfuse-dev:mips64el \
- libglib2.0-dev:mips64el \
- libglusterfs-dev:mips64el \
- libgnutls28-dev:mips64el \
- libiscsi-dev:mips64el \
- libjson-c-dev:mips64el \
- libnl-3-dev:mips64el \
- libnl-route-3-dev:mips64el \
- libnuma-dev:mips64el \
- libparted-dev:mips64el \
- libpcap0.8-dev:mips64el \
- libpciaccess-dev:mips64el \
- librbd-dev:mips64el \
- libreadline-dev:mips64el \
- libsanlock-dev:mips64el \
- libsasl2-dev:mips64el \
- libselinux1-dev:mips64el \
- libssh-dev:mips64el \
- libssh2-1-dev:mips64el \
- libtirpc-dev:mips64el \
- libudev-dev:mips64el \
- libxml2-dev:mips64el \
- systemtap-sdt-dev:mips64el
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
-ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
-strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
-pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips64'\n\
-cpu = 'mips64el'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="mips64el-linux-gnuabi64"
-export MESON_OPTS="--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/buildenv/debian-11-cross-mipsel.sh b/ci/buildenv/debian-11-cross-mipsel.sh
deleted file mode 100644
index 55a99b861f..0000000000
--- a/ci/buildenv/debian-11-cross-mipsel.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture mipsel
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-mipsel-linux-gnu \
- libacl1-dev:mipsel \
- libapparmor-dev:mipsel \
- libattr1-dev:mipsel \
- libaudit-dev:mipsel \
- libblkid-dev:mipsel \
- libc6-dev:mipsel \
- libcap-ng-dev:mipsel \
- libcurl4-gnutls-dev:mipsel \
- libdevmapper-dev:mipsel \
- libfuse-dev:mipsel \
- libglib2.0-dev:mipsel \
- libglusterfs-dev:mipsel \
- libgnutls28-dev:mipsel \
- libiscsi-dev:mipsel \
- libjson-c-dev:mipsel \
- libnl-3-dev:mipsel \
- libnl-route-3-dev:mipsel \
- libnuma-dev:mipsel \
- libparted-dev:mipsel \
- libpcap0.8-dev:mipsel \
- libpciaccess-dev:mipsel \
- librbd-dev:mipsel \
- libreadline-dev:mipsel \
- libsanlock-dev:mipsel \
- libsasl2-dev:mipsel \
- libselinux1-dev:mipsel \
- libssh-dev:mipsel \
- libssh2-1-dev:mipsel \
- libtirpc-dev:mipsel \
- libudev-dev:mipsel \
- libxml2-dev:mipsel \
- systemtap-sdt-dev:mipsel
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
-ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips'\n\
-cpu = 'mipsel'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="mipsel-linux-gnu"
-export MESON_OPTS="--cross-file=mipsel-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-ppc64le.sh b/ci/buildenv/debian-11-cross-ppc64le.sh
deleted file mode 100644
index b7d26e67fd..0000000000
--- a/ci/buildenv/debian-11-cross-ppc64le.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture ppc64el
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-powerpc64le-linux-gnu \
- libacl1-dev:ppc64el \
- libapparmor-dev:ppc64el \
- libattr1-dev:ppc64el \
- libaudit-dev:ppc64el \
- libblkid-dev:ppc64el \
- libc6-dev:ppc64el \
- libcap-ng-dev:ppc64el \
- libcurl4-gnutls-dev:ppc64el \
- libdevmapper-dev:ppc64el \
- libfuse-dev:ppc64el \
- libglib2.0-dev:ppc64el \
- libglusterfs-dev:ppc64el \
- libgnutls28-dev:ppc64el \
- libiscsi-dev:ppc64el \
- libjson-c-dev:ppc64el \
- libnl-3-dev:ppc64el \
- libnl-route-3-dev:ppc64el \
- libnuma-dev:ppc64el \
- libparted-dev:ppc64el \
- libpcap0.8-dev:ppc64el \
- libpciaccess-dev:ppc64el \
- librbd-dev:ppc64el \
- libreadline-dev:ppc64el \
- libsanlock-dev:ppc64el \
- libsasl2-dev:ppc64el \
- libselinux1-dev:ppc64el \
- libssh-dev:ppc64el \
- libssh2-1-dev:ppc64el \
- libtirpc-dev:ppc64el \
- libudev-dev:ppc64el \
- libxml2-dev:ppc64el \
- systemtap-sdt-dev:ppc64el
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
-ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'ppc64'\n\
-cpu = 'powerpc64le'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="powerpc64le-linux-gnu"
-export MESON_OPTS="--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/buildenv/debian-11-cross-s390x.sh b/ci/buildenv/debian-11-cross-s390x.sh
deleted file mode 100644
index ac259c5625..0000000000
--- a/ci/buildenv/debian-11-cross-s390x.sh
+++ /dev/null
@@ -1,116 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- export DEBIAN_FRONTEND=noninteractive
- dpkg --add-architecture s390x
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y dpkg-dev
- apt-get install --no-install-recommends -y \
- gcc-s390x-linux-gnu \
- libacl1-dev:s390x \
- libapparmor-dev:s390x \
- libattr1-dev:s390x \
- libaudit-dev:s390x \
- libblkid-dev:s390x \
- libc6-dev:s390x \
- libcap-ng-dev:s390x \
- libcurl4-gnutls-dev:s390x \
- libdevmapper-dev:s390x \
- libfuse-dev:s390x \
- libglib2.0-dev:s390x \
- libglusterfs-dev:s390x \
- libgnutls28-dev:s390x \
- libiscsi-dev:s390x \
- libjson-c-dev:s390x \
- libnl-3-dev:s390x \
- libnl-route-3-dev:s390x \
- libnuma-dev:s390x \
- libparted-dev:s390x \
- libpcap0.8-dev:s390x \
- libpciaccess-dev:s390x \
- librbd-dev:s390x \
- libreadline-dev:s390x \
- libsanlock-dev:s390x \
- libsasl2-dev:s390x \
- libselinux1-dev:s390x \
- libssh-dev:s390x \
- libssh2-1-dev:s390x \
- libtirpc-dev:s390x \
- libudev-dev:s390x \
- libxml2-dev:s390x \
- systemtap-sdt-dev:s390x
- mkdir -p /usr/local/share/meson/cross
- printf "[binaries]\n\
-c = '/usr/bin/s390x-linux-gnu-gcc'\n\
-ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/s390x-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 's390x'\n\
-cpu = 's390x'\n\
-endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
-
-export ABI="s390x-linux-gnu"
-export MESON_OPTS="--cross-file=s390x-linux-gnu"
diff --git a/ci/buildenv/debian-11.sh b/ci/buildenv/debian-11.sh
deleted file mode 100644
index affdf6e445..0000000000
--- a/ci/buildenv/debian-11.sh
+++ /dev/null
@@ -1,100 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-function install_buildenv() {
- export DEBIAN_FRONTEND=noninteractive
- apt-get update
- apt-get dist-upgrade -y
- apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- clang \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gcc \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libacl1-dev \
- libapparmor-dev \
- libattr1-dev \
- libaudit-dev \
- libblkid-dev \
- libc6-dev \
- libcap-ng-dev \
- libclang-dev \
- libcurl4-gnutls-dev \
- libdevmapper-dev \
- libfuse-dev \
- libglib2.0-dev \
- libglusterfs-dev \
- libgnutls28-dev \
- libiscsi-dev \
- libjson-c-dev \
- libnetcf-dev \
- libnl-3-dev \
- libnl-route-3-dev \
- libnuma-dev \
- libparted-dev \
- libpcap0.8-dev \
- libpciaccess-dev \
- librbd-dev \
- libreadline-dev \
- libsanlock-dev \
- libsasl2-dev \
- libselinux1-dev \
- libssh-dev \
- libssh2-1-dev \
- libtirpc-dev \
- libudev-dev \
- libxen-dev \
- libxml2-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- systemtap-sdt-dev \
- wireshark-dev \
- xsltproc
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen
- dpkg-reconfigure locales
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
- mkdir -p /usr/libexec/ccache-wrappers
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-}
-
-export CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
-export LANG="en_US.UTF-8"
-export MAKE="/usr/bin/make"
-export NINJA="/usr/bin/ninja"
-export PYTHON="/usr/bin/python3"
diff --git a/ci/containers/debian-11-cross-aarch64.Dockerfile b/ci/containers/debian-11-cross-aarch64.Dockerfile
deleted file mode 100644
index 79c359f9fa..0000000000
--- a/ci/containers/debian-11-cross-aarch64.Dockerfile
+++ /dev/null
@@ -1,123 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture arm64 && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-aarch64-linux-gnu \
- libacl1-dev:arm64 \
- libapparmor-dev:arm64 \
- libattr1-dev:arm64 \
- libaudit-dev:arm64 \
- libblkid-dev:arm64 \
- libc6-dev:arm64 \
- libcap-ng-dev:arm64 \
- libcurl4-gnutls-dev:arm64 \
- libdevmapper-dev:arm64 \
- libfuse-dev:arm64 \
- libglib2.0-dev:arm64 \
- libglusterfs-dev:arm64 \
- libgnutls28-dev:arm64 \
- libiscsi-dev:arm64 \
- libjson-c-dev:arm64 \
- libnl-3-dev:arm64 \
- libnl-route-3-dev:arm64 \
- libnuma-dev:arm64 \
- libparted-dev:arm64 \
- libpcap0.8-dev:arm64 \
- libpciaccess-dev:arm64 \
- librbd-dev:arm64 \
- libreadline-dev:arm64 \
- libsanlock-dev:arm64 \
- libsasl2-dev:arm64 \
- libselinux1-dev:arm64 \
- libssh-dev:arm64 \
- libssh2-1-dev:arm64 \
- libtirpc-dev:arm64 \
- libudev-dev:arm64 \
- libxen-dev:arm64 \
- libxml2-dev:arm64 \
- systemtap-sdt-dev:arm64 && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/aarch64-linux-gnu-gcc'\n\
-ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/aarch64-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'aarch64'\n\
-cpu = 'aarch64'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
-
-ENV ABI "aarch64-linux-gnu"
-ENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
diff --git a/ci/containers/debian-11-cross-armv6l.Dockerfile b/ci/containers/debian-11-cross-armv6l.Dockerfile
deleted file mode 100644
index 27bd6c578b..0000000000
--- a/ci/containers/debian-11-cross-armv6l.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture armel && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabi \
- libacl1-dev:armel \
- libapparmor-dev:armel \
- libattr1-dev:armel \
- libaudit-dev:armel \
- libblkid-dev:armel \
- libc6-dev:armel \
- libcap-ng-dev:armel \
- libcurl4-gnutls-dev:armel \
- libdevmapper-dev:armel \
- libfuse-dev:armel \
- libglib2.0-dev:armel \
- libglusterfs-dev:armel \
- libgnutls28-dev:armel \
- libiscsi-dev:armel \
- libjson-c-dev:armel \
- libnl-3-dev:armel \
- libnl-route-3-dev:armel \
- libnuma-dev:armel \
- libparted-dev:armel \
- libpcap0.8-dev:armel \
- libpciaccess-dev:armel \
- librbd-dev:armel \
- libreadline-dev:armel \
- libsanlock-dev:armel \
- libsasl2-dev:armel \
- libselinux1-dev:armel \
- libssh-dev:armel \
- libssh2-1-dev:armel \
- libtirpc-dev:armel \
- libudev-dev:armel \
- libxml2-dev:armel \
- systemtap-sdt-dev:armel && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'arm'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabi && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc
-
-ENV ABI "arm-linux-gnueabi"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
diff --git a/ci/containers/debian-11-cross-armv7l.Dockerfile b/ci/containers/debian-11-cross-armv7l.Dockerfile
deleted file mode 100644
index 3b413673a6..0000000000
--- a/ci/containers/debian-11-cross-armv7l.Dockerfile
+++ /dev/null
@@ -1,123 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture armhf && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-arm-linux-gnueabihf \
- libacl1-dev:armhf \
- libapparmor-dev:armhf \
- libattr1-dev:armhf \
- libaudit-dev:armhf \
- libblkid-dev:armhf \
- libc6-dev:armhf \
- libcap-ng-dev:armhf \
- libcurl4-gnutls-dev:armhf \
- libdevmapper-dev:armhf \
- libfuse-dev:armhf \
- libglib2.0-dev:armhf \
- libglusterfs-dev:armhf \
- libgnutls28-dev:armhf \
- libiscsi-dev:armhf \
- libjson-c-dev:armhf \
- libnl-3-dev:armhf \
- libnl-route-3-dev:armhf \
- libnuma-dev:armhf \
- libparted-dev:armhf \
- libpcap0.8-dev:armhf \
- libpciaccess-dev:armhf \
- librbd-dev:armhf \
- libreadline-dev:armhf \
- libsanlock-dev:armhf \
- libsasl2-dev:armhf \
- libselinux1-dev:armhf \
- libssh-dev:armhf \
- libssh2-1-dev:armhf \
- libtirpc-dev:armhf \
- libudev-dev:armhf \
- libxen-dev:armhf \
- libxml2-dev:armhf \
- systemtap-sdt-dev:armhf && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\
-ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\
-strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\
-pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'arm'\n\
-cpu = 'armhf'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-gcc
-
-ENV ABI "arm-linux-gnueabihf"
-ENV MESON_OPTS "--cross-file=arm-linux-gnueabihf"
diff --git a/ci/containers/debian-11-cross-i686.Dockerfile b/ci/containers/debian-11-cross-i686.Dockerfile
deleted file mode 100644
index ab5173f2f1..0000000000
--- a/ci/containers/debian-11-cross-i686.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture i386 && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-i686-linux-gnu \
- libacl1-dev:i386 \
- libapparmor-dev:i386 \
- libattr1-dev:i386 \
- libaudit-dev:i386 \
- libblkid-dev:i386 \
- libc6-dev:i386 \
- libcap-ng-dev:i386 \
- libcurl4-gnutls-dev:i386 \
- libdevmapper-dev:i386 \
- libfuse-dev:i386 \
- libglib2.0-dev:i386 \
- libglusterfs-dev:i386 \
- libgnutls28-dev:i386 \
- libiscsi-dev:i386 \
- libjson-c-dev:i386 \
- libnl-3-dev:i386 \
- libnl-route-3-dev:i386 \
- libnuma-dev:i386 \
- libparted-dev:i386 \
- libpcap0.8-dev:i386 \
- libpciaccess-dev:i386 \
- librbd-dev:i386 \
- libreadline-dev:i386 \
- libsanlock-dev:i386 \
- libsasl2-dev:i386 \
- libselinux1-dev:i386 \
- libssh-dev:i386 \
- libssh2-1-dev:i386 \
- libtirpc-dev:i386 \
- libudev-dev:i386 \
- libxml2-dev:i386 \
- systemtap-sdt-dev:i386 && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/i686-linux-gnu-gcc'\n\
-ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/i686-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'x86'\n\
-cpu = 'i686'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-gcc
-
-ENV ABI "i686-linux-gnu"
-ENV MESON_OPTS "--cross-file=i686-linux-gnu"
diff --git a/ci/containers/debian-11-cross-mips64el.Dockerfile b/ci/containers/debian-11-cross-mips64el.Dockerfile
deleted file mode 100644
index 04fa68f688..0000000000
--- a/ci/containers/debian-11-cross-mips64el.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture mips64el && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-mips64el-linux-gnuabi64 \
- libacl1-dev:mips64el \
- libapparmor-dev:mips64el \
- libattr1-dev:mips64el \
- libaudit-dev:mips64el \
- libblkid-dev:mips64el \
- libc6-dev:mips64el \
- libcap-ng-dev:mips64el \
- libcurl4-gnutls-dev:mips64el \
- libdevmapper-dev:mips64el \
- libfuse-dev:mips64el \
- libglib2.0-dev:mips64el \
- libglusterfs-dev:mips64el \
- libgnutls28-dev:mips64el \
- libiscsi-dev:mips64el \
- libjson-c-dev:mips64el \
- libnl-3-dev:mips64el \
- libnl-route-3-dev:mips64el \
- libnuma-dev:mips64el \
- libparted-dev:mips64el \
- libpcap0.8-dev:mips64el \
- libpciaccess-dev:mips64el \
- librbd-dev:mips64el \
- libreadline-dev:mips64el \
- libsanlock-dev:mips64el \
- libsasl2-dev:mips64el \
- libselinux1-dev:mips64el \
- libssh-dev:mips64el \
- libssh2-1-dev:mips64el \
- libtirpc-dev:mips64el \
- libudev-dev:mips64el \
- libxml2-dev:mips64el \
- systemtap-sdt-dev:mips64el && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\
-ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\
-strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\
-pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips64'\n\
-cpu = 'mips64el'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-gcc
-
-ENV ABI "mips64el-linux-gnuabi64"
-ENV MESON_OPTS "--cross-file=mips64el-linux-gnuabi64"
diff --git a/ci/containers/debian-11-cross-mipsel.Dockerfile b/ci/containers/debian-11-cross-mipsel.Dockerfile
deleted file mode 100644
index 558382ad25..0000000000
--- a/ci/containers/debian-11-cross-mipsel.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture mipsel && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-mipsel-linux-gnu \
- libacl1-dev:mipsel \
- libapparmor-dev:mipsel \
- libattr1-dev:mipsel \
- libaudit-dev:mipsel \
- libblkid-dev:mipsel \
- libc6-dev:mipsel \
- libcap-ng-dev:mipsel \
- libcurl4-gnutls-dev:mipsel \
- libdevmapper-dev:mipsel \
- libfuse-dev:mipsel \
- libglib2.0-dev:mipsel \
- libglusterfs-dev:mipsel \
- libgnutls28-dev:mipsel \
- libiscsi-dev:mipsel \
- libjson-c-dev:mipsel \
- libnl-3-dev:mipsel \
- libnl-route-3-dev:mipsel \
- libnuma-dev:mipsel \
- libparted-dev:mipsel \
- libpcap0.8-dev:mipsel \
- libpciaccess-dev:mipsel \
- librbd-dev:mipsel \
- libreadline-dev:mipsel \
- libsanlock-dev:mipsel \
- libsasl2-dev:mipsel \
- libselinux1-dev:mipsel \
- libssh-dev:mipsel \
- libssh2-1-dev:mipsel \
- libtirpc-dev:mipsel \
- libudev-dev:mipsel \
- libxml2-dev:mipsel \
- systemtap-sdt-dev:mipsel && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/mipsel-linux-gnu-gcc'\n\
-ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/mipsel-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'mips'\n\
-cpu = 'mipsel'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/mipsel-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-gcc
-
-ENV ABI "mipsel-linux-gnu"
-ENV MESON_OPTS "--cross-file=mipsel-linux-gnu"
diff --git a/ci/containers/debian-11-cross-ppc64le.Dockerfile b/ci/containers/debian-11-cross-ppc64le.Dockerfile
deleted file mode 100644
index ed68e8f0af..0000000000
--- a/ci/containers/debian-11-cross-ppc64le.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture ppc64el && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-powerpc64le-linux-gnu \
- libacl1-dev:ppc64el \
- libapparmor-dev:ppc64el \
- libattr1-dev:ppc64el \
- libaudit-dev:ppc64el \
- libblkid-dev:ppc64el \
- libc6-dev:ppc64el \
- libcap-ng-dev:ppc64el \
- libcurl4-gnutls-dev:ppc64el \
- libdevmapper-dev:ppc64el \
- libfuse-dev:ppc64el \
- libglib2.0-dev:ppc64el \
- libglusterfs-dev:ppc64el \
- libgnutls28-dev:ppc64el \
- libiscsi-dev:ppc64el \
- libjson-c-dev:ppc64el \
- libnl-3-dev:ppc64el \
- libnl-route-3-dev:ppc64el \
- libnuma-dev:ppc64el \
- libparted-dev:ppc64el \
- libpcap0.8-dev:ppc64el \
- libpciaccess-dev:ppc64el \
- librbd-dev:ppc64el \
- libreadline-dev:ppc64el \
- libsanlock-dev:ppc64el \
- libsasl2-dev:ppc64el \
- libselinux1-dev:ppc64el \
- libssh-dev:ppc64el \
- libssh2-1-dev:ppc64el \
- libtirpc-dev:ppc64el \
- libudev-dev:ppc64el \
- libxml2-dev:ppc64el \
- systemtap-sdt-dev:ppc64el && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\
-ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 'ppc64'\n\
-cpu = 'powerpc64le'\n\
-endian = 'little'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-gcc
-
-ENV ABI "powerpc64le-linux-gnu"
-ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
diff --git a/ci/containers/debian-11-cross-s390x.Dockerfile b/ci/containers/debian-11-cross-s390x.Dockerfile
deleted file mode 100644
index 62791ac154..0000000000
--- a/ci/containers/debian-11-cross-s390x.Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libclang-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- dpkg --add-architecture s390x && \
- eatmydata apt-get update && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
- eatmydata apt-get install --no-install-recommends -y \
- gcc-s390x-linux-gnu \
- libacl1-dev:s390x \
- libapparmor-dev:s390x \
- libattr1-dev:s390x \
- libaudit-dev:s390x \
- libblkid-dev:s390x \
- libc6-dev:s390x \
- libcap-ng-dev:s390x \
- libcurl4-gnutls-dev:s390x \
- libdevmapper-dev:s390x \
- libfuse-dev:s390x \
- libglib2.0-dev:s390x \
- libglusterfs-dev:s390x \
- libgnutls28-dev:s390x \
- libiscsi-dev:s390x \
- libjson-c-dev:s390x \
- libnl-3-dev:s390x \
- libnl-route-3-dev:s390x \
- libnuma-dev:s390x \
- libparted-dev:s390x \
- libpcap0.8-dev:s390x \
- libpciaccess-dev:s390x \
- librbd-dev:s390x \
- libreadline-dev:s390x \
- libsanlock-dev:s390x \
- libsasl2-dev:s390x \
- libselinux1-dev:s390x \
- libssh-dev:s390x \
- libssh2-1-dev:s390x \
- libtirpc-dev:s390x \
- libudev-dev:s390x \
- libxml2-dev:s390x \
- systemtap-sdt-dev:s390x && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- mkdir -p /usr/local/share/meson/cross && \
- printf "[binaries]\n\
-c = '/usr/bin/s390x-linux-gnu-gcc'\n\
-ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\
-strip = '/usr/bin/s390x-linux-gnu-strip'\n\
-pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\
-\n\
-[host_machine]\n\
-system = 'linux'\n\
-cpu_family = 's390x'\n\
-cpu = 's390x'\n\
-endian = 'big'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-gcc
-
-ENV ABI "s390x-linux-gnu"
-ENV MESON_OPTS "--cross-file=s390x-linux-gnu"
diff --git a/ci/containers/debian-11.Dockerfile b/ci/containers/debian-11.Dockerfile
deleted file mode 100644
index 48c59e3aab..0000000000
--- a/ci/containers/debian-11.Dockerfile
+++ /dev/null
@@ -1,103 +0,0 @@
-# THIS FILE WAS AUTO-GENERATED
-#
-# $ lcitool manifest ci/manifest.yml
-#
-# https://gitlab.com/libvirt/libvirt-ci
-
-FROM docker.io/library/debian:11-slim
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update && \
- apt-get install -y eatmydata && \
- eatmydata apt-get dist-upgrade -y && \
- eatmydata apt-get install --no-install-recommends -y \
- augeas-lenses \
- augeas-tools \
- bash-completion \
- black \
- ca-certificates \
- ccache \
- clang \
- codespell \
- cpp \
- diffutils \
- dwarves \
- ebtables \
- flake8 \
- gcc \
- gettext \
- git \
- grep \
- iproute2 \
- iptables \
- kmod \
- libacl1-dev \
- libapparmor-dev \
- libattr1-dev \
- libaudit-dev \
- libblkid-dev \
- libc6-dev \
- libcap-ng-dev \
- libclang-dev \
- libcurl4-gnutls-dev \
- libdevmapper-dev \
- libfuse-dev \
- libglib2.0-dev \
- libglusterfs-dev \
- libgnutls28-dev \
- libiscsi-dev \
- libjson-c-dev \
- libnetcf-dev \
- libnl-3-dev \
- libnl-route-3-dev \
- libnuma-dev \
- libparted-dev \
- libpcap0.8-dev \
- libpciaccess-dev \
- librbd-dev \
- libreadline-dev \
- libsanlock-dev \
- libsasl2-dev \
- libselinux1-dev \
- libssh-dev \
- libssh2-1-dev \
- libtirpc-dev \
- libudev-dev \
- libxen-dev \
- libxml2-dev \
- libxml2-utils \
- locales \
- lvm2 \
- make \
- meson \
- nfs-common \
- ninja-build \
- numad \
- open-iscsi \
- perl-base \
- pkgconf \
- policykit-1 \
- python3 \
- python3-docutils \
- python3-pytest \
- qemu-utils \
- sed \
- systemtap-sdt-dev \
- wireshark-dev \
- xsltproc && \
- eatmydata apt-get autoremove -y && \
- eatmydata apt-get autoclean -y && \
- sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
- dpkg-reconfigure locales && \
- rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
- dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
- mkdir -p /usr/libexec/ccache-wrappers && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
- ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
-
-ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
-ENV LANG "en_US.UTF-8"
-ENV MAKE "/usr/bin/make"
-ENV NINJA "/usr/bin/ninja"
-ENV PYTHON "/usr/bin/python3"
diff --git a/ci/gitlab/builds.yml b/ci/gitlab/builds.yml
index 0534a2278d..893843cb64 100644
--- a/ci/gitlab/builds.yml
+++ b/ci/gitlab/builds.yml
@@ -70,30 +70,6 @@ x86_64-centos-stream-9:
- libvirt-rpms
-x86_64-debian-11:
- extends: .native_build_job
- needs:
- - job: x86_64-debian-11-container
- optional: true
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-x86_64-debian-11-clang:
- extends: .native_build_job
- needs:
- - job: x86_64-debian-11-container
- optional: true
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
x86_64-debian-12:
extends: .native_build_job
needs:
@@ -246,110 +222,6 @@ x86_64-ubuntu-2404-clang:
# Cross build jobs
-aarch64-debian-11:
- extends: .cross_build_job
- needs:
- - job: aarch64-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: aarch64
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-armv6l-debian-11:
- extends: .cross_build_job
- needs:
- - job: armv6l-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: armv6l
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-armv7l-debian-11:
- extends: .cross_build_job
- needs:
- - job: armv7l-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: armv7l
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-i686-debian-11:
- extends: .cross_build_job
- needs:
- - job: i686-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: i686
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-mips64el-debian-11:
- extends: .cross_build_job
- needs:
- - job: mips64el-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: mips64el
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-mipsel-debian-11:
- extends: .cross_build_job
- needs:
- - job: mipsel-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: mipsel
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-ppc64le-debian-11:
- extends: .cross_build_job
- needs:
- - job: ppc64le-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: ppc64le
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
-s390x-debian-11:
- extends: .cross_build_job
- needs:
- - job: s390x-debian-11-container
- optional: true
- allow_failure: false
- variables:
- CROSS: s390x
- JOB_OPTIONAL: 1
- NAME: debian-11
- TARGET_BASE_IMAGE: docker.io/library/debian:11-slim
-
-
aarch64-debian-12:
extends: .cross_build_job
needs:
diff --git a/ci/gitlab/containers.yml b/ci/gitlab/containers.yml
index 0e86062652..f88a39a1f8 100644
--- a/ci/gitlab/containers.yml
+++ b/ci/gitlab/containers.yml
@@ -35,14 +35,6 @@ x86_64-centos-stream-9-container:
NAME: centos-stream-9
-x86_64-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11
-
-
x86_64-debian-12-container:
extends: .container_job
allow_failure: false
@@ -109,70 +101,6 @@ x86_64-ubuntu-2404-container:
# Cross container jobs
-aarch64-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-aarch64
-
-
-armv6l-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-armv6l
-
-
-armv7l-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-armv7l
-
-
-i686-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-i686
-
-
-mips64el-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-mips64el
-
-
-mipsel-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-mipsel
-
-
-ppc64le-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-ppc64le
-
-
-s390x-debian-11-container:
- extends: .container_job
- allow_failure: false
- variables:
- JOB_OPTIONAL: 1
- NAME: debian-11-cross-s390x
-
-
aarch64-debian-12-container:
extends: .container_job
allow_failure: false
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 3bfebed96c..3b06f4827e 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -34,46 +34,6 @@ targets:
paths:
- libvirt-rpms
- debian-11:
- jobs:
- - arch: x86_64
- builds: false
-
- - arch: x86_64
- suffix: -clang
- builds: false
-
- - arch: aarch64
- containers: false
- builds: false
-
- - arch: armv6l
- containers: false
- builds: false
-
- - arch: armv7l
- builds: false
-
- - arch: i686
- containers: false
- builds: false
-
- - arch: mips64el
- containers: false
- builds: false
-
- - arch: mipsel
- containers: false
- builds: false
-
- - arch: ppc64le
- containers: false
- builds: false
-
- - arch: s390x
- containers: false
- builds: false
-
debian-12:
jobs:
- arch: x86_64
--
2.48.1
2
1
[PATCH] util: netdevvlan: Change return type of virNetDevVlanCopy to void
by Alexander Kuznetsov 07 Mar '25
by Alexander Kuznetsov 07 Mar '25
07 Mar '25
This function return value is invariant since 1022e0ee, so change
its type and remove all dependent checks.
Found by Linux Verification Center (linuxtesting.org) with Svace.
Reported-by: Alexander Rudyuk <a.rudyuk(a)fobos-nt.ru>
Signed-off-by: Alexander Kuznetsov <kuznetsovam(a)altlinux.org>
---
src/conf/domain_conf.c | 9 +++------
src/network/bridge_driver.c | 4 +++-
src/util/virnetdevvlan.c | 6 +++---
src/util/virnetdevvlan.h | 2 +-
4 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3f88a77a8f..6f49ee507a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -30533,8 +30533,7 @@ virDomainNetDefToNetworkPort(virDomainDef *dom,
if (virNetDevBandwidthCopy(&port->bandwidth, iface->bandwidth) < 0)
return NULL;
- if (virNetDevVlanCopy(&port->vlan, &iface->vlan) < 0)
- return NULL;
+ virNetDevVlanCopy(&port->vlan, &iface->vlan);
port->isolatedPort = iface->isolatedPort;
port->trustGuestRxFilters = iface->trustGuestRxFilters;
@@ -30611,8 +30610,7 @@ virDomainNetDefActualFromNetworkPort(virDomainNetDef *iface,
if (virNetDevBandwidthCopy(&actual->bandwidth, port->bandwidth) < 0)
goto error;
- if (virNetDevVlanCopy(&actual->vlan, &port->vlan) < 0)
- goto error;
+ virNetDevVlanCopy(&actual->vlan, &port->vlan);
actual->isolatedPort = port->isolatedPort;
actual->class_id = port->class_id;
@@ -30729,8 +30727,7 @@ virDomainNetDefActualToNetworkPort(virDomainDef *dom,
if (virNetDevBandwidthCopy(&port->bandwidth, actual->bandwidth) < 0)
return NULL;
- if (virNetDevVlanCopy(&port->vlan, &actual->vlan) < 0)
- return NULL;
+ virNetDevVlanCopy(&port->vlan, &actual->vlan);
port->isolatedPort = actual->isolatedPort;
port->class_id = actual->class_id;
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 8f47ef2574..668870a9ee 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3973,8 +3973,10 @@ networkAllocatePort(virNetworkObj *obj,
else if (netdef->vlan.nTags > 0)
vlan = &netdef->vlan;
- if (vlan && virNetDevVlanCopy(&port->vlan, vlan) < 0)
+ if (vlan) {
+ virNetDevVlanCopy(&port->vlan, vlan);
return -1;
+ }
}
if (!port->trustGuestRxFilters) {
diff --git a/src/util/virnetdevvlan.c b/src/util/virnetdevvlan.c
index 67daa5d3b4..e8f572efd2 100644
--- a/src/util/virnetdevvlan.c
+++ b/src/util/virnetdevvlan.c
@@ -76,11 +76,11 @@ virNetDevVlanEqual(const virNetDevVlan *a, const virNetDevVlan *b)
* If src is NULL, dst will have nTags set to 0.
* dst is assumed to be empty on entry.
*/
-int
+void
virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src)
{
if (!src || src->nTags == 0)
- return 0;
+ return;
dst->tag = g_new0(unsigned int, src->nTags);
dst->trunk = src->trunk;
@@ -88,5 +88,5 @@ virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src)
dst->nativeMode = src->nativeMode;
dst->nativeTag = src->nativeTag;
memcpy(dst->tag, src->tag, src->nTags * sizeof(*src->tag));
- return 0;
+ return;
}
diff --git a/src/util/virnetdevvlan.h b/src/util/virnetdevvlan.h
index 228d270869..fd2f8023f5 100644
--- a/src/util/virnetdevvlan.h
+++ b/src/util/virnetdevvlan.h
@@ -42,6 +42,6 @@ struct _virNetDevVlan {
void virNetDevVlanClear(virNetDevVlan *vlan);
void virNetDevVlanFree(virNetDevVlan *vlan);
int virNetDevVlanEqual(const virNetDevVlan *a, const virNetDevVlan *b);
-int virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src);
+void virNetDevVlanCopy(virNetDevVlan *dst, const virNetDevVlan *src);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNetDevVlan, virNetDevVlanFree);
--
2.42.4
2
5
07 Mar '25
Sponsored by: Future Crew, LLC
Signed-off-by: Alexander Shursha <kekek2(a)ya.ru>
---
src/meson.build | 1 +
src/util/virpci.c | 464 ++++++++++------------------------------
tests/qemuhotplugtest.c | 11 +-
tests/qemumemlocktest.c | 9 +
tests/qemuxmlconftest.c | 9 +
tests/virpcimock.c | 21 +-
6 files changed, 160 insertions(+), 355 deletions(-)
diff --git a/src/meson.build b/src/meson.build
index 9413192a55..39788ac4d7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -411,6 +411,7 @@ libvirt_lib = shared_library(
dtrace_gen_objects,
dependencies: [
src_dep,
+ pciaccess_dep
],
link_args: libvirt_link_args,
link_whole: [
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 90617e69c6..3f95fa2b3f 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <pciaccess.h>
#ifdef __linux__
# include <sys/utsname.h>
@@ -72,7 +73,7 @@ struct _virPCIDevice {
char *name; /* domain:bus:slot.function */
char id[PCI_ID_LEN]; /* product vendor */
- char *path;
+ struct pci_device *device;
/* The driver:domain which uses the device */
char *used_by_drvname;
@@ -359,121 +360,6 @@ virPCIDeviceGetCurrentDriverNameAndType(virPCIDevice *dev,
}
-static int
-virPCIDeviceConfigOpenInternal(virPCIDevice *dev, bool readonly, bool fatal)
-{
- int fd;
-
- fd = open(dev->path, readonly ? O_RDONLY : O_RDWR);
-
- if (fd < 0) {
- if (fatal) {
- virReportSystemError(errno,
- _("Failed to open config space file '%1$s'"),
- dev->path);
- } else {
- VIR_WARN("Failed to open config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
- return -1;
- }
-
- VIR_DEBUG("%s %s: opened %s", dev->id, dev->name, dev->path);
- return fd;
-}
-
-static int
-virPCIDeviceConfigOpen(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, true);
-}
-
-static int
-virPCIDeviceConfigOpenTry(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, false);
-}
-
-static int
-virPCIDeviceConfigOpenWrite(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, false, true);
-}
-
-static void
-virPCIDeviceConfigClose(virPCIDevice *dev, int cfgfd)
-{
- if (VIR_CLOSE(cfgfd) < 0) {
- VIR_WARN("Failed to close config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
-}
-
-
-static int
-virPCIDeviceRead(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- memset(buf, 0, buflen);
- errno = 0;
-
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- saferead(cfgfd, buf, buflen) != buflen) {
- VIR_DEBUG("Failed to read %u bytes at %u from '%s' : %s",
- buflen, pos, dev->path, g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-
-/**
- * virPCIDeviceReadN:
- * @dev: virPCIDevice object (used only to log name of config file)
- * @cfgfd: open file descriptor for device config file in sysfs
- * @pos: byte offset in the file to read from
- *
- * read "N" (where "N" is "8", "16", or "32", and appears at the end
- * of the function name) bytes from a PCI device's already-opened
- * sysfs config file and return them as the return value from the
- * function.
- *
- * Returns the value at @pos in the file, or 0 if there was an
- * error. NB: since 0 could be a valid value, occurrence of an error
- * must be determined by examining errno. errno is always reset to 0
- * before the seek/read is attempted (see virPCIDeviceRead()), so if
- * errno != 0 on return from one of these functions, then either the
- * seek or the read operation failed for some reason. If errno == 0
- * and the return value is 0, then the config file really does contain
- * the value 0 at @pos.
- */
-static uint8_t
-virPCIDeviceRead8(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf;
- virPCIDeviceRead(dev, cfgfd, pos, &buf, sizeof(buf));
- return buf;
-}
-
-static uint16_t
-virPCIDeviceRead16(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[2];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8);
-}
-
-static uint32_t
-virPCIDeviceRead32(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[4];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
-}
-
static int
virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
{
@@ -499,36 +385,6 @@ virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
return 0;
}
-static int
-virPCIDeviceWrite(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- safewrite(cfgfd, buf, buflen) != buflen) {
- VIR_WARN("Failed to write to '%s' : %s", dev->path,
- g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-static void
-virPCIDeviceWrite16(virPCIDevice *dev, int cfgfd, unsigned int pos, uint16_t val)
-{
- uint8_t buf[2] = { (val >> 0), (val >> 8) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
-static void
-virPCIDeviceWrite32(virPCIDevice *dev, int cfgfd, unsigned int pos, uint32_t val)
-{
- uint8_t buf[4] = { (val >> 0), (val >> 8), (val >> 16), (val >> 24) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
typedef int (*virPCIDeviceIterPredicate)(virPCIDevice *, virPCIDevice *,
void *);
@@ -610,7 +466,6 @@ virPCIDeviceIterDevices(virPCIDeviceIterPredicate predicate,
*/
static int
virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability,
unsigned int *offset)
{
@@ -619,11 +474,13 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
*offset = 0; /* assume failure (*nothing* can be at offset 0) */
- status = virPCIDeviceRead16(dev, cfgfd, PCI_STATUS);
+ pci_device_cfg_read_u16(dev->device, &status, PCI_STATUS);
+
if (errno != 0 || !(status & PCI_STATUS_CAP_LIST))
goto error;
- pos = virPCIDeviceRead8(dev, cfgfd, PCI_CAPABILITY_LIST);
+ pci_device_cfg_read_u8(dev->device, &pos, PCI_CAPABILITY_LIST);
+
if (errno != 0)
goto error;
@@ -635,7 +492,9 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
* capabilities here.
*/
while (pos >= PCI_CONF_HEADER_LEN && pos != 0xff) {
- uint8_t capid = virPCIDeviceRead8(dev, cfgfd, pos);
+ uint8_t capid;
+ pci_device_cfg_read_u8(dev->device, &capid, pos);
+
if (errno != 0)
goto error;
@@ -646,7 +505,8 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
return 0;
}
- pos = virPCIDeviceRead8(dev, cfgfd, pos + 1);
+ pci_device_cfg_read_u8(dev->device, &pos, pos + 1);
+
if (errno != 0)
goto error;
}
@@ -665,7 +525,6 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
static unsigned int
virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability)
{
int ttl;
@@ -677,7 +536,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
pos = PCI_EXT_CAP_BASE;
while (ttl > 0 && pos >= PCI_EXT_CAP_BASE) {
- header = virPCIDeviceRead32(dev, cfgfd, pos);
+ header = pci_device_cfg_read_u32(dev->device, &header, pos);
if ((header & PCI_EXT_CAP_ID_MASK) == capability)
return pos;
@@ -693,7 +552,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
* not have FLR, 1 if it does, and -1 on error
*/
static bool
-virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev)
{
uint32_t caps;
unsigned int pos;
@@ -707,7 +566,7 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* on SR-IOV NICs at the moment.
*/
if (dev->pcie_cap_pos) {
- caps = virPCIDeviceRead32(dev, cfgfd, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
+ pci_device_cfg_read_u32(dev->device, &caps, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
if (caps & PCI_EXP_DEVCAP_FLR) {
VIR_DEBUG("%s %s: detected PCIe FLR capability", dev->id, dev->name);
return true;
@@ -718,11 +577,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* the same thing, except for conventional PCI
* devices. This is not common yet.
*/
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_AF, &pos) < 0)
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_AF, &pos) < 0)
goto error;
if (pos) {
- caps = virPCIDeviceRead16(dev, cfgfd, pos + PCI_AF_CAP);
+ uint16_t caps16;
+ pci_device_cfg_read_u16(dev->device, &caps16, pos + PCI_AF_CAP);
+ caps = caps16;
if (caps & PCI_AF_CAP_FLR) {
VIR_DEBUG("%s %s: detected PCI FLR capability", dev->id, dev->name);
return true;
@@ -754,13 +615,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* internal reset, not just a soft reset.
*/
static bool
-virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev)
{
if (dev->pci_pm_cap_pos) {
uint32_t ctl;
/* require the NO_SOFT_RESET bit is clear */
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
if (!(ctl & PCI_PM_CTRL_NO_SOFT_RESET)) {
VIR_DEBUG("%s %s: detected PM reset capability", dev->id, dev->name);
return true;
@@ -811,26 +672,22 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
uint8_t header_type, secondary, subordinate;
virPCIDevice **best = data;
int ret = 0;
- int fd;
if (dev->address.domain != check->address.domain)
return 0;
- if ((fd = virPCIDeviceConfigOpenTry(check)) < 0)
- return 0;
-
/* Is it a bridge? */
ret = virPCIDeviceReadClass(check, &device_class);
if (ret < 0 || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return ret;
/* Is it a plane? */
- header_type = virPCIDeviceRead8(check, fd, PCI_HEADER_TYPE);
+ pci_device_cfg_read_u8(check->device, &header_type, PCI_HEADER_TYPE);
if ((header_type & PCI_HEADER_TYPE_MASK) != PCI_HEADER_TYPE_BRIDGE)
- goto cleanup;
+ return ret;
- secondary = virPCIDeviceRead8(check, fd, PCI_SECONDARY_BUS);
- subordinate = virPCIDeviceRead8(check, fd, PCI_SUBORDINATE_BUS);
+ pci_device_cfg_read_u8(check->device, &secondary, PCI_SECONDARY_BUS);
+ pci_device_cfg_read_u8(check->device, &subordinate, PCI_SUBORDINATE_BUS);
VIR_DEBUG("%s %s: found parent device %s", dev->id, dev->name, check->name);
@@ -838,8 +695,7 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
* the direct parent. No further work is necessary
*/
if (dev->address.bus == secondary) {
- ret = 1;
- goto cleanup;
+ return 1;
}
/* otherwise, SRIOV allows VFs to be on different buses than their PFs.
@@ -850,35 +706,26 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
if (*best == NULL) {
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
} else {
/* OK, we had already recorded a previous "best" match for the
* parent. See if the current device is more restrictive than the
* best, and if so, make it the new best
*/
- int bestfd;
uint8_t best_secondary;
- if ((bestfd = virPCIDeviceConfigOpenTry(*best)) < 0)
- goto cleanup;
- best_secondary = virPCIDeviceRead8(*best, bestfd, PCI_SECONDARY_BUS);
- virPCIDeviceConfigClose(*best, bestfd);
+ pci_device_cfg_read_u8((*best)->device, &best_secondary, PCI_SECONDARY_BUS);
if (secondary > best_secondary) {
virPCIDeviceFree(*best);
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
}
}
}
-
- cleanup:
- virPCIDeviceConfigClose(check, fd);
return ret;
}
@@ -902,15 +749,14 @@ virPCIDeviceGetParent(virPCIDevice *dev, virPCIDevice **parent)
*/
static int
virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
- int cfgfd,
virPCIDeviceList *inactiveDevs)
{
g_autoptr(virPCIDevice) parent = NULL;
g_autoptr(virPCIDevice) conflict = NULL;
uint8_t config_space[PCI_CONF_LEN];
uint16_t ctl;
- int ret = -1;
- int parentfd;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
/* Refuse to do a secondary bus reset if there are other
* devices/functions behind the bus are used by the host
@@ -932,8 +778,6 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
dev->name);
return -1;
}
- if ((parentfd = virPCIDeviceConfigOpenWrite(parent)) < 0)
- goto out;
VIR_DEBUG("%s %s: doing a secondary bus reset", dev->id, dev->name);
@@ -941,38 +785,37 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* for the supplied device since we refuse to do a reset if there
* are multiple devices/functions
*/
- if (virPCIDeviceRead(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
/* Read the control register, set the reset flag, wait 200ms,
* unset the reset flag and wait 200ms.
*/
- ctl = virPCIDeviceRead16(dev, parentfd, PCI_BRIDGE_CONTROL);
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL,
- ctl | PCI_BRIDGE_CTL_RESET);
+ pci_device_cfg_read_u16(parent->device, &ctl, PCI_BRIDGE_CONTROL);
+
+ pci_device_cfg_write_u16(parent->device, ctl | PCI_BRIDGE_CTL_RESET, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL, ctl);
+ pci_device_cfg_write_u16(parent->device, ctl, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
- ret = 0;
- out:
- virPCIDeviceConfigClose(parent, parentfd);
- return ret;
+ return 0;
}
/* Power management reset attempts to reset a device using a
@@ -980,16 +823,19 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* above we require the device supports a full internal reset.
*/
static int
-virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceTryPowerManagementReset(virPCIDevice *dev)
{
uint8_t config_space[PCI_CONF_LEN];
uint32_t ctl;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
if (!dev->pci_pm_cap_pos)
return -1;
/* Save and restore the device's config space. */
- if (virPCIDeviceRead(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
@@ -998,20 +844,19 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
VIR_DEBUG("%s %s: doing a power management reset", dev->id, dev->name);
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
ctl &= ~PCI_PM_CTRL_STATE_MASK;
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D3hot);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D3hot, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D0);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D0, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
@@ -1046,10 +891,10 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
* Always returns success (0) (for now)
*/
static int
-virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
+virPCIDeviceInit(virPCIDevice *dev)
{
dev->is_pcie = false;
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
/* an unprivileged process is unable to read *all* of a
* device's PCI config (it can only read the first 64
* bytes, which isn't enough for see the Express
@@ -1065,18 +910,13 @@ virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
* -1), then we blindly assume the most likely outcome -
* PCIe.
*/
- off_t configLen = virFileLength(virPCIDeviceGetConfigPath(dev), -1);
-
- if (configLen != 256)
- dev->is_pcie = true;
-
} else {
dev->is_pcie = (dev->pcie_cap_pos != 0);
}
- virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
- dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev, cfgfd);
- dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev, cfgfd);
+ virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
+ dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev);
+ dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev);
return 0;
}
@@ -1089,7 +929,6 @@ virPCIDeviceReset(virPCIDevice *dev,
g_autofree char *drvName = NULL;
virPCIStubDriver drvType;
int ret = -1;
- int fd = -1;
int hdrType = -1;
if (virPCIGetHeaderType(dev, &hdrType) < 0)
@@ -1114,29 +953,26 @@ virPCIDeviceReset(virPCIDevice *dev,
* be redundant.
*/
if (virPCIDeviceGetCurrentDriverNameAndType(dev, &drvName, &drvType) < 0)
- goto cleanup;
+ return -1;
if (drvType == VIR_PCI_STUB_DRIVER_VFIO) {
VIR_DEBUG("Device %s is bound to %s - skip reset", dev->name, drvName);
ret = 0;
- goto cleanup;
+ return 0;
}
VIR_DEBUG("Resetting device %s", dev->name);
- if ((fd = virPCIDeviceConfigOpenWrite(dev)) < 0)
- goto cleanup;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
/* KVM will perform FLR when starting and stopping
* a guest, so there is no need for us to do it here.
*/
if (dev->has_flr) {
ret = 0;
- goto cleanup;
+ return 0;
}
/* If the device supports PCI power management reset,
@@ -1144,11 +980,11 @@ virPCIDeviceReset(virPCIDevice *dev,
* the function, not the whole device.
*/
if (dev->has_pm_reset)
- ret = virPCIDeviceTryPowerManagementReset(dev, fd);
+ ret = virPCIDeviceTryPowerManagementReset(dev);
/* Bus reset is not an option with the root bus */
if (ret < 0 && dev->address.bus != 0)
- ret = virPCIDeviceTrySecondaryBusReset(dev, fd, inactiveDevs);
+ ret = virPCIDeviceTrySecondaryBusReset(dev, inactiveDevs);
if (ret < 0) {
virErrorPtr err = virGetLastError();
@@ -1159,8 +995,6 @@ virPCIDeviceReset(virPCIDevice *dev,
_("no FLR, PM reset or bus reset available"));
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
return ret;
}
@@ -1756,28 +1590,6 @@ virPCIDeviceReattach(virPCIDevice *dev,
return 0;
}
-static char *
-virPCIDeviceReadID(virPCIDevice *dev, const char *id_name)
-{
- g_autofree char *path = NULL;
- g_autofree char *id_str = NULL;
-
- path = virPCIFile(dev->name, id_name);
-
- /* ID string is '0xNNNN\n' ... i.e. 7 bytes */
- if (virFileReadAll(path, 7, &id_str) < 0)
- return NULL;
-
- /* Check for 0x suffix */
- if (id_str[0] != '0' || id_str[1] != 'x')
- return NULL;
-
- /* Chop off the newline; we know the string is 7 bytes */
- id_str[6] = '\0';
-
- return g_steal_pointer(&id_str);
-}
-
bool
virPCIDeviceAddressIsValid(virPCIDeviceAddress *addr,
bool report)
@@ -1865,9 +1677,9 @@ virPCIDeviceExists(const virPCIDeviceAddress *addr)
virPCIDevice *
virPCIDeviceNew(const virPCIDeviceAddress *address)
{
+ struct pci_device * device;
+
g_autoptr(virPCIDevice) dev = NULL;
- g_autofree char *vendor = NULL;
- g_autofree char *product = NULL;
dev = g_new0(virPCIDevice, 1);
@@ -1875,31 +1687,21 @@ virPCIDeviceNew(const virPCIDeviceAddress *address)
dev->name = virPCIDeviceAddressAsString(&dev->address);
- dev->path = g_strdup_printf(PCI_SYSFS "devices/%s/config", dev->name);
-
- if (!virFileExists(dev->path)) {
- virReportSystemError(errno,
- _("Device %1$s not found: could not access %2$s"),
- dev->name, dev->path);
+ pci_system_init();
+ device = pci_device_find_by_slot(address->domain, address->bus, address->slot, address->function);
+ if (!device)
return NULL;
- }
-
- vendor = virPCIDeviceReadID(dev, "vendor");
- product = virPCIDeviceReadID(dev, "device");
-
- if (!vendor || !product) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to read product/vendor ID for %1$s"),
- dev->name);
+ dev->device = g_memdup(device, sizeof(*dev->device));
+ if (!dev->device) {
+ virReportSystemError(errno,
+ _("Not found device domain: %1$d, bus: %2$d, slot: %3$d, function: %4$d"),
+ address->domain, address->bus, address->slot, address->function);
return NULL;
}
-
- /* strings contain '0x' prefix */
- if (g_snprintf(dev->id, sizeof(dev->id), "%s %s", &vendor[2],
- &product[2]) >= sizeof(dev->id)) {
+ if (g_snprintf(dev->id, sizeof(dev->id), "%x %x", dev->device->vendor_id, dev->device->device_id) >= sizeof(dev->id)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("dev->id buffer overflow: %1$s %2$s"),
- &vendor[2], &product[2]);
+ _("dev->id buffer overflow: %1$d %2$d"),
+ dev->device->vendor_id, dev->device->device_id);
return NULL;
}
@@ -1918,10 +1720,10 @@ virPCIDeviceCopy(virPCIDevice *dev)
/* shallow copy to take care of most attributes */
*copy = *dev;
- copy->path = NULL;
- copy->used_by_drvname = copy->used_by_domname = NULL;
+ copy->device = NULL;
+ copy->device = g_memdup(dev->device, sizeof(*dev->device));
+ copy->name = copy->used_by_drvname = copy->used_by_domname = copy->stubDriverName = NULL;
copy->name = g_strdup(dev->name);
- copy->path = g_strdup(dev->path);
copy->used_by_drvname = g_strdup(dev->used_by_drvname);
copy->used_by_domname = g_strdup(dev->used_by_domname);
copy->stubDriverName = g_strdup(dev->stubDriverName);
@@ -1936,10 +1738,11 @@ virPCIDeviceFree(virPCIDevice *dev)
return;
VIR_DEBUG("%s %s: freeing", dev->id, dev->name);
g_free(dev->name);
- g_free(dev->path);
g_free(dev->used_by_drvname);
g_free(dev->used_by_domname);
g_free(dev->stubDriverName);
+ if (dev->device)
+ g_free(dev->device);
g_free(dev);
}
@@ -1971,9 +1774,9 @@ virPCIDeviceGetName(virPCIDevice *dev)
* config file.
*/
const char *
-virPCIDeviceGetConfigPath(virPCIDevice *dev)
+virPCIDeviceGetConfigPath(virPCIDevice *dev G_GNUC_UNUSED)
{
- return dev->path;
+ return NULL;
}
void virPCIDeviceSetManaged(virPCIDevice *dev, bool managed)
@@ -2484,47 +2287,37 @@ virPCIDeviceDownstreamLacksACS(virPCIDevice *dev)
uint16_t flags;
uint16_t ctrl;
unsigned int pos;
- int fd;
- int ret = 0;
uint16_t device_class;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
+ if (virPCIDeviceInit(dev) < 0) {
return -1;
-
- if (virPCIDeviceInit(dev, fd) < 0) {
- ret = -1;
- goto cleanup;
}
if (virPCIDeviceReadClass(dev, &device_class) < 0)
- goto cleanup;
+ return 0;
pos = dev->pcie_cap_pos;
if (!pos || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return 0;
- flags = virPCIDeviceRead16(dev, fd, pos + PCI_EXP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &flags, pos + PCI_EXP_FLAGS);
if (((flags & PCI_EXP_FLAGS_TYPE) >> 4) != PCI_EXP_TYPE_DOWNSTREAM)
- goto cleanup;
+ return 0;
- pos = virPCIDeviceFindExtendedCapabilityOffset(dev, fd, PCI_EXT_CAP_ID_ACS);
+ pos = virPCIDeviceFindExtendedCapabilityOffset(dev, PCI_EXT_CAP_ID_ACS);
if (!pos) {
VIR_DEBUG("%s %s: downstream port lacks ACS", dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- ctrl = virPCIDeviceRead16(dev, fd, pos + PCI_EXT_ACS_CTRL);
+ pci_device_cfg_read_u16(dev->device, &ctrl, pos + PCI_EXT_ACS_CTRL);
if ((ctrl & PCI_EXT_CAP_ACS_ENABLED) != PCI_EXT_CAP_ACS_ENABLED) {
VIR_DEBUG("%s %s: downstream port has ACS disabled",
dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
static int
@@ -3189,48 +2982,27 @@ virPCIDeviceGetVPD(virPCIDevice *dev G_GNUC_UNUSED)
int
virPCIDeviceIsPCIExpress(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
-
- ret = dev->is_pcie;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return dev->is_pcie;
}
int
virPCIDeviceHasPCIExpressLink(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
uint16_t cap, type;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (dev->pcie_cap_pos == 0) {
- ret = 0;
- goto cleanup;
+ return 0;
}
- cap = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_CAP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &cap, dev->pcie_cap_pos + PCI_CAP_FLAGS);
type = (cap & PCI_EXP_FLAGS_TYPE) >> 4;
- ret = type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
}
int
@@ -3242,53 +3014,39 @@ virPCIDeviceGetLinkCapSta(virPCIDevice *dev,
unsigned int *sta_width)
{
uint32_t t;
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ uint16_t t16;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (!dev->pcie_cap_pos) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("pci device %1$s is not a PCI-Express device"),
dev->name);
- goto cleanup;
+ return -1;
}
- t = virPCIDeviceRead32(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
+ pci_device_cfg_read_u32(dev->device, &t, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
*cap_port = t >> 24;
*cap_speed = t & PCI_EXP_LNKCAP_SPEED;
*cap_width = (t & PCI_EXP_LNKCAP_WIDTH) >> 4;
- t = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ pci_device_cfg_read_u16(dev->device, &t16, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ t = t16;
*sta_speed = t & PCI_EXP_LNKSTA_SPEED;
*sta_width = (t & PCI_EXP_LNKSTA_WIDTH) >> 4;
- ret = 0;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
int virPCIGetHeaderType(virPCIDevice *dev, int *hdrType)
{
- int fd;
uint8_t type;
*hdrType = -1;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return -1;
-
- type = virPCIDeviceRead8(dev, fd, PCI_HEADER_TYPE);
-
- virPCIDeviceConfigClose(dev, fd);
+ pci_device_cfg_read_u8(dev->device, &type, PCI_HEADER_TYPE);
type &= PCI_HEADER_TYPE_MASK;
if (type >= VIR_PCI_HEADER_LAST) {
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index d2a1f5acf1..fd8339bd30 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -18,12 +18,14 @@
*/
#include <config.h>
+#include "testutils.h"
+
+#ifdef __linux__
#include "qemu/qemu_alias.h"
#include "qemu/qemu_conf.h"
#include "qemu/qemu_hotplug.h"
#include "qemumonitortestutils.h"
-#include "testutils.h"
#include "testutilsqemu.h"
#include "testutilsqemuschema.h"
#include "virhostdev.h"
@@ -816,3 +818,10 @@ VIR_TEST_MAIN_PRELOAD(mymain,
VIR_TEST_MOCK("domaincaps"),
VIR_TEST_MOCK("virprocess"),
VIR_TEST_MOCK("qemuhotplug"));
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c
index a2888732f7..5f62c80665 100644
--- a/tests/qemumemlocktest.c
+++ b/tests/qemumemlocktest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -137,3 +139,10 @@ main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 1f0068864a..6f84812109 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -3051,3 +3053,10 @@ int main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index 5b923c63ce..2fa12903d2 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -22,7 +22,7 @@
#include "virpcivpdpriv.h"
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__)
# define VIR_MOCK_LOOKUP_MAIN
# include "virmock.h"
# include "virpci.h"
@@ -42,6 +42,10 @@ static int (*real___open_2)(const char *path, int flags);
static int (*real_close)(int fd);
static DIR * (*real_opendir)(const char *name);
static char *(*real_virFileCanonicalizePath)(const char *path);
+static int (*real_scandir)(const char *restrict dirp,
+ struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar);
static char *fakerootdir;
@@ -955,6 +959,7 @@ init_syms(void)
VIR_MOCK_REAL_INIT(opendir);
# endif
VIR_MOCK_REAL_INIT(virFileCanonicalizePath);
+ VIR_MOCK_REAL_INIT(scandir);
}
static void
@@ -1172,6 +1177,20 @@ virFileCanonicalizePath(const char *path)
return real_virFileCanonicalizePath(newpath);
}
+int scandir(const char *restrict dirp, struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar)
+{
+ g_autofree char *newpath = NULL;
+
+ init_syms();
+
+ if (getrealpath(&newpath, dirp) < 0)
+ return -1;
+
+ return real_scandir(newpath, namelist, filter, compar);
+}
+
# include "virmockstathelpers.c"
#else
--
2.47.1
2
6
07 Mar '25
Pavel Hrdina (4):
util: virxml: introduce virXMLFormatElementDirect
conf: use virXMLFormatElementDirect
domain_conf: refactor virDomainLoaderDefFormatNvram
util: virxml: unexport virXMLFormatElementInternal
src/conf/domain_conf.c | 22 ++++++++++------------
src/conf/node_device_conf.c | 2 +-
src/libvirt_private.syms | 2 +-
src/util/virxml.c | 16 +++++++++++++++-
src/util/virxml.h | 13 ++++++-------
5 files changed, 33 insertions(+), 22 deletions(-)
--
2.48.1
2
7
[PATCH 0/1] nwfilter: Fix deadlock between nwfilter-list and VM startup/migration
by Dion Bosschieter 07 Mar '25
by Dion Bosschieter 07 Mar '25
07 Mar '25
A deadlock occurs when `nwfilterBindingCreateXML` and `nwfilterConnectListAllNWFilters`
acquire locks in an inconsistent order. This affects both incoming migrations and
VM startups (`virsh start`), where `nwfilterBindingCreateXML` needs `updateLock`,
while `nwfilter-list` first acquires `driverMutex` and then locks individual filters.
This patch resolves the deadlock by ensuring `nwfilterBindingCreateXML` acquires
`driverMutex` before `updateLock`, following the locking pattern used by other
functions like `undefine` `nwfilterStateReload`.
Added the use of `driverMutex` in `nwfilterBindingDelete` to maintain
consistent locking order, as suggested.
Fixes: https://gitlab.com/libvirt/libvirt/-/issues/680
Dion Bosschieter (1):
nwfilter: Fix deadlock between nwfilter-list and VM startup/migration
src/nwfilter/nwfilter_driver.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
--
2.39.3 (Apple Git-146)
3
3
Pavel Hrdina (16):
domain_conf: graphics: use a function to format gl element
domain_conf: graphics: use a function to format audio element
domain_conf: modernize graphics formatting
domain_conf: graphics: extract VNC formatting to separate function
domain_conf: graphics: extract SDL formatting to separate function
domain_conf: graphics: extract RDP formatting to separate function
domain_conf: graphics: extract Desktop formatting to separate function
domain_conf: graphics: extract Spice formatting to separate function
domain_conf: graphics: extract EGL-Headless formatting to separate
function
domain_conf: graphics: extract DBus formatting to separate function
domain_conf: graphics: extract listen formatting to separate function
domain_conf: graphics: move listens formatting to relevant graphics
types
domain_conf: graphics: move remaining spice formatting
domain_conf: graphics: move remaining VNC formatting
domain_conf: graphics: fix error messages when formatting XML
domain_conf: graphics: properly escape user provided strings when
formatting XML
src/conf/domain_conf.c | 724 +++++++++++++++++++++--------------------
1 file changed, 372 insertions(+), 352 deletions(-)
--
2.48.1
2
17
[libvirt] [PATCH] Fix python error reporting for some storage operations
by Cole Robinson 07 Mar '25
by Cole Robinson 07 Mar '25
07 Mar '25
In the python bindings, all vir* classes expect to be
passed a virConnect object when instantiated. Before
the storage stuff, these classes were only instantiated
in virConnect methods, so the generator is hardcoded to
pass 'self' as the connection instance to these classes.
Problem is there are some methods that return pool or vol
instances which aren't called from virConnect: you can
lookup a storage volume's associated pool, and can lookup
volumes from a pool. In these cases passing 'self' doesn't
give the vir* instance a connection, so when it comes time
to raise an exception crap hits the fan.
Rather than rework the generator to accomodate this edge
case, I just fixed the init functions for virStorage* to
pull the associated connection out of the passed value
if it's not a virConnect instance.
Thanks,
Cole
diff --git a/python/generator.py b/python/generator.py
index 01a17da..c706b19 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -962,8 +962,12 @@ def buildWrappers():
list = reference_keepers[classname]
for ref in list:
classes.write(" self.%s = None\n" % ref[1])
- if classname in [ "virDomain", "virNetwork", "virStoragePool", "virStorageVol" ]:
+ if classname in [ "virDomain", "virNetwork" ]:
classes.write(" self._conn = conn\n")
+ elif classname in [ "virStorageVol", "virStoragePool" ]:
+ classes.write(" self._conn = conn\n" + \
+ " if not isinstance(conn, virConnect):\n" + \
+ " self._conn = conn._conn\n")
classes.write(" if _obj != None:self._o = _obj;return\n")
classes.write(" self._o = None\n\n");
destruct=None
4
3
[PATCH RFC] util: pick a better runtime directory when XDG_RUNTIME_DIR isn't set
by Laine Stump 06 Mar '25
by Laine Stump 06 Mar '25
06 Mar '25
======
I'm sending this as an RFC just because what it's doing feels kind of
dirty - directly examining XDG_RUNTIME_DIR seems like an "end run"
around the Glib API. If anyone has a better idea of what to do, please
give details :-)
======
When running unprivileged (i.e. not as root, but as a regular user),
libvirt calls g_get_user_runtime_dir() (from Glib) to get the name of
a directory where status files can be saved. This is a directory that
is 1) writeable by the current user, and 2) will remain there until
the host reboots, but then 3) be erased after the reboot. This is used
for pidfiles, sockets created to communicate between processes, status
XML of active domains, etc.
Normally g_get_user_runtime_dir() returns the setting of
XDG_RUNTIME_DIR in the user's environment; usually this is set to
/run/user/${UID} (e.g. /run/user/1000) - that directory is created
when a user first logs in and is owned by the user, but is cleared out
when the system reboots (more specifically, this directory usually
resides in a tmpfs, and so disappears when that tmpfs is unmounted).
But sometimes XDG_RUNTIME_DIR isn't set in the user's environment. In
that case, g_get_user_runtime_dir() returns ${HOME}/.config
(e.g. /home/laine/.config). This directory fulfills the first 2
criteria above, but fails the 3rd. This isn't just some pedantic
complaint - libvirt actually depends on the directory being cleared
out during a reboot - otherwise it might think that stale status files
are indicating active guests when in fact the guests were shutdown
during the reboot).
In my opinion this behavior is a bug in Glib - see the requirements
for XDG_RUNTIME in the FreeDesktop documentation here:
https://specifications.freedesktop.org/basedir-spec/latest/#variables
but they've documented the behavior as proper in the Glib docs for
g_get_user_runtime_dir(), and so likely will consider it not a bug.
Beyond that, aside from failing the "must be cleared out during a reboot"
requirement, use of $HOME/.cache in this way also disturbs SELinux,
which gives an AVC denial when libvirt (or passt) tries to create a
file or socket in that directory (the SELinux policy permits use of
/run/user/$UID, but not of $HOME/.config). We *could* add that to the
SELinux policy, but since the glib behavior doesn't
All of the above is a very long leadup to the functionality in this
patch: rather than blindly accepting the path returned from
g_get_user_runtime_dir(), we first check if XDG_RUNTIME_DIR is set; if
it isn't set then we look to see if /run/user/$UID exists and is
writable by this user, if so we use *that* as the directory for our
status files. Otherwise (both when XDG_RUNTIME_DIR is set, and when
/run/user/$UID isn't usable) we fallback to just using the path
returned by g_get_user_runtime_dir() - that isn't perfect, but it's
what we were doing before, so at least it's not any worse.
Resolves: https://issues.redhat.com/browse/RHEL-70222
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
src/util/virutil.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/util/virutil.c b/src/util/virutil.c
index 2abcb282fe..4c7f4b62bc 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -538,6 +538,28 @@ char *virGetUserRuntimeDirectory(void)
#ifdef WIN32
return g_strdup(g_get_user_runtime_dir());
#else
+ /* tl;dr - if XDG_RUNTIME_DIR is set, use g_get_user_runtime_dir().
+ * if not set, then see if /run/user/$UID works
+ * if so, use that, else fallback to g_get_user_runtime_dir()
+ *
+ * this is done because the directory returned by
+ * g_get_user_runtime_dir() when XDG_RUNTIME_DIR isn't set is
+ * "suboptimal" (it's a location that is owned by the user, but
+ * isn't erased when the user completely logs out)
+ */
+
+ if (!getenv("XDG_RUNTIME_DIR")) {
+ g_autofree char *runtime_dir = NULL;
+ struct stat sb;
+
+ runtime_dir = g_strdup_printf("/run/user/%d", getuid());
+ if (virFileIsDir(runtime_dir) &&
+ (stat(runtime_dir, &sb) == 0) && (sb.st_mode & S_IWUSR)) {
+ return g_build_filename(runtime_dir, "libvirt", NULL);
+ }
+ }
+
+ /* either XDG_RUNTIME_DIR was set, or /run/usr/$UID wasn't writable */
return g_build_filename(g_get_user_runtime_dir(), "libvirt", NULL);
#endif
}
--
2.47.1
4
12
[PATCH] qemu: snapshot: Remove dead code in qemuSnapshotDeleteBlockJobFinishing()
by Alexander Kuznetsov 06 Mar '25
by Alexander Kuznetsov 06 Mar '25
06 Mar '25
qemuSnapshotDeleteBlockJobFinishing() returns only 0 and 1. Convert it
to bool and remove the dead code handling -1 return in the caller.
Found by Linux Verification Center (linuxtesting.org) with Svace.
Reported-by: Reported-by: Andrey Slepykh <a.slepykh(a)fobos-nt.ru>
Signed-off-by: Alexander Kuznetsov <kuznetsovam(a)altlinux.org>
---
src/qemu/qemu_snapshot.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index 80cd54bf33..d277f76b4b 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -3465,7 +3465,7 @@ qemuSnapshotDeleteBlockJobIsRunning(qemuBlockjobState state)
/* When finishing or aborting qemu blockjob we only need to know if the
* job is still active or not. */
-static int
+static bool
qemuSnapshotDeleteBlockJobIsActive(qemuBlockjobState state)
{
switch (state) {
@@ -3475,7 +3475,7 @@ qemuSnapshotDeleteBlockJobIsActive(qemuBlockjobState state)
case QEMU_BLOCKJOB_STATE_ABORTING:
case QEMU_BLOCKJOB_STATE_PENDING:
case QEMU_BLOCKJOB_STATE_PIVOTING:
- return 1;
+ return true;
case QEMU_BLOCKJOB_STATE_COMPLETED:
case QEMU_BLOCKJOB_STATE_FAILED:
@@ -3485,7 +3485,7 @@ qemuSnapshotDeleteBlockJobIsActive(qemuBlockjobState state)
break;
}
- return 0;
+ return false;
}
@@ -3513,18 +3513,14 @@ static int
qemuSnapshotDeleteBlockJobFinishing(virDomainObj *vm,
qemuBlockJobData *job)
{
- int rc;
qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_SNAPSHOT);
- while ((rc = qemuSnapshotDeleteBlockJobIsActive(job->state)) > 0) {
+ while (qemuSnapshotDeleteBlockJobIsActive(job->state)) {
if (qemuDomainObjWait(vm) < 0)
return -1;
qemuBlockJobUpdate(vm, job, VIR_ASYNC_JOB_SNAPSHOT);
}
- if (rc < 0)
- return -1;
-
return 0;
}
--
2.42.4
2
2
06 Mar '25
*** BLURB HERE ***
Kirill Shchetiniuk (2):
ch: memory (segmentation fault) fix
ch: preserve last error before stop fix
src/ch/ch_events.c | 6 +++---
src/ch/ch_process.c | 6 ++++++
2 files changed, 9 insertions(+), 3 deletions(-)
--
2.48.1
3
5
[PATCH pushed] domain_caps: Don't leak 'cpu0_id' in 'virSEVCapabilitiesFree'
by Peter Krempa 06 Mar '25
by Peter Krempa 06 Mar '25
06 Mar '25
Freeing the 'virSEVCapability' object leaked the 'cpu0_id' field since
its introduction.
Fixes: 0236e6154c46603bc443eda2f05c8ce511c55b08
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
Trivial and fixed build.
src/conf/domain_capabilities.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index ab715b19d8..27551f6102 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -75,6 +75,7 @@ virSEVCapabilitiesFree(virSEVCapability *cap)
g_free(cap->pdh);
g_free(cap->cert_chain);
+ g_free(cap->cpu0_id);
g_free(cap);
}
--
2.48.1
1
0
This was triggered by a request by KubeVirt in
https://gitlab.com/libvirt/libvirt/-/issues/748
I've not functionally tested this, since I lack any suitable guest
windows environment this is looking for MSDM tables, nor does my
machine have MSDM ACPI tables to pass to a guest.
I'm blindly assuming that the QEMU CLI code is identical except for
s/SLIC/MSDM/.
In this 2nd version I've addressed two further issues
* the xen driver was incorrectly mapping its 'acpi_firmware'
option to type=slic. Xen's setting accepts a concatenation
of tables of any type. This is different from type=slic
which represents a single table, whose type will be forced
to 'SLIC' if not already set. To address this we introduce
a new 'rawset' type
* The QEMU driver does not require a type to be set in the
first place; if set it merely overrides what is in the
data file. Supporting this would let us handle any ACPI
table type without further XML changes. To address this
we introduce a new 'raw' type, which can occur many
times.
Daniel P. Berrangé (7):
conf: introduce support for multiple ACPI tables
src: validate permitted ACPI table types in libxl/qemu drivers
src: introduce 'raw' and 'rawset' ACPI table types
qemu: support 'raw' ACPI table type
libxl: support 'rawset' ACPI table type
conf: support MSDM ACPI table type
qemu: support MSDM ACPI table type
docs/formatdomain.rst | 23 ++++-
src/conf/domain_conf.c | 94 ++++++++++++++-----
src/conf/domain_conf.h | 24 ++++-
src/conf/schemas/domaincommon.rng | 7 +-
src/libvirt_private.syms | 2 +
src/libxl/libxl_conf.c | 5 +-
src/libxl/libxl_domain.c | 28 ++++++
src/libxl/xen_xl.c | 15 ++-
src/qemu/qemu_command.c | 18 +++-
src/qemu/qemu_validate.c | 23 +++++
src/security/security_dac.c | 18 ++--
src/security/security_selinux.c | 16 ++--
src/security/virt-aa-helper.c | 5 +-
.../acpi-table-many.x86_64-latest.args | 37 ++++++++
.../acpi-table-many.x86_64-latest.xml | 42 +++++++++
tests/qemuxmlconfdata/acpi-table-many.xml | 34 +++++++
tests/qemuxmlconftest.c | 1 +
.../xlconfigdata/test-fullvirt-acpi-slic.xml | 2 +-
18 files changed, 337 insertions(+), 57 deletions(-)
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.xml
--
2.47.1
2
9
Fix a typo and update the setting in the example. The documentation
explains that "when passt is the backend,...the ``<source>``
path/type/mode are all implied to be "matching the passt process"
so **must not** be specified." Additionally, this source dev setting is
ignored in practice. Therefore, let's remove it from the example to avoid any
confusion.
Signed-off-by: Yalan Zhang <yalzhang(a)redhat.com>
---
docs/formatdomain.rst | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index cbe378e61d..e84e0a0e8e 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -5154,7 +5154,7 @@ destined for the host toward the guest instead), and a socket between
passt and QEMU forwards that traffic on to the guest (and back out,
of course).
-*(:since:`Since 11.1.0 (QEMU and KVM only)` you may prefer to use the
+:since:`Since 11.1.0 (QEMU and KVM only)` you may prefer to use the
passt backend with the more efficient and performant type='vhostuser'
rather than type='user'. All the options related to passt in the
paragraphs below here also apply when using the passt backend with
@@ -6378,7 +6378,6 @@ setting guest-side IP addresses with ``<ip>`` and port forwarding with
<interface type='vhostuser'>
<backend type='passt'/>
<mac address='52:54:00:3b:83:1a'/>
- <source dev='enp1s0'/>
<ip address='10.30.0.5 prefix='24'/>
</interface>
</devices>
--
2.48.1
3
4
*** BLURB HERE ***
Michal Prívozník (5):
conf: Introduce os/shim element
qemu_capabilities: Introduce QEMU_CAPS_MACHINE_SHIM
qemu_validate: Check whether UEFI shim is supported
qemu_command: Generate cmd line for UEFI shim
security: Set seclabels on UEFI shim
docs/formatdomain.rst | 5 +++++
src/conf/domain_conf.c | 12 ++++++++----
src/conf/domain_conf.h | 1 +
src/conf/domain_validate.c | 6 ++++++
src/conf/schemas/domaincommon.rng | 5 +++++
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 2 ++
src/qemu/qemu_validate.c | 7 +++++++
src/security/security_dac.c | 10 ++++++++++
src/security/security_selinux.c | 9 +++++++++
src/security/virt-aa-helper.c | 4 ++++
tests/qemucapabilitiesdata/caps_10.0.0_s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 +
.../launch-security-sev-direct.x86_64-latest.args | 1 +
.../launch-security-sev-direct.x86_64-latest.xml | 1 +
tests/qemuxmlconfdata/launch-security-sev-direct.xml | 1 +
17 files changed, 65 insertions(+), 4 deletions(-)
--
2.45.3
2
6
[PATCH 0/8] qemu: Follow-up to "schemas: domaincaps: Add missing schema for '<cpu0Id>'"
by Peter Krempa 04 Mar '25
by Peter Krempa 04 Mar '25
04 Mar '25
As promised in the original patch fixing the schema this is the
test-case follow up.
As not entirely expected it's a bit more involved and also contains
fixes for other bugs.
Peter Krempa (8):
qemu: capabilities: Parse 'cpu0Id' from capability cache XML
domaincapstest: Use proper input file based on 'variant' in
'fillQemuCaps'
domaincapstest: Allow tests of all capability variants
qemucapabilitiesdata: Document '+amdsev' variant
qemucapabilitiestest: Add test data for 'qemu-9.2' on a SEV-enabled
AMD host
qemuxmlconftest: Propery discriminate output files for caps variants
qemuxmlconftest: Add 'latest' version of 'launch-security-sev*'
originally using 6.0.0
qemuxmlconftest: Add '+amdsev' versions of the rest of
'launch-security-sev*' cases
src/qemu/qemu_capabilities.c | 1 +
.../qemu_7.0.0-hvf.aarch64+hvf.xml | 43 +-
.../qemu_7.2.0-hvf.x86_64+hvf.xml | 952 +-
.../qemu_9.2.0-q35.x86_64+amdsev.xml | 852 +
.../qemu_9.2.0-tcg.x86_64+amdsev.xml | 1821 +
.../qemu_9.2.0.x86_64+amdsev.xml | 852 +
tests/domaincapstest.c | 21 +-
tests/qemucapabilitiesdata/README.rst | 4 +
.../caps_9.2.0_x86_64+amdsev.replies | 43857 ++++++++++++++++
.../caps_9.2.0_x86_64+amdsev.xml | 3132 ++
.../caps.x86_64+amdsev.xml | 29 +
...h64-virt-headless.aarch64-latest+hvf.args} | 0
...ch64-virt-headless.aarch64-latest+hvf.xml} | 0
...86_64-q35-headless.x86_64-latest+hvf.args} | 0
...x86_64-q35-headless.x86_64-latest+hvf.xml} | 0
...urity-sev-direct.x86_64-latest+amdsev.args | 38 +
...curity-sev-direct.x86_64-latest+amdsev.xml | 48 +
...ng-platform-info.x86_64-latest+amdsev.args | 35 +
...ing-platform-info.x86_64-latest+amdsev.xml | 43 +
...security-sev-snp.x86_64-latest+amdsev.args | 42 +
...-security-sev-snp.x86_64-latest+amdsev.xml | 73 +
...nch-security-sev.x86_64-latest+amdsev.args | 35 +
...unch-security-sev.x86_64-latest+amdsev.xml | 45 +
tests/qemuxmlconftest.c | 40 +-
tests/testutilsqemu.c | 6 +-
25 files changed, 51941 insertions(+), 28 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_9.2.0-q35.x86_64+amdsev.xml
create mode 100644 tests/domaincapsdata/qemu_9.2.0-tcg.x86_64+amdsev.xml
create mode 100644 tests/domaincapsdata/qemu_9.2.0.x86_64+amdsev.xml
create mode 100644 tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.replies
create mode 100644 tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml
create mode 100644 tests/qemucaps2xmloutdata/caps.x86_64+amdsev.xml
rename tests/qemuxmlconfdata/{hvf-aarch64-virt-headless.aarch64-latest.args => hvf-aarch64-virt-headless.aarch64-latest+hvf.args} (100%)
rename tests/qemuxmlconfdata/{hvf-aarch64-virt-headless.aarch64-latest.xml => hvf-aarch64-virt-headless.aarch64-latest+hvf.xml} (100%)
rename tests/qemuxmlconfdata/{hvf-x86_64-q35-headless.x86_64-latest.args => hvf-x86_64-q35-headless.x86_64-latest+hvf.args} (100%)
rename tests/qemuxmlconfdata/{hvf-x86_64-q35-headless.x86_64-latest.xml => hvf-x86_64-q35-headless.x86_64-latest+hvf.xml} (100%)
create mode 100644 tests/qemuxmlconfdata/launch-security-sev-direct.x86_64-latest+amdsev.args
create mode 100644 tests/qemuxmlconfdata/launch-security-sev-direct.x86_64-latest+amdsev.xml
create mode 100644 tests/qemuxmlconfdata/launch-security-sev-missing-platform-info.x86_64-latest+amdsev.args
create mode 100644 tests/qemuxmlconfdata/launch-security-sev-missing-platform-info.x86_64-latest+amdsev.xml
create mode 100644 tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.args
create mode 100644 tests/qemuxmlconfdata/launch-security-sev-snp.x86_64-latest+amdsev.xml
create mode 100644 tests/qemuxmlconfdata/launch-security-sev.x86_64-latest+amdsev.args
create mode 100644 tests/qemuxmlconfdata/launch-security-sev.x86_64-latest+amdsev.xml
--
2.48.1
2
9
04 Mar '25
Commit af1b89d1d for some reason changed a perfectly fine statement to
one that I could not understand. Let's revert it.
Signed-off-by: Cleber Rosa <crosa(a)redhat.com>
---
docs/api.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/api.rst b/docs/api.rst
index cdba642967..243303de68 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -26,7 +26,7 @@ name will default to a preselected hypervisor, but it's probably not a
wise thing to do in most cases. See the `connection URI <uri.html>`__
page for a full descriptions of the values allowed.
-OnDevice the application obtains a
+Once the application obtains a
`virConnectPtr <html/libvirt-libvirt-host.html#virConnectPtr>`__
connection to the hypervisor it can then use it to manage the
hypervisor's available domains and related virtualization resources,
--
2.48.1
2
1
03 Mar '25
Fixes: 0236e6154c46603bc443eda2f05c8ce511c55b08
Resolves: https://issues.redhat.com/browse/RHEL-81890
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
I'll also attempt to add tests for this once I'll be able to get to a
capability dump from a sev-es enabled box.
src/conf/schemas/domaincaps.rng | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.rng
index 3559d2ae05..595dbcd634 100644
--- a/src/conf/schemas/domaincaps.rng
+++ b/src/conf/schemas/domaincaps.rng
@@ -438,6 +438,11 @@
<data type="unsignedInt"/>
</element>
</optional>
+ <optional>
+ <element name="cpu0Id">
+ <data type="string"/>
+ </element>
+ </optional>
</element>
</define>
--
2.48.1
2
1
03 Mar '25
In case when user provides custom paths (those not covered by the JSON
firmware descriptor files or the default locations) for the
loader and nvram template no auto-detection will be performed and user's
config will be taken at face value. Historically when 'templateFormat'
didn't exist we assumed that the 'format' field covers both.
Thus if 'templateFormat' is VIR_STORAGE_FILE_NONE we need to skip the
check forbidding image format conversion for 'file' backed to avoid
breaking legacy configs with manual/non-detected format assuming that
user picked the correct format.
Add a comment to the declaration of 'nvramTemplateFormat' noting the
above for future reference.
Resolves: https://issues.redhat.com/browse/RHEL-81731
Fixes: 2aa644a2fc8
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/domain_conf.h | 7 +++++++
src/qemu/qemu_process.c | 5 ++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index d4fa79cb84..1fcc3fdb98 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2362,6 +2362,13 @@ struct _virDomainLoaderDef {
virStorageSource *nvram;
bool newStyleNVRAM;
char *nvramTemplate; /* user override of path to master nvram */
+ /* Historically it was assumed that the format of the template and the
+ * actual nvram image are identical, which is no longer true.
+ *
+ * Note: if 'nvramTemplate' comes from the user and is not overriden by
+ * auto-detection nvramTemplateFormat may be VIR_STORAGE_FILE_NONE. Code
+ * shall assume that the template format matches if it isn't provided.
+ */
virStorageFileFormat nvramTemplateFormat;
};
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 0d9b8bcb93..7b7b5c17e3 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4709,7 +4709,10 @@ qemuPrepareNVRAMFile(virQEMUDriver *driver,
return -1;
}
- if (loader->nvram->format != loader->nvramTemplateFormat) {
+ /* If 'nvramTemplateFormat' is empty it means that it's a user-provided
+ * template which we couldn't verify. Assume the user knows what they're doing */
+ if (loader->nvramTemplateFormat != VIR_STORAGE_FILE_NONE &&
+ loader->nvram->format != loader->nvramTemplateFormat) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("conversion of the nvram template to another target format is not supported"));
return -1;
--
2.48.1
2
1
The 11.1.0 release of both libvirt and libvirt-python is tagged and
signed tarballs are available at
https://download.libvirt.org/
https://download.libvirt.org/python/
Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing feedback. Your work is greatly
appreciated.
* Packaging changes
* De-modularize the 'fs' storage file backend
The storage file backend for local files uses only code which we compile
into the internal libraries anyways so there's no point in having it
as a loadable module. The ``storage-file/libvirt_storage_file_fs.so`` module
no longer exists and its functionality is embedded directly.
* Removed features
* vbox: removed support for version 6.1 APIs
Libvirt no longer supports use of VirtualBox 6.1 since this version reached
its end of life on 2024/01.
* New features
* nodedev: Support ccwgroup based qeth devices
CCW group devices are devices that use multiple subchannels on the
mainframe's channel subsystem. A qeth group device maps to subchannels and
their corresponding device numbers and device bus-IDs. The ``ccwgroup``
device nodes are placed besides the subchannel nodes under computer and list
the group members within a new ``ccwgroup`` capability. A new capability
``ccwgroup_member`` is added into capability ``ccw`` to represent a device
membership to a ccwgroup. Filters are added to find ccwgroups as well as
ccwgroup members.
* ch: Support handling events from cloud-hypervisor
The ch driver now supports handling events from the cloud-hypervisor.
Events include VM lifecyle operations such as shutdown, pause, resume,
etc. Libvirt will now read these events and take actions such as
updating domain state, etc.
* Introduce virtio-mem ``<memory/>`` model for s390 guests
The virtio-mem model of ``<memory/>`` device can now be used with s390
guests.
* Support using passt as the backend for interface type='vhostuser'
The combination of vhostuser transport with passt as the backend
provides high performance, fully featured networking without the
need for libvirt or QEMU to have any elevated privileges or
capabilities. Configuration and features are identical to the
configuration for type='user' with the passt backend.
* Improvements
* qemu: I/O error messages can be queried via ``virDomainGetMessages()``
The qemu hypervisor driver now preserves the last I/O error message along
with the timestamp when it was recorded and preserves it to be queried via
``virDomainGetMessages()``.
* Bug fixes
* tools: ssh-proxy: Check if domain is running before connecting to it
If domain is not running but has a static CID configured for its VSOCK then
the ssh-proxy parsed it anyways. This may have resulted in mistakenly
connecting to a different domain. Domain status is checked before parsing
its CID.
* apparmor: Allow SGX if configured
If domain has ``<memory model='sgx-epc'\>`` configured then libvirt now
adds corresponding devices into a per-domain profile so that AppArmor does
not deny QEMU access to them.
* qemu: Fix crash when starting a domain on a host with unknown host CPU
On hosts where we cannot detect a host CPU model (mostly aarch64 hosts)
starting a domain with a custom CPU model caused a crash of virtqemud.
The bug was introduced in libvirt-10.9.0
Enjoy.
Jirka
1
0
01 Mar '25
This patch series adds support for configuring the PCI high memory MMIO
window size for aarch64 virt machine types. This feature has been merged
into the QEMU upstream staging branch [1] and will be available in QEMU 10.0.
It allows users to configure the size of the high memory MMIO window above
4GB, which is particularly useful for systems with large amounts of PCI
memory requirements.
The feature is exposed through the domain XML as a new PCI feature:
<features>
<pci>
<highmem-mmio-size unit='G'>512</highmem-mmio-size>
</pci>
</features>
When enabled, this configures the size of the PCI high memory MMIO window
via QEMU's highmem-mmio-size machine property. The feature is only
available for aarch64 virt machine types and requires QEMU support.
This series depends on [2] and should be applied on top of those patches.
For your convenience, this series is also available on Github [3].
[1] https://lore.kernel.org/qemu-devel/20250221145419.1281890-1-mochs@nvidia.co…
[2] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/Z4NQ…
[3] git fetch https://github.com/nvmochs/libvirt.git pci_highmem_mmio_size
Signed-off-by: Matthew R. Ochs <mochs(a)nvidia.com>
Matthew R. Ochs (6):
domain: Add PCI configuration feature infrastructure
schema: Add PCI configuration feature schema
conf: Add PCI configuration XML parsing and formatting
qemu: Add capability for PCI high memory MMIO size
qemu: Add command line support for PCI high memory MMIO size
tests: Add tests for machine PCI features
src/conf/domain_conf.c | 103 ++++++++++++++++++
src/conf/domain_conf.h | 6 +
src/conf/schemas/domaincommon.rng | 9 ++
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 6 +
src/qemu/qemu_validate.c | 15 +++
.../caps_10.0.0_aarch64.replies | 10 ++
.../caps_10.0.0_aarch64.xml | 1 +
...rch64-virt-machine-pci.aarch64-latest.args | 31 ++++++
...arch64-virt-machine-pci.aarch64-latest.xml | 30 +++++
.../aarch64-virt-machine-pci.xml | 20 ++++
tests/qemuxmlconftest.c | 2 +
13 files changed, 236 insertions(+)
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.xml
--
2.46.0
1
6
[PATCH] virDomainHostdevDefNew: update users not to check return value
by Roman Bogorodskiy 28 Feb '25
by Roman Bogorodskiy 28 Feb '25
28 Feb '25
virDomainHostdevDefNew() has been using g_new0() for a while now. As it
calls abort() on OOM, it's not necessary to check whether
the return value is NULL.
Signed-off-by: Roman Bogorodskiy <bogorodskiy(a)gmail.com>
---
src/conf/domain_conf.c | 3 +--
src/libxl/xen_common.c | 4 +---
src/libxl/xen_xl.c | 4 +---
src/lxc/lxc_native.c | 4 ----
src/vbox/vbox_common.c | 12 +-----------
5 files changed, 4 insertions(+), 23 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5630a469be..d4ce85b3a1 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -13316,8 +13316,7 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xmlopt,
ctxt->node = node;
- if (!(def = virDomainHostdevDefNew()))
- goto error;
+ def = virDomainHostdevDefNew();
if (virXMLPropEnumDefault(node, "mode", virDomainHostdevModeTypeFromString,
VIR_XML_PROP_NONE,
diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c
index b7ec552631..cbcdbf5a00 100644
--- a/src/libxl/xen_common.c
+++ b/src/libxl/xen_common.c
@@ -445,9 +445,7 @@ xenParsePCI(char *entry)
}
}
- if (!(hostdev = virDomainHostdevDefNew()))
- return NULL;
-
+ hostdev = virDomainHostdevDefNew();
hostdev->managed = false;
hostdev->writeFiltering = filtered;
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c
index 53f6871efc..482b151666 100644
--- a/src/libxl/xen_xl.c
+++ b/src/libxl/xen_xl.c
@@ -924,9 +924,7 @@ xenParseXLUSB(virConf *conf, virDomainDef *def)
key = nextkey;
}
- if (!(hostdev = virDomainHostdevDefNew()))
- return -1;
-
+ hostdev = virDomainHostdevDefNew();
hostdev->managed = false;
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB;
hostdev->source.subsys.u.usb.bus = busNum;
diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index c0011e0600..7700804429 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -377,10 +377,6 @@ static virDomainHostdevDef *
lxcCreateHostdevDef(const char *data)
{
virDomainHostdevDef *hostdev = virDomainHostdevDefNew();
-
- if (!hostdev)
- return NULL;
-
hostdev->mode = VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES;
hostdev->source.caps.type = VIR_DOMAIN_HOSTDEV_CAPS_TYPE_NET;
hostdev->source.caps.u.net.ifname = g_strdup(data);
diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c
index de3c9989a5..2121d7e2d1 100644
--- a/src/vbox/vbox_common.c
+++ b/src/vbox/vbox_common.c
@@ -3087,11 +3087,8 @@ vboxHostDeviceGetXMLDesc(struct _vboxDriver *data, virDomainDef *def, IMachine *
/* Alloc mem needed for the filters now */
def->hostdevs = g_new0(virDomainHostdevDef *, def->nhostdevs);
- for (i = 0; i < def->nhostdevs; i++) {
+ for (i = 0; i < def->nhostdevs; i++)
def->hostdevs[i] = virDomainHostdevDefNew();
- if (!def->hostdevs[i])
- goto release_hostdevs;
- }
for (i = 0; i < deviceFilters.count; i++) {
PRBool active = PR_FALSE;
@@ -3138,13 +3135,6 @@ vboxHostDeviceGetXMLDesc(struct _vboxDriver *data, virDomainDef *def, IMachine *
gVBoxAPI.UArray.vboxArrayRelease(&deviceFilters);
VBOX_RELEASE(USBCommon);
return;
-
- release_hostdevs:
- for (i = 0; i < def->nhostdevs; i++)
- virDomainHostdevDefFree(def->hostdevs[i]);
- VIR_FREE(def->hostdevs);
-
- goto release_filters;
}
--
2.47.1
2
1
- This test was added to check the xml used to launch the VM
for Arm CCA support.
This test was created using the method described in the
documentation.
Signed-off-by: Akio Kakuno <fj3333bs(a)fujitsu.com>
---
.../launch-security-cca.aarch64-latest.args | 30 +++++++++++++++++++
.../launch-security-cca.aarch64-latest.xml | 24 +++++++++++++++
tests/qemuxmlconfdata/launch-security-cca.xml | 16 ++++++++++
tests/qemuxmlconftest.c | 2 ++
4 files changed, 72 insertions(+)
create mode 100644 tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/launch-security-cca.xml
diff --git a/tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.args b/tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.args
new file mode 100644
index 0000000000..ea8c46735b
--- /dev/null
+++ b/tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.args
@@ -0,0 +1,30 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/var/lib/libvirt/qemu/domain--1-cca_test \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-cca_test/.local/share \
+XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-cca_test/.cache \
+XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-cca_test/.config \
+/usr/bin/qemu-system-aarch64 \
+-name guest=cca_test,debug-threads=on \
+-S \
+-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-cca_test/master-key.aes"}' \
+-machine virt,usb=off,gic-version=3,dump-guest-core=off,memory-backend=mach-virt.ram,confidential-guest-support=rme0,acpi=off \
+-accel kvm \
+-m size=219136k \
+-object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":224395264}' \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 00010203-0405-4607-8809-0a0b0c0d0e0f \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-audiodev '{"id":"audio1","driver":"none"}' \
+-object '{"qom-type":"rme-guest","id":"rme0","measurement-algorithm":"sha256"}' \
+-msg timestamp=on
diff --git a/tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.xml b/tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.xml
new file mode 100644
index 0000000000..382313472b
--- /dev/null
+++ b/tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.xml
@@ -0,0 +1,24 @@
+<domain type='kvm'>
+ <name>cca_test</name>
+ <uuid>00010203-0405-4607-8809-0a0b0c0d0e0f</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <gic version='3'/>
+ </features>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <controller type='pci' index='0' model='pcie-root'/>
+ <audio id='1' type='none'/>
+ </devices>
+ <launchSecurity type='cca'/>
+</domain>
diff --git a/tests/qemuxmlconfdata/launch-security-cca.xml b/tests/qemuxmlconfdata/launch-security-cca.xml
new file mode 100644
index 0000000000..dccd67f8a5
--- /dev/null
+++ b/tests/qemuxmlconfdata/launch-security-cca.xml
@@ -0,0 +1,16 @@
+<domain type='kvm'>
+ <name>cca_test</name>
+ <uuid>00010203-0405-4607-8809-0a0b0c0d0e0f</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='aarch64' machine='virt'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ </devices>
+ <launchSecurity type='cca'>
+ <measurement-algo>sha256</measurement-algo>
+ </launchSecurity>
+</domain>
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 6a46bfc7a3..babe658359 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -2877,6 +2877,8 @@ mymain(void)
DO_TEST_CAPS_ARCH_LATEST("launch-security-s390-pv", "s390x");
+ DO_TEST_CAPS_ARCH_LATEST("launch-security-cca", "aarch64");
+
DO_TEST_CAPS_LATEST("vhost-user-fs-fd-memory");
DO_TEST_CAPS_LATEST("vhost-user-fs-fd-openfiles");
DO_TEST_CAPS_LATEST("vhost-user-fs-hugepages");
--
2.34.1
1
0
- This test was added to check domain capabilities for Arm
CCA support.
This test was created using the method described in the
documentation.
Signed-off-by: Akio Kakuno <fj3333bs(a)fujitsu.com>
---
.../qemu_9.1.0-virt.aarch64.xml | 243 ++++++++++++++++++
tests/domaincapsdata/qemu_9.1.0.aarch64.xml | 243 ++++++++++++++++++
2 files changed, 486 insertions(+)
create mode 100644 tests/domaincapsdata/qemu_9.1.0-virt.aarch64.xml
create mode 100644 tests/domaincapsdata/qemu_9.1.0.aarch64.xml
diff --git a/tests/domaincapsdata/qemu_9.1.0-virt.aarch64.xml b/tests/domaincapsdata/qemu_9.1.0-virt.aarch64.xml
new file mode 100644
index 0000000000..6c1ec1734a
--- /dev/null
+++ b/tests/domaincapsdata/qemu_9.1.0-virt.aarch64.xml
@@ -0,0 +1,243 @@
+<domainCapabilities>
+ <path>/usr/bin/qemu-system-aarch64</path>
+ <domain>kvm</domain>
+ <machine>virt-9.2</machine>
+ <arch>aarch64</arch>
+ <vcpu max='512'/>
+ <iothreads supported='yes'/>
+ <os supported='yes'>
+ <enum name='firmware'>
+ <value>efi</value>
+ </enum>
+ <loader supported='yes'>
+ <value>/obviously/fake/firmware1.fd</value>
+ <value>/obviously/fake/firmware2.fd</value>
+ <enum name='type'>
+ <value>rom</value>
+ <value>pflash</value>
+ </enum>
+ <enum name='readonly'>
+ <value>yes</value>
+ <value>no</value>
+ </enum>
+ <enum name='secure'>
+ <value>no</value>
+ </enum>
+ </loader>
+ </os>
+ <cpu>
+ <mode name='host-passthrough' supported='yes'>
+ <enum name='hostPassthroughMigratable'>
+ <value>off</value>
+ </enum>
+ </mode>
+ <mode name='maximum' supported='yes'>
+ <enum name='maximumMigratable'>
+ <value>on</value>
+ <value>off</value>
+ </enum>
+ </mode>
+ <mode name='host-model' supported='no'/>
+ <mode name='custom' supported='yes'>
+ <model usable='unknown' vendor='unknown'>a64fx</model>
+ <model usable='unknown' vendor='unknown'>arm1026</model>
+ <model usable='unknown' vendor='unknown'>arm1136</model>
+ <model usable='unknown' vendor='unknown'>arm1136-r2</model>
+ <model usable='unknown' vendor='unknown'>arm1176</model>
+ <model usable='unknown' vendor='unknown'>arm11mpcore</model>
+ <model usable='unknown' vendor='unknown'>arm926</model>
+ <model usable='unknown' vendor='unknown'>arm946</model>
+ <model usable='unknown' vendor='unknown'>cortex-a15</model>
+ <model usable='unknown' vendor='unknown'>cortex-a35</model>
+ <model usable='unknown' vendor='unknown'>cortex-a53</model>
+ <model usable='unknown' vendor='unknown'>cortex-a55</model>
+ <model usable='unknown' vendor='unknown'>cortex-a57</model>
+ <model usable='unknown' vendor='unknown'>cortex-a7</model>
+ <model usable='unknown' vendor='unknown'>cortex-a710</model>
+ <model usable='unknown' vendor='unknown'>cortex-a72</model>
+ <model usable='unknown' vendor='unknown'>cortex-a76</model>
+ <model usable='unknown' vendor='unknown'>cortex-a8</model>
+ <model usable='unknown' vendor='unknown'>cortex-a9</model>
+ <model usable='unknown' vendor='unknown'>cortex-m0</model>
+ <model usable='unknown' vendor='unknown'>cortex-m3</model>
+ <model usable='unknown' vendor='unknown'>cortex-m33</model>
+ <model usable='unknown' vendor='unknown'>cortex-m4</model>
+ <model usable='unknown' vendor='unknown'>cortex-m55</model>
+ <model usable='unknown' vendor='unknown'>cortex-m7</model>
+ <model usable='unknown' vendor='unknown'>cortex-r5</model>
+ <model usable='unknown' vendor='unknown'>cortex-r52</model>
+ <model usable='unknown' vendor='unknown'>cortex-r5f</model>
+ <model usable='unknown' vendor='unknown'>max</model>
+ <model usable='unknown' vendor='unknown'>neoverse-n1</model>
+ <model usable='unknown' vendor='unknown'>neoverse-n2</model>
+ <model usable='unknown' vendor='unknown'>neoverse-v1</model>
+ <model usable='unknown' vendor='unknown'>pxa250</model>
+ <model usable='unknown' vendor='unknown'>pxa255</model>
+ <model usable='unknown' vendor='unknown'>pxa260</model>
+ <model usable='unknown' vendor='unknown'>pxa261</model>
+ <model usable='unknown' vendor='unknown'>pxa262</model>
+ <model usable='unknown' vendor='unknown'>pxa270</model>
+ <model usable='unknown' vendor='unknown'>pxa270-a0</model>
+ <model usable='unknown' vendor='unknown'>pxa270-a1</model>
+ <model usable='unknown' vendor='unknown'>pxa270-b0</model>
+ <model usable='unknown' vendor='unknown'>pxa270-b1</model>
+ <model usable='unknown' vendor='unknown'>pxa270-c0</model>
+ <model usable='unknown' vendor='unknown'>pxa270-c5</model>
+ <model usable='unknown' vendor='unknown'>sa1100</model>
+ <model usable='unknown' vendor='unknown'>sa1110</model>
+ <model usable='unknown' vendor='unknown'>ti925t</model>
+ </mode>
+ </cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
+ <devices>
+ <disk supported='yes'>
+ <enum name='diskDevice'>
+ <value>disk</value>
+ <value>cdrom</value>
+ <value>floppy</value>
+ <value>lun</value>
+ </enum>
+ <enum name='bus'>
+ <value>fdc</value>
+ <value>scsi</value>
+ <value>virtio</value>
+ <value>usb</value>
+ <value>sata</value>
+ </enum>
+ <enum name='model'>
+ <value>virtio</value>
+ <value>virtio-transitional</value>
+ <value>virtio-non-transitional</value>
+ </enum>
+ </disk>
+ <graphics supported='yes'>
+ <enum name='type'>
+ <value>dbus</value>
+ </enum>
+ </graphics>
+ <video supported='yes'>
+ <enum name='modelType'>
+ <value>vga</value>
+ <value>cirrus</value>
+ <value>virtio</value>
+ <value>none</value>
+ <value>bochs</value>
+ <value>ramfb</value>
+ </enum>
+ </video>
+ <hostdev supported='yes'>
+ <enum name='mode'>
+ <value>subsystem</value>
+ </enum>
+ <enum name='startupPolicy'>
+ <value>default</value>
+ <value>mandatory</value>
+ <value>requisite</value>
+ <value>optional</value>
+ </enum>
+ <enum name='subsysType'>
+ <value>usb</value>
+ <value>pci</value>
+ <value>scsi</value>
+ </enum>
+ <enum name='capsType'/>
+ <enum name='pciBackend'>
+ <value>default</value>
+ <value>vfio</value>
+ </enum>
+ </hostdev>
+ <rng supported='yes'>
+ <enum name='model'>
+ <value>virtio</value>
+ <value>virtio-transitional</value>
+ <value>virtio-non-transitional</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>random</value>
+ <value>egd</value>
+ <value>builtin</value>
+ </enum>
+ </rng>
+ <filesystem supported='yes'>
+ <enum name='driverType'>
+ <value>path</value>
+ <value>handle</value>
+ <value>virtiofs</value>
+ </enum>
+ </filesystem>
+ <tpm supported='yes'>
+ <enum name='model'>
+ <value>tpm-tis</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>passthrough</value>
+ <value>emulator</value>
+ <value>external</value>
+ </enum>
+ <enum name='backendVersion'>
+ <value>2.0</value>
+ </enum>
+ </tpm>
+ <redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
+ <crypto supported='yes'>
+ <enum name='model'>
+ <value>virtio</value>
+ </enum>
+ <enum name='type'>
+ <value>qemu</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>builtin</value>
+ </enum>
+ </crypto>
+ <interface supported='yes'>
+ <enum name='backendType'>
+ <value>default</value>
+ <value>passt</value>
+ </enum>
+ </interface>
+ <panic supported='yes'>
+ <enum name='model'>
+ <value>pvpanic</value>
+ </enum>
+ </panic>
+ </devices>
+ <features>
+ <gic supported='yes'>
+ <enum name='version'>
+ <value>3</value>
+ </enum>
+ </gic>
+ <vmcoreinfo supported='yes'/>
+ <genid supported='no'/>
+ <backingStoreInput supported='yes'/>
+ <backup supported='yes'/>
+ <async-teardown supported='yes'/>
+ <ps2 supported='no'/>
+ <sev supported='no'/>
+ <sgx supported='no'/>
+ <cca supported='yes'>
+ <enum name='measurement-algo'>
+ <value>sha256</value>
+ <value>sha512</value>
+ </enum>
+ </cca>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>cca</value>
+ </enum>
+ </launchSecurity>
+ </features>
+</domainCapabilities>
diff --git a/tests/domaincapsdata/qemu_9.1.0.aarch64.xml b/tests/domaincapsdata/qemu_9.1.0.aarch64.xml
new file mode 100644
index 0000000000..6c1ec1734a
--- /dev/null
+++ b/tests/domaincapsdata/qemu_9.1.0.aarch64.xml
@@ -0,0 +1,243 @@
+<domainCapabilities>
+ <path>/usr/bin/qemu-system-aarch64</path>
+ <domain>kvm</domain>
+ <machine>virt-9.2</machine>
+ <arch>aarch64</arch>
+ <vcpu max='512'/>
+ <iothreads supported='yes'/>
+ <os supported='yes'>
+ <enum name='firmware'>
+ <value>efi</value>
+ </enum>
+ <loader supported='yes'>
+ <value>/obviously/fake/firmware1.fd</value>
+ <value>/obviously/fake/firmware2.fd</value>
+ <enum name='type'>
+ <value>rom</value>
+ <value>pflash</value>
+ </enum>
+ <enum name='readonly'>
+ <value>yes</value>
+ <value>no</value>
+ </enum>
+ <enum name='secure'>
+ <value>no</value>
+ </enum>
+ </loader>
+ </os>
+ <cpu>
+ <mode name='host-passthrough' supported='yes'>
+ <enum name='hostPassthroughMigratable'>
+ <value>off</value>
+ </enum>
+ </mode>
+ <mode name='maximum' supported='yes'>
+ <enum name='maximumMigratable'>
+ <value>on</value>
+ <value>off</value>
+ </enum>
+ </mode>
+ <mode name='host-model' supported='no'/>
+ <mode name='custom' supported='yes'>
+ <model usable='unknown' vendor='unknown'>a64fx</model>
+ <model usable='unknown' vendor='unknown'>arm1026</model>
+ <model usable='unknown' vendor='unknown'>arm1136</model>
+ <model usable='unknown' vendor='unknown'>arm1136-r2</model>
+ <model usable='unknown' vendor='unknown'>arm1176</model>
+ <model usable='unknown' vendor='unknown'>arm11mpcore</model>
+ <model usable='unknown' vendor='unknown'>arm926</model>
+ <model usable='unknown' vendor='unknown'>arm946</model>
+ <model usable='unknown' vendor='unknown'>cortex-a15</model>
+ <model usable='unknown' vendor='unknown'>cortex-a35</model>
+ <model usable='unknown' vendor='unknown'>cortex-a53</model>
+ <model usable='unknown' vendor='unknown'>cortex-a55</model>
+ <model usable='unknown' vendor='unknown'>cortex-a57</model>
+ <model usable='unknown' vendor='unknown'>cortex-a7</model>
+ <model usable='unknown' vendor='unknown'>cortex-a710</model>
+ <model usable='unknown' vendor='unknown'>cortex-a72</model>
+ <model usable='unknown' vendor='unknown'>cortex-a76</model>
+ <model usable='unknown' vendor='unknown'>cortex-a8</model>
+ <model usable='unknown' vendor='unknown'>cortex-a9</model>
+ <model usable='unknown' vendor='unknown'>cortex-m0</model>
+ <model usable='unknown' vendor='unknown'>cortex-m3</model>
+ <model usable='unknown' vendor='unknown'>cortex-m33</model>
+ <model usable='unknown' vendor='unknown'>cortex-m4</model>
+ <model usable='unknown' vendor='unknown'>cortex-m55</model>
+ <model usable='unknown' vendor='unknown'>cortex-m7</model>
+ <model usable='unknown' vendor='unknown'>cortex-r5</model>
+ <model usable='unknown' vendor='unknown'>cortex-r52</model>
+ <model usable='unknown' vendor='unknown'>cortex-r5f</model>
+ <model usable='unknown' vendor='unknown'>max</model>
+ <model usable='unknown' vendor='unknown'>neoverse-n1</model>
+ <model usable='unknown' vendor='unknown'>neoverse-n2</model>
+ <model usable='unknown' vendor='unknown'>neoverse-v1</model>
+ <model usable='unknown' vendor='unknown'>pxa250</model>
+ <model usable='unknown' vendor='unknown'>pxa255</model>
+ <model usable='unknown' vendor='unknown'>pxa260</model>
+ <model usable='unknown' vendor='unknown'>pxa261</model>
+ <model usable='unknown' vendor='unknown'>pxa262</model>
+ <model usable='unknown' vendor='unknown'>pxa270</model>
+ <model usable='unknown' vendor='unknown'>pxa270-a0</model>
+ <model usable='unknown' vendor='unknown'>pxa270-a1</model>
+ <model usable='unknown' vendor='unknown'>pxa270-b0</model>
+ <model usable='unknown' vendor='unknown'>pxa270-b1</model>
+ <model usable='unknown' vendor='unknown'>pxa270-c0</model>
+ <model usable='unknown' vendor='unknown'>pxa270-c5</model>
+ <model usable='unknown' vendor='unknown'>sa1100</model>
+ <model usable='unknown' vendor='unknown'>sa1110</model>
+ <model usable='unknown' vendor='unknown'>ti925t</model>
+ </mode>
+ </cpu>
+ <memoryBacking supported='yes'>
+ <enum name='sourceType'>
+ <value>file</value>
+ <value>anonymous</value>
+ <value>memfd</value>
+ </enum>
+ </memoryBacking>
+ <devices>
+ <disk supported='yes'>
+ <enum name='diskDevice'>
+ <value>disk</value>
+ <value>cdrom</value>
+ <value>floppy</value>
+ <value>lun</value>
+ </enum>
+ <enum name='bus'>
+ <value>fdc</value>
+ <value>scsi</value>
+ <value>virtio</value>
+ <value>usb</value>
+ <value>sata</value>
+ </enum>
+ <enum name='model'>
+ <value>virtio</value>
+ <value>virtio-transitional</value>
+ <value>virtio-non-transitional</value>
+ </enum>
+ </disk>
+ <graphics supported='yes'>
+ <enum name='type'>
+ <value>dbus</value>
+ </enum>
+ </graphics>
+ <video supported='yes'>
+ <enum name='modelType'>
+ <value>vga</value>
+ <value>cirrus</value>
+ <value>virtio</value>
+ <value>none</value>
+ <value>bochs</value>
+ <value>ramfb</value>
+ </enum>
+ </video>
+ <hostdev supported='yes'>
+ <enum name='mode'>
+ <value>subsystem</value>
+ </enum>
+ <enum name='startupPolicy'>
+ <value>default</value>
+ <value>mandatory</value>
+ <value>requisite</value>
+ <value>optional</value>
+ </enum>
+ <enum name='subsysType'>
+ <value>usb</value>
+ <value>pci</value>
+ <value>scsi</value>
+ </enum>
+ <enum name='capsType'/>
+ <enum name='pciBackend'>
+ <value>default</value>
+ <value>vfio</value>
+ </enum>
+ </hostdev>
+ <rng supported='yes'>
+ <enum name='model'>
+ <value>virtio</value>
+ <value>virtio-transitional</value>
+ <value>virtio-non-transitional</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>random</value>
+ <value>egd</value>
+ <value>builtin</value>
+ </enum>
+ </rng>
+ <filesystem supported='yes'>
+ <enum name='driverType'>
+ <value>path</value>
+ <value>handle</value>
+ <value>virtiofs</value>
+ </enum>
+ </filesystem>
+ <tpm supported='yes'>
+ <enum name='model'>
+ <value>tpm-tis</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>passthrough</value>
+ <value>emulator</value>
+ <value>external</value>
+ </enum>
+ <enum name='backendVersion'>
+ <value>2.0</value>
+ </enum>
+ </tpm>
+ <redirdev supported='no'/>
+ <channel supported='yes'>
+ <enum name='type'>
+ <value>pty</value>
+ <value>unix</value>
+ </enum>
+ </channel>
+ <crypto supported='yes'>
+ <enum name='model'>
+ <value>virtio</value>
+ </enum>
+ <enum name='type'>
+ <value>qemu</value>
+ </enum>
+ <enum name='backendModel'>
+ <value>builtin</value>
+ </enum>
+ </crypto>
+ <interface supported='yes'>
+ <enum name='backendType'>
+ <value>default</value>
+ <value>passt</value>
+ </enum>
+ </interface>
+ <panic supported='yes'>
+ <enum name='model'>
+ <value>pvpanic</value>
+ </enum>
+ </panic>
+ </devices>
+ <features>
+ <gic supported='yes'>
+ <enum name='version'>
+ <value>3</value>
+ </enum>
+ </gic>
+ <vmcoreinfo supported='yes'/>
+ <genid supported='no'/>
+ <backingStoreInput supported='yes'/>
+ <backup supported='yes'/>
+ <async-teardown supported='yes'/>
+ <ps2 supported='no'/>
+ <sev supported='no'/>
+ <sgx supported='no'/>
+ <cca supported='yes'>
+ <enum name='measurement-algo'>
+ <value>sha256</value>
+ <value>sha512</value>
+ </enum>
+ </cca>
+ <launchSecurity supported='yes'>
+ <enum name='sectype'>
+ <value>cca</value>
+ </enum>
+ </launchSecurity>
+ </features>
+</domainCapabilities>
--
2.34.1
1
0
- This test was added to check qemu capabilities for Arm
CCA support.
This test was created using the method described in the
documentation.
Signed-off-by: Akio Kakuno <fj3333bs(a)fujitsu.com>
---
.../caps_9.1.0_aarch64.replies | 36222 ++++++++++++++++
.../caps_9.1.0_aarch64.xml | 540 +
2 files changed, 36762 insertions(+)
create mode 100644 tests/qemucapabilitiesdata/caps_9.1.0_aarch64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_9.1.0_aarch64.xml
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_aarch64.replies b/tests/qemucapabilitiesdata/caps_9.1.0_aarch64.replies
new file mode 100644
index 0000000000..906a21f0c6
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_aarch64.replies
@@ -0,0 +1,36222 @@
+{
+ "execute": "qmp_capabilities",
+ "id": "libvirt-1"
+}
+
+{
+ "return": {},
+ "id": "libvirt-1"
+}
+
+{
+ "execute": "query-version",
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 91,
+ "minor": 1,
+ "major": 9
+ },
+ "package": ""
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "execute": "query-target",
+ "id": "libvirt-3"
+}
+
+{
+ "return": {
+ "arch": "aarch64"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "execute": "query-qmp-schema",
+ "id": "libvirt-4"
+}
+
+{
+ "return": [
+ {
+ "name": "query-status",
+ "ret-type": "1",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "SHUTDOWN",
+ "meta-type": "event",
+ "arg-type": "2"
+ },
+ {
+ "name": "POWERDOWN",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "RESET",
+ "meta-type": "event",
+ "arg-type": "3"
+ },
+ {
+ "name": "STOP",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "RESUME",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "SUSPEND",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "SUSPEND_DISK",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "WAKEUP",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "WATCHDOG",
+ "meta-type": "event",
+ "arg-type": "4"
+ },
+ {
+ "name": "watchdog-set-action",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "5"
+ },
+ {
+ "name": "set-action",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "6"
+ },
+ {
+ "name": "GUEST_PANICKED",
+ "meta-type": "event",
+ "arg-type": "7"
+ },
+ {
+ "name": "GUEST_CRASHLOADED",
+ "meta-type": "event",
+ "arg-type": "8"
+ },
+ {
+ "name": "GUEST_PVSHUTDOWN",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "MEMORY_FAILURE",
+ "meta-type": "event",
+ "arg-type": "9"
+ },
+ {
+ "name": "JOB_STATUS_CHANGE",
+ "meta-type": "event",
+ "arg-type": "10"
+ },
+ {
+ "name": "job-pause",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "11"
+ },
+ {
+ "name": "job-resume",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "12"
+ },
+ {
+ "name": "job-cancel",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "13"
+ },
+ {
+ "name": "job-complete",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "14"
+ },
+ {
+ "name": "job-dismiss",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "15"
+ },
+ {
+ "name": "job-finalize",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "16"
+ },
+ {
+ "name": "query-jobs",
+ "ret-type": "[17]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-pr-managers",
+ "ret-type": "[18]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "eject",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "19"
+ },
+ {
+ "name": "blockdev-open-tray",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "20"
+ },
+ {
+ "name": "blockdev-close-tray",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "21"
+ },
+ {
+ "name": "blockdev-remove-medium",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "22"
+ },
+ {
+ "name": "blockdev-insert-medium",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "23"
+ },
+ {
+ "name": "blockdev-change-medium",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "24"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED",
+ "meta-type": "event",
+ "arg-type": "25"
+ },
+ {
+ "name": "PR_MANAGER_STATUS_CHANGED",
+ "meta-type": "event",
+ "arg-type": "26"
+ },
+ {
+ "name": "block_set_io_throttle",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "27"
+ },
+ {
+ "name": "block-latency-histogram-set",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "28"
+ },
+ {
+ "name": "query-block",
+ "ret-type": "[29]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-blockstats",
+ "ret-type": "[31]",
+ "meta-type": "command",
+ "arg-type": "30"
+ },
+ {
+ "name": "query-block-jobs",
+ "ret-type": "[32]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "block_resize",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "33"
+ },
+ {
+ "name": "blockdev-snapshot-sync",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "34"
+ },
+ {
+ "name": "blockdev-snapshot",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "35",
+ "features": [
+ "allow-write-only-overlay"
+ ]
+ },
+ {
+ "name": "change-backing-file",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "36"
+ },
+ {
+ "name": "block-commit",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "drive-backup",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "38",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "blockdev-backup",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "39"
+ },
+ {
+ "name": "query-named-block-nodes",
+ "ret-type": "[41]",
+ "meta-type": "command",
+ "arg-type": "40"
+ },
+ {
+ "name": "x-debug-query-block-graph",
+ "ret-type": "42",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "drive-mirror",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "43"
+ },
+ {
+ "name": "block-dirty-bitmap-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "44"
+ },
+ {
+ "name": "block-dirty-bitmap-remove",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block-dirty-bitmap-clear",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block-dirty-bitmap-enable",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block-dirty-bitmap-disable",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block-dirty-bitmap-merge",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "46"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256",
+ "ret-type": "47",
+ "meta-type": "command",
+ "arg-type": "45",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "blockdev-mirror",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "48"
+ },
+ {
+ "name": "block-stream",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "49"
+ },
+ {
+ "name": "block-job-set-speed",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "50"
+ },
+ {
+ "name": "block-job-cancel",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "51"
+ },
+ {
+ "name": "block-job-pause",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "52"
+ },
+ {
+ "name": "block-job-resume",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "53"
+ },
+ {
+ "name": "block-job-complete",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "54"
+ },
+ {
+ "name": "block-job-dismiss",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "55"
+ },
+ {
+ "name": "block-job-finalize",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "56"
+ },
+ {
+ "name": "block-job-change",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "57"
+ },
+ {
+ "name": "blockdev-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "58"
+ },
+ {
+ "name": "blockdev-reopen",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "59"
+ },
+ {
+ "name": "blockdev-del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "60"
+ },
+ {
+ "name": "blockdev-create",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "61"
+ },
+ {
+ "name": "x-blockdev-amend",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "62",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED",
+ "meta-type": "event",
+ "arg-type": "63"
+ },
+ {
+ "name": "BLOCK_IO_ERROR",
+ "meta-type": "event",
+ "arg-type": "64"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "65"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED",
+ "meta-type": "event",
+ "arg-type": "66"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR",
+ "meta-type": "event",
+ "arg-type": "67"
+ },
+ {
+ "name": "BLOCK_JOB_READY",
+ "meta-type": "event",
+ "arg-type": "68"
+ },
+ {
+ "name": "BLOCK_JOB_PENDING",
+ "meta-type": "event",
+ "arg-type": "69"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD",
+ "meta-type": "event",
+ "arg-type": "70"
+ },
+ {
+ "name": "block-set-write-threshold",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "71"
+ },
+ {
+ "name": "x-blockdev-change",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "72",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-blockdev-set-iothread",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "73",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "QUORUM_FAILURE",
+ "meta-type": "event",
+ "arg-type": "74"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD",
+ "meta-type": "event",
+ "arg-type": "75"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "76"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync",
+ "ret-type": "78",
+ "meta-type": "command",
+ "arg-type": "77"
+ },
+ {
+ "name": "nbd-server-start",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "79"
+ },
+ {
+ "name": "nbd-server-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "80",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "nbd-server-remove",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "81",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "nbd-server-stop",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "block-export-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "82"
+ },
+ {
+ "name": "block-export-del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "83"
+ },
+ {
+ "name": "BLOCK_EXPORT_DELETED",
+ "meta-type": "event",
+ "arg-type": "84"
+ },
+ {
+ "name": "query-block-exports",
+ "ret-type": "[85]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-chardev",
+ "ret-type": "[86]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-chardev-backends",
+ "ret-type": "[87]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "ringbuf-write",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "88"
+ },
+ {
+ "name": "ringbuf-read",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "89"
+ },
+ {
+ "name": "chardev-add",
+ "ret-type": "91",
+ "meta-type": "command",
+ "arg-type": "90"
+ },
+ {
+ "name": "chardev-change",
+ "ret-type": "91",
+ "meta-type": "command",
+ "arg-type": "92"
+ },
+ {
+ "name": "chardev-remove",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "93"
+ },
+ {
+ "name": "chardev-send-break",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "94"
+ },
+ {
+ "name": "VSERPORT_CHANGE",
+ "meta-type": "event",
+ "arg-type": "95"
+ },
+ {
+ "name": "dump-guest-memory",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "96"
+ },
+ {
+ "name": "query-dump",
+ "ret-type": "97",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "DUMP_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "98"
+ },
+ {
+ "name": "query-dump-guest-memory-capability",
+ "ret-type": "99",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "set_link",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "100"
+ },
+ {
+ "name": "netdev_add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "101"
+ },
+ {
+ "name": "netdev_del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "102"
+ },
+ {
+ "name": "query-rx-filter",
+ "ret-type": "[104]",
+ "meta-type": "command",
+ "arg-type": "103"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED",
+ "meta-type": "event",
+ "arg-type": "105"
+ },
+ {
+ "name": "announce-self",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "106"
+ },
+ {
+ "name": "FAILOVER_NEGOTIATED",
+ "meta-type": "event",
+ "arg-type": "107"
+ },
+ {
+ "name": "NETDEV_STREAM_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "108"
+ },
+ {
+ "name": "NETDEV_STREAM_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "109"
+ },
+ {
+ "name": "query-rocker",
+ "ret-type": "113",
+ "meta-type": "command",
+ "arg-type": "112"
+ },
+ {
+ "name": "query-rocker-ports",
+ "ret-type": "[115]",
+ "meta-type": "command",
+ "arg-type": "114"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows",
+ "ret-type": "[117]",
+ "meta-type": "command",
+ "arg-type": "116"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[119]",
+ "meta-type": "command",
+ "arg-type": "118"
+ },
+ {
+ "name": "query-tpm-models",
+ "ret-type": "[120]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-tpm-types",
+ "ret-type": "[121]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-tpm",
+ "ret-type": "[122]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "set_password",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "123"
+ },
+ {
+ "name": "expire_password",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "124"
+ },
+ {
+ "name": "query-mice",
+ "ret-type": "[136]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "send-key",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "137"
+ },
+ {
+ "name": "input-send-event",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "138"
+ },
+ {
+ "name": "query-display-options",
+ "ret-type": "139",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "display-reload",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "140"
+ },
+ {
+ "name": "display-update",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "141"
+ },
+ {
+ "name": "client_migrate_info",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "142"
+ },
+ {
+ "name": "query-migrate",
+ "ret-type": "143",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-set-capabilities",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "144"
+ },
+ {
+ "name": "query-migrate-capabilities",
+ "ret-type": "[145]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-set-parameters",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "146"
+ },
+ {
+ "name": "query-migrate-parameters",
+ "ret-type": "147",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-start-postcopy",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "MIGRATION",
+ "meta-type": "event",
+ "arg-type": "148"
+ },
+ {
+ "name": "MIGRATION_PASS",
+ "meta-type": "event",
+ "arg-type": "149"
+ },
+ {
+ "name": "COLO_EXIT",
+ "meta-type": "event",
+ "arg-type": "150"
+ },
+ {
+ "name": "x-colo-lost-heartbeat",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "migrate_cancel",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-continue",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "151"
+ },
+ {
+ "name": "migrate",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "152"
+ },
+ {
+ "name": "migrate-incoming",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "153"
+ },
+ {
+ "name": "xen-save-devices-state",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "154"
+ },
+ {
+ "name": "xen-set-global-dirty-log",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "155"
+ },
+ {
+ "name": "xen-load-devices-state",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "156"
+ },
+ {
+ "name": "xen-set-replication",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "157"
+ },
+ {
+ "name": "query-xen-replication-status",
+ "ret-type": "158",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "xen-colo-do-checkpoint",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-colo-status",
+ "ret-type": "159",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "migrate-recover",
+ "ret-type": "0",
+ "allow-oob": true,
+ "meta-type": "command",
+ "arg-type": "160"
+ },
+ {
+ "name": "migrate-pause",
+ "ret-type": "0",
+ "allow-oob": true,
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "UNPLUG_PRIMARY",
+ "meta-type": "event",
+ "arg-type": "161"
+ },
+ {
+ "name": "calc-dirty-rate",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "162"
+ },
+ {
+ "name": "query-dirty-rate",
+ "ret-type": "164",
+ "meta-type": "command",
+ "arg-type": "163"
+ },
+ {
+ "name": "set-vcpu-dirty-limit",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "165"
+ },
+ {
+ "name": "cancel-vcpu-dirty-limit",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "166"
+ },
+ {
+ "name": "query-vcpu-dirty-limit",
+ "ret-type": "[167]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-migrationthreads",
+ "ret-type": "[168]",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "snapshot-save",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "169"
+ },
+ {
+ "name": "snapshot-load",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "170"
+ },
+ {
+ "name": "snapshot-delete",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "171"
+ },
+ {
+ "name": "transaction",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "172"
+ },
+ {
+ "name": "trace-event-get-state",
+ "ret-type": "[174]",
+ "meta-type": "command",
+ "arg-type": "173"
+ },
+ {
+ "name": "trace-event-set-state",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "175"
+ },
+ {
+ "name": "qmp_capabilities",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "176"
+ },
+ {
+ "name": "query-version",
+ "ret-type": "177",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-commands",
+ "ret-type": "[178]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "quit",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-qmp-schema",
+ "ret-type": "[179]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "qom-list",
+ "ret-type": "[181]",
+ "meta-type": "command",
+ "arg-type": "180"
+ },
+ {
+ "name": "qom-get",
+ "ret-type": "any",
+ "meta-type": "command",
+ "arg-type": "182"
+ },
+ {
+ "name": "qom-set",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "183"
+ },
+ {
+ "name": "qom-list-types",
+ "ret-type": "[185]",
+ "meta-type": "command",
+ "arg-type": "184"
+ },
+ {
+ "name": "qom-list-properties",
+ "ret-type": "[181]",
+ "meta-type": "command",
+ "arg-type": "186"
+ },
+ {
+ "name": "object-add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "187"
+ },
+ {
+ "name": "object-del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "188"
+ },
+ {
+ "name": "device-list-properties",
+ "ret-type": "[181]",
+ "meta-type": "command",
+ "arg-type": "189"
+ },
+ {
+ "name": "device_add",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "190",
+ "features": [
+ "json-cli",
+ "json-cli-hotplug"
+ ]
+ },
+ {
+ "name": "device_del",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "191"
+ },
+ {
+ "name": "DEVICE_DELETED",
+ "meta-type": "event",
+ "arg-type": "192"
+ },
+ {
+ "name": "DEVICE_UNPLUG_GUEST_ERROR",
+ "meta-type": "event",
+ "arg-type": "193"
+ },
+ {
+ "name": "device-sync-config",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "194",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "query-cpus-fast",
+ "ret-type": "[195]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-machines",
+ "ret-type": "[197]",
+ "meta-type": "command",
+ "arg-type": "196"
+ },
+ {
+ "name": "query-current-machine",
+ "ret-type": "198",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-target",
+ "ret-type": "199",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-uuid",
+ "ret-type": "200",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-vm-generation-id",
+ "ret-type": "201",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "system_reset",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "system_powerdown",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "system_wakeup",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "inject-nmi",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-kvm",
+ "ret-type": "202",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "memsave",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "203"
+ },
+ {
+ "name": "pmemsave",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "204"
+ },
+ {
+ "name": "query-memdev",
+ "ret-type": "[205]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-hotpluggable-cpus",
+ "ret-type": "[206]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "set-numa-node",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "207"
+ },
+ {
+ "name": "balloon",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "208"
+ },
+ {
+ "name": "query-balloon",
+ "ret-type": "209",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "BALLOON_CHANGE",
+ "meta-type": "event",
+ "arg-type": "210"
+ },
+ {
+ "name": "query-hv-balloon-status-report",
+ "ret-type": "211",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "HV_BALLOON_STATUS_REPORT",
+ "meta-type": "event",
+ "arg-type": "211"
+ },
+ {
+ "name": "query-memory-size-summary",
+ "ret-type": "212",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-memory-devices",
+ "ret-type": "[213]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "MEMORY_DEVICE_SIZE_CHANGE",
+ "meta-type": "event",
+ "arg-type": "214"
+ },
+ {
+ "name": "x-query-irq",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-jit",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-numa",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-opcount",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-ramblock",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-roms",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-usb",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "dumpdtb",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "216"
+ },
+ {
+ "name": "x-query-interrupt-controllers",
+ "ret-type": "215",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "query-cpu-model-expansion",
+ "ret-type": "222",
+ "meta-type": "command",
+ "arg-type": "221"
+ },
+ {
+ "name": "query-cpu-definitions",
+ "ret-type": "[223]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-replay",
+ "ret-type": "227",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "replay-break",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "228"
+ },
+ {
+ "name": "replay-delete-break",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "replay-seek",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "229"
+ },
+ {
+ "name": "yank",
+ "ret-type": "0",
+ "allow-oob": true,
+ "meta-type": "command",
+ "arg-type": "230"
+ },
+ {
+ "name": "query-yank",
+ "ret-type": "[231]",
+ "allow-oob": true,
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "add_client",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "232"
+ },
+ {
+ "name": "query-name",
+ "ret-type": "233",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-iothreads",
+ "ret-type": "[234]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "stop",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "cont",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "x-exit-preconfig",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "human-monitor-command",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "235",
+ "features": [
+ "savevm-monitor-nodes"
+ ]
+ },
+ {
+ "name": "getfd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "236"
+ },
+ {
+ "name": "closefd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "238"
+ },
+ {
+ "name": "add-fd",
+ "ret-type": "240",
+ "meta-type": "command",
+ "arg-type": "239"
+ },
+ {
+ "name": "remove-fd",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "241"
+ },
+ {
+ "name": "query-fdsets",
+ "ret-type": "[242]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-command-line-options",
+ "ret-type": "[244]",
+ "meta-type": "command",
+ "arg-type": "243"
+ },
+ {
+ "name": "RTC_CHANGE",
+ "meta-type": "event",
+ "arg-type": "245"
+ },
+ {
+ "name": "VFU_CLIENT_HANGUP",
+ "meta-type": "event",
+ "arg-type": "246"
+ },
+ {
+ "name": "query-cca-capabilities",
+ "ret-type": "250",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-gic-capabilities",
+ "ret-type": "[255]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-audiodevs",
+ "ret-type": "[259]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-acpi-ospm-status",
+ "ret-type": "[260]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "ACPI_DEVICE_OST",
+ "meta-type": "event",
+ "arg-type": "261"
+ },
+ {
+ "name": "query-pci",
+ "ret-type": "[262]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "query-stats",
+ "ret-type": "[264]",
+ "meta-type": "command",
+ "arg-type": "263"
+ },
+ {
+ "name": "query-stats-schemas",
+ "ret-type": "[266]",
+ "meta-type": "command",
+ "arg-type": "265"
+ },
+ {
+ "name": "x-query-virtio",
+ "ret-type": "[267]",
+ "meta-type": "command",
+ "arg-type": "0",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-virtio-status",
+ "ret-type": "269",
+ "meta-type": "command",
+ "arg-type": "268",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-virtio-queue-status",
+ "ret-type": "271",
+ "meta-type": "command",
+ "arg-type": "270",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-virtio-vhost-queue-status",
+ "ret-type": "273",
+ "meta-type": "command",
+ "arg-type": "272",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-query-virtio-queue-element",
+ "ret-type": "275",
+ "meta-type": "command",
+ "arg-type": "274",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "VFIO_MIGRATION",
+ "meta-type": "event",
+ "arg-type": "276"
+ },
+ {
+ "name": "query-cryptodev",
+ "ret-type": "[277]",
+ "meta-type": "command",
+ "arg-type": "0"
+ },
+ {
+ "name": "cxl-inject-general-media-event",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "278"
+ },
+ {
+ "name": "cxl-inject-dram-event",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "279"
+ },
+ {
+ "name": "cxl-inject-memory-module-event",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "280"
+ },
+ {
+ "name": "cxl-inject-poison",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "281"
+ },
+ {
+ "name": "cxl-inject-uncorrectable-errors",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "282"
+ },
+ {
+ "name": "cxl-inject-correctable-error",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "283"
+ },
+ {
+ "name": "cxl-add-dynamic-capacity",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "284",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "cxl-release-dynamic-capacity",
+ "ret-type": "0",
+ "meta-type": "command",
+ "arg-type": "285",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "0",
+ "members": [],
+ "meta-type": "object"
+ },
+ {
+ "name": "1",
+ "members": [
+ {
+ "name": "running",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "2",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "287"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "3",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "287"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "4",
+ "members": [
+ {
+ "name": "action",
+ "type": "288"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "5",
+ "members": [
+ {
+ "name": "action",
+ "type": "288"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "6",
+ "members": [
+ {
+ "name": "reboot",
+ "default": null,
+ "type": "289"
+ },
+ {
+ "name": "shutdown",
+ "default": null,
+ "type": "290"
+ },
+ {
+ "name": "panic",
+ "default": null,
+ "type": "291"
+ },
+ {
+ "name": "watchdog",
+ "default": null,
+ "type": "288"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "7",
+ "members": [
+ {
+ "name": "action",
+ "type": "292"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "8",
+ "members": [
+ {
+ "name": "action",
+ "type": "292"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "9",
+ "members": [
+ {
+ "name": "recipient",
+ "type": "294"
+ },
+ {
+ "name": "action",
+ "type": "295"
+ },
+ {
+ "name": "flags",
+ "type": "296"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "10",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "status",
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "11",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "12",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "13",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "14",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "15",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "16",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[17]",
+ "element-type": "17",
+ "meta-type": "array"
+ },
+ {
+ "name": "17",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "298"
+ },
+ {
+ "name": "status",
+ "type": "297"
+ },
+ {
+ "name": "current-progress",
+ "type": "int"
+ },
+ {
+ "name": "total-progress",
+ "type": "int"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[18]",
+ "element-type": "18",
+ "meta-type": "array"
+ },
+ {
+ "name": "18",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "19",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "20",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "21",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "22",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "23",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "24",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-only-mode",
+ "default": null,
+ "type": "299"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "25",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "tray-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "26",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "27",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "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": "28",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "boundaries",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "boundaries-read",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "boundaries-write",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "boundaries-zap",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "boundaries-flush",
+ "default": null,
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[29]",
+ "element-type": "29",
+ "meta-type": "array"
+ },
+ {
+ "name": "29",
+ "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": "41"
+ },
+ {
+ "name": "tray_open",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "io-status",
+ "default": null,
+ "type": "300"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "30",
+ "members": [
+ {
+ "name": "query-nodes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[31]",
+ "element-type": "31",
+ "meta-type": "array"
+ },
+ {
+ "name": "31",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "qdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "301"
+ },
+ {
+ "name": "driver-specific",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "31"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "31"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[32]",
+ "element-type": "32",
+ "meta-type": "array"
+ },
+ {
+ "name": "32",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "mirror",
+ "type": "303"
+ },
+ {
+ "case": "commit",
+ "type": "0"
+ },
+ {
+ "case": "stream",
+ "type": "0"
+ },
+ {
+ "case": "backup",
+ "type": "0"
+ },
+ {
+ "case": "create",
+ "type": "0"
+ },
+ {
+ "case": "amend",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-load",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-save",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-delete",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "298"
+ },
+ {
+ "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": "300"
+ },
+ {
+ "name": "ready",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "297"
+ },
+ {
+ "name": "auto-finalize",
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "type": "bool"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "33",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "34",
+ "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": "304"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "35",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "overlay",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "36",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "image-node-name",
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "37",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "top-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "top",
+ "default": null,
+ "type": "str",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-mask-protocol",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "38",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "306"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bitmap-mode",
+ "default": null,
+ "type": "307"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard-source",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "x-perf",
+ "default": null,
+ "type": "308",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "304"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "39",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "306"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bitmap-mode",
+ "default": null,
+ "type": "307"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard-source",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "x-perf",
+ "default": null,
+ "type": "308",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "target",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "40",
+ "members": [
+ {
+ "name": "flat",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[41]",
+ "element-type": "41",
+ "meta-type": "array"
+ },
+ {
+ "name": "41",
+ "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": "detect_zeroes",
+ "type": "309"
+ },
+ {
+ "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": "310"
+ },
+ {
+ "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": "311"
+ },
+ {
+ "name": "write_threshold",
+ "type": "int"
+ },
+ {
+ "name": "dirty-bitmaps",
+ "default": null,
+ "type": "[312]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "42",
+ "members": [
+ {
+ "name": "nodes",
+ "type": "[313]"
+ },
+ {
+ "name": "edges",
+ "type": "[314]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "43",
+ "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": "306"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "304"
+ },
+ {
+ "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": "305"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "unmap",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "copy-mode",
+ "default": null,
+ "type": "315"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "44",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "disabled",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "45",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "46",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "bitmaps",
+ "type": "[316]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "47",
+ "members": [
+ {
+ "name": "sha256",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "48",
+ "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": "306"
+ },
+ {
+ "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": "305"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "copy-mode",
+ "default": null,
+ "type": "315"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "49",
+ "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": "backing-mask-protocol",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "bottom",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "305"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auto-finalize",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-dismiss",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "50",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "51",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "52",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "53",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "54",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "55",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "56",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "57",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "mirror",
+ "type": "317"
+ },
+ {
+ "case": "commit",
+ "type": "0"
+ },
+ {
+ "case": "stream",
+ "type": "0"
+ },
+ {
+ "case": "backup",
+ "type": "0"
+ },
+ {
+ "case": "create",
+ "type": "0"
+ },
+ {
+ "case": "amend",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-load",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-save",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-delete",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "298"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "58",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "blkdebug",
+ "type": "321"
+ },
+ {
+ "case": "blklogwrites",
+ "type": "322"
+ },
+ {
+ "case": "blkverify",
+ "type": "323"
+ },
+ {
+ "case": "blkreplay",
+ "type": "324"
+ },
+ {
+ "case": "bochs",
+ "type": "325"
+ },
+ {
+ "case": "cloop",
+ "type": "325"
+ },
+ {
+ "case": "compress",
+ "type": "325"
+ },
+ {
+ "case": "copy-before-write",
+ "type": "326"
+ },
+ {
+ "case": "copy-on-read",
+ "type": "327"
+ },
+ {
+ "case": "dmg",
+ "type": "325"
+ },
+ {
+ "case": "file",
+ "type": "328"
+ },
+ {
+ "case": "ftp",
+ "type": "329"
+ },
+ {
+ "case": "ftps",
+ "type": "330"
+ },
+ {
+ "case": "gluster",
+ "type": "331"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "328"
+ },
+ {
+ "case": "host_device",
+ "type": "328"
+ },
+ {
+ "case": "http",
+ "type": "332"
+ },
+ {
+ "case": "https",
+ "type": "333"
+ },
+ {
+ "case": "iscsi",
+ "type": "335"
+ },
+ {
+ "case": "luks",
+ "type": "336"
+ },
+ {
+ "case": "nbd",
+ "type": "337"
+ },
+ {
+ "case": "nfs",
+ "type": "338"
+ },
+ {
+ "case": "null-aio",
+ "type": "339"
+ },
+ {
+ "case": "null-co",
+ "type": "339"
+ },
+ {
+ "case": "nvme",
+ "type": "340"
+ },
+ {
+ "case": "parallels",
+ "type": "325"
+ },
+ {
+ "case": "preallocate",
+ "type": "342"
+ },
+ {
+ "case": "qcow2",
+ "type": "343"
+ },
+ {
+ "case": "qcow",
+ "type": "344"
+ },
+ {
+ "case": "qed",
+ "type": "345"
+ },
+ {
+ "case": "quorum",
+ "type": "346"
+ },
+ {
+ "case": "raw",
+ "type": "347"
+ },
+ {
+ "case": "rbd",
+ "type": "348"
+ },
+ {
+ "case": "replication",
+ "type": "349"
+ },
+ {
+ "case": "snapshot-access",
+ "type": "325"
+ },
+ {
+ "case": "ssh",
+ "type": "350"
+ },
+ {
+ "case": "throttle",
+ "type": "351"
+ },
+ {
+ "case": "vdi",
+ "type": "325"
+ },
+ {
+ "case": "vhdx",
+ "type": "325"
+ },
+ {
+ "case": "vmdk",
+ "type": "345"
+ },
+ {
+ "case": "vpc",
+ "type": "325"
+ },
+ {
+ "case": "vvfat",
+ "type": "355"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "318"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard",
+ "default": null,
+ "type": "319"
+ },
+ {
+ "name": "cache",
+ "default": null,
+ "type": "320"
+ },
+ {
+ "name": "read-only",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "auto-read-only",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "force-share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detect-zeroes",
+ "default": null,
+ "type": "309"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "59",
+ "members": [
+ {
+ "name": "options",
+ "type": "[58]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "60",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "61",
+ "members": [
+ {
+ "name": "job-id",
+ "type": "str"
+ },
+ {
+ "name": "options",
+ "type": "356"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "62",
+ "members": [
+ {
+ "name": "job-id",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "options",
+ "type": "357"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "63",
+ "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": "64",
+ "members": [
+ {
+ "name": "qom-path",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "358"
+ },
+ {
+ "name": "action",
+ "type": "359"
+ },
+ {
+ "name": "nospace",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "65",
+ "members": [
+ {
+ "name": "type",
+ "type": "298"
+ },
+ {
+ "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": "66",
+ "members": [
+ {
+ "name": "type",
+ "type": "298"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "67",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "358"
+ },
+ {
+ "name": "action",
+ "type": "359"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "68",
+ "members": [
+ {
+ "name": "type",
+ "type": "298"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "69",
+ "members": [
+ {
+ "name": "type",
+ "type": "298"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "70",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "amount-exceeded",
+ "type": "int"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "71",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "72",
+ "members": [
+ {
+ "name": "parent",
+ "type": "str"
+ },
+ {
+ "name": "child",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "73",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "iothread",
+ "type": "360"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "74",
+ "members": [
+ {
+ "name": "reference",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "75",
+ "members": [
+ {
+ "name": "type",
+ "type": "361"
+ },
+ {
+ "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": "76",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "77",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "78",
+ "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"
+ },
+ {
+ "name": "icount",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "79",
+ "members": [
+ {
+ "name": "addr",
+ "type": "362"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-authz",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-connections",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "80",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "81",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "82",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "nbd",
+ "type": "365"
+ },
+ {
+ "case": "vhost-user-blk",
+ "type": "366"
+ },
+ {
+ "case": "vduse-blk",
+ "type": "368"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "364"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "fixed-iothread",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "writethrough",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "83",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "84",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[85]",
+ "element-type": "85",
+ "meta-type": "array"
+ },
+ {
+ "name": "85",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "364"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "shutting-down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[86]",
+ "element-type": "86",
+ "meta-type": "array"
+ },
+ {
+ "name": "86",
+ "members": [
+ {
+ "name": "label",
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "frontend-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[87]",
+ "element-type": "87",
+ "meta-type": "array"
+ },
+ {
+ "name": "87",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "88",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "369"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "89",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "369"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "str",
+ "json-type": "string",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "90",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "370"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "91",
+ "members": [
+ {
+ "name": "pty",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "92",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "370"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "93",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "94",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "95",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "96",
+ "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": "371"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "97",
+ "members": [
+ {
+ "name": "status",
+ "type": "372"
+ },
+ {
+ "name": "completed",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "98",
+ "members": [
+ {
+ "name": "result",
+ "type": "97"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "99",
+ "members": [
+ {
+ "name": "formats",
+ "type": "[371]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "100",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "up",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "101",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "nic",
+ "type": "374"
+ },
+ {
+ "case": "user",
+ "type": "375"
+ },
+ {
+ "case": "tap",
+ "type": "376"
+ },
+ {
+ "case": "l2tpv3",
+ "type": "377"
+ },
+ {
+ "case": "socket",
+ "type": "378"
+ },
+ {
+ "case": "stream",
+ "type": "379"
+ },
+ {
+ "case": "dgram",
+ "type": "380"
+ },
+ {
+ "case": "vde",
+ "type": "381"
+ },
+ {
+ "case": "bridge",
+ "type": "382"
+ },
+ {
+ "case": "hubport",
+ "type": "383"
+ },
+ {
+ "case": "netmap",
+ "type": "384"
+ },
+ {
+ "case": "vhost-user",
+ "type": "386"
+ },
+ {
+ "case": "vhost-vdpa",
+ "type": "387"
+ },
+ {
+ "case": "none",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "373"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "102",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "103",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[104]",
+ "element-type": "104",
+ "meta-type": "array"
+ },
+ {
+ "name": "104",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "promiscuous",
+ "type": "bool"
+ },
+ {
+ "name": "multicast",
+ "type": "391"
+ },
+ {
+ "name": "unicast",
+ "type": "391"
+ },
+ {
+ "name": "vlan",
+ "type": "391"
+ },
+ {
+ "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": "105",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "106",
+ "members": [
+ {
+ "name": "initial",
+ "type": "int"
+ },
+ {
+ "name": "max",
+ "type": "int"
+ },
+ {
+ "name": "rounds",
+ "type": "int"
+ },
+ {
+ "name": "step",
+ "type": "int"
+ },
+ {
+ "name": "interfaces",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "107",
+ "members": [
+ {
+ "name": "device-id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "108",
+ "members": [
+ {
+ "name": "netdev-id",
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "392"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "109",
+ "members": [
+ {
+ "name": "netdev-id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "112",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "113",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "ports",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "114",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[115]",
+ "element-type": "115",
+ "meta-type": "array"
+ },
+ {
+ "name": "115",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "link-up",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "duplex",
+ "type": "394"
+ },
+ {
+ "name": "autoneg",
+ "type": "395"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "116",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "tbl-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[117]",
+ "element-type": "117",
+ "meta-type": "array"
+ },
+ {
+ "name": "117",
+ "members": [
+ {
+ "name": "cookie",
+ "type": "int"
+ },
+ {
+ "name": "hits",
+ "type": "int"
+ },
+ {
+ "name": "key",
+ "type": "396"
+ },
+ {
+ "name": "mask",
+ "type": "397"
+ },
+ {
+ "name": "action",
+ "type": "398"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "118",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[119]",
+ "element-type": "119",
+ "meta-type": "array"
+ },
+ {
+ "name": "119",
+ "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": "[120]",
+ "element-type": "120",
+ "meta-type": "array"
+ },
+ {
+ "name": "120",
+ "members": [
+ {
+ "name": "tpm-tis"
+ },
+ {
+ "name": "tpm-crb"
+ },
+ {
+ "name": "tpm-spapr"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "tpm-tis",
+ "tpm-crb",
+ "tpm-spapr"
+ ]
+ },
+ {
+ "name": "[121]",
+ "element-type": "121",
+ "meta-type": "array"
+ },
+ {
+ "name": "121",
+ "members": [
+ {
+ "name": "passthrough"
+ },
+ {
+ "name": "emulator"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "passthrough",
+ "emulator"
+ ]
+ },
+ {
+ "name": "[122]",
+ "element-type": "122",
+ "meta-type": "array"
+ },
+ {
+ "name": "122",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "type": "120"
+ },
+ {
+ "name": "options",
+ "type": "399"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "123",
+ "tag": "protocol",
+ "variants": [
+ {
+ "case": "vnc",
+ "type": "402"
+ },
+ {
+ "case": "spice",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "protocol",
+ "type": "400"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "default": null,
+ "type": "401"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "124",
+ "tag": "protocol",
+ "variants": [
+ {
+ "case": "vnc",
+ "type": "403"
+ },
+ {
+ "case": "spice",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "protocol",
+ "type": "400"
+ },
+ {
+ "name": "time",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[136]",
+ "element-type": "136",
+ "meta-type": "array"
+ },
+ {
+ "name": "136",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "absolute",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "137",
+ "members": [
+ {
+ "name": "keys",
+ "type": "[416]"
+ },
+ {
+ "name": "hold-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "138",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "events",
+ "type": "[417]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "139",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dbus",
+ "type": "424"
+ },
+ {
+ "case": "default",
+ "type": "0"
+ },
+ {
+ "case": "none",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "418"
+ },
+ {
+ "name": "full-screen",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "window-close",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "show-cursor",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "gl",
+ "default": null,
+ "type": "419"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "140",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "vnc",
+ "type": "427"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "426"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "141",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "vnc",
+ "type": "429"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "428"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "142",
+ "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": "143",
+ "members": [
+ {
+ "name": "status",
+ "default": null,
+ "type": "430"
+ },
+ {
+ "name": "ram",
+ "default": null,
+ "type": "431"
+ },
+ {
+ "name": "vfio",
+ "default": null,
+ "type": "432"
+ },
+ {
+ "name": "xbzrle-cache",
+ "default": null,
+ "type": "433"
+ },
+ {
+ "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"
+ },
+ {
+ "name": "blocked-reasons",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "postcopy-blocktime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "postcopy-vcpu-blocktime",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "socket-address",
+ "default": null,
+ "type": "[392]"
+ },
+ {
+ "name": "dirty-limit-throttle-time-per-round",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "dirty-limit-ring-full-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "144",
+ "members": [
+ {
+ "name": "capabilities",
+ "type": "[145]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[145]",
+ "element-type": "145",
+ "meta-type": "array"
+ },
+ {
+ "name": "145",
+ "members": [
+ {
+ "name": "capability",
+ "type": "434"
+ },
+ {
+ "name": "state",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "146",
+ "members": [
+ {
+ "name": "announce-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "announce-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "announce-rounds",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "announce-step",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "throttle-trigger-threshold",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-tailslow",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "360"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "360"
+ },
+ {
+ "name": "tls-authz",
+ "default": null,
+ "type": "360"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "avail-switchover-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "multifd-channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "xbzrle-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-postcopy-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-cpu-throttle",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "multifd-compression",
+ "default": null,
+ "type": "435"
+ },
+ {
+ "name": "multifd-zlib-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "multifd-qatzip-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "multifd-zstd-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-bitmap-mapping",
+ "default": null,
+ "type": "[436]"
+ },
+ {
+ "name": "x-vcpu-dirty-limit-period",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "vcpu-dirty-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "437"
+ },
+ {
+ "name": "zero-page-detection",
+ "default": null,
+ "type": "438"
+ },
+ {
+ "name": "direct-io",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "147",
+ "members": [
+ {
+ "name": "announce-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "announce-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "announce-rounds",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "announce-step",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "throttle-trigger-threshold",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-tailslow",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-authz",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "avail-switchover-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "multifd-channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "xbzrle-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-postcopy-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-cpu-throttle",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "multifd-compression",
+ "default": null,
+ "type": "435"
+ },
+ {
+ "name": "multifd-zlib-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "multifd-qatzip-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "multifd-zstd-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-bitmap-mapping",
+ "default": null,
+ "type": "[436]"
+ },
+ {
+ "name": "x-vcpu-dirty-limit-period",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "vcpu-dirty-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "437"
+ },
+ {
+ "name": "zero-page-detection",
+ "default": null,
+ "type": "438"
+ },
+ {
+ "name": "direct-io",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "148",
+ "members": [
+ {
+ "name": "status",
+ "type": "430"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "149",
+ "members": [
+ {
+ "name": "pass",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "150",
+ "members": [
+ {
+ "name": "mode",
+ "type": "439"
+ },
+ {
+ "name": "reason",
+ "type": "440"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "151",
+ "members": [
+ {
+ "name": "state",
+ "type": "430"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "152",
+ "members": [
+ {
+ "name": "uri",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "[441]"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "resume",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "153",
+ "members": [
+ {
+ "name": "uri",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "[441]"
+ },
+ {
+ "name": "exit-on-error",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "154",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "live",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "155",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "156",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "157",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "primary",
+ "type": "bool"
+ },
+ {
+ "name": "failover",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "158",
+ "members": [
+ {
+ "name": "error",
+ "type": "bool"
+ },
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "159",
+ "members": [
+ {
+ "name": "mode",
+ "type": "439"
+ },
+ {
+ "name": "last-mode",
+ "type": "439"
+ },
+ {
+ "name": "reason",
+ "type": "440"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "160",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "161",
+ "members": [
+ {
+ "name": "device-id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "162",
+ "members": [
+ {
+ "name": "calc-time",
+ "type": "int"
+ },
+ {
+ "name": "calc-time-unit",
+ "default": null,
+ "type": "442"
+ },
+ {
+ "name": "sample-pages",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "443"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "163",
+ "members": [
+ {
+ "name": "calc-time-unit",
+ "default": null,
+ "type": "442"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "164",
+ "members": [
+ {
+ "name": "dirty-rate",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "444"
+ },
+ {
+ "name": "start-time",
+ "type": "int"
+ },
+ {
+ "name": "calc-time",
+ "type": "int"
+ },
+ {
+ "name": "calc-time-unit",
+ "type": "442"
+ },
+ {
+ "name": "sample-pages",
+ "type": "int"
+ },
+ {
+ "name": "mode",
+ "type": "443"
+ },
+ {
+ "name": "vcpu-dirty-rate",
+ "default": null,
+ "type": "[445]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "165",
+ "members": [
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "dirty-rate",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "166",
+ "members": [
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[167]",
+ "element-type": "167",
+ "meta-type": "array"
+ },
+ {
+ "name": "167",
+ "members": [
+ {
+ "name": "cpu-index",
+ "type": "int"
+ },
+ {
+ "name": "limit-rate",
+ "type": "int"
+ },
+ {
+ "name": "current-rate",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[168]",
+ "element-type": "168",
+ "meta-type": "array"
+ },
+ {
+ "name": "168",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "169",
+ "members": [
+ {
+ "name": "job-id",
+ "type": "str"
+ },
+ {
+ "name": "tag",
+ "type": "str"
+ },
+ {
+ "name": "vmstate",
+ "type": "str"
+ },
+ {
+ "name": "devices",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "170",
+ "members": [
+ {
+ "name": "job-id",
+ "type": "str"
+ },
+ {
+ "name": "tag",
+ "type": "str"
+ },
+ {
+ "name": "vmstate",
+ "type": "str"
+ },
+ {
+ "name": "devices",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "171",
+ "members": [
+ {
+ "name": "job-id",
+ "type": "str"
+ },
+ {
+ "name": "tag",
+ "type": "str"
+ },
+ {
+ "name": "devices",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "172",
+ "members": [
+ {
+ "name": "actions",
+ "type": "[446]"
+ },
+ {
+ "name": "properties",
+ "default": null,
+ "type": "447"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "173",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[174]",
+ "element-type": "174",
+ "meta-type": "array"
+ },
+ {
+ "name": "174",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "state",
+ "type": "448"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "175",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "ignore-unavailable",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "176",
+ "members": [
+ {
+ "name": "enable",
+ "default": null,
+ "type": "[449]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "177",
+ "members": [
+ {
+ "name": "qemu",
+ "type": "450"
+ },
+ {
+ "name": "package",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[178]",
+ "element-type": "178",
+ "meta-type": "array"
+ },
+ {
+ "name": "178",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[179]",
+ "element-type": "179",
+ "meta-type": "array"
+ },
+ {
+ "name": "179",
+ "tag": "meta-type",
+ "variants": [
+ {
+ "case": "builtin",
+ "type": "452"
+ },
+ {
+ "case": "enum",
+ "type": "453"
+ },
+ {
+ "case": "array",
+ "type": "454"
+ },
+ {
+ "case": "object",
+ "type": "455"
+ },
+ {
+ "case": "alternate",
+ "type": "456"
+ },
+ {
+ "case": "command",
+ "type": "457"
+ },
+ {
+ "case": "event",
+ "type": "458"
+ }
+ ],
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "meta-type",
+ "type": "451"
+ },
+ {
+ "name": "features",
+ "default": null,
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "180",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[181]",
+ "element-type": "181",
+ "meta-type": "array"
+ },
+ {
+ "name": "181",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default-value",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "182",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "any",
+ "json-type": "value",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "183",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "184",
+ "members": [
+ {
+ "name": "implements",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[185]",
+ "element-type": "185",
+ "meta-type": "array"
+ },
+ {
+ "name": "185",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "186",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "187",
+ "tag": "qom-type",
+ "variants": [
+ {
+ "case": "acpi-generic-initiator",
+ "type": "460"
+ },
+ {
+ "case": "acpi-generic-port",
+ "type": "461"
+ },
+ {
+ "case": "authz-list",
+ "type": "462"
+ },
+ {
+ "case": "authz-listfile",
+ "type": "463"
+ },
+ {
+ "case": "authz-pam",
+ "type": "464"
+ },
+ {
+ "case": "authz-simple",
+ "type": "465"
+ },
+ {
+ "case": "can-host-socketcan",
+ "type": "466"
+ },
+ {
+ "case": "colo-compare",
+ "type": "467"
+ },
+ {
+ "case": "cryptodev-backend",
+ "type": "468"
+ },
+ {
+ "case": "cryptodev-backend-builtin",
+ "type": "468"
+ },
+ {
+ "case": "cryptodev-backend-lkcf",
+ "type": "468"
+ },
+ {
+ "case": "cryptodev-vhost-user",
+ "type": "469"
+ },
+ {
+ "case": "dbus-vmstate",
+ "type": "470"
+ },
+ {
+ "case": "filter-buffer",
+ "type": "471"
+ },
+ {
+ "case": "filter-dump",
+ "type": "472"
+ },
+ {
+ "case": "filter-mirror",
+ "type": "473"
+ },
+ {
+ "case": "filter-redirector",
+ "type": "474"
+ },
+ {
+ "case": "filter-replay",
+ "type": "475"
+ },
+ {
+ "case": "filter-rewriter",
+ "type": "476"
+ },
+ {
+ "case": "input-barrier",
+ "type": "477"
+ },
+ {
+ "case": "input-linux",
+ "type": "478"
+ },
+ {
+ "case": "iommufd",
+ "type": "479"
+ },
+ {
+ "case": "iothread",
+ "type": "480"
+ },
+ {
+ "case": "main-loop",
+ "type": "481"
+ },
+ {
+ "case": "memory-backend-epc",
+ "type": "482"
+ },
+ {
+ "case": "memory-backend-file",
+ "type": "483"
+ },
+ {
+ "case": "memory-backend-memfd",
+ "type": "484"
+ },
+ {
+ "case": "memory-backend-ram",
+ "type": "485"
+ },
+ {
+ "case": "memory-backend-shm",
+ "type": "486"
+ },
+ {
+ "case": "pr-manager-helper",
+ "type": "487"
+ },
+ {
+ "case": "qtest",
+ "type": "488"
+ },
+ {
+ "case": "rme-guest",
+ "type": "489"
+ },
+ {
+ "case": "rng-builtin",
+ "type": "490"
+ },
+ {
+ "case": "rng-egd",
+ "type": "491"
+ },
+ {
+ "case": "rng-random",
+ "type": "492"
+ },
+ {
+ "case": "secret",
+ "type": "493"
+ },
+ {
+ "case": "secret_keyring",
+ "type": "494"
+ },
+ {
+ "case": "sev-guest",
+ "type": "495"
+ },
+ {
+ "case": "sev-snp-guest",
+ "type": "496"
+ },
+ {
+ "case": "thread-context",
+ "type": "497"
+ },
+ {
+ "case": "throttle-group",
+ "type": "498"
+ },
+ {
+ "case": "tls-creds-anon",
+ "type": "499"
+ },
+ {
+ "case": "tls-creds-psk",
+ "type": "500"
+ },
+ {
+ "case": "tls-creds-x509",
+ "type": "501"
+ },
+ {
+ "case": "tls-cipher-suites",
+ "type": "502"
+ },
+ {
+ "case": "x-remote-object",
+ "type": "503"
+ },
+ {
+ "case": "x-vfio-user-server",
+ "type": "504"
+ },
+ {
+ "case": "can-bus",
+ "type": "0"
+ },
+ {
+ "case": "pef-guest",
+ "type": "0"
+ },
+ {
+ "case": "s390-pv-guest",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "459"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "188",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "189",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "190",
+ "members": [
+ {
+ "name": "driver",
+ "type": "str"
+ },
+ {
+ "name": "bus",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "191",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "192",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "193",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "194",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[195]",
+ "element-type": "195",
+ "meta-type": "array"
+ },
+ {
+ "name": "195",
+ "tag": "target",
+ "variants": [
+ {
+ "case": "s390x",
+ "type": "507"
+ },
+ {
+ "case": "aarch64",
+ "type": "0"
+ },
+ {
+ "case": "alpha",
+ "type": "0"
+ },
+ {
+ "case": "arm",
+ "type": "0"
+ },
+ {
+ "case": "avr",
+ "type": "0"
+ },
+ {
+ "case": "hppa",
+ "type": "0"
+ },
+ {
+ "case": "i386",
+ "type": "0"
+ },
+ {
+ "case": "loongarch64",
+ "type": "0"
+ },
+ {
+ "case": "m68k",
+ "type": "0"
+ },
+ {
+ "case": "microblaze",
+ "type": "0"
+ },
+ {
+ "case": "microblazeel",
+ "type": "0"
+ },
+ {
+ "case": "mips",
+ "type": "0"
+ },
+ {
+ "case": "mips64",
+ "type": "0"
+ },
+ {
+ "case": "mips64el",
+ "type": "0"
+ },
+ {
+ "case": "mipsel",
+ "type": "0"
+ },
+ {
+ "case": "or1k",
+ "type": "0"
+ },
+ {
+ "case": "ppc",
+ "type": "0"
+ },
+ {
+ "case": "ppc64",
+ "type": "0"
+ },
+ {
+ "case": "riscv32",
+ "type": "0"
+ },
+ {
+ "case": "riscv64",
+ "type": "0"
+ },
+ {
+ "case": "rx",
+ "type": "0"
+ },
+ {
+ "case": "sh4",
+ "type": "0"
+ },
+ {
+ "case": "sh4eb",
+ "type": "0"
+ },
+ {
+ "case": "sparc",
+ "type": "0"
+ },
+ {
+ "case": "sparc64",
+ "type": "0"
+ },
+ {
+ "case": "tricore",
+ "type": "0"
+ },
+ {
+ "case": "x86_64",
+ "type": "0"
+ },
+ {
+ "case": "xtensa",
+ "type": "0"
+ },
+ {
+ "case": "xtensaeb",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "cpu-index",
+ "type": "int"
+ },
+ {
+ "name": "qom-path",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "505"
+ },
+ {
+ "name": "target",
+ "type": "506"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "196",
+ "members": [
+ {
+ "name": "compat-props",
+ "default": null,
+ "type": "bool",
+ "features": [
+ "unstable"
+ ]
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[197]",
+ "element-type": "197",
+ "meta-type": "array"
+ },
+ {
+ "name": "197",
+ "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"
+ },
+ {
+ "name": "numa-mem-supported",
+ "type": "bool"
+ },
+ {
+ "name": "deprecated",
+ "type": "bool"
+ },
+ {
+ "name": "default-cpu-type",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default-ram-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "acpi",
+ "type": "bool"
+ },
+ {
+ "name": "compat-props",
+ "default": null,
+ "type": "[508]",
+ "features": [
+ "unstable"
+ ]
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "198",
+ "members": [
+ {
+ "name": "wakeup-suspend-support",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "199",
+ "members": [
+ {
+ "name": "arch",
+ "type": "506"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "200",
+ "members": [
+ {
+ "name": "UUID",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "201",
+ "members": [
+ {
+ "name": "guid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "202",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "present",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "203",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "204",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[205]",
+ "element-type": "205",
+ "meta-type": "array"
+ },
+ {
+ "name": "205",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "type": "bool"
+ },
+ {
+ "name": "dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "name": "share",
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "type": "[int]"
+ },
+ {
+ "name": "policy",
+ "type": "509"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[206]",
+ "element-type": "206",
+ "meta-type": "array"
+ },
+ {
+ "name": "206",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "vcpus-count",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "type": "505"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "207",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "node",
+ "type": "511"
+ },
+ {
+ "case": "dist",
+ "type": "512"
+ },
+ {
+ "case": "cpu",
+ "type": "513"
+ },
+ {
+ "case": "hmat-lb",
+ "type": "514"
+ },
+ {
+ "case": "hmat-cache",
+ "type": "515"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "510"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "208",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "209",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "210",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "211",
+ "members": [
+ {
+ "name": "committed",
+ "type": "int"
+ },
+ {
+ "name": "available",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "212",
+ "members": [
+ {
+ "name": "base-memory",
+ "type": "int"
+ },
+ {
+ "name": "plugged-memory",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[213]",
+ "element-type": "213",
+ "meta-type": "array"
+ },
+ {
+ "name": "213",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dimm",
+ "type": "517"
+ },
+ {
+ "case": "nvdimm",
+ "type": "517"
+ },
+ {
+ "case": "virtio-pmem",
+ "type": "518"
+ },
+ {
+ "case": "virtio-mem",
+ "type": "519"
+ },
+ {
+ "case": "sgx-epc",
+ "type": "520"
+ },
+ {
+ "case": "hv-balloon",
+ "type": "521"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "516"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "214",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "qom-path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "215",
+ "members": [
+ {
+ "name": "human-readable-text",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "216",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "221",
+ "members": [
+ {
+ "name": "type",
+ "type": "524"
+ },
+ {
+ "name": "model",
+ "type": "522"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "222",
+ "members": [
+ {
+ "name": "model",
+ "type": "522"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[223]",
+ "element-type": "223",
+ "meta-type": "array"
+ },
+ {
+ "name": "223",
+ "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"
+ },
+ {
+ "name": "alias-of",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "deprecated",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "227",
+ "members": [
+ {
+ "name": "mode",
+ "type": "527"
+ },
+ {
+ "name": "filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "icount",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "228",
+ "members": [
+ {
+ "name": "icount",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "229",
+ "members": [
+ {
+ "name": "icount",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "230",
+ "members": [
+ {
+ "name": "instances",
+ "type": "[231]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[231]",
+ "element-type": "231",
+ "meta-type": "array"
+ },
+ {
+ "name": "231",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "block-node",
+ "type": "529"
+ },
+ {
+ "case": "chardev",
+ "type": "530"
+ },
+ {
+ "case": "migration",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "528"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "232",
+ "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": "233",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[234]",
+ "element-type": "234",
+ "meta-type": "array"
+ },
+ {
+ "name": "234",
+ "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"
+ },
+ {
+ "name": "aio-max-batch",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "235",
+ "members": [
+ {
+ "name": "command-line",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "236",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "238",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "239",
+ "members": [
+ {
+ "name": "fdset-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "240",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "241",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[242]",
+ "element-type": "242",
+ "meta-type": "array"
+ },
+ {
+ "name": "242",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fds",
+ "type": "[531]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "243",
+ "members": [
+ {
+ "name": "option",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[244]",
+ "element-type": "244",
+ "meta-type": "array"
+ },
+ {
+ "name": "244",
+ "members": [
+ {
+ "name": "option",
+ "type": "str"
+ },
+ {
+ "name": "parameters",
+ "type": "[532]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "245",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "qom-path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "246",
+ "members": [
+ {
+ "name": "vfu-id",
+ "type": "str"
+ },
+ {
+ "name": "vfu-qom-path",
+ "type": "str"
+ },
+ {
+ "name": "dev-id",
+ "type": "str"
+ },
+ {
+ "name": "dev-qom-path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "250",
+ "members": [
+ {
+ "name": "sections",
+ "type": "[537]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[255]",
+ "element-type": "255",
+ "meta-type": "array"
+ },
+ {
+ "name": "255",
+ "members": [
+ {
+ "name": "version",
+ "type": "int"
+ },
+ {
+ "name": "emulated",
+ "type": "bool"
+ },
+ {
+ "name": "kernel",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[259]",
+ "element-type": "259",
+ "meta-type": "array"
+ },
+ {
+ "name": "259",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "none",
+ "type": "541"
+ },
+ {
+ "case": "dbus",
+ "type": "541"
+ },
+ {
+ "case": "oss",
+ "type": "546"
+ },
+ {
+ "case": "wav",
+ "type": "551"
+ }
+ ],
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "driver",
+ "type": "540"
+ },
+ {
+ "name": "timer-period",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[260]",
+ "element-type": "260",
+ "meta-type": "array"
+ },
+ {
+ "name": "260",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "slot",
+ "type": "str"
+ },
+ {
+ "name": "slot-type",
+ "type": "552"
+ },
+ {
+ "name": "source",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "261",
+ "members": [
+ {
+ "name": "info",
+ "type": "260"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[262]",
+ "element-type": "262",
+ "meta-type": "array"
+ },
+ {
+ "name": "262",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "devices",
+ "type": "[553]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "263",
+ "tag": "target",
+ "variants": [
+ {
+ "case": "vcpu",
+ "type": "556"
+ },
+ {
+ "case": "vm",
+ "type": "0"
+ },
+ {
+ "case": "cryptodev",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "target",
+ "type": "554"
+ },
+ {
+ "name": "providers",
+ "default": null,
+ "type": "[555]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[264]",
+ "element-type": "264",
+ "meta-type": "array"
+ },
+ {
+ "name": "264",
+ "members": [
+ {
+ "name": "provider",
+ "type": "557"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "[558]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "265",
+ "members": [
+ {
+ "name": "provider",
+ "default": null,
+ "type": "557"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[266]",
+ "element-type": "266",
+ "meta-type": "array"
+ },
+ {
+ "name": "266",
+ "members": [
+ {
+ "name": "provider",
+ "type": "557"
+ },
+ {
+ "name": "target",
+ "type": "554"
+ },
+ {
+ "name": "stats",
+ "type": "[559]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[267]",
+ "element-type": "267",
+ "meta-type": "array"
+ },
+ {
+ "name": "267",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "268",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "269",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "device-id",
+ "type": "int"
+ },
+ {
+ "name": "vhost-started",
+ "type": "bool"
+ },
+ {
+ "name": "device-endian",
+ "type": "str"
+ },
+ {
+ "name": "guest-features",
+ "type": "560"
+ },
+ {
+ "name": "host-features",
+ "type": "560"
+ },
+ {
+ "name": "backend-features",
+ "type": "560"
+ },
+ {
+ "name": "num-vqs",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "561"
+ },
+ {
+ "name": "isr",
+ "type": "int"
+ },
+ {
+ "name": "queue-sel",
+ "type": "int"
+ },
+ {
+ "name": "vm-running",
+ "type": "bool"
+ },
+ {
+ "name": "broken",
+ "type": "bool"
+ },
+ {
+ "name": "disabled",
+ "type": "bool"
+ },
+ {
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "name": "started",
+ "type": "bool"
+ },
+ {
+ "name": "start-on-kick",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "name": "bus-name",
+ "type": "str"
+ },
+ {
+ "name": "use-guest-notifier-mask",
+ "type": "bool"
+ },
+ {
+ "name": "vhost-dev",
+ "default": null,
+ "type": "562"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "270",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "271",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "queue-index",
+ "type": "int"
+ },
+ {
+ "name": "inuse",
+ "type": "int"
+ },
+ {
+ "name": "vring-num",
+ "type": "int"
+ },
+ {
+ "name": "vring-num-default",
+ "type": "int"
+ },
+ {
+ "name": "vring-align",
+ "type": "int"
+ },
+ {
+ "name": "vring-desc",
+ "type": "int"
+ },
+ {
+ "name": "vring-avail",
+ "type": "int"
+ },
+ {
+ "name": "vring-used",
+ "type": "int"
+ },
+ {
+ "name": "last-avail-idx",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "shadow-avail-idx",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "used-idx",
+ "type": "int"
+ },
+ {
+ "name": "signalled-used",
+ "type": "int"
+ },
+ {
+ "name": "signalled-used-valid",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "272",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "273",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "kick",
+ "type": "int"
+ },
+ {
+ "name": "call",
+ "type": "int"
+ },
+ {
+ "name": "desc",
+ "type": "int"
+ },
+ {
+ "name": "avail",
+ "type": "int"
+ },
+ {
+ "name": "used",
+ "type": "int"
+ },
+ {
+ "name": "num",
+ "type": "int"
+ },
+ {
+ "name": "desc-phys",
+ "type": "int"
+ },
+ {
+ "name": "desc-size",
+ "type": "int"
+ },
+ {
+ "name": "avail-phys",
+ "type": "int"
+ },
+ {
+ "name": "avail-size",
+ "type": "int"
+ },
+ {
+ "name": "used-phys",
+ "type": "int"
+ },
+ {
+ "name": "used-size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "274",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "type": "int"
+ },
+ {
+ "name": "index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "275",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "descs",
+ "type": "[563]"
+ },
+ {
+ "name": "avail",
+ "type": "564"
+ },
+ {
+ "name": "used",
+ "type": "565"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "276",
+ "members": [
+ {
+ "name": "device-id",
+ "type": "str"
+ },
+ {
+ "name": "qom-path",
+ "type": "str"
+ },
+ {
+ "name": "device-state",
+ "type": "566"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[277]",
+ "element-type": "277",
+ "meta-type": "array"
+ },
+ {
+ "name": "277",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "[567]"
+ },
+ {
+ "name": "client",
+ "type": "[568]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "278",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "log",
+ "type": "569"
+ },
+ {
+ "name": "flags",
+ "type": "int"
+ },
+ {
+ "name": "dpa",
+ "type": "int"
+ },
+ {
+ "name": "descriptor",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "transaction-type",
+ "type": "int"
+ },
+ {
+ "name": "channel",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rank",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "device",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "component-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "279",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "log",
+ "type": "569"
+ },
+ {
+ "name": "flags",
+ "type": "int"
+ },
+ {
+ "name": "dpa",
+ "type": "int"
+ },
+ {
+ "name": "descriptor",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "transaction-type",
+ "type": "int"
+ },
+ {
+ "name": "channel",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rank",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "nibble-mask",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bank-group",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bank",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "row",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "column",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "correction-mask",
+ "default": null,
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "280",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "log",
+ "type": "569"
+ },
+ {
+ "name": "flags",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "health-status",
+ "type": "int"
+ },
+ {
+ "name": "media-status",
+ "type": "int"
+ },
+ {
+ "name": "additional-status",
+ "type": "int"
+ },
+ {
+ "name": "life-used",
+ "type": "int"
+ },
+ {
+ "name": "temperature",
+ "type": "int"
+ },
+ {
+ "name": "dirty-shutdown-count",
+ "type": "int"
+ },
+ {
+ "name": "corrected-volatile-error-count",
+ "type": "int"
+ },
+ {
+ "name": "corrected-persistent-error-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "281",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "start",
+ "type": "int"
+ },
+ {
+ "name": "length",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "282",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "errors",
+ "type": "[570]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "283",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "571"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "284",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "host-id",
+ "type": "int"
+ },
+ {
+ "name": "selection-policy",
+ "type": "572"
+ },
+ {
+ "name": "region",
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "extents",
+ "type": "[573]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "285",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "host-id",
+ "type": "int"
+ },
+ {
+ "name": "removal-policy",
+ "type": "574"
+ },
+ {
+ "name": "forced-removal",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "sanitize-on-release",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "region",
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "extents",
+ "type": "[573]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "bool",
+ "json-type": "boolean",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "286",
+ "members": [
+ {
+ "name": "debug"
+ },
+ {
+ "name": "inmigrate"
+ },
+ {
+ "name": "internal-error"
+ },
+ {
+ "name": "io-error"
+ },
+ {
+ "name": "paused"
+ },
+ {
+ "name": "postmigrate"
+ },
+ {
+ "name": "prelaunch"
+ },
+ {
+ "name": "finish-migrate"
+ },
+ {
+ "name": "restore-vm"
+ },
+ {
+ "name": "running"
+ },
+ {
+ "name": "save-vm"
+ },
+ {
+ "name": "shutdown"
+ },
+ {
+ "name": "suspended"
+ },
+ {
+ "name": "watchdog"
+ },
+ {
+ "name": "guest-panicked"
+ },
+ {
+ "name": "colo"
+ }
+ ],
+ "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": "287",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "host-error"
+ },
+ {
+ "name": "host-qmp-quit"
+ },
+ {
+ "name": "host-qmp-system-reset"
+ },
+ {
+ "name": "host-signal"
+ },
+ {
+ "name": "host-ui"
+ },
+ {
+ "name": "guest-shutdown"
+ },
+ {
+ "name": "guest-reset"
+ },
+ {
+ "name": "guest-panic"
+ },
+ {
+ "name": "subsystem-reset"
+ },
+ {
+ "name": "snapshot-load"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "host-error",
+ "host-qmp-quit",
+ "host-qmp-system-reset",
+ "host-signal",
+ "host-ui",
+ "guest-shutdown",
+ "guest-reset",
+ "guest-panic",
+ "subsystem-reset",
+ "snapshot-load"
+ ]
+ },
+ {
+ "name": "288",
+ "members": [
+ {
+ "name": "reset"
+ },
+ {
+ "name": "shutdown"
+ },
+ {
+ "name": "poweroff"
+ },
+ {
+ "name": "pause"
+ },
+ {
+ "name": "debug"
+ },
+ {
+ "name": "none"
+ },
+ {
+ "name": "inject-nmi"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown",
+ "poweroff",
+ "pause",
+ "debug",
+ "none",
+ "inject-nmi"
+ ]
+ },
+ {
+ "name": "289",
+ "members": [
+ {
+ "name": "reset"
+ },
+ {
+ "name": "shutdown"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown"
+ ]
+ },
+ {
+ "name": "290",
+ "members": [
+ {
+ "name": "poweroff"
+ },
+ {
+ "name": "pause"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "poweroff",
+ "pause"
+ ]
+ },
+ {
+ "name": "291",
+ "members": [
+ {
+ "name": "pause"
+ },
+ {
+ "name": "shutdown"
+ },
+ {
+ "name": "exit-failure"
+ },
+ {
+ "name": "none"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "shutdown",
+ "exit-failure",
+ "none"
+ ]
+ },
+ {
+ "name": "292",
+ "members": [
+ {
+ "name": "pause"
+ },
+ {
+ "name": "poweroff"
+ },
+ {
+ "name": "run"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "poweroff",
+ "run"
+ ]
+ },
+ {
+ "name": "293",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "hyper-v",
+ "type": "576"
+ },
+ {
+ "case": "s390",
+ "type": "577"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "575"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "294",
+ "members": [
+ {
+ "name": "hypervisor"
+ },
+ {
+ "name": "guest"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "hypervisor",
+ "guest"
+ ]
+ },
+ {
+ "name": "295",
+ "members": [
+ {
+ "name": "ignore"
+ },
+ {
+ "name": "inject"
+ },
+ {
+ "name": "fatal"
+ },
+ {
+ "name": "reset"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "inject",
+ "fatal",
+ "reset"
+ ]
+ },
+ {
+ "name": "296",
+ "members": [
+ {
+ "name": "action-required",
+ "type": "bool"
+ },
+ {
+ "name": "recursive",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "297",
+ "members": [
+ {
+ "name": "undefined"
+ },
+ {
+ "name": "created"
+ },
+ {
+ "name": "running"
+ },
+ {
+ "name": "paused"
+ },
+ {
+ "name": "ready"
+ },
+ {
+ "name": "standby"
+ },
+ {
+ "name": "waiting"
+ },
+ {
+ "name": "pending"
+ },
+ {
+ "name": "aborting"
+ },
+ {
+ "name": "concluded"
+ },
+ {
+ "name": "null"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "undefined",
+ "created",
+ "running",
+ "paused",
+ "ready",
+ "standby",
+ "waiting",
+ "pending",
+ "aborting",
+ "concluded",
+ "null"
+ ]
+ },
+ {
+ "name": "298",
+ "members": [
+ {
+ "name": "commit"
+ },
+ {
+ "name": "stream"
+ },
+ {
+ "name": "mirror"
+ },
+ {
+ "name": "backup"
+ },
+ {
+ "name": "create"
+ },
+ {
+ "name": "amend"
+ },
+ {
+ "name": "snapshot-load"
+ },
+ {
+ "name": "snapshot-save"
+ },
+ {
+ "name": "snapshot-delete"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "commit",
+ "stream",
+ "mirror",
+ "backup",
+ "create",
+ "amend",
+ "snapshot-load",
+ "snapshot-save",
+ "snapshot-delete"
+ ]
+ },
+ {
+ "name": "int",
+ "json-type": "int",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "299",
+ "members": [
+ {
+ "name": "retain"
+ },
+ {
+ "name": "read-only"
+ },
+ {
+ "name": "read-write"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "retain",
+ "read-only",
+ "read-write"
+ ]
+ },
+ {
+ "name": "[int]",
+ "element-type": "int",
+ "meta-type": "array"
+ },
+ {
+ "name": "300",
+ "members": [
+ {
+ "name": "ok"
+ },
+ {
+ "name": "failed"
+ },
+ {
+ "name": "nospace"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ok",
+ "failed",
+ "nospace"
+ ]
+ },
+ {
+ "name": "301",
+ "members": [
+ {
+ "name": "rd_bytes",
+ "type": "int"
+ },
+ {
+ "name": "wr_bytes",
+ "type": "int"
+ },
+ {
+ "name": "zone_append_bytes",
+ "type": "int"
+ },
+ {
+ "name": "unmap_bytes",
+ "type": "int"
+ },
+ {
+ "name": "rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "zone_append_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "unmap_operations",
+ "type": "int"
+ },
+ {
+ "name": "rd_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "zone_append_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "flush_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "unmap_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_highest_offset",
+ "type": "int"
+ },
+ {
+ "name": "rd_merged",
+ "type": "int"
+ },
+ {
+ "name": "wr_merged",
+ "type": "int"
+ },
+ {
+ "name": "zone_append_merged",
+ "type": "int"
+ },
+ {
+ "name": "unmap_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_zone_append_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_unmap_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_zone_append_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_unmap_operations",
+ "type": "int"
+ },
+ {
+ "name": "account_invalid",
+ "type": "bool"
+ },
+ {
+ "name": "account_failed",
+ "type": "bool"
+ },
+ {
+ "name": "timed_stats",
+ "type": "[578]"
+ },
+ {
+ "name": "rd_latency_histogram",
+ "default": null,
+ "type": "579"
+ },
+ {
+ "name": "wr_latency_histogram",
+ "default": null,
+ "type": "579"
+ },
+ {
+ "name": "zone_append_latency_histogram",
+ "default": null,
+ "type": "579"
+ },
+ {
+ "name": "flush_latency_histogram",
+ "default": null,
+ "type": "579"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "302",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "file",
+ "type": "580"
+ },
+ {
+ "case": "host_device",
+ "type": "580"
+ },
+ {
+ "case": "nvme",
+ "type": "581"
+ },
+ {
+ "case": "blkdebug",
+ "type": "0"
+ },
+ {
+ "case": "blklogwrites",
+ "type": "0"
+ },
+ {
+ "case": "blkreplay",
+ "type": "0"
+ },
+ {
+ "case": "blkverify",
+ "type": "0"
+ },
+ {
+ "case": "bochs",
+ "type": "0"
+ },
+ {
+ "case": "cloop",
+ "type": "0"
+ },
+ {
+ "case": "compress",
+ "type": "0"
+ },
+ {
+ "case": "copy-before-write",
+ "type": "0"
+ },
+ {
+ "case": "copy-on-read",
+ "type": "0"
+ },
+ {
+ "case": "dmg",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-access",
+ "type": "0"
+ },
+ {
+ "case": "ftp",
+ "type": "0"
+ },
+ {
+ "case": "ftps",
+ "type": "0"
+ },
+ {
+ "case": "gluster",
+ "type": "0"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "0"
+ },
+ {
+ "case": "http",
+ "type": "0"
+ },
+ {
+ "case": "https",
+ "type": "0"
+ },
+ {
+ "case": "iscsi",
+ "type": "0"
+ },
+ {
+ "case": "luks",
+ "type": "0"
+ },
+ {
+ "case": "nbd",
+ "type": "0"
+ },
+ {
+ "case": "nfs",
+ "type": "0"
+ },
+ {
+ "case": "null-aio",
+ "type": "0"
+ },
+ {
+ "case": "null-co",
+ "type": "0"
+ },
+ {
+ "case": "parallels",
+ "type": "0"
+ },
+ {
+ "case": "preallocate",
+ "type": "0"
+ },
+ {
+ "case": "qcow",
+ "type": "0"
+ },
+ {
+ "case": "qcow2",
+ "type": "0"
+ },
+ {
+ "case": "qed",
+ "type": "0"
+ },
+ {
+ "case": "quorum",
+ "type": "0"
+ },
+ {
+ "case": "raw",
+ "type": "0"
+ },
+ {
+ "case": "rbd",
+ "type": "0"
+ },
+ {
+ "case": "replication",
+ "type": "0"
+ },
+ {
+ "case": "ssh",
+ "type": "0"
+ },
+ {
+ "case": "throttle",
+ "type": "0"
+ },
+ {
+ "case": "vdi",
+ "type": "0"
+ },
+ {
+ "case": "vhdx",
+ "type": "0"
+ },
+ {
+ "case": "vmdk",
+ "type": "0"
+ },
+ {
+ "case": "vpc",
+ "type": "0"
+ },
+ {
+ "case": "vvfat",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "318"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "303",
+ "members": [
+ {
+ "name": "actively-synced",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "304",
+ "members": [
+ {
+ "name": "existing"
+ },
+ {
+ "name": "absolute-paths"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "existing",
+ "absolute-paths"
+ ]
+ },
+ {
+ "name": "305",
+ "members": [
+ {
+ "name": "report"
+ },
+ {
+ "name": "ignore"
+ },
+ {
+ "name": "enospc"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "auto"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "report",
+ "ignore",
+ "enospc",
+ "stop",
+ "auto"
+ ]
+ },
+ {
+ "name": "306",
+ "members": [
+ {
+ "name": "top"
+ },
+ {
+ "name": "full"
+ },
+ {
+ "name": "none"
+ },
+ {
+ "name": "incremental"
+ },
+ {
+ "name": "bitmap"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "top",
+ "full",
+ "none",
+ "incremental",
+ "bitmap"
+ ]
+ },
+ {
+ "name": "307",
+ "members": [
+ {
+ "name": "on-success"
+ },
+ {
+ "name": "never"
+ },
+ {
+ "name": "always"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "on-success",
+ "never",
+ "always"
+ ]
+ },
+ {
+ "name": "308",
+ "members": [
+ {
+ "name": "use-copy-range",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "max-workers",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-chunk",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "min-cluster-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "309",
+ "members": [
+ {
+ "name": "off"
+ },
+ {
+ "name": "on"
+ },
+ {
+ "name": "unmap"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "unmap"
+ ]
+ },
+ {
+ "name": "310",
+ "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": "[78]"
+ },
+ {
+ "name": "format-specific",
+ "default": null,
+ "type": "582"
+ },
+ {
+ "name": "backing-image",
+ "default": null,
+ "type": "310"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "311",
+ "members": [
+ {
+ "name": "writeback",
+ "type": "bool"
+ },
+ {
+ "name": "direct",
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[312]",
+ "element-type": "312",
+ "meta-type": "array"
+ },
+ {
+ "name": "312",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "count",
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "recording",
+ "type": "bool"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "persistent",
+ "type": "bool"
+ },
+ {
+ "name": "inconsistent",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[313]",
+ "element-type": "313",
+ "meta-type": "array"
+ },
+ {
+ "name": "313",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "583"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[314]",
+ "element-type": "314",
+ "meta-type": "array"
+ },
+ {
+ "name": "314",
+ "members": [
+ {
+ "name": "parent",
+ "type": "int"
+ },
+ {
+ "name": "child",
+ "type": "int"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "perm",
+ "type": "[584]"
+ },
+ {
+ "name": "shared-perm",
+ "type": "[584]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "315",
+ "members": [
+ {
+ "name": "background"
+ },
+ {
+ "name": "write-blocking"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "background",
+ "write-blocking"
+ ]
+ },
+ {
+ "name": "[316]",
+ "element-type": "316",
+ "meta-type": "array"
+ },
+ {
+ "name": "316",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "45"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "317",
+ "members": [
+ {
+ "name": "copy-mode",
+ "type": "315"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "318",
+ "members": [
+ {
+ "name": "blkdebug"
+ },
+ {
+ "name": "blklogwrites"
+ },
+ {
+ "name": "blkreplay"
+ },
+ {
+ "name": "blkverify"
+ },
+ {
+ "name": "bochs"
+ },
+ {
+ "name": "cloop"
+ },
+ {
+ "name": "compress"
+ },
+ {
+ "name": "copy-before-write"
+ },
+ {
+ "name": "copy-on-read"
+ },
+ {
+ "name": "dmg"
+ },
+ {
+ "name": "file"
+ },
+ {
+ "name": "snapshot-access"
+ },
+ {
+ "name": "ftp"
+ },
+ {
+ "name": "ftps"
+ },
+ {
+ "name": "gluster",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "host_cdrom"
+ },
+ {
+ "name": "host_device"
+ },
+ {
+ "name": "http"
+ },
+ {
+ "name": "https"
+ },
+ {
+ "name": "iscsi"
+ },
+ {
+ "name": "luks"
+ },
+ {
+ "name": "nbd"
+ },
+ {
+ "name": "nfs"
+ },
+ {
+ "name": "null-aio"
+ },
+ {
+ "name": "null-co"
+ },
+ {
+ "name": "nvme"
+ },
+ {
+ "name": "parallels"
+ },
+ {
+ "name": "preallocate"
+ },
+ {
+ "name": "qcow"
+ },
+ {
+ "name": "qcow2"
+ },
+ {
+ "name": "qed"
+ },
+ {
+ "name": "quorum"
+ },
+ {
+ "name": "raw"
+ },
+ {
+ "name": "rbd"
+ },
+ {
+ "name": "replication"
+ },
+ {
+ "name": "ssh"
+ },
+ {
+ "name": "throttle"
+ },
+ {
+ "name": "vdi"
+ },
+ {
+ "name": "vhdx"
+ },
+ {
+ "name": "vmdk"
+ },
+ {
+ "name": "vpc"
+ },
+ {
+ "name": "vvfat"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "blkdebug",
+ "blklogwrites",
+ "blkreplay",
+ "blkverify",
+ "bochs",
+ "cloop",
+ "compress",
+ "copy-before-write",
+ "copy-on-read",
+ "dmg",
+ "file",
+ "snapshot-access",
+ "ftp",
+ "ftps",
+ "gluster",
+ "host_cdrom",
+ "host_device",
+ "http",
+ "https",
+ "iscsi",
+ "luks",
+ "nbd",
+ "nfs",
+ "null-aio",
+ "null-co",
+ "nvme",
+ "parallels",
+ "preallocate",
+ "qcow",
+ "qcow2",
+ "qed",
+ "quorum",
+ "raw",
+ "rbd",
+ "replication",
+ "ssh",
+ "throttle",
+ "vdi",
+ "vhdx",
+ "vmdk",
+ "vpc",
+ "vvfat"
+ ]
+ },
+ {
+ "name": "319",
+ "members": [
+ {
+ "name": "ignore"
+ },
+ {
+ "name": "unmap"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "unmap"
+ ]
+ },
+ {
+ "name": "320",
+ "members": [
+ {
+ "name": "direct",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "321",
+ "members": [
+ {
+ "name": "image",
+ "type": "585"
+ },
+ {
+ "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": "[586]"
+ },
+ {
+ "name": "set-state",
+ "default": null,
+ "type": "[587]"
+ },
+ {
+ "name": "take-child-perms",
+ "default": null,
+ "type": "[584]"
+ },
+ {
+ "name": "unshare-child-perms",
+ "default": null,
+ "type": "[584]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "322",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "log",
+ "type": "585"
+ },
+ {
+ "name": "log-sector-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "log-append",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "log-super-update-interval",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "323",
+ "members": [
+ {
+ "name": "test",
+ "type": "585"
+ },
+ {
+ "name": "raw",
+ "type": "585"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "324",
+ "members": [
+ {
+ "name": "image",
+ "type": "585"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "325",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "326",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "target",
+ "type": "585"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "45"
+ },
+ {
+ "name": "on-cbw-error",
+ "default": null,
+ "type": "588"
+ },
+ {
+ "name": "cbw-timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "min-cluster-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "327",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "bottom",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "328",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "pr-manager",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "locking",
+ "default": null,
+ "type": "589"
+ },
+ {
+ "name": "aio",
+ "default": null,
+ "type": "590"
+ },
+ {
+ "name": "aio-max-batch",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "drop-cache",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "x-check-cache-dropped",
+ "default": null,
+ "type": "bool",
+ "features": [
+ "unstable"
+ ]
+ }
+ ],
+ "meta-type": "object",
+ "features": [
+ "dynamic-auto-read-only"
+ ]
+ },
+ {
+ "name": "329",
+ "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": "330",
+ "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": "331",
+ "members": [
+ {
+ "name": "volume",
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[392]"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "332",
+ "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": "333",
+ "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": "335",
+ "members": [
+ {
+ "name": "transport",
+ "type": "591"
+ },
+ {
+ "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": "592"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "336",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "header",
+ "default": null,
+ "type": "585"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "337",
+ "members": [
+ {
+ "name": "server",
+ "type": "392"
+ },
+ {
+ "name": "export",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "x-dirty-bitmap",
+ "default": null,
+ "type": "str",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "reconnect-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "open-timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "338",
+ "members": [
+ {
+ "name": "server",
+ "type": "593"
+ },
+ {
+ "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": "339",
+ "members": [
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "latency-ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "read-zeroes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "340",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "namespace",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "342",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "prealloc-align",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "prealloc-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "343",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "594"
+ },
+ {
+ "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": "discard-no-unref",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "overlap-check",
+ "default": null,
+ "type": "595"
+ },
+ {
+ "name": "cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "l2-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "l2-cache-entry-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": "596"
+ },
+ {
+ "name": "data-file",
+ "default": null,
+ "type": "585"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "344",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "594"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "597"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "345",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "594"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "346",
+ "members": [
+ {
+ "name": "blkverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "children",
+ "type": "[585]"
+ },
+ {
+ "name": "vote-threshold",
+ "type": "int"
+ },
+ {
+ "name": "rewrite-corrupted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-pattern",
+ "default": null,
+ "type": "598"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "347",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "348",
+ "members": [
+ {
+ "name": "pool",
+ "type": "str"
+ },
+ {
+ "name": "namespace",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "image",
+ "type": "str"
+ },
+ {
+ "name": "conf",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "599"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth-client-required",
+ "default": null,
+ "type": "[600]"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "[601]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "349",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "mode",
+ "type": "602"
+ },
+ {
+ "name": "top-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "350",
+ "members": [
+ {
+ "name": "server",
+ "type": "603"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "host-key-check",
+ "default": null,
+ "type": "604"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "351",
+ "members": [
+ {
+ "name": "throttle-group",
+ "type": "str"
+ },
+ {
+ "name": "file",
+ "type": "585"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "355",
+ "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": "[58]",
+ "element-type": "58",
+ "meta-type": "array"
+ },
+ {
+ "name": "356",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "file",
+ "type": "605"
+ },
+ {
+ "case": "gluster",
+ "type": "606"
+ },
+ {
+ "case": "luks",
+ "type": "607"
+ },
+ {
+ "case": "nfs",
+ "type": "608"
+ },
+ {
+ "case": "parallels",
+ "type": "609"
+ },
+ {
+ "case": "qcow",
+ "type": "610"
+ },
+ {
+ "case": "qcow2",
+ "type": "611"
+ },
+ {
+ "case": "qed",
+ "type": "612"
+ },
+ {
+ "case": "rbd",
+ "type": "613"
+ },
+ {
+ "case": "ssh",
+ "type": "614"
+ },
+ {
+ "case": "vdi",
+ "type": "615"
+ },
+ {
+ "case": "vhdx",
+ "type": "616"
+ },
+ {
+ "case": "vmdk",
+ "type": "617"
+ },
+ {
+ "case": "vpc",
+ "type": "618"
+ },
+ {
+ "case": "blkdebug",
+ "type": "0"
+ },
+ {
+ "case": "blklogwrites",
+ "type": "0"
+ },
+ {
+ "case": "blkreplay",
+ "type": "0"
+ },
+ {
+ "case": "blkverify",
+ "type": "0"
+ },
+ {
+ "case": "bochs",
+ "type": "0"
+ },
+ {
+ "case": "cloop",
+ "type": "0"
+ },
+ {
+ "case": "compress",
+ "type": "0"
+ },
+ {
+ "case": "copy-before-write",
+ "type": "0"
+ },
+ {
+ "case": "copy-on-read",
+ "type": "0"
+ },
+ {
+ "case": "dmg",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-access",
+ "type": "0"
+ },
+ {
+ "case": "ftp",
+ "type": "0"
+ },
+ {
+ "case": "ftps",
+ "type": "0"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "0"
+ },
+ {
+ "case": "host_device",
+ "type": "0"
+ },
+ {
+ "case": "http",
+ "type": "0"
+ },
+ {
+ "case": "https",
+ "type": "0"
+ },
+ {
+ "case": "iscsi",
+ "type": "0"
+ },
+ {
+ "case": "nbd",
+ "type": "0"
+ },
+ {
+ "case": "null-aio",
+ "type": "0"
+ },
+ {
+ "case": "null-co",
+ "type": "0"
+ },
+ {
+ "case": "nvme",
+ "type": "0"
+ },
+ {
+ "case": "preallocate",
+ "type": "0"
+ },
+ {
+ "case": "quorum",
+ "type": "0"
+ },
+ {
+ "case": "raw",
+ "type": "0"
+ },
+ {
+ "case": "replication",
+ "type": "0"
+ },
+ {
+ "case": "throttle",
+ "type": "0"
+ },
+ {
+ "case": "vvfat",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "318"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "357",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "luks",
+ "type": "619"
+ },
+ {
+ "case": "qcow2",
+ "type": "620"
+ },
+ {
+ "case": "blkdebug",
+ "type": "0"
+ },
+ {
+ "case": "blklogwrites",
+ "type": "0"
+ },
+ {
+ "case": "blkreplay",
+ "type": "0"
+ },
+ {
+ "case": "blkverify",
+ "type": "0"
+ },
+ {
+ "case": "bochs",
+ "type": "0"
+ },
+ {
+ "case": "cloop",
+ "type": "0"
+ },
+ {
+ "case": "compress",
+ "type": "0"
+ },
+ {
+ "case": "copy-before-write",
+ "type": "0"
+ },
+ {
+ "case": "copy-on-read",
+ "type": "0"
+ },
+ {
+ "case": "dmg",
+ "type": "0"
+ },
+ {
+ "case": "file",
+ "type": "0"
+ },
+ {
+ "case": "snapshot-access",
+ "type": "0"
+ },
+ {
+ "case": "ftp",
+ "type": "0"
+ },
+ {
+ "case": "ftps",
+ "type": "0"
+ },
+ {
+ "case": "gluster",
+ "type": "0"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "0"
+ },
+ {
+ "case": "host_device",
+ "type": "0"
+ },
+ {
+ "case": "http",
+ "type": "0"
+ },
+ {
+ "case": "https",
+ "type": "0"
+ },
+ {
+ "case": "iscsi",
+ "type": "0"
+ },
+ {
+ "case": "nbd",
+ "type": "0"
+ },
+ {
+ "case": "nfs",
+ "type": "0"
+ },
+ {
+ "case": "null-aio",
+ "type": "0"
+ },
+ {
+ "case": "null-co",
+ "type": "0"
+ },
+ {
+ "case": "nvme",
+ "type": "0"
+ },
+ {
+ "case": "parallels",
+ "type": "0"
+ },
+ {
+ "case": "preallocate",
+ "type": "0"
+ },
+ {
+ "case": "qcow",
+ "type": "0"
+ },
+ {
+ "case": "qed",
+ "type": "0"
+ },
+ {
+ "case": "quorum",
+ "type": "0"
+ },
+ {
+ "case": "raw",
+ "type": "0"
+ },
+ {
+ "case": "rbd",
+ "type": "0"
+ },
+ {
+ "case": "replication",
+ "type": "0"
+ },
+ {
+ "case": "ssh",
+ "type": "0"
+ },
+ {
+ "case": "throttle",
+ "type": "0"
+ },
+ {
+ "case": "vdi",
+ "type": "0"
+ },
+ {
+ "case": "vhdx",
+ "type": "0"
+ },
+ {
+ "case": "vmdk",
+ "type": "0"
+ },
+ {
+ "case": "vpc",
+ "type": "0"
+ },
+ {
+ "case": "vvfat",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "318"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "358",
+ "members": [
+ {
+ "name": "read"
+ },
+ {
+ "name": "write"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write"
+ ]
+ },
+ {
+ "name": "359",
+ "members": [
+ {
+ "name": "ignore"
+ },
+ {
+ "name": "report"
+ },
+ {
+ "name": "stop"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "report",
+ "stop"
+ ]
+ },
+ {
+ "name": "360",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "361",
+ "members": [
+ {
+ "name": "read"
+ },
+ {
+ "name": "write"
+ },
+ {
+ "name": "flush"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "flush"
+ ]
+ },
+ {
+ "name": "362",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "622"
+ },
+ {
+ "case": "unix",
+ "type": "623"
+ },
+ {
+ "case": "vsock",
+ "type": "624"
+ },
+ {
+ "case": "fd",
+ "type": "625"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "621"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "363",
+ "members": [
+ {
+ "name": "safe"
+ },
+ {
+ "name": "hard"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "safe",
+ "hard"
+ ]
+ },
+ {
+ "name": "364",
+ "members": [
+ {
+ "name": "nbd"
+ },
+ {
+ "name": "vhost-user-blk"
+ },
+ {
+ "name": "vduse-blk"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "nbd",
+ "vhost-user-blk",
+ "vduse-blk"
+ ]
+ },
+ {
+ "name": "365",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bitmaps",
+ "default": null,
+ "type": "[316]"
+ },
+ {
+ "name": "allocation-depth",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "366",
+ "members": [
+ {
+ "name": "addr",
+ "type": "392"
+ },
+ {
+ "name": "logical-block-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "num-queues",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "368",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "num-queues",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "queue-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logical-block-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "serial",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "369",
+ "members": [
+ {
+ "name": "utf8"
+ },
+ {
+ "name": "base64"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "utf8",
+ "base64"
+ ]
+ },
+ {
+ "name": "370",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "file",
+ "type": "628"
+ },
+ {
+ "case": "serial",
+ "type": "629"
+ },
+ {
+ "case": "parallel",
+ "type": "629"
+ },
+ {
+ "case": "pipe",
+ "type": "629"
+ },
+ {
+ "case": "socket",
+ "type": "630"
+ },
+ {
+ "case": "udp",
+ "type": "631"
+ },
+ {
+ "case": "pty",
+ "type": "632"
+ },
+ {
+ "case": "null",
+ "type": "633"
+ },
+ {
+ "case": "mux",
+ "type": "634"
+ },
+ {
+ "case": "msmouse",
+ "type": "633"
+ },
+ {
+ "case": "wctablet",
+ "type": "633"
+ },
+ {
+ "case": "testdev",
+ "type": "633"
+ },
+ {
+ "case": "stdio",
+ "type": "635"
+ },
+ {
+ "case": "dbus",
+ "type": "639"
+ },
+ {
+ "case": "vc",
+ "type": "640"
+ },
+ {
+ "case": "ringbuf",
+ "type": "641"
+ },
+ {
+ "case": "memory",
+ "type": "641"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "627"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "371",
+ "members": [
+ {
+ "name": "elf"
+ },
+ {
+ "name": "kdump-zlib"
+ },
+ {
+ "name": "kdump-lzo"
+ },
+ {
+ "name": "kdump-snappy"
+ },
+ {
+ "name": "kdump-raw-zlib"
+ },
+ {
+ "name": "kdump-raw-lzo"
+ },
+ {
+ "name": "kdump-raw-snappy"
+ },
+ {
+ "name": "win-dmp"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "elf",
+ "kdump-zlib",
+ "kdump-lzo",
+ "kdump-snappy",
+ "kdump-raw-zlib",
+ "kdump-raw-lzo",
+ "kdump-raw-snappy",
+ "win-dmp"
+ ]
+ },
+ {
+ "name": "372",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "active"
+ },
+ {
+ "name": "completed"
+ },
+ {
+ "name": "failed"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "active",
+ "completed",
+ "failed"
+ ]
+ },
+ {
+ "name": "[371]",
+ "element-type": "371",
+ "meta-type": "array"
+ },
+ {
+ "name": "373",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "nic"
+ },
+ {
+ "name": "user"
+ },
+ {
+ "name": "tap"
+ },
+ {
+ "name": "l2tpv3"
+ },
+ {
+ "name": "socket"
+ },
+ {
+ "name": "stream"
+ },
+ {
+ "name": "dgram"
+ },
+ {
+ "name": "vde"
+ },
+ {
+ "name": "bridge"
+ },
+ {
+ "name": "hubport"
+ },
+ {
+ "name": "netmap"
+ },
+ {
+ "name": "vhost-user"
+ },
+ {
+ "name": "vhost-vdpa"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "nic",
+ "user",
+ "tap",
+ "l2tpv3",
+ "socket",
+ "stream",
+ "dgram",
+ "vde",
+ "bridge",
+ "hubport",
+ "netmap",
+ "vhost-user",
+ "vhost-vdpa"
+ ]
+ },
+ {
+ "name": "374",
+ "members": [
+ {
+ "name": "netdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "macaddr",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "vectors",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "375",
+ "members": [
+ {
+ "name": "hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "restrict",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv4",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ip",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "net",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tftp",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bootfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "dhcpstart",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "dns",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "dnssearch",
+ "default": null,
+ "type": "[642]"
+ },
+ {
+ "name": "domainname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ipv6-prefix",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ipv6-prefixlen",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ipv6-host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ipv6-dns",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "smb",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "smbserver",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "hostfwd",
+ "default": null,
+ "type": "[642]"
+ },
+ {
+ "name": "guestfwd",
+ "default": null,
+ "type": "[642]"
+ },
+ {
+ "name": "tftp-server-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "376",
+ "members": [
+ {
+ "name": "ifname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "fds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "script",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "downscript",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "br",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "helper",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sndbuf",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vnet_hdr",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vhost",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vhostfd",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "vhostfds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "vhostforce",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "queues",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "poll-us",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "377",
+ "members": [
+ {
+ "name": "src",
+ "type": "str"
+ },
+ {
+ "name": "dst",
+ "type": "str"
+ },
+ {
+ "name": "srcport",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "dstport",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "udp",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cookie64",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "counter",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pincounter",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "txcookie",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rxcookie",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "txsession",
+ "type": "int"
+ },
+ {
+ "name": "rxsession",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "378",
+ "members": [
+ {
+ "name": "fd",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "listen",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "connect",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mcast",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "localaddr",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "udp",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "379",
+ "members": [
+ {
+ "name": "addr",
+ "type": "392"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reconnect",
+ "default": null,
+ "type": "int",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "reconnect-ms",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "380",
+ "members": [
+ {
+ "name": "local",
+ "default": null,
+ "type": "392"
+ },
+ {
+ "name": "remote",
+ "default": null,
+ "type": "392"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "381",
+ "members": [
+ {
+ "name": "sock",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "382",
+ "members": [
+ {
+ "name": "br",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "helper",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "383",
+ "members": [
+ {
+ "name": "hubid",
+ "type": "int"
+ },
+ {
+ "name": "netdev",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "384",
+ "members": [
+ {
+ "name": "ifname",
+ "type": "str"
+ },
+ {
+ "name": "devname",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "386",
+ "members": [
+ {
+ "name": "chardev",
+ "type": "str"
+ },
+ {
+ "name": "vhostforce",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "queues",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "387",
+ "members": [
+ {
+ "name": "vhostdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "vhostfd",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "queues",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-svq",
+ "default": null,
+ "type": "bool",
+ "features": [
+ "unstable"
+ ]
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "391",
+ "members": [
+ {
+ "name": "normal"
+ },
+ {
+ "name": "none"
+ },
+ {
+ "name": "all"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "none",
+ "all"
+ ]
+ },
+ {
+ "name": "[str]",
+ "element-type": "str",
+ "meta-type": "array"
+ },
+ {
+ "name": "392",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "603"
+ },
+ {
+ "case": "unix",
+ "type": "644"
+ },
+ {
+ "case": "vsock",
+ "type": "645"
+ },
+ {
+ "case": "fd",
+ "type": "646"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "621"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "394",
+ "members": [
+ {
+ "name": "half"
+ },
+ {
+ "name": "full"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "half",
+ "full"
+ ]
+ },
+ {
+ "name": "395",
+ "members": [
+ {
+ "name": "off"
+ },
+ {
+ "name": "on"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on"
+ ]
+ },
+ {
+ "name": "396",
+ "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": "397",
+ "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": "398",
+ "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": "399",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "passthrough",
+ "type": "647"
+ },
+ {
+ "case": "emulator",
+ "type": "648"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "121"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "400",
+ "members": [
+ {
+ "name": "vnc"
+ },
+ {
+ "name": "spice"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "vnc",
+ "spice"
+ ]
+ },
+ {
+ "name": "401",
+ "members": [
+ {
+ "name": "keep"
+ },
+ {
+ "name": "fail"
+ },
+ {
+ "name": "disconnect"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "keep",
+ "fail",
+ "disconnect"
+ ]
+ },
+ {
+ "name": "402",
+ "members": [
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "403",
+ "members": [
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "404",
+ "members": [
+ {
+ "name": "ppm"
+ },
+ {
+ "name": "png"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ppm",
+ "png"
+ ]
+ },
+ {
+ "name": "409",
+ "members": [
+ {
+ "name": "ipv4"
+ },
+ {
+ "name": "ipv6"
+ },
+ {
+ "name": "unix"
+ },
+ {
+ "name": "vsock"
+ },
+ {
+ "name": "unknown"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ipv4",
+ "ipv6",
+ "unix",
+ "vsock",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[416]",
+ "element-type": "416",
+ "meta-type": "array"
+ },
+ {
+ "name": "416",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "number",
+ "type": "650"
+ },
+ {
+ "case": "qcode",
+ "type": "651"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "649"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[417]",
+ "element-type": "417",
+ "meta-type": "array"
+ },
+ {
+ "name": "417",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "key",
+ "type": "653"
+ },
+ {
+ "case": "btn",
+ "type": "654"
+ },
+ {
+ "case": "rel",
+ "type": "655"
+ },
+ {
+ "case": "abs",
+ "type": "655"
+ },
+ {
+ "case": "mtt",
+ "type": "656"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "652"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "418",
+ "members": [
+ {
+ "name": "default"
+ },
+ {
+ "name": "none"
+ },
+ {
+ "name": "dbus"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "none",
+ "dbus"
+ ]
+ },
+ {
+ "name": "419",
+ "members": [
+ {
+ "name": "off"
+ },
+ {
+ "name": "on"
+ },
+ {
+ "name": "core"
+ },
+ {
+ "name": "es"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "core",
+ "es"
+ ]
+ },
+ {
+ "name": "420",
+ "members": [
+ {
+ "name": "grab-on-hover",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "zoom-to-fit",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "show-tabs",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "show-menubar",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "421",
+ "members": [
+ {
+ "name": "left-command-key",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "full-grab",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "swap-opt-cmd",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "zoom-to-fit",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "zoom-interpolation",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "422",
+ "members": [
+ {
+ "name": "charset",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "423",
+ "members": [
+ {
+ "name": "rendernode",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "424",
+ "members": [
+ {
+ "name": "rendernode",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "p2p",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "audiodev",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "425",
+ "members": [
+ {
+ "name": "grab-mod",
+ "default": null,
+ "type": "657"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "426",
+ "members": [
+ {
+ "name": "vnc"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "vnc"
+ ]
+ },
+ {
+ "name": "427",
+ "members": [
+ {
+ "name": "tls-certs",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "428",
+ "members": [
+ {
+ "name": "vnc"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "vnc"
+ ]
+ },
+ {
+ "name": "429",
+ "members": [
+ {
+ "name": "addresses",
+ "default": null,
+ "type": "[392]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "430",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "setup"
+ },
+ {
+ "name": "cancelling"
+ },
+ {
+ "name": "cancelled"
+ },
+ {
+ "name": "active"
+ },
+ {
+ "name": "postcopy-active"
+ },
+ {
+ "name": "postcopy-paused"
+ },
+ {
+ "name": "postcopy-recover-setup"
+ },
+ {
+ "name": "postcopy-recover"
+ },
+ {
+ "name": "completed"
+ },
+ {
+ "name": "failed"
+ },
+ {
+ "name": "colo"
+ },
+ {
+ "name": "pre-switchover"
+ },
+ {
+ "name": "device"
+ },
+ {
+ "name": "wait-unplug"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "setup",
+ "cancelling",
+ "cancelled",
+ "active",
+ "postcopy-active",
+ "postcopy-paused",
+ "postcopy-recover-setup",
+ "postcopy-recover",
+ "completed",
+ "failed",
+ "colo",
+ "pre-switchover",
+ "device",
+ "wait-unplug"
+ ]
+ },
+ {
+ "name": "431",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ },
+ {
+ "name": "remaining",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ },
+ {
+ "name": "duplicate",
+ "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"
+ },
+ {
+ "name": "multifd-bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages-per-second",
+ "type": "int"
+ },
+ {
+ "name": "precopy-bytes",
+ "type": "int"
+ },
+ {
+ "name": "downtime-bytes",
+ "type": "int"
+ },
+ {
+ "name": "postcopy-bytes",
+ "type": "int"
+ },
+ {
+ "name": "dirty-sync-missed-zero-copy",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "432",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "433",
+ "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": "encoding-rate",
+ "type": "number"
+ },
+ {
+ "name": "overflow",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[392]",
+ "element-type": "392",
+ "meta-type": "array"
+ },
+ {
+ "name": "434",
+ "members": [
+ {
+ "name": "xbzrle"
+ },
+ {
+ "name": "rdma-pin-all"
+ },
+ {
+ "name": "auto-converge"
+ },
+ {
+ "name": "zero-blocks",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "events"
+ },
+ {
+ "name": "postcopy-ram"
+ },
+ {
+ "name": "x-colo",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "release-ram"
+ },
+ {
+ "name": "return-path"
+ },
+ {
+ "name": "pause-before-switchover"
+ },
+ {
+ "name": "multifd"
+ },
+ {
+ "name": "dirty-bitmaps"
+ },
+ {
+ "name": "postcopy-blocktime"
+ },
+ {
+ "name": "late-block-activate"
+ },
+ {
+ "name": "x-ignore-shared",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "validate-uuid"
+ },
+ {
+ "name": "background-snapshot"
+ },
+ {
+ "name": "zero-copy-send"
+ },
+ {
+ "name": "postcopy-preempt"
+ },
+ {
+ "name": "switchover-ack"
+ },
+ {
+ "name": "dirty-limit"
+ },
+ {
+ "name": "mapped-ram"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "xbzrle",
+ "rdma-pin-all",
+ "auto-converge",
+ "zero-blocks",
+ "events",
+ "postcopy-ram",
+ "x-colo",
+ "release-ram",
+ "return-path",
+ "pause-before-switchover",
+ "multifd",
+ "dirty-bitmaps",
+ "postcopy-blocktime",
+ "late-block-activate",
+ "x-ignore-shared",
+ "validate-uuid",
+ "background-snapshot",
+ "zero-copy-send",
+ "postcopy-preempt",
+ "switchover-ack",
+ "dirty-limit",
+ "mapped-ram"
+ ]
+ },
+ {
+ "name": "435",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "zlib"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "zlib"
+ ]
+ },
+ {
+ "name": "[436]",
+ "element-type": "436",
+ "meta-type": "array"
+ },
+ {
+ "name": "436",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "alias",
+ "type": "str"
+ },
+ {
+ "name": "bitmaps",
+ "type": "[658]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "437",
+ "members": [
+ {
+ "name": "normal"
+ },
+ {
+ "name": "cpr-reboot"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "cpr-reboot"
+ ]
+ },
+ {
+ "name": "438",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "legacy"
+ },
+ {
+ "name": "multifd"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "legacy",
+ "multifd"
+ ]
+ },
+ {
+ "name": "439",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "primary"
+ },
+ {
+ "name": "secondary"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "440",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "request"
+ },
+ {
+ "name": "error"
+ },
+ {
+ "name": "processing"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "request",
+ "error",
+ "processing"
+ ]
+ },
+ {
+ "name": "[441]",
+ "element-type": "441",
+ "meta-type": "array"
+ },
+ {
+ "name": "441",
+ "members": [
+ {
+ "name": "channel-type",
+ "type": "659"
+ },
+ {
+ "name": "addr",
+ "type": "660"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "442",
+ "members": [
+ {
+ "name": "second"
+ },
+ {
+ "name": "millisecond"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "second",
+ "millisecond"
+ ]
+ },
+ {
+ "name": "443",
+ "members": [
+ {
+ "name": "page-sampling"
+ },
+ {
+ "name": "dirty-ring"
+ },
+ {
+ "name": "dirty-bitmap"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "page-sampling",
+ "dirty-ring",
+ "dirty-bitmap"
+ ]
+ },
+ {
+ "name": "444",
+ "members": [
+ {
+ "name": "unstarted"
+ },
+ {
+ "name": "measuring"
+ },
+ {
+ "name": "measured"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "unstarted",
+ "measuring",
+ "measured"
+ ]
+ },
+ {
+ "name": "[445]",
+ "element-type": "445",
+ "meta-type": "array"
+ },
+ {
+ "name": "445",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "dirty-rate",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[446]",
+ "element-type": "446",
+ "meta-type": "array"
+ },
+ {
+ "name": "446",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "abort",
+ "type": "662"
+ },
+ {
+ "case": "block-dirty-bitmap-add",
+ "type": "663"
+ },
+ {
+ "case": "block-dirty-bitmap-remove",
+ "type": "664"
+ },
+ {
+ "case": "block-dirty-bitmap-clear",
+ "type": "664"
+ },
+ {
+ "case": "block-dirty-bitmap-enable",
+ "type": "664"
+ },
+ {
+ "case": "block-dirty-bitmap-disable",
+ "type": "664"
+ },
+ {
+ "case": "block-dirty-bitmap-merge",
+ "type": "665"
+ },
+ {
+ "case": "blockdev-backup",
+ "type": "666"
+ },
+ {
+ "case": "blockdev-snapshot",
+ "type": "667"
+ },
+ {
+ "case": "blockdev-snapshot-internal-sync",
+ "type": "668"
+ },
+ {
+ "case": "blockdev-snapshot-sync",
+ "type": "669"
+ },
+ {
+ "case": "drive-backup",
+ "type": "670"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "661"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "447",
+ "members": [
+ {
+ "name": "completion-mode",
+ "default": null,
+ "type": "671"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "448",
+ "members": [
+ {
+ "name": "unavailable"
+ },
+ {
+ "name": "disabled"
+ },
+ {
+ "name": "enabled"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "unavailable",
+ "disabled",
+ "enabled"
+ ]
+ },
+ {
+ "name": "[449]",
+ "element-type": "449",
+ "meta-type": "array"
+ },
+ {
+ "name": "449",
+ "members": [
+ {
+ "name": "oob"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "oob"
+ ]
+ },
+ {
+ "name": "450",
+ "members": [
+ {
+ "name": "major",
+ "type": "int"
+ },
+ {
+ "name": "minor",
+ "type": "int"
+ },
+ {
+ "name": "micro",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "451",
+ "members": [
+ {
+ "name": "builtin"
+ },
+ {
+ "name": "enum"
+ },
+ {
+ "name": "array"
+ },
+ {
+ "name": "object"
+ },
+ {
+ "name": "alternate"
+ },
+ {
+ "name": "command"
+ },
+ {
+ "name": "event"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "enum",
+ "array",
+ "object",
+ "alternate",
+ "command",
+ "event"
+ ]
+ },
+ {
+ "name": "452",
+ "members": [
+ {
+ "name": "json-type",
+ "type": "672"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "453",
+ "members": [
+ {
+ "name": "members",
+ "type": "[673]"
+ },
+ {
+ "name": "values",
+ "type": "[str]",
+ "features": [
+ "deprecated"
+ ]
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "454",
+ "members": [
+ {
+ "name": "element-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "455",
+ "members": [
+ {
+ "name": "members",
+ "type": "[674]"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "variants",
+ "default": null,
+ "type": "[675]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "456",
+ "members": [
+ {
+ "name": "members",
+ "type": "[676]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "457",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ },
+ {
+ "name": "ret-type",
+ "type": "str"
+ },
+ {
+ "name": "allow-oob",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "458",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "459",
+ "members": [
+ {
+ "name": "acpi-generic-initiator"
+ },
+ {
+ "name": "acpi-generic-port"
+ },
+ {
+ "name": "authz-list"
+ },
+ {
+ "name": "authz-listfile"
+ },
+ {
+ "name": "authz-pam"
+ },
+ {
+ "name": "authz-simple"
+ },
+ {
+ "name": "can-bus"
+ },
+ {
+ "name": "can-host-socketcan"
+ },
+ {
+ "name": "colo-compare"
+ },
+ {
+ "name": "cryptodev-backend"
+ },
+ {
+ "name": "cryptodev-backend-builtin"
+ },
+ {
+ "name": "cryptodev-backend-lkcf"
+ },
+ {
+ "name": "cryptodev-vhost-user"
+ },
+ {
+ "name": "dbus-vmstate"
+ },
+ {
+ "name": "filter-buffer"
+ },
+ {
+ "name": "filter-dump"
+ },
+ {
+ "name": "filter-mirror"
+ },
+ {
+ "name": "filter-redirector"
+ },
+ {
+ "name": "filter-replay"
+ },
+ {
+ "name": "filter-rewriter"
+ },
+ {
+ "name": "input-barrier"
+ },
+ {
+ "name": "input-linux"
+ },
+ {
+ "name": "iommufd"
+ },
+ {
+ "name": "iothread"
+ },
+ {
+ "name": "main-loop"
+ },
+ {
+ "name": "memory-backend-epc"
+ },
+ {
+ "name": "memory-backend-file"
+ },
+ {
+ "name": "memory-backend-memfd"
+ },
+ {
+ "name": "memory-backend-ram"
+ },
+ {
+ "name": "memory-backend-shm"
+ },
+ {
+ "name": "pef-guest"
+ },
+ {
+ "name": "pr-manager-helper"
+ },
+ {
+ "name": "qtest"
+ },
+ {
+ "name": "rme-guest"
+ },
+ {
+ "name": "rng-builtin"
+ },
+ {
+ "name": "rng-egd"
+ },
+ {
+ "name": "rng-random"
+ },
+ {
+ "name": "secret"
+ },
+ {
+ "name": "secret_keyring"
+ },
+ {
+ "name": "sev-guest"
+ },
+ {
+ "name": "sev-snp-guest"
+ },
+ {
+ "name": "thread-context"
+ },
+ {
+ "name": "s390-pv-guest"
+ },
+ {
+ "name": "throttle-group"
+ },
+ {
+ "name": "tls-creds-anon"
+ },
+ {
+ "name": "tls-creds-psk"
+ },
+ {
+ "name": "tls-creds-x509"
+ },
+ {
+ "name": "tls-cipher-suites"
+ },
+ {
+ "name": "x-remote-object",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-vfio-user-server",
+ "features": [
+ "unstable"
+ ]
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "acpi-generic-initiator",
+ "acpi-generic-port",
+ "authz-list",
+ "authz-listfile",
+ "authz-pam",
+ "authz-simple",
+ "can-bus",
+ "can-host-socketcan",
+ "colo-compare",
+ "cryptodev-backend",
+ "cryptodev-backend-builtin",
+ "cryptodev-backend-lkcf",
+ "cryptodev-vhost-user",
+ "dbus-vmstate",
+ "filter-buffer",
+ "filter-dump",
+ "filter-mirror",
+ "filter-redirector",
+ "filter-replay",
+ "filter-rewriter",
+ "input-barrier",
+ "input-linux",
+ "iommufd",
+ "iothread",
+ "main-loop",
+ "memory-backend-epc",
+ "memory-backend-file",
+ "memory-backend-memfd",
+ "memory-backend-ram",
+ "memory-backend-shm",
+ "pef-guest",
+ "pr-manager-helper",
+ "qtest",
+ "rme-guest",
+ "rng-builtin",
+ "rng-egd",
+ "rng-random",
+ "secret",
+ "secret_keyring",
+ "sev-guest",
+ "sev-snp-guest",
+ "thread-context",
+ "s390-pv-guest",
+ "throttle-group",
+ "tls-creds-anon",
+ "tls-creds-psk",
+ "tls-creds-x509",
+ "tls-cipher-suites",
+ "x-remote-object",
+ "x-vfio-user-server"
+ ]
+ },
+ {
+ "name": "460",
+ "members": [
+ {
+ "name": "pci-dev",
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "461",
+ "members": [
+ {
+ "name": "pci-bus",
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "462",
+ "members": [
+ {
+ "name": "policy",
+ "default": null,
+ "type": "677"
+ },
+ {
+ "name": "rules",
+ "default": null,
+ "type": "[678]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "463",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "refresh",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "464",
+ "members": [
+ {
+ "name": "service",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "465",
+ "members": [
+ {
+ "name": "identity",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "466",
+ "members": [
+ {
+ "name": "if",
+ "type": "str"
+ },
+ {
+ "name": "canbus",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "467",
+ "members": [
+ {
+ "name": "primary_in",
+ "type": "str"
+ },
+ {
+ "name": "secondary_in",
+ "type": "str"
+ },
+ {
+ "name": "outdev",
+ "type": "str"
+ },
+ {
+ "name": "iothread",
+ "type": "str"
+ },
+ {
+ "name": "notify_dev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compare_timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "expired_scan_cycle",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max_queue_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vnet_hdr_support",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "468",
+ "members": [
+ {
+ "name": "queues",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "throttle-bps",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "throttle-ops",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "469",
+ "members": [
+ {
+ "name": "queues",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "throttle-bps",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "throttle-ops",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "470",
+ "members": [
+ {
+ "name": "addr",
+ "type": "str"
+ },
+ {
+ "name": "id-list",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "471",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "default": null,
+ "type": "679"
+ },
+ {
+ "name": "status",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "position",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "insert",
+ "default": null,
+ "type": "680"
+ },
+ {
+ "name": "interval",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "472",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "default": null,
+ "type": "679"
+ },
+ {
+ "name": "status",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "position",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "insert",
+ "default": null,
+ "type": "680"
+ },
+ {
+ "name": "file",
+ "type": "str"
+ },
+ {
+ "name": "maxlen",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "473",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "default": null,
+ "type": "679"
+ },
+ {
+ "name": "status",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "position",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "insert",
+ "default": null,
+ "type": "680"
+ },
+ {
+ "name": "outdev",
+ "type": "str"
+ },
+ {
+ "name": "vnet_hdr_support",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "474",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "default": null,
+ "type": "679"
+ },
+ {
+ "name": "status",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "position",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "insert",
+ "default": null,
+ "type": "680"
+ },
+ {
+ "name": "indev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "outdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "vnet_hdr_support",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "475",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "default": null,
+ "type": "679"
+ },
+ {
+ "name": "status",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "position",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "insert",
+ "default": null,
+ "type": "680"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "476",
+ "members": [
+ {
+ "name": "netdev",
+ "type": "str"
+ },
+ {
+ "name": "queue",
+ "default": null,
+ "type": "679"
+ },
+ {
+ "name": "status",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "position",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "insert",
+ "default": null,
+ "type": "680"
+ },
+ {
+ "name": "vnet_hdr_support",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "477",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "x-origin",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "y-origin",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "width",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "height",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "478",
+ "members": [
+ {
+ "name": "evdev",
+ "type": "str"
+ },
+ {
+ "name": "grab_all",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "repeat",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "grab-toggle",
+ "default": null,
+ "type": "681"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "479",
+ "members": [
+ {
+ "name": "fd",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "480",
+ "members": [
+ {
+ "name": "aio-max-batch",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-pool-min",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-pool-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "poll-max-ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "poll-grow",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "poll-shrink",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "481",
+ "members": [
+ {
+ "name": "aio-max-batch",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-pool-min",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-pool-max",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "482",
+ "members": [
+ {
+ "name": "dump",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "merge",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "509"
+ },
+ {
+ "name": "prealloc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "prealloc-context",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "483",
+ "members": [
+ {
+ "name": "dump",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "merge",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "509"
+ },
+ {
+ "name": "prealloc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "prealloc-context",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "align",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "discard-data",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "mem-path",
+ "type": "str"
+ },
+ {
+ "name": "readonly",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "rom",
+ "default": null,
+ "type": "589"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "484",
+ "members": [
+ {
+ "name": "dump",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "merge",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "509"
+ },
+ {
+ "name": "prealloc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "prealloc-context",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "hugetlb",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "hugetlbsize",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "seal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "485",
+ "members": [
+ {
+ "name": "dump",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "merge",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "509"
+ },
+ {
+ "name": "prealloc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "prealloc-context",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "486",
+ "members": [
+ {
+ "name": "dump",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "merge",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "509"
+ },
+ {
+ "name": "prealloc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "prealloc-context",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "487",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "488",
+ "members": [
+ {
+ "name": "chardev",
+ "type": "str"
+ },
+ {
+ "name": "log",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "489",
+ "members": [
+ {
+ "name": "personalization-value",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "measurement-algorithm",
+ "default": null,
+ "type": "682"
+ },
+ {
+ "name": "measurement-log",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "490",
+ "members": [
+ {
+ "name": "opened",
+ "default": null,
+ "type": "bool",
+ "features": [
+ "deprecated"
+ ]
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "491",
+ "members": [
+ {
+ "name": "opened",
+ "default": null,
+ "type": "bool",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "492",
+ "members": [
+ {
+ "name": "opened",
+ "default": null,
+ "type": "bool",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "filename",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "493",
+ "members": [
+ {
+ "name": "format",
+ "default": null,
+ "type": "683"
+ },
+ {
+ "name": "keyid",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "iv",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "file",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "494",
+ "members": [
+ {
+ "name": "format",
+ "default": null,
+ "type": "683"
+ },
+ {
+ "name": "keyid",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "iv",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "serial",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "495",
+ "members": [
+ {
+ "name": "sev-device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cbitpos",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "reduced-phys-bits",
+ "type": "int"
+ },
+ {
+ "name": "kernel-hashes",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "dh-cert-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "session-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "handle",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "legacy-vm-type",
+ "default": null,
+ "type": "589"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "496",
+ "members": [
+ {
+ "name": "sev-device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cbitpos",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "reduced-phys-bits",
+ "type": "int"
+ },
+ {
+ "name": "kernel-hashes",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "guest-visible-workarounds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id-block",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id-auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "author-key-enabled",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "host-data",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "vcek-disabled",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "497",
+ "members": [
+ {
+ "name": "cpu-affinity",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "node-affinity",
+ "default": null,
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "498",
+ "members": [
+ {
+ "name": "limits",
+ "default": null,
+ "type": "684"
+ },
+ {
+ "name": "x-iops-total",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-total-max",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-total-max-length",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-read",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-read-max",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-read-max-length",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-write",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-write-max",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-write-max-length",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-total",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-total-max",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-total-max-length",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-read",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-read-max",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-read-max-length",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-write",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-write-max",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-bps-write-max-length",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ },
+ {
+ "name": "x-iops-size",
+ "default": null,
+ "type": "int",
+ "features": [
+ "unstable"
+ ]
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "499",
+ "members": [
+ {
+ "name": "verify-peer",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "dir",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "endpoint",
+ "default": null,
+ "type": "685"
+ },
+ {
+ "name": "priority",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "500",
+ "members": [
+ {
+ "name": "verify-peer",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "dir",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "endpoint",
+ "default": null,
+ "type": "685"
+ },
+ {
+ "name": "priority",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "501",
+ "members": [
+ {
+ "name": "verify-peer",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "dir",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "endpoint",
+ "default": null,
+ "type": "685"
+ },
+ {
+ "name": "priority",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sanity-check",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "passwordid",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "502",
+ "members": [
+ {
+ "name": "verify-peer",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "dir",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "endpoint",
+ "default": null,
+ "type": "685"
+ },
+ {
+ "name": "priority",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "503",
+ "members": [
+ {
+ "name": "fd",
+ "type": "str"
+ },
+ {
+ "name": "devid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "504",
+ "members": [
+ {
+ "name": "socket",
+ "type": "392"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "505",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "drawer-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "book-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "die-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cluster-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "module-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "506",
+ "members": [
+ {
+ "name": "aarch64"
+ },
+ {
+ "name": "alpha"
+ },
+ {
+ "name": "arm"
+ },
+ {
+ "name": "avr"
+ },
+ {
+ "name": "hppa"
+ },
+ {
+ "name": "i386"
+ },
+ {
+ "name": "loongarch64"
+ },
+ {
+ "name": "m68k"
+ },
+ {
+ "name": "microblaze"
+ },
+ {
+ "name": "microblazeel"
+ },
+ {
+ "name": "mips"
+ },
+ {
+ "name": "mips64"
+ },
+ {
+ "name": "mips64el"
+ },
+ {
+ "name": "mipsel"
+ },
+ {
+ "name": "or1k"
+ },
+ {
+ "name": "ppc"
+ },
+ {
+ "name": "ppc64"
+ },
+ {
+ "name": "riscv32"
+ },
+ {
+ "name": "riscv64"
+ },
+ {
+ "name": "rx"
+ },
+ {
+ "name": "s390x"
+ },
+ {
+ "name": "sh4"
+ },
+ {
+ "name": "sh4eb"
+ },
+ {
+ "name": "sparc"
+ },
+ {
+ "name": "sparc64"
+ },
+ {
+ "name": "tricore"
+ },
+ {
+ "name": "x86_64"
+ },
+ {
+ "name": "xtensa"
+ },
+ {
+ "name": "xtensaeb"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "aarch64",
+ "alpha",
+ "arm",
+ "avr",
+ "hppa",
+ "i386",
+ "loongarch64",
+ "m68k",
+ "microblaze",
+ "microblazeel",
+ "mips",
+ "mips64",
+ "mips64el",
+ "mipsel",
+ "or1k",
+ "ppc",
+ "ppc64",
+ "riscv32",
+ "riscv64",
+ "rx",
+ "s390x",
+ "sh4",
+ "sh4eb",
+ "sparc",
+ "sparc64",
+ "tricore",
+ "x86_64",
+ "xtensa",
+ "xtensaeb"
+ ]
+ },
+ {
+ "name": "507",
+ "members": [
+ {
+ "name": "cpu-state",
+ "type": "686"
+ },
+ {
+ "name": "dedicated",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "entitlement",
+ "default": null,
+ "type": "525"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[508]",
+ "element-type": "508",
+ "meta-type": "array"
+ },
+ {
+ "name": "508",
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "509",
+ "members": [
+ {
+ "name": "default"
+ },
+ {
+ "name": "preferred"
+ },
+ {
+ "name": "bind"
+ },
+ {
+ "name": "interleave"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "preferred",
+ "bind",
+ "interleave"
+ ]
+ },
+ {
+ "name": "510",
+ "members": [
+ {
+ "name": "node"
+ },
+ {
+ "name": "dist"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "hmat-lb"
+ },
+ {
+ "name": "hmat-cache"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "node",
+ "dist",
+ "cpu",
+ "hmat-lb",
+ "hmat-cache"
+ ]
+ },
+ {
+ "name": "511",
+ "members": [
+ {
+ "name": "nodeid",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpus",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "mem",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "initiator",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "512",
+ "members": [
+ {
+ "name": "src",
+ "type": "int"
+ },
+ {
+ "name": "dst",
+ "type": "int"
+ },
+ {
+ "name": "val",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "513",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "drawer-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "book-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "die-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cluster-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "module-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "514",
+ "members": [
+ {
+ "name": "initiator",
+ "type": "int"
+ },
+ {
+ "name": "target",
+ "type": "int"
+ },
+ {
+ "name": "hierarchy",
+ "type": "687"
+ },
+ {
+ "name": "data-type",
+ "type": "688"
+ },
+ {
+ "name": "latency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bandwidth",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "515",
+ "members": [
+ {
+ "name": "node-id",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "level",
+ "type": "int"
+ },
+ {
+ "name": "associativity",
+ "type": "689"
+ },
+ {
+ "name": "policy",
+ "type": "690"
+ },
+ {
+ "name": "line",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "516",
+ "members": [
+ {
+ "name": "dimm"
+ },
+ {
+ "name": "nvdimm"
+ },
+ {
+ "name": "virtio-pmem"
+ },
+ {
+ "name": "virtio-mem"
+ },
+ {
+ "name": "sgx-epc"
+ },
+ {
+ "name": "hv-balloon"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "dimm",
+ "nvdimm",
+ "virtio-pmem",
+ "virtio-mem",
+ "sgx-epc",
+ "hv-balloon"
+ ]
+ },
+ {
+ "name": "517",
+ "members": [
+ {
+ "name": "data",
+ "type": "691"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "518",
+ "members": [
+ {
+ "name": "data",
+ "type": "692"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "519",
+ "members": [
+ {
+ "name": "data",
+ "type": "693"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "520",
+ "members": [
+ {
+ "name": "data",
+ "type": "694"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "521",
+ "members": [
+ {
+ "name": "data",
+ "type": "695"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "522",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "523",
+ "members": [
+ {
+ "name": "incompatible"
+ },
+ {
+ "name": "identical"
+ },
+ {
+ "name": "superset"
+ },
+ {
+ "name": "subset"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "incompatible",
+ "identical",
+ "superset",
+ "subset"
+ ]
+ },
+ {
+ "name": "524",
+ "members": [
+ {
+ "name": "static"
+ },
+ {
+ "name": "full"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "static",
+ "full"
+ ]
+ },
+ {
+ "name": "525",
+ "members": [
+ {
+ "name": "auto"
+ },
+ {
+ "name": "low"
+ },
+ {
+ "name": "medium"
+ },
+ {
+ "name": "high"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "low",
+ "medium",
+ "high"
+ ]
+ },
+ {
+ "name": "527",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "record"
+ },
+ {
+ "name": "play"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "record",
+ "play"
+ ]
+ },
+ {
+ "name": "528",
+ "members": [
+ {
+ "name": "block-node"
+ },
+ {
+ "name": "chardev"
+ },
+ {
+ "name": "migration"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "block-node",
+ "chardev",
+ "migration"
+ ]
+ },
+ {
+ "name": "529",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "530",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[531]",
+ "element-type": "531",
+ "meta-type": "array"
+ },
+ {
+ "name": "531",
+ "members": [
+ {
+ "name": "fd",
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[532]",
+ "element-type": "532",
+ "meta-type": "array"
+ },
+ {
+ "name": "532",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "696"
+ },
+ {
+ "name": "help",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[537]",
+ "element-type": "537",
+ "meta-type": "array"
+ },
+ {
+ "name": "537",
+ "members": [
+ {
+ "name": "measurement-algo",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[538]",
+ "element-type": "538",
+ "meta-type": "array"
+ },
+ {
+ "name": "538",
+ "members": [
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "540",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "dbus"
+ },
+ {
+ "name": "oss"
+ },
+ {
+ "name": "wav"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "dbus",
+ "oss",
+ "wav"
+ ]
+ },
+ {
+ "name": "541",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "697"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "542",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "698"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "698"
+ },
+ {
+ "name": "threshold",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "543",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "699"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "699"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "544",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "latency",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "545",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "700"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "700"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "546",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "701"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "701"
+ },
+ {
+ "name": "try-mmap",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "exclusive",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "dsp-policy",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "547",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "702"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "702"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "548",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "703"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "703"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "549",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "704"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "704"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "550",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "dev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "latency",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "551",
+ "members": [
+ {
+ "name": "in",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "out",
+ "default": null,
+ "type": "697"
+ },
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "552",
+ "members": [
+ {
+ "name": "DIMM"
+ },
+ {
+ "name": "CPU"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "DIMM",
+ "CPU"
+ ]
+ },
+ {
+ "name": "[553]",
+ "element-type": "553",
+ "meta-type": "array"
+ },
+ {
+ "name": "553",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "function",
+ "type": "int"
+ },
+ {
+ "name": "class_info",
+ "type": "705"
+ },
+ {
+ "name": "id",
+ "type": "706"
+ },
+ {
+ "name": "irq",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "irq_pin",
+ "type": "int"
+ },
+ {
+ "name": "qdev_id",
+ "type": "str"
+ },
+ {
+ "name": "pci_bridge",
+ "default": null,
+ "type": "707"
+ },
+ {
+ "name": "regions",
+ "type": "[708]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "554",
+ "members": [
+ {
+ "name": "vm"
+ },
+ {
+ "name": "vcpu"
+ },
+ {
+ "name": "cryptodev"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "vm",
+ "vcpu",
+ "cryptodev"
+ ]
+ },
+ {
+ "name": "[555]",
+ "element-type": "555",
+ "meta-type": "array"
+ },
+ {
+ "name": "555",
+ "members": [
+ {
+ "name": "provider",
+ "type": "557"
+ },
+ {
+ "name": "names",
+ "default": null,
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "556",
+ "members": [
+ {
+ "name": "vcpus",
+ "default": null,
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "557",
+ "members": [
+ {
+ "name": "kvm"
+ },
+ {
+ "name": "cryptodev"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "kvm",
+ "cryptodev"
+ ]
+ },
+ {
+ "name": "[558]",
+ "element-type": "558",
+ "meta-type": "array"
+ },
+ {
+ "name": "558",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "709"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[559]",
+ "element-type": "559",
+ "meta-type": "array"
+ },
+ {
+ "name": "559",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "710"
+ },
+ {
+ "name": "unit",
+ "default": null,
+ "type": "711"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "exponent",
+ "type": "int"
+ },
+ {
+ "name": "bucket-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "560",
+ "members": [
+ {
+ "name": "transports",
+ "type": "[str]"
+ },
+ {
+ "name": "dev-features",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "unknown-dev-features",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "561",
+ "members": [
+ {
+ "name": "statuses",
+ "type": "[str]"
+ },
+ {
+ "name": "unknown-statuses",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "562",
+ "members": [
+ {
+ "name": "n-mem-sections",
+ "type": "int"
+ },
+ {
+ "name": "n-tmp-sections",
+ "type": "int"
+ },
+ {
+ "name": "nvqs",
+ "type": "int"
+ },
+ {
+ "name": "vq-index",
+ "type": "int"
+ },
+ {
+ "name": "features",
+ "type": "560"
+ },
+ {
+ "name": "acked-features",
+ "type": "560"
+ },
+ {
+ "name": "backend-features",
+ "type": "560"
+ },
+ {
+ "name": "protocol-features",
+ "type": "712"
+ },
+ {
+ "name": "max-queues",
+ "type": "int"
+ },
+ {
+ "name": "backend-cap",
+ "type": "int"
+ },
+ {
+ "name": "log-enabled",
+ "type": "bool"
+ },
+ {
+ "name": "log-size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[563]",
+ "element-type": "563",
+ "meta-type": "array"
+ },
+ {
+ "name": "563",
+ "members": [
+ {
+ "name": "addr",
+ "type": "int"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "flags",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "564",
+ "members": [
+ {
+ "name": "flags",
+ "type": "int"
+ },
+ {
+ "name": "idx",
+ "type": "int"
+ },
+ {
+ "name": "ring",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "565",
+ "members": [
+ {
+ "name": "flags",
+ "type": "int"
+ },
+ {
+ "name": "idx",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "566",
+ "members": [
+ {
+ "name": "stop"
+ },
+ {
+ "name": "running"
+ },
+ {
+ "name": "stop-copy"
+ },
+ {
+ "name": "resuming"
+ },
+ {
+ "name": "running-p2p"
+ },
+ {
+ "name": "pre-copy"
+ },
+ {
+ "name": "pre-copy-p2p"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "stop",
+ "running",
+ "stop-copy",
+ "resuming",
+ "running-p2p",
+ "pre-copy",
+ "pre-copy-p2p"
+ ]
+ },
+ {
+ "name": "[567]",
+ "element-type": "567",
+ "meta-type": "array"
+ },
+ {
+ "name": "567",
+ "members": [
+ {
+ "name": "cipher"
+ },
+ {
+ "name": "hash"
+ },
+ {
+ "name": "mac"
+ },
+ {
+ "name": "aead"
+ },
+ {
+ "name": "akcipher"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "cipher",
+ "hash",
+ "mac",
+ "aead",
+ "akcipher"
+ ]
+ },
+ {
+ "name": "[568]",
+ "element-type": "568",
+ "meta-type": "array"
+ },
+ {
+ "name": "568",
+ "members": [
+ {
+ "name": "queue",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "713"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "569",
+ "members": [
+ {
+ "name": "informational"
+ },
+ {
+ "name": "warning"
+ },
+ {
+ "name": "failure"
+ },
+ {
+ "name": "fatal"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "informational",
+ "warning",
+ "failure",
+ "fatal"
+ ]
+ },
+ {
+ "name": "[570]",
+ "element-type": "570",
+ "meta-type": "array"
+ },
+ {
+ "name": "570",
+ "members": [
+ {
+ "name": "type",
+ "type": "714"
+ },
+ {
+ "name": "header",
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "571",
+ "members": [
+ {
+ "name": "cache-data-ecc"
+ },
+ {
+ "name": "mem-data-ecc"
+ },
+ {
+ "name": "crc-threshold"
+ },
+ {
+ "name": "retry-threshold"
+ },
+ {
+ "name": "cache-poison-received"
+ },
+ {
+ "name": "mem-poison-received"
+ },
+ {
+ "name": "physical"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "cache-data-ecc",
+ "mem-data-ecc",
+ "crc-threshold",
+ "retry-threshold",
+ "cache-poison-received",
+ "mem-poison-received",
+ "physical"
+ ]
+ },
+ {
+ "name": "572",
+ "members": [
+ {
+ "name": "free"
+ },
+ {
+ "name": "contiguous"
+ },
+ {
+ "name": "prescriptive"
+ },
+ {
+ "name": "enable-shared-access"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "free",
+ "contiguous",
+ "prescriptive",
+ "enable-shared-access"
+ ]
+ },
+ {
+ "name": "[573]",
+ "element-type": "573",
+ "meta-type": "array"
+ },
+ {
+ "name": "573",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "574",
+ "members": [
+ {
+ "name": "tag-based"
+ },
+ {
+ "name": "prescriptive"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "tag-based",
+ "prescriptive"
+ ]
+ },
+ {
+ "name": "575",
+ "members": [
+ {
+ "name": "hyper-v"
+ },
+ {
+ "name": "s390"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "hyper-v",
+ "s390"
+ ]
+ },
+ {
+ "name": "576",
+ "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": "577",
+ "members": [
+ {
+ "name": "core",
+ "type": "int"
+ },
+ {
+ "name": "psw-mask",
+ "type": "int"
+ },
+ {
+ "name": "psw-addr",
+ "type": "int"
+ },
+ {
+ "name": "reason",
+ "type": "715"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[578]",
+ "element-type": "578",
+ "meta-type": "array"
+ },
+ {
+ "name": "578",
+ "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_zone_append_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_zone_append_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_zone_append_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"
+ },
+ {
+ "name": "avg_zone_append_queue_depth",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "579",
+ "members": [
+ {
+ "name": "boundaries",
+ "type": "[int]"
+ },
+ {
+ "name": "bins",
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "580",
+ "members": [
+ {
+ "name": "discard-nb-ok",
+ "type": "int"
+ },
+ {
+ "name": "discard-nb-failed",
+ "type": "int"
+ },
+ {
+ "name": "discard-bytes-ok",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "581",
+ "members": [
+ {
+ "name": "completion-errors",
+ "type": "int"
+ },
+ {
+ "name": "aligned-accesses",
+ "type": "int"
+ },
+ {
+ "name": "unaligned-accesses",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[78]",
+ "element-type": "78",
+ "meta-type": "array"
+ },
+ {
+ "name": "582",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "qcow2",
+ "type": "717"
+ },
+ {
+ "case": "vmdk",
+ "type": "718"
+ },
+ {
+ "case": "luks",
+ "type": "719"
+ },
+ {
+ "case": "rbd",
+ "type": "720"
+ },
+ {
+ "case": "file",
+ "type": "721"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "716"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "583",
+ "members": [
+ {
+ "name": "block-backend"
+ },
+ {
+ "name": "block-job"
+ },
+ {
+ "name": "block-driver"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "block-backend",
+ "block-job",
+ "block-driver"
+ ]
+ },
+ {
+ "name": "[584]",
+ "element-type": "584",
+ "meta-type": "array"
+ },
+ {
+ "name": "584",
+ "members": [
+ {
+ "name": "consistent-read"
+ },
+ {
+ "name": "write"
+ },
+ {
+ "name": "write-unchanged"
+ },
+ {
+ "name": "resize"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "consistent-read",
+ "write",
+ "write-unchanged",
+ "resize"
+ ]
+ },
+ {
+ "name": "585",
+ "members": [
+ {
+ "type": "58"
+ },
+ {
+ "type": "str"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "[586]",
+ "element-type": "586",
+ "meta-type": "array"
+ },
+ {
+ "name": "586",
+ "members": [
+ {
+ "name": "event",
+ "type": "722"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iotype",
+ "default": null,
+ "type": "723"
+ },
+ {
+ "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": "[587]",
+ "element-type": "587",
+ "meta-type": "array"
+ },
+ {
+ "name": "587",
+ "members": [
+ {
+ "name": "event",
+ "type": "722"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new_state",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "588",
+ "members": [
+ {
+ "name": "break-guest-write"
+ },
+ {
+ "name": "break-snapshot"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "break-guest-write",
+ "break-snapshot"
+ ]
+ },
+ {
+ "name": "589",
+ "members": [
+ {
+ "name": "auto"
+ },
+ {
+ "name": "on"
+ },
+ {
+ "name": "off"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "on",
+ "off"
+ ]
+ },
+ {
+ "name": "590",
+ "members": [
+ {
+ "name": "threads"
+ },
+ {
+ "name": "native"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "threads",
+ "native"
+ ]
+ },
+ {
+ "name": "591",
+ "members": [
+ {
+ "name": "tcp"
+ },
+ {
+ "name": "iser"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "tcp",
+ "iser"
+ ]
+ },
+ {
+ "name": "592",
+ "members": [
+ {
+ "name": "crc32c"
+ },
+ {
+ "name": "none"
+ },
+ {
+ "name": "crc32c-none"
+ },
+ {
+ "name": "none-crc32c"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "crc32c",
+ "none",
+ "crc32c-none",
+ "none-crc32c"
+ ]
+ },
+ {
+ "name": "593",
+ "members": [
+ {
+ "name": "type",
+ "type": "724"
+ },
+ {
+ "name": "host",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "594",
+ "members": [
+ {
+ "type": "58"
+ },
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "595",
+ "members": [
+ {
+ "type": "725"
+ },
+ {
+ "type": "726"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "596",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "728"
+ },
+ {
+ "case": "luks",
+ "type": "729"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "727"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "597",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "728"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "730"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[585]",
+ "element-type": "585",
+ "meta-type": "array"
+ },
+ {
+ "name": "598",
+ "members": [
+ {
+ "name": "quorum"
+ },
+ {
+ "name": "fifo"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "quorum",
+ "fifo"
+ ]
+ },
+ {
+ "name": "599",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "luks",
+ "type": "732"
+ },
+ {
+ "case": "luks2",
+ "type": "733"
+ },
+ {
+ "case": "luks-any",
+ "type": "734"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "731"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "599"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[600]",
+ "element-type": "600",
+ "meta-type": "array"
+ },
+ {
+ "name": "600",
+ "members": [
+ {
+ "name": "cephx"
+ },
+ {
+ "name": "none"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "cephx",
+ "none"
+ ]
+ },
+ {
+ "name": "[601]",
+ "element-type": "601",
+ "meta-type": "array"
+ },
+ {
+ "name": "601",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "602",
+ "members": [
+ {
+ "name": "primary"
+ },
+ {
+ "name": "secondary"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "603",
+ "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"
+ },
+ {
+ "name": "keep-alive",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "mptcp",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "604",
+ "tag": "mode",
+ "variants": [
+ {
+ "case": "hash",
+ "type": "736"
+ },
+ {
+ "case": "none",
+ "type": "0"
+ },
+ {
+ "case": "known_hosts",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "mode",
+ "type": "735"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "605",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "737"
+ },
+ {
+ "name": "nocow",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "extent-size-hint",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "606",
+ "members": [
+ {
+ "name": "location",
+ "type": "331"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "737"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "607",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cipher-alg",
+ "default": null,
+ "type": "738"
+ },
+ {
+ "name": "cipher-mode",
+ "default": null,
+ "type": "739"
+ },
+ {
+ "name": "ivgen-alg",
+ "default": null,
+ "type": "740"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "741"
+ },
+ {
+ "name": "hash-alg",
+ "default": null,
+ "type": "741"
+ },
+ {
+ "name": "iter-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "file",
+ "default": null,
+ "type": "585"
+ },
+ {
+ "name": "header",
+ "default": null,
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "737"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "608",
+ "members": [
+ {
+ "name": "location",
+ "type": "338"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "609",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "610",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "742"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "611",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "data-file",
+ "default": null,
+ "type": "585"
+ },
+ {
+ "name": "data-file-raw",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "extended-l2",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "version",
+ "default": null,
+ "type": "743"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-fmt",
+ "default": null,
+ "type": "318"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "742"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "737"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compression-type",
+ "default": null,
+ "type": "744"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "612",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-fmt",
+ "default": null,
+ "type": "318"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "table-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "613",
+ "members": [
+ {
+ "name": "location",
+ "type": "348"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "745"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "614",
+ "members": [
+ {
+ "name": "location",
+ "type": "350"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "615",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "preallocation",
+ "default": null,
+ "type": "737"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "616",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "log-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "subformat",
+ "default": null,
+ "type": "746"
+ },
+ {
+ "name": "block-state-zero",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "617",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "default": null,
+ "type": "[585]"
+ },
+ {
+ "name": "subformat",
+ "default": null,
+ "type": "747"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "adapter-type",
+ "default": null,
+ "type": "748"
+ },
+ {
+ "name": "hwversion",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "toolsversion",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "zeroed-grain",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "618",
+ "members": [
+ {
+ "name": "file",
+ "type": "585"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "subformat",
+ "default": null,
+ "type": "749"
+ },
+ {
+ "name": "force-size",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "619",
+ "members": [
+ {
+ "name": "state",
+ "type": "750"
+ },
+ {
+ "name": "new-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "old-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "keyslot",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iter-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "620",
+ "members": [
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "751"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "null",
+ "json-type": "null",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "621",
+ "members": [
+ {
+ "name": "inet"
+ },
+ {
+ "name": "unix"
+ },
+ {
+ "name": "vsock"
+ },
+ {
+ "name": "fd"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "622",
+ "members": [
+ {
+ "name": "data",
+ "type": "603"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "623",
+ "members": [
+ {
+ "name": "data",
+ "type": "644"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "624",
+ "members": [
+ {
+ "name": "data",
+ "type": "645"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "625",
+ "members": [
+ {
+ "name": "data",
+ "type": "646"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "626",
+ "members": [
+ {
+ "name": "off"
+ },
+ {
+ "name": "on"
+ },
+ {
+ "name": "auto"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "auto"
+ ]
+ },
+ {
+ "name": "627",
+ "members": [
+ {
+ "name": "file"
+ },
+ {
+ "name": "serial"
+ },
+ {
+ "name": "parallel"
+ },
+ {
+ "name": "pipe"
+ },
+ {
+ "name": "socket"
+ },
+ {
+ "name": "udp"
+ },
+ {
+ "name": "pty"
+ },
+ {
+ "name": "null"
+ },
+ {
+ "name": "mux"
+ },
+ {
+ "name": "msmouse"
+ },
+ {
+ "name": "wctablet"
+ },
+ {
+ "name": "testdev"
+ },
+ {
+ "name": "stdio"
+ },
+ {
+ "name": "dbus"
+ },
+ {
+ "name": "vc"
+ },
+ {
+ "name": "ringbuf"
+ },
+ {
+ "name": "memory",
+ "features": [
+ "deprecated"
+ ]
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "file",
+ "serial",
+ "parallel",
+ "pipe",
+ "socket",
+ "udp",
+ "pty",
+ "null",
+ "mux",
+ "msmouse",
+ "wctablet",
+ "testdev",
+ "stdio",
+ "dbus",
+ "vc",
+ "ringbuf",
+ "memory"
+ ]
+ },
+ {
+ "name": "628",
+ "members": [
+ {
+ "name": "data",
+ "type": "752"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "629",
+ "members": [
+ {
+ "name": "data",
+ "type": "753"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "630",
+ "members": [
+ {
+ "name": "data",
+ "type": "754"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "631",
+ "members": [
+ {
+ "name": "data",
+ "type": "755"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "632",
+ "members": [
+ {
+ "name": "data",
+ "type": "756"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "633",
+ "members": [
+ {
+ "name": "data",
+ "type": "757"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "634",
+ "members": [
+ {
+ "name": "data",
+ "type": "758"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "635",
+ "members": [
+ {
+ "name": "data",
+ "type": "759"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "639",
+ "members": [
+ {
+ "name": "data",
+ "type": "763"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "640",
+ "members": [
+ {
+ "name": "data",
+ "type": "764"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "641",
+ "members": [
+ {
+ "name": "data",
+ "type": "765"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[642]",
+ "element-type": "642",
+ "meta-type": "array"
+ },
+ {
+ "name": "642",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "644",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tight",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "645",
+ "members": [
+ {
+ "name": "cid",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "646",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "647",
+ "members": [
+ {
+ "name": "data",
+ "type": "766"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "648",
+ "members": [
+ {
+ "name": "data",
+ "type": "767"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "649",
+ "members": [
+ {
+ "name": "number"
+ },
+ {
+ "name": "qcode"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "number",
+ "qcode"
+ ]
+ },
+ {
+ "name": "650",
+ "members": [
+ {
+ "name": "data",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "651",
+ "members": [
+ {
+ "name": "data",
+ "type": "768"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "652",
+ "members": [
+ {
+ "name": "key"
+ },
+ {
+ "name": "btn"
+ },
+ {
+ "name": "rel"
+ },
+ {
+ "name": "abs"
+ },
+ {
+ "name": "mtt"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "key",
+ "btn",
+ "rel",
+ "abs",
+ "mtt"
+ ]
+ },
+ {
+ "name": "653",
+ "members": [
+ {
+ "name": "data",
+ "type": "769"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "654",
+ "members": [
+ {
+ "name": "data",
+ "type": "770"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "655",
+ "members": [
+ {
+ "name": "data",
+ "type": "771"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "656",
+ "members": [
+ {
+ "name": "data",
+ "type": "772"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "657",
+ "members": [
+ {
+ "name": "lctrl-lalt"
+ },
+ {
+ "name": "lshift-lctrl-lalt"
+ },
+ {
+ "name": "rctrl"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "lctrl-lalt",
+ "lshift-lctrl-lalt",
+ "rctrl"
+ ]
+ },
+ {
+ "name": "number",
+ "json-type": "number",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "[658]",
+ "element-type": "658",
+ "meta-type": "array"
+ },
+ {
+ "name": "658",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "alias",
+ "type": "str"
+ },
+ {
+ "name": "transform",
+ "default": null,
+ "type": "773"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "659",
+ "members": [
+ {
+ "name": "main"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "main"
+ ]
+ },
+ {
+ "name": "660",
+ "tag": "transport",
+ "variants": [
+ {
+ "case": "socket",
+ "type": "392"
+ },
+ {
+ "case": "exec",
+ "type": "775"
+ },
+ {
+ "case": "rdma",
+ "type": "603"
+ },
+ {
+ "case": "file",
+ "type": "776"
+ }
+ ],
+ "members": [
+ {
+ "name": "transport",
+ "type": "774"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "661",
+ "members": [
+ {
+ "name": "abort"
+ },
+ {
+ "name": "block-dirty-bitmap-add"
+ },
+ {
+ "name": "block-dirty-bitmap-remove"
+ },
+ {
+ "name": "block-dirty-bitmap-clear"
+ },
+ {
+ "name": "block-dirty-bitmap-enable"
+ },
+ {
+ "name": "block-dirty-bitmap-disable"
+ },
+ {
+ "name": "block-dirty-bitmap-merge"
+ },
+ {
+ "name": "blockdev-backup"
+ },
+ {
+ "name": "blockdev-snapshot"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "drive-backup",
+ "features": [
+ "deprecated"
+ ]
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "abort",
+ "block-dirty-bitmap-add",
+ "block-dirty-bitmap-remove",
+ "block-dirty-bitmap-clear",
+ "block-dirty-bitmap-enable",
+ "block-dirty-bitmap-disable",
+ "block-dirty-bitmap-merge",
+ "blockdev-backup",
+ "blockdev-snapshot",
+ "blockdev-snapshot-internal-sync",
+ "blockdev-snapshot-sync",
+ "drive-backup"
+ ]
+ },
+ {
+ "name": "662",
+ "members": [
+ {
+ "name": "data",
+ "type": "777"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "663",
+ "members": [
+ {
+ "name": "data",
+ "type": "44"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "664",
+ "members": [
+ {
+ "name": "data",
+ "type": "45"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "665",
+ "members": [
+ {
+ "name": "data",
+ "type": "46"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "666",
+ "members": [
+ {
+ "name": "data",
+ "type": "39"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "667",
+ "members": [
+ {
+ "name": "data",
+ "type": "35"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "668",
+ "members": [
+ {
+ "name": "data",
+ "type": "76"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "669",
+ "members": [
+ {
+ "name": "data",
+ "type": "34"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "670",
+ "members": [
+ {
+ "name": "data",
+ "type": "38"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "671",
+ "members": [
+ {
+ "name": "individual"
+ },
+ {
+ "name": "grouped"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "individual",
+ "grouped"
+ ]
+ },
+ {
+ "name": "672",
+ "members": [
+ {
+ "name": "string"
+ },
+ {
+ "name": "number"
+ },
+ {
+ "name": "int"
+ },
+ {
+ "name": "boolean"
+ },
+ {
+ "name": "null"
+ },
+ {
+ "name": "object"
+ },
+ {
+ "name": "array"
+ },
+ {
+ "name": "value"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "number",
+ "int",
+ "boolean",
+ "null",
+ "object",
+ "array",
+ "value"
+ ]
+ },
+ {
+ "name": "[673]",
+ "element-type": "673",
+ "meta-type": "array"
+ },
+ {
+ "name": "673",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "features",
+ "default": null,
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[674]",
+ "element-type": "674",
+ "meta-type": "array"
+ },
+ {
+ "name": "674",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "any"
+ },
+ {
+ "name": "features",
+ "default": null,
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[675]",
+ "element-type": "675",
+ "meta-type": "array"
+ },
+ {
+ "name": "675",
+ "members": [
+ {
+ "name": "case",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[676]",
+ "element-type": "676",
+ "meta-type": "array"
+ },
+ {
+ "name": "676",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "677",
+ "members": [
+ {
+ "name": "deny"
+ },
+ {
+ "name": "allow"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "deny",
+ "allow"
+ ]
+ },
+ {
+ "name": "[678]",
+ "element-type": "678",
+ "meta-type": "array"
+ },
+ {
+ "name": "678",
+ "members": [
+ {
+ "name": "match",
+ "type": "str"
+ },
+ {
+ "name": "policy",
+ "type": "677"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "778"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "679",
+ "members": [
+ {
+ "name": "all"
+ },
+ {
+ "name": "rx"
+ },
+ {
+ "name": "tx"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "all",
+ "rx",
+ "tx"
+ ]
+ },
+ {
+ "name": "680",
+ "members": [
+ {
+ "name": "before"
+ },
+ {
+ "name": "behind"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "before",
+ "behind"
+ ]
+ },
+ {
+ "name": "681",
+ "members": [
+ {
+ "name": "ctrl-ctrl"
+ },
+ {
+ "name": "alt-alt"
+ },
+ {
+ "name": "shift-shift"
+ },
+ {
+ "name": "meta-meta"
+ },
+ {
+ "name": "scrolllock"
+ },
+ {
+ "name": "ctrl-scrolllock"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ctrl-ctrl",
+ "alt-alt",
+ "shift-shift",
+ "meta-meta",
+ "scrolllock",
+ "ctrl-scrolllock"
+ ]
+ },
+ {
+ "name": "682",
+ "members": [
+ {
+ "name": "sha256"
+ },
+ {
+ "name": "sha512"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "sha256",
+ "sha512"
+ ]
+ },
+ {
+ "name": "683",
+ "members": [
+ {
+ "name": "raw"
+ },
+ {
+ "name": "base64"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "raw",
+ "base64"
+ ]
+ },
+ {
+ "name": "684",
+ "members": [
+ {
+ "name": "iops-total",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-total-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-total-max-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-read",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-read-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-read-max-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-write",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-write-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-write-max-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-total",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-total-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-total-max-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-read",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-read-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-read-max-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-write",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-write-max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps-write-max-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops-size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "685",
+ "members": [
+ {
+ "name": "client"
+ },
+ {
+ "name": "server"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "client",
+ "server"
+ ]
+ },
+ {
+ "name": "686",
+ "members": [
+ {
+ "name": "uninitialized"
+ },
+ {
+ "name": "stopped"
+ },
+ {
+ "name": "check-stop"
+ },
+ {
+ "name": "operating"
+ },
+ {
+ "name": "load"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "uninitialized",
+ "stopped",
+ "check-stop",
+ "operating",
+ "load"
+ ]
+ },
+ {
+ "name": "687",
+ "members": [
+ {
+ "name": "memory"
+ },
+ {
+ "name": "first-level"
+ },
+ {
+ "name": "second-level"
+ },
+ {
+ "name": "third-level"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "memory",
+ "first-level",
+ "second-level",
+ "third-level"
+ ]
+ },
+ {
+ "name": "688",
+ "members": [
+ {
+ "name": "access-latency"
+ },
+ {
+ "name": "read-latency"
+ },
+ {
+ "name": "write-latency"
+ },
+ {
+ "name": "access-bandwidth"
+ },
+ {
+ "name": "read-bandwidth"
+ },
+ {
+ "name": "write-bandwidth"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "access-latency",
+ "read-latency",
+ "write-latency",
+ "access-bandwidth",
+ "read-bandwidth",
+ "write-bandwidth"
+ ]
+ },
+ {
+ "name": "689",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "direct"
+ },
+ {
+ "name": "complex"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "direct",
+ "complex"
+ ]
+ },
+ {
+ "name": "690",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "write-back"
+ },
+ {
+ "name": "write-through"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "write-back",
+ "write-through"
+ ]
+ },
+ {
+ "name": "691",
+ "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": "692",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "memaddr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "693",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "memaddr",
+ "type": "int"
+ },
+ {
+ "name": "requested-size",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "max-size",
+ "type": "int"
+ },
+ {
+ "name": "block-size",
+ "type": "int"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "694",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "memaddr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "695",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "memaddr",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-size",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "696",
+ "members": [
+ {
+ "name": "string"
+ },
+ {
+ "name": "boolean"
+ },
+ {
+ "name": "number"
+ },
+ {
+ "name": "size"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "boolean",
+ "number",
+ "size"
+ ]
+ },
+ {
+ "name": "697",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "698",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "dev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "period-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "try-poll",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "699",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buffer-count",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "700",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "server-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "client-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "connect-ports",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "start-server",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "exact-name",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "701",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "dev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "buffer-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "try-poll",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "702",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stream-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "latency",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "703",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stream-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "latency",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "704",
+ "members": [
+ {
+ "name": "mixing-engine",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fixed-settings",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "frequency",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "voices",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "779"
+ },
+ {
+ "name": "buffer-length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buffer-count",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "705",
+ "members": [
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "class",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "706",
+ "members": [
+ {
+ "name": "device",
+ "type": "int"
+ },
+ {
+ "name": "vendor",
+ "type": "int"
+ },
+ {
+ "name": "subsystem",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "subsystem-vendor",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "707",
+ "members": [
+ {
+ "name": "bus",
+ "type": "780"
+ },
+ {
+ "name": "devices",
+ "default": null,
+ "type": "[553]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[708]",
+ "element-type": "708",
+ "meta-type": "array"
+ },
+ {
+ "name": "708",
+ "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": "709",
+ "members": [
+ {
+ "type": "int"
+ },
+ {
+ "type": "bool"
+ },
+ {
+ "type": "[int]"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "710",
+ "members": [
+ {
+ "name": "cumulative"
+ },
+ {
+ "name": "instant"
+ },
+ {
+ "name": "peak"
+ },
+ {
+ "name": "linear-histogram"
+ },
+ {
+ "name": "log2-histogram"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "cumulative",
+ "instant",
+ "peak",
+ "linear-histogram",
+ "log2-histogram"
+ ]
+ },
+ {
+ "name": "711",
+ "members": [
+ {
+ "name": "bytes"
+ },
+ {
+ "name": "seconds"
+ },
+ {
+ "name": "cycles"
+ },
+ {
+ "name": "boolean"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "bytes",
+ "seconds",
+ "cycles",
+ "boolean"
+ ]
+ },
+ {
+ "name": "712",
+ "members": [
+ {
+ "name": "protocols",
+ "type": "[str]"
+ },
+ {
+ "name": "unknown-protocols",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "713",
+ "members": [
+ {
+ "name": "builtin"
+ },
+ {
+ "name": "vhost-user"
+ },
+ {
+ "name": "lkcf"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "vhost-user",
+ "lkcf"
+ ]
+ },
+ {
+ "name": "714",
+ "members": [
+ {
+ "name": "cache-data-parity"
+ },
+ {
+ "name": "cache-address-parity"
+ },
+ {
+ "name": "cache-be-parity"
+ },
+ {
+ "name": "cache-data-ecc"
+ },
+ {
+ "name": "mem-data-parity"
+ },
+ {
+ "name": "mem-address-parity"
+ },
+ {
+ "name": "mem-be-parity"
+ },
+ {
+ "name": "mem-data-ecc"
+ },
+ {
+ "name": "reinit-threshold"
+ },
+ {
+ "name": "rsvd-encoding"
+ },
+ {
+ "name": "poison-received"
+ },
+ {
+ "name": "receiver-overflow"
+ },
+ {
+ "name": "internal"
+ },
+ {
+ "name": "cxl-ide-tx"
+ },
+ {
+ "name": "cxl-ide-rx"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "cache-data-parity",
+ "cache-address-parity",
+ "cache-be-parity",
+ "cache-data-ecc",
+ "mem-data-parity",
+ "mem-address-parity",
+ "mem-be-parity",
+ "mem-data-ecc",
+ "reinit-threshold",
+ "rsvd-encoding",
+ "poison-received",
+ "receiver-overflow",
+ "internal",
+ "cxl-ide-tx",
+ "cxl-ide-rx"
+ ]
+ },
+ {
+ "name": "715",
+ "members": [
+ {
+ "name": "unknown"
+ },
+ {
+ "name": "disabled-wait"
+ },
+ {
+ "name": "extint-loop"
+ },
+ {
+ "name": "pgmint-loop"
+ },
+ {
+ "name": "opint-loop"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "unknown",
+ "disabled-wait",
+ "extint-loop",
+ "pgmint-loop",
+ "opint-loop"
+ ]
+ },
+ {
+ "name": "716",
+ "members": [
+ {
+ "name": "qcow2"
+ },
+ {
+ "name": "vmdk"
+ },
+ {
+ "name": "luks"
+ },
+ {
+ "name": "rbd"
+ },
+ {
+ "name": "file"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "qcow2",
+ "vmdk",
+ "luks",
+ "rbd",
+ "file"
+ ]
+ },
+ {
+ "name": "717",
+ "members": [
+ {
+ "name": "data",
+ "type": "781"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "718",
+ "members": [
+ {
+ "name": "data",
+ "type": "782"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "719",
+ "members": [
+ {
+ "name": "data",
+ "type": "783"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "720",
+ "members": [
+ {
+ "name": "data",
+ "type": "784"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "721",
+ "members": [
+ {
+ "name": "data",
+ "type": "785"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "722",
+ "members": [
+ {
+ "name": "l1_update"
+ },
+ {
+ "name": "l1_grow_alloc_table"
+ },
+ {
+ "name": "l1_grow_write_table"
+ },
+ {
+ "name": "l1_grow_activate_table"
+ },
+ {
+ "name": "l2_load"
+ },
+ {
+ "name": "l2_update"
+ },
+ {
+ "name": "l2_update_compressed"
+ },
+ {
+ "name": "l2_alloc_cow_read"
+ },
+ {
+ "name": "l2_alloc_write"
+ },
+ {
+ "name": "read_aio"
+ },
+ {
+ "name": "read_backing_aio"
+ },
+ {
+ "name": "read_compressed"
+ },
+ {
+ "name": "write_aio"
+ },
+ {
+ "name": "write_compressed"
+ },
+ {
+ "name": "vmstate_load"
+ },
+ {
+ "name": "vmstate_save"
+ },
+ {
+ "name": "cow_read"
+ },
+ {
+ "name": "cow_write"
+ },
+ {
+ "name": "reftable_load"
+ },
+ {
+ "name": "reftable_grow"
+ },
+ {
+ "name": "reftable_update"
+ },
+ {
+ "name": "refblock_load"
+ },
+ {
+ "name": "refblock_update"
+ },
+ {
+ "name": "refblock_update_part"
+ },
+ {
+ "name": "refblock_alloc"
+ },
+ {
+ "name": "refblock_alloc_hookup"
+ },
+ {
+ "name": "refblock_alloc_write"
+ },
+ {
+ "name": "refblock_alloc_write_blocks"
+ },
+ {
+ "name": "refblock_alloc_write_table"
+ },
+ {
+ "name": "refblock_alloc_switch_table"
+ },
+ {
+ "name": "cluster_alloc"
+ },
+ {
+ "name": "cluster_alloc_bytes"
+ },
+ {
+ "name": "cluster_free"
+ },
+ {
+ "name": "flush_to_os"
+ },
+ {
+ "name": "flush_to_disk"
+ },
+ {
+ "name": "pwritev_rmw_head"
+ },
+ {
+ "name": "pwritev_rmw_after_head"
+ },
+ {
+ "name": "pwritev_rmw_tail"
+ },
+ {
+ "name": "pwritev_rmw_after_tail"
+ },
+ {
+ "name": "pwritev"
+ },
+ {
+ "name": "pwritev_zero"
+ },
+ {
+ "name": "pwritev_done"
+ },
+ {
+ "name": "empty_image_prepare"
+ },
+ {
+ "name": "l1_shrink_write_table"
+ },
+ {
+ "name": "l1_shrink_free_l2_clusters"
+ },
+ {
+ "name": "cor_write"
+ },
+ {
+ "name": "cluster_alloc_space"
+ },
+ {
+ "name": "none"
+ }
+ ],
+ "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",
+ "cluster_alloc_space",
+ "none"
+ ]
+ },
+ {
+ "name": "723",
+ "members": [
+ {
+ "name": "read"
+ },
+ {
+ "name": "write"
+ },
+ {
+ "name": "write-zeroes"
+ },
+ {
+ "name": "discard"
+ },
+ {
+ "name": "flush"
+ },
+ {
+ "name": "block-status"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "write-zeroes",
+ "discard",
+ "flush",
+ "block-status"
+ ]
+ },
+ {
+ "name": "724",
+ "members": [
+ {
+ "name": "inet"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "inet"
+ ]
+ },
+ {
+ "name": "725",
+ "members": [
+ {
+ "name": "template",
+ "default": null,
+ "type": "726"
+ },
+ {
+ "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"
+ },
+ {
+ "name": "bitmap-directory",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "726",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "constant"
+ },
+ {
+ "name": "cached"
+ },
+ {
+ "name": "all"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "constant",
+ "cached",
+ "all"
+ ]
+ },
+ {
+ "name": "727",
+ "members": [
+ {
+ "name": "aes"
+ },
+ {
+ "name": "luks"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "aes",
+ "luks"
+ ]
+ },
+ {
+ "name": "728",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "729",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "730",
+ "members": [
+ {
+ "name": "aes"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "aes"
+ ]
+ },
+ {
+ "name": "731",
+ "members": [
+ {
+ "name": "luks"
+ },
+ {
+ "name": "luks2"
+ },
+ {
+ "name": "luks-any"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "luks",
+ "luks2",
+ "luks-any"
+ ]
+ },
+ {
+ "name": "732",
+ "members": [
+ {
+ "name": "key-secret",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "733",
+ "members": [
+ {
+ "name": "key-secret",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "734",
+ "members": [
+ {
+ "name": "key-secret",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "735",
+ "members": [
+ {
+ "name": "none"
+ },
+ {
+ "name": "hash"
+ },
+ {
+ "name": "known_hosts"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "hash",
+ "known_hosts"
+ ]
+ },
+ {
+ "name": "736",
+ "members": [
+ {
+ "name": "type",
+ "type": "786"
+ },
+ {
+ "name": "hash",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "737",
+ "members": [
+ {
+ "name": "off"
+ },
+ {
+ "name": "metadata"
+ },
+ {
+ "name": "falloc"
+ },
+ {
+ "name": "full"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "metadata",
+ "falloc",
+ "full"
+ ]
+ },
+ {
+ "name": "738",
+ "members": [
+ {
+ "name": "aes-128"
+ },
+ {
+ "name": "aes-192"
+ },
+ {
+ "name": "aes-256"
+ },
+ {
+ "name": "des"
+ },
+ {
+ "name": "3des"
+ },
+ {
+ "name": "cast5-128"
+ },
+ {
+ "name": "serpent-128"
+ },
+ {
+ "name": "serpent-192"
+ },
+ {
+ "name": "serpent-256"
+ },
+ {
+ "name": "twofish-128"
+ },
+ {
+ "name": "twofish-192"
+ },
+ {
+ "name": "twofish-256"
+ },
+ {
+ "name": "sm4"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "aes-128",
+ "aes-192",
+ "aes-256",
+ "des",
+ "3des",
+ "cast5-128",
+ "serpent-128",
+ "serpent-192",
+ "serpent-256",
+ "twofish-128",
+ "twofish-192",
+ "twofish-256",
+ "sm4"
+ ]
+ },
+ {
+ "name": "739",
+ "members": [
+ {
+ "name": "ecb"
+ },
+ {
+ "name": "cbc"
+ },
+ {
+ "name": "xts"
+ },
+ {
+ "name": "ctr"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ecb",
+ "cbc",
+ "xts",
+ "ctr"
+ ]
+ },
+ {
+ "name": "740",
+ "members": [
+ {
+ "name": "plain"
+ },
+ {
+ "name": "plain64"
+ },
+ {
+ "name": "essiv"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "plain64",
+ "essiv"
+ ]
+ },
+ {
+ "name": "741",
+ "members": [
+ {
+ "name": "md5"
+ },
+ {
+ "name": "sha1"
+ },
+ {
+ "name": "sha224"
+ },
+ {
+ "name": "sha256"
+ },
+ {
+ "name": "sha384"
+ },
+ {
+ "name": "sha512"
+ },
+ {
+ "name": "ripemd160"
+ },
+ {
+ "name": "sm3"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512",
+ "ripemd160",
+ "sm3"
+ ]
+ },
+ {
+ "name": "742",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "qcow",
+ "type": "728"
+ },
+ {
+ "case": "luks",
+ "type": "788"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "787"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "743",
+ "members": [
+ {
+ "name": "v2"
+ },
+ {
+ "name": "v3"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "v2",
+ "v3"
+ ]
+ },
+ {
+ "name": "744",
+ "members": [
+ {
+ "name": "zlib"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "zlib"
+ ]
+ },
+ {
+ "name": "745",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "luks",
+ "type": "789"
+ },
+ {
+ "case": "luks2",
+ "type": "790"
+ },
+ {
+ "case": "luks-any",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "731"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "746",
+ "members": [
+ {
+ "name": "dynamic"
+ },
+ {
+ "name": "fixed"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "dynamic",
+ "fixed"
+ ]
+ },
+ {
+ "name": "747",
+ "members": [
+ {
+ "name": "monolithicSparse"
+ },
+ {
+ "name": "monolithicFlat"
+ },
+ {
+ "name": "twoGbMaxExtentSparse"
+ },
+ {
+ "name": "twoGbMaxExtentFlat"
+ },
+ {
+ "name": "streamOptimized"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "monolithicSparse",
+ "monolithicFlat",
+ "twoGbMaxExtentSparse",
+ "twoGbMaxExtentFlat",
+ "streamOptimized"
+ ]
+ },
+ {
+ "name": "748",
+ "members": [
+ {
+ "name": "ide"
+ },
+ {
+ "name": "buslogic"
+ },
+ {
+ "name": "lsilogic"
+ },
+ {
+ "name": "legacyESX"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "ide",
+ "buslogic",
+ "lsilogic",
+ "legacyESX"
+ ]
+ },
+ {
+ "name": "749",
+ "members": [
+ {
+ "name": "dynamic"
+ },
+ {
+ "name": "fixed"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "dynamic",
+ "fixed"
+ ]
+ },
+ {
+ "name": "750",
+ "members": [
+ {
+ "name": "active"
+ },
+ {
+ "name": "inactive"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "active",
+ "inactive"
+ ]
+ },
+ {
+ "name": "751",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "luks",
+ "type": "791"
+ },
+ {
+ "case": "qcow",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "787"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "752",
+ "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": "753",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "754",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "type": "362"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-authz",
+ "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": "websocket",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reconnect",
+ "default": null,
+ "type": "int",
+ "features": [
+ "deprecated"
+ ]
+ },
+ {
+ "name": "reconnect-ms",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "755",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "remote",
+ "type": "362"
+ },
+ {
+ "name": "local",
+ "default": null,
+ "type": "362"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "756",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "757",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "758",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "759",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "signal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "763",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "764",
+ "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": "765",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "766",
+ "members": [
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cancel-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "767",
+ "members": [
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "768",
+ "members": [
+ {
+ "name": "unmapped"
+ },
+ {
+ "name": "shift"
+ },
+ {
+ "name": "shift_r"
+ },
+ {
+ "name": "alt"
+ },
+ {
+ "name": "alt_r"
+ },
+ {
+ "name": "ctrl"
+ },
+ {
+ "name": "ctrl_r"
+ },
+ {
+ "name": "menu"
+ },
+ {
+ "name": "esc"
+ },
+ {
+ "name": "1"
+ },
+ {
+ "name": "2"
+ },
+ {
+ "name": "3"
+ },
+ {
+ "name": "4"
+ },
+ {
+ "name": "5"
+ },
+ {
+ "name": "6"
+ },
+ {
+ "name": "7"
+ },
+ {
+ "name": "8"
+ },
+ {
+ "name": "9"
+ },
+ {
+ "name": "0"
+ },
+ {
+ "name": "minus"
+ },
+ {
+ "name": "equal"
+ },
+ {
+ "name": "backspace"
+ },
+ {
+ "name": "tab"
+ },
+ {
+ "name": "q"
+ },
+ {
+ "name": "w"
+ },
+ {
+ "name": "e"
+ },
+ {
+ "name": "r"
+ },
+ {
+ "name": "t"
+ },
+ {
+ "name": "y"
+ },
+ {
+ "name": "u"
+ },
+ {
+ "name": "i"
+ },
+ {
+ "name": "o"
+ },
+ {
+ "name": "p"
+ },
+ {
+ "name": "bracket_left"
+ },
+ {
+ "name": "bracket_right"
+ },
+ {
+ "name": "ret"
+ },
+ {
+ "name": "a"
+ },
+ {
+ "name": "s"
+ },
+ {
+ "name": "d"
+ },
+ {
+ "name": "f"
+ },
+ {
+ "name": "g"
+ },
+ {
+ "name": "h"
+ },
+ {
+ "name": "j"
+ },
+ {
+ "name": "k"
+ },
+ {
+ "name": "l"
+ },
+ {
+ "name": "semicolon"
+ },
+ {
+ "name": "apostrophe"
+ },
+ {
+ "name": "grave_accent"
+ },
+ {
+ "name": "backslash"
+ },
+ {
+ "name": "z"
+ },
+ {
+ "name": "x"
+ },
+ {
+ "name": "c"
+ },
+ {
+ "name": "v"
+ },
+ {
+ "name": "b"
+ },
+ {
+ "name": "n"
+ },
+ {
+ "name": "m"
+ },
+ {
+ "name": "comma"
+ },
+ {
+ "name": "dot"
+ },
+ {
+ "name": "slash"
+ },
+ {
+ "name": "asterisk"
+ },
+ {
+ "name": "spc"
+ },
+ {
+ "name": "caps_lock"
+ },
+ {
+ "name": "f1"
+ },
+ {
+ "name": "f2"
+ },
+ {
+ "name": "f3"
+ },
+ {
+ "name": "f4"
+ },
+ {
+ "name": "f5"
+ },
+ {
+ "name": "f6"
+ },
+ {
+ "name": "f7"
+ },
+ {
+ "name": "f8"
+ },
+ {
+ "name": "f9"
+ },
+ {
+ "name": "f10"
+ },
+ {
+ "name": "num_lock"
+ },
+ {
+ "name": "scroll_lock"
+ },
+ {
+ "name": "kp_divide"
+ },
+ {
+ "name": "kp_multiply"
+ },
+ {
+ "name": "kp_subtract"
+ },
+ {
+ "name": "kp_add"
+ },
+ {
+ "name": "kp_enter"
+ },
+ {
+ "name": "kp_decimal"
+ },
+ {
+ "name": "sysrq"
+ },
+ {
+ "name": "kp_0"
+ },
+ {
+ "name": "kp_1"
+ },
+ {
+ "name": "kp_2"
+ },
+ {
+ "name": "kp_3"
+ },
+ {
+ "name": "kp_4"
+ },
+ {
+ "name": "kp_5"
+ },
+ {
+ "name": "kp_6"
+ },
+ {
+ "name": "kp_7"
+ },
+ {
+ "name": "kp_8"
+ },
+ {
+ "name": "kp_9"
+ },
+ {
+ "name": "less"
+ },
+ {
+ "name": "f11"
+ },
+ {
+ "name": "f12"
+ },
+ {
+ "name": "print"
+ },
+ {
+ "name": "home"
+ },
+ {
+ "name": "pgup"
+ },
+ {
+ "name": "pgdn"
+ },
+ {
+ "name": "end"
+ },
+ {
+ "name": "left"
+ },
+ {
+ "name": "up"
+ },
+ {
+ "name": "down"
+ },
+ {
+ "name": "right"
+ },
+ {
+ "name": "insert"
+ },
+ {
+ "name": "delete"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "again"
+ },
+ {
+ "name": "props"
+ },
+ {
+ "name": "undo"
+ },
+ {
+ "name": "front"
+ },
+ {
+ "name": "copy"
+ },
+ {
+ "name": "open"
+ },
+ {
+ "name": "paste"
+ },
+ {
+ "name": "find"
+ },
+ {
+ "name": "cut"
+ },
+ {
+ "name": "lf"
+ },
+ {
+ "name": "help"
+ },
+ {
+ "name": "meta_l"
+ },
+ {
+ "name": "meta_r"
+ },
+ {
+ "name": "compose"
+ },
+ {
+ "name": "pause"
+ },
+ {
+ "name": "ro"
+ },
+ {
+ "name": "hiragana"
+ },
+ {
+ "name": "henkan"
+ },
+ {
+ "name": "yen"
+ },
+ {
+ "name": "muhenkan"
+ },
+ {
+ "name": "katakanahiragana"
+ },
+ {
+ "name": "kp_comma"
+ },
+ {
+ "name": "kp_equals"
+ },
+ {
+ "name": "power"
+ },
+ {
+ "name": "sleep"
+ },
+ {
+ "name": "wake"
+ },
+ {
+ "name": "audionext"
+ },
+ {
+ "name": "audioprev"
+ },
+ {
+ "name": "audiostop"
+ },
+ {
+ "name": "audioplay"
+ },
+ {
+ "name": "audiomute"
+ },
+ {
+ "name": "volumeup"
+ },
+ {
+ "name": "volumedown"
+ },
+ {
+ "name": "mediaselect"
+ },
+ {
+ "name": "mail"
+ },
+ {
+ "name": "calculator"
+ },
+ {
+ "name": "computer"
+ },
+ {
+ "name": "ac_home"
+ },
+ {
+ "name": "ac_back"
+ },
+ {
+ "name": "ac_forward"
+ },
+ {
+ "name": "ac_refresh"
+ },
+ {
+ "name": "ac_bookmarks"
+ },
+ {
+ "name": "lang1"
+ },
+ {
+ "name": "lang2"
+ },
+ {
+ "name": "f13"
+ },
+ {
+ "name": "f14"
+ },
+ {
+ "name": "f15"
+ },
+ {
+ "name": "f16"
+ },
+ {
+ "name": "f17"
+ },
+ {
+ "name": "f18"
+ },
+ {
+ "name": "f19"
+ },
+ {
+ "name": "f20"
+ },
+ {
+ "name": "f21"
+ },
+ {
+ "name": "f22"
+ },
+ {
+ "name": "f23"
+ },
+ {
+ "name": "f24"
+ }
+ ],
+ "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",
+ "muhenkan",
+ "katakanahiragana",
+ "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",
+ "lang1",
+ "lang2",
+ "f13",
+ "f14",
+ "f15",
+ "f16",
+ "f17",
+ "f18",
+ "f19",
+ "f20",
+ "f21",
+ "f22",
+ "f23",
+ "f24"
+ ]
+ },
+ {
+ "name": "769",
+ "members": [
+ {
+ "name": "key",
+ "type": "416"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "770",
+ "members": [
+ {
+ "name": "button",
+ "type": "792"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "771",
+ "members": [
+ {
+ "name": "axis",
+ "type": "793"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "772",
+ "members": [
+ {
+ "name": "type",
+ "type": "794"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "tracking-id",
+ "type": "int"
+ },
+ {
+ "name": "axis",
+ "type": "793"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "773",
+ "members": [
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "774",
+ "members": [
+ {
+ "name": "socket"
+ },
+ {
+ "name": "exec"
+ },
+ {
+ "name": "rdma"
+ },
+ {
+ "name": "file"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "socket",
+ "exec",
+ "rdma",
+ "file"
+ ]
+ },
+ {
+ "name": "775",
+ "members": [
+ {
+ "name": "args",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "776",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "777",
+ "members": [],
+ "meta-type": "object"
+ },
+ {
+ "name": "778",
+ "members": [
+ {
+ "name": "exact"
+ },
+ {
+ "name": "glob"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "exact",
+ "glob"
+ ]
+ },
+ {
+ "name": "779",
+ "members": [
+ {
+ "name": "u8"
+ },
+ {
+ "name": "s8"
+ },
+ {
+ "name": "u16"
+ },
+ {
+ "name": "s16"
+ },
+ {
+ "name": "u32"
+ },
+ {
+ "name": "s32"
+ },
+ {
+ "name": "f32"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "u8",
+ "s8",
+ "u16",
+ "s16",
+ "u32",
+ "s32",
+ "f32"
+ ]
+ },
+ {
+ "name": "780",
+ "members": [
+ {
+ "name": "number",
+ "type": "int"
+ },
+ {
+ "name": "secondary",
+ "type": "int"
+ },
+ {
+ "name": "subordinate",
+ "type": "int"
+ },
+ {
+ "name": "io_range",
+ "type": "795"
+ },
+ {
+ "name": "memory_range",
+ "type": "795"
+ },
+ {
+ "name": "prefetchable_range",
+ "type": "795"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "781",
+ "members": [
+ {
+ "name": "compat",
+ "type": "str"
+ },
+ {
+ "name": "data-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "data-file-raw",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "extended-l2",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "corrupt",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "796"
+ },
+ {
+ "name": "bitmaps",
+ "default": null,
+ "type": "[797]"
+ },
+ {
+ "name": "compression-type",
+ "type": "744"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "782",
+ "members": [
+ {
+ "name": "create-type",
+ "type": "str"
+ },
+ {
+ "name": "cid",
+ "type": "int"
+ },
+ {
+ "name": "parent-cid",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "type": "[798]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "783",
+ "members": [
+ {
+ "name": "cipher-alg",
+ "type": "738"
+ },
+ {
+ "name": "cipher-mode",
+ "type": "739"
+ },
+ {
+ "name": "ivgen-alg",
+ "type": "740"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "741"
+ },
+ {
+ "name": "hash-alg",
+ "type": "741"
+ },
+ {
+ "name": "detached-header",
+ "type": "bool"
+ },
+ {
+ "name": "payload-offset",
+ "type": "int"
+ },
+ {
+ "name": "master-key-iters",
+ "type": "int"
+ },
+ {
+ "name": "uuid",
+ "type": "str"
+ },
+ {
+ "name": "slots",
+ "type": "[799]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "784",
+ "members": [
+ {
+ "name": "encryption-format",
+ "default": null,
+ "type": "731"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "785",
+ "members": [
+ {
+ "name": "extent-size-hint",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "786",
+ "members": [
+ {
+ "name": "md5"
+ },
+ {
+ "name": "sha1"
+ },
+ {
+ "name": "sha256"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha256"
+ ]
+ },
+ {
+ "name": "787",
+ "members": [
+ {
+ "name": "qcow"
+ },
+ {
+ "name": "luks"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "qcow",
+ "luks"
+ ]
+ },
+ {
+ "name": "788",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cipher-alg",
+ "default": null,
+ "type": "738"
+ },
+ {
+ "name": "cipher-mode",
+ "default": null,
+ "type": "739"
+ },
+ {
+ "name": "ivgen-alg",
+ "default": null,
+ "type": "740"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "741"
+ },
+ {
+ "name": "hash-alg",
+ "default": null,
+ "type": "741"
+ },
+ {
+ "name": "iter-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "789",
+ "members": [
+ {
+ "name": "key-secret",
+ "type": "str"
+ },
+ {
+ "name": "cipher-alg",
+ "default": null,
+ "type": "738"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "790",
+ "members": [
+ {
+ "name": "key-secret",
+ "type": "str"
+ },
+ {
+ "name": "cipher-alg",
+ "default": null,
+ "type": "738"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "791",
+ "members": [
+ {
+ "name": "state",
+ "type": "750"
+ },
+ {
+ "name": "new-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "old-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "keyslot",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iter-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "792",
+ "members": [
+ {
+ "name": "left"
+ },
+ {
+ "name": "middle"
+ },
+ {
+ "name": "right"
+ },
+ {
+ "name": "wheel-up"
+ },
+ {
+ "name": "wheel-down"
+ },
+ {
+ "name": "side"
+ },
+ {
+ "name": "extra"
+ },
+ {
+ "name": "wheel-left"
+ },
+ {
+ "name": "wheel-right"
+ },
+ {
+ "name": "touch"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "left",
+ "middle",
+ "right",
+ "wheel-up",
+ "wheel-down",
+ "side",
+ "extra",
+ "wheel-left",
+ "wheel-right",
+ "touch"
+ ]
+ },
+ {
+ "name": "793",
+ "members": [
+ {
+ "name": "x"
+ },
+ {
+ "name": "y"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "name": "794",
+ "members": [
+ {
+ "name": "begin"
+ },
+ {
+ "name": "update"
+ },
+ {
+ "name": "end"
+ },
+ {
+ "name": "cancel"
+ },
+ {
+ "name": "data"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "begin",
+ "update",
+ "end",
+ "cancel",
+ "data"
+ ]
+ },
+ {
+ "name": "795",
+ "members": [
+ {
+ "name": "base",
+ "type": "int"
+ },
+ {
+ "name": "limit",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "796",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "luks",
+ "type": "783"
+ },
+ {
+ "case": "aes",
+ "type": "0"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "727"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[797]",
+ "element-type": "797",
+ "meta-type": "array"
+ },
+ {
+ "name": "797",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "flags",
+ "type": "[800]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[798]",
+ "element-type": "798",
+ "meta-type": "array"
+ },
+ {
+ "name": "798",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "type": "str"
+ },
+ {
+ "name": "virtual-size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compressed",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[799]",
+ "element-type": "799",
+ "meta-type": "array"
+ },
+ {
+ "name": "799",
+ "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": "[800]",
+ "element-type": "800",
+ "meta-type": "array"
+ },
+ {
+ "name": "800",
+ "members": [
+ {
+ "name": "in-use"
+ },
+ {
+ "name": "auto"
+ }
+ ],
+ "meta-type": "enum",
+ "values": [
+ "in-use",
+ "auto"
+ ]
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "execute": "query-kvm",
+ "id": "libvirt-5"
+}
+
+{
+ "return": {
+ "enabled": true,
+ "present": true
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "execute": "qom-list-types",
+ "id": "libvirt-6"
+}
+
+{
+ "return": [
+ {
+ "name": "fp5280g2-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "virtio-keyboard-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "omap_i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "raspi0-machine",
+ "parent": "raspi-common-machine"
+ },
+ {
+ "name": "highbank-regs",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "collie-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "gd25q32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "cryptodev-backend-builtin",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "aspeed.scu-ast2500",
+ "parent": "aspeed.scu"
+ },
+ {
+ "name": "imx6.src",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qio-channel-file",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "ppc4xx-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "cortex-m3-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "ps2-kbd",
+ "parent": "ps2-device"
+ },
+ {
+ "name": "m25px32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "en25q64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "xlnx.ps7-spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cryptodev-backend",
+ "parent": "object"
+ },
+ {
+ "name": "cadence_gem",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "filter-mirror",
+ "parent": "netfilter"
+ },
+ {
+ "name": "pcie-root-port",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "realview_pci",
+ "parent": "versatile_pci"
+ },
+ {
+ "name": "a9mpcore_priv",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "armv7m-ras",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "allwinner-emac",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "arm1136-r2-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "cortex-a35-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "chardev-memory",
+ "parent": "chardev-ringbuf"
+ },
+ {
+ "name": "virtio-serial-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "netduinoplus2-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "allwinner-h3-sysctrl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx7.analog",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cadence_ttc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "armsse-cpu-pwrctrl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.adc-ast2500",
+ "parent": "aspeed.adc"
+ },
+ {
+ "name": "smmuv3-iommu-memory-region",
+ "parent": "iommu-memory-region"
+ },
+ {
+ "name": "xlnx-zynqmp-efuse",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "m25p80",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "strongarm-ssp",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "stm32.rcc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "e1000e",
+ "parent": "pci-device"
+ },
+ {
+ "name": "aspeed.sli-ast2700",
+ "parent": "aspeed.sli"
+ },
+ {
+ "name": "highbank-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "exynos4210.mct",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ati-vga",
+ "parent": "pci-device"
+ },
+ {
+ "name": "aspeed.i2c-ast1030",
+ "parent": "aspeed.i2c"
+ },
+ {
+ "name": "arm1136-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "chardev-parallel",
+ "parent": "chardev"
+ },
+ {
+ "name": "arm926-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "aspeed.fmc-ast2500",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "ast2500-evb-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "aspeed.i2c.slave",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "xlnx-zynmp.rtc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.wdt-ast2700",
+ "parent": "aspeed.wdt"
+ },
+ {
+ "name": "is25lp080d",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "axp209_pmu",
+ "parent": "axp2xx_pmu"
+ },
+ {
+ "name": "pl041",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-9p-pci-transitional",
+ "parent": "virtio-9p-pci-base"
+ },
+ {
+ "name": "aspeed.xdma-ast2400",
+ "parent": "aspeed.xdma"
+ },
+ {
+ "name": "ast2700-a0",
+ "parent": "aspeed27x0-soc"
+ },
+ {
+ "name": "aspeed.scuio-ast2700",
+ "parent": "aspeed.scu"
+ },
+ {
+ "name": "armv7m_nvic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx-versal-cfu-sfr",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "arm-gicv3-its",
+ "parent": "arm-gicv3-its-common"
+ },
+ {
+ "name": "virt-2.6-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "mx66u51235f",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "ssd0323",
+ "parent": "ssi-peripheral"
+ },
+ {
+ "name": "sbsa_gwdt",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx.enet",
+ "parent": "imx.fec"
+ },
+ {
+ "name": "is25lp256",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "w25x20",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "HDA",
+ "parent": "bus"
+ },
+ {
+ "name": "sonorapass-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "esp",
+ "parent": "device"
+ },
+ {
+ "name": "ast2400-a1",
+ "parent": "aspeed2400-soc"
+ },
+ {
+ "name": "x-remote-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "aspeed.apb2opb",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "stm32f2xx-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virt-8.2-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "cxl-upstream",
+ "parent": "pcie-port"
+ },
+ {
+ "name": "neoverse-n1-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "can-host-socketcan",
+ "parent": "can-host"
+ },
+ {
+ "name": "chardev-mux",
+ "parent": "chardev"
+ },
+ {
+ "name": "l2x0",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "tls-creds-anon",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "qio-channel-tls",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "ide-cf",
+ "parent": "ide-device"
+ },
+ {
+ "name": "virt-6.2-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "fuji-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "kvm-arm-gicv3",
+ "parent": "arm-gicv3-common"
+ },
+ {
+ "name": "authz-list",
+ "parent": "authz"
+ },
+ {
+ "name": "chardev-file",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "arm-gicv3",
+ "parent": "arm-gicv3-common"
+ },
+ {
+ "name": "stm32f100-soc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-mmio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "m45pe80",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "imx25.ccm",
+ "parent": "imx.ccm"
+ },
+ {
+ "name": "ide-cd",
+ "parent": "ide-device"
+ },
+ {
+ "name": "cortex-m55-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "tz-mpc-iommu-memory-region",
+ "parent": "iommu-memory-region"
+ },
+ {
+ "name": "vexpress-a15-machine",
+ "parent": "vexpress"
+ },
+ {
+ "name": "a9-scu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "arm11mpcore-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "integrator_debug",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "armsse-mhu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "wm8750",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "npcm-gmac",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-snd",
+ "parent": "vhost-user-base"
+ },
+ {
+ "name": "sse-200",
+ "parent": "arm-sse"
+ },
+ {
+ "name": "host-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "vhost-user-input",
+ "parent": "vhost-user-base"
+ },
+ {
+ "name": "dc390",
+ "parent": "am53c974"
+ },
+ {
+ "name": "xlnx-versal-crl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "fsi.master",
+ "parent": "device"
+ },
+ {
+ "name": "pci-bridge-seat",
+ "parent": "pci-bridge"
+ },
+ {
+ "name": "virtio-balloon-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "nrf51_soc.uart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "m25p20",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virtio-iommu-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "gpio-key",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "i82557c",
+ "parent": "pci-device"
+ },
+ {
+ "name": "exynos4210.combiner",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cortex-a55-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "is25lp016d",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "fw_cfg_io",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "i82557b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cmsdk-apb-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pxa255-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "xlnx-versal-cfu-apb",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.spi1-ast2400",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "acpi-generic-initiator",
+ "parent": "object"
+ },
+ {
+ "name": "i82557a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-crypto-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "npcm7xx-clk",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bochs-display",
+ "parent": "pci-device"
+ },
+ {
+ "name": "stm32l4x5-rcc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx-cframe-reg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-sound-pci",
+ "parent": "virtio-sound-pci-base-type"
+ },
+ {
+ "name": "w25q80",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "raspi2b-machine",
+ "parent": "raspi-common-machine"
+ },
+ {
+ "name": "ivshmem-doorbell",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "loader",
+ "parent": "device"
+ },
+ {
+ "name": "arm946-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "bcm2835-sdhost-bus",
+ "parent": "sd-bus"
+ },
+ {
+ "name": "usb-serial",
+ "parent": "usb-serial-dev"
+ },
+ {
+ "name": "throttle-group",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-serial-pci-transitional",
+ "parent": "virtio-serial-pci-base"
+ },
+ {
+ "name": "rme-guest",
+ "parent": "confidential-guest-support"
+ },
+ {
+ "name": "cortex-a72-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "stellaris-gptm",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-balloon-pci-non-transitional",
+ "parent": "virtio-balloon-pci-base"
+ },
+ {
+ "name": "lsi53c895a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "aspeed.scu-ast2600",
+ "parent": "aspeed.scu"
+ },
+ {
+ "name": "n25q064",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "sbsa-ec",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "stm32l4x5-syscfg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "digic-uart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "x-remote-iommu",
+ "parent": "object"
+ },
+ {
+ "name": "sst25wf512",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "chardev-udp",
+ "parent": "chardev"
+ },
+ {
+ "name": "xlnx.xps-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx2.wdt",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-gpu",
+ "parent": "virtio-gpu-base"
+ },
+ {
+ "name": "aspeed.spi2-ast2500",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "allwinner-h3-dramc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pci-serial-4x",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-9p-pci",
+ "parent": "virtio-9p-pci-base"
+ },
+ {
+ "name": "aspeed.hace-ast2400",
+ "parent": "aspeed.hace"
+ },
+ {
+ "name": "aspeed.adc-ast2600",
+ "parent": "aspeed.adc"
+ },
+ {
+ "name": "s25fl256s1",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "fsl-imx6ul",
+ "parent": "device"
+ },
+ {
+ "name": "virtio-input-host-device",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "raspi3b-machine",
+ "parent": "raspi-common-machine"
+ },
+ {
+ "name": "qemu-graphic-console",
+ "parent": "qemu-console"
+ },
+ {
+ "name": "vhost-scsi-pci-non-transitional",
+ "parent": "vhost-scsi-pci-base"
+ },
+ {
+ "name": "s25fl256s0",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "input-barrier",
+ "parent": "object"
+ },
+ {
+ "name": "isl69260",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "chardev-socket",
+ "parent": "chardev"
+ },
+ {
+ "name": "virt-8.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "vfio-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "vhost-user-vsock-pci-non-transitional",
+ "parent": "vhost-user-vsock-pci-base"
+ },
+ {
+ "name": "vhost-vdpa-device-pci-non-transitional",
+ "parent": "vhost-vdpa-device-pci-base"
+ },
+ {
+ "name": "e1000",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "IDE",
+ "parent": "bus"
+ },
+ {
+ "name": "aw-h3-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "vhost-user-fs-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "s25sl008a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "is25wp256",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virt-6.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "ARM-bitband-memory",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.fmc-ast2600",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "olimex-stm32-h405-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "axp221_pmu",
+ "parent": "axp2xx_pmu"
+ },
+ {
+ "name": "allwinner-r40-dramc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "secret",
+ "parent": "secret_common"
+ },
+ {
+ "name": "rng-random",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "ufs-lu",
+ "parent": "device"
+ },
+ {
+ "name": "virtio-serial-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "pc-dimm",
+ "parent": "device"
+ },
+ {
+ "name": "dwc2-usb",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qio-net-listener",
+ "parent": "object"
+ },
+ {
+ "name": "usb-storage",
+ "parent": "usb-storage-dev"
+ },
+ {
+ "name": "bcm2835-spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "tz-mpc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "npcm7xx-gcr",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "w25q80bl",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.xdma-ast2500",
+ "parent": "aspeed.xdma"
+ },
+ {
+ "name": "virtio-scsi-pci-transitional",
+ "parent": "virtio-scsi-pci-base"
+ },
+ {
+ "name": "mv88w8618_pit",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vfio-iommu-legacy",
+ "parent": "vfio-iommu"
+ },
+ {
+ "name": "virtio-serial-pci",
+ "parent": "virtio-serial-pci-base"
+ },
+ {
+ "name": "en25f32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "mps2-an386-machine",
+ "parent": "mps2"
+ },
+ {
+ "name": "xlnx-versal-virt-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "is25lp032",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "acpi-ged",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qio-dns-resolver",
+ "parent": "object"
+ },
+ {
+ "name": "platform-bus-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cortex-m33-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "xlnx.versal-pmc-iou-slcr",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xio3130-downstream",
+ "parent": "pcie-slot"
+ },
+ {
+ "name": "vhost-vsock-pci",
+ "parent": "vhost-vsock-pci-base"
+ },
+ {
+ "name": "tpm-tis-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "raspi4b-machine",
+ "parent": "raspi-base-machine"
+ },
+ {
+ "name": "x-remote-object",
+ "parent": "object"
+ },
+ {
+ "name": "usb-mtp",
+ "parent": "usb-device"
+ },
+ {
+ "name": "virtio-blk-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "PCI",
+ "parent": "bus"
+ },
+ {
+ "name": "bpim2u-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "luminary-watchdog",
+ "parent": "cmsdk-apb-watchdog"
+ },
+ {
+ "name": "netduino2-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "imx7.src",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx-versal-cfu-fdro",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ide-hd",
+ "parent": "ide-device"
+ },
+ {
+ "name": "max34451",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "ich9-ahci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cfam",
+ "parent": "fsi.slave"
+ },
+ {
+ "name": "aspeed.i2c-ast2400",
+ "parent": "aspeed.i2c"
+ },
+ {
+ "name": "memory-region",
+ "parent": "object"
+ },
+ {
+ "name": "w25x16",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vfio-amd-xgbe",
+ "parent": "vfio-platform"
+ },
+ {
+ "name": "allwinner-r40",
+ "parent": "device"
+ },
+ {
+ "name": "bcm2835-cprman-pll",
+ "parent": "device"
+ },
+ {
+ "name": "at25128a-nonjedec",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "sysbus-ohci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "stm32l4x5-rcc-pll",
+ "parent": "device"
+ },
+ {
+ "name": "n25q256a13",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "usb-kbd",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "smc91c111",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mx25l12855e",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "bcm2835-fb",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "arm.cortex-a9-global-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "secondary-vga",
+ "parent": "pci-vga"
+ },
+ {
+ "name": "pxb-host",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "ast1030-evb-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "xlnx.zdma",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cubieboard-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "n25q256a11",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "qemu-register",
+ "parent": "device"
+ },
+ {
+ "name": "pci-ohci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "designware-pcie-root",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "pl031",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-vdpa-device-pci",
+ "parent": "vhost-vdpa-device-pci-base"
+ },
+ {
+ "name": "npcm7xx-emc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "stm32l4x5-lpuart",
+ "parent": "stm32l4x5-usart-base"
+ },
+ {
+ "name": "arm-smmuv3",
+ "parent": "arm-smmu"
+ },
+ {
+ "name": "tpci200",
+ "parent": "pci-device"
+ },
+ {
+ "name": "raspi3ap-machine",
+ "parent": "raspi-common-machine"
+ },
+ {
+ "name": "exynos4210.clk",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.spi1-ast2500",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "imx25.gpt",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "allwinner-sdhost-sun5i",
+ "parent": "allwinner-sdhost"
+ },
+ {
+ "name": "w25x10",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.smc-ast2400",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "sse-300",
+ "parent": "arm-sse"
+ },
+ {
+ "name": "vhost-vsock-pci-non-transitional",
+ "parent": "vhost-vsock-pci-base"
+ },
+ {
+ "name": "mx66l51235f",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "musicpal_lcd",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "designware-pcie-host",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "m25p16",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "usb-chipidea",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "emmc",
+ "parent": "sdmmc-common"
+ },
+ {
+ "name": "allwinner-sramc-sun8i-r40",
+ "parent": "allwinner-sramc"
+ },
+ {
+ "name": "mx25l6405d",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "bcm2835-thermal",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "nrf51_soc.timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virt-8.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "allwinner-a10-ccm",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q512a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "fsl-imx7",
+ "parent": "device"
+ },
+ {
+ "name": "at25fs040",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "legacy-reset",
+ "parent": "object"
+ },
+ {
+ "name": "allwinner-sdhost-bus",
+ "parent": "sd-bus"
+ },
+ {
+ "name": "vhost-user-vsock-device",
+ "parent": "vhost-vsock-common"
+ },
+ {
+ "name": "aspeed.scu-ast2700",
+ "parent": "aspeed.scu"
+ },
+ {
+ "name": "virt-6.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "arm_gic",
+ "parent": "arm_gic_common"
+ },
+ {
+ "name": "fsl-imx6",
+ "parent": "device"
+ },
+ {
+ "name": "strongarm-ppc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.ps7-dev-cfg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mss-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mps2-an505-machine",
+ "parent": "mps2tz"
+ },
+ {
+ "name": "mps2-an385-machine",
+ "parent": "mps2"
+ },
+ {
+ "name": "tpm-log",
+ "parent": "object"
+ },
+ {
+ "name": "vhost-user-blk",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "pxb-bus",
+ "parent": "PCI"
+ },
+ {
+ "name": "allwinner-r40-ccu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-gpu-device",
+ "parent": "virtio-gpu-base"
+ },
+ {
+ "name": "at24c-eeprom",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "stm32l4x5xe-soc",
+ "parent": "stm32l4x5-soc"
+ },
+ {
+ "name": "aspeed.spi2-ast2600",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "usb-tablet",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "aspeed.lpc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ccid-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "mv88w8618_pic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "fw_cfg_mem",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "xlnx.axi-dma",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sst25wf080",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "at26df321",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.adc-ast2700",
+ "parent": "aspeed.adc"
+ },
+ {
+ "name": "aspeed.hace-ast2500",
+ "parent": "aspeed.hace"
+ },
+ {
+ "name": "VGA",
+ "parent": "pci-vga"
+ },
+ {
+ "name": "at25256a-nonjedec",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "m25p10",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "fsi.slave",
+ "parent": "device"
+ },
+ {
+ "name": "sd-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "m25p128",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "ps2-mouse",
+ "parent": "ps2-device"
+ },
+ {
+ "name": "cortex-m0-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "ipoctal232",
+ "parent": "ipack-device"
+ },
+ {
+ "name": "chardev-dbus",
+ "parent": "chardev-socket"
+ },
+ {
+ "name": "npcm-pspi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q512ax3",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "cortex-a53-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "imx6ul.ccm",
+ "parent": "imx.ccm"
+ },
+ {
+ "name": "virtio-mem-pci",
+ "parent": "virtio-mem-pci-base"
+ },
+ {
+ "name": "isl69259",
+ "parent": "isl69260"
+ },
+ {
+ "name": "fby35-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "tpm-emulator",
+ "parent": "tpm-backend"
+ },
+ {
+ "name": "igbvf",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pl190",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.versal-canfd",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "npcm730",
+ "parent": "npcm7xx"
+ },
+ {
+ "name": "allwinner.i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "scsi-generic",
+ "parent": "scsi-device"
+ },
+ {
+ "name": "vhost-user-backend",
+ "parent": "object"
+ },
+ {
+ "name": "max-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "cryptodev-vhost-user",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "xgmac",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sst25vf040b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.fmc-ast2700",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "is25wp032",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "s25fs512s",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "allwinner-wdt-sun4i",
+ "parent": "allwinner-wdt"
+ },
+ {
+ "name": "aspeed.smc.flash",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "microbit-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "vhost-user-fs-pci",
+ "parent": "vhost-user-fs-pci-base"
+ },
+ {
+ "name": "allwinner-sramc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "intel-hda",
+ "parent": "intel-hda-generic"
+ },
+ {
+ "name": "pcie-pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "usb-wacom-tablet",
+ "parent": "usb-device"
+ },
+ {
+ "name": "aspeed.xdma-ast2600",
+ "parent": "aspeed.xdma"
+ },
+ {
+ "name": "npcm7xx-fuse-array",
+ "parent": "npcm7xx-otp"
+ },
+ {
+ "name": "mt25ql512ab",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "cadence_uart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "m45pe16",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "xlnx.zynqmp-can",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2835-cprman-pll-channel",
+ "parent": "device"
+ },
+ {
+ "name": "qtest",
+ "parent": "object"
+ },
+ {
+ "name": "vfio-pci-nohotplug",
+ "parent": "vfio-pci"
+ },
+ {
+ "name": "pl181-bus",
+ "parent": "sd-bus"
+ },
+ {
+ "name": "aspeed.rtc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "exynos4210.gic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "authz-list-file",
+ "parent": "authz"
+ },
+ {
+ "name": "unimplemented-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "usb-ehci",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "sa1100-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "stm32l4x5-usart",
+ "parent": "stm32l4x5-usart-base"
+ },
+ {
+ "name": "mptsas1068",
+ "parent": "pci-device"
+ },
+ {
+ "name": "thread-context",
+ "parent": "object"
+ },
+ {
+ "name": "stm32f405-soc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "e1000-82545em",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "allwinner-rtc-sun4i",
+ "parent": "allwinner-rtc"
+ },
+ {
+ "name": "gpex-pcihost",
+ "parent": "pcie-host-bridge"
+ },
+ {
+ "name": "npcm7xx-key-storage",
+ "parent": "npcm7xx-otp"
+ },
+ {
+ "name": "w25x64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.i2c-ast2500",
+ "parent": "aspeed.i2c"
+ },
+ {
+ "name": "cmsdk-apb-watchdog",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s70fl01gs",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "at26df161a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "npcm7xx-adc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.adc.engine",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "i82559er",
+ "parent": "pci-device"
+ },
+ {
+ "name": "tmp105",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "megasas",
+ "parent": "megasas-base"
+ },
+ {
+ "name": "supermicro-x11spi-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "pl081",
+ "parent": "pl080"
+ },
+ {
+ "name": "vhost-user-device-pci",
+ "parent": "vhost-user-device-pci-base"
+ },
+ {
+ "name": "i2c-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "m45pe10",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "realview_sysctl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "filter-replay",
+ "parent": "netfilter"
+ },
+ {
+ "name": "pl080",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pxb-pcie-bus",
+ "parent": "PCIE"
+ },
+ {
+ "name": "xlnx.usmp-gqspi",
+ "parent": "xlnx.ps7-qspi"
+ },
+ {
+ "name": "lm3s6965evb-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "lm3s811evb-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "aspeed.timer-ast1030",
+ "parent": "aspeed.timer"
+ },
+ {
+ "name": "sst25wf020",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "sa1110-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "cortex-r52-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "lan9118",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mx25l8005",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "sysbus-xhci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "exynos4210.i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx-gpcv2",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-mouse-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "stellaris-i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx.fec",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mx25l1606e",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.spi1-ast2600",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "musicpal-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "stellaris-gamepad",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cfi.pflash02",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pr-manager-helper",
+ "parent": "pr-manager"
+ },
+ {
+ "name": "accel",
+ "parent": "object"
+ },
+ {
+ "name": "tmp423",
+ "parent": "tmp421-generic"
+ },
+ {
+ "name": "tmp422",
+ "parent": "tmp421-generic"
+ },
+ {
+ "name": "aspeed.gpio-ast1030",
+ "parent": "aspeed.gpio"
+ },
+ {
+ "name": "ufs",
+ "parent": "pci-device"
+ },
+ {
+ "name": "m25p64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "x-pci-proxy-dev",
+ "parent": "pci-device"
+ },
+ {
+ "name": "mv88w8618_wlan",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cfi.pflash01",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pxb-cxl-bus",
+ "parent": "CXL"
+ },
+ {
+ "name": "integrator_core",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "midway-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "tls-creds-x509",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "xilinx-zynq_slcr",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mx25l4005a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vexpress-a9-machine",
+ "parent": "vexpress"
+ },
+ {
+ "name": "npcm7xx-clock-divider",
+ "parent": "device"
+ },
+ {
+ "name": "tmp421",
+ "parent": "tmp421-generic"
+ },
+ {
+ "name": "mps2-fpgaio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-device",
+ "parent": "vhost-user-base"
+ },
+ {
+ "name": "icp-ctrl-regs",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "w25q32dw",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "kudo-bmc-machine",
+ "parent": "npcm7xx-machine"
+ },
+ {
+ "name": "at45db081d",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "npcm7xx-mft",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pci-serial",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-msmouse",
+ "parent": "chardev"
+ },
+ {
+ "name": "or-irq",
+ "parent": "device"
+ },
+ {
+ "name": "usb-ccid",
+ "parent": "usb-device"
+ },
+ {
+ "name": "xlnx.versal-usb2-ctrl-regs",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.spi2-ast2700",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "mps3-an524-machine",
+ "parent": "mps2tz"
+ },
+ {
+ "name": "pl022",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ast2500-a1",
+ "parent": "aspeed2400-soc"
+ },
+ {
+ "name": "gpio_i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2835-property",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "armv7m",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.hace-ast2600",
+ "parent": "aspeed.hace"
+ },
+ {
+ "name": "qcom-firework-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "arm11mpcore_priv",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "witherspoon-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "virt-9.2-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "vhost-scsi-pci",
+ "parent": "vhost-scsi-pci-base"
+ },
+ {
+ "name": "m41t80",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "virt-4.2-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "supermicrox11-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "ich9-usb-ehci2",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "musicpal_gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "at25df041a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virtio-scsi-pci",
+ "parent": "virtio-scsi-pci-base"
+ },
+ {
+ "name": "cortex-a710-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "ssd0303",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "virt-7.2-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "allwinner-sdhost-sun4i",
+ "parent": "allwinner-sdhost"
+ },
+ {
+ "name": "qemu-xhci",
+ "parent": "pci-xhci"
+ },
+ {
+ "name": "msf2-sysreg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ich9-usb-ehci1",
+ "parent": "pci-ehci-usb"
+ },
+ {
+ "name": "virtio-scsi-device",
+ "parent": "virtio-scsi-common"
+ },
+ {
+ "name": "mx25l3205d",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "pxa262-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "integratorcp-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "realview-eb-mpcore-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "vhost-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "bcm2835-rng",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "usb-braille",
+ "parent": "usb-serial-dev"
+ },
+ {
+ "name": "fsi.bus",
+ "parent": "bus"
+ },
+ {
+ "name": "lsm303dlhc_mag",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "resettable-container",
+ "parent": "object"
+ },
+ {
+ "name": "input-linux",
+ "parent": "object"
+ },
+ {
+ "name": "m25p05",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "cxl-rp",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "sysbus-ahci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx6ul.gpt",
+ "parent": "imx25.gpt"
+ },
+ {
+ "name": "allwinner-sdhost-sun50i-a64-emmc",
+ "parent": "allwinner-sdhost"
+ },
+ {
+ "name": "en25p32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "i6300esb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "memory-backend-file",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "aspeed.hace",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-gpio-device",
+ "parent": "vhost-user-base"
+ },
+ {
+ "name": "megasas-gen2",
+ "parent": "megasas-base"
+ },
+ {
+ "name": "vhost-user-scsi-pci",
+ "parent": "vhost-user-scsi-pci-base"
+ },
+ {
+ "name": "bcm2835-cprman-clock-mux",
+ "parent": "device"
+ },
+ {
+ "name": "digic-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "at26f004",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "imx.rngc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "arm11-scu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xilinx-axienet-control-stream",
+ "parent": "object"
+ },
+ {
+ "name": "exynos4210.uart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "remote-pcihost",
+ "parent": "pcie-host-bridge"
+ },
+ {
+ "name": "virtio-pci-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "w25q64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vhost-user-gpu-pci",
+ "parent": "vhost-user-gpu-pci-base-type"
+ },
+ {
+ "name": "aspeed.i2c-ast2600",
+ "parent": "aspeed.i2c"
+ },
+ {
+ "name": "acpi-generic-port",
+ "parent": "object"
+ },
+ {
+ "name": "stellaris-adc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "at26df081a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "i82562",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ich9-usb-uhci6",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "is25lp128",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "mt25ql02g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "versatile_i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "hda-duplex",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "gd25q64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "ich9-usb-uhci5",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "pl181",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "filter-redirector",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtio-9p-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "nrf51_soc.rng",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "iotkit-sysinfo",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "usb-hub",
+ "parent": "usb-device"
+ },
+ {
+ "name": "cpu-cluster",
+ "parent": "device"
+ },
+ {
+ "name": "usb-mouse",
+ "parent": "usb-hid"
+ },
+ {
+ "name": "chardev-gdb",
+ "parent": "chardev"
+ },
+ {
+ "name": "ich9-usb-uhci4",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "m25px64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "pca9552",
+ "parent": "pca955x"
+ },
+ {
+ "name": "aspeed.sdmc-ast2400",
+ "parent": "aspeed.sdmc"
+ },
+ {
+ "name": "allwinner.spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ich9-usb-uhci3",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "bcm2835-cprman-dsi0hsck-mux",
+ "parent": "device"
+ },
+ {
+ "name": "gpex-root",
+ "parent": "pci-device"
+ },
+ {
+ "name": "SCSI",
+ "parent": "bus"
+ },
+ {
+ "name": "ich9-usb-uhci2",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "vfio-platform",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cmsdk-apb-uart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qio-channel-websock",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "xlnx.xps-spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ich9-usb-uhci1",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "versatilepb-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "allwinner-h3-ccu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vfio-iommu-iommufd",
+ "parent": "vfio-iommu"
+ },
+ {
+ "name": "aspeed.spi1-ast2700",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "virtio-mouse-pci",
+ "parent": "virtio-mouse-pci-base-type"
+ },
+ {
+ "name": "quanta-gsj-machine",
+ "parent": "npcm7xx-machine"
+ },
+ {
+ "name": "strongarm-gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s25fl129p1",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "qio-channel-null",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-net-pci",
+ "parent": "virtio-net-pci-base"
+ },
+ {
+ "name": "chardev-wctablet",
+ "parent": "chardev"
+ },
+ {
+ "name": "vmcoreinfo",
+ "parent": "device"
+ },
+ {
+ "name": "bcm2836-control",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-scsi-pci-transitional",
+ "parent": "vhost-user-scsi-pci-base"
+ },
+ {
+ "name": "s25fl129p0",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "pvscsi",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virt-9.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "n25q064a13",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "arm-gicv2m",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-user-blk-pci-transitional",
+ "parent": "vhost-user-blk-pci-base"
+ },
+ {
+ "name": "led",
+ "parent": "device"
+ },
+ {
+ "name": "ramfb",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "allwinner-ahci",
+ "parent": "sysbus-ahci"
+ },
+ {
+ "name": "virt-4.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "npcm7xx-clock-sel",
+ "parent": "device"
+ },
+ {
+ "name": "stm32l4x5-exti",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-rng-pci-transitional",
+ "parent": "virtio-rng-pci-base"
+ },
+ {
+ "name": "virtio-keyboard-pci",
+ "parent": "virtio-keyboard-pci-base-type"
+ },
+ {
+ "name": "bletchley-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "virt-7.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "pci-serial-2x",
+ "parent": "pci-device"
+ },
+ {
+ "name": "n25q064a11",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "nvme",
+ "parent": "pci-device"
+ },
+ {
+ "name": "nrf51_soc.nvm",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.timer-ast2400",
+ "parent": "aspeed.timer"
+ },
+ {
+ "name": "realview_mpcore",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "migration",
+ "parent": "device"
+ },
+ {
+ "name": "pxa261-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "tacoma-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "aspeed.wdt-ast1030",
+ "parent": "aspeed.wdt"
+ },
+ {
+ "name": "mv88w8618_flashcfg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "fsl-imx31",
+ "parent": "device"
+ },
+ {
+ "name": "virtio-multitouch-pci",
+ "parent": "virtio-multitouch-pci-base-type"
+ },
+ {
+ "name": "scoop",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "hda-micro",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "exynos4210.fimd",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-scsi-pci-non-transitional",
+ "parent": "virtio-scsi-pci-base"
+ },
+ {
+ "name": "pxa270-c5-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "sst25wf010",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.i3c.device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.gpio-ast2400",
+ "parent": "aspeed.gpio"
+ },
+ {
+ "name": "usb-audio",
+ "parent": "usb-device"
+ },
+ {
+ "name": "s25sl032p",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "allwinner-sdhost-sun50i-a64",
+ "parent": "allwinner-sdhost"
+ },
+ {
+ "name": "chardev-ringbuf",
+ "parent": "chardev"
+ },
+ {
+ "name": "digic",
+ "parent": "device"
+ },
+ {
+ "name": "ich9-intel-hda",
+ "parent": "intel-hda-generic"
+ },
+ {
+ "name": "base-xhci",
+ "parent": "device"
+ },
+ {
+ "name": "virtconsole",
+ "parent": "virtserialport"
+ },
+ {
+ "name": "at25df321a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "g220a-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "vhost-user-blk-pci",
+ "parent": "vhost-user-blk-pci-base"
+ },
+ {
+ "name": "aspeed.gpio-ast2600-1_8v",
+ "parent": "aspeed.gpio"
+ },
+ {
+ "name": "allwinner-cpucfg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s25sl064p",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "xlnx.versal-usb2",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "tz-ppc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sx1-v1-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "pl050_keyboard",
+ "parent": "pl050"
+ },
+ {
+ "name": "allwinner-h3",
+ "parent": "device"
+ },
+ {
+ "name": "piix3-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "kvaser_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "u2f-passthru",
+ "parent": "u2f-key"
+ },
+ {
+ "name": "palmetto-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "gpio-pwr",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pxa250-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "serial-mm",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "usb-uas",
+ "parent": "usb-device"
+ },
+ {
+ "name": "ES1370",
+ "parent": "pci-device"
+ },
+ {
+ "name": "i2c-echo",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "raspi1ap-machine",
+ "parent": "raspi-common-machine"
+ },
+ {
+ "name": "n25q128a13",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vhost-vdpa-device-pci-transitional",
+ "parent": "vhost-vdpa-device-pci-base"
+ },
+ {
+ "name": "is25wp128",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "exynos4210",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-null",
+ "parent": "chardev"
+ },
+ {
+ "name": "mps2-scc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-rng-pci-non-transitional",
+ "parent": "virtio-rng-pci-base"
+ },
+ {
+ "name": "integrator_pit",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "host-iommu-device-legacy-vfio",
+ "parent": "host-iommu-device"
+ },
+ {
+ "name": "raa228000",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "n25q128a11",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "ds1338",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "mx66u1g45g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virtio-gpu-pci",
+ "parent": "virtio-gpu-pci-base-type"
+ },
+ {
+ "name": "pcnet",
+ "parent": "pci-device"
+ },
+ {
+ "name": "bcm2835_gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.spi0-ast2700",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "aspeed.i2c-ast2700",
+ "parent": "aspeed.i2c"
+ },
+ {
+ "name": "generic-sdhci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-testdev",
+ "parent": "chardev"
+ },
+ {
+ "name": "versatile_pci",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "npcm7xx-gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pl011",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "ctucan_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virt-9.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "ssi-sd",
+ "parent": "ssi-peripheral"
+ },
+ {
+ "name": "virt-4.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "stm32f4xx-syscfg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virt-7.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "pxb-pcie",
+ "parent": "pxb"
+ },
+ {
+ "name": "piix4-usb-uhci",
+ "parent": "pci-uhci-usb"
+ },
+ {
+ "name": "mx25l12805d",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "imx.epit",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.sdmc-ast2500",
+ "parent": "aspeed.sdmc"
+ },
+ {
+ "name": "exynos4210-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "versatile_pci_host",
+ "parent": "pci-device"
+ },
+ {
+ "name": "iothread",
+ "parent": "event-loop-base"
+ },
+ {
+ "name": "pxa260-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "iommufd",
+ "parent": "object"
+ },
+ {
+ "name": "omap-gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mt25qu02g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "colo-compare",
+ "parent": "object"
+ },
+ {
+ "name": "armv7m_systick",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-net-pci-non-transitional",
+ "parent": "virtio-net-pci-base"
+ },
+ {
+ "name": "pl330",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mx25l25635f",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vhost-user-input-pci",
+ "parent": "vhost-user-input-pci-base-type"
+ },
+ {
+ "name": "guest-loader",
+ "parent": "device"
+ },
+ {
+ "name": "rtl8139",
+ "parent": "pci-device"
+ },
+ {
+ "name": "xlnx.versal-xramc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s25sl032a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vfio-calxeda-xgmac",
+ "parent": "vfio-platform"
+ },
+ {
+ "name": "mx25l25635e",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "vhost-user-snd-pci",
+ "parent": "vhost-user-snd-pci-base"
+ },
+ {
+ "name": "pl110_versatile",
+ "parent": "pl110"
+ },
+ {
+ "name": "pca9548",
+ "parent": "pca954x"
+ },
+ {
+ "name": "allwinner-a10",
+ "parent": "device"
+ },
+ {
+ "name": "allwinner-sid",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qio-channel-buffer",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "aspeed.sdhci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-pty",
+ "parent": "chardev"
+ },
+ {
+ "name": "rng-egd",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "vhost-user-blk-pci-non-transitional",
+ "parent": "vhost-user-blk-pci-base"
+ },
+ {
+ "name": "usb-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "imx6.ccm",
+ "parent": "imx.ccm"
+ },
+ {
+ "name": "pca9546",
+ "parent": "pca954x"
+ },
+ {
+ "name": "cxl-type3",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pxb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "am53c974",
+ "parent": "pci-device"
+ },
+ {
+ "name": "exynos4210.pmu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "secret_keyring",
+ "parent": "secret_common"
+ },
+ {
+ "name": "s25sl064a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.timer-ast2500",
+ "parent": "aspeed.timer"
+ },
+ {
+ "name": "msf2-emac",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "yosemitev2-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "s25fl064k",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "dm163",
+ "parent": "device"
+ },
+ {
+ "name": "xlnx-zynq-xadc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qio-channel-socket",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "imx.usbphy",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cxl-downstream",
+ "parent": "pcie-slot"
+ },
+ {
+ "name": "virtio-crypto-pci",
+ "parent": "virtio-crypto-pci-base-type"
+ },
+ {
+ "name": "mt25ql01g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "pxa270-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "sbsa-ref-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "max31785",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "i82551",
+ "parent": "pci-device"
+ },
+ {
+ "name": "npcm7xx-mc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.sbc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-net-pci-transitional",
+ "parent": "virtio-net-pci-base"
+ },
+ {
+ "name": "is25lp064",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "realview-pb-a8-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "tz-msc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "i82550",
+ "parent": "pci-device"
+ },
+ {
+ "name": "chardev-pipe",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "npcm7xx-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "vhost-user-rng-pci",
+ "parent": "vhost-user-rng-pci-base"
+ },
+ {
+ "name": "imx31.ccm",
+ "parent": "imx.ccm"
+ },
+ {
+ "name": "s25sl016a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "musicpal_key",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.gpio-ast2500",
+ "parent": "aspeed.gpio"
+ },
+ {
+ "name": "s25fl016k",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "chardev-serial",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "cortex-m7-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "virtio-iommu-memory-region",
+ "parent": "iommu-memory-region"
+ },
+ {
+ "name": "stm32l4x5xg-soc",
+ "parent": "stm32l4x5-soc"
+ },
+ {
+ "name": "npcm7xx-rng",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.intc-ast2700",
+ "parent": "aspeed.intc"
+ },
+ {
+ "name": "cortex-a9-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "sdhci-bus",
+ "parent": "sd-bus"
+ },
+ {
+ "name": "allwinner-sun8i-emac",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "emcraft-sf2-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "integrator_pic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q256a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "iotkit-sysctl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.xps-uartlite",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "quanta-gbs-bmc-machine",
+ "parent": "npcm7xx-machine"
+ },
+ {
+ "name": "n25q032a13",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "sdhci-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "realview-eb-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "virtio-blk-pci",
+ "parent": "virtio-blk-pci-base"
+ },
+ {
+ "name": "fsl-imx25",
+ "parent": "device"
+ },
+ {
+ "name": "arm1026-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "canon-a1100-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "aspeed.wdt-ast2400",
+ "parent": "aspeed.wdt"
+ },
+ {
+ "name": "s70fs01gs",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virtio-multitouch-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "nec-usb-xhci",
+ "parent": "pci-xhci"
+ },
+ {
+ "name": "bcm2835-ic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q032a11",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "raa229004",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "virtio-input-host-pci",
+ "parent": "virtio-input-host-pci-base-type"
+ },
+ {
+ "name": "n25q032",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "mps2-an511-machine",
+ "parent": "mps2"
+ },
+ {
+ "name": "stm32l4x5-gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pvpanic-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "w25q256",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "adm1272",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "ioh3420",
+ "parent": "pcie-root-port-base"
+ },
+ {
+ "name": "cortex-r5f-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "pcm3680_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "mioe3680_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ti925t-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "tulip",
+ "parent": "pci-device"
+ },
+ {
+ "name": "usb-bot",
+ "parent": "usb-storage-dev"
+ },
+ {
+ "name": "mss-spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "main-loop",
+ "parent": "event-loop-base"
+ },
+ {
+ "name": "sse-counter",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2835-powermgt",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.csu_dma",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pl061",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "host-iommu-device-iommufd-vfio",
+ "parent": "host-iommu-device-iommufd"
+ },
+ {
+ "name": "sabrelite-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "s25sl12801",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "xilinx-axi-dma-control-stream",
+ "parent": "object"
+ },
+ {
+ "name": "i2c-ddc",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "cortex-r5-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "memory-backend-shm",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "dbus-vmstate",
+ "parent": "object"
+ },
+ {
+ "name": "iotkit",
+ "parent": "arm-sse"
+ },
+ {
+ "name": "w25x40",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "memory-backend-memfd",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-balloon-pci",
+ "parent": "virtio-balloon-pci-base"
+ },
+ {
+ "name": "s25sl12800",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "stm32f2xx-usart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "nand",
+ "parent": "device"
+ },
+ {
+ "name": "pl111",
+ "parent": "pl110"
+ },
+ {
+ "name": "serial",
+ "parent": "device"
+ },
+ {
+ "name": "vhost-user-vsock-pci",
+ "parent": "vhost-user-vsock-pci-base"
+ },
+ {
+ "name": "edu",
+ "parent": "pci-device"
+ },
+ {
+ "name": "aspeed.sbc-ast2600",
+ "parent": "aspeed.sbc"
+ },
+ {
+ "name": "omap-intc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "arm-its-kvm",
+ "parent": "arm-gicv3-its-common"
+ },
+ {
+ "name": "pl110",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "en25q32b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "chardev-stdio",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "ast2600-a3",
+ "parent": "aspeed2600-soc"
+ },
+ {
+ "name": "mps2-an521-machine",
+ "parent": "mps2tz"
+ },
+ {
+ "name": "aspeed.scu-ast1030",
+ "parent": "aspeed.scu"
+ },
+ {
+ "name": "virt-2.12-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "aspeed.sdmc-ast2600",
+ "parent": "aspeed.sdmc"
+ },
+ {
+ "name": "SSI",
+ "parent": "bus"
+ },
+ {
+ "name": "can-bus",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-balloon-pci-transitional",
+ "parent": "virtio-balloon-pci-base"
+ },
+ {
+ "name": "nvme-ns",
+ "parent": "device"
+ },
+ {
+ "name": "IndustryPack",
+ "parent": "bus"
+ },
+ {
+ "name": "virtio-tablet-pci",
+ "parent": "virtio-tablet-pci-base-type"
+ },
+ {
+ "name": "exynos4210.rtc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "nvdimm",
+ "parent": "pc-dimm"
+ },
+ {
+ "name": "mps2-an500-machine",
+ "parent": "mps2"
+ },
+ {
+ "name": "qtest-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "ftgmac100",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "smbus-eeprom",
+ "parent": "smbus-device"
+ },
+ {
+ "name": "neoverse-v1-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "irq",
+ "parent": "object"
+ },
+ {
+ "name": "aspeed.adc-ast1030",
+ "parent": "aspeed.adc"
+ },
+ {
+ "name": "vhost-user-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "xilinx-zynq-a9-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "lsi53c810",
+ "parent": "lsi53c895a"
+ },
+ {
+ "name": "m25p40",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virt-5.2-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "i82559c",
+ "parent": "pci-device"
+ },
+ {
+ "name": "cortex-a8-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "x3130-upstream",
+ "parent": "pcie-port"
+ },
+ {
+ "name": "stm32l4x5-rcc-clock-mux",
+ "parent": "device"
+ },
+ {
+ "name": "is25lq040b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "i82559b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "is25wp064",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "a64fx-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "vhost-user-gpio-pci",
+ "parent": "vhost-user-gpio-pci-base"
+ },
+ {
+ "name": "msf2-soc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "clock",
+ "parent": "object"
+ },
+ {
+ "name": "i82559a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "aspeed.timer-ast2600",
+ "parent": "aspeed.timer"
+ },
+ {
+ "name": "aspeed.i3c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "m25pe80",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.fmc-ast1030",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "strongarm-uart",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.zynqmp_ipi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "tpm-tis-i2c",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "i82801b11-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "arm_mptimer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx.serial",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cortex-a76-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "aspeed.vic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-rng-pci",
+ "parent": "virtio-rng-pci-base"
+ },
+ {
+ "name": "npcm7xx-pwm",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.ps7-qspi",
+ "parent": "xlnx.ps7-spi"
+ },
+ {
+ "name": "aspeed-mmi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx6.gpt",
+ "parent": "imx25.gpt"
+ },
+ {
+ "name": "stm32f4xx-exti",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx-usdhc",
+ "parent": "generic-sdhci"
+ },
+ {
+ "name": "bcm2838",
+ "parent": "bcm283x-base"
+ },
+ {
+ "name": "platform-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "virtio-serial-pci-non-transitional",
+ "parent": "virtio-serial-pci-base"
+ },
+ {
+ "name": "exynos4210.rng",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.gpio-ast2600",
+ "parent": "aspeed.gpio"
+ },
+ {
+ "name": "quanta-q71l-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "igb",
+ "parent": "pci-device"
+ },
+ {
+ "name": "bcm2837",
+ "parent": "bcm283x"
+ },
+ {
+ "name": "mt25qu01g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "dps310",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "bcm2835",
+ "parent": "bcm283x"
+ },
+ {
+ "name": "microbit.i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2836",
+ "parent": "bcm283x"
+ },
+ {
+ "name": "filter-buffer",
+ "parent": "netfilter"
+ },
+ {
+ "name": "split-irq",
+ "parent": "device"
+ },
+ {
+ "name": "a15mpcore_priv",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "npcm7xx.sdhci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "allwinner-rtc-sun7i",
+ "parent": "allwinner-rtc"
+ },
+ {
+ "name": "orangepi-pc-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "stm32vldiscovery-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "qio-channel-command",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "at25fs010",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virt-2.9-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "imx7.snvs",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "nvme-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "vhost-user-scmi-pci",
+ "parent": "vhost-user-scmi-pci-base"
+ },
+ {
+ "name": "ast1030-a1",
+ "parent": "aspeed10x0-soc"
+ },
+ {
+ "name": "iotkit-secctl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "System",
+ "parent": "bus"
+ },
+ {
+ "name": "ne2k_pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "allwinner-A10-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "fsi.scratchpad",
+ "parent": "fsi.lbus.device"
+ },
+ {
+ "name": "sst25vf080b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "imx31.gpt",
+ "parent": "imx25.gpt"
+ },
+ {
+ "name": "mt35xu02gbba",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.wdt-ast2500",
+ "parent": "aspeed.wdt"
+ },
+ {
+ "name": "strongarm-rtc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.bbram-ctrl",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xilinx-axienet-data-stream",
+ "parent": "object"
+ },
+ {
+ "name": "scsi-block",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "xlnx.axi-ethernet",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sd-card",
+ "parent": "sdmmc-common"
+ },
+ {
+ "name": "pxa270-a1-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "mv88w8618_audio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx25-pdk-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "vhost-user-scmi",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "virt-2.11-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "imx.i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sd-card-spi",
+ "parent": "sd-card"
+ },
+ {
+ "name": "sst25vf032b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "CXL",
+ "parent": "PCIE"
+ },
+ {
+ "name": "imx7.ccm",
+ "parent": "imx.ccm"
+ },
+ {
+ "name": "nrf51-soc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "fusbh200-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "xilinx-axi-dma-data-stream",
+ "parent": "object"
+ },
+ {
+ "name": "tls-cipher-suites",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "vhost-scsi-pci-transitional",
+ "parent": "vhost-scsi-pci-base"
+ },
+ {
+ "name": "160s33b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "kvm-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "memory-backend-ram",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "m25pe20",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virtio-rng-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "nrf51_soc.gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sx1-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "npcm7xx-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pci-testdev",
+ "parent": "pci-device"
+ },
+ {
+ "name": "scsi-cd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "sp804",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sii9022",
+ "parent": "i2c-slave"
+ },
+ {
+ "name": "filter-rewriter",
+ "parent": "netfilter"
+ },
+ {
+ "name": "smdkc210-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "allwinner-a10-dramc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "none-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "virt-5.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "stm32f2xx-syscfg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cortex-a7-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "emc1414",
+ "parent": "emc141x"
+ },
+ {
+ "name": "640s33b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "mcimx6ul-evk-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "adm1266",
+ "parent": "pmbus-device"
+ },
+ {
+ "name": "pxb-cxl-host",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "xlnx-efuse",
+ "parent": "device"
+ },
+ {
+ "name": "virtio-blk-pci-transitional",
+ "parent": "virtio-blk-pci-base"
+ },
+ {
+ "name": "emc1413",
+ "parent": "emc141x"
+ },
+ {
+ "name": "virt-3.1-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "rng-builtin",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "stm32f2xx-adc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "musca-a-machine",
+ "parent": "musca"
+ },
+ {
+ "name": "pxa270-b1-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "aspeed.sdmc-ast2700",
+ "parent": "aspeed.sdmc"
+ },
+ {
+ "name": "bcm2835-sys-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-blk-pci-non-transitional",
+ "parent": "virtio-blk-pci-base"
+ },
+ {
+ "name": "stellaris_enet",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "fby35-bmc-machine",
+ "parent": "ast2600-evb-machine"
+ },
+ {
+ "name": "versatilepb_sic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "25csm04",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "sst25vf016b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "acpi-erst",
+ "parent": "pci-device"
+ },
+ {
+ "name": "vhost-vdpa-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "realview_gic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-mmio-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "strongarm_pic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.spi2-ast1030",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "container",
+ "parent": "object"
+ },
+ {
+ "name": "tls-creds-psk",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "virtio-sound-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "allwinner-a10-pic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mx25l25655e",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "b-l475e-iot01a-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "w25x32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "musca-b1-machine",
+ "parent": "musca"
+ },
+ {
+ "name": "kzm-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "versatileab-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "arm1176-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "realview-pbx-a9-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "xlnx.versal-trng",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx.gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "npcm7xx-clock-pll",
+ "parent": "device"
+ },
+ {
+ "name": "stellaris-sys",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virt-2.8-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "s25sl004a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "bcm2835-dma",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2835-mbox",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.scu-ast2400",
+ "parent": "aspeed.scu"
+ },
+ {
+ "name": "xlnx-versal",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mps3-an547-machine",
+ "parent": "mps2tz"
+ },
+ {
+ "name": "armsse-cpuid",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "rainier-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "stm32l4x5xc-soc",
+ "parent": "stm32l4x5-soc"
+ },
+ {
+ "name": "en25p64",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "exynos4210.pwm",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vmxnet3",
+ "parent": "pci-device"
+ },
+ {
+ "name": "e1000-82544gc",
+ "parent": "e1000-base"
+ },
+ {
+ "name": "vhost-vsock-device",
+ "parent": "vhost-vsock-common"
+ },
+ {
+ "name": "pxa270-a0-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "m25px32-s1",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "pxb-cxl",
+ "parent": "pxb-pcie"
+ },
+ {
+ "name": "PCIE",
+ "parent": "PCI"
+ },
+ {
+ "name": "rocker",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virt-2.10-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "m25px32-s0",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "s3c-sdhci",
+ "parent": "generic-sdhci"
+ },
+ {
+ "name": "aspeed.adc-ast2400",
+ "parent": "aspeed.adc"
+ },
+ {
+ "name": "aspeed.gpio-ast2700",
+ "parent": "aspeed.gpio"
+ },
+ {
+ "name": "w25q01jvq",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "i82801",
+ "parent": "pci-device"
+ },
+ {
+ "name": "npcm750-evb-machine",
+ "parent": "npcm7xx-machine"
+ },
+ {
+ "name": "xlnx.cframe-bcast-reg",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q00",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "pxa25x-timer",
+ "parent": "pxa2xx-timer"
+ },
+ {
+ "name": "cortex-a57-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "m25p32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virtio-net-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "stm32f205-soc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "mv88w8618_eth",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "dbus-display",
+ "parent": "object"
+ },
+ {
+ "name": "npcm7xx-smbus",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "pl061_luminary",
+ "parent": "pl061"
+ },
+ {
+ "name": "320s33b",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "bcm2835-peripherals",
+ "parent": "bcm-soc-peripherals-base"
+ },
+ {
+ "name": "AC97",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pl011_luminary",
+ "parent": "pl011"
+ },
+ {
+ "name": "romulus-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "sse-timer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.fmc-ast2400",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "cortex-m4-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "aspeed.wdt-ast2600",
+ "parent": "aspeed.wdt"
+ },
+ {
+ "name": "n25q512a13",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virt-5.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "virtio-tablet-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "opb",
+ "parent": "bus"
+ },
+ {
+ "name": "stm32f2xx-spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.xps-intc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2835-cprman",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-9p-pci-non-transitional",
+ "parent": "virtio-9p-pci-base"
+ },
+ {
+ "name": "hda-output",
+ "parent": "hda-audio"
+ },
+ {
+ "name": "i82558b",
+ "parent": "pci-device"
+ },
+ {
+ "name": "pxa270-b0-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "bcm2835-otp",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx.avic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sysbus-esp",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "aspeed.peci",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q512a11",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "virt-3.0-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "aspeed.sliio-ast2700",
+ "parent": "aspeed.sli"
+ },
+ {
+ "name": "i82558a",
+ "parent": "pci-device"
+ },
+ {
+ "name": "memory-region-portio-list",
+ "parent": "object"
+ },
+ {
+ "name": "npcm750",
+ "parent": "npcm7xx"
+ },
+ {
+ "name": "mps3-an536-machine",
+ "parent": "mps3r"
+ },
+ {
+ "name": "qio-channel-block",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-mem",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "scsi-hd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "authz-simple",
+ "parent": "authz"
+ },
+ {
+ "name": "ufs-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "pl050_mouse",
+ "parent": "pl050"
+ },
+ {
+ "name": "allwinner-wdt-sun6i",
+ "parent": "allwinner-wdt"
+ },
+ {
+ "name": "usb_dwc3",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cxl-switch-mailbox-cci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "ast2700-evb-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "bcm2838-peripherals",
+ "parent": "bcm-soc-peripherals-base"
+ },
+ {
+ "name": "mx66l1g45g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "nvme-subsys",
+ "parent": "device"
+ },
+ {
+ "name": "n25q128",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.spi1-ast1030",
+ "parent": "aspeed.smc"
+ },
+ {
+ "name": "vhost-user-scsi-pci-non-transitional",
+ "parent": "vhost-user-scsi-pci-base"
+ },
+ {
+ "name": "mcimx7d-sabre-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "cortex-a15-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "vhost-user-rng",
+ "parent": "vhost-user-base"
+ },
+ {
+ "name": "stm32l4x5-uart",
+ "parent": "stm32l4x5-usart-base"
+ },
+ {
+ "name": "virtserialport",
+ "parent": "virtio-serial-port"
+ },
+ {
+ "name": "tpm-passthrough",
+ "parent": "tpm-backend"
+ },
+ {
+ "name": "s25fl512s",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "nuri-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "bcm2835-aux",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "n25q00a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "bcm2835-mphi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "tegra2-ehci-usb",
+ "parent": "sysbus-ehci-usb"
+ },
+ {
+ "name": "tcg-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "npcm7xx-fiu",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx-pmc-efuse-cache",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx-versal-efuse",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "imx7.gpt",
+ "parent": "imx25.gpt"
+ },
+ {
+ "name": "allwinner-rtc-sun6i",
+ "parent": "allwinner-rtc"
+ },
+ {
+ "name": "at25df641",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "usb-net",
+ "parent": "usb-device"
+ },
+ {
+ "name": "w25q512jv",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "filter-dump",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virt-2.7-machine",
+ "parent": "virt-machine"
+ },
+ {
+ "name": "m25pe16",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "bcm2838-gpio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "virtio-iommu-pci",
+ "parent": "virtio-iommu-pci-base-type"
+ },
+ {
+ "name": "pxa270-c0-arm-cpu",
+ "parent": "arm-cpu"
+ },
+ {
+ "name": "kvm-arm-gic",
+ "parent": "arm_gic_common"
+ },
+ {
+ "name": "imx7.gpr",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "bcm2835-sdhost",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "tiogapass-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "vhost-user-i2c-device",
+ "parent": "vhost-user-base"
+ },
+ {
+ "name": "neoverse-n2-arm-cpu",
+ "parent": "aarch64-cpu"
+ },
+ {
+ "name": "mt35xu01g",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "cirrus-vga",
+ "parent": "pci-device"
+ },
+ {
+ "name": "mx25l2005a",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "aspeed.hace-ast1030",
+ "parent": "aspeed.hace"
+ },
+ {
+ "name": "sst25wf040",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "allwinner.i2c-sun6i",
+ "parent": "allwinner.i2c"
+ },
+ {
+ "name": "vhost-user-i2c-pci",
+ "parent": "vhost-user-i2c-pci-base"
+ },
+ {
+ "name": "w25x80",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "imx.spi",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "musicpal-misc",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "cmsdk-apb-dualtimer",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "w25q32",
+ "parent": "m25p80-generic"
+ },
+ {
+ "name": "ast2600-evb-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "mori-bmc-machine",
+ "parent": "npcm7xx-machine"
+ },
+ {
+ "name": "aspeed.i2c.bus",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "qcom-dc-scm-v1-bmc-machine",
+ "parent": "aspeed-machine"
+ },
+ {
+ "name": "fsi.lbus",
+ "parent": "bus"
+ },
+ {
+ "name": "ivshmem-plain",
+ "parent": "ivshmem-common"
+ },
+ {
+ "name": "bcm2835-i2c",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "xlnx.versal-ospi",
+ "parent": "sys-bus-device"
+ }
+ ],
+ "id": "libvirt-6"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-blk-pci"
+ },
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "lcyls",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 256,
+ "name": "queue-size",
+ "type": "uint16"
+ },
+ {
+ "default-value": false,
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "lheads",
+ "type": "uint32"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-invalid",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "lsecs",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "default-value": 65535,
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "default-value": 0,
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "min_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "default-value": 0,
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "default-value": true,
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "seg-max-adjust",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "default-value": "auto",
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "iothread-vq-mapping",
+ "description": "IOThread virtqueue mapping list [{\"iothread\":\"<id>\", \"vqs\":[1,2,3,...]},...]",
+ "type": "IOThreadVirtQueueMappingList"
+ },
+ {
+ "default-value": true,
+ "name": "report-discard-granularity",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": "auto",
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "physical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "opt_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": 0,
+ "name": "logical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": 4194303,
+ "name": "max-discard-sectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "discard",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "discard_granularity",
+ "type": "size"
+ },
+ {
+ "default-value": true,
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "write-zeroes",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 4194303,
+ "name": "max-write-zeroes-sectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-failed",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "backend_defaults",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": true,
+ "name": "x-enable-wce-if-config-wce",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-7"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-net-pci"
+ },
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 150000,
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "default-value": 256,
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "default-value": false,
+ "name": "rss",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "host_uso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "failover",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 256,
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "hash",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "default-value": true,
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "guest_uso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": [],
+ "name": "ebpf-rss-fds",
+ "type": "list"
+ },
+ {
+ "default-value": false,
+ "name": "guest_rsc_ext",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "duplex",
+ "type": "str"
+ },
+ {
+ "default-value": 300000,
+ "name": "rsc_interval",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 256,
+ "name": "rx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "default-value": true,
+ "name": "guest_uso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "speed",
+ "type": "int32"
+ },
+ {
+ "default-value": true,
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-scsi-pci"
+ },
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "default-value": 65535,
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "default-value": true,
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": 256,
+ "name": "virtqueue_size",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "seg_max_adjust",
+ "type": "bool"
+ },
+ {
+ "default-value": 128,
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-net-ccw"
+ },
+ "id": "libvirt-10"
+}
+
+{
+ "id": "libvirt-10",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-ccw' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-scsi-ccw"
+ },
+ "id": "libvirt-11"
+}
+
+{
+ "id": "libvirt-11",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-scsi-ccw' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "vfio-pci"
+ },
+ "id": "libvirt-12"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "on",
+ "name": "x-pre-copy-dirty-page-tracking",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-kvm-intx",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "migration-events",
+ "type": "bool"
+ },
+ {
+ "default-value": "on",
+ "name": "x-device-dirty-page-tracking",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "x-pci-sub-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "fd",
+ "type": "string"
+ },
+ {
+ "default-value": "auto",
+ "name": "enable-migration",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": true,
+ "name": "skip-vsc-check",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "x-pci-device-id",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-kvm-msi",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "default-value": "off",
+ "name": "display",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "x-pci-sub-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-mmap",
+ "type": "bool"
+ },
+ {
+ "default-value": "off",
+ "name": "x-msix-relocation",
+ "description": "off/auto/bar0/bar1/bar2/bar3/bar4/bar5",
+ "type": "OffAutoPCIBAR"
+ },
+ {
+ "default-value": true,
+ "name": "x-req",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-kvm-ioeventfd",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "x-pci-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-vfio-ioeventfd",
+ "type": "bool"
+ },
+ {
+ "name": "x-nv-gpudirect-clique",
+ "description": "NVIDIA GPUDirect Clique ID (0 - 15)",
+ "type": "uint4"
+ },
+ {
+ "default-value": 1100,
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "x-igd-gms",
+ "type": "uint32"
+ },
+ {
+ "name": "sysfsdev",
+ "type": "str"
+ },
+ {
+ "name": "vf-token",
+ "description": "UUID (aka GUID) or \"auto\" for random value (default)",
+ "type": "str"
+ },
+ {
+ "default-value": 0,
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "x-vga",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-igd-opregion",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-kvm-msix",
+ "type": "bool"
+ },
+ {
+ "name": "iommufd",
+ "type": "link<iommufd>"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "default-value": false,
+ "name": "x-no-geforce-quirks",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-balloon-allowed",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-12"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "scsi-hd"
+ },
+ "id": "libvirt-13"
+}
+
+{
+ "return": [
+ {
+ "default-value": 4294967295,
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "lcyls",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-invalid",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "lsecs",
+ "type": "uint32"
+ },
+ {
+ "default-value": 5,
+ "name": "scsi_version",
+ "type": "int32"
+ },
+ {
+ "default-value": false,
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "default-value": 1073741824,
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "default-value": 0,
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "default-value": 0,
+ "name": "min_io_size",
+ "type": "size"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "default-value": 0,
+ "name": "rotation_rate",
+ "type": "uint16"
+ },
+ {
+ "default-value": 0,
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "dpofua",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "default-value": "auto",
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": 0,
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "default-value": "auto",
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": "auto",
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "physical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": 2147483647,
+ "name": "max_io_size",
+ "type": "uint64"
+ },
+ {
+ "default-value": false,
+ "name": "quirk_mode_page_vendor_specific_apple",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "opt_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": 0,
+ "name": "logical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-emulated-scsi-request",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "discard_granularity",
+ "type": "size"
+ },
+ {
+ "default-value": 0,
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "default-value": 0,
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-failed",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "lheads",
+ "type": "uint32"
+ },
+ {
+ "name": "device_id",
+ "type": "str"
+ },
+ {
+ "default-value": "auto",
+ "name": "backend_defaults",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-13"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "ide-hd"
+ },
+ "id": "libvirt-14"
+}
+
+{
+ "return": [
+ {
+ "default-value": false,
+ "name": "win2k-install-hack",
+ "type": "bool"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "unit",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "lsecs",
+ "type": "uint32"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-invalid",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "model",
+ "type": "str"
+ },
+ {
+ "default-value": 0,
+ "name": "lheads",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "rotation_rate",
+ "type": "uint16"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "default-value": 0,
+ "name": "logical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "default-value": false,
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "discard_granularity",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "backend_defaults",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "lcyls",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "opt_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": "auto",
+ "name": "bios-chs-trans",
+ "description": "Logical CHS translation algorithm, auto/none/lba/large/rechs",
+ "type": "BiosAtaTranslation"
+ },
+ {
+ "default-value": 0,
+ "name": "min_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-failed",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "physical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": 0,
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "default-value": "auto",
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-14"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "PIIX4_PM"
+ },
+ "id": "libvirt-15"
+}
+
+{
+ "id": "libvirt-15",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'PIIX4_PM' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "usb-storage"
+ },
+ "id": "libvirt-16"
+}
+
+{
+ "return": [
+ {
+ "name": "pcap",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "msos-desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "default-value": false,
+ "name": "commandlog",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "default-value": 0,
+ "name": "min_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "backend_defaults",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "removable",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-failed",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "logical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": 0,
+ "name": "opt_io_size",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "account-invalid",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "discard_granularity",
+ "type": "size"
+ },
+ {
+ "default-value": 0,
+ "name": "physical_block_size",
+ "description": "A power of two between 512 B and 2 MiB",
+ "type": "size"
+ },
+ {
+ "default-value": "auto",
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "attached",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-16"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "kvm-pit"
+ },
+ "id": "libvirt-17"
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'kvm-pit' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "VGA"
+ },
+ "id": "libvirt-18"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "refresh_rate",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "global-vmstate",
+ "type": "bool"
+ },
+ {
+ "name": "big-endian-framebuffer",
+ "type": "bool"
+ },
+ {
+ "default-value": 16,
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "qemu-extended-regs",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "mmio",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "ymax",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "xmax",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "edid",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "xres",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-18"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-gpu-pci"
+ },
+ "id": "libvirt-19"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 3,
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 800,
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "edid",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "hostmem",
+ "type": "size"
+ },
+ {
+ "default-value": 2,
+ "name": "x-scanout-vmstate-version",
+ "type": "uint8"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": 268435456,
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "blob",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "default-value": 1280,
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ }
+ ],
+ "id": "libvirt-19"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-gpu-device"
+ },
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "default-value": 1280,
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "default-value": 2,
+ "name": "x-scanout-vmstate-version",
+ "type": "uint8"
+ },
+ {
+ "default-value": 800,
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "default-value": 268435456,
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "default-value": true,
+ "name": "edid",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "blob",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "hostmem",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "ICH9-LPC"
+ },
+ "id": "libvirt-21"
+}
+
+{
+ "id": "libvirt-21",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ICH9-LPC' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-balloon-pci"
+ },
+ "id": "libvirt-22"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "free-page-reporting",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "page-poison",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "qemu-4-0-config-size",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "free-page-hint",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ }
+ ],
+ "id": "libvirt-22"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-balloon-ccw"
+ },
+ "id": "libvirt-23"
+}
+
+{
+ "id": "libvirt-23",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-balloon-ccw' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-balloon-device"
+ },
+ "id": "libvirt-24"
+}
+
+{
+ "return": [
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "default-value": false,
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "free-page-hint",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "page-poison",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "qemu-4-0-config-size",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "free-page-reporting",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ }
+ ],
+ "id": "libvirt-24"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "nvdimm"
+ },
+ "id": "libvirt-25"
+}
+
+{
+ "return": [
+ {
+ "name": "memdev",
+ "type": "link<memory-backend>"
+ },
+ {
+ "default-value": 0,
+ "name": "node",
+ "type": "uint32"
+ },
+ {
+ "default-value": 0,
+ "name": "addr",
+ "type": "uint64"
+ },
+ {
+ "default-value": -1,
+ "name": "slot",
+ "type": "int32"
+ },
+ {
+ "default-value": false,
+ "name": "unarmed",
+ "type": "bool"
+ },
+ {
+ "name": "uuid",
+ "type": "QemuUUID"
+ },
+ {
+ "name": "label-size",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-25"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "pcie-root-port"
+ },
+ "id": "libvirt-26"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pci-express-writeable-slt-bug",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "port",
+ "type": "uint8"
+ },
+ {
+ "default-value": 8,
+ "name": "aer_log_max",
+ "type": "uint16"
+ },
+ {
+ "default-value": false,
+ "name": "x-do-not-expose-native-hotplug-cap",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "hotplug",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "slot",
+ "type": "uint16"
+ },
+ {
+ "default-value": 0,
+ "name": "chassis",
+ "type": "uint8"
+ },
+ {
+ "default-value": true,
+ "name": "power_controller_present",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "disable-acs",
+ "type": "bool"
+ },
+ {
+ "default-value": 18446744073709551615,
+ "name": "mem-reserve",
+ "type": "size"
+ },
+ {
+ "default-value": 18446744073709551615,
+ "name": "pref64-reserve",
+ "type": "size"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "bus-reserve",
+ "type": "uint32"
+ },
+ {
+ "default-value": "32",
+ "name": "x-width",
+ "description": "1/2/4/8/12/16/32",
+ "type": "PCIELinkWidth"
+ },
+ {
+ "default-value": true,
+ "name": "x-migrate-msix",
+ "type": "bool"
+ },
+ {
+ "default-value": 18446744073709551615,
+ "name": "io-reserve",
+ "type": "size"
+ },
+ {
+ "default-value": "16",
+ "name": "x-speed",
+ "description": "2_5/5/8/16/32/64",
+ "type": "PCIELinkSpeed"
+ },
+ {
+ "default-value": 18446744073709551615,
+ "name": "pref32-reserve",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "usb-host"
+ },
+ "id": "libvirt-27"
+}
+
+{
+ "id": "libvirt-27",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-host' not found"
+ }
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "vhost-user-fs-device"
+ },
+ "id": "libvirt-28"
+}
+
+{
+ "return": [
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "description": "ID of a chardev to use as a backend",
+ "type": "str"
+ },
+ {
+ "default-value": 128,
+ "name": "queue-size",
+ "type": "uint16"
+ },
+ {
+ "name": "tag",
+ "type": "str"
+ },
+ {
+ "default-value": 1,
+ "name": "num-request-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ }
+ ],
+ "id": "libvirt-28"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-mem-pci"
+ },
+ "id": "libvirt-29"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "memaddr",
+ "type": "uint64"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "memdev",
+ "type": "link<memory-backend>"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-early-migration",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "node",
+ "type": "uint32"
+ },
+ {
+ "name": "requested-size",
+ "type": "size"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "block-size",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "dynamic-memslots",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-mem>"
+ }
+ ],
+ "id": "libvirt-29"
+}
+
+{
+ "execute": "device-list-properties",
+ "arguments": {
+ "typename": "virtio-iommu-pci"
+ },
+ "id": "libvirt-30"
+}
+
+{
+ "return": [
+ {
+ "name": "failover_pair_id",
+ "type": "str"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-ext-tag",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "default-value": 4294967295,
+ "name": "romsize",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": 1,
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "default-value": 4096,
+ "name": "x-max-bounce-buffer-size",
+ "description": "Maximum buffer size allocated for bounce buffers used for mapped access to indirect DMA memory",
+ "type": "size"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-ari-nextfn-1",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-err-unc-mask",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "busnr",
+ "type": "busnr"
+ },
+ {
+ "default-value": 0,
+ "name": "acpi-index",
+ "type": "uint32"
+ },
+ {
+ "default-value": false,
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "aer",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-pcie-pm-no-soft-reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-flr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-ats-page-aligned",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "auto",
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "default-value": false,
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "default-value": [],
+ "name": "reserved-regions",
+ "type": "list"
+ },
+ {
+ "default-value": 0,
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "default-value": true,
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-disabled-flag",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": "host",
+ "name": "granule",
+ "description": "granule_mode values, 4k, 8k, 16k, 64k, host",
+ "type": "GranuleMode"
+ },
+ {
+ "default-value": false,
+ "name": "x-disable-legacy-check",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "queue_reset",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "boot-bypass",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "packed",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "default-value": true,
+ "name": "use-started",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "in_order",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "primary-bus",
+ "type": "link<PCI>"
+ },
+ {
+ "default-value": 64,
+ "name": "aw-bits",
+ "type": "uint8"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-iommu-device>"
+ }
+ ],
+ "id": "libvirt-30"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "memory-backend-file"
+ },
+ "id": "libvirt-31"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "description": "Mark the memory as private to QEMU or shared",
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "description": "Size of the memory region (ex: 500M)",
+ "type": "int"
+ },
+ {
+ "name": "dump",
+ "description": "Set to 'off' to exclude from core dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "description": "Number of CPU threads to use for prealloc",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "description": "Set the NUMA policy",
+ "type": "HostMemPolicy"
+ },
+ {
+ "name": "prealloc-context",
+ "description": "Context to use for creating CPU threads for preallocation",
+ "type": "link<thread-context>"
+ },
+ {
+ "name": "prealloc",
+ "description": "Preallocate memory",
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "description": "Reserve swap space (or huge pages) if applicable",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "description": "Binds memory to the list of NUMA host nodes",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "description": "Mark memory as mergeable",
+ "type": "bool"
+ },
+ {
+ "name": "readonly",
+ "type": "bool"
+ },
+ {
+ "name": "align",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "description": "Offset into the target file (ex: 1G)",
+ "type": "int"
+ },
+ {
+ "name": "mem-path",
+ "type": "string"
+ },
+ {
+ "name": "rom",
+ "description": "Whether to create Read Only Memory (ROM)",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "discard-data",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-31"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "memory-backend-memfd"
+ },
+ "id": "libvirt-32"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "description": "Mark the memory as private to QEMU or shared",
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "description": "Size of the memory region (ex: 500M)",
+ "type": "int"
+ },
+ {
+ "name": "dump",
+ "description": "Set to 'off' to exclude from core dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc-threads",
+ "description": "Number of CPU threads to use for prealloc",
+ "type": "int"
+ },
+ {
+ "name": "x-use-canonical-path-for-ramblock-id",
+ "type": "bool"
+ },
+ {
+ "name": "policy",
+ "description": "Set the NUMA policy",
+ "type": "HostMemPolicy"
+ },
+ {
+ "name": "prealloc-context",
+ "description": "Context to use for creating CPU threads for preallocation",
+ "type": "link<thread-context>"
+ },
+ {
+ "name": "prealloc",
+ "description": "Preallocate memory",
+ "type": "bool"
+ },
+ {
+ "name": "reserve",
+ "description": "Reserve swap space (or huge pages) if applicable",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "description": "Binds memory to the list of NUMA host nodes",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "description": "Mark memory as mergeable",
+ "type": "bool"
+ },
+ {
+ "name": "hugetlb",
+ "description": "Use huge pages",
+ "type": "bool"
+ },
+ {
+ "name": "seal",
+ "description": "Seal growing & shrinking",
+ "type": "bool"
+ },
+ {
+ "name": "hugetlbsize",
+ "description": "Huge pages size (ex: 2M, 1G)",
+ "type": "int"
+ }
+ ],
+ "id": "libvirt-32"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "max-arm-cpu"
+ },
+ "id": "libvirt-33"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "parent_bus",
+ "type": "link<bus>"
+ },
+ {
+ "name": "realized",
+ "type": "bool"
+ },
+ {
+ "name": "hotplugged",
+ "type": "bool"
+ },
+ {
+ "name": "hotpluggable",
+ "type": "bool"
+ },
+ {
+ "name": "memory",
+ "type": "link<memory-region>"
+ },
+ {
+ "name": "legacy-memory",
+ "type": "str"
+ },
+ {
+ "name": "start-powered-off",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "backcompat-cntfrq",
+ "type": "bool"
+ },
+ {
+ "default-value": -1,
+ "name": "core-count",
+ "type": "int32"
+ },
+ {
+ "default-value": 18446742978476113920,
+ "name": "mp-affinity",
+ "type": "uint64"
+ },
+ {
+ "default-value": 0,
+ "name": "midr",
+ "type": "uint64"
+ },
+ {
+ "default-value": -1,
+ "name": "node-id",
+ "type": "int32"
+ },
+ {
+ "name": "aarch64",
+ "description": "Set on/off to enable/disable aarch64 execution state ",
+ "type": "bool"
+ },
+ {
+ "name": "sve384",
+ "type": "bool"
+ },
+ {
+ "name": "kvm-steal-time",
+ "description": "Set off to disable KVM steal time.",
+ "type": "bool"
+ },
+ {
+ "default-value": 0,
+ "name": "cntfrq",
+ "type": "uint64"
+ },
+ {
+ "name": "num-breakpoints",
+ "type": "uint8"
+ },
+ {
+ "name": "kvm-no-adjvtime",
+ "description": "Set on to disable the adjustment of the virtual counter. VM stopped time will be counted.",
+ "type": "bool"
+ },
+ {
+ "name": "pmu",
+ "type": "bool"
+ },
+ {
+ "name": "rvbar",
+ "type": "uint64"
+ },
+ {
+ "default-value": false,
+ "name": "reset-hivecs",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-in[0]",
+ "type": "child<irq>"
+ },
+ {
+ "name": "sve512",
+ "type": "bool"
+ },
+ {
+ "name": "sve1408",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-in[1]",
+ "type": "child<irq>"
+ },
+ {
+ "name": "sve",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-in[2]",
+ "type": "child<irq>"
+ },
+ {
+ "default-value": true,
+ "name": "pauth",
+ "type": "bool"
+ },
+ {
+ "name": "sve640",
+ "type": "bool"
+ },
+ {
+ "default-value": false,
+ "name": "cfgend",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-in[3]",
+ "type": "child<irq>"
+ },
+ {
+ "name": "sve1536",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-in[4]",
+ "type": "child<irq>"
+ },
+ {
+ "name": "psci-conduit",
+ "type": "uint32"
+ },
+ {
+ "name": "unnamed-gpio-in[5]",
+ "type": "child<irq>"
+ },
+ {
+ "name": "sve2048",
+ "type": "bool"
+ },
+ {
+ "name": "sve1664",
+ "type": "bool"
+ },
+ {
+ "name": "num-pmu-counters",
+ "type": "uint8"
+ },
+ {
+ "name": "sve1024",
+ "type": "bool"
+ },
+ {
+ "name": "gicv3-maintenance-interrupt[0]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "unnamed-gpio-out[0]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "sve1792",
+ "type": "bool"
+ },
+ {
+ "name": "sve768",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-out[1]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "pmu-interrupt[0]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "sve1152",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-out[2]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "sve128",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-out[3]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "sve896",
+ "type": "bool"
+ },
+ {
+ "name": "unnamed-gpio-out[4]",
+ "type": "link<irq>"
+ },
+ {
+ "name": "sve1280",
+ "type": "bool"
+ },
+ {
+ "name": "sve256",
+ "type": "bool"
+ },
+ {
+ "name": "num-watchpoints",
+ "type": "uint8"
+ },
+ {
+ "name": "sve1920",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-33"
+}
+
+{
+ "execute": "query-machines",
+ "id": "libvirt-34"
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": false,
+ "name": "qcom-dc-scm-v1-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mori-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast2600-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "tiogapass-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.7",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "nuri",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mcimx7d-sabre",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "mcimx7d-sabre.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast2700-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps3-an536",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-r52-arm-cpu",
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "DDR"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-3.0",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-5.0",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "romulus-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "npcm750-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.10",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "rainier-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps3-an547",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m55-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "DDR"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.8",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-pbx-a9",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a9-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "versatileab",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "versatile.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "kzm",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "kzm.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "musca-b1",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "b-l475e-iot01a",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fby35-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "musca-a",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-3.1",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mcimx6ul-evk",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mcimx6ul-evk.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-5.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "smdkc210",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sx1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "ti925t-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "omap1.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.11",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "imx25-pdk",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "imx25.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.9",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "stm32vldiscovery",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "orangepi-pc",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a7-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "orangepi.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "quanta-q71l-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-5.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "xilinx-zynq-a9",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "zynq.ext_ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an500",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m7-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.12",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an521",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m33-arm-cpu",
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sabrelite",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "sabrelite.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an511",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "canon-a1100",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-eb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "quanta-gbs-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "emcraft-sf2",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-pb-a8",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a8-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sbsa-ref",
+ "numa-mem-supported": false,
+ "default-cpu-type": "neoverse-n2-arm-cpu",
+ "acpi": false,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "sbsa-ref.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "yosemitev2-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-7.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-4.0",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-9.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi1ap",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "palmetto-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sx1-v1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "ti925t-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "omap1.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "g220a-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "tacoma-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": true,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-7.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "bletchley-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-4.1",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-9.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "quanta-gsj",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "versatilepb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "versatile.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-eb-mpcore",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm11mpcore-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "integratorcp",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "integrator.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-7.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "supermicrox11-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-4.2",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-9.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram",
+ "alias": "virt"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "witherspoon-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "qcom-firework-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps3-an524",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m33-arm-cpu",
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "DDR"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "kudo-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "vexpress-a9",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "vexpress.highmem"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "midway",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "highbank.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "musicpal",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "musicpal.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "lm3s811evb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "lm3s6965evb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "supermicro-x11spi-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "microbit",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fby35",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 3,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an385",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an505",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m33-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-6.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-8.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi3ap",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "cubieboard",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a8-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "cubieboard.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast1030-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "netduino2",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "bpim2u",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a7-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "bpim2u.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi4b",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "xlnx-versal-virt",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ddr"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an386",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m4-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "olimex-stm32-h405",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-6.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-8.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi3b",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi2b",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "vexpress-a15",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "vexpress.highmem"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fuji-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-6.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-8.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "x-remote",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sonorapass-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.6",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast2500-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "highbank",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "highbank.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "netduinoplus2",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "collie",
+ "numa-mem-supported": false,
+ "default-cpu-type": "sa1110-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "strongarm.sdram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi0",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fp5280g2-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ }
+ ],
+ "id": "libvirt-34"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "virt-9.2-machine"
+ },
+ "id": "libvirt-35"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "description": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "dt-compatible",
+ "description": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "description": "Set on to disable self-describing migration",
+ "type": "bool"
+ },
+ {
+ "name": "boot",
+ "description": "Boot configuration",
+ "type": "BootConfiguration"
+ },
+ {
+ "name": "memory",
+ "description": "Memory size configuration",
+ "type": "MemorySizeConfiguration"
+ },
+ {
+ "name": "initrd",
+ "description": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "confidential-guest-support",
+ "description": "Set confidential guest scheme to support",
+ "type": "link<confidential-guest-support>"
+ },
+ {
+ "name": "graphics",
+ "description": "Set on/off to enable/disable graphics emulation",
+ "type": "bool"
+ },
+ {
+ "name": "usb",
+ "description": "Set on/off to enable/disable usb",
+ "type": "bool"
+ },
+ {
+ "name": "firmware",
+ "description": "Firmware image",
+ "type": "string"
+ },
+ {
+ "name": "memory-encryption",
+ "description": "Set memory encryption object to use",
+ "type": "string"
+ },
+ {
+ "name": "smp",
+ "description": "CPU topology",
+ "type": "SMPConfiguration"
+ },
+ {
+ "name": "dump-guest-core",
+ "description": "Include guest memory in a core dump",
+ "type": "bool"
+ },
+ {
+ "name": "smp-cache",
+ "description": "Cache properties list for SMP machine",
+ "type": "SmpCachePropertiesWrapper"
+ },
+ {
+ "name": "dumpdtb",
+ "description": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "phandle-start",
+ "description": "The first phandle ID we may generate dynamically",
+ "type": "int"
+ },
+ {
+ "name": "memory-backend",
+ "description": "Set RAM backendValid value is ID of hostmem based backend",
+ "type": "link<memory-backend>"
+ },
+ {
+ "name": "mem-merge",
+ "description": "Enable/disable memory merge support",
+ "type": "bool"
+ },
+ {
+ "name": "dtb",
+ "description": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "description": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "mte",
+ "description": "Set on/off to enable/disable emulating a guest CPU which implements the ARM Memory Tagging Extension",
+ "type": "bool"
+ },
+ {
+ "name": "x-oem-table-id",
+ "description": "Override the default value of field OEM Table ID in ACPI table header.The string may be up to 8 bytes in size",
+ "type": "string"
+ },
+ {
+ "name": "dtb-randomness",
+ "description": "Set off to disable passing random or non-deterministic dtb nodes to guest",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "secure",
+ "description": "Set on/off to enable/disable the ARM Security Extensions (TrustZone)",
+ "type": "bool"
+ },
+ {
+ "name": "acpi",
+ "description": "Enable ACPI",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "highmem-mmio",
+ "description": "Set on/off to enable/disable high memory region for PCI MMIO",
+ "type": "bool"
+ },
+ {
+ "name": "compact-highmem",
+ "description": "Set on/off to enable/disable compact layout for high memory regions",
+ "type": "bool"
+ },
+ {
+ "name": "iommu",
+ "description": "Set the IOMMU type. Valid values are none and smmuv3",
+ "type": "string"
+ },
+ {
+ "name": "dtb-kaslr-seed",
+ "description": "Deprecated synonym of dtb-randomness",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "ras",
+ "description": "Set on/off to enable/disable reporting host memory errors to a KVM guest using ACPI and guest external abort exceptions",
+ "type": "bool"
+ },
+ {
+ "name": "highmem-redists",
+ "description": "Set on/off to enable/disable high memory region for GICv3 or GICv4 redistributor",
+ "type": "bool"
+ },
+ {
+ "name": "highmem-ecam",
+ "description": "Set on/off to enable/disable high memory region for PCI ECAM",
+ "type": "bool"
+ },
+ {
+ "name": "highmem",
+ "description": "Set on/off to enable/disable using physical address space above 32 bits",
+ "type": "bool"
+ },
+ {
+ "name": "x-oem-id",
+ "description": "Override the default value of field OEMID in ACPI table header.The string may be up to 6 bytes in size",
+ "type": "string"
+ },
+ {
+ "name": "its",
+ "description": "Set on/off to enable/disable ITS instantiation",
+ "type": "bool"
+ },
+ {
+ "name": "virtualization",
+ "description": "Set on/off to enable/disable emulating a guest CPU which implements the ARM Virtualization Extensions",
+ "type": "bool"
+ },
+ {
+ "name": "default-bus-bypass-iommu",
+ "description": "Set on/off to enable/disable bypass_iommu for default root bus",
+ "type": "bool"
+ },
+ {
+ "name": "gic-version",
+ "description": "Set GIC version. Valid values are 2, 3, 4, host and max",
+ "type": "string"
+ },
+ {
+ "name": "hmat",
+ "description": "Set on/off to enable/disable ACPI Heterogeneous Memory Attribute Table (HMAT)",
+ "type": "bool"
+ },
+ {
+ "name": "peripheral-anon",
+ "type": "child<container>"
+ },
+ {
+ "name": "peripheral",
+ "type": "child<container>"
+ },
+ {
+ "name": "nvdimm",
+ "description": "Set on/off to enable/disable NVDIMM instantiation",
+ "type": "bool"
+ },
+ {
+ "name": "nvdimm-persistence",
+ "description": "Set NVDIMM persistenceValid values are cpu, mem-ctrl",
+ "type": "string"
+ }
+ ],
+ "id": "libvirt-35"
+}
+
+{
+ "execute": "qom-list-properties",
+ "arguments": {
+ "typename": "none-machine"
+ },
+ "id": "libvirt-36"
+}
+
+{
+ "return": [
+ {
+ "name": "type",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "description": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "dt-compatible",
+ "description": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "description": "Set on to disable self-describing migration",
+ "type": "bool"
+ },
+ {
+ "name": "boot",
+ "description": "Boot configuration",
+ "type": "BootConfiguration"
+ },
+ {
+ "name": "memory",
+ "description": "Memory size configuration",
+ "type": "MemorySizeConfiguration"
+ },
+ {
+ "name": "initrd",
+ "description": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "confidential-guest-support",
+ "description": "Set confidential guest scheme to support",
+ "type": "link<confidential-guest-support>"
+ },
+ {
+ "name": "graphics",
+ "description": "Set on/off to enable/disable graphics emulation",
+ "type": "bool"
+ },
+ {
+ "name": "usb",
+ "description": "Set on/off to enable/disable usb",
+ "type": "bool"
+ },
+ {
+ "name": "firmware",
+ "description": "Firmware image",
+ "type": "string"
+ },
+ {
+ "name": "memory-encryption",
+ "description": "Set memory encryption object to use",
+ "type": "string"
+ },
+ {
+ "name": "smp",
+ "description": "CPU topology",
+ "type": "SMPConfiguration"
+ },
+ {
+ "name": "dump-guest-core",
+ "description": "Include guest memory in a core dump",
+ "type": "bool"
+ },
+ {
+ "name": "smp-cache",
+ "description": "Cache properties list for SMP machine",
+ "type": "SmpCachePropertiesWrapper"
+ },
+ {
+ "name": "dumpdtb",
+ "description": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "phandle-start",
+ "description": "The first phandle ID we may generate dynamically",
+ "type": "int"
+ },
+ {
+ "name": "memory-backend",
+ "description": "Set RAM backendValid value is ID of hostmem based backend",
+ "type": "link<memory-backend>"
+ },
+ {
+ "name": "mem-merge",
+ "description": "Enable/disable memory merge support",
+ "type": "bool"
+ },
+ {
+ "name": "dtb",
+ "description": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "description": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "peripheral-anon",
+ "type": "child<container>"
+ },
+ {
+ "name": "peripheral",
+ "type": "child<container>"
+ }
+ ],
+ "id": "libvirt-36"
+}
+
+{
+ "execute": "query-cpu-definitions",
+ "id": "libvirt-37"
+}
+
+{
+ "return": [
+ {
+ "name": "neoverse-n2",
+ "typename": "neoverse-n2-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-c0",
+ "typename": "pxa270-c0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a15",
+ "typename": "cortex-a15-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-b0",
+ "typename": "pxa270-b0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m4",
+ "typename": "cortex-m4-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a57",
+ "typename": "cortex-a57-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-a0",
+ "typename": "pxa270-a0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1176",
+ "typename": "arm1176-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-b1",
+ "typename": "pxa270-b1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a7",
+ "typename": "cortex-a7-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-a1",
+ "typename": "pxa270-a1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a76",
+ "typename": "cortex-a76-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "a64fx",
+ "typename": "a64fx-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a8",
+ "typename": "cortex-a8-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "neoverse-v1",
+ "typename": "neoverse-v1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-r5",
+ "typename": "cortex-r5-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "ti925t",
+ "typename": "ti925t-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-r5f",
+ "typename": "cortex-r5f-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1026",
+ "typename": "arm1026-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a9",
+ "typename": "cortex-a9-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m7",
+ "typename": "cortex-m7-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270",
+ "typename": "pxa270-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa260",
+ "typename": "pxa260-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa250",
+ "typename": "pxa250-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-c5",
+ "typename": "pxa270-c5-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa261",
+ "typename": "pxa261-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa262",
+ "typename": "pxa262-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a710",
+ "typename": "cortex-a710-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-r52",
+ "typename": "cortex-r52-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "sa1110",
+ "typename": "sa1110-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "sa1100",
+ "typename": "sa1100-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "max",
+ "typename": "max-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a53",
+ "typename": "cortex-a53-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m0",
+ "typename": "cortex-m0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m33",
+ "typename": "cortex-m33-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a72",
+ "typename": "cortex-a72-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm946",
+ "typename": "arm946-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa255",
+ "typename": "pxa255-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a55",
+ "typename": "cortex-a55-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "host",
+ "typename": "host-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm11mpcore",
+ "typename": "arm11mpcore-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m55",
+ "typename": "cortex-m55-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "neoverse-n1",
+ "typename": "neoverse-n1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm926",
+ "typename": "arm926-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1136",
+ "typename": "arm1136-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a35",
+ "typename": "cortex-a35-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1136-r2",
+ "typename": "arm1136-r2-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m3",
+ "typename": "cortex-m3-arm-cpu",
+ "static": false,
+ "deprecated": false
+ }
+ ],
+ "id": "libvirt-37"
+}
+
+{
+ "execute": "query-tpm-models",
+ "id": "libvirt-38"
+}
+
+{
+ "return": [
+ "tpm-tis",
+ "tpm-tis"
+ ],
+ "id": "libvirt-38"
+}
+
+{
+ "execute": "query-tpm-types",
+ "id": "libvirt-39"
+}
+
+{
+ "return": [
+ "passthrough",
+ "emulator"
+ ],
+ "id": "libvirt-39"
+}
+
+{
+ "execute": "query-command-line-options",
+ "id": "libvirt-40"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "type",
+ "help": "machine type",
+ "type": "string"
+ },
+ {
+ "name": "boot-emmc",
+ "help": "Set or unset boot from EMMC",
+ "type": "boolean"
+ },
+ {
+ "name": "boot-mode",
+ "help": "Supported boot modes: jtag qspi sd nor",
+ "type": "string"
+ },
+ {
+ "name": "remap",
+ "help": "Set memory mapping. Valid values are BRAM (default) and QSPI.",
+ "type": "string"
+ },
+ {
+ "name": "ospi-flash",
+ "help": "Change the OSPI Flash model",
+ "type": "string"
+ },
+ {
+ "name": "audiodev",
+ "help": "Audiodev to use for default machine devices",
+ "type": "string"
+ },
+ {
+ "name": "auto-shutdown",
+ "type": "boolean"
+ },
+ {
+ "name": "vfio-user",
+ "type": "boolean"
+ },
+ {
+ "name": "mte",
+ "help": "Set on/off to enable/disable emulating a guest CPU which implements the ARM Memory Tagging Extension",
+ "type": "boolean"
+ },
+ {
+ "name": "x-oem-table-id",
+ "help": "Override the default value of field OEM Table ID in ACPI table header.The string may be up to 8 bytes in size",
+ "type": "string"
+ },
+ {
+ "name": "dtb-randomness",
+ "help": "Set off to disable passing random or non-deterministic dtb nodes to guest",
+ "type": "boolean"
+ },
+ {
+ "name": "secure",
+ "help": "Set on/off to enable/disable the ARM Security Extensions (TrustZone)",
+ "type": "boolean"
+ },
+ {
+ "name": "acpi",
+ "help": "Enable ACPI",
+ "type": "boolean"
+ },
+ {
+ "name": "highmem-mmio",
+ "help": "Set on/off to enable/disable high memory region for PCI MMIO",
+ "type": "boolean"
+ },
+ {
+ "name": "compact-highmem",
+ "help": "Set on/off to enable/disable compact layout for high memory regions",
+ "type": "boolean"
+ },
+ {
+ "name": "iommu",
+ "help": "Set the IOMMU type. Valid values are none and smmuv3",
+ "type": "string"
+ },
+ {
+ "name": "dtb-kaslr-seed",
+ "help": "Deprecated synonym of dtb-randomness",
+ "type": "boolean"
+ },
+ {
+ "name": "ras",
+ "help": "Set on/off to enable/disable reporting host memory errors to a KVM guest using ACPI and guest external abort exceptions",
+ "type": "boolean"
+ },
+ {
+ "name": "highmem-redists",
+ "help": "Set on/off to enable/disable high memory region for GICv3 or GICv4 redistributor",
+ "type": "boolean"
+ },
+ {
+ "name": "highmem-ecam",
+ "help": "Set on/off to enable/disable high memory region for PCI ECAM",
+ "type": "boolean"
+ },
+ {
+ "name": "highmem",
+ "help": "Set on/off to enable/disable using physical address space above 32 bits",
+ "type": "boolean"
+ },
+ {
+ "name": "x-oem-id",
+ "help": "Override the default value of field OEMID in ACPI table header.The string may be up to 6 bytes in size",
+ "type": "string"
+ },
+ {
+ "name": "its",
+ "help": "Set on/off to enable/disable ITS instantiation",
+ "type": "boolean"
+ },
+ {
+ "name": "virtualization",
+ "help": "Set on/off to enable/disable emulating a guest CPU which implements the ARM Virtualization Extensions",
+ "type": "boolean"
+ },
+ {
+ "name": "default-bus-bypass-iommu",
+ "help": "Set on/off to enable/disable bypass_iommu for default root bus",
+ "type": "boolean"
+ },
+ {
+ "name": "gic-version",
+ "help": "Set GIC version. Valid values are 2, 3, 4, host and max",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "dt-compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "help": "Set on to disable self-describing migration",
+ "type": "boolean"
+ },
+ {
+ "name": "boot",
+ "help": "Boot configuration",
+ "type": "string"
+ },
+ {
+ "name": "memory",
+ "help": "Memory size configuration",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "confidential-guest-support",
+ "help": "Set confidential guest scheme to support",
+ "type": "string"
+ },
+ {
+ "name": "graphics",
+ "help": "Set on/off to enable/disable graphics emulation",
+ "type": "boolean"
+ },
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "firmware",
+ "help": "Firmware image",
+ "type": "string"
+ },
+ {
+ "name": "memory-encryption",
+ "help": "Set memory encryption object to use",
+ "type": "string"
+ },
+ {
+ "name": "smp",
+ "help": "CPU topology",
+ "type": "string"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "smp-cache",
+ "help": "Cache properties list for SMP machine",
+ "type": "string"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "phandle-start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "memory-backend",
+ "help": "Set RAM backendValid value is ID of hostmem based backend",
+ "type": "string"
+ },
+ {
+ "name": "mem-merge",
+ "help": "Enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "fmc-model",
+ "help": "Change the FMC Flash model",
+ "type": "string"
+ },
+ {
+ "name": "bmc-console",
+ "help": "Change the default UART to \"uartX\"",
+ "type": "string"
+ },
+ {
+ "name": "spi-model",
+ "help": "Change the SPI Flash model",
+ "type": "string"
+ },
+ {
+ "name": "execute-in-place",
+ "help": "boot directly from CE0 flash device",
+ "type": "boolean"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "multidevs",
+ "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": "multidevs",
+ "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": [],
+ "option": "smbios"
+ },
+ {
+ "parameters": [],
+ "option": "acpi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "user",
+ "type": "string"
+ },
+ {
+ "name": "chroot",
+ "type": "string"
+ },
+ {
+ "name": "async-teardown",
+ "type": "boolean"
+ }
+ ],
+ "option": "run-with"
+ },
+ {
+ "parameters": [
+ {
+ "name": "watchdog",
+ "type": "string"
+ },
+ {
+ "name": "panic",
+ "type": "string"
+ },
+ {
+ "name": "reboot",
+ "type": "string"
+ },
+ {
+ "name": "shutdown",
+ "type": "string"
+ }
+ ],
+ "option": "action"
+ },
+ {
+ "parameters": [
+ {
+ "name": "gen_id",
+ "help": "Sets id of the object generating the fw_cfg blob to be inserted",
+ "type": "string"
+ },
+ {
+ "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 the 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": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "target",
+ "type": "string"
+ },
+ {
+ "name": "userspace",
+ "type": "boolean"
+ },
+ {
+ "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": "guest-name",
+ "help": "Prepends guest name for error messages but only if -name guest is set otherwise option is ignored\n",
+ "type": "boolean"
+ },
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "cpu-pm",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-lock",
+ "type": "boolean"
+ }
+ ],
+ "option": "overcommit"
+ },
+ {
+ "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": "strict",
+ "type": "boolean"
+ },
+ {
+ "name": "reboot-timeout",
+ "type": "number"
+ },
+ {
+ "name": "splash-time",
+ "type": "number"
+ },
+ {
+ "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": "modules",
+ "type": "number"
+ },
+ {
+ "name": "clusters",
+ "type": "number"
+ },
+ {
+ "name": "dies",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "books",
+ "type": "number"
+ },
+ {
+ "name": "drawers",
+ "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": [],
+ "option": "accel"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [],
+ "option": "plugin"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "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": "nic"
+ },
+ {
+ "parameters": [],
+ "option": "netdev"
+ },
+ {
+ "parameters": [],
+ "option": "device"
+ },
+ {
+ "parameters": [
+ {
+ "name": "abstract",
+ "type": "boolean"
+ },
+ {
+ "name": "tight",
+ "default": "on",
+ "type": "boolean"
+ },
+ {
+ "name": "clipboard",
+ "type": "boolean"
+ },
+ {
+ "name": "mouse",
+ "type": "boolean"
+ },
+ {
+ "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": "websocket",
+ "type": "boolean"
+ },
+ {
+ "name": "tls-authz",
+ "type": "string"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "tn3270",
+ "type": "boolean"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "reconnect-ms",
+ "type": "number"
+ },
+ {
+ "name": "reconnect",
+ "type": "number"
+ },
+ {
+ "name": "nodelay",
+ "type": "boolean"
+ },
+ {
+ "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": "fd",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "input-path",
+ "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": "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, io_uring)",
+ "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": "auto-read-only",
+ "help": "Node can become read-only if opening read-write fails",
+ "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-40"
+}
+
+{
+ "execute": "query-migrate-capabilities",
+ "id": "libvirt-41"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ },
+ {
+ "state": false,
+ "capability": "events"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-ram"
+ },
+ {
+ "state": false,
+ "capability": "x-colo"
+ },
+ {
+ "state": false,
+ "capability": "release-ram"
+ },
+ {
+ "state": false,
+ "capability": "return-path"
+ },
+ {
+ "state": false,
+ "capability": "pause-before-switchover"
+ },
+ {
+ "state": false,
+ "capability": "multifd"
+ },
+ {
+ "state": false,
+ "capability": "dirty-bitmaps"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-blocktime"
+ },
+ {
+ "state": false,
+ "capability": "late-block-activate"
+ },
+ {
+ "state": false,
+ "capability": "x-ignore-shared"
+ },
+ {
+ "state": false,
+ "capability": "validate-uuid"
+ },
+ {
+ "state": false,
+ "capability": "background-snapshot"
+ },
+ {
+ "state": false,
+ "capability": "zero-copy-send"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-preempt"
+ },
+ {
+ "state": false,
+ "capability": "switchover-ack"
+ },
+ {
+ "state": false,
+ "capability": "dirty-limit"
+ },
+ {
+ "state": false,
+ "capability": "mapped-ram"
+ }
+ ],
+ "id": "libvirt-41"
+}
+
+{
+ "execute": "query-gic-capabilities",
+ "id": "libvirt-42"
+}
+
+{
+ "return": [
+ {
+ "emulated": true,
+ "version": 3,
+ "kernel": true
+ },
+ {
+ "emulated": true,
+ "version": 2,
+ "kernel": false
+ }
+ ],
+ "id": "libvirt-42"
+}
+
+{
+ "execute": "query-cca-capabilities",
+ "id": "libvirt-43"
+}
+
+{
+ "return": {
+ "sections": [
+ {
+ "measurement-algo": "sha256"
+ },
+ {
+ "measurement-algo": "sha512"
+ }
+ ]
+ },
+ "id": "libvirt-43"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "full",
+ "model": {
+ "name": "host"
+ }
+ },
+ "id": "libvirt-44"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "host",
+ "props": {
+ "sve768": true,
+ "sve128": true,
+ "sve1024": true,
+ "sve1280": true,
+ "num-watchpoints": 4,
+ "sve896": true,
+ "sve256": true,
+ "sve1536": true,
+ "sve1792": true,
+ "sve384": true,
+ "sve": true,
+ "sve2048": true,
+ "pauth": true,
+ "kvm-no-adjvtime": false,
+ "sve512": true,
+ "aarch64": true,
+ "pmu": true,
+ "sve1920": true,
+ "sve1152": true,
+ "num-breakpoints": 6,
+ "kvm-steal-time": true,
+ "num-pmu-counters": 6,
+ "sve640": true,
+ "sve1408": true,
+ "sve1664": true
+ }
+ }
+ },
+ "id": "libvirt-44"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "full",
+ "model": {
+ "name": "host",
+ "props": {
+ "migratable": false,
+ "hv-passthrough": true
+ }
+ }
+ },
+ "id": "libvirt-45"
+}
+
+{
+ "id": "libvirt-45",
+ "error": {
+ "class": "GenericError",
+ "desc": "Parameter 'model.props.hv-passthrough' is unexpected"
+ }
+}
+
+{
+ "execute": "qmp_capabilities",
+ "id": "libvirt-1"
+}
+
+{
+ "return": {},
+ "id": "libvirt-1"
+}
+
+{
+ "execute": "query-cpu-definitions",
+ "id": "libvirt-2"
+}
+
+{
+ "return": [
+ {
+ "name": "neoverse-n2",
+ "typename": "neoverse-n2-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-c0",
+ "typename": "pxa270-c0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a15",
+ "typename": "cortex-a15-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-b0",
+ "typename": "pxa270-b0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m4",
+ "typename": "cortex-m4-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a57",
+ "typename": "cortex-a57-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-a0",
+ "typename": "pxa270-a0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1176",
+ "typename": "arm1176-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-b1",
+ "typename": "pxa270-b1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a7",
+ "typename": "cortex-a7-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-a1",
+ "typename": "pxa270-a1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a76",
+ "typename": "cortex-a76-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "a64fx",
+ "typename": "a64fx-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a8",
+ "typename": "cortex-a8-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "neoverse-v1",
+ "typename": "neoverse-v1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-r5",
+ "typename": "cortex-r5-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "ti925t",
+ "typename": "ti925t-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-r5f",
+ "typename": "cortex-r5f-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1026",
+ "typename": "arm1026-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a9",
+ "typename": "cortex-a9-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m7",
+ "typename": "cortex-m7-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270",
+ "typename": "pxa270-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa260",
+ "typename": "pxa260-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa250",
+ "typename": "pxa250-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa270-c5",
+ "typename": "pxa270-c5-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa261",
+ "typename": "pxa261-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa262",
+ "typename": "pxa262-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a710",
+ "typename": "cortex-a710-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-r52",
+ "typename": "cortex-r52-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "sa1110",
+ "typename": "sa1110-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "sa1100",
+ "typename": "sa1100-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "max",
+ "typename": "max-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a53",
+ "typename": "cortex-a53-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m0",
+ "typename": "cortex-m0-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m33",
+ "typename": "cortex-m33-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a72",
+ "typename": "cortex-a72-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm946",
+ "typename": "arm946-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "pxa255",
+ "typename": "pxa255-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a55",
+ "typename": "cortex-a55-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "host",
+ "typename": "host-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm11mpcore",
+ "typename": "arm11mpcore-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m55",
+ "typename": "cortex-m55-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "neoverse-n1",
+ "typename": "neoverse-n1-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm926",
+ "typename": "arm926-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1136",
+ "typename": "arm1136-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-a35",
+ "typename": "cortex-a35-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "arm1136-r2",
+ "typename": "arm1136-r2-arm-cpu",
+ "static": false,
+ "deprecated": false
+ },
+ {
+ "name": "cortex-m3",
+ "typename": "cortex-m3-arm-cpu",
+ "static": false,
+ "deprecated": false
+ }
+ ],
+ "id": "libvirt-2"
+}
+
+{
+ "execute": "query-cpu-model-expansion",
+ "arguments": {
+ "type": "full",
+ "model": {
+ "name": "max"
+ }
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "max",
+ "props": {
+ "sve768": true,
+ "sve128": true,
+ "sve1024": true,
+ "sve1280": true,
+ "pauth-impdef": false,
+ "sve896": true,
+ "sve256": true,
+ "sve1536": true,
+ "sve1792": true,
+ "sve384": true,
+ "sve": true,
+ "sve2048": true,
+ "pauth": true,
+ "pauth-qarma3": false,
+ "sve512": true,
+ "aarch64": true,
+ "pmu": true,
+ "sve1920": true,
+ "sve1152": true,
+ "sve640": true,
+ "sve1408": true,
+ "sve1664": true
+ }
+ }
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "execute": "query-machines",
+ "id": "libvirt-4"
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": false,
+ "name": "qcom-dc-scm-v1-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mori-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast2600-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "tiogapass-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.7",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "nuri",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mcimx7d-sabre",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "mcimx7d-sabre.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast2700-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps3-an536",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-r52-arm-cpu",
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "DDR"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-3.0",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-5.0",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "romulus-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "npcm750-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.10",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "rainier-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps3-an547",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m55-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "DDR"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.8",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-pbx-a9",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a9-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "versatileab",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "versatile.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "kzm",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "kzm.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "musca-b1",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "b-l475e-iot01a",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fby35-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "musca-a",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-3.1",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mcimx6ul-evk",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mcimx6ul-evk.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-5.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "smdkc210",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sx1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "ti925t-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "omap1.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.11",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "imx25-pdk",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "imx25.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.9",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "stm32vldiscovery",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "orangepi-pc",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a7-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "orangepi.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "quanta-q71l-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-5.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "xilinx-zynq-a9",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "zynq.ext_ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an500",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m7-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.12",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an521",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m33-arm-cpu",
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sabrelite",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "sabrelite.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an511",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "canon-a1100",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-eb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "quanta-gbs-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "emcraft-sf2",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-pb-a8",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a8-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sbsa-ref",
+ "numa-mem-supported": false,
+ "default-cpu-type": "neoverse-n2-arm-cpu",
+ "acpi": false,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "sbsa-ref.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "yosemitev2-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-7.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-4.0",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-9.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi1ap",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "palmetto-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sx1-v1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "ti925t-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "omap1.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "g220a-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "tacoma-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": true,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-7.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "bletchley-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-4.1",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-9.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "quanta-gsj",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "versatilepb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "versatile.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "realview-eb-mpcore",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm11mpcore-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "integratorcp",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "integrator.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-7.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "supermicrox11-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-4.2",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-9.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram",
+ "alias": "virt"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "witherspoon-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "qcom-firework-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps3-an524",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m33-arm-cpu",
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "DDR"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "kudo-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "vexpress-a9",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "vexpress.highmem"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "midway",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "highbank.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "musicpal",
+ "numa-mem-supported": false,
+ "default-cpu-type": "arm926-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "musicpal.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "lm3s811evb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "lm3s6965evb",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "supermicro-x11spi-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "microbit",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fby35",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 3,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an385",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m3-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an505",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m33-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-6.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-8.0",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi3ap",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "cubieboard",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a8-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "cubieboard.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast1030-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "netduino2",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "bpim2u",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a7-arm-cpu",
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "bpim2u.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi4b",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "xlnx-versal-virt",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ddr"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "mps2-an386",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-m4-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "mps.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "olimex-stm32-h405",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-6.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-8.1",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi3b",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi2b",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "vexpress-a15",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "vexpress.highmem"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fuji-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 2,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-6.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-8.2",
+ "numa-mem-supported": false,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 512,
+ "deprecated": false,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "x-remote",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "sonorapass-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "virt-2.6",
+ "numa-mem-supported": true,
+ "default-cpu-type": "cortex-a15-arm-cpu",
+ "acpi": true,
+ "cpu-max": 255,
+ "deprecated": true,
+ "default-ram-id": "mach-virt.ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "ast2500-evb",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "highbank",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 4,
+ "deprecated": false,
+ "default-ram-id": "highbank.dram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "netduinoplus2",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "collie",
+ "numa-mem-supported": false,
+ "default-cpu-type": "sa1110-arm-cpu",
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "strongarm.sdram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "raspi0",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "fp5280g2-bmc",
+ "numa-mem-supported": false,
+ "acpi": false,
+ "cpu-max": 1,
+ "deprecated": false,
+ "default-ram-id": "ram"
+ }
+ ],
+ "id": "libvirt-4"
+}
diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_aarch64.xml b/tests/qemucapabilitiesdata/caps_9.1.0_aarch64.xml
new file mode 100644
index 0000000000..c8a385c8fc
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_9.1.0_aarch64.xml
@@ -0,0 +1,540 @@
+<qemuCaps>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <flag name='kvm'/>
+ <flag name='hda-duplex'/>
+ <flag name='piix3-usb-uhci'/>
+ <flag name='piix4-usb-uhci'/>
+ <flag name='usb-ehci'/>
+ <flag name='ich9-usb-ehci1'/>
+ <flag name='pci-ohci'/>
+ <flag name='usb-hub'/>
+ <flag name='ich9-ahci'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='hda-micro'/>
+ <flag name='nec-usb-xhci'/>
+ <flag name='lsi'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='VGA'/>
+ <flag name='cirrus-vga'/>
+ <flag name='usb-serial'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='megasas'/>
+ <flag name='tpm-passthrough'/>
+ <flag name='tpm-tis'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='dmi-to-pci-bridge'/>
+ <flag name='usb-storage'/>
+ <flag name='virtio-mmio'/>
+ <flag name='ich9-intel-hda'/>
+ <flag name='usb-kbd'/>
+ <flag name='usb-audio'/>
+ <flag name='migrate-rdma'/>
+ <flag name='VGA.vgamem_mb'/>
+ <flag name='pc-dimm'/>
+ <flag name='pci-serial'/>
+ <flag name='ioh3420'/>
+ <flag name='x3130-upstream'/>
+ <flag name='xio3130-downstream'/>
+ <flag name='rtl8139'/>
+ <flag name='e1000'/>
+ <flag name='virtio-net'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='mptsas1068'/>
+ <flag name='pxb'/>
+ <flag name='pxb-pcie'/>
+ <flag name='ivshmem-plain'/>
+ <flag name='ivshmem-doorbell'/>
+ <flag name='vhost-scsi'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='nvdimm'/>
+ <flag name='pcie-root-port'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='qemu-xhci'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='vmcoreinfo'/>
+ <flag name='pl011'/>
+ <flag name='pcie-pci-bridge'/>
+ <flag name='nbd-tls'/>
+ <flag name='pr-manager-helper'/>
+ <flag name='hda-output'/>
+ <flag name='vhost-vsock'/>
+ <flag name='tpm-emulator'/>
+ <flag name='memory-backend-memfd'/>
+ <flag name='memory-backend-memfd.hugetlb'/>
+ <flag name='nvdimm.unarmed'/>
+ <flag name='virtio-pci-non-transitional'/>
+ <flag name='machine.virt.iommu'/>
+ <flag name='nbd-bitmap'/>
+ <flag name='bochs-display'/>
+ <flag name='migration-file-drop-cache'/>
+ <flag name='dbus-vmstate'/>
+ <flag name='vhost-user-gpu'/>
+ <flag name='incremental-backup'/>
+ <flag name='ramfb'/>
+ <flag name='arm-max-cpu'/>
+ <flag name='drive-nvme'/>
+ <flag name='smp-dies'/>
+ <flag name='rng-builtin'/>
+ <flag name='cpu.kvm-no-adjvtime'/>
+ <flag name='vhost-user-fs'/>
+ <flag name='query-named-block-nodes.flat'/>
+ <flag name='blockdev-snapshot.allow-write-only-overlay'/>
+ <flag name='blockdev-reopen'/>
+ <flag name='fsdev.multidevs'/>
+ <flag name='pcie-root-port.hotplug'/>
+ <flag name='tcg'/>
+ <flag name='pvscsi'/>
+ <flag name='numa.hmat'/>
+ <flag name='virtio-balloon.free-page-reporting'/>
+ <flag name='block-export-add'/>
+ <flag name='netdev.vhost-vdpa'/>
+ <flag name='dc390'/>
+ <flag name='am53c974'/>
+ <flag name='vhost-user-fs.bootindex'/>
+ <flag name='vhost-user-blk'/>
+ <flag name='cpu-max'/>
+ <flag name='memory-backend-file.x-use-canonical-path-for-ramblock-id'/>
+ <flag name='migration-param.block-bitmap-mapping'/>
+ <flag name='object.qapified'/>
+ <flag name='rotation-rate'/>
+ <flag name='compat-deprecated'/>
+ <flag name='acpi-index'/>
+ <flag name='input-linux'/>
+ <flag name='confidential-guest-support'/>
+ <flag name='set-action'/>
+ <flag name='virtio-blk.queue-size'/>
+ <flag name='virtio-mem-pci'/>
+ <flag name='memory-backend-file.reserve'/>
+ <flag name='netdev.json'/>
+ <flag name='query-dirty-rate'/>
+ <flag name='rbd-encryption'/>
+ <flag name='sev-guest-kernel-hashes'/>
+ <flag name='device.json+hotplug'/>
+ <flag name='virtio-mem-pci.prealloc'/>
+ <flag name='calc-dirty-rate'/>
+ <flag name='dirtyrate-param.mode'/>
+ <flag name='blockdev.nbd.tls-hostname'/>
+ <flag name='memory-backend-file.prealloc-threads'/>
+ <flag name='virtio-iommu-pci'/>
+ <flag name='virtio-iommu.boot-bypass'/>
+ <flag name='virtio-net.rss'/>
+ <flag name='display-dbus'/>
+ <flag name='iothread.thread-pool-max'/>
+ <flag name='migration.blocked-reasons'/>
+ <flag name='query-stats'/>
+ <flag name='query-stats-schemas'/>
+ <flag name='thread-context'/>
+ <flag name='netdev.stream'/>
+ <flag name='virtio-crypto'/>
+ <flag name='pvpanic-pci'/>
+ <flag name='netdev.stream.reconnect'/>
+ <flag name='virtio-gpu.blob'/>
+ <flag name='rbd-encryption-layering'/>
+ <flag name='rbd-encryption-luks-any'/>
+ <flag name='qcow2-discard-no-unref'/>
+ <flag name='run-with.async-teardown'/>
+ <flag name='virtio-blk.iothread-mapping'/>
+ <flag name='smp-clusters'/>
+ <flag name='virtio-mem-pci.dynamic-memslots'/>
+ <flag name='blockjob.backing-mask-protocol'/>
+ <flag name='display-reload'/>
+ <flag name='usb-mtp'/>
+ <flag name='machine.virt.ras'/>
+ <flag name='virtio-sound'/>
+ <flag name='netdev.user'/>
+ <flag name='acpi-erst'/>
+ <flag name='snapshot-internal-qmp'/>
+ <flag name='chardev-reconnect-miliseconds'/>
+ <flag name='netdev-stream-reconnect-miliseconds'/>
+ <flag name='migrate-incoming.exit-on-error'/>
+ <flag name='rme-guest'/>
+ <version>9001091</version>
+ <microcodeVersion>61700246</microcodeVersion>
+ <package></package>
+ <arch>aarch64</arch>
+ <hostCPU type='kvm' model='host' migratability='no'>
+ <property name='sve768' type='boolean' value='true'/>
+ <property name='sve128' type='boolean' value='true'/>
+ <property name='sve1024' type='boolean' value='true'/>
+ <property name='sve1280' type='boolean' value='true'/>
+ <property name='num-watchpoints' type='number' value='4'/>
+ <property name='sve896' type='boolean' value='true'/>
+ <property name='sve256' type='boolean' value='true'/>
+ <property name='sve1536' type='boolean' value='true'/>
+ <property name='sve1792' type='boolean' value='true'/>
+ <property name='sve384' type='boolean' value='true'/>
+ <property name='sve' type='boolean' value='true'/>
+ <property name='sve2048' type='boolean' value='true'/>
+ <property name='pauth' type='boolean' value='true'/>
+ <property name='kvm-no-adjvtime' type='boolean' value='false'/>
+ <property name='sve512' type='boolean' value='true'/>
+ <property name='aarch64' type='boolean' value='true'/>
+ <property name='pmu' type='boolean' value='true'/>
+ <property name='sve1920' type='boolean' value='true'/>
+ <property name='sve1152' type='boolean' value='true'/>
+ <property name='num-breakpoints' type='number' value='6'/>
+ <property name='kvm-steal-time' type='boolean' value='true'/>
+ <property name='num-pmu-counters' type='number' value='6'/>
+ <property name='sve640' type='boolean' value='true'/>
+ <property name='sve1408' type='boolean' value='true'/>
+ <property name='sve1664' type='boolean' value='true'/>
+ </hostCPU>
+ <cpu type='kvm' name='neoverse-n2' typename='neoverse-n2-arm-cpu'/>
+ <cpu type='kvm' name='pxa270-c0' typename='pxa270-c0-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a15' typename='cortex-a15-arm-cpu'/>
+ <cpu type='kvm' name='pxa270-b0' typename='pxa270-b0-arm-cpu'/>
+ <cpu type='kvm' name='cortex-m4' typename='cortex-m4-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a57' typename='cortex-a57-arm-cpu'/>
+ <cpu type='kvm' name='pxa270-a0' typename='pxa270-a0-arm-cpu'/>
+ <cpu type='kvm' name='arm1176' typename='arm1176-arm-cpu'/>
+ <cpu type='kvm' name='pxa270-b1' typename='pxa270-b1-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a7' typename='cortex-a7-arm-cpu'/>
+ <cpu type='kvm' name='pxa270-a1' typename='pxa270-a1-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a76' typename='cortex-a76-arm-cpu'/>
+ <cpu type='kvm' name='a64fx' typename='a64fx-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a8' typename='cortex-a8-arm-cpu'/>
+ <cpu type='kvm' name='neoverse-v1' typename='neoverse-v1-arm-cpu'/>
+ <cpu type='kvm' name='cortex-r5' typename='cortex-r5-arm-cpu'/>
+ <cpu type='kvm' name='ti925t' typename='ti925t-arm-cpu'/>
+ <cpu type='kvm' name='cortex-r5f' typename='cortex-r5f-arm-cpu'/>
+ <cpu type='kvm' name='arm1026' typename='arm1026-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a9' typename='cortex-a9-arm-cpu'/>
+ <cpu type='kvm' name='cortex-m7' typename='cortex-m7-arm-cpu'/>
+ <cpu type='kvm' name='pxa270' typename='pxa270-arm-cpu'/>
+ <cpu type='kvm' name='pxa260' typename='pxa260-arm-cpu'/>
+ <cpu type='kvm' name='pxa250' typename='pxa250-arm-cpu'/>
+ <cpu type='kvm' name='pxa270-c5' typename='pxa270-c5-arm-cpu'/>
+ <cpu type='kvm' name='pxa261' typename='pxa261-arm-cpu'/>
+ <cpu type='kvm' name='pxa262' typename='pxa262-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a710' typename='cortex-a710-arm-cpu'/>
+ <cpu type='kvm' name='cortex-r52' typename='cortex-r52-arm-cpu'/>
+ <cpu type='kvm' name='sa1110' typename='sa1110-arm-cpu'/>
+ <cpu type='kvm' name='sa1100' typename='sa1100-arm-cpu'/>
+ <cpu type='kvm' name='max' typename='max-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a53' typename='cortex-a53-arm-cpu'/>
+ <cpu type='kvm' name='cortex-m0' typename='cortex-m0-arm-cpu'/>
+ <cpu type='kvm' name='cortex-m33' typename='cortex-m33-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a72' typename='cortex-a72-arm-cpu'/>
+ <cpu type='kvm' name='arm946' typename='arm946-arm-cpu'/>
+ <cpu type='kvm' name='pxa255' typename='pxa255-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a55' typename='cortex-a55-arm-cpu'/>
+ <cpu type='kvm' name='host' typename='host-arm-cpu'/>
+ <cpu type='kvm' name='arm11mpcore' typename='arm11mpcore-arm-cpu'/>
+ <cpu type='kvm' name='cortex-m55' typename='cortex-m55-arm-cpu'/>
+ <cpu type='kvm' name='neoverse-n1' typename='neoverse-n1-arm-cpu'/>
+ <cpu type='kvm' name='arm926' typename='arm926-arm-cpu'/>
+ <cpu type='kvm' name='arm1136' typename='arm1136-arm-cpu'/>
+ <cpu type='kvm' name='cortex-a35' typename='cortex-a35-arm-cpu'/>
+ <cpu type='kvm' name='arm1136-r2' typename='arm1136-r2-arm-cpu'/>
+ <cpu type='kvm' name='cortex-m3' typename='cortex-m3-arm-cpu'/>
+ <machine type='kvm' name='virt-9.2' alias='virt' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='qcom-dc-scm-v1-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='mori-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='ast2600-evb' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='tiogapass-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-2.7' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='nuri' maxCpus='2' acpi='no'/>
+ <machine type='kvm' name='mcimx7d-sabre' maxCpus='2' defaultRAMid='mcimx7d-sabre.ram' acpi='no'/>
+ <machine type='kvm' name='ast2700-evb' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='mps3-an536' maxCpus='2' defaultCPU='cortex-r52-arm-cpu' defaultRAMid='DDR' acpi='no'/>
+ <machine type='kvm' name='virt-3.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='virt-5.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='romulus-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='npcm750-evb' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-2.10' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='rainier-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='mps3-an547' maxCpus='1' defaultCPU='cortex-m55-arm-cpu' defaultRAMid='DDR' acpi='no'/>
+ <machine type='kvm' name='virt-2.8' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='realview-pbx-a9' maxCpus='4' defaultCPU='cortex-a9-arm-cpu' acpi='no'/>
+ <machine type='kvm' name='versatileab' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='versatile.ram' acpi='no'/>
+ <machine type='kvm' name='kzm' maxCpus='1' defaultRAMid='kzm.ram' acpi='no'/>
+ <machine type='kvm' name='musca-b1' maxCpus='2' acpi='no'/>
+ <machine type='kvm' name='b-l475e-iot01a' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='fby35-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='musca-a' maxCpus='2' acpi='no'/>
+ <machine type='kvm' name='virt-3.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='mcimx6ul-evk' maxCpus='1' defaultRAMid='mcimx6ul-evk.ram' acpi='no'/>
+ <machine type='kvm' name='virt-5.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='smdkc210' maxCpus='2' acpi='no'/>
+ <machine type='kvm' name='sx1' maxCpus='1' defaultCPU='ti925t-arm-cpu' defaultRAMid='omap1.dram' acpi='no'/>
+ <machine type='kvm' name='virt-2.11' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='imx25-pdk' maxCpus='1' defaultRAMid='imx25.ram' acpi='no'/>
+ <machine type='kvm' name='virt-2.9' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='stm32vldiscovery' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='orangepi-pc' maxCpus='4' defaultCPU='cortex-a7-arm-cpu' defaultRAMid='orangepi.ram' acpi='no'/>
+ <machine type='kvm' name='quanta-q71l-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-5.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='xilinx-zynq-a9' maxCpus='2' defaultRAMid='zynq.ext_ram' acpi='no'/>
+ <machine type='kvm' name='mps2-an500' maxCpus='1' defaultCPU='cortex-m7-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='kvm' name='virt-2.12' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='mps2-an521' maxCpus='2' defaultCPU='cortex-m33-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='kvm' name='sabrelite' maxCpus='4' defaultRAMid='sabrelite.ram' acpi='no'/>
+ <machine type='kvm' name='mps2-an511' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='kvm' name='canon-a1100' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='realview-eb' maxCpus='1' defaultCPU='arm926-arm-cpu' acpi='no'/>
+ <machine type='kvm' name='quanta-gbs-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='emcraft-sf2' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='realview-pb-a8' maxCpus='1' defaultCPU='cortex-a8-arm-cpu' acpi='no'/>
+ <machine type='kvm' name='sbsa-ref' maxCpus='512' defaultCPU='neoverse-n2-arm-cpu' defaultRAMid='sbsa-ref.ram' acpi='no'/>
+ <machine type='kvm' name='yosemitev2-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-7.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='virt-4.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='virt-9.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='raspi1ap' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='palmetto-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='sx1-v1' maxCpus='1' defaultCPU='ti925t-arm-cpu' defaultRAMid='omap1.dram' acpi='no'/>
+ <machine type='kvm' name='g220a-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='tacoma-bmc' maxCpus='2' defaultRAMid='ram' deprecated='yes' acpi='no'/>
+ <machine type='kvm' name='virt-7.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='bletchley-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-4.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='virt-9.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='quanta-gsj' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='versatilepb' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='versatile.ram' acpi='no'/>
+ <machine type='kvm' name='realview-eb-mpcore' maxCpus='4' defaultCPU='arm11mpcore-arm-cpu' acpi='no'/>
+ <machine type='kvm' name='integratorcp' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='integrator.ram' acpi='no'/>
+ <machine type='kvm' name='virt-7.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='supermicrox11-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-4.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='witherspoon-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='qcom-firework-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='mps3-an524' maxCpus='2' defaultCPU='cortex-m33-arm-cpu' defaultRAMid='DDR' acpi='no'/>
+ <machine type='kvm' name='kudo-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='vexpress-a9' maxCpus='4' defaultRAMid='vexpress.highmem' acpi='no'/>
+ <machine type='kvm' name='midway' maxCpus='4' defaultRAMid='highbank.dram' acpi='no'/>
+ <machine type='kvm' name='musicpal' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='musicpal.ram' acpi='no'/>
+ <machine type='kvm' name='lm3s811evb' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' acpi='no'/>
+ <machine type='kvm' name='lm3s6965evb' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' acpi='no'/>
+ <machine type='kvm' name='supermicro-x11spi-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='microbit' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='fby35' maxCpus='3' acpi='no'/>
+ <machine type='kvm' name='mps2-an385' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='kvm' name='mps2-an505' maxCpus='1' defaultCPU='cortex-m33-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='kvm' name='virt-6.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='virt-8.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='raspi3ap' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='cubieboard' maxCpus='1' defaultCPU='cortex-a8-arm-cpu' defaultRAMid='cubieboard.ram' acpi='no'/>
+ <machine type='kvm' name='ast1030-evb' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='netduino2' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='bpim2u' maxCpus='4' defaultCPU='cortex-a7-arm-cpu' defaultRAMid='bpim2u.ram' acpi='no'/>
+ <machine type='kvm' name='raspi4b' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='xlnx-versal-virt' maxCpus='4' defaultRAMid='ddr' acpi='no'/>
+ <machine type='kvm' name='mps2-an386' maxCpus='1' defaultCPU='cortex-m4-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='kvm' name='olimex-stm32-h405' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='virt-6.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='virt-8.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='raspi3b' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='raspi2b' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='vexpress-a15' maxCpus='4' defaultRAMid='vexpress.highmem' acpi='no'/>
+ <machine type='kvm' name='fuji-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-6.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='virt-8.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='kvm' name='x-remote' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='sonorapass-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='virt-2.6' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='kvm' name='ast2500-evb' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='highbank' maxCpus='4' defaultRAMid='highbank.dram' acpi='no'/>
+ <machine type='kvm' name='netduinoplus2' maxCpus='1' acpi='no'/>
+ <machine type='kvm' name='collie' maxCpus='1' defaultCPU='sa1110-arm-cpu' defaultRAMid='strongarm.sdram' acpi='no'/>
+ <machine type='kvm' name='raspi0' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='kvm' name='fp5280g2-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <hostCPU type='tcg' model='max' migratability='no'>
+ <property name='sve768' type='boolean' value='true'/>
+ <property name='sve128' type='boolean' value='true'/>
+ <property name='sve1024' type='boolean' value='true'/>
+ <property name='sve1280' type='boolean' value='true'/>
+ <property name='pauth-impdef' type='boolean' value='false'/>
+ <property name='sve896' type='boolean' value='true'/>
+ <property name='sve256' type='boolean' value='true'/>
+ <property name='sve1536' type='boolean' value='true'/>
+ <property name='sve1792' type='boolean' value='true'/>
+ <property name='sve384' type='boolean' value='true'/>
+ <property name='sve' type='boolean' value='true'/>
+ <property name='sve2048' type='boolean' value='true'/>
+ <property name='pauth' type='boolean' value='true'/>
+ <property name='pauth-qarma3' type='boolean' value='false'/>
+ <property name='sve512' type='boolean' value='true'/>
+ <property name='aarch64' type='boolean' value='true'/>
+ <property name='pmu' type='boolean' value='true'/>
+ <property name='sve1920' type='boolean' value='true'/>
+ <property name='sve1152' type='boolean' value='true'/>
+ <property name='sve640' type='boolean' value='true'/>
+ <property name='sve1408' type='boolean' value='true'/>
+ <property name='sve1664' type='boolean' value='true'/>
+ </hostCPU>
+ <cpu type='tcg' name='neoverse-n2' typename='neoverse-n2-arm-cpu'/>
+ <cpu type='tcg' name='pxa270-c0' typename='pxa270-c0-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a15' typename='cortex-a15-arm-cpu'/>
+ <cpu type='tcg' name='pxa270-b0' typename='pxa270-b0-arm-cpu'/>
+ <cpu type='tcg' name='cortex-m4' typename='cortex-m4-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a57' typename='cortex-a57-arm-cpu'/>
+ <cpu type='tcg' name='pxa270-a0' typename='pxa270-a0-arm-cpu'/>
+ <cpu type='tcg' name='arm1176' typename='arm1176-arm-cpu'/>
+ <cpu type='tcg' name='pxa270-b1' typename='pxa270-b1-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a7' typename='cortex-a7-arm-cpu'/>
+ <cpu type='tcg' name='pxa270-a1' typename='pxa270-a1-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a76' typename='cortex-a76-arm-cpu'/>
+ <cpu type='tcg' name='a64fx' typename='a64fx-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a8' typename='cortex-a8-arm-cpu'/>
+ <cpu type='tcg' name='neoverse-v1' typename='neoverse-v1-arm-cpu'/>
+ <cpu type='tcg' name='cortex-r5' typename='cortex-r5-arm-cpu'/>
+ <cpu type='tcg' name='ti925t' typename='ti925t-arm-cpu'/>
+ <cpu type='tcg' name='cortex-r5f' typename='cortex-r5f-arm-cpu'/>
+ <cpu type='tcg' name='arm1026' typename='arm1026-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a9' typename='cortex-a9-arm-cpu'/>
+ <cpu type='tcg' name='cortex-m7' typename='cortex-m7-arm-cpu'/>
+ <cpu type='tcg' name='pxa270' typename='pxa270-arm-cpu'/>
+ <cpu type='tcg' name='pxa260' typename='pxa260-arm-cpu'/>
+ <cpu type='tcg' name='pxa250' typename='pxa250-arm-cpu'/>
+ <cpu type='tcg' name='pxa270-c5' typename='pxa270-c5-arm-cpu'/>
+ <cpu type='tcg' name='pxa261' typename='pxa261-arm-cpu'/>
+ <cpu type='tcg' name='pxa262' typename='pxa262-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a710' typename='cortex-a710-arm-cpu'/>
+ <cpu type='tcg' name='cortex-r52' typename='cortex-r52-arm-cpu'/>
+ <cpu type='tcg' name='sa1110' typename='sa1110-arm-cpu'/>
+ <cpu type='tcg' name='sa1100' typename='sa1100-arm-cpu'/>
+ <cpu type='tcg' name='max' typename='max-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a53' typename='cortex-a53-arm-cpu'/>
+ <cpu type='tcg' name='cortex-m0' typename='cortex-m0-arm-cpu'/>
+ <cpu type='tcg' name='cortex-m33' typename='cortex-m33-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a72' typename='cortex-a72-arm-cpu'/>
+ <cpu type='tcg' name='arm946' typename='arm946-arm-cpu'/>
+ <cpu type='tcg' name='pxa255' typename='pxa255-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a55' typename='cortex-a55-arm-cpu'/>
+ <cpu type='tcg' name='host' typename='host-arm-cpu'/>
+ <cpu type='tcg' name='arm11mpcore' typename='arm11mpcore-arm-cpu'/>
+ <cpu type='tcg' name='cortex-m55' typename='cortex-m55-arm-cpu'/>
+ <cpu type='tcg' name='neoverse-n1' typename='neoverse-n1-arm-cpu'/>
+ <cpu type='tcg' name='arm926' typename='arm926-arm-cpu'/>
+ <cpu type='tcg' name='arm1136' typename='arm1136-arm-cpu'/>
+ <cpu type='tcg' name='cortex-a35' typename='cortex-a35-arm-cpu'/>
+ <cpu type='tcg' name='arm1136-r2' typename='arm1136-r2-arm-cpu'/>
+ <cpu type='tcg' name='cortex-m3' typename='cortex-m3-arm-cpu'/>
+ <machine type='tcg' name='virt-9.2' alias='virt' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='qcom-dc-scm-v1-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='mori-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='ast2600-evb' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='tiogapass-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-2.7' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='nuri' maxCpus='2' acpi='no'/>
+ <machine type='tcg' name='mcimx7d-sabre' maxCpus='2' defaultRAMid='mcimx7d-sabre.ram' acpi='no'/>
+ <machine type='tcg' name='ast2700-evb' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='mps3-an536' maxCpus='2' defaultCPU='cortex-r52-arm-cpu' defaultRAMid='DDR' acpi='no'/>
+ <machine type='tcg' name='virt-3.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='virt-5.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='romulus-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='npcm750-evb' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-2.10' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='rainier-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='mps3-an547' maxCpus='1' defaultCPU='cortex-m55-arm-cpu' defaultRAMid='DDR' acpi='no'/>
+ <machine type='tcg' name='virt-2.8' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='realview-pbx-a9' maxCpus='4' defaultCPU='cortex-a9-arm-cpu' acpi='no'/>
+ <machine type='tcg' name='versatileab' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='versatile.ram' acpi='no'/>
+ <machine type='tcg' name='kzm' maxCpus='1' defaultRAMid='kzm.ram' acpi='no'/>
+ <machine type='tcg' name='musca-b1' maxCpus='2' acpi='no'/>
+ <machine type='tcg' name='b-l475e-iot01a' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='fby35-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='musca-a' maxCpus='2' acpi='no'/>
+ <machine type='tcg' name='virt-3.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='mcimx6ul-evk' maxCpus='1' defaultRAMid='mcimx6ul-evk.ram' acpi='no'/>
+ <machine type='tcg' name='virt-5.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='smdkc210' maxCpus='2' acpi='no'/>
+ <machine type='tcg' name='sx1' maxCpus='1' defaultCPU='ti925t-arm-cpu' defaultRAMid='omap1.dram' acpi='no'/>
+ <machine type='tcg' name='virt-2.11' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='imx25-pdk' maxCpus='1' defaultRAMid='imx25.ram' acpi='no'/>
+ <machine type='tcg' name='virt-2.9' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='stm32vldiscovery' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='orangepi-pc' maxCpus='4' defaultCPU='cortex-a7-arm-cpu' defaultRAMid='orangepi.ram' acpi='no'/>
+ <machine type='tcg' name='quanta-q71l-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-5.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='xilinx-zynq-a9' maxCpus='2' defaultRAMid='zynq.ext_ram' acpi='no'/>
+ <machine type='tcg' name='mps2-an500' maxCpus='1' defaultCPU='cortex-m7-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='tcg' name='virt-2.12' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='mps2-an521' maxCpus='2' defaultCPU='cortex-m33-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='tcg' name='sabrelite' maxCpus='4' defaultRAMid='sabrelite.ram' acpi='no'/>
+ <machine type='tcg' name='mps2-an511' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='tcg' name='canon-a1100' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='realview-eb' maxCpus='1' defaultCPU='arm926-arm-cpu' acpi='no'/>
+ <machine type='tcg' name='quanta-gbs-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='emcraft-sf2' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='realview-pb-a8' maxCpus='1' defaultCPU='cortex-a8-arm-cpu' acpi='no'/>
+ <machine type='tcg' name='sbsa-ref' maxCpus='512' defaultCPU='neoverse-n2-arm-cpu' defaultRAMid='sbsa-ref.ram' acpi='no'/>
+ <machine type='tcg' name='yosemitev2-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-7.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='virt-4.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='virt-9.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='raspi1ap' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='palmetto-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='sx1-v1' maxCpus='1' defaultCPU='ti925t-arm-cpu' defaultRAMid='omap1.dram' acpi='no'/>
+ <machine type='tcg' name='g220a-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='tacoma-bmc' maxCpus='2' defaultRAMid='ram' deprecated='yes' acpi='no'/>
+ <machine type='tcg' name='virt-7.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='bletchley-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-4.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='virt-9.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='quanta-gsj' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='versatilepb' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='versatile.ram' acpi='no'/>
+ <machine type='tcg' name='realview-eb-mpcore' maxCpus='4' defaultCPU='arm11mpcore-arm-cpu' acpi='no'/>
+ <machine type='tcg' name='integratorcp' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='integrator.ram' acpi='no'/>
+ <machine type='tcg' name='virt-7.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='supermicrox11-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-4.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='witherspoon-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='qcom-firework-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='mps3-an524' maxCpus='2' defaultCPU='cortex-m33-arm-cpu' defaultRAMid='DDR' acpi='no'/>
+ <machine type='tcg' name='kudo-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='vexpress-a9' maxCpus='4' defaultRAMid='vexpress.highmem' acpi='no'/>
+ <machine type='tcg' name='midway' maxCpus='4' defaultRAMid='highbank.dram' acpi='no'/>
+ <machine type='tcg' name='musicpal' maxCpus='1' defaultCPU='arm926-arm-cpu' defaultRAMid='musicpal.ram' acpi='no'/>
+ <machine type='tcg' name='lm3s811evb' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' acpi='no'/>
+ <machine type='tcg' name='lm3s6965evb' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' acpi='no'/>
+ <machine type='tcg' name='supermicro-x11spi-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='microbit' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='fby35' maxCpus='3' acpi='no'/>
+ <machine type='tcg' name='mps2-an385' maxCpus='1' defaultCPU='cortex-m3-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='tcg' name='mps2-an505' maxCpus='1' defaultCPU='cortex-m33-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='tcg' name='virt-6.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='virt-8.0' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='raspi3ap' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='cubieboard' maxCpus='1' defaultCPU='cortex-a8-arm-cpu' defaultRAMid='cubieboard.ram' acpi='no'/>
+ <machine type='tcg' name='ast1030-evb' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='netduino2' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='bpim2u' maxCpus='4' defaultCPU='cortex-a7-arm-cpu' defaultRAMid='bpim2u.ram' acpi='no'/>
+ <machine type='tcg' name='raspi4b' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='xlnx-versal-virt' maxCpus='4' defaultRAMid='ddr' acpi='no'/>
+ <machine type='tcg' name='mps2-an386' maxCpus='1' defaultCPU='cortex-m4-arm-cpu' defaultRAMid='mps.ram' acpi='no'/>
+ <machine type='tcg' name='olimex-stm32-h405' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='virt-6.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='virt-8.1' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='raspi3b' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='raspi2b' maxCpus='4' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='vexpress-a15' maxCpus='4' defaultRAMid='vexpress.highmem' acpi='no'/>
+ <machine type='tcg' name='fuji-bmc' maxCpus='2' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-6.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='virt-8.2' maxCpus='512' defaultCPU='cortex-a15-arm-cpu' defaultRAMid='mach-virt.ram' acpi='yes'/>
+ <machine type='tcg' name='x-remote' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='sonorapass-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='virt-2.6' maxCpus='255' defaultCPU='cortex-a15-arm-cpu' numaMemSupported='yes' defaultRAMid='mach-virt.ram' deprecated='yes' acpi='yes'/>
+ <machine type='tcg' name='ast2500-evb' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='highbank' maxCpus='4' defaultRAMid='highbank.dram' acpi='no'/>
+ <machine type='tcg' name='netduinoplus2' maxCpus='1' acpi='no'/>
+ <machine type='tcg' name='collie' maxCpus='1' defaultCPU='sa1110-arm-cpu' defaultRAMid='strongarm.sdram' acpi='no'/>
+ <machine type='tcg' name='raspi0' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <machine type='tcg' name='fp5280g2-bmc' maxCpus='1' defaultRAMid='ram' acpi='no'/>
+ <gic version='3' kernel='yes' emulated='yes'/>
+ <gic version='2' kernel='no' emulated='yes'/>
+ <cca measurement-algo='sha256'/>
+ <cca measurement-algo='sha512'/>
+</qemuCaps>
--
2.34.1
1
0
- Add ARM CCA support in domain schema files.
Signed-off-by: Akio Kakuno <fj3333bs(a)fujitsu.com>
---
src/conf/domain_conf.c | 9 +++
src/conf/schemas/domaincaps.rng | 14 ++++
src/conf/schemas/domaincommon.rng | 14 ++++
src/qemu/qemu_capabilities.c | 113 ++++++++++++++++++++++++++++++
src/qemu/qemu_capabilities.h | 3 +
5 files changed, 153 insertions(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 231073e472..91cc8a5869 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -13883,6 +13883,14 @@ virDomainSEVSNPDefParseXML(virDomainSEVSNPDef *def,
}
+static void
+virDomainCCADefParseXML(virDomainCCADef *def,
+ xmlXPathContextPtr ctxt)
+{
+ def->measurement_algo = virXPathString("string(./measurement-algo)", ctxt);
+}
+
+
static virDomainSecDef *
virDomainSecDefParseXML(xmlNodePtr lsecNode,
xmlXPathContextPtr ctxt)
@@ -13909,6 +13917,7 @@ virDomainSecDefParseXML(xmlNodePtr lsecNode,
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ virDomainCCADefParseXML(&sec->data.cca, ctxt);
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
diff --git a/src/conf/schemas/domaincaps.rng b/src/conf/schemas/domaincaps.rng
index 3559d2ae05..4826900258 100644
--- a/src/conf/schemas/domaincaps.rng
+++ b/src/conf/schemas/domaincaps.rng
@@ -363,6 +363,9 @@
<optional>
<ref name="sgx"/>
</optional>
+ <optional>
+ <ref name="cca"/>
+ </optional>
<optional>
<ref name="hyperv"/>
</optional>
@@ -481,6 +484,17 @@
</element>
</define>
+ <define name="cca">
+ <element name="cca">
+ <ref name="supported"/>
+ <optional>
+ <element name="measurement-algo">
+ <text/>
+ </element>
+ </optional>
+ </element>
+ </define>
+
<define name="hyperv">
<element name="hyperv">
<ref name="supported"/>
diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng
index 7121519ca3..b340381295 100644
--- a/src/conf/schemas/domaincommon.rng
+++ b/src/conf/schemas/domaincommon.rng
@@ -528,6 +528,9 @@
<value>s390-pv</value>
</attribute>
</group>
+ <group>
+ <ref name="launchSecurityCCA"/>
+ </group>
</choice>
</element>
</define>
@@ -623,6 +626,17 @@
</optional>
</interleave>
</define>
+
+ <define name="launchSecurityCCA">
+ <attribute name="type">
+ <value>cca</value>
+ </attribute>
+ <optional>
+ <element name="measurement-algo">
+ <data type="string"/>
+ </element>
+ </optional>
+ </define>
<!--
Enable or disable perf events for the domain. For each
of the events the following rules apply:
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 4534f18a24..523fe05289 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1962,6 +1962,34 @@ virQEMUCapsSGXInfoCopy(virSGXCapability **dst,
}
+static void
+virQEMUCapsCCAInfoCopy(virCCACapability **dst,
+ virCCACapability *src)
+{
+ g_autoptr(virCCACapability) tmp = NULL;
+ size_t i;
+
+ if (!src) {
+ *dst = NULL;
+ return;
+ }
+
+ tmp = g_new0(virCCACapability, 1);
+
+ tmp->nCcaMeasurementAlgo = src->nCcaMeasurementAlgo;
+
+ if (tmp->nCcaMeasurementAlgo != 0) {
+ tmp->ccaMeasurementAlgo = g_new0(char *, tmp->nCcaMeasurementAlgo);
+
+ for (i = 0; i < tmp->nCcaMeasurementAlgo; i++) {
+ tmp->ccaMeasurementAlgo[i] = g_strdup(src->ccaMeasurementAlgo[i]);
+ }
+ }
+
+ *dst = g_steal_pointer(&tmp);
+}
+
+
static void
virQEMUCapsAccelCopyMachineTypes(virQEMUCapsAccel *dst,
virQEMUCapsAccel *src)
@@ -2037,6 +2065,9 @@ virQEMUCaps *virQEMUCapsNewCopy(virQEMUCaps *qemuCaps)
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SGX_EPC))
virQEMUCapsSGXInfoCopy(&ret->sgxCapabilities, qemuCaps->sgxCapabilities);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCA_GUEST))
+ virQEMUCapsCCAInfoCopy(&ret->ccaCapabilities, qemuCaps->ccaCapabilities);
+
ret->hypervCapabilities = g_memdup(qemuCaps->hypervCapabilities,
sizeof(virDomainCapsFeatureHyperv));
@@ -2678,6 +2709,13 @@ virQEMUCapsGetSGXCapabilities(virQEMUCaps *qemuCaps)
}
+virCCACapability *
+virQEMUCapsGetCCACapabilities(virQEMUCaps *qemuCaps)
+{
+ return qemuCaps->ccaCapabilities;
+}
+
+
static int
virQEMUCapsProbeQMPObjectTypes(virQEMUCaps *qemuCaps,
qemuMonitor *mon)
@@ -4563,6 +4601,38 @@ virQEMUCapsParseSGXInfo(virQEMUCaps *qemuCaps,
}
+static int
+virQEMUCapsParseCCAInfo(virQEMUCaps *qemuCaps,
+ xmlXPathContextPtr ctxt)
+{
+ g_autofree xmlNodePtr *nodes = NULL;
+ size_t i;
+ int n;
+
+ if ((n = virXPathNodeSet("./cca", ctxt, &nodes)) < 0)
+ return -1;
+
+ if (n > 0) {
+ g_autoptr(virCCACapability) tmp = g_new0(virCCACapability, 1);
+ tmp->ccaMeasurementAlgo = g_new0(char *, n);
+
+ for (i = 0; i < n; i++) {
+ char *malgo = NULL;
+ if (!(malgo = virXMLPropString(nodes[i], "measurement-algo"))) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("missing CCA measurement-algo in QEMU capabilities cache"));
+ return -1;
+ }
+
+ tmp->ccaMeasurementAlgo[i] = g_strdup(malgo);
+ }
+ tmp->nCcaMeasurementAlgo = n;
+ qemuCaps->ccaCapabilities = g_steal_pointer(&tmp);
+ }
+ return 0;
+}
+
+
static int
virQEMUCapsParseHypervCapabilities(virQEMUCaps *qemuCaps,
xmlXPathContextPtr ctxt)
@@ -4883,6 +4953,9 @@ virQEMUCapsLoadCache(virArch hostArch,
if (virQEMUCapsParseSGXInfo(qemuCaps, ctxt) < 0)
return -1;
+ if (virQEMUCapsParseCCAInfo(qemuCaps, ctxt) < 0)
+ return -1;
+
if (virQEMUCapsParseHypervCapabilities(qemuCaps, ctxt) < 0)
return -1;
@@ -5123,6 +5196,23 @@ virQEMUCapsFormatSGXInfo(virQEMUCaps *qemuCaps,
}
+static void
+virQEMUCapsFormatCCAInfo(virQEMUCaps *qemuCaps, virBuffer *buf)
+{
+ virCCACapability *cca = virQEMUCapsGetCCACapabilities(qemuCaps);
+ size_t i;
+ size_t n;
+
+ n = cca->nCcaMeasurementAlgo;
+
+ if (n != 0) {
+ for (i = 0; i < n; i++) {
+ virBufferAsprintf(buf, "<cca measurement-algo='%s'/>\n", cca->ccaMeasurementAlgo[i]);
+ }
+ }
+}
+
+
static void
virQEMUCapsFormatHypervCapabilities(virQEMUCaps *qemuCaps,
virBuffer *buf)
@@ -5231,6 +5321,9 @@ virQEMUCapsFormatCache(virQEMUCaps *qemuCaps)
if (qemuCaps->sgxCapabilities)
virQEMUCapsFormatSGXInfo(qemuCaps, &buf);
+ if (qemuCaps->ccaCapabilities)
+ virQEMUCapsFormatCCAInfo(qemuCaps, &buf);
+
if (qemuCaps->hypervCapabilities)
virQEMUCapsFormatHypervCapabilities(qemuCaps, &buf);
@@ -6757,6 +6850,8 @@ virQEMUCapsFillDomainLaunchSecurity(virQEMUCaps *qemuCaps,
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_S390_PV_GUEST) &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT))
VIR_DOMAIN_CAPS_ENUM_SET(launchSecurity->sectype, VIR_DOMAIN_LAUNCH_SECURITY_PV);
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCA_GUEST))
+ VIR_DOMAIN_CAPS_ENUM_SET(launchSecurity->sectype, VIR_DOMAIN_LAUNCH_SECURITY_CCA);
if (launchSecurity->sectype.values == 0) {
launchSecurity->supported = VIR_TRISTATE_BOOL_NO;
@@ -6954,6 +7049,23 @@ virQEMUCapsFillDomainFeatureSGXCaps(virQEMUCaps *qemuCaps,
}
+/**
+ * virQEMUCapsFillDomainFeatureCCACaps:
+ * @qemuCaps: QEMU capabilities
+ * @domCaps: domain capabilities
+ *
+ * Take the information about CCA capabilities that has been obtained
+ * using the 'query-cca-capabilities' QMP command and stored in @qemuCaps
+ * and convert it to a form suitable for @domCaps.
+ */
+static void
+virQEMUCapsFillDomainFeatureCCACaps(virQEMUCaps *qemuCaps,
+ virDomainCaps *domCaps)
+{
+ virQEMUCapsCCAInfoCopy(&domCaps->cca, qemuCaps->ccaCapabilities);
+}
+
+
static void
virQEMUCapsFillDomainFeatureHypervCaps(virQEMUCaps *qemuCaps,
virDomainCaps *domCaps)
@@ -7024,6 +7136,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeaturePS2Caps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureSGXCaps(qemuCaps, domCaps);
+ virQEMUCapsFillDomainFeatureCCACaps(qemuCaps, domCaps);
virQEMUCapsFillDomainFeatureHypervCaps(qemuCaps, domCaps);
virQEMUCapsFillDomainDeviceCryptoCaps(qemuCaps, crypto);
virQEMUCapsFillDomainLaunchSecurity(qemuCaps, launchSecurity);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 21081d5fbc..effee475f6 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -931,6 +931,9 @@ virQEMUCapsGetSEVCapabilities(virQEMUCaps *qemuCaps);
virSGXCapability *
virQEMUCapsGetSGXCapabilities(virQEMUCaps *qemuCaps);
+virCCACapability *
+virQEMUCapsGetCCACapabilities(virQEMUCaps *qemuCaps);
+
bool
virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps) G_NO_INLINE;
--
2.34.1
1
0
[RFC PATCH v2 2/6] src: Add ARM CCA support in domain capabilities command
by Akio Kakuno 28 Feb '25
by Akio Kakuno 28 Feb '25
28 Feb '25
- Add ARM CCA support in domain capabilies XML schema.
[Capability example]
- Execution results of 'virsh domcapability" on qemu
<domaincapabilities>
...
<features>
...
</sgx>
<cca supported='yes'>
<enum name='measurement-algo'>
<value>sha256</value>
<value>sha512</value>
</enum>
</cca>
<hyperv supported='yes'>
...
</features>
</domaincapabilities>
Signed-off-by: Akio Kakuno <fj3333bs(a)fujitsu.com>
---
docs/formatdomaincaps.rst | 27 +++++++++-
src/conf/domain_capabilities.c | 48 +++++++++++++++++
src/conf/domain_capabilities.h | 6 +++
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 28 ++++++++++
src/qemu/qemu_monitor.c | 10 ++++
src/qemu/qemu_monitor.h | 3 ++
src/qemu/qemu_monitor_json.c | 98 ++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor_json.h | 4 ++
9 files changed, 224 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomaincaps.rst b/docs/formatdomaincaps.rst
index ed95af4fee..fbf7db12e6 100644
--- a/docs/formatdomaincaps.rst
+++ b/docs/formatdomaincaps.rst
@@ -734,6 +734,12 @@ capabilities. All features occur as children of the main ``features`` element.
<section node='1' size='262144' unit='KiB'/>
</sections>
</sgx>
+ <cca supported='yes'>
+ <enum name='measurement-algo'>
+ <value>sha256</value>
+ <value>sha512</value>
+ </enum>
+ </cca>
<hyperv supported='yes'>
<enum name='features'>
<value>relaxed</value>
@@ -861,6 +867,24 @@ document store. In order to use SGX with libvirt have a look at `SGX in domain X
``sections``
The sections of the SGX enclave page cache (called EPC).
+CCA capabilities
+^^^^^^^^^^^^^^^^
+
+Arm Confidential Compute Architecture (CCA) capabilities are exposed under the
+``cca`` element.
+
+Arm CCA is a system solution comprised of hardware and software components that
+maximizes the security of data on devices and in the cloud.
+CCA enhances the virtualization capabilities of the platform by separating the
+management of resources from access to those resources.
+
+For more details on the CCA feature, please follow resources in the CCA developer's
+document store. In order to use CCA with libvirt have a look at `CCA in domain
+XML <formatdomain.html#launch-security>`__
+
+``measurement-algo``
+ Options for the ``measurement-algo`` used to describe blob hashes.
+
Hyper-V Enlightenments
^^^^^^^^^^^^^^^^^^^^^^
@@ -882,4 +906,5 @@ The ``sectype`` enum corresponds to ``type`` attribute of ``<launchSecurity/>``
element as documented in `Launch Security
<formatdomain.html#launch-security>`__. :since:`(Since 10.5.0)` For additional
information on individual types, see sections above: `s390-pv capability`_ for
-S390 PV, `SEV capabilities`_ for AMD SEV and/or AMD SEV-SNP.
+S390 PV, `SEV capabilities`_ for AMD SEV and/or AMD SEV-SNP, `CCA capabilities`_
+for Arm CCA.
diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c
index ab715b19d8..cae6730061 100644
--- a/src/conf/domain_capabilities.c
+++ b/src/conf/domain_capabilities.c
@@ -90,6 +90,25 @@ virSGXCapabilitiesFree(virSGXCapability *cap)
}
+void
+virCCACapabilitiesFree(virCCACapability *cap)
+{
+ size_t i;
+
+ if (!cap)
+ return;
+
+ if (cap->nCcaMeasurementAlgo)
+ for (i = 0; i < cap->nCcaMeasurementAlgo; i++)
+ g_free(cap->ccaMeasurementAlgo[i]);
+
+ if (cap->ccaMeasurementAlgo)
+ g_free(cap->ccaMeasurementAlgo);
+
+ g_free(cap);
+}
+
+
static void
virDomainCapsDispose(void *obj)
{
@@ -103,6 +122,7 @@ virDomainCapsDispose(void *obj)
virCPUDefFree(caps->cpu.hostModel);
virSEVCapabilitiesFree(caps->sev);
virSGXCapabilitiesFree(caps->sgx);
+ virCCACapabilitiesFree(caps->cca);
g_free(caps->hyperv);
values = &caps->os.loader.values;
@@ -774,6 +794,33 @@ virDomainCapsFeatureSGXFormat(virBuffer *buf,
virBufferAddLit(buf, "</sgx>\n");
}
+static void
+virDomainCapsFeatureCCAFormat(virBuffer *buf,
+ const virCCACapability *cca)
+{
+ size_t i;
+
+ if (!cca) {
+ virBufferAddLit(buf, "<cca supported='no'/>\n");
+ return;
+ }
+
+ virBufferAddLit(buf, "<cca supported='yes'>\n");
+ virBufferAdjustIndent(buf, 2);
+
+ virBufferAddLit(buf, "<enum name='measurement-algo'>\n");
+ virBufferAdjustIndent(buf, 2);
+ for (i = 0; i < cca->nCcaMeasurementAlgo; i++) {
+ virBufferAsprintf(buf, "<value>%s</value>\n",
+ cca->ccaMeasurementAlgo[i]);
+ }
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</enum>\n");
+
+ virBufferAdjustIndent(buf, -2);
+ virBufferAddLit(buf, "</cca>\n");
+}
+
static void
virDomainCapsFeatureHypervFormat(virBuffer *buf,
const virDomainCapsFeatureHyperv *hyperv)
@@ -821,6 +868,7 @@ virDomainCapsFormatFeatures(const virDomainCaps *caps,
virDomainCapsFeatureSEVFormat(&childBuf, caps->sev);
virDomainCapsFeatureSGXFormat(&childBuf, caps->sgx);
+ virDomainCapsFeatureCCAFormat(&childBuf, caps->cca);
virDomainCapsFeatureHypervFormat(&childBuf, caps->hyperv);
virDomainCapsLaunchSecurityFormat(&childBuf, &caps->launchSecurity);
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 93e2cc2931..b55f860e7b 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -315,6 +315,7 @@ struct _virDomainCaps {
virDomainCapsFeatureGIC gic;
virSEVCapability *sev;
virSGXCapability *sgx;
+ virCCACapability *cca;
virDomainCapsFeatureHyperv *hyperv;
virDomainCapsLaunchSecurity launchSecurity;
/* add new domain features here */
@@ -375,3 +376,8 @@ void
virSGXCapabilitiesFree(virSGXCapability *capabilities);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virSGXCapability, virSGXCapabilitiesFree);
+
+void
+virCCACapabilitiesFree(virCCACapability *capabilities);
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virCCACapability, virCCACapabilitiesFree);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 33b93cbd3e..bf525c50d9 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -208,6 +208,7 @@ virDomainAuditVcpu;
# conf/domain_capabilities.h
+virCCACapabilitiesFree;
virDomainCapsCPUModelsAdd;
virDomainCapsCPUModelsCopy;
virDomainCapsCPUModelsGet;
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b0283c0119..4534f18a24 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3651,6 +3651,32 @@ virQEMUCapsProbeQMPSGXCapabilities(virQEMUCaps *qemuCaps,
}
+static int
+virQEMUCapsProbeQMPCCACapabilities(virQEMUCaps *qemuCaps,
+ qemuMonitor *mon)
+{
+ int rc = -1;
+ virCCACapability *caps = NULL;
+
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CCA_GUEST))
+ return 0;
+
+ if ((rc = qemuMonitorGetCCACapabilities(mon, &caps)) < 0)
+ return -1;
+
+ /* CCA isn't actually supported */
+ if (rc == 0) {
+ virQEMUCapsClear(qemuCaps, QEMU_CAPS_CCA_GUEST);
+ return 0;
+ }
+
+ virCCACapabilitiesFree(qemuCaps->ccaCapabilities);
+ qemuCaps->ccaCapabilities = caps;
+ return 0;
+}
+
+
+
/*
* Filter for features which should never be passed to QEMU. Either because
* QEMU never supported them or they were dropped as they never did anything
@@ -5757,6 +5783,8 @@ virQEMUCapsInitQMPMonitor(virQEMUCaps *qemuCaps,
return -1;
if (virQEMUCapsProbeQMPSGXCapabilities(qemuCaps, mon) < 0)
return -1;
+ if (virQEMUCapsProbeQMPCCACapabilities(qemuCaps, mon) < 0)
+ return -1;
virQEMUCapsInitProcessCaps(qemuCaps);
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index ec2f166785..53908d8bf8 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -3483,6 +3483,16 @@ qemuMonitorGetSGXCapabilities(qemuMonitor *mon,
}
+int
+qemuMonitorGetCCACapabilities(qemuMonitor *mon,
+ virCCACapability **capabilities)
+{
+ QEMU_CHECK_MONITOR(mon);
+
+ return qemuMonitorJSONGetCCACapabilities(mon, capabilities);
+}
+
+
int
qemuMonitorNBDServerStart(qemuMonitor *mon,
const virStorageNetHostDef *server,
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index c74892c4dc..8a37376f97 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -846,6 +846,9 @@ int qemuMonitorGetSEVCapabilities(qemuMonitor *mon,
int qemuMonitorGetSGXCapabilities(qemuMonitor *mon,
virSGXCapability **capabilities);
+int qemuMonitorGetCCACapabilities(qemuMonitor *mon,
+ virCCACapability **capabilities);
+
typedef enum {
QEMU_MONITOR_MIGRATE_RESUME = 1 << 0, /* resume failed post-copy migration */
QEMU_MONITOR_MIGRATION_FLAGS_LAST
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 9f417d27c6..ebe5f87d36 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6213,6 +6213,104 @@ qemuMonitorJSONGetSGXCapabilities(qemuMonitor *mon,
}
+static int
+qemuMonitorJSONGetCCAMeasurementAlgo(qemuMonitor *mon,
+ size_t *numalgo,
+ char ***malgo)
+{
+ g_autoptr(virJSONValue) cmd = NULL;
+ g_autoptr(virJSONValue) reply = NULL;
+ virJSONValue *caps;
+ virJSONValue *malgolist = NULL;
+ g_auto(GStrv) list = NULL;
+ size_t i;
+ size_t n = 0;
+
+ if (!(cmd = qemuMonitorJSONMakeCommand("query-cca-capabilities",
+ NULL)))
+ return -1;
+
+ if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
+ return -1;
+
+ /* If the 'query-cca-capabilities' QMP command was not available
+ * we simply successfully return zero capabilities.
+ * This is the current QEMU (=9.1.91) and all non-ARM architectures */
+ if (qemuMonitorJSONHasError(reply, "CommandNotFound"))
+ return 0;
+
+ if (qemuMonitorJSONCheckError(cmd, reply) < 0)
+ return -1;
+
+ caps = virJSONValueObjectGetObject(reply, "return");
+
+ if (!(caps = qemuMonitorJSONGetReply(cmd, reply, VIR_JSON_TYPE_OBJECT)))
+ return -1;
+
+ if ((malgolist = virJSONValueObjectGetArray(caps, "sections"))) {
+ n = virJSONValueArraySize(malgolist);
+
+ /* If the received array is empty, an error is returned. */
+ if (n == 0)
+ return -1;
+
+ list = g_new0(char *, n + 1);
+
+ for (i = 0; i < n; i++) {
+ virJSONValue *cap = virJSONValueArrayGet(malgolist, i);
+ const char *measurement_algo = NULL;
+
+ if (!cap || virJSONValueGetType(cap) != VIR_JSON_TYPE_OBJECT) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("missing entry in CCA capabilities list"));
+ return -1;
+ }
+
+ if (!(measurement_algo = virJSONValueObjectGetString(cap, "measurement-algo"))) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("query-cca-capabilities reply was missing 'measurement-algo' field"));
+ return -1;
+ }
+
+ list[i] = g_strdup(measurement_algo);
+ }
+ }
+
+ *numalgo = n;
+ *malgo = g_steal_pointer(&list);
+ return 1;
+}
+
+
+/**
+ * qemuMonitorJSONGetCCACapabilities:
+ * @mon: qemu monitor object
+ * @capabilities: pointer to pointer to a CCA capability structure to be filled
+ *
+ * Returns -1 on error, 0 if CCA is not supported, and 1 if CCA is supported on
+ * the platform.
+ */
+int
+qemuMonitorJSONGetCCACapabilities(qemuMonitor *mon,
+ virCCACapability **capabilities)
+{
+ g_autoptr(virCCACapability) capability = NULL;
+ int ret = 0;
+
+ *capabilities = NULL;
+ capability = g_new0(virCCACapability, 1);
+
+ ret = qemuMonitorJSONGetCCAMeasurementAlgo(mon,
+ &capability->nCcaMeasurementAlgo,
+ &capability->ccaMeasurementAlgo);
+
+ if (ret > 0)
+ *capabilities = g_steal_pointer(&capability);
+
+ return ret;
+}
+
+
static virJSONValue *
qemuMonitorJSONBuildInetSocketAddress(const char *host,
const char *port)
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 2f5a021f56..d422e84e88 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -168,6 +168,10 @@ int
qemuMonitorJSONGetSEVCapabilities(qemuMonitor *mon,
virSEVCapability **capabilities);
+int
+qemuMonitorJSONGetCCACapabilities(qemuMonitor *mon,
+ virCCACapability **capabilities);
+
int
qemuMonitorJSONMigrate(qemuMonitor *mon,
unsigned int flags,
--
2.34.1
1
0
28 Feb '25
- Add ARM CCA support to the qemu driver for aarch64 systems.
[XML example]
<domain>
...
<launchsecurity type='cca'>
<measurement-algo>sha256</measurement-algo>
</launchsecurity>
...
</domain>
Signed-off-by: Akio Kakuno <fj3333bs(a)fujitsu.com>
---
docs/formatdomain.rst | 28 ++++++++++++++++++++++++++++
src/conf/domain_capabilities.h | 6 ++++++
src/conf/domain_conf.c | 7 +++++++
src/conf/domain_conf.h | 7 +++++++
src/conf/domain_validate.c | 1 +
src/conf/virconftypes.h | 2 ++
src/qemu/qemu_capabilities.c | 4 ++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_cgroup.c | 2 ++
src/qemu/qemu_command.c | 32 ++++++++++++++++++++++++++++++++
src/qemu/qemu_driver.c | 2 ++
src/qemu/qemu_firmware.c | 1 +
src/qemu/qemu_namespace.c | 2 ++
src/qemu/qemu_process.c | 4 ++++
src/qemu/qemu_validate.c | 4 ++++
src/security/security_dac.c | 2 ++
16 files changed, 105 insertions(+)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index 620daae9af..917e7e2cf5 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -9185,6 +9185,34 @@ The ``<launchSecurity/>`` element then accepts the following child elements:
the SNP_LAUNCH_FINISH command in the SEV-SNP firmware ABI.
+The contents of the ``<launchSecurity type='cca'>`` element is used to create
+RealmVM using the Arm CCA feature (Confidential Compute Architecture).
+CCA :since:`Since 11.0.0` enhances the virtualization capabilities of the
+platform by separating the management of resources from access to those resources.
+This is achieved by extending the TrustZone of Cortex-A's Normal and Secure
+world concepts and adding the Realm world and the underlying Root world.
+The Secure Monitor runs in the root world and manages the transition between
+these security states. For more information see the Learn the architecture -
+Arm Confidential Compute Architecture software stack:
+`<https://developer.arm.com/documentation/den0127/latest>`__
+
+::
+
+ <domain>
+ ...
+ <launchSecurity type='cca'>
+ <measurement-algo>sha256</measurement-algo>
+ </launchSecurity>
+ ...
+ </domain>
+
+The ``<launchSecurity/>`` element accepts the following attributes:
+
+``measurement-algo``
+ The optional ``measurement-algo`` element determines algorithm used to
+ describe blob hashes.
+
+
Example configs
===============
diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 69dd1a15c1..93e2cc2931 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -240,6 +240,12 @@ struct _virSGXCapability {
virSGXSection *sgxSections;
};
+typedef struct _virCCACapability virCCACapability;
+struct _virCCACapability {
+ size_t nCcaMeasurementAlgo;
+ char **ccaMeasurementAlgo;
+};
+
STATIC_ASSERT_ENUM(VIR_DOMAIN_CRYPTO_MODEL_LAST);
STATIC_ASSERT_ENUM(VIR_DOMAIN_CRYPTO_TYPE_LAST);
STATIC_ASSERT_ENUM(VIR_DOMAIN_CRYPTO_BACKEND_LAST);
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3f88a77a8f..231073e472 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1529,6 +1529,7 @@ VIR_ENUM_IMPL(virDomainLaunchSecurity,
"sev",
"sev-snp",
"s390-pv",
+ "cca",
);
VIR_ENUM_IMPL(virDomainPstoreBackend,
@@ -3881,6 +3882,9 @@ virDomainSecDefFree(virDomainSecDef *def)
g_free(def->data.sev_snp.id_auth);
g_free(def->data.sev_snp.host_data);
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ g_free(def->data.cca.measurement_algo);
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
@@ -13904,6 +13908,8 @@ virDomainSecDefParseXML(xmlNodePtr lsecNode,
break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
default:
@@ -27181,6 +27187,7 @@ virDomainSecDefFormat(virBuffer *buf, virDomainSecDef *sec)
break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 9f7c28343f..f088227e4d 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2895,6 +2895,7 @@ typedef enum {
VIR_DOMAIN_LAUNCH_SECURITY_SEV,
VIR_DOMAIN_LAUNCH_SECURITY_SEV_SNP,
VIR_DOMAIN_LAUNCH_SECURITY_PV,
+ VIR_DOMAIN_LAUNCH_SECURITY_CCA,
VIR_DOMAIN_LAUNCH_SECURITY_LAST,
} virDomainLaunchSecurity;
@@ -2929,11 +2930,17 @@ struct _virDomainSEVSNPDef {
};
+struct _virDomainCCADef {
+ char *measurement_algo;
+};
+
+
struct _virDomainSecDef {
virDomainLaunchSecurity sectype;
union {
virDomainSEVDef sev;
virDomainSEVSNPDef sev_snp;
+ virDomainCCADef cca;
} data;
};
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 6aed74dd8d..b8fcbbd367 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -1860,6 +1860,7 @@ virDomainDefLaunchSecurityValidate(const virDomainDef *def)
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_SEV:
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
break;
}
diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h
index 59be61cea4..6e23d09983 100644
--- a/src/conf/virconftypes.h
+++ b/src/conf/virconftypes.h
@@ -216,6 +216,8 @@ typedef struct _virDomainSEVDef virDomainSEVDef;
typedef struct _virDomainSEVSNPDef virDomainSEVSNPDef;
+typedef struct _virDomainCCADef virDomainCCADef;
+
typedef struct _virDomainSecDef virDomainSecDef;
typedef struct _virDomainShmemDef virDomainShmemDef;
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 53aa64a009..b0283c0119 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -725,6 +725,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
/* 470 */
"migrate-incoming.exit-on-error", /* QEMU_CAPS_MIGRATE_INCOMING_EXIT_ON_ERROR */
+ "rme-guest", /* QEMU_CAPS_CCA_GUEST */
);
@@ -810,6 +811,8 @@ struct _virQEMUCaps {
virSGXCapability *sgxCapabilities;
+ virCCACapability *ccaCapabilities;
+
virDomainCapsFeatureHyperv *hypervCapabilities;
/* Capabilities which may differ depending on the accelerator. */
@@ -1413,6 +1416,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "virtio-sound-device", QEMU_CAPS_DEVICE_VIRTIO_SOUND },
{ "sev-snp-guest", QEMU_CAPS_SEV_SNP_GUEST },
{ "acpi-erst", QEMU_CAPS_DEVICE_ACPI_ERST },
+ { "rme-guest", QEMU_CAPS_CCA_GUEST },
};
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 398749a136..21081d5fbc 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -704,6 +704,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
/* 470 */
QEMU_CAPS_MIGRATE_INCOMING_EXIT_ON_ERROR, /* exit-on-error argument of migrate-incoming command */
+ QEMU_CAPS_CCA_GUEST, /* -object rme-guest */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index f3c85d65e8..3825a68930 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -864,6 +864,8 @@ qemuSetupDevicesCgroup(virDomainObj *vm)
if (qemuSetupSEVCgroup(vm) < 0)
return -1;
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1f28de6194..e2dd99fca8 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6924,6 +6924,9 @@ qemuBuildMachineCommandLine(virCommand *cmd,
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
virBufferAddLit(&buf, ",confidential-guest-support=lsec0");
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ virBufferAddLit(&buf, ",confidential-guest-support=rme0");
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
virReportEnumRangeError(virDomainLaunchSecurity, def->sec->sectype);
@@ -9679,6 +9682,32 @@ qemuBuildPVCommandLine(virDomainObj *vm, virCommand *cmd)
}
+static int
+qemuBuildCCACommandLine(virDomainObj *vm, virCommand *cmd,
+ virDomainCCADef *cca)
+{
+ g_autoptr(virJSONValue) props = NULL;
+ qemuDomainObjPrivate *priv = vm->privateData;
+
+ VIR_DEBUG("measurement_algorithm=%s", cca->measurement_algo);
+
+ if (cca->measurement_algo) {
+ if (qemuMonitorCreateObjectProps(&props, "rme-guest", "rme0",
+ "S:measurement-algorithm", cca->measurement_algo,
+ NULL) < 0)
+ return -1;
+ } else {
+ if (qemuMonitorCreateObjectProps(&props, "rme-guest", "rme0", NULL) < 0)
+ return -1;
+ }
+
+ if (qemuBuildObjectCommandlineFromJSON(cmd, props, priv->qemuCaps) < 0)
+ return -1;
+
+ return 0;
+}
+
+
static int
qemuBuildSecCommandLine(virDomainObj *vm, virCommand *cmd,
virDomainSecDef *sec)
@@ -9696,6 +9725,9 @@ qemuBuildSecCommandLine(virDomainObj *vm, virCommand *cmd,
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
return qemuBuildPVCommandLine(vm, cmd);
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ return qemuBuildCCACommandLine(vm, cmd, &sec->data.cca);
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
virReportEnumRangeError(virDomainLaunchSecurity, sec->sectype);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d2eddbd9ae..1c779ff619 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19155,6 +19155,8 @@ qemuDomainGetLaunchSecurityInfo(virDomainPtr domain,
if (qemuDomainGetSEVInfo(vm, params, nparams, flags) < 0)
goto cleanup;
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c
index 2d0ec0b4fa..c670ad11b0 100644
--- a/src/qemu/qemu_firmware.c
+++ b/src/qemu/qemu_firmware.c
@@ -1371,6 +1371,7 @@ qemuFirmwareMatchDomain(const virDomainDef *def,
}
break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c
index 59421ec9d1..61c575e96a 100644
--- a/src/qemu/qemu_namespace.c
+++ b/src/qemu/qemu_namespace.c
@@ -664,6 +664,8 @@ qemuDomainSetupLaunchSecurity(virDomainObj *vm,
VIR_DEBUG("Set up launch security for SEV");
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 6db48b0e7b..c82e359e25 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -6845,6 +6845,8 @@ qemuProcessPrepareDomain(virQEMUDriver *driver,
if (qemuProcessUpdateSEVInfo(vm) < 0)
return -1;
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
@@ -6917,6 +6919,8 @@ qemuProcessPrepareLaunchSecurityGuestInput(virDomainObj *vm)
return qemuProcessPrepareSEVGuestInput(vm);
case VIR_DOMAIN_LAUNCH_SECURITY_SEV_SNP:
break;
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ return 0;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
return 0;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 086c66b602..26d0f9dada 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1368,6 +1368,10 @@ qemuValidateDomainDef(const virDomainDef *def,
return -1;
}
break;
+
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
+ break;
+
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
virReportEnumRangeError(virDomainLaunchSecurity, def->sec->sectype);
diff --git a/src/security/security_dac.c b/src/security/security_dac.c
index 0505f4e4a3..6364d3fffc 100644
--- a/src/security/security_dac.c
+++ b/src/security/security_dac.c
@@ -2017,6 +2017,7 @@ virSecurityDACRestoreAllLabel(virSecurityManager *mgr,
rc = -1;
break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
@@ -2258,6 +2259,7 @@ virSecurityDACSetAllLabel(virSecurityManager *mgr,
return -1;
break;
case VIR_DOMAIN_LAUNCH_SECURITY_PV:
+ case VIR_DOMAIN_LAUNCH_SECURITY_CCA:
break;
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
--
2.34.1
1
0
[RFC PATCH v2 0/6] RFC: Add Arm CCA support for getting capability information and running Realm VM
by Akio Kakuno 28 Feb '25
by Akio Kakuno 28 Feb '25
28 Feb '25
Hi, all.
This patch adds Arm CCA support to qemu driver for aarch64 system.
CCA is an abbreviation for Arm Confidential Compute Architecture
feature, it enhances the virtualization capabilities of
the platform by separating the management of resources from access
to those resources.
We are not yet at the stage where we can merge this patch as host
linux/qemu suppor is no yet merged, but I would like to receive
reviews and comments on the overall direction.
[summary]
At this stage, all you can do is getting the CCA capability with
the virsh domcapabilities command and start the CCA VM with
the virsh create command.
capability info uses qemu QMP to query qemu options. The option
that exists now is for selecting a hash algorithm.
qemu QMP sections currently only contains a single member, but
is wrapped in sections for expansion.
[Capability example]
Execution results of 'virsh domcapability" on qemu
<domaincapabilities>
...
<features>
...
</sgx>
<cca supported='yes'>
<enum name='measurement-algo'>
<value>sha256</value>
<value>sha512</value>
</enum>
</cca>
<hyperv supported='yes'>
...
</features>
</domaincapabilities>
[XML example]
<domain>
...
<launchsecurity type='cca'>
<measurement-algo>sha256</measurement-algo>
</launchsecurity>
...
</domain>
[limitations/tests]
To obtain capability info, it is necessary to support the qemu QMP
command, which qemu does not yet support. We added a QMP
command to retrieve CCA info for test (See "[software version]"
below). Also, I think we should check whether CPUFW supports
CCA or not in qemu_firmware.c, but it is not yet implemented.
We have confirmed that the added tests (qemucapabilitiestest,
domaincapstest and qemuxmlconftest) and the CCA VM startup test
(starting the CCA VM from the virsh create command) passed.
The "personalization-value" and "measurement-log" parameters that
exist in the current LinaroQEMU cca/v3 branch will not be specified
as CCA VM startup parameters with the virsh create command.
[software version]
I followed the steps in Linaro's blog below.
https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29051027459/Building+an…
The Qemu used was enhanced with CCA QMP command and found at:
https://github.com/Kazuhiro-Abe-fj/linaro_qemu/tree/cca-qmp
which is based on Linaro QEMU (cca/v3)
https://git.codelinaro.org/linaro/dcap/qemu/-/tree/cca/v3?ref_type=heads
Changes in v2:
Split the patch into different features.
Fixed two string memory leaks.
String storage has been changed from pointer movement to memory
copying, preventing double freeing.
Added a test case to qemuconftest.
Fixed an issue where communication with QMP did not work properly.
Fixed an issue where <cca support="yes"> was output to the cache
file when using virsh with a qemu binary that does not support QMP.
RFC v1:
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/V4S5…
Signed-off-by: Akio Kakuno fj3333bs(a)fujitsu.com
Akio Kakuno (6):
src: Add ARM CCA support in qemu driver to launch VM
src: Add ARM CCA support in domain capabilities command
src: Add ARM CCA support in domain schema
qemucapabilitiestest: Adds Arm CCA support
domaincapstest: Adds Arm CCA support
qemuxmlconftest: Adds Arm CCA support
docs/formatdomain.rst | 28 +
docs/formatdomaincaps.rst | 27 +-
src/conf/domain_capabilities.c | 48 +
src/conf/domain_capabilities.h | 12 +
src/conf/domain_conf.c | 16 +
src/conf/domain_conf.h | 7 +
src/conf/domain_validate.c | 1 +
src/conf/schemas/domaincaps.rng | 14 +
src/conf/schemas/domaincommon.rng | 14 +
src/conf/virconftypes.h | 2 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_capabilities.c | 145 +
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_cgroup.c | 2 +
src/qemu/qemu_command.c | 32 +
src/qemu/qemu_driver.c | 2 +
src/qemu/qemu_firmware.c | 1 +
src/qemu/qemu_monitor.c | 10 +
src/qemu/qemu_monitor.h | 3 +
src/qemu/qemu_monitor_json.c | 98 +
src/qemu/qemu_monitor_json.h | 4 +
src/qemu/qemu_namespace.c | 2 +
src/qemu/qemu_process.c | 4 +
src/qemu/qemu_validate.c | 4 +
src/security/security_dac.c | 2 +
.../qemu_9.1.0-virt.aarch64.xml | 243 +
tests/domaincapsdata/qemu_9.1.0.aarch64.xml | 243 +
.../caps_9.1.0_aarch64.replies | 36222 ++++++++++++++++
.../caps_9.1.0_aarch64.xml | 540 +
.../launch-security-cca.aarch64-latest.args | 30 +
.../launch-security-cca.aarch64-latest.xml | 24 +
tests/qemuxmlconfdata/launch-security-cca.xml | 16 +
tests/qemuxmlconftest.c | 2 +
33 files changed, 37802 insertions(+), 1 deletion(-)
create mode 100644 tests/domaincapsdata/qemu_9.1.0-virt.aarch64.xml
create mode 100644 tests/domaincapsdata/qemu_9.1.0.aarch64.xml
create mode 100644 tests/qemucapabilitiesdata/caps_9.1.0_aarch64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_9.1.0_aarch64.xml
create mode 100644 tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/launch-security-cca.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/launch-security-cca.xml
--
2.34.1
1
0
Re: [PATCH 2/2] tests: Add capabilities for QEMU 10.0 (unreleased) on
aarch64
by Matt Ochs 28 Feb '25
by Matt Ochs 28 Feb '25
28 Feb '25
Thanks for updating this Andrea!
Tested-by: Matthew R. Ochs <mochs(a)nvidia.com>
1
0
27 Feb '25
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
NEWS.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index ee4eac183e..cf16d894f6 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -85,6 +85,13 @@ v11.1.0 (unreleased)
adds corresponding devices into a per-domain profile so that AppArmor does
not deny QEMU access to them.
+ * qemu: Fix crash when starting a domain on a host with unknown host CPU
+
+ On hosts where we cannot detect a host CPU model (mostly aarch64 hosts)
+ starting a domain with a custom CPU model caused a crash of virtqemud.
+
+ The bug was introduced in libvirt-10.9.0
+
v11.0.0 (2025-01-15)
====================
--
2.48.1
2
2
27 Feb '25
Andrea Bolognani (2):
tests: Use collie instead of borzoi for aarch64 tests
tests: Add capabilities for QEMU 10.0 (unreleased) on aarch64
.../qemu_10.0.0-virt.aarch64.xml | 238 +
tests/domaincapsdata/qemu_10.0.0.aarch64.xml | 238 +
.../caps_10.0.0_aarch64.replies | 37374 ++++++++++++++++
.../caps_10.0.0_aarch64.xml | 552 +
...arch64-cpu-passthrough.aarch64-latest.args | 5 +-
.../aarch64-kvm-32-on-64.aarch64-latest.args | 5 +-
.../aarch64-noacpi-acpi.aarch64-latest.err | 2 +-
tests/qemuxmlconfdata/aarch64-noacpi-acpi.xml | 2 +-
...usb-minimal.aarch64-latest.abi-update.args | 3 +-
...ousb-minimal.aarch64-latest.abi-update.xml | 2 +-
.../aarch64-nousb-minimal.aarch64-latest.args | 3 +-
.../aarch64-nousb-minimal.aarch64-latest.xml | 2 +-
.../qemuxmlconfdata/aarch64-nousb-minimal.xml | 2 +-
.../aarch64-virt-graphics.aarch64-latest.args | 5 +-
...h64-virt-headless-mmio.aarch64-latest.args | 5 +-
.../aarch64-virt-headless.aarch64-latest.args | 5 +-
.../aarch64-virt-virtio.aarch64-latest.args | 5 +-
...o-pci-manual-addresses.aarch64-latest.args | 5 +-
.../arm-vexpressa9-basic.aarch64-latest.args | 1 -
.../arm-vexpressa9-basic.aarch64-latest.xml | 3 -
.../arm-vexpressa9-nodevs.aarch64-latest.args | 1 -
.../arm-vexpressa9-nodevs.aarch64-latest.xml | 3 -
.../arm-vexpressa9-virtio.aarch64-latest.args | 6 +-
.../arm-vexpressa9-virtio.aarch64-latest.xml | 3 -
.../disk-arm-virtio-sd.aarch64-latest.args | 1 -
.../disk-arm-virtio-sd.aarch64-latest.xml | 3 -
...mware-auto-efi-aarch64.aarch64-latest.args | 5 +-
...-loader-raw.aarch64-latest.abi-update.args | 5 +-
...-efi-format-loader-raw.aarch64-latest.args | 5 +-
...i-aarch64-legacy-paths.aarch64-latest.args | 5 +-
...anual-efi-acpi-aarch64.aarch64-latest.args | 5 +-
...ual-efi-noacpi-aarch64.aarch64-latest.args | 5 +-
.../pvpanic-pci-aarch64.aarch64-latest.args | 5 +-
...pci-no-address-aarch64.aarch64-latest.args | 5 +-
...default-fallback-nousb.aarch64-latest.args | 3 +-
...-default-fallback-nousb.aarch64-latest.xml | 2 +-
...ntroller-default-nousb.aarch64-latest.args | 3 +-
...ontroller-default-nousb.aarch64-latest.xml | 2 +-
.../usb-controller-default-nousb.xml | 2 +-
...ault-unavailable-nousb.aarch64-latest.args | 3 +-
...fault-unavailable-nousb.aarch64-latest.xml | 2 +-
.../virtio-iommu-aarch64.aarch64-latest.args | 5 +-
tests/qemuxmlconftest.c | 2 +-
43 files changed, 38456 insertions(+), 82 deletions(-)
create mode 100644 tests/domaincapsdata/qemu_10.0.0-virt.aarch64.xml
create mode 100644 tests/domaincapsdata/qemu_10.0.0.aarch64.xml
create mode 100644 tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_10.0.0_aarch64.xml
--
2.48.1
1
3
[PATCH] NEWS: Document features/improvements/bug fixes I've participated in
by Michal Privoznik 27 Feb '25
by Michal Privoznik 27 Feb '25
27 Feb '25
There are some features/improvements/bug fixes I've either
contributed or reviewed/merged. Document them for upcoming
release.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
NEWS.rst | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 7984f358f3..ee4eac183e 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -72,6 +72,19 @@ v11.1.0 (unreleased)
* **Bug fixes**
+ * tools: ssh-proxy: Check if domain is running before connecting to it
+
+ If domain is not running but has a static CID configured for its VSOCK then
+ the ssh-proxy parsed it anyways. This may have resulted in mistakenly
+ connecting to a different domain. Domain status is checked before parsing
+ its CID.
+
+ * apparmor: Allow SGX if configured
+
+ If domain has ``<memory model='sgx-epc'\>`` configured then libvirt now
+ adds corresponding devices into a per-domain profile so that AppArmor does
+ not deny QEMU access to them.
+
v11.0.0 (2025-01-15)
====================
--
2.45.3
2
1
[libvirt PATCH] qemu: snapshot: error out early when reverting snapshot for VM with non-file disk
by Pavel Hrdina 27 Feb '25
by Pavel Hrdina 27 Feb '25
27 Feb '25
Before this patch the code would start the revert process by destroying
the VM and preparing to revert where it would fail with following error:
error: unsupported configuration: source for disk 'sdb' is not a regular file; refusing to generate external snapshot name
and leaving user with offline VM even if it was running.
Make the check before we start the revert process to not destroy VMs.
Resolves: https://issues.redhat.com/browse/RHEL-30971
Resolves: https://issues.redhat.com/browse/RHEL-79928
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/qemu/qemu_snapshot.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c
index f7d6272907..c5f70f5b10 100644
--- a/src/qemu/qemu_snapshot.c
+++ b/src/qemu/qemu_snapshot.c
@@ -2205,6 +2205,8 @@ qemuSnapshotRevertValidate(virDomainObj *vm,
virDomainSnapshotDef *snapdef,
unsigned int flags)
{
+ size_t i;
+
if (!vm->persistent &&
snapdef->state != VIR_DOMAIN_SNAPSHOT_RUNNING &&
snapdef->state != VIR_DOMAIN_SNAPSHOT_PAUSED &&
@@ -2232,6 +2234,17 @@ qemuSnapshotRevertValidate(virDomainObj *vm,
}
}
+ for (i = 0; i < snap->def->dom->ndisks; i++) {
+ virDomainDiskDef *disk = snap->def->dom->disks[i];
+
+ if (disk->src->type != VIR_STORAGE_TYPE_FILE) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("source disk for '%1$s' is not a regural file, reverting to snapshot is not supported"),
+ disk->dst);
+ return -1;
+ }
+ }
+
return 0;
}
--
2.48.1
2
3
I have just tagged v11.1.0-rc1 in the repository and pushed signed
tarballs to https://download.libvirt.org/
Please give the release candidate some testing and in case you find a
serious issue which should have a fix in the upcoming release, feel
free to reply to this thread to make sure the issue is more visible.
If you have not done so yet, please update NEWS.rst to document any
significant change you made since the last release.
Thanks,
Jirka
1
1
Hi,
Since Fedora 41, RAPL feature in QEMU is available.
The tested version with this patch is: qemu-9.1.2-2.fc41.
Incorporating this feature into libvirt would significantly streamline
the process of testing, adopting, and further developing it, thereby
enhancing overall productivity and user experience.
Thank you for your consideration.
Anthony
Anthony Harivel (1):
qemu: Add support for RAPL MSRs feature
docs/formatdomain.rst | 2 ++
src/conf/domain_conf.c | 18 ++++++++++++++++++
src/conf/domain_conf.h | 2 ++
src/conf/schemas/domaincommon.rng | 10 ++++++++++
src/qemu/qemu_command.c | 12 ++++++++++++
tests/qemuxmlconfdata/kvm-features-off.xml | 1 +
.../kvm-features.x86_64-latest.args | 2 +-
tests/qemuxmlconfdata/kvm-features.xml | 1 +
8 files changed, 47 insertions(+), 1 deletion(-)
--
2.48.1
2
5
A few days ago I have posted a patch[1] that addresses an issue
introduced when a meson check was dropped but some uses of the
corresponding WITH_ macro were not removed at the same time.
That got me thinking about what we can do to prevent such scenarios
from happening again in the future. I have come up with something
that I think would be effective, but since applying the approach
throughout the entire codebase would require a non-trivial amount of
work, I figured I'd ask for feedback before embarking on it.
The idea is that there are two types of macros we can use for
conditional compilation: external ones, coming from the OS or other
libraries, and internal ones, which are the result of meson tests.
The external ones (e.g. SIOCSIFFLAGS, __APPLE__) are usually only
defined if they apply, so it is correct to check for their presence
with #ifdef. Using #if will also work, as undefined macros evaluate
to zero, but it's not good practice to use them that way. If -Wundef
has been passed to the compiler, those incorrect uses will be
reported (only on platforms where they are not defined, of course).
The internal ones (e.g. WITH_QEMU, WITH_STRUCT_IFREQ) are similar,
but in this case we control their definition. This means that using
means that the feature is not available on the machine we're building
on, but it could also mean that we've removed the meson check and
forgot to update all users of the macro. In this case, -Wundef would
work 100% reliably to detect the issue: if the meson check doesn't
exist, neither will the macro, regardless of what platform we're
building on.
So the approach I'm suggesting is to use a syntax-check rule to
ensure that internal macros are only ever checked with #if instead of
Of course this requires a full sweep to fix all cases in which we're
not already doing things according to the proposal. Should be fairly
easy, if annoying. A couple of examples are included here for
demonstration purposes.
The bigger impact is going to be on the build system. Right now we
generally only define WITH_ macros if the check passed, but that will
have to change and the result is going to be quite a bit of
additional meson code I'm afraid.
Thoughts?
[1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/SKJ…
Andrea Bolognani (4):
configmake: Check for WIN32 correctly
meson: Always define WITH_*_DECL macros
syntax-check: Ensure WITH_ macros are used correctly
meson: Enable -Wundef
build-aux/syntax-check.mk | 5 +++++
configmake.h.in | 2 +-
meson.build | 3 +++
tests/virmockstathelpers.c | 28 ++++++++++++++--------------
4 files changed, 23 insertions(+), 15 deletions(-)
--
2.43.2
4
8
[PATCH 00/10] qemu: Refactor typed parameter handling in qemuDomainGetGuestInfo
by Peter Krempa 26 Feb '25
by Peter Krempa 26 Feb '25
26 Feb '25
Use virTypedParam list to construct the returned data.
Note that this applies on top of two patch(sets) that were ACK'd
upstream:
[PATCH v2 0/4] Add support for getting load averages from guest agent
[PATCH] qemu: Report disk bus as reported by agent in virDomainGetGuestInfo
You can fetch the whole thing via:
git fetch https://gitlab.com/pipo.sk/libvirt.git agent-data-refactor
Peter Krempa (10):
qemuDomainGetGuestInfo: Prepare for refactor to virTypedParamList
qemuDomainGetGuestInfo: Convert load code to virTypedParamList
virDomainInterfaceFormatParams: Convert interface code to
virTypedParamList
qemuAgentDiskInfoFormatParams: Convert interface code to
virTypedParamList
qemuAgentFSInfoFormatParams: Convert interface code to
virTypedParamList
qemuAgentGetTimezone: Convert to virTypedParamList
qemuAgentGetOSInfo: Convert to virTypedParamList
qemuAgentGetUsers: Convert to virTypedParamList
qemuDomainGetGuestInfo: Convert hostname code to virTypedParamList
qemuDomainGetGuestInfo: Remove temporary infrastructure
src/qemu/qemu_agent.c | 52 ++-------
src/qemu/qemu_agent.h | 12 +-
src/qemu/qemu_driver.c | 249 ++++++++++++-----------------------------
tests/qemuagenttest.c | 148 +++++++++++-------------
4 files changed, 152 insertions(+), 309 deletions(-)
--
2.48.1
2
11
[PATCH 00/17] conf/qemu/etc: change several functions to return void instead of 0/-1
by Laine Stump 26 Feb '25
by Laine Stump 26 Feb '25
26 Feb '25
This started with me noticing one function call that checked for
failure on something that I knew couldn't fail. So I changed that
function to return void. But then I noticed another similar function
that also should return void, so I changed that one too. Then
eliminating the check for the return from those functions caused
another function to become infallible, so I changed that one too,
which led to more and more until the evening was finished and I had
this long list of tiny mechanical patches. And here it is - an easy
way to improve your review stats :-)
P.S. I know there are more of these, but forced myself to stop here.
A related question - is it possible for virObjectNew() to fail? I did
finally find (after some searching, documentation that says
g_object_new() can't return null, but I don't know enough about
g_object stuff to know if the vir*Initialize functions could fail (for
example). If virObjectNew() can't fail then that open a whole new can
of worms...
Laine Stump (17):
conf: change virDomainHostdevInsert() to return void
conf: change virDomainNetInsert() to return void
conf: change virDomainFSInsert() to return void
conf: change virDomainShmemDefInsert() to return void
conf: change virDomainDefMaybeAddInput() to return void
libxl: change xenDomainDefAddImplicitInputDevice() to return void
conf: change qemuDomainDefAddImplicitInputDevice() to return void
conf: stop checking for NULL return from virDomainControllerDefNew()
conf: stop checking for NULL return from virDomainDefAddController()
conf: change virDomainDefAddUSBController() to return void
hyperv: change hypervDomainDefAppendController() to return void
conf: change virDomainDefMaybeAddController() to return true/false
conf: change virDomainDefMaybeAddHostdevSCSIcontroller() to return
void
conf: change virDomainDefAddDiskControllersForType() to return void
conf: change virDomainDefMaybeAddVirtioSerialController() to return
void
conf: change virDomainDefMaybeAddSmartcardController() to return void
conf: change virDomainDefAddImplicitControllers() to return void
src/bhyve/bhyve_domain.c | 13 ++-
src/conf/domain_addr.c | 6 +-
src/conf/domain_conf.c | 174 ++++++++++-----------------------
src/conf/domain_conf.h | 16 +--
src/hyperv/hyperv_driver.c | 28 ++----
src/libxl/libxl_conf.c | 4 +-
src/libxl/libxl_domain.c | 11 +--
src/libxl/libxl_driver.c | 11 +--
src/libxl/xen_common.c | 15 +--
src/libxl/xen_common.h | 2 +-
src/libxl/xen_xl.c | 4 +-
src/lxc/lxc_driver.c | 6 +-
src/qemu/qemu_domain_address.c | 8 +-
src/qemu/qemu_driver.c | 14 +--
src/qemu/qemu_postparse.c | 58 ++++-------
src/qemu/qemu_process.c | 3 +-
src/vbox/vbox_common.c | 13 +--
src/vmx/vmx.c | 12 +--
src/vz/vz_driver.c | 11 +--
src/vz/vz_sdk.c | 14 +--
20 files changed, 126 insertions(+), 297 deletions(-)
--
2.47.1
3
35
Jiri Denemark (2):
cpu_arm: Report vendor ID for unknown PVRs
cpu_map: arm: Add AmpereOne CPU models
src/cpu/cpu_arm.c | 6 ++++--
src/cpu_map/arm_Ampere-1.xml | 6 ++++++
src/cpu_map/arm_Ampere-1a.xml | 6 ++++++
src/cpu_map/arm_vendors.xml | 1 +
src/cpu_map/index.xml | 5 +++++
5 files changed, 22 insertions(+), 2 deletions(-)
create mode 100644 src/cpu_map/arm_Ampere-1.xml
create mode 100644 src/cpu_map/arm_Ampere-1a.xml
--
2.48.1
2
3
On some systems /run is mounted as:
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=348508k,mode=755,inode64)
and /var/run is then just a symlink:
# ls -ld /var/run
lrwxrwxrwx 1 root root 4 Apr 23 2024 /var/run -> /run
But because we still think it's 2004 and FHS 2.3 is active we
have a rule in our meson.build which constructs RUNSTATEDIR as
the following:
runstatedir = get_option('runstatedir')
if runstatedir == ''
runstatedir = localstatedir / 'run'
endif
which (if unspecified on meson setup line) results in "/var/run".
This in turn means, when when we're generating an AppArmor
profile for a domain with allowed paths it contains stuff like:
/var/run/libvirt/qemu/swtpm/2-guest-swtpm.sock
But because of the aforementioned symlink the real path is:
/run/libvirt/qemu/swtpm/2-guest-swtpm.sock
and thus AppArmor denies access:
audit: type=1400 audit(1740480419.348:415): apparmor="DENIED" operation="connect" class="file" profile="libvirt-126f2720-6f8e-45ab-a886-ec9277079a67" name="/run/libvirt/qemu/swtpm/2-guest-swtpm.sock" pid=8080 comm="qemu-system-x86" requested_mask="wr" denied_mask="wr" fsuid=64055 ouid=64055
Fortunately, there's a nice trick: AppArmor profile variables. We
already use some of them (@{PROC}, @{HOME}, @{multiarch}) and
instead of RUNSTATEDIR we can use @{run} which is declared as:
# cat /etc/apparmor.d/tunables/run
@{run}=/run/ /var/run/
and thus covers both scenarios.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/security/virt-aa-helper.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index c255b64f35..eabc29e9cf 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1238,8 +1238,8 @@ get_files(vahControl * ctl)
/* Unix socket for QEMU and swtpm to use */
virBufferAsprintf(&buf,
- " \"%s/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n",
- RUNSTATEDIR, shortName);
+ " \"@{run}/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n",
+ shortName);
/* Paths for swtpm to use: give it access to its state
* directory (state files and fsync on dir), log, and PID files.
*/
@@ -1253,8 +1253,8 @@ get_files(vahControl * ctl)
" \"%s/log/swtpm/libvirt/qemu/%s-swtpm.log\" w,\n",
LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf,
- " \"%s/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n",
- RUNSTATEDIR, shortName);
+ " \"@{run}/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n",
+ shortName);
VIR_FREE(shortName);
}
@@ -1528,10 +1528,10 @@ main(int argc, char **argv)
LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, " \"%s/lib/libvirt/qemu/domain-%d-%.*s/*\" rw,\n",
LOCALSTATEDIR, ctl->def->id, 20, ctl->def->name);
- virBufferAsprintf(&buf, " \"%s/libvirt/**/%s.pid\" rwk,\n",
- RUNSTATEDIR, ctl->def->name);
- virBufferAsprintf(&buf, " \"%s/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
- RUNSTATEDIR, ctl->def->name);
+ virBufferAsprintf(&buf, " \"@{run}/libvirt/**/%s.pid\" rwk,\n",
+ ctl->def->name);
+ virBufferAsprintf(&buf, " \"@{run}/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
+ ctl->def->name);
}
if (ctl->files)
virBufferAdd(&buf, ctl->files, -1);
--
2.45.3
2
3
On some systems /run is mounted as:
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=348508k,mode=755,inode64)
and /var/run is then just a symlink:
# ls -ld /var/run
lrwxrwxrwx 1 root root 4 Apr 23 2024 /var/run -> /run
But because we still think it's 2004 and FHS 2.3 is active we
have a rule in our meson.build which constructs RUNSTATEDIR as
the following:
runstatedir = get_option('runstatedir')
if runstatedir == ''
runstatedir = localstatedir / 'run'
endif
which (if unspecified on meson setup line) results in "/var/run".
This in turn means, when when we're generating an AppArmor
profile for a domain with allowed paths it contains stuff like:
/var/run/libvirt/qemu/swtpm/2-guest-swtpm.sock
But because of the aforementioned symlink the real path is:
/run/libvirt/qemu/swtpm/2-guest-swtpm.sock
and thus AppArmor denies access:
audit: type=1400 audit(1740480419.348:415): apparmor="DENIED" operation="connect" class="file" profile="libvirt-126f2720-6f8e-45ab-a886-ec9277079a67" name="/run/libvirt/qemu/swtpm/2-guest-swtpm.sock" pid=8080 comm="qemu-system-x86" requested_mask="wr" denied_mask="wr" fsuid=64055 ouid=64055
Fortunately, there's a nice trick: AppArmor profile variables. We
already use some of them (@{PROC}, @{HOME}, @{multiarch}) and
instead of RUNSTATEDIR we can use @{run} which is declared as:
# cat /etc/apparmor.d/tunables/run
@{run}=/run/ /var/run/
and thus covers both scenarios.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/security/virt-aa-helper.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index c255b64f35..eabc29e9cf 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1238,8 +1238,8 @@ get_files(vahControl * ctl)
/* Unix socket for QEMU and swtpm to use */
virBufferAsprintf(&buf,
- " \"%s/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n",
- RUNSTATEDIR, shortName);
+ " \"@{run}/libvirt/qemu/swtpm/%s-swtpm.sock\" rw,\n",
+ shortName);
/* Paths for swtpm to use: give it access to its state
* directory (state files and fsync on dir), log, and PID files.
*/
@@ -1253,8 +1253,8 @@ get_files(vahControl * ctl)
" \"%s/log/swtpm/libvirt/qemu/%s-swtpm.log\" w,\n",
LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf,
- " \"%s/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n",
- RUNSTATEDIR, shortName);
+ " \"@{run}/libvirt/qemu/swtpm/%s-swtpm.pid\" rw,\n",
+ shortName);
VIR_FREE(shortName);
}
@@ -1528,10 +1528,10 @@ main(int argc, char **argv)
LOCALSTATEDIR, ctl->def->name);
virBufferAsprintf(&buf, " \"%s/lib/libvirt/qemu/domain-%d-%.*s/*\" rw,\n",
LOCALSTATEDIR, ctl->def->id, 20, ctl->def->name);
- virBufferAsprintf(&buf, " \"%s/libvirt/**/%s.pid\" rwk,\n",
- RUNSTATEDIR, ctl->def->name);
- virBufferAsprintf(&buf, " \"%s/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
- RUNSTATEDIR, ctl->def->name);
+ virBufferAsprintf(&buf, " \"@{run}/libvirt/**/%s.pid\" rwk,\n",
+ ctl->def->name);
+ virBufferAsprintf(&buf, " \"@{run}/libvirt/**/*.tunnelmigrate.dest.%s\" rw,\n",
+ ctl->def->name);
}
if (ctl->files)
virBufferAdd(&buf, ctl->files, -1);
--
2.45.3
2
1
[PATCH] qemu: Report disk bus as reported by agent in virDomainGetGuestInfo
by Peter Krempa 26 Feb '25
by Peter Krempa 26 Feb '25
26 Feb '25
KubeVirt decided to report this to the users. In order to allow them to
use proper APIs expose the field as well.
Resolves: https://issues.redhat.com/browse/RHEL-80688
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
docs/manpages/virsh.rst | 1 +
src/libvirt-domain.c | 1 +
src/qemu/qemu_driver.c | 9 +++++++++
3 files changed, 11 insertions(+)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index f159c40631..baced15dec 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -2999,6 +2999,7 @@ returned:
* ``disk.<num>.serial`` - optional disk serial number
* ``disk.<num>.alias`` - the device alias of the disk (e.g. sda)
* ``disk.<num>.guest_alias`` - optional alias assigned to the disk
+* ``disk.<num>.guest_bus`` - bus type as reported by the guest
*--interface* returns:
* ``if.count`` - the number of interfaces defined on this domain
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index ae15ab1e5a..05101756a1 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -13273,6 +13273,7 @@ virDomainSetVcpu(virDomainPtr domain,
* "disk.<num>.alias" - the device alias of the disk (e.g. sda)
* "disk.<num>.guest_alias" - optional alias assigned to the disk, on Linux
* this is a name assigned by device mapper
+ * "disk.<num>.guest_bus" - disk bus as reported by the guest OS
*
* VIR_DOMAIN_GUEST_INFO_HOSTNAME:
* Returns information about the hostname of the domain. The typed
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 3b8b2c0a1e..86b945d9b9 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -19278,6 +19278,15 @@ qemuAgentDiskInfoFormatParams(qemuAgentDiskInfo **info,
param_name, diskdef->dst) < 0)
return;
}
+
+ if (address->bus_type) {
+ g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
+ "disk.%zu.guest_bus", i);
+
+ if (virTypedParamsAddString(params, nparams, maxparams,
+ param_name, address->bus_type) < 0)
+ return;
+ }
}
if (info[i]->alias) {
--
2.48.1
2
1
A mismatch in backticks happened.
Fixes: a47a89a9d335c111a9c2fbb3f4e1c3a13001e74b
Reported-by: Yalan Zhang <yalzhang(a)redhat.com>
Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
Pushed.
docs/formatdomain.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
index fdb3c2459e..cbe378e61d 100644
--- a/docs/formatdomain.rst
+++ b/docs/formatdomain.rst
@@ -5170,7 +5170,7 @@ values for both of these, or you can use the ``<ip>`` element
configure one IPv4 and one IPv6 address that passt's DHCP server can
provide to the guest.
-Unlike SLIRP, when no `<ip>`` address is specified, passt will by
+Unlike SLIRP, when no ``<ip>`` address is specified, passt will by
default provide the guest with an IP address, DNS server, etc. that
are identical to those settings on the host itself (through the magic
of the proxies and a separate network namespace, this doesn't create
--
2.48.1
1
0
25 Feb '25
sysfs is used to get a list of PCI devices. It doesn't work under
FreeBSD. The libpciaccess library provides cross-platform functions
for accessing the PCI bus.
Signed-off-by: Alexander Shursha <kekek2(a)ya.ru>
---
src/meson.build | 1 +
src/util/virpci.c | 465 ++++++++++------------------------------
tests/qemuhotplugtest.c | 11 +-
tests/qemumemlocktest.c | 9 +
tests/qemuxmlconftest.c | 9 +
tests/virpcimock.c | 22 +-
6 files changed, 162 insertions(+), 355 deletions(-)
diff --git a/src/meson.build b/src/meson.build
index 9413192a55..39788ac4d7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -411,6 +411,7 @@ libvirt_lib = shared_library(
dtrace_gen_objects,
dependencies: [
src_dep,
+ pciaccess_dep
],
link_args: libvirt_link_args,
link_whole: [
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 90617e69c6..b5bbe73ece 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -2,6 +2,7 @@
* virpci.c: helper APIs for managing host PCI devices
*
* Copyright (C) 2009-2015 Red Hat, Inc.
+ * Copyright (C) 2024-2025 Future Crew, LLC
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -29,6 +30,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <pciaccess.h>
#ifdef __linux__
# include <sys/utsname.h>
@@ -72,7 +74,7 @@ struct _virPCIDevice {
char *name; /* domain:bus:slot.function */
char id[PCI_ID_LEN]; /* product vendor */
- char *path;
+ struct pci_device *device;
/* The driver:domain which uses the device */
char *used_by_drvname;
@@ -359,121 +361,6 @@ virPCIDeviceGetCurrentDriverNameAndType(virPCIDevice *dev,
}
-static int
-virPCIDeviceConfigOpenInternal(virPCIDevice *dev, bool readonly, bool fatal)
-{
- int fd;
-
- fd = open(dev->path, readonly ? O_RDONLY : O_RDWR);
-
- if (fd < 0) {
- if (fatal) {
- virReportSystemError(errno,
- _("Failed to open config space file '%1$s'"),
- dev->path);
- } else {
- VIR_WARN("Failed to open config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
- return -1;
- }
-
- VIR_DEBUG("%s %s: opened %s", dev->id, dev->name, dev->path);
- return fd;
-}
-
-static int
-virPCIDeviceConfigOpen(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, true);
-}
-
-static int
-virPCIDeviceConfigOpenTry(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, false);
-}
-
-static int
-virPCIDeviceConfigOpenWrite(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, false, true);
-}
-
-static void
-virPCIDeviceConfigClose(virPCIDevice *dev, int cfgfd)
-{
- if (VIR_CLOSE(cfgfd) < 0) {
- VIR_WARN("Failed to close config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
-}
-
-
-static int
-virPCIDeviceRead(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- memset(buf, 0, buflen);
- errno = 0;
-
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- saferead(cfgfd, buf, buflen) != buflen) {
- VIR_DEBUG("Failed to read %u bytes at %u from '%s' : %s",
- buflen, pos, dev->path, g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-
-/**
- * virPCIDeviceReadN:
- * @dev: virPCIDevice object (used only to log name of config file)
- * @cfgfd: open file descriptor for device config file in sysfs
- * @pos: byte offset in the file to read from
- *
- * read "N" (where "N" is "8", "16", or "32", and appears at the end
- * of the function name) bytes from a PCI device's already-opened
- * sysfs config file and return them as the return value from the
- * function.
- *
- * Returns the value at @pos in the file, or 0 if there was an
- * error. NB: since 0 could be a valid value, occurrence of an error
- * must be determined by examining errno. errno is always reset to 0
- * before the seek/read is attempted (see virPCIDeviceRead()), so if
- * errno != 0 on return from one of these functions, then either the
- * seek or the read operation failed for some reason. If errno == 0
- * and the return value is 0, then the config file really does contain
- * the value 0 at @pos.
- */
-static uint8_t
-virPCIDeviceRead8(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf;
- virPCIDeviceRead(dev, cfgfd, pos, &buf, sizeof(buf));
- return buf;
-}
-
-static uint16_t
-virPCIDeviceRead16(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[2];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8);
-}
-
-static uint32_t
-virPCIDeviceRead32(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[4];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
-}
-
static int
virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
{
@@ -499,36 +386,6 @@ virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
return 0;
}
-static int
-virPCIDeviceWrite(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- safewrite(cfgfd, buf, buflen) != buflen) {
- VIR_WARN("Failed to write to '%s' : %s", dev->path,
- g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-static void
-virPCIDeviceWrite16(virPCIDevice *dev, int cfgfd, unsigned int pos, uint16_t val)
-{
- uint8_t buf[2] = { (val >> 0), (val >> 8) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
-static void
-virPCIDeviceWrite32(virPCIDevice *dev, int cfgfd, unsigned int pos, uint32_t val)
-{
- uint8_t buf[4] = { (val >> 0), (val >> 8), (val >> 16), (val >> 24) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
typedef int (*virPCIDeviceIterPredicate)(virPCIDevice *, virPCIDevice *,
void *);
@@ -610,7 +467,6 @@ virPCIDeviceIterDevices(virPCIDeviceIterPredicate predicate,
*/
static int
virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability,
unsigned int *offset)
{
@@ -619,11 +475,13 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
*offset = 0; /* assume failure (*nothing* can be at offset 0) */
- status = virPCIDeviceRead16(dev, cfgfd, PCI_STATUS);
+ pci_device_cfg_read_u16(dev->device, &status, PCI_STATUS);
+
if (errno != 0 || !(status & PCI_STATUS_CAP_LIST))
goto error;
- pos = virPCIDeviceRead8(dev, cfgfd, PCI_CAPABILITY_LIST);
+ pci_device_cfg_read_u8(dev->device, &pos, PCI_CAPABILITY_LIST);
+
if (errno != 0)
goto error;
@@ -635,7 +493,9 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
* capabilities here.
*/
while (pos >= PCI_CONF_HEADER_LEN && pos != 0xff) {
- uint8_t capid = virPCIDeviceRead8(dev, cfgfd, pos);
+ uint8_t capid;
+ pci_device_cfg_read_u8(dev->device, &capid, pos);
+
if (errno != 0)
goto error;
@@ -646,7 +506,8 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
return 0;
}
- pos = virPCIDeviceRead8(dev, cfgfd, pos + 1);
+ pci_device_cfg_read_u8(dev->device, &pos, pos + 1);
+
if (errno != 0)
goto error;
}
@@ -665,7 +526,6 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
static unsigned int
virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability)
{
int ttl;
@@ -677,7 +537,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
pos = PCI_EXT_CAP_BASE;
while (ttl > 0 && pos >= PCI_EXT_CAP_BASE) {
- header = virPCIDeviceRead32(dev, cfgfd, pos);
+ header = pci_device_cfg_read_u32(dev->device, &header, pos);
if ((header & PCI_EXT_CAP_ID_MASK) == capability)
return pos;
@@ -693,7 +553,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
* not have FLR, 1 if it does, and -1 on error
*/
static bool
-virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev)
{
uint32_t caps;
unsigned int pos;
@@ -707,7 +567,7 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* on SR-IOV NICs at the moment.
*/
if (dev->pcie_cap_pos) {
- caps = virPCIDeviceRead32(dev, cfgfd, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
+ pci_device_cfg_read_u32(dev->device, &caps, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
if (caps & PCI_EXP_DEVCAP_FLR) {
VIR_DEBUG("%s %s: detected PCIe FLR capability", dev->id, dev->name);
return true;
@@ -718,11 +578,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* the same thing, except for conventional PCI
* devices. This is not common yet.
*/
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_AF, &pos) < 0)
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_AF, &pos) < 0)
goto error;
if (pos) {
- caps = virPCIDeviceRead16(dev, cfgfd, pos + PCI_AF_CAP);
+ uint16_t caps16;
+ pci_device_cfg_read_u16(dev->device, &caps16, pos + PCI_AF_CAP);
+ caps = caps16;
if (caps & PCI_AF_CAP_FLR) {
VIR_DEBUG("%s %s: detected PCI FLR capability", dev->id, dev->name);
return true;
@@ -754,13 +616,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* internal reset, not just a soft reset.
*/
static bool
-virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev)
{
if (dev->pci_pm_cap_pos) {
uint32_t ctl;
/* require the NO_SOFT_RESET bit is clear */
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
if (!(ctl & PCI_PM_CTRL_NO_SOFT_RESET)) {
VIR_DEBUG("%s %s: detected PM reset capability", dev->id, dev->name);
return true;
@@ -811,26 +673,22 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
uint8_t header_type, secondary, subordinate;
virPCIDevice **best = data;
int ret = 0;
- int fd;
if (dev->address.domain != check->address.domain)
return 0;
- if ((fd = virPCIDeviceConfigOpenTry(check)) < 0)
- return 0;
-
/* Is it a bridge? */
ret = virPCIDeviceReadClass(check, &device_class);
if (ret < 0 || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return ret;
/* Is it a plane? */
- header_type = virPCIDeviceRead8(check, fd, PCI_HEADER_TYPE);
+ pci_device_cfg_read_u8(check->device, &header_type, PCI_HEADER_TYPE);
if ((header_type & PCI_HEADER_TYPE_MASK) != PCI_HEADER_TYPE_BRIDGE)
- goto cleanup;
+ return ret;
- secondary = virPCIDeviceRead8(check, fd, PCI_SECONDARY_BUS);
- subordinate = virPCIDeviceRead8(check, fd, PCI_SUBORDINATE_BUS);
+ pci_device_cfg_read_u8(check->device, &secondary, PCI_SECONDARY_BUS);
+ pci_device_cfg_read_u8(check->device, &subordinate, PCI_SUBORDINATE_BUS);
VIR_DEBUG("%s %s: found parent device %s", dev->id, dev->name, check->name);
@@ -838,8 +696,7 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
* the direct parent. No further work is necessary
*/
if (dev->address.bus == secondary) {
- ret = 1;
- goto cleanup;
+ return 1;
}
/* otherwise, SRIOV allows VFs to be on different buses than their PFs.
@@ -850,35 +707,26 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
if (*best == NULL) {
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
} else {
/* OK, we had already recorded a previous "best" match for the
* parent. See if the current device is more restrictive than the
* best, and if so, make it the new best
*/
- int bestfd;
uint8_t best_secondary;
- if ((bestfd = virPCIDeviceConfigOpenTry(*best)) < 0)
- goto cleanup;
- best_secondary = virPCIDeviceRead8(*best, bestfd, PCI_SECONDARY_BUS);
- virPCIDeviceConfigClose(*best, bestfd);
+ pci_device_cfg_read_u8((*best)->device, &best_secondary, PCI_SECONDARY_BUS);
if (secondary > best_secondary) {
virPCIDeviceFree(*best);
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
}
}
}
-
- cleanup:
- virPCIDeviceConfigClose(check, fd);
return ret;
}
@@ -902,15 +750,14 @@ virPCIDeviceGetParent(virPCIDevice *dev, virPCIDevice **parent)
*/
static int
virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
- int cfgfd,
virPCIDeviceList *inactiveDevs)
{
g_autoptr(virPCIDevice) parent = NULL;
g_autoptr(virPCIDevice) conflict = NULL;
uint8_t config_space[PCI_CONF_LEN];
uint16_t ctl;
- int ret = -1;
- int parentfd;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
/* Refuse to do a secondary bus reset if there are other
* devices/functions behind the bus are used by the host
@@ -932,8 +779,6 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
dev->name);
return -1;
}
- if ((parentfd = virPCIDeviceConfigOpenWrite(parent)) < 0)
- goto out;
VIR_DEBUG("%s %s: doing a secondary bus reset", dev->id, dev->name);
@@ -941,38 +786,37 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* for the supplied device since we refuse to do a reset if there
* are multiple devices/functions
*/
- if (virPCIDeviceRead(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
/* Read the control register, set the reset flag, wait 200ms,
* unset the reset flag and wait 200ms.
*/
- ctl = virPCIDeviceRead16(dev, parentfd, PCI_BRIDGE_CONTROL);
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL,
- ctl | PCI_BRIDGE_CTL_RESET);
+ pci_device_cfg_read_u16(parent->device, &ctl, PCI_BRIDGE_CONTROL);
+
+ pci_device_cfg_write_u16(parent->device, ctl | PCI_BRIDGE_CTL_RESET, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL, ctl);
+ pci_device_cfg_write_u16(parent->device, ctl, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
- ret = 0;
- out:
- virPCIDeviceConfigClose(parent, parentfd);
- return ret;
+ return 0;
}
/* Power management reset attempts to reset a device using a
@@ -980,16 +824,19 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* above we require the device supports a full internal reset.
*/
static int
-virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceTryPowerManagementReset(virPCIDevice *dev)
{
uint8_t config_space[PCI_CONF_LEN];
uint32_t ctl;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
if (!dev->pci_pm_cap_pos)
return -1;
/* Save and restore the device's config space. */
- if (virPCIDeviceRead(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
@@ -998,20 +845,19 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
VIR_DEBUG("%s %s: doing a power management reset", dev->id, dev->name);
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
ctl &= ~PCI_PM_CTRL_STATE_MASK;
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D3hot);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D3hot, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D0);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D0, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
@@ -1046,10 +892,10 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
* Always returns success (0) (for now)
*/
static int
-virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
+virPCIDeviceInit(virPCIDevice *dev)
{
dev->is_pcie = false;
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
/* an unprivileged process is unable to read *all* of a
* device's PCI config (it can only read the first 64
* bytes, which isn't enough for see the Express
@@ -1065,18 +911,13 @@ virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
* -1), then we blindly assume the most likely outcome -
* PCIe.
*/
- off_t configLen = virFileLength(virPCIDeviceGetConfigPath(dev), -1);
-
- if (configLen != 256)
- dev->is_pcie = true;
-
} else {
dev->is_pcie = (dev->pcie_cap_pos != 0);
}
- virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
- dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev, cfgfd);
- dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev, cfgfd);
+ virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
+ dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev);
+ dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev);
return 0;
}
@@ -1089,7 +930,6 @@ virPCIDeviceReset(virPCIDevice *dev,
g_autofree char *drvName = NULL;
virPCIStubDriver drvType;
int ret = -1;
- int fd = -1;
int hdrType = -1;
if (virPCIGetHeaderType(dev, &hdrType) < 0)
@@ -1114,29 +954,26 @@ virPCIDeviceReset(virPCIDevice *dev,
* be redundant.
*/
if (virPCIDeviceGetCurrentDriverNameAndType(dev, &drvName, &drvType) < 0)
- goto cleanup;
+ return -1;
if (drvType == VIR_PCI_STUB_DRIVER_VFIO) {
VIR_DEBUG("Device %s is bound to %s - skip reset", dev->name, drvName);
ret = 0;
- goto cleanup;
+ return 0;
}
VIR_DEBUG("Resetting device %s", dev->name);
- if ((fd = virPCIDeviceConfigOpenWrite(dev)) < 0)
- goto cleanup;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
/* KVM will perform FLR when starting and stopping
* a guest, so there is no need for us to do it here.
*/
if (dev->has_flr) {
ret = 0;
- goto cleanup;
+ return 0;
}
/* If the device supports PCI power management reset,
@@ -1144,11 +981,11 @@ virPCIDeviceReset(virPCIDevice *dev,
* the function, not the whole device.
*/
if (dev->has_pm_reset)
- ret = virPCIDeviceTryPowerManagementReset(dev, fd);
+ ret = virPCIDeviceTryPowerManagementReset(dev);
/* Bus reset is not an option with the root bus */
if (ret < 0 && dev->address.bus != 0)
- ret = virPCIDeviceTrySecondaryBusReset(dev, fd, inactiveDevs);
+ ret = virPCIDeviceTrySecondaryBusReset(dev, inactiveDevs);
if (ret < 0) {
virErrorPtr err = virGetLastError();
@@ -1159,8 +996,6 @@ virPCIDeviceReset(virPCIDevice *dev,
_("no FLR, PM reset or bus reset available"));
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
return ret;
}
@@ -1756,28 +1591,6 @@ virPCIDeviceReattach(virPCIDevice *dev,
return 0;
}
-static char *
-virPCIDeviceReadID(virPCIDevice *dev, const char *id_name)
-{
- g_autofree char *path = NULL;
- g_autofree char *id_str = NULL;
-
- path = virPCIFile(dev->name, id_name);
-
- /* ID string is '0xNNNN\n' ... i.e. 7 bytes */
- if (virFileReadAll(path, 7, &id_str) < 0)
- return NULL;
-
- /* Check for 0x suffix */
- if (id_str[0] != '0' || id_str[1] != 'x')
- return NULL;
-
- /* Chop off the newline; we know the string is 7 bytes */
- id_str[6] = '\0';
-
- return g_steal_pointer(&id_str);
-}
-
bool
virPCIDeviceAddressIsValid(virPCIDeviceAddress *addr,
bool report)
@@ -1865,9 +1678,9 @@ virPCIDeviceExists(const virPCIDeviceAddress *addr)
virPCIDevice *
virPCIDeviceNew(const virPCIDeviceAddress *address)
{
+ struct pci_device * device;
+
g_autoptr(virPCIDevice) dev = NULL;
- g_autofree char *vendor = NULL;
- g_autofree char *product = NULL;
dev = g_new0(virPCIDevice, 1);
@@ -1875,31 +1688,21 @@ virPCIDeviceNew(const virPCIDeviceAddress *address)
dev->name = virPCIDeviceAddressAsString(&dev->address);
- dev->path = g_strdup_printf(PCI_SYSFS "devices/%s/config", dev->name);
-
- if (!virFileExists(dev->path)) {
- virReportSystemError(errno,
- _("Device %1$s not found: could not access %2$s"),
- dev->name, dev->path);
+ pci_system_init();
+ device = pci_device_find_by_slot(address->domain, address->bus, address->slot, address->function);
+ if (!device)
return NULL;
- }
-
- vendor = virPCIDeviceReadID(dev, "vendor");
- product = virPCIDeviceReadID(dev, "device");
-
- if (!vendor || !product) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to read product/vendor ID for %1$s"),
- dev->name);
+ dev->device = g_memdup(device, sizeof(*dev->device));
+ if (!dev->device) {
+ virReportSystemError(errno,
+ _("Not found device domain: %1$d, bus: %2$d, slot: %3$d, function: %4$d"),
+ address->domain, address->bus, address->slot, address->function);
return NULL;
}
-
- /* strings contain '0x' prefix */
- if (g_snprintf(dev->id, sizeof(dev->id), "%s %s", &vendor[2],
- &product[2]) >= sizeof(dev->id)) {
+ if (g_snprintf(dev->id, sizeof(dev->id), "%x %x", dev->device->vendor_id, dev->device->device_id) >= sizeof(dev->id)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("dev->id buffer overflow: %1$s %2$s"),
- &vendor[2], &product[2]);
+ _("dev->id buffer overflow: %1$d %2$d"),
+ dev->device->vendor_id, dev->device->device_id);
return NULL;
}
@@ -1918,10 +1721,10 @@ virPCIDeviceCopy(virPCIDevice *dev)
/* shallow copy to take care of most attributes */
*copy = *dev;
- copy->path = NULL;
- copy->used_by_drvname = copy->used_by_domname = NULL;
+ copy->device = NULL;
+ copy->device = g_memdup(dev->device, sizeof(*dev->device));
+ copy->name = copy->used_by_drvname = copy->used_by_domname = copy->stubDriverName = NULL;
copy->name = g_strdup(dev->name);
- copy->path = g_strdup(dev->path);
copy->used_by_drvname = g_strdup(dev->used_by_drvname);
copy->used_by_domname = g_strdup(dev->used_by_domname);
copy->stubDriverName = g_strdup(dev->stubDriverName);
@@ -1936,10 +1739,11 @@ virPCIDeviceFree(virPCIDevice *dev)
return;
VIR_DEBUG("%s %s: freeing", dev->id, dev->name);
g_free(dev->name);
- g_free(dev->path);
g_free(dev->used_by_drvname);
g_free(dev->used_by_domname);
g_free(dev->stubDriverName);
+ if (dev->device)
+ g_free(dev->device);
g_free(dev);
}
@@ -1971,9 +1775,9 @@ virPCIDeviceGetName(virPCIDevice *dev)
* config file.
*/
const char *
-virPCIDeviceGetConfigPath(virPCIDevice *dev)
+virPCIDeviceGetConfigPath(virPCIDevice *dev G_GNUC_UNUSED)
{
- return dev->path;
+ return NULL;
}
void virPCIDeviceSetManaged(virPCIDevice *dev, bool managed)
@@ -2484,47 +2288,37 @@ virPCIDeviceDownstreamLacksACS(virPCIDevice *dev)
uint16_t flags;
uint16_t ctrl;
unsigned int pos;
- int fd;
- int ret = 0;
uint16_t device_class;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
+ if (virPCIDeviceInit(dev) < 0) {
return -1;
-
- if (virPCIDeviceInit(dev, fd) < 0) {
- ret = -1;
- goto cleanup;
}
if (virPCIDeviceReadClass(dev, &device_class) < 0)
- goto cleanup;
+ return 0;
pos = dev->pcie_cap_pos;
if (!pos || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return 0;
- flags = virPCIDeviceRead16(dev, fd, pos + PCI_EXP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &flags, pos + PCI_EXP_FLAGS);
if (((flags & PCI_EXP_FLAGS_TYPE) >> 4) != PCI_EXP_TYPE_DOWNSTREAM)
- goto cleanup;
+ return 0;
- pos = virPCIDeviceFindExtendedCapabilityOffset(dev, fd, PCI_EXT_CAP_ID_ACS);
+ pos = virPCIDeviceFindExtendedCapabilityOffset(dev, PCI_EXT_CAP_ID_ACS);
if (!pos) {
VIR_DEBUG("%s %s: downstream port lacks ACS", dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- ctrl = virPCIDeviceRead16(dev, fd, pos + PCI_EXT_ACS_CTRL);
+ pci_device_cfg_read_u16(dev->device, &ctrl, pos + PCI_EXT_ACS_CTRL);
if ((ctrl & PCI_EXT_CAP_ACS_ENABLED) != PCI_EXT_CAP_ACS_ENABLED) {
VIR_DEBUG("%s %s: downstream port has ACS disabled",
dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
static int
@@ -3189,48 +2983,27 @@ virPCIDeviceGetVPD(virPCIDevice *dev G_GNUC_UNUSED)
int
virPCIDeviceIsPCIExpress(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
-
- ret = dev->is_pcie;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return dev->is_pcie;
}
int
virPCIDeviceHasPCIExpressLink(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
uint16_t cap, type;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (dev->pcie_cap_pos == 0) {
- ret = 0;
- goto cleanup;
+ return 0;
}
- cap = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_CAP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &cap, dev->pcie_cap_pos + PCI_CAP_FLAGS);
type = (cap & PCI_EXP_FLAGS_TYPE) >> 4;
- ret = type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
}
int
@@ -3242,53 +3015,39 @@ virPCIDeviceGetLinkCapSta(virPCIDevice *dev,
unsigned int *sta_width)
{
uint32_t t;
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ uint16_t t16;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (!dev->pcie_cap_pos) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("pci device %1$s is not a PCI-Express device"),
dev->name);
- goto cleanup;
+ return -1;
}
- t = virPCIDeviceRead32(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
+ pci_device_cfg_read_u32(dev->device, &t, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
*cap_port = t >> 24;
*cap_speed = t & PCI_EXP_LNKCAP_SPEED;
*cap_width = (t & PCI_EXP_LNKCAP_WIDTH) >> 4;
- t = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ pci_device_cfg_read_u16(dev->device, &t16, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ t = t16;
*sta_speed = t & PCI_EXP_LNKSTA_SPEED;
*sta_width = (t & PCI_EXP_LNKSTA_WIDTH) >> 4;
- ret = 0;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
int virPCIGetHeaderType(virPCIDevice *dev, int *hdrType)
{
- int fd;
uint8_t type;
*hdrType = -1;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return -1;
-
- type = virPCIDeviceRead8(dev, fd, PCI_HEADER_TYPE);
-
- virPCIDeviceConfigClose(dev, fd);
+ pci_device_cfg_read_u8(dev->device, &type, PCI_HEADER_TYPE);
type &= PCI_HEADER_TYPE_MASK;
if (type >= VIR_PCI_HEADER_LAST) {
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index d2a1f5acf1..fd8339bd30 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -18,12 +18,14 @@
*/
#include <config.h>
+#include "testutils.h"
+
+#ifdef __linux__
#include "qemu/qemu_alias.h"
#include "qemu/qemu_conf.h"
#include "qemu/qemu_hotplug.h"
#include "qemumonitortestutils.h"
-#include "testutils.h"
#include "testutilsqemu.h"
#include "testutilsqemuschema.h"
#include "virhostdev.h"
@@ -816,3 +818,10 @@ VIR_TEST_MAIN_PRELOAD(mymain,
VIR_TEST_MOCK("domaincaps"),
VIR_TEST_MOCK("virprocess"),
VIR_TEST_MOCK("qemuhotplug"));
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c
index a2888732f7..5f62c80665 100644
--- a/tests/qemumemlocktest.c
+++ b/tests/qemumemlocktest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -137,3 +139,10 @@ main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 1f0068864a..6f84812109 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -3051,3 +3053,10 @@ int main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index 5b923c63ce..36bb57edb0 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2013 Red Hat, Inc.
+ * Copyright (C) 2024-2025 Future Crew, LLC
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,7 +23,7 @@
#include "virpcivpdpriv.h"
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__)
# define VIR_MOCK_LOOKUP_MAIN
# include "virmock.h"
# include "virpci.h"
@@ -42,6 +43,10 @@ static int (*real___open_2)(const char *path, int flags);
static int (*real_close)(int fd);
static DIR * (*real_opendir)(const char *name);
static char *(*real_virFileCanonicalizePath)(const char *path);
+static int (*real_scandir)(const char *restrict dirp,
+ struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar);
static char *fakerootdir;
@@ -955,6 +960,7 @@ init_syms(void)
VIR_MOCK_REAL_INIT(opendir);
# endif
VIR_MOCK_REAL_INIT(virFileCanonicalizePath);
+ VIR_MOCK_REAL_INIT(scandir);
}
static void
@@ -1172,6 +1178,20 @@ virFileCanonicalizePath(const char *path)
return real_virFileCanonicalizePath(newpath);
}
+int scandir(const char *restrict dirp, struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar)
+{
+ g_autofree char *newpath = NULL;
+
+ init_syms();
+
+ if (getrealpath(&newpath, dirp) < 0)
+ return -1;
+
+ return real_scandir(newpath, namelist, filter, compar);
+}
+
# include "virmockstathelpers.c"
#else
--
2.47.1
3
8
V2 of
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/ISS…
Changes in V2:
* Adjusted patch2 after moving verification of save image formats to
driver startup in the series this one is based on
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/NZFX…
Jim Fehlig (2):
include: Define constant for save image format
qemu: Add support for 'image_format' typed parameter
include/libvirt/libvirt-domain.h | 13 +++++++++++++
src/libvirt-domain.c | 3 +++
src/qemu/qemu_driver.c | 20 ++++++++++++++++----
3 files changed, 32 insertions(+), 4 deletions(-)
--
2.43.0
2
5
[PATCH v2 0/4] Add support for getting load averages from guest agent
by Martin Kletzander 25 Feb '25
by Martin Kletzander 25 Feb '25
25 Feb '25
I'm drawing blanks when it comes to commit messages today. But this still has
time, because even though the patches are in QEMU upstream, but not a part of a
release yet. However nothing should break if we add support earlier...
Right? O:-)
v2:
- split patches
- add it to guestinfo instead of domstats
- some more macro deduplication
Martin Kletzander (4):
Add load average information type into virDomainGetGuestInfo
qemu_agent: Add qemuAgentGetLoadAvg()
qemu: Add support for VIR_DOMAIN_GUEST_INFO_LOAD
virsh: Add support for VIR_DOMAIN_GUEST_INFO_LOAD
docs/manpages/virsh.rst | 8 ++++-
include/libvirt/libvirt-domain.h | 1 +
src/libvirt-domain.c | 8 +++++
src/qemu/qemu_agent.c | 55 ++++++++++++++++++++++++++++++++
src/qemu/qemu_agent.h | 6 ++++
src/qemu/qemu_driver.c | 21 +++++++++++-
tests/qemuagenttest.c | 53 ++++++++++++++++++++++++++++++
tools/virsh-domain.c | 6 ++++
8 files changed, 156 insertions(+), 2 deletions(-)
--
2.48.1
3
9
25 Feb '25
I've tested this on our hosts that are using for gitlab integration
tests and everything seems to be working now.
There were multiple issues I've encountered:
- on Fedora 41 current selinux policy silently blocks virtnwfilterd
to create_socket_perms for packet_socket resulting in this error:
internal error: setup of pcap handle failed: can't mmap rx ring: Permission denied
I've created temporary selinux module to allow this permission, need
to post a patch to fedora selinux policy to fix this.
- libvirt-tck uses for some tests sleep(30) to wait for VM to boot
but on our hosts it sometimes took a bit longer resulting in
random failures, posted patches to libvirt-tck to fix this issue
- lcitool is not able to prepare Fedora 41 vm as there is no
python3-libdnf5 by default installed and ansible fails with error
Pavel Hrdina (3):
ci: use iptables to run libvirt-tck
ci: use Fedora 41 to run integration tests
ci: refresh with 'lcitool manifest'
ci/buildenv/{alpine-319.sh => alpine-321.sh} | 0
...e-319.Dockerfile => alpine-321.Dockerfile} | 2 +-
ci/gitlab/builds.yml | 8 ++++----
ci/gitlab/containers.yml | 4 ++--
ci/integration.yml | 20 +++++++++----------
ci/jobs.sh | 3 +++
ci/manifest.yml | 2 +-
7 files changed, 21 insertions(+), 18 deletions(-)
rename ci/buildenv/{alpine-319.sh => alpine-321.sh} (100%)
rename ci/containers/{alpine-319.Dockerfile => alpine-321.Dockerfile} (98%)
--
2.48.1
2
4
25 Feb '25
V2 of
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/SKV…
Changes in V2:
* V1 moved the special-case handling of invalid dump image format to
doCoreDump. V2 removes it, and fails on invalid configuration similar
to the other save-related operations.
* New patch4 that moves checking for a valid save image format from
time of use to config file parsing at driver startup
Jim Fehlig (4):
qemu: Move declaration of virQEMUSaveFormat to header file
qemu: Don't ignore dump image format errors
qemu: Change return value of SaveImageGetCompressionProgram
qemu: Check for valid save image formats when loading driver config
src/qemu/qemu_conf.c | 35 ++++++++++++---
src/qemu/qemu_conf.h | 6 +--
src/qemu/qemu_driver.c | 30 ++++---------
src/qemu/qemu_saveimage.c | 92 +++++++--------------------------------
src/qemu/qemu_saveimage.h | 25 +++++++++--
src/qemu/qemu_snapshot.c | 8 ++--
6 files changed, 80 insertions(+), 116 deletions(-)
--
2.43.0
2
8
Since this is already in QEMU we can add this stat which might be useful
for people.
Resolves: https://issues.redhat.com/browse/RHEL-71883
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
docs/manpages/virsh.rst | 3 +++
src/libvirt-domain.c | 3 +++
src/qemu/qemu_agent.c | 59 +++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_agent.h | 6 +++++
src/qemu/qemu_driver.c | 32 ++++++++++++++++++++++
tests/qemuagenttest.c | 53 ++++++++++++++++++++++++++++++++++++
6 files changed, 156 insertions(+)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index 06c2802b3f9f..60b556cb0cd0 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -2408,6 +2408,9 @@ When selecting the *--state* group the following fields are returned:
for bank <index> in cache monitor <num>
* ``cpu.cache.monitor.<num>.bank.<index>.bytes`` - the number of bytes
of last level cache that the domain is using on cache bank <index>
+* ``cpu.load.1m`` - average load in guest for last 1 minute
+* ``cpu.load.5m`` - average load in guest for last 5 minutes
+* ``cpu.load.15m`` - average load in guest for last 15 minutes
*--balloon* returns:
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index 072cc3225579..35f5e926e52b 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -12272,6 +12272,9 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
* last level cache that the
* domain is using on cache
* bank <index>
+ * "cpu.load.1m" - average load in guest for last 1 minute
+ * "cpu.load.5m" - average load in guest for last 5 minutes
+ * "cpu.load.15m" - average load in guest for last 15 minutes
*
* VIR_DOMAIN_STATS_BALLOON:
* Return memory balloon device information.
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 43fca86f10ed..6dbe8c52d738 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -2568,3 +2568,62 @@ int qemuAgentGetDisks(qemuAgent *agent,
g_free(*disks);
return -1;
}
+
+
+int
+qemuAgentGetLoadAvg(qemuAgent *agent,
+ double *load1m,
+ double *load5m,
+ double *load15m,
+ bool report_unsupported)
+{
+ g_autoptr(virJSONValue) cmd = NULL;
+ g_autoptr(virJSONValue) reply = NULL;
+ virJSONValue *data = NULL;
+ int rc;
+
+ if (load1m)
+ *load1m = 0;
+
+ if (load5m)
+ *load5m = 0;
+
+ if (load15m)
+ *load15m = 0;
+
+ if (!(cmd = qemuAgentMakeCommand("guest-get-load", NULL)))
+ return -1;
+
+ if ((rc = qemuAgentCommandFull(agent, cmd, &reply, agent->timeout,
+ report_unsupported)) < 0)
+ return rc;
+
+ if (!(data = virJSONValueObjectGetObject(reply, "return"))) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("qemu agent didn't return an array of loads"));
+ return -1;
+ }
+
+ if (load1m &&
+ virJSONValueObjectGetNumberDouble(data, "load1m", load1m) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("'load1m' missing in reply of guest-get-load"));
+ return -1;
+ }
+
+ if (load5m &&
+ virJSONValueObjectGetNumberDouble(data, "load5m", load5m) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("'load5m' missing in reply of guest-get-load"));
+ return -1;
+ }
+
+ if (load15m &&
+ virJSONValueObjectGetNumberDouble(data, "load15m", load15m) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("'load15m' missing in reply of guest-get-load"));
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/src/qemu/qemu_agent.h b/src/qemu/qemu_agent.h
index f98586e8f8ab..cd17a98d3924 100644
--- a/src/qemu/qemu_agent.h
+++ b/src/qemu/qemu_agent.h
@@ -195,3 +195,9 @@ int qemuAgentSSHRemoveAuthorizedKeys(qemuAgent *agent,
int qemuAgentGetDisks(qemuAgent *mon,
qemuAgentDiskInfo ***disks,
bool report_unsupported);
+
+int qemuAgentGetLoadAvg(qemuAgent *agent,
+ double *load1m,
+ double *load5m,
+ double *load15m,
+ bool report_unsupported);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 80c918312b8f..d9279b3a5804 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16937,6 +16937,36 @@ qemuDomainGetStatsCpuHaltPollTime(virDomainObj *dom,
return;
}
+
+static void
+qemuDomainGetStatsCpuLoadAvg(virDomainObj *dom,
+ virTypedParamList *params,
+ unsigned int privflags)
+{
+ qemuAgent *agent = NULL;
+ double load1m = 0;
+ double load5m = 0;
+ double load15m = 0;
+ int rc = 0;
+
+ if (!HAVE_JOB(privflags) ||
+ !virDomainObjIsActive(dom) ||
+ !qemuDomainAgentAvailable(dom, false))
+ return;
+
+ agent = qemuDomainObjEnterAgent(dom);
+ rc = qemuAgentGetLoadAvg(agent, &load1m, &load5m, &load15m, false);
+ qemuDomainObjExitAgent(dom, agent);
+
+ if (rc < 0)
+ return;
+
+ virTypedParamListAddDouble(params, load1m, "cpu.load.1m");
+ virTypedParamListAddDouble(params, load5m, "cpu.load.5m");
+ virTypedParamListAddDouble(params, load15m, "cpu.load.15m");
+}
+
+
static void
qemuDomainGetStatsCpu(virQEMUDriver *driver,
virDomainObj *dom,
@@ -16954,6 +16984,8 @@ qemuDomainGetStatsCpu(virQEMUDriver *driver,
qemuDomainGetStatsCpuCache(driver, dom, params);
qemuDomainGetStatsCpuHaltPollTime(dom, params, privflags);
+
+ qemuDomainGetStatsCpuLoadAvg(dom, params, privflags);
}
diff --git a/tests/qemuagenttest.c b/tests/qemuagenttest.c
index 328788024197..566571cf1107 100644
--- a/tests/qemuagenttest.c
+++ b/tests/qemuagenttest.c
@@ -1356,6 +1356,58 @@ testQemuAgentTimezone(const void *data)
virTypedParamsFree(params, nparams);
return ret;
}
+
+
+static const char testQemuAgentGetLoadAvgResponse[] =
+ "{"
+ " \"return\": {"
+ " \"load15m\": 0.03564453125,"
+ " \"load5m\": 0.064453125,"
+ " \"load1m\": 0.00390625"
+ " }"
+ "}";
+
+static int
+testQemuAgentGetLoadAvg(const void *data)
+{
+ virDomainXMLOption *xmlopt = (virDomainXMLOption *)data;
+ g_autoptr(qemuMonitorTest) test = qemuMonitorTestNewAgent(xmlopt);
+ double load1m = 0;
+ double load5m = 0;
+ double load15m = 0;
+
+ if (!test)
+ return -1;
+
+ if (qemuMonitorTestAddAgentSyncResponse(test) < 0)
+ return -1;
+
+ if (qemuMonitorTestAddItem(test, "guest-get-load",
+ testQemuAgentGetLoadAvgResponse) < 0)
+ return -1;
+
+ if (qemuAgentGetLoadAvg(qemuMonitorTestGetAgent(test),
+ &load1m, &load5m, &load15m, true) < 0)
+ return -1;
+
+#define VALIDATE_LOAD(value_, expected_) \
+ do { \
+ if (value_ != expected_) { \
+ virReportError(VIR_ERR_INTERNAL_ERROR, \
+ "Expected " #value_ " '%.11f', got '%.11f'", \
+ expected_, value_); \
+ return -1; \
+ } \
+ } while (0)
+
+ VALIDATE_LOAD(load1m, 0.00390625);
+ VALIDATE_LOAD(load5m, 0.064453125);
+ VALIDATE_LOAD(load15m, 0.03564453125);
+
+ return 0;
+}
+
+
static int
mymain(void)
{
@@ -1392,6 +1444,7 @@ mymain(void)
DO_TEST(Timezone);
DO_TEST(SSHKeys);
DO_TEST(GetDisks);
+ DO_TEST(GetLoadAvg);
DO_TEST(Timeout); /* Timeout should always be called last */
--
2.48.1
2
2
If SGX memory model is configured for domain then we need to
allow QEMU access some additional files:
1) /dev/sgx_vepc needs to be RW
2) /dev/sgx_provision needs to be RO
We already do this in SELinux driver but not in AppArmor.
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/751
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
I've tested this successfully on my ubuntu machine.
src/security/virt-aa-helper.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 1626d5a89c..c255b64f35 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -1152,9 +1152,15 @@ get_files(vahControl * ctl)
if (vah_add_file(&buf, mem->source.virtio_pmem.path, "rw") != 0)
goto cleanup;
break;
+ case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC:
+ if (vah_add_file(&buf, DEV_SGX_VEPC, "rw") != 0 ||
+ vah_add_file(&buf, DEV_SGX_PROVISION, "r") != 0) {
+ goto cleanup;
+ }
+ break;
+
case VIR_DOMAIN_MEMORY_MODEL_DIMM:
case VIR_DOMAIN_MEMORY_MODEL_VIRTIO_MEM:
- case VIR_DOMAIN_MEMORY_MODEL_SGX_EPC:
case VIR_DOMAIN_MEMORY_MODEL_NONE:
case VIR_DOMAIN_MEMORY_MODEL_LAST:
break;
--
2.45.3
2
1
[PATCH] qemucapabilitiestest: Update 'caps_10.0.0_x86_64' to 'v9.2.0-1967-gb69801dd6b'
by Peter Krempa 24 Feb '25
by Peter Krempa 24 Feb '25
24 Feb '25
Notable changes:
- 'NETDEV_VHOST_USER_CONNECTED'/'NETDEV_VHOST_USER_DISCONNECTED' events
added
- 'handshake-max-seconds' argument for 'nbd-server-start' added
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
.../caps_10.0.0_x86_64.replies | 3631 +++++++++--------
.../caps_10.0.0_x86_64.xml | 2 +-
2 files changed, 1836 insertions(+), 1797 deletions(-)
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies
index a08546ae46..4ac65390b4 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies
@@ -20,7 +20,7 @@
"minor": 2,
"major": 9
},
- "package": "v9.2.0-1636-gffaf7f0376"
+ "package": "v9.2.0-1967-gb69801dd6b"
},
"id": "libvirt-2"
}
@@ -735,50 +735,60 @@
"arg-type": "110"
},
{
- "name": "request-ebpf",
- "ret-type": "112",
- "meta-type": "command",
+ "name": "NETDEV_VHOST_USER_CONNECTED",
+ "meta-type": "event",
"arg-type": "111"
},
{
- "name": "query-rocker",
+ "name": "NETDEV_VHOST_USER_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "112"
+ },
+ {
+ "name": "request-ebpf",
"ret-type": "114",
"meta-type": "command",
"arg-type": "113"
},
{
- "name": "query-rocker-ports",
- "ret-type": "[116]",
+ "name": "query-rocker",
+ "ret-type": "116",
"meta-type": "command",
"arg-type": "115"
},
{
- "name": "query-rocker-of-dpa-flows",
+ "name": "query-rocker-ports",
"ret-type": "[118]",
"meta-type": "command",
"arg-type": "117"
},
{
- "name": "query-rocker-of-dpa-groups",
+ "name": "query-rocker-of-dpa-flows",
"ret-type": "[120]",
"meta-type": "command",
"arg-type": "119"
},
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[122]",
+ "meta-type": "command",
+ "arg-type": "121"
+ },
{
"name": "query-tpm-models",
- "ret-type": "[121]",
+ "ret-type": "[123]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-tpm-types",
- "ret-type": "[122]",
+ "ret-type": "[124]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-tpm",
- "ret-type": "[123]",
+ "ret-type": "[125]",
"meta-type": "command",
"arg-type": "0"
},
@@ -786,40 +796,40 @@
"name": "set_password",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "124"
+ "arg-type": "126"
},
{
"name": "expire_password",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "125"
+ "arg-type": "127"
},
{
"name": "screendump",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "126"
+ "arg-type": "128"
},
{
"name": "query-spice",
- "ret-type": "127",
+ "ret-type": "129",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "SPICE_CONNECTED",
"meta-type": "event",
- "arg-type": "128"
+ "arg-type": "130"
},
{
"name": "SPICE_INITIALIZED",
"meta-type": "event",
- "arg-type": "129"
+ "arg-type": "131"
},
{
"name": "SPICE_DISCONNECTED",
"meta-type": "event",
- "arg-type": "130"
+ "arg-type": "132"
},
{
"name": "SPICE_MIGRATE_COMPLETED",
@@ -828,13 +838,13 @@
},
{
"name": "query-vnc",
- "ret-type": "131",
+ "ret-type": "133",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-vnc-servers",
- "ret-type": "[132]",
+ "ret-type": "[134]",
"meta-type": "command",
"arg-type": "0"
},
@@ -842,26 +852,26 @@
"name": "change-vnc-password",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "133"
+ "arg-type": "135"
},
{
"name": "VNC_CONNECTED",
"meta-type": "event",
- "arg-type": "134"
+ "arg-type": "136"
},
{
"name": "VNC_INITIALIZED",
"meta-type": "event",
- "arg-type": "135"
+ "arg-type": "137"
},
{
"name": "VNC_DISCONNECTED",
"meta-type": "event",
- "arg-type": "136"
+ "arg-type": "138"
},
{
"name": "query-mice",
- "ret-type": "[137]",
+ "ret-type": "[139]",
"meta-type": "command",
"arg-type": "0"
},
@@ -869,17 +879,17 @@
"name": "send-key",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "138"
+ "arg-type": "140"
},
{
"name": "input-send-event",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "139"
+ "arg-type": "141"
},
{
"name": "query-display-options",
- "ret-type": "140",
+ "ret-type": "142",
"meta-type": "command",
"arg-type": "0"
},
@@ -887,23 +897,23 @@
"name": "display-reload",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "141"
+ "arg-type": "143"
},
{
"name": "display-update",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "142"
+ "arg-type": "144"
},
{
"name": "client_migrate_info",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "143"
+ "arg-type": "145"
},
{
"name": "query-migrate",
- "ret-type": "144",
+ "ret-type": "146",
"meta-type": "command",
"arg-type": "0"
},
@@ -911,11 +921,11 @@
"name": "migrate-set-capabilities",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "145"
+ "arg-type": "147"
},
{
"name": "query-migrate-capabilities",
- "ret-type": "[146]",
+ "ret-type": "[148]",
"meta-type": "command",
"arg-type": "0"
},
@@ -923,11 +933,11 @@
"name": "migrate-set-parameters",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "147"
+ "arg-type": "149"
},
{
"name": "query-migrate-parameters",
- "ret-type": "148",
+ "ret-type": "150",
"meta-type": "command",
"arg-type": "0"
},
@@ -940,17 +950,17 @@
{
"name": "MIGRATION",
"meta-type": "event",
- "arg-type": "149"
+ "arg-type": "151"
},
{
"name": "MIGRATION_PASS",
"meta-type": "event",
- "arg-type": "150"
+ "arg-type": "152"
},
{
"name": "COLO_EXIT",
"meta-type": "event",
- "arg-type": "151"
+ "arg-type": "153"
},
{
"name": "x-colo-lost-heartbeat",
@@ -971,47 +981,47 @@
"name": "migrate-continue",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "152"
+ "arg-type": "154"
},
{
"name": "migrate",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "153"
+ "arg-type": "155"
},
{
"name": "migrate-incoming",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "154"
+ "arg-type": "156"
},
{
"name": "xen-save-devices-state",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "155"
+ "arg-type": "157"
},
{
"name": "xen-set-global-dirty-log",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "156"
+ "arg-type": "158"
},
{
"name": "xen-load-devices-state",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "157"
+ "arg-type": "159"
},
{
"name": "xen-set-replication",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "158"
+ "arg-type": "160"
},
{
"name": "query-xen-replication-status",
- "ret-type": "159",
+ "ret-type": "161",
"meta-type": "command",
"arg-type": "0"
},
@@ -1023,7 +1033,7 @@
},
{
"name": "query-colo-status",
- "ret-type": "160",
+ "ret-type": "162",
"meta-type": "command",
"arg-type": "0"
},
@@ -1032,7 +1042,7 @@
"ret-type": "0",
"allow-oob": true,
"meta-type": "command",
- "arg-type": "161"
+ "arg-type": "163"
},
{
"name": "migrate-pause",
@@ -1044,41 +1054,41 @@
{
"name": "UNPLUG_PRIMARY",
"meta-type": "event",
- "arg-type": "162"
+ "arg-type": "164"
},
{
"name": "calc-dirty-rate",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "163"
+ "arg-type": "165"
},
{
"name": "query-dirty-rate",
- "ret-type": "165",
+ "ret-type": "167",
"meta-type": "command",
- "arg-type": "164"
+ "arg-type": "166"
},
{
"name": "set-vcpu-dirty-limit",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "166"
+ "arg-type": "168"
},
{
"name": "cancel-vcpu-dirty-limit",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "167"
+ "arg-type": "169"
},
{
"name": "query-vcpu-dirty-limit",
- "ret-type": "[168]",
+ "ret-type": "[170]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-migrationthreads",
- "ret-type": "[169]",
+ "ret-type": "[171]",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1089,53 +1099,53 @@
"name": "snapshot-save",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "170"
+ "arg-type": "172"
},
{
"name": "snapshot-load",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "171"
+ "arg-type": "173"
},
{
"name": "snapshot-delete",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "172"
+ "arg-type": "174"
},
{
"name": "transaction",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "173"
+ "arg-type": "175"
},
{
"name": "trace-event-get-state",
- "ret-type": "[175]",
+ "ret-type": "[177]",
"meta-type": "command",
- "arg-type": "174"
+ "arg-type": "176"
},
{
"name": "trace-event-set-state",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "176"
+ "arg-type": "178"
},
{
"name": "qmp_capabilities",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "177"
+ "arg-type": "179"
},
{
"name": "query-version",
- "ret-type": "178",
+ "ret-type": "180",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-commands",
- "ret-type": "[179]",
+ "ret-type": "[181]",
"meta-type": "command",
"arg-type": "0"
},
@@ -1147,63 +1157,63 @@
},
{
"name": "query-qmp-schema",
- "ret-type": "[180]",
+ "ret-type": "[182]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "qom-list",
- "ret-type": "[182]",
+ "ret-type": "[184]",
"meta-type": "command",
- "arg-type": "181"
+ "arg-type": "183"
},
{
"name": "qom-get",
"ret-type": "any",
"meta-type": "command",
- "arg-type": "183"
+ "arg-type": "185"
},
{
"name": "qom-set",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "184"
+ "arg-type": "186"
},
{
"name": "qom-list-types",
- "ret-type": "[186]",
+ "ret-type": "[188]",
"meta-type": "command",
- "arg-type": "185"
+ "arg-type": "187"
},
{
"name": "qom-list-properties",
- "ret-type": "[182]",
+ "ret-type": "[184]",
"meta-type": "command",
- "arg-type": "187"
+ "arg-type": "189"
},
{
"name": "object-add",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "188"
+ "arg-type": "190"
},
{
"name": "object-del",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "189"
+ "arg-type": "191"
},
{
"name": "device-list-properties",
- "ret-type": "[182]",
+ "ret-type": "[184]",
"meta-type": "command",
- "arg-type": "190"
+ "arg-type": "192"
},
{
"name": "device_add",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "191",
+ "arg-type": "193",
"features": [
"json-cli",
"json-cli-hotplug"
@@ -1213,60 +1223,60 @@
"name": "device_del",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "192"
+ "arg-type": "194"
},
{
"name": "DEVICE_DELETED",
"meta-type": "event",
- "arg-type": "193"
+ "arg-type": "195"
},
{
"name": "DEVICE_UNPLUG_GUEST_ERROR",
"meta-type": "event",
- "arg-type": "194"
+ "arg-type": "196"
},
{
"name": "device-sync-config",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "195",
+ "arg-type": "197",
"features": [
"unstable"
]
},
{
"name": "query-cpus-fast",
- "ret-type": "[196]",
+ "ret-type": "[198]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-machines",
- "ret-type": "[198]",
+ "ret-type": "[200]",
"meta-type": "command",
- "arg-type": "197"
+ "arg-type": "199"
},
{
"name": "query-current-machine",
- "ret-type": "199",
+ "ret-type": "201",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-target",
- "ret-type": "200",
+ "ret-type": "202",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-uuid",
- "ret-type": "201",
+ "ret-type": "203",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-vm-generation-id",
- "ret-type": "202",
+ "ret-type": "204",
"meta-type": "command",
"arg-type": "0"
},
@@ -1296,7 +1306,7 @@
},
{
"name": "query-kvm",
- "ret-type": "203",
+ "ret-type": "205",
"meta-type": "command",
"arg-type": "0"
},
@@ -1304,23 +1314,23 @@
"name": "memsave",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "204"
+ "arg-type": "206"
},
{
"name": "pmemsave",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "205"
+ "arg-type": "207"
},
{
"name": "query-memdev",
- "ret-type": "[206]",
+ "ret-type": "[208]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-hotpluggable-cpus",
- "ret-type": "[207]",
+ "ret-type": "[209]",
"meta-type": "command",
"arg-type": "0"
},
@@ -1328,56 +1338,56 @@
"name": "set-numa-node",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "208"
+ "arg-type": "210"
},
{
"name": "balloon",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "209"
+ "arg-type": "211"
},
{
"name": "query-balloon",
- "ret-type": "210",
+ "ret-type": "212",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "BALLOON_CHANGE",
"meta-type": "event",
- "arg-type": "211"
+ "arg-type": "213"
},
{
"name": "query-hv-balloon-status-report",
- "ret-type": "212",
+ "ret-type": "214",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "HV_BALLOON_STATUS_REPORT",
"meta-type": "event",
- "arg-type": "212"
+ "arg-type": "214"
},
{
"name": "query-memory-size-summary",
- "ret-type": "213",
+ "ret-type": "215",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-memory-devices",
- "ret-type": "[214]",
+ "ret-type": "[216]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "MEMORY_DEVICE_SIZE_CHANGE",
"meta-type": "event",
- "arg-type": "215"
+ "arg-type": "217"
},
{
"name": "x-query-irq",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1386,7 +1396,7 @@
},
{
"name": "x-query-jit",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1395,7 +1405,7 @@
},
{
"name": "x-query-numa",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1404,7 +1414,7 @@
},
{
"name": "x-query-opcount",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1413,7 +1423,7 @@
},
{
"name": "x-query-ramblock",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1422,7 +1432,7 @@
},
{
"name": "x-query-roms",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1431,7 +1441,7 @@
},
{
"name": "x-query-usb",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1442,11 +1452,11 @@
"name": "dumpdtb",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "217"
+ "arg-type": "219"
},
{
"name": "x-query-interrupt-controllers",
- "ret-type": "216",
+ "ret-type": "218",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1455,19 +1465,19 @@
},
{
"name": "query-cpu-model-expansion",
- "ret-type": "223",
+ "ret-type": "225",
"meta-type": "command",
- "arg-type": "222"
+ "arg-type": "224"
},
{
"name": "query-cpu-definitions",
- "ret-type": "[224]",
+ "ret-type": "[226]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-replay",
- "ret-type": "228",
+ "ret-type": "230",
"meta-type": "command",
"arg-type": "0"
},
@@ -1475,7 +1485,7 @@
"name": "replay-break",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "229"
+ "arg-type": "231"
},
{
"name": "replay-delete-break",
@@ -1487,18 +1497,18 @@
"name": "replay-seek",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "230"
+ "arg-type": "232"
},
{
"name": "yank",
"ret-type": "0",
"allow-oob": true,
"meta-type": "command",
- "arg-type": "231"
+ "arg-type": "233"
},
{
"name": "query-yank",
- "ret-type": "[232]",
+ "ret-type": "[234]",
"allow-oob": true,
"meta-type": "command",
"arg-type": "0"
@@ -1507,17 +1517,17 @@
"name": "add_client",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "233"
+ "arg-type": "235"
},
{
"name": "query-name",
- "ret-type": "234",
+ "ret-type": "236",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-iothreads",
- "ret-type": "[235]",
+ "ret-type": "[237]",
"meta-type": "command",
"arg-type": "0"
},
@@ -1546,7 +1556,7 @@
"name": "human-monitor-command",
"ret-type": "str",
"meta-type": "command",
- "arg-type": "236",
+ "arg-type": "238",
"features": [
"savevm-monitor-nodes"
]
@@ -1555,47 +1565,47 @@
"name": "getfd",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "237"
+ "arg-type": "239"
},
{
"name": "closefd",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "239"
+ "arg-type": "241"
},
{
"name": "add-fd",
- "ret-type": "241",
+ "ret-type": "243",
"meta-type": "command",
- "arg-type": "240"
+ "arg-type": "242"
},
{
"name": "remove-fd",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "242"
+ "arg-type": "244"
},
{
"name": "query-fdsets",
- "ret-type": "[243]",
+ "ret-type": "[245]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-command-line-options",
- "ret-type": "[245]",
+ "ret-type": "[247]",
"meta-type": "command",
- "arg-type": "244"
+ "arg-type": "246"
},
{
"name": "RTC_CHANGE",
"meta-type": "event",
- "arg-type": "246"
+ "arg-type": "248"
},
{
"name": "VFU_CLIENT_HANGUP",
"meta-type": "event",
- "arg-type": "247"
+ "arg-type": "249"
},
{
"name": "rtc-reset-reinjection",
@@ -1605,19 +1615,19 @@
},
{
"name": "query-sev",
- "ret-type": "248",
+ "ret-type": "250",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-sev-launch-measure",
- "ret-type": "249",
+ "ret-type": "251",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-sev-capabilities",
- "ret-type": "250",
+ "ret-type": "252",
"meta-type": "command",
"arg-type": "0"
},
@@ -1625,29 +1635,29 @@
"name": "sev-inject-launch-secret",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "251"
+ "arg-type": "253"
},
{
"name": "query-sev-attestation-report",
- "ret-type": "253",
+ "ret-type": "255",
"meta-type": "command",
- "arg-type": "252"
+ "arg-type": "254"
},
{
"name": "query-sgx",
- "ret-type": "256",
+ "ret-type": "258",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-sgx-capabilities",
- "ret-type": "256",
+ "ret-type": "258",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "xen-event-list",
- "ret-type": "[257]",
+ "ret-type": "[259]",
"meta-type": "command",
"arg-type": "0"
},
@@ -1655,46 +1665,46 @@
"name": "xen-event-inject",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "258"
+ "arg-type": "260"
},
{
"name": "query-audiodevs",
- "ret-type": "[259]",
+ "ret-type": "[261]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-acpi-ospm-status",
- "ret-type": "[260]",
+ "ret-type": "[262]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "ACPI_DEVICE_OST",
"meta-type": "event",
- "arg-type": "261"
+ "arg-type": "263"
},
{
"name": "query-pci",
- "ret-type": "[262]",
+ "ret-type": "[264]",
"meta-type": "command",
"arg-type": "0"
},
{
"name": "query-stats",
- "ret-type": "[264]",
+ "ret-type": "[266]",
"meta-type": "command",
- "arg-type": "263"
+ "arg-type": "265"
},
{
"name": "query-stats-schemas",
- "ret-type": "[266]",
+ "ret-type": "[268]",
"meta-type": "command",
- "arg-type": "265"
+ "arg-type": "267"
},
{
"name": "x-query-virtio",
- "ret-type": "[267]",
+ "ret-type": "[269]",
"meta-type": "command",
"arg-type": "0",
"features": [
@@ -1703,36 +1713,36 @@
},
{
"name": "x-query-virtio-status",
- "ret-type": "269",
+ "ret-type": "271",
"meta-type": "command",
- "arg-type": "268",
+ "arg-type": "270",
"features": [
"unstable"
]
},
{
"name": "x-query-virtio-queue-status",
- "ret-type": "271",
+ "ret-type": "273",
"meta-type": "command",
- "arg-type": "270",
+ "arg-type": "272",
"features": [
"unstable"
]
},
{
"name": "x-query-virtio-vhost-queue-status",
- "ret-type": "273",
+ "ret-type": "275",
"meta-type": "command",
- "arg-type": "272",
+ "arg-type": "274",
"features": [
"unstable"
]
},
{
"name": "x-query-virtio-queue-element",
- "ret-type": "275",
+ "ret-type": "277",
"meta-type": "command",
- "arg-type": "274",
+ "arg-type": "276",
"features": [
"unstable"
]
@@ -1740,11 +1750,11 @@
{
"name": "VFIO_MIGRATION",
"meta-type": "event",
- "arg-type": "276"
+ "arg-type": "278"
},
{
"name": "query-cryptodev",
- "ret-type": "[277]",
+ "ret-type": "[279]",
"meta-type": "command",
"arg-type": "0"
},
@@ -1752,43 +1762,43 @@
"name": "cxl-inject-general-media-event",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "278"
+ "arg-type": "280"
},
{
"name": "cxl-inject-dram-event",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "279"
+ "arg-type": "281"
},
{
"name": "cxl-inject-memory-module-event",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "280"
+ "arg-type": "282"
},
{
"name": "cxl-inject-poison",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "281"
+ "arg-type": "283"
},
{
"name": "cxl-inject-uncorrectable-errors",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "282"
+ "arg-type": "284"
},
{
"name": "cxl-inject-correctable-error",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "283"
+ "arg-type": "285"
},
{
"name": "cxl-add-dynamic-capacity",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "284",
+ "arg-type": "286",
"features": [
"unstable"
]
@@ -1797,7 +1807,7 @@
"name": "cxl-release-dynamic-capacity",
"ret-type": "0",
"meta-type": "command",
- "arg-type": "285",
+ "arg-type": "287",
"features": [
"unstable"
]
@@ -1816,7 +1826,7 @@
},
{
"name": "status",
- "type": "286"
+ "type": "288"
}
],
"meta-type": "object"
@@ -1830,7 +1840,7 @@
},
{
"name": "reason",
- "type": "287"
+ "type": "289"
}
],
"meta-type": "object"
@@ -1844,7 +1854,7 @@
},
{
"name": "reason",
- "type": "287"
+ "type": "289"
}
],
"meta-type": "object"
@@ -1854,7 +1864,7 @@
"members": [
{
"name": "action",
- "type": "288"
+ "type": "290"
}
],
"meta-type": "object"
@@ -1864,7 +1874,7 @@
"members": [
{
"name": "action",
- "type": "288"
+ "type": "290"
}
],
"meta-type": "object"
@@ -1875,22 +1885,22 @@
{
"name": "reboot",
"default": null,
- "type": "289"
+ "type": "291"
},
{
"name": "shutdown",
"default": null,
- "type": "290"
+ "type": "292"
},
{
"name": "panic",
"default": null,
- "type": "291"
+ "type": "293"
},
{
"name": "watchdog",
"default": null,
- "type": "288"
+ "type": "290"
}
],
"meta-type": "object"
@@ -1900,12 +1910,12 @@
"members": [
{
"name": "action",
- "type": "292"
+ "type": "294"
},
{
"name": "info",
"default": null,
- "type": "293"
+ "type": "295"
}
],
"meta-type": "object"
@@ -1915,12 +1925,12 @@
"members": [
{
"name": "action",
- "type": "292"
+ "type": "294"
},
{
"name": "info",
"default": null,
- "type": "293"
+ "type": "295"
}
],
"meta-type": "object"
@@ -1930,15 +1940,15 @@
"members": [
{
"name": "recipient",
- "type": "294"
+ "type": "296"
},
{
"name": "action",
- "type": "295"
+ "type": "297"
},
{
"name": "flags",
- "type": "296"
+ "type": "298"
}
],
"meta-type": "object"
@@ -1952,7 +1962,7 @@
},
{
"name": "status",
- "type": "297"
+ "type": "299"
}
],
"meta-type": "object"
@@ -2031,11 +2041,11 @@
},
{
"name": "type",
- "type": "298"
+ "type": "300"
},
{
"name": "status",
- "type": "297"
+ "type": "299"
},
{
"name": "current-progress",
@@ -2196,7 +2206,7 @@
{
"name": "read-only-mode",
"default": null,
- "type": "299"
+ "type": "301"
}
],
"meta-type": "object"
@@ -2423,7 +2433,7 @@
{
"name": "io-status",
"default": null,
- "type": "300"
+ "type": "302"
}
],
"meta-type": "object"
@@ -2464,12 +2474,12 @@
},
{
"name": "stats",
- "type": "301"
+ "type": "303"
},
{
"name": "driver-specific",
"default": null,
- "type": "302"
+ "type": "304"
},
{
"name": "parent",
@@ -2495,7 +2505,7 @@
"variants": [
{
"case": "mirror",
- "type": "303"
+ "type": "305"
},
{
"case": "commit",
@@ -2533,7 +2543,7 @@
"members": [
{
"name": "type",
- "type": "298"
+ "type": "300"
},
{
"name": "device",
@@ -2561,7 +2571,7 @@
},
{
"name": "io-status",
- "type": "300"
+ "type": "302"
},
{
"name": "ready",
@@ -2569,7 +2579,7 @@
},
{
"name": "status",
- "type": "297"
+ "type": "299"
},
{
"name": "auto-finalize",
@@ -2637,7 +2647,7 @@
{
"name": "mode",
"default": null,
- "type": "304"
+ "type": "306"
}
],
"meta-type": "object"
@@ -2730,7 +2740,7 @@
{
"name": "on-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "filter-node-name",
@@ -2764,7 +2774,7 @@
},
{
"name": "sync",
- "type": "306"
+ "type": "308"
},
{
"name": "speed",
@@ -2779,7 +2789,7 @@
{
"name": "bitmap-mode",
"default": null,
- "type": "307"
+ "type": "309"
},
{
"name": "compress",
@@ -2789,12 +2799,12 @@
{
"name": "on-source-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "on-target-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "auto-finalize",
@@ -2819,7 +2829,7 @@
{
"name": "x-perf",
"default": null,
- "type": "308",
+ "type": "310",
"features": [
"unstable"
]
@@ -2836,7 +2846,7 @@
{
"name": "mode",
"default": null,
- "type": "304"
+ "type": "306"
}
],
"meta-type": "object"
@@ -2855,7 +2865,7 @@
},
{
"name": "sync",
- "type": "306"
+ "type": "308"
},
{
"name": "speed",
@@ -2870,7 +2880,7 @@
{
"name": "bitmap-mode",
"default": null,
- "type": "307"
+ "type": "309"
},
{
"name": "compress",
@@ -2880,12 +2890,12 @@
{
"name": "on-source-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "on-target-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "auto-finalize",
@@ -2910,7 +2920,7 @@
{
"name": "x-perf",
"default": null,
- "type": "308",
+ "type": "310",
"features": [
"unstable"
]
@@ -2977,7 +2987,7 @@
},
{
"name": "detect_zeroes",
- "type": "309"
+ "type": "311"
},
{
"name": "bps",
@@ -3005,7 +3015,7 @@
},
{
"name": "image",
- "type": "310"
+ "type": "312"
},
{
"name": "bps_max",
@@ -3079,7 +3089,7 @@
},
{
"name": "cache",
- "type": "311"
+ "type": "313"
},
{
"name": "write_threshold",
@@ -3088,7 +3098,7 @@
{
"name": "dirty-bitmaps",
"default": null,
- "type": "[312]"
+ "type": "[314]"
}
],
"meta-type": "object"
@@ -3098,11 +3108,11 @@
"members": [
{
"name": "nodes",
- "type": "[313]"
+ "type": "[315]"
},
{
"name": "edges",
- "type": "[314]"
+ "type": "[316]"
}
],
"meta-type": "object"
@@ -3140,12 +3150,12 @@
},
{
"name": "sync",
- "type": "306"
+ "type": "308"
},
{
"name": "mode",
"default": null,
- "type": "304"
+ "type": "306"
},
{
"name": "speed",
@@ -3165,12 +3175,12 @@
{
"name": "on-source-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "on-target-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "unmap",
@@ -3180,7 +3190,7 @@
{
"name": "copy-mode",
"default": null,
- "type": "315"
+ "type": "317"
},
{
"name": "auto-finalize",
@@ -3251,7 +3261,7 @@
},
{
"name": "bitmaps",
- "type": "[316]"
+ "type": "[318]"
}
],
"meta-type": "object"
@@ -3289,7 +3299,7 @@
},
{
"name": "sync",
- "type": "306"
+ "type": "308"
},
{
"name": "speed",
@@ -3309,12 +3319,12 @@
{
"name": "on-source-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "on-target-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "filter-node-name",
@@ -3324,7 +3334,7 @@
{
"name": "copy-mode",
"default": null,
- "type": "315"
+ "type": "317"
},
{
"name": "auto-finalize",
@@ -3384,7 +3394,7 @@
{
"name": "on-error",
"default": null,
- "type": "305"
+ "type": "307"
},
{
"name": "filter-node-name",
@@ -3489,7 +3499,7 @@
"variants": [
{
"case": "mirror",
- "type": "317"
+ "type": "319"
},
{
"case": "commit",
@@ -3531,7 +3541,7 @@
},
{
"name": "type",
- "type": "298"
+ "type": "300"
}
],
"meta-type": "object"
@@ -3542,197 +3552,197 @@
"variants": [
{
"case": "blkdebug",
- "type": "321"
+ "type": "323"
},
{
"case": "blklogwrites",
- "type": "322"
+ "type": "324"
},
{
"case": "blkverify",
- "type": "323"
+ "type": "325"
},
{
"case": "blkreplay",
- "type": "324"
+ "type": "326"
},
{
"case": "bochs",
- "type": "325"
+ "type": "327"
},
{
"case": "cloop",
- "type": "325"
+ "type": "327"
},
{
"case": "compress",
- "type": "325"
+ "type": "327"
},
{
"case": "copy-before-write",
- "type": "326"
+ "type": "328"
},
{
"case": "copy-on-read",
- "type": "327"
+ "type": "329"
},
{
"case": "dmg",
- "type": "325"
+ "type": "327"
},
{
"case": "file",
- "type": "328"
+ "type": "330"
},
{
"case": "ftp",
- "type": "329"
+ "type": "331"
},
{
"case": "ftps",
- "type": "330"
+ "type": "332"
},
{
"case": "gluster",
- "type": "331"
+ "type": "333"
},
{
"case": "host_cdrom",
- "type": "328"
+ "type": "330"
},
{
"case": "host_device",
- "type": "328"
+ "type": "330"
},
{
"case": "http",
- "type": "332"
+ "type": "334"
},
{
"case": "https",
- "type": "333"
+ "type": "335"
},
{
"case": "io_uring",
- "type": "334"
+ "type": "336"
},
{
"case": "iscsi",
- "type": "335"
+ "type": "337"
},
{
"case": "luks",
- "type": "336"
+ "type": "338"
},
{
"case": "nbd",
- "type": "337"
+ "type": "339"
},
{
"case": "nfs",
- "type": "338"
+ "type": "340"
},
{
"case": "null-aio",
- "type": "339"
+ "type": "341"
},
{
"case": "null-co",
- "type": "339"
+ "type": "341"
},
{
"case": "nvme",
- "type": "340"
+ "type": "342"
},
{
"case": "nvme-io_uring",
- "type": "341"
+ "type": "343"
},
{
"case": "parallels",
- "type": "325"
+ "type": "327"
},
{
"case": "preallocate",
- "type": "342"
+ "type": "344"
},
{
"case": "qcow2",
- "type": "343"
+ "type": "345"
},
{
"case": "qcow",
- "type": "344"
+ "type": "346"
},
{
"case": "qed",
- "type": "345"
+ "type": "347"
},
{
"case": "quorum",
- "type": "346"
+ "type": "348"
},
{
"case": "raw",
- "type": "347"
+ "type": "349"
},
{
"case": "rbd",
- "type": "348"
+ "type": "350"
},
{
"case": "replication",
- "type": "349"
+ "type": "351"
},
{
"case": "snapshot-access",
- "type": "325"
+ "type": "327"
},
{
"case": "ssh",
- "type": "350"
+ "type": "352"
},
{
"case": "throttle",
- "type": "351"
+ "type": "353"
},
{
"case": "vdi",
- "type": "325"
+ "type": "327"
},
{
"case": "vhdx",
- "type": "325"
+ "type": "327"
},
{
"case": "virtio-blk-vfio-pci",
- "type": "352"
+ "type": "354"
},
{
"case": "virtio-blk-vhost-user",
- "type": "353"
+ "type": "355"
},
{
"case": "virtio-blk-vhost-vdpa",
- "type": "354"
+ "type": "356"
},
{
"case": "vmdk",
- "type": "345"
+ "type": "347"
},
{
"case": "vpc",
- "type": "325"
+ "type": "327"
},
{
"case": "vvfat",
- "type": "355"
+ "type": "357"
}
],
"members": [
{
"name": "driver",
- "type": "318"
+ "type": "320"
},
{
"name": "node-name",
@@ -3742,12 +3752,12 @@
{
"name": "discard",
"default": null,
- "type": "319"
+ "type": "321"
},
{
"name": "cache",
"default": null,
- "type": "320"
+ "type": "322"
},
{
"name": "active",
@@ -3772,7 +3782,7 @@
{
"name": "detect-zeroes",
"default": null,
- "type": "309"
+ "type": "311"
}
],
"meta-type": "object"
@@ -3821,7 +3831,7 @@
},
{
"name": "options",
- "type": "356"
+ "type": "358"
}
],
"meta-type": "object"
@@ -3839,7 +3849,7 @@
},
{
"name": "options",
- "type": "357"
+ "type": "359"
},
{
"name": "force",
@@ -3900,11 +3910,11 @@
},
{
"name": "operation",
- "type": "358"
+ "type": "360"
},
{
"name": "action",
- "type": "359"
+ "type": "361"
},
{
"name": "nospace",
@@ -3923,7 +3933,7 @@
"members": [
{
"name": "type",
- "type": "298"
+ "type": "300"
},
{
"name": "device",
@@ -3954,7 +3964,7 @@
"members": [
{
"name": "type",
- "type": "298"
+ "type": "300"
},
{
"name": "device",
@@ -3984,11 +3994,11 @@
},
{
"name": "operation",
- "type": "358"
+ "type": "360"
},
{
"name": "action",
- "type": "359"
+ "type": "361"
}
],
"meta-type": "object"
@@ -3998,7 +4008,7 @@
"members": [
{
"name": "type",
- "type": "298"
+ "type": "300"
},
{
"name": "device",
@@ -4024,7 +4034,7 @@
"members": [
{
"name": "type",
- "type": "298"
+ "type": "300"
},
{
"name": "id",
@@ -4094,7 +4104,7 @@
},
{
"name": "iothread",
- "type": "360"
+ "type": "362"
},
{
"name": "force",
@@ -4127,7 +4137,7 @@
"members": [
{
"name": "type",
- "type": "361"
+ "type": "363"
},
{
"name": "error",
@@ -4227,7 +4237,12 @@
"members": [
{
"name": "addr",
- "type": "362"
+ "type": "364"
+ },
+ {
+ "name": "handshake-max-seconds",
+ "default": null,
+ "type": "int"
},
{
"name": "tls-creds",
@@ -4287,7 +4302,7 @@
{
"name": "mode",
"default": null,
- "type": "363"
+ "type": "365"
}
],
"meta-type": "object"
@@ -4298,25 +4313,25 @@
"variants": [
{
"case": "nbd",
- "type": "365"
+ "type": "367"
},
{
"case": "vhost-user-blk",
- "type": "366"
+ "type": "368"
},
{
"case": "fuse",
- "type": "367"
+ "type": "369"
},
{
"case": "vduse-blk",
- "type": "368"
+ "type": "370"
}
],
"members": [
{
"name": "type",
- "type": "364"
+ "type": "366"
},
{
"name": "id",
@@ -4364,7 +4379,7 @@
{
"name": "mode",
"default": null,
- "type": "363"
+ "type": "365"
}
],
"meta-type": "object"
@@ -4393,7 +4408,7 @@
},
{
"name": "type",
- "type": "364"
+ "type": "366"
},
{
"name": "node-name",
@@ -4458,7 +4473,7 @@
{
"name": "format",
"default": null,
- "type": "369"
+ "type": "371"
}
],
"meta-type": "object"
@@ -4477,7 +4492,7 @@
{
"name": "format",
"default": null,
- "type": "369"
+ "type": "371"
}
],
"meta-type": "object"
@@ -4496,7 +4511,7 @@
},
{
"name": "backend",
- "type": "370"
+ "type": "372"
}
],
"meta-type": "object"
@@ -4521,7 +4536,7 @@
},
{
"name": "backend",
- "type": "370"
+ "type": "372"
}
],
"meta-type": "object"
@@ -4589,7 +4604,7 @@
{
"name": "format",
"default": null,
- "type": "371"
+ "type": "373"
}
],
"meta-type": "object"
@@ -4599,7 +4614,7 @@
"members": [
{
"name": "status",
- "type": "372"
+ "type": "374"
},
{
"name": "completed",
@@ -4632,7 +4647,7 @@
"members": [
{
"name": "formats",
- "type": "[371]"
+ "type": "[373]"
}
],
"meta-type": "object"
@@ -4657,55 +4672,55 @@
"variants": [
{
"case": "nic",
- "type": "374"
+ "type": "376"
},
{
"case": "user",
- "type": "375"
+ "type": "377"
},
{
"case": "tap",
- "type": "376"
+ "type": "378"
},
{
"case": "l2tpv3",
- "type": "377"
+ "type": "379"
},
{
"case": "socket",
- "type": "378"
+ "type": "380"
},
{
"case": "stream",
- "type": "379"
+ "type": "381"
},
{
"case": "dgram",
- "type": "380"
+ "type": "382"
},
{
"case": "vde",
- "type": "381"
+ "type": "383"
},
{
"case": "bridge",
- "type": "382"
+ "type": "384"
},
{
"case": "hubport",
- "type": "383"
+ "type": "385"
},
{
"case": "netmap",
- "type": "384"
+ "type": "386"
},
{
"case": "vhost-user",
- "type": "386"
+ "type": "388"
},
{
"case": "vhost-vdpa",
- "type": "387"
+ "type": "389"
},
{
"case": "none",
@@ -4719,7 +4734,7 @@
},
{
"name": "type",
- "type": "373"
+ "type": "375"
}
],
"meta-type": "object"
@@ -4763,15 +4778,15 @@
},
{
"name": "multicast",
- "type": "391"
+ "type": "393"
},
{
"name": "unicast",
- "type": "391"
+ "type": "393"
},
{
"name": "vlan",
- "type": "391"
+ "type": "393"
},
{
"name": "broadcast-allowed",
@@ -4870,7 +4885,7 @@
},
{
"name": "addr",
- "type": "392"
+ "type": "394"
}
],
"meta-type": "object"
@@ -4889,8 +4904,12 @@
"name": "111",
"members": [
{
- "name": "id",
- "type": "393"
+ "name": "netdev-id",
+ "type": "str"
+ },
+ {
+ "name": "chardev-id",
+ "type": "str"
}
],
"meta-type": "object"
@@ -4899,7 +4918,7 @@
"name": "112",
"members": [
{
- "name": "object",
+ "name": "netdev-id",
"type": "str"
}
],
@@ -4907,6 +4926,26 @@
},
{
"name": "113",
+ "members": [
+ {
+ "name": "id",
+ "type": "395"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "114",
+ "members": [
+ {
+ "name": "object",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "115",
"members": [
{
"name": "name",
@@ -4916,7 +4955,7 @@
"meta-type": "object"
},
{
- "name": "114",
+ "name": "116",
"members": [
{
"name": "name",
@@ -4934,7 +4973,7 @@
"meta-type": "object"
},
{
- "name": "115",
+ "name": "117",
"members": [
{
"name": "name",
@@ -4944,12 +4983,12 @@
"meta-type": "object"
},
{
- "name": "[116]",
- "element-type": "116",
+ "name": "[118]",
+ "element-type": "118",
"meta-type": "array"
},
{
- "name": "116",
+ "name": "118",
"members": [
{
"name": "name",
@@ -4969,17 +5008,17 @@
},
{
"name": "duplex",
- "type": "394"
+ "type": "396"
},
{
"name": "autoneg",
- "type": "395"
+ "type": "397"
}
],
"meta-type": "object"
},
{
- "name": "117",
+ "name": "119",
"members": [
{
"name": "name",
@@ -4994,12 +5033,12 @@
"meta-type": "object"
},
{
- "name": "[118]",
- "element-type": "118",
+ "name": "[120]",
+ "element-type": "120",
"meta-type": "array"
},
{
- "name": "118",
+ "name": "120",
"members": [
{
"name": "cookie",
@@ -5011,21 +5050,21 @@
},
{
"name": "key",
- "type": "396"
+ "type": "398"
},
{
"name": "mask",
- "type": "397"
+ "type": "399"
},
{
"name": "action",
- "type": "398"
+ "type": "400"
}
],
"meta-type": "object"
},
{
- "name": "119",
+ "name": "121",
"members": [
{
"name": "name",
@@ -5040,12 +5079,12 @@
"meta-type": "object"
},
{
- "name": "[120]",
- "element-type": "120",
+ "name": "[122]",
+ "element-type": "122",
"meta-type": "array"
},
{
- "name": "120",
+ "name": "122",
"members": [
{
"name": "id",
@@ -5114,12 +5153,12 @@
"meta-type": "object"
},
{
- "name": "[121]",
- "element-type": "121",
+ "name": "[123]",
+ "element-type": "123",
"meta-type": "array"
},
{
- "name": "121",
+ "name": "123",
"members": [
{
"name": "tpm-tis"
@@ -5139,12 +5178,12 @@
]
},
{
- "name": "[122]",
- "element-type": "122",
+ "name": "[124]",
+ "element-type": "124",
"meta-type": "array"
},
{
- "name": "122",
+ "name": "124",
"members": [
{
"name": "passthrough"
@@ -5160,12 +5199,12 @@
]
},
{
- "name": "[123]",
- "element-type": "123",
+ "name": "[125]",
+ "element-type": "125",
"meta-type": "array"
},
{
- "name": "123",
+ "name": "125",
"members": [
{
"name": "id",
@@ -5173,22 +5212,22 @@
},
{
"name": "model",
- "type": "121"
+ "type": "123"
},
{
"name": "options",
- "type": "399"
+ "type": "401"
}
],
"meta-type": "object"
},
{
- "name": "124",
+ "name": "126",
"tag": "protocol",
"variants": [
{
"case": "vnc",
- "type": "402"
+ "type": "404"
},
{
"case": "spice",
@@ -5198,7 +5237,7 @@
"members": [
{
"name": "protocol",
- "type": "400"
+ "type": "402"
},
{
"name": "password",
@@ -5207,18 +5246,18 @@
{
"name": "connected",
"default": null,
- "type": "401"
+ "type": "403"
}
],
"meta-type": "object"
},
{
- "name": "125",
+ "name": "127",
"tag": "protocol",
"variants": [
{
"case": "vnc",
- "type": "403"
+ "type": "405"
},
{
"case": "spice",
@@ -5228,7 +5267,7 @@
"members": [
{
"name": "protocol",
- "type": "400"
+ "type": "402"
},
{
"name": "time",
@@ -5238,7 +5277,7 @@
"meta-type": "object"
},
{
- "name": "126",
+ "name": "128",
"members": [
{
"name": "filename",
@@ -5257,13 +5296,13 @@
{
"name": "format",
"default": null,
- "type": "404"
+ "type": "406"
}
],
"meta-type": "object"
},
{
- "name": "127",
+ "name": "129",
"members": [
{
"name": "enabled",
@@ -5300,60 +5339,60 @@
},
{
"name": "mouse-mode",
- "type": "405"
+ "type": "407"
},
{
"name": "channels",
"default": null,
- "type": "[406]"
+ "type": "[408]"
}
],
"meta-type": "object"
},
{
- "name": "128",
+ "name": "130",
"members": [
{
"name": "server",
- "type": "407"
+ "type": "409"
},
{
"name": "client",
- "type": "407"
+ "type": "409"
}
],
"meta-type": "object"
},
{
- "name": "129",
+ "name": "131",
"members": [
{
"name": "server",
- "type": "408"
+ "type": "410"
},
{
"name": "client",
- "type": "406"
+ "type": "408"
}
],
"meta-type": "object"
},
{
- "name": "130",
+ "name": "132",
"members": [
{
"name": "server",
- "type": "407"
+ "type": "409"
},
{
"name": "client",
- "type": "407"
+ "type": "409"
}
],
"meta-type": "object"
},
{
- "name": "131",
+ "name": "133",
"members": [
{
"name": "enabled",
@@ -5367,7 +5406,7 @@
{
"name": "family",
"default": null,
- "type": "409"
+ "type": "411"
},
{
"name": "service",
@@ -5382,18 +5421,18 @@
{
"name": "clients",
"default": null,
- "type": "[410]"
+ "type": "[412]"
}
],
"meta-type": "object"
},
{
- "name": "[132]",
- "element-type": "132",
+ "name": "[134]",
+ "element-type": "134",
"meta-type": "array"
},
{
- "name": "132",
+ "name": "134",
"members": [
{
"name": "id",
@@ -5401,20 +5440,20 @@
},
{
"name": "server",
- "type": "[411]"
+ "type": "[413]"
},
{
"name": "clients",
- "type": "[410]"
+ "type": "[412]"
},
{
"name": "auth",
- "type": "412"
+ "type": "414"
},
{
"name": "vencrypt",
"default": null,
- "type": "413"
+ "type": "415"
},
{
"name": "display",
@@ -5425,7 +5464,7 @@
"meta-type": "object"
},
{
- "name": "133",
+ "name": "135",
"members": [
{
"name": "password",
@@ -5435,54 +5474,54 @@
"meta-type": "object"
},
{
- "name": "134",
+ "name": "136",
"members": [
{
"name": "server",
- "type": "414"
+ "type": "416"
},
{
"name": "client",
- "type": "415"
+ "type": "417"
}
],
"meta-type": "object"
},
{
- "name": "135",
+ "name": "137",
"members": [
{
"name": "server",
- "type": "414"
+ "type": "416"
},
{
"name": "client",
- "type": "410"
+ "type": "412"
}
],
"meta-type": "object"
},
{
- "name": "136",
+ "name": "138",
"members": [
{
"name": "server",
- "type": "414"
+ "type": "416"
},
{
"name": "client",
- "type": "410"
+ "type": "412"
}
],
"meta-type": "object"
},
{
- "name": "[137]",
- "element-type": "137",
+ "name": "[139]",
+ "element-type": "139",
"meta-type": "array"
},
{
- "name": "137",
+ "name": "139",
"members": [
{
"name": "name",
@@ -5504,11 +5543,11 @@
"meta-type": "object"
},
{
- "name": "138",
+ "name": "140",
"members": [
{
"name": "keys",
- "type": "[416]"
+ "type": "[418]"
},
{
"name": "hold-time",
@@ -5519,7 +5558,7 @@
"meta-type": "object"
},
{
- "name": "139",
+ "name": "141",
"members": [
{
"name": "device",
@@ -5533,30 +5572,30 @@
},
{
"name": "events",
- "type": "[417]"
+ "type": "[419]"
}
],
"meta-type": "object"
},
{
- "name": "140",
+ "name": "142",
"tag": "type",
"variants": [
{
"case": "curses",
- "type": "422"
+ "type": "424"
},
{
"case": "egl-headless",
- "type": "423"
+ "type": "425"
},
{
"case": "dbus",
- "type": "424"
+ "type": "426"
},
{
"case": "sdl",
- "type": "425"
+ "type": "427"
},
{
"case": "default",
@@ -5574,7 +5613,7 @@
"members": [
{
"name": "type",
- "type": "418"
+ "type": "420"
},
{
"name": "full-screen",
@@ -5594,47 +5633,47 @@
{
"name": "gl",
"default": null,
- "type": "419"
+ "type": "421"
}
],
"meta-type": "object"
},
{
- "name": "141",
+ "name": "143",
"tag": "type",
"variants": [
{
"case": "vnc",
- "type": "427"
+ "type": "429"
}
],
"members": [
{
"name": "type",
- "type": "426"
+ "type": "428"
}
],
"meta-type": "object"
},
{
- "name": "142",
+ "name": "144",
"tag": "type",
"variants": [
{
"case": "vnc",
- "type": "429"
+ "type": "431"
}
],
"members": [
{
"name": "type",
- "type": "428"
+ "type": "430"
}
],
"meta-type": "object"
},
{
- "name": "143",
+ "name": "145",
"members": [
{
"name": "protocol",
@@ -5663,27 +5702,27 @@
"meta-type": "object"
},
{
- "name": "144",
+ "name": "146",
"members": [
{
"name": "status",
"default": null,
- "type": "430"
+ "type": "432"
},
{
"name": "ram",
"default": null,
- "type": "431"
+ "type": "433"
},
{
"name": "vfio",
"default": null,
- "type": "432"
+ "type": "434"
},
{
"name": "xbzrle-cache",
"default": null,
- "type": "433"
+ "type": "435"
},
{
"name": "total-time",
@@ -5733,7 +5772,7 @@
{
"name": "socket-address",
"default": null,
- "type": "[392]"
+ "type": "[394]"
},
{
"name": "dirty-limit-throttle-time-per-round",
@@ -5749,26 +5788,26 @@
"meta-type": "object"
},
{
- "name": "145",
+ "name": "147",
"members": [
{
"name": "capabilities",
- "type": "[146]"
+ "type": "[148]"
}
],
"meta-type": "object"
},
{
- "name": "[146]",
- "element-type": "146",
+ "name": "[148]",
+ "element-type": "148",
"meta-type": "array"
},
{
- "name": "146",
+ "name": "148",
"members": [
{
"name": "capability",
- "type": "434"
+ "type": "436"
},
{
"name": "state",
@@ -5778,7 +5817,7 @@
"meta-type": "object"
},
{
- "name": "147",
+ "name": "149",
"members": [
{
"name": "announce-initial",
@@ -5823,17 +5862,17 @@
{
"name": "tls-creds",
"default": null,
- "type": "360"
+ "type": "362"
},
{
"name": "tls-hostname",
"default": null,
- "type": "360"
+ "type": "362"
},
{
"name": "tls-authz",
"default": null,
- "type": "360"
+ "type": "362"
},
{
"name": "max-bandwidth",
@@ -5881,7 +5920,7 @@
{
"name": "multifd-compression",
"default": null,
- "type": "435"
+ "type": "437"
},
{
"name": "multifd-zlib-level",
@@ -5901,7 +5940,7 @@
{
"name": "block-bitmap-mapping",
"default": null,
- "type": "[436]"
+ "type": "[438]"
},
{
"name": "x-vcpu-dirty-limit-period",
@@ -5919,12 +5958,12 @@
{
"name": "mode",
"default": null,
- "type": "437"
+ "type": "439"
},
{
"name": "zero-page-detection",
"default": null,
- "type": "438"
+ "type": "440"
},
{
"name": "direct-io",
@@ -5935,7 +5974,7 @@
"meta-type": "object"
},
{
- "name": "148",
+ "name": "150",
"members": [
{
"name": "announce-initial",
@@ -6038,7 +6077,7 @@
{
"name": "multifd-compression",
"default": null,
- "type": "435"
+ "type": "437"
},
{
"name": "multifd-zlib-level",
@@ -6058,7 +6097,7 @@
{
"name": "block-bitmap-mapping",
"default": null,
- "type": "[436]"
+ "type": "[438]"
},
{
"name": "x-vcpu-dirty-limit-period",
@@ -6076,12 +6115,12 @@
{
"name": "mode",
"default": null,
- "type": "437"
+ "type": "439"
},
{
"name": "zero-page-detection",
"default": null,
- "type": "438"
+ "type": "440"
},
{
"name": "direct-io",
@@ -6092,17 +6131,17 @@
"meta-type": "object"
},
{
- "name": "149",
+ "name": "151",
"members": [
{
"name": "status",
- "type": "430"
+ "type": "432"
}
],
"meta-type": "object"
},
{
- "name": "150",
+ "name": "152",
"members": [
{
"name": "pass",
@@ -6112,31 +6151,31 @@
"meta-type": "object"
},
{
- "name": "151",
+ "name": "153",
"members": [
{
"name": "mode",
- "type": "439"
+ "type": "441"
},
{
"name": "reason",
- "type": "440"
+ "type": "442"
}
],
"meta-type": "object"
},
{
- "name": "152",
+ "name": "154",
"members": [
{
"name": "state",
- "type": "430"
+ "type": "432"
}
],
"meta-type": "object"
},
{
- "name": "153",
+ "name": "155",
"members": [
{
"name": "uri",
@@ -6146,7 +6185,7 @@
{
"name": "channels",
"default": null,
- "type": "[441]"
+ "type": "[443]"
},
{
"name": "detach",
@@ -6162,7 +6201,7 @@
"meta-type": "object"
},
{
- "name": "154",
+ "name": "156",
"members": [
{
"name": "uri",
@@ -6172,7 +6211,7 @@
{
"name": "channels",
"default": null,
- "type": "[441]"
+ "type": "[443]"
},
{
"name": "exit-on-error",
@@ -6183,7 +6222,7 @@
"meta-type": "object"
},
{
- "name": "155",
+ "name": "157",
"members": [
{
"name": "filename",
@@ -6198,7 +6237,7 @@
"meta-type": "object"
},
{
- "name": "156",
+ "name": "158",
"members": [
{
"name": "enable",
@@ -6208,7 +6247,7 @@
"meta-type": "object"
},
{
- "name": "157",
+ "name": "159",
"members": [
{
"name": "filename",
@@ -6218,7 +6257,7 @@
"meta-type": "object"
},
{
- "name": "158",
+ "name": "160",
"members": [
{
"name": "enable",
@@ -6237,7 +6276,7 @@
"meta-type": "object"
},
{
- "name": "159",
+ "name": "161",
"members": [
{
"name": "error",
@@ -6252,25 +6291,25 @@
"meta-type": "object"
},
{
- "name": "160",
+ "name": "162",
"members": [
{
"name": "mode",
- "type": "439"
+ "type": "441"
},
{
"name": "last-mode",
- "type": "439"
+ "type": "441"
},
{
"name": "reason",
- "type": "440"
+ "type": "442"
}
],
"meta-type": "object"
},
{
- "name": "161",
+ "name": "163",
"members": [
{
"name": "uri",
@@ -6280,7 +6319,7 @@
"meta-type": "object"
},
{
- "name": "162",
+ "name": "164",
"members": [
{
"name": "device-id",
@@ -6290,7 +6329,7 @@
"meta-type": "object"
},
{
- "name": "163",
+ "name": "165",
"members": [
{
"name": "calc-time",
@@ -6299,7 +6338,7 @@
{
"name": "calc-time-unit",
"default": null,
- "type": "442"
+ "type": "444"
},
{
"name": "sample-pages",
@@ -6309,24 +6348,24 @@
{
"name": "mode",
"default": null,
- "type": "443"
+ "type": "445"
}
],
"meta-type": "object"
},
{
- "name": "164",
+ "name": "166",
"members": [
{
"name": "calc-time-unit",
"default": null,
- "type": "442"
+ "type": "444"
}
],
"meta-type": "object"
},
{
- "name": "165",
+ "name": "167",
"members": [
{
"name": "dirty-rate",
@@ -6335,7 +6374,7 @@
},
{
"name": "status",
- "type": "444"
+ "type": "446"
},
{
"name": "start-time",
@@ -6347,7 +6386,7 @@
},
{
"name": "calc-time-unit",
- "type": "442"
+ "type": "444"
},
{
"name": "sample-pages",
@@ -6355,18 +6394,18 @@
},
{
"name": "mode",
- "type": "443"
+ "type": "445"
},
{
"name": "vcpu-dirty-rate",
"default": null,
- "type": "[445]"
+ "type": "[447]"
}
],
"meta-type": "object"
},
{
- "name": "166",
+ "name": "168",
"members": [
{
"name": "cpu-index",
@@ -6381,7 +6420,7 @@
"meta-type": "object"
},
{
- "name": "167",
+ "name": "169",
"members": [
{
"name": "cpu-index",
@@ -6392,12 +6431,12 @@
"meta-type": "object"
},
{
- "name": "[168]",
- "element-type": "168",
+ "name": "[170]",
+ "element-type": "170",
"meta-type": "array"
},
{
- "name": "168",
+ "name": "170",
"members": [
{
"name": "cpu-index",
@@ -6415,12 +6454,12 @@
"meta-type": "object"
},
{
- "name": "[169]",
- "element-type": "169",
+ "name": "[171]",
+ "element-type": "171",
"meta-type": "array"
},
{
- "name": "169",
+ "name": "171",
"members": [
{
"name": "name",
@@ -6434,7 +6473,7 @@
"meta-type": "object"
},
{
- "name": "170",
+ "name": "172",
"members": [
{
"name": "job-id",
@@ -6456,7 +6495,7 @@
"meta-type": "object"
},
{
- "name": "171",
+ "name": "173",
"members": [
{
"name": "job-id",
@@ -6478,7 +6517,7 @@
"meta-type": "object"
},
{
- "name": "172",
+ "name": "174",
"members": [
{
"name": "job-id",
@@ -6496,22 +6535,22 @@
"meta-type": "object"
},
{
- "name": "173",
+ "name": "175",
"members": [
{
"name": "actions",
- "type": "[446]"
+ "type": "[448]"
},
{
"name": "properties",
"default": null,
- "type": "447"
+ "type": "449"
}
],
"meta-type": "object"
},
{
- "name": "174",
+ "name": "176",
"members": [
{
"name": "name",
@@ -6521,12 +6560,12 @@
"meta-type": "object"
},
{
- "name": "[175]",
- "element-type": "175",
+ "name": "[177]",
+ "element-type": "177",
"meta-type": "array"
},
{
- "name": "175",
+ "name": "177",
"members": [
{
"name": "name",
@@ -6534,13 +6573,13 @@
},
{
"name": "state",
- "type": "448"
+ "type": "450"
}
],
"meta-type": "object"
},
{
- "name": "176",
+ "name": "178",
"members": [
{
"name": "name",
@@ -6559,22 +6598,22 @@
"meta-type": "object"
},
{
- "name": "177",
+ "name": "179",
"members": [
{
"name": "enable",
"default": null,
- "type": "[449]"
+ "type": "[451]"
}
],
"meta-type": "object"
},
{
- "name": "178",
+ "name": "180",
"members": [
{
"name": "qemu",
- "type": "450"
+ "type": "452"
},
{
"name": "package",
@@ -6584,12 +6623,12 @@
"meta-type": "object"
},
{
- "name": "[179]",
- "element-type": "179",
+ "name": "[181]",
+ "element-type": "181",
"meta-type": "array"
},
{
- "name": "179",
+ "name": "181",
"members": [
{
"name": "name",
@@ -6599,41 +6638,41 @@
"meta-type": "object"
},
{
- "name": "[180]",
- "element-type": "180",
+ "name": "[182]",
+ "element-type": "182",
"meta-type": "array"
},
{
- "name": "180",
+ "name": "182",
"tag": "meta-type",
"variants": [
{
"case": "builtin",
- "type": "452"
+ "type": "454"
},
{
"case": "enum",
- "type": "453"
+ "type": "455"
},
{
"case": "array",
- "type": "454"
+ "type": "456"
},
{
"case": "object",
- "type": "455"
+ "type": "457"
},
{
"case": "alternate",
- "type": "456"
+ "type": "458"
},
{
"case": "command",
- "type": "457"
+ "type": "459"
},
{
"case": "event",
- "type": "458"
+ "type": "460"
}
],
"members": [
@@ -6643,7 +6682,7 @@
},
{
"name": "meta-type",
- "type": "451"
+ "type": "453"
},
{
"name": "features",
@@ -6654,7 +6693,7 @@
"meta-type": "object"
},
{
- "name": "181",
+ "name": "183",
"members": [
{
"name": "path",
@@ -6664,12 +6703,12 @@
"meta-type": "object"
},
{
- "name": "[182]",
- "element-type": "182",
+ "name": "[184]",
+ "element-type": "184",
"meta-type": "array"
},
{
- "name": "182",
+ "name": "184",
"members": [
{
"name": "name",
@@ -6693,7 +6732,7 @@
"meta-type": "object"
},
{
- "name": "183",
+ "name": "185",
"members": [
{
"name": "path",
@@ -6712,7 +6751,7 @@
"meta-type": "builtin"
},
{
- "name": "184",
+ "name": "186",
"members": [
{
"name": "path",
@@ -6730,7 +6769,7 @@
"meta-type": "object"
},
{
- "name": "185",
+ "name": "187",
"members": [
{
"name": "implements",
@@ -6746,12 +6785,12 @@
"meta-type": "object"
},
{
- "name": "[186]",
- "element-type": "186",
+ "name": "[188]",
+ "element-type": "188",
"meta-type": "array"
},
{
- "name": "186",
+ "name": "188",
"members": [
{
"name": "name",
@@ -6771,7 +6810,7 @@
"meta-type": "object"
},
{
- "name": "187",
+ "name": "189",
"members": [
{
"name": "typename",
@@ -6781,192 +6820,192 @@
"meta-type": "object"
},
{
- "name": "188",
+ "name": "190",
"tag": "qom-type",
"variants": [
{
"case": "acpi-generic-initiator",
- "type": "460"
+ "type": "462"
},
{
"case": "acpi-generic-port",
- "type": "461"
+ "type": "463"
},
{
"case": "authz-list",
- "type": "462"
+ "type": "464"
},
{
"case": "authz-listfile",
- "type": "463"
+ "type": "465"
},
{
"case": "authz-pam",
- "type": "464"
+ "type": "466"
},
{
"case": "authz-simple",
- "type": "465"
+ "type": "467"
},
{
"case": "can-host-socketcan",
- "type": "466"
+ "type": "468"
},
{
"case": "colo-compare",
- "type": "467"
+ "type": "469"
},
{
"case": "cryptodev-backend",
- "type": "468"
+ "type": "470"
},
{
"case": "cryptodev-backend-builtin",
- "type": "468"
+ "type": "470"
},
{
"case": "cryptodev-backend-lkcf",
- "type": "468"
+ "type": "470"
},
{
"case": "cryptodev-vhost-user",
- "type": "469"
+ "type": "471"
},
{
"case": "dbus-vmstate",
- "type": "470"
+ "type": "472"
},
{
"case": "filter-buffer",
- "type": "471"
+ "type": "473"
},
{
"case": "filter-dump",
- "type": "472"
+ "type": "474"
},
{
"case": "filter-mirror",
- "type": "473"
+ "type": "475"
},
{
"case": "filter-redirector",
- "type": "474"
+ "type": "476"
},
{
"case": "filter-replay",
- "type": "475"
+ "type": "477"
},
{
"case": "filter-rewriter",
- "type": "476"
+ "type": "478"
},
{
"case": "input-barrier",
- "type": "477"
+ "type": "479"
},
{
"case": "input-linux",
- "type": "478"
+ "type": "480"
},
{
"case": "iommufd",
- "type": "479"
+ "type": "481"
},
{
"case": "iothread",
- "type": "480"
+ "type": "482"
},
{
"case": "main-loop",
- "type": "481"
+ "type": "483"
},
{
"case": "memory-backend-epc",
- "type": "482"
+ "type": "484"
},
{
"case": "memory-backend-file",
- "type": "483"
+ "type": "485"
},
{
"case": "memory-backend-memfd",
- "type": "484"
+ "type": "486"
},
{
"case": "memory-backend-ram",
- "type": "485"
+ "type": "487"
},
{
"case": "memory-backend-shm",
- "type": "486"
+ "type": "488"
},
{
"case": "pr-manager-helper",
- "type": "487"
+ "type": "489"
},
{
"case": "qtest",
- "type": "488"
+ "type": "490"
},
{
"case": "rng-builtin",
- "type": "489"
+ "type": "491"
},
{
"case": "rng-egd",
- "type": "490"
+ "type": "492"
},
{
"case": "rng-random",
- "type": "491"
+ "type": "493"
},
{
"case": "secret",
- "type": "492"
+ "type": "494"
},
{
"case": "secret_keyring",
- "type": "493"
+ "type": "495"
},
{
"case": "sev-guest",
- "type": "494"
+ "type": "496"
},
{
"case": "sev-snp-guest",
- "type": "495"
+ "type": "497"
},
{
"case": "thread-context",
- "type": "496"
+ "type": "498"
},
{
"case": "throttle-group",
- "type": "497"
+ "type": "499"
},
{
"case": "tls-creds-anon",
- "type": "498"
+ "type": "500"
},
{
"case": "tls-creds-psk",
- "type": "499"
+ "type": "501"
},
{
"case": "tls-creds-x509",
- "type": "500"
+ "type": "502"
},
{
"case": "tls-cipher-suites",
- "type": "501"
+ "type": "503"
},
{
"case": "x-remote-object",
- "type": "502"
+ "type": "504"
},
{
"case": "x-vfio-user-server",
- "type": "503"
+ "type": "505"
},
{
"case": "can-bus",
@@ -6984,7 +7023,7 @@
"members": [
{
"name": "qom-type",
- "type": "459"
+ "type": "461"
},
{
"name": "id",
@@ -6994,7 +7033,7 @@
"meta-type": "object"
},
{
- "name": "189",
+ "name": "191",
"members": [
{
"name": "id",
@@ -7004,7 +7043,7 @@
"meta-type": "object"
},
{
- "name": "190",
+ "name": "192",
"members": [
{
"name": "typename",
@@ -7014,7 +7053,7 @@
"meta-type": "object"
},
{
- "name": "191",
+ "name": "193",
"members": [
{
"name": "driver",
@@ -7034,7 +7073,7 @@
"meta-type": "object"
},
{
- "name": "192",
+ "name": "194",
"members": [
{
"name": "id",
@@ -7044,7 +7083,7 @@
"meta-type": "object"
},
{
- "name": "193",
+ "name": "195",
"members": [
{
"name": "device",
@@ -7059,7 +7098,7 @@
"meta-type": "object"
},
{
- "name": "194",
+ "name": "196",
"members": [
{
"name": "device",
@@ -7074,7 +7113,7 @@
"meta-type": "object"
},
{
- "name": "195",
+ "name": "197",
"members": [
{
"name": "id",
@@ -7084,17 +7123,17 @@
"meta-type": "object"
},
{
- "name": "[196]",
- "element-type": "196",
+ "name": "[198]",
+ "element-type": "198",
"meta-type": "array"
},
{
- "name": "196",
+ "name": "198",
"tag": "target",
"variants": [
{
"case": "s390x",
- "type": "506"
+ "type": "508"
},
{
"case": "aarch64",
@@ -7225,17 +7264,17 @@
{
"name": "props",
"default": null,
- "type": "504"
+ "type": "506"
},
{
"name": "target",
- "type": "505"
+ "type": "507"
}
],
"meta-type": "object"
},
{
- "name": "197",
+ "name": "199",
"members": [
{
"name": "compat-props",
@@ -7249,12 +7288,12 @@
"meta-type": "object"
},
{
- "name": "[198]",
- "element-type": "198",
+ "name": "[200]",
+ "element-type": "200",
"meta-type": "array"
},
{
- "name": "198",
+ "name": "200",
"members": [
{
"name": "name",
@@ -7303,7 +7342,7 @@
{
"name": "compat-props",
"default": null,
- "type": "[507]",
+ "type": "[509]",
"features": [
"unstable"
]
@@ -7312,7 +7351,7 @@
"meta-type": "object"
},
{
- "name": "199",
+ "name": "201",
"members": [
{
"name": "wakeup-suspend-support",
@@ -7322,17 +7361,17 @@
"meta-type": "object"
},
{
- "name": "200",
+ "name": "202",
"members": [
{
"name": "arch",
- "type": "505"
+ "type": "507"
}
],
"meta-type": "object"
},
{
- "name": "201",
+ "name": "203",
"members": [
{
"name": "UUID",
@@ -7342,7 +7381,7 @@
"meta-type": "object"
},
{
- "name": "202",
+ "name": "204",
"members": [
{
"name": "guid",
@@ -7352,7 +7391,7 @@
"meta-type": "object"
},
{
- "name": "203",
+ "name": "205",
"members": [
{
"name": "enabled",
@@ -7366,7 +7405,7 @@
"meta-type": "object"
},
{
- "name": "204",
+ "name": "206",
"members": [
{
"name": "val",
@@ -7389,7 +7428,7 @@
"meta-type": "object"
},
{
- "name": "205",
+ "name": "207",
"members": [
{
"name": "val",
@@ -7407,12 +7446,12 @@
"meta-type": "object"
},
{
- "name": "[206]",
- "element-type": "206",
+ "name": "[208]",
+ "element-type": "208",
"meta-type": "array"
},
{
- "name": "206",
+ "name": "208",
"members": [
{
"name": "id",
@@ -7450,18 +7489,18 @@
},
{
"name": "policy",
- "type": "508"
+ "type": "510"
}
],
"meta-type": "object"
},
{
- "name": "[207]",
- "element-type": "207",
+ "name": "[209]",
+ "element-type": "209",
"meta-type": "array"
},
{
- "name": "207",
+ "name": "209",
"members": [
{
"name": "type",
@@ -7473,7 +7512,7 @@
},
{
"name": "props",
- "type": "504"
+ "type": "506"
},
{
"name": "qom-path",
@@ -7484,40 +7523,40 @@
"meta-type": "object"
},
{
- "name": "208",
+ "name": "210",
"tag": "type",
"variants": [
{
"case": "node",
- "type": "510"
+ "type": "512"
},
{
"case": "dist",
- "type": "511"
+ "type": "513"
},
{
"case": "cpu",
- "type": "512"
+ "type": "514"
},
{
"case": "hmat-lb",
- "type": "513"
+ "type": "515"
},
{
"case": "hmat-cache",
- "type": "514"
+ "type": "516"
}
],
"members": [
{
"name": "type",
- "type": "509"
+ "type": "511"
}
],
"meta-type": "object"
},
{
- "name": "209",
+ "name": "211",
"members": [
{
"name": "value",
@@ -7527,7 +7566,7 @@
"meta-type": "object"
},
{
- "name": "210",
+ "name": "212",
"members": [
{
"name": "actual",
@@ -7537,7 +7576,7 @@
"meta-type": "object"
},
{
- "name": "211",
+ "name": "213",
"members": [
{
"name": "actual",
@@ -7547,7 +7586,7 @@
"meta-type": "object"
},
{
- "name": "212",
+ "name": "214",
"members": [
{
"name": "committed",
@@ -7561,7 +7600,7 @@
"meta-type": "object"
},
{
- "name": "213",
+ "name": "215",
"members": [
{
"name": "base-memory",
@@ -7576,49 +7615,49 @@
"meta-type": "object"
},
{
- "name": "[214]",
- "element-type": "214",
+ "name": "[216]",
+ "element-type": "216",
"meta-type": "array"
},
{
- "name": "214",
+ "name": "216",
"tag": "type",
"variants": [
{
"case": "dimm",
- "type": "516"
+ "type": "518"
},
{
"case": "nvdimm",
- "type": "516"
+ "type": "518"
},
{
"case": "virtio-pmem",
- "type": "517"
+ "type": "519"
},
{
"case": "virtio-mem",
- "type": "518"
+ "type": "520"
},
{
"case": "sgx-epc",
- "type": "519"
+ "type": "521"
},
{
"case": "hv-balloon",
- "type": "520"
+ "type": "522"
}
],
"members": [
{
"name": "type",
- "type": "515"
+ "type": "517"
}
],
"meta-type": "object"
},
{
- "name": "215",
+ "name": "217",
"members": [
{
"name": "id",
@@ -7637,7 +7676,7 @@
"meta-type": "object"
},
{
- "name": "216",
+ "name": "218",
"members": [
{
"name": "human-readable-text",
@@ -7647,7 +7686,7 @@
"meta-type": "object"
},
{
- "name": "217",
+ "name": "219",
"members": [
{
"name": "filename",
@@ -7657,36 +7696,36 @@
"meta-type": "object"
},
{
- "name": "222",
+ "name": "224",
"members": [
{
"name": "type",
- "type": "523"
+ "type": "525"
},
{
"name": "model",
- "type": "521"
+ "type": "523"
}
],
"meta-type": "object"
},
{
- "name": "223",
+ "name": "225",
"members": [
{
"name": "model",
- "type": "521"
+ "type": "523"
}
],
"meta-type": "object"
},
{
- "name": "[224]",
- "element-type": "224",
+ "name": "[226]",
+ "element-type": "226",
"meta-type": "array"
},
{
- "name": "224",
+ "name": "226",
"members": [
{
"name": "name",
@@ -7723,11 +7762,11 @@
"meta-type": "object"
},
{
- "name": "228",
+ "name": "230",
"members": [
{
"name": "mode",
- "type": "526"
+ "type": "528"
},
{
"name": "filename",
@@ -7742,7 +7781,7 @@
"meta-type": "object"
},
{
- "name": "229",
+ "name": "231",
"members": [
{
"name": "icount",
@@ -7752,7 +7791,7 @@
"meta-type": "object"
},
{
- "name": "230",
+ "name": "232",
"members": [
{
"name": "icount",
@@ -7762,31 +7801,31 @@
"meta-type": "object"
},
{
- "name": "231",
+ "name": "233",
"members": [
{
"name": "instances",
- "type": "[232]"
+ "type": "[234]"
}
],
"meta-type": "object"
},
{
- "name": "[232]",
- "element-type": "232",
+ "name": "[234]",
+ "element-type": "234",
"meta-type": "array"
},
{
- "name": "232",
+ "name": "234",
"tag": "type",
"variants": [
{
"case": "block-node",
- "type": "528"
+ "type": "530"
},
{
"case": "chardev",
- "type": "529"
+ "type": "531"
},
{
"case": "migration",
@@ -7796,13 +7835,13 @@
"members": [
{
"name": "type",
- "type": "527"
+ "type": "529"
}
],
"meta-type": "object"
},
{
- "name": "233",
+ "name": "235",
"members": [
{
"name": "protocol",
@@ -7826,7 +7865,7 @@
"meta-type": "object"
},
{
- "name": "234",
+ "name": "236",
"members": [
{
"name": "name",
@@ -7837,12 +7876,12 @@
"meta-type": "object"
},
{
- "name": "[235]",
- "element-type": "235",
+ "name": "[237]",
+ "element-type": "237",
"meta-type": "array"
},
{
- "name": "235",
+ "name": "237",
"members": [
{
"name": "id",
@@ -7872,7 +7911,7 @@
"meta-type": "object"
},
{
- "name": "236",
+ "name": "238",
"members": [
{
"name": "command-line",
@@ -7887,7 +7926,7 @@
"meta-type": "object"
},
{
- "name": "237",
+ "name": "239",
"members": [
{
"name": "fdname",
@@ -7897,7 +7936,7 @@
"meta-type": "object"
},
{
- "name": "239",
+ "name": "241",
"members": [
{
"name": "fdname",
@@ -7907,7 +7946,7 @@
"meta-type": "object"
},
{
- "name": "240",
+ "name": "242",
"members": [
{
"name": "fdset-id",
@@ -7923,7 +7962,7 @@
"meta-type": "object"
},
{
- "name": "241",
+ "name": "243",
"members": [
{
"name": "fdset-id",
@@ -7937,7 +7976,7 @@
"meta-type": "object"
},
{
- "name": "242",
+ "name": "244",
"members": [
{
"name": "fdset-id",
@@ -7952,12 +7991,12 @@
"meta-type": "object"
},
{
- "name": "[243]",
- "element-type": "243",
+ "name": "[245]",
+ "element-type": "245",
"meta-type": "array"
},
{
- "name": "243",
+ "name": "245",
"members": [
{
"name": "fdset-id",
@@ -7965,13 +8004,13 @@
},
{
"name": "fds",
- "type": "[530]"
+ "type": "[532]"
}
],
"meta-type": "object"
},
{
- "name": "244",
+ "name": "246",
"members": [
{
"name": "option",
@@ -7982,12 +8021,12 @@
"meta-type": "object"
},
{
- "name": "[245]",
- "element-type": "245",
+ "name": "[247]",
+ "element-type": "247",
"meta-type": "array"
},
{
- "name": "245",
+ "name": "247",
"members": [
{
"name": "option",
@@ -7995,13 +8034,13 @@
},
{
"name": "parameters",
- "type": "[531]"
+ "type": "[533]"
}
],
"meta-type": "object"
},
{
- "name": "246",
+ "name": "248",
"members": [
{
"name": "offset",
@@ -8015,7 +8054,7 @@
"meta-type": "object"
},
{
- "name": "247",
+ "name": "249",
"members": [
{
"name": "vfu-id",
@@ -8037,16 +8076,16 @@
"meta-type": "object"
},
{
- "name": "248",
+ "name": "250",
"tag": "sev-type",
"variants": [
{
"case": "sev",
- "type": "534"
+ "type": "536"
},
{
"case": "sev-snp",
- "type": "535"
+ "type": "537"
}
],
"members": [
@@ -8068,17 +8107,17 @@
},
{
"name": "state",
- "type": "532"
+ "type": "534"
},
{
"name": "sev-type",
- "type": "533"
+ "type": "535"
}
],
"meta-type": "object"
},
{
- "name": "249",
+ "name": "251",
"members": [
{
"name": "data",
@@ -8088,7 +8127,7 @@
"meta-type": "object"
},
{
- "name": "250",
+ "name": "252",
"members": [
{
"name": "pdh",
@@ -8114,7 +8153,7 @@
"meta-type": "object"
},
{
- "name": "251",
+ "name": "253",
"members": [
{
"name": "packet-header",
@@ -8133,7 +8172,7 @@
"meta-type": "object"
},
{
- "name": "252",
+ "name": "254",
"members": [
{
"name": "mnonce",
@@ -8143,7 +8182,7 @@
"meta-type": "object"
},
{
- "name": "253",
+ "name": "255",
"members": [
{
"name": "data",
@@ -8153,7 +8192,7 @@
"meta-type": "object"
},
{
- "name": "256",
+ "name": "258",
"members": [
{
"name": "sgx",
@@ -8173,18 +8212,18 @@
},
{
"name": "sections",
- "type": "[536]"
+ "type": "[538]"
}
],
"meta-type": "object"
},
{
- "name": "[257]",
- "element-type": "257",
+ "name": "[259]",
+ "element-type": "259",
"meta-type": "array"
},
{
- "name": "257",
+ "name": "259",
"members": [
{
"name": "port",
@@ -8196,7 +8235,7 @@
},
{
"name": "type",
- "type": "537"
+ "type": "539"
},
{
"name": "remote-domain",
@@ -8218,7 +8257,7 @@
"meta-type": "object"
},
{
- "name": "258",
+ "name": "260",
"members": [
{
"name": "port",
@@ -8228,45 +8267,45 @@
"meta-type": "object"
},
{
- "name": "[259]",
- "element-type": "259",
+ "name": "[261]",
+ "element-type": "261",
"meta-type": "array"
},
{
- "name": "259",
+ "name": "261",
"tag": "driver",
"variants": [
{
"case": "none",
- "type": "539"
+ "type": "541"
},
{
"case": "alsa",
- "type": "540"
+ "type": "542"
},
{
"case": "dbus",
- "type": "542"
+ "type": "544"
},
{
"case": "oss",
- "type": "545"
+ "type": "547"
},
{
"case": "pa",
- "type": "546"
+ "type": "548"
},
{
"case": "sdl",
- "type": "548"
+ "type": "550"
},
{
"case": "spice",
- "type": "539"
+ "type": "541"
},
{
"case": "wav",
- "type": "550"
+ "type": "552"
}
],
"members": [
@@ -8276,7 +8315,7 @@
},
{
"name": "driver",
- "type": "538"
+ "type": "540"
},
{
"name": "timer-period",
@@ -8287,12 +8326,12 @@
"meta-type": "object"
},
{
- "name": "[260]",
- "element-type": "260",
+ "name": "[262]",
+ "element-type": "262",
"meta-type": "array"
},
{
- "name": "260",
+ "name": "262",
"members": [
{
"name": "device",
@@ -8305,7 +8344,7 @@
},
{
"name": "slot-type",
- "type": "551"
+ "type": "553"
},
{
"name": "source",
@@ -8319,22 +8358,22 @@
"meta-type": "object"
},
{
- "name": "261",
+ "name": "263",
"members": [
{
"name": "info",
- "type": "260"
+ "type": "262"
}
],
"meta-type": "object"
},
{
- "name": "[262]",
- "element-type": "262",
+ "name": "[264]",
+ "element-type": "264",
"meta-type": "array"
},
{
- "name": "262",
+ "name": "264",
"members": [
{
"name": "bus",
@@ -8342,18 +8381,18 @@
},
{
"name": "devices",
- "type": "[552]"
+ "type": "[554]"
}
],
"meta-type": "object"
},
{
- "name": "263",
+ "name": "265",
"tag": "target",
"variants": [
{
"case": "vcpu",
- "type": "555"
+ "type": "557"
},
{
"case": "vm",
@@ -8367,27 +8406,27 @@
"members": [
{
"name": "target",
- "type": "553"
+ "type": "555"
},
{
"name": "providers",
"default": null,
- "type": "[554]"
+ "type": "[556]"
}
],
"meta-type": "object"
},
{
- "name": "[264]",
- "element-type": "264",
+ "name": "[266]",
+ "element-type": "266",
"meta-type": "array"
},
{
- "name": "264",
+ "name": "266",
"members": [
{
"name": "provider",
- "type": "556"
+ "type": "558"
},
{
"name": "qom-path",
@@ -8396,52 +8435,52 @@
},
{
"name": "stats",
- "type": "[557]"
+ "type": "[559]"
}
],
"meta-type": "object"
},
{
- "name": "265",
+ "name": "267",
"members": [
{
"name": "provider",
"default": null,
- "type": "556"
+ "type": "558"
}
],
"meta-type": "object"
},
{
- "name": "[266]",
- "element-type": "266",
+ "name": "[268]",
+ "element-type": "268",
"meta-type": "array"
},
{
- "name": "266",
+ "name": "268",
"members": [
{
"name": "provider",
- "type": "556"
+ "type": "558"
},
{
"name": "target",
- "type": "553"
+ "type": "555"
},
{
"name": "stats",
- "type": "[558]"
+ "type": "[560]"
}
],
"meta-type": "object"
},
{
- "name": "[267]",
- "element-type": "267",
+ "name": "[269]",
+ "element-type": "269",
"meta-type": "array"
},
{
- "name": "267",
+ "name": "269",
"members": [
{
"name": "path",
@@ -8455,7 +8494,7 @@
"meta-type": "object"
},
{
- "name": "268",
+ "name": "270",
"members": [
{
"name": "path",
@@ -8465,7 +8504,7 @@
"meta-type": "object"
},
{
- "name": "269",
+ "name": "271",
"members": [
{
"name": "name",
@@ -8485,15 +8524,15 @@
},
{
"name": "guest-features",
- "type": "559"
+ "type": "561"
},
{
"name": "host-features",
- "type": "559"
+ "type": "561"
},
{
"name": "backend-features",
- "type": "559"
+ "type": "561"
},
{
"name": "num-vqs",
@@ -8501,7 +8540,7 @@
},
{
"name": "status",
- "type": "560"
+ "type": "562"
},
{
"name": "isr",
@@ -8550,13 +8589,13 @@
{
"name": "vhost-dev",
"default": null,
- "type": "561"
+ "type": "563"
}
],
"meta-type": "object"
},
{
- "name": "270",
+ "name": "272",
"members": [
{
"name": "path",
@@ -8570,7 +8609,7 @@
"meta-type": "object"
},
{
- "name": "271",
+ "name": "273",
"members": [
{
"name": "name",
@@ -8634,7 +8673,7 @@
"meta-type": "object"
},
{
- "name": "272",
+ "name": "274",
"members": [
{
"name": "path",
@@ -8648,7 +8687,7 @@
"meta-type": "object"
},
{
- "name": "273",
+ "name": "275",
"members": [
{
"name": "name",
@@ -8706,7 +8745,7 @@
"meta-type": "object"
},
{
- "name": "274",
+ "name": "276",
"members": [
{
"name": "path",
@@ -8725,7 +8764,7 @@
"meta-type": "object"
},
{
- "name": "275",
+ "name": "277",
"members": [
{
"name": "name",
@@ -8737,21 +8776,21 @@
},
{
"name": "descs",
- "type": "[562]"
+ "type": "[564]"
},
{
"name": "avail",
- "type": "563"
+ "type": "565"
},
{
"name": "used",
- "type": "564"
+ "type": "566"
}
],
"meta-type": "object"
},
{
- "name": "276",
+ "name": "278",
"members": [
{
"name": "device-id",
@@ -8763,18 +8802,18 @@
},
{
"name": "device-state",
- "type": "565"
+ "type": "567"
}
],
"meta-type": "object"
},
{
- "name": "[277]",
- "element-type": "277",
+ "name": "[279]",
+ "element-type": "279",
"meta-type": "array"
},
{
- "name": "277",
+ "name": "279",
"members": [
{
"name": "id",
@@ -8782,17 +8821,17 @@
},
{
"name": "service",
- "type": "[566]"
+ "type": "[568]"
},
{
"name": "client",
- "type": "[567]"
+ "type": "[569]"
}
],
"meta-type": "object"
},
{
- "name": "278",
+ "name": "280",
"members": [
{
"name": "path",
@@ -8800,7 +8839,7 @@
},
{
"name": "log",
- "type": "568"
+ "type": "570"
},
{
"name": "flags",
@@ -8846,7 +8885,7 @@
"meta-type": "object"
},
{
- "name": "279",
+ "name": "281",
"members": [
{
"name": "path",
@@ -8854,7 +8893,7 @@
},
{
"name": "log",
- "type": "568"
+ "type": "570"
},
{
"name": "flags",
@@ -8920,7 +8959,7 @@
"meta-type": "object"
},
{
- "name": "280",
+ "name": "282",
"members": [
{
"name": "path",
@@ -8928,7 +8967,7 @@
},
{
"name": "log",
- "type": "568"
+ "type": "570"
},
{
"name": "flags",
@@ -8974,7 +9013,7 @@
"meta-type": "object"
},
{
- "name": "281",
+ "name": "283",
"members": [
{
"name": "path",
@@ -8992,7 +9031,7 @@
"meta-type": "object"
},
{
- "name": "282",
+ "name": "284",
"members": [
{
"name": "path",
@@ -9000,13 +9039,13 @@
},
{
"name": "errors",
- "type": "[569]"
+ "type": "[571]"
}
],
"meta-type": "object"
},
{
- "name": "283",
+ "name": "285",
"members": [
{
"name": "path",
@@ -9014,13 +9053,13 @@
},
{
"name": "type",
- "type": "570"
+ "type": "572"
}
],
"meta-type": "object"
},
{
- "name": "284",
+ "name": "286",
"members": [
{
"name": "path",
@@ -9032,7 +9071,7 @@
},
{
"name": "selection-policy",
- "type": "571"
+ "type": "573"
},
{
"name": "region",
@@ -9045,13 +9084,13 @@
},
{
"name": "extents",
- "type": "[572]"
+ "type": "[574]"
}
],
"meta-type": "object"
},
{
- "name": "285",
+ "name": "287",
"members": [
{
"name": "path",
@@ -9063,7 +9102,7 @@
},
{
"name": "removal-policy",
- "type": "573"
+ "type": "575"
},
{
"name": "forced-removal",
@@ -9086,7 +9125,7 @@
},
{
"name": "extents",
- "type": "[572]"
+ "type": "[574]"
}
],
"meta-type": "object"
@@ -9097,7 +9136,7 @@
"meta-type": "builtin"
},
{
- "name": "286",
+ "name": "288",
"members": [
{
"name": "debug"
@@ -9169,7 +9208,7 @@
]
},
{
- "name": "287",
+ "name": "289",
"members": [
{
"name": "none"
@@ -9221,7 +9260,7 @@
]
},
{
- "name": "288",
+ "name": "290",
"members": [
{
"name": "reset"
@@ -9257,7 +9296,7 @@
]
},
{
- "name": "289",
+ "name": "291",
"members": [
{
"name": "reset"
@@ -9273,7 +9312,7 @@
]
},
{
- "name": "290",
+ "name": "292",
"members": [
{
"name": "poweroff"
@@ -9289,7 +9328,7 @@
]
},
{
- "name": "291",
+ "name": "293",
"members": [
{
"name": "pause"
@@ -9313,7 +9352,7 @@
]
},
{
- "name": "292",
+ "name": "294",
"members": [
{
"name": "pause"
@@ -9333,28 +9372,28 @@
]
},
{
- "name": "293",
+ "name": "295",
"tag": "type",
"variants": [
{
"case": "hyper-v",
- "type": "575"
+ "type": "577"
},
{
"case": "s390",
- "type": "576"
+ "type": "578"
}
],
"members": [
{
"name": "type",
- "type": "574"
+ "type": "576"
}
],
"meta-type": "object"
},
{
- "name": "294",
+ "name": "296",
"members": [
{
"name": "hypervisor"
@@ -9370,7 +9409,7 @@
]
},
{
- "name": "295",
+ "name": "297",
"members": [
{
"name": "ignore"
@@ -9394,7 +9433,7 @@
]
},
{
- "name": "296",
+ "name": "298",
"members": [
{
"name": "action-required",
@@ -9408,7 +9447,7 @@
"meta-type": "object"
},
{
- "name": "297",
+ "name": "299",
"members": [
{
"name": "undefined"
@@ -9460,7 +9499,7 @@
]
},
{
- "name": "298",
+ "name": "300",
"members": [
{
"name": "commit"
@@ -9509,7 +9548,7 @@
"meta-type": "builtin"
},
{
- "name": "299",
+ "name": "301",
"members": [
{
"name": "retain"
@@ -9534,7 +9573,7 @@
"meta-type": "array"
},
{
- "name": "300",
+ "name": "302",
"members": [
{
"name": "ok"
@@ -9554,7 +9593,7 @@
]
},
{
- "name": "301",
+ "name": "303",
"members": [
{
"name": "rd_bytes",
@@ -9687,46 +9726,46 @@
},
{
"name": "timed_stats",
- "type": "[577]"
+ "type": "[579]"
},
{
"name": "rd_latency_histogram",
"default": null,
- "type": "578"
+ "type": "580"
},
{
"name": "wr_latency_histogram",
"default": null,
- "type": "578"
+ "type": "580"
},
{
"name": "zone_append_latency_histogram",
"default": null,
- "type": "578"
+ "type": "580"
},
{
"name": "flush_latency_histogram",
"default": null,
- "type": "578"
+ "type": "580"
}
],
"meta-type": "object"
},
{
- "name": "302",
+ "name": "304",
"tag": "driver",
"variants": [
{
"case": "file",
- "type": "579"
+ "type": "581"
},
{
"case": "host_device",
- "type": "579"
+ "type": "581"
},
{
"case": "nvme",
- "type": "580"
+ "type": "582"
},
{
"case": "blkdebug",
@@ -9908,13 +9947,13 @@
"members": [
{
"name": "driver",
- "type": "318"
+ "type": "320"
}
],
"meta-type": "object"
},
{
- "name": "303",
+ "name": "305",
"members": [
{
"name": "actively-synced",
@@ -9924,7 +9963,7 @@
"meta-type": "object"
},
{
- "name": "304",
+ "name": "306",
"members": [
{
"name": "existing"
@@ -9940,7 +9979,7 @@
]
},
{
- "name": "305",
+ "name": "307",
"members": [
{
"name": "report"
@@ -9968,7 +10007,7 @@
]
},
{
- "name": "306",
+ "name": "308",
"members": [
{
"name": "top"
@@ -9996,7 +10035,7 @@
]
},
{
- "name": "307",
+ "name": "309",
"members": [
{
"name": "on-success"
@@ -10016,7 +10055,7 @@
]
},
{
- "name": "308",
+ "name": "310",
"members": [
{
"name": "use-copy-range",
@@ -10042,7 +10081,7 @@
"meta-type": "object"
},
{
- "name": "309",
+ "name": "311",
"members": [
{
"name": "off"
@@ -10062,7 +10101,7 @@
]
},
{
- "name": "310",
+ "name": "312",
"members": [
{
"name": "filename",
@@ -10124,18 +10163,18 @@
{
"name": "format-specific",
"default": null,
- "type": "581"
+ "type": "583"
},
{
"name": "backing-image",
"default": null,
- "type": "310"
+ "type": "312"
}
],
"meta-type": "object"
},
{
- "name": "311",
+ "name": "313",
"members": [
{
"name": "writeback",
@@ -10153,12 +10192,12 @@
"meta-type": "object"
},
{
- "name": "[312]",
- "element-type": "312",
+ "name": "[314]",
+ "element-type": "314",
"meta-type": "array"
},
{
- "name": "312",
+ "name": "314",
"members": [
{
"name": "name",
@@ -10194,12 +10233,12 @@
"meta-type": "object"
},
{
- "name": "[313]",
- "element-type": "313",
+ "name": "[315]",
+ "element-type": "315",
"meta-type": "array"
},
{
- "name": "313",
+ "name": "315",
"members": [
{
"name": "id",
@@ -10207,7 +10246,7 @@
},
{
"name": "type",
- "type": "582"
+ "type": "584"
},
{
"name": "name",
@@ -10217,12 +10256,12 @@
"meta-type": "object"
},
{
- "name": "[314]",
- "element-type": "314",
+ "name": "[316]",
+ "element-type": "316",
"meta-type": "array"
},
{
- "name": "314",
+ "name": "316",
"members": [
{
"name": "parent",
@@ -10238,17 +10277,17 @@
},
{
"name": "perm",
- "type": "[583]"
+ "type": "[585]"
},
{
"name": "shared-perm",
- "type": "[583]"
+ "type": "[585]"
}
],
"meta-type": "object"
},
{
- "name": "315",
+ "name": "317",
"members": [
{
"name": "background"
@@ -10264,12 +10303,12 @@
]
},
{
- "name": "[316]",
- "element-type": "316",
+ "name": "[318]",
+ "element-type": "318",
"meta-type": "array"
},
{
- "name": "316",
+ "name": "318",
"members": [
{
"type": "str"
@@ -10281,17 +10320,17 @@
"meta-type": "alternate"
},
{
- "name": "317",
+ "name": "319",
"members": [
{
"name": "copy-mode",
- "type": "315"
+ "type": "317"
}
],
"meta-type": "object"
},
{
- "name": "318",
+ "name": "320",
"members": [
{
"name": "blkdebug"
@@ -10490,7 +10529,7 @@
]
},
{
- "name": "319",
+ "name": "321",
"members": [
{
"name": "ignore"
@@ -10506,7 +10545,7 @@
]
},
{
- "name": "320",
+ "name": "322",
"members": [
{
"name": "direct",
@@ -10522,11 +10561,11 @@
"meta-type": "object"
},
{
- "name": "321",
+ "name": "323",
"members": [
{
"name": "image",
- "type": "584"
+ "type": "586"
},
{
"name": "config",
@@ -10566,36 +10605,36 @@
{
"name": "inject-error",
"default": null,
- "type": "[585]"
+ "type": "[587]"
},
{
"name": "set-state",
"default": null,
- "type": "[586]"
+ "type": "[588]"
},
{
"name": "take-child-perms",
"default": null,
- "type": "[583]"
+ "type": "[585]"
},
{
"name": "unshare-child-perms",
"default": null,
- "type": "[583]"
+ "type": "[585]"
}
],
"meta-type": "object"
},
{
- "name": "322",
+ "name": "324",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "log",
- "type": "584"
+ "type": "586"
},
{
"name": "log-sector-size",
@@ -10616,49 +10655,49 @@
"meta-type": "object"
},
{
- "name": "323",
+ "name": "325",
"members": [
{
"name": "test",
- "type": "584"
+ "type": "586"
},
{
"name": "raw",
- "type": "584"
+ "type": "586"
}
],
"meta-type": "object"
},
{
- "name": "324",
+ "name": "326",
"members": [
{
"name": "image",
- "type": "584"
+ "type": "586"
}
],
"meta-type": "object"
},
{
- "name": "325",
+ "name": "327",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
}
],
"meta-type": "object"
},
{
- "name": "326",
+ "name": "328",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "target",
- "type": "584"
+ "type": "586"
},
{
"name": "bitmap",
@@ -10668,7 +10707,7 @@
{
"name": "on-cbw-error",
"default": null,
- "type": "587"
+ "type": "589"
},
{
"name": "cbw-timeout",
@@ -10684,11 +10723,11 @@
"meta-type": "object"
},
{
- "name": "327",
+ "name": "329",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "bottom",
@@ -10699,7 +10738,7 @@
"meta-type": "object"
},
{
- "name": "328",
+ "name": "330",
"members": [
{
"name": "filename",
@@ -10713,12 +10752,12 @@
{
"name": "locking",
"default": null,
- "type": "588"
+ "type": "590"
},
{
"name": "aio",
"default": null,
- "type": "589"
+ "type": "591"
},
{
"name": "aio-max-batch",
@@ -10745,7 +10784,7 @@
]
},
{
- "name": "329",
+ "name": "331",
"members": [
{
"name": "url",
@@ -10785,7 +10824,7 @@
"meta-type": "object"
},
{
- "name": "330",
+ "name": "332",
"members": [
{
"name": "url",
@@ -10830,7 +10869,7 @@
"meta-type": "object"
},
{
- "name": "331",
+ "name": "333",
"members": [
{
"name": "volume",
@@ -10842,7 +10881,7 @@
},
{
"name": "server",
- "type": "[392]"
+ "type": "[394]"
},
{
"name": "debug",
@@ -10858,7 +10897,7 @@
"meta-type": "object"
},
{
- "name": "332",
+ "name": "334",
"members": [
{
"name": "url",
@@ -10908,7 +10947,7 @@
"meta-type": "object"
},
{
- "name": "333",
+ "name": "335",
"members": [
{
"name": "url",
@@ -10963,7 +11002,7 @@
"meta-type": "object"
},
{
- "name": "334",
+ "name": "336",
"members": [
{
"name": "filename",
@@ -10973,11 +11012,11 @@
"meta-type": "object"
},
{
- "name": "335",
+ "name": "337",
"members": [
{
"name": "transport",
- "type": "590"
+ "type": "592"
},
{
"name": "portal",
@@ -11010,7 +11049,7 @@
{
"name": "header-digest",
"default": null,
- "type": "591"
+ "type": "593"
},
{
"name": "timeout",
@@ -11021,11 +11060,11 @@
"meta-type": "object"
},
{
- "name": "336",
+ "name": "338",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "key-secret",
@@ -11035,17 +11074,17 @@
{
"name": "header",
"default": null,
- "type": "584"
+ "type": "586"
}
],
"meta-type": "object"
},
{
- "name": "337",
+ "name": "339",
"members": [
{
"name": "server",
- "type": "392"
+ "type": "394"
},
{
"name": "export",
@@ -11084,11 +11123,11 @@
"meta-type": "object"
},
{
- "name": "338",
+ "name": "340",
"members": [
{
"name": "server",
- "type": "592"
+ "type": "594"
},
{
"name": "path",
@@ -11128,7 +11167,7 @@
"meta-type": "object"
},
{
- "name": "339",
+ "name": "341",
"members": [
{
"name": "size",
@@ -11149,7 +11188,7 @@
"meta-type": "object"
},
{
- "name": "340",
+ "name": "342",
"members": [
{
"name": "device",
@@ -11163,7 +11202,7 @@
"meta-type": "object"
},
{
- "name": "341",
+ "name": "343",
"members": [
{
"name": "path",
@@ -11173,11 +11212,11 @@
"meta-type": "object"
},
{
- "name": "342",
+ "name": "344",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "prealloc-align",
@@ -11193,16 +11232,16 @@
"meta-type": "object"
},
{
- "name": "343",
+ "name": "345",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "backing",
"default": null,
- "type": "593"
+ "type": "595"
},
{
"name": "lazy-refcounts",
@@ -11232,7 +11271,7 @@
{
"name": "overlap-check",
"default": null,
- "type": "594"
+ "type": "596"
},
{
"name": "cache-size",
@@ -11262,53 +11301,53 @@
{
"name": "encrypt",
"default": null,
- "type": "595"
+ "type": "597"
},
{
"name": "data-file",
"default": null,
- "type": "584"
+ "type": "586"
}
],
"meta-type": "object"
},
{
- "name": "344",
+ "name": "346",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "backing",
"default": null,
- "type": "593"
+ "type": "595"
},
{
"name": "encrypt",
"default": null,
- "type": "596"
+ "type": "598"
}
],
"meta-type": "object"
},
{
- "name": "345",
+ "name": "347",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "backing",
"default": null,
- "type": "593"
+ "type": "595"
}
],
"meta-type": "object"
},
{
- "name": "346",
+ "name": "348",
"members": [
{
"name": "blkverify",
@@ -11317,7 +11356,7 @@
},
{
"name": "children",
- "type": "[584]"
+ "type": "[586]"
},
{
"name": "vote-threshold",
@@ -11331,17 +11370,17 @@
{
"name": "read-pattern",
"default": null,
- "type": "597"
+ "type": "599"
}
],
"meta-type": "object"
},
{
- "name": "347",
+ "name": "349",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "offset",
@@ -11357,7 +11396,7 @@
"meta-type": "object"
},
{
- "name": "348",
+ "name": "350",
"members": [
{
"name": "pool",
@@ -11385,7 +11424,7 @@
{
"name": "encrypt",
"default": null,
- "type": "598"
+ "type": "600"
},
{
"name": "user",
@@ -11395,7 +11434,7 @@
{
"name": "auth-client-required",
"default": null,
- "type": "[599]"
+ "type": "[601]"
},
{
"name": "key-secret",
@@ -11405,21 +11444,21 @@
{
"name": "server",
"default": null,
- "type": "[600]"
+ "type": "[602]"
}
],
"meta-type": "object"
},
{
- "name": "349",
+ "name": "351",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "mode",
- "type": "601"
+ "type": "603"
},
{
"name": "top-id",
@@ -11430,11 +11469,11 @@
"meta-type": "object"
},
{
- "name": "350",
+ "name": "352",
"members": [
{
"name": "server",
- "type": "602"
+ "type": "604"
},
{
"name": "path",
@@ -11448,13 +11487,13 @@
{
"name": "host-key-check",
"default": null,
- "type": "603"
+ "type": "605"
}
],
"meta-type": "object"
},
{
- "name": "351",
+ "name": "353",
"members": [
{
"name": "throttle-group",
@@ -11462,13 +11501,13 @@
},
{
"name": "file",
- "type": "584"
+ "type": "586"
}
],
"meta-type": "object"
},
{
- "name": "352",
+ "name": "354",
"members": [
{
"name": "path",
@@ -11478,7 +11517,7 @@
"meta-type": "object"
},
{
- "name": "353",
+ "name": "355",
"members": [
{
"name": "path",
@@ -11488,7 +11527,7 @@
"meta-type": "object"
},
{
- "name": "354",
+ "name": "356",
"members": [
{
"name": "path",
@@ -11501,7 +11540,7 @@
]
},
{
- "name": "355",
+ "name": "357",
"members": [
{
"name": "dir",
@@ -11536,64 +11575,64 @@
"meta-type": "array"
},
{
- "name": "356",
+ "name": "358",
"tag": "driver",
"variants": [
{
"case": "file",
- "type": "604"
+ "type": "606"
},
{
"case": "gluster",
- "type": "605"
+ "type": "607"
},
{
"case": "luks",
- "type": "606"
+ "type": "608"
},
{
"case": "nfs",
- "type": "607"
+ "type": "609"
},
{
"case": "parallels",
- "type": "608"
+ "type": "610"
},
{
"case": "qcow",
- "type": "609"
+ "type": "611"
},
{
"case": "qcow2",
- "type": "610"
+ "type": "612"
},
{
"case": "qed",
- "type": "611"
+ "type": "613"
},
{
"case": "rbd",
- "type": "612"
+ "type": "614"
},
{
"case": "ssh",
- "type": "613"
+ "type": "615"
},
{
"case": "vdi",
- "type": "614"
+ "type": "616"
},
{
"case": "vhdx",
- "type": "615"
+ "type": "617"
},
{
"case": "vmdk",
- "type": "616"
+ "type": "618"
},
{
"case": "vpc",
- "type": "617"
+ "type": "619"
},
{
"case": "blkdebug",
@@ -11731,22 +11770,22 @@
"members": [
{
"name": "driver",
- "type": "318"
+ "type": "320"
}
],
"meta-type": "object"
},
{
- "name": "357",
+ "name": "359",
"tag": "driver",
"variants": [
{
"case": "luks",
- "type": "618"
+ "type": "620"
},
{
"case": "qcow2",
- "type": "619"
+ "type": "621"
},
{
"case": "blkdebug",
@@ -11932,13 +11971,13 @@
"members": [
{
"name": "driver",
- "type": "318"
+ "type": "320"
}
],
"meta-type": "object"
},
{
- "name": "358",
+ "name": "360",
"members": [
{
"name": "read"
@@ -11954,7 +11993,7 @@
]
},
{
- "name": "359",
+ "name": "361",
"members": [
{
"name": "ignore"
@@ -11974,7 +12013,7 @@
]
},
{
- "name": "360",
+ "name": "362",
"members": [
{
"type": "str"
@@ -11986,7 +12025,7 @@
"meta-type": "alternate"
},
{
- "name": "361",
+ "name": "363",
"members": [
{
"name": "read"
@@ -12006,36 +12045,36 @@
]
},
{
- "name": "362",
+ "name": "364",
"tag": "type",
"variants": [
{
"case": "inet",
- "type": "621"
+ "type": "623"
},
{
"case": "unix",
- "type": "622"
+ "type": "624"
},
{
"case": "vsock",
- "type": "623"
+ "type": "625"
},
{
"case": "fd",
- "type": "624"
+ "type": "626"
}
],
"members": [
{
"name": "type",
- "type": "620"
+ "type": "622"
}
],
"meta-type": "object"
},
{
- "name": "363",
+ "name": "365",
"members": [
{
"name": "safe"
@@ -12051,7 +12090,7 @@
]
},
{
- "name": "364",
+ "name": "366",
"members": [
{
"name": "nbd"
@@ -12075,7 +12114,7 @@
]
},
{
- "name": "365",
+ "name": "367",
"members": [
{
"name": "name",
@@ -12090,7 +12129,7 @@
{
"name": "bitmaps",
"default": null,
- "type": "[316]"
+ "type": "[318]"
},
{
"name": "allocation-depth",
@@ -12101,11 +12140,11 @@
"meta-type": "object"
},
{
- "name": "366",
+ "name": "368",
"members": [
{
"name": "addr",
- "type": "392"
+ "type": "394"
},
{
"name": "logical-block-size",
@@ -12121,7 +12160,7 @@
"meta-type": "object"
},
{
- "name": "367",
+ "name": "369",
"members": [
{
"name": "mountpoint",
@@ -12135,13 +12174,13 @@
{
"name": "allow-other",
"default": null,
- "type": "625"
+ "type": "627"
}
],
"meta-type": "object"
},
{
- "name": "368",
+ "name": "370",
"members": [
{
"name": "name",
@@ -12171,7 +12210,7 @@
"meta-type": "object"
},
{
- "name": "369",
+ "name": "371",
"members": [
{
"name": "utf8"
@@ -12187,108 +12226,108 @@
]
},
{
- "name": "370",
+ "name": "372",
"tag": "type",
"variants": [
{
"case": "file",
- "type": "627"
+ "type": "629"
},
{
"case": "serial",
- "type": "628"
+ "type": "630"
},
{
"case": "parallel",
- "type": "628"
+ "type": "630"
},
{
"case": "pipe",
- "type": "628"
+ "type": "630"
},
{
"case": "socket",
- "type": "629"
+ "type": "631"
},
{
"case": "udp",
- "type": "630"
+ "type": "632"
},
{
"case": "pty",
- "type": "631"
+ "type": "633"
},
{
"case": "null",
- "type": "632"
+ "type": "634"
},
{
"case": "mux",
- "type": "633"
+ "type": "635"
},
{
"case": "hub",
- "type": "634"
+ "type": "636"
},
{
"case": "msmouse",
- "type": "632"
+ "type": "634"
},
{
"case": "wctablet",
- "type": "632"
+ "type": "634"
},
{
"case": "braille",
- "type": "632"
+ "type": "634"
},
{
"case": "testdev",
- "type": "632"
+ "type": "634"
},
{
"case": "stdio",
- "type": "635"
+ "type": "637"
},
{
"case": "spicevmc",
- "type": "636"
+ "type": "638"
},
{
"case": "spiceport",
- "type": "637"
+ "type": "639"
},
{
"case": "qemu-vdagent",
- "type": "638"
+ "type": "640"
},
{
"case": "dbus",
- "type": "639"
+ "type": "641"
},
{
"case": "vc",
- "type": "640"
+ "type": "642"
},
{
"case": "ringbuf",
- "type": "641"
+ "type": "643"
},
{
"case": "memory",
- "type": "641"
+ "type": "643"
}
],
"members": [
{
"name": "type",
- "type": "626"
+ "type": "628"
}
],
"meta-type": "object"
},
{
- "name": "371",
+ "name": "373",
"members": [
{
"name": "elf"
@@ -12328,7 +12367,7 @@
]
},
{
- "name": "372",
+ "name": "374",
"members": [
{
"name": "none"
@@ -12352,12 +12391,12 @@
]
},
{
- "name": "[371]",
- "element-type": "371",
+ "name": "[373]",
+ "element-type": "373",
"meta-type": "array"
},
{
- "name": "373",
+ "name": "375",
"members": [
{
"name": "none"
@@ -12421,7 +12460,7 @@
]
},
{
- "name": "374",
+ "name": "376",
"members": [
{
"name": "netdev",
@@ -12452,7 +12491,7 @@
"meta-type": "object"
},
{
- "name": "375",
+ "name": "377",
"members": [
{
"name": "hostname",
@@ -12512,7 +12551,7 @@
{
"name": "dnssearch",
"default": null,
- "type": "[642]"
+ "type": "[644]"
},
{
"name": "domainname",
@@ -12552,12 +12591,12 @@
{
"name": "hostfwd",
"default": null,
- "type": "[642]"
+ "type": "[644]"
},
{
"name": "guestfwd",
"default": null,
- "type": "[642]"
+ "type": "[644]"
},
{
"name": "tftp-server-name",
@@ -12568,7 +12607,7 @@
"meta-type": "object"
},
{
- "name": "376",
+ "name": "378",
"members": [
{
"name": "ifname",
@@ -12649,7 +12688,7 @@
"meta-type": "object"
},
{
- "name": "377",
+ "name": "379",
"members": [
{
"name": "src",
@@ -12722,7 +12761,7 @@
"meta-type": "object"
},
{
- "name": "378",
+ "name": "380",
"members": [
{
"name": "fd",
@@ -12758,11 +12797,11 @@
"meta-type": "object"
},
{
- "name": "379",
+ "name": "381",
"members": [
{
"name": "addr",
- "type": "392"
+ "type": "394"
},
{
"name": "server",
@@ -12786,23 +12825,23 @@
"meta-type": "object"
},
{
- "name": "380",
+ "name": "382",
"members": [
{
"name": "local",
"default": null,
- "type": "392"
+ "type": "394"
},
{
"name": "remote",
"default": null,
- "type": "392"
+ "type": "394"
}
],
"meta-type": "object"
},
{
- "name": "381",
+ "name": "383",
"members": [
{
"name": "sock",
@@ -12828,7 +12867,7 @@
"meta-type": "object"
},
{
- "name": "382",
+ "name": "384",
"members": [
{
"name": "br",
@@ -12844,7 +12883,7 @@
"meta-type": "object"
},
{
- "name": "383",
+ "name": "385",
"members": [
{
"name": "hubid",
@@ -12859,7 +12898,7 @@
"meta-type": "object"
},
{
- "name": "384",
+ "name": "386",
"members": [
{
"name": "ifname",
@@ -12874,7 +12913,7 @@
"meta-type": "object"
},
{
- "name": "386",
+ "name": "388",
"members": [
{
"name": "chardev",
@@ -12894,7 +12933,7 @@
"meta-type": "object"
},
{
- "name": "387",
+ "name": "389",
"members": [
{
"name": "vhostdev",
@@ -12923,7 +12962,7 @@
"meta-type": "object"
},
{
- "name": "391",
+ "name": "393",
"members": [
{
"name": "normal"
@@ -12948,36 +12987,36 @@
"meta-type": "array"
},
{
- "name": "392",
+ "name": "394",
"tag": "type",
"variants": [
{
"case": "inet",
- "type": "602"
+ "type": "604"
},
{
"case": "unix",
- "type": "644"
+ "type": "646"
},
{
"case": "vsock",
- "type": "645"
+ "type": "647"
},
{
"case": "fd",
- "type": "646"
+ "type": "648"
}
],
"members": [
{
"name": "type",
- "type": "620"
+ "type": "622"
}
],
"meta-type": "object"
},
{
- "name": "393",
+ "name": "395",
"members": [
{
"name": "rss"
@@ -12989,7 +13028,7 @@
]
},
{
- "name": "394",
+ "name": "396",
"members": [
{
"name": "half"
@@ -13005,7 +13044,7 @@
]
},
{
- "name": "395",
+ "name": "397",
"members": [
{
"name": "off"
@@ -13021,7 +13060,7 @@
]
},
{
- "name": "396",
+ "name": "398",
"members": [
{
"name": "priority",
@@ -13080,7 +13119,7 @@
"meta-type": "object"
},
{
- "name": "397",
+ "name": "399",
"members": [
{
"name": "in-pport",
@@ -13121,7 +13160,7 @@
"meta-type": "object"
},
{
- "name": "398",
+ "name": "400",
"members": [
{
"name": "goto-tbl",
@@ -13157,28 +13196,28 @@
"meta-type": "object"
},
{
- "name": "399",
+ "name": "401",
"tag": "type",
"variants": [
{
"case": "passthrough",
- "type": "647"
+ "type": "649"
},
{
"case": "emulator",
- "type": "648"
+ "type": "650"
}
],
"members": [
{
"name": "type",
- "type": "122"
+ "type": "124"
}
],
"meta-type": "object"
},
{
- "name": "400",
+ "name": "402",
"members": [
{
"name": "vnc"
@@ -13194,7 +13233,7 @@
]
},
{
- "name": "401",
+ "name": "403",
"members": [
{
"name": "keep"
@@ -13214,7 +13253,7 @@
]
},
{
- "name": "402",
+ "name": "404",
"members": [
{
"name": "display",
@@ -13225,7 +13264,7 @@
"meta-type": "object"
},
{
- "name": "403",
+ "name": "405",
"members": [
{
"name": "display",
@@ -13236,7 +13275,7 @@
"meta-type": "object"
},
{
- "name": "404",
+ "name": "406",
"members": [
{
"name": "ppm"
@@ -13252,7 +13291,7 @@
]
},
{
- "name": "405",
+ "name": "407",
"members": [
{
"name": "client"
@@ -13272,12 +13311,12 @@
]
},
{
- "name": "[406]",
- "element-type": "406",
+ "name": "[408]",
+ "element-type": "408",
"meta-type": "array"
},
{
- "name": "406",
+ "name": "408",
"members": [
{
"name": "host",
@@ -13289,7 +13328,7 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
},
{
"name": "connection-id",
@@ -13311,7 +13350,7 @@
"meta-type": "object"
},
{
- "name": "407",
+ "name": "409",
"members": [
{
"name": "host",
@@ -13323,13 +13362,13 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
}
],
"meta-type": "object"
},
{
- "name": "408",
+ "name": "410",
"members": [
{
"name": "host",
@@ -13341,7 +13380,7 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
},
{
"name": "auth",
@@ -13352,7 +13391,7 @@
"meta-type": "object"
},
{
- "name": "409",
+ "name": "411",
"members": [
{
"name": "ipv4"
@@ -13380,12 +13419,12 @@
]
},
{
- "name": "[410]",
- "element-type": "410",
+ "name": "[412]",
+ "element-type": "412",
"meta-type": "array"
},
{
- "name": "410",
+ "name": "412",
"members": [
{
"name": "host",
@@ -13397,7 +13436,7 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
},
{
"name": "websocket",
@@ -13417,12 +13456,12 @@
"meta-type": "object"
},
{
- "name": "[411]",
- "element-type": "411",
+ "name": "[413]",
+ "element-type": "413",
"meta-type": "array"
},
{
- "name": "411",
+ "name": "413",
"members": [
{
"name": "host",
@@ -13434,7 +13473,7 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
},
{
"name": "websocket",
@@ -13442,18 +13481,18 @@
},
{
"name": "auth",
- "type": "412"
+ "type": "414"
},
{
"name": "vencrypt",
"default": null,
- "type": "413"
+ "type": "415"
}
],
"meta-type": "object"
},
{
- "name": "412",
+ "name": "414",
"members": [
{
"name": "none"
@@ -13497,7 +13536,7 @@
]
},
{
- "name": "413",
+ "name": "415",
"members": [
{
"name": "plain"
@@ -13541,7 +13580,7 @@
]
},
{
- "name": "414",
+ "name": "416",
"members": [
{
"name": "host",
@@ -13553,7 +13592,7 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
},
{
"name": "websocket",
@@ -13568,7 +13607,7 @@
"meta-type": "object"
},
{
- "name": "415",
+ "name": "417",
"members": [
{
"name": "host",
@@ -13580,7 +13619,7 @@
},
{
"name": "family",
- "type": "409"
+ "type": "411"
},
{
"name": "websocket",
@@ -13590,71 +13629,71 @@
"meta-type": "object"
},
{
- "name": "[416]",
- "element-type": "416",
+ "name": "[418]",
+ "element-type": "418",
"meta-type": "array"
},
{
- "name": "416",
+ "name": "418",
"tag": "type",
"variants": [
{
"case": "number",
- "type": "650"
+ "type": "652"
},
{
"case": "qcode",
- "type": "651"
+ "type": "653"
}
],
"members": [
{
"name": "type",
- "type": "649"
+ "type": "651"
}
],
"meta-type": "object"
},
{
- "name": "[417]",
- "element-type": "417",
+ "name": "[419]",
+ "element-type": "419",
"meta-type": "array"
},
{
- "name": "417",
+ "name": "419",
"tag": "type",
"variants": [
{
"case": "key",
- "type": "653"
+ "type": "655"
},
{
"case": "btn",
- "type": "654"
+ "type": "656"
},
{
"case": "rel",
- "type": "655"
+ "type": "657"
},
{
"case": "abs",
- "type": "655"
+ "type": "657"
},
{
"case": "mtt",
- "type": "656"
+ "type": "658"
}
],
"members": [
{
"name": "type",
- "type": "652"
+ "type": "654"
}
],
"meta-type": "object"
},
{
- "name": "418",
+ "name": "420",
"members": [
{
"name": "default"
@@ -13690,7 +13729,7 @@
]
},
{
- "name": "419",
+ "name": "421",
"members": [
{
"name": "off"
@@ -13714,7 +13753,7 @@
]
},
{
- "name": "420",
+ "name": "422",
"members": [
{
"name": "grab-on-hover",
@@ -13740,7 +13779,7 @@
"meta-type": "object"
},
{
- "name": "421",
+ "name": "423",
"members": [
{
"name": "left-command-key",
@@ -13771,7 +13810,7 @@
"meta-type": "object"
},
{
- "name": "422",
+ "name": "424",
"members": [
{
"name": "charset",
@@ -13782,7 +13821,7 @@
"meta-type": "object"
},
{
- "name": "423",
+ "name": "425",
"members": [
{
"name": "rendernode",
@@ -13793,7 +13832,7 @@
"meta-type": "object"
},
{
- "name": "424",
+ "name": "426",
"members": [
{
"name": "rendernode",
@@ -13819,18 +13858,18 @@
"meta-type": "object"
},
{
- "name": "425",
+ "name": "427",
"members": [
{
"name": "grab-mod",
"default": null,
- "type": "657"
+ "type": "659"
}
],
"meta-type": "object"
},
{
- "name": "426",
+ "name": "428",
"members": [
{
"name": "vnc"
@@ -13842,7 +13881,7 @@
]
},
{
- "name": "427",
+ "name": "429",
"members": [
{
"name": "tls-certs",
@@ -13853,7 +13892,7 @@
"meta-type": "object"
},
{
- "name": "428",
+ "name": "430",
"members": [
{
"name": "vnc"
@@ -13865,18 +13904,18 @@
]
},
{
- "name": "429",
+ "name": "431",
"members": [
{
"name": "addresses",
"default": null,
- "type": "[392]"
+ "type": "[394]"
}
],
"meta-type": "object"
},
{
- "name": "430",
+ "name": "432",
"members": [
{
"name": "none"
@@ -13944,7 +13983,7 @@
]
},
{
- "name": "431",
+ "name": "433",
"members": [
{
"name": "transferred",
@@ -14018,7 +14057,7 @@
"meta-type": "object"
},
{
- "name": "432",
+ "name": "434",
"members": [
{
"name": "transferred",
@@ -14028,7 +14067,7 @@
"meta-type": "object"
},
{
- "name": "433",
+ "name": "435",
"members": [
{
"name": "cache-size",
@@ -14062,12 +14101,12 @@
"meta-type": "object"
},
{
- "name": "[392]",
- "element-type": "392",
+ "name": "[394]",
+ "element-type": "394",
"meta-type": "array"
},
{
- "name": "434",
+ "name": "436",
"members": [
{
"name": "xbzrle"
@@ -14172,7 +14211,7 @@
]
},
{
- "name": "435",
+ "name": "437",
"members": [
{
"name": "none"
@@ -14192,12 +14231,12 @@
]
},
{
- "name": "[436]",
- "element-type": "436",
+ "name": "[438]",
+ "element-type": "438",
"meta-type": "array"
},
{
- "name": "436",
+ "name": "438",
"members": [
{
"name": "node-name",
@@ -14209,13 +14248,13 @@
},
{
"name": "bitmaps",
- "type": "[658]"
+ "type": "[660]"
}
],
"meta-type": "object"
},
{
- "name": "437",
+ "name": "439",
"members": [
{
"name": "normal"
@@ -14235,7 +14274,7 @@
]
},
{
- "name": "438",
+ "name": "440",
"members": [
{
"name": "none"
@@ -14255,7 +14294,7 @@
]
},
{
- "name": "439",
+ "name": "441",
"members": [
{
"name": "none"
@@ -14275,7 +14314,7 @@
]
},
{
- "name": "440",
+ "name": "442",
"members": [
{
"name": "none"
@@ -14299,26 +14338,26 @@
]
},
{
- "name": "[441]",
- "element-type": "441",
+ "name": "[443]",
+ "element-type": "443",
"meta-type": "array"
},
{
- "name": "441",
+ "name": "443",
"members": [
{
"name": "channel-type",
- "type": "659"
+ "type": "661"
},
{
"name": "addr",
- "type": "660"
+ "type": "662"
}
],
"meta-type": "object"
},
{
- "name": "442",
+ "name": "444",
"members": [
{
"name": "second"
@@ -14334,7 +14373,7 @@
]
},
{
- "name": "443",
+ "name": "445",
"members": [
{
"name": "page-sampling"
@@ -14354,7 +14393,7 @@
]
},
{
- "name": "444",
+ "name": "446",
"members": [
{
"name": "unstarted"
@@ -14374,12 +14413,12 @@
]
},
{
- "name": "[445]",
- "element-type": "445",
+ "name": "[447]",
+ "element-type": "447",
"meta-type": "array"
},
{
- "name": "445",
+ "name": "447",
"members": [
{
"name": "id",
@@ -14393,84 +14432,84 @@
"meta-type": "object"
},
{
- "name": "[446]",
- "element-type": "446",
+ "name": "[448]",
+ "element-type": "448",
"meta-type": "array"
},
{
- "name": "446",
+ "name": "448",
"tag": "type",
"variants": [
{
"case": "abort",
- "type": "662"
+ "type": "664"
},
{
"case": "block-dirty-bitmap-add",
- "type": "663"
+ "type": "665"
},
{
"case": "block-dirty-bitmap-remove",
- "type": "664"
+ "type": "666"
},
{
"case": "block-dirty-bitmap-clear",
- "type": "664"
+ "type": "666"
},
{
"case": "block-dirty-bitmap-enable",
- "type": "664"
+ "type": "666"
},
{
"case": "block-dirty-bitmap-disable",
- "type": "664"
+ "type": "666"
},
{
"case": "block-dirty-bitmap-merge",
- "type": "665"
+ "type": "667"
},
{
"case": "blockdev-backup",
- "type": "666"
+ "type": "668"
},
{
"case": "blockdev-snapshot",
- "type": "667"
+ "type": "669"
},
{
"case": "blockdev-snapshot-internal-sync",
- "type": "668"
+ "type": "670"
},
{
"case": "blockdev-snapshot-sync",
- "type": "669"
+ "type": "671"
},
{
"case": "drive-backup",
- "type": "670"
+ "type": "672"
}
],
"members": [
{
"name": "type",
- "type": "661"
+ "type": "663"
}
],
"meta-type": "object"
},
{
- "name": "447",
+ "name": "449",
"members": [
{
"name": "completion-mode",
"default": null,
- "type": "671"
+ "type": "673"
}
],
"meta-type": "object"
},
{
- "name": "448",
+ "name": "450",
"members": [
{
"name": "unavailable"
@@ -14490,12 +14529,12 @@
]
},
{
- "name": "[449]",
- "element-type": "449",
+ "name": "[451]",
+ "element-type": "451",
"meta-type": "array"
},
{
- "name": "449",
+ "name": "451",
"members": [
{
"name": "oob"
@@ -14507,7 +14546,7 @@
]
},
{
- "name": "450",
+ "name": "452",
"members": [
{
"name": "major",
@@ -14525,7 +14564,7 @@
"meta-type": "object"
},
{
- "name": "451",
+ "name": "453",
"members": [
{
"name": "builtin"
@@ -14561,21 +14600,21 @@
]
},
{
- "name": "452",
+ "name": "454",
"members": [
{
"name": "json-type",
- "type": "672"
+ "type": "674"
}
],
"meta-type": "object"
},
{
- "name": "453",
+ "name": "455",
"members": [
{
"name": "members",
- "type": "[673]"
+ "type": "[675]"
},
{
"name": "values",
@@ -14588,7 +14627,7 @@
"meta-type": "object"
},
{
- "name": "454",
+ "name": "456",
"members": [
{
"name": "element-type",
@@ -14598,11 +14637,11 @@
"meta-type": "object"
},
{
- "name": "455",
+ "name": "457",
"members": [
{
"name": "members",
- "type": "[674]"
+ "type": "[676]"
},
{
"name": "tag",
@@ -14612,23 +14651,23 @@
{
"name": "variants",
"default": null,
- "type": "[675]"
+ "type": "[677]"
}
],
"meta-type": "object"
},
{
- "name": "456",
+ "name": "458",
"members": [
{
"name": "members",
- "type": "[676]"
+ "type": "[678]"
}
],
"meta-type": "object"
},
{
- "name": "457",
+ "name": "459",
"members": [
{
"name": "arg-type",
@@ -14647,7 +14686,7 @@
"meta-type": "object"
},
{
- "name": "458",
+ "name": "460",
"members": [
{
"name": "arg-type",
@@ -14657,7 +14696,7 @@
"meta-type": "object"
},
{
- "name": "459",
+ "name": "461",
"members": [
{
"name": "acpi-generic-initiator"
@@ -14867,7 +14906,7 @@
]
},
{
- "name": "460",
+ "name": "462",
"members": [
{
"name": "pci-dev",
@@ -14881,7 +14920,7 @@
"meta-type": "object"
},
{
- "name": "461",
+ "name": "463",
"members": [
{
"name": "pci-bus",
@@ -14895,23 +14934,23 @@
"meta-type": "object"
},
{
- "name": "462",
+ "name": "464",
"members": [
{
"name": "policy",
"default": null,
- "type": "677"
+ "type": "679"
},
{
"name": "rules",
"default": null,
- "type": "[678]"
+ "type": "[680]"
}
],
"meta-type": "object"
},
{
- "name": "463",
+ "name": "465",
"members": [
{
"name": "filename",
@@ -14926,7 +14965,7 @@
"meta-type": "object"
},
{
- "name": "464",
+ "name": "466",
"members": [
{
"name": "service",
@@ -14936,7 +14975,7 @@
"meta-type": "object"
},
{
- "name": "465",
+ "name": "467",
"members": [
{
"name": "identity",
@@ -14946,7 +14985,7 @@
"meta-type": "object"
},
{
- "name": "466",
+ "name": "468",
"members": [
{
"name": "if",
@@ -14960,7 +14999,7 @@
"meta-type": "object"
},
{
- "name": "467",
+ "name": "469",
"members": [
{
"name": "primary_in",
@@ -15007,7 +15046,7 @@
"meta-type": "object"
},
{
- "name": "468",
+ "name": "470",
"members": [
{
"name": "queues",
@@ -15028,7 +15067,7 @@
"meta-type": "object"
},
{
- "name": "469",
+ "name": "471",
"members": [
{
"name": "queues",
@@ -15053,7 +15092,7 @@
"meta-type": "object"
},
{
- "name": "470",
+ "name": "472",
"members": [
{
"name": "addr",
@@ -15068,7 +15107,7 @@
"meta-type": "object"
},
{
- "name": "471",
+ "name": "473",
"members": [
{
"name": "netdev",
@@ -15077,7 +15116,7 @@
{
"name": "queue",
"default": null,
- "type": "679"
+ "type": "681"
},
{
"name": "status",
@@ -15092,7 +15131,7 @@
{
"name": "insert",
"default": null,
- "type": "680"
+ "type": "682"
},
{
"name": "interval",
@@ -15102,7 +15141,7 @@
"meta-type": "object"
},
{
- "name": "472",
+ "name": "474",
"members": [
{
"name": "netdev",
@@ -15111,7 +15150,7 @@
{
"name": "queue",
"default": null,
- "type": "679"
+ "type": "681"
},
{
"name": "status",
@@ -15126,7 +15165,7 @@
{
"name": "insert",
"default": null,
- "type": "680"
+ "type": "682"
},
{
"name": "file",
@@ -15141,7 +15180,7 @@
"meta-type": "object"
},
{
- "name": "473",
+ "name": "475",
"members": [
{
"name": "netdev",
@@ -15150,7 +15189,7 @@
{
"name": "queue",
"default": null,
- "type": "679"
+ "type": "681"
},
{
"name": "status",
@@ -15165,7 +15204,7 @@
{
"name": "insert",
"default": null,
- "type": "680"
+ "type": "682"
},
{
"name": "outdev",
@@ -15180,7 +15219,7 @@
"meta-type": "object"
},
{
- "name": "474",
+ "name": "476",
"members": [
{
"name": "netdev",
@@ -15189,7 +15228,7 @@
{
"name": "queue",
"default": null,
- "type": "679"
+ "type": "681"
},
{
"name": "status",
@@ -15204,7 +15243,7 @@
{
"name": "insert",
"default": null,
- "type": "680"
+ "type": "682"
},
{
"name": "indev",
@@ -15225,7 +15264,7 @@
"meta-type": "object"
},
{
- "name": "475",
+ "name": "477",
"members": [
{
"name": "netdev",
@@ -15234,7 +15273,7 @@
{
"name": "queue",
"default": null,
- "type": "679"
+ "type": "681"
},
{
"name": "status",
@@ -15249,13 +15288,13 @@
{
"name": "insert",
"default": null,
- "type": "680"
+ "type": "682"
}
],
"meta-type": "object"
},
{
- "name": "476",
+ "name": "478",
"members": [
{
"name": "netdev",
@@ -15264,7 +15303,7 @@
{
"name": "queue",
"default": null,
- "type": "679"
+ "type": "681"
},
{
"name": "status",
@@ -15279,7 +15318,7 @@
{
"name": "insert",
"default": null,
- "type": "680"
+ "type": "682"
},
{
"name": "vnet_hdr_support",
@@ -15290,7 +15329,7 @@
"meta-type": "object"
},
{
- "name": "477",
+ "name": "479",
"members": [
{
"name": "name",
@@ -15330,7 +15369,7 @@
"meta-type": "object"
},
{
- "name": "478",
+ "name": "480",
"members": [
{
"name": "evdev",
@@ -15349,13 +15388,13 @@
{
"name": "grab-toggle",
"default": null,
- "type": "681"
+ "type": "683"
}
],
"meta-type": "object"
},
{
- "name": "479",
+ "name": "481",
"members": [
{
"name": "fd",
@@ -15366,7 +15405,7 @@
"meta-type": "object"
},
{
- "name": "480",
+ "name": "482",
"members": [
{
"name": "aio-max-batch",
@@ -15402,7 +15441,7 @@
"meta-type": "object"
},
{
- "name": "481",
+ "name": "483",
"members": [
{
"name": "aio-max-batch",
@@ -15423,7 +15462,7 @@
"meta-type": "object"
},
{
- "name": "482",
+ "name": "484",
"members": [
{
"name": "dump",
@@ -15443,7 +15482,7 @@
{
"name": "policy",
"default": null,
- "type": "508"
+ "type": "510"
},
{
"name": "prealloc",
@@ -15483,7 +15522,7 @@
"meta-type": "object"
},
{
- "name": "483",
+ "name": "485",
"members": [
{
"name": "dump",
@@ -15503,7 +15542,7 @@
{
"name": "policy",
"default": null,
- "type": "508"
+ "type": "510"
},
{
"name": "prealloc",
@@ -15571,13 +15610,13 @@
{
"name": "rom",
"default": null,
- "type": "588"
+ "type": "590"
}
],
"meta-type": "object"
},
{
- "name": "484",
+ "name": "486",
"members": [
{
"name": "dump",
@@ -15597,7 +15636,7 @@
{
"name": "policy",
"default": null,
- "type": "508"
+ "type": "510"
},
{
"name": "prealloc",
@@ -15652,7 +15691,7 @@
"meta-type": "object"
},
{
- "name": "485",
+ "name": "487",
"members": [
{
"name": "dump",
@@ -15672,7 +15711,7 @@
{
"name": "policy",
"default": null,
- "type": "508"
+ "type": "510"
},
{
"name": "prealloc",
@@ -15712,7 +15751,7 @@
"meta-type": "object"
},
{
- "name": "486",
+ "name": "488",
"members": [
{
"name": "dump",
@@ -15732,7 +15771,7 @@
{
"name": "policy",
"default": null,
- "type": "508"
+ "type": "510"
},
{
"name": "prealloc",
@@ -15772,7 +15811,7 @@
"meta-type": "object"
},
{
- "name": "487",
+ "name": "489",
"members": [
{
"name": "path",
@@ -15782,7 +15821,7 @@
"meta-type": "object"
},
{
- "name": "488",
+ "name": "490",
"members": [
{
"name": "chardev",
@@ -15797,7 +15836,7 @@
"meta-type": "object"
},
{
- "name": "489",
+ "name": "491",
"members": [
{
"name": "opened",
@@ -15811,7 +15850,7 @@
"meta-type": "object"
},
{
- "name": "490",
+ "name": "492",
"members": [
{
"name": "opened",
@@ -15829,7 +15868,7 @@
"meta-type": "object"
},
{
- "name": "491",
+ "name": "493",
"members": [
{
"name": "opened",
@@ -15848,12 +15887,12 @@
"meta-type": "object"
},
{
- "name": "492",
+ "name": "494",
"members": [
{
"name": "format",
"default": null,
- "type": "682"
+ "type": "684"
},
{
"name": "keyid",
@@ -15879,12 +15918,12 @@
"meta-type": "object"
},
{
- "name": "493",
+ "name": "495",
"members": [
{
"name": "format",
"default": null,
- "type": "682"
+ "type": "684"
},
{
"name": "keyid",
@@ -15904,7 +15943,7 @@
"meta-type": "object"
},
{
- "name": "494",
+ "name": "496",
"members": [
{
"name": "sev-device",
@@ -15948,13 +15987,13 @@
{
"name": "legacy-vm-type",
"default": null,
- "type": "588"
+ "type": "590"
}
],
"meta-type": "object"
},
{
- "name": "495",
+ "name": "497",
"members": [
{
"name": "sev-device",
@@ -16014,7 +16053,7 @@
"meta-type": "object"
},
{
- "name": "496",
+ "name": "498",
"members": [
{
"name": "cpu-affinity",
@@ -16030,12 +16069,12 @@
"meta-type": "object"
},
{
- "name": "497",
+ "name": "499",
"members": [
{
"name": "limits",
"default": null,
- "type": "683"
+ "type": "685"
},
{
"name": "x-iops-total",
@@ -16193,7 +16232,7 @@
"meta-type": "object"
},
{
- "name": "498",
+ "name": "500",
"members": [
{
"name": "verify-peer",
@@ -16208,7 +16247,7 @@
{
"name": "endpoint",
"default": null,
- "type": "684"
+ "type": "686"
},
{
"name": "priority",
@@ -16219,7 +16258,7 @@
"meta-type": "object"
},
{
- "name": "499",
+ "name": "501",
"members": [
{
"name": "verify-peer",
@@ -16234,7 +16273,7 @@
{
"name": "endpoint",
"default": null,
- "type": "684"
+ "type": "686"
},
{
"name": "priority",
@@ -16250,7 +16289,7 @@
"meta-type": "object"
},
{
- "name": "500",
+ "name": "502",
"members": [
{
"name": "verify-peer",
@@ -16265,7 +16304,7 @@
{
"name": "endpoint",
"default": null,
- "type": "684"
+ "type": "686"
},
{
"name": "priority",
@@ -16286,7 +16325,7 @@
"meta-type": "object"
},
{
- "name": "501",
+ "name": "503",
"members": [
{
"name": "verify-peer",
@@ -16301,7 +16340,7 @@
{
"name": "endpoint",
"default": null,
- "type": "684"
+ "type": "686"
},
{
"name": "priority",
@@ -16312,7 +16351,7 @@
"meta-type": "object"
},
{
- "name": "502",
+ "name": "504",
"members": [
{
"name": "fd",
@@ -16326,11 +16365,11 @@
"meta-type": "object"
},
{
- "name": "503",
+ "name": "505",
"members": [
{
"name": "socket",
- "type": "392"
+ "type": "394"
},
{
"name": "device",
@@ -16340,7 +16379,7 @@
"meta-type": "object"
},
{
- "name": "504",
+ "name": "506",
"members": [
{
"name": "node-id",
@@ -16391,7 +16430,7 @@
"meta-type": "object"
},
{
- "name": "505",
+ "name": "507",
"members": [
{
"name": "aarch64"
@@ -16515,11 +16554,11 @@
]
},
{
- "name": "506",
+ "name": "508",
"members": [
{
"name": "cpu-state",
- "type": "685"
+ "type": "687"
},
{
"name": "dedicated",
@@ -16529,18 +16568,18 @@
{
"name": "entitlement",
"default": null,
- "type": "524"
+ "type": "526"
}
],
"meta-type": "object"
},
{
- "name": "[507]",
- "element-type": "507",
+ "name": "[509]",
+ "element-type": "509",
"meta-type": "array"
},
{
- "name": "507",
+ "name": "509",
"members": [
{
"name": "qom-type",
@@ -16558,7 +16597,7 @@
"meta-type": "object"
},
{
- "name": "508",
+ "name": "510",
"members": [
{
"name": "default"
@@ -16582,7 +16621,7 @@
]
},
{
- "name": "509",
+ "name": "511",
"members": [
{
"name": "node"
@@ -16610,7 +16649,7 @@
]
},
{
- "name": "510",
+ "name": "512",
"members": [
{
"name": "nodeid",
@@ -16641,7 +16680,7 @@
"meta-type": "object"
},
{
- "name": "511",
+ "name": "513",
"members": [
{
"name": "src",
@@ -16659,7 +16698,7 @@
"meta-type": "object"
},
{
- "name": "512",
+ "name": "514",
"members": [
{
"name": "node-id",
@@ -16710,7 +16749,7 @@
"meta-type": "object"
},
{
- "name": "513",
+ "name": "515",
"members": [
{
"name": "initiator",
@@ -16722,11 +16761,11 @@
},
{
"name": "hierarchy",
- "type": "686"
+ "type": "688"
},
{
"name": "data-type",
- "type": "687"
+ "type": "689"
},
{
"name": "latency",
@@ -16742,7 +16781,7 @@
"meta-type": "object"
},
{
- "name": "514",
+ "name": "516",
"members": [
{
"name": "node-id",
@@ -16758,11 +16797,11 @@
},
{
"name": "associativity",
- "type": "688"
+ "type": "690"
},
{
"name": "policy",
- "type": "689"
+ "type": "691"
},
{
"name": "line",
@@ -16772,7 +16811,7 @@
"meta-type": "object"
},
{
- "name": "515",
+ "name": "517",
"members": [
{
"name": "dimm"
@@ -16804,57 +16843,57 @@
]
},
{
- "name": "516",
+ "name": "518",
"members": [
{
"name": "data",
- "type": "690"
+ "type": "692"
}
],
"meta-type": "object"
},
{
- "name": "517",
+ "name": "519",
"members": [
{
"name": "data",
- "type": "691"
+ "type": "693"
}
],
"meta-type": "object"
},
{
- "name": "518",
+ "name": "520",
"members": [
{
"name": "data",
- "type": "692"
+ "type": "694"
}
],
"meta-type": "object"
},
{
- "name": "519",
+ "name": "521",
"members": [
{
"name": "data",
- "type": "693"
+ "type": "695"
}
],
"meta-type": "object"
},
{
- "name": "520",
+ "name": "522",
"members": [
{
"name": "data",
- "type": "694"
+ "type": "696"
}
],
"meta-type": "object"
},
{
- "name": "521",
+ "name": "523",
"members": [
{
"name": "name",
@@ -16869,7 +16908,7 @@
"meta-type": "object"
},
{
- "name": "522",
+ "name": "524",
"members": [
{
"name": "incompatible"
@@ -16893,7 +16932,7 @@
]
},
{
- "name": "523",
+ "name": "525",
"members": [
{
"name": "static"
@@ -16909,7 +16948,7 @@
]
},
{
- "name": "524",
+ "name": "526",
"members": [
{
"name": "auto"
@@ -16933,7 +16972,7 @@
]
},
{
- "name": "526",
+ "name": "528",
"members": [
{
"name": "none"
@@ -16953,7 +16992,7 @@
]
},
{
- "name": "527",
+ "name": "529",
"members": [
{
"name": "block-node"
@@ -16973,7 +17012,7 @@
]
},
{
- "name": "528",
+ "name": "530",
"members": [
{
"name": "node-name",
@@ -16983,7 +17022,7 @@
"meta-type": "object"
},
{
- "name": "529",
+ "name": "531",
"members": [
{
"name": "id",
@@ -16993,12 +17032,12 @@
"meta-type": "object"
},
{
- "name": "[530]",
- "element-type": "530",
+ "name": "[532]",
+ "element-type": "532",
"meta-type": "array"
},
{
- "name": "530",
+ "name": "532",
"members": [
{
"name": "fd",
@@ -17013,12 +17052,12 @@
"meta-type": "object"
},
{
- "name": "[531]",
- "element-type": "531",
+ "name": "[533]",
+ "element-type": "533",
"meta-type": "array"
},
{
- "name": "531",
+ "name": "533",
"members": [
{
"name": "name",
@@ -17026,7 +17065,7 @@
},
{
"name": "type",
- "type": "695"
+ "type": "697"
},
{
"name": "help",
@@ -17042,7 +17081,7 @@
"meta-type": "object"
},
{
- "name": "532",
+ "name": "534",
"members": [
{
"name": "uninit"
@@ -17074,7 +17113,7 @@
]
},
{
- "name": "533",
+ "name": "535",
"members": [
{
"name": "sev"
@@ -17090,7 +17129,7 @@
]
},
{
- "name": "534",
+ "name": "536",
"members": [
{
"name": "policy",
@@ -17104,7 +17143,7 @@
"meta-type": "object"
},
{
- "name": "535",
+ "name": "537",
"members": [
{
"name": "snp-policy",
@@ -17114,12 +17153,12 @@
"meta-type": "object"
},
{
- "name": "[536]",
- "element-type": "536",
+ "name": "[538]",
+ "element-type": "538",
"meta-type": "array"
},
{
- "name": "536",
+ "name": "538",
"members": [
{
"name": "node",
@@ -17133,7 +17172,7 @@
"meta-type": "object"
},
{
- "name": "537",
+ "name": "539",
"members": [
{
"name": "closed"
@@ -17165,7 +17204,7 @@
]
},
{
- "name": "538",
+ "name": "540",
"members": [
{
"name": "none"
@@ -17205,33 +17244,33 @@
]
},
{
- "name": "539",
+ "name": "541",
"members": [
{
"name": "in",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "out",
"default": null,
- "type": "696"
+ "type": "698"
}
],
"meta-type": "object"
},
{
- "name": "540",
+ "name": "542",
"members": [
{
"name": "in",
"default": null,
- "type": "697"
+ "type": "699"
},
{
"name": "out",
"default": null,
- "type": "697"
+ "type": "699"
},
{
"name": "threshold",
@@ -17242,33 +17281,33 @@
"meta-type": "object"
},
{
- "name": "541",
+ "name": "543",
"members": [
{
"name": "in",
"default": null,
- "type": "698"
+ "type": "700"
},
{
"name": "out",
"default": null,
- "type": "698"
+ "type": "700"
}
],
"meta-type": "object"
},
{
- "name": "542",
+ "name": "544",
"members": [
{
"name": "in",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "out",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "nsamples",
@@ -17279,17 +17318,17 @@
"meta-type": "object"
},
{
- "name": "543",
+ "name": "545",
"members": [
{
"name": "in",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "out",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "latency",
@@ -17300,33 +17339,33 @@
"meta-type": "object"
},
{
- "name": "544",
+ "name": "546",
"members": [
{
"name": "in",
"default": null,
- "type": "699"
+ "type": "701"
},
{
"name": "out",
"default": null,
- "type": "699"
+ "type": "701"
}
],
"meta-type": "object"
},
{
- "name": "545",
+ "name": "547",
"members": [
{
"name": "in",
"default": null,
- "type": "700"
+ "type": "702"
},
{
"name": "out",
"default": null,
- "type": "700"
+ "type": "702"
},
{
"name": "try-mmap",
@@ -17347,17 +17386,17 @@
"meta-type": "object"
},
{
- "name": "546",
+ "name": "548",
"members": [
{
"name": "in",
"default": null,
- "type": "701"
+ "type": "703"
},
{
"name": "out",
"default": null,
- "type": "701"
+ "type": "703"
},
{
"name": "server",
@@ -17368,49 +17407,49 @@
"meta-type": "object"
},
{
- "name": "547",
+ "name": "549",
"members": [
{
"name": "in",
"default": null,
- "type": "702"
+ "type": "704"
},
{
"name": "out",
"default": null,
- "type": "702"
+ "type": "704"
}
],
"meta-type": "object"
},
{
- "name": "548",
+ "name": "550",
"members": [
{
"name": "in",
"default": null,
- "type": "703"
+ "type": "705"
},
{
"name": "out",
"default": null,
- "type": "703"
+ "type": "705"
}
],
"meta-type": "object"
},
{
- "name": "549",
+ "name": "551",
"members": [
{
"name": "in",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "out",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "dev",
@@ -17426,17 +17465,17 @@
"meta-type": "object"
},
{
- "name": "550",
+ "name": "552",
"members": [
{
"name": "in",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "out",
"default": null,
- "type": "696"
+ "type": "698"
},
{
"name": "path",
@@ -17447,7 +17486,7 @@
"meta-type": "object"
},
{
- "name": "551",
+ "name": "553",
"members": [
{
"name": "DIMM"
@@ -17463,12 +17502,12 @@
]
},
{
- "name": "[552]",
- "element-type": "552",
+ "name": "[554]",
+ "element-type": "554",
"meta-type": "array"
},
{
- "name": "552",
+ "name": "554",
"members": [
{
"name": "bus",
@@ -17484,11 +17523,11 @@
},
{
"name": "class_info",
- "type": "704"
+ "type": "706"
},
{
"name": "id",
- "type": "705"
+ "type": "707"
},
{
"name": "irq",
@@ -17506,17 +17545,17 @@
{
"name": "pci_bridge",
"default": null,
- "type": "706"
+ "type": "708"
},
{
"name": "regions",
- "type": "[707]"
+ "type": "[709]"
}
],
"meta-type": "object"
},
{
- "name": "553",
+ "name": "555",
"members": [
{
"name": "vm"
@@ -17536,16 +17575,16 @@
]
},
{
- "name": "[554]",
- "element-type": "554",
+ "name": "[556]",
+ "element-type": "556",
"meta-type": "array"
},
{
- "name": "554",
+ "name": "556",
"members": [
{
"name": "provider",
- "type": "556"
+ "type": "558"
},
{
"name": "names",
@@ -17556,7 +17595,7 @@
"meta-type": "object"
},
{
- "name": "555",
+ "name": "557",
"members": [
{
"name": "vcpus",
@@ -17567,7 +17606,7 @@
"meta-type": "object"
},
{
- "name": "556",
+ "name": "558",
"members": [
{
"name": "kvm"
@@ -17583,12 +17622,12 @@
]
},
{
- "name": "[557]",
- "element-type": "557",
+ "name": "[559]",
+ "element-type": "559",
"meta-type": "array"
},
{
- "name": "557",
+ "name": "559",
"members": [
{
"name": "name",
@@ -17596,18 +17635,18 @@
},
{
"name": "value",
- "type": "708"
+ "type": "710"
}
],
"meta-type": "object"
},
{
- "name": "[558]",
- "element-type": "558",
+ "name": "[560]",
+ "element-type": "560",
"meta-type": "array"
},
{
- "name": "558",
+ "name": "560",
"members": [
{
"name": "name",
@@ -17615,12 +17654,12 @@
},
{
"name": "type",
- "type": "709"
+ "type": "711"
},
{
"name": "unit",
"default": null,
- "type": "710"
+ "type": "712"
},
{
"name": "base",
@@ -17640,7 +17679,7 @@
"meta-type": "object"
},
{
- "name": "559",
+ "name": "561",
"members": [
{
"name": "transports",
@@ -17660,7 +17699,7 @@
"meta-type": "object"
},
{
- "name": "560",
+ "name": "562",
"members": [
{
"name": "statuses",
@@ -17675,7 +17714,7 @@
"meta-type": "object"
},
{
- "name": "561",
+ "name": "563",
"members": [
{
"name": "n-mem-sections",
@@ -17695,19 +17734,19 @@
},
{
"name": "features",
- "type": "559"
+ "type": "561"
},
{
"name": "acked-features",
- "type": "559"
+ "type": "561"
},
{
"name": "backend-features",
- "type": "559"
+ "type": "561"
},
{
"name": "protocol-features",
- "type": "711"
+ "type": "713"
},
{
"name": "max-queues",
@@ -17729,12 +17768,12 @@
"meta-type": "object"
},
{
- "name": "[562]",
- "element-type": "562",
+ "name": "[564]",
+ "element-type": "564",
"meta-type": "array"
},
{
- "name": "562",
+ "name": "564",
"members": [
{
"name": "addr",
@@ -17752,7 +17791,7 @@
"meta-type": "object"
},
{
- "name": "563",
+ "name": "565",
"members": [
{
"name": "flags",
@@ -17770,7 +17809,7 @@
"meta-type": "object"
},
{
- "name": "564",
+ "name": "566",
"members": [
{
"name": "flags",
@@ -17784,7 +17823,7 @@
"meta-type": "object"
},
{
- "name": "565",
+ "name": "567",
"members": [
{
"name": "stop"
@@ -17820,12 +17859,12 @@
]
},
{
- "name": "[566]",
- "element-type": "566",
+ "name": "[568]",
+ "element-type": "568",
"meta-type": "array"
},
{
- "name": "566",
+ "name": "568",
"members": [
{
"name": "cipher"
@@ -17853,12 +17892,12 @@
]
},
{
- "name": "[567]",
- "element-type": "567",
+ "name": "[569]",
+ "element-type": "569",
"meta-type": "array"
},
{
- "name": "567",
+ "name": "569",
"members": [
{
"name": "queue",
@@ -17866,13 +17905,13 @@
},
{
"name": "type",
- "type": "712"
+ "type": "714"
}
],
"meta-type": "object"
},
{
- "name": "568",
+ "name": "570",
"members": [
{
"name": "informational"
@@ -17896,16 +17935,16 @@
]
},
{
- "name": "[569]",
- "element-type": "569",
+ "name": "[571]",
+ "element-type": "571",
"meta-type": "array"
},
{
- "name": "569",
+ "name": "571",
"members": [
{
"name": "type",
- "type": "713"
+ "type": "715"
},
{
"name": "header",
@@ -17915,7 +17954,7 @@
"meta-type": "object"
},
{
- "name": "570",
+ "name": "572",
"members": [
{
"name": "cache-data-ecc"
@@ -17951,7 +17990,7 @@
]
},
{
- "name": "571",
+ "name": "573",
"members": [
{
"name": "free"
@@ -17975,12 +18014,12 @@
]
},
{
- "name": "[572]",
- "element-type": "572",
+ "name": "[574]",
+ "element-type": "574",
"meta-type": "array"
},
{
- "name": "572",
+ "name": "574",
"members": [
{
"name": "offset",
@@ -17994,7 +18033,7 @@
"meta-type": "object"
},
{
- "name": "573",
+ "name": "575",
"members": [
{
"name": "tag-based"
@@ -18010,7 +18049,7 @@
]
},
{
- "name": "574",
+ "name": "576",
"members": [
{
"name": "hyper-v"
@@ -18026,7 +18065,7 @@
]
},
{
- "name": "575",
+ "name": "577",
"members": [
{
"name": "arg1",
@@ -18052,7 +18091,7 @@
"meta-type": "object"
},
{
- "name": "576",
+ "name": "578",
"members": [
{
"name": "core",
@@ -18068,18 +18107,18 @@
},
{
"name": "reason",
- "type": "714"
+ "type": "716"
}
],
"meta-type": "object"
},
{
- "name": "[577]",
- "element-type": "577",
+ "name": "[579]",
+ "element-type": "579",
"meta-type": "array"
},
{
- "name": "577",
+ "name": "579",
"members": [
{
"name": "interval_length",
@@ -18149,7 +18188,7 @@
"meta-type": "object"
},
{
- "name": "578",
+ "name": "580",
"members": [
{
"name": "boundaries",
@@ -18163,7 +18202,7 @@
"meta-type": "object"
},
{
- "name": "579",
+ "name": "581",
"members": [
{
"name": "discard-nb-ok",
@@ -18181,7 +18220,7 @@
"meta-type": "object"
},
{
- "name": "580",
+ "name": "582",
"members": [
{
"name": "completion-errors",
@@ -18204,40 +18243,40 @@
"meta-type": "array"
},
{
- "name": "581",
+ "name": "583",
"tag": "type",
"variants": [
{
"case": "qcow2",
- "type": "716"
+ "type": "718"
},
{
"case": "vmdk",
- "type": "717"
+ "type": "719"
},
{
"case": "luks",
- "type": "718"
+ "type": "720"
},
{
"case": "rbd",
- "type": "719"
+ "type": "721"
},
{
"case": "file",
- "type": "720"
+ "type": "722"
}
],
"members": [
{
"name": "type",
- "type": "715"
+ "type": "717"
}
],
"meta-type": "object"
},
{
- "name": "582",
+ "name": "584",
"members": [
{
"name": "block-backend"
@@ -18257,12 +18296,12 @@
]
},
{
- "name": "[583]",
- "element-type": "583",
+ "name": "[585]",
+ "element-type": "585",
"meta-type": "array"
},
{
- "name": "583",
+ "name": "585",
"members": [
{
"name": "consistent-read"
@@ -18286,7 +18325,7 @@
]
},
{
- "name": "584",
+ "name": "586",
"members": [
{
"type": "58"
@@ -18298,16 +18337,16 @@
"meta-type": "alternate"
},
{
- "name": "[585]",
- "element-type": "585",
+ "name": "[587]",
+ "element-type": "587",
"meta-type": "array"
},
{
- "name": "585",
+ "name": "587",
"members": [
{
"name": "event",
- "type": "721"
+ "type": "723"
},
{
"name": "state",
@@ -18317,7 +18356,7 @@
{
"name": "iotype",
"default": null,
- "type": "722"
+ "type": "724"
},
{
"name": "errno",
@@ -18343,16 +18382,16 @@
"meta-type": "object"
},
{
- "name": "[586]",
- "element-type": "586",
+ "name": "[588]",
+ "element-type": "588",
"meta-type": "array"
},
{
- "name": "586",
+ "name": "588",
"members": [
{
"name": "event",
- "type": "721"
+ "type": "723"
},
{
"name": "state",
@@ -18367,7 +18406,7 @@
"meta-type": "object"
},
{
- "name": "587",
+ "name": "589",
"members": [
{
"name": "break-guest-write"
@@ -18383,7 +18422,7 @@
]
},
{
- "name": "588",
+ "name": "590",
"members": [
{
"name": "auto"
@@ -18403,7 +18442,7 @@
]
},
{
- "name": "589",
+ "name": "591",
"members": [
{
"name": "threads"
@@ -18423,7 +18462,7 @@
]
},
{
- "name": "590",
+ "name": "592",
"members": [
{
"name": "tcp"
@@ -18439,7 +18478,7 @@
]
},
{
- "name": "591",
+ "name": "593",
"members": [
{
"name": "crc32c"
@@ -18463,11 +18502,11 @@
]
},
{
- "name": "592",
+ "name": "594",
"members": [
{
"name": "type",
- "type": "723"
+ "type": "725"
},
{
"name": "host",
@@ -18477,7 +18516,7 @@
"meta-type": "object"
},
{
- "name": "593",
+ "name": "595",
"members": [
{
"type": "58"
@@ -18492,62 +18531,62 @@
"meta-type": "alternate"
},
{
- "name": "594",
+ "name": "596",
"members": [
{
- "type": "724"
+ "type": "726"
},
{
- "type": "725"
+ "type": "727"
}
],
"meta-type": "alternate"
},
{
- "name": "595",
+ "name": "597",
"tag": "format",
"variants": [
{
"case": "aes",
- "type": "727"
+ "type": "729"
},
{
"case": "luks",
- "type": "728"
+ "type": "730"
}
],
"members": [
{
"name": "format",
- "type": "726"
+ "type": "728"
}
],
"meta-type": "object"
},
{
- "name": "596",
+ "name": "598",
"tag": "format",
"variants": [
{
"case": "aes",
- "type": "727"
+ "type": "729"
}
],
"members": [
{
"name": "format",
- "type": "729"
+ "type": "731"
}
],
"meta-type": "object"
},
{
- "name": "[584]",
- "element-type": "584",
+ "name": "[586]",
+ "element-type": "586",
"meta-type": "array"
},
{
- "name": "597",
+ "name": "599",
"members": [
{
"name": "quorum"
@@ -18563,42 +18602,42 @@
]
},
{
- "name": "598",
+ "name": "600",
"tag": "format",
"variants": [
{
"case": "luks",
- "type": "731"
+ "type": "733"
},
{
"case": "luks2",
- "type": "732"
+ "type": "734"
},
{
"case": "luks-any",
- "type": "733"
+ "type": "735"
}
],
"members": [
{
"name": "format",
- "type": "730"
+ "type": "732"
},
{
"name": "parent",
"default": null,
- "type": "598"
+ "type": "600"
}
],
"meta-type": "object"
},
{
- "name": "[599]",
- "element-type": "599",
+ "name": "[601]",
+ "element-type": "601",
"meta-type": "array"
},
{
- "name": "599",
+ "name": "601",
"members": [
{
"name": "cephx"
@@ -18614,12 +18653,12 @@
]
},
{
- "name": "[600]",
- "element-type": "600",
+ "name": "[602]",
+ "element-type": "602",
"meta-type": "array"
},
{
- "name": "600",
+ "name": "602",
"members": [
{
"name": "host",
@@ -18633,7 +18672,7 @@
"meta-type": "object"
},
{
- "name": "601",
+ "name": "603",
"members": [
{
"name": "primary"
@@ -18649,7 +18688,7 @@
]
},
{
- "name": "602",
+ "name": "604",
"members": [
{
"name": "host",
@@ -18693,12 +18732,12 @@
"meta-type": "object"
},
{
- "name": "603",
+ "name": "605",
"tag": "mode",
"variants": [
{
"case": "hash",
- "type": "735"
+ "type": "737"
},
{
"case": "none",
@@ -18712,13 +18751,13 @@
"members": [
{
"name": "mode",
- "type": "734"
+ "type": "736"
}
],
"meta-type": "object"
},
{
- "name": "604",
+ "name": "606",
"members": [
{
"name": "filename",
@@ -18731,7 +18770,7 @@
{
"name": "preallocation",
"default": null,
- "type": "736"
+ "type": "738"
},
{
"name": "nocow",
@@ -18747,11 +18786,11 @@
"meta-type": "object"
},
{
- "name": "605",
+ "name": "607",
"members": [
{
"name": "location",
- "type": "331"
+ "type": "333"
},
{
"name": "size",
@@ -18760,13 +18799,13 @@
{
"name": "preallocation",
"default": null,
- "type": "736"
+ "type": "738"
}
],
"meta-type": "object"
},
{
- "name": "606",
+ "name": "608",
"members": [
{
"name": "key-secret",
@@ -18776,27 +18815,27 @@
{
"name": "cipher-alg",
"default": null,
- "type": "737"
+ "type": "739"
},
{
"name": "cipher-mode",
"default": null,
- "type": "738"
+ "type": "740"
},
{
"name": "ivgen-alg",
"default": null,
- "type": "739"
+ "type": "741"
},
{
"name": "ivgen-hash-alg",
"default": null,
- "type": "740"
+ "type": "742"
},
{
"name": "hash-alg",
"default": null,
- "type": "740"
+ "type": "742"
},
{
"name": "iter-time",
@@ -18806,12 +18845,12 @@
{
"name": "file",
"default": null,
- "type": "584"
+ "type": "586"
},
{
"name": "header",
"default": null,
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -18820,17 +18859,17 @@
{
"name": "preallocation",
"default": null,
- "type": "736"
+ "type": "738"
}
],
"meta-type": "object"
},
{
- "name": "607",
+ "name": "609",
"members": [
{
"name": "location",
- "type": "338"
+ "type": "340"
},
{
"name": "size",
@@ -18840,11 +18879,11 @@
"meta-type": "object"
},
{
- "name": "608",
+ "name": "610",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -18859,11 +18898,11 @@
"meta-type": "object"
},
{
- "name": "609",
+ "name": "611",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -18877,22 +18916,22 @@
{
"name": "encrypt",
"default": null,
- "type": "741"
+ "type": "743"
}
],
"meta-type": "object"
},
{
- "name": "610",
+ "name": "612",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "data-file",
"default": null,
- "type": "584"
+ "type": "586"
},
{
"name": "data-file-raw",
@@ -18911,7 +18950,7 @@
{
"name": "version",
"default": null,
- "type": "742"
+ "type": "744"
},
{
"name": "backing-file",
@@ -18921,12 +18960,12 @@
{
"name": "backing-fmt",
"default": null,
- "type": "318"
+ "type": "320"
},
{
"name": "encrypt",
"default": null,
- "type": "741"
+ "type": "743"
},
{
"name": "cluster-size",
@@ -18936,7 +18975,7 @@
{
"name": "preallocation",
"default": null,
- "type": "736"
+ "type": "738"
},
{
"name": "lazy-refcounts",
@@ -18951,17 +18990,17 @@
{
"name": "compression-type",
"default": null,
- "type": "743"
+ "type": "745"
}
],
"meta-type": "object"
},
{
- "name": "611",
+ "name": "613",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -18975,7 +19014,7 @@
{
"name": "backing-fmt",
"default": null,
- "type": "318"
+ "type": "320"
},
{
"name": "cluster-size",
@@ -18991,11 +19030,11 @@
"meta-type": "object"
},
{
- "name": "612",
+ "name": "614",
"members": [
{
"name": "location",
- "type": "348"
+ "type": "350"
},
{
"name": "size",
@@ -19009,17 +19048,17 @@
{
"name": "encrypt",
"default": null,
- "type": "744"
+ "type": "746"
}
],
"meta-type": "object"
},
{
- "name": "613",
+ "name": "615",
"members": [
{
"name": "location",
- "type": "350"
+ "type": "352"
},
{
"name": "size",
@@ -19029,11 +19068,11 @@
"meta-type": "object"
},
{
- "name": "614",
+ "name": "616",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -19042,17 +19081,17 @@
{
"name": "preallocation",
"default": null,
- "type": "736"
+ "type": "738"
}
],
"meta-type": "object"
},
{
- "name": "615",
+ "name": "617",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -19071,7 +19110,7 @@
{
"name": "subformat",
"default": null,
- "type": "745"
+ "type": "747"
},
{
"name": "block-state-zero",
@@ -19082,11 +19121,11 @@
"meta-type": "object"
},
{
- "name": "616",
+ "name": "618",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -19095,12 +19134,12 @@
{
"name": "extents",
"default": null,
- "type": "[584]"
+ "type": "[586]"
},
{
"name": "subformat",
"default": null,
- "type": "746"
+ "type": "748"
},
{
"name": "backing-file",
@@ -19110,7 +19149,7 @@
{
"name": "adapter-type",
"default": null,
- "type": "747"
+ "type": "749"
},
{
"name": "hwversion",
@@ -19131,11 +19170,11 @@
"meta-type": "object"
},
{
- "name": "617",
+ "name": "619",
"members": [
{
"name": "file",
- "type": "584"
+ "type": "586"
},
{
"name": "size",
@@ -19144,7 +19183,7 @@
{
"name": "subformat",
"default": null,
- "type": "748"
+ "type": "750"
},
{
"name": "force-size",
@@ -19155,11 +19194,11 @@
"meta-type": "object"
},
{
- "name": "618",
+ "name": "620",
"members": [
{
"name": "state",
- "type": "749"
+ "type": "751"
},
{
"name": "new-secret",
@@ -19190,12 +19229,12 @@
"meta-type": "object"
},
{
- "name": "619",
+ "name": "621",
"members": [
{
"name": "encrypt",
"default": null,
- "type": "750"
+ "type": "752"
}
],
"meta-type": "object"
@@ -19206,7 +19245,7 @@
"meta-type": "builtin"
},
{
- "name": "620",
+ "name": "622",
"members": [
{
"name": "inet"
@@ -19230,47 +19269,47 @@
]
},
{
- "name": "621",
+ "name": "623",
"members": [
{
"name": "data",
- "type": "602"
+ "type": "604"
}
],
"meta-type": "object"
},
{
- "name": "622",
+ "name": "624",
"members": [
{
"name": "data",
- "type": "644"
+ "type": "646"
}
],
"meta-type": "object"
},
{
- "name": "623",
+ "name": "625",
"members": [
{
"name": "data",
- "type": "645"
+ "type": "647"
}
],
"meta-type": "object"
},
{
- "name": "624",
+ "name": "626",
"members": [
{
"name": "data",
- "type": "646"
+ "type": "648"
}
],
"meta-type": "object"
},
{
- "name": "625",
+ "name": "627",
"members": [
{
"name": "off"
@@ -19290,7 +19329,7 @@
]
},
{
- "name": "626",
+ "name": "628",
"members": [
{
"name": "file"
@@ -19388,26 +19427,6 @@
"memory"
]
},
- {
- "name": "627",
- "members": [
- {
- "name": "data",
- "type": "751"
- }
- ],
- "meta-type": "object"
- },
- {
- "name": "628",
- "members": [
- {
- "name": "data",
- "type": "752"
- }
- ],
- "meta-type": "object"
- },
{
"name": "629",
"members": [
@@ -19539,12 +19558,32 @@
"meta-type": "object"
},
{
- "name": "[642]",
- "element-type": "642",
+ "name": "642",
+ "members": [
+ {
+ "name": "data",
+ "type": "766"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "643",
+ "members": [
+ {
+ "name": "data",
+ "type": "767"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[644]",
+ "element-type": "644",
"meta-type": "array"
},
{
- "name": "642",
+ "name": "644",
"members": [
{
"name": "str",
@@ -19554,7 +19593,7 @@
"meta-type": "object"
},
{
- "name": "644",
+ "name": "646",
"members": [
{
"name": "path",
@@ -19574,7 +19613,7 @@
"meta-type": "object"
},
{
- "name": "645",
+ "name": "647",
"members": [
{
"name": "cid",
@@ -19588,7 +19627,7 @@
"meta-type": "object"
},
{
- "name": "646",
+ "name": "648",
"members": [
{
"name": "str",
@@ -19598,27 +19637,27 @@
"meta-type": "object"
},
{
- "name": "647",
+ "name": "649",
"members": [
{
"name": "data",
- "type": "766"
+ "type": "768"
}
],
"meta-type": "object"
},
{
- "name": "648",
+ "name": "650",
"members": [
{
"name": "data",
- "type": "767"
+ "type": "769"
}
],
"meta-type": "object"
},
{
- "name": "649",
+ "name": "651",
"members": [
{
"name": "number"
@@ -19634,7 +19673,7 @@
]
},
{
- "name": "650",
+ "name": "652",
"members": [
{
"name": "data",
@@ -19644,17 +19683,17 @@
"meta-type": "object"
},
{
- "name": "651",
+ "name": "653",
"members": [
{
"name": "data",
- "type": "768"
+ "type": "770"
}
],
"meta-type": "object"
},
{
- "name": "652",
+ "name": "654",
"members": [
{
"name": "key"
@@ -19682,47 +19721,47 @@
]
},
{
- "name": "653",
+ "name": "655",
"members": [
{
"name": "data",
- "type": "769"
+ "type": "771"
}
],
"meta-type": "object"
},
{
- "name": "654",
+ "name": "656",
"members": [
{
"name": "data",
- "type": "770"
+ "type": "772"
}
],
"meta-type": "object"
},
{
- "name": "655",
+ "name": "657",
"members": [
{
"name": "data",
- "type": "771"
+ "type": "773"
}
],
"meta-type": "object"
},
{
- "name": "656",
+ "name": "658",
"members": [
{
"name": "data",
- "type": "772"
+ "type": "774"
}
],
"meta-type": "object"
},
{
- "name": "657",
+ "name": "659",
"members": [
{
"name": "lctrl-lalt"
@@ -19747,12 +19786,12 @@
"meta-type": "builtin"
},
{
- "name": "[658]",
- "element-type": "658",
+ "name": "[660]",
+ "element-type": "660",
"meta-type": "array"
},
{
- "name": "658",
+ "name": "660",
"members": [
{
"name": "name",
@@ -19765,13 +19804,13 @@
{
"name": "transform",
"default": null,
- "type": "773"
+ "type": "775"
}
],
"meta-type": "object"
},
{
- "name": "659",
+ "name": "661",
"members": [
{
"name": "main"
@@ -19787,36 +19826,36 @@
]
},
{
- "name": "660",
+ "name": "662",
"tag": "transport",
"variants": [
{
"case": "socket",
- "type": "392"
+ "type": "394"
},
{
"case": "exec",
- "type": "775"
+ "type": "777"
},
{
"case": "rdma",
- "type": "602"
+ "type": "604"
},
{
"case": "file",
- "type": "776"
+ "type": "778"
}
],
"members": [
{
"name": "transport",
- "type": "774"
+ "type": "776"
}
],
"meta-type": "object"
},
{
- "name": "661",
+ "name": "663",
"members": [
{
"name": "abort"
@@ -19875,17 +19914,17 @@
]
},
{
- "name": "662",
+ "name": "664",
"members": [
{
"name": "data",
- "type": "777"
+ "type": "779"
}
],
"meta-type": "object"
},
{
- "name": "663",
+ "name": "665",
"members": [
{
"name": "data",
@@ -19895,7 +19934,7 @@
"meta-type": "object"
},
{
- "name": "664",
+ "name": "666",
"members": [
{
"name": "data",
@@ -19905,7 +19944,7 @@
"meta-type": "object"
},
{
- "name": "665",
+ "name": "667",
"members": [
{
"name": "data",
@@ -19915,7 +19954,7 @@
"meta-type": "object"
},
{
- "name": "666",
+ "name": "668",
"members": [
{
"name": "data",
@@ -19925,7 +19964,7 @@
"meta-type": "object"
},
{
- "name": "667",
+ "name": "669",
"members": [
{
"name": "data",
@@ -19935,7 +19974,7 @@
"meta-type": "object"
},
{
- "name": "668",
+ "name": "670",
"members": [
{
"name": "data",
@@ -19945,7 +19984,7 @@
"meta-type": "object"
},
{
- "name": "669",
+ "name": "671",
"members": [
{
"name": "data",
@@ -19955,7 +19994,7 @@
"meta-type": "object"
},
{
- "name": "670",
+ "name": "672",
"members": [
{
"name": "data",
@@ -19965,7 +20004,7 @@
"meta-type": "object"
},
{
- "name": "671",
+ "name": "673",
"members": [
{
"name": "individual"
@@ -19981,7 +20020,7 @@
]
},
{
- "name": "672",
+ "name": "674",
"members": [
{
"name": "string"
@@ -20021,12 +20060,12 @@
]
},
{
- "name": "[673]",
- "element-type": "673",
+ "name": "[675]",
+ "element-type": "675",
"meta-type": "array"
},
{
- "name": "673",
+ "name": "675",
"members": [
{
"name": "name",
@@ -20041,12 +20080,12 @@
"meta-type": "object"
},
{
- "name": "[674]",
- "element-type": "674",
+ "name": "[676]",
+ "element-type": "676",
"meta-type": "array"
},
{
- "name": "674",
+ "name": "676",
"members": [
{
"name": "name",
@@ -20070,12 +20109,12 @@
"meta-type": "object"
},
{
- "name": "[675]",
- "element-type": "675",
+ "name": "[677]",
+ "element-type": "677",
"meta-type": "array"
},
{
- "name": "675",
+ "name": "677",
"members": [
{
"name": "case",
@@ -20089,12 +20128,12 @@
"meta-type": "object"
},
{
- "name": "[676]",
- "element-type": "676",
+ "name": "[678]",
+ "element-type": "678",
"meta-type": "array"
},
{
- "name": "676",
+ "name": "678",
"members": [
{
"name": "type",
@@ -20104,7 +20143,7 @@
"meta-type": "object"
},
{
- "name": "677",
+ "name": "679",
"members": [
{
"name": "deny"
@@ -20120,12 +20159,12 @@
]
},
{
- "name": "[678]",
- "element-type": "678",
+ "name": "[680]",
+ "element-type": "680",
"meta-type": "array"
},
{
- "name": "678",
+ "name": "680",
"members": [
{
"name": "match",
@@ -20133,18 +20172,18 @@
},
{
"name": "policy",
- "type": "677"
+ "type": "679"
},
{
"name": "format",
"default": null,
- "type": "778"
+ "type": "780"
}
],
"meta-type": "object"
},
{
- "name": "679",
+ "name": "681",
"members": [
{
"name": "all"
@@ -20164,7 +20203,7 @@
]
},
{
- "name": "680",
+ "name": "682",
"members": [
{
"name": "before"
@@ -20180,7 +20219,7 @@
]
},
{
- "name": "681",
+ "name": "683",
"members": [
{
"name": "ctrl-ctrl"
@@ -20212,7 +20251,7 @@
]
},
{
- "name": "682",
+ "name": "684",
"members": [
{
"name": "raw"
@@ -20228,7 +20267,7 @@
]
},
{
- "name": "683",
+ "name": "685",
"members": [
{
"name": "iops-total",
@@ -20329,7 +20368,7 @@
"meta-type": "object"
},
{
- "name": "684",
+ "name": "686",
"members": [
{
"name": "client"
@@ -20345,7 +20384,7 @@
]
},
{
- "name": "685",
+ "name": "687",
"members": [
{
"name": "uninitialized"
@@ -20373,7 +20412,7 @@
]
},
{
- "name": "686",
+ "name": "688",
"members": [
{
"name": "memory"
@@ -20397,7 +20436,7 @@
]
},
{
- "name": "687",
+ "name": "689",
"members": [
{
"name": "access-latency"
@@ -20429,7 +20468,7 @@
]
},
{
- "name": "688",
+ "name": "690",
"members": [
{
"name": "none"
@@ -20449,7 +20488,7 @@
]
},
{
- "name": "689",
+ "name": "691",
"members": [
{
"name": "none"
@@ -20469,7 +20508,7 @@
]
},
{
- "name": "690",
+ "name": "692",
"members": [
{
"name": "id",
@@ -20508,7 +20547,7 @@
"meta-type": "object"
},
{
- "name": "691",
+ "name": "693",
"members": [
{
"name": "id",
@@ -20531,7 +20570,7 @@
"meta-type": "object"
},
{
- "name": "692",
+ "name": "694",
"members": [
{
"name": "id",
@@ -20570,7 +20609,7 @@
"meta-type": "object"
},
{
- "name": "693",
+ "name": "695",
"members": [
{
"name": "id",
@@ -20597,7 +20636,7 @@
"meta-type": "object"
},
{
- "name": "694",
+ "name": "696",
"members": [
{
"name": "id",
@@ -20622,7 +20661,7 @@
"meta-type": "object"
},
{
- "name": "695",
+ "name": "697",
"members": [
{
"name": "string"
@@ -20646,7 +20685,7 @@
]
},
{
- "name": "696",
+ "name": "698",
"members": [
{
"name": "mixing-engine",
@@ -20676,7 +20715,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -20687,7 +20726,7 @@
"meta-type": "object"
},
{
- "name": "697",
+ "name": "699",
"members": [
{
"name": "mixing-engine",
@@ -20717,7 +20756,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -20743,7 +20782,7 @@
"meta-type": "object"
},
{
- "name": "698",
+ "name": "700",
"members": [
{
"name": "mixing-engine",
@@ -20773,7 +20812,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -20789,7 +20828,7 @@
"meta-type": "object"
},
{
- "name": "699",
+ "name": "701",
"members": [
{
"name": "mixing-engine",
@@ -20819,7 +20858,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -20855,7 +20894,7 @@
"meta-type": "object"
},
{
- "name": "700",
+ "name": "702",
"members": [
{
"name": "mixing-engine",
@@ -20885,7 +20924,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -20911,7 +20950,7 @@
"meta-type": "object"
},
{
- "name": "701",
+ "name": "703",
"members": [
{
"name": "mixing-engine",
@@ -20941,7 +20980,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -20967,7 +21006,7 @@
"meta-type": "object"
},
{
- "name": "702",
+ "name": "704",
"members": [
{
"name": "mixing-engine",
@@ -20997,7 +21036,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -21023,7 +21062,7 @@
"meta-type": "object"
},
{
- "name": "703",
+ "name": "705",
"members": [
{
"name": "mixing-engine",
@@ -21053,7 +21092,7 @@
{
"name": "format",
"default": null,
- "type": "779"
+ "type": "781"
},
{
"name": "buffer-length",
@@ -21069,7 +21108,7 @@
"meta-type": "object"
},
{
- "name": "704",
+ "name": "706",
"members": [
{
"name": "desc",
@@ -21084,7 +21123,7 @@
"meta-type": "object"
},
{
- "name": "705",
+ "name": "707",
"members": [
{
"name": "device",
@@ -21108,27 +21147,27 @@
"meta-type": "object"
},
{
- "name": "706",
+ "name": "708",
"members": [
{
"name": "bus",
- "type": "780"
+ "type": "782"
},
{
"name": "devices",
"default": null,
- "type": "[552]"
+ "type": "[554]"
}
],
"meta-type": "object"
},
{
- "name": "[707]",
- "element-type": "707",
+ "name": "[709]",
+ "element-type": "709",
"meta-type": "array"
},
{
- "name": "707",
+ "name": "709",
"members": [
{
"name": "bar",
@@ -21160,7 +21199,7 @@
"meta-type": "object"
},
{
- "name": "708",
+ "name": "710",
"members": [
{
"type": "int"
@@ -21175,7 +21214,7 @@
"meta-type": "alternate"
},
{
- "name": "709",
+ "name": "711",
"members": [
{
"name": "cumulative"
@@ -21203,7 +21242,7 @@
]
},
{
- "name": "710",
+ "name": "712",
"members": [
{
"name": "bytes"
@@ -21227,7 +21266,7 @@
]
},
{
- "name": "711",
+ "name": "713",
"members": [
{
"name": "protocols",
@@ -21242,7 +21281,7 @@
"meta-type": "object"
},
{
- "name": "712",
+ "name": "714",
"members": [
{
"name": "builtin"
@@ -21262,7 +21301,7 @@
]
},
{
- "name": "713",
+ "name": "715",
"members": [
{
"name": "cache-data-parity"
@@ -21330,7 +21369,7 @@
]
},
{
- "name": "714",
+ "name": "716",
"members": [
{
"name": "unknown"
@@ -21358,7 +21397,7 @@
]
},
{
- "name": "715",
+ "name": "717",
"members": [
{
"name": "qcow2"
@@ -21386,57 +21425,57 @@
]
},
{
- "name": "716",
+ "name": "718",
"members": [
{
"name": "data",
- "type": "781"
+ "type": "783"
}
],
"meta-type": "object"
},
{
- "name": "717",
+ "name": "719",
"members": [
{
"name": "data",
- "type": "782"
+ "type": "784"
}
],
"meta-type": "object"
},
{
- "name": "718",
+ "name": "720",
"members": [
{
"name": "data",
- "type": "783"
+ "type": "785"
}
],
"meta-type": "object"
},
{
- "name": "719",
+ "name": "721",
"members": [
{
"name": "data",
- "type": "784"
+ "type": "786"
}
],
"meta-type": "object"
},
{
- "name": "720",
+ "name": "722",
"members": [
{
"name": "data",
- "type": "785"
+ "type": "787"
}
],
"meta-type": "object"
},
{
- "name": "721",
+ "name": "723",
"members": [
{
"name": "l1_update"
@@ -21636,7 +21675,7 @@
]
},
{
- "name": "722",
+ "name": "724",
"members": [
{
"name": "read"
@@ -21668,7 +21707,7 @@
]
},
{
- "name": "723",
+ "name": "725",
"members": [
{
"name": "inet"
@@ -21680,12 +21719,12 @@
]
},
{
- "name": "724",
+ "name": "726",
"members": [
{
"name": "template",
"default": null,
- "type": "725"
+ "type": "727"
},
{
"name": "main-header",
@@ -21736,7 +21775,7 @@
"meta-type": "object"
},
{
- "name": "725",
+ "name": "727",
"members": [
{
"name": "none"
@@ -21760,7 +21799,7 @@
]
},
{
- "name": "726",
+ "name": "728",
"members": [
{
"name": "aes"
@@ -21776,7 +21815,7 @@
]
},
{
- "name": "727",
+ "name": "729",
"members": [
{
"name": "key-secret",
@@ -21787,7 +21826,7 @@
"meta-type": "object"
},
{
- "name": "728",
+ "name": "730",
"members": [
{
"name": "key-secret",
@@ -21798,7 +21837,7 @@
"meta-type": "object"
},
{
- "name": "729",
+ "name": "731",
"members": [
{
"name": "aes"
@@ -21810,7 +21849,7 @@
]
},
{
- "name": "730",
+ "name": "732",
"members": [
{
"name": "luks"
@@ -21830,7 +21869,7 @@
]
},
{
- "name": "731",
+ "name": "733",
"members": [
{
"name": "key-secret",
@@ -21840,7 +21879,7 @@
"meta-type": "object"
},
{
- "name": "732",
+ "name": "734",
"members": [
{
"name": "key-secret",
@@ -21850,7 +21889,7 @@
"meta-type": "object"
},
{
- "name": "733",
+ "name": "735",
"members": [
{
"name": "key-secret",
@@ -21860,7 +21899,7 @@
"meta-type": "object"
},
{
- "name": "734",
+ "name": "736",
"members": [
{
"name": "none"
@@ -21880,11 +21919,11 @@
]
},
{
- "name": "735",
+ "name": "737",
"members": [
{
"name": "type",
- "type": "786"
+ "type": "788"
},
{
"name": "hash",
@@ -21894,7 +21933,7 @@
"meta-type": "object"
},
{
- "name": "736",
+ "name": "738",
"members": [
{
"name": "off"
@@ -21918,7 +21957,7 @@
]
},
{
- "name": "737",
+ "name": "739",
"members": [
{
"name": "aes-128"
@@ -21978,7 +22017,7 @@
]
},
{
- "name": "738",
+ "name": "740",
"members": [
{
"name": "ecb"
@@ -22002,7 +22041,7 @@
]
},
{
- "name": "739",
+ "name": "741",
"members": [
{
"name": "plain"
@@ -22022,7 +22061,7 @@
]
},
{
- "name": "740",
+ "name": "742",
"members": [
{
"name": "md5"
@@ -22062,28 +22101,28 @@
]
},
{
- "name": "741",
+ "name": "743",
"tag": "format",
"variants": [
{
"case": "qcow",
- "type": "727"
+ "type": "729"
},
{
"case": "luks",
- "type": "788"
+ "type": "790"
}
],
"members": [
{
"name": "format",
- "type": "787"
+ "type": "789"
}
],
"meta-type": "object"
},
{
- "name": "742",
+ "name": "744",
"members": [
{
"name": "v2"
@@ -22099,7 +22138,7 @@
]
},
{
- "name": "743",
+ "name": "745",
"members": [
{
"name": "zlib"
@@ -22115,16 +22154,16 @@
]
},
{
- "name": "744",
+ "name": "746",
"tag": "format",
"variants": [
{
"case": "luks",
- "type": "789"
+ "type": "791"
},
{
"case": "luks2",
- "type": "790"
+ "type": "792"
},
{
"case": "luks-any",
@@ -22134,13 +22173,13 @@
"members": [
{
"name": "format",
- "type": "730"
+ "type": "732"
}
],
"meta-type": "object"
},
{
- "name": "745",
+ "name": "747",
"members": [
{
"name": "dynamic"
@@ -22156,7 +22195,7 @@
]
},
{
- "name": "746",
+ "name": "748",
"members": [
{
"name": "monolithicSparse"
@@ -22184,7 +22223,7 @@
]
},
{
- "name": "747",
+ "name": "749",
"members": [
{
"name": "ide"
@@ -22208,7 +22247,7 @@
]
},
{
- "name": "748",
+ "name": "750",
"members": [
{
"name": "dynamic"
@@ -22224,7 +22263,7 @@
]
},
{
- "name": "749",
+ "name": "751",
"members": [
{
"name": "active"
@@ -22240,12 +22279,12 @@
]
},
{
- "name": "750",
+ "name": "752",
"tag": "format",
"variants": [
{
"case": "luks",
- "type": "791"
+ "type": "793"
},
{
"case": "qcow",
@@ -22255,13 +22294,13 @@
"members": [
{
"name": "format",
- "type": "787"
+ "type": "789"
}
],
"meta-type": "object"
},
{
- "name": "751",
+ "name": "753",
"members": [
{
"name": "logfile",
@@ -22291,7 +22330,7 @@
"meta-type": "object"
},
{
- "name": "752",
+ "name": "754",
"members": [
{
"name": "logfile",
@@ -22311,7 +22350,7 @@
"meta-type": "object"
},
{
- "name": "753",
+ "name": "755",
"members": [
{
"name": "logfile",
@@ -22325,7 +22364,7 @@
},
{
"name": "addr",
- "type": "362"
+ "type": "364"
},
{
"name": "tls-creds",
@@ -22384,7 +22423,7 @@
"meta-type": "object"
},
{
- "name": "754",
+ "name": "756",
"members": [
{
"name": "logfile",
@@ -22398,18 +22437,18 @@
},
{
"name": "remote",
- "type": "362"
+ "type": "364"
},
{
"name": "local",
"default": null,
- "type": "362"
+ "type": "364"
}
],
"meta-type": "object"
},
{
- "name": "755",
+ "name": "757",
"members": [
{
"name": "logfile",
@@ -22430,7 +22469,7 @@
"meta-type": "object"
},
{
- "name": "756",
+ "name": "758",
"members": [
{
"name": "logfile",
@@ -22446,7 +22485,7 @@
"meta-type": "object"
},
{
- "name": "757",
+ "name": "759",
"members": [
{
"name": "logfile",
@@ -22466,7 +22505,7 @@
"meta-type": "object"
},
{
- "name": "758",
+ "name": "760",
"members": [
{
"name": "logfile",
@@ -22486,7 +22525,7 @@
"meta-type": "object"
},
{
- "name": "759",
+ "name": "761",
"members": [
{
"name": "logfile",
@@ -22507,7 +22546,7 @@
"meta-type": "object"
},
{
- "name": "760",
+ "name": "762",
"members": [
{
"name": "logfile",
@@ -22527,7 +22566,7 @@
"meta-type": "object"
},
{
- "name": "761",
+ "name": "763",
"members": [
{
"name": "logfile",
@@ -22547,7 +22586,7 @@
"meta-type": "object"
},
{
- "name": "762",
+ "name": "764",
"members": [
{
"name": "logfile",
@@ -22573,7 +22612,7 @@
"meta-type": "object"
},
{
- "name": "763",
+ "name": "765",
"members": [
{
"name": "logfile",
@@ -22593,7 +22632,7 @@
"meta-type": "object"
},
{
- "name": "764",
+ "name": "766",
"members": [
{
"name": "logfile",
@@ -22629,7 +22668,7 @@
"meta-type": "object"
},
{
- "name": "765",
+ "name": "767",
"members": [
{
"name": "logfile",
@@ -22650,7 +22689,7 @@
"meta-type": "object"
},
{
- "name": "766",
+ "name": "768",
"members": [
{
"name": "path",
@@ -22666,7 +22705,7 @@
"meta-type": "object"
},
{
- "name": "767",
+ "name": "769",
"members": [
{
"name": "chardev",
@@ -22676,7 +22715,7 @@
"meta-type": "object"
},
{
- "name": "768",
+ "name": "770",
"members": [
{
"name": "unmapped"
@@ -23332,11 +23371,11 @@
]
},
{
- "name": "769",
+ "name": "771",
"members": [
{
"name": "key",
- "type": "416"
+ "type": "418"
},
{
"name": "down",
@@ -23346,11 +23385,11 @@
"meta-type": "object"
},
{
- "name": "770",
+ "name": "772",
"members": [
{
"name": "button",
- "type": "792"
+ "type": "794"
},
{
"name": "down",
@@ -23360,11 +23399,11 @@
"meta-type": "object"
},
{
- "name": "771",
+ "name": "773",
"members": [
{
"name": "axis",
- "type": "793"
+ "type": "795"
},
{
"name": "value",
@@ -23374,11 +23413,11 @@
"meta-type": "object"
},
{
- "name": "772",
+ "name": "774",
"members": [
{
"name": "type",
- "type": "794"
+ "type": "796"
},
{
"name": "slot",
@@ -23390,7 +23429,7 @@
},
{
"name": "axis",
- "type": "793"
+ "type": "795"
},
{
"name": "value",
@@ -23400,7 +23439,7 @@
"meta-type": "object"
},
{
- "name": "773",
+ "name": "775",
"members": [
{
"name": "persistent",
@@ -23411,7 +23450,7 @@
"meta-type": "object"
},
{
- "name": "774",
+ "name": "776",
"members": [
{
"name": "socket"
@@ -23435,7 +23474,7 @@
]
},
{
- "name": "775",
+ "name": "777",
"members": [
{
"name": "args",
@@ -23445,7 +23484,7 @@
"meta-type": "object"
},
{
- "name": "776",
+ "name": "778",
"members": [
{
"name": "filename",
@@ -23459,12 +23498,12 @@
"meta-type": "object"
},
{
- "name": "777",
+ "name": "779",
"members": [],
"meta-type": "object"
},
{
- "name": "778",
+ "name": "780",
"members": [
{
"name": "exact"
@@ -23480,7 +23519,7 @@
]
},
{
- "name": "779",
+ "name": "781",
"members": [
{
"name": "u8"
@@ -23516,7 +23555,7 @@
]
},
{
- "name": "780",
+ "name": "782",
"members": [
{
"name": "number",
@@ -23532,21 +23571,21 @@
},
{
"name": "io_range",
- "type": "795"
+ "type": "797"
},
{
"name": "memory_range",
- "type": "795"
+ "type": "797"
},
{
"name": "prefetchable_range",
- "type": "795"
+ "type": "797"
}
],
"meta-type": "object"
},
{
- "name": "781",
+ "name": "783",
"members": [
{
"name": "compat",
@@ -23584,22 +23623,22 @@
{
"name": "encrypt",
"default": null,
- "type": "796"
+ "type": "798"
},
{
"name": "bitmaps",
"default": null,
- "type": "[797]"
+ "type": "[799]"
},
{
"name": "compression-type",
- "type": "743"
+ "type": "745"
}
],
"meta-type": "object"
},
{
- "name": "782",
+ "name": "784",
"members": [
{
"name": "create-type",
@@ -23615,34 +23654,34 @@
},
{
"name": "extents",
- "type": "[798]"
+ "type": "[800]"
}
],
"meta-type": "object"
},
{
- "name": "783",
+ "name": "785",
"members": [
{
"name": "cipher-alg",
- "type": "737"
+ "type": "739"
},
{
"name": "cipher-mode",
- "type": "738"
+ "type": "740"
},
{
"name": "ivgen-alg",
- "type": "739"
+ "type": "741"
},
{
"name": "ivgen-hash-alg",
"default": null,
- "type": "740"
+ "type": "742"
},
{
"name": "hash-alg",
- "type": "740"
+ "type": "742"
},
{
"name": "detached-header",
@@ -23662,24 +23701,24 @@
},
{
"name": "slots",
- "type": "[799]"
+ "type": "[801]"
}
],
"meta-type": "object"
},
{
- "name": "784",
+ "name": "786",
"members": [
{
"name": "encryption-format",
"default": null,
- "type": "730"
+ "type": "732"
}
],
"meta-type": "object"
},
{
- "name": "785",
+ "name": "787",
"members": [
{
"name": "extent-size-hint",
@@ -23690,7 +23729,7 @@
"meta-type": "object"
},
{
- "name": "786",
+ "name": "788",
"members": [
{
"name": "md5"
@@ -23710,7 +23749,7 @@
]
},
{
- "name": "787",
+ "name": "789",
"members": [
{
"name": "qcow"
@@ -23726,7 +23765,7 @@
]
},
{
- "name": "788",
+ "name": "790",
"members": [
{
"name": "key-secret",
@@ -23736,27 +23775,27 @@
{
"name": "cipher-alg",
"default": null,
- "type": "737"
+ "type": "739"
},
{
"name": "cipher-mode",
"default": null,
- "type": "738"
+ "type": "740"
},
{
"name": "ivgen-alg",
"default": null,
- "type": "739"
+ "type": "741"
},
{
"name": "ivgen-hash-alg",
"default": null,
- "type": "740"
+ "type": "742"
},
{
"name": "hash-alg",
"default": null,
- "type": "740"
+ "type": "742"
},
{
"name": "iter-time",
@@ -23767,7 +23806,7 @@
"meta-type": "object"
},
{
- "name": "789",
+ "name": "791",
"members": [
{
"name": "key-secret",
@@ -23776,13 +23815,13 @@
{
"name": "cipher-alg",
"default": null,
- "type": "737"
+ "type": "739"
}
],
"meta-type": "object"
},
{
- "name": "790",
+ "name": "792",
"members": [
{
"name": "key-secret",
@@ -23791,17 +23830,17 @@
{
"name": "cipher-alg",
"default": null,
- "type": "737"
+ "type": "739"
}
],
"meta-type": "object"
},
{
- "name": "791",
+ "name": "793",
"members": [
{
"name": "state",
- "type": "749"
+ "type": "751"
},
{
"name": "new-secret",
@@ -23832,7 +23871,7 @@
"meta-type": "object"
},
{
- "name": "792",
+ "name": "794",
"members": [
{
"name": "left"
@@ -23880,7 +23919,7 @@
]
},
{
- "name": "793",
+ "name": "795",
"members": [
{
"name": "x"
@@ -23896,7 +23935,7 @@
]
},
{
- "name": "794",
+ "name": "796",
"members": [
{
"name": "begin"
@@ -23924,7 +23963,7 @@
]
},
{
- "name": "795",
+ "name": "797",
"members": [
{
"name": "base",
@@ -23938,12 +23977,12 @@
"meta-type": "object"
},
{
- "name": "796",
+ "name": "798",
"tag": "format",
"variants": [
{
"case": "luks",
- "type": "783"
+ "type": "785"
},
{
"case": "aes",
@@ -23953,18 +23992,18 @@
"members": [
{
"name": "format",
- "type": "726"
+ "type": "728"
}
],
"meta-type": "object"
},
{
- "name": "[797]",
- "element-type": "797",
+ "name": "[799]",
+ "element-type": "799",
"meta-type": "array"
},
{
- "name": "797",
+ "name": "799",
"members": [
{
"name": "name",
@@ -23976,18 +24015,18 @@
},
{
"name": "flags",
- "type": "[800]"
+ "type": "[802]"
}
],
"meta-type": "object"
},
{
- "name": "[798]",
- "element-type": "798",
+ "name": "[800]",
+ "element-type": "800",
"meta-type": "array"
},
{
- "name": "798",
+ "name": "800",
"members": [
{
"name": "filename",
@@ -24015,12 +24054,12 @@
"meta-type": "object"
},
{
- "name": "[799]",
- "element-type": "799",
+ "name": "[801]",
+ "element-type": "801",
"meta-type": "array"
},
{
- "name": "799",
+ "name": "801",
"members": [
{
"name": "active",
@@ -24044,12 +24083,12 @@
"meta-type": "object"
},
{
- "name": "[800]",
- "element-type": "800",
+ "name": "[802]",
+ "element-type": "802",
"meta-type": "array"
},
{
- "name": "800",
+ "name": "802",
"members": [
{
"name": "in-use"
@@ -24476,14 +24515,14 @@
"name": "pci-ipmi-kcs",
"parent": "pci-device"
},
- {
- "name": "xio3130-downstream",
- "parent": "pcie-slot"
- },
{
"name": "intel-iommu-iommu-memory-region",
"parent": "iommu-memory-region"
},
+ {
+ "name": "xio3130-downstream",
+ "parent": "pcie-slot"
+ },
{
"name": "ufs",
"parent": "pci-device"
@@ -24710,7 +24749,7 @@
},
{
"name": "xen-backend",
- "parent": "device"
+ "parent": "dynamic-sysbus-device"
},
{
"name": "sysbus-xhci",
@@ -25205,8 +25244,8 @@
"parent": "scsi-disk-base"
},
{
- "name": "pc-q35-7.0-machine",
- "parent": "generic-pc-machine"
+ "name": "sgx-epc",
+ "parent": "device"
},
{
"name": "gpex-root",
@@ -25217,8 +25256,8 @@
"parent": "isa-device"
},
{
- "name": "sgx-epc",
- "parent": "device"
+ "name": "pc-q35-7.0-machine",
+ "parent": "generic-pc-machine"
},
{
"name": "am53c974",
@@ -26250,7 +26289,7 @@
},
{
"name": "ramfb",
- "parent": "sys-bus-device"
+ "parent": "dynamic-sysbus-device"
},
{
"name": "hda-output",
@@ -26381,8 +26420,8 @@
"parent": "x86_64-cpu"
},
{
- "name": "vhost-user-rng-pci",
- "parent": "vhost-user-rng-pci-base"
+ "name": "xen-platform",
+ "parent": "pci-device"
},
{
"name": "Nehalem-IBRS-x86_64-cpu",
@@ -26417,8 +26456,8 @@
"parent": "x86_64-cpu"
},
{
- "name": "xen-platform",
- "parent": "pci-device"
+ "name": "vhost-user-rng-pci",
+ "parent": "vhost-user-rng-pci-base"
},
{
"name": "isa-vga",
@@ -38731,7 +38770,7 @@
},
{
"name": "mem-lock",
- "type": "boolean"
+ "type": "string"
}
],
"option": "overcommit"
diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
index b1cf477bdc..358e06b803 100644
--- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml
@@ -214,7 +214,7 @@
<flag name='blockdev-set-active'/>
<version>9002050</version>
<microcodeVersion>43100285</microcodeVersion>
- <package>v9.2.0-1636-gffaf7f0376</package>
+ <package>v9.2.0-1967-gb69801dd6b</package>
<arch>x86_64</arch>
<hostCPU type='kvm' model='base' migratability='yes'>
<property name='avx-ne-convert' type='boolean' value='false'/>
--
2.48.1
2
1
24 Feb '25
details in logs
Laine Stump (2):
qemu: check for/require shared memory for *any* vhostuser interface
qemu: forbid a few unsupported things for vhost-user/passt interfaces
src/qemu/qemu_validate.c | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
--
2.48.1
3
5
Only libvirtd uses virtd_t/virt_exec_t context, modular daemons use
their specific context each.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
run.in | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/run.in b/run.in
index 2821b71230..d8db7cf697 100644
--- a/run.in
+++ b/run.in
@@ -202,10 +202,11 @@ else:
stopped_units.append(unit)
if opts.selinux:
+ progname = os.path.basename(prog)
# if using a wrapper command like 'gdb', setting the selinux
# context won't work because the wrapper command will not be a
# valid entrypoint for the virtd_t context
- if os.path.basename(prog) not in ["libvirtd", *modular_daemons]:
+ if progname not in ["libvirtd", *modular_daemons]:
raise Exception("'{}' is not recognized as a valid daemon. "
"Selinux process context can only be set when "
"executing a daemon directly without wrapper "
@@ -216,17 +217,22 @@ else:
"'{}' outside build directory"
.format(progpath))
+ if progname == "libvirtd":
+ context = "virtd"
+ else:
+ context = progname
+
# selinux won't allow us to transition to the virtd_t context from
# e.g. the user_home_t context (the likely label of the local
# executable file)
- if not chcon(progpath, "system_u", "object_r", "virtd_exec_t"):
+ if not chcon(progpath, "system_u", "object_r", f"{context}_exec_t"):
raise Exception("Failed to change selinux context of binary")
dorestorecon = True
args = ['runcon',
'-u', 'system_u',
'-r', 'system_r',
- '-t', 'virtd_t', *args]
+ '-t', f'{context}_t', *args]
print("Running '%s'..." % str(" ".join(args)))
ret = subprocess.call(args, env=env)
--
2.48.1
2
1
When virCPUx86UpdateLive checks whether a feature was added to a CPU
model after the model was already released (vmx-* features in most Intel
models), the following assert could be logged by glib:
g_strv_contains: assertion 'strv != NULL' failed
While most of our CPU models have a non-empty list of added feature, new
models added in 2024 and versioned variants of older models have
addedFeatures == NULL.
Fixes: e622970c8785ec1f7e142d72f792d89f870e07d0
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/cpu/cpu_x86.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index 67c88ae3b7..32aa01bc14 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -3212,6 +3212,7 @@ virCPUx86UpdateLive(virCPUDef *cpu,
* behaved before the features were added.
*/
if (!explicit &&
+ model->addedFeatures &&
g_strv_contains((const char **) model->addedFeatures, feature->name))
ignore = true;
--
2.48.1
2
1
24 Feb '25
The workers of qemuDomainGetStats should not report errors if they can't
fetch data; but rather omit the entries. Refactor the code to
de-incentivize error reporting.
Peter Krempa (21):
qemuDomainGetStatsBlockExportHeader: Remove return value
qemuDomainGetStatsBlockExportFrontend: Remove return value
qemuDomainGetStatsBlockExportBackendStorage: Remove return value
qemuDomainGetStatsOneBlockFallback: Remove return value
qemuDomainGetStatsOneBlock: Remove return value
qemuDomainStorageAlias: Remove NULL checks from callers
qemuDomainGetStatsBlockExportHeader: Remove return value
virBitmapFormat: Clarify returned values
virDomainResctrlMonDefParse: Refactor temporary variables
virDomainCputuneDefFormat: Refactor bitmap formatting
virBitmapFormat: Don't check return value
qemuDomainGetStatsCpuCgroup: Remove return value
qemuDomainGetStatsCpuProc: Remove return value
qemuDomainGetStatsCpuHaltPollTime: Remove return value
qemuDomainGetStatsCpuCache: Don't error out
virPerfReadEvent: Refactor to return -errno on failure
qemuDomainGetStatsPerfOneEvent: Ignore erros from 'virPerfReadEvent'
qemuDomainGetStatsIOThread: Don't error out if fetching iothread info
fails
qemuDomainGetStatsMemoryBandwidth: Don't error out
qemuDomainGetStatsDirtyRate: Don't error out
qemuDomainGetStats: Convert worker functions to void
src/ch/ch_driver.c | 3 +-
src/conf/capabilities.c | 9 +-
src/conf/domain_conf.c | 69 ++-----
src/conf/numa_conf.c | 18 +-
src/conf/virnetworkobj.c | 3 -
src/hypervisor/domain_cgroup.c | 6 +-
src/libxl/libxl_driver.c | 3 +-
src/libxl/xen_common.c | 6 +-
src/qemu/qemu_command.c | 3 +-
src/qemu/qemu_domain.c | 10 +-
src/qemu/qemu_driver.c | 341 ++++++++++++---------------------
src/qemu/qemu_monitor_json.c | 5 +-
src/util/virbitmap.c | 11 +-
src/util/vircgroup.c | 5 +-
src/util/virperf.c | 19 +-
src/vz/vz_sdk.c | 3 +-
16 files changed, 178 insertions(+), 336 deletions(-)
--
2.48.1
4
28
[PATCH 0/2] schema: fix <interleave> errors when validating <domain> subelements
by Laine Stump 24 Feb '25
by Laine Stump 24 Feb '25
24 Feb '25
More explanation in 2/2 (such as it is)
Laine Stump (2):
tests: be consistent about following DO_TEST_*() with a ;
schema: fix <interleave> errors when validating <domain> subelements
src/conf/schemas/domaincommon.rng | 53 +++++++---------
...rder-domain-subelements.x86_64-latest.args | 40 ++++++++++++
...order-domain-subelements.x86_64-latest.xml | 62 +++++++++++++++++++
.../schema-reorder-domain-subelements.xml | 62 +++++++++++++++++++
tests/qemuxmlconftest.c | 20 +++---
5 files changed, 196 insertions(+), 41 deletions(-)
create mode 100644 tests/qemuxmlconfdata/schema-reorder-domain-subelements.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/schema-reorder-domain-subelements.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/schema-reorder-domain-subelements.xml
--
2.48.1
3
4
[PATCH v2 00/12] hw/arm/raspi: Allow creating any Raspberry Pi machine
by Philippe Mathieu-Daudé 22 Feb '25
by Philippe Mathieu-Daudé 22 Feb '25
22 Feb '25
Full rewrite of v1 [1], addressing Zoltan & Peter suggestion.
Introduce a generic 'raspi' machine, which takes a 'model'
and 'revision' properties, and any memory size. The 'board_rev'
register is filled appropriately.
Before, merge raspi4b.c within raspi.c (more is planned here
with the MPCore refactor [2]).
Regards,
Phil.
[1] https://lore.kernel.org/qemu-devel/20250201091528.1177-1-philmd@linaro.org/
[2] https://lore.kernel.org/qemu-devel/20231212162935.42910-1-philmd@linaro.org/
Philippe Mathieu-Daudé (12):
hw/arm/raspi: Access SoC parent object using BCM283X_BASE() macro
hw/arm/raspi: Merge model 4B with other models
hw/arm/raspi: Unify RASPI_MACHINE types
hw/arm/raspi: Pass board_rev as argument to raspi_base_machine_init()
hw/arm/raspi: Consider processor id in types[] array
hw/arm/raspi: Consider network interface for B models
hw/arm/raspi: Check ramsize is within chipset aperture
hw/arm/raspi: Introduce generic Raspberry Pi machine
hw/arm/raspi: Have the generic machine take a 'revision' property
hw/arm/raspi: List models creatable by the generic 'raspi' machine
hw/arm/raspi: Deprecate old raspiX machine names
hw/arm/raspi: Support more models
docs/about/deprecated.rst | 13 +
include/hw/arm/raspi_platform.h | 5 +-
hw/arm/raspi.c | 383 ++++++++++++++++++++++--
hw/arm/raspi4b.c | 136 ---------
tests/qtest/bcm2835-dma-test.c | 2 +-
tests/qtest/bcm2835-i2c-test.c | 2 +-
tests/qtest/boot-serial-test.c | 3 +-
hw/arm/meson.build | 2 +-
tests/functional/test_aarch64_raspi3.py | 5 +-
tests/functional/test_aarch64_raspi4.py | 4 +-
tests/functional/test_arm_raspi2.py | 4 +-
11 files changed, 385 insertions(+), 174 deletions(-)
delete mode 100644 hw/arm/raspi4b.c
--
2.47.1
5
29
[PATCH] qemu: forbid a few unsupported things for vhost-user/passt interfaces
by Laine Stump 21 Feb '25
by Laine Stump 21 Feb '25
21 Feb '25
passt in vhost-user mode doesn't support using multiple queues.
The path of the socket is auto-generated by libvirt for
vhost-user/passt; it can't be set by the user
The passt end of a vhost-user socket is always the server, and the
qemu end is always a client.
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
src/qemu/qemu_validate.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 3e3e368da3..53affcdcff 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1824,6 +1824,22 @@ qemuValidateDomainDeviceDefNetwork(const virDomainNetDef *net,
net->backend.type == VIR_DOMAIN_NET_BACKEND_PASST) {
if (qemuValidateDomainDefVhostUserRequireSharedMemory(def, "interface type=\"vhostuser\" backend type=\"passt\"") < 0)
return -1;
+
+ if (net->driver.virtio.queues > 0) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("interface type=\"vhostuser\" backend type=\"passt\" does not support multiple queues"));
+ return -1;
+ }
+ if (net->data.vhostuser->data.nix.path) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("'path' attribute cannot be set for interface type=\"vhostuser\" backend type=\"passt\""));
+ return -1;
+ }
+ if (net->data.vhostuser->data.nix.listen) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("mode=\"server\" is not supported for interface type=\"vhostuser\" backend type=\"passt\""));
+ return -1;
+ }
}
if (net->type == VIR_DOMAIN_NET_TYPE_VDPA) {
--
2.48.1
3
4
[PATCH 00/13] virsh: Enhancements for hypervisor-cpu-* commands and their documentation
by Jiri Denemark 21 Feb '25
by Jiri Denemark 21 Feb '25
21 Feb '25
This series originally started as a documentation update for
hypervisor-cpu-compare and hypervisor-cpu-baseline commands with an idea
to print a warning if the commands are used suboptimally. The rest is a
refactor and a lot of fixes of (mostly) error messages printed by virsh.
Jiri Denemark (13):
docs: Clarify documentation of virsh hypervisor-cpu-compare
docs: Clarify documentation of virsh hypervisor-cpu-baseline
virsh: Do not format messages twice
virsh: Make messages printed by vshError properly translatable
virsh: Refactor vshError
virsh: Introduce vshWarn
virsh: Warn when hypervisor-cpu-* is used with host CPU
virsh: Do not require \n in vshDebug messages
virsh: Properly mark all error messages for translation
virsh: Avoid using translated messages without format
virsh: Drop extra newlines at the end of error messages
virsh: Let prohibit_newline_at_end_of_diagnostic check pass
build: Enable syntax checks for vshError and vshWarn
build-aux/syntax-check.mk | 3 +-
docs/manpages/virsh.rst | 47 ++++++++-----
tools/virsh-domain-monitor.c | 16 ++---
tools/virsh-domain.c | 131 ++++++++++++++++++-----------------
tools/virsh-host.c | 22 ++++--
tools/virsh-interface.c | 6 +-
tools/virsh-network.c | 10 +--
tools/virsh-nodedev.c | 6 +-
tools/virsh-nwfilter.c | 10 +--
tools/virsh-pool.c | 10 +--
tools/virsh-secret.c | 8 +--
tools/virsh-snapshot.c | 12 ++--
tools/virsh-util.c | 16 ++---
tools/virsh-volume.c | 24 +++----
tools/virsh.c | 10 +--
tools/virt-admin.c | 16 ++---
tools/vsh.c | 113 +++++++++++++++++-------------
tools/vsh.h | 6 +-
18 files changed, 254 insertions(+), 212 deletions(-)
--
2.48.1
2
14
[PULL 01/41] docs/about: Change notes on x86 machine type
deprecation into a general one
by Michael S. Tsirkin 21 Feb '25
by Michael S. Tsirkin 21 Feb '25
21 Feb '25
From: Thomas Huth <thuth(a)redhat.com>
We now have a general note about versioned machine types getting
deprecated and removed at the beginning of the deprecated.rst file,
so we should also have a general note about this in removed-features.rst
(which will also apply to versioned non-x86 machine types) instead of
listing individual old machine types in the document.
Signed-off-by: Thomas Huth <thuth(a)redhat.com>
Message-Id: <20250116064644.65670-1-thuth(a)redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu(a)intel.com>
Reviewed-by: Michael S. Tsirkin <mst(a)redhat.com>
Signed-off-by: Michael S. Tsirkin <mst(a)redhat.com>
---
docs/about/deprecated.rst | 7 -------
docs/about/removed-features.rst | 11 +++++------
2 files changed, 5 insertions(+), 13 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 4a3c302962..7b42d6eecc 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -236,13 +236,6 @@ deprecated; use the new name ``dtb-randomness`` instead. The new name
better reflects the way this property affects all random data within
the device tree blob, not just the ``kaslr-seed`` node.
-``pc-i440fx-2.4`` up to ``pc-i440fx-2.12`` (since 9.1)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-These old machine types are quite neglected nowadays and thus might have
-various pitfalls with regards to live migration. Use a newer machine type
-instead.
-
PPC 405 ``ref405ep`` machine (since 9.1)
''''''''''''''''''''''''''''''''''''''''
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index c6616ce05e..156c0c253c 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -972,6 +972,11 @@ from Linux in 2021, and is not supported anymore by QEMU either.
System emulator machines
------------------------
+Note: Versioned machine types that have been introduced in a QEMU version
+that has initially been released more than 6 years before are considered
+obsolete and will be removed without further notice in this document.
+Please use newer machine types instead.
+
``s390-virtio`` (removed in 2.6)
''''''''''''''''''''''''''''''''
@@ -1006,12 +1011,6 @@ mips ``fulong2e`` machine alias (removed in 6.0)
This machine has been renamed ``fuloong2e``.
-``pc-0.10`` up to ``pc-i440fx-2.3`` (removed in 4.0 up to 9.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-These machine types were very old and likely could not be used for live
-migration from old QEMU versions anymore. Use a newer machine type instead.
-
Raspberry Pi ``raspi2`` and ``raspi3`` machines (removed in 6.2)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
--
MST
1
0
https://issues.redhat.com/browse/RHEL-27172
Ján Tomko (4):
conf: networkobj: fix indentation
conf: obj: remove extra empty line
conf: metadata: ignore empty metadata element
conf: metadata: remove metadata node if all metadata is removed
src/conf/domain_conf.c | 8 +++++--
src/conf/network_conf.c | 3 ++-
src/conf/virnetworkobj.c | 48 +++++++++++++++++++++-------------------
3 files changed, 33 insertions(+), 26 deletions(-)
--
2.48.1
2
6
Please see individual patches.
Peter Krempa (2):
docs: formatdomain: Document few NVRAM config limitations
docs: formatdomain: Mention that vhostuser interface with
mode='server' waits for connection
docs/formatdomain.rst | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
--
2.48.1
2
5
[PATCH v2] NEWS: Improve mention of vTPM transient VM crash fix in v11.0.0
by Peter Krempa 20 Feb '25
by Peter Krempa 20 Feb '25
20 Feb '25
The original NEWS entry for the vTPM transient VM crash was rather
vague and non-actionable.
As the bug is still actively experienced by users [1] of distros that
didn't yet ship an update to v11.0.0 and is hit by relatively common
usage improve the entry to mention situations when it happens and link
to upstream bug reports containing workarounds.
[1]: https://gitlab.com/libvirt/libvirt/-/issues/746
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
v2: Instead of listing the workarounds link to the upstream issues.
NEWS.rst | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/NEWS.rst b/NEWS.rst
index 7984f358f3..96e6ee9ada 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -116,10 +116,17 @@ v11.0.0 (2025-01-15)
* **Bug fixes**
- * qemu: tpm: do not update profile name for transient domains
+ * qemu: tpm: Fix crash on startup of transient domains with vTPM
- Fix a possible crash when starting a transient domain which was
- introduced in the previous release.
+ A bug was introduced in `v10.10.0 (2024-12-02)`_ when a transient VM with
+ a vTPM device is started either via ``virsh create domain.xml`` or when
+ creating VMs via ``virt-manager`` which uses transient definition for the
+ initial installation the libvirt daemon (``virtqemud`` or ``libvirtd``) can
+ crash.
+
+ More information and workarounds were documented in upstream issues
+ `#746 <https://gitlab.com/libvirt/libvirt/-/issues/746>`__ and
+ `#715 <https://gitlab.com/libvirt/libvirt/-/issues/715>`__.
* qemu: Fix snapshot to not delete disk image with internal snapshot
--
2.48.1
1
0
20 Feb '25
The original NEWS entry for the vTPM transient VM crash was rather
vague and non-actionable.
As the bug is still actively experienced by users [1] of distros that
didn't yet ship an update to v11.0.0 and is hit by relatively common
usage improve the entry to mention situations when it happens a bit more
close and provide workarounds for users who are not able to update.
[1]: https://gitlab.com/libvirt/libvirt/-/issues/746
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
NEWS.rst | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/NEWS.rst b/NEWS.rst
index 7dc6a3fa37..117287044a 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -97,10 +97,33 @@ v11.0.0 (2025-01-15)
* **Bug fixes**
- * qemu: tpm: do not update profile name for transient domains
+ * qemu: tpm: Fix crash on startup of transient domains with vTPM
- Fix a possible crash when starting a transient domain which was
- introduced in the previous release.
+ A bug was introduced in `v10.10.0 (2024-12-02)`_ when a transient VM with
+ a vTPM device is started either via ``virsh create domain.xml`` or when
+ creating VMs via ``virt-manager`` which uses transient definition for the
+ initial installation the libvirt daemon (``virtqemud`` or ``libvirtd``) can
+ crash.
+
+ Note that vTPM is auto-added in many cases by ``virt-install`` based on your
+ guest OS that is about to be installed.
+
+ The bug is fixed in this release. Following workarounds are possible if
+ upgrade is currently not available:
+
+ - make the VM persistent instead of starting it as transient::
+
+ virsh define domain.xml
+ virsh start.xml
+
+ - disable vTPM if practical in your deployment, either by dropping ``<tpm``
+ element or::
+
+ virt-install --tpm none ...
+
+ To obtain the XML ``virt-install`` would use for the above steps you can use::
+
+ virt-install --print-xml ...
* qemu: Fix snapshot to not delete disk image with internal snapshot
--
2.48.1
3
3
[PATCH RFC 00/13] qemu: Add support for iothread to virtqueue mapping for 'virtio-scsi'
by Peter Krempa 20 Feb '25
by Peter Krempa 20 Feb '25
20 Feb '25
The first part of the series refactors the existing code for reuse and
then uses the new helpers to implement the feature.
Note that this series is in RFC state as the qemu patches are still
being discussed. Thus also the capability bump is not final.
Also note that we should discuss the libvirt interface perhaps as it
turns out that 'virtio-scsi' has two internal queues that need to be
mapped as well.
For now I've solved this administratively by instructing users to also
add mapping for queue '0' and '1' which are the special ones in case of
virtio-scsi.
qemu-patches:
https://mail.gnu.org/archive/html/qemu-devel/2025-02/msg02810.html
Peter Krempa (13):
conf: Rename 'virDomainDiskIothreadDef' to
'virDomainIothreadMappingDef'
conf: domain: Extract code for parsing and formatting iotrhead mapping
definition
hypervisor: domain: Extract code for checking iothread usage
qemu: command: Rename 'qemuBuildDiskDeviceIothreadMappingProps' to
'qemuBuildIothreadMappingProps'
qemu: validate: Extract iothread mapping validation code
qemuValidateCheckSCSIControllerIOThreads: Return '0' and '-1' instead
of bools
conf: schemas: Rename 'diskDriverIothreads' to 'iothreadMapping'
conf: Validate that iohtreads are used only with 'virtio-scsi'
controllers
qemucapabilitiestest: Update 'caps_10.0.0_x86_64' to XXXXXX
qemu: capabilities: Introduce QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING
conf: Add support for iothread to queue mapping config for
'virtio-scsi'
qemu: Implement support for iothread <-> virtqueue mapping for
'virtio-scsi' controllers
qemuxmlconftest: Add 'iothreads-virtio-scsi-mapping' case
docs/formatdomain.rst | 33 +++
src/conf/domain_conf.c | 157 +++++++-----
src/conf/domain_conf.h | 11 +-
src/conf/domain_validate.c | 19 ++
src/conf/schemas/domaincommon.rng | 7 +-
src/hypervisor/domain_driver.c | 34 +--
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 12 +-
src/qemu/qemu_domain.c | 4 +-
src/qemu/qemu_validate.c | 234 ++++++++++--------
.../caps_10.0.0_x86_64.replies | 12 +-
.../caps_10.0.0_x86_64.xml | 3 +-
...r-virtio-serial-iothread.x86_64-latest.err | 1 +
.../controller-virtio-serial-iothread.xml | 27 ++
...ads-virtio-scsi-mapping.x86_64-latest.args | 39 +++
...eads-virtio-scsi-mapping.x86_64-latest.xml | 54 ++++
.../iothreads-virtio-scsi-mapping.xml | 46 ++++
tests/qemuxmlconftest.c | 3 +
19 files changed, 506 insertions(+), 193 deletions(-)
create mode 100644 tests/qemuxmlconfdata/controller-virtio-serial-iothread.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/controller-virtio-serial-iothread.xml
create mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-mapping.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-mapping.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-mapping.xml
--
2.48.1
3
20
Hello,
the command 'virsh -c qemu+ssh://root@remotehost/system console vm' from
libvirt 10.0.0 just hangs when the remotehost is rebooted. It prints
error: Disconnected from qemu+ssh://root@remotehost/system due to end of file
and waits for the user to press return. Then it prints
error: internal error: client socket is closed
and the command terminates as expected. I tried to add -k and -K, but
that does not help. If for some reason the vm is shutdown manually via
'virsh shutdown --domain vm' on remotehost or via "poweroff", then
'virsh console' also terminates properly.
Is there a way to avoid such a hang state if the ssh connection drops?
It seems the simple reproducer is to send SIGTERM to the sshd child process.
Olaf
2
1
This was requested by KubeVirt in
https://gitlab.com/libvirt/libvirt/-/issues/748
I've not functionally tested this, since I lack any suitable guest
windows environment this is looking for MSDM tables, nor does my
machine have MSDM ACPI tables to pass to a guest.
I'm blindly assuming that the QEMU CLI code is identical except for
s/SLIC/MSDM/.
Also I'm pretty unhappy about the situation with the Xen driver
support. This is pre-existing, and IMHO should never have been added
as it exists today, as it allows arbitrary passthrough of *any* set
of ACPI tables, as opposed to a single type of the specific type
listed in the XML. This should have been handled with a different
XML syntax, but with stuck with this undesirable approach now, so
I've kept it as is.
Daniel P. Berrangé (4):
conf: introduce support for multiple ACPI tables
src: validate permitted ACPI table types in libxl/qemu drivers
conf: support MSDM ACPI table type
qemu: support MSDM ACPI table type
docs/formatdomain.rst | 4 +-
src/conf/domain_conf.c | 88 ++++++++++++++-----
src/conf/domain_conf.h | 22 ++++-
src/conf/schemas/domaincommon.rng | 5 +-
src/libvirt_private.syms | 2 +
src/libxl/libxl_conf.c | 8 +-
src/libxl/libxl_domain.c | 21 +++++
src/libxl/xen_xl.c | 22 ++++-
src/qemu/qemu_command.c | 14 ++-
src/qemu/qemu_validate.c | 16 ++++
src/security/security_dac.c | 18 ++--
src/security/security_selinux.c | 16 ++--
src/security/virt-aa-helper.c | 5 +-
.../acpi-table-many.x86_64-latest.args | 34 +++++++
.../acpi-table-many.x86_64-latest.xml | 39 ++++++++
tests/qemuxmlconfdata/acpi-table-many.xml | 31 +++++++
tests/qemuxmlconftest.c | 1 +
17 files changed, 296 insertions(+), 50 deletions(-)
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/acpi-table-many.xml
--
2.47.1
3
12
Re: [PATCH 1/1] RFC: Add Arm CCA support for getting capability
information and running Realm VM
by Michal Prívozník 20 Feb '25
by Michal Prívozník 20 Feb '25
20 Feb '25
On 2/14/25 02:06, Akio Kakuno (Fujitsu) via Devel wrote:
> Hi, all!
>
> I'm adding three test for CCA compatibility:
> domaincapstest, qemucapabilitiestest, and qemuxmlconftest.
> This is because SEV-SNP added these three tests.
>
> I have three questions regarding these tests:
> 1. How to add tests to qemuxmlconftest
> 2. How to create launch-security-cca.xml
> 3. About the file output with VIR_TEST_REGENERATE_OUTPUT=1
>
> 1. How to add tests to qemuxmlconftest
> Following the example of launch-security-sev-snp tests, I've done the following.
> Is this correct?
>
> (1) Placed the following three files in tests/qemuxmlconfdata:
> launch-security-cca.xml
> launch-security-cca.aarch64-latest.xml
> launch-security-cca.aarch64-latest.args
>
The placement is correct, yes. BUT ...
> (2) Added the test processing to qemuxmlconftest.c's mymain() function:
> DO_TEST_CAPS_ARCH_LATEST_FULL("launch-security-cca",
> "aarch64",
> ARG_QEMU_CAPS,
> QEMU_CAPS_CCA_GUEST,
> QEMU_CAPS_LAST);
... this can be simplified to:
DO_TEST_CAPS_ARCH_LATEST("launch-security-cca", "aarch64");
>
> 2. How to create launch-security-cca.xml
> Do I need to handmade this from scratch or is there an automated method?
Basically it's hand written. What I usually do is I copy-paste the
domain XML I used when developing and testing a feature. And then cut
off all unnecessary elements.
>
> 3. About the file output with VIR_TEST_REGENERATE_OUTPUT=1
> I created launch-security-cca.aarch64-latest.* using the method described in
> doc/advanced-tests.rst.
> And, I created the test data for qemucapabilitiestest and domaincapstest using
> the method described in tests/qemucapabilitiesdata/README.rst.
> VIR_TEST_REGENERATE_OUTPUT=1 ./qemuxmlconftest
> VIR_TEST_REGENERATE_OUTPUT=1 ./domaincapstest
> VIR_TEST_REGENERATE_OUTPUT=1 ./qemucapabilitiestest
>
> Can I use the generated file for testing as is?
> Because doc/advanced-tests.rst says:
> "VERY CAREFULLY to ensure they are correct"
> > I assume that automatically generated expected values are
checked for accuracy.
Not really. It takes a machine brain to decide whether those files
follow some syntax (e.g. whether JSON is valid), but it takes human
brain to decide whether full combination of cmd line arguments actually
makes sense. I'd say - if you're able to start generated cmd line
(modulo some FD passing stuff - see my point above about cutting off
unnecessary elements), then you're probably fine.
> If correct, they are adopted; otherwise, investigation and remediation are undertaken.
> However, due to the lack of explicit documentation, we require confirmation.
>
> Also, it appears to be generating expected values based on the execution environment.
> Do we need to worry about variations in execution environments?
No. Our tests should generate stable enough (and reproducible!) environment.
> For example, executing qemuxmlconftest detects the following comparison errors,
> such as with aarch64-virt-minimal.aarch64-latest, etc.
> Expect [sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
> -m]
> Actual [m]
Yeah, printing diffs is not very userfriendly. You can get better
results with VIR_TEST_DEBUG=2.
>
> Best Regards.
>
Michal
2
1
[PATCH v7 00/18] *** [PATCH v7 00/18] qemu: block: Support block disk along with throttle filters ***
by Harikumar Rajkumar 19 Feb '25
by Harikumar Rajkumar 19 Feb '25
19 Feb '25
*** Support block disk along with throttle filters ***
Harikumar Rajkumar (18):
schema: Add new domain elements to support multiple throttle groups
schema: Add new domain elements to support multiple throttle filters
config: Introduce ThrottleGroup and corresponding XML parsing
config: Introduce ThrottleFilter and corresponding XML parsing
qemu: monitor: Add support for ThrottleGroup operations
tests: Test qemuMonitorJSONGetThrottleGroup and
qemuMonitorJSONUpdateThrottleGroup
remote: New APIs for ThrottleGroup lifecycle management
qemu: Refactor qemuDomainSetBlockIoTune to extract common methods
qemu: Implement qemu driver for throttle API
qemu: helper: throttle filter nodename and preparation processing
qemu: block: Support block disk along with throttle filters
config: validate: Verify iotune, throttle group and filter
qemuxmlconftest: Add 'throttlefilter' tests
qemustatusxml2xmldata: Add 'throttlefilter' tests
test_driver: Test throttle group lifecycle APIs
virsh: Refactor iotune options for re-use
virsh: Add support for throttle group operations
virsh: Add option throttle-groups to attach_disk
docs/formatdomain.rst | 47 ++
docs/manpages/virsh.rst | 137 +++-
include/libvirt/libvirt-domain.h | 14 +
src/conf/domain_conf.c | 407 ++++++++++
src/conf/domain_conf.h | 47 ++
src/conf/domain_validate.c | 118 ++-
src/conf/schemas/domaincommon.rng | 293 ++++---
src/conf/virconftypes.h | 4 +
src/driver-hypervisor.h | 14 +
src/libvirt-domain.c | 122 +++
src/libvirt_private.syms | 8 +
src/libvirt_public.syms | 6 +
src/qemu/qemu_block.c | 136 ++++
src/qemu/qemu_block.h | 49 ++
src/qemu/qemu_command.c | 180 +++++
src/qemu/qemu_command.h | 6 +
src/qemu/qemu_domain.c | 77 +-
src/qemu/qemu_driver.c | 486 +++++++++---
src/qemu/qemu_hotplug.c | 29 +
src/qemu/qemu_monitor.c | 21 +
src/qemu/qemu_monitor.h | 9 +
src/qemu/qemu_monitor_json.c | 129 +++
src/qemu/qemu_monitor_json.h | 14 +
src/remote/remote_daemon_dispatch.c | 105 +++
src/remote/remote_driver.c | 3 +
src/remote/remote_protocol.x | 50 +-
src/remote_protocol-structs | 28 +
src/test/test_driver.c | 367 ++++++---
tests/qemumonitorjsontest.c | 86 ++
.../throttlefilter-in.xml | 392 ++++++++++
.../throttlefilter-out.xml | 393 ++++++++++
tests/qemuxmlactivetest.c | 1 +
.../throttlefilter-invalid.x86_64-latest.err | 1 +
.../throttlefilter-invalid.xml | 89 +++
.../throttlefilter.x86_64-latest.args | 55 ++
.../throttlefilter.x86_64-latest.xml | 105 +++
tests/qemuxmlconfdata/throttlefilter.xml | 95 +++
tests/qemuxmlconftest.c | 2 +
tools/virsh-completer-domain.c | 82 ++
tools/virsh-completer-domain.h | 16 +
tools/virsh-domain.c | 736 ++++++++++++++----
41 files changed, 4429 insertions(+), 530 deletions(-)
create mode 100644 tests/qemustatusxml2xmldata/throttlefilter-in.xml
create mode 100644 tests/qemustatusxml2xmldata/throttlefilter-out.xml
create mode 100644 tests/qemuxmlconfdata/throttlefilter-invalid.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/throttlefilter-invalid.xml
create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/throttlefilter.xml
--
2.39.5 (Apple Git-154)
2
24
Hi,
I'm particularly interested in the PoC of KubeVirt to allow
custom changes in libvirt domain xml in a more straightforward
manner than they have Today [0].
When I was looking into the libvirt hooks, I was a bit excited
when I read:
> you can also place several hook scripts in the directory
> /etc/libvirt/hooks/qemu.d/. They are executed in alphabetical
> order after main script. In this case each script also acts as
> filter and can modify the domain XML and print it out on its
> standard output. This script output is passed to standard
> input next script in order. Empty output from any script is
> also identical to copying the input XML without changing it.
> In case any script returns failure common process will be
> aborted, but all scripts from the directory will are executed.
But that's not the case for every situation. When the domain is
being defined the scripts are run but the output is ignored [1]
Is there a reason for that?
In KubeVirt we basically have to re-implement [2] what the logic
around scripts under qemu.d already does. If we could use libvirt
only it would make testing easier for users and less code on
KubeVirt.
[0] https://kubevirt.io/user-guide/user_workloads/hook-sidecar/
[1] https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_process.c#L4…
[2] https://github.com/kubevirt/kubevirt/blob/main/pkg/hooks/manager.go#L200
Cheers,
Victor
3
6
[PATCH 00/12] [PATCH v2 00/12] qemu: support passt as a backend for vhost-user network interfaces
by Laine Stump 18 Feb '25
by Laine Stump 18 Feb '25
18 Feb '25
====
Changes from V1:
* fixed missing change to error log message pointed out by abologna
* added a validation check to assure that shared memory is enabled
if there is a type='vhostuser' interface in the domain definition
* included a patch documenting differences between type='user' SLIRP
and passt behaviors (because I had to do it anyway, and the
reorganization made documenting type='vhostuser' passt slightly
easier.
* added documentation for type='vhostuser' backend type='passt'
=====
passt (https://passt.top) provides a method of connecting QEMU virtual
machines to the external network without requiring special privileges
or capabilities of any participating processes - even libvirt itself
can run unprivileged and create an instance of passt (which *always*
runs unprivileged) that is then connected to the qemu process (and
thus the virtual machine) with a unix socket.
Originally passt used its own protocol for this socket, sending both
control messages and data packets over the socket. This works, and is
already much more efficient than the previously
only-unprivileged-networking-solution slirp.
But recently passt added support for using the vhost-user protocol for
communication between the passt process (which is connected to the
external network) and the QEMU process (and thus the VM). vhost-user
also uses a unix socket, but only for control plane messages - all
data packets are "sent" between the VM and passt process via a shared
memory region. This is unsurprisingly much more efficient.
From the point of view of QEMU, the passt process looks identical to
any normal vhost-user backend, so we can run QEMU with exactly the
same interface commandline options as normal vhost-user. Also, the
passt process supports all of the same options as it does when used in
its "traditional" mode, so really in the end all we need to do is
twist libvirt around so that when <backend type='passt'/> is specified
for an <interface type='vhostuser'>, it will run passt just as before
(except with the added "--vhost-user" option so that passt will know
to use that), and then force feed the vhost-user code in libvirt with
the same socket path used by passt.
This series does that, while also switching up a few bits of code
prior to adding in the new functionality.
So far this has been tested both unprivileged and privileged on Fedora
40 (with latest passt packet) and selinux enabled (there are a couple
of selinux policy tweaks that still need to be pushed to
passt-selinux) as well as unprivileged on debian (I *think* with
AppArmor enabled) and everything seems to work.
(I haven't gotten to testing hotplug, but it *should* work, and I'll
be testing it while (hopefully) someone is reviewing these patches.)
To test, you will need the latest (20250121) passt package and the
aforementioned upstream passt-selinux patch if you're using selinux.
This Resolves: https://issues.redhat.com/browse/RHEL-69455
Laine Stump (12):
conf: change virDomainHostdevInsert() to return void
qemu: fix qemu validation to forbid guest-side IP address for
type='vdpa'
qemu: validate that model is virtio for vhostuser and vdpa interfaces
in the same place
qemu: automatically set model type='virtio' for interface
type='vhostuser'
qemu: do all vhostuser attribute validation in qemu driver
conf/qemu: make <source> element *almost* optional for type=vhostuser
qemu: use switch instead of if in qemuProcessPrepareDomainNetwork()
qemu: make qemuPasstCreateSocketPath() public
qemu: complete vhostuser + passt support
qemu: fail validation if a domain def has vhostuser/passt but no
shared mem
docs: improve type='user' docs to higlight differences between SLIRP
and passt
docs: document using passt backend with <interface type='vhostuser'>
docs/formatdomain.rst | 189 +++++++++++++-----
src/conf/domain_conf.c | 107 +++++-----
src/conf/domain_conf.h | 2 +-
src/conf/domain_validate.c | 85 +++-----
src/conf/schemas/domaincommon.rng | 32 ++-
src/libxl/libxl_domain.c | 5 +-
src/libxl/libxl_driver.c | 3 +-
src/lxc/lxc_driver.c | 3 +-
src/qemu/qemu_command.c | 7 +-
src/qemu/qemu_driver.c | 3 +-
src/qemu/qemu_extdevice.c | 6 +-
src/qemu/qemu_hotplug.c | 21 +-
src/qemu/qemu_passt.c | 5 +-
src/qemu/qemu_passt.h | 3 +
src/qemu/qemu_postparse.c | 3 +-
src/qemu/qemu_process.c | 85 +++++---
src/qemu/qemu_validate.c | 65 ++++--
...t-user-slirp-portforward.x86_64-latest.err | 2 +-
...vhostuser-passt-no-shmem.x86_64-latest.err | 1 +
.../net-vhostuser-passt-no-shmem.xml | 70 +++++++
.../net-vhostuser-passt.x86_64-latest.args | 42 ++++
.../net-vhostuser-passt.x86_64-latest.xml | 75 +++++++
tests/qemuxmlconfdata/net-vhostuser-passt.xml | 73 +++++++
tests/qemuxmlconftest.c | 2 +
24 files changed, 657 insertions(+), 232 deletions(-)
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.x86_64-latest.err
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt-no-shmem.xml
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.xml
--
2.47.1
4
24
[PATCH] build-aux: squelch trailing blank warnings from binary files
by Daniel P. Berrangé 18 Feb '25
by Daniel P. Berrangé 18 Feb '25
18 Feb '25
These files pollute the stderr output when the sc_trailing_blank
syntax check fails.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
build-aux/syntax-check.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build-aux/syntax-check.mk b/build-aux/syntax-check.mk
index e6afb879be..bd3dd6cb54 100644
--- a/build-aux/syntax-check.mk
+++ b/build-aux/syntax-check.mk
@@ -1438,7 +1438,7 @@ exclude_file_name_regexp--sc_require_config_h_first = \
^(examples/|tools/virsh-edit\.c$$|tests/virmockstathelpers\.c$$|scripts/rpcgen/tests/test_demo\.c$$)
exclude_file_name_regexp--sc_trailing_blank = \
- /sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo|tests/virshtestdata/.*$$
+ /sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo|tests/virshtestdata/.*|docs/fonts|scripts/rpcgen/tests/.*\.bin|tests/viracpidata/.*|tests/virpcitestdata/*|tests/virstoragetestdata/images/.*\.qcow2$$
exclude_file_name_regexp--sc_unmarked_diagnostics = \
^(scripts/apibuild.py|tests/virt-aa-helper-test|docs/js/.*\.js)$$
--
2.47.1
2
1
18 Feb '25
When we don't have any information about host CPU (for example when
running on an aarch64 host), the virQEMUCapsGetHostModel would return
NULL.
Fixes: https://gitlab.com/libvirt/libvirt/-/issues/747
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_domain.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index cf05dca55a..df1ed0223d 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -11430,6 +11430,7 @@ qemuDomainCheckCPU(virArch arch,
/* Force compat check if the CPU model is not found in qemuCaps or
* we don't have host CPU data from QEMU */
if (!cpu->model ||
+ !hypervisorCPU ||
hypervisorCPU->fallback != VIR_CPU_FALLBACK_FORBID ||
virQEMUCapsGetCPUBlockers(qemuCaps, virtType,
cpu->model, &blockers) < 0)
--
2.48.1
3
2
We are getting close to 11.1.0 release of libvirt. To aim for the
release on Monday 03 Mar I suggest entering the freeze on Monday 24
Feb and tagging RC2 on Thursday 27 Feb.
I hope this works for everyone.
Jirka
1
0
18 Feb '25
A function was changed from having no arguments to having a single
argument, but the entire body of the function was #ifdefed out for
windows builds, leaving that new argument unused. Surprisingly this
didn't cause the build to fail, but I happened to notice it flit by
during an rpm build.
Fixes: 785cd56e5803fbbf60715fb6c7536360df5b4b9e
Signed-off-by: Laine Stump <laine(a)redhat.com>
---
I'm pushing this as trivial (technically it's not a build breaker,
since the build still continues even with the warning :-P)
src/util/virsystemd.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/util/virsystemd.c b/src/util/virsystemd.c
index 57fe409c57..92d2890360 100644
--- a/src/util/virsystemd.c
+++ b/src/util/virsystemd.c
@@ -624,10 +624,15 @@ int virSystemdTerminateMachine(const char *name)
return 0;
}
+#ifdef WIN32
+static void
+virSystemdNotify(const char *msg G_GNUC_UNUSED)
+{
+}
+#else
static void
virSystemdNotify(const char *msg)
{
-#ifndef WIN32
const char *path;
int fd;
struct sockaddr_un un = {
@@ -672,8 +677,8 @@ virSystemdNotify(const char *msg)
VIR_WARN("Failed to notify systemd");
VIR_FORCE_CLOSE(fd);
-#endif /* !WIN32 */
}
+#endif /* !WIN32 */
void virSystemdNotifyReady(void)
{
--
2.47.1
1
0
Resolves: https://issues.redhat.com/browse/RHEL-79165
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
src/util/virfile.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/util/virfile.c b/src/util/virfile.c
index 6ac0f4efb3..7cab3d0cd6 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -3823,10 +3823,13 @@ virFileIsSharedFSOverride(const char *path,
if (!path || path[0] != '/' || !overrides)
return false;
- if (g_strv_contains((const char *const *) overrides, path))
- return true;
+ /* Overrides have been canonicalized ahead of time, so we need to
+ * do the same for the provided path or we'll never be able to
+ * find a match if symlinks are involved */
+ dirpath = virFileCanonicalizePath(path);
- dirpath = g_strdup(path);
+ if (g_strv_contains((const char *const *) overrides, dirpath))
+ return true;
/* Continue until we've scanned the entire path */
while (p != dirpath) {
--
2.48.1
2
2
This series is based on a cleanup of qemuSaveImageGetCompressionProgram [1]
and demonstrates the usefulness of that cleanup. Patch1 adds the
VIR_DOMAIN_SAVE_PARAM_IMAGE_FORMAT typed parameter to virDomainSaveParams,
allowing to specify the image format on a per-operation basis. The format
can still be set driver-wide in qemu.conf. Patch2 provides the
implementation in the qemu driver.
[1] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/SKVP…
Jim Fehlig (2):
include: Define constant for save image format
qemu: Add support for 'image_format' typed parameter
include/libvirt/libvirt-domain.h | 13 +++++++++++++
src/libvirt-domain.c | 3 +++
src/qemu/qemu_driver.c | 12 ++++++++++--
3 files changed, 26 insertions(+), 2 deletions(-)
--
2.43.0
2
4
[PATCH 0/3] qemu: Small cleanups to SaveImageGetCompressionProgram and callers
by Jim Fehlig 17 Feb '25
by Jim Fehlig 17 Feb '25
17 Feb '25
Even though my work on supporting mapped-ram is the main motivation for
this small cleanup series, IMO is useful in its own right.
Jim Fehlig (3):
qemu: Move declaration of virQEMUSaveFormat to header file
qemu: Move special handling of invalid dump format to only caller
qemu: Change return value of SaveImageGetCompressionProgram
src/qemu/qemu_driver.c | 52 ++++++++++++++--------
src/qemu/qemu_saveimage.c | 92 +++++++--------------------------------
src/qemu/qemu_saveimage.h | 24 ++++++++--
src/qemu/qemu_snapshot.c | 11 +++--
4 files changed, 78 insertions(+), 101 deletions(-)
--
2.43.0
2
7
[PATCH 0/9] qemu: support passt as the backend for vhost-user network interfaces
by Laine Stump 14 Feb '25
by Laine Stump 14 Feb '25
14 Feb '25
passt (https://passt.top) provides a method of connecting QEMU virtual
machines to the external network without requiring special privileges
or capabilities of any participating processes - even libvirt itself
can run unprivileged and create an instance of passt (which *always*
runs unprivileged) that is then connected to the qemu process (and
thus the virtual machine) with a unix socket.
Originally passt used its own protocol for this socket, sending both
control messages and data packets over the socket. This works, and is
already much more efficient than the previously
only-unprivileged-networking-solution slirp.
But recently passt added support for using the vhost-user protocol for
communication between the passt process (which is connected to the
external network) and the QEMU process (and thus the VM). vhost-user
also uses a unix socket, but only for control plane messages - all
data packets are "sent" between the VM and passt process via a shared
memory region. This is unsurprisingly much more efficient.
From the point of view of QEMU, the passt process looks identical to
any normal vhost-user backend, so we can run QEMU with exactly the
same interface commandline options as normal vhost-user. Also, the
passt process supports all of the same options as it does when used in
its "traditional" mode, so really in the end all we need to do is
twist libvirt around so that when <backend type='passt'/> is specified
for an <interface type='vhostuser'>, it will run passt just as before
(except with the added "--vhost-user" option so that passt will know
to use that), and then force feed the vhost-user code in libvirt with
the same ocket path used by passt.
This series does that, while also switching up a few bits of code
prior to adding in the new functionality.
So far this has been tested both unprivileged and privileged on Fedora
40 (with latest passt packet) and selinux enabled (there are a couple
of selinux policy tweaks that still need to be pushed to
passt-selinux) as well as unprivileged on debian (I *think* with
AppArmor enabled) and everything seems to work.
(I haven't gotten to testing hotplug, but it *should* work, and I'll
be testing it while (hopefully) someone is reviewing these patches.)
I also need to make the patch to update formatdomain.rst before the
rest of it can be pushed, but I wanted to get this posted to save time
later.
This series does require patch 1 of the series I posted a couple days
ago that changes several functions that can't fail to return void.
Also, you will need the latest (20250121) passt package.
This Resolves: https://issues.redhat.com/browse/RHEL-69455
Laine Stump (9):
conf: change virDomainHostdevInsert() to return void
qemu: fix qemu validation to forbid guest-side IP address for
type='vdpa'
qemu: validate that model is virtio for vhostuser and vdpa interfaces
in the same place
qemu: automatically set model type='virtio' for interface
type='vhostuser'
qemu: do all vhostuser attribute validation in qemu driver
conf/qemu: make <source> element *almost* optional for type=vhostuser
qemu: use switch instead of if in qemuProcessPrepareDomainNetwork()
qemu: make qemuPasstCreateSocketPath() public
qemu: complete vhostuser + passt support
src/conf/domain_conf.c | 107 +++++++++---------
src/conf/domain_conf.h | 2 +-
src/conf/domain_validate.c | 83 ++++----------
src/conf/schemas/domaincommon.rng | 32 +++++-
src/libxl/libxl_domain.c | 5 +-
src/libxl/libxl_driver.c | 3 +-
src/lxc/lxc_driver.c | 3 +-
src/qemu/qemu_command.c | 7 +-
src/qemu/qemu_driver.c | 3 +-
src/qemu/qemu_extdevice.c | 6 +-
src/qemu/qemu_hotplug.c | 21 +++-
src/qemu/qemu_passt.c | 5 +-
src/qemu/qemu_passt.h | 3 +
src/qemu/qemu_postparse.c | 3 +-
src/qemu/qemu_process.c | 84 +++++++++-----
src/qemu/qemu_validate.c | 56 ++++++---
...t-user-slirp-portforward.x86_64-latest.err | 2 +-
.../net-vhostuser-passt.x86_64-latest.args | 42 +++++++
.../net-vhostuser-passt.x86_64-latest.xml | 72 ++++++++++++
tests/qemuxmlconfdata/net-vhostuser-passt.xml | 70 ++++++++++++
tests/qemuxmlconftest.c | 1 +
21 files changed, 429 insertions(+), 181 deletions(-)
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/net-vhostuser-passt.xml
--
2.47.1
6
23
Signed-off-by: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
---
NEWS.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 7dc6a3fa37..4fc8a3bba0 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -31,6 +31,17 @@ v11.1.0 (unreleased)
* **New features**
+ * nodedev: Support ccwgroup based qeth devices
+
+ CCW group devices are devices that use multiple subchannels on the
+ mainframe's channel subsystem. A qeth group device maps to subchannels and
+ their corresponding device numbers and device bus-IDs. The ``ccwgroup``
+ device nodes are placed besides the subchannel nodes under computer and list
+ the group members within a new ``ccwgroup`` capability. A new capability
+ ``ccwgroup_member`` is added into capability ``ccw`` to represent a device
+ membership to a ccwgroup. Filters are added to find ccwgroups as well as
+ ccwgroup members.
+
* ch: Support handling events from cloud-hypervisor
The ch driver now supports handling events from the cloud-hypervisor.
--
2.47.0
2
1
From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Hi,
This patch series offers an out-of-process Remote Desktop Protocol (RDP)
server solution utilizing QEMU's -display dbus interface, offering improved
modularity and potential security benefits compared to built-in server.
This initiative was spearheaded by Mihnea Buzatu during the QEMU Summer of Code
2023. The project's goal was to develop an out-of-process RDP server using the
-display dbus interface, implemented in Rust. Given that the IronRDP crate
lacked some server support at the time, investments in IronRDP were required.
I finally released an initial v0.1 version of qemu-rdp on crates.io
(https://crates.io/crates/qemu-rdp) That should allow more people to review and
evaluate the state of this work.
On unix systems, with cargo/rust toolchain installed, it should be as easy as
running "cargo install qemu-rdp", apply this patch series for libvirt, set the
"rdp_tls_x509_cert_dir" location for your TLS certificates, and configure a VM
with both dbus & rdp graphics (run "virsh domdisplay DOMAIN" to get the display
connection details).
Thanks for the reviews & feedback!
Marc-André Lureau (19):
build-sys: drop -Winline
build: fix -Werror=maybe-uninitialized
qemu-slirp: drop unneeded check for OOM
util: add conn != NULL precondition in virGDBusCallMethod()
qemu: report an error for unsupported graphics
qemu: add rdp state directory
qemu: add qemu RDP configuration
conf: parse optional RDP username & password
conf: generalize virDomainDefHasSpiceGraphics
qemu: use virDomainDefHasGraphics
qemu: add RDP ports range allocator
qemu: limit to one <graphics type='rdp'>
qemu/dbus: keep a connection to the VM D-Bus
qemu/dbus: log daemon stdout/err
qemu: validate RDP configuration
qemu: if -display dbus capability is supported, accept rdp
qemu: add qemu-rdp helper unit
qemu: add RDP support
tests: add qemu <graphics type='rdp'/> test
docs/formatdomain.rst | 25 +-
meson.build | 1 -
po/POTFILES | 1 +
src/conf/domain_conf.c | 28 +-
src/conf/domain_conf.h | 5 +-
src/conf/schemas/domaincommon.rng | 10 +
src/libvirt_private.syms | 2 +-
src/qemu/libvirtd_qemu.aug | 7 +
src/qemu/meson.build | 1 +
src/qemu/qemu.conf.in | 31 ++
src/qemu/qemu_capabilities.c | 7 +-
src/qemu/qemu_command.c | 11 +-
src/qemu/qemu_conf.c | 47 ++
src/qemu/qemu_conf.h | 13 +
src/qemu/qemu_dbus.c | 83 +++-
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 4 +
src/qemu/qemu_driver.c | 20 +
src/qemu/qemu_extdevice.c | 46 +-
src/qemu/qemu_hotplug.c | 49 +-
src/qemu/qemu_hotplug.h | 1 +
src/qemu/qemu_process.c | 167 ++++++-
src/qemu/qemu_rdp.c | 427 ++++++++++++++++++
src/qemu/qemu_rdp.h | 71 +++
src/qemu/qemu_slirp.c | 6 -
src/qemu/qemu_validate.c | 45 +-
src/qemu/test_libvirtd_qemu.aug.in | 5 +
src/util/virgdbus.c | 4 +
tests/domaincapsdata/qemu_10.0.0.s390x.xml | 1 +
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 1 +
.../qemu_7.2.0-hvf.x86_64+hvf.xml | 1 +
.../domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 1 +
.../qemu_7.2.0-tcg.x86_64+hvf.xml | 1 +
.../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_7.2.0.ppc.xml | 1 +
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 +
.../qemu_8.2.0-tcg-virt.loongarch64.xml | 1 +
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 1 +
.../qemu_8.2.0-virt.aarch64.xml | 1 +
.../qemu_8.2.0-virt.loongarch64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.aarch64.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.armv7l.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.0.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.sparc.xml | 1 +
tests/domaincapsdata/qemu_9.0.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.1.0-q35.x86_64.xml | 1 +
.../qemu_9.1.0-tcg-virt.riscv64.xml | 1 +
.../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml | 1 +
.../qemu_9.1.0-virt.riscv64.xml | 1 +
tests/domaincapsdata/qemu_9.1.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_9.1.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.2.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.s390x.xml | 1 +
tests/domaincapsdata/qemu_9.2.0.x86_64.xml | 1 +
.../graphics-rdp.x86_64-latest.args | 35 ++
.../graphics-rdp.x86_64-latest.xml | 1 +
tests/qemuxmlconfdata/graphics-rdp.xml | 43 ++
tests/qemuxmlconftest.c | 2 +
tests/testutilsqemu.c | 4 +
tools/nss/libvirt_nss_leases.c | 2 +-
tools/nss/libvirt_nss_macs.c | 2 +-
78 files changed, 1172 insertions(+), 78 deletions(-)
create mode 100644 src/qemu/qemu_rdp.c
create mode 100644 src/qemu/qemu_rdp.h
create mode 100644 tests/qemuxmlconfdata/graphics-rdp.x86_64-latest.args
create mode 120000 tests/qemuxmlconfdata/graphics-rdp.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/graphics-rdp.xml
--
2.47.0
4
46
Re: [PATCH 1/1] RFC: Add Arm CCA support for getting capability
information and running Realm VM
by Akio Kakuno (Fujitsu) 14 Feb '25
by Akio Kakuno (Fujitsu) 14 Feb '25
14 Feb '25
Hi, all!
I'm adding three test for CCA compatibility:
domaincapstest, qemucapabilitiestest, and qemuxmlconftest.
This is because SEV-SNP added these three tests.
I have three questions regarding these tests:
1. How to add tests to qemuxmlconftest
2. How to create launch-security-cca.xml
3. About the file output with VIR_TEST_REGENERATE_OUTPUT=1
1. How to add tests to qemuxmlconftest
Following the example of launch-security-sev-snp tests, I've done the following.
Is this correct?
(1) Placed the following three files in tests/qemuxmlconfdata:
launch-security-cca.xml
launch-security-cca.aarch64-latest.xml
launch-security-cca.aarch64-latest.args
(2) Added the test processing to qemuxmlconftest.c's mymain() function:
DO_TEST_CAPS_ARCH_LATEST_FULL("launch-security-cca",
"aarch64",
ARG_QEMU_CAPS,
QEMU_CAPS_CCA_GUEST,
QEMU_CAPS_LAST);
2. How to create launch-security-cca.xml
Do I need to handmade this from scratch or is there an automated method?
3. About the file output with VIR_TEST_REGENERATE_OUTPUT=1
I created launch-security-cca.aarch64-latest.* using the method described in
doc/advanced-tests.rst.
And, I created the test data for qemucapabilitiestest and domaincapstest using
the method described in tests/qemucapabilitiesdata/README.rst.
VIR_TEST_REGENERATE_OUTPUT=1 ./qemuxmlconftest
VIR_TEST_REGENERATE_OUTPUT=1 ./domaincapstest
VIR_TEST_REGENERATE_OUTPUT=1 ./qemucapabilitiestest
Can I use the generated file for testing as is?
Because doc/advanced-tests.rst says:
"VERY CAREFULLY to ensure they are correct"
I assume that automatically generated expected values are checked for accuracy.
If correct, they are adopted; otherwise, investigation and remediation are undertaken.
However, due to the lack of explicit documentation, we require confirmation.
Also, it appears to be generating expected values based on the execution environment.
Do we need to worry about variations in execution environments?
For example, executing qemuxmlconftest detects the following comparison errors,
such as with aarch64-virt-minimal.aarch64-latest, etc.
Expect [sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-m]
Actual [m]
Best Regards.
1
0
An issue was recently reported[1] with running unprivileged VMs
configured to use passt on Debian with AppArmor confinement enabled.
After looking into the situation, I am convinced that AppArmor
confinement never really worked for unprivileged VMs. The whole
mechanism is built around the concept of per-VM profiles that are
dynamically generated and registered, but doing so requires write
access to /etc/apparmor.d/ and in general permissions that
unprivileged libvirt will by design not have.
Of course it's unfortunate that unprivileged VMs would be forced to
miss out on the potential benefits of AppArmor isolation, and even
more unfortunate that passt won't work out of the box for
unprivileged VMs, since those are the ones where it makes the most
sense to use passt in the first place.
Stefano suggested introducing a generic "libvirt-user" profile that
would be attached to unprivileged VMs and would be more liberal than
the one used for privileged VMs, since we wouldn't be able to tailor
it to the specifics of the VM, but would at least prevent the worst
of the abuse; specifically, it would only allow R/W access to files
in the current user's home directory.
Does that sound like a reasonable direction? Any other ideas?
In the meantime, Stefano has posted a workaround[2] that, when
applied to passt's AppArmor profile, would allow these VMs to at
least start.
CC'ing people with AppArmor knowledge for awareness.
[1] https://archives.passt.top/passt-dev/20250129104112.0756df5c@elisabeth/T/#u
[2] https://archives.passt.top/passt-dev/20250205163101.3793658-1-sbrivio@redha…
--
Andrea Bolognani / Red Hat / Virtualization
4
5
13 Feb '25
Sponsored by: Future Crew, LLC
Signed-off-by: Alexander Shursha <kekek2(a)ya.ru>
---
src/meson.build | 1 +
src/util/virpci.c | 464 ++++++++++------------------------------
tests/qemuhotplugtest.c | 11 +-
tests/qemumemlocktest.c | 9 +
tests/qemuxmlconftest.c | 9 +
tests/virpcimock.c | 21 +-
6 files changed, 160 insertions(+), 355 deletions(-)
diff --git a/src/meson.build b/src/meson.build
index 9413192a55..39788ac4d7 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -411,6 +411,7 @@ libvirt_lib = shared_library(
dtrace_gen_objects,
dependencies: [
src_dep,
+ pciaccess_dep
],
link_args: libvirt_link_args,
link_whole: [
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 90617e69c6..3f95fa2b3f 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -29,6 +29,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <pciaccess.h>
#ifdef __linux__
# include <sys/utsname.h>
@@ -72,7 +73,7 @@ struct _virPCIDevice {
char *name; /* domain:bus:slot.function */
char id[PCI_ID_LEN]; /* product vendor */
- char *path;
+ struct pci_device *device;
/* The driver:domain which uses the device */
char *used_by_drvname;
@@ -359,121 +360,6 @@ virPCIDeviceGetCurrentDriverNameAndType(virPCIDevice *dev,
}
-static int
-virPCIDeviceConfigOpenInternal(virPCIDevice *dev, bool readonly, bool fatal)
-{
- int fd;
-
- fd = open(dev->path, readonly ? O_RDONLY : O_RDWR);
-
- if (fd < 0) {
- if (fatal) {
- virReportSystemError(errno,
- _("Failed to open config space file '%1$s'"),
- dev->path);
- } else {
- VIR_WARN("Failed to open config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
- return -1;
- }
-
- VIR_DEBUG("%s %s: opened %s", dev->id, dev->name, dev->path);
- return fd;
-}
-
-static int
-virPCIDeviceConfigOpen(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, true);
-}
-
-static int
-virPCIDeviceConfigOpenTry(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, true, false);
-}
-
-static int
-virPCIDeviceConfigOpenWrite(virPCIDevice *dev)
-{
- return virPCIDeviceConfigOpenInternal(dev, false, true);
-}
-
-static void
-virPCIDeviceConfigClose(virPCIDevice *dev, int cfgfd)
-{
- if (VIR_CLOSE(cfgfd) < 0) {
- VIR_WARN("Failed to close config space file '%s': %s",
- dev->path, g_strerror(errno));
- }
-}
-
-
-static int
-virPCIDeviceRead(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- memset(buf, 0, buflen);
- errno = 0;
-
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- saferead(cfgfd, buf, buflen) != buflen) {
- VIR_DEBUG("Failed to read %u bytes at %u from '%s' : %s",
- buflen, pos, dev->path, g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-
-/**
- * virPCIDeviceReadN:
- * @dev: virPCIDevice object (used only to log name of config file)
- * @cfgfd: open file descriptor for device config file in sysfs
- * @pos: byte offset in the file to read from
- *
- * read "N" (where "N" is "8", "16", or "32", and appears at the end
- * of the function name) bytes from a PCI device's already-opened
- * sysfs config file and return them as the return value from the
- * function.
- *
- * Returns the value at @pos in the file, or 0 if there was an
- * error. NB: since 0 could be a valid value, occurrence of an error
- * must be determined by examining errno. errno is always reset to 0
- * before the seek/read is attempted (see virPCIDeviceRead()), so if
- * errno != 0 on return from one of these functions, then either the
- * seek or the read operation failed for some reason. If errno == 0
- * and the return value is 0, then the config file really does contain
- * the value 0 at @pos.
- */
-static uint8_t
-virPCIDeviceRead8(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf;
- virPCIDeviceRead(dev, cfgfd, pos, &buf, sizeof(buf));
- return buf;
-}
-
-static uint16_t
-virPCIDeviceRead16(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[2];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8);
-}
-
-static uint32_t
-virPCIDeviceRead32(virPCIDevice *dev, int cfgfd, unsigned int pos)
-{
- uint8_t buf[4];
- virPCIDeviceRead(dev, cfgfd, pos, &buf[0], sizeof(buf));
- return (buf[0] << 0) | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24);
-}
-
static int
virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
{
@@ -499,36 +385,6 @@ virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
return 0;
}
-static int
-virPCIDeviceWrite(virPCIDevice *dev,
- int cfgfd,
- unsigned int pos,
- uint8_t *buf,
- unsigned int buflen)
-{
- if (lseek(cfgfd, pos, SEEK_SET) != pos ||
- safewrite(cfgfd, buf, buflen) != buflen) {
- VIR_WARN("Failed to write to '%s' : %s", dev->path,
- g_strerror(errno));
- return -1;
- }
- return 0;
-}
-
-static void
-virPCIDeviceWrite16(virPCIDevice *dev, int cfgfd, unsigned int pos, uint16_t val)
-{
- uint8_t buf[2] = { (val >> 0), (val >> 8) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
-static void
-virPCIDeviceWrite32(virPCIDevice *dev, int cfgfd, unsigned int pos, uint32_t val)
-{
- uint8_t buf[4] = { (val >> 0), (val >> 8), (val >> 16), (val >> 24) };
- virPCIDeviceWrite(dev, cfgfd, pos, &buf[0], sizeof(buf));
-}
-
typedef int (*virPCIDeviceIterPredicate)(virPCIDevice *, virPCIDevice *,
void *);
@@ -610,7 +466,6 @@ virPCIDeviceIterDevices(virPCIDeviceIterPredicate predicate,
*/
static int
virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability,
unsigned int *offset)
{
@@ -619,11 +474,13 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
*offset = 0; /* assume failure (*nothing* can be at offset 0) */
- status = virPCIDeviceRead16(dev, cfgfd, PCI_STATUS);
+ pci_device_cfg_read_u16(dev->device, &status, PCI_STATUS);
+
if (errno != 0 || !(status & PCI_STATUS_CAP_LIST))
goto error;
- pos = virPCIDeviceRead8(dev, cfgfd, PCI_CAPABILITY_LIST);
+ pci_device_cfg_read_u8(dev->device, &pos, PCI_CAPABILITY_LIST);
+
if (errno != 0)
goto error;
@@ -635,7 +492,9 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
* capabilities here.
*/
while (pos >= PCI_CONF_HEADER_LEN && pos != 0xff) {
- uint8_t capid = virPCIDeviceRead8(dev, cfgfd, pos);
+ uint8_t capid;
+ pci_device_cfg_read_u8(dev->device, &capid, pos);
+
if (errno != 0)
goto error;
@@ -646,7 +505,8 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
return 0;
}
- pos = virPCIDeviceRead8(dev, cfgfd, pos + 1);
+ pci_device_cfg_read_u8(dev->device, &pos, pos + 1);
+
if (errno != 0)
goto error;
}
@@ -665,7 +525,6 @@ virPCIDeviceFindCapabilityOffset(virPCIDevice *dev,
static unsigned int
virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
- int cfgfd,
unsigned int capability)
{
int ttl;
@@ -677,7 +536,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
pos = PCI_EXT_CAP_BASE;
while (ttl > 0 && pos >= PCI_EXT_CAP_BASE) {
- header = virPCIDeviceRead32(dev, cfgfd, pos);
+ header = pci_device_cfg_read_u32(dev->device, &header, pos);
if ((header & PCI_EXT_CAP_ID_MASK) == capability)
return pos;
@@ -693,7 +552,7 @@ virPCIDeviceFindExtendedCapabilityOffset(virPCIDevice *dev,
* not have FLR, 1 if it does, and -1 on error
*/
static bool
-virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev)
{
uint32_t caps;
unsigned int pos;
@@ -707,7 +566,7 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* on SR-IOV NICs at the moment.
*/
if (dev->pcie_cap_pos) {
- caps = virPCIDeviceRead32(dev, cfgfd, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
+ pci_device_cfg_read_u32(dev->device, &caps, dev->pcie_cap_pos + PCI_EXP_DEVCAP);
if (caps & PCI_EXP_DEVCAP_FLR) {
VIR_DEBUG("%s %s: detected PCIe FLR capability", dev->id, dev->name);
return true;
@@ -718,11 +577,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* the same thing, except for conventional PCI
* devices. This is not common yet.
*/
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_AF, &pos) < 0)
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_AF, &pos) < 0)
goto error;
if (pos) {
- caps = virPCIDeviceRead16(dev, cfgfd, pos + PCI_AF_CAP);
+ uint16_t caps16;
+ pci_device_cfg_read_u16(dev->device, &caps16, pos + PCI_AF_CAP);
+ caps = caps16;
if (caps & PCI_AF_CAP_FLR) {
VIR_DEBUG("%s %s: detected PCI FLR capability", dev->id, dev->name);
return true;
@@ -754,13 +615,13 @@ virPCIDeviceDetectFunctionLevelReset(virPCIDevice *dev, int cfgfd)
* internal reset, not just a soft reset.
*/
static bool
-virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceDetectPowerManagementReset(virPCIDevice *dev)
{
if (dev->pci_pm_cap_pos) {
uint32_t ctl;
/* require the NO_SOFT_RESET bit is clear */
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
if (!(ctl & PCI_PM_CTRL_NO_SOFT_RESET)) {
VIR_DEBUG("%s %s: detected PM reset capability", dev->id, dev->name);
return true;
@@ -811,26 +672,22 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
uint8_t header_type, secondary, subordinate;
virPCIDevice **best = data;
int ret = 0;
- int fd;
if (dev->address.domain != check->address.domain)
return 0;
- if ((fd = virPCIDeviceConfigOpenTry(check)) < 0)
- return 0;
-
/* Is it a bridge? */
ret = virPCIDeviceReadClass(check, &device_class);
if (ret < 0 || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return ret;
/* Is it a plane? */
- header_type = virPCIDeviceRead8(check, fd, PCI_HEADER_TYPE);
+ pci_device_cfg_read_u8(check->device, &header_type, PCI_HEADER_TYPE);
if ((header_type & PCI_HEADER_TYPE_MASK) != PCI_HEADER_TYPE_BRIDGE)
- goto cleanup;
+ return ret;
- secondary = virPCIDeviceRead8(check, fd, PCI_SECONDARY_BUS);
- subordinate = virPCIDeviceRead8(check, fd, PCI_SUBORDINATE_BUS);
+ pci_device_cfg_read_u8(check->device, &secondary, PCI_SECONDARY_BUS);
+ pci_device_cfg_read_u8(check->device, &subordinate, PCI_SUBORDINATE_BUS);
VIR_DEBUG("%s %s: found parent device %s", dev->id, dev->name, check->name);
@@ -838,8 +695,7 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
* the direct parent. No further work is necessary
*/
if (dev->address.bus == secondary) {
- ret = 1;
- goto cleanup;
+ return 1;
}
/* otherwise, SRIOV allows VFs to be on different buses than their PFs.
@@ -850,35 +706,26 @@ virPCIDeviceIsParent(virPCIDevice *dev, virPCIDevice *check, void *data)
if (*best == NULL) {
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
} else {
/* OK, we had already recorded a previous "best" match for the
* parent. See if the current device is more restrictive than the
* best, and if so, make it the new best
*/
- int bestfd;
uint8_t best_secondary;
- if ((bestfd = virPCIDeviceConfigOpenTry(*best)) < 0)
- goto cleanup;
- best_secondary = virPCIDeviceRead8(*best, bestfd, PCI_SECONDARY_BUS);
- virPCIDeviceConfigClose(*best, bestfd);
+ pci_device_cfg_read_u8((*best)->device, &best_secondary, PCI_SECONDARY_BUS);
if (secondary > best_secondary) {
virPCIDeviceFree(*best);
*best = virPCIDeviceNew(&check->address);
if (*best == NULL) {
- ret = -1;
- goto cleanup;
+ return -1;
}
}
}
}
-
- cleanup:
- virPCIDeviceConfigClose(check, fd);
return ret;
}
@@ -902,15 +749,14 @@ virPCIDeviceGetParent(virPCIDevice *dev, virPCIDevice **parent)
*/
static int
virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
- int cfgfd,
virPCIDeviceList *inactiveDevs)
{
g_autoptr(virPCIDevice) parent = NULL;
g_autoptr(virPCIDevice) conflict = NULL;
uint8_t config_space[PCI_CONF_LEN];
uint16_t ctl;
- int ret = -1;
- int parentfd;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
/* Refuse to do a secondary bus reset if there are other
* devices/functions behind the bus are used by the host
@@ -932,8 +778,6 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
dev->name);
return -1;
}
- if ((parentfd = virPCIDeviceConfigOpenWrite(parent)) < 0)
- goto out;
VIR_DEBUG("%s %s: doing a secondary bus reset", dev->id, dev->name);
@@ -941,38 +785,37 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* for the supplied device since we refuse to do a reset if there
* are multiple devices/functions
*/
- if (virPCIDeviceRead(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
/* Read the control register, set the reset flag, wait 200ms,
* unset the reset flag and wait 200ms.
*/
- ctl = virPCIDeviceRead16(dev, parentfd, PCI_BRIDGE_CONTROL);
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL,
- ctl | PCI_BRIDGE_CTL_RESET);
+ pci_device_cfg_read_u16(parent->device, &ctl, PCI_BRIDGE_CONTROL);
+
+ pci_device_cfg_write_u16(parent->device, ctl | PCI_BRIDGE_CTL_RESET, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- virPCIDeviceWrite16(parent, parentfd, PCI_BRIDGE_CONTROL, ctl);
+ pci_device_cfg_write_u16(parent->device, ctl, PCI_BRIDGE_CONTROL);
g_usleep(200 * 1000); /* sleep 200ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, config_space, PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
- goto out;
+ return -1;
}
- ret = 0;
- out:
- virPCIDeviceConfigClose(parent, parentfd);
- return ret;
+ return 0;
}
/* Power management reset attempts to reset a device using a
@@ -980,16 +823,19 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevice *dev,
* above we require the device supports a full internal reset.
*/
static int
-virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
+virPCIDeviceTryPowerManagementReset(virPCIDevice *dev)
{
uint8_t config_space[PCI_CONF_LEN];
uint32_t ctl;
+ pciaddr_t bytes_read;
+ pciaddr_t bytes_written;
if (!dev->pci_pm_cap_pos)
return -1;
/* Save and restore the device's config space. */
- if (virPCIDeviceRead(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_read(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_read);
+ if (bytes_read < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to read PCI config space for %1$s"),
dev->name);
@@ -998,20 +844,19 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
VIR_DEBUG("%s %s: doing a power management reset", dev->id, dev->name);
- ctl = virPCIDeviceRead32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL);
+ pci_device_cfg_read_u32(dev->device, &ctl, dev->pci_pm_cap_pos + PCI_PM_CTRL);
ctl &= ~PCI_PM_CTRL_STATE_MASK;
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D3hot);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D3hot, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- virPCIDeviceWrite32(dev, cfgfd, dev->pci_pm_cap_pos + PCI_PM_CTRL,
- ctl | PCI_PM_CTRL_STATE_D0);
+ pci_device_cfg_write_u32(dev->device, ctl | PCI_PM_CTRL_STATE_D0, dev->pci_pm_cap_pos + PCI_PM_CTRL);
g_usleep(10 * 1000); /* sleep 10ms */
- if (virPCIDeviceWrite(dev, cfgfd, 0, &config_space[0], PCI_CONF_LEN) < 0) {
+ pci_device_cfg_write(dev->device, config_space, 0, PCI_CONF_LEN, &bytes_written);
+ if (bytes_written < PCI_CONF_LEN) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to restore PCI config space for %1$s"),
dev->name);
@@ -1046,10 +891,10 @@ virPCIDeviceTryPowerManagementReset(virPCIDevice *dev, int cfgfd)
* Always returns success (0) (for now)
*/
static int
-virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
+virPCIDeviceInit(virPCIDevice *dev)
{
dev->is_pcie = false;
- if (virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
+ if (virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_EXP, &dev->pcie_cap_pos) < 0) {
/* an unprivileged process is unable to read *all* of a
* device's PCI config (it can only read the first 64
* bytes, which isn't enough for see the Express
@@ -1065,18 +910,13 @@ virPCIDeviceInit(virPCIDevice *dev, int cfgfd)
* -1), then we blindly assume the most likely outcome -
* PCIe.
*/
- off_t configLen = virFileLength(virPCIDeviceGetConfigPath(dev), -1);
-
- if (configLen != 256)
- dev->is_pcie = true;
-
} else {
dev->is_pcie = (dev->pcie_cap_pos != 0);
}
- virPCIDeviceFindCapabilityOffset(dev, cfgfd, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
- dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev, cfgfd);
- dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev, cfgfd);
+ virPCIDeviceFindCapabilityOffset(dev, PCI_CAP_ID_PM, &dev->pci_pm_cap_pos);
+ dev->has_flr = virPCIDeviceDetectFunctionLevelReset(dev);
+ dev->has_pm_reset = virPCIDeviceDetectPowerManagementReset(dev);
return 0;
}
@@ -1089,7 +929,6 @@ virPCIDeviceReset(virPCIDevice *dev,
g_autofree char *drvName = NULL;
virPCIStubDriver drvType;
int ret = -1;
- int fd = -1;
int hdrType = -1;
if (virPCIGetHeaderType(dev, &hdrType) < 0)
@@ -1114,29 +953,26 @@ virPCIDeviceReset(virPCIDevice *dev,
* be redundant.
*/
if (virPCIDeviceGetCurrentDriverNameAndType(dev, &drvName, &drvType) < 0)
- goto cleanup;
+ return -1;
if (drvType == VIR_PCI_STUB_DRIVER_VFIO) {
VIR_DEBUG("Device %s is bound to %s - skip reset", dev->name, drvName);
ret = 0;
- goto cleanup;
+ return 0;
}
VIR_DEBUG("Resetting device %s", dev->name);
- if ((fd = virPCIDeviceConfigOpenWrite(dev)) < 0)
- goto cleanup;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
/* KVM will perform FLR when starting and stopping
* a guest, so there is no need for us to do it here.
*/
if (dev->has_flr) {
ret = 0;
- goto cleanup;
+ return 0;
}
/* If the device supports PCI power management reset,
@@ -1144,11 +980,11 @@ virPCIDeviceReset(virPCIDevice *dev,
* the function, not the whole device.
*/
if (dev->has_pm_reset)
- ret = virPCIDeviceTryPowerManagementReset(dev, fd);
+ ret = virPCIDeviceTryPowerManagementReset(dev);
/* Bus reset is not an option with the root bus */
if (ret < 0 && dev->address.bus != 0)
- ret = virPCIDeviceTrySecondaryBusReset(dev, fd, inactiveDevs);
+ ret = virPCIDeviceTrySecondaryBusReset(dev, inactiveDevs);
if (ret < 0) {
virErrorPtr err = virGetLastError();
@@ -1159,8 +995,6 @@ virPCIDeviceReset(virPCIDevice *dev,
_("no FLR, PM reset or bus reset available"));
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
return ret;
}
@@ -1756,28 +1590,6 @@ virPCIDeviceReattach(virPCIDevice *dev,
return 0;
}
-static char *
-virPCIDeviceReadID(virPCIDevice *dev, const char *id_name)
-{
- g_autofree char *path = NULL;
- g_autofree char *id_str = NULL;
-
- path = virPCIFile(dev->name, id_name);
-
- /* ID string is '0xNNNN\n' ... i.e. 7 bytes */
- if (virFileReadAll(path, 7, &id_str) < 0)
- return NULL;
-
- /* Check for 0x suffix */
- if (id_str[0] != '0' || id_str[1] != 'x')
- return NULL;
-
- /* Chop off the newline; we know the string is 7 bytes */
- id_str[6] = '\0';
-
- return g_steal_pointer(&id_str);
-}
-
bool
virPCIDeviceAddressIsValid(virPCIDeviceAddress *addr,
bool report)
@@ -1865,9 +1677,9 @@ virPCIDeviceExists(const virPCIDeviceAddress *addr)
virPCIDevice *
virPCIDeviceNew(const virPCIDeviceAddress *address)
{
+ struct pci_device * device;
+
g_autoptr(virPCIDevice) dev = NULL;
- g_autofree char *vendor = NULL;
- g_autofree char *product = NULL;
dev = g_new0(virPCIDevice, 1);
@@ -1875,31 +1687,21 @@ virPCIDeviceNew(const virPCIDeviceAddress *address)
dev->name = virPCIDeviceAddressAsString(&dev->address);
- dev->path = g_strdup_printf(PCI_SYSFS "devices/%s/config", dev->name);
-
- if (!virFileExists(dev->path)) {
- virReportSystemError(errno,
- _("Device %1$s not found: could not access %2$s"),
- dev->name, dev->path);
+ pci_system_init();
+ device = pci_device_find_by_slot(address->domain, address->bus, address->slot, address->function);
+ if (!device)
return NULL;
- }
-
- vendor = virPCIDeviceReadID(dev, "vendor");
- product = virPCIDeviceReadID(dev, "device");
-
- if (!vendor || !product) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to read product/vendor ID for %1$s"),
- dev->name);
+ dev->device = g_memdup(device, sizeof(*dev->device));
+ if (!dev->device) {
+ virReportSystemError(errno,
+ _("Not found device domain: %1$d, bus: %2$d, slot: %3$d, function: %4$d"),
+ address->domain, address->bus, address->slot, address->function);
return NULL;
}
-
- /* strings contain '0x' prefix */
- if (g_snprintf(dev->id, sizeof(dev->id), "%s %s", &vendor[2],
- &product[2]) >= sizeof(dev->id)) {
+ if (g_snprintf(dev->id, sizeof(dev->id), "%x %x", dev->device->vendor_id, dev->device->device_id) >= sizeof(dev->id)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("dev->id buffer overflow: %1$s %2$s"),
- &vendor[2], &product[2]);
+ _("dev->id buffer overflow: %1$d %2$d"),
+ dev->device->vendor_id, dev->device->device_id);
return NULL;
}
@@ -1918,10 +1720,10 @@ virPCIDeviceCopy(virPCIDevice *dev)
/* shallow copy to take care of most attributes */
*copy = *dev;
- copy->path = NULL;
- copy->used_by_drvname = copy->used_by_domname = NULL;
+ copy->device = NULL;
+ copy->device = g_memdup(dev->device, sizeof(*dev->device));
+ copy->name = copy->used_by_drvname = copy->used_by_domname = copy->stubDriverName = NULL;
copy->name = g_strdup(dev->name);
- copy->path = g_strdup(dev->path);
copy->used_by_drvname = g_strdup(dev->used_by_drvname);
copy->used_by_domname = g_strdup(dev->used_by_domname);
copy->stubDriverName = g_strdup(dev->stubDriverName);
@@ -1936,10 +1738,11 @@ virPCIDeviceFree(virPCIDevice *dev)
return;
VIR_DEBUG("%s %s: freeing", dev->id, dev->name);
g_free(dev->name);
- g_free(dev->path);
g_free(dev->used_by_drvname);
g_free(dev->used_by_domname);
g_free(dev->stubDriverName);
+ if (dev->device)
+ g_free(dev->device);
g_free(dev);
}
@@ -1971,9 +1774,9 @@ virPCIDeviceGetName(virPCIDevice *dev)
* config file.
*/
const char *
-virPCIDeviceGetConfigPath(virPCIDevice *dev)
+virPCIDeviceGetConfigPath(virPCIDevice *dev G_GNUC_UNUSED)
{
- return dev->path;
+ return NULL;
}
void virPCIDeviceSetManaged(virPCIDevice *dev, bool managed)
@@ -2484,47 +2287,37 @@ virPCIDeviceDownstreamLacksACS(virPCIDevice *dev)
uint16_t flags;
uint16_t ctrl;
unsigned int pos;
- int fd;
- int ret = 0;
uint16_t device_class;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
+ if (virPCIDeviceInit(dev) < 0) {
return -1;
-
- if (virPCIDeviceInit(dev, fd) < 0) {
- ret = -1;
- goto cleanup;
}
if (virPCIDeviceReadClass(dev, &device_class) < 0)
- goto cleanup;
+ return 0;
pos = dev->pcie_cap_pos;
if (!pos || device_class != PCI_CLASS_BRIDGE_PCI)
- goto cleanup;
+ return 0;
- flags = virPCIDeviceRead16(dev, fd, pos + PCI_EXP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &flags, pos + PCI_EXP_FLAGS);
if (((flags & PCI_EXP_FLAGS_TYPE) >> 4) != PCI_EXP_TYPE_DOWNSTREAM)
- goto cleanup;
+ return 0;
- pos = virPCIDeviceFindExtendedCapabilityOffset(dev, fd, PCI_EXT_CAP_ID_ACS);
+ pos = virPCIDeviceFindExtendedCapabilityOffset(dev, PCI_EXT_CAP_ID_ACS);
if (!pos) {
VIR_DEBUG("%s %s: downstream port lacks ACS", dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- ctrl = virPCIDeviceRead16(dev, fd, pos + PCI_EXT_ACS_CTRL);
+ pci_device_cfg_read_u16(dev->device, &ctrl, pos + PCI_EXT_ACS_CTRL);
if ((ctrl & PCI_EXT_CAP_ACS_ENABLED) != PCI_EXT_CAP_ACS_ENABLED) {
VIR_DEBUG("%s %s: downstream port has ACS disabled",
dev->id, dev->name);
- ret = 1;
- goto cleanup;
+ return 1;
}
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
static int
@@ -3189,48 +2982,27 @@ virPCIDeviceGetVPD(virPCIDevice *dev G_GNUC_UNUSED)
int
virPCIDeviceIsPCIExpress(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
-
- ret = dev->is_pcie;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return dev->is_pcie;
}
int
virPCIDeviceHasPCIExpressLink(virPCIDevice *dev)
{
- int fd;
- int ret = -1;
uint16_t cap, type;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (dev->pcie_cap_pos == 0) {
- ret = 0;
- goto cleanup;
+ return 0;
}
- cap = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_CAP_FLAGS);
+ pci_device_cfg_read_u16(dev->device, &cap, dev->pcie_cap_pos + PCI_CAP_FLAGS);
type = (cap & PCI_EXP_FLAGS_TYPE) >> 4;
- ret = type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return type != PCI_EXP_TYPE_ROOT_INT_EP && type != PCI_EXP_TYPE_ROOT_EC;
}
int
@@ -3242,53 +3014,39 @@ virPCIDeviceGetLinkCapSta(virPCIDevice *dev,
unsigned int *sta_width)
{
uint32_t t;
- int fd;
- int ret = -1;
-
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return ret;
-
- if (virPCIDeviceInit(dev, fd) < 0)
- goto cleanup;
+ uint16_t t16;
+ if (virPCIDeviceInit(dev) < 0)
+ return -1;
if (!dev->pcie_cap_pos) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("pci device %1$s is not a PCI-Express device"),
dev->name);
- goto cleanup;
+ return -1;
}
- t = virPCIDeviceRead32(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
+ pci_device_cfg_read_u32(dev->device, &t, dev->pcie_cap_pos + PCI_EXP_LNKCAP);
*cap_port = t >> 24;
*cap_speed = t & PCI_EXP_LNKCAP_SPEED;
*cap_width = (t & PCI_EXP_LNKCAP_WIDTH) >> 4;
- t = virPCIDeviceRead16(dev, fd, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ pci_device_cfg_read_u16(dev->device, &t16, dev->pcie_cap_pos + PCI_EXP_LNKSTA);
+ t = t16;
*sta_speed = t & PCI_EXP_LNKSTA_SPEED;
*sta_width = (t & PCI_EXP_LNKSTA_WIDTH) >> 4;
- ret = 0;
-
- cleanup:
- virPCIDeviceConfigClose(dev, fd);
- return ret;
+ return 0;
}
int virPCIGetHeaderType(virPCIDevice *dev, int *hdrType)
{
- int fd;
uint8_t type;
*hdrType = -1;
- if ((fd = virPCIDeviceConfigOpen(dev)) < 0)
- return -1;
-
- type = virPCIDeviceRead8(dev, fd, PCI_HEADER_TYPE);
-
- virPCIDeviceConfigClose(dev, fd);
+ pci_device_cfg_read_u8(dev->device, &type, PCI_HEADER_TYPE);
type &= PCI_HEADER_TYPE_MASK;
if (type >= VIR_PCI_HEADER_LAST) {
diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c
index d2a1f5acf1..fd8339bd30 100644
--- a/tests/qemuhotplugtest.c
+++ b/tests/qemuhotplugtest.c
@@ -18,12 +18,14 @@
*/
#include <config.h>
+#include "testutils.h"
+
+#ifdef __linux__
#include "qemu/qemu_alias.h"
#include "qemu/qemu_conf.h"
#include "qemu/qemu_hotplug.h"
#include "qemumonitortestutils.h"
-#include "testutils.h"
#include "testutilsqemu.h"
#include "testutilsqemuschema.h"
#include "virhostdev.h"
@@ -816,3 +818,10 @@ VIR_TEST_MAIN_PRELOAD(mymain,
VIR_TEST_MOCK("domaincaps"),
VIR_TEST_MOCK("virprocess"),
VIR_TEST_MOCK("qemuhotplug"));
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c
index a2888732f7..5f62c80665 100644
--- a/tests/qemumemlocktest.c
+++ b/tests/qemumemlocktest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -137,3 +139,10 @@ main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/qemuxmlconftest.c b/tests/qemuxmlconftest.c
index 1f0068864a..6f84812109 100644
--- a/tests/qemuxmlconftest.c
+++ b/tests/qemuxmlconftest.c
@@ -7,6 +7,8 @@
#include "testutils.h"
+#ifdef __linux__
+
#ifdef WITH_QEMU
# include "internal.h"
@@ -3051,3 +3053,10 @@ int main(void)
}
#endif /* WITH_QEMU */
+#else
+int
+main(void)
+{
+ return EXIT_AM_SKIP;
+}
+#endif
diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index 5b923c63ce..2fa12903d2 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -22,7 +22,7 @@
#include "virpcivpdpriv.h"
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__)
# define VIR_MOCK_LOOKUP_MAIN
# include "virmock.h"
# include "virpci.h"
@@ -42,6 +42,10 @@ static int (*real___open_2)(const char *path, int flags);
static int (*real_close)(int fd);
static DIR * (*real_opendir)(const char *name);
static char *(*real_virFileCanonicalizePath)(const char *path);
+static int (*real_scandir)(const char *restrict dirp,
+ struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar);
static char *fakerootdir;
@@ -955,6 +959,7 @@ init_syms(void)
VIR_MOCK_REAL_INIT(opendir);
# endif
VIR_MOCK_REAL_INIT(virFileCanonicalizePath);
+ VIR_MOCK_REAL_INIT(scandir);
}
static void
@@ -1172,6 +1177,20 @@ virFileCanonicalizePath(const char *path)
return real_virFileCanonicalizePath(newpath);
}
+int scandir(const char *restrict dirp, struct dirent ***restrict namelist,
+ typeof(int(const struct dirent *)) *filter,
+ typeof(int(const struct dirent **, const struct dirent **)) *compar)
+{
+ g_autofree char *newpath = NULL;
+
+ init_syms();
+
+ if (getrealpath(&newpath, dirp) < 0)
+ return -1;
+
+ return real_scandir(newpath, namelist, filter, compar);
+}
+
# include "virmockstathelpers.c"
#else
--
2.47.1
3
12
*** BLURB HERE ***
Michal Prívozník (2):
virgdbus: Introduce virGDBusHasSessionBus()
remote_daemon: Silence DBus errors
src/libvirt_private.syms | 1 +
src/remote/remote_daemon.c | 36 +++++++++++++++------------
src/util/virgdbus.c | 50 +++++++++++++++++++++++++++++++++++---
src/util/virgdbus.h | 3 +++
4 files changed, 70 insertions(+), 20 deletions(-)
--
2.45.3
2
3
These patches are a spin off from my bigger auto-shutdown series:
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/EIBL…
Since they're self contained, they can be merged sooner while
I'm still working on Peter's feedback from latter parts of the
above patch series.
Daniel P. Berrangé (8):
bhyve: add 'driver' to bhyveProcessStart method
bhyve: stop opening & passing connection to bhyveProcessStart
util: add APIs for more systemd notifications
remote: notify systemd when reloading config
hypervisor: introduce helper for autostart
src: convert drivers over to use new autostart helper
hypervisor: add support for delay interval during autostart
qemu: add 'auto_start_delay' configuration parameter
src/bhyve/bhyve_driver.c | 60 ++++++++++--------------------
src/bhyve/bhyve_process.c | 5 +--
src/bhyve/bhyve_process.h | 3 +-
src/hypervisor/domain_driver.c | 55 +++++++++++++++++++++++++++
src/hypervisor/domain_driver.h | 19 ++++++++++
src/libvirt_private.syms | 7 +++-
src/libxl/libxl_driver.c | 36 +++++-------------
src/lxc/lxc_driver.c | 13 ++++---
src/lxc/lxc_process.c | 18 +--------
src/lxc/lxc_process.h | 2 +
src/qemu/libvirtd_qemu.aug | 1 +
src/qemu/qemu.conf.in | 5 +++
src/qemu/qemu_conf.c | 2 +
src/qemu/qemu_conf.h | 1 +
src/qemu/qemu_driver.c | 55 +++++++++------------------
src/qemu/test_libvirtd_qemu.aug.in | 1 +
src/remote/libvirtd.service.in | 2 +-
src/remote/remote_daemon.c | 2 +
src/rpc/virnetdaemon.c | 2 +-
src/util/virsystemd.c | 44 ++++++++++++++++++++--
src/util/virsystemd.h | 6 ++-
src/virtd.service.in | 2 +-
22 files changed, 202 insertions(+), 139 deletions(-)
--
2.47.1
2
17
12 Feb '25
On Thu, Feb 06, 2025 at 10:20:09AM +0300, Vladimir Sementsov-Ogievskiy wrote:
> > ---
> > qapi/block-export.json | 10 ++++++++++
> > include/block/nbd.h | 6 +++---
>
> [..]
>
> > @@ -52,6 +57,10 @@
> > #
> > # @addr: Address on which to listen.
> > #
> > +# @handshake-max-secs: Time limit, in seconds, at which a client that
> > +# has not completed the negotiation handshake will be disconnected,
> > +# or 0 for no limit (since 10.0; default: 10).
> > +#
>
> Hmm. [not about the series], shouldn't we finally deprecate older interface?
By older interface, you are asking about the QMP command
'nbd-server-start' as compared to struct NbdServerOptions. But the
struct is not directly present in any QMP commands; rather, it only
appears to be used by qemu-storage-daemon as one of its command line
options that needs to set up an NBD server with a JSON-like syntax
that has less nesting than QMP nbd-server-start. blockdev-nbd.c has
two functions [nbd_server_start_options(NbdServerOPtions *arg...) and
qmp_nbd_server_start(args...)] that both unpack their slightly
different forms and pass them as parameters to nbd_server_start() that
is then agnostic to whether the older QMP command or newer q-s-d CLI
option was specified.
It looks like libvirt is still using QMP nbd-server-start. If we were
to start the deprecation process for qemu 10.0, what would the new
command look like? What would everyone be required to use by qemu
10.2?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization: qemu.org | libguestfs.org
2
1